From 158af8dd69b8dda608a3ae6eb7b3cc658dd58e0b Mon Sep 17 00:00:00 2001 From: kingosticks Date: Wed, 4 Mar 2015 23:55:46 +0000 Subject: [PATCH] Add consume mode and use event to update status. (Fixes #32) --- mopidy_musicbox_webclient/static/index.html | 3 +-- .../static/js/controls.js | 16 +++++++++++++++ .../static/js/functionsvars.js | 1 + mopidy_musicbox_webclient/static/js/gui.js | 20 ++++++++++--------- .../static/js/process_ws.js | 7 +++++++ 5 files changed, 36 insertions(+), 11 deletions(-) diff --git a/mopidy_musicbox_webclient/static/index.html b/mopidy_musicbox_webclient/static/index.html index 2a9a02f..a0e300c 100644 --- a/mopidy_musicbox_webclient/static/index.html +++ b/mopidy_musicbox_webclient/static/index.html @@ -437,12 +437,11 @@
- -

  +    

diff --git a/mopidy_musicbox_webclient/static/js/controls.js b/mopidy_musicbox_webclient/static/js/controls.js index 07a324d..1739866 100644 --- a/mopidy_musicbox_webclient/static/js/controls.js +++ b/mopidy_musicbox_webclient/static/js/controls.js @@ -332,6 +332,18 @@ function setRandom(nwrandom) { random = nwrandom; } +function setConsume(nwconsume) { + if (consume == nwconsume) { + return + } + if (!nwconsume) { + $("#consumebt").attr('style', 'color:#2489ce'); + } else { + $("#consumebt").attr('style', 'color:#66DD33'); + } + consume = nwconsume; +} + function doRandom() { if (random == false) { //check for mopidy 0.16.x or higher @@ -370,6 +382,10 @@ function doRepeat() { setRepeat(!repeat); } +function doConsume() { + mopidy.tracklist.setConsume(!consume).then(); +} + /* function setRepeat(nwrepeat) { diff --git a/mopidy_musicbox_webclient/static/js/functionsvars.js b/mopidy_musicbox_webclient/static/js/functionsvars.js index 22fbcc4..165cb3d 100644 --- a/mopidy_musicbox_webclient/static/js/functionsvars.js +++ b/mopidy_musicbox_webclient/static/js/functionsvars.js @@ -16,6 +16,7 @@ var mopidy; var play = false; var random; var repeat; +var consume; var currentVolume = -1; var muteVolume = -1; var volumeChanging = false; diff --git a/mopidy_musicbox_webclient/static/js/gui.js b/mopidy_musicbox_webclient/static/js/gui.js index 2ef16c1..0744bd0 100644 --- a/mopidy_musicbox_webclient/static/js/gui.js +++ b/mopidy_musicbox_webclient/static/js/gui.js @@ -221,6 +221,8 @@ function initSocketevents() { resetSong(); showOffline(true); }); + + mopidy.on("event:optionsChanged", updateOptions); mopidy.on("event:trackPlaybackStarted", function(data) { mopidy.playback.getTimePosition().then(processCurrentposition, console.error); @@ -338,20 +340,20 @@ function updateStatusTimer() { //TODO check offline? } +//update tracklist options. +function updateOptions() { + mopidy.tracklist.getRepeat().then(processRepeat, console.error); + mopidy.tracklist.getRandom().then(processRandom, console.error); + mopidy.tracklist.getConsume().then(processConsume, console.error); +} + //update everything as if reloaded function updateStatusOfAll() { mopidy.playback.getCurrentTrack().then(processCurrenttrack, console.error); mopidy.playback.getTimePosition().then(processCurrentposition, console.error); mopidy.playback.getState().then(processPlaystate, console.error); - //check for mopidy 0.16 and higher - if (mopidy.tracklist.getRepeat) { - mopidy.tracklist.getRepeat().then(processRepeat, console.error); - mopidy.tracklist.getRandom().then(processRandom, console.error); - } else { - mopidy.playback.getRepeat().then(processRepeat, console.error); - mopidy.playback.getRandom().then(processRandom, console.error); - } + updateOptions() mopidy.playback.getVolume().then(processVolume, console.error); } @@ -608,4 +610,4 @@ function updatePlayIcons (uri) { $(this).removeClass("currenttrack2"); } }); -} \ No newline at end of file +} diff --git a/mopidy_musicbox_webclient/static/js/process_ws.js b/mopidy_musicbox_webclient/static/js/process_ws.js index 8ca6b21..c86d7c3 100644 --- a/mopidy_musicbox_webclient/static/js/process_ws.js +++ b/mopidy_musicbox_webclient/static/js/process_ws.js @@ -35,6 +35,13 @@ function processRandom(data) { setRandom(data); } +/******************************************************** + * process results of consume + *********************************************************/ +function processConsume(data) { + setConsume(data); +} + /******************************************************** * process results of current position *********************************************************/