fix caching
[enigma2.git] / lib / python / Components / Converter / ServiceName.py
index 78a3dca2542cf9621887817cadb9e8b17185033c..5de8910386beb960ab1395d43b8b65da40fa2cf7 100644 (file)
@@ -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()
@@ -31,6 +34,6 @@ class ServiceName(Converter, object):
 
        text = property(getText)
 
-       def changed(self, *args):
-               if not len(args) or args[0] in [iPlayableService.evStart, iPlayableService.evEnd]:
-                       Converter.changed(self)
+       def changed(self, what):
+               if what[0] != self.CHANGED_SPECIFIC or what[1] in [iPlayableService.evStart]:
+                       Converter.changed(self, what)