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
|
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
from Components.config import *
class TimerEditList(Screen):
def __init__(self, session):
Screen.__init__(self, session)
list = [ ]
self.list = list
self.fillTimerList()
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.leave,
"red": self.removeTimer,
"green": self.addCurrentTimer
})
def fillTimerList(self):
del self.list[:]
for timer in self.session.nav.RecordTimer.timer_list:
self.list.append(TimerEntryComponent(timer, 0))
for timer in self.session.nav.RecordTimer.processed_timers:
self.list.append(TimerEntryComponent(timer, 1))
def openEdit(self):
self.session.openWithCallback(self.finishedEdit, TimerEntry, self["timerlist"].getCurrent()[0])
#self.session.open(TimerEdit, self["timerlist"].getCurrent()[0])
def removeTimer(self):
# FIXME doesn't work...
self.session.nav.RecordTimer.removeEntry(self["timerlist"].getCurrent()[0])
self.fillTimerList()
self["timerlist"].invalidate()
def addCurrentTimer(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())
self.addTimer(RecordTimerEntry(begin, end, serviceref, epg, description))
def addTimer(self, timer):
self.session.openWithCallback(self.finishedAdd, TimerEntry, timer)
def finishedEdit(self, answer):
if (answer[0]):
print "Edited timer"
self.session.nav.RecordTimer.timeChanged(answer[1])
self.fillTimerList()
else:
print "Timeredit aborted"
def finishedAdd(self, answer):
if (answer[0]):
self.session.nav.RecordTimer.record(answer[1])
self.fillTimerList()
else:
print "Timeredit aborted"
def leave(self):
self.session.nav.RecordTimer.saveTimer()
self.close()
|