blob: 4d184152d36d33b383f17cc39bcfa9f1cdbab02c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
from Source import Source
from enigma import eServiceCenter, eServiceReference
class ServiceList(Source):
def __init__(self, root, command_func = None):
Source.__init__(self)
self.root = root
self.command_func = command_func
def getServicesAsList(self, format = "SN"):
services = self.getServiceList()
return services and services.getContent(format, True)
def getServiceList(self):
serviceHandler = eServiceCenter.getInstance()
return serviceHandler.list(self.root)
def validateReference(self, ref):
return ref in self.getServicesAsList("S")
list = property(getServicesAsList)
lut = {"Reference": 0, "Name": 1}
def getRoot(self):
return self.__root
def setRoot(self, root):
assert isinstance(root, eServiceReference)
self.__root = root
self.changed()
root = property(getRoot, setRoot)
def handleCommand(self, cmd):
print "ServiceList handle command"
if not self.validateReference(cmd):
print "Service reference did not validate!"
return
ref = eServiceReference(cmd)
if self.command_func:
self.command_func(ref)
|