from Components.ConfigList import ConfigList
from Components.NimManager import nimmanager
from Components.Label import Label
+from Screens.MessageBox import MessageBox
from enigma import eDVBFrontendParametersSatellite, eComponentScan, eDVBSatelliteEquipmentControl, eDVBFrontendParametersTerrestrial
def buildTerTransponder(frequency,
# FIXME: we need to convert the other parameters...
# convert terrestrial.xml bandwidth to our enum
- if x[2] in [0, 1]:
- bandwidth = [1, 0][x[2]]
- else:
- bandwidth = 3 # auto
-
- parm = buildTerTransponder(x[1], bandwidth = [1, 0][x[2]])
+ #if x[2] in [0, 1]:
+ # bandwidth = [1, 0][x[2]]
+ #else:
+ # bandwidth = 3 # auto
+ #
+ #parm = buildTerTransponder(x[1], bandwidth = [1, 0][x[2]])
+ parm = buildTerTransponder(x[1], inversion = x[9], bandwidth = x[2])
tlist.append(parm)
self.updateSatList()
print config.scan.satselection[config.scan.nims.value]
self.list.append(getConfigListEntry(_("Satellite"), config.scan.satselection[config.scan.nims.value]))
+ self.list.append(getConfigListEntry(_("Clear before scan"), config.scan.clearallservices))
elif currentConfigSelectionElement(config.scan.type) == "multisat":
# if (norotor)
tlist = []
SatList = nimmanager.getSatListForNim(config.scan.nims.value)
-
+ self.list.append(getConfigListEntry(_("Clear before scan"), config.scan.clearallservices))
for x in SatList:
if self.Satexists(tlist, x[1]) == 0:
tlist.append(x[1])
self.list.append(getConfigListEntry(_("FEC"), config.scan.cab.fec))
self.list.append(getConfigListEntry(_("Network scan"), config.scan.cab.networkScan))
elif currentConfigSelectionElement(config.scan.typecable) == "complete":
- pass
+ self.list.append(getConfigListEntry(_("Clear before scan"), config.scan.clearallservices))
if (nimmanager.getNimType(config.scan.nims.value) == nimmanager.nimType["DVB-T"]):
if currentConfigSelectionElement(config.scan.typeterrestrial) == "single_transponder":
self.list.append(getConfigListEntry(_("Guard interval mode"), config.scan.ter.guard))
self.list.append(getConfigListEntry(_("Hierarchy mode"), config.scan.ter.hierarchy))
elif currentConfigSelectionElement(config.scan.typeterrestrial) == "complete":
- pass
+ self.list.append(getConfigListEntry(_("Clear before scan"), config.scan.clearallservices))
if (nimmanager.getNimType(config.scan.nims.value) == nimmanager.nimType["DVB-S"] and currentConfigSelectionElement(config.scan.type) == "single_transponder") or \
(nimmanager.getNimType(config.scan.nims.value) == nimmanager.nimType["DVB-C"] and currentConfigSelectionElement(config.scan.typecable) == "single_transponder") or \
config.scan.type = configElement_nonSave("config.scan.type", configSelection, 0, (("single_transponder", _("Single transponder")), ("single_satellite", _("Single satellite")), ("multisat", _("Multisat"))))
config.scan.typecable = configElement_nonSave("config.scan.typecable", configSelection, 0, (("single_transponder", _("Single transponder")), ("complete", _("Complete"))))
config.scan.typeterrestrial = configElement_nonSave("config.scan.typeterrestrial", configSelection, 0, (("single_transponder", _("Single transponder")), ("complete", _("Complete"))))
+ config.scan.clearallservices = configElement_nonSave("config.scan.clearallservices", configSelection, 0, (("no", _("no")), ("yes", _("yes")), ("yes_hold_feeds", _("yes (hold feeds)"))))
nimList = [ ]
for nim in nimmanager.nimList():
parm = eDVBFrontendParametersSatellite()
parm.frequency = frequency * 1000
parm.symbol_rate = symbol_rate * 1000
- parm.polarisation = polarisation # eDVBFrontendParametersSatellite.Polarisation.Verti
+ parm.polarisation = polarisation # eDVBFrontendParametersSatellite.Polarisation.Verti
parm.fec = fec # eDVBFrontendParametersSatellite.FEC.f3_4;
#parm.fec = 6 # AUTO
parm.inversion = inversion #eDVBFrontendParametersSatellite.Inversion.Off;
parm = eDVBFrontendParametersCable()
parm.frequency = frequency * 1000
parm.symbol_rate = symbol_rate * 1000
- parm.modulation = modulation # modulation # eDVBFrontendParametersSatellite.Polarisation.Verti
+ parm.modulation = modulation # modulation # eDVBFrontendParametersSatellite.Polarisation.Verti
parm.fec = fec # eDVBFrontendParametersSatellite.FEC.f3_4;
#parm.fec = 6 # AUTO
parm.inversion = inversion #eDVBFrontendParametersSatellite.Inversion.Off;
flags = 0
if (nimmanager.getNimType(config.scan.nims.value) == nimmanager.nimType["DVB-S"]):
if currentConfigSelectionElement(config.scan.type) == "single_transponder":
-
- self.addSatTransponder(tlist, config.scan.sat.frequency.value[0],
- config.scan.sat.symbolrate.value[0],
- config.scan.sat.polarization.value,
- config.scan.sat.fec.value,
- config.scan.sat.inversion.value,
- self.satList[config.scan.nims.value][config.scan.satselection[config.scan.nims.value].value][1])
+ l = len(self.satList)
+ if l and l > config.scan.nims.value:
+ nimsats=self.satList[config.scan.nims.value]
+ l = len(config.scan.satselection)
+ if l and l > config.scan.nims.value:
+ selsatidx=config.scan.satselection[config.scan.nims.value].value
+ l = len(nimsats)
+ if l and l > selsatidx:
+ orbpos=nimsats[selsatidx][1]
+ self.addSatTransponder(tlist, config.scan.sat.frequency.value[0],
+ config.scan.sat.symbolrate.value[0],
+ config.scan.sat.polarization.value,
+ config.scan.sat.fec.value,
+ config.scan.sat.inversion.value,
+ orbpos)
elif currentConfigSelectionElement(config.scan.type) == "single_satellite":
- getInitialTransponderList(tlist, int(self.satList[config.scan.nims.value][config.scan.satselection[config.scan.nims.value].value][1]))
+ sat = self.satList[config.scan.nims.value][config.scan.satselection[config.scan.nims.value].value]
+ getInitialTransponderList(tlist, int(sat[1]))
flags |= eComponentScan.scanNetworkSearch
-
+ tmp = currentConfigSelectionElement(config.scan.clearallservices)
+ if tmp == "yes":
+ flags |= eComponentScan.scanRemoveServices
+ elif tmp == "yes_hold_feeds":
+ flags |= eComponentScan.scanRemoveServices
+ flags |= eComponentScan.scanDontRemoveFeeds
elif currentConfigSelectionElement(config.scan.type) == "multisat":
SatList = nimmanager.getSatListForNim(config.scan.nims.value)
-
for x in self.multiscanlist:
if x[1].parent.value == 0:
print " " + str(x[1].parent.configPath)
getInitialTransponderList(tlist, x[1].parent.configPath)
flags |= eComponentScan.scanNetworkSearch
+ tmp = currentConfigSelectionElement(config.scan.clearallservices)
+ if tmp == "yes":
+ flags |= eComponentScan.scanRemoveServices
+ elif tmp == "yes_hold_feeds":
+ flags |= eComponentScan.scanRemoveServices
+ flags |= eComponentScan.scanDontRemoveFeeds
elif (nimmanager.getNimType(config.scan.nims.value) == nimmanager.nimType["DVB-C"]):
if currentConfigSelectionElement(config.scan.typecable) == "single_transponder":
config.scan.cab.modulation.value,
config.scan.cab.fec.value,
config.scan.cab.inversion.value)
- if currentConfigSelectionElement(config.scan.cab.networkScan) == "yes":
+ if currentConfigSelectionElement(config.scan.cab.networkScan) == "yes":
flags |= eComponentScan.scanNetworkSearch
elif currentConfigSelectionElement(config.scan.typecable) == "complete":
getInitialCableTransponderList(tlist, nimmanager.getCableDescription(config.scan.nims.value))
flags |= eComponentScan.scanNetworkSearch
+ tmp = currentConfigSelectionElement(config.scan.clearallservices)
+ if tmp == "yes":
+ flags |= eComponentScan.scanRemoveServices
+ elif tmp == "yes_hold_feeds":
+ flags |= eComponentScan.scanRemoveServices
+ flags |= eComponentScan.scanDontRemoveFeeds
elif (nimmanager.getNimType(config.scan.nims.value) == nimmanager.nimType["DVB-T"]):
if currentConfigSelectionElement(config.scan.typeterrestrial) == "single_transponder":
- self.addTerTransponder(tlist,
+ self.addTerTransponder(tlist,
config.scan.ter.frequency.value[0] * 1000000,
inversion = config.scan.ter.inversion.value,
bandwidth = config.scan.ter.bandwidth.value,
elif currentConfigSelectionElement(config.scan.typeterrestrial) == "complete":
getInitialTerrestrialTransponderList(tlist, nimmanager.getTerrestrialDescription(config.scan.nims.value))
flags |= eComponentScan.scanNetworkSearch
+ tmp = currentConfigSelectionElement(config.scan.clearallservices)
+ if tmp == "yes":
+ flags |= eComponentScan.scanRemoveServices
+ elif tmp == "yes_hold_feeds":
+ flags |= eComponentScan.scanRemoveServices
+ flags |= eComponentScan.scanDontRemoveFeeds
for x in self["config"].list:
x[1].save()
- feid = config.scan.nims.value
- # flags |= eComponentScan.scanSearchBAT
- self.session.openWithCallback(self.doNothing, ServiceScan, [{"transponders": tlist, "feid": feid, "flags": flags}])
+ if len(tlist):
+ feid = config.scan.nims.value
+ # flags |= eComponentScan.scanSearchBAT
+ self.session.openWithCallback(self.doNothing, ServiceScan, [{"transponders": tlist, "feid": feid, "flags": flags}])
+ else:
+ self.session.open(MessageBox, _("Nothing to scan!\nPlease setup your tuner settings before you start a service scan."), MessageBox.TYPE_ERROR)
- #self.close()
def doNothing(self):
pass
exclusive_satellites = sec.get_exclusive_satellites(0,1)
else:
exclusive_satellites = [0,0]
+ print "exclusive satellites", exclusive_satellites
+ two_sat_tuners = True
else:
- exclusive_satellites = [0,0]
- print "exclusive satellites", exclusive_satellites
+ two_sat_tuners = False
+
for x in self.list:
slotid = x[1].parent.configPath
print "Scan Tuner", slotid, "-", currentConfigSelectionElement(x[1].parent)
if currentConfigSelectionElement(x[1].parent) == "yes":
+ scanPossible = False
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
+ if two_sat_tuners:
+ 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:
- if sat[1] in exclusive_nim_sats or slotid == 0:
+ if not two_sat_tuners or (sat[1] in exclusive_nim_sats or slotid == 0):
+ scanPossible = True
print sat
getInitialTransponderList(tlist, sat[1])
elif nimmanager.getNimType(x[1].parent.configPath) == nimmanager.nimType["DVB-C"]:
+ scanPossible = True
getInitialCableTransponderList(tlist, nimmanager.getCableDescription(slotid))
- scanList.append({"transponders": tlist, "feid": slotid, "flags": eComponentScan.scanNetworkSearch})
- self.session.openWithCallback(self.doNothing, ServiceScan, scanList = scanList)
+ elif nimmanager.getNimType(x[1].parent.configPath) == nimmanager.nimType["DVB-T"]:
+ scanPossible = True
+ getInitialTerrestrialTransponderList(tlist, nimmanager.getTerrestrialDescription(slotid))
+ if scanPossible:
+ flags=eComponentScan.scanNetworkSearch
+ tmp = currentConfigSelectionElement(config.scan.clearallservices)
+ if tmp == "yes":
+ flags |= eComponentScan.scanRemoveServices
+ elif tmp == "yes_hold_feeds":
+ flags |= eComponentScan.scanRemoveServices
+ flags |= eComponentScan.scanDontRemoveFeeds
+ scanList.append({"transponders": tlist, "feid": slotid, "flags": flags})
+ if len(scanList):
+ self.session.openWithCallback(self.doNothing, ServiceScan, scanList = scanList)
+ else:
+ self.session.open(MessageBox, _("Nothing to scan!\nPlease setup your tuner settings before you start a service scan."), MessageBox.TYPE_ERROR)
def doNothing(self):
pass
-
+
def keyCancel(self):
self.close()
sec = eDVBSatelliteEquipmentControl.getInstance()
if sec is not None:
exclusive_satellites = sec.get_exclusive_satellites(0,1)
- if len(exclusive_satellites) == 0:
+ if len(exclusive_satellites) == 2:
return False
- return True
+ idx = exclusive_satellites[0]+1
+ exclusive_nim_sats = exclusive_satellites[idx+1:idx+1+exclusive_satellites[idx]]
+ if len(exclusive_nim_sats):
+ return True
+ return False # two -C or two -T tuners
def __init__(self, session):
Screen.__init__(self, session)
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))
+ scan_possible=True
+ config.scan = ConfigSubsection()
+ config.scan.clearallservices = configElement_nonSave("config.scan.clearallservices", configSelection, 0, (("no", _("no")), ("yes", _("yes")), ("yes_hold_feeds", _("yes (hold feeds)"))))
+ self.list.append(getConfigListEntry(_("Clear before scan"), config.scan.clearallservices))
+ nim = configElement_nonSave(0, configSelection, 0, (("yes", _("yes")), ("no", _("no"))))
+ if nimmanager.getNimType(0) == nimmanager.nimType["DVB-S"] and not len(nimmanager.getSatListForNim(0)):
+ scan_possible=False
+ if scan_possible:
+ 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))