diff options
author | Marco Pesenti Gritti <marco@localhost.localdomain> | 2007-06-13 14:32:26 (GMT) |
---|---|---|
committer | Marco Pesenti Gritti <marco@localhost.localdomain> | 2007-06-13 14:32:26 (GMT) |
commit | d3e8ddb2780ecd0fc3535f8a1464d8ab9e9217e9 (patch) | |
tree | 5621d034ef2478424486e5a2ded86c3e1377cfc9 | |
parent | 42385b069f4251662f86ad4b305da49b74166654 (diff) |
Mute the channel when setting the volume to minimum.
-rw-r--r-- | shell/hardware/hardwaremanager.py | 18 | ||||
-rw-r--r-- | shell/view/keyhandler.py | 5 |
2 files changed, 17 insertions, 6 deletions
diff --git a/shell/hardware/hardwaremanager.py b/shell/hardware/hardwaremanager.py index 3e7066e..f23af25 100644 --- a/shell/hardware/hardwaremanager.py +++ b/shell/hardware/hardwaremanager.py @@ -46,20 +46,28 @@ class HardwareManager(object): for track in self._mixer.list_tracks(): if track.flags & gst.interfaces.MIXER_TRACK_MASTER: - self._mixer_master = track + self._master = track def set_volume(self, volume): + if not self._mixer or not self._master: + logging.error('Cannot set the volume') + if volume < 0 or volume > 100: logging.error('Trying to set an invalid volume value.') return - max_volume = self._mixer_master.max_volume - min_volume = self._mixer_master.min_volume + max_volume = self._master.max_volume + min_volume = self._master.min_volume volume = (volume / 100.0) * (max_volume - min_volume) + min_volume - volume_list = [ volume ] * self._mixer_master.num_channels + volume_list = [ volume ] * self._master.num_channels + + self._mixer.set_volume(self._master, tuple(volume_list)) - self._mixer.set_volume(self._mixer_master, tuple(volume_list)) + def set_mute(self, mute): + if not self._mixer or not self._master: + logging.error('Cannot mute the audio channel') + self._mixer.set_mute(self._master, mute) def set_display_mode(self, mode): if not self._service: diff --git a/shell/view/keyhandler.py b/shell/view/keyhandler.py index 1e87794..6945ca5 100644 --- a/shell/view/keyhandler.py +++ b/shell/view/keyhandler.py @@ -99,18 +99,21 @@ class KeyHandler(object): def handle_volume_1(self): hw_manager = hardwaremanager.get_hardware_manager() - hw_manager.set_volume(0) + hw_manager.set_mute(True) def handle_volume_2(self): hw_manager = hardwaremanager.get_hardware_manager() + hw_manager.set_mute(False) hw_manager.set_volume(50) def handle_volume_3(self): hw_manager = hardwaremanager.get_hardware_manager() + hw_manager.set_mute(False) hw_manager.set_volume(80) def handle_volume_4(self): hw_manager = hardwaremanager.get_hardware_manager() + hw_manager.set_mute(False) hw_manager.set_volume(100) def handle_color_mode(self): |