diff options
-rw-r--r-- | doc/COMMANDS | 7 | ||||
-rw-r--r-- | src/command.c | 17 |
2 files changed, 24 insertions, 0 deletions
diff --git a/doc/COMMANDS b/doc/COMMANDS index e84f85afd..66b014a03 100644 --- a/doc/COMMANDS +++ b/doc/COMMANDS @@ -119,6 +119,10 @@ load <string name> lsinfo <string directory> list contents of _directory_, from the db. _directory_ is optional + When listing the root directory, this currently returns the + list of stored playlists. This behavior is deprecated; use + "listplaylists" instead. + move <int from> <int to> move song at _from_ to _to_ in the playlist increments playlist version by 1 @@ -184,6 +188,9 @@ random <int state> repeat <int state> set repeat state to _state_, _state_ should be 0 or 1 +listplaylists + prints a list of the playlist directory + rm <string name> removes the playlist <name>.m3u from the playlist directory diff --git a/src/command.c b/src/command.c index dbdbe4003..db793350d 100644 --- a/src/command.c +++ b/src/command.c @@ -1157,6 +1157,22 @@ static int handlePlaylistAdd(struct client *client, } static int +handle_list_playlists(struct client *client, + mpd_unused int argc, mpd_unused char *argv[]) +{ + GPtrArray *list = spl_list(); + if (list == NULL) { + command_error(client, ACK_ERROR_SYSTEM, + "failed to get list of stored playlists"); + return -1; + } + + print_spl_list(client, list); + spl_list_free(list); + return 0; +} + +static int handle_idle(struct client *client, mpd_unused int argc, mpd_unused char *argv[]) { @@ -1194,6 +1210,7 @@ static const struct command commands[] = { { "listallinfo", PERMISSION_READ, 0, 1, handleListAllInfo }, { "listplaylist", PERMISSION_READ, 1, 1, handleListPlaylist }, { "listplaylistinfo", PERMISSION_READ, 1, 1, handleListPlaylistInfo }, + { "listplaylists", PERMISSION_READ, 0, 0, handle_list_playlists }, { "load", PERMISSION_ADD, 1, 1, handleLoad }, { "lsinfo", PERMISSION_READ, 0, 1, handleLsInfo }, { "move", PERMISSION_CONTROL, 2, 2, handleMove }, |