remove unneeded check
[enigma2.git] / lib / python / Screens / Satconfig.py
index 7d44965824f6b6b9f59aaaa6f47e0366b5e075eb..6489f28fe2ba5125a0bbd522ee34d726e42fb001 100644 (file)
@@ -6,6 +6,7 @@ from Components.ConfigList import ConfigListScreen
 from Components.MenuList import MenuList
 from Components.NimManager import nimmanager
 from Components.config import getConfigListEntry, config, ConfigNothing, ConfigSelection, updateConfigElement
 from Components.MenuList import MenuList
 from Components.NimManager import nimmanager
 from Components.config import getConfigListEntry, config, ConfigNothing, ConfigSelection, updateConfigElement
+from Components.Sources.List import List
 from Screens.MessageBox import MessageBox
 
 from time import mktime, localtime
 from Screens.MessageBox import MessageBox
 
 from time import mktime, localtime
@@ -13,16 +14,21 @@ from datetime import datetime
 
 class NimSetup(Screen, ConfigListScreen):
        def createSimpleSetup(self, list, mode):
 
 class NimSetup(Screen, ConfigListScreen):
        def createSimpleSetup(self, list, mode):
+               nim = self.nimConfig
                if mode == "single":
                if mode == "single":
-                       list.append(getConfigListEntry(_("Satellite"), self.nimConfig.diseqcA))
+                       list.append(getConfigListEntry(_("Satellite"), nim.diseqcA))
+                       list.append(getConfigListEntry(_("Send DiSEqC"), nim.simpleSingleSendDiSEqC))
                else:
                else:
-                       list.append(getConfigListEntry(_("Port A"), self.nimConfig.diseqcA))
+                       list.append(getConfigListEntry(_("Port A"), nim.diseqcA))
 
                if mode in ["toneburst_a_b", "diseqc_a_b", "diseqc_a_b_c_d"]:
 
                if mode in ["toneburst_a_b", "diseqc_a_b", "diseqc_a_b_c_d"]:
-                       list.append(getConfigListEntry(_("Port B"), self.nimConfig.diseqcB))
+                       list.append(getConfigListEntry(_("Port B"), nim.diseqcB))
                        if mode == "diseqc_a_b_c_d":
                        if mode == "diseqc_a_b_c_d":
-                               list.append(getConfigListEntry(_("Port C"), self.nimConfig.diseqcC))
-                               list.append(getConfigListEntry(_("Port D"), self.nimConfig.diseqcD))
+                               list.append(getConfigListEntry(_("Port C"), nim.diseqcC))
+                               list.append(getConfigListEntry(_("Port D"), nim.diseqcD))
+                       if mode != "toneburst_a_b":
+                               list.append(getConfigListEntry(_("Set Voltage and 22KHz"), nim.simpleDiSEqCSetVoltageTone))
+                               list.append(getConfigListEntry(_("Send DiSEqC only on satellite change"), nim.simpleDiSEqCOnlyOnSatChange))
 
        def createPositionerSetup(self, list):
                nim = self.nimConfig
 
        def createPositionerSetup(self, list):
                nim = self.nimConfig
@@ -48,20 +54,21 @@ class NimSetup(Screen, ConfigListScreen):
                                nim.powerMeasurement.save()
                
        def createConfigMode(self):
                                nim.powerMeasurement.save()
                
        def createConfigMode(self):
-               choices = { "nothing": _("nothing connected"),
-                                       "simple": _("simple"),
-                                       "advanced": _("advanced")}
-               #if len(nimmanager.getNimListOfType(nimmanager.getNimType(self.slotid), exception = x)) > 0:
-               #       choices["equal"] = _("equal to")
-               #       choices["satposdepends"] = _("second cable of motorized LNB")
-               if len(nimmanager.canEqualTo(self.slotid)) > 0:
-                       choices["equal"] = _("equal to")
-               if len(nimmanager.canDependOn(self.slotid)) > 0:
-                       choices["satposdepends"] = _("second cable of motorized LNB")
-               if len(nimmanager.canConnectTo(self.slotid)) > 0:
-                       choices["loopthrough"] = _("loopthrough to")
-               self.nimConfig.configMode.setChoices(choices)
-                                                       
+               if self.nim.isCompatible("DVB-S"):
+                       choices = { "nothing": _("nothing connected"),
+                                               "simple": _("simple"),
+                                               "advanced": _("advanced")}
+                       #if len(nimmanager.getNimListOfType(nimmanager.getNimType(self.slotid), exception = x)) > 0:
+                       #       choices["equal"] = _("equal to")
+                       #       choices["satposdepends"] = _("second cable of motorized LNB")
+                       if len(nimmanager.canEqualTo(self.slotid)) > 0:
+                               choices["equal"] = _("equal to")
+                       if len(nimmanager.canDependOn(self.slotid)) > 0:
+                               choices["satposdepends"] = _("second cable of motorized LNB")
+                       if len(nimmanager.canConnectTo(self.slotid)) > 0:
+                               choices["loopthrough"] = _("loopthrough to")
+                       self.nimConfig.configMode.setChoices(choices, default = "nothing")
+
        def createSetup(self):
                print "Creating setup"
                self.list = [ ]
        def createSetup(self):
                print "Creating setup"
                self.list = [ ]
@@ -86,7 +93,7 @@ class NimSetup(Screen, ConfigListScreen):
                        self.list.append(self.configMode)
 
                        if self.nimConfig.configMode.value == "simple":                 #simple setup
                        self.list.append(self.configMode)
 
                        if self.nimConfig.configMode.value == "simple":                 #simple setup
-                               self.diseqcModeEntry = getConfigListEntry(_("DiSEqC Mode"), self.nimConfig.diseqcMode)
+                               self.diseqcModeEntry = getConfigListEntry(_("Mode"), self.nimConfig.diseqcMode)
                                self.list.append(self.diseqcModeEntry)
                                if self.nimConfig.diseqcMode.value in ["single", "toneburst_a_b", "diseqc_a_b", "diseqc_a_b_c_d"]:
                                        self.createSimpleSetup(self.list, self.nimConfig.diseqcMode.value)
                                self.list.append(self.diseqcModeEntry)
                                if self.nimConfig.diseqcMode.value in ["single", "toneburst_a_b", "diseqc_a_b", "diseqc_a_b_c_d"]:
                                        self.createSimpleSetup(self.list, self.nimConfig.diseqcMode.value)
@@ -203,7 +210,8 @@ class NimSetup(Screen, ConfigListScreen):
                self.saveAll()
 
        def fillListWithAdvancedSatEntrys(self, Sat):
                self.saveAll()
 
        def fillListWithAdvancedSatEntrys(self, Sat):
-               currLnb = self.nimConfig.advanced.lnb[int(Sat.lnb.value)]
+               lnbnum = int(Sat.lnb.value)
+               currLnb = self.nimConfig.advanced.lnb[lnbnum]
                
                if isinstance(currLnb, ConfigNothing):
                        currLnb = None
                
                if isinstance(currLnb, ConfigNothing):
                        currLnb = None
@@ -211,17 +219,19 @@ class NimSetup(Screen, ConfigListScreen):
                self.list.append(getConfigListEntry(_("Voltage mode"), Sat.voltage))
                self.list.append(getConfigListEntry(_("Tone mode"), Sat.tonemode))
                if currLnb and currLnb.diseqcMode.value == "1_2":
                self.list.append(getConfigListEntry(_("Voltage mode"), Sat.voltage))
                self.list.append(getConfigListEntry(_("Tone mode"), Sat.tonemode))
                if currLnb and currLnb.diseqcMode.value == "1_2":
-                       self.advancedUsalsEntry = getConfigListEntry(_("Use usals for this sat"), Sat.usals)
-                       self.list.append(self.advancedUsalsEntry)
-                       if not Sat.usals.value:
-                               self.list.append(getConfigListEntry(_("Stored position"), Sat.rotorposition))
+                       if lnbnum < 33:
+                               self.advancedUsalsEntry = getConfigListEntry(_("Use usals for this sat"), Sat.usals)
+                               self.list.append(self.advancedUsalsEntry)
+                               if not Sat.usals.value:
+                                       self.list.append(getConfigListEntry(_("Stored position"), Sat.rotorposition))
 
                # LNBs
                self.advancedLnbsEntry = getConfigListEntry(_("LNB"), Sat.lnb)
                self.list.append(self.advancedLnbsEntry)
                if currLnb:
 
                # LNBs
                self.advancedLnbsEntry = getConfigListEntry(_("LNB"), Sat.lnb)
                self.list.append(self.advancedLnbsEntry)
                if currLnb:
-                       self.advancedDiseqcMode = getConfigListEntry(_("DiSEqC mode"), currLnb.diseqcMode)
-                       self.list.append(self.advancedDiseqcMode)
+                       if lnbnum < 33:
+                               self.advancedDiseqcMode = getConfigListEntry(_("DiSEqC mode"), currLnb.diseqcMode)
+                               self.list.append(self.advancedDiseqcMode)
                        if currLnb.diseqcMode.value != "none":
                                self.list.append(getConfigListEntry(_("Toneburst"), currLnb.toneburst))
                                self.list.append(getConfigListEntry(_("Committed DiSEqC command"), currLnb.commitedDiseqcCommand))
                        if currLnb.diseqcMode.value != "none":
                                self.list.append(getConfigListEntry(_("Toneburst"), currLnb.toneburst))
                                self.list.append(getConfigListEntry(_("Committed DiSEqC command"), currLnb.commitedDiseqcCommand))
@@ -280,8 +290,8 @@ class NimSetup(Screen, ConfigListScreen):
                self.list.append(self.configMode)
                self.advancedSatsEntry = getConfigListEntry(_("Satellite"), self.nimConfig.advanced.sats)
                self.list.append(self.advancedSatsEntry)
                self.list.append(self.configMode)
                self.advancedSatsEntry = getConfigListEntry(_("Satellite"), self.nimConfig.advanced.sats)
                self.list.append(self.advancedSatsEntry)
-               for x in nimmanager.satList:
-                       Sat = self.nimConfig.advanced.sat[x[0]]
+               for x in self.nimConfig.advanced.sat.keys():
+                       Sat = self.nimConfig.advanced.sat[x]
                        self.fillListWithAdvancedSatEntrys(Sat)
                self["config"].list = self.list
 
                        self.fillListWithAdvancedSatEntrys(Sat)
                self["config"].list = self.list
 
@@ -370,11 +380,9 @@ class NimSelection(Screen):
        def __init__(self, session):
                Screen.__init__(self, session)
                
        def __init__(self, session):
                Screen.__init__(self, session)
                
-               menu = [ ]
-               for x in nimmanager.nim_slots:
-                       menu.append((x.friendly_full_description, x))
-
-               self["nimlist"] = MenuList(menu)
+               self.list = [None] * nimmanager.getSlotCount()
+               self["nimlist"] = List(self.list)
+               self.updateList()
 
                self["actions"] = ActionMap(["OkCancelActions"],
                {
 
                self["actions"] = ActionMap(["OkCancelActions"],
                {
@@ -384,6 +392,52 @@ class NimSelection(Screen):
 
        def okbuttonClick(self):
                nim = self["nimlist"].getCurrent()
 
        def okbuttonClick(self):
                nim = self["nimlist"].getCurrent()
-               nim = nim and nim[1]
+               nim = nim and nim[3]
                if nim is not None and not nim.empty:
                if nim is not None and not nim.empty:
-                       self.session.open(NimSetup, nim.slot)
+                       self.session.openWithCallback(self.updateList, NimSetup, nim.slot)
+
+       def updateList(self):
+               self.list = [ ]
+               for x in nimmanager.nim_slots:
+                       slotid = x.slot
+                       nimConfig = nimmanager.getNimConfig(x.slot)
+                       text = nimConfig.configMode.value
+                       if x.isCompatible("DVB-S"):
+                               if nimConfig.configMode.value in ["loopthrough", "equal", "satposdepends"]:
+                                       text = { "loopthrough": _("loopthrough to"),
+                                                        "equal": _("equal to"),
+                                                        "satposdepends": _("second cable of motorized LNB") } [nimConfig.configMode.value]
+                                       text += " " + _("Tuner") + " " + ["A", "B", "C", "D"][int(nimConfig.connectedTo.value)]
+                               elif nimConfig.configMode.value == "nothing":
+                                       text = _("nothing connected")
+                               elif nimConfig.configMode.value == "simple":
+                                       if nimConfig.diseqcMode.value in ["single", "toneburst_a_b", "diseqc_a_b", "diseqc_a_b_c_d"]:
+                                               text = _("Sats") + ": " 
+                                               if nimConfig.diseqcA.orbital_position != 3601:
+                                                       text += nimmanager.getSatName(int(nimConfig.diseqcA.value))
+                                               if nimConfig.diseqcMode.value in ["toneburst_a_b", "diseqc_a_b", "diseqc_a_b_c_d"]:
+                                                       if nimConfig.diseqcB.orbital_position != 3601:
+                                                               text += "," + nimmanager.getSatName(int(nimConfig.diseqcB.value))
+                                               if nimConfig.diseqcMode.value == "diseqc_a_b_c_d":
+                                                       if nimConfig.diseqcC.orbital_position != 3601:
+                                                               text += "," + nimmanager.getSatName(int(nimConfig.diseqcC.value))
+                                                       if nimConfig.diseqcD.orbital_position != 3601:
+                                                               text += "," + nimmanager.getSatName(int(nimConfig.diseqcD.value))
+                                       elif nimConfig.diseqcMode.value == "positioner":
+                                               text = _("Positioner") + ":"
+                                               if nimConfig.positionerMode.value == "usals":
+                                                       text += _("USALS")
+                                               elif nimConfig.positionerMode.value == "manual":
+                                                       text += _("manual")
+                                       else:   
+                                               text = _("simple")
+                               elif nimConfig.configMode.value == "advanced":
+                                       text = _("advanced")
+                       elif x.isCompatible("DVB-T") or x.isCompatible("DVB-C"):
+                               if nimConfig.configMode.value == "nothing":
+                                       text = _("nothing connected")
+                               elif nimConfig.configMode.value == "enabled":
+                                       text = _("enabled")
+                               
+                       self.list.append((slotid, x.friendly_full_description, text, x))
+               self["nimlist"].updateList(self.list)
\ No newline at end of file