diff options
| author | Andreas Monzner <andreas.monzner@multimedia-labs.de> | 2006-01-08 14:55:16 +0000 |
|---|---|---|
| committer | Andreas Monzner <andreas.monzner@multimedia-labs.de> | 2006-01-08 14:55:16 +0000 |
| commit | 4cdeb9ebe328382bb4ef6a01b67ff840adcc84ad (patch) | |
| tree | f7ee69a1e042d2d766309b0a7fb2ea3d96df1c7c /lib/python/Screens | |
| parent | e441555fa867c277985766fcf84af8fdde72d52d (diff) | |
| download | enigma2-4cdeb9ebe328382bb4ef6a01b67ff840adcc84ad.tar.gz enigma2-4cdeb9ebe328382bb4ef6a01b67ff840adcc84ad.zip | |
add subservice selection to timer (when linkage services are avail for the selected event)
better layout in timerlist (more space for service name and event description)
Diffstat (limited to 'lib/python/Screens')
| -rw-r--r-- | lib/python/Screens/SubserviceSelection.py | 21 | ||||
| -rw-r--r-- | lib/python/Screens/TimerEntry.py | 17 |
2 files changed, 30 insertions, 8 deletions
diff --git a/lib/python/Screens/SubserviceSelection.py b/lib/python/Screens/SubserviceSelection.py index a73cf0e4..0aa34b61 100644 --- a/lib/python/Screens/SubserviceSelection.py +++ b/lib/python/Screens/SubserviceSelection.py @@ -2,7 +2,7 @@ from Screen import Screen from Components.ActionMap import ActionMap from Components.MenuList import MenuList from Components.Label import Label -from enigma import eServiceReferencePtr, eServiceReference +from enigma import eServiceReferencePtr, eServiceReference, iSubserviceListPtr, eServiceEventPtrPtr class SubserviceSelection(Screen): def KeyOk(self): @@ -10,7 +10,7 @@ class SubserviceSelection(Screen): self.close(selection[1]) def Cancel(self): self.close(None) - def __init__(self, session, subservices): + def __init__(self, session, subservices, parent=None): Screen.__init__(self, session) self["actions"] = ActionMap(["OkCancelActions"], @@ -21,10 +21,19 @@ class SubserviceSelection(Screen): self.subservices = subservices + print subservices tlist = [] - n = subservices.getNumberOfSubservices() - for x in range(n): - i = subservices.getSubservice(x) - tlist.append((i.getName(), i)) + if isinstance(subservices, iSubserviceListPtr): + n = subservices.getNumberOfSubservices() + for x in range(n): + i = subservices.getSubservice(x) + tlist.append((i.getName(), i)) + elif isinstance(subservices, eServiceEventPtrPtr): + n = subservices.getNumOfLinkageServices() + for x in range(n): + i = subservices.getLinkageService(parent, x) + tlist.append((i.getName(), i)) + else: + print "unknown type of subservices" self["subservices"] = MenuList(tlist) diff --git a/lib/python/Screens/TimerEntry.py b/lib/python/Screens/TimerEntry.py index ea18d892..703e4aba 100644 --- a/lib/python/Screens/TimerEntry.py +++ b/lib/python/Screens/TimerEntry.py @@ -7,6 +7,8 @@ from Components.ConfigList import ConfigList from Components.NimManager import nimmanager from Components.Label import Label from Components.Pixmap import Pixmap +from Screens.SubserviceSelection import SubserviceSelection +from enigma import eEPGCache import time import datetime @@ -256,8 +258,19 @@ class TimerEntry(Screen): 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) - + self.timer.end = self.getTimestamp(time.time(), config.timerentry.endtime.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) + return + self.close((True, self.timer)) + + def subserviceSelected(self, service): + if not service is None: + self.timer.service_ref = ServiceReference(service) self.close((True, self.timer)) def keyCancel(self): |
