diff --git a/README.rst b/README.rst index b2d08b1..931ff21 100644 --- a/README.rst +++ b/README.rst @@ -75,6 +75,7 @@ v2.2.0 (UNRELEASED) - Prevent mobile devices from scaling when used in landscape mode. (Fixes: `#157 `_). - Scrolling now works in full screen mode for Chrome and Safari as well. (Fixes: `#53 `_). +- No longer interferes with changes to Mopidy's volume levels that are triggered externally. (Fixes: `#162 `_). v2.1.1 (2016-02-04) ------------------- diff --git a/mopidy_musicbox_webclient/static/index.html b/mopidy_musicbox_webclient/static/index.html index 5dbe21c..4fec7fd 100644 --- a/mopidy_musicbox_webclient/static/index.html +++ b/mopidy_musicbox_webclient/static/index.html @@ -114,7 +114,7 @@ + value="0" max="100"/> diff --git a/mopidy_musicbox_webclient/static/js/controls.js b/mopidy_musicbox_webclient/static/js/controls.js index 12c25ca..b4efca2 100644 --- a/mopidy_musicbox_webclient/static/js/controls.js +++ b/mopidy_musicbox_webclient/static/js/controls.js @@ -375,20 +375,18 @@ function setPosition(pos) { ***********************************************/ function setVolume(value) { - if ($("#volumeslider").val() != value) { + if (!volumeChanging && $("#volumeslider").val() != value) { + $( "#volumeslider" ).off( "change" ); $("#volumeslider").val(value).slider('refresh'); + $( "#volumeslider" ).on( "change", function() { doVolume( $(this).val() ); } ) } } function doVolume(value) { - volumeChanging = value; - clearInterval(volumeTimer); - volumeTimer = setTimeout(triggerVolume, 500); -} - -function triggerVolume() { - mopidy.playback.setVolume({'volume': parseInt(volumeChanging)}); - volumeChanging = 0; + if (!volumeChanging) { + volumeChanging = value; + mopidy.playback.setVolume({'volume': parseInt(value)}); + } } function setMute(nwmute) { diff --git a/mopidy_musicbox_webclient/static/js/functionsvars.js b/mopidy_musicbox_webclient/static/js/functionsvars.js index 4fcd982..472bb32 100644 --- a/mopidy_musicbox_webclient/static/js/functionsvars.js +++ b/mopidy_musicbox_webclient/static/js/functionsvars.js @@ -14,9 +14,8 @@ var consume; var single; var currentVolume = -1; var mute; -var volumeChanging = false; +var volumeChanging; -var volumeTimer; var initgui = true; var currentpos = 0; var popupData = {}; diff --git a/mopidy_musicbox_webclient/static/js/gui.js b/mopidy_musicbox_webclient/static/js/gui.js index b8a0f6c..2894626 100644 --- a/mopidy_musicbox_webclient/static/js/gui.js +++ b/mopidy_musicbox_webclient/static/js/gui.js @@ -257,9 +257,10 @@ function initSocketevents() { }); mopidy.on("event:volumeChanged", function(data) { - if (!volumeChanging) { - setVolume(data["volume"]); + if (volumeChanging && volumeChanging == data["volume"]) { + volumeChanging = null; } + setVolume(data["volume"]); }); mopidy.on("event:muteChanged", function(data) { @@ -573,7 +574,6 @@ $(document).ready(function(event) { $( "#trackslider" ).on( "slidestart", function() { progressTimer.stop(); } ) $( "#trackslider" ).on( "slidestop", function() { doSeekPos( $(this).val() ); } ); - }); function updatePlayIcons (uri, tlid) { diff --git a/mopidy_musicbox_webclient/static/js/process_ws.js b/mopidy_musicbox_webclient/static/js/process_ws.js index df0513a..b480e4d 100644 --- a/mopidy_musicbox_webclient/static/js/process_ws.js +++ b/mopidy_musicbox_webclient/static/js/process_ws.js @@ -16,9 +16,7 @@ function processCurrenttrack(data) { * process results of volume *********************************************************/ function processVolume(data) { - if (!volumeChanging) { - setVolume(data); - } + setVolume(data); } /******************************************************** diff --git a/mopidy_musicbox_webclient/static/mb.manifest b/mopidy_musicbox_webclient/static/mb.manifest index ab50be3..f90424b 100644 --- a/mopidy_musicbox_webclient/static/mb.manifest +++ b/mopidy_musicbox_webclient/static/mb.manifest @@ -1,6 +1,6 @@ CACHE MANIFEST -# 2016-02-14:v2 +# 2016-02-14:v4 NETWORK: *