- #FIXME: make it better
- for y in nimmgr.nimslots:
- if y.slotid == 0:
- if y.nimType != nimmgr.nimType["DVB-S"]:
- nim.configMode.value = 0 #reset to simple
- nim.configMode.save()
-
- nim.diseqcMode = configElement(cname + "diseqcMode", configSelection, 2, (_("Single"), _("Toneburst A/B"), _("DiSEqC A/B"), _("DiSEqC A/B/C/D"), _("Positioner")));
- nim.diseqcA = configElement(cname + "diseqcA", configSatlist, 192, nimmgr.satList);
- nim.diseqcB = configElement(cname + "diseqcB", configSatlist, 130, nimmgr.satList);
- nim.diseqcC = configElement(cname + "diseqcC", configSatlist, 0, nimmgr.satList);
- nim.diseqcD = configElement(cname + "diseqcD", configSatlist, 0, nimmgr.satList);
- nim.positionerMode = configElement(cname + "positionerMode", configSelection, 0, (_("USALS"), _("manual")));
- nim.longitude = configElement(cname + "longitude", configSequence, [5,100], configsequencearg.get("FLOAT", [(0,90),(0,999)]));
- nim.longitudeOrientation = configElement(cname + "longitudeOrientation", configSelection, 0, (_("East"), _("West")))
- nim.latitude = configElement(cname + "latitude", configSequence, [50,767], configsequencearg.get("FLOAT", [(0,90),(0,999)]));
- nim.latitudeOrientation = configElement(cname + "latitudeOrientation", configSelection, 0, (_("North"), _("South")))
- satNimList = nimmgr.getNimListOfType(nimmgr.nimType["DVB-S"], slot.slotid)
- satNimListNames = []
- for x in satNimList:
- satNimListNames.append(_("Slot ") + ("A", "B", "C", "D")[x] + ": " + nimmgr.getNimName(x))
- nim.linkedTo = configElement(cname + "linkedTo", configSelection, 0, satNimListNames);
-
- #perhaps the instance of the slot is more useful?
- nim.configMode.addNotifier(boundFunction(nimConfigModeChanged,x))
- nim.diseqcMode.addNotifier(boundFunction(nimDiseqcModeChanged,x))
- nim.diseqcA.addNotifier(boundFunction(nimPortAChanged,int(x)))
- nim.diseqcB.addNotifier(boundFunction(nimPortBChanged,x))
- nim.diseqcC.addNotifier(boundFunction(nimPortCChanged,x))
- nim.diseqcD.addNotifier(boundFunction(nimPortDChanged,x))
- nim.linkedTo.addNotifier(boundFunction(nimLinkedToChanged,x))
- elif slot.nimType == nimmgr.nimType["DVB-C"]:
- nim.cable = configElement(cname + "cable", configSelection, 0, nimmgr.cablesList);
- elif slot.nimType == nimmgr.nimType["DVB-T"]:
- nim.cable = configElement(cname + "terrestrial", configSelection, 0, nimmgr.terrestrialsList);
+ section.unicable = ConfigSelection(choices = {"unicable_user": _("User defined")}, default = "unicable_user")
+
+ if lnb < 3:
+ section.unicableMatrix = ConfigSubDict()
+ section.unicableMatrixManufacturer = ConfigSelection(choices = UnicableMatrixManufacturers, default = UnicableMatrixManufacturers[0])
+ for y in unicablematrixproducts:
+ products = unicablematrixproducts[y].keys()
+ products.sort()
+ tmp = ConfigSubsection()
+ tmp.product = ConfigSelection(choices = products, default = products[0])
+ tmp.scr = ConfigSubDict()
+ tmp.vco = ConfigSubDict()
+ for z in products:
+ scrlist = []
+ vcolist = unicablematrixproducts[y][z]
+ tmp.vco[z] = ConfigSubList()
+ for cnt in range(1,1+len(vcolist)):
+ vcofreq = int(vcolist[cnt-1])
+ if vcofreq == 0:
+ scrlist.append(("%d" %cnt,"SCR %d " %cnt +_("not used")))
+ else:
+ scrlist.append(("%d" %cnt,"SCR %d" %cnt))
+ tmp.vco[z].append(ConfigInteger(default=vcofreq, limits = (vcofreq, vcofreq)))
+ tmp.scr[z] = ConfigSelection(choices = scrlist, default = scrlist[0][0])
+ section.unicableMatrix[y] = tmp
+
+ if lnb < 2:
+ section.unicableLnb = ConfigSubDict()
+ section.unicableLnbManufacturer = ConfigSelection(UnicableLnbManufacturers, UnicableLnbManufacturers[0])
+ for y in unicablelnbproducts:
+ products = unicablelnbproducts[y].keys()
+ products.sort()
+ tmp = ConfigSubsection()
+ tmp.product = ConfigSelection(choices = products, default = products[0])
+ tmp.scr = ConfigSubDict()
+ tmp.vco = ConfigSubDict()
+ for z in products:
+ scrlist = []
+ vcolist = unicablelnbproducts[y][z]
+ tmp.vco[z] = ConfigSubList()
+ for cnt in range(1,1+len(vcolist)):
+ scrlist.append(("%d" %cnt,"SCR %d" %cnt))
+ vcofreq = int(vcolist[cnt-1])
+ tmp.vco[z].append(ConfigInteger(default=vcofreq, limits = (vcofreq, vcofreq)))
+ tmp.scr[z] = ConfigSelection(choices = scrlist, default = scrlist[0][0])
+ section.unicableLnb[y] = tmp
+
+ section.satcruser = ConfigSelection(advanced_lnb_satcruser_choices, default="1")
+ tmp = ConfigSubList()
+ tmp.append(ConfigInteger(default=1284, limits = (0, 9999)))
+ tmp.append(ConfigInteger(default=1400, limits = (0, 9999)))
+ tmp.append(ConfigInteger(default=1516, limits = (0, 9999)))
+ tmp.append(ConfigInteger(default=1632, limits = (0, 9999)))
+ tmp.append(ConfigInteger(default=1748, limits = (0, 9999)))
+ tmp.append(ConfigInteger(default=1864, limits = (0, 9999)))
+ tmp.append(ConfigInteger(default=1980, limits = (0, 9999)))
+ tmp.append(ConfigInteger(default=2096, limits = (0, 9999)))
+ section.satcrvcouser = tmp
+
+ def configDiSEqCModeChanged(configElement):
+ section = configElement.section
+ if configElement.value == "1_2" and isinstance(section.longitude, ConfigNothing):
+ section.longitude = ConfigFloat(default = [5,100], limits = [(0,359),(0,999)])
+ section.longitudeOrientation = ConfigSelection(longitude_orientation_choices, "east")
+ section.latitude = ConfigFloat(default = [50,767], limits = [(0,359),(0,999)])
+ section.latitudeOrientation = ConfigSelection(latitude_orientation_choices, "north")
+ section.powerMeasurement = ConfigYesNo(default=True)
+ section.powerThreshold = ConfigInteger(default=hw.get_device_name() == "dm8000" and 15 or 50, limits=(0, 100))
+ section.turningSpeed = ConfigSelection(turning_speed_choices, "fast")
+ section.fastTurningBegin = ConfigDateTime(default=advanced_lnb_fast_turning_btime, formatstring = _("%H:%M"), increment = 600)
+ section.fastTurningEnd = ConfigDateTime(default=advanced_lnb_fast_turning_etime, formatstring = _("%H:%M"), increment = 600)
+
+ def configLNBChanged(configElement):
+ x = configElement.slot_id
+ nim = config.Nims[x]
+ if isinstance(configElement.value, tuple):
+ lnb = int(configElement.value[0])
+ else:
+ lnb = int(configElement.value)
+ lnbs = nim.advanced.lnb
+ if lnb and lnb not in lnbs:
+ section = lnbs[lnb] = ConfigSubsection()
+ section.lofl = ConfigInteger(default=9750, limits = (0, 99999))
+ section.lofh = ConfigInteger(default=10600, limits = (0, 99999))
+ section.threshold = ConfigInteger(default=11700, limits = (0, 99999))
+# section.output_12v = ConfigSelection(choices = [("0V", _("0 V")), ("12V", _("12 V"))], default="0V")
+ section.increased_voltage = ConfigYesNo(False)
+ section.toneburst = ConfigSelection(advanced_lnb_toneburst_choices, "none")
+ section.longitude = ConfigNothing()
+ if lnb > 32:
+ tmp = ConfigSelection(advanced_lnb_allsat_diseqcmode_choices, "1_2")
+ tmp.section = section
+ configDiSEqCModeChanged(tmp)
+ else:
+ tmp = ConfigSelection(advanced_lnb_diseqcmode_choices, "none")
+ tmp.section = section
+ tmp.addNotifier(configDiSEqCModeChanged)
+ section.diseqcMode = tmp
+ section.commitedDiseqcCommand = ConfigSelection(advanced_lnb_csw_choices)
+ section.fastDiseqc = ConfigYesNo(False)
+ section.sequenceRepeat = ConfigYesNo(False)
+ section.commandOrder1_0 = ConfigSelection(advanced_lnb_commandOrder1_0_choices, "ct")
+ section.commandOrder = ConfigSelection(advanced_lnb_commandOrder_choices, "ct")
+ section.uncommittedDiseqcCommand = ConfigSelection(advanced_lnb_ucsw_choices)
+ section.diseqcRepeats = ConfigSelection(advanced_lnb_diseqc_repeat_choices, "none")
+ section.prio = ConfigSelection(prio_list, "-1")
+ section.unicable = ConfigNothing()
+ tmp = ConfigSelection(lnb_choices, lnb_choices_default)
+ tmp.slot_id = x
+ tmp.lnb_id = lnb
+ tmp.addNotifier(configLOFChanged, initial_call = False)
+ section.lof = tmp
+
+ def configModeChanged(configMode):
+ slot_id = configMode.slot_id
+ nim = config.Nims[slot_id]
+ if configMode.value == "advanced" and isinstance(nim.advanced, ConfigNothing):
+ # advanced config:
+ nim.advanced = ConfigSubsection()
+ nim.advanced.sat = ConfigSubDict()
+ nim.advanced.sats = getConfigSatlist(192, advanced_satlist_choices)
+ nim.advanced.lnb = ConfigSubDict()
+ nim.advanced.lnb[0] = ConfigNothing()
+ for x in nimmgr.satList:
+ tmp = ConfigSubsection()
+ tmp.voltage = ConfigSelection(advanced_voltage_choices, "polarization")
+ tmp.tonemode = ConfigSelection(advanced_tonemode_choices, "band")
+ tmp.usals = ConfigYesNo(True)
+ tmp.rotorposition = ConfigInteger(default=1, limits=(1, 255))
+ lnb = ConfigSelection(advanced_lnb_choices, "0")
+ lnb.slot_id = slot_id
+ lnb.addNotifier(configLNBChanged, initial_call = False)
+ tmp.lnb = lnb
+ nim.advanced.sat[x[0]] = tmp
+ for x in range(3601, 3605):
+ tmp = ConfigSubsection()
+ tmp.voltage = ConfigSelection(advanced_voltage_choices, "polarization")
+ tmp.tonemode = ConfigSelection(advanced_tonemode_choices, "band")
+ tmp.usals = ConfigYesNo(default=True)
+ tmp.rotorposition = ConfigInteger(default=1, limits=(1, 255))
+ lnbnum = 33+x-3601
+ lnb = ConfigSelection([("0", "not available"), (str(lnbnum), "LNB %d"%(lnbnum))], "0")
+ lnb.slot_id = slot_id
+ lnb.addNotifier(configLNBChanged, initial_call = False)
+ tmp.lnb = lnb
+ nim.advanced.sat[x] = tmp
+
+ for slot in nimmgr.nim_slots:
+ x = slot.slot
+ nim = config.Nims[x]
+ if slot.isCompatible("DVB-S"):
+ nim.diseqc13V = ConfigYesNo(False)
+ nim.diseqcMode = ConfigSelection(diseqc_mode_choices, "diseqc_a_b")
+ nim.connectedTo = ConfigSelection([(str(id), nimmgr.getNimDescription(id)) for id in nimmgr.getNimListOfType("DVB-S") if id != x])
+ nim.simpleSingleSendDiSEqC = ConfigYesNo(False)
+ nim.simpleDiSEqCSetVoltageTone = ConfigYesNo(True)
+ nim.simpleDiSEqCOnlyOnSatChange = ConfigYesNo(False)
+ nim.diseqcA = getConfigSatlist(192, diseqc_satlist_choices)
+ nim.diseqcB = getConfigSatlist(130, diseqc_satlist_choices)
+ nim.diseqcC = ConfigSatlist(list = diseqc_satlist_choices)
+ nim.diseqcD = ConfigSatlist(list = diseqc_satlist_choices)
+ nim.positionerMode = ConfigSelection(positioner_mode_choices, "usals")
+ nim.longitude = ConfigFloat(default=[5,100], limits=[(0,359),(0,999)])
+ nim.longitudeOrientation = ConfigSelection(longitude_orientation_choices, "east")
+ nim.latitude = ConfigFloat(default=[50,767], limits=[(0,359),(0,999)])
+ nim.latitudeOrientation = ConfigSelection(latitude_orientation_choices, "north")
+ nim.powerMeasurement = ConfigYesNo(True)
+ nim.powerThreshold = ConfigInteger(default=hw.get_device_name() == "dm8000" and 15 or 50, limits=(0, 100))
+ nim.turningSpeed = ConfigSelection(turning_speed_choices, "fast")
+ btime = datetime(1970, 1, 1, 7, 0);
+ nim.fastTurningBegin = ConfigDateTime(default = mktime(btime.timetuple()), formatstring = _("%H:%M"), increment = 900)
+ etime = datetime(1970, 1, 1, 19, 0);
+ nim.fastTurningEnd = ConfigDateTime(default = mktime(etime.timetuple()), formatstring = _("%H:%M"), increment = 900)
+ config_mode_choices = [ ("nothing", _("nothing connected")),
+ ("simple", _("simple")), ("advanced", _("advanced"))]
+ if len(nimmgr.getNimListOfType(slot.type, exception = x)) > 0:
+ config_mode_choices.append(("equal", _("equal to")))
+ config_mode_choices.append(("satposdepends", _("second cable of motorized LNB")))
+ if len(nimmgr.canConnectTo(x)) > 0:
+ config_mode_choices.append(("loopthrough", _("loopthrough to")))
+ nim.advanced = ConfigNothing()
+ tmp = ConfigSelection(config_mode_choices, "nothing")
+ tmp.slot_id = x
+ tmp.addNotifier(configModeChanged, initial_call = False)
+ nim.configMode = tmp
+ elif slot.isCompatible("DVB-C"):
+ nim.configMode = ConfigSelection(
+ choices = {
+ "enabled": _("enabled"),
+ "nothing": _("nothing connected"),
+ },
+ default = "enabled")
+ list = [ ]
+ n = 0
+ for x in nimmgr.cablesList:
+ list.append((str(n), x[0]))
+ n += 1
+ nim.cable = ConfigSubsection()
+ possible_scan_types = [("bands", _("Frequency bands")), ("steps", _("Frequency steps"))]
+ if n:
+ possible_scan_types.append(("provider", _("Provider")))
+ nim.cable.scan_provider = ConfigSelection(default = "0", choices = list)
+ nim.cable.scan_type = ConfigSelection(default = "bands", choices = possible_scan_types)
+ nim.cable.scan_band_EU_VHF_I = ConfigYesNo(default = True)
+ nim.cable.scan_band_EU_MID = ConfigYesNo(default = True)
+ nim.cable.scan_band_EU_VHF_III = ConfigYesNo(default = True)
+ nim.cable.scan_band_EU_UHF_IV = ConfigYesNo(default = True)
+ nim.cable.scan_band_EU_UHF_V = ConfigYesNo(default = True)
+ nim.cable.scan_band_EU_SUPER = ConfigYesNo(default = True)
+ nim.cable.scan_band_EU_HYPER = ConfigYesNo(default = True)
+ nim.cable.scan_band_US_LOW = ConfigYesNo(default = False)
+ nim.cable.scan_band_US_MID = ConfigYesNo(default = False)
+ nim.cable.scan_band_US_HIGH = ConfigYesNo(default = False)
+ nim.cable.scan_band_US_SUPER = ConfigYesNo(default = False)
+ nim.cable.scan_band_US_HYPER = ConfigYesNo(default = False)
+ nim.cable.scan_frequency_steps = ConfigInteger(default = 1000, limits = (1000, 10000))
+ nim.cable.scan_mod_qam16 = ConfigYesNo(default = False)
+ nim.cable.scan_mod_qam32 = ConfigYesNo(default = False)
+ nim.cable.scan_mod_qam64 = ConfigYesNo(default = True)
+ nim.cable.scan_mod_qam128 = ConfigYesNo(default = False)
+ nim.cable.scan_mod_qam256 = ConfigYesNo(default = True)
+ nim.cable.scan_sr_6900 = ConfigYesNo(default = True)
+ nim.cable.scan_sr_6875 = ConfigYesNo(default = True)
+ nim.cable.scan_sr_ext1 = ConfigInteger(default = 0, limits = (0, 7230))
+ nim.cable.scan_sr_ext2 = ConfigInteger(default = 0, limits = (0, 7230))
+ elif slot.isCompatible("DVB-T"):
+ nim.configMode = ConfigSelection(
+ choices = {
+ "enabled": _("enabled"),
+ "nothing": _("nothing connected"),
+ },
+ default = "enabled")
+ list = []
+ n = 0
+ for x in nimmgr.terrestrialsList:
+ list.append((str(n), x[0]))
+ n += 1
+ nim.terrestrial = ConfigSelection(choices = list)
+ nim.terrestrial_5V = ConfigOnOff()