diff options
author | Qball Cow <qball@qballcow.nl> | 2007-08-19 14:46:00 +0000 |
---|---|---|
committer | Qball Cow <qball@qballcow.nl> | 2007-08-19 14:46:00 +0000 |
commit | 3cee1f6a2ce66f4bb3b04db5ebb00b1dce9d6c25 (patch) | |
tree | 0924bc864d2721324abb6dec032ab3a1d9c34cd1 /src/command.c | |
parent | 5bd81af3a9abca6b316c5899596ba308287b47a6 (diff) | |
download | mpd-3cee1f6a2ce66f4bb3b04db5ebb00b1dce9d6c25.tar.gz mpd-3cee1f6a2ce66f4bb3b04db5ebb00b1dce9d6c25.tar.xz mpd-3cee1f6a2ce66f4bb3b04db5ebb00b1dce9d6c25.zip |
Queue patch
git-svn-id: https://svn.musicpd.org/mpd/branches/q-mpd@6757 09075e82-0dd4-0310-85a5-a0d7c8717e4f
Diffstat (limited to 'src/command.c')
-rw-r--r-- | src/command.c | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/src/command.c b/src/command.c index 84a30db2b..83a8d3a2d 100644 --- a/src/command.c +++ b/src/command.c @@ -98,6 +98,9 @@ #define COMMAND_PLAYLISTSEARCH "playlistsearch" #define COMMAND_PLAYLISTMOVE "playlistmove" #define COMMAND_PLAYLISTDELETE "playlistdelete" +#define COMMAND_QUEUEID "queueid" +#define COMMAND_DEQUEUE "dequeue" +#define COMMAND_QUEUEINFO "queueinfo" #define COMMAND_TAGTYPES "tagtypes" #define COMMAND_COUNT "count" #define COMMAND_RENAME "rename" @@ -107,6 +110,7 @@ #define COMMAND_STATUS_REPEAT "repeat" #define COMMAND_STATUS_RANDOM "random" #define COMMAND_STATUS_PLAYLIST "playlist" +#define COMMAND_STATUS_PLAYLIST_QUEUE "playlistqueue" #define COMMAND_STATUS_PLAYLIST_LENGTH "playlistlength" #define COMMAND_STATUS_SONG "song" #define COMMAND_STATUS_SONGID "songid" @@ -278,6 +282,8 @@ static int commandStatus(int fd, int *permission, int argc, char *argv[]) getPlaylistRandomStatus()); fdprintf(fd, "%s: %li\n", COMMAND_STATUS_PLAYLIST, getPlaylistVersion()); + fdprintf(fd, "%s: %li\n", COMMAND_STATUS_PLAYLIST_QUEUE, + getPlaylistQueueVersion()); fdprintf(fd, "%s: %i\n", COMMAND_STATUS_PLAYLIST_LENGTH, getPlaylistLength()); fdprintf(fd, "%s: %i\n", COMMAND_STATUS_CROSSFADE, @@ -625,6 +631,47 @@ static int handlePlaylistMove(int fd, int *permission, int argc, char *argv[]) return moveSongInStoredPlaylistByPath(fd, playlist, from, to); } +static int handleQueueInfo(int fd, int *permission, int argc, char *argv[]) +{ + return playlistQueueInfo(fd); +} + +static int handleQueueId(int fd, int *permission, int argc, char *argv[]) +{ + int id, position = -1; + char *test; + + id = strtol(argv[1], &test, 10); + if (*test != '\0') { + commandError(fd, ACK_ERROR_ARG, + "\"%s\" is not a integer", argv[1]); + return -1; + } + if (argc == 3) { + position = strtol(argv[2], &test, 10); + if (*test != '\0') { + commandError(fd, ACK_ERROR_ARG, + "\"%s\" is not a integer", argv[2]); + return -1; + } + } + return addToPlaylistQueueById(fd, id, position); +} + +static int handleDequeue(int fd, int *permission, int argc, char *argv[]) +{ + int pos; + char *test; + + pos = strtol(argv[1], &test, 10); + if (*test != '\0') { + commandError(fd, ACK_ERROR_ARG, + "\"%s\" is not a integer", argv[1]); + return -1; + } + return deleteFromPlaylistQueue(fd, pos); +} + static int listHandleUpdate(int fd, int *permission, int argc, @@ -1121,6 +1168,9 @@ void initCommands(void) addCommand(COMMAND_PLAYLISTSEARCH, PERMISSION_READ, 2, -1, handlePlaylistSearch, NULL); addCommand(COMMAND_PLAYLISTMOVE, PERMISSION_CONTROL, 3, 3, handlePlaylistMove, NULL); addCommand(COMMAND_PLAYLISTDELETE, PERMISSION_CONTROL, 2, 2, handlePlaylistDelete, NULL); + addCommand(COMMAND_QUEUEINFO, PERMISSION_CONTROL, 0, 0, handleQueueInfo, NULL); + addCommand(COMMAND_QUEUEID, PERMISSION_CONTROL, 1, 2, handleQueueId, NULL); + addCommand(COMMAND_DEQUEUE, PERMISSION_CONTROL, 1, 1, handleDequeue, NULL); addCommand(COMMAND_TAGTYPES, PERMISSION_READ, 0, 0, handleTagTypes, NULL); addCommand(COMMAND_COUNT, PERMISSION_READ, 2, -1, handleCount, NULL); addCommand(COMMAND_RENAME, PERMISSION_CONTROL, 2, 2, handleRename, NULL); |