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
9 from Components.ServicePosition import ServicePosition
11 from Screens.MessageBox import MessageBox
12 from Screens.MovieSelection import MovieSelection
19 from Menu import MainMenu, mdom
21 class InfoBar(Screen):
27 def __init__(self, session):
28 Screen.__init__(self, session)
31 self.servicelist = self.session.instantiateDialog(ChannelSelection)
32 self.volumeBar = VolumeBar()
34 self.state = self.STATE_HIDDEN
36 self["actions"] = ActionMap( [ "InfobarActions" ],
38 "switchChannelUp": self.switchChannelUp,
39 "switchChannelDown": self.switchChannelDown,
40 "mainMenu": self.mainMenu,
42 "zapDown": self.zapDown,
43 "volumeUp": self.volUp,
44 "volumeDown": self.volDown,
45 "volumeMute": self.volMute,
46 "instantRecord": self.instantRecord,
48 "toggleShow": self.toggleShow,
49 "showMovies": self.showMovies,
52 # self["okbutton"] = Button("mainMenu", [self.mainMenu])
54 self["CurrentTime"] = ServicePosition(self.session.nav, ServicePosition.TYPE_REMAINING)
57 self["Volume"] = self.volumeBar
59 self["ServiceName"] = ServiceName(self.session.nav)
61 self["Event_Now"] = EventInfo(self.session.nav, EventInfo.Now)
62 self["Event_Next"] = EventInfo(self.session.nav, EventInfo.Next)
64 self["Event_Now_Duration"] = EventInfo(self.session.nav, EventInfo.Now_Duration)
65 self["Event_Next_Duration"] = EventInfo(self.session.nav, EventInfo.Next_Duration)
72 print "loading mainmenu XML..."
73 menu = mdom.childNodes[0]
74 assert menu.tagName == "menu", "root element in menu must be 'menu'!"
75 self.session.open(MainMenu, menu, menu.childNodes)
77 def switchChannelUp(self):
78 self.servicelist.moveUp()
79 self.session.execDialog(self.servicelist)
81 def switchChannelDown(self):
82 self.servicelist.moveDown()
83 self.session.execDialog(self.servicelist)
89 if self.state == self.STATE_SHOWN:
90 # self.instance.hide()
93 # self.instance.show()
97 self.servicelist.moveUp()
98 self.servicelist.zap()
101 self.servicelist.moveDown()
102 self.servicelist.zap()
105 eDVBVolumecontrol.getInstance().volumeUp()
106 self.volumeBar.setValue(eDVBVolumecontrol.getInstance().getVolume())
109 eDVBVolumecontrol.getInstance().volumeDown()
110 self.volumeBar.setValue(eDVBVolumecontrol.getInstance().getVolume())
113 self.instance.m_animation.startMoveAnimation(ePoint(0, 600), ePoint(0, 380), 100)
114 self.state = self.STATE_SHOWN
117 self.instance.m_animation.startMoveAnimation(ePoint(0, 380), ePoint(0, 600), 100)
118 self.state = self.STATE_HIDDEN
121 eDVBVolumecontrol.getInstance().volumeToggleMute()
122 self.volumeBar.setValue(eDVBVolumecontrol.getInstance().getVolume())
127 def instantRecord(self):
128 #self.session.open(MessageBox, "this would be an instant recording! do you really know what you're doing?!")
131 if self.recording != None:
133 self.session.nav.RecordTimer.removeEntry(self.recording)
134 self.recording = None
136 serviceref = self.session.nav.getCurrentlyPlayingServiceReference()
138 # try to get event info
140 service = self.session.nav.getCurrentService()
142 info = iServiceInformationPtr()
143 if not service.info(info):
144 ev = eServiceEventPtr()
145 if info.getEvent(ev, 0) == 0:
147 # fix me, description.
148 self.recording = self.session.nav.recordWithTimer(time.time(), time.time() + 30, serviceref, epg, "instant record")
150 def showMovies(self):
151 self.session.open(MovieSelection)