From 8f957309b2bfb7df00c123f91ebb6d1d302848ba Mon Sep 17 00:00:00 2001 From: Andreas Monzner Date: Thu, 2 Aug 2007 14:12:41 +0000 Subject: [PATCH] ServiceName converter now can handle iPlayableService's and ServiceReference's --- .../Components/Converter/ServiceName.py | 27 +++++++++++-------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/lib/python/Components/Converter/ServiceName.py b/lib/python/Components/Converter/ServiceName.py index fcabe427..97b81f60 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,31 @@ 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) or 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): -- 2.30.2