fix linked tuners option in tuner config,
[enigma2.git] / lib / python / Components / Converter / ServiceName.py
index 79e0c9971afadedaf7121ee983aa40ea8ec7a5b9..7c463a62162fd87cc3120a41fe360a0b2175d6d4 100644 (file)
@@ -1,12 +1,13 @@
 from Components.Converter.Converter import Converter
-from enigma import iServiceInformation
+from enigma import iServiceInformation, iPlayableService
+from Components.Element import cached
 
 class ServiceName(Converter, object):
        NAME = 0
        PROVIDER = 1
 
-       def __init__(self, type, *args, **kwargs):
-               Converter.__init__(self)
+       def __init__(self, type):
+               Converter.__init__(self, type)
                if type == "Provider":
                        self.type = self.PROVIDER
                else:
@@ -18,6 +19,7 @@ class ServiceName(Converter, object):
                        return "N/A"
                return info.getInfoString(what)
 
+       @cached
        def getText(self):
                service = self.source.service
                info = service and service.info()
@@ -25,8 +27,12 @@ class ServiceName(Converter, object):
                        return ""
                
                if self.type == self.NAME:
-                       return service.getName()
+                       return info.getName()
                elif self.type == self.PROVIDER:
                        return self.getServiceInfoValue(info, iServiceInformation.sProvider)
 
        text = property(getText)
+
+       def changed(self, what):
+               if what[0] != self.CHANGED_SPECIFIC or what[1] in [iPlayableService.evStart]:
+                       Converter.changed(self, what)