From 9ce6ca4f63e908ef0ed64c3cf9d02ed307c2da46 Mon Sep 17 00:00:00 2001 From: Felix Domke Date: Mon, 13 Aug 2007 17:02:00 +0000 Subject: [PATCH] Alter behavior of the zero button in PiP mode. The exact behavior may be configured by changing the value of the 'Behaviour of 0 key in PiP-mode' property in the settings menu. Possible values are: - standard the behavior of the zero button is remains as is (switch to last channel) - swap the zero button swaps the pip service with the active - swap and stop the zero button swaps the pip service with the active and then turns pip off - stop turns pip off Patch by John Holland , with some modifications. --- data/setup.xml | 1 + lib/python/Components/UsageConfig.py | 4 ++++ lib/python/Screens/InfoBarGenerics.py | 18 +++++++++++++++++- 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/data/setup.xml b/data/setup.xml index aca80401..408927fd 100644 --- a/data/setup.xml +++ b/data/setup.xml @@ -29,6 +29,7 @@ config.usage.show_infobar_on_skip config.usage.show_infobar_on_event_change config.usage.self_defined_seek + config.usage.pip_zero_button config.usage.hdd_standby diff --git a/lib/python/Components/UsageConfig.py b/lib/python/Components/UsageConfig.py index 507696f0..d122a4f7 100644 --- a/lib/python/Components/UsageConfig.py +++ b/lib/python/Components/UsageConfig.py @@ -25,6 +25,10 @@ def InitUsageConfig(): ("do not change", _("do not change")), ("off", _("off")), ("on", _("on")) ]) config.usage.self_defined_seek = ConfigInteger(default=10, limits=(1,9999)) + config.usage.pip_zero_button = ConfigSelection(default = "standard", choices = [ + ("standard", _("standard")), ("swap", _("swap PiP and main picture")), + ("swapstop", _("move PiP to main picture")), ("stop", _("stop PiP")) ]) + def setHDDStandby(configElement): os.system("hdparm -S" + configElement.value + " /dev/ide/host0/bus0/target0/lun0/disc") config.usage.hdd_standby.addNotifier(setHDDStandby) diff --git a/lib/python/Screens/InfoBarGenerics.py b/lib/python/Screens/InfoBarGenerics.py index 85b1d80f..fd2e0e95 100644 --- a/lib/python/Screens/InfoBarGenerics.py +++ b/lib/python/Screens/InfoBarGenerics.py @@ -198,7 +198,10 @@ class InfoBarNumberZap: def keyNumberGlobal(self, number): # print "You pressed number " + str(number) if number == 0: - self.servicelist.recallPrevService() + if isinstance(self, InfoBarPiP) and self.pipHandles0Action(): + self.pipDoHandle0Action() + else: + self.servicelist.recallPrevService() else: self.session.openWithCallback(self.numberEntered, NumberZap, number) @@ -1234,6 +1237,9 @@ class InfoBarPiP: def pipShown(self): return self.session.pipshown + def pipHandles0Action(self): + return self.pipShown() and config.usage.pip_zero_button.value != "standard" + def getShowHideName(self): if self.session.pipshown: return _("Disable Picture in Picture") @@ -1278,6 +1284,16 @@ class InfoBarPiP: def movePiP(self): self.session.open(PiPSetup, pip = self.session.pip) + def pipDoHandle0Action(self): + use = config.usage.pip_zero_button.value + if "swap" == use: + self.swapPiP() + elif "swapstop" == use: + self.swapPiP() + self.showPiP() + elif "stop" == use: + self.showPiP() + from RecordTimer import parseEvent class InfoBarInstantRecord: -- 2.30.2