X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/f5f70f0586875cf34ab93c7abd1cf7165badf399..1c6adfdbe104773d7a98377de6951da02ae1aac0:/lib/python/Components/Sources/FrontendInfo.py diff --git a/lib/python/Components/Sources/FrontendInfo.py b/lib/python/Components/Sources/FrontendInfo.py index e0df49db..bcca7c3d 100644 --- a/lib/python/Components/Sources/FrontendInfo.py +++ b/lib/python/Components/Sources/FrontendInfo.py @@ -1,13 +1,27 @@ +from enigma import iPlayableService from Source import Source -from enigma import eTimer +from Components.PerServiceDisplay import PerServiceBase -class FrontendInfo(Source): - def __init__(self, service_source = None, frontend_source = None): +class FrontendInfo(Source, PerServiceBase): + def __init__(self, service_source = None, frontend_source = None, navcore = None): + self.navcore = None Source.__init__(self) + if navcore: + PerServiceBase.__init__(self, navcore, + { + iPlayableService.evTunedIn: self.updateFrontendData, + iPlayableService.evEnd: self.serviceEnd + }) self.service_source = service_source self.frontend_source = frontend_source self.updateFrontendData() + def serviceEnd(self): +# import pdb +# pdb.set_trace() + self.slot_number = self.frontend_type = None + self.changed((self.CHANGED_CLEAR, )) + def updateFrontendData(self): data = self.getFrontendData() if not data: @@ -25,8 +39,17 @@ class FrontendInfo(Source): frontend.getFrontendData(dict) return dict elif self.service_source: - service = self.service_source() + service = self.navcore and self.service_source() + feinfo = service and service.frontendInfo() + return feinfo and feinfo.getFrontendData() + elif self.navcore: + service = self.navcore.getCurrentService() feinfo = service and service.frontendInfo() return feinfo and feinfo.getFrontendData() else: return None + + def destroy(self): + if not self.frontend_source and not self.service_source: + PerServiceBase.destroy(self) + Source.destroy(self)