From 15d56b84cb62f8e2bf08bdd23e9d9ff9f9b9366a Mon Sep 17 00:00:00 2001 From: Trygve Aaberge Date: Mon, 17 Dec 2012 00:06:20 +0100 Subject: [PATCH 1/3] core: Trigger volume changed event in set_volume --- mopidy/core/playback.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/mopidy/core/playback.py b/mopidy/core/playback.py index 4941ef0f..901976d6 100644 --- a/mopidy/core/playback.py +++ b/mopidy/core/playback.py @@ -283,6 +283,8 @@ class PlaybackController(object): return self._volume def set_volume(self, volume): + self._trigger_volume_changed() + if self.audio: self.audio.set_volume(volume) else: @@ -515,6 +517,10 @@ class PlaybackController(object): logger.debug('Triggering options changed event') listener.CoreListener.send('options_changed') + def _trigger_volume_changed(self): + logger.debug('Triggering volume changed event') + listener.CoreListener.send('volume_changed') + def _trigger_seeked(self, time_position): logger.debug('Triggering seeked event') listener.CoreListener.send('seeked', time_position=time_position) From 58389f31de6a3cd04f185a50aa05596c33e9a216 Mon Sep 17 00:00:00 2001 From: Trygve Aaberge Date: Tue, 18 Dec 2012 18:08:00 +0100 Subject: [PATCH 2/3] core: Trigger volume changed after actual change --- mopidy/core/playback.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mopidy/core/playback.py b/mopidy/core/playback.py index 901976d6..ec51b7ec 100644 --- a/mopidy/core/playback.py +++ b/mopidy/core/playback.py @@ -283,14 +283,14 @@ class PlaybackController(object): return self._volume def set_volume(self, volume): - self._trigger_volume_changed() - if self.audio: self.audio.set_volume(volume) else: # For testing self._volume = volume + self._trigger_volume_changed() + volume = property(get_volume, set_volume) """Volume as int in range [0..100] or :class:`None`""" From 88b3bd49345965cefaaedab730c717a84d97de46 Mon Sep 17 00:00:00 2001 From: Trygve Aaberge Date: Tue, 18 Dec 2012 18:09:00 +0100 Subject: [PATCH 3/3] tests: Test that set volume triggers volume changed --- tests/core/events_test.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tests/core/events_test.py b/tests/core/events_test.py index 88f07de6..008d23dd 100644 --- a/tests/core/events_test.py +++ b/tests/core/events_test.py @@ -117,3 +117,9 @@ class BackendEventsTest(unittest.TestCase): playlist = playlist.copy(name='bar') self.core.playlists.save(playlist).get() self.assertEqual(send.call_args[0][0], 'playlist_changed') + + def test_set_volume_sends_volume_changed_event(self, send): + self.core.playback.set_volume(10).get() + send.reset_mock() + self.core.playback.set_volume(20).get() + self.assertEqual(send.call_args[0][0], 'volume_changed')