diff --git a/mopidy/backends/base/playback.py b/mopidy/backends/base/playback.py index 635146ff..b21c30dc 100644 --- a/mopidy/backends/base/playback.py +++ b/mopidy/backends/base/playback.py @@ -75,24 +75,3 @@ class BasePlaybackProvider(object): :rtype: int """ return self.audio.get_position().get() - - def get_volume(self): - """ - Get current volume - - *MAY be reimplemented by subclass.* - - :rtype: int [0..100] or :class:`None` - """ - return self.audio.get_volume().get() - - def set_volume(self, volume): - """ - Get current volume - - *MAY be reimplemented by subclass.* - - :param: volume - :type volume: int [0..100] - """ - self.audio.set_volume(volume) diff --git a/mopidy/backends/dummy/__init__.py b/mopidy/backends/dummy/__init__.py index 5e028ea3..6c3e1437 100644 --- a/mopidy/backends/dummy/__init__.py +++ b/mopidy/backends/dummy/__init__.py @@ -44,7 +44,6 @@ class DummyPlaybackProvider(base.BasePlaybackProvider): def __init__(self, *args, **kwargs): super(DummyPlaybackProvider, self).__init__(*args, **kwargs) self._time_position = 0 - self._volume = None def pause(self): return True @@ -67,12 +66,6 @@ class DummyPlaybackProvider(base.BasePlaybackProvider): def get_time_position(self): return self._time_position - def get_volume(self): - return self._volume - - def set_volume(self, volume): - self._volume = volume - class DummyStoredPlaylistsProvider(base.BaseStoredPlaylistsProvider): def create(self, name): diff --git a/mopidy/core/playback.py b/mopidy/core/playback.py index 603b40a4..a86c5650 100644 --- a/mopidy/core/playback.py +++ b/mopidy/core/playback.py @@ -86,6 +86,7 @@ class PlaybackController(object): self._state = PlaybackState.STOPPED self._shuffled = [] self._first_shuffle = True + self._volume = None def _get_cpid(self, cp_track): if cp_track is None: @@ -296,12 +297,20 @@ class PlaybackController(object): @property def volume(self): - """Volume as int in range [0..100].""" - return self.backend.playback.get_volume().get() + """Volume as int in range [0..100] or :class:`None`""" + if self.audio: + return self.audio.get_volume().get() + else: + # For testing + return self._volume @volume.setter def volume(self, volume): - self.backend.playback.set_volume(volume).get() + if self.audio: + self.audio.set_volume(volume) + else: + # For testing + self._volume = volume def change_track(self, cp_track, on_error_step=1): """