diff options
| author | Felix Domke <tmbinc@elitedvb.net> | 2006-07-30 22:56:43 +0000 |
|---|---|---|
| committer | Felix Domke <tmbinc@elitedvb.net> | 2006-07-30 22:56:43 +0000 |
| commit | 1557c715e461d5a7deb04bb008c6497441351bbe (patch) | |
| tree | 8a378b20ca3bebab0b2eca1742c10dfd746cb2a1 /lib/python/Components/Converter/ServiceInfo.py | |
| parent | b8783e5b26a7dd0601bece623c4cbfe19f57977b (diff) | |
| download | enigma2-1557c715e461d5a7deb04bb008c6497441351bbe.tar.gz enigma2-1557c715e461d5a7deb04bb008c6497441351bbe.zip | |
some minor speedups using caches and more selective updating
Diffstat (limited to 'lib/python/Components/Converter/ServiceInfo.py')
| -rw-r--r-- | lib/python/Components/Converter/ServiceInfo.py | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/lib/python/Components/Converter/ServiceInfo.py b/lib/python/Components/Converter/ServiceInfo.py index f9b65c19..e1351c56 100644 --- a/lib/python/Components/Converter/ServiceInfo.py +++ b/lib/python/Components/Converter/ServiceInfo.py @@ -19,11 +19,11 @@ 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.evUpdatedEventInfo], + self.SUBSERVICES_AVAILABLE: [iPlayableService.evUpdatedEventInfo] }[self.type] def getServiceInfoValue(self, info, what): @@ -33,6 +33,11 @@ class ServiceInfo(Converter, object): return info.getInfoString(what) def getBoolean(self): + if self.cache is None: + self.cache = self.__getBoolean() + return self.cache + + def __getBoolean(self): service = self.source.service info = service and service.info() if not info: @@ -62,7 +67,6 @@ class ServiceInfo(Converter, object): 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) |
