Fix default recording path and usb recording.
[vuplus_dvbapp] / mytest.py
index 4b687e0..0ec61dd 100755 (executable)
--- a/mytest.py
+++ b/mytest.py
@@ -10,7 +10,8 @@ from Tools.Profile import profile, profile_final
 profile("PYTHON_START")
 
 from enigma import runMainloop, eDVBDB, eTimer, quitMainloop, \
-       getDesktop, ePythonConfigQuery, eAVSwitch, eServiceEvent
+       getDesktop, ePythonConfigQuery, eAVSwitch, eServiceEvent, \
+       eEPGCache
 from tools import *
 
 profile("LANGUAGE")
@@ -30,6 +31,9 @@ from Screens.SimpleSummary import SimpleSummary
 
 from sys import stdout, exc_info
 
+profile("Bouquets")
+eDVBDB.getInstance().reloadBouquets()
+
 profile("ParentalControl")
 from Components.ParentalControl import InitParentalControl
 InitParentalControl()
@@ -45,14 +49,18 @@ from Tools.Directories import InitFallbackFiles, resolveFilename, SCOPE_PLUGINS,
 from Components.config import config, configfile, ConfigText, ConfigYesNo, ConfigInteger, NoSave
 InitFallbackFiles()
 
-profile("ReloadProfiles")
-eDVBDB.getInstance().reloadBouquets()
+profile("config.misc")
 
 config.misc.radiopic = ConfigText(default = resolveFilename(SCOPE_CURRENT_SKIN, "radio.mvi"))
 config.misc.isNextRecordTimerAfterEventActionAuto = ConfigYesNo(default=False)
 config.misc.useTransponderTime = ConfigYesNo(default=True)
 config.misc.startCounter = ConfigInteger(default=0) # number of e2 starts...
 config.misc.standbyCounter = NoSave(ConfigInteger(default=0)) # number of standby
+config.misc.epgcache_filename = ConfigText(default = "/hdd/epg.dat")
+
+def setEPGCachePath(configElement):
+       eEPGCache.getInstance().setCacheFile(configElement.value)
+
 
 #demo code for use of standby enter leave callbacks
 #def leaveStandby():
@@ -206,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.
@@ -217,6 +226,7 @@ class Session:
                self.in_exec = False
 
                self.current_dialog.execEnd()
+               self.current_dialog.restoreKeyboardMode()
                self.current_dialog.hide()
 
                if last:
@@ -395,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
 
@@ -470,6 +508,8 @@ def runScreenTest():
                else:
                        session.open(screen, *args)
 
+       config.misc.epgcache_filename.addNotifier(setEPGCachePath)
+
        runNextScreen(session, screensToRun)
 
        profile("Init:VolumeControl")
@@ -477,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)