aboutsummaryrefslogtreecommitdiff
path: root/lib/python/Screens/InfoBar.py
blob: 5112a00d0f2a579357fc4bc34ec072fa2de95b1f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
from Screen import Screen
from ChannelSelection import ChannelSelection
from Components.Clock import Clock
from Components.ActionMap import ActionMap
from Components.Button import Button
from Components.ServiceName import ServiceName
from Components.EventInfo import EventInfo

from enigma import *

import time

# hack alert!
from Menu import *

class InfoBar(Screen):
	def __init__(self, session):
		Screen.__init__(self, session)

		#instantiate forever
		self.servicelist = self.session.instantiateDialog(ChannelSelection)
		
		self["actions"] = ActionMap( [ "InfobarActions" ], 
			{
				"switchChannelUp": self.switchChannelUp,
				"switchChannelDown": self.switchChannelDown,
				"mainMenu": self.mainMenu,
				"zapUp": self.zapUp,
				"zapDown": self.zapDown,
				"instantRecord": self.instantRecord,
				"hide": self.hide,
				"toggleShow": self.toggleShow
			})
		self["okbutton"] = Button("mainMenu", [self.mainMenu])
		
		self["CurrentTime"] = Clock()
		
		self["ServiceName"] = ServiceName(self.session.nav)
		
		self["Event_Now"] = EventInfo(self.session.nav, EventInfo.Now)
		self["Event_Next"] = EventInfo(self.session.nav, EventInfo.Next)

		self["Event_Now_Duration"] = EventInfo(self.session.nav, EventInfo.Now_Duration)
		self["Event_Next_Duration"] = EventInfo(self.session.nav, EventInfo.Next_Duration)
		
		self.recording = None
	
	def mainMenu(self):
		print "loading mainmenu XML..."
		menu = mdom.childNodes[0]
		assert menu.tagName == "menu", "root element in menu must be 'menu'!"
		self.session.open(Menu, menu, menu.childNodes)

	def switchChannelUp(self):	
		self.servicelist.moveUp()
		self.session.execDialog(self.servicelist)

	def switchChannelDown(self):	
		self.servicelist.moveDown()
		self.session.execDialog(self.servicelist)

	def hide(self):	
		self.instance.hide()

	def toggleShow(self):
		if self.instance.isVisible():
			self.instance.hide()
		else:
			self.instance.show()

	def	zapUp(self):
		self.servicelist.moveUp()
		self.servicelist.zap()

	def	zapDown(self):
		self.servicelist.moveDown()
		self.servicelist.zap()
		
	def instantRecord(self):
		if self.recording != None:
			print "remove entry"
			self.session.nav.RecordTimer.removeEntry(self.recording)
			self.recording = None
		else:
			serviceref = self.session.nav.getCurrentlyPlayingServiceReference()
			
			# try to get event info
			epg = None
			service = self.session.nav.getCurrentService()
			if service != None:
				info = iServiceInformationPtr()
				if not service.info(info):
					ev = eServiceEventPtr()
					if info.getEvent(ev, 0) == 0:
						epg = ev
			# fix me, description. 
			self.recording = self.session.nav.recordWithTimer(time.time(), time.time() + 30, serviceref, epg, "instant record")