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
10 from Components.config import configfile
12 from Screens.MessageBox import MessageBox
13 from Screens.MovieSelection import MovieSelection
20 from Menu import MainMenu, mdom
22 class InfoBar(Screen):
28 def __init__(self, session):
29 Screen.__init__(self, session)
32 self.servicelist = self.session.instantiateDialog(ChannelSelection)
33 self.volumeBar = VolumeBar()
35 self.state = self.STATE_HIDDEN
37 self["actions"] = ActionMap( [ "InfobarActions" ],
39 "switchChannelUp": self.switchChannelUp,
40 "switchChannelDown": self.switchChannelDown,
41 "mainMenu": self.mainMenu,
43 "zapDown": self.zapDown,
44 "volumeUp": self.volUp,
45 "volumeDown": self.volDown,
46 "volumeMute": self.volMute,
47 "instantRecord": self.instantRecord,
49 "toggleShow": self.toggleShow,
50 "showMovies": self.showMovies,
53 # self["okbutton"] = Button("mainMenu", [self.mainMenu])
55 self["CurrentTime"] = Clock()
56 # ServicePosition(self.session.nav, ServicePosition.TYPE_REMAINING)
59 self["Volume"] = self.volumeBar
61 self["ServiceName"] = ServiceName(self.session.nav)
63 self["Event_Now"] = EventInfo(self.session.nav, EventInfo.Now)
64 self["Event_Next"] = EventInfo(self.session.nav, EventInfo.Next)
66 self["Event_Now_Duration"] = EventInfo(self.session.nav, EventInfo.Now_Duration)
67 self["Event_Next_Duration"] = EventInfo(self.session.nav, EventInfo.Next_Duration)
74 print "loading mainmenu XML..."
75 menu = mdom.childNodes[0]
76 assert menu.tagName == "menu", "root element in menu must be 'menu'!"
77 self.session.open(MainMenu, menu, menu.childNodes)
79 def switchChannelUp(self):
80 self.servicelist.moveUp()
81 self.session.execDialog(self.servicelist)
83 def switchChannelDown(self):
84 self.servicelist.moveDown()
85 self.session.execDialog(self.servicelist)
91 if self.state == self.STATE_SHOWN:
92 # self.instance.hide()
95 # self.instance.show()
99 self.servicelist.moveUp()
100 self.servicelist.zap()
103 self.servicelist.moveDown()
104 self.servicelist.zap()
107 eDVBVolumecontrol.getInstance().volumeUp()
108 self.volumeBar.setValue(eDVBVolumecontrol.getInstance().getVolume())
111 eDVBVolumecontrol.getInstance().volumeDown()
112 self.volumeBar.setValue(eDVBVolumecontrol.getInstance().getVolume())
115 self.instance.m_animation.startMoveAnimation(ePoint(0, 600), ePoint(0, 380), 100)
116 self.state = self.STATE_SHOWN
119 self.instance.m_animation.startMoveAnimation(ePoint(0, 380), ePoint(0, 600), 100)
120 self.state = self.STATE_HIDDEN
123 eDVBVolumecontrol.getInstance().volumeToggleMute()
124 self.volumeBar.setValue(eDVBVolumecontrol.getInstance().getVolume())
130 def instantRecord(self):
131 #self.session.open(MessageBox, "this would be an instant recording! do you really know what you're doing?!")
134 if self.recording != None:
136 self.session.nav.RecordTimer.removeEntry(self.recording)
137 self.recording = None
139 serviceref = self.session.nav.getCurrentlyPlayingServiceReference()
141 # try to get event info
143 service = self.session.nav.getCurrentService()
145 info = iServiceInformationPtr()
146 if not service.info(info):
147 ev = eServiceEventPtr()
148 if info.getEvent(ev, 0) == 0:
150 # fix me, description.
151 self.recording = self.session.nav.recordWithTimer(time.time(), time.time() + 30, serviceref, epg, "instant record")
153 def showMovies(self):
154 self.session.open(MovieSelection)