output: add _get_plugin()
[libmpdclient.git] / vapi / libmpdclient.vapi
blob08dd1a8c80623040e46ad894b7c010e99827c381
1 [CCode (cprefix = "mpd_", cheader_filename = "mpd/client.h")]
3 namespace Mpd {
4         [CCode (cname = "enum mpd_error")]
5         public enum Error {
6                 SUCCESS = 0,
7                 OOM,
8                 ARGUMENT,
9                 STATE,
10                 TIMEOUT,
11                 SYSTEM,
12                 RESOLVER,
13                 MALFORMED,
14                 CLOSED,
15                 SERVER
16         }
18         [CCode (cname = "enum mpd_async_event")]
19         public enum AsyncEvent {
20                 READ = 1,
21                 WRITE = 2,
22                 HUP = 4,
23                 ERROR = 8
24         }
26         [CCode (cname = "enum mpd_server_error")]
27         public enum ServerError {
28                 UNK = -1,
29                 NOT_LIST = 1,
30                 ARG = 2,
31                 PASSWORD = 3,
32                 PERMISSION = 4,
33                 UNKNOWN_CMD = 5,
34                 NO_EXIST = 50,
35                 PLAYLIST_MAX = 51,
36                 SYSTEM = 52,
37                 PLAYLIST_LOAD = 53,
38                 UPDATE_ALREADY = 54,
39                 PLAYER_SYNC = 55,
40                 ERROR_EXIST = 56
41         }
43         [CCode (cname = "enum mpd_entity_type")]
44         public enum EntityType {
45                 UNKNOWN,
46                 DIRECTORY,
47                 SONG,
48                 PLAYLIST
49         }
51         [CCode (cname = "enum mpd_idle")]
52         public enum Idle {
53                 DATABASE = 0x1,
54                 STORED_PLAYLIST = 0x2,
55                 QUEUE = 0x4,
56                 PLAYLIST = QUEUE,
57                 PLAYER = 0x8,
58                 MIXER = 0x10,
59                 OUTPUT = 0x20,
60                 OPTIONS = 0x40,
61                 UPDATE = 0x80,
62                 STICKER = 0x100,
63                 SUBSCRIPTION = 0x200,
64                 MESSAGE = 0x400
65         }
67         [CCode (cname = "enum mpd_parser_result")]
68         public enum ParserResult {
69                 MALFORMED,
70                 SUCCESS,
71                 ERROR,
72                 PAIR
73         }
75         [CCode (cname = "enum mpd_operator")]
76         public enum Operator {
77                 DEFAULT
78         }
80         [CCode (cname = "enum mpd_tag_type",
81                 cprefix = "MPD_TAG_")]
82         public enum TagType {
83                 UNKNOWN = -1,
84                 ARTIST,
85                 ALBUM,
86                 ALBUM_ARTIST,
87                 TITLE,
88                 TRACK,
89                 NAME,
90                 GENRE,
91                 DATE,
92                 COMPOSER,
93                 PERFORMER,
94                 COMMENT,
95                 DISC,
96                 MUSICBRAINZ_ARTISTID,
97                 MUSICBRAINZ_ALBUMID,
98                 MUSICBRAINZ_ALBUMARTISTID,
99                 MUSICBRAINZ_TRACKID,
100                 MUSICBRAINZ_RELEASETRACKID,
101                 COUNT
102         }
104         [CCode (cname = "enum mpd_state")]
105         public enum State {
106                 UNKNOWN = 0,
107                 STOP = 1,
108                 PLAY = 2,
109                 PAUSE = 3
110         }
112         [CCode (cname = "struct mpd_async",
113                 free_function = "mpd_async_free")]
114         [Compact]
115         public class Async {
116                 public Mpd.Error error { get; }
117                 public string? error_message { get; }
118                 public int system_error { get; }
119                 public int fd { get; }
121                 public Async(int fd);
122                 public Mpd.Error get_error();
123                 public unowned string? get_error_message();
124                 public int get_system_error();
125                 public int get_fd();
126                 public Mpd.AsyncEvent events();
127                 public bool async_io(Mpd.AsyncEvent events);
128                 public bool send_command_v(string command, va_list args);
129                 public bool send_command(string command, ...);
130                 public string? recv_line();
131         }
133         [CCode (cname = "struct mpd_audio_format")]
134         [Compact]
135         public class AudioFormat {
136                 public uint8 bits;
137                 public uint8 channels;
138                 public uint32 sample_rate;
139         }
141         [CCode (cname = "struct mpd_connection",
142                 free_function="mpd_connection_free")]
143         [Compact]
144         public class Connection {
145                 public int fd { get; }
146                 public Mpd.Async async { get; }
147                 public Mpd.Error error { get; }
148                 public string error_message { get; }
149                 public Mpd.ServerError server_error { get; }
150                 public int system_error { get; }
151                 public uint[] server_version { get; }
152                 public uint server_error_location { get; }
153                 public uint timeout { set; }
154                 public Settings settings { get; }
156                 public Connection(string? host = null, uint port = 0, uint timeout_ms = 0);
157                 [CCode (cname = "mpd_connection_new_async")]
158                 public Connection.from_async(Mpd.Async async, string welcome);
159                 public void set_timeout(uint timeout_ms);
160                 public int get_fd();
161                 public Mpd.Async get_async();
162                 public Mpd.Error get_error();
163                 public unowned string get_error_message();
164                 public Mpd.ServerError get_server_error();
165                 public uint get_server_error_location();
166                 public int get_system_error();
167                 public bool clear_error();
168                 public uint[] get_server_version();
169                 public int cmp_server_version(uint major, uint minor, uint patch);
170                 public Settings get_settings();
171                 [CCode (cname = "mpd_recv_directory")]
172                 public Directory? recv_directory();
173                 [CCode (cname = "mpd_recv_entity")]
174                 public Entity? recv_entity();
175                 [CCode (cname = "mpd_command_list_begin")]
176                 public bool command_list_begin(bool discrete_ok = false);
177                 [CCode (cname = "mpd_command_list_end")]
178                 public bool command_list_end();
179                 [CCode (cname = "mpd_send_set_volume")]
180                 public bool send_set_volume(uint volume);
181                 [CCode (cname = "mpd_run_set_volume")]
182                 public bool run_set_volume(uint volume);
183                 [CCode (cname = "mpd_send_outputs")]
184                 public bool send_outputs();
185                 [CCode (cname = "mpd_recv_output")]
186                 public Output recv_output();
187                 [CCode (cname = "mpd_send_enable_output")]
188                 public bool send_enable_output(uint output_id);
189                 [CCode (cname = "mpd_run_enable_output")]
190                 public bool run_enable_output(uint output_id);
191                 [CCode (cname = "mpd_send_disable_output")]
192                 public bool send_disable_output(uint output_id);
193                 [CCode (cname = "mpd_run_disable_output")]
194                 public bool run_disable_output(uint output_id);
195                 [CCode (cname = "mpd_send_password")]
196                 public bool send_password(string password);
197                 [CCode (cname = "mpd_run_password")]
198                 public bool run_password(string password);
199                 [CCode (cname = "mpd_recv_playlist")]
200                 public Playlist recv_playlist();
201                 [CCode (cname = "mpd_send_list_playlist")]
202                 public bool send_list_playlist(string name);
203                 [CCode (cname = "mpd_send_list_playlist_meta")]
204                 public bool send_list_playlist_meta(string name);
205                 [CCode (cname = "mpd_send_playlist_clear")]
206                 public bool send_playlist_clear(string name);
207                 [CCode (cname = "mpd_run_playlist_clear")]
208                 public bool run_playlist_clear(string name);
209                 [CCode (cname = "mpd_send_playlist_add")]
210                 public bool send_playlist_add(string name, string path);
211                 [CCode (cname = "mpd_run_playlist_add")]
212                 public bool run_playlist_add(string name, string path);
213                 [CCode (cname = "mpd_send_playlist_move")]
214                 public bool send_playlist_move(string name, uint from, uint to);
215                 [CCode (cname = "mpd_send_playlist_delete")]
216                 public bool send_playlist_delete(string name, uint pos);
217                 [CCode (cname = "mpd_run_playlist_delete")]
218                 public bool run_playlist_delete(string name, uint pos);
219                 [CCode (cname = "mpd_send_save")]
220                 public bool send_save(string name);
221                 [CCode (cname = "mpd_run_save")]
222                 public bool run_save(string name);
223                 [CCode (cname = "mpd_send_load")]
224                 public bool send_load(string name);
225                 [CCode (cname = "mpd_run_load")]
226                 public bool run_load(string name);
227                 [CCode (cname = "mpd_send_rename")]
228                 public bool send_rename(string from, string to);
229                 [CCode (cname = "mpd_run_rename")]
230                 public bool run_rename(string from, string to);
231                 [CCode (cname = "mpd_send_rm")]
232                 public bool send_rm(string name);
233                 [CCode (cname = "mpd_run_rm")]
234                 public bool run_rm(string name);
235                 [CCode (cname = "mpd_recv_pair")]
236                 public Pair recv_pair();
237                 [CCode (cname = "mpd_recv_pair_named")]
238                 public Pair recv_pair_named(string name);
239                 [CCode (cname = "mpd_return_pair")]
240                 public void return_pair(Pair pair);
241                 [CCode (cname = "mpd_enqueue_pair")]
242                 public void enqueue_pair(Pair pair);
243                 [CCode (cname = "mpd_response_finish")]
244                 public bool response_finish();
245                 [CCode (cname = "mpd_response_next")]
246                 public bool response_next();
247                 [CCode (cname = "mpd_search_db_songs")]
248                 public bool search_db_songs(bool exact);
249                 [CCode (cname = "mpd_search_add_db_songs")]
250                 public bool search_add_db_songs(bool exact);
251                 [CCode (cname = "mpd_search_queue_songs")]
252                 public bool search_queue_songs(bool exact);
253                 [CCode (cname = "mpd_search_db_tags")]
254                 public bool search_db_tags(TagType type);
255                 [CCode (cname = "mpd_count_db_songs")]
256                 public bool count_db_songs();
257                 [CCode (cname = "mpd_search_add_uri_constraint")]
258                 public bool search_add_uri_constraint(Operator oper, string value);
259                 [CCode (cname = "mpd_search_add_tag_constraint")]
260                 public bool search_add_tag_constraint(Operator oper, TagType type, string value);
261                 [CCode (cname = "mpd_search_add_any_tag_constraint")]
262                 public bool search_add_any_tag_constraint(Operator oper, string value);
263                 [CCode (cname = "mpd_search_commit")]
264                 public bool search_commit();
265                 [CCode (cname = "mpd_search_cancel")]
266                 public bool search_cancel();
267                 [CCode (cname = "mpd_recv_pair_tag")]
268                 public Pair recv_pair_tag(TagType type);
269                 [CCode (cname = "mpd_send_command")]
270                 public bool send_command(string command, ...);
271                 [CCode (cname = "mpd_recv_song")]
272                 public Song recv_song();
273                 [CCode (cname = "mpd_send_status")]
274                 public bool send_status();
275                 [CCode (cname = "mpd_recv_status")]
276                 public Status recv_status();
277                 [CCode (cname = "mpd_run_status")]
278                 public Status run_status();
279                 [CCode (cname = "mpd_send_allowed_commands")]
280                 public bool send_allowed_commands();
281                 [CCode (cname = "mpd_send_disallowed_commands")]
282                 public bool send_disallowed_commands();
283                 [CCode (cname = "mpd_recv_command_pair")]
284                 public Pair? recv_command_pair();
285                 [CCode (cname = "mpd_send_list_url_schemes")]
286                 public bool send_list_url_schemas();
287                 [CCode (cname = "mpd_recv_url_scheme_pair")]
288                 public Pair? recv_url_scheme_pair();
289                 [CCode (cname = "mpd_send_list_tag_types")]
290                 public bool send_list_tag_types();
291                 [CCode (cname = "mpd_recv_tag_type_pair")]
292                 public Pair? recv_tag_type_pair();
293                 [CCode (cname = "mpd_send_list_all")]
294                 public bool send_list_all(string path);
295                 [CCode (cname = "mpd_send_list_all_meta")]
296                 public bool send_list_all_meta(string path);
297                 [CCode (cname = "mpd_send_list_meta")]
298                 public bool send_list_meta(string path);
299                 [CCode (cname = "mpd_send_update")]
300                 public bool send_update(string? path = null);
301                 [CCode (cname = "mpd_send_rescan")]
302                 public bool send_rescan(string? path = null);
303                 [CCode (cname = "mpd_recv_update_id")]
304                 public uint recv_update_id();
305                 [CCode (cname = "mpd_run_update")]
306                 public uint run_update(string? path = null);
307                 [CCode (cname = "mpd_run_rescan")]
308                 public uint run_rescan(string? path = null);
309                 [CCode (cname = "mpd_send_idle")]
310                 public bool send_idle();
311                 [CCode (cname = "mpd_send_idle_mask")]
312                 public bool send_idle_mask(Idle mask);
313                 [CCode (cname = "mpd_send_noidle")]
314                 public bool send_noidle();
315                 [CCode (cname = "mpd_recv_idle")]
316                 public Idle recv_idle(bool disable_timeout);
317                 [CCode (cname = "mpd_run_idle")]
318                 public Idle run_idle();
319                 [CCode (cname = "mpd_run_idle_mask")]
320                 public Idle run_idle_mask(Idle mask);
321                 [CCode (cname = "mpd_run_noidle")]
322                 public Idle run_noidle();
323                 [CCode (cname = "mpd_send_stats")]
324                 public bool send_stats();
325                 [CCode (cname = "mpd_recv_stats")]
326                 public Stats recv_stats();
327                 [CCode (cname = "mpd_run_stats")]
328                 public Stats run_stats();
329                 [CCode (cname = "mpd_send_sticker_set")]
330                 public bool send_sticker_set(string type, string uri, string name, string value);
331                 [CCode (cname = "mpd_run_sticker_set")]
332                 public bool run_sticker_set(string type, string uri, string name, string value);
333                 [CCode (cname = "mpd_send_sticker_delete")]
334                 public bool send_sticker_delete(string type, string uri, string name);
335                 [CCode (cname = "mpd_run_sticker_delete")]
336                 public bool run_sticker_delete(string type, string uri, string name);
337                 [CCode (cname = "mpd_send_sticker_get")]
338                 public bool send_sticker_get(string type, string uri, string name);
339                 [CCode (cname = "mpd_send_sticker_list")]
340                 public bool send_sticker_list(string type, string uri);
341                 [CCode (cname = "mpd_send_sticker_find")]
342                 public bool send_sticker_find(string type, string base_uri, string name);
343                 [CCode (cname = "mpd_recv_sticker")]
344                 public Pair recv_sticker();
345                 [CCode (cname = "mpd_return_sticker")]
346                 public void return_sticker(Pair pair);
347                 [CCode (cname = "mpd_send_list_queue_meta")]
348                 public bool send_list_queue_meta();
349                 [CCode (cname = "mpd_send_list_queue_range_meta")]
350                 public bool send_list_queue_range_meta(uint start, uint end);
351                 [CCode (cname = "mpd_send_get_queue_song_pos")]
352                 public bool send_get_queue_song_pos(uint pos);
353                 [CCode (cname = "mpd_run_get_queue_song_pos")]
354                 public Song run_get_queue_song_pos(uint pos);
355                 [CCode (cname = "mpd_send_get_queue_song_id")]
356                 public bool send_get_queue_song_id(uint id);
357                 [CCode (cname = "mpd_run_get_queue_song_id")]
358                 public Song run_get_queue_song_id(uint id);
359                 [CCode (cname = "mpd_send_queue_changes_meta")]
360                 public bool send_queue_changes_meta(uint version);
361                 [CCode (cname = "mpd_send_queue_changes_brief")]
362                 public bool send_queue_changes_brief(uint version);
363                 [CCode (cname = "mpd_recv_queue_change_brief")]
364                 public bool recv_queue_change_brief(out uint position_r, out uint id_r);
365                 [CCode (cname = "mpd_send_add")]
366                 public bool send_add(string file);
367                 [CCode (cname = "mpd_run_add")]
368                 public bool run_add(string uri);
369                 [CCode (cname = "mpd_send_add_id")]
370                 public bool send_add_id(string file);
371                 [CCode (cname = "mpd_send_add_id_to")]
372                 public bool send_add_id_to(string uri, uint to);
373                 [CCode (cname = "mpd_recv_song_id")]
374                 public int recv_song_id();
375                 [CCode (cname = "mpd_run_add_id")]
376                 public int run_add_id(string file);
377                 [CCode (cname = "mpd_run_add_id_to")]
378                 public int run_add_id_to(string uri, uint to);
379                 [CCode (cname = "mpd_send_delete")]
380                 public bool send_delete(uint pos);
381                 [CCode (cname = "mpd_run_delete")]
382                 public bool run_delete(uint pos);
383                 [CCode (cname = "mpd_send_delete_range")]
384                 public bool send_delete_range(uint start, uint end);
385                 [CCode (cname = "mpd_run_delete_range")]
386                 public bool run_delete_range(uint start, uint end);
387                 [CCode (cname = "mpd_send_delete_id")]
388                 public bool send_delete_id(uint id);
389                 [CCode (cname = "mpd_run_delete_id")]
390                 public bool run_delete_id(uint id);
391                 [CCode (cname = "mpd_send_shuffle")]
392                 public bool send_shuffle();
393                 [CCode (cname = "mpd_run_shuffle")]
394                 public bool run_shuffle();
395                 [CCode (cname = "mpd_send_shuffle_range")]
396                 public bool send_shuffle_range(uint start, uint end);
397                 [CCode (cname = "mpd_run_shuffle_range")]
398                 public bool run_shuffle_range(uint start, uint end);
399                 [CCode (cname = "mpd_send_clear")]
400                 public bool send_clear();
401                 [CCode (cname = "mpd_run_clear")]
402                 public bool run_clear();
403                 [CCode (cname = "mpd_send_move")]
404                 public bool send_move(uint from, uint to);
405                 [CCode (cname = "mpd_run_move")]
406                 public bool run_move(uint from, uint to);
407                 [CCode (cname = "mpd_send_move_id")]
408                 public bool send_move_id(uint from, uint to);
409                 [CCode (cname = "mpd_run_move_id")]
410                 public bool run_move_id(uint from, uint to);
411                 [CCode (cname = "mpd_send_move_range")]
412                 public bool send_move_range(uint start, uint end, uint to);
413                 [CCode (cname = "mpd_run_move_range")]
414                 public bool run_move_range(uint start, uint end, uint to);
415                 [CCode (cname = "mpd_send_swap")]
416                 public bool send_swap(uint pos1, uint pos2);
417                 [CCode (cname = "mpd_run_swap")]
418                 public bool run_swap(uint pos1, uint pos2);
419                 [CCode (cname = "mpd_send_swap_id")]
420                 public bool send_swap_id(uint id1, uint id2);
421                 [CCode (cname = "mpd_run_swap_id")]
422                 public bool run_swap_id(uint id1, uint id2);
423                 [CCode (cname = "mpd_send_prio")]
424                 public bool send_prio(int priority, uint position);
425                 [CCode (cname = "mpd_run_prio")]
426                 public bool run_prio(int priority, uint position);
427                 [CCode (cname = "mpd_send_prio_range")]
428                 public bool send_prio_range(int priority, uint start, uint end);
429                 [CCode (cname = "mpd_run_prio_range")]
430                 public bool run_prio_range(int priority, uint start, uint end);
431                 [CCode (cname = "mpd_send_prio_id")]
432                 public bool send_prio_id(int priority, uint id);
433                 [CCode (cname = "mpd_run_prio_id")]
434                 public bool run_prio_id(int priority, uint id);
435                 [CCode (cname = "mpd_send_current_song")]
436                 public bool send_current_song();
437                 [CCode (cname = "mpd_run_current_song")]
438                 public Song run_current_song();
439                 [CCode (cname = "mpd_send_play")]
440                 public bool send_play();
441                 [CCode (cname = "mpd_run_play")]
442                 public bool run_play();
443                 [CCode (cname = "mpd_send_play_pos")]
444                 public bool send_play_pos(uint song_pos);
445                 [CCode (cname = "mpd_run_play_pos")]
446                 public bool run_play_pos(uint song_pos);
447                 [CCode (cname = "mpd_send_play_id")]
448                 public bool send_play_id(uint id);
449                 [CCode (cname = "mpd_run_play_id")]
450                 public bool run_play_id(uint song_id);
451                 [CCode (cname = "mpd_send_stop")]
452                 public bool send_stop();
453                 [CCode (cname = "mpd_run_stop")]
454                 public bool run_stop();
455                 [CCode (cname = "mpd_send_toggle_pause")]
456                 public bool send_toggle_pause();
457                 [CCode (cname = "mpd_run_toggle_pause")]
458                 public bool run_toggle_pause();
459                 [CCode (cname = "mpd_send_pause")]
460                 public bool send_pause(bool mode);
461                 [CCode (cname = "mpd_run_pause")]
462                 public bool run_pause(bool mode);
463                 [CCode (cname = "mpd_send_next")]
464                 public bool send_next();
465                 [CCode (cname = "mpd_run_next")]
466                 public bool run_next();
467                 [CCode (cname = "mpd_send_previous")]
468                 public bool send_previous();
469                 [CCode (cname = "mpd_run_previous")]
470                 public bool run_previous();
471                 [CCode (cname = "mpd_send_seek_pos")]
472                 public bool send_seek_pos(uint song_pos, uint t);
473                 [CCode (cname = "mpd_run_seek_pos")]
474                 public bool run_seek_pos(uint song_pos, uint t);
475                 [CCode (cname = "mpd_send_seek_id")]
476                 public bool send_seek_id(uint id, uint t);
477                 [CCode (cname = "mpd_run_seek_id")]
478                 public bool run_seek_id(uint song_id, uint t);
479                 [CCode (cname = "mpd_send_repeat")]
480                 public bool send_repeat(bool mode);
481                 [CCode (cname = "mpd_run_repeat")]
482                 public bool run_repeat(bool mode);
483                 [CCode (cname = "mpd_send_random")]
484                 public bool send_random(bool mode);
485                 [CCode (cname = "mpd_run_random")]
486                 public bool run_random(bool mode);
487                 [CCode (cname = "mpd_send_single")]
488                 public bool send_single(bool mode);
489                 [CCode (cname = "mpd_run_single")]
490                 public bool run_single(bool mode);
491                 [CCode (cname = "mpd_send_consume")]
492                 public bool send_consume(bool mode);
493                 [CCode (cname = "mpd_run_consume")]
494                 public bool run_consume(bool mode);
495                 [CCode (cname = "mpd_send_crossfade")]
496                 public bool send_crossfade(uint seconds);
497                 [CCode (cname = "mpd_run_crossfade")]
498                 public bool run_crossfade(uint seconds);
499                 [CCode (cname = "mpd_send_mixrampdb")]
500                 public bool send_mixrampdb(float db);
501                 [CCode (cname = "mpd_run_mixrampdb")]
502                 public bool run_mixrampdb(float db);
503                 [CCode (cname = "mpd_send_mixrampdelay")]
504                 public bool send_mixrampdelay(float seconds);
505                 [CCode (cname = "mpd_run_mixrampdelay")]
506                 public bool run_mixrampdelay(float seconds);
507                 [CCode (cname = "mpd_send_clearerror")]
508                 public bool send_clearerror();
509                 [CCode (cname = "mpd_run_clearerror")]
510                 public bool run_clearerror();
511                 [CCode (cname = "mpd_send_list_playlists")]
512                 public bool send_list_playlists();
513                 [CCode (cname = "mpd_send_subscribe")]
514                 public bool send_subscribe(string channel);
515                 [CCode (cname = "mpd_run_subscribe")]
516                 public bool run_subscribe(string channel);
517                 [CCode (cname = "mpd_send_unsubscribe")]
518                 public bool send_unsubscribe(string channel);
519                 [CCode (cname = "mpd_run_unsubscribe")]
520                 public bool run_unsubscribe(string channel);
521                 [CCode (cname = "mpd_send_send_message")]
522                 public bool send_send_message(string channel, string text);
523                 [CCode (cname = "mpd_run_send_message")]
524                 public bool run_send_message(string channel, string text);
525                 [CCode (cname = "mpd_send_read_messages")]
526                 public bool send_read_messages();
527                 [CCode (cname = "mpd_recv_message")]
528                 public Message recv_message();
529                 [CCode (cname = "mpd_send_channels")]
530                 public bool send_channels();
531                 [CCode (cname = "mpd_recv_channel_pair")]
532                 public Pair recv_channel_pair();
533         }
535         [CCode (cname = "struct mpd_directory",
536                 copy_function = "mpd_directory_dup",
537                 free_function = "mpd_directory_free")]
538         [Compact]
539         public class Directory {
540                 public string path { get; }
542                 public unowned string get_path();
543                 public bool feed(Mpd.Pair pair);
544                 public Entity? entity_begin();
545         }
547         [CCode (cname = "struct mpd_entity",
548                 free_function = "mpd_entity_free")]
549         [Compact]
550         public class Entity {
551                 public EntityType type { get; }
552                 public Directory directory { get; }
553                 public Song song { get; }
554                 public Playlist playlist { get; }
556                 public EntityType get_type();
557                 public Directory get_directory();
558                 public Song get_song();
559                 public Playlist get_playlist();
560                 public bool feed(Pair pair);
561         }
563         [CCode (cname = "struct mpd_output",
564                 free_function = "mpd_output_free")]
565         [Compact]
566         public class Output {
567                 public uint id { get; }
568                 public string name { get; }
569                 public bool enabled { get; }
571                 public bool feed(Pair pair);
572                 public uint get_id();
573                 public unowned string get_name();
574                 public bool get_enabled();
575         }
577         [CCode (cname = "struct mpd_pair",
578                 free_function = "")]
579         [Compact]
580         public class Pair {
581                 public unowned string name;
582                 public unowned string value;
583                 [CCode (cname = "mpd_directory_begin")]
584                 public Directory? directory_begin();
585                 [CCode (cname = "mpd_output_begin")]
586                 public Output output_begin();
587                 [CCode (cname = "mpd_playlist_begin")]
588                 public Playlist playlist_begin();
589                 [CCode (cname = "mpd_song_begin")]
590                 public Song song_begin();
591                 [CCode (cname = "mpd_idle_parse_pair")]
592                 public Idle idle_parse_pair();
593         }
595         [CCode (cname = "struct mpd_parser",
596                 free_function = "mpd_parser_free")]
597         [Compact]
598         public class Parser {
599                 public ServerError server_error { get; }
600                 public uint at { get; }
601                 public string message { get; }
602                 public string name { get; }
603                 public string value { get; }
605                 public ParserResult feed(string line);
606                 public bool is_discrete();
607                 public ServerError get_server_error();
608                 public uint get_at();
609                 public unowned string get_message();
610                 public unowned string get_name();
611                 public unowned string get_value();
612         }
614         [CCode (cname = "struct mpd_playlist",
615                 copy_function = "mpd_playlist_dup",
616                 free_function = "mpd_playlist_free")]
617         [Compact]
618         public class Playlist {
619                 public string path { get; }
620                 public int64 last_modified { get; }
622                 public string get_path();
623                 public int64 get_last_modified();
624                 public bool feed(Pair pair);
625         }
627         [CCode (cname = "struct mpd_song",
628                 copy_function = "mpd_song_dup",
629                 free_function = "mpd_song_free")]
630         [Compact]
631         public class Song {
632                 public string uri { get; }
633                 public uint duration { get; }
634                 public int64 last_modified { get; }
635                 public uint pos { get; set; }
636                 public uint id { get; }
638                 public unowned string get_uri();
639                 public unowned string get_tag(TagType type, uint idx = 0);
640                 public uint get_duration();
641                 public int64 get_last_modified();
642                 public void set_pos(uint pos);
643                 public uint get_pos();
644                 public uint get_id();
645                 public bool feed(Pair pair);
646         }
648         [CCode (cname = "struct mpd_stats",
649                 free_function = "mpd_stats_free")]
650         [Compact]
651         public class Stats {
652                 public uint number_of_artist { get; }
653                 public uint number_of_albums { get; }
654                 public uint number_of_songs { get; }
655                 public ulong uptime { get; }
656                 public ulong db_update_time { get; }
657                 public ulong play_time { get; }
658                 public ulong db_play_time { get; }
660                 public void feed(Pair pair);
661                 public uint get_number_of_artists();
662                 public uint get_number_of_albums();
663                 public uint get_number_of_songs();
664                 public ulong get_uptime();
665                 public ulong get_db_update_time();
666                 public ulong get_play_time();
667                 public ulong get_db_play_time();
668         }
670         [CCode (cname = "struct mpd_status",
671                 free_function = "mpd_status_free")]
672         [Compact]
673         public class Status {
674                 public int volume { get; }
675                 public bool repeat { get; }
676                 public bool random { get; }
677                 public bool single { get; }
678                 public bool consume { get; }
679                 public uint queue_length { get; }
680                 public uint queue_version { get; }
681                 public State state { get; }
682                 public uint crossfade { get; }
683                 public float mixrampdb { get; }
684                 public float mixrampdelay { get; }
685                 public int song_pos { get; }
686                 public int song_id { get; }
687                 public uint elapsed_time { get; }
688                 public uint elapsed_ms { get; }
689                 public uint total_time { get; }
690                 public uint kbit_rate { get; }
691                 public AudioFormat audio_format { get; }
692                 public uint update_id { get; }
693                 public string error { get; }
695                 public int get_volume();
696                 public bool get_repeat();
697                 public bool get_random();
698                 public bool get_single();
699                 public bool get_consume();
700                 public uint get_queue_length();
701                 public uint get_queue_version();
702                 public State get_state();
703                 public uint get_crossfade();
704                 public float get_mixrampdb();
705                 public float get_mixrampdelay();
706                 public int get_song_pos();
707                 public int get_song_id();
708                 public int get_next_song_pos();
709                 public int get_next_song_id();
710                 public uint get_elapsed_time();
711                 public uint get_elapsed_ms();
712                 public uint get_total_time();
713                 public uint get_kbit_rate();
714                 public AudioFormat get_audio_format();
715                 public uint get_update_id();
716                 public unowned string get_error();
717         }
719         [CCode (cname = "struct mpd_settings",
720                 free_function = "mpd_settings_free")]
721         [Compact]
722         public class Settings {
723                 public string? host { get; }
724                 public uint port { get; }
725                 public uint timeout_ms { get; }
726                 public string? password { get; }
728                 public Settings(string? host = null, uint port = 0, uint timeout_ms = 0, string? reserved = null, string? password = null);
729                 public string? get_host();
730                 public uint get_port();
731                 public uint get_timeout_ms();
732                 public string? get_password();
733         }
735         [CCode (cname = "struct mpd_message",
736                 free_function = "mpd_message_free")]
737         [Compact]
738         public class Message {
739                 public string channel { get; }
740                 public string text { get; }
742                 public bool feed(Pair pair);
743                 public unowned string get_channel();
744                 public unowned string get_text();
745         }
747         public Status status_begin();
748         public unowned string tag_name(TagType type);
749         public TagType tag_name_parse(string name);
750         public TagType tag_name_iparse(string name);
751         public unowned string? idle_name(Idle idle);
752         public Idle idle_name_parse(string name);
753         public Stats stats_begin();
754         public unowned string parse_sticker(string input, out int64 name_length_r);
756         public const string LIBMPDCLIENT_MAJOR_VERSION;
757         public const string LIBMPDCLIENT_MINOR_VERSION;
758         public const string LIBMPDCLIENT_PATCH_VERSION;