playlist: provide information about "next song"
In random mode, this patch allows clients to see the "next song" in the queue.
This commit is contained in:
parent
b358962960
commit
cde4cb944e
|
@ -62,6 +62,8 @@
|
|||
#define COMMAND_STATUS_PLAYLIST_LENGTH "playlistlength"
|
||||
#define COMMAND_STATUS_SONG "song"
|
||||
#define COMMAND_STATUS_SONGID "songid"
|
||||
#define COMMAND_STATUS_NEXTSONG "nextsong"
|
||||
#define COMMAND_STATUS_NEXTSONGID "nextsongid"
|
||||
#define COMMAND_STATUS_TIME "time"
|
||||
#define COMMAND_STATUS_BITRATE "bitrate"
|
||||
#define COMMAND_STATUS_ERROR "error"
|
||||
|
@ -508,6 +510,14 @@ handle_status(struct client *client,
|
|||
getPlayerErrorStr());
|
||||
}
|
||||
|
||||
song = getPlaylistNextSong(&g_playlist);
|
||||
if (song >= 0) {
|
||||
client_printf(client,
|
||||
COMMAND_STATUS_NEXTSONG ": %i\n"
|
||||
COMMAND_STATUS_NEXTSONGID ": %u\n",
|
||||
song, getPlaylistSongId(&g_playlist, song));
|
||||
}
|
||||
|
||||
return COMMAND_RETURN_OK;
|
||||
}
|
||||
|
||||
|
|
|
@ -334,6 +334,21 @@ int getPlaylistCurrentSong(const struct playlist *playlist)
|
|||
return -1;
|
||||
}
|
||||
|
||||
int getPlaylistNextSong(const struct playlist *playlist)
|
||||
{
|
||||
if (playlist->current >= 0)
|
||||
{
|
||||
if (queue_length(&playlist->queue) > 1)
|
||||
return queue_order_to_position(&playlist->queue,
|
||||
playlist->current + 1);
|
||||
else if (playlist->queue.repeat == 1)
|
||||
return queue_order_to_position(&playlist->queue,
|
||||
playlist->current);
|
||||
}
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
unsigned long
|
||||
getPlaylistVersion(const struct playlist *playlist)
|
||||
{
|
||||
|
|
|
@ -180,6 +180,8 @@ void setPlaylistRandomStatus(struct playlist *playlist, bool status);
|
|||
|
||||
int getPlaylistCurrentSong(const struct playlist *playlist);
|
||||
|
||||
int getPlaylistNextSong(const struct playlist *playlist);
|
||||
|
||||
unsigned
|
||||
getPlaylistSongId(const struct playlist *playlist, unsigned song);
|
||||
|
||||
|
|
Loading…
Reference in New Issue