mirror of
https://github.com/SuperBFG7/ympd
synced 2024-10-31 20:16:17 +00:00
Added additional "totalTime" field to "obj" for the queue's total time.
This commit is contained in:
parent
612f8fc0b2
commit
54e334a2a0
@ -600,6 +600,7 @@ int mpd_put_queue(char *buffer, unsigned int offset)
|
|||||||
char *cur = buffer;
|
char *cur = buffer;
|
||||||
const char *end = buffer + MAX_SIZE;
|
const char *end = buffer + MAX_SIZE;
|
||||||
struct mpd_entity *entity;
|
struct mpd_entity *entity;
|
||||||
|
unsigned long totalTime = 0;
|
||||||
|
|
||||||
if (!mpd_send_list_queue_range_meta(mpd.conn, offset, offset+MAX_ELEMENTS_PER_PAGE))
|
if (!mpd_send_list_queue_range_meta(mpd.conn, offset, offset+MAX_ELEMENTS_PER_PAGE))
|
||||||
RETURN_ERROR_AND_RECOVER("mpd_send_list_queue_meta");
|
RETURN_ERROR_AND_RECOVER("mpd_send_list_queue_meta");
|
||||||
@ -608,16 +609,18 @@ int mpd_put_queue(char *buffer, unsigned int offset)
|
|||||||
|
|
||||||
while((entity = mpd_recv_entity(mpd.conn)) != NULL) {
|
while((entity = mpd_recv_entity(mpd.conn)) != NULL) {
|
||||||
const struct mpd_song *song;
|
const struct mpd_song *song;
|
||||||
|
unsigned int drtn;
|
||||||
|
|
||||||
if(mpd_entity_get_type(entity) == MPD_ENTITY_TYPE_SONG) {
|
if(mpd_entity_get_type(entity) == MPD_ENTITY_TYPE_SONG) {
|
||||||
song = mpd_entity_get_song(entity);
|
song = mpd_entity_get_song(entity);
|
||||||
|
drtn = mpd_song_get_duration(song);
|
||||||
|
|
||||||
cur += json_emit_raw_str(cur, end - cur, "{\"id\":");
|
cur += json_emit_raw_str(cur, end - cur, "{\"id\":");
|
||||||
cur += json_emit_int(cur, end - cur, mpd_song_get_id(song));
|
cur += json_emit_int(cur, end - cur, mpd_song_get_id(song));
|
||||||
cur += json_emit_raw_str(cur, end - cur, ",\"pos\":");
|
cur += json_emit_raw_str(cur, end - cur, ",\"pos\":");
|
||||||
cur += json_emit_int(cur, end - cur, mpd_song_get_pos(song));
|
cur += json_emit_int(cur, end - cur, mpd_song_get_pos(song));
|
||||||
cur += json_emit_raw_str(cur, end - cur, ",\"duration\":");
|
cur += json_emit_raw_str(cur, end - cur, ",\"duration\":");
|
||||||
cur += json_emit_int(cur, end - cur, mpd_song_get_duration(song));
|
cur += json_emit_int(cur, end - cur, drtn);
|
||||||
cur += json_emit_raw_str(cur, end - cur, ",\"title\":");
|
cur += json_emit_raw_str(cur, end - cur, ",\"title\":");
|
||||||
cur += json_emit_quoted_str(cur, end - cur, mpd_get_title(song));
|
cur += json_emit_quoted_str(cur, end - cur, mpd_get_title(song));
|
||||||
cur += json_emit_raw_str(cur, end - cur, ",\"artist\":");
|
cur += json_emit_raw_str(cur, end - cur, ",\"artist\":");
|
||||||
@ -625,6 +628,8 @@ int mpd_put_queue(char *buffer, unsigned int offset)
|
|||||||
cur += json_emit_raw_str(cur, end - cur, ",\"album\":");
|
cur += json_emit_raw_str(cur, end - cur, ",\"album\":");
|
||||||
cur += json_emit_quoted_str(cur, end - cur, mpd_get_album(song));
|
cur += json_emit_quoted_str(cur, end - cur, mpd_get_album(song));
|
||||||
cur += json_emit_raw_str(cur, end - cur, "},");
|
cur += json_emit_raw_str(cur, end - cur, "},");
|
||||||
|
|
||||||
|
totalTime += drtn;
|
||||||
}
|
}
|
||||||
mpd_entity_free(entity);
|
mpd_entity_free(entity);
|
||||||
}
|
}
|
||||||
@ -632,7 +637,9 @@ int mpd_put_queue(char *buffer, unsigned int offset)
|
|||||||
/* remove last ',' */
|
/* remove last ',' */
|
||||||
cur--;
|
cur--;
|
||||||
|
|
||||||
cur += json_emit_raw_str(cur, end - cur, "]}");
|
cur += json_emit_raw_str(cur, end - cur, "],\"totalTime\":");
|
||||||
|
cur += json_emit_int(cur, end - cur, totalTime);
|
||||||
|
cur += json_emit_raw_str(cur, end - cur, "}");
|
||||||
return cur - buffer;
|
return cur - buffer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user