[ExternalCommand] Add working configure gui.
[gmpc.git] / src / vapi / gmpc.vapi
blobab97ded8e8555adae54528d718991b69b4f2d163
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_set_single_value_as_string", cheader_filename="config1.h")]
313         public void set_string(string @class, string key, string @value);
314         [CCode (cname="cfg_set_single_value_as_int", cheader_filename="config1.h")]
315         public int set_int(string class, string key, int value);
316         [CCode (cname="cfg_set_single_value_as_int", cheader_filename="config1.h")]
317         public int set_bool(string @class, string key, bool @value);
318         [CCode (cname="cfg_get_class_list", cheader_filename="config1.h")]
319         public SettingsList get_class_list();
320         [CCode (cname="cfg_remove_class", cheader_filename="config1.h")]
321         public void remove_class(string key);
322     }
324     [CCode (cheader_filename="config1.h", cname="conf_mult_obj", free_function="cfg_free_multiple")]
325         [Compact]
326         [Immutable]
327     public class SettingsList {
328         public string key;
329         public string @value;
330         public SettingsList next;
331         public unowned SettingsList prev;
332     }
334     namespace Misc{
335         [CCode (cname="colorshift_pixbuf",cheader_filename="misc.h")]
336         public void colorshift_pixbuf(Gdk.Pixbuf dest, Gdk.Pixbuf src, int shift);
338         [CCode (cname="darken_pixbuf",cheader_filename="misc.h")]
339         public void darken_pixbuf(Gdk.Pixbuf dest, uint factor = 1);
340         [CCode (cname="decolor_pixbuf",cheader_filename="misc.h")]
341         public void decolor_pixbuf(Gdk.Pixbuf dest, Gdk.Pixbuf src);
342                 [CCode (cname="screenshot_add_border",cheader_filename="misc.h")]
343                 public void border_pixbuf (Gdk.Pixbuf buf);
344         [CCode (cname="misc_header_expose_event",cheader_filename="misc.h")]
345         public bool misc_header_expose_event(Gtk.Widget widget, Gdk.EventExpose event);
348         [CCode (cname="format_time_real", cheader_filename="misc.h")]
349         public string format_time(ulong seconds, string pre="");
350         [CCode (cname="format_time_real_newline", cheader_filename="misc.h")]
351         public string format_time_newline(ulong seconds, string pre="");
354         [CCode (cname="mpd_song_checksum",cheader_filename="misc.h")]
355         public string? song_checksum(MPD.Song? song);
356         [CCode (cname="mpd_song_checksum_type",cheader_filename="misc.h")]
357         public string? song_checksum_type(MPD.Song? song, Gmpc.MetaData.Type type);
358     }
360     /* Browser */
361     namespace Browser{
362         [CCode (cname="playlist3_insert_browser")]
363         public void insert(out Gtk.TreeIter iter, int position);
365         namespace File {
366             [CCode (cname="pl3_file_browser_open_path")]
367             public void open_path(string path);
368         }
370         namespace Find {
371             [CCode (cname="pl3_find2_ec_database")]
372             public void query_database(void *user_data, string query);
373         }
375         namespace Metadata {
376             [CCode (cname="info2_fill_artist_view")]
377             public void show_artist(string artist);
379             [CCode (cname="info2_fill_album_view")]
380             public void show_album(string artist,string album);
381         }
382     }
384     namespace Playlist3 {
385         [CCode (cname="playlist3_get_category_tree_view")]
386         public unowned Gtk.TreeView get_category_tree_view();
388         [CCode (cname="main_window_add_status_icon")]
389         public void add_status_icon(Gtk.Widget widget);
391         [CCode (cname="pl3_update_go_menu",cheader_filename="plugin.h")]
392         public void update_go_menu();
393     }
395     /* objects */
396     namespace MpdData {
397         [CCode (cheader_filename="gmpc-mpddata-treeview.h",cname="GmpcMpdDataTreeview",type_check_function="GMPC_IS_MPDDATA_TREEVIEW")]
398         public class TreeView : Gtk.TreeView {
399             [CCode (cname="gmpc_mpddata_treeview_new")]
400             public TreeView(string name, bool sort, Gtk.TreeModel model);
401             [CCode (cname="gmpc_mpddata_treeview_enable_click_fix")]
402             public void enable_click_fix();
403             [CCode (cname="gmpc_mpddata_treeview_right_mouse_intergration")]
404             public int right_mouse_integration(Gtk.Menu menu);
405         }
407         [CCode (cheader_filename="gmpc-mpddata-model.h")]
408         public class Model : GLib.Object, Gtk.TreeModel{
409             [CCode (has_construct_function = true,cname="gmpc_mpddata_model_new")]
410             public Model();
412             [CCode (cname="gmpc_mpddata_model_set_mpd_data")]
413             public void set_mpd_data(owned MPD.Data.Item? list);
415             [CCode (cname="gmpc_mpddata_model_set_request_artist")]
416             public void set_request_artist(string? list);
418             [CCode (cname="gmpc_mpddata_model_get_request_artist")]
419             public unowned string get_request_artist();
420             public int icon_size;
421         }
423         [CCode (cheader_filename="gmpc-mpddata-model-playlist.h")]
424         public class ModelPlaylist : Gmpc.MpdData.Model {
425                         public signal void total_playtime_changed(ulong loaded_songs, ulong total_playtime);
427             [CCode (cname="gmpc_mpddata_model_playlist_get_total_playtime")]
428                         public void get_total_playtime( out ulong loaded_song, out ulong total_playtime);
429                 }
430     }
433     namespace MpdInteraction {
434         [CCode (cname="play_path",cheader_filename="mpdinteraction.h")]
435         public void play_path(string path);
436         [CCode (cname="submenu_for_song")]
437         public void submenu_for_song(Gtk.Widget menu, MPD.Song song);
439         [CCode (cname="connection_set_current_profile")]
440         public void set_current_profile(string id);
442                 [CCode (cname="connect_to_mpd")]
443                 public void connect();
444         [CCode (cname="disconnect_from_mpd")]
445         public void disconnect();
446     }
448     namespace Fix{
449         [CCode (cname="gdk_pixbuf_loader_write", cheader_filename="gdk-pixbuf/gdk-pixdata.h")]
450             public void write_loader(Gdk.PixbufLoader loader, string data, size_t size) throws GLib.Error;
452         [CCode (cname="screenshot_add_border", cheader_filename="misc.h")]
453             public void add_border(Gdk.Pixbuf image);
455         [CCode (cname="pango_attr_list_change", cheader_filename="pango/pango.h")]
456             public void change (Pango.AttrList list,owned Pango.Attribute attr);
457     }
459     [CCode (cheader_filename="pixbuf-cache.h")]
460     namespace PixbufCache {
461         [CCode (cname="pixbuf_cache_lookup_icon")]
462             public Gdk.Pixbuf? lookup_icon(int size,[CCode (array_length = false)] uchar[] url);
463         [CCode (cname="pixbuf_cache_add_icon")]
464             public void add_icon(int size,[CCode (array_length = false)] uchar[] url, Gdk.Pixbuf pb);
466     }
468     [CCode (cheader_filename="advanced-search.h")]
469     namespace Query{
470         [CCode (cname="advanced_search")]
471         public MPD.Data.Item? search(string query, bool playlist);
473     }
475         [CCode (cname="gmpcPluginParent",cprefix="gmpc_plugin_",cheader_filename="plugin-internal.h")]
476         [Compact]
477         [Immutable]
478         public class ParentPlugin
479         {
480                 public int get_id();
481                 public unowned string get_name();
482                 public int get_enabled();
483                 public bool has_enabled();
484                 public void set_enabled(int e);
485                 public bool is_browser();
486         }
487         [CCode (cheader_filename="main.h", array_length = false, cname="plugins")]
488         static weak ParentPlugin[] plugins;
489         [CCode (cname="num_plugins",cheader_filename="main.h")]
490         static int num_plugins;
492     namespace Preferences {
493         [CCode (cname="preferences_window_update", cheader_filename="preferences.h")]
494         public void update();
495                 [CCode (cname="preferences_show_pref_window", cheader_filename="preferences.h")]
496                 public void show(int id);
497     }