mixer: Add trigger_events_for_any_changes()
Lifted from Mopidy-ALSAMixer, so SoftwareMixer can use it too.
This commit is contained in:
parent
5f091c10c2
commit
2c4ba8b6a1
@ -106,6 +106,29 @@ class Mixer(object):
|
||||
logger.debug('Mixer event: mute_changed(muted=%s)', muted)
|
||||
MixerListener.send('mute_changed', muted=muted)
|
||||
|
||||
def trigger_events_for_any_changes(self):
|
||||
"""
|
||||
Checks current volume and mute, compares with old values, and emits
|
||||
events if anything has changed.
|
||||
|
||||
This method should be called by subclasses when they know something has
|
||||
changed, and events needs to be sent.
|
||||
"""
|
||||
|
||||
if not hasattr(self, '_last_volume'):
|
||||
self._last_volume = None
|
||||
if not hasattr(self, '_last_muted'):
|
||||
self._last_muted = None
|
||||
|
||||
old_volume, self._last_volume = self._last_volume, self.get_volume()
|
||||
old_muted, self._last_muted = self._last_muted, self.get_mute()
|
||||
|
||||
if old_volume != self._last_volume:
|
||||
self.trigger_volume_changed(self._last_volume)
|
||||
|
||||
if old_muted != self._last_muted:
|
||||
self.trigger_mute_changed(self._last_muted)
|
||||
|
||||
|
||||
class MixerListener(listener.Listener):
|
||||
"""
|
||||
|
||||
Loading…
Reference in New Issue
Block a user