aboutsummaryrefslogtreecommitdiff
path: root/lib/python
diff options
context:
space:
mode:
Diffstat (limited to 'lib/python')
-rw-r--r--lib/python/Components/Converter/ServiceName.py27
1 files 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):