aboutsummaryrefslogtreecommitdiff
path: root/lib/python/Screens/SubserviceSelection.py
blob: 587105689ad8cc7f0cf183badf5948fcaa822873 (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
from Screen import Screen
from Components.ActionMap import ActionMap
from Components.MenuList import MenuList
from Components.Label import Label
from enigma import eServiceReferencePtr, eServiceReference, iSubserviceListPtr, eServiceEventPtrPtr

class SubserviceSelection(Screen):
	def KeyOk(self):
		selection = self["subservices"].getCurrent()
		self.close(selection[1])
	def Cancel(self):
		self.close(None)
	def __init__(self, session, subservices, parent=None):
		Screen.__init__(self, session)

		self["actions"] = ActionMap(["OkCancelActions"], 
			{
				"cancel": self.Cancel,
				"ok": self.KeyOk,
			})

		self.subservices = subservices

		print "subservices", subservices
		tlist = []
		if isinstance(subservices, iSubserviceListPtr):
			n = subservices.getNumberOfSubservices()
			for x in range(n):
				i = subservices.getSubservice(x)
				tlist.append((i.getName(), i))
		elif isinstance(subservices, eServiceEventPtrPtr):
			n = subservices.getNumOfLinkageServices()
			for x in range(n):
				i = subservices.getLinkageService(parent, x)
				tlist.append((i.getName(), i))
		else:
			print "unknown type of subservices"

		self["subservices"] = MenuList(tlist)