Working on new treeview.
[gmpc.git] / src / vapi / gmpc.vapi
blob81c6981451e2e5bfe302dd8f7ff01ae7ee90d7d9
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, Cairo.Context ct);
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                 type_id="GMPC_TYPE_MPDDATA_TREEVIEW")]
399         public class TreeView : Gtk.TreeView {
400             [CCode (cname="gmpc_mpddata_treeview_new")]
401             public TreeView(string name, bool sort, Gtk.TreeModel model);
402             [CCode (cname="gmpc_mpddata_treeview_enable_click_fix")]
403             public void enable_click_fix();
404             [CCode (cname="gmpc_mpddata_treeview_right_mouse_intergration")]
405             public int right_mouse_integration(Gtk.Menu menu);
406         }
408         [CCode (cheader_filename="gmpc-mpddata-model.h")]
409         public class Model : GLib.Object, Gtk.TreeModel{
410             [CCode (has_construct_function = true,cname="gmpc_mpddata_model_new")]
411             public Model();
413             [CCode (cname="gmpc_mpddata_model_set_mpd_data")]
414             public void set_mpd_data(owned MPD.Data.Item? list);
416             [CCode (cname="gmpc_mpddata_model_set_request_artist")]
417             public void set_request_artist(string? list);
419             [CCode (cname="gmpc_mpddata_model_get_request_artist")]
420             public unowned string get_request_artist();
421             public int icon_size;
422         }
424         [CCode (cheader_filename="gmpc-mpddata-model-playlist.h")]
425         public class ModelPlaylist : Gmpc.MpdData.Model {
426                         public signal void total_playtime_changed(ulong loaded_songs, ulong total_playtime);
428             [CCode (cname="gmpc_mpddata_model_playlist_get_total_playtime")]
429                         public void get_total_playtime( out ulong loaded_song, out ulong total_playtime);
430                 }
432         [CCode (cname="", cprefix = "MPDDATA_MODEL_COL_", cheader_filename = "gmpc-mpddata-model.h")]
433             public enum ColumnTypes {
434                 MARKUP,
435                     SONG_ARTIST,
436                     SONG_ALBUM,                       /* album name */
437                     SONG_TITLE,                       /* song title */
438                     SONG_TITLEFILE,                 /* song title */
439                     SONG_GENRE,                       /* song genre */
440                     SONG_TRACK,                       /* song track */
441                     SONG_NAME,                        /* stream name */
442                     SONG_COMPOSER,                  /* composer name */
443                     SONG_PERFORMER,                 /* performer */
444                     SONG_DATE,                        /* date */
445                     SONG_LENGTH_FORMAT,   /* length formatted */
446                     SONG_DISC,                        /* disc */
447                     SONG_COMMENT,                           /* comment */
448                     ICON_ID,                                  /* icon id */
449                     SONG_POS,
450                     SONG_ALBUMARTIST,
451                     PATH_EXTENSION,                             /* Extension */
452                     PATH_DIRECTORY,                             /* Directory */
453                     SONG_PRIORITY,
454             }
456     }
459     namespace MpdInteraction {
460         [CCode (cname="play_path",cheader_filename="mpdinteraction.h")]
461         public void play_path(string path);
462         [CCode (cname="submenu_for_song")]
463         public void submenu_for_song(Gtk.Widget menu, MPD.Song song);
465         [CCode (cname="connection_set_current_profile")]
466         public void set_current_profile(string id);
468                 [CCode (cname="connect_to_mpd")]
469                 public void connect();
470         [CCode (cname="disconnect_from_mpd")]
471         public void disconnect();
472     }
474     namespace Fix{
475         [CCode (cname="gdk_pixbuf_loader_write", cheader_filename="gdk-pixbuf/gdk-pixdata.h")]
476             public void write_loader(Gdk.PixbufLoader loader, string data, size_t size) throws GLib.Error;
478         [CCode (cname="screenshot_add_border", cheader_filename="misc.h")]
479             public void add_border(Gdk.Pixbuf image);
481         [CCode (cname="pango_attr_list_change", cheader_filename="pango/pango.h")]
482             public void change (Pango.AttrList list,owned Pango.Attribute attr);
483     }
485     [CCode (cheader_filename="pixbuf-cache.h")]
486     namespace PixbufCache {
487         [CCode (cname="pixbuf_cache_lookup_icon")]
488             public Gdk.Pixbuf? lookup_icon(int size,[CCode (array_length = false)] uchar[] url);
489         [CCode (cname="pixbuf_cache_add_icon")]
490             public void add_icon(int size,[CCode (array_length = false)] uchar[] url, Gdk.Pixbuf pb);
492     }
494     [CCode (cheader_filename="advanced-search.h")]
495     namespace Query{
496         [CCode (cname="advanced_search")]
497         public MPD.Data.Item? search(string query, bool playlist);
499     }
501         [CCode (cname="gmpcPluginParent",cprefix="gmpc_plugin_",cheader_filename="plugin-internal.h")]
502         [Compact]
503         [Immutable]
504         public class ParentPlugin
505         {
506                 public int get_id();
507                 public unowned string get_name();
508                 public int get_enabled();
509                 public bool has_enabled();
510                 public void set_enabled(int e);
511                 public bool is_browser();
512         }
513         [CCode (cheader_filename="main.h", array_length = false, cname="plugins")]
514         static weak ParentPlugin[] plugins;
515         [CCode (cname="num_plugins",cheader_filename="main.h")]
516         static int num_plugins;
518     namespace Preferences {
519         [CCode (cname="preferences_window_update", cheader_filename="preferences.h")]
520         public void update();
521                 [CCode (cname="preferences_show_pref_window", cheader_filename="preferences.h")]
522                 public void show(int id);
523     }