1 from Screen import Screen
2 from ChannelSelection import ChannelSelection
3 from Components.Clock import Clock
4 from Components.ActionMap import ActionMap
5 from Components.Button import Button
6 from Components.ServiceName import ServiceName
7 from Components.EventInfo import EventInfo
16 class InfoBar(Screen):
17 def __init__(self, session):
18 Screen.__init__(self, session)
21 self.servicelist = self.session.instantiateDialog(ChannelSelection)
23 self["actions"] = ActionMap( [ "InfobarActions" ],
25 "switchChannel": self.switchChannel,
26 "mainMenu": self.mainMenu,
28 "zapDown": self.zapDown,
29 "instantRecord": self.instantRecord
31 self["okbutton"] = Button("mainMenu", [self.mainMenu])
33 self["CurrentTime"] = Clock()
35 self["ServiceName"] = ServiceName(self.session.nav)
37 self["Event_Now"] = EventInfo(self.session.nav, EventInfo.Now)
38 self["Event_Next"] = EventInfo(self.session.nav, EventInfo.Next)
40 self["Event_Now_Duration"] = EventInfo(self.session.nav, EventInfo.Now_Duration)
41 self["Event_Next_Duration"] = EventInfo(self.session.nav, EventInfo.Next_Duration)
46 print "loading mainmenu XML..."
47 menu = mdom.childNodes[0]
48 assert menu.tagName == "menu", "root element in menu must be 'menu'!"
49 self.session.open(Menu, menu, menu.childNodes)
51 def switchChannel(self):
52 self.session.execDialog(self.servicelist)
55 self.servicelist.zapUp()
58 self.servicelist.zapDown()
60 def instantRecord(self):
61 if self.recording != None:
63 self.session.nav.RecordTimer.removeEntry(self.recording)
66 serviceref = self.session.nav.getCurrentlyPlayingServiceReference()
68 # try to get event info
70 service = self.session.nav.getCurrentService()
72 info = iServiceInformationPtr()
73 if not service.info(info):
74 ev = eServiceEventPtr()
75 if info.getEvent(ev, 0) == 0:
78 self.recording = self.session.nav.recordWithTimer(time.time(), time.time() + 30, serviceref, epg)
79 print "got entry: %s" % (str(self.recording))