mirror of
https://github.com/owntone/owntone-server.git
synced 2025-02-26 21:09:18 -05:00
[mpd] command 'status': report current/next if player is stopped
This commit is contained in:
parent
94a3d67559
commit
80e0808b18
39
src/mpd.c
39
src/mpd.c
@ -732,8 +732,8 @@ mpd_command_status(struct evbuffer *evbuf, int argc, char **argv, char **errmsg,
|
|||||||
int queue_length;
|
int queue_length;
|
||||||
int queue_version;
|
int queue_version;
|
||||||
char *state;
|
char *state;
|
||||||
int pos_pl;
|
uint32_t itemid = 0;
|
||||||
struct db_queue_item *next_item;
|
struct db_queue_item *queue_item;
|
||||||
|
|
||||||
player_get_status(&status);
|
player_get_status(&status);
|
||||||
|
|
||||||
@ -775,39 +775,50 @@ mpd_command_status(struct evbuffer *evbuf, int argc, char **argv, char **errmsg,
|
|||||||
state);
|
state);
|
||||||
|
|
||||||
if (status.status != PLAY_STOPPED)
|
if (status.status != PLAY_STOPPED)
|
||||||
{
|
queue_item = db_queue_fetch_byitemid(status.item_id);
|
||||||
pos_pl = db_queue_get_pos(status.item_id, 0);
|
else
|
||||||
|
queue_item = db_queue_fetch_bypos(0, status.shuffle);
|
||||||
|
|
||||||
|
if (queue_item)
|
||||||
|
{
|
||||||
evbuffer_add_printf(evbuf,
|
evbuffer_add_printf(evbuf,
|
||||||
"song: %d\n"
|
"song: %d\n"
|
||||||
"songid: %d\n"
|
"songid: %d\n",
|
||||||
|
queue_item->pos,
|
||||||
|
queue_item->id);
|
||||||
|
|
||||||
|
itemid = queue_item->id;
|
||||||
|
free_queue_item(queue_item, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (status.status != PLAY_STOPPED)
|
||||||
|
{
|
||||||
|
evbuffer_add_printf(evbuf,
|
||||||
"time: %d:%d\n"
|
"time: %d:%d\n"
|
||||||
"elapsed: %#.3f\n"
|
"elapsed: %#.3f\n"
|
||||||
"bitrate: 128\n"
|
"bitrate: 128\n"
|
||||||
"audio: 44100:16:2\n",
|
"audio: 44100:16:2\n",
|
||||||
pos_pl,
|
|
||||||
status.item_id,
|
|
||||||
(status.pos_ms / 1000), (status.len_ms / 1000),
|
(status.pos_ms / 1000), (status.len_ms / 1000),
|
||||||
(status.pos_ms / 1000.0));
|
(status.pos_ms / 1000.0));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (library_is_scanning())
|
if (library_is_scanning())
|
||||||
{
|
{
|
||||||
evbuffer_add(evbuf, "updating_db: 1\n", 15);
|
evbuffer_add(evbuf, "updating_db: 1\n", 15);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (status.status != PLAY_STOPPED)
|
if (itemid > 0)
|
||||||
{
|
{
|
||||||
next_item = db_queue_fetch_next(status.item_id, status.shuffle);
|
queue_item = db_queue_fetch_next(itemid, status.shuffle);
|
||||||
if (next_item)
|
if (queue_item)
|
||||||
{
|
{
|
||||||
evbuffer_add_printf(evbuf,
|
evbuffer_add_printf(evbuf,
|
||||||
"nextsong: %d\n"
|
"nextsong: %d\n"
|
||||||
"nextsongid: %d\n",
|
"nextsongid: %d\n",
|
||||||
next_item->id,
|
queue_item->id,
|
||||||
next_item->pos);
|
queue_item->pos);
|
||||||
|
|
||||||
free_queue_item(next_item, 0);
|
free_queue_item(queue_item, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user