[dacp] Always start playing from the beginning of the shuffle queue

This commit is contained in:
chme 2017-03-04 08:35:16 +01:00
parent 03e9182423
commit 1dfca1ec22

View File

@ -984,6 +984,9 @@ dacp_queueitem_add(const char *query, const char *queuefilter, const char *sort,
if (ret < 0) if (ret < 0)
return -1; return -1;
if (status.shuffle)
return 0;
return id; return id;
} }
@ -1789,7 +1792,6 @@ dacp_reply_playqueueedit_add(struct evhttp_request *req, struct evbuffer *evbuf,
const char *sort; const char *sort;
const char *param; const char *param;
char modifiedquery[32]; char modifiedquery[32];
uint32_t idx;
int mode; int mode;
int plid; int plid;
int ret; int ret;
@ -1817,6 +1819,9 @@ dacp_reply_playqueueedit_add(struct evhttp_request *req, struct evbuffer *evbuf,
db_queue_clear(0); db_queue_clear(0);
} }
if (mode == 2)
player_shuffle_set(1);
editquery = evhttp_find_header(query, "query"); editquery = evhttp_find_header(query, "query");
if (!editquery) if (!editquery)
{ {
@ -1867,27 +1872,20 @@ dacp_reply_playqueueedit_add(struct evhttp_request *req, struct evbuffer *evbuf,
return; return;
} }
if (mode == 2)
{
player_shuffle_set(1);
ret = 0;
}
idx = 0;
queue_item = NULL;
if (ret > 0) if (ret > 0)
{ queue_item = db_queue_fetch_byfileid(ret);
queue_item = db_queue_fetch_byfileid(ret); else
} queue_item = NULL;
DPRINTF(E_DBG, L_DACP, "Song queue built, playback starting at index %" PRIu32 "\n", idx);
if (queue_item) if (queue_item)
{ {
DPRINTF(E_DBG, L_DACP, "Song queue built, starting playback at index %d\n", queue_item->pos);
ret = player_playback_start_byitem(queue_item); ret = player_playback_start_byitem(queue_item);
free_queue_item(queue_item, 0); free_queue_item(queue_item, 0);
} }
else else
{ {
DPRINTF(E_DBG, L_DACP, "Song queue built, starting playback\n");
ret = player_playback_start(); ret = player_playback_start();
} }