X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/71f41aef9e77a7293841fb264225de305d2da8b4..7e727f6eb54335c1e2eb66ced21123c2acd998c1:/lib/python/Screens/ChannelSelection.py diff --git a/lib/python/Screens/ChannelSelection.py b/lib/python/Screens/ChannelSelection.py index 9435aff0..d256d3e7 100644 --- a/lib/python/Screens/ChannelSelection.py +++ b/lib/python/Screens/ChannelSelection.py @@ -3,7 +3,7 @@ from Components.Button import Button from Components.ServiceList import ServiceList from Components.ActionMap import ActionMap from EpgSelection import EPGSelection -from enigma import eServiceReference, eEPGCache, eEPGCachePtr, eServiceCenter, eServiceCenterPtr, iMutableServiceListPtr +from enigma import eServiceReference, eEPGCache, eEPGCachePtr, eServiceCenter, eServiceCenterPtr, iMutableServiceListPtr, eTimer from Components.config import config, configElement, ConfigSubsection, configText from Screens.FixedMenu import FixedMenu @@ -60,8 +60,19 @@ class ChannelContextMenu(FixedMenu): self.close() class ChannelSelection(Screen): + def lastService(self): + self.lastServiceTimer.stop() + #zap to last running tv service + self.setRoot(eServiceReference(config.tv.lastroot.value)) + self.session.nav.playService(eServiceReference(config.tv.lastservice.value)) + def __init__(self, session): Screen.__init__(self, session) + + #config for lastservice + config.tv = ConfigSubsection(); + config.tv.lastservice = configElement("config.tv.lastservice", configText, "", 0); + config.tv.lastroot = configElement("config.tv.lastroot", configText, "", 0); self.entry_marked = False self.movemode = False @@ -76,17 +87,15 @@ class ChannelSelection(Screen): self["key_blue"] = Button("Favourites") self["list"] = ServiceList() - self.setRoot(eServiceReference("""1:0:1:0:0:0:0:0:0:0:(type == 1)""")) + + if config.tv.lastroot.value == "": + self.setRoot(eServiceReference("""1:0:1:0:0:0:0:0:0:0:(type == 1)""")) #self["okbutton"] = Button("ok", [self.channelSelected]) - config.tv = ConfigSubsection(); - config.tv.lastservice = configElement("config.tv.lastservice", configText, "", 0); - - print "lastservice:" + config.tv.lastservice.value - ref = eServiceReference(config.tv.lastservice.value) - print ref - self.session.nav.playService(ref) + self.lastServiceTimer = eTimer() + self.lastServiceTimer.timeout.get().append(self.lastService) + self.lastServiceTimer.start(100) class ChannelActionMap(ActionMap): def action(self, contexts, action): @@ -176,6 +185,7 @@ class ChannelSelection(Screen): self.mutableList = list.startEdit() else: self.mutableList = None + self.saveRoot(root) self["list"].setRoot(root) def clearMarks(self): @@ -236,6 +246,11 @@ class ChannelSelection(Screen): list = self["list"] list.setMode(list.MODE_FAVOURITES) + def saveRoot(self, root): + if root is not None: + config.tv.lastroot.value = root.toString() + config.tv.lastroot.save() + def saveChannel(self): ref = self.session.nav.getCurrentlyPlayingServiceReference() if ref is not None: