diff --git a/mopidy/frontends/mpd/__init__.py b/mopidy/frontends/mpd/__init__.py index 6f6e3bfc..ff239458 100644 --- a/mopidy/frontends/mpd/__init__.py +++ b/mopidy/frontends/mpd/__init__.py @@ -58,6 +58,9 @@ class MpdFrontend(actor.ThreadingActor, listeners.BackendListener): def options_changed(self): self.send_idle('options') + def volume_changed(self): + self.send_idle('mixer') + class MpdSession(network.LineProtocol): """ diff --git a/mopidy/listeners.py b/mopidy/listeners.py index 5fbccff5..590f0ad0 100644 --- a/mopidy/listeners.py +++ b/mopidy/listeners.py @@ -70,3 +70,11 @@ class BackendListener(object): *MAY* be implemented by actor. """ pass + + def volume_changed(self): + """ + Called whenever the volume is changed. + + *MAY* be implemented by actor. + """ + pass diff --git a/mopidy/mixers/base.py b/mopidy/mixers/base.py index ec3d8ae5..8798076a 100644 --- a/mopidy/mixers/base.py +++ b/mopidy/mixers/base.py @@ -1,4 +1,8 @@ -from mopidy import settings +import logging + +from mopidy import listeners, settings + +logger = logging.getLogger('mopdy.mixers') class BaseMixer(object): """ @@ -30,6 +34,7 @@ class BaseMixer(object): elif volume > 100: volume = 100 self.set_volume(volume) + self._trigger_volume_changed() def get_volume(self): """ @@ -46,3 +51,7 @@ class BaseMixer(object): *MUST be implemented by subclass.* """ raise NotImplementedError + + def _trigger_volume_changed(self): + logger.debug(u'Triggering volume changed event') + listeners.BackendListener.send('volume_changed')