aboutsummaryrefslogtreecommitdiff
path: root/lib/python/Screens/TimerEdit.py
blob: 233bfe2d3000d5e2d73b4e785f24713d004cf26c (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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
from Screen import Screen
from Components.TimerList import TimerList, TimerEntryComponent
from Components.ActionMap import ActionMap
from Components.TimeInput import TimeInput
from Components.Label import Label
from Components.Button import Button
from Components.TextInput import TextInput
from TimerEntry import TimerEntry
from RecordTimer import RecordTimerEntry
from time import *
from ServiceReference import ServiceReference

class TimerEdit(Screen):
	def __init__(self, session, entry):
		Screen.__init__(self, session)

		self["actions"] = ActionMap(["OkCancelActions"], 
			{
				"ok": self.apply,
				"cancel": self.close
			})
		
		self["shortcuts"] = ActionMap(["ShortcutActions"],
			{
				"red": self.beginFocus,
				"yellow": self.endFocus,
				"green": self.descFocus
			})
		
		self.entry = entry
		# begin, end, description, service
		self["begin"] = TimeInput()
		self["end"] = TimeInput()
		
		self["lbegin"] = Label("Begin")
		self["lend"] = Label("End")
		
		self["description"] = TextInput()
		self["apply"] = Button("Apply")
		self["service"] = Button()
		
		self["description"].setText(entry.description);
	
	def beginFocus(self):
		self.setFocus(self["begin"])
	
	def endFocus(self):
		self.setFocus(self["end"])
	
	def descFocus(self):
		self.setFocus(self["description"])
	
	def apply(self):
		print "applied!"
	
class TimerEditList(Screen):
	def __init__(self, session):
		Screen.__init__(self, session)
		
		list = [ ]
		for timer in session.nav.RecordTimer.timer_list:
			list.append(TimerEntryComponent(timer, 0))
		
		for timer in session.nav.RecordTimer.processed_timers:
			list.append(TimerEntryComponent(timer, 1))
		
		self["timerlist"] = TimerList(list)
		
		self["key_red"] = Button("Delete")
		self["key_green"] = Button("Add")
		self["key_yellow"] = Button("")
		self["key_blue"] = Button("")

		self["actions"] = ActionMap(["OkCancelActions", "ShortcutActions"], 
			{
				"ok": self.openEdit,
				"cancel": self.close,
				"red": self.removeTimer,
				"green": self.addTimer
			})

	def openEdit(self):
		self.session.open(TimerEntry, self["timerlist"].getCurrent()[0])
		#self.session.open(TimerEdit, self["timerlist"].getCurrent()[0])
		
	def removeTimer(self):
		self.session.nav.RecordTimer.removeEntry(self["timerlist"].getCurrent()[0])
	
	def addTimer(self):
		begin = time()
		end = time() + 60
		
		epg = None
		try:
			service = self.session.nav.getCurrentService()
			info = service.info()
			ev = info.getEvent(0)
			epg = ev
		except:
			pass
		
		if (epg == None):
			description = "unknown event"
		else:
			description = ev.getEventName()
			# FIXME we need a timestamp here:
			begin = ev.getBeginTime()
			
			print begin
			print ev.getDuration()
			end = begin + ev.getDuration()


		# FIXME only works if already playing a service
		serviceref = ServiceReference(self.session.nav.getCurrentlyPlayingServiceReference())
		
		newEntry = RecordTimerEntry(begin, end, serviceref, epg, description)
		self.session.open(TimerEntry, newEntry)