X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/70608ea260f899f0c072b294f7f231ae072f7d6c..c224c2a18e15eaa4e41377b0ed03c4807e25aa2d:/lib/python/Components/Converter/ServiceName.py?ds=inline diff --git a/lib/python/Components/Converter/ServiceName.py b/lib/python/Components/Converter/ServiceName.py index fcabe427..18b1f2a5 100644 --- a/lib/python/Components/Converter/ServiceName.py +++ b/lib/python/Components/Converter/ServiceName.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- from Components.Converter.Converter import Converter -from enigma import iServiceInformation, iPlayableService +from enigma import iServiceInformation, iPlayableService, iPlayableServicePtr from Components.Element import cached class ServiceName(Converter, object): @@ -17,26 +17,33 @@ class ServiceName(Converter, object): else: self.type = self.NAME - def getServiceInfoValue(self, info, what): - v = info.getInfo(what) - if v != -2: + def getServiceInfoValue(self, info, what, ref=None): + v = ref and info.getInfo(ref, what) or info.getInfo(what) + if v != iServiceInformation.resIsString: return "N/A" - return info.getInfoString(what) + return ref and info.getInfoString(ref, what) or info.getInfoString(what) @cached def getText(self): service = self.source.service - info = service and service.info() + if isinstance(service, iPlayableServicePtr): + info = service and service.info() + ref = None + else: # reference + info = service and self.source.info + ref = service if info is None: return "" - if self.type == self.NAME: - return info.getName().replace('\xc2\x86', '').replace('\xc2\x87', '') + name = ref and info.getName(ref) + if name is None: + name = info.getName() + return name.replace('\xc2\x86', '').replace('\xc2\x87', '') elif self.type == self.PROVIDER: - return self.getServiceInfoValue(info, iServiceInformation.sProvider) + return self.getServiceInfoValue(info, iServiceInformation.sProvider, ref) elif self.type == self.REFERENCE: - return self.getServiceInfoValue(info, iServiceInformation.sServiceref) - + return self.getServiceInfoValue(info, iServiceInformation.sServiceref, ref) + text = property(getText) def changed(self, what):