+ self.timer.name = self.timerentry_name.value
+ self.timer.description = self.timerentry_description.value
+ self.timer.justplay = self.timerentry_justplay.value == "zap"
+ self.timer.resetRepeated()
+ self.timer.afterEvent = {
+ "nothing": AFTEREVENT.NONE,
+ "deepstandby": AFTEREVENT.DEEPSTANDBY,
+ "standby": AFTEREVENT.STANDBY,
+ "auto": AFTEREVENT.AUTO
+ }[self.timerentry_afterevent.value]
+ self.timer.service_ref = self.timerentry_service_ref
+ self.timer.tags = self.timerentry_tags
+
+ if self.timer.dirname or self.timerentry_dirname.value != defaultMoviePath():
+ self.timer.dirname = self.timerentry_dirname.value
+ config.movielist.last_timer_videodir.value = self.timer.dirname
+ config.movielist.last_timer_videodir.save()
+
+ if self.timerentry_type.value == "once":
+ self.timer.begin, self.timer.end = self.getBeginEnd()
+ if self.timerentry_type.value == "repeated":
+ if self.timerentry_repeated.value == "daily":
+ for x in (0, 1, 2, 3, 4, 5, 6):
+ self.timer.setRepeated(x)
+
+ if self.timerentry_repeated.value == "weekly":
+ self.timer.setRepeated(self.timerentry_weekday.index)
+
+ if self.timerentry_repeated.value == "weekdays":
+ for x in (0, 1, 2, 3, 4):
+ self.timer.setRepeated(x)
+
+ if self.timerentry_repeated.value == "user":
+ for x in (0, 1, 2, 3, 4, 5, 6):
+ if self.timerentry_day[x].value:
+ self.timer.setRepeated(x)
+
+ self.timer.repeatedbegindate = self.getTimestamp(self.timerentry_repeatedbegindate.value, self.timerentry_starttime.value)
+ if self.timer.repeated:
+ self.timer.begin = self.getTimestamp(self.timerentry_repeatedbegindate.value, self.timerentry_starttime.value)
+ self.timer.end = self.getTimestamp(self.timerentry_repeatedbegindate.value, self.timerentry_endtime.value)
+ else:
+ self.timer.begin = self.getTimestamp(time.time(), self.timerentry_starttime.value)
+ self.timer.end = self.getTimestamp(time.time(), self.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:
+ n = event.getNumOfLinkageServices()
+ if n > 1:
+ 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
+ elif n > 0:
+ parent = self.timer.service_ref.ref
+ self.timer.service_ref = ServiceReference(event.getLinkageService(parent, 0))
+ self.saveTimer()