import ChannelSelection
from ServiceReference import ServiceReference
from Components.config import *
-from Components.ActionMap import NumberActionMap
+from Components.ActionMap import ActionMap, NumberActionMap
from Components.ConfigList import ConfigList
from Components.MenuList import MenuList
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
self.list = []
self["config"] = ConfigList(self.list)
- self.createSetup()
+ self.createSetup("config")
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
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))
except:
pass
- def createSetup(self):
+ def createSetup(self, widget):
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
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)
- self["config"].list = self.list
- self["config"].l.setList(self.list)
+ self[widget].list = self.list
+ 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()
+ self.createSetup("config")
+ if self["config"].getCurrent() == self.timerJustplayEntry:
+ self.createSetup("config")
if self["config"].getCurrent() == self.frequencyEntry:
- self.createSetup()
+ self.createSetup("config")
def keyLeft(self):
if self["config"].getCurrent() == self.channelEntry:
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)
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)
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
+ 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)
+ self.timer.service_ref = ServiceReference(service[1])
self.close((True, self.timer))
def keyCancel(self):
self.close((False,))
-
+
class TimerLog(Screen):
def __init__(self, session, timer):
Screen.__init__(self, session)