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
44 #define TRUE 1
45 #endif
46 
47 #ifndef FALSE
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
struct _MpdData MpdData
MpdDataType
Definition: libmpd.h:121
@ MPD_DATA_TYPE_SONG
Definition: libmpd.h:129
@ MPD_DATA_TYPE_OUTPUT_DEV
Definition: libmpd.h:133
@ MPD_DATA_TYPE_NONE
Definition: libmpd.h:123
@ MPD_DATA_TYPE_TAG
Definition: libmpd.h:125
@ MPD_DATA_TYPE_PLAYLIST
Definition: libmpd.h:131
@ MPD_DATA_TYPE_DIRECTORY
Definition: libmpd.h:127
int mpd_server_tag_supported(MpdObj *mi, int tag)
char * mpd_server_get_version(MpdObj *mi)
int mpd_check_error(MpdObj *mi)
MpdServerReplaygainMode
Definition: libmpd.h:664
@ MPD_SERVER_REPLAYGAIN_MODE_OFF
Definition: libmpd.h:665
@ MPD_SERVER_REPLAYGAIN_MODE_AUTO
Definition: libmpd.h:668
@ MPD_SERVER_REPLAYGAIN_MODE_TRACK
Definition: libmpd.h:666
@ MPD_SERVER_REPLAYGAIN_MODE_ALBUM
Definition: libmpd.h:667
int mpd_set_hostname(MpdObj *mi, char *hostname)
char ** mpd_server_get_tag_types(MpdObj *mi)
void mpd_free(MpdObj *mi)
void mpd_data_free(MpdData *data)
int mpd_connect(MpdObj *mi)
int mpd_set_port(MpdObj *mi, int port)
MpdServerCommand
Definition: libmpd.h:106
@ MPD_SERVER_COMMAND_ERROR
Definition: libmpd.h:110
@ MPD_SERVER_COMMAND_NOT_SUPPORTED
Definition: libmpd.h:109
@ MPD_SERVER_COMMAND_NOT_ALLOWED
Definition: libmpd.h:108
@ MPD_SERVER_COMMAND_ALLOWED
Definition: libmpd.h:107
int mpd_server_check_command_allowed(MpdObj *mi, const char *command)
MpdData * mpd_data_get_next(MpdData *data)
void mpd_signal_connect_error(MpdObj *mi, ErrorCallback error, void *userdata)
MpdObj * mpd_new(char *hostname, int port, char *password)
char ** mpd_server_get_url_handlers(MpdObj *mi)
int mpd_check_connected(MpdObj *mi)
MpdData * mpd_server_get_output_devices(MpdObj *mi)
int mpd_misc_get_tag_by_name(char *name)
MpdError
Definition: libmpd.h:58
@ MPD_DATABASE_PLAYLIST_EXIST
Definition: libmpd.h:77
@ MPD_LOCK_FAILED
Definition: libmpd.h:68
@ MPD_STATUS_FAILED
Definition: libmpd.h:66
@ MPD_PLAYER_NOT_PLAYING
Definition: libmpd.h:83
@ MPD_SERVER_ERROR
Definition: libmpd.h:72
@ MPD_SERVER_NOT_SUPPORTED
Definition: libmpd.h:74
@ MPD_TAG_NOT_FOUND
Definition: libmpd.h:86
@ MPD_PLAYLIST_LOAD_FAILED
Definition: libmpd.h:89
@ MPD_PLAYLIST_EMPTY
Definition: libmpd.h:79
@ MPD_OK
Definition: libmpd.h:60
@ MPD_STATS_FAILED
Definition: libmpd.h:70
@ MPD_PLAYLIST_QUEUE_EMPTY
Definition: libmpd.h:81
@ MPD_NOT_CONNECTED
Definition: libmpd.h:64
@ MPD_FATAL_ERROR
Definition: libmpd.h:92
@ MPD_ARGS_ERROR
Definition: libmpd.h:62
long unsigned mpd_server_get_database_update_time(MpdObj *mi)
int mpd_set_password(MpdObj *mi, const char *password)
int mpd_send_password(MpdObj *mi)
char * libmpd_version
void(* ConnectionChangedCallback)(MpdObj *mi, int connect, void *userdata)
Definition: libmpd.h:434
void(* StatusChangedCallback)(MpdObj *mi, ChangedStatusType what, void *userdata)
Definition: libmpd.h:409
#define TRUE
Definition: libmpd.h:44
#define FALSE
Definition: libmpd.h:49
void mpd_signal_connect_connection_changed(MpdObj *mi, ConnectionChangedCallback connection_changed, void *userdata)
MpdObj * mpd_new_default()
const char * mpd_get_hostname(MpdObj *mi)
MpdData * mpd_data_delete_item(MpdData *data)
int mpd_set_connection_timeout(MpdObj *mi, float timeout)
int mpd_data_is_last(MpdData const *data)
ChangedStatusType
Definition: libmpd.h:349
@ MPD_CST_VOLUME
Definition: libmpd.h:361
@ MPD_CST_STATE
Definition: libmpd.h:375
@ MPD_CST_SINGLE_MODE
Definition: libmpd.h:393
@ MPD_CST_PLAYLIST
Definition: libmpd.h:351
@ MPD_CST_SERVER_ERROR
Definition: libmpd.h:385
@ MPD_CST_STORED_PLAYLIST
Definition: libmpd.h:383
@ MPD_CST_CONSUME_MODE
Definition: libmpd.h:395
@ MPD_CST_STICKER
Definition: libmpd.h:389
@ MPD_CST_BITRATE
Definition: libmpd.h:379
@ MPD_CST_RANDOM
Definition: libmpd.h:369
@ MPD_CST_DATABASE
Definition: libmpd.h:357
@ MPD_CST_REPLAYGAIN
Definition: libmpd.h:397
@ MPD_CST_SONGPOS
Definition: libmpd.h:353
@ MPD_CST_OUTPUT
Definition: libmpd.h:387
@ MPD_CST_AUDIO
Definition: libmpd.h:373
@ MPD_CST_NEXTSONG
Definition: libmpd.h:391
@ MPD_CST_REPEAT
Definition: libmpd.h:371
@ MPD_CST_TOTAL_TIME
Definition: libmpd.h:363
@ MPD_CST_ELAPSED_TIME
Definition: libmpd.h:365
@ MPD_CST_SONGID
Definition: libmpd.h:355
@ MPD_CST_PERMISSION
Definition: libmpd.h:377
@ MPD_CST_CROSSFADE
Definition: libmpd.h:367
@ MPD_CST_AUDIOFORMAT
Definition: libmpd.h:381
@ MPD_CST_UPDATING
Definition: libmpd.h:359
int mpd_server_check_version(MpdObj *mi, int major, int minor, int micro)
MpdServerReplaygainMode mpd_server_get_replaygain_mode(MpdObj *mi)
void mpd_signal_connect_status_changed(MpdObj *mi, StatusChangedCallback status_changed, void *userdata)
int(* ErrorCallback)(MpdObj *mi, int id, char *msg, void *userdata)
Definition: libmpd.h:423
int mpd_server_set_output_device(MpdObj *mi, int device_id, int state)
struct _MpdObj MpdObj
Definition: libmpd.h:100
int mpd_disconnect(MpdObj *mi)
MpdData * mpd_data_get_first(MpdData const *data)
int mpd_server_set_replaygain_mode(MpdObj *mi, MpdServerReplaygainMode mode)
int mpd_server_has_idle(MpdObj *mi)
int mpd_connect_real(MpdObj *mi, mpd_Connection *connection)
void(* freefunc)(void *userdata)
Definition: libmpd.h:161
char * directory
Definition: libmpd.h:151
int tag_type
Definition: libmpd.h:146
mpd_PlaylistFile * playlist
Definition: libmpd.h:153
char * tag
Definition: libmpd.h:148
mpd_Song * song
Definition: libmpd.h:155
MpdDataType type
Definition: libmpd.h:142
mpd_OutputEntity * output_dev
Definition: libmpd.h:157
void * userdata
Definition: libmpd.h:160

Copyright 2006 Qball Cow