5de8910386beb960ab1395d43b8b65da40fa2cf7
[enigma2.git] / lib / python / Components / Converter / ServiceName.py
1 from Components.Converter.Converter import Converter
2 from enigma import iServiceInformation, iPlayableService
3 from Components.Element import cached
4
5 class ServiceName(Converter, object):
6         NAME = 0
7         PROVIDER = 1
8
9         def __init__(self, type):
10                 Converter.__init__(self, type)
11                 if type == "Provider":
12                         self.type = self.PROVIDER
13                 else:
14                         self.type = self.NAME
15
16         @cached
17         def getServiceInfoValue(self, info, what):
18                 v = info.getInfo(what)
19                 if v != -2:
20                         return "N/A"
21                 return info.getInfoString(what)
22
23         @cached
24         def getText(self):
25                 service = self.source.service
26                 info = service and service.info()
27                 if info is None:
28                         return ""
29                 
30                 if self.type == self.NAME:
31                         return info.getName()
32                 elif self.type == self.PROVIDER:
33                         return self.getServiceInfoValue(info, iServiceInformation.sProvider)
34
35         text = property(getText)
36
37         def changed(self, what):
38                 if what[0] != self.CHANGED_SPECIFIC or what[1] in [iPlayableService.evStart]:
39                         Converter.changed(self, what)