From 390194afc338af1da107e7f03d1d9a5c9476214b Mon Sep 17 00:00:00 2001 From: Javier Domingo Cansino Date: Tue, 17 Sep 2013 12:33:27 +0200 Subject: [PATCH] Adding the possibility to mute at app level mopidy --- mopidy/audio/actor.py | 6 ++++++ mopidy/core/playback.py | 17 +++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/mopidy/audio/actor.py b/mopidy/audio/actor.py index 6a1d7f6b..4fc4b91b 100644 --- a/mopidy/audio/actor.py +++ b/mopidy/audio/actor.py @@ -537,6 +537,12 @@ class Audio(pykka.ThreadingActor): return self._mixer.get_volume(self._mixer_track) == volumes + def get_mute(self): + return self._playbin.get_property('mute') + + def set_mute(self, status): + self._playbin.set_property('mute', bool(status)) + def _rescale(self, value, old=None, new=None): """Convert value between scales.""" new_min, new_max = new diff --git a/mopidy/core/playback.py b/mopidy/core/playback.py index ea849dbf..69195bad 100644 --- a/mopidy/core/playback.py +++ b/mopidy/core/playback.py @@ -24,6 +24,7 @@ class PlaybackController(object): self._shuffled = [] self._first_shuffle = True self._volume = None + self._mute = None def _get_backend(self): if self.current_tl_track is None: @@ -288,6 +289,22 @@ class PlaybackController(object): volume = property(get_volume, set_volume) """Volume as int in range [0..100] or :class:`None`""" + def get_mute(self): + if self.audio: + return self.audio.get_mute().get() + else: + return self._mute + + def set_mute(self, value): + value = bool(value) + if self.audio: + self.audio.set_mute(value) + else: + self._mute = value + + mute = property(get_mute, set_mute) + """Let the audio get muted, maintaining previous volume""" + ### Methods def change_track(self, tl_track, on_error_step=1):