diff --git a/docs/changes.rst b/docs/changes.rst index 0247aa9d..8a7b2d91 100644 --- a/docs/changes.rst +++ b/docs/changes.rst @@ -47,6 +47,9 @@ v0.11.0 (in development) - Actually trigger the :meth:`mopidy.core.CoreListener.volume_changed` event. +- Include the new volume level in the + :meth:`mopidy.core.CoreListener.volume_changed` event. + v0.10.0 (2012-12-12) ==================== diff --git a/mopidy/core/playback.py b/mopidy/core/playback.py index ec51b7ec..141c2e70 100644 --- a/mopidy/core/playback.py +++ b/mopidy/core/playback.py @@ -289,7 +289,7 @@ class PlaybackController(object): # For testing self._volume = volume - self._trigger_volume_changed() + self._trigger_volume_changed(volume) volume = property(get_volume, set_volume) """Volume as int in range [0..100] or :class:`None`""" @@ -517,9 +517,9 @@ class PlaybackController(object): logger.debug('Triggering options changed event') listener.CoreListener.send('options_changed') - def _trigger_volume_changed(self): + def _trigger_volume_changed(self, volume): logger.debug('Triggering volume changed event') - listener.CoreListener.send('volume_changed') + listener.CoreListener.send('volume_changed', volume=volume) def _trigger_seeked(self, time_position): logger.debug('Triggering seeked event') diff --git a/mopidy/frontends/mpd/actor.py b/mopidy/frontends/mpd/actor.py index 925b15b7..d3c718c4 100644 --- a/mopidy/frontends/mpd/actor.py +++ b/mopidy/frontends/mpd/actor.py @@ -49,5 +49,5 @@ class MpdFrontend(pykka.ThreadingActor, CoreListener): def options_changed(self): self.send_idle('options') - def volume_changed(self): + def volume_changed(self, volume): self.send_idle('mixer') diff --git a/mopidy/frontends/mpris/actor.py b/mopidy/frontends/mpris/actor.py index 795b2694..57bbd790 100644 --- a/mopidy/frontends/mpris/actor.py +++ b/mopidy/frontends/mpris/actor.py @@ -84,7 +84,7 @@ class MprisFrontend(pykka.ThreadingActor, CoreListener): self._emit_properties_changed( objects.PLAYER_IFACE, ['PlaybackStatus', 'Metadata']) - def volume_changed(self): + def volume_changed(self, volume): logger.debug('Received volume_changed event') self._emit_properties_changed(objects.PLAYER_IFACE, ['Volume']) diff --git a/tests/core/events_test.py b/tests/core/events_test.py index 9c10306a..d5f9fc14 100644 --- a/tests/core/events_test.py +++ b/tests/core/events_test.py @@ -122,3 +122,4 @@ class BackendEventsTest(unittest.TestCase): send.reset_mock() self.core.playback.set_volume(20).get() self.assertEqual(send.call_args[0][0], 'volume_changed') + self.assertEqual(send.call_args[1]['volume'], 20) diff --git a/tests/frontends/mpris/events_test.py b/tests/frontends/mpris/events_test.py index 18a9de6f..60c9a783 100644 --- a/tests/frontends/mpris/events_test.py +++ b/tests/frontends/mpris/events_test.py @@ -65,7 +65,7 @@ class BackendEventsTest(unittest.TestCase): def test_volume_changed_event_changes_volume(self): self.mpris_object.Get.return_value = 1.0 - self.mpris_frontend.volume_changed() + self.mpris_frontend.volume_changed(volume=100) self.assertListEqual(self.mpris_object.Get.call_args_list, [ ((objects.PLAYER_IFACE, 'Volume'), {}), ])