Add rating column
[gmpc.git] / src / vapi / gmpc.vapi
blobc638ec02a5412925e2100176d90a4f9acfdb2149
2 namespace Gmpc {
3     [CCode (cname="TRUE",cheader_filename="gtk/gtk.h,gtktransition.h")]
4     static const bool use_transition;
6     [CCode (cname="browsers_metadata")]
7     static Gmpc.Browsers.Metadata browsers_metadata;
9     [CCode (cname="tag2_browser_update_orientation")]
10     static void tag2_browser_update_orientation();
12     [CCode (cname="paned_size_group", cheader_filename="plugin.h")]
13     static PanedSizeGroup paned_size_group;
15     [CCode (cname = "gmpcconn", cheader_filename="main.h")]
16     static Connection gmpcconn;
18     [CCode (cname = "connection", cheader_filename="plugin.h")]
19     static MPD.Server server;
21     [CCode (cname = "gmw", cheader_filename="main.h")]
22     static Meta.Watcher metawatcher;
24     [CCode (cname = "gmpc_profiles", cheader_filename="plugin.h")]
25     static Profiles profiles;
27     [CCode (cname = "gmpc_easy_command", cheader_filename="plugin.h")]
28     static Easy.Command  easy_command;
30         [CCode (cname = "playlist", cheader_filename="main.h")]
31         static Gmpc.MpdData.ModelPlaylist playlist;
34    [CCode (cheader_filename="metadata.h")]
35    namespace MetaData {
36         [CCode (cname="MetaDataContentType", cprefix = "META_DATA_CONTENT_", cheader_filename = "libmpd/libmpd.h,metadata.h")]
37         public enum ContentType {
38             EMPTY,
39             URI,
40             TEXT,
41             RAW,
42             HTML,
43             STRV,
44             TEXT_LIST
45         }
47         [CCode (cname="MetaData",free_function="meta_data_free",copy_function="meta_data_dup",has_type_id = false)]
48         [Compact]
49         public class Item {
50             [CCode (cname="meta_data_new")]
51             public Item ();
52             public Gmpc.MetaData.Type type;
53             [CCode (cname="meta_data_dup")]
54             public static Item copy(Item item);
55                         [CCode (cname="meta_data_dup")]
56                         public Item dup();
59            public unowned string plugin_name;
60            public int size;
61            public void * content;
62                    [CCode (array_length = false)]
63                    public uchar[] md5sum;
64                    public Gmpc.MetaData.ContentType content_type;
66            [CCode (cname="meta_data_is_empty")]
67            public bool is_empty();
70            /* add accessors? */
71            [CCode (cname="meta_data_get_raw")]
72            public unowned uchar[] get_raw();
73            [CCode (cname="meta_data_set_raw")]
74            public void set_raw(uchar[] data);
75            [CCode (cname="meta_data_set_raw_owned")]
76            public void set_raw_void(ref void *data,ref uint length);
78            [CCode (cname="meta_data_get_text")]
79            public unowned string  get_text();
80            [CCode (cname="meta_data_set_text")]
81            public void set_text(string data);
83            [CCode (cname="meta_data_get_text_from_html")]
84            public string get_text_from_html();
85            /* same as get_text */
87            [CCode (cname="meta_data_get_uri")]
88            public unowned string? get_uri();
89            [CCode (cname="meta_data_set_uri")]
90            public void set_uri(string uri);
91            [CCode (cname="meta_data_get_thumbnail_uri")]
92            public unowned string? get_thumbnail_uri();
93            [CCode (cname="meta_data_set_thumbnail_uri")]
94            public void set_thumbnail_uri(string uri);
96            [CCode (cname="meta_data_get_html")]
97            public unowned string get_html();
99            [CCode (cname="meta_data_get_text_vector")]
100            public unowned string[] get_text_vector();
102            [CCode (cname="meta_data_get_text_list")]
103            public unowned GLib.List<unowned string> get_text_list();
105            [CCode (cname="meta_data_is_text_list")]
106            public bool  is_text_list();
107            [CCode (cname="meta_data_dup_steal")]
108            public MetaData.Item dup_steal();
110         }
112         [CCode (cname="MetaDataType", cprefix = "META_", cheader_filename = "metadata.h", has_type_id = false)]
113         public enum Type {
114             ALBUM_ART       = 1,
115             ARTIST_ART      = 2,
116             ALBUM_TXT       = 4,
117             ARTIST_TXT      = 8,
118             SONG_TXT        = 16,
119             ARTIST_SIMILAR  = 32,
120             SONG_SIMILAR    = 64,
121             GENRE_SIMILAR   = 128,
122             SONG_GUITAR_TAB = 256,
123                         BACKDROP_ART    = 512,
124             QUERY_DATA_TYPES = 65535,
125             QUERY_NO_CACHE   = 65536
126         }
128         [CCode (cname="MetaDataResult", cprefix = "META_DATA_", cheader_filename = "metadata.h", has_type_id = false)]
129         public enum Result {
130             AVAILABLE,
131             UNAVAILABLE,
132             FETCHING
133         }
135         [CCode (cname="meta_data_get_path")]
136         public MetaData.Result get_path(MPD.Song song, Type type, out MetaData.Item item, Callback? callback=null);
138         public delegate void Callback (void *handle,string? plugin_name, GLib.List<MetaData.Item>? list);
139         [CCode ( cname="metadata_get_list", cheader_filename="libmpd/libmpd.h,metadata.h" )]
140         public void* get_list(MPD.Song song, Type type, Callback callback);
142         [CCode ( cname="metadata_get_list_cancel", cheader_filename="metadata.h" )]
143         public void* get_list_cancel(void *handle);
146         [CCode ( cname="meta_data_set_entry", cheader_filename="metadata.h")]
147         public void set_metadata(MPD.Song song, Gmpc.MetaData.Item met);
149         [CCode ( cname="gmpc_get_metadata_filename", cheader_filename="libmpd/libmpd.h,metadata.h")]
150         public string get_metadata_filename(Type type, MPD.Song song, string? extension);
152         [CCode ( cname="GmpcMetaImage", cheader_filename="gmpc-metaimage.h")]
153         public class Image: Gtk.Widget {
154                         public int size;
155             [CCode (cname="gmpc_metaimage_new_size")]
156             public Image(Type type, int size);
157             [CCode (cname="gmpc_metaimage_update_cover_from_song")]
158             public void update_from_song(MPD.Song song);
160             [CCode (cname="gmpc_metaimage_update_cover_from_song_delayed")]
161             public void update_from_song_delayed(MPD.Song song);
162             [CCode (cname="gmpc_metaimage_set_squared")]
163             public void set_squared(bool squared);
164             [CCode (cname="gmpc_metaimage_set_hide_on_na")]
165             public void set_hide_on_na(bool hide);
166             [CCode (cname="gmpc_metaimage_set_no_cover_icon")]
167             public void set_no_cover_icon(string name);
168             [CCode (cname="gmpc_metaimage_set_loading_cover_icon")]
169             public void set_loading_cover_icon(string name);
171             [CCode (cname="gmpc_metaimage_set_cover_na")]
172             public void set_cover_na();
173             [CCode (cname="gmpc_metaimage_set_scale_up")]
174             public void set_scale_up(bool scale);
176             [CCode (cname="gmpc_metaimage_set_dirty")]
177             public void set_dirty();
178         }
180         [CCode ( cname="GmpcMetaTextView", cheader_filename="gmpc-meta-text-view.h")]
181         public class TextView: Gtk.TextView {
182                 public bool use_monospace;
183             [CCode (cname="gmpc_meta_text_view_new")]
184                 public TextView(Type type);
185             [CCode (cname="gmpc_meta_text_view_query_text_from_song")]
186                 public void query_from_song(MPD.Song song);
187                 public bool force_ro;
188         }
190    }
192    namespace Messages {
193        [CCode (cprefix = "ERROR_", cheader_filename = "playlist3-messages.h")]
194        public enum Level{
195         INFO,
196         WARNING,
197         CRITICAL
198     }
200     [CCode (cname = "playlist3_show_error_message", cheader_filename="playlist3-messages.h")]
201     void show(string message, Gmpc.Messages.Level level);
203     [CCode (cname = "playlist3_error_add_widget", cheader_filename="playlist3-messages.h")]
204         void add_widget(Gtk.Widget widget);
205    }
207    namespace AsyncDownload {
208      [CCode (cname="GEADStatus",cprefix = "GEAD_", cheader_filename = "gmpc_easy_download.h")]
209         public enum Status {
210             DONE,
211             PROGRESS,
212             FAILED,
213             CANCELLED
214         }
216         [CCode (cname="GEADAsyncHandler", cheader_filename="gmpc_easy_download.h",ref_function="", unref_function ="")]
217         [Compact]
218         [Immutable]
219         public class Handle {
220             [CCode (cname="gmpc_easy_async_cancel", cheader_filename="gmpc_easy_download.h")]
221             public void cancel ();
222             /* Gets raw data. Remember data_length does not include trailing \0. */
223             [CCode (cname="gmpc_easy_handler_get_data_vala_wrap", cheader_filename="gmpc_easy_download.h")]
224             public unowned uchar[] get_data();
226             [CCode (cname="gmpc_easy_handler_get_data_as_string", cheader_filename="gmpc_easy_download.h")]
227             public unowned string get_data_as_string();
229             [CCode (cname="gmpc_easy_handler_get_uri", cheader_filename="gmpc_easy_download.h")]
230             public unowned string get_uri();
232             [CCode (cname="gmpc_easy_handler_get_user_data", cheader_filename="gmpc_easy_download.h")]
233             public void * get_user_data();
235             [CCode (cname="gmpc_easy_handler_set_user_data", cheader_filename="gmpc_easy_download.h")]
236             public void set_user_data(void *user_data);
238             [CCode (cname="gmpc_easy_handler_get_content_size", cheader_filename="gmpc_easy_download.h")]
239             public int64 get_content_size();
240         }
243         public delegate void Callback (Gmpc.AsyncDownload.Handle handle, Gmpc.AsyncDownload.Status status);
244         public delegate void CallbackVala (Gmpc.AsyncDownload.Handle handle, Gmpc.AsyncDownload.Status status, void *p);
246         [CCode (cname="gmpc_easy_async_downloader_vala", cheader_filename="gmpc_easy_download.h")]
247         public unowned Gmpc.AsyncDownload.Handle download_vala(string uri, void *p,Gmpc.AsyncDownload.CallbackVala callback);
248         [CCode (cname="gmpc_easy_async_downloader", cheader_filename="gmpc_easy_download.h")]
249         public unowned Gmpc.AsyncDownload.Handle download(string uri, Gmpc.AsyncDownload.Callback callback);
251         [CCode (cname="gmpc_easy_download_uri_escape", cheader_filename="gmpc_easy_download.h")]
252         public string escape_uri(string part);
253    }
255     [CCode (cname="gmpc_get_full_glade_path", cheader_filename="plugin.h")]
256     public string data_path(string file);
257     [CCode (cname="gmpc_get_user_path", cheader_filename="plugin.h")]
258     public string user_path(string file);
259     [CCode (cname="open_uri", cheader_filename="misc.h")]
260     public void open_uri(string uri);
261     [CCode (cname="open_help", cheader_filename="misc.h")]
262         public void open_help(string uri);
264     namespace Playlist {
265                 [CCode (cname="Pl3CatBrowserType", cprefix="PL3_CAT_BROWSER_", cheader_filename="plugin.h")]
266                 public enum BrowserType{
267                         TOP,
268                         LIBRARY,
269                         ONLINE_MEDIA,
270                         MISC
271                 }
272         [CCode (cname="(GtkWindow *)playlist3_get_window", cheader_filename="plugin.h")]
273         public unowned Gtk.Window get_window();
274         [CCode (cname="playlist3_window_is_hidden", cheader_filename="plugin.h")]
275         public bool is_hidden();
277         [CCode (cname="pl3_hide", cheader_filename="plugin.h")]
278         public void hide();
280         [CCode (cname="create_playlist3", cheader_filename="plugin.h")]
281         public void show();
282         [CCode (cname="playlist3_get_accel_group", cheader_filename="playlist3.h")]
283         public unowned Gtk.AccelGroup get_accel_group();
285         [CCode (cname="playlist3_get_widget_by_id", cheader_filename="playlist3.h")]
286         public Gtk.Widget get_widget_by_id(string id);
288                 [CCode (cname="playlist3_get_sidebar_state", cheader_filename="plugin.h")]
289                 public Gmpc.Plugin.SidebarState get_sidebar_state();
290     }
292     namespace TrayIcon2 {
293         [CCode (cname="trayicon2_toggle_use_appindicator", cheader_filename="tray-icon2.h")]
294         public void toggle_use_appindicator();
296         [CCode (cname="trayicon2_have_appindicator_support", cheader_filename="tray-icon2.h")]
297         public bool have_appindicator_support();
298     }
300         [CCode (cname = "config", cheader_filename="plugin.h")]
301         static Settings config;
302     [CCode (cheader_filename="config1.h",cname="config_obj", free_function="cfg_close")]
303         [Compact]
304         [Immutable]
305     public class Settings {
306         [CCode (cname="cfg_open", cheader_filename="config1.h")]
307         public Settings.from_file(string file);
308         [CCode (cname="cfg_get_single_value_as_string_with_default", cheader_filename="config1.h")]
309         public string get_string_with_default(string class, string key, string value);
310         [CCode (cname="cfg_get_single_value_as_string", cheader_filename="config1.h")]
311         public string? get_string(string @class, string key);
312         [CCode (cname="cfg_get_single_value_as_int_with_default", cheader_filename="config1.h")]
313         public int get_int_with_default(string class, string key, int value);
314         [CCode (cname="cfg_get_single_value_as_int", cheader_filename="config1.h")]
315         public int get_int(string @class, string key);
316         [CCode (cname="cfg_get_single_value_as_int", cheader_filename="config1.h")]
317         public bool get_bool(string @class, string key);
318         [CCode (cname="cfg_get_single_value_as_int_with_default", cheader_filename="config1.h")]
319         public bool get_bool_with_default(string @class, string key, bool value);
320         [CCode (cname="cfg_set_single_value_as_string", cheader_filename="config1.h")]
321         public void set_string(string @class, string key, string @value);
322         [CCode (cname="cfg_set_single_value_as_int", cheader_filename="config1.h")]
323         public int set_int(string class, string key, int value);
324         [CCode (cname="cfg_set_single_value_as_int", cheader_filename="config1.h")]
325         public int set_bool(string @class, string key, bool @value);
326         [CCode (cname="cfg_get_class_list", cheader_filename="config1.h")]
327         public SettingsList get_class_list();
328         [CCode (cname="cfg_remove_class", cheader_filename="config1.h")]
329         public void remove_class(string key);
330     }
332     [CCode (cheader_filename="config1.h", cname="conf_mult_obj", free_function="cfg_free_multiple")]
333         [Compact]
334         [Immutable]
335     public class SettingsList {
336         public string key;
337         public string @value;
338         public SettingsList next;
339         public unowned SettingsList prev;
340     }
342     namespace Misc{
343         [CCode (cname="colorshift_pixbuf",cheader_filename="misc.h")]
344         public void colorshift_pixbuf(Gdk.Pixbuf dest, Gdk.Pixbuf src, int shift);
346         [CCode (cname="darken_pixbuf",cheader_filename="misc.h")]
347         public void darken_pixbuf(Gdk.Pixbuf dest, uint factor = 1);
348         [CCode (cname="decolor_pixbuf",cheader_filename="misc.h")]
349         public void decolor_pixbuf(Gdk.Pixbuf dest, Gdk.Pixbuf src);
350                 [CCode (cname="screenshot_add_border",cheader_filename="misc.h")]
351                 public void border_pixbuf (Gdk.Pixbuf buf);
352         [CCode (cname="misc_header_expose_event",cheader_filename="misc.h")]
353         public bool misc_header_expose_event(Gtk.Widget widget, Cairo.Context ct);
356         [CCode (cname="format_time_real", cheader_filename="misc.h")]
357         public string format_time(ulong seconds, string pre="");
358         [CCode (cname="format_time_real_newline", cheader_filename="misc.h")]
359         public string format_time_newline(ulong seconds, string pre="");
362         [CCode (cname="mpd_song_checksum",cheader_filename="misc.h")]
363         public string? song_checksum(MPD.Song? song);
364         [CCode (cname="mpd_song_checksum_type",cheader_filename="misc.h")]
365         public string? song_checksum_type(MPD.Song? song, Gmpc.MetaData.Type type);
366     }
368     /* Browser */
369     namespace Browser{
370         [CCode (cname="playlist3_insert_browser")]
371         public void insert(out Gtk.TreeIter iter, int position);
373         namespace File {
374             [CCode (cname="pl3_file_browser_open_path")]
375             public void open_path(string path);
376         }
378         namespace Find {
379             [CCode (cname="pl3_find2_ec_database")]
380             public void query_database(void *user_data, string query);
381         }
383         namespace Metadata {
384             [CCode (cname="info2_activate")]
385             public void show();
386             [CCode (cname="info2_fill_song_view")]
387             public void show_song(MPD.Song song);
388             [CCode (cname="info2_fill_artist_view")]
389             public void show_artist(string artist);
391             [CCode (cname="info2_fill_album_view")]
392             public void show_album(string artist,string album);
393         }
394         namespace PlaylistEditor {
395         
397             public delegate void Callback (Gtk.MenuItem item);
398             [CCode (cname="playlist_editor_right_mouse")]
399             public void right_mouse(Gtk.Menu menu, Callback cb);
400         }
401     }
403     namespace Playlist3 {
404         [CCode (cname="playlist3_get_category_tree_view")]
405         public unowned Gtk.TreeView get_category_tree_view();
407         [CCode (cname="main_window_add_status_icon")]
408         public void add_status_icon(Gtk.Widget widget);
410         [CCode (cname="pl3_update_go_menu",cheader_filename="plugin.h")]
411         public void update_go_menu();
412     }
414     /* objects */
415     namespace MpdData {
417         [CCode (cheader_filename="gmpc-mpddata-model.h")]
418         public class Model : GLib.Object, Gtk.TreeModel{
419             [CCode (has_construct_function = true,cname="gmpc_mpddata_model_new")]
420             public Model();
422             [CCode (cname="gmpc_mpddata_model_set_mpd_data")]
423             public void set_mpd_data(owned MPD.Data.Item? list);
425             [CCode (cname="gmpc_mpddata_model_set_request_artist")]
426             public void set_request_artist(string? list);
428             [CCode (cname="gmpc_mpddata_model_get_request_artist")]
429             public unowned string get_request_artist();
430             public int icon_size;
431         }
433         [CCode (cheader_filename="gmpc-mpddata-model-playlist.h",type_check_function="GMPC_IS_MPDDATA_MODEL_PLAYLIST", type_id="GMPC_TYPE_MPDDATA_MODEL_PLAYLIST")]
434         public class ModelPlaylist : Gmpc.MpdData.Model {
435                         public signal void total_playtime_changed(ulong loaded_songs, ulong total_playtime);
437             [CCode (cname="gmpc_mpddata_model_playlist_get_total_playtime")]
438                         public void get_total_playtime( out ulong loaded_song, out ulong total_playtime);
439     
440             [CCode (cname="gmpc_mpddata_model_playlist_is_current_song")]
441             public bool is_current_song(Gtk.TreeIter iter);
442                 }
444         [CCode (cname="", cprefix = "MPDDATA_MODEL_", cheader_filename = "gmpc-mpddata-model.h")]
445             public enum ColumnTypes {
446                     COL_MPDSONG,
447                     COL_PATH,
448                     COL_MARKUP,
449                     COL_SONG_ARTIST,
450                     COL_SONG_ALBUM,                           /* album name */
451                     COL_SONG_TITLE,                           /* song title */
452                     COL_SONG_TITLEFILE,             /* song title */
453                     COL_SONG_GENRE,                           /* song genre */
454                     COL_SONG_TRACK,                           /* song track */
455                     COL_SONG_NAME,                            /* stream name */
456                     COL_SONG_COMPOSER,              /* composer name */
457                     COL_SONG_PERFORMER,             /* performer */
458                     COL_SONG_DATE,                            /* date */
459                     COL_SONG_LENGTH_FORMAT,       /* length formatted */
460                     COL_SONG_DISC,                            /* disc */
461                     COL_SONG_COMMENT,                       /* comment */
462                     COL_ICON_ID,                                      /* icon id */
463                     COL_SONG_ID,
464                     COL_SONG_POS,
465                     COL_SONG_ALBUMARTIST,
466                     COL_PATH_EXTENSION,                         /* Extension */
467                     COL_PATH_DIRECTORY,                         /* Directory */
468                     COL_SONG_PRIORITY,
469                     COL_SONG_RATING,
470                     ROW_TYPE,
471             }
473     }
476     namespace MpdInteraction {
477         [CCode (cname="play_path",cheader_filename="mpdinteraction.h")]
478         public void play_path(string path);
479         [CCode (cname="submenu_for_song")]
480         public void submenu_for_song(Gtk.Widget menu, MPD.Song song);
482         [CCode (cname="connection_set_current_profile")]
483         public void set_current_profile(string id);
485                 [CCode (cname="connect_to_mpd")]
486                 public void connect();
487         [CCode (cname="disconnect_from_mpd")]
488         public void disconnect();
489     }
491     namespace Fix{
492         [CCode (cname="gdk_pixbuf_loader_write", cheader_filename="gdk-pixbuf/gdk-pixdata.h")]
493             public void write_loader(Gdk.PixbufLoader loader, string data, size_t size) throws GLib.Error;
495         [CCode (cname="screenshot_add_border", cheader_filename="misc.h")]
496             public void add_border(Gdk.Pixbuf image);
498         [CCode (cname="pango_attr_list_change", cheader_filename="pango/pango.h")]
499             public void change (Pango.AttrList list,owned Pango.Attribute attr);
500     }
502     [CCode (cheader_filename="pixbuf-cache.h")]
503     namespace PixbufCache {
504         [CCode (cname="pixbuf_cache_lookup_icon")]
505             public Gdk.Pixbuf? lookup_icon(int size,[CCode (array_length = false)] uchar[] url);
506         [CCode (cname="pixbuf_cache_add_icon")]
507             public void add_icon(int size,[CCode (array_length = false)] uchar[] url, Gdk.Pixbuf pb);
509     }
511     [CCode (cheader_filename="advanced-search.h")]
512     namespace Query{
513         [CCode (cname="advanced_search")]
514         public MPD.Data.Item? search(string query, bool playlist);
516     }
518         [CCode (cname="gmpcPluginParent",cprefix="gmpc_plugin_",cheader_filename="plugin-internal.h")]
519         [Compact]
520         [Immutable]
521         public class ParentPlugin
522         {
523                 public int get_id();
524                 public unowned string get_name();
525                 public bool get_enabled();
526                 public bool has_enabled();
527                 public void set_enabled(int e);
528                 public bool is_browser();
529         public int tool_menu_integration(Gtk.Menu menu);
530         public int browser_cat_right_mouse_menu(Gtk.Menu menu, int type, Gtk.TreeView tree, Gdk.EventButton button);
531         public int browser_song_list_option_menu(Gtk.TreeView tree, Gtk.Menu menu);
532         }
533         [CCode (cheader_filename="main.h", array_length = false, cname="plugins")]
534         static weak ParentPlugin[] plugins;
535         [CCode (cname="num_plugins",cheader_filename="main.h")]
536         static int num_plugins;
538     namespace Preferences {
539         [CCode (cname="preferences_window_update", cheader_filename="preferences.h")]
540         public void update();
541                 [CCode (cname="preferences_show_pref_window", cheader_filename="preferences.h")]
542                 public void show(int id);
543     }