libmpd  11.8.17
libmpd.h
Go to the documentation of this file.
1 /* libmpd (high level libmpdclient library)
2  * Copyright (C) 2004-2009 Qball Cow <qball@sarine.nl>
3  * Project homepage: http://gmpcwiki.sarine.nl/
4 
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation; either version 2 of the License, or
8  * (at your option) any later version.
9 
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14 
15  * You should have received a copy of the GNU General Public License along
16  * with this program; if not, write to the Free Software Foundation, Inc.,
17  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 */
19 
28 
29 #ifdef __cplusplus
30 extern "C" {
31 #endif
32 
33 #ifndef __MPD_LIB__
34 #define __MPD_LIB__
35 #ifdef WIN32
36 #define __REGEX_IMPORT__ 1
37 #define __W32API_USE_DLLIMPORT__ 1
38 #endif
39 
40 #include "libmpdclient.h"
41 
42 #ifndef TRUE
43 
44 #define TRUE 1
45 #endif
46 
47 #ifndef FALSE
48 
49 #define FALSE 0
50 #endif
51 #include "libmpd-version.h"
52 extern char *libmpd_version;
53 
58 typedef enum {
60  MPD_OK = 0,
75 
84 
87 
88  /* MPD_PLALIST_LOAD_FAILED */
90 
92  MPD_FATAL_ERROR = -1000
94 
95 
96 
100 typedef struct _MpdObj MpdObj;
101 
106 typedef enum {
112 
113 
121 typedef enum {
135 
140 typedef struct _MpdData {
143  union {
144  struct {
146  int tag_type;
148  char *tag;
149  };
151  char *directory;
158  };
159 
160  void *userdata;
161  void (*freefunc)(void *userdata);
163 
164 
165 #include "libmpd-player.h"
166 #include "libmpd-status.h"
167 #include "libmpd-database.h"
168 #include "libmpd-playlist.h"
169 #include "libmpd-strfsong.h"
170 #include "libmpd-sticker.h"
171 
172 
173 
189 
190 
191 
202 MpdObj *mpd_new(char *hostname, int port, char *password);
203 
204 
205 
214 int mpd_set_hostname(MpdObj * mi, char *hostname);
215 
223 const char * mpd_get_hostname(MpdObj *mi);
224 
233 int mpd_set_password(MpdObj * mi,const char *password);
234 
235 
245 int mpd_set_port(MpdObj * mi, int port);
246 
247 
248 
249 
259 int mpd_set_connection_timeout(MpdObj * mi, float timeout);
260 
261 
271 int mpd_connect(MpdObj * mi);
272 
273 
281 
282 
283 
291 
292 
293 
301 
302 
303 
309 void mpd_free(MpdObj * mi);
310 
311 
312 
323 
324 
325 
326 /*
327  * signals
328  */
329 
349 typedef enum {
353  MPD_CST_SONGPOS = 0x0002,
355  MPD_CST_SONGID = 0x0004,
361  MPD_CST_VOLUME = 0x0020,
369  MPD_CST_RANDOM = 0x0200,
371  MPD_CST_REPEAT = 0x0400,
373  MPD_CST_AUDIO = 0x0800,
375  MPD_CST_STATE = 0x1000,
379  MPD_CST_BITRATE = 0x4000,
387  MPD_CST_OUTPUT = 0x80000,
389  MPD_CST_STICKER = 0x100000,
391  MPD_CST_NEXTSONG = 0x200000,
397  MPD_CST_REPLAYGAIN = 0x1000000
399 
400 
401 /* callback typedef's */
409 typedef void (*StatusChangedCallback) (MpdObj * mi, ChangedStatusType what, void *userdata);
410 
411 
412 
413 
423 typedef int (*ErrorCallback) (MpdObj * mi, int id, char *msg, void *userdata);
424 
425 
426 
434 typedef void (*ConnectionChangedCallback) (MpdObj * mi, int connect, void *userdata);
435 
436 
437 
438 /* new style signal connectors */
445  void *userdata);
446 
447 
448 
454 void mpd_signal_connect_error(MpdObj * mi, ErrorCallback error, void *userdata);
455 
456 
457 
464  ConnectionChangedCallback connection_changed,
465  void *userdata);
466 
476 
483 int mpd_data_is_last(MpdData const *data);
484 
485 
491 void mpd_data_free(MpdData * data);
492 
493 
494 
511 
512 
513 
514 
523 
524 
525 
534 
535 
536 
544 
545 
554 
555 
556 
566 int mpd_server_set_output_device(MpdObj * mi, int device_id, int state);
567 
568 
569 
578 
579 
580 
591 int mpd_server_check_version(MpdObj * mi, int major, int minor, int micro);
592 
608 int mpd_server_check_command_allowed(MpdObj * mi, const char *command);
609 
610 
611 
618 
632 
640 int mpd_misc_get_tag_by_name(char *name);
641 
652 
662 
663 
664 typedef enum {
670 
672 
674 
675 #endif
676 
677 #ifdef __cplusplus
678 }
679 #endif
ChangedStatusType
ChangedStatusType
Definition: libmpd.h:349
mpd_data_get_first
MpdData * mpd_data_get_first(MpdData const *data)
MPD_CST_REPEAT
@ MPD_CST_REPEAT
Definition: libmpd.h:371
libmpd_version
char * libmpd_version
MPD_PLAYLIST_EMPTY
@ MPD_PLAYLIST_EMPTY
Definition: libmpd.h:79
MPD_PLAYLIST_QUEUE_EMPTY
@ MPD_PLAYLIST_QUEUE_EMPTY
Definition: libmpd.h:81
_MpdData
Definition: libmpd.h:140
TRUE
#define TRUE
Definition: libmpd.h:44
MPD_CST_BITRATE
@ MPD_CST_BITRATE
Definition: libmpd.h:379
FALSE
#define FALSE
Definition: libmpd.h:49
MPD_CST_ELAPSED_TIME
@ MPD_CST_ELAPSED_TIME
Definition: libmpd.h:365
MPD_CST_PLAYLIST
@ MPD_CST_PLAYLIST
Definition: libmpd.h:351
mpd_data_free
void mpd_data_free(MpdData *data)
mpd_check_error
int mpd_check_error(MpdObj *mi)
MpdObj
struct _MpdObj MpdObj
Definition: libmpd.h:100
MPD_SERVER_COMMAND_ERROR
@ MPD_SERVER_COMMAND_ERROR
Definition: libmpd.h:110
MPD_SERVER_REPLAYGAIN_MODE_AUTO
@ MPD_SERVER_REPLAYGAIN_MODE_AUTO
Definition: libmpd.h:668
MPD_DATABASE_PLAYLIST_EXIST
@ MPD_DATABASE_PLAYLIST_EXIST
Definition: libmpd.h:77
mpd_signal_connect_connection_changed
void mpd_signal_connect_connection_changed(MpdObj *mi, ConnectionChangedCallback connection_changed, void *userdata)
MPD_SERVER_NOT_SUPPORTED
@ MPD_SERVER_NOT_SUPPORTED
Definition: libmpd.h:74
mpd_connect
int mpd_connect(MpdObj *mi)
MpdDataType
MpdDataType
Definition: libmpd.h:121
_MpdData::output_dev
mpd_OutputEntity * output_dev
Definition: libmpd.h:157
mpd_signal_connect_error
void mpd_signal_connect_error(MpdObj *mi, ErrorCallback error, void *userdata)
MPD_CST_SONGPOS
@ MPD_CST_SONGPOS
Definition: libmpd.h:353
mpd_new_default
MpdObj * mpd_new_default()
mpd_disconnect
int mpd_disconnect(MpdObj *mi)
MPD_CST_PERMISSION
@ MPD_CST_PERMISSION
Definition: libmpd.h:377
MPD_TAG_NOT_FOUND
@ MPD_TAG_NOT_FOUND
Definition: libmpd.h:86
MPD_FATAL_ERROR
@ MPD_FATAL_ERROR
Definition: libmpd.h:92
MPD_CST_AUDIO
@ MPD_CST_AUDIO
Definition: libmpd.h:373
MPD_DATA_TYPE_PLAYLIST
@ MPD_DATA_TYPE_PLAYLIST
Definition: libmpd.h:131
mpd_server_get_tag_types
char ** mpd_server_get_tag_types(MpdObj *mi)
libmpdclient.h
MPD_SERVER_COMMAND_NOT_ALLOWED
@ MPD_SERVER_COMMAND_NOT_ALLOWED
Definition: libmpd.h:108
libmpd-sticker.h
MPD_NOT_CONNECTED
@ MPD_NOT_CONNECTED
Definition: libmpd.h:64
MPD_CST_STORED_PLAYLIST
@ MPD_CST_STORED_PLAYLIST
Definition: libmpd.h:383
MPD_ARGS_ERROR
@ MPD_ARGS_ERROR
Definition: libmpd.h:62
MPD_CST_RANDOM
@ MPD_CST_RANDOM
Definition: libmpd.h:369
mpd_set_password
int mpd_set_password(MpdObj *mi, const char *password)
MPD_PLAYER_NOT_PLAYING
@ MPD_PLAYER_NOT_PLAYING
Definition: libmpd.h:83
MPD_CST_NEXTSONG
@ MPD_CST_NEXTSONG
Definition: libmpd.h:391
_mpd_OutputEntity
Definition: libmpdclient.h:560
_mpd_Connection
Definition: libmpdclient.h:109
MPD_DATA_TYPE_NONE
@ MPD_DATA_TYPE_NONE
Definition: libmpd.h:123
MPD_DATA_TYPE_SONG
@ MPD_DATA_TYPE_SONG
Definition: libmpd.h:129
mpd_server_set_output_device
int mpd_server_set_output_device(MpdObj *mi, int device_id, int state)
MPD_CST_UPDATING
@ MPD_CST_UPDATING
Definition: libmpd.h:359
MpdError
MpdError
Definition: libmpd.h:58
libmpd-status.h
mpd_server_has_idle
int mpd_server_has_idle(MpdObj *mi)
MPD_DATA_TYPE_OUTPUT_DEV
@ MPD_DATA_TYPE_OUTPUT_DEV
Definition: libmpd.h:133
mpd_server_get_database_update_time
long unsigned mpd_server_get_database_update_time(MpdObj *mi)
mpd_free
void mpd_free(MpdObj *mi)
mpd_server_get_output_devices
MpdData * mpd_server_get_output_devices(MpdObj *mi)
mpd_data_delete_item
MpdData * mpd_data_delete_item(MpdData *data)
mpd_server_check_command_allowed
int mpd_server_check_command_allowed(MpdObj *mi, const char *command)
mpd_check_connected
int mpd_check_connected(MpdObj *mi)
MPD_CST_REPLAYGAIN
@ MPD_CST_REPLAYGAIN
Definition: libmpd.h:397
MPD_CST_AUDIOFORMAT
@ MPD_CST_AUDIOFORMAT
Definition: libmpd.h:381
_MpdData::freefunc
void(* freefunc)(void *userdata)
Definition: libmpd.h:161
mpd_data_get_next
MpdData * mpd_data_get_next(MpdData *data)
mpd_server_set_replaygain_mode
int mpd_server_set_replaygain_mode(MpdObj *mi, MpdServerReplaygainMode mode)
MPD_SERVER_REPLAYGAIN_MODE_ALBUM
@ MPD_SERVER_REPLAYGAIN_MODE_ALBUM
Definition: libmpd.h:667
MPD_SERVER_REPLAYGAIN_MODE_OFF
@ MPD_SERVER_REPLAYGAIN_MODE_OFF
Definition: libmpd.h:665
MPD_CST_SERVER_ERROR
@ MPD_CST_SERVER_ERROR
Definition: libmpd.h:385
_MpdData::userdata
void * userdata
Definition: libmpd.h:160
MPD_CST_CONSUME_MODE
@ MPD_CST_CONSUME_MODE
Definition: libmpd.h:395
mpd_set_hostname
int mpd_set_hostname(MpdObj *mi, char *hostname)
libmpd-version.h
libmpd-database.h
MPD_CST_STATE
@ MPD_CST_STATE
Definition: libmpd.h:375
MPD_STATUS_FAILED
@ MPD_STATUS_FAILED
Definition: libmpd.h:66
MPD_CST_SINGLE_MODE
@ MPD_CST_SINGLE_MODE
Definition: libmpd.h:393
mpd_server_check_version
int mpd_server_check_version(MpdObj *mi, int major, int minor, int micro)
MpdServerReplaygainMode
MpdServerReplaygainMode
Definition: libmpd.h:664
MPD_SERVER_ERROR
@ MPD_SERVER_ERROR
Definition: libmpd.h:72
MPD_DATA_TYPE_TAG
@ MPD_DATA_TYPE_TAG
Definition: libmpd.h:125
MPD_CST_VOLUME
@ MPD_CST_VOLUME
Definition: libmpd.h:361
MPD_DATA_TYPE_DIRECTORY
@ MPD_DATA_TYPE_DIRECTORY
Definition: libmpd.h:127
MPD_SERVER_REPLAYGAIN_MODE_TRACK
@ MPD_SERVER_REPLAYGAIN_MODE_TRACK
Definition: libmpd.h:666
mpd_server_get_version
char * mpd_server_get_version(MpdObj *mi)
_MpdData::directory
char * directory
Definition: libmpd.h:151
_mpd_Song
Definition: libmpdclient.h:267
MPD_CST_OUTPUT
@ MPD_CST_OUTPUT
Definition: libmpd.h:387
MPD_CST_TOTAL_TIME
@ MPD_CST_TOTAL_TIME
Definition: libmpd.h:363
MPD_SERVER_COMMAND_NOT_SUPPORTED
@ MPD_SERVER_COMMAND_NOT_SUPPORTED
Definition: libmpd.h:109
mpd_new
MpdObj * mpd_new(char *hostname, int port, char *password)
_MpdData::tag_type
int tag_type
Definition: libmpd.h:146
mpd_get_hostname
const char * mpd_get_hostname(MpdObj *mi)
mpd_send_password
int mpd_send_password(MpdObj *mi)
libmpd-strfsong.h
_MpdData::playlist
mpd_PlaylistFile * playlist
Definition: libmpd.h:153
MpdServerCommand
MpdServerCommand
Definition: libmpd.h:106
MPD_STATS_FAILED
@ MPD_STATS_FAILED
Definition: libmpd.h:70
MPD_CST_DATABASE
@ MPD_CST_DATABASE
Definition: libmpd.h:357
mpd_misc_get_tag_by_name
int mpd_misc_get_tag_by_name(char *name)
StatusChangedCallback
void(* StatusChangedCallback)(MpdObj *mi, ChangedStatusType what, void *userdata)
Definition: libmpd.h:409
MPD_CST_CROSSFADE
@ MPD_CST_CROSSFADE
Definition: libmpd.h:367
mpd_signal_connect_status_changed
void mpd_signal_connect_status_changed(MpdObj *mi, StatusChangedCallback status_changed, void *userdata)
MpdData
struct _MpdData MpdData
mpd_set_port
int mpd_set_port(MpdObj *mi, int port)
_MpdData::type
MpdDataType type
Definition: libmpd.h:142
mpd_connect_real
int mpd_connect_real(MpdObj *mi, mpd_Connection *connection)
MPD_CST_SONGID
@ MPD_CST_SONGID
Definition: libmpd.h:355
mpd_server_get_url_handlers
char ** mpd_server_get_url_handlers(MpdObj *mi)
mpd_server_tag_supported
int mpd_server_tag_supported(MpdObj *mi, int tag)
_MpdData::song
mpd_Song * song
Definition: libmpd.h:155
mpd_data_is_last
int mpd_data_is_last(MpdData const *data)
libmpd-playlist.h
_mpd_PlaylistFile
Definition: libmpdclient.h:359
mpd_server_get_replaygain_mode
MpdServerReplaygainMode mpd_server_get_replaygain_mode(MpdObj *mi)
_MpdData::tag
char * tag
Definition: libmpd.h:148
mpd_set_connection_timeout
int mpd_set_connection_timeout(MpdObj *mi, float timeout)
MPD_CST_STICKER
@ MPD_CST_STICKER
Definition: libmpd.h:389
MPD_OK
@ MPD_OK
Definition: libmpd.h:60
libmpd-player.h
MPD_LOCK_FAILED
@ MPD_LOCK_FAILED
Definition: libmpd.h:68
MPD_SERVER_COMMAND_ALLOWED
@ MPD_SERVER_COMMAND_ALLOWED
Definition: libmpd.h:107
ConnectionChangedCallback
void(* ConnectionChangedCallback)(MpdObj *mi, int connect, void *userdata)
Definition: libmpd.h:434
ErrorCallback
int(* ErrorCallback)(MpdObj *mi, int id, char *msg, void *userdata)
Definition: libmpd.h:423
MPD_PLAYLIST_LOAD_FAILED
@ MPD_PLAYLIST_LOAD_FAILED
Definition: libmpd.h:89

Copyright 2006 Qball Cow