+import eConsoleImpl
import eBaseImpl
import enigma
enigma.eTimer = eBaseImpl.eTimer
enigma.eSocketNotifier = eBaseImpl.eSocketNotifier
+enigma.eConsoleAppContainer = eConsoleImpl.eConsoleAppContainer
from Tools.Profile import profile, profile_final
profile("LOAD:Tools")
from Tools.Directories import InitFallbackFiles, resolveFilename, SCOPE_PLUGINS, SCOPE_SKIN_IMAGE
-from Components.config import config, configfile, ConfigText
+from Components.config import config, configfile, ConfigText, ConfigYesNo
InitFallbackFiles()
profile("ReloadProfiles")
eDVBDB.getInstance().reloadBouquets()
config.misc.radiopic = ConfigText(default = resolveFilename(SCOPE_SKIN_IMAGE)+"radio.mvi")
+config.misc.isNextRecordTimerAfterEventActionAuto = ConfigYesNo(default=False)
profile("Twisted")
try:
from twisted.internet import reactor
def runReactor():
- reactor.run()
+ reactor.run(installSignalHandlers=False)
except ImportError:
print "twisted not available"
def runReactor():
profile("Standby,PowerKey")
import Screens.Standby
from Screens.Menu import MainMenu, mdom
-import xml.dom.minidom
from GlobalActions import globalActionMap
class PowerKey:
self.shutdown()
elif action == "show_menu":
print "Show shutdown Menu"
- menu = mdom.childNodes[0]
- for x in menu.childNodes:
- if x.nodeType != xml.dom.minidom.Element.nodeType:
- continue
- elif x.tagName == 'menu':
- for y in x.childNodes:
- if y.nodeType != xml.dom.minidom.Element.nodeType:
- continue
- elif y.tagName == 'id':
- id = y.getAttribute("val")
- if id and id == "shutdown":
- self.session.infobar = self
- menu_screen = self.session.openWithCallback(self.MenuClosed, MainMenu, x, x.childNodes)
- menu_screen.setTitle(_("Standby / Restart"))
- return
+ root = mdom.getroot()
+ for x in root.findall("menu"):
+ y = x.find("id")
+ if y is not None:
+ id = y.get("val")
+ if id and id == "shutdown":
+ self.session.infobar = self
+ menu_screen = self.session.openWithCallback(self.MenuClosed, MainMenu, x)
+ menu_screen.setTitle(_("Standby / Restart"))
+ return
def powerdown(self):
self.standbyblocked = 0
plugins.readPluginList(resolveFilename(SCOPE_PLUGINS))
profile("Init:Session")
- session = Session(desktop = getDesktop(0), summary_desktop = getDesktop(1), navigation = Navigation())
+ nav = Navigation(config.misc.isNextRecordTimerAfterEventActionAuto.value)
+ session = Session(desktop = getDesktop(0), summary_desktop = getDesktop(1), navigation = nav)
CiHandler.setSession(session)
profile("RunReactor")
profile_final()
runReactor()
- profile("configfile.save")
- configfile.save()
profile("wakeup")
from time import time
#get currentTime
nowTime = time()
wakeupList = [
- x for x in
- [session.nav.RecordTimer.getNextRecordingTime(),
- session.nav.RecordTimer.getNextZapTime(),
- plugins.getNextWakeupTime()]
- if x != -1
+ x for x in ((session.nav.RecordTimer.getNextRecordingTime(), 0, session.nav.RecordTimer.isNextRecordAfterEventActionAuto()),
+ (session.nav.RecordTimer.getNextZapTime(), 1),
+ (plugins.getNextWakeupTime(), 2))
+ if x[0] != -1
]
wakeupList.sort()
- if len(wakeupList) and getFPWakeuptime(): # getFPWakeuptime returns 1 when the sanity check in Navigation.py was okay..
+ recordTimerWakeupAuto = False
+ if len(wakeupList):
startTime = wakeupList.pop(0)
- if (startTime - nowTime) < 330: # no time to switch box back on
+ if (startTime[0] - nowTime) < 330: # no time to switch box back on
wptime = nowTime + 30 # so switch back on in 30 seconds
else:
- wptime = startTime - 300
+ wptime = startTime[0] - 300
setFPWakeuptime(wptime)
- else:
- print "buggy atmel firmware detected... dont set a wakeup time!"
- setFPWakeuptime(0)
+ recordTimerWakeupAuto = startTime[1] == 0 and startTime[2]
+ config.misc.isNextRecordTimerAfterEventActionAuto.value = recordTimerWakeupAuto
+ config.misc.isNextRecordTimerAfterEventActionAuto.save()
+
profile("stopService")
session.nav.stopService()
profile("nav shutdown")
session.nav.shutdown()
+ profile("configfile.save")
+ configfile.save()
+
return 0
profile("Init:skin")