aboutsummaryrefslogtreecommitdiff
path: root/lib/python/Components/Sources
diff options
context:
space:
mode:
authorFelix Domke <tmbinc@elitedvb.net>2006-08-09 00:26:15 +0000
committerFelix Domke <tmbinc@elitedvb.net>2006-08-09 00:26:15 +0000
commit9d3112aad388b4369a339b851aa2507a02bb2d4f (patch)
tree744d27b53a25921978f8df8b1b1c2c836caa442c /lib/python/Components/Sources
parentab2ae6bd08a0ef13fc7462d51fc3a9ab15509b17 (diff)
downloadenigma2-9d3112aad388b4369a339b851aa2507a02bb2d4f.tar.gz
enigma2-9d3112aad388b4369a339b851aa2507a02bb2d4f.zip
fix caching
Diffstat (limited to 'lib/python/Components/Sources')
-rw-r--r--lib/python/Components/Sources/Boolean.py2
-rw-r--r--lib/python/Components/Sources/Clock.py3
-rw-r--r--lib/python/Components/Sources/CurrentService.py6
-rw-r--r--lib/python/Components/Sources/EventInfo.py13
-rw-r--r--lib/python/Components/Sources/MenuList.py40
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)