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"] = Clock()
55 # ServicePosition(self.session.nav, ServicePosition.TYPE_REMAINING)
58 self["Volume"] = self.volumeBar
60 self["ServiceName"] = ServiceName(self.session.nav)
62 self["Event_Now"] = EventInfo(self.session.nav, EventInfo.Now)
63 self["Event_Next"] = EventInfo(self.session.nav, EventInfo.Next)
65 self["Event_Now_Duration"] = EventInfo(self.session.nav, EventInfo.Now_Duration)
66 self["Event_Next_Duration"] = EventInfo(self.session.nav, EventInfo.Next_Duration)
73 print "loading mainmenu XML..."
74 menu = mdom.childNodes[0]
75 assert menu.tagName == "menu", "root element in menu must be 'menu'!"
76 self.session.open(MainMenu, menu, menu.childNodes)
78 def switchChannelUp(self):
79 self.servicelist.moveUp()
80 self.session.execDialog(self.servicelist)
82 def switchChannelDown(self):
83 self.servicelist.moveDown()
84 self.session.execDialog(self.servicelist)
90 if self.state == self.STATE_SHOWN:
91 # self.instance.hide()
94 # self.instance.show()
98 self.servicelist.moveUp()
99 self.servicelist.zap()
102 self.servicelist.moveDown()
103 self.servicelist.zap()
106 eDVBVolumecontrol.getInstance().volumeUp()
107 self.volumeBar.setValue(eDVBVolumecontrol.getInstance().getVolume())
110 eDVBVolumecontrol.getInstance().volumeDown()
111 self.volumeBar.setValue(eDVBVolumecontrol.getInstance().getVolume())
114 self.instance.m_animation.startMoveAnimation(ePoint(0, 600), ePoint(0, 380), 100)
115 self.state = self.STATE_SHOWN
118 self.instance.m_animation.startMoveAnimation(ePoint(0, 380), ePoint(0, 600), 100)
119 self.state = self.STATE_HIDDEN
122 eDVBVolumecontrol.getInstance().volumeToggleMute()
123 self.volumeBar.setValue(eDVBVolumecontrol.getInstance().getVolume())
128 def instantRecord(self):
129 #self.session.open(MessageBox, "this would be an instant recording! do you really know what you're doing?!")
132 if self.recording != None:
134 self.session.nav.RecordTimer.removeEntry(self.recording)
135 self.recording = None
137 serviceref = self.session.nav.getCurrentlyPlayingServiceReference()
139 # try to get event info
141 service = self.session.nav.getCurrentService()
143 info = iServiceInformationPtr()
144 if not service.info(info):
145 ev = eServiceEventPtr()
146 if info.getEvent(ev, 0) == 0:
148 # fix me, description.
149 self.recording = self.session.nav.recordWithTimer(time.time(), time.time() + 30, serviceref, epg, "instant record")
151 def showMovies(self):
152 self.session.open(MovieSelection)