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/Sources | |
| parent | ab2ae6bd08a0ef13fc7462d51fc3a9ab15509b17 (diff) | |
| download | enigma2-9d3112aad388b4369a339b851aa2507a02bb2d4f.tar.gz enigma2-9d3112aad388b4369a339b851aa2507a02bb2d4f.zip | |
fix caching
Diffstat (limited to 'lib/python/Components/Sources')
| -rw-r--r-- | lib/python/Components/Sources/Boolean.py | 2 | ||||
| -rw-r--r-- | lib/python/Components/Sources/Clock.py | 3 | ||||
| -rw-r--r-- | lib/python/Components/Sources/CurrentService.py | 6 | ||||
| -rw-r--r-- | lib/python/Components/Sources/EventInfo.py | 13 | ||||
| -rw-r--r-- | lib/python/Components/Sources/MenuList.py | 40 |
5 files changed, 13 insertions, 51 deletions
diff --git a/lib/python/Components/Sources/Boolean.py b/lib/python/Components/Sources/Boolean.py index bd5222af..9ca5613d 100644 --- a/lib/python/Components/Sources/Boolean.py +++ b/lib/python/Components/Sources/Boolean.py @@ -1,4 +1,5 @@ from Source import Source +from Components.Element import cached from enigma import eTimer # a small warning: @@ -16,6 +17,7 @@ class Boolean(Source, object): self.poll_timer.timeout.get().append(self.poll) self.poll_timer.start(poll) + @cached def getBoolean(self): if self.function is not None: return self.function() diff --git a/lib/python/Components/Sources/Clock.py b/lib/python/Components/Sources/Clock.py index 7f1a8d7f..4833ddde 100644 --- a/lib/python/Components/Sources/Clock.py +++ b/lib/python/Components/Sources/Clock.py @@ -1,4 +1,5 @@ from Tools.Event import Event +from Components.Element import cached from enigma import eTimer import time @@ -11,6 +12,7 @@ class Clock(Source): self.clock_timer.timeout.get().append(self.poll) self.clock_timer.start(1000) + @cached def getClock(self): return time.time() @@ -25,4 +27,3 @@ class Clock(Source): else: self.clock_timer.start(1000) self.poll() - diff --git a/lib/python/Components/Sources/CurrentService.py b/lib/python/Components/Sources/CurrentService.py index 08d67eee..f49f0323 100644 --- a/lib/python/Components/Sources/CurrentService.py +++ b/lib/python/Components/Sources/CurrentService.py @@ -1,6 +1,7 @@ from Components.PerServiceDisplay import PerServiceBase from enigma import iPlayableService from Source import Source +from Components.Element import cached from time import time @@ -22,9 +23,8 @@ class CurrentService(PerServiceBase, Source): def serviceEvent(self, event): self.changed((self.CHANGED_SPECIFIC, event)) + @cached def getCurrentService(self): - if self.cache is None: - self.cache = self.navcore.getCurrentService() - return self.cache + return self.navcore.getCurrentService() service = property(getCurrentService) diff --git a/lib/python/Components/Sources/EventInfo.py b/lib/python/Components/Sources/EventInfo.py index 20e5f104..72d5f18d 100644 --- a/lib/python/Components/Sources/EventInfo.py +++ b/lib/python/Components/Sources/EventInfo.py @@ -1,4 +1,5 @@ from Components.PerServiceDisplay import PerServiceBase +from Components.Element import cached from Tools.Event import Event from enigma import iPlayableService from Source import Source @@ -19,14 +20,12 @@ class EventInfo(PerServiceBase, Source, object): }, with_event=True) self.now_or_next = now_or_next - + + @cached def getEvent(self): - if self.cache is None: - service = self.navcore.getCurrentService() - info = service and service.info() - self.cache = (True, info and info.getEvent(self.now_or_next)) # we always store a tuple for negative caching - - return self.cache[1] + service = self.navcore.getCurrentService() + info = service and service.info() + return info and info.getEvent(self.now_or_next) event = property(getEvent) diff --git a/lib/python/Components/Sources/MenuList.py b/lib/python/Components/Sources/MenuList.py index dd5e18f7..e69de29b 100644 --- a/lib/python/Components/Sources/MenuList.py +++ b/lib/python/Components/Sources/MenuList.py @@ -1,40 +0,0 @@ -from Source import Source -from Tools.Event import Event - -class MenuList(Source, object): - def __init__(self, list = [ ], enableWrapAround = False): - Source.__init__(self) - self.__list = list - self.onSelectionChanged = [ ] - - def setList(self, list): - self.__list = list - self.changed((self.CHANGED_ALL,)) - - list = property(lambda self: self.__list, setList) - - def entry_changed(self, index): - self.downstream_elements.entry_changed(self, index) - - def selectionChanged(self, index): - for x in self.onSelectionChanged: - x() - - def getCurrent(self): - return self.master and self.master.current - - current = property(getCurrent) - - def setIndex(self, index): - if self.master is not None: - self.master = index - - def getIndex(self, index): - if self.master is not None: - return self.master.index - else: - return -1 - - setCurrentIndex = setIndex - - index = property(getIndex, setIndex) |
