diff --git a/htdocs/index.html b/htdocs/index.html
index eba5163..97c450a 100644
--- a/htdocs/index.html
+++ b/htdocs/index.html
@@ -141,7 +141,7 @@
-
+
diff --git a/htdocs/js/mpd.js b/htdocs/js/mpd.js
index 1a98608..05e3544 100644
--- a/htdocs/js/mpd.js
+++ b/htdocs/js/mpd.js
@@ -756,8 +756,13 @@ function parseState(obj) {
function getQueue() {
if (app.current.search.length >= 2)
sendAPI({"cmd": "MPD_API_SEARCH_QUEUE", "data": {"mpdtag":app.current.filter, "offset":app.current.page, "searchstr": app.current.search}}, parseQueue);
- else
- sendAPI({"cmd": "MPD_API_GET_QUEUE", "data": {"offset": app.current.page}}, parseQueue);
+ else {
+ var queue_version = document.getElementById('QueueList').getAttribute('data-version');
+ if (last_state && queue_version != last_state.data.queue_version)
+ sendAPI({"cmd": "MPD_API_GET_QUEUE", "data": {"offset": app.current.page}}, parseQueue);
+ else
+ document.getElementById('QueueList').classList.remove('opacity05');
+ }
}
function parseQueue(obj) {
@@ -772,7 +777,9 @@ function parseQueue(obj) {
document.getElementById('panel-heading-queue').innerText = '';
var nrItems = obj.data.length;
- var tbody = document.getElementById(app.current.app + 'List').getElementsByTagName('tbody')[0];
+ var table = document.getElementById(app.current.app + 'List');
+ table.setAttribute('data-version', obj.queue_version);
+ var tbody = table.getElementsByTagName('tbody')[0];
var tr = tbody.getElementsByTagName('tr');
for (var i = 0; i < nrItems; i ++) {
if (tr[i])
diff --git a/src/mpd_client.c b/src/mpd_client.c
index 8d874f0..3581915 100644
--- a/src/mpd_client.c
+++ b/src/mpd_client.c
@@ -798,11 +798,12 @@ int mympd_put_queue(char *buffer, unsigned int offset) {
mpd_entity_free(entity);
}
- len += json_printf(&out, "],totalTime: %d, totalEntities: %d, offset: %d, returnedEntities: %d }",
+ len += json_printf(&out, "],totalTime: %d, totalEntities: %d, offset: %d, returnedEntities: %d, queue_version: %d }",
totalTime,
entity_count,
offset,
- entities_returned
+ entities_returned,
+ mpd.queue_version
);
if (len > MAX_SIZE) fprintf(stderr,"Buffer truncated\n");