mpd: Trigger 'output' idle event on mute_changed()
This is required for e.g. ncmpcpp to detect that an enableoutput/disableoutput command worked, making it possible to toggle the output back without restarting ncmpcpp.
This commit is contained in:
parent
447864774e
commit
863f7e0430
@ -143,6 +143,17 @@ class CoreListener(object):
|
||||
"""
|
||||
pass
|
||||
|
||||
def mute_changed(self, mute):
|
||||
"""
|
||||
Called whenever the mute state is changed.
|
||||
|
||||
*MAY* be implemented by actor.
|
||||
|
||||
:param mute: the new mute state
|
||||
:type mute: boolean
|
||||
"""
|
||||
pass
|
||||
|
||||
def seeked(self, time_position):
|
||||
"""
|
||||
Called whenever the time position changes by an unexpected amount, e.g.
|
||||
|
||||
@ -304,6 +304,8 @@ class PlaybackController(object):
|
||||
# For testing
|
||||
self._mute = value
|
||||
|
||||
self._trigger_mute_changed(value)
|
||||
|
||||
mute = property(get_mute, set_mute)
|
||||
"""Mute state as a :class:`True` if muted, :class:`False` otherwise"""
|
||||
|
||||
@ -537,6 +539,10 @@ class PlaybackController(object):
|
||||
logger.debug('Triggering volume changed event')
|
||||
listener.CoreListener.send('volume_changed', volume=volume)
|
||||
|
||||
def _trigger_mute_changed(self, mute):
|
||||
logger.debug('Triggering mute changed event')
|
||||
listener.CoreListener.send('mute_changed', mute=mute)
|
||||
|
||||
def _trigger_seeked(self, time_position):
|
||||
logger.debug('Triggering seeked event')
|
||||
listener.CoreListener.send('seeked', time_position=time_position)
|
||||
|
||||
@ -55,3 +55,6 @@ class MpdFrontend(pykka.ThreadingActor, CoreListener):
|
||||
|
||||
def volume_changed(self, volume):
|
||||
self.send_idle('mixer')
|
||||
|
||||
def mute_changed(self, mute):
|
||||
self.send_idle('output')
|
||||
|
||||
@ -51,5 +51,8 @@ class CoreListenerTest(unittest.TestCase):
|
||||
def test_listener_has_default_impl_for_volume_changed(self):
|
||||
self.listener.volume_changed(70)
|
||||
|
||||
def test_listener_has_default_impl_for_mute_changed(self):
|
||||
self.listener.mute_changed(True)
|
||||
|
||||
def test_listener_has_default_impl_for_seeked(self):
|
||||
self.listener.seeked(0)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user