Support turbo2.
[vuplus_dvbapp] / mytest.py
index d34924b..0ec61dd 100755 (executable)
--- a/mytest.py
+++ b/mytest.py
@@ -60,7 +60,7 @@ config.misc.epgcache_filename = ConfigText(default = "/hdd/epg.dat")
 
 def setEPGCachePath(configElement):
        eEPGCache.getInstance().setCacheFile(configElement.value)
-config.misc.epgcache_filename.addNotifier(setEPGCachePath)
+
 
 #demo code for use of standby enter leave callbacks
 #def leaveStandby():
@@ -214,6 +214,7 @@ class Session:
                        self.summary.show()
                        c.addSummary(self.summary)
 
+               c.saveKeyboardMode()
                c.execBegin()
 
                # when execBegin opened a new dialog, don't bother showing the old one.
@@ -225,6 +226,7 @@ class Session:
                self.in_exec = False
 
                self.current_dialog.execEnd()
+               self.current_dialog.restoreKeyboardMode()
                self.current_dialog.hide()
 
                if last:
@@ -403,6 +405,34 @@ class PowerKey:
                if not Screens.Standby.inStandby and self.session.current_dialog and self.session.current_dialog.ALLOW_SUSPEND and self.session.in_exec:
                        self.session.open(Screens.Standby.Standby)
 
+class TimerKey:
+       def __init__(self, session):
+               self.session = session
+               globalActionMap.actions["timer_down"]=self.timerDown
+               globalActionMap.actions["timer_up"]=self.timerUp
+               self.timerblocked = 1
+
+       def MenuClosed(self, *val):
+               self.session.infobar = None
+
+       def doAction(self):
+               self.timerblocked = 1
+
+               if self.session.current_dialog and not self.session.current_dialog.ALLOW_SUSPEND:
+                       return
+
+               self.session.infobar = self
+               from Screens.TimerEdit import TimerEditList
+               menu_screen = self.session.openWithCallback(self.MenuClosed, TimerEditList)
+               return
+
+       def timerDown(self):
+               self.timerblocked = 0
+
+       def timerUp(self):
+               if self.timerblocked == 0:
+                       self.doAction()
+
 profile("Scart")
 from Screens.Scart import Scart
 
@@ -478,6 +508,8 @@ def runScreenTest():
                else:
                        session.open(screen, *args)
 
+       config.misc.epgcache_filename.addNotifier(setEPGCachePath)
+
        runNextScreen(session, screensToRun)
 
        profile("Init:VolumeControl")
@@ -485,6 +517,9 @@ def runScreenTest():
        profile("Init:PowerKey")
        power = PowerKey(session)
 
+       profile("Init:TimerKey")
+       timer = TimerKey(session)
+
        # we need session.scart to access it from within menu.xml
        session.scart = AutoScartControl(session)