from skin import readSkin
profile("LOAD:Tools")
-from Tools.Directories import InitFallbackFiles, resolveFilename, SCOPE_PLUGINS, SCOPE_SKIN_IMAGE
-from Components.config import config, configfile, ConfigText, ConfigYesNo
+from Tools.Directories import InitFallbackFiles, resolveFilename, SCOPE_PLUGINS, SCOPE_CURRENT_SKIN
+from Components.config import config, configfile, ConfigText, ConfigYesNo, ConfigInteger, NoSave
InitFallbackFiles()
profile("ReloadProfiles")
eDVBDB.getInstance().reloadBouquets()
-config.misc.radiopic = ConfigText(default = resolveFilename(SCOPE_SKIN_IMAGE)+"radio.mvi")
+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
+
+#demo code for use of standby enter leave callbacks
+#def leaveStandby():
+# print "!!!!!!!!!!!!!!!!!leave standby"
+
+#def standbyCountChanged(configElement):
+# print "!!!!!!!!!!!!!!!!!enter standby num", configElement.value
+# from Screens.Standby import inStandby
+# inStandby.onClose.append(leaveStandby)
+
+#config.misc.standbyCounter.addNotifier(standbyCountChanged, initial_call = False)
+####################################################
+
+def useTransponderTimeChanged(configElement):
+ enigma.eDVBLocalTimeHandler.getInstance().setUseDVBTime(configElement.value)
+config.misc.useTransponderTime.addNotifier(useTransponderTimeChanged)
profile("Twisted")
try:
profile("LOAD:Wizard")
from Screens.Wizard import wizardManager
from Screens.DefaultWizard import *
-from Screens.ImageWizard import *
from Screens.StartWizard import *
from Screens.TutorialWizard import *
import Screens.Rc
self.execEnd(last=False)
def popCurrent(self):
- if len(self.dialog_stack):
+ if self.dialog_stack:
(self.current_dialog, do_show) = self.dialog_stack.pop()
self.execBegin(first=False, do_show=do_show)
else:
return dlg
def open(self, screen, *arguments, **kwargs):
- if len(self.dialog_stack) and not self.in_exec:
+ if self.dialog_stack and not self.in_exec:
raise RuntimeError("modal open are allowed only from a screen which is modal!")
# ...unless it's the very first screen.
self.session.open(Screens.Standby.TryQuitMainloop, 1)
def powerlong(self):
+ if Screens.Standby.inTryQuitMainloop or (self.session.current_dialog and not self.session.current_dialog.ALLOW_SUSPEND):
+ return
+
self.standbyblocked = 1
action = config.usage.on_long_powerpress.value
if action == "shutdown":
self.standby()
def standby(self):
- if not Screens.Standby.inStandby and self.session.current_dialog and self.session.current_dialog.ALLOW_SUSPEND:
+ 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)
profile("Scart")
from Components.VolumeControl import VolumeControl
def runScreenTest():
+ config.misc.startCounter.value += 1
+
profile("readPluginList")
plugins.readPluginList(resolveFilename(SCOPE_PLUGINS))
CiHandler.setSession(session)
- screensToRun = [ ]
-
- for p in plugins.getPlugins(PluginDescriptor.WHERE_WIZARD):
- screensToRun.append(p.__call__)
+ screensToRun = [ p.__call__ for p in plugins.getPlugins(PluginDescriptor.WHERE_WIZARD) ]
profile("wizards")
screensToRun += wizardManager.getWizards()
return
screen = screensToRun[0][1]
+ args = screensToRun[0][2:]
- if len(screensToRun):
- session.openWithCallback(boundFunction(runNextScreen, session, screensToRun[1:]), screen)
+ if screensToRun:
+ session.openWithCallback(boundFunction(runNextScreen, session, screensToRun[1:]), screen, *args)
else:
- session.open(screen)
+ session.open(screen, *args)
runNextScreen(session, screensToRun)
profile_final()
runReactor()
+ config.misc.startCounter.save()
+
profile("wakeup")
- from time import time
- from Tools.DreamboxHardware import setFPWakeuptime, getFPWakeuptime
+ from time import time, strftime, localtime
+ from Tools.DreamboxHardware import setFPWakeuptime, getFPWakeuptime, setRTCtime
#get currentTime
nowTime = time()
wakeupList = [
]
wakeupList.sort()
recordTimerWakeupAuto = False
- if len(wakeupList):
- startTime = wakeupList.pop(0)
- if (startTime[0] - nowTime) < 330: # no time to switch box back on
+ if wakeupList:
+ from time import strftime
+ startTime = wakeupList[0]
+ if (startTime[0] - nowTime) < 270: # no time to switch box back on
wptime = nowTime + 30 # so switch back on in 30 seconds
else:
- wptime = startTime[0] - 300
+ wptime = startTime[0] - 240
+ if not config.misc.useTransponderTime.value:
+ print "dvb time sync disabled... so set RTC now to current linux time!", strftime("%Y/%m/%d %H:%M", localtime(nowTime))
+ setRTCtime(nowTime)
+ print "set wakeup time to", strftime("%Y/%m/%d %H:%M", localtime(wptime))
setFPWakeuptime(wptime)
recordTimerWakeupAuto = startTime[1] == 0 and startTime[2]
config.misc.isNextRecordTimerAfterEventActionAuto.value = recordTimerWakeupAuto