add additional argument to the configElement constructor to make configElements,...
[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 from Components.config import getConfigListEntry
8
9 class NimSetup(Screen):
10         def createSimpleSetup(self, nim, list, mode):
11
12                 if mode == 0:                   #single Sat
13                         list.append(getConfigListEntry("Satellite", config.Nims[nim.slotid].diseqcA))
14                 else:                                                   # > 1 Sats
15                         list.append(getConfigListEntry("Port A", config.Nims[nim.slotid].diseqcA))
16                 
17                 if mode >= 1:                   # > 1 Sats
18                         list.append(getConfigListEntry("Port B", config.Nims[nim.slotid].diseqcB))
19                         if mode >= 3:           # > 2 Sats
20                                 list.append(getConfigListEntry("Port C", config.Nims[nim.slotid].diseqcC))
21                                 list.append(getConfigListEntry("Port D", config.Nims[nim.slotid].diseqcD))
22                                 
23         def createSetup(self):
24                 self.list = [ ]
25                 
26                 self.list.append(getConfigListEntry("Configmode", config.Nims[self.nim.slotid].configMode))
27                 
28                 if config.Nims[self.nim.slotid].configMode.value == 0:                  #simple setup
29                         self.list.append(getConfigListEntry("Diseqcmode", config.Nims[self.nim.slotid].diseqcMode))
30                 
31                         self.createSimpleSetup(self.nim, self.list, config.Nims[self.nim.slotid].diseqcMode.value)
32                 else:   
33                         print "FIXME: implement advanced mode"
34
35                 self["config"].list = self.list
36                 self["config"].l.setList(self.list)
37                 
38         def newConfig(self):    
39                 if self["config"].getCurrent()[0] == "Diseqcmode":
40                         self.createSetup()
41                 if self["config"].getCurrent()[0] == "Configmode":
42                         self.createSetup()
43                 
44         def keyLeft(self):
45                 self["config"].handleKey(config.key["prevElement"])
46                 self.newConfig()
47
48         def keyRight(self):
49                 self["config"].handleKey(config.key["nextElement"])
50                 self.newConfig()
51
52         def keySave(self):
53                 for x in self["config"].list:
54                         x[1].save()
55                 self.close()
56
57         def keyCancel(self):
58                 for x in self["config"].list:
59                         x[1].cancel()
60                 self.close()
61
62         def __init__(self, session, nim):
63                 Screen.__init__(self, session)
64                 self.nim = nim
65
66                 self["actions"] = ActionMap(["SetupActions"],
67                 {
68                         "ok": self.keySave,
69                         "cancel": self.keyCancel,
70                         "left": self.keyLeft,
71                         "right": self.keyRight
72                 }, -1)
73
74                 self.list = [ ]
75                 self["config"] = ConfigList(self.list)
76                 
77                 self.createSetup()
78
79 class NimSelection(Screen):
80         def __init__(self, session):
81                 Screen.__init__(self, session)
82
83                 self["nimlist"] = MenuList(nimmanager.nimList())
84
85                 self["actions"] = ActionMap(["OkCancelActions"],
86                 {
87                         "ok": self.okbuttonClick ,
88                         "cancel": self.close
89                 }, -1)
90
91         def okbuttonClick(self):
92                 selection = self["nimlist"].getCurrent()
93                 if selection[1].nimType != -1:  #unknown/empty
94                         self.session.open(NimSetup, selection[1])
95