diff options
| author | Felix Domke <tmbinc@elitedvb.net> | 2006-08-09 00:26:15 +0000 |
|---|---|---|
| committer | Felix Domke <tmbinc@elitedvb.net> | 2006-08-09 00:26:15 +0000 |
| commit | 9d3112aad388b4369a339b851aa2507a02bb2d4f (patch) | |
| tree | 744d27b53a25921978f8df8b1b1c2c836caa442c /lib/python/Components/Converter | |
| parent | ab2ae6bd08a0ef13fc7462d51fc3a9ab15509b17 (diff) | |
| download | enigma2-9d3112aad388b4369a339b851aa2507a02bb2d4f.tar.gz enigma2-9d3112aad388b4369a339b851aa2507a02bb2d4f.zip | |
fix caching
Diffstat (limited to 'lib/python/Components/Converter')
| -rw-r--r-- | lib/python/Components/Converter/ClockToText.py | 2 | ||||
| -rw-r--r-- | lib/python/Components/Converter/ConditionalShowHide.py | 1 | ||||
| -rw-r--r-- | lib/python/Components/Converter/EventName.py | 7 | ||||
| -rw-r--r-- | lib/python/Components/Converter/EventTime.py | 13 | ||||
| -rw-r--r-- | lib/python/Components/Converter/FrontendInfo.py | 4 | ||||
| -rw-r--r-- | lib/python/Components/Converter/RemainingToText.py | 3 | ||||
| -rw-r--r-- | lib/python/Components/Converter/ServiceInfo.py | 8 | ||||
| -rw-r--r-- | lib/python/Components/Converter/ServiceName.py | 3 | ||||
| -rw-r--r-- | lib/python/Components/Converter/ServicePosition.py | 5 | ||||
| -rw-r--r-- | lib/python/Components/Converter/StringList.py | 4 | ||||
| -rw-r--r-- | lib/python/Components/Converter/ValueRange.py | 2 |
11 files changed, 29 insertions, 23 deletions
diff --git a/lib/python/Components/Converter/ClockToText.py b/lib/python/Components/Converter/ClockToText.py index 5d5df651..5cc709f2 100644 --- a/lib/python/Components/Converter/ClockToText.py +++ b/lib/python/Components/Converter/ClockToText.py @@ -1,5 +1,6 @@ from Converter import Converter from time import localtime, strftime +from Components.Element import cached class ClockToText(Converter, object): DEFAULT = 0 @@ -21,6 +22,7 @@ class ClockToText(Converter, object): else: self.type = self.DEFAULT + @cached def getText(self): time = self.source.time if time is None: diff --git a/lib/python/Components/Converter/ConditionalShowHide.py b/lib/python/Components/Converter/ConditionalShowHide.py index cc98288f..d72447d9 100644 --- a/lib/python/Components/Converter/ConditionalShowHide.py +++ b/lib/python/Components/Converter/ConditionalShowHide.py @@ -1,7 +1,6 @@ from Converter import Converter class ConditionalShowHide(Converter, object): - def __init__(self, type): Converter.__init__(self, type) self.invert = type == "Invert" diff --git a/lib/python/Components/Converter/EventName.py b/lib/python/Components/Converter/EventName.py index f128133a..919dd3b0 100644 --- a/lib/python/Components/Converter/EventName.py +++ b/lib/python/Components/Converter/EventName.py @@ -1,4 +1,5 @@ from Components.Converter.Converter import Converter +from Components.Element import cached class EventName(Converter, object): NAME = 0 @@ -14,12 +15,8 @@ class EventName(Converter, object): else: self.type = self.NAME + @cached def getText(self): - if self.cache is None: - self.cache = self.__getText() - return self.cache - - def __getText(self): event = self.source.event if event is None: return "N/A" diff --git a/lib/python/Components/Converter/EventTime.py b/lib/python/Components/Converter/EventTime.py index 4a73e0ac..955fdbcf 100644 --- a/lib/python/Components/Converter/EventTime.py +++ b/lib/python/Components/Converter/EventTime.py @@ -1,6 +1,7 @@ from Converter import Converter from Poll import Poll from time import time +from Components.Element import cached class EventTime(Poll, Converter, object): STARTTIME = 0 @@ -29,12 +30,8 @@ class EventTime(Poll, Converter, object): else: raise str("'%s' is not <StartTime|EndTime|Remaining|Duration> for EventTime converter" % type) + @cached def getTime(self): - if self.cache is None or self.cache[0] is None: - self.cache = (self.__getTime(), self.cache and self.cache[1]) - return self.cache[0] - - def __getTime(self): assert self.type != self.PROGRESS event = self.source.event @@ -57,12 +54,8 @@ class EventTime(Poll, Converter, object): else: return (duration, None) + @cached def getValue(self): - if self.cache is None or self.cache[1] is None: - self.cache = (self.cache and self.cache[0], self.__getValue()) - return self.cache[1] - - def __getValue(self): assert self.type == self.PROGRESS event = self.source.event diff --git a/lib/python/Components/Converter/FrontendInfo.py b/lib/python/Components/Converter/FrontendInfo.py index 347f7a13..e2923a95 100644 --- a/lib/python/Components/Converter/FrontendInfo.py +++ b/lib/python/Components/Converter/FrontendInfo.py @@ -1,4 +1,5 @@ from Components.Converter.Converter import Converter +from Components.Element import cached class FrontendInfo(Converter, object): BER = 0 @@ -17,6 +18,7 @@ class FrontendInfo(Converter, object): else: self.type = self.LOCK + @cached def getText(self): assert self.type != self.LOCK, "the text output of FrontendInfo cannot be used for lock info" if self.type == self.BER: # as count @@ -35,6 +37,7 @@ class FrontendInfo(Converter, object): return "%d %%" % (percent * 100 / 65536) + @cached def getBool(self): assert self.type in [self.LOCK, self.BER], "the boolean output of FrontendInfo can only be used for lock or BER info" if self.type == self.LOCK: @@ -46,6 +49,7 @@ class FrontendInfo(Converter, object): boolean = property(getBool) + @cached def getValue(self): assert self.type != self.LOCK, "the value/range output of FrontendInfo can not be used for lock info" if self.type == self.AGC: diff --git a/lib/python/Components/Converter/RemainingToText.py b/lib/python/Components/Converter/RemainingToText.py index 007095e0..adefe9cf 100644 --- a/lib/python/Components/Converter/RemainingToText.py +++ b/lib/python/Components/Converter/RemainingToText.py @@ -1,11 +1,12 @@ from Components.Converter.Converter import Converter +from Components.Element import cached class RemainingToText(Converter, object): def __init__(self, type): Converter.__init__(self, type) + @cached def getText(self): - r = self.source.time if r is None: return "" diff --git a/lib/python/Components/Converter/ServiceInfo.py b/lib/python/Components/Converter/ServiceInfo.py index e1351c56..c581ed73 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 @@ -26,18 +27,15 @@ class ServiceInfo(Converter, object): 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): - 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: diff --git a/lib/python/Components/Converter/ServiceName.py b/lib/python/Components/Converter/ServiceName.py index cffe494d..5de89103 100644 --- a/lib/python/Components/Converter/ServiceName.py +++ b/lib/python/Components/Converter/ServiceName.py @@ -1,5 +1,6 @@ from Components.Converter.Converter import Converter from enigma import iServiceInformation, iPlayableService +from Components.Element import cached class ServiceName(Converter, object): NAME = 0 @@ -12,12 +13,14 @@ class ServiceName(Converter, object): else: self.type = self.NAME + @cached def getServiceInfoValue(self, info, what): v = info.getInfo(what) if v != -2: return "N/A" return info.getInfoString(what) + @cached def getText(self): service = self.source.service info = service and service.info() diff --git a/lib/python/Components/Converter/ServicePosition.py b/lib/python/Components/Converter/ServicePosition.py index dfb792ad..c285385a 100644 --- a/lib/python/Components/Converter/ServicePosition.py +++ b/lib/python/Components/Converter/ServicePosition.py @@ -1,6 +1,7 @@ from Converter import Converter from Poll import Poll from enigma import iPlayableService +from Components.Element import cached class ServicePosition(Converter, Poll, object): TYPE_LENGTH = 0, @@ -27,6 +28,7 @@ class ServicePosition(Converter, Poll, object): s = self.source.service return s and s.seek() + @cached def getPosition(self): seek = self.getSeek() if seek is None: @@ -36,6 +38,7 @@ class ServicePosition(Converter, Poll, object): return 0 return pos[1] + @cached def getLength(self): seek = self.getSeek() if seek is None: @@ -45,11 +48,13 @@ class ServicePosition(Converter, Poll, object): return 0 return length[1] + @cached def getCutlist(self): service = self.source.service cue = service and service.cueSheet() return cue and cue.getCutList() + @cached def getText(self): seek = self.getSeek() if seek is None: diff --git a/lib/python/Components/Converter/StringList.py b/lib/python/Components/Converter/StringList.py index ed264651..1304c643 100644 --- a/lib/python/Components/Converter/StringList.py +++ b/lib/python/Components/Converter/StringList.py @@ -1,6 +1,6 @@ from Converter import Converter from enigma import eListboxPythonStringContent - +from Components.Element import cached class StringList(Converter): """Turns a simple python list into a list which can be used in a listbox.""" @@ -20,6 +20,7 @@ class StringList(Converter): if x is not self.master: x.index = index + @cached def getCurrent(self): if self.source is None: return None @@ -28,6 +29,7 @@ class StringList(Converter): current = property(getCurrent) # pass through: getIndex / setIndex to master + @cached def getIndex(self): if self.master is None: return None diff --git a/lib/python/Components/Converter/ValueRange.py b/lib/python/Components/Converter/ValueRange.py index 443e7a33..774d021c 100644 --- a/lib/python/Components/Converter/ValueRange.py +++ b/lib/python/Components/Converter/ValueRange.py @@ -1,10 +1,12 @@ from Converter import Converter +from Components.Element import cached class ValueRange(Converter, object): def __init__(self, arg): Converter.__init__(self, arg) (self.lower, self.upper) = [int(x) for x in arg.split(',')] + @cached def getBoolean(self): if self.lower < self.upper: return self.lower < self.source.value < self.upper |
