- split 2 (Screens)
[vuplus_dvbapp] / lib / python / Screens / InfoBar.py
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
8
9 from enigma import *
10
11 import time
12
13 # hack alert!
14 from Menu import *
15
16 class InfoBar(Screen):
17         def __init__(self, session):
18                 Screen.__init__(self, session)
19
20                 #instantiate forever
21                 self.servicelist = self.session.instantiateDialog(ChannelSelection)
22                 
23                 self["actions"] = ActionMap( [ "InfobarActions" ], 
24                         {
25                                 "switchChannel": self.switchChannel,
26                                 "mainMenu": self.mainMenu,
27                                 "zapUp": self.zapUp,
28                                 "zapDown": self.zapDown,
29                                 "instantRecord": self.instantRecord
30                         })
31                 self["okbutton"] = Button("mainMenu", [self.mainMenu])
32                 
33                 self["CurrentTime"] = Clock()
34                 
35                 self["ServiceName"] = ServiceName(self.session.nav)
36                 
37                 self["Event_Now"] = EventInfo(self.session.nav, EventInfo.Now)
38                 self["Event_Next"] = EventInfo(self.session.nav, EventInfo.Next)
39
40                 self["Event_Now_Duration"] = EventInfo(self.session.nav, EventInfo.Now_Duration)
41                 self["Event_Next_Duration"] = EventInfo(self.session.nav, EventInfo.Next_Duration)
42                 
43                 self.recording = None
44         
45         def mainMenu(self):
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)
50
51         def switchChannel(self):        
52                 self.session.execDialog(self.servicelist)
53
54         def     zapUp(self):
55                 self.servicelist.zapUp()
56
57         def     zapDown(self):
58                 self.servicelist.zapDown()
59                 
60         def instantRecord(self):
61                 if self.recording != None:
62                         print "remove entry"
63                         self.session.nav.RecordTimer.removeEntry(self.recording)
64                         self.recording = None
65                 else:
66                         serviceref = self.session.nav.getCurrentlyPlayingServiceReference()
67                         
68                         # try to get event info
69                         epg = None
70                         service = self.session.nav.getCurrentService()
71                         if service != None:
72                                 info = iServiceInformationPtr()
73                                 if not service.info(info):
74                                         ev = eServiceEventPtr()
75                                         if info.getEvent(ev, 0) == 0:
76                                                 epg = ev
77
78                         self.recording = self.session.nav.recordWithTimer(time.time(), time.time() + 30, serviceref, epg)
79                         print "got entry: %s" % (str(self.recording))
80