add configsatlist
[enigma2.git] / lib / python / Screens / Satconfig.py
1 from Screen import Screen
2 from Components.ActionMap import ActionMap
3 from Components.ConfigList import ConfigList
4 from Components.config import *
5 from Components.MenuList import MenuList
6 from Components.NimManager import nimmanager
7
8 class NimSetup(Screen):
9         def createSimpleSetup(self, nim, list, mode):
10                 print "request for diseqcmode:" + str(mode)
11                 
12                 b = config.Nims[nim.slotid].diseqcA
13                 item = b.controlType(b)
14                 if mode == 0:
15                         list.append( ("Satellite", item) )
16                 else:
17                         list.append( ("Port A", item) )
18                 
19                 if mode >= 1:
20                         b = config.Nims[nim.slotid].diseqcB
21                         item = b.controlType(b)
22                         list.append( ("Port B", item) )
23                         if mode >= 3:
24                                 b = config.Nims[nim.slotid].diseqcC
25                                 item = b.controlType(b)
26                                 list.append( ("Port C", item) )
27
28                                 b = config.Nims[nim.slotid].diseqcD
29                                 item = b.controlType(b)
30                                 list.append( ("Port D", item) )
31                                 
32         def createSetup(self):
33                 print "createSetup"
34                 self.list = [ ]
35                 
36                 b = config.Nims[self.nim.slotid].configMode
37                 item = b.controlType(b)
38                 self.list.append( ("Configmode", item) )
39                 
40                 if b.value == 0:                        #simple setup
41                         b = config.Nims[self.nim.slotid].diseqcMode
42                         item = b.controlType(b)
43                         self.list.append( ("Diseqcmode", item) )
44                 
45                         self.createSimpleSetup(self.nim, self.list, b.value)
46                 else:   
47                         print "FIXME: implement advanced mode"
48
49                 #???
50                 self["config"].list = self.list
51                 self["config"].l.setList(self.list)
52                 
53         def newConfig(self):    
54                 if self["config"].getCurrent()[0] == "Diseqcmode":
55                         self.createSetup()
56                 if self["config"].getCurrent()[0] == "Configmode":
57                         self.createSetup()
58                 
59         def keyLeft(self):
60                 self["config"].handleKey(config.key["prevElement"])
61                 self.newConfig()
62
63         def keyRight(self):
64                 self["config"].handleKey(config.key["nextElement"])
65                 self.newConfig()
66
67         def __init__(self, session, nim):
68                 Screen.__init__(self, session)
69                 self.nim = nim
70
71                 self["actions"] = ActionMap(["SetupActions"],
72                 {
73                         "ok": self.close,
74                         "cancel": self.close,
75                         "left": self.keyLeft,
76                         "right": self.keyRight
77                 }, -1)
78
79                 self.list = [ ]
80                 self["config"] = ConfigList(self.list)
81                 
82                 self.createSetup()
83
84 class NimSelection(Screen):
85         def __init__(self, session):
86                 Screen.__init__(self, session)
87
88                 self["nimlist"] = MenuList(nimmanager.nimList())
89
90                 self["actions"] = ActionMap(["OkCancelActions"],
91                 {
92                         "ok": self.okbuttonClick ,
93                         "cancel": self.close
94                 }, -1)
95
96         def okbuttonClick(self):
97                 selection = self["nimlist"].getCurrent()
98                 self.session.open(NimSetup, selection[1])
99                 pass