add NumberActionMap to satconfig and scansetup
[enigma2.git] / lib / python / Screens / ScanSetup.py
index 660440bc8d43cfa3bee02849769e026711ead5a7..ad45316b90ad9266a93233d880e91b16f67793d3 100644 (file)
@@ -1,26 +1,49 @@
 from Screen import Screen
 from Screen import Screen
-from Components.ActionMap import ActionMap
+from Components.config import *
+from Components.ActionMap import NumberActionMap
 from Components.ConfigList import ConfigList
 from Components.config import config
 from Components.config import getConfigListEntry
 from Components.NimManager import nimmanager
 from Components.ConfigList import ConfigList
 from Components.config import config
 from Components.config import getConfigListEntry
 from Components.NimManager import nimmanager
+from Components.Label import Label
 
 class ScanSetup(Screen):
     def __init__(self, session):
         Screen.__init__(self, session)
         
 
 class ScanSetup(Screen):
     def __init__(self, session):
         Screen.__init__(self, session)
         
-        self["actions"] = ActionMap(["SetupActions"],
+        self.updateSatList()
+        self.createConfig()
+
+        
+        self["actions"] = NumberActionMap(["SetupActions"],
         {
             "ok": self.keySave,
             "cancel": self.keyCancel,
             "left": self.keyLeft,
         {
             "ok": self.keySave,
             "cancel": self.keyCancel,
             "left": self.keyLeft,
-            "right": self.keyRight
+            "right": self.keyRight,
+            "1": self.keyNumberGlobal,
+            "2": self.keyNumberGlobal,
+            "3": self.keyNumberGlobal,
+            "4": self.keyNumberGlobal,
+            "5": self.keyNumberGlobal,
+            "6": self.keyNumberGlobal,
+            "7": self.keyNumberGlobal,
+            "8": self.keyNumberGlobal,
+            "9": self.keyNumberGlobal,
+            "0": self.keyNumberGlobal
         }, -1)
         }, -1)
-
+                
         self.list = []
         self["config"] = ConfigList(self.list)
         self.createSetup()
         self.list = []
         self["config"] = ConfigList(self.list)
         self.createSetup()
-        
+
+        self["introduction"] = Label("Press OK to start the scan")
+
+    def updateSatList(self):
+        self.satList = []
+        for slot in nimmanager.nimslots:
+            self.satList.append(nimmanager.getSatListForNim(slot.slotid))
+            
     def createSetup(self):
         self.list = []
         
     def createSetup(self):
         self.list = []
         
@@ -53,12 +76,17 @@ class ScanSetup(Screen):
                 self.list.append(getConfigListEntry("Hierarchy mode", config.scan.ter.hierarchy))
 
         # single satellite scan
                 self.list.append(getConfigListEntry("Hierarchy mode", config.scan.ter.hierarchy))
 
         # single satellite scan
+        print config.scan.satselection
         if (config.scan.type.value == 1):
         if (config.scan.type.value == 1):
-            pass
+            self.updateSatList()
+            print config.scan.satselection[config.scan.nims.value]
+            self.list.append(getConfigListEntry("Satellite", config.scan.satselection[config.scan.nims.value]))
+            
         
         # multi sat scan
         if (config.scan.type.value == 2):
         
         # multi sat scan
         if (config.scan.type.value == 2):
-            pass
+            for sat in nimmanager.satList:
+                self.list.append(getConfigListEntry(sat[0], config.scan.scansat[sat[1]]))                
                 
         self["config"].list = self.list
         self["config"].l.setList(self.list)
                 
         self["config"].list = self.list
         self["config"].l.setList(self.list)
@@ -69,6 +97,54 @@ class ScanSetup(Screen):
             self.createSetup()
         if self["config"].getCurrent()[0] == "Tuner":
             self.createSetup()
             self.createSetup()
         if self["config"].getCurrent()[0] == "Tuner":
             self.createSetup()
+            
+    def createConfig(self):
+            config.scan = ConfigSubsection()
+            config.scan.sat = ConfigSubsection()
+            config.scan.cab = ConfigSubsection()
+            config.scan.ter = ConfigSubsection()        
+        
+            config.scan.type = configElement_nonSave("config.scan.type", configSelection, 0, ("Single transponder", "Single satellite", "Multisat"))
+            nimList = [ ]
+            for nim in nimmanager.nimList():
+                nimList.append(nim[0])
+            nimList.append("all")
+            config.scan.nims = configElement_nonSave("config.scan.nims", configSelection, 0, nimList)
+            
+            # sat
+            config.scan.sat.frequency = configElement_nonSave("config.scan.sat.frequency", configSequence, [12187], configsequencearg.get("INTEGER", (10000, 14000)))
+            config.scan.sat.inversion = configElement_nonSave("config.scan.sat.inversion", configSelection, 0, ("off", "on"))
+            config.scan.sat.symbolrate = configElement_nonSave("config.scan.sat.symbolrate", configSequence, [27500], configsequencearg.get("INTEGER", (1, 30000)))
+            config.scan.sat.polarzation = configElement_nonSave("config.scan.sat.polarzation", configSelection, 0, ("horizontal", "vertical"))
+            config.scan.sat.fec = configElement_nonSave("config.scan.sat.fec", configSelection, 0, ("Auto", "1/2", "2/3", "3/4", "4/5", "5/6", "7/8", "8/9"))
+        
+            # cable
+            config.scan.cab.frequency = configElement_nonSave("config.scan.cab.frequency", configSequence, [466], configsequencearg.get("INTEGER", (10000, 14000)))
+            config.scan.cab.inversion = configElement_nonSave("config.scan.cab.inversion", configSelection, 0, ("off", "on"))
+            config.scan.cab.modulation = configElement_nonSave("config.scan.cab.modulation", configSelection, 0, ("Auto", "16-QAM", "32-QAM", "64-QAM", "128-QAM", "256-QAM"))
+            config.scan.cab.fec = configElement_nonSave("config.scan.cab.fec", configSelection, 0, ("Auto", "1/2", "2/3", "3/4", "4/5", "5/6", "7/8", "8/9"))
+            config.scan.cab.symbolrate = configElement_nonSave("config.scan.cab.symbolrate", configSequence, [6900], configsequencearg.get("INTEGER", (1, 30000)))
+            
+            # terrestial
+            config.scan.ter.frequency = configElement_nonSave("config.scan.ter.frequency", configSequence, [466], configsequencearg.get("INTEGER", (10000, 14000)))
+            config.scan.ter.inversion = configElement_nonSave("config.scan.ter.inversion", configSelection, 0, ("off", "on"))
+            config.scan.ter.bandwidth = configElement_nonSave("config.scan.ter.bandwidth", configSelection, 0, ("Auto", "6 MHz", "7MHz", "8MHz"))
+            config.scan.ter.fechigh = configElement_nonSave("config.scan.ter.fechigh", configSelection, 0, ("Auto", "1/2", "2/3", "3/4", "4/5", "5/6", "7/8", "8/9"))
+            config.scan.ter.feclow = configElement_nonSave("config.scan.ter.feclow", configSelection, 0, ("Auto", "1/2", "2/3", "3/4", "4/5", "5/6", "7/8", "8/9"))
+            config.scan.ter.modulation = configElement_nonSave("config.scan.ter.modulation", configSelection, 0, ("Auto", "16-QAM", "32-QAM", "64-QAM", "128-QAM", "256-QAM"))
+            config.scan.ter.transmission = configElement_nonSave("config.scan.ter.transmission", configSelection, 0, ("Auto", "2K", "8K"))
+            config.scan.ter.guard = configElement_nonSave("config.scan.ter.guard", configSelection, 0, ("Auto", "1/4", "1/8", "1/16", "1/32"))
+            config.scan.ter.hierarchy = configElement_nonSave("config.scan.ter.hierarchy", configSelection, 0, ("Auto", "1", "2", "4"))
+            
+            config.scan.scansat = {}
+            for sat in nimmanager.satList:
+                #print sat[1]
+                config.scan.scansat[sat[1]] = configElement_nonSave("config.scan.scansat[" + str(sat[1]) + "]", configSelection, 0, ("yes", "no"))
+                
+            config.scan.satselection = []
+            slotid = 0
+            for slot in nimmanager.nimslots:
+                config.scan.satselection.append(configElement_nonSave("config.scan.satselection[" + str(slot.slotid) + "]", configSatlist, 0, self.satList[slot.slotid]))
         
     def keyLeft(self):
         self["config"].handleKey(config.key["prevElement"])
         
     def keyLeft(self):
         self["config"].handleKey(config.key["prevElement"])
@@ -78,6 +154,11 @@ class ScanSetup(Screen):
         self["config"].handleKey(config.key["nextElement"])
         self.newConfig()
 
         self["config"].handleKey(config.key["nextElement"])
         self.newConfig()
 
+    def keyNumberGlobal(self, number):
+        print "You pressed number " + str(number)
+        if (self["config"].getCurrent()[1].parent.enabled == True):
+            self["config"].handleKey(config.key[str(number)])
+
     def keySave(self):
         for x in self["config"].list:
             x[1].save()
     def keySave(self):
         for x in self["config"].list:
             x[1].save()