- def activate(self, event):
- if event == self.EventPrepare:
- self.RecordService = self.Nav.recordService(self.ServiceRef)
- if self.RecordService == None:
- print "timer record failed."
- else:
- self.RecordService.prepare()
- elif self.RecordService == None:
- if event != self.EventAbort:
- print "timer record start failed, can't finish recording."
- elif event == self.EventStart:
- self.RecordService.start()
- print "timer started!"
- elif event == self.EventEnd or event == self.EventAbort:
- self.RecordService.stop()
- self.RecordService = None
- print "Timer successfully ended"
-
-class RecordTimer(Timer):
+ next_state = self.state + 1
+
+ return {self.StatePrepared: self.start_prepare,
+ self.StateRunning: self.begin,
+ self.StateEnded: self.end }[next_state]
+
+ def failureCB(self, answer):
+ if answer == True:
+ self.log(13, "ok, zapped away")
+ #NavigationInstance.instance.stopUserServices()
+ NavigationInstance.instance.playService(self.service_ref.ref)
+ else:
+ self.log(14, "user didn't want to zap away, record will probably fail")
+
+ def timeChanged(self):
+ self.start_prepare = self.begin - self.prepare_time
+ self.backoff = 0
+ self.log(15, "record time changed, start prepare is now: %s" % time.ctime(self.start_prepare))
+
+def createTimer(xml):
+ begin = int(xml.getAttribute("begin"))
+ end = int(xml.getAttribute("end"))
+ serviceref = ServiceReference(str(xml.getAttribute("serviceref")))
+ description = xml.getAttribute("description").encode("utf-8")
+ repeated = xml.getAttribute("repeated").encode("utf-8")
+ eit = xml.getAttribute("eit").encode("utf-8")
+ name = xml.getAttribute("name").encode("utf-8")
+ #filename = xml.getAttribute("filename").encode("utf-8")
+ entry = RecordTimerEntry(serviceref, begin, end, name, description, eit)
+ entry.repeated = int(repeated)
+
+ for l in elementsWithTag(xml.childNodes, "log"):
+ time = int(l.getAttribute("time"))
+ code = int(l.getAttribute("code"))
+ msg = mergeText(l.childNodes).strip()
+ entry.log_entries.append((time, code, msg))
+
+ return entry
+
+class RecordTimer(timer.Timer):