aboutsummaryrefslogtreecommitdiff
path: root/lib/python/Components/Converter/ServiceInfo.py
diff options
context:
space:
mode:
authorFelix Domke <tmbinc@elitedvb.net>2006-07-30 22:56:43 +0000
committerFelix Domke <tmbinc@elitedvb.net>2006-07-30 22:56:43 +0000
commit1557c715e461d5a7deb04bb008c6497441351bbe (patch)
tree8a378b20ca3bebab0b2eca1742c10dfd746cb2a1 /lib/python/Components/Converter/ServiceInfo.py
parentb8783e5b26a7dd0601bece623c4cbfe19f57977b (diff)
downloadenigma2-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.py22
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)