1 from Screen import Screen
2 from ChannelSelection import ChannelSelection
3 from Components.Clock import Clock
4 from Components.VolumeBar import VolumeBar
5 from Components.ActionMap import ActionMap
6 from Components.Button import Button
7 from Components.ServiceName import ServiceName
8 from Components.EventInfo import EventInfo
10 from Screens.MessageBox import MessageBox
11 from Screens.MovieSelection import MovieSelection
18 from Menu import MainMenu, mdom
20 class InfoBar(Screen):
21 def __init__(self, session):
22 Screen.__init__(self, session)
25 self.servicelist = self.session.instantiateDialog(ChannelSelection)
26 self.volumeBar = VolumeBar()
28 self["actions"] = ActionMap( [ "InfobarActions" ],
30 "switchChannelUp": self.switchChannelUp,
31 "switchChannelDown": self.switchChannelDown,
32 "mainMenu": self.mainMenu,
34 "zapDown": self.zapDown,
35 "volumeUp": self.volUp,
36 "volumeDown": self.volDown,
37 "volumeMute": self.volMute,
38 "instantRecord": self.instantRecord,
40 "toggleShow": self.toggleShow,
41 "showMovies": self.showMovies,
44 # self["okbutton"] = Button("mainMenu", [self.mainMenu])
46 self["CurrentTime"] = Clock()
48 self["Volume"] = self.volumeBar
50 self["ServiceName"] = ServiceName(self.session.nav)
52 self["Event_Now"] = EventInfo(self.session.nav, EventInfo.Now)
53 self["Event_Next"] = EventInfo(self.session.nav, EventInfo.Next)
55 self["Event_Now_Duration"] = EventInfo(self.session.nav, EventInfo.Now_Duration)
56 self["Event_Next_Duration"] = EventInfo(self.session.nav, EventInfo.Next_Duration)
61 print "loading mainmenu XML..."
62 menu = mdom.childNodes[0]
63 assert menu.tagName == "menu", "root element in menu must be 'menu'!"
64 self.session.open(MainMenu, menu, menu.childNodes)
66 def switchChannelUp(self):
67 self.servicelist.moveUp()
68 self.session.execDialog(self.servicelist)
70 def switchChannelDown(self):
71 self.servicelist.moveDown()
72 self.session.execDialog(self.servicelist)
78 if self.instance.isVisible():
84 self.servicelist.moveUp()
85 self.servicelist.zap()
88 self.servicelist.moveDown()
89 self.servicelist.zap()
92 eDVBVolumecontrol.getInstance().volumeUp()
93 self.volumeBar.setValue(eDVBVolumecontrol.getInstance().getVolume())
96 eDVBVolumecontrol.getInstance().volumeDown()
97 self.volumeBar.setValue(eDVBVolumecontrol.getInstance().getVolume())
100 eDVBVolumecontrol.getInstance().volumeToggleMute()
101 self.volumeBar.setValue(eDVBVolumecontrol.getInstance().getVolume())
106 def instantRecord(self):
107 self.session.open(MessageBox, "this would be an instant recording! do you really know what you're doing?!")
110 if self.recording != None:
112 self.session.nav.RecordTimer.removeEntry(self.recording)
113 self.recording = None
115 serviceref = self.session.nav.getCurrentlyPlayingServiceReference()
117 # try to get event info
119 service = self.session.nav.getCurrentService()
121 info = iServiceInformationPtr()
122 if not service.info(info):
123 ev = eServiceEventPtr()
124 if info.getEvent(ev, 0) == 0:
126 # fix me, description.
127 self.recording = self.session.nav.recordWithTimer(time.time(), time.time() + 30, serviceref, epg, "instant record")
129 def showMovies(self):
130 self.session.open(MovieSelection)