mirror of
https://github.com/owntone/owntone-server.git
synced 2024-12-26 23:25:56 -05:00
Add dummy playqueue-contents support
This commit is contained in:
parent
0d5fef60e6
commit
f71954eb43
@ -689,27 +689,30 @@ dacp_propset_userrating(const char *value, struct evkeyvalq *query)
|
||||
static void
|
||||
dacp_reply_ctrlint(struct evhttp_request *req, struct evbuffer *evbuf, char **uri, struct evkeyvalq *query)
|
||||
{
|
||||
dmap_add_container(evbuf, "caci", 127); /* 8 + len */
|
||||
dmap_add_int(evbuf, "mstt", 200); /* 12 */
|
||||
dmap_add_char(evbuf, "muty", 0); /* 9 */
|
||||
dmap_add_int(evbuf, "mtco", 1); /* 12 */
|
||||
dmap_add_int(evbuf, "mrco", 1); /* 12 */
|
||||
dmap_add_container(evbuf, "mlcl", 125); /* 8 + len */
|
||||
dmap_add_container(evbuf, "mlit", 117); /* 8 + len */
|
||||
dmap_add_int(evbuf, "miid", 1); /* 12 */ /* Database ID */
|
||||
dmap_add_char(evbuf, "cmik", 1); /* 9 */
|
||||
/* /ctrl-int */
|
||||
/* If tags are added or removed container sizes should be adjusted too */
|
||||
dmap_add_container(evbuf, "caci", 194); /* 8, unknown dacp container - size of content */
|
||||
dmap_add_int(evbuf, "mstt", 200); /* 12, dmap.status */
|
||||
dmap_add_char(evbuf, "muty", 0); /* 9, dmap.updatetype */
|
||||
dmap_add_int(evbuf, "mtco", 1); /* 12, dmap.specifiedtotalcount */
|
||||
dmap_add_int(evbuf, "mrco", 1); /* 12, dmap.returnedcount */
|
||||
dmap_add_container(evbuf, "mlcl", 141); /* 8, dmap.listing - size of content */
|
||||
dmap_add_container(evbuf, "mlit", 133); /* 8, dmap.listingitem - size of content */
|
||||
dmap_add_int(evbuf, "miid", 1); /* 12, dmap.itemid - database ID */
|
||||
dmap_add_char(evbuf, "cmik", 1); /* 9, unknown */
|
||||
|
||||
dmap_add_int(evbuf, "cmpr", (2 << 16 | 1)); /* 12 */
|
||||
dmap_add_int(evbuf, "capr", (2 << 16 | 2)); /* 12 */
|
||||
dmap_add_int(evbuf, "cmpr", (2 << 16 | 2)); /* 12, dmcp.protocolversion */
|
||||
dmap_add_int(evbuf, "capr", (2 << 16 | 5)); /* 12, dacp.protocolversion */
|
||||
|
||||
dmap_add_char(evbuf, "cmsp", 1); /* 9 */
|
||||
dmap_add_char(evbuf, "aeFR", 0x64); /* 9 */
|
||||
dmap_add_char(evbuf, "cmsv", 1); /* 9 */
|
||||
dmap_add_char(evbuf, "cass", 1); /* 9 */
|
||||
dmap_add_char(evbuf, "caov", 1); /* 9 */
|
||||
dmap_add_char(evbuf, "casu", 1); /* 9 */
|
||||
dmap_add_char(evbuf, "ceSG", 1); /* 9 */
|
||||
dmap_add_char(evbuf, "cmrl", 1); /* 9 */
|
||||
dmap_add_char(evbuf, "cmsp", 1); /* 9, unknown */
|
||||
dmap_add_char(evbuf, "aeFR", 0x64); /* 9, unknown */
|
||||
dmap_add_char(evbuf, "cmsv", 1); /* 9, unknown */
|
||||
dmap_add_char(evbuf, "cass", 1); /* 9, unknown */
|
||||
dmap_add_char(evbuf, "caov", 1); /* 9, unknown */
|
||||
dmap_add_char(evbuf, "casu", 1); /* 9, unknown */
|
||||
dmap_add_char(evbuf, "ceSG", 1); /* 9, unknown */
|
||||
dmap_add_char(evbuf, "cmrl", 1); /* 9, unknown */
|
||||
dmap_add_long(evbuf, "ceSX", 3); /* 16, unknown dacp - announce support for playqueue-contents */
|
||||
|
||||
httpd_send_reply(req, HTTP_OK, "OK", evbuf);
|
||||
}
|
||||
@ -1124,6 +1127,47 @@ dacp_reply_playresume(struct evhttp_request *req, struct evbuffer *evbuf, char *
|
||||
evhttp_send_reply(req, HTTP_NOCONTENT, "No Content", evbuf);
|
||||
}
|
||||
|
||||
static void
|
||||
dacp_reply_playqueuecontents(struct evhttp_request *req, struct evbuffer *evbuf, char **uri, struct evkeyvalq *query)
|
||||
{
|
||||
struct daap_session *s;
|
||||
const char *param;
|
||||
int span;
|
||||
int ret;
|
||||
|
||||
/* /ctrl-int/1/playqueue-contents?span=50&session-id=... */
|
||||
|
||||
s = daap_session_find(req, query, evbuf);
|
||||
if (!s)
|
||||
return;
|
||||
|
||||
param = evhttp_find_header(query, "span");
|
||||
if (param)
|
||||
{
|
||||
ret = safe_atoi32(param, &span);
|
||||
if (ret < 0)
|
||||
DPRINTF(E_LOG, L_DACP, "Invalid span value in playqueue-contents request\n");
|
||||
}
|
||||
|
||||
/* Dummy reply */
|
||||
dmap_add_container(evbuf, "ceQR", 138); /* 8, size of contents */
|
||||
dmap_add_int(evbuf, "mstt", 200); /* 12, dmap.status */
|
||||
dmap_add_int(evbuf, "mtco", span); /* 12 */
|
||||
dmap_add_int(evbuf, "mtco", 0); /* 12 */
|
||||
dmap_add_char(evbuf, "ceQu", 0); /* 9 */
|
||||
dmap_add_container(evbuf, "mlcl", 67); /* 8 */
|
||||
dmap_add_container(evbuf, "ceQS", 59); /* 8 */
|
||||
dmap_add_container(evbuf, "mlit", 51); /* 8 */
|
||||
dmap_add_string(evbuf, "ceQk", "hist"); /* 12 */
|
||||
dmap_add_int(evbuf, "ceQi", 0xffffff38); /* 12 */
|
||||
dmap_add_int(evbuf, "ceQm", 200); /* 12 */
|
||||
dmap_add_string(evbuf, "ceQl", "History"); /* 27 */
|
||||
dmap_add_char(evbuf, "apsm", 0); /* 9, daap.playlistshufflemode - not part of mlcl container */
|
||||
dmap_add_char(evbuf, "aprm", 0); /* 9, daap.playlistrepeatmode - not part of mlcl container */
|
||||
|
||||
httpd_send_reply(req, HTTP_OK, "OK", evbuf);
|
||||
}
|
||||
|
||||
static void
|
||||
dacp_reply_playstatusupdate(struct evhttp_request *req, struct evbuffer *evbuf, char **uri, struct evkeyvalq *query)
|
||||
{
|
||||
@ -1624,6 +1668,10 @@ static struct uri_map dacp_handlers[] =
|
||||
.regexp = "^/ctrl-int/[[:digit:]]+/playstatusupdate$",
|
||||
.handler = dacp_reply_playstatusupdate
|
||||
},
|
||||
{
|
||||
.regexp = "^/ctrl-int/[[:digit:]]+/playqueue-contents$",
|
||||
.handler = dacp_reply_playqueuecontents
|
||||
},
|
||||
{
|
||||
.regexp = "^/ctrl-int/[[:digit:]]+/nowplayingartwork$",
|
||||
.handler = dacp_reply_nowplayingartwork
|
||||
|
Loading…
Reference in New Issue
Block a user