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()
""")
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
})
-