X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/b38677078a8882dfecd87533291863bbf76d1d63..84702da5d3a6df33717b399b859008a3cf8a1522:/lib/python/Screens/TimerEntry.py diff --git a/lib/python/Screens/TimerEntry.py b/lib/python/Screens/TimerEntry.py index fef525f0..27e82abb 100644 --- a/lib/python/Screens/TimerEntry.py +++ b/lib/python/Screens/TimerEntry.py @@ -9,8 +9,9 @@ from Components.Button import Button from Components.NimManager import nimmanager from Components.Label import Label from Components.Pixmap import Pixmap -from Screens.SubserviceSelection import SubserviceSelection from Screens.MessageBox import MessageBox +from Screens.ChoiceBox import ChoiceBox +from RecordTimer import AFTEREVENT from enigma import eEPGCache import time import datetime @@ -54,6 +55,13 @@ class TimerEntry(Screen): def createConfig(self): config.timerentry = ConfigSubsection() + if (self.timer.justplay): + justplay = 0 + else: + justplay = 1 + + afterevent = { AFTEREVENT.NONE: 0, AFTEREVENT.DEEPSTANDBY: 1, AFTEREVENT.STANDBY: 2}[self.timer.afterEvent] + # calculate default values day = [] weekday = 0 @@ -87,6 +95,8 @@ class TimerEntry(Screen): weekday = (int(strftime("%w", time.localtime(self.timer.begin))) - 1) % 7 day[weekday] = 0 + config.timerentry.justplay = configElement_nonSave("config.timerentry.justplay", configSelection, justplay, (("zap", _("zap")), ("record", _("record")))) + config.timerentry.afterevent = configElement_nonSave("config.timerentry.afterevent", configSelection, afterevent, (("nothing", _("do nothing")), ("deepstandby", _("go to deep standby")))) config.timerentry.type = configElement_nonSave("config.timerentry.type", configSelection, type, (_("once"), _("repeated"))) config.timerentry.name = configElement_nonSave("config.timerentry.name", configText, self.timer.name, (configText.extendableSize, self.keyRightCallback)) config.timerentry.description = configElement_nonSave("config.timerentry.description", configText, self.timer.description, (configText.extendableSize, self.keyRightCallback)) @@ -139,7 +149,9 @@ class TimerEntry(Screen): self.list = [] self.list.append(getConfigListEntry(_("Name"), config.timerentry.name)) self.list.append(getConfigListEntry(_("Description"), config.timerentry.description)) - self.timerTypeEntry = getConfigListEntry(_("Timer Type"), config.timerentry.type) + self.timerJustplayEntry = getConfigListEntry(_("Timer Type"), config.timerentry.justplay) + self.list.append(self.timerJustplayEntry) + self.timerTypeEntry = getConfigListEntry(_("Repeat Type"), config.timerentry.type) self.list.append(self.timerTypeEntry) if (config.timerentry.type.value == 0): # once @@ -172,10 +184,15 @@ class TimerEntry(Screen): else: self.list.append(getConfigListEntry(_("StartTime"), config.timerentry.starttime)) if (config.timerentry.type.value == 0): # once - self.list.append(getConfigListEntry(_("End"), config.timerentry.enddate)) - self.list.append(getConfigListEntry(" ", config.timerentry.endtime)) + if currentConfigSelectionElement(config.timerentry.justplay) != "zap": + self.list.append(getConfigListEntry(_("End"), config.timerentry.enddate)) + self.list.append(getConfigListEntry(" ", config.timerentry.endtime)) else: - self.list.append(getConfigListEntry(_("EndTime"), config.timerentry.endtime)) + if currentConfigSelectionElement(config.timerentry.justplay) != "zap": + self.list.append(getConfigListEntry(_("EndTime"), config.timerentry.endtime)) + + if currentConfigSelectionElement(config.timerentry.justplay) != "zap": + self.list.append(getConfigListEntry(_("After event"), config.timerentry.afterevent)) self.channelEntry = getConfigListEntry(_("Channel"), config.timerentry.service) self.list.append(self.channelEntry) @@ -184,9 +201,11 @@ class TimerEntry(Screen): self[widget].l.setList(self.list) def newConfig(self): - print self["config"].getCurrent() + print "newConfig", self["config"].getCurrent() if self["config"].getCurrent() == self.timerTypeEntry: self.createSetup("config") + if self["config"].getCurrent() == self.timerJustplayEntry: + self.createSetup("config") if self["config"].getCurrent() == self.frequencyEntry: self.createSetup("config") @@ -219,15 +238,11 @@ class TimerEntry(Screen): else: self.keyGo() - def finishedChannelSelection(self, args): - oldref = self.timer.service_ref - try: - self.timer.service_ref = ServiceReference(args) + def finishedChannelSelection(self, *args): + if len(args): + self.timer.service_ref = ServiceReference(args[0]) config.timerentry.service.vals = (str(self.timer.service_ref.getServiceName()),) self["config"].invalidate(config.timerentry.service) - except: - print "you pressed cancel" - self.timer.service_ref = oldref def keyNumberGlobal(self, number): print "You pressed number " + str(number) @@ -237,13 +252,14 @@ class TimerEntry(Screen): def getTimestamp(self, date, mytime): d = time.localtime(date) dt = datetime.datetime(d.tm_year, d.tm_mon, d.tm_mday, mytime[0], mytime[1]) - print dt return int(mktime(dt.timetuple())) def keyGo(self): self.timer.name = config.timerentry.name.value self.timer.description = config.timerentry.description.value + self.timer.justplay = (currentConfigSelectionElement(config.timerentry.justplay) == "zap") self.timer.resetRepeated() + self.timer.afterEvent = { 0: AFTEREVENT.NONE, 1: AFTEREVENT.DEEPSTANDBY, 2: AFTEREVENT.STANDBY}[config.timerentry.afterevent.value] if (config.timerentry.type.value == 0): # once self.timer.begin = self.getTimestamp(config.timerentry.startdate.value, config.timerentry.starttime.value) @@ -270,14 +286,23 @@ class TimerEntry(Screen): if self.timer.eit is not None: event = eEPGCache.getInstance().lookupEventId(self.timer.service_ref.ref, self.timer.eit) if event is not None: - if event.getNumOfLinkageServices() > 0: - self.session.openWithCallback(self.subserviceSelected, SubserviceSelection, event, self.timer.service_ref.ref) + n = event.getNumOfLinkageServices() + if n > 0: + tlist = [] + ref = self.session.nav.getCurrentlyPlayingServiceReference() + parent = self.timer.service_ref.ref + 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) + self.timer.service_ref = ServiceReference(service[1]) self.close((True, self.timer)) def keyCancel(self):