import ServiceReference
+from Components.ParentalControl import InitParentalControl
+InitParentalControl()
+
from Navigation import Navigation
from skin import readSkin, applyAllAttributes
-from Components.config import configfile
-from Tools.Directories import InitFallbackFiles, resolveFilename, SCOPE_PLUGINS
+from Tools.Directories import InitFallbackFiles, resolveFilename, SCOPE_PLUGINS, SCOPE_SKIN_IMAGE
+from Components.config import config, ConfigText, configfile, ConfigSubsection, ConfigInteger
InitFallbackFiles()
eDVBDB.getInstance().reloadBouquets()
+config.misc.radiopic = ConfigText(default = resolveFilename(SCOPE_SKIN_IMAGE)+"radio.mvi")
+
try:
import e2reactor
e2reactor.install()
+ import twisted.python.runtime
+ twisted.python.runtime.platform.supportsThreads = lambda: False
+
from twisted.internet import reactor
def runReactor():
if callback is not None:
callback(*retval)
- def execBegin(self):
+ def execBegin(self, first=True):
assert not self.in_exec
self.in_exec = True
c = self.current_dialog
- self.pushSummary()
-
- summary = c.createSummary() or SimpleSummary
- self.summary = self.instantiateSummaryDialog(summary, c)
- self.summary.show()
+ # when this is an execbegin after a execend of a "higher" dialog,
+ # popSummary already did the right thing.
+ if first:
+ self.pushSummary()
+ summary = c.createSummary() or SimpleSummary
+ self.summary = self.instantiateSummaryDialog(summary, c)
+ self.summary.show()
+ c.addSummary(self.summary)
- c.addSummary(self.summary)
c.execBegin()
# when execBegin opened a new dialog, don't bother showing the old one.
if c == self.current_dialog:
c.show()
- def execEnd(self):
+ def execEnd(self, last=True):
assert self.in_exec
self.in_exec = False
self.current_dialog.execEnd()
self.current_dialog.hide()
- self.current_dialog.removeSummary(self.summary)
- self.popSummary()
+
+ if last:
+ self.current_dialog.removeSummary(self.summary)
+ self.popSummary()
def create(self, screen, arguments, **kwargs):
# creates an instance of 'screen' (which is a class)
def instantiateDialog(self, screen, *arguments, **kwargs):
return self.doInstantiateDialog(screen, arguments, kwargs, self.desktop)
+ def deleteDialog(self, screen):
+ screen.hide()
+ screen.doClose()
+
def instantiateSummaryDialog(self, screen, *arguments, **kwargs):
return self.doInstantiateDialog(screen, arguments, kwargs, self.summary_desktop)
def pushCurrent(self):
if self.current_dialog is not None:
self.dialog_stack.append(self.current_dialog)
- self.execEnd()
+ self.execEnd(last=False)
def popCurrent(self):
if len(self.dialog_stack):
self.current_dialog = self.dialog_stack.pop()
- self.execBegin()
+ self.execBegin(first=False)
else:
self.current_dialog = None
def openWithCallback(self, callback, screen, *arguments, **kwargs):
dlg = self.open(screen, *arguments, **kwargs)
dlg.callback = callback
+ return dlg
def open(self, screen, *arguments, **kwargs):
if len(self.dialog_stack) and not self.in_exec:
self.execBegin()
return dlg
- def keyEvent(self, code):
- print "code " + str(code)
-
def close(self, screen, *retval):
if not self.in_exec:
print "close after exec!"
from Screens.Volume import Volume
from Screens.Mute import Mute
from GlobalActions import globalActionMap
-from Components.config import ConfigSubsection, configSequence, configElement, configsequencearg
#TODO .. move this to a own .py file
class VolumeControl:
globalActionMap.actions["volumeMute"]=self.volMute
config.audio = ConfigSubsection()
- config.audio.volume = configElement("config.audio.volume", configSequence, [100], configsequencearg.get("INTEGER", (0, 100)))
+ config.audio.volume = ConfigInteger(default = 100, limits = (0, 100))
self.volumeDialog = session.instantiateDialog(Volume)
self.muteDialog = session.instantiateDialog(Mute)
self.hideVolTimer = eTimer()
self.hideVolTimer.timeout.get().append(self.volHide)
- vol = config.audio.volume.value[0]
+ vol = config.audio.volume.value
+ print "volume is", vol
self.volumeDialog.setValue(vol)
eDVBVolumecontrol.getInstance().setVolume(vol, vol)
self.standby()
def standby(self):
- self.session.open(Standby, self)
+ if self.session.current_dialog and self.session.current_dialog.ALLOW_SUSPEND:
+ self.session.open(Standby, self)
def quit(self):
# halt
screensToRun.append(Screens.InfoBar.InfoBar)
+ ePythonConfigQuery.setQueryFunc(configfile.getResolvedKey)
+
def runNextScreen(session, screensToRun, *result):
if result:
quitMainloop(*result)
runNextScreen(session, screensToRun)
- CONNECT(keyPressedSignal(), session.keyEvent)
-
vol = VolumeControl(session)
power = PowerKey(session)
else:
setFPWakeuptime(nextRecordingTime - (300))
+ session.nav.stopService()
session.nav.shutdown()
return 0
import Components.NimManager
+import Screens.Ci
+Screens.Ci.InitCiConfig()
+
# first, setup a screen
try:
runScreenTest()
plugins.shutdown()
+
+ from Components.ParentalControl import parentalControl
+ parentalControl.save()
except:
print 'EXCEPTION IN PYTHON STARTUP CODE:'
print '-'*60