aboutsummaryrefslogtreecommitdiff
path: root/lib/python/Screens
diff options
context:
space:
mode:
authorAndreas Monzner <andreas.monzner@multimedia-labs.de>2006-01-08 14:55:16 +0000
committerAndreas Monzner <andreas.monzner@multimedia-labs.de>2006-01-08 14:55:16 +0000
commit4cdeb9ebe328382bb4ef6a01b67ff840adcc84ad (patch)
treef7ee69a1e042d2d766309b0a7fb2ea3d96df1c7c /lib/python/Screens
parente441555fa867c277985766fcf84af8fdde72d52d (diff)
downloadenigma2-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.py21
-rw-r--r--lib/python/Screens/TimerEntry.py17
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):