fixes bug #258 (again)
[enigma2.git] / lib / python / Components / NimManager.py
index c278213c6726029eb4e9869305a82c46cc97db25..1dff777af3189fa1f4f404cfa1ecbbecbdda2702 100644 (file)
@@ -565,9 +565,10 @@ class NimManager:
                if self.hasNimType("DVB-S"):
                        print "Reading satellites.xml"
                        db.readSatellites(self.satList, self.satellites, self.transponders)
-#                      print "SATLIST", self.satList
-#                      print "SATS", self.satellites
-#                      print "TRANSPONDERS", self.transponders
+                       self.satList.sort(key = lambda x: x[0]) # sort by orbpos
+                       #print "SATLIST", self.satList
+                       #print "SATS", self.satellites
+                       #print "TRANSPONDERS", self.transponders
 
                if self.hasNimType("DVB-C"):
                        print "Reading cables.xml"
@@ -759,6 +760,22 @@ class NimManager:
 
        def getSatList(self):
                return self.satList
+       
+       # returns True if something is configured to be connected to this nim
+       # if slotid == -1, returns if something is connected to ANY nim
+       def somethingConnected(self, slotid = -1):
+               if (slotid == -1):
+                       connected = False
+                       for id in range(self.getSlotCount()):
+                               if self.somethingConnected(id):
+                                       connected = True
+                       return connected
+               else:
+                       nim = config.Nims[slotid]
+                       configMode = nim.configMode.value
+               
+                       if self.nim_slots[slotid].isCompatible("DVB-S") or self.nim_slots[slotid].isCompatible("DVB-T") or self.nim_slots[slotid].isCompatible("DVB-C"):
+                               return not (configMode == "nothing")            
 
        def getSatListForNim(self, slotid):
                list = []
@@ -783,15 +800,15 @@ class NimManager:
                                dm = nim.diseqcMode.value
                                if dm in ("single", "toneburst_a_b", "diseqc_a_b", "diseqc_a_b_c_d"):
                                        if nim.diseqcA.orbital_position != 3601:
-                                               list.append(self.satList[nim.diseqcA.index-1])
+                                               list.append(nim.diseqcA.getSat())
                                if dm in ("toneburst_a_b", "diseqc_a_b", "diseqc_a_b_c_d"):
                                        if nim.diseqcB.orbital_position != 3601:
-                                               list.append(self.satList[nim.diseqcB.index-1])
+                                               list.append(nim.diseqcB.getSat())
                                if dm == "diseqc_a_b_c_d":
                                        if nim.diseqcC.orbital_position != 3601:
-                                               list.append(self.satList[nim.diseqcC.index-1])
+                                               list.append(nim.diseqcC.getSat())
                                        if nim.diseqcD.orbital_position != 3601:
-                                               list.append(self.satList[nim.diseqcD.index-1])
+                                               list.append(nim.diseqcD.getSat())
                                if dm == "positioner":
                                        for x in self.satList:
                                                list.append(x)
@@ -923,7 +940,7 @@ def InitNimManager(nimmgr):
 
        lnb_choices = {
                "universal_lnb": _("Universal LNB"),
-               "unicable": _("Unicable"),
+#              "unicable": _("Unicable"),
                "c_band": _("C-Band"),
                "user_defined": _("User defined")}