X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/da40b2aac3c7b8efdc9061aadf9038306f44789c..f0273520285e28b22053eda706690774b0c8448c:/screens.py diff --git a/screens.py b/screens.py index ec81c2d5..288a2256 100644 --- a/screens.py +++ b/screens.py @@ -6,6 +6,7 @@ import xml.dom.minidom from xml.dom import EMPTY_NAMESPACE from skin import elementsWithTag +import time # some screens def doGlobal(screen): @@ -47,6 +48,9 @@ class Screen(dict, HTMLSkin, GUISkin): mdom = xml.dom.minidom.parseString( """ + quitMainloop() + self.openDialog(serviceScan) + self.setModeTV() self.setModeRadio() self.setModeFile() @@ -89,7 +93,6 @@ mdom = xml.dom.minidom.parseString( self.goSetup() - quitMainloop() """) def getText(nodelist): @@ -304,7 +307,7 @@ class channelSelection(Screen): self["list"].removeMarked(ref) else: self["list"].addMarked(ref) - + def channelSelected(self): self.session.nav.playService(self["list"].getCurrent()) self.close() @@ -323,14 +326,15 @@ class infoBar(Screen): Screen.__init__(self, session) #instantiate forever - self["ServiceList"] = self.session.instantiateDialog(channelSelection) + self.servicelist = self.session.instantiateDialog(channelSelection) self["actions"] = ActionMap( [ "InfobarActions" ], { "switchChannel": self.switchChannel, "mainMenu": self.mainMenu, "zapUp": self.zapUp, - "zapDown": self.zapDown + "zapDown": self.zapDown, + "instantRecord": self.instantRecord }) self["okbutton"] = Button("mainMenu", [self.mainMenu]) @@ -343,6 +347,8 @@ class infoBar(Screen): self["Event_Now_Duration"] = EventInfo(self.session.nav, EventInfo.Now_Duration) self["Event_Next_Duration"] = EventInfo(self.session.nav, EventInfo.Next_Duration) + + self.recording = None def mainMenu(self): print "loading mainmenu XML..." @@ -351,13 +357,34 @@ class infoBar(Screen): self.session.open(Menu, menu, menu.childNodes) def switchChannel(self): - self.session.execDialog(self["ServiceList"]) + self.session.execDialog(self.servicelist) def zapUp(self): - self["ServiceList"].zapUp() + self.servicelist.zapUp() def zapDown(self): - self["ServiceList"].zapDown() + self.servicelist.zapDown() + + def instantRecord(self): + if self.recording != None: + print "remove entry" + self.session.nav.RecordTimer.removeEntry(self.recording) + self.recording = None + else: + serviceref = self.session.nav.getCurrentlyPlayingServiceReference() + + # try to get event info + epg = None + service = self.session.nav.getCurrentService() + if service != None: + info = iServiceInformationPtr() + if not service.info(info): + ev = eServiceEventPtr() + if info.getEvent(ev, 0) == 0: + epg = ev + + self.recording = self.session.nav.recordWithTimer(time.time(), time.time() + 30, serviceref, epg) + print "got entry: %s" % (str(self.recording)) # a clock display dialog class clockDisplay(Screen): @@ -393,4 +420,3 @@ class serviceScan(Screen): "ok": self.ok, "cancel": self.cancel }) -