from Components.ConfigList import ConfigList
from Components.NimManager import nimmanager
from Components.Label import Label
-from enigma import eDVBFrontendParametersSatellite, eComponentScan
+from enigma import eDVBFrontendParametersSatellite, eComponentScan, eDVBSatelliteEquipmentControl
def getInitialTransponderList(tlist, pos):
list = nimmanager.getTransponders(pos)
def keyGo(self):
scanList = []
+ if nimmanager.getNimType(0) == nimmanager.nimType["DVB-S"] and nimmanager.getNimType(0) == nimmanager.getNimType(1):
+ sec = eDVBSatelliteEquipmentControl.getInstance()
+ if sec is not None:
+ exclusive_satellites = sec.get_exclusive_satellites(0,1)
+ else:
+ exclusive_satellites = [0,0]
+ else:
+ exclusive_satellites = [0,0]
+ print "exclusive satellites", exclusive_satellites
for x in self.list:
slotid = x[1].parent.configPath
- print "configpath:", x[1].parent.configPath, "-", currentConfigSelectionElement(x[1].parent)
+ print "Scan Tuner", slotid, "-", currentConfigSelectionElement(x[1].parent)
if currentConfigSelectionElement(x[1].parent) == "yes":
tlist = [ ]
if nimmanager.getNimType(x[1].parent.configPath) == nimmanager.nimType["DVB-S"]:
+ if slotid > 0:
+ idx = exclusive_satellites[0]+1
+ else:
+ idx = 0
+ exclusive_nim_sats = exclusive_satellites[idx+1:idx+1+exclusive_satellites[idx]]
+ print "exclusive_nim_sats", exclusive_nim_sats
SatList = nimmanager.getSatListForNim(slotid)
for sat in SatList:
- getInitialTransponderList(tlist, sat[1])
+ if sat[1] in exclusive_nim_sats or slotid == 0:
+ print sat
+ getInitialTransponderList(tlist, sat[1])
elif nimmanager.getNimType(x[1].parent.configPath) == nimmanager.nimType["DVB-C"]:
getInitialCableTransponderList(tlist, nimmanager.getCableDescription(slotid))
scanList.append({"transponders": tlist, "feid": slotid, "flags": eComponentScan.scanNetworkSearch})
return 1
return 0
+ def ScanNimTwoNeeded(self):
+ if nimmanager.getNimType(0) != nimmanager.getNimType(1):
+ return True
+ if nimmanager.getNimType(0) == nimmanager.nimType["DVB-S"]: #two dvb-s nims
+ if nimmanager.getNimConfigMode(1) in ["loopthrough", "satposdepends", "equal", "nothing"]:
+ return False
+ sec = eDVBSatelliteEquipmentControl.getInstance()
+ if sec is not None:
+ exclusive_satellites = sec.get_exclusive_satellites(0,1)
+ if len(exclusive_satellites) == 0:
+ return False
+ return True
+
def __init__(self, session):
Screen.__init__(self, session)
self.list = []
tlist = []
- for slotid in range(nimmanager.getNimSocketCount()):
- if nimmanager.getNimType(slotid) != nimmanager.nimType["DVB-S"] or currentConfigSelectionElement(config.Nims[slotid].configMode) != "nothing":
- nim = configElement_nonSave(slotid, configSelection, 0, (("yes", _("yes")), ("no", _("no"))))
- self.list.append(getConfigListEntry(_("Scan NIM") + " " + str(slotid) + " (" + nimmanager.getNimTypeName(slotid) + ")", nim))
+ nimcount = nimmanager.getNimSocketCount()
+ if nimcount > 0:
+ nim = configElement_nonSave(0, configSelection, 0,(("yes", _("yes")),("no", _("no"))))
+ self.list.append(getConfigListEntry(_("Scan NIM") + " 0 (" + nimmanager.getNimTypeName(0) + ")", nim))
+ if nimcount > 1 and self.ScanNimTwoNeeded():
+ nim = configElement_nonSave(1, configSelection, 0, (("yes", _("yes")), ("no", _("no"))))
+ self.list.append(getConfigListEntry(_("Scan NIM") + " 1 (" + nimmanager.getNimTypeName(1) + ")", nim))
self["config"] = ConfigList(self.list)
self["header"] = Label(_("Automatic Scan"))