X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/77bb53beb46f6984e1529c4f703523c146956d0f..1995abf236d34dd3264435a35f2c9c128cf3afaa:/lib/python/Components/Converter/ServiceInfo.py diff --git a/lib/python/Components/Converter/ServiceInfo.py b/lib/python/Components/Converter/ServiceInfo.py index 413aa191..e2d3fc52 100644 --- a/lib/python/Components/Converter/ServiceInfo.py +++ b/lib/python/Components/Converter/ServiceInfo.py @@ -1,5 +1,6 @@ from Components.Converter.Converter import Converter from enigma import iServiceInformation, iPlayableService +from Components.Element import cached class ServiceInfo(Converter, object): HAS_TELETEXT = 0 @@ -8,8 +9,8 @@ class ServiceInfo(Converter, object): IS_WIDESCREEN = 3 SUBSERVICES_AVAILABLE = 4 - def __init__(self, type, *args, **kwargs): - Converter.__init__(self) + def __init__(self, type): + Converter.__init__(self, type) self.type = { "HasTelext": self.HAS_TELETEXT, "IsMultichannel": self.IS_MULTICHANNEL, @@ -19,19 +20,21 @@ class ServiceInfo(Converter, object): }[type] self.interesting_events = { - self.HAS_TELETEXT: [iPlayableService.evEnd, iPlayableService.evUpdatedInfo], - self.IS_MULTICHANNEL: [iPlayableService.evUpdatedInfo, iPlayableService.evEnd], - self.IS_CRYPTED: [iPlayableService.evUpdatedInfo, iPlayableService.evEnd], - self.IS_WIDESCREEN: [iPlayableService.evUpdatedEventInfo, iPlayableService.evEnd], - self.SUBSERVICES_AVAILABLE: [iPlayableService.evUpdatedEventInfo, iPlayableService.evEnd] + self.HAS_TELETEXT: [iPlayableService.evUpdatedInfo], + self.IS_MULTICHANNEL: [iPlayableService.evUpdatedInfo], + self.IS_CRYPTED: [iPlayableService.evUpdatedInfo], + self.IS_WIDESCREEN: [iPlayableService.evVideoSizeChanged], + self.SUBSERVICES_AVAILABLE: [iPlayableService.evUpdatedEventInfo] }[self.type] + @cached def getServiceInfoValue(self, info, what): v = info.getInfo(what) if v != -2: return "N/A" return info.getInfoString(what) + @cached def getBoolean(self): service = self.source.service info = service and service.info() @@ -61,3 +64,7 @@ class ServiceInfo(Converter, object): return subservices and subservices.getNumberOfSubservices() > 0 boolean = property(getBoolean) + + def changed(self, what): + if what[0] != self.CHANGED_SPECIFIC or what[1] in self.interesting_events: + Converter.changed(self, what)