some minor speedups using caches and more selective updating
[enigma2.git] / lib / python / Components / Sources / CurrentService.py
index 100822bc0cde8255bb88515571d5cb6656d4d699..08d67eeea4acbe11d802e0db34c911226796c2e6 100644 (file)
@@ -2,6 +2,8 @@ from Components.PerServiceDisplay import PerServiceBase
 from enigma import iPlayableService
 from Source import Source
 
+from time import time
+
 class CurrentService(PerServiceBase, Source):
        def __init__(self, navcore):
                Source.__init__(self)
@@ -18,9 +20,11 @@ class CurrentService(PerServiceBase, Source):
                self.navcore = navcore
 
        def serviceEvent(self, event):
-               self.changed(event)
+               self.changed((self.CHANGED_SPECIFIC, event))
 
        def getCurrentService(self):
-               return self.navcore.getCurrentService()
+               if self.cache is None:
+                       self.cache = self.navcore.getCurrentService()
+               return self.cache
 
        service = property(getCurrentService)