+ self.timer.begin, self.timer.end = self.getBeginEnd()
+ if (config.timerentry.type.value == 1): # repeated
+ if (config.timerentry.repeated.value == 0): # daily
+ for x in range(0,7):
+ self.timer.setRepeated(x)
+
+ if (config.timerentry.repeated.value == 1): # weekly
+ self.timer.setRepeated(config.timerentry.weekday.value)
+
+ if (config.timerentry.repeated.value == 2): # Mon-Fri
+ for x in range(0,5):
+ self.timer.setRepeated(x)
+
+ if (config.timerentry.repeated.value == 3): # user defined
+ for x in range(0,7):
+ if (config.timerentry.day[x].value == 0): self.timer.setRepeated(x)
+
+ self.timer.begin = self.getTimestamp(time.time(), config.timerentry.starttime.value)
+ self.timer.end = self.getTimestamp(time.time(), config.timerentry.endtime.value)
+
+ # when a timer end is set before the start, add 1 day
+ if self.timer.end < self.timer.begin:
+ self.timer.end += 86400
+
+ if self.timer.eit is not None:
+ event = eEPGCache.getInstance().lookupEventId(self.timer.service_ref.ref, self.timer.eit)
+ if event is not None:
+ n = event.getNumOfLinkageServices()
+ if n > 0:
+ tlist = []
+ ref = self.session.nav.getCurrentlyPlayingServiceReference()
+ parent = self.timer.service_ref.ref
+ selection = 0
+ for x in range(n):
+ i = event.getLinkageService(parent, x)
+ if i.toString() == ref.toString():
+ selection = x
+ tlist.append((i.getName(), i))
+ self.session.openWithCallback(self.subserviceSelected, ChoiceBox, title=_("Please select a subservice to record..."), list = tlist, selection = selection)
+ return
+ self.close((True, self.timer))
+
+ def subserviceSelected(self, service):
+ if not service is None:
+ self.timer.service_ref = ServiceReference(service[1])