from Components.Converter.Converter import Converter
from enigma import iServiceInformation, iPlayableService
+from Components.Element import cached
class ServiceInfo(Converter, object):
HAS_TELETEXT = 0
}[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.evUpdatedEventInfo],
+ 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()
boolean = property(getBoolean)
- def changed(self, *args):
- if not len(args) or args[0] in [iPlayableService.evStart, iPlayableService.evEnd,
- iPlayableService.evUpdatedInfo, iPlayableService.evUpdatedEventInfo]:
- Converter.changed(self)
+ def changed(self, what):
+ if what[0] != self.CHANGED_SPECIFIC or what[1] in self.interesting_events:
+ Converter.changed(self, what)