libmpd 11.8.17
libmpdclient.h
Go to the documentation of this file.
1/* libmpdclient
2 (c)2003-2006 by Warren Dukes (warren.dukes@gmail.com)
3 This project's homepage is: http://www.musicpd.org
4
5 Redistribution and use in source and binary forms, with or without
6 modification, are permitted provided that the following conditions
7 are met:
8
9 - Redistributions of source code must retain the above copyright
10 notice, this list of conditions and the following disclaimer.
11
12 - Redistributions in binary form must reproduce the above copyright
13 notice, this list of conditions and the following disclaimer in the
14 documentation and/or other materials provided with the distribution.
15
16 - Neither the name of the Music Player Daemon nor the names of its
17 contributors may be used to endorse or promote products derived from
18 this software without specific prior written permission.
19
20 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21 ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22 LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23 A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR
24 CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25 EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26 PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
27 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
28 LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
29 NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
30 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31*/
32
33#ifndef LIBMPDCLIENT_H
34#define LIBMPDCLIENT_H
35
36#ifdef WIN32
37# define __W32API_USE_DLLIMPORT__ 1
38#endif
39
40#include <sys/time.h>
41#include <stdarg.h>
42#define MPD_BUFFER_MAX_LENGTH 50000
43#define MPD_ERRORSTR_MAX_LENGTH 1000
44#define MPD_WELCOME_MESSAGE "OK MPD "
45
46#define MPD_ERROR_TIMEOUT 10 /* timeout trying to talk to mpd */
47#define MPD_ERROR_SYSTEM 11 /* system error */
48#define MPD_ERROR_UNKHOST 12 /* unknown host */
49#define MPD_ERROR_CONNPORT 13 /* problems connecting to port on host */
50#define MPD_ERROR_NOTMPD 14 /* mpd not running on port at host */
51#define MPD_ERROR_NORESPONSE 15 /* no response on attempting to connect */
52#define MPD_ERROR_SENDING 16 /* error sending command */
53#define MPD_ERROR_CONNCLOSED 17 /* connection closed by mpd */
54#define MPD_ERROR_ACK 18 /* ACK returned! */
55#define MPD_ERROR_BUFFEROVERRUN 19 /* Buffer was overrun! */
56
57#define MPD_ACK_ERROR_UNK -1
58#define MPD_ERROR_AT_UNK -1
59
60#define MPD_ACK_ERROR_NOT_LIST 1
61#define MPD_ACK_ERROR_ARG 2
62#define MPD_ACK_ERROR_PASSWORD 3
63#define MPD_ACK_ERROR_PERMISSION 4
64#define MPD_ACK_ERROR_UNKNOWN_CMD 5
65
66#define MPD_ACK_ERROR_NO_EXIST 50
67#define MPD_ACK_ERROR_PLAYLIST_MAX 51
68#define MPD_ACK_ERROR_SYSTEM 52
69#define MPD_ACK_ERROR_PLAYLIST_LOAD 53
70#define MPD_ACK_ERROR_UPDATE_ALREADY 54
71#define MPD_ACK_ERROR_PLAYER_SYNC 55
72#define MPD_ACK_ERROR_EXIST 56
73
74#ifdef __cplusplus
75extern "C" {
76#endif
77
96
98
99/* internal stuff don't touch this struct */
104
105/* mpd_Connection
106 * holds info about connection to mpd
107 * use error, and errorStr to detect errors
108 */
109typedef struct _mpd_Connection {
110 /* use this to check the version of mpd */
111 int version[3];
112 /* IMPORTANT, you want to get the error messages from here */
116 /* this will be set to MPD_ERROR_* if there is an error, 0 if not */
117 int error;
118 /* DON'T TOUCH any of the rest of this stuff */
119 int sock;
128 struct timeval timeout;
129 char *request;
131
132/* mpd_newConnection
133 * use this to open a new connection
134 * you should use mpd_closeConnection, when your done with the connection,
135 * even if an error has occurred
136 * _timeout_ is the connection timeout period in seconds
137 */
138mpd_Connection * mpd_newConnection(const char * host, int port, float timeout);
139
140void mpd_setConnectionTimeout(mpd_Connection * connection, float timeout);
141
142/* mpd_closeConnection
143 * use this to close a connection and free'ing subsequent memory
144 */
146
147/* mpd_clearError
148 * clears error
149 */
151
152/* STATUS STUFF */
153
154/* use these with status.state to determine what state the player is in */
155#define MPD_STATUS_STATE_UNKNOWN 0
156#define MPD_STATUS_STATE_STOP 1
157#define MPD_STATUS_STATE_PLAY 2
158#define MPD_STATUS_STATE_PAUSE 3
159
160/* us this with status.volume to determine if mpd has volume support */
161#define MPD_STATUS_NO_VOLUME -1
162
163/* mpd_Status
164 * holds info return from status command
165 */
166typedef struct mpd_Status {
167 /* 0-100, or MPD_STATUS_NO_VOLUME when there is no volume support */
169 /* 1 if repeat is on, 0 otherwise */
171 /* 1 if random is on, 0 otherwise */
173 /* 1 if single in on, 0 otherwise */
175 /* 1 if single is on, 0 otherwise */
177 /* playlist length */
179 /* playlist, use this to determine when the playlist has changed */
180 long long playlist;
181 /* The id, used to determine is one of the playlists are changed */
182 long long storedplaylist;
183 /* use with MPD_STATUS_STATE_* to determine state of player */
184 int state;
185 /* crossfade setting in seconds */
187 /* if a song is currently selected (always the case when state is
188 * PLAY or PAUSE), this is the position of the currently
189 * playing song in the playlist, beginning with 0
190 */
191 int song;
192 /* Song ID of the currently selected song */
194
195 /* The next song pos */
197 /* The next song id */
199
200 /* time in seconds that have elapsed in the currently playing/paused
201 * song
202 */
204 /* length in seconds of the currently playing/paused song */
206 /* current bit rate in kbs */
208 /* audio sample rate */
209 unsigned int sampleRate;
210 /* audio bits */
211 int bits;
212 /* audio channels */
214 /* 1 if mpd is updating, 0 otherwise */
216 /* error */
217 char * error;
219
221
222/* mpd_getStatus
223 * returns status info, be sure to free it with mpd_freeStatus()
224 * call this after mpd_sendStatusCommand()
225 */
227
228/* mpd_freeStatus
229 * free's status info malloc'd and returned by mpd_getStatus
230 */
232
233typedef struct _mpd_Stats {
237 unsigned long uptime;
238 unsigned long dbUpdateTime;
239 unsigned long playTime;
240 unsigned long dbPlayTime;
242
247
249
251
253
255
257
258/* SONG STUFF */
259
260#define MPD_SONG_NO_TIME -1
261#define MPD_SONG_NO_NUM -1
262#define MPD_SONG_NO_ID -1
263
264/* mpd_Song
265 * for storing song info returned by mpd
266 */
267typedef struct _mpd_Song {
268 /* filename of song */
269 char * file;
270 /* artist, maybe NULL if there is no tag */
271 char * artist;
272 /* title, maybe NULL if there is no tag */
273 char * title;
274 /* album, maybe NULL if there is no tag */
275 char * album;
276 /* track, maybe NULL if there is no tag */
277 char * track;
278 /* name, maybe NULL if there is no tag; it's the name of the current
279 * song, f.e. the icyName of the stream */
280 char * name;
281 /* date */
282 char *date;
283
284 /* added by qball */
285 /* Genre */
286 char *genre;
287 /* Composer */
288 char *composer;
289 /* Performer */
291 /* Disc */
292 char *disc;
293 /* Comment */
294 char *comment;
295
296 /* AlbumArtist */
298 /* length of song in seconds, check that it is not MPD_SONG_NO_TIME */
299 int time;
300 /* if plchanges/playlistinfo/playlistid used, is the position of the
301 * song in the playlist */
302 int pos;
303 /* song id for a song in the playlist */
304 int id;
306
307/* mpd_newSong
308 * use to allocate memory for a new mpd_Song
309 * file, artist, etc all initialized to NULL
310 * if your going to assign values to file, artist, etc
311 * be sure to malloc or strdup the memory
312 * use mpd_freeSong to free the memory for the mpd_Song, it will also
313 * free memory for file, artist, etc, so don't do it yourself
314 */
316
317/* mpd_freeSong
318 * use to free memory allocated by mpd_newSong
319 * also it will free memory pointed to by file, artist, etc, so be careful
320 */
322
323/* mpd_songDup
324 * works like strDup, but for a mpd_Song
325 */
327
328/* DIRECTORY STUFF */
329
330/* mpd_Directory
331 * used to store info fro directory (right now that just the path)
332 */
333typedef struct _mpd_Directory {
334 char * path;
336
337/* mpd_newDirectory
338 * allocates memory for a new directory
339 * use mpd_freeDirectory to free this memory
340 */
342
343/* mpd_freeDirectory
344 * used to free memory allocated with mpd_newDirectory, and it frees
345 * path of mpd_Directory, so be careful
346 */
348
349/* mpd_directoryDup
350 * works like strdup, but for mpd_Directory
351 */
353
354/* PLAYLISTFILE STUFF */
355
356/* mpd_PlaylistFile
357 * stores info about playlist file returned by lsinfo
358 */
359typedef struct _mpd_PlaylistFile {
360 char * path;
361 char * mtime;
363
364/* mpd_newPlaylistFile
365 * allocates memory for new mpd_PlaylistFile, path is set to NULL
366 * free this memory with mpd_freePlaylistFile
367 */
369
370/* mpd_freePlaylist
371 * free memory allocated for freePlaylistFile, will also free
372 * path, so be careful
373 */
375
376/* mpd_playlistFileDup
377 * works like strdup, but for mpd_PlaylistFile
378 */
380
381/* INFO ENTITY STUFF */
382
383/* the type of entity returned from one of the commands that generates info
384 * use in conjunction with mpd_InfoEntity.type
385 */
386#define MPD_INFO_ENTITY_TYPE_DIRECTORY 0
387#define MPD_INFO_ENTITY_TYPE_SONG 1
388#define MPD_INFO_ENTITY_TYPE_PLAYLISTFILE 2
389
390/* mpd_InfoEntity
391 * stores info on stuff returned info commands
392 */
393typedef struct mpd_InfoEntity {
394 /* the type of entity, use with MPD_INFO_ENTITY_TYPE_* to determine
395 * what this entity is (song, directory, etc...)
396 */
397 int type;
398 /* the actual data you want, mpd_Song, mpd_Directory, etc */
399 union {
405
407
409
410/* INFO COMMANDS AND STUFF */
411
412/* use this function to loop over after calling Info/Listall functions */
414
415/* fetches the currently seeletect song (the song referenced by status->song
416 * and status->songid*/
418
419/* songNum of -1, means to display the whole list */
420void mpd_sendPlaylistInfoCommand(mpd_Connection * connection, int songNum);
421
422/* songId of -1, means to display the whole list */
423void mpd_sendPlaylistIdCommand(mpd_Connection * connection, int songId);
424
425/* use this to get the changes in the playlist since version _playlist_ */
426void mpd_sendPlChangesCommand(mpd_Connection * connection, long long playlist);
427
434void mpd_sendPlChangesPosIdCommand(mpd_Connection * connection, long long playlist);
435
436/* recursivel fetches all songs/dir/playlists in "dir* (no metadata is
437 * returned) */
438void mpd_sendListallCommand(mpd_Connection * connection, const char * dir);
439
440/* same as sendListallCommand, but also metadata is returned */
441void mpd_sendListallInfoCommand(mpd_Connection * connection, const char * dir);
442
443/* non-recursive version of ListallInfo */
444void mpd_sendLsInfoCommand(mpd_Connection * connection, const char * dir);
445
446#define MPD_TABLE_ARTIST MPD_TAG_ITEM_ARTIST
447#define MPD_TABLE_ALBUM MPD_TAG_ITEM_ALBUM
448#define MPD_TABLE_TITLE MPD_TAG_ITEM_TITLE
449#define MPD_TABLE_FILENAME MPD_TAG_ITEM_FILENAME
450
451void mpd_sendSearchCommand(mpd_Connection * connection, int table,
452 const char * str);
453
454void mpd_sendFindCommand(mpd_Connection * connection, int table,
455 const char * str);
456
457/* LIST TAG COMMANDS */
458
459/* use this function fetch next artist entry, be sure to free the returned
460 * string. NULL means there are no more. Best used with sendListArtists
461 */
463
464char * mpd_getNextAlbum(mpd_Connection * connection);
465
466char * mpd_getNextTag(mpd_Connection *connection, int type);
467
468/* list artist or albums by artist, arg1 should be set to the artist if
469 * listing albums by a artist, otherwise NULL for listing all artists or albums
470 */
471void mpd_sendListCommand(mpd_Connection * connection, int table,
472 const char * arg1);
473
474/* SIMPLE COMMANDS */
475
476void mpd_sendAddCommand(mpd_Connection * connection, const char * file);
477
478int mpd_sendAddIdCommand(mpd_Connection *connection, const char *file);
479
480void mpd_sendDeleteCommand(mpd_Connection * connection, int songNum);
481
482void mpd_sendDeleteIdCommand(mpd_Connection * connection, int songNum);
483
484void mpd_sendSaveCommand(mpd_Connection * connection, const char * name);
485
486void mpd_sendLoadCommand(mpd_Connection * connection, const char * name);
487
488void mpd_sendRmCommand(mpd_Connection * connection, const char * name);
489
490void mpd_sendRenameCommand(mpd_Connection *connection, const char *from,
491 const char *to);
492
494
496
497/* use this to start playing at the beginning, useful when in random mode */
498#define MPD_PLAY_AT_BEGINNING -1
499
500void mpd_sendPlayCommand(mpd_Connection * connection, int songNum);
501
502void mpd_sendPlayIdCommand(mpd_Connection * connection, int songNum);
503
505
506void mpd_sendPauseCommand(mpd_Connection * connection, int pauseMode);
507
509
511
512void mpd_sendMoveCommand(mpd_Connection * connection, int from, int to);
513
514void mpd_sendMoveIdCommand(mpd_Connection * connection, int from, int to);
515
516void mpd_sendSwapCommand(mpd_Connection * connection, int song1, int song2);
517
518void mpd_sendSwapIdCommand(mpd_Connection * connection, int song1, int song2);
519
520void mpd_sendSeekCommand(mpd_Connection * connection, int song, int seek_time);
521
522void mpd_sendSeekIdCommand(mpd_Connection * connection, int song, int seek_time);
523
524void mpd_sendRepeatCommand(mpd_Connection * connection, int repeatMode);
525
526void mpd_sendSingleCommand(mpd_Connection * connection, int singleMode);
527
528void mpd_sendConsumeCommand(mpd_Connection * connection, int consumeMode);
529
530void mpd_sendRandomCommand(mpd_Connection * connection, int randomMode);
531
532void mpd_sendSetvolCommand(mpd_Connection * connection, int volumeChange);
533
534void mpd_sendCrossfadeCommand(mpd_Connection * connection, int seconds);
535
536void mpd_sendUpdateCommand(mpd_Connection * connection,const char * path);
537
538/* returns the update job id, call this after a update command*/
540
541void mpd_sendPasswordCommand(mpd_Connection * connection, const char * pass);
542
543/* after executing a command, when your done with it to get its status
544 * (you want to check connection->error for an error)
545 */
547
548/* command list stuff, use this to do things like add files very quickly */
550
552
554
555/* advance to the next listOk
556 * returns 0 if advanced to the next list_OK,
557 * returns -1 if it advanced to an OK or ACK */
559
565
567
569
570void mpd_sendEnableOutputCommand(mpd_Connection * connection, int outputId);
571
572void mpd_sendDisableOutputCommand(mpd_Connection * connection, int outputId);
573
575
582
589
598
600
602
604
606
614void mpd_sendListPlaylistInfoCommand(mpd_Connection *connection,const char *path);
615
623void mpd_sendListPlaylistCommand(mpd_Connection *connection,const char *path);
624
632void mpd_startSearch(mpd_Connection *connection, int exact);
633
639void mpd_addConstraintSearch(mpd_Connection *connection, int type, const char *name);
640
645
667void mpd_startFieldSearch(mpd_Connection *connection, int type);
668
669void mpd_startPlaylistSearch(mpd_Connection *connection, int exact);
670
672
673void mpd_sendPlaylistClearCommand(mpd_Connection *connection,const char *path);
674
676 const char *playlist,const char *path);
677
679 const char *playlist, int from, int to);
680
682 const char *playlist, int pos);
683
685
689/* Stickers*/
690char * mpd_getNextSticker (mpd_Connection * connection);
691
692void mpd_sendSetSongSticker(mpd_Connection *connection, const char *song, const char *sticker, const char *value);
693void mpd_sendGetSongSticker(mpd_Connection *connection, const char *song, const char *sticker);
694
695void mpd_sendSetReplayGainMode(mpd_Connection *connection, const char *mode);
696
699#ifdef __cplusplus
700}
701#endif
702
703#endif
char * mpd_getNextAlbum(mpd_Connection *connection)
void mpd_freeInfoEntity(mpd_InfoEntity *entity)
void mpd_sendLsInfoCommand(mpd_Connection *connection, const char *dir)
void mpd_sendListPlaylistInfoCommand(mpd_Connection *connection, const char *path)
void mpd_closeConnection(mpd_Connection *connection)
char * mpd_getNextHandler(mpd_Connection *connection)
struct _mpd_OutputEntity mpd_OutputEntity
void mpd_sendSetReplayGainMode(mpd_Connection *connection, const char *mode)
void mpd_sendSaveCommand(mpd_Connection *connection, const char *name)
void mpd_addConstraintSearch(mpd_Connection *connection, int type, const char *name)
void mpd_sendPlaylistClearCommand(mpd_Connection *connection, const char *path)
void mpd_freePlaylistFile(mpd_PlaylistFile *playlist)
void mpd_sendCommandListEnd(mpd_Connection *connection)
void mpd_sendPlayCommand(mpd_Connection *connection, int songNum)
void mpd_sendDeleteCommand(mpd_Connection *connection, int songNum)
void mpd_sendOutputsCommand(mpd_Connection *connection)
void mpd_sendListallInfoCommand(mpd_Connection *connection, const char *dir)
struct _mpd_ReturnElement mpd_ReturnElement
void mpd_sendPlChangesPosIdCommand(mpd_Connection *connection, long long playlist)
mpd_PlaylistFile * mpd_playlistFileDup(mpd_PlaylistFile *playlist)
struct _mpd_Connection mpd_Connection
#define MPD_ERRORSTR_MAX_LENGTH
void mpd_sendRmCommand(mpd_Connection *connection, const char *name)
void mpd_sendCommandsCommand(mpd_Connection *connection)
void mpd_sendGetEventsCommand(mpd_Connection *connection)
void mpd_startSearch(mpd_Connection *connection, int exact)
void mpd_sendTagTypesCommand(mpd_Connection *connection)
void mpd_sendClearErrorCommand(mpd_Connection *connection)
void mpd_startFieldSearch(mpd_Connection *connection, int type)
void mpd_sendPlChangesCommand(mpd_Connection *connection, long long playlist)
void mpd_sendPlayIdCommand(mpd_Connection *connection, int songNum)
int mpd_getUpdateId(mpd_Connection *connection)
void mpd_sendCurrentSongCommand(mpd_Connection *connection)
void mpd_sendRandomCommand(mpd_Connection *connection, int randomMode)
mpd_Directory * mpd_newDirectory(void)
char * mpd_getNextCommand(mpd_Connection *connection)
void mpd_sendSwapCommand(mpd_Connection *connection, int song1, int song2)
mpd_Stats * mpd_getStats(mpd_Connection *connection)
mpd_TagItems
@ MPD_TAG_NUM_OF_ITEM_TYPES
@ MPD_TAG_ITEM_TITLE
@ MPD_TAG_ITEM_DISC
@ MPD_TAG_ITEM_ARTIST
@ MPD_TAG_ITEM_PERFORMER
@ MPD_TAG_ITEM_ANY
@ MPD_TAG_ITEM_COMPOSER
@ MPD_TAG_ITEM_TRACK
@ MPD_TAG_ITEM_ALBUM_ARTIST
@ MPD_TAG_ITEM_NAME
@ MPD_TAG_ITEM_GENRE
@ MPD_TAG_ITEM_DATE
@ MPD_TAG_ITEM_COMMENT
@ MPD_TAG_ITEM_ALBUM
@ MPD_TAG_ITEM_FILENAME
void mpd_sendClearCommand(mpd_Connection *connection)
char * mpd_getNextArtist(mpd_Connection *connection)
mpd_Song * mpd_songDup(const mpd_Song *song)
void mpd_sendStatusCommand(mpd_Connection *connection)
mpd_SearchStats * mpd_getSearchStats(mpd_Connection *connection)
void mpd_sendRenameCommand(mpd_Connection *connection, const char *from, const char *to)
void mpd_freeSong(mpd_Song *song)
void mpd_sendCommandListOkBegin(mpd_Connection *connection)
void mpd_sendSeekIdCommand(mpd_Connection *connection, int song, int seek_time)
void mpd_sendShuffleCommand(mpd_Connection *connection)
void mpd_sendSeekCommand(mpd_Connection *connection, int song, int seek_time)
void mpd_sendPlaylistIdCommand(mpd_Connection *connection, int songId)
void mpd_sendLoadCommand(mpd_Connection *connection, const char *name)
void mpd_sendSwapIdCommand(mpd_Connection *connection, int song1, int song2)
mpd_Song * mpd_newSong(void)
void mpd_setConnectionTimeout(mpd_Connection *connection, float timeout)
void mpd_sendStopCommand(mpd_Connection *connection)
struct _mpd_Song mpd_Song
void mpd_sendCommandListBegin(mpd_Connection *connection)
void mpd_sendCrossfadeCommand(mpd_Connection *connection, int seconds)
void mpd_sendDeleteIdCommand(mpd_Connection *connection, int songNum)
char * mpd_getNextEvent(mpd_Connection *connection)
void mpd_sendPlaylistAddCommand(mpd_Connection *connection, const char *playlist, const char *path)
void mpd_sendListCommand(mpd_Connection *connection, int table, const char *arg1)
mpd_OutputEntity * mpd_getNextOutput(mpd_Connection *connection)
char * mpd_getNextTag(mpd_Connection *connection, int type)
void mpd_sendListPlaylistsCommand(mpd_Connection *connection)
void mpd_sendStatsCommand(mpd_Connection *connection)
mpd_Directory * mpd_directoryDup(mpd_Directory *directory)
char * mpd_getNextSticker(mpd_Connection *connection)
char * mpdTagItemKeys[MPD_TAG_NUM_OF_ITEM_TYPES]
void mpd_sendSetvolCommand(mpd_Connection *connection, int volumeChange)
struct _mpd_Stats mpd_Stats
void mpd_sendDisableOutputCommand(mpd_Connection *connection, int outputId)
struct _mpd_PlaylistFile mpd_PlaylistFile
char * mpd_getReplayGainMode(mpd_Connection *connection)
void mpd_freeStatus(mpd_Status *status)
void mpd_sendEnableOutputCommand(mpd_Connection *connection, int outputId)
void mpd_startStatsSearch(mpd_Connection *connection)
mpd_InfoEntity * mpd_newInfoEntity(void)
void mpd_freeSearchStats(mpd_SearchStats *stats)
void mpd_sendUrlHandlersCommand(mpd_Connection *connection)
void mpd_sendAddCommand(mpd_Connection *connection, const char *file)
int mpd_sendAddIdCommand(mpd_Connection *connection, const char *file)
struct _mpd_SearchStats mpd_SearchStats
mpd_Status * mpd_getStatus(mpd_Connection *connection)
void mpd_sendPrevCommand(mpd_Connection *connection)
void mpd_sendListPlaylistCommand(mpd_Connection *connection, const char *path)
void mpd_sendPauseCommand(mpd_Connection *connection, int pauseMode)
char * mpd_getNextTagType(mpd_Connection *connection)
void mpd_freeOutputElement(mpd_OutputEntity *output)
void mpd_sendSetSongSticker(mpd_Connection *connection, const char *song, const char *sticker, const char *value)
mpd_PlaylistFile * mpd_newPlaylistFile(void)
void mpd_sendPlaylistDeleteCommand(mpd_Connection *connection, const char *playlist, int pos)
void mpd_clearError(mpd_Connection *connection)
void mpd_sendNotCommandsCommand(mpd_Connection *connection)
void mpd_sendReplayGainModeCommand(mpd_Connection *connection)
mpd_InfoEntity * mpd_getNextInfoEntity(mpd_Connection *connection)
void mpd_commitSearch(mpd_Connection *connection)
struct mpd_Status mpd_Status
mpd_Connection * mpd_newConnection(const char *host, int port, float timeout)
#define MPD_BUFFER_MAX_LENGTH
void mpd_sendNextCommand(mpd_Connection *connection)
int mpd_nextListOkCommand(mpd_Connection *connection)
void mpd_sendPlaylistMoveCommand(mpd_Connection *connection, const char *playlist, int from, int to)
void mpd_finishCommand(mpd_Connection *connection)
void mpd_sendMoveCommand(mpd_Connection *connection, int from, int to)
void mpd_sendListallCommand(mpd_Connection *connection, const char *dir)
void mpd_freeStats(mpd_Stats *stats)
struct mpd_InfoEntity mpd_InfoEntity
void mpd_sendGetSongSticker(mpd_Connection *connection, const char *song, const char *sticker)
struct _mpd_Directory mpd_Directory
void mpd_sendSearchCommand(mpd_Connection *connection, int table, const char *str)
void mpd_freeDirectory(mpd_Directory *directory)
void mpd_sendConsumeCommand(mpd_Connection *connection, int consumeMode)
void mpd_sendRepeatCommand(mpd_Connection *connection, int repeatMode)
void mpd_sendPasswordCommand(mpd_Connection *connection, const char *pass)
void mpd_sendFindCommand(mpd_Connection *connection, int table, const char *str)
void mpd_sendPlaylistInfoCommand(mpd_Connection *connection, int songNum)
void mpd_startPlaylistSearch(mpd_Connection *connection, int exact)
void mpd_sendUpdateCommand(mpd_Connection *connection, const char *path)
void mpd_sendMoveIdCommand(mpd_Connection *connection, int from, int to)
void mpd_sendSingleCommand(mpd_Connection *connection, int singleMode)
struct timeval timeout
char errorStr[MPD_ERRORSTR_MAX_LENGTH+1]
char buffer[MPD_BUFFER_MAX_LENGTH+1]
mpd_ReturnElement * returnElement
unsigned long playTime
char * albumartist
char * performer
char * file
char * title
char * date
char * album
char * disc
char * name
char * comment
char * composer
char * artist
char * genre
char * track
unsigned long dbPlayTime
unsigned long playTime
unsigned long uptime
unsigned long dbUpdateTime
int numberOfArtists
union mpd_InfoEntity::@4 info
mpd_Song * song
mpd_PlaylistFile * playlistFile
mpd_Directory * directory
unsigned int sampleRate
long long playlist
long long storedplaylist

Copyright 2006 Qball Cow