From 3c2a944e8a7b5147c3940846e4535906c9395ceb Mon Sep 17 00:00:00 2001 From: Stein Magnus Jodal Date: Wed, 27 Jul 2011 01:01:34 +0200 Subject: [PATCH] Emit signal on volume change --- mopidy/frontends/mpris.py | 8 ++++++++ tests/frontends/mpris/events_test.py | 10 ++++++++++ 2 files changed, 18 insertions(+) diff --git a/mopidy/frontends/mpris.py b/mopidy/frontends/mpris.py index 5d7b1950..0f682a31 100644 --- a/mopidy/frontends/mpris.py +++ b/mopidy/frontends/mpris.py @@ -145,6 +145,14 @@ class MprisFrontend(ThreadingActor, BackendListener): self.mpris_object.Get(PLAYER_IFACE, 'PlaybackStatus'), }, []) + def volume_changed(self): + logger.debug(u'Received volume changed event') + if self.mpris_object is None: + return + self.mpris_object.PropertiesChanged(PLAYER_IFACE, { + 'Volume': self.mpris_object.Get(PLAYER_IFACE, 'Volume'), + }, []) + class MprisObject(dbus.service.Object): """Implements http://www.mpris.org/2.1/spec/""" diff --git a/tests/frontends/mpris/events_test.py b/tests/frontends/mpris/events_test.py index 3a3c8ad5..3b87bc88 100644 --- a/tests/frontends/mpris/events_test.py +++ b/tests/frontends/mpris/events_test.py @@ -47,3 +47,13 @@ class BackendEventsTest(unittest.TestCase): ]) self.mpris_object.PropertiesChanged.assert_called_with( PLAYER_IFACE, {'Metadata': '...', 'PlaybackStatus': '...'}, []) + + def test_volume_changed_event_changes_volume(self): + self.mpris_object.Get.return_value = 1.0 + self.mpris_frontend.volume_changed() + self.assertListEqual(self.mpris_object.Get.call_args_list, [ + ((PLAYER_IFACE, 'Volume'), {}), + ]) + self.mpris_object.PropertiesChanged.assert_called_with( + PLAYER_IFACE, {'Volume': 1.0}, []) +