+ profile("readPluginList")
+ plugins.readPluginList(resolveFilename(SCOPE_PLUGINS))
+
+ profile("Init:Session")
+ session = Session(desktop = getDesktop(0), summary_desktop = getDesktop(1), navigation = Navigation())
+
+ CiHandler.setSession(session)
+
+ screensToRun = [ ]
+
+ for p in plugins.getPlugins(PluginDescriptor.WHERE_WIZARD):
+ screensToRun.append(p.__call__)
+
+ profile("wizards")
+ screensToRun += wizardManager.getWizards()
+
+ screensToRun.append((100, Screens.InfoBar.InfoBar))
+
+ screensToRun.sort()
+
+ ePythonConfigQuery.setQueryFunc(configfile.getResolvedKey)
+
+# eDVBCIInterfaces.getInstance().setDescrambleRules(0 # Slot Number
+# ,( ["1:0:1:24:4:85:C00000:0:0:0:"], #service_list
+# ["PREMIERE"], #provider_list,
+# [] #caid_list
+# ));
+
+ def runNextScreen(session, screensToRun, *result):
+ if result:
+ quitMainloop(*result)
+ return
+
+ screen = screensToRun[0][1]
+
+ if len(screensToRun):
+ session.openWithCallback(boundFunction(runNextScreen, session, screensToRun[1:]), screen)
+ else:
+ session.open(screen)
+
+ runNextScreen(session, screensToRun)
+
+ profile("Init:VolumeControl")
+ vol = VolumeControl(session)
+ profile("Init:PowerKey")
+ power = PowerKey(session)
+
+ # we need session.scart to access it from within menu.xml
+ session.scart = AutoScartControl(session)
+
+ profile("RunReactor")
+ profile_final()
+ runReactor()
+ profile("configfile.save")
+ configfile.save()
+
+ profile("wakeup")
+ from time import time
+ from Tools.DreamboxHardware import setFPWakeuptime
+ #get currentTime
+ nowTime = time()
+ wakeupList = [
+ x for x in
+ [session.nav.RecordTimer.getNextRecordingTime(),
+ session.nav.RecordTimer.getNextZapTime(),
+ plugins.getNextWakeupTime()]
+ if x != -1
+ ]
+ wakeupList.sort()
+ if len(wakeupList):
+ startTime = wakeupList.pop(0)
+ if (startTime - nowTime < 330): # no time to switch box back on
+ setFPWakeuptime(nowTime + 30) # so switch back on in 30 seconds
+ else:
+ setFPWakeuptime(startTime - 300)
+ profile("stopService")
+ session.nav.stopService()
+ profile("nav shutdown")
+ session.nav.shutdown()
+