-
- skip = self.nim_iter
- self.nim_iter = 0
-
- for n in self.nim_enable:
- self.nim_iter += 1
- if skip > 0:
- skip -= 1
- elif n.value: # check if nim is enabled
- flags = 0
- nim = nimmanager.nim_slots[n.nim_index]
- networks = set(self.getNetworksForNim(nim))
-
- # don't scan anything twice
- networks.discard(self.known_networks)
-
- tlist = [ ]
- if nim.isCompatible("DVB-S"):
- # get initial transponders for each satellite to be scanned
- for sat in networks:
- getInitialTransponderList(tlist, sat[0])
- elif nim.isCompatible("DVB-C"):
- if config.Nims[nim.slot].cable.scan_type.value == "provider":
- getInitialCableTransponderList(tlist, nim.slot)
- else:
- action = SEARCH_CABLE_TRANSPONDERS
- elif nim.isCompatible("DVB-T"):
- getInitialTerrestrialTransponderList(tlist, nimmanager.getTerrestrialDescription(nim.slot))
- else:
- assert False
-
- flags |= eComponentScan.scanNetworkSearch
- tmp = self.scan_clearallservices.value
- if tmp == "yes":
- flags |= eComponentScan.scanRemoveServices
- elif tmp == "yes_hold_feeds":
- flags |= eComponentScan.scanRemoveServices
- flags |= eComponentScan.scanDontRemoveFeeds
-
- if action == APPEND_NOW:
- self.scanList.append({"transponders": tlist, "feid": nim.slot, "flags": flags})
- elif action == SEARCH_CABLE_TRANSPONDERS:
- self.flags = flags
- self.feid = nim.slot
- self.startCableTransponderSearch(nim.slot)
- return
+
+ n = self.nim_iter < len(self.nim_enable) and self.nim_enable[self.nim_iter] or None
+ self.nim_iter += 1
+ if n and n.value: # check if nim is enabled
+ flags = 0
+ nim = nimmanager.nim_slots[n.nim_index]
+ networks = set(self.getNetworksForNim(nim))
+
+ # don't scan anything twice
+ networks.discard(self.known_networks)
+
+ tlist = [ ]
+ if nim.isCompatible("DVB-S"):
+ # get initial transponders for each satellite to be scanned
+ for sat in networks:
+ getInitialTransponderList(tlist, sat[0])
+ elif nim.isCompatible("DVB-C"):
+ if config.Nims[nim.slot].cable.scan_type.value == "provider":
+ getInitialCableTransponderList(tlist, nim.slot)