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
30extern "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"
52extern char *libmpd_version;
53
94
95
96
100typedef struct _MpdObj MpdObj;
101
112
113
135
140typedef struct _MpdData {
143 union {
144 struct {
148 char *tag;
149 };
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
202MpdObj *mpd_new(char *hostname, int port, char *password);
203
204
205
214int mpd_set_hostname(MpdObj * mi, char *hostname);
215
223const char * mpd_get_hostname(MpdObj *mi);
224
233int mpd_set_password(MpdObj * mi,const char *password);
234
235
245int mpd_set_port(MpdObj * mi, int port);
246
247
248
249
259int mpd_set_connection_timeout(MpdObj * mi, float timeout);
260
261
272
273
281
282
283
291
292
293
301
302
303
309void mpd_free(MpdObj * mi);
310
311
312
323
324
325
326/*
327 * signals
328 */
329
399
400
401/* callback typedef's */
409typedef void (*StatusChangedCallback) (MpdObj * mi, ChangedStatusType what, void *userdata);
410
411
412
413
423typedef int (*ErrorCallback) (MpdObj * mi, int id, char *msg, void *userdata);
424
425
426
434typedef void (*ConnectionChangedCallback) (MpdObj * mi, int connect, void *userdata);
435
436
437
438/* new style signal connectors */
445 void *userdata);
446
447
448
454void mpd_signal_connect_error(MpdObj * mi, ErrorCallback error, void *userdata);
455
456
457
464 ConnectionChangedCallback connection_changed,
465 void *userdata);
466
476
483int mpd_data_is_last(MpdData const *data);
484
485
492
493
494
511
512
513
514
523
524
525
534
535
536
544
545
554
555
556
566int mpd_server_set_output_device(MpdObj * mi, int device_id, int state);
567
568
569
578
579
580
591int mpd_server_check_version(MpdObj * mi, int major, int minor, int micro);
592
608int mpd_server_check_command_allowed(MpdObj * mi, const char *command);
609
610
611
618
632
641
652
662
663
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)
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
MpdData * mpd_data_get_next(MpdData *data)
int mpd_set_hostname(MpdObj *mi, char *hostname)
const char * mpd_get_hostname(MpdObj *mi)
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)
MpdObj * mpd_new(char *hostname, int port, char *password)
void mpd_signal_connect_error(MpdObj *mi, ErrorCallback error, void *userdata)
MpdData * mpd_data_get_first(MpdData const *data)
int mpd_check_connected(MpdObj *mi)
char * mpd_server_get_version(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)
char ** mpd_server_get_url_handlers(MpdObj *mi)
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)
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)
MpdObj * mpd_new_default()
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_server_get_output_devices(MpdObj *mi)
MpdData * mpd_data_delete_item(MpdData *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