[DataView] Fix bold of playing song, italic 'prioritized songs'
[gmpc.git] / src / vapi / gmpc.vapi
blob2f641d1ebe68355d14c1684d451e310fb7d677ec
2 namespace Gmpc {
3     [CCode (cname="TRUE",cheader_filename="gtk/gtk.h,gtktransition.h")]
4     static const bool use_transition;
6     [CCode (cname="paned_size_group", cheader_filename="plugin.h")]
7     static PanedSizeGroup paned_size_group;
9     [CCode (cname = "gmpcconn", cheader_filename="main.h")]
10     static Connection gmpcconn;
12     [CCode (cname = "connection", cheader_filename="plugin.h")]
13     static MPD.Server server;
15     [CCode (cname = "gmw", cheader_filename="main.h")]
16     static Meta.Watcher metawatcher;
18     [CCode (cname = "gmpc_profiles", cheader_filename="plugin.h")]
19     static Profiles profiles;
21     [CCode (cname = "gmpc_easy_command", cheader_filename="plugin.h")]
22     static Easy.Command  easy_command;
24         [CCode (cname = "playlist", cheader_filename="main.h")]
25         static Gmpc.MpdData.ModelPlaylist playlist;
28    [CCode (cheader_filename="metadata.h")]
29    namespace MetaData {
30         [CCode (cname="MetaDataContentType", cprefix = "META_DATA_CONTENT_", cheader_filename = "libmpd/libmpd.h,metadata.h")]
31         public enum ContentType {
32             EMPTY,
33             URI,
34             TEXT,
35             RAW,
36             HTML,
37             STRV,
38             TEXT_LIST
39         }
41         [CCode (cname="MetaData",free_function="meta_data_free",copy_function="meta_data_dup",has_type_id = false)]
42         [Compact]
43         public class Item {
44             [CCode (cname="meta_data_new")]
45             public Item ();
46             public Gmpc.MetaData.Type type;
47             [CCode (cname="meta_data_dup")]
48             public static Item copy(Item item);
49                         [CCode (cname="meta_data_dup")]
50                         public Item dup();
53            public unowned string plugin_name;
54            public int size;
55            public void * content;
56                    [CCode (array_length = false)]
57                    public uchar[] md5sum;
58                    public Gmpc.MetaData.ContentType content_type;
60            [CCode (cname="meta_data_is_empty")]
61            public bool is_empty();
64            /* add accessors? */
65            [CCode (cname="meta_data_get_raw")]
66            public unowned uchar[] get_raw();
67            [CCode (cname="meta_data_set_raw")]
68            public void set_raw(uchar[] data);
69            [CCode (cname="meta_data_set_raw_owned")]
70            public void set_raw_void(ref void *data,ref uint length);
72            [CCode (cname="meta_data_get_text")]
73            public unowned string  get_text();
74            [CCode (cname="meta_data_set_text")]
75            public void set_text(string data);
77            [CCode (cname="meta_data_get_text_from_html")]
78            public string get_text_from_html();
79            /* same as get_text */
81            [CCode (cname="meta_data_get_uri")]
82            public unowned string? get_uri();
83            [CCode (cname="meta_data_set_uri")]
84            public void set_uri(string uri);
85            [CCode (cname="meta_data_get_thumbnail_uri")]
86            public unowned string? get_thumbnail_uri();
87            [CCode (cname="meta_data_set_thumbnail_uri")]
88            public void set_thumbnail_uri(string uri);
90            [CCode (cname="meta_data_get_html")]
91            public unowned string get_html();
93            [CCode (cname="meta_data_get_text_vector")]
94            public unowned string[] get_text_vector();
96            [CCode (cname="meta_data_get_text_list")]
97            public unowned GLib.List<unowned string> get_text_list();
99            [CCode (cname="meta_data_is_text_list")]
100            public bool  is_text_list();
101            [CCode (cname="meta_data_dup_steal")]
102            public MetaData.Item dup_steal();
104         }
106         [CCode (cname="MetaDataType", cprefix = "META_", cheader_filename = "metadata.h", has_type_id = false)]
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                         BACKDROP_ART    = 512,
118             QUERY_DATA_TYPES = 65535,
119             QUERY_NO_CACHE   = 65536
120         }
122         [CCode (cname="MetaDataResult", cprefix = "META_DATA_", cheader_filename = "metadata.h", has_type_id = false)]
123         public enum Result {
124             AVAILABLE,
125             UNAVAILABLE,
126             FETCHING
127         }
129         [CCode (cname="meta_data_get_path")]
130         public MetaData.Result get_path(MPD.Song song, Type type, out MetaData.Item item, Callback? callback=null);
132         public delegate void Callback (void *handle,string? plugin_name, GLib.List<MetaData.Item>? list);
133         [CCode ( cname="metadata_get_list", cheader_filename="libmpd/libmpd.h,metadata.h" )]
134         public void* get_list(MPD.Song song, Type type, Callback callback);
136         [CCode ( cname="metadata_get_list_cancel", cheader_filename="metadata.h" )]
137         public void* get_list_cancel(void *handle);
140         [CCode ( cname="meta_data_set_entry", cheader_filename="metadata.h")]
141         public void set_metadata(MPD.Song song, Gmpc.MetaData.Item met);
143         [CCode ( cname="gmpc_get_metadata_filename", cheader_filename="libmpd/libmpd.h,metadata.h")]
144         public string get_metadata_filename(Type type, MPD.Song song, string? extension);
146         [CCode ( cname="GmpcMetaImage", cheader_filename="gmpc-metaimage.h")]
147         public class Image: Gtk.Widget {
148                         public int size;
149             [CCode (cname="gmpc_metaimage_new_size")]
150             public Image(Type type, int size);
151             [CCode (cname="gmpc_metaimage_update_cover_from_song")]
152             public void update_from_song(MPD.Song song);
154             [CCode (cname="gmpc_metaimage_update_cover_from_song_delayed")]
155             public void update_from_song_delayed(MPD.Song song);
156             [CCode (cname="gmpc_metaimage_set_squared")]
157             public void set_squared(bool squared);
158             [CCode (cname="gmpc_metaimage_set_hide_on_na")]
159             public void set_hide_on_na(bool hide);
160             [CCode (cname="gmpc_metaimage_set_no_cover_icon")]
161             public void set_no_cover_icon(string name);
162             [CCode (cname="gmpc_metaimage_set_loading_cover_icon")]
163             public void set_loading_cover_icon(string name);
165             [CCode (cname="gmpc_metaimage_set_cover_na")]
166             public void set_cover_na();
167             [CCode (cname="gmpc_metaimage_set_scale_up")]
168             public void set_scale_up(bool scale);
170             [CCode (cname="gmpc_metaimage_set_dirty")]
171             public void set_dirty();
172         }
174         [CCode ( cname="GmpcMetaTextView", cheader_filename="gmpc-meta-text-view.h")]
175         public class TextView: Gtk.TextView {
176                 public bool use_monospace;
177             [CCode (cname="gmpc_meta_text_view_new")]
178                 public TextView(Type type);
179             [CCode (cname="gmpc_meta_text_view_query_text_from_song")]
180                 public void query_from_song(MPD.Song song);
181                 public bool force_ro;
182         }
184    }
186    namespace Messages {
187        [CCode (cprefix = "ERROR_", cheader_filename = "playlist3-messages.h")]
188        public enum Level{
189         INFO,
190         WARNING,
191         CRITICAL
192     }
194     [CCode (cname = "playlist3_show_error_message", cheader_filename="playlist3-messages.h")]
195     void show(string message, Gmpc.Messages.Level level);
197     [CCode (cname = "playlist3_error_add_widget", cheader_filename="playlist3-messages.h")]
198         void add_widget(Gtk.Widget widget);
199    }
201    namespace AsyncDownload {
202      [CCode (cname="GEADStatus",cprefix = "GEAD_", cheader_filename = "gmpc_easy_download.h")]
203         public enum Status {
204             DONE,
205             PROGRESS,
206             FAILED,
207             CANCELLED
208         }
210         [CCode (cname="GEADAsyncHandler", cheader_filename="gmpc_easy_download.h",ref_function="", unref_function ="")]
211         [Compact]
212         [Immutable]
213         public class Handle {
214             [CCode (cname="gmpc_easy_async_cancel", cheader_filename="gmpc_easy_download.h")]
215             public void cancel ();
216             /* Gets raw data. Remember data_length does not include trailing \0. */
217             [CCode (cname="gmpc_easy_handler_get_data_vala_wrap", cheader_filename="gmpc_easy_download.h")]
218             public unowned uchar[] get_data();
220             [CCode (cname="gmpc_easy_handler_get_data_as_string", cheader_filename="gmpc_easy_download.h")]
221             public unowned string get_data_as_string();
223             [CCode (cname="gmpc_easy_handler_get_uri", cheader_filename="gmpc_easy_download.h")]
224             public unowned string get_uri();
226             [CCode (cname="gmpc_easy_handler_get_user_data", cheader_filename="gmpc_easy_download.h")]
227             public void * get_user_data();
229             [CCode (cname="gmpc_easy_handler_set_user_data", cheader_filename="gmpc_easy_download.h")]
230             public void set_user_data(void *user_data);
232             [CCode (cname="gmpc_easy_handler_get_content_size", cheader_filename="gmpc_easy_download.h")]
233             public int64 get_content_size();
234         }
237         public delegate void Callback (Gmpc.AsyncDownload.Handle handle, Gmpc.AsyncDownload.Status status);
238         public delegate void CallbackVala (Gmpc.AsyncDownload.Handle handle, Gmpc.AsyncDownload.Status status, void *p);
240         [CCode (cname="gmpc_easy_async_downloader_vala", cheader_filename="gmpc_easy_download.h")]
241         public unowned Gmpc.AsyncDownload.Handle download_vala(string uri, void *p,Gmpc.AsyncDownload.CallbackVala callback);
242         [CCode (cname="gmpc_easy_async_downloader", cheader_filename="gmpc_easy_download.h")]
243         public unowned Gmpc.AsyncDownload.Handle download(string uri, Gmpc.AsyncDownload.Callback callback);
245         [CCode (cname="gmpc_easy_download_uri_escape", cheader_filename="gmpc_easy_download.h")]
246         public string escape_uri(string part);
247    }
249     [CCode (cname="gmpc_get_full_glade_path", cheader_filename="plugin.h")]
250     public string data_path(string file);
251     [CCode (cname="gmpc_get_user_path", cheader_filename="plugin.h")]
252     public string user_path(string file);
253     [CCode (cname="open_uri", cheader_filename="misc.h")]
254     public void open_uri(string uri);
255     [CCode (cname="open_help", cheader_filename="misc.h")]
256         public void open_help(string uri);
258     namespace Playlist {
259                 [CCode (cname="Pl3CatBrowserType", cprefix="PL3_CAT_BROWSER_", cheader_filename="plugin.h")]
260                 public enum BrowserType{
261                         TOP,
262                         LIBRARY,
263                         ONLINE_MEDIA,
264                         MISC
265                 }
266         [CCode (cname="(GtkWindow *)playlist3_get_window", cheader_filename="plugin.h")]
267         public unowned Gtk.Window get_window();
268         [CCode (cname="playlist3_window_is_hidden", cheader_filename="plugin.h")]
269         public bool is_hidden();
271         [CCode (cname="pl3_hide", cheader_filename="plugin.h")]
272         public void hide();
274         [CCode (cname="create_playlist3", cheader_filename="plugin.h")]
275         public void show();
276         [CCode (cname="playlist3_get_accel_group", cheader_filename="playlist3.h")]
277         public unowned Gtk.AccelGroup get_accel_group();
279         [CCode (cname="playlist3_get_widget_by_id", cheader_filename="playlist3.h")]
280         public Gtk.Widget get_widget_by_id(string id);
282                 [CCode (cname="playlist3_get_sidebar_state", cheader_filename="plugin.h")]
283                 public Gmpc.Plugin.SidebarState get_sidebar_state();
284     }
286     namespace TrayIcon2 {
287         [CCode (cname="trayicon2_toggle_use_appindicator", cheader_filename="tray-icon2.h")]
288         public void toggle_use_appindicator();
290         [CCode (cname="trayicon2_have_appindicator_support", cheader_filename="tray-icon2.h")]
291         public bool have_appindicator_support();
292     }
294         [CCode (cname = "config", cheader_filename="plugin.h")]
295         static Settings config;
296     [CCode (cheader_filename="config1.h",cname="config_obj", free_function="cfg_close")]
297         [Compact]
298         [Immutable]
299     public class Settings {
300         [CCode (cname="cfg_open", cheader_filename="config1.h")]
301         public Settings.from_file(string file);
302         [CCode (cname="cfg_get_single_value_as_string_with_default", cheader_filename="config1.h")]
303         public string get_string_with_default(string class, string key, string value);
304         [CCode (cname="cfg_get_single_value_as_string", cheader_filename="config1.h")]
305         public string? get_string(string @class, string key);
306         [CCode (cname="cfg_get_single_value_as_int_with_default", cheader_filename="config1.h")]
307         public int get_int_with_default(string class, string key, int value);
308         [CCode (cname="cfg_get_single_value_as_int", cheader_filename="config1.h")]
309         public int get_int(string @class, string key);
310         [CCode (cname="cfg_get_single_value_as_int", cheader_filename="config1.h")]
311         public bool get_bool(string @class, string key);
312         [CCode (cname="cfg_get_single_value_as_int_with_default", cheader_filename="config1.h")]
313         public bool get_bool_with_default(string @class, string key, bool value);
314         [CCode (cname="cfg_set_single_value_as_string", cheader_filename="config1.h")]
315         public void set_string(string @class, string key, string @value);
316         [CCode (cname="cfg_set_single_value_as_int", cheader_filename="config1.h")]
317         public int set_int(string class, string key, int value);
318         [CCode (cname="cfg_set_single_value_as_int", cheader_filename="config1.h")]
319         public int set_bool(string @class, string key, bool @value);
320         [CCode (cname="cfg_get_class_list", cheader_filename="config1.h")]
321         public SettingsList get_class_list();
322         [CCode (cname="cfg_remove_class", cheader_filename="config1.h")]
323         public void remove_class(string key);
324     }
326     [CCode (cheader_filename="config1.h", cname="conf_mult_obj", free_function="cfg_free_multiple")]
327         [Compact]
328         [Immutable]
329     public class SettingsList {
330         public string key;
331         public string @value;
332         public SettingsList next;
333         public unowned SettingsList prev;
334     }
336     namespace Misc{
337         [CCode (cname="colorshift_pixbuf",cheader_filename="misc.h")]
338         public void colorshift_pixbuf(Gdk.Pixbuf dest, Gdk.Pixbuf src, int shift);
340         [CCode (cname="darken_pixbuf",cheader_filename="misc.h")]
341         public void darken_pixbuf(Gdk.Pixbuf dest, uint factor = 1);
342         [CCode (cname="decolor_pixbuf",cheader_filename="misc.h")]
343         public void decolor_pixbuf(Gdk.Pixbuf dest, Gdk.Pixbuf src);
344                 [CCode (cname="screenshot_add_border",cheader_filename="misc.h")]
345                 public void border_pixbuf (Gdk.Pixbuf buf);
346         [CCode (cname="misc_header_expose_event",cheader_filename="misc.h")]
347         public bool misc_header_expose_event(Gtk.Widget widget, Cairo.Context ct);
350         [CCode (cname="format_time_real", cheader_filename="misc.h")]
351         public string format_time(ulong seconds, string pre="");
352         [CCode (cname="format_time_real_newline", cheader_filename="misc.h")]
353         public string format_time_newline(ulong seconds, string pre="");
356         [CCode (cname="mpd_song_checksum",cheader_filename="misc.h")]
357         public string? song_checksum(MPD.Song? song);
358         [CCode (cname="mpd_song_checksum_type",cheader_filename="misc.h")]
359         public string? song_checksum_type(MPD.Song? song, Gmpc.MetaData.Type type);
360     }
362     /* Browser */
363     namespace Browser{
364         [CCode (cname="playlist3_insert_browser")]
365         public void insert(out Gtk.TreeIter iter, int position);
367         namespace File {
368             [CCode (cname="pl3_file_browser_open_path")]
369             public void open_path(string path);
370         }
372         namespace Find {
373             [CCode (cname="pl3_find2_ec_database")]
374             public void query_database(void *user_data, string query);
375         }
377         namespace Metadata {
378             [CCode (cname="info2_activate")]
379             public void show();
380             [CCode (cname="info2_fill_song_view")]
381             public void show_song(MPD.Song song);
382             [CCode (cname="info2_fill_artist_view")]
383             public void show_artist(string artist);
385             [CCode (cname="info2_fill_album_view")]
386             public void show_album(string artist,string album);
387         }
388     }
390     namespace Playlist3 {
391         [CCode (cname="playlist3_get_category_tree_view")]
392         public unowned Gtk.TreeView get_category_tree_view();
394         [CCode (cname="main_window_add_status_icon")]
395         public void add_status_icon(Gtk.Widget widget);
397         [CCode (cname="pl3_update_go_menu",cheader_filename="plugin.h")]
398         public void update_go_menu();
399     }
401     /* objects */
402     namespace MpdData {
403         [CCode (cheader_filename="gmpc-mpddata-treeview.h",cname="GmpcMpdDataTreeview",type_check_function="GMPC_IS_MPDDATA_TREEVIEW",
404                 type_id="GMPC_TYPE_MPDDATA_TREEVIEW")]
405         public class TreeView : Gtk.TreeView {
406             [CCode (cname="gmpc_mpddata_treeview_new")]
407             public TreeView(string name, bool sort, Gtk.TreeModel model);
408             [CCode (cname="gmpc_mpddata_treeview_enable_click_fix")]
409             public void enable_click_fix();
410             [CCode (cname="gmpc_mpddata_treeview_right_mouse_intergration")]
411             public int right_mouse_integration(Gtk.Menu menu);
412         }
414         [CCode (cheader_filename="gmpc-mpddata-model.h")]
415         public class Model : GLib.Object, Gtk.TreeModel{
416             [CCode (has_construct_function = true,cname="gmpc_mpddata_model_new")]
417             public Model();
419             [CCode (cname="gmpc_mpddata_model_set_mpd_data")]
420             public void set_mpd_data(owned MPD.Data.Item? list);
422             [CCode (cname="gmpc_mpddata_model_set_request_artist")]
423             public void set_request_artist(string? list);
425             [CCode (cname="gmpc_mpddata_model_get_request_artist")]
426             public unowned string get_request_artist();
427             public int icon_size;
428         }
430         [CCode (cheader_filename="gmpc-mpddata-model-playlist.h",type_check_function="GMPC_IS_MPDDATA_MODEL_PLAYLIST")]
431         public class ModelPlaylist : Gmpc.MpdData.Model {
432                         public signal void total_playtime_changed(ulong loaded_songs, ulong total_playtime);
434             [CCode (cname="gmpc_mpddata_model_playlist_get_total_playtime")]
435                         public void get_total_playtime( out ulong loaded_song, out ulong total_playtime);
436     
437             [CCode (cname="gmpc_mpddata_model_playlist_is_current_song")]
438             public bool is_current_song(Gtk.TreeIter iter);
439                 }
441         [CCode (cname="", cprefix = "MPDDATA_MODEL_COL_", cheader_filename = "gmpc-mpddata-model.h")]
442             public enum ColumnTypes {
443                     MPDSONG,
444                     PATH,
445                     MARKUP,
446                     SONG_ARTIST,
447                     SONG_ALBUM,                       /* album name */
448                     SONG_TITLE,                       /* song title */
449                     SONG_TITLEFILE,                 /* song title */
450                     SONG_GENRE,                       /* song genre */
451                     SONG_TRACK,                       /* song track */
452                     SONG_NAME,                        /* stream name */
453                     SONG_COMPOSER,                  /* composer name */
454                     SONG_PERFORMER,                 /* performer */
455                     SONG_DATE,                        /* date */
456                     SONG_LENGTH_FORMAT,   /* length formatted */
457                     SONG_DISC,                        /* disc */
458                     SONG_COMMENT,                           /* comment */
459                     ICON_ID,                                  /* icon id */
460                     SONG_ID,
461                     SONG_POS,
462                     SONG_ALBUMARTIST,
463                     PATH_EXTENSION,                             /* Extension */
464                     PATH_DIRECTORY,                             /* Directory */
465                     SONG_PRIORITY,
466             }
468     }
471     namespace MpdInteraction {
472         [CCode (cname="play_path",cheader_filename="mpdinteraction.h")]
473         public void play_path(string path);
474         [CCode (cname="submenu_for_song")]
475         public void submenu_for_song(Gtk.Widget menu, MPD.Song song);
477         [CCode (cname="connection_set_current_profile")]
478         public void set_current_profile(string id);
480                 [CCode (cname="connect_to_mpd")]
481                 public void connect();
482         [CCode (cname="disconnect_from_mpd")]
483         public void disconnect();
484     }
486     namespace Fix{
487         [CCode (cname="gdk_pixbuf_loader_write", cheader_filename="gdk-pixbuf/gdk-pixdata.h")]
488             public void write_loader(Gdk.PixbufLoader loader, string data, size_t size) throws GLib.Error;
490         [CCode (cname="screenshot_add_border", cheader_filename="misc.h")]
491             public void add_border(Gdk.Pixbuf image);
493         [CCode (cname="pango_attr_list_change", cheader_filename="pango/pango.h")]
494             public void change (Pango.AttrList list,owned Pango.Attribute attr);
495     }
497     [CCode (cheader_filename="pixbuf-cache.h")]
498     namespace PixbufCache {
499         [CCode (cname="pixbuf_cache_lookup_icon")]
500             public Gdk.Pixbuf? lookup_icon(int size,[CCode (array_length = false)] uchar[] url);
501         [CCode (cname="pixbuf_cache_add_icon")]
502             public void add_icon(int size,[CCode (array_length = false)] uchar[] url, Gdk.Pixbuf pb);
504     }
506     [CCode (cheader_filename="advanced-search.h")]
507     namespace Query{
508         [CCode (cname="advanced_search")]
509         public MPD.Data.Item? search(string query, bool playlist);
511     }
513         [CCode (cname="gmpcPluginParent",cprefix="gmpc_plugin_",cheader_filename="plugin-internal.h")]
514         [Compact]
515         [Immutable]
516         public class ParentPlugin
517         {
518                 public int get_id();
519                 public unowned string get_name();
520                 public int get_enabled();
521                 public bool has_enabled();
522                 public void set_enabled(int e);
523                 public bool is_browser();
524         }
525         [CCode (cheader_filename="main.h", array_length = false, cname="plugins")]
526         static weak ParentPlugin[] plugins;
527         [CCode (cname="num_plugins",cheader_filename="main.h")]
528         static int num_plugins;
530     namespace Preferences {
531         [CCode (cname="preferences_window_update", cheader_filename="preferences.h")]
532         public void update();
533                 [CCode (cname="preferences_show_pref_window", cheader_filename="preferences.h")]
534                 public void show(int id);
535     }