From: Andreas Monzner Date: Sat, 21 Jun 2008 15:00:20 +0000 (+0000) Subject: move VolumeControl to own file X-Git-Tag: 2.6.0~1116 X-Git-Url: https://git.cweiske.de/enigma2.git/commitdiff_plain/19d19912b3f7ff117f4f9e8136c428b664d806cb move VolumeControl to own file --- diff --git a/lib/python/Components/Makefile.am b/lib/python/Components/Makefile.am index 71160c9b..d3c51ab2 100644 --- a/lib/python/Components/Makefile.am +++ b/lib/python/Components/Makefile.am @@ -7,7 +7,7 @@ install_PYTHON = \ Button.py HTMLComponent.py ProgressBar.py TimerList.py config.py \ HTMLSkin.py ServiceList.py VariableText.py \ ConfigList.py VariableValue.py \ - Label.py ServiceScan.py VolumeBar.py \ + Label.py ServiceScan.py VolumeBar.py VolumeControl.py \ GUIComponent.py MenuList.py __init__.py MovieList.py \ InputDevice.py ServicePosition.py SetupDevices.py Harddisk.py \ AVSwitch.py Network.py RFmod.py DiskInfo.py NimManager.py Lcd.py \ diff --git a/lib/python/Components/VolumeControl.py b/lib/python/Components/VolumeControl.py new file mode 100644 index 00000000..19fb90d7 --- /dev/null +++ b/lib/python/Components/VolumeControl.py @@ -0,0 +1,79 @@ +from enigma import eDVBVolumecontrol, eTimer +from Tools.Profile import profile +from Screens.Volume import Volume +from Screens.Mute import Mute +from GlobalActions import globalActionMap +from config import config, ConfigSubsection, ConfigInteger + +profile("VolumeControl") +#TODO .. move this to a own .py file +class VolumeControl: + """Volume control, handles volUp, volDown, volMute actions and display + a corresponding dialog""" + def __init__(self, session): + global globalActionMap + globalActionMap.actions["volumeUp"]=self.volUp + globalActionMap.actions["volumeDown"]=self.volDown + globalActionMap.actions["volumeMute"]=self.volMute + + config.audio = ConfigSubsection() + config.audio.volume = ConfigInteger(default = 100, limits = (0, 100)) + + self.volumeDialog = session.instantiateDialog(Volume) + self.muteDialog = session.instantiateDialog(Mute) + + self.hideVolTimer = eTimer() + self.hideVolTimer.callback.append(self.volHide) + + vol = config.audio.volume.value + self.volumeDialog.setValue(vol) + self.volctrl = eDVBVolumecontrol.getInstance() + self.volctrl.setVolume(vol, vol) + + def volSave(self): + if self.volctrl.isMuted(): + config.audio.volume.value = 0 + else: + config.audio.volume.value = self.volctrl.getVolume() + config.audio.volume.save() + + def volUp(self): + self.setVolume(+1) + + def volDown(self): + self.setVolume(-1) + + def setVolume(self, direction): + oldvol = self.volctrl.getVolume() + if direction > 0: + self.volctrl.volumeUp() + else: + self.volctrl.volumeDown() + is_muted = self.volctrl.isMuted() + vol = self.volctrl.getVolume() + self.volumeDialog.show() + if is_muted: + self.volMute() # unmute + elif not vol: + self.volMute(False, True) # mute but dont show mute symbol + if self.volctrl.isMuted(): + self.volumeDialog.setValue(0) + else: + self.volumeDialog.setValue(self.volctrl.getVolume()) + self.volSave() + self.hideVolTimer.start(3000, True) + + def volHide(self): + self.volumeDialog.hide() + + def volMute(self, showMuteSymbol=True, force=False): + vol = self.volctrl.getVolume() + if vol or force: + self.volctrl.volumeToggleMute() + if self.volctrl.isMuted(): + if showMuteSymbol: + self.muteDialog.show() + self.volumeDialog.setValue(0) + else: + self.muteDialog.hide() + self.volumeDialog.setValue(vol) diff --git a/mytest.py b/mytest.py index 5b3258d1..d58649cf 100644 --- a/mytest.py +++ b/mytest.py @@ -7,7 +7,7 @@ from Tools.Profile import profile, profile_final profile("PYTHON_START") -from enigma import runMainloop, eDVBDB, eTimer, quitMainloop, eDVBVolumecontrol, \ +from enigma import runMainloop, eDVBDB, eTimer, quitMainloop, \ getDesktop, ePythonConfigQuery, eAVSwitch, eServiceEvent from tools import * @@ -314,87 +314,11 @@ class Session: if self.summary is not None: self.summary.show() -from Screens.Volume import Volume -from Screens.Mute import Mute -from GlobalActions import globalActionMap - -profile("VolumeControl") -#TODO .. move this to a own .py file -class VolumeControl: - """Volume control, handles volUp, volDown, volMute actions and display - a corresponding dialog""" - def __init__(self, session): - global globalActionMap - globalActionMap.actions["volumeUp"]=self.volUp - globalActionMap.actions["volumeDown"]=self.volDown - globalActionMap.actions["volumeMute"]=self.volMute - - config.audio = ConfigSubsection() - config.audio.volume = ConfigInteger(default = 100, limits = (0, 100)) - - self.volumeDialog = session.instantiateDialog(Volume) - self.muteDialog = session.instantiateDialog(Mute) - - self.hideVolTimer = eTimer() - self.hideVolTimer.callback.append(self.volHide) - - vol = config.audio.volume.value - self.volumeDialog.setValue(vol) - self.volctrl = eDVBVolumecontrol.getInstance() - self.volctrl.setVolume(vol, vol) - - def volSave(self): - if self.volctrl.isMuted(): - config.audio.volume.value = 0 - else: - config.audio.volume.value = self.volctrl.getVolume() - config.audio.volume.save() - - def volUp(self): - self.setVolume(+1) - - def volDown(self): - self.setVolume(-1) - - def setVolume(self, direction): - oldvol = self.volctrl.getVolume() - if direction > 0: - self.volctrl.volumeUp() - else: - self.volctrl.volumeDown() - is_muted = self.volctrl.isMuted() - vol = self.volctrl.getVolume() - self.volumeDialog.show() - if is_muted: - self.volMute() # unmute - elif not vol: - self.volMute(False, True) # mute but dont show mute symbol - if self.volctrl.isMuted(): - self.volumeDialog.setValue(0) - else: - self.volumeDialog.setValue(self.volctrl.getVolume()) - self.volSave() - self.hideVolTimer.start(3000, True) - - def volHide(self): - self.volumeDialog.hide() - - def volMute(self, showMuteSymbol=True, force=False): - vol = self.volctrl.getVolume() - if vol or force: - self.volctrl.volumeToggleMute() - if self.volctrl.isMuted(): - if showMuteSymbol: - self.muteDialog.show() - self.volumeDialog.setValue(0) - else: - self.muteDialog.hide() - self.volumeDialog.setValue(vol) - profile("Standby,PowerKey") import Screens.Standby from Screens.Menu import MainMenu, mdom import xml.dom.minidom +from GlobalActions import globalActionMap class PowerKey: """ PowerKey stuff - handles the powerkey press and powerkey release actions""" @@ -480,6 +404,9 @@ profile("Load:CI") from enigma import eDVBCIInterfaces from Screens.Ci import CiHandler +profile("Load:VolumeControl") +from Components.VolumeControl import VolumeControl + def runScreenTest(): profile("readPluginList") plugins.readPluginList(resolveFilename(SCOPE_PLUGINS))