X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/1213cbcff4f8b31aa77825325f102a134d246e0a..4f46a90d789f28eb0ca156caeb2bb55136d8ac85:/lib/python/Screens/InfoBarGenerics.py diff --git a/lib/python/Screens/InfoBarGenerics.py b/lib/python/Screens/InfoBarGenerics.py index e3fa423f..10a810cf 100644 --- a/lib/python/Screens/InfoBarGenerics.py +++ b/lib/python/Screens/InfoBarGenerics.py @@ -33,6 +33,8 @@ from enigma import * import time import os +from Components.config import config, currentConfigSelectionElement + # hack alert! from Menu import MainMenu, mdom @@ -292,7 +294,7 @@ class InfoBarNumberZap: bouquetlist = serviceHandler.list(bouquet) if not bouquetlist is None: while number: - bouquet = bouquetlist.getNext() + bouquet = self.servicelist.appendDVBTypes(bouquetlist.getNext()) if not bouquet.valid(): #check end of list break if ((bouquet.flags & eServiceReference.flagDirectory) != eServiceReference.flagDirectory): @@ -358,9 +360,15 @@ class InfoBarEPG: def __init__(self): self["EPGActions"] = HelpableActionMap(self, "InfobarEPGActions", { - "showEPGList": (self.showEPGList, _("show EPG...")), + "showEPGList": (self.showEPG, _("show EPG...")), }) + def showEPG(self): + if currentConfigSelectionElement(config.usage.epgtoggle) == "yes": + self.openSingleServiceEPG() + else: + self.showEPGList() + def showEPGList(self): bouquets = self.servicelist.getBouquetList() if bouquets is None: @@ -374,6 +382,39 @@ class InfoBarEPG: else: #no bouquets so we open single epg self.openSingleEPGSelector(self.session.nav.getCurrentlyPlayingServiceReference()) + def bouquetEPGCallback(self, info): + if info: + self.openSingleServiceEPG() + + def singleEPGCallback(self, info): + if info: + self.showEPGList() + + def openEventView(self): + try: + self.epglist = [ ] + service = self.session.nav.getCurrentService() + info = service.info() + ptr=info.getEvent(0) + if ptr: + self.epglist.append(ptr) + ptr=info.getEvent(1) + if ptr: + self.epglist.append(ptr) + if len(self.epglist) > 0: + self.session.open(EventView, self.epglist[0], ServiceReference(ref), self.eventViewCallback) + except: + pass + + def openSingleServiceEPG(self): + ref=self.session.nav.getCurrentlyPlayingServiceReference() + ptr=eEPGCache.getInstance() + if ptr.startTimeQuery(ref) != -1: + self.session.openWithCallback(self.singleEPGCallback, EPGSelection, ref) + else: # try to show now/next + print 'no epg for service', ref.toString() + + def openBouquetEPG(self, bouquet): ptr=eEPGCache.getInstance() services = [ ] @@ -387,7 +428,7 @@ class InfoBarEPG: continue services.append(ServiceReference(service)) if len(services): - self.session.open(EPGSelection, services) + self.session.openWithCallback(self.bouquetEPGCallback, EPGSelection, services) def openSingleEPGSelector(self, ref): ptr=eEPGCache.getInstance() @@ -510,6 +551,7 @@ class InfoBarPVR: "seekBack": (self.seekBack, "skip backward"), "seekBackUp": (self.seekBackUp, "skip backward"), + "movieList": (self.showMovies, "movie list"), "up": (self.showMovies, "movie list"), "down": (self.showMovies, "movie list") })