1 2namespace Gmpc { 3 [CCode (cname="TRUE",cheader_filename="gtk/gtk.h,gtktransition.h")] 4 static const bool use_transition; 5 6 [CCode (cname="paned_size_group", cheader_filename="plugin.h")] 7 static PanedSizeGroup paned_size_group; 8 9 [CCode (cname = "gmpcconn", cheader_filename="main.h")] 10 static Connection gmpcconn; 11 12 [CCode (cname = "connection", cheader_filename="plugin.h")] 13 static MPD.Server server; 14 15 [CCode (cname = "gmw", cheader_filename="main.h")] 16 static MetaWatcher metawatcher; 17 18 [CCode (cname = "gmpc_profiles", cheader_filename="plugin.h")] 19 static Profiles profiles; 20 21 [CCode (cname = "gmpc_easy_command", cheader_filename="plugin.h")] 22 static Easy.Command easy_command; 23 24 [CCode (cheader_filename="gmpc-meta-watcher.h")] 25 public class MetaWatcher { 26 public signal void data_changed(MPD.Song song, Gmpc.MetaData.Type type, Gmpc.MetaData.Result result,MetaData.Item? met); 27 28 29 [CCode ( cname="gmpc_meta_watcher_get_meta_path", cheader_filename="gmpc-meta-watcher.h" )] 30 public Gmpc.MetaData.Result query(MPD.Song song, Gmpc.MetaData.Type type, out MetaData.Item met); 31 32 } 33 34 35 namespace MetaData { 36 37 [CCode (cname="MetaDataContentType", cprefix = "META_DATA_CONTENT_", cheader_filename = "libmpd/libmpd.h,metadata.h")] 38 public enum ContentType { 39 EMPTY, 40 URI, 41 TEXT, 42 RAW, 43 HTML, 44 STRV, 45 TEXT_LIST 46 } 47 [CCode (cname="MetaData", cheader_filename="metadata.h")] 48 [Compact] 49 [Immutable] 50 [CCode (free_function="meta_data_free")] 51 public class Item { 52 [CCode (cname="meta_data_new")] 53 public Item (); 54 public Gmpc.MetaData.Type type; 55 [CCode (cname="meta_data_dup")] 56 public static Item copy(Item item); 57 public unowned string plugin_name; 58 public int size; 59 public void * content; 60 public Gmpc.MetaData.ContentType content_type; 61 62 [CCode (cname="meta_data_is_empty")] 63 public bool is_empty(); 64 65 66 /* add accessors? */ 67 [CCode (cname="meta_data_get_raw")] 68 public unowned uchar[] get_raw(); 69 [CCode (cname="meta_data_set_raw")] 70 public void set_raw(uchar[] data); 71 [CCode (cname="meta_data_set_raw_owned")] 72 public void set_raw_void(ref void *data,ref uint length); 73 74 [CCode (cname="meta_data_get_text")] 75 public unowned string get_text(); 76 [CCode (cname="meta_data_set_text")] 77 public void set_text(string data); 78 79 [CCode (cname="meta_data_get_text_from_html")] 80 public string get_text_from_html(); 81 /* same as get_text */ 82 83 [CCode (cname="meta_data_get_uri")] 84 public unowned string? get_uri(); 85 [CCode (cname="meta_data_set_uri")] 86 public void set_uri(string uri); 87 [CCode (cname="meta_data_get_thumbnail_uri")] 88 public unowned string? get_thumbnail_uri(); 89 [CCode (cname="meta_data_set_thumbnail_uri")] 90 public void set_thumbnail_uri(string uri); 91 92 [CCode (cname="meta_data_get_html")] 93 public unowned string get_html(); 94 95 [CCode (cname="meta_data_get_text_vector")] 96 public unowned string[] get_text_vector(); 97 98 [CCode (cname="meta_data_get_text_list")] 99 public unowned GLib.List<unowned string> get_text_list(); 100 101 [CCode (cname="meta_data_is_text_list")] 102 public bool is_text_list(); 103 [CCode (cname="meta_data_dup_steal")] 104 public MetaData.Item dup_steal(); 105 } 106 [CCode (cname="MetaDataType", cprefix = "META_", cheader_filename = "metadata.h")] 107 public enum Type { 108 ALBUM_ART = 1, 109 ARTIST_ART = 2, 110 ALBUM_TXT = 4, 111 ARTIST_TXT = 8, 112 SONG_TXT = 16, 113 ARTIST_SIMILAR = 32, 114 SONG_SIMILAR = 64, 115 GENRE_SIMILAR = 128, 116 SONG_GUITAR_TAB = 256, 117 QUERY_DATA_TYPES = 65535, 118 QUERY_NO_CACHE = 65536 119 } 120 121 [CCode (cname="MetaDataResult", cprefix = "META_DATA_", cheader_filename = "metadata.h")] 122 public enum Result { 123 AVAILABLE, 124 UNAVAILABLE, 125 FETCHING 126 } 127 128 129 public delegate void Callback (void *handle,string? plugin_name, GLib.List<MetaData.Item>? list); 130 [CCode ( cname="metadata_get_list", cheader_filename="libmpd/libmpd.h,metadata.h" )] 131 public void* get_list(MPD.Song song, Type type, Callback callback); 132 133 [CCode ( cname="metadata_get_list_cancel", cheader_filename="metadata.h" )] 134 public void* get_list_cancel(void *handle); 135 136 137 [CCode ( cname="meta_data_set_cache", cheader_filename="metadata-cache.h")] 138 public void set_metadata(MPD.Song song, Result result, Gmpc.MetaData.Item met); 139 140 [CCode ( cname="gmpc_get_metadata_filename", cheader_filename="libmpd/libmpd.h,metadata.h")] 141 public string get_metadata_filename(Type type, MPD.Song song, string? extension); 142 143 [CCode ( cname="GmpcMetaImage", cheader_filename="gmpc-metaimage.h")] 144 public class Image: Gtk.Widget { 145 [CCode (cname="gmpc_metaimage_new_size")] 146 public Image(Type type, int size); 147 [CCode (cname="gmpc_metaimage_update_cover_from_song")] 148 public void update_from_song(MPD.Song song); 149 150 [CCode (cname="gmpc_metaimage_update_cover_from_song_delayed")] 151 public void update_from_song_delayed(MPD.Song song); 152 [CCode (cname="gmpc_metaimage_set_squared")] 153 public void set_squared(bool squared); 154 [CCode (cname="gmpc_metaimage_set_hide_on_na")] 155 public void set_hide_on_na(bool hide); 156 [CCode (cname="gmpc_metaimage_set_no_cover_icon")] 157 public void set_no_cover_icon(string name); 158 [CCode (cname="gmpc_metaimage_set_loading_cover_icon")] 159 public void set_loading_cover_icon(string name); 160 161 [CCode (cname="gmpc_metaimage_set_scale_up")] 162 public void set_scale_up(bool scale); 163 164 } 165 [CCode ( cname="GmpcStatsLabel", cheader_filename="gmpc-stats-label.h")] 166 public class StatsLabel : Gtk.Label { 167 [CCode (cprefix="")] 168 public enum Type { 169 ARTIST_NUM_SONGS, 170 ARTIST_PLAYTIME_SONGS, 171 ARTIST_GENRES_SONGS, 172 ARTIST_DATES_SONGS, 173 ALBUM_NUM_SONGS, 174 ALBUM_PLAYTIME_SONGS, 175 ALBUM_GENRES_SONGS, 176 ALBUM_DATES_SONGS 177 } 178 [CCode (cname="gmpc_stats_label_new")] 179 public StatsLabel(Type type, MPD.Song song); 180 } 181 [CCode ( cname="GmpcMetaTextView", cheader_filename="gmpc-meta-text-view.h")] 182 public class TextView: Gtk.TextView { 183 public bool use_monospace; 184 [CCode (cname="gmpc_meta_text_view_new")] 185 public TextView(Type type); 186 [CCode (cname="gmpc_meta_text_view_query_text_from_song")] 187 public void query_from_song(MPD.Song song); 188 public bool force_ro; 189 } 190 191 } 192 namespace Messages { 193 [CCode (cprefix = "ERROR_", cheader_filename = "playlist3-messages.h")] 194 public enum Level{ 195 INFO, 196 WARNING, 197 CRITICAL 198 } 199 200 [CCode (cname = "playlist3_show_error_message", cheader_filename="playlist3-messages.h")] 201 void show(string message, Gmpc.Messages.Level level); 202 } 203 204 namespace AsyncDownload { 205 [CCode (cname="GEADStatus",cprefix = "GEAD_", cheader_filename = "gmpc_easy_download.h")] 206 public enum Status { 207 DONE, 208 PROGRESS, 209 FAILED, 210 CANCELLED 211 } 212 213 [CCode (cname="GEADAsyncHandler", cheader_filename="gmpc_easy_download.h")] 214 [Compact] 215 [Immutable] 216 [CCode (ref_function="", unref_function ="")] 217 public class Handle { 218 [CCode (cname="gmpc_easy_async_cancel", cheader_filename="gmpc_easy_download.h")] 219 public void cancel (); 220 /* Gets raw data. Remember data_length does not include trailing \0. */ 221 [CCode (cname="gmpc_easy_handler_get_data_vala_wrap", cheader_filename="gmpc_easy_download.h")] 222 public unowned uchar[] get_data(); 223 224 [CCode (cname="gmpc_easy_handler_get_data_as_string", cheader_filename="gmpc_easy_download.h")] 225 public unowned string get_data_as_string(); 226 227 [CCode (cname="gmpc_easy_handler_get_uri", cheader_filename="gmpc_easy_download.h")] 228 public unowned string get_uri(); 229 230 [CCode (cname="gmpc_easy_handler_get_user_data", cheader_filename="gmpc_easy_download.h")] 231 public void * get_user_data(); 232 233 [CCode (cname="gmpc_easy_handler_set_user_data", cheader_filename="gmpc_easy_download.h")] 234 public void set_user_data(void *user_data); 235 236 [CCode (cname="gmpc_easy_handler_get_content_size", cheader_filename="gmpc_easy_download.h")] 237 public int64 get_content_size(); 238 } 239 240 241 242 public delegate void Callback (Gmpc.AsyncDownload.Handle handle, Gmpc.AsyncDownload.Status status); 243 public delegate void CallbackVala (Gmpc.AsyncDownload.Handle handle, Gmpc.AsyncDownload.Status status, void *p); 244 245 [CCode (cname="gmpc_easy_async_downloader_vala", cheader_filename="gmpc_easy_download.h")] 246 public unowned Gmpc.AsyncDownload.Handle download_vala(string uri, void *p,Gmpc.AsyncDownload.CallbackVala callback); 247 [CCode (cname="gmpc_easy_async_downloader", cheader_filename="gmpc_easy_download.h")] 248 public unowned Gmpc.AsyncDownload.Handle download(string uri, Gmpc.AsyncDownload.Callback callback); 249 250 [CCode (cname="gmpc_easy_download_uri_escape", cheader_filename="gmpc_easy_download.h")] 251 public string escape_uri(string part); 252 } 253 254 [CCode (cname="gmpc_get_full_glade_path", cheader_filename="plugin.h")] 255 public string data_path(string file); 256 [CCode (cname="gmpc_get_user_path", cheader_filename="plugin.h")] 257 public string user_path(string file); 258 [CCode (cname="open_uri", cheader_filename="misc.h")] 259 public void open_uri(string uri); 260 261 262 namespace Playlist { 263 [CCode (cname="(GtkWindow *)playlist3_get_window", cheader_filename="plugin.h")] 264 public unowned Gtk.Window get_window(); 265[CCode (cname="playlist3_window_is_hidden", cheader_filename="plugin.h")] 266 public bool is_hidden(); 267 268[CCode (cname="pl3_hide", cheader_filename="plugin.h")] 269 public void hide(); 270 271[CCode (cname="create_playlist3", cheader_filename="plugin.h")] 272 public void show(); 273 [CCode (cname="playlist3_get_accel_group", cheader_filename="playlist3.h")] 274 public unowned Gtk.AccelGroup get_accel_group(); 275 } 276 277 namespace TrayIcon2 { 278 [CCode (cname="trayicon2_toggle_use_appindicator", cheader_filename="tray-icon2.h")] 279 public void toggle_use_appindicator(); 280 281 [CCode (cname="trayicon2_have_appindicator_support", cheader_filename="tray-icon2.h")] 282 public bool have_appindicator_support(); 283 } 284 285 [CCode (cname = "config", cheader_filename="plugin.h")] 286 static Settings config; 287 [CCode (cheader_filename="config1.h")] 288 [Compact] 289 [Immutable] 290 public class Settings { 291 [CCode (cname="cfg_get_single_value_as_string_with_default", cheader_filename="config1.h")] 292 public string get_string_with_default(string class, string key, string value); 293 [CCode (cname="cfg_get_single_value_as_int_with_default", cheader_filename="config1.h")] 294 public int get_int_with_default(string class, string key, int value); 295 [CCode (cname="cfg_set_single_value_as_int", cheader_filename="config1.h")] 296 public int set_int(string class, string key, int value); 297 } 298 299 namespace Misc{ 300 [CCode (cname="colorshift_pixbuf",cheader_filename="misc.h")] 301 public void colorshift_pixbuf(Gdk.Pixbuf dest, Gdk.Pixbuf src, int shift); 302 303 [CCode (cname="darken_pixbuf",cheader_filename="misc.h")] 304 public void darken_pixbuf(Gdk.Pixbuf dest, uint factor = 1.0); 305 [CCode (cname="decolor_pixbuf",cheader_filename="misc.h")] 306 public void decolor_pixbuf(Gdk.Pixbuf dest, Gdk.Pixbuf src); 307 [CCode (cname="screenshot_add_border",cheader_filename="misc.h")] 308 public void border_pixbuf (Gdk.Pixbuf buf); 309 [CCode (cname="misc_header_expose_event",cheader_filename="misc.h")] 310 public bool misc_header_expose_event(Gtk.Widget widget, Gdk.EventExpose event); 311 312 313 [CCode (cname="format_time_real", cheader_filename="misc.h")] 314 public string format_time(ulong seconds, string pre); 315 } 316 317 /* Browser */ 318 namespace Browser{ 319 [CCode (cname="playlist3_insert_browser")] 320 public void insert(out Gtk.TreeIter iter, int position); 321 namespace File { 322 [CCode (cname="pl3_file_browser_open_path")] 323 public void open_path(string path); 324 } 325 namespace Find { 326 [CCode (cname="pl3_find2_ec_database")] 327 public void query_database(void *user_data, string query); 328 } 329 namespace Metadata { 330 [CCode (cname="info2_fill_artist_view")] 331 public void show_artist(string artist); 332 333 [CCode (cname="info2_fill_album_view")] 334 public void show_album(string artist,string album); 335 } 336 } 337 namespace Playlist3 { 338 [CCode (cname="playlist3_get_category_tree_view")] 339 public unowned Gtk.TreeView get_category_tree_view(); 340 341 [CCode (cname="main_window_add_status_icon")] 342 public void add_status_icon(Gtk.Widget widget); 343 344 [CCode (cname="pl3_update_go_menu",cheader_filename="plugin.h")] 345 public void update_go_menu(); 346 } 347 348 /* objects */ 349 namespace MpdData { 350 [CCode (cheader_filename="gmpc-mpddata-treeview.h",cname="GmpcMpdDataTreeview",type_check_function="GMPC_IS_MPDDATA_TREEVIEW")] 351 public class TreeView : Gtk.TreeView { 352 [CCode (cname="gmpc_mpddata_treeview_new")] 353 public TreeView(string name, bool sort, Gtk.TreeModel model); 354 [CCode (cname="gmpc_mpddata_treeview_enable_click_fix")] 355 public void enable_click_fix(); 356 [CCode (cname="gmpc_mpddata_treeview_right_mouse_intergration")] 357 public int right_mouse_integration(Gtk.Menu menu); 358 } 359 360 [CCode (cheader_filename="gmpc-mpddata-model.h")] 361 public class Model : GLib.Object, Gtk.TreeModel{ 362 [CCode (has_construct_function = true,cname="gmpc_mpddata_model_new")] 363 public Model(); 364 365 [CCode (cname="gmpc_mpddata_model_set_mpd_data")] 366 public void set_mpd_data(owned MPD.Data.Item? list); 367 368 [CCode (cname="gmpc_mpddata_model_set_request_artist")] 369 public void set_request_artist(string? list); 370 371 [CCode (cname="gmpc_mpddata_model_get_request_artist")] 372 public unowned string get_request_artist(); 373 public int icon_size; 374 } 375 } 376 377 378 namespace Misc { 379 [CCode (cname="mpd_song_checksum",cheader_filename="misc.h")] 380 public string? song_checksum(MPD.Song? song); 381 [CCode (cname="mpd_song_checksum_type",cheader_filename="misc.h")] 382 public string? song_checksum_type(MPD.Song? song, Gmpc.MetaData.Type type); 383 384 } 385 namespace MpdInteraction { 386 [CCode (cname="play_path",cheader_filename="mpdinteraction.h")] 387 public void play_path(string path); 388 [CCode (cname="submenu_for_song")] 389 public void submenu_for_song(Gtk.Widget menu, MPD.Song song); 390 } 391 392 [CCode (cheader_filename="gmpc-profiles.h")] 393 [Compact] 394 [Immutable] 395 class Profiles { 396 [CCode (cname="gmpc_profiles_get_current",cheader_filename="gmpc-profiles.h")] 397 public string? get_current_id(); 398 public void set_db_update_time(string id, int value); 399 public int get_db_update_time(string id); 400 public unowned string? get_music_directory(string id); 401 [CCode (cname="connection_get_hostname", cheader_filename="mpdinteraction.h")] 402 public string? get_hostname(); 403 404 } 405 406 namespace Fix{ 407 [CCode (cname="gdk_pixbuf_loader_write", cheader_filename="gdk-pixbuf/gdk-pixdata.h")] 408 public void write_loader(Gdk.PixbufLoader loader, string data, size_t size) throws GLib.Error; 409 410 [CCode (cname="screenshot_add_border", cheader_filename="misc.h")] 411 public void add_border(Gdk.Pixbuf image); 412 413 [CCode (cname="pango_attr_list_change", cheader_filename="pango/pango.h")] 414 public void change (Pango.AttrList list,owned Pango.Attribute attr); 415 } 416 [CCode (cheader_filename="pixbuf-cache.h")] 417 namespace PixbufCache { 418 [CCode (cname="pixbuf_cache_lookup_icon")] 419 public Gdk.Pixbuf? lookup_icon(int size, string url); 420 [CCode (cname="pixbuf_cache_add_icon")] 421 public void add_icon(int size, string url, Gdk.Pixbuf pb); 422 423 } 424 [CCode (cheader_filename="advanced-search.h")] 425 namespace Query{ 426 [CCode (cname="advanced_search")] 427 public MPD.Data.Item? search(string query, bool playlist); 428 429 } 430 431 [CCode (cname="gmpcPluginParent",cprefix="gmpc_plugin_",cheader_filename="plugin-internal.h")] 432 [Compact] 433 [Immutable] 434 public class parentPlugin 435 { 436 public int get_id(); 437 public unowned string get_name(); 438 public int get_enabled(); 439 public bool has_enabled(); 440 public void set_enabled(int e); 441 public bool is_browser(); 442 } 443 [CCode (cheader_filename="main.h", cname="plugins")] 444 static weak parentPlugin[] plugins; 445 [CCode (cheader_filename="main.h", cname="num_plugins")] 446 static int num_plugins; 447 448 449 namespace Preferences { 450 [CCode (cname="preferences_window_update", cheader_filename="preferences.h")] 451 public void update(); 452 453 } 454} 455