From 14eeb20226b32bebfa657f7c5029a4310cf50257 Mon Sep 17 00:00:00 2001 From: Thomas Adamcik Date: Tue, 4 Sep 2012 00:30:02 +0200 Subject: [PATCH] Update MPRIS to use playback.volume API. --- mopidy/frontends/mpris/objects.py | 18 ++++------------ .../frontends/mpris/player_interface_test.py | 21 ++++++++----------- 2 files changed, 13 insertions(+), 26 deletions(-) diff --git a/mopidy/frontends/mpris/objects.py b/mopidy/frontends/mpris/objects.py index 9ed1fe2c..fa5f9614 100644 --- a/mopidy/frontends/mpris/objects.py +++ b/mopidy/frontends/mpris/objects.py @@ -17,7 +17,6 @@ from pykka.registry import ActorRegistry from mopidy import settings from mopidy.backends.base import Backend from mopidy.backends.base.playback import PlaybackController -from mopidy.mixers.base import BaseMixer from mopidy.utils.process import exit_process # Must be done before dbus.SessionBus() is called @@ -37,7 +36,6 @@ class MprisObject(dbus.service.Object): def __init__(self): self._backend = None - self._mixer = None self.properties = { ROOT_IFACE: self._get_root_iface_properties(), PLAYER_IFACE: self._get_player_iface_properties(), @@ -95,14 +93,6 @@ class MprisObject(dbus.service.Object): self._backend = backend_refs[0].proxy() return self._backend - @property - def mixer(self): - if self._mixer is None: - mixer_refs = ActorRegistry.get_by_class(BaseMixer) - assert len(mixer_refs) == 1, 'Expected exactly one running mixer.' - self._mixer = mixer_refs[0].proxy() - return self._mixer - def _get_track_id(self, cp_track): return '/com/mopidy/track/%d' % cp_track.cpid @@ -380,7 +370,7 @@ class MprisObject(dbus.service.Object): return dbus.Dictionary(metadata, signature='sv') def get_Volume(self): - volume = self.mixer.volume.get() + volume = self.backend.playback.volume.get() if volume is not None: return volume / 100.0 @@ -391,11 +381,11 @@ class MprisObject(dbus.service.Object): if value is None: return elif value < 0: - self.mixer.volume = 0 + self.backend.playback.volume = 0 elif value > 1: - self.mixer.volume = 100 + self.backend.playback.volume = 100 elif 0 <= value <= 1: - self.mixer.volume = int(value * 100) + self.backend.playback.volume = int(value * 100) def get_Position(self): return self.backend.playback.time_position.get() * 1000 diff --git a/tests/frontends/mpris/player_interface_test.py b/tests/frontends/mpris/player_interface_test.py index 24c426fb..d09d4f6b 100644 --- a/tests/frontends/mpris/player_interface_test.py +++ b/tests/frontends/mpris/player_interface_test.py @@ -5,7 +5,6 @@ import mock from mopidy import OptionalDependencyError from mopidy.backends.dummy import DummyBackend from mopidy.backends.base.playback import PlaybackController -from mopidy.mixers.dummy import DummyMixer from mopidy.models import Album, Artist, Track try: @@ -24,14 +23,12 @@ STOPPED = PlaybackController.STOPPED class PlayerInterfaceTest(unittest.TestCase): def setUp(self): objects.MprisObject._connect_to_dbus = mock.Mock() - self.mixer = DummyMixer.start().proxy() self.backend = DummyBackend.start().proxy() self.mpris = objects.MprisObject() self.mpris._backend = self.backend def tearDown(self): self.backend.stop() - self.mixer.stop() def test_get_playback_status_is_playing_when_playing(self): self.backend.playback.state = PLAYING @@ -208,36 +205,36 @@ class PlayerInterfaceTest(unittest.TestCase): self.assertEquals(result['xesam:trackNumber'], 7) def test_get_volume_should_return_volume_between_zero_and_one(self): - self.mixer.volume = 0 + self.backend.playback.volume = 0 result = self.mpris.Get(objects.PLAYER_IFACE, 'Volume') self.assertEquals(result, 0) - self.mixer.volume = 50 + self.backend.playback.volume = 50 result = self.mpris.Get(objects.PLAYER_IFACE, 'Volume') self.assertEquals(result, 0.5) - self.mixer.volume = 100 + self.backend.playback.volume = 100 result = self.mpris.Get(objects.PLAYER_IFACE, 'Volume') self.assertEquals(result, 1) def test_set_volume_is_ignored_if_can_control_is_false(self): self.mpris.get_CanControl = lambda *_: False - self.mixer.volume = 0 + self.backend.playback.volume = 0 self.mpris.Set(objects.PLAYER_IFACE, 'Volume', 1.0) - self.assertEquals(self.mixer.volume.get(), 0) + self.assertEquals(self.backend.playback.volume.get(), 0) def test_set_volume_to_one_should_set_mixer_volume_to_100(self): self.mpris.Set(objects.PLAYER_IFACE, 'Volume', 1.0) - self.assertEquals(self.mixer.volume.get(), 100) + self.assertEquals(self.backend.playback.volume.get(), 100) def test_set_volume_to_anything_above_one_should_set_mixer_volume_to_100(self): self.mpris.Set(objects.PLAYER_IFACE, 'Volume', 2.0) - self.assertEquals(self.mixer.volume.get(), 100) + self.assertEquals(self.backend.playback.volume.get(), 100) def test_set_volume_to_anything_not_a_number_does_not_change_volume(self): - self.mixer.volume = 10 + self.backend.playback.volume = 10 self.mpris.Set(objects.PLAYER_IFACE, 'Volume', None) - self.assertEquals(self.mixer.volume.get(), 10) + self.assertEquals(self.backend.playback.volume.get(), 10) def test_get_position_returns_time_position_in_microseconds(self): self.backend.current_playlist.append([Track(uri='a', length=40000)])