X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/a57321af1e0bfebaadc5b747e51b9eb5bb7d3f3f..a1404d58d60d5dc369e89cb98f239a83d447a986:/lib/python/Components/NimManager.py diff --git a/lib/python/Components/NimManager.py b/lib/python/Components/NimManager.py index b0c2cf35..3c7a147e 100644 --- a/lib/python/Components/NimManager.py +++ b/lib/python/Components/NimManager.py @@ -123,7 +123,7 @@ class SecConfigure: for slot in nim_slots: if slot.type is not None: - used_nim_slots.append((slot.slot, slot.description, slot.config.configMode.value != "nothing" and True or False)) + used_nim_slots.append((slot.slot, slot.description, slot.config.configMode.value != "nothing" and True or False, slot.isCompatible("DVB-S2"))) eDVBResourceManager.getInstance().setFrontendSlotInformations(used_nim_slots) for slot in nim_slots: @@ -276,8 +276,9 @@ class SecConfigure: elif dm == "1_2": sec.setDiSEqCMode(diseqcParam.V1_2) - if self.satposdepends.has_key(slotid): # only useable with rotors - tunermask |= (1 << self.satposdepends[slotid]) + if self.satposdepends.has_key(slotid): + for slot in self.satposdepends[slotid]: + tunermask |= (1 << slot) if dm != "none": if currLnb.toneburst.value == "none": @@ -363,8 +364,11 @@ class SecConfigure: # finally add the orbital positions for y in lnbSat[x]: self.addSatellite(sec, y) - currSat = config.Nims[slotid].advanced.sat[y] - + if x > 32: + satpos = x > 32 and (3604-(36 - x)) or y + else: + satpos = y + currSat = config.Nims[slotid].advanced.sat[satpos] if currSat.voltage.value == "polarization": sec.setVoltageMode(switchParam.HV) elif currSat.voltage.value == "13V": @@ -669,7 +673,14 @@ class NimManager: positionerList = [] for nim in nimList[:]: mode = self.getNimConfig(nim) - if mode.configMode.value == "simple" and mode.diseqcMode.value == "positioner": + nimHaveRotor = mode.configMode.value == "simple" and mode.diseqcMode.value == "positioner" + if not nimHaveRotor and mode.configMode.value == "advanced": + for x in range(3601, 3605): + lnb = int(mode.advanced.sat[x].lnb.value) + if lnb != 0: + nimHaveRotor = True + break + if nimHaveRotor: alreadyConnected = False for testnim in nimList: testmode = self.getNimConfig(testnim) @@ -811,6 +822,10 @@ def InitSecParams(): x.addNotifier(lambda configElement: secClass.setParam(secClass.DELAY_AFTER_VOLTAGE_CHANGE_BEFORE_MOTOR_CMD, configElement.value)) config.sec.delay_after_voltage_change_before_motor_command = x + x = ConfigInteger(default=70, limits = (0, 9999)) + x.addNotifier(lambda configElement: secClass.setParam(secClass.DELAY_BEFORE_SEQUENCE_REPEAT, configElement.value)) + config.sec.delay_before_sequence_repeat = x + x = ConfigInteger(default=360, limits = (0, 9999)) x.addNotifier(lambda configElement: secClass.setParam(secClass.MOTOR_RUNNING_TIMEOUT, configElement.value)) config.sec.motor_running_timeout = x @@ -847,21 +862,12 @@ def InitNimManager(nimmgr): choices["loopthrough"] = _("loopthrough to") nim.configMode = ConfigSelection(choices = choices, default = "nothing") - #important - check if just the 2nd one is LT only and the first one is DVB-S - # CHECKME: is this logic correct for >2 slots? -# if nim.configMode.value in ["loopthrough", "satposdepends", "equal"]: -# if x == 0: # first one can never be linked to anything -# # reset to simple -# nim.configMode.value = "simple" -# nim.configMode.save() -# else: - #FIXME: make it better - for y in nimmgr.nim_slots: - if y.slot == 0: - if not y.isCompatible("DVB-S"): - # reset to simple - nim.configMode.value = "simple" - nim.configMode.save() +# for y in nimmgr.nim_slots: +# if y.slot == 0: +# if not y.isCompatible("DVB-S"): +# # reset to simple +# nim.configMode.value = "simple" +# nim.configMode.save() nim.diseqcMode = ConfigSelection( choices = [ @@ -900,7 +906,7 @@ def InitNimManager(nimmgr): # advanced config: nim.advanced = ConfigSubsection() - tmp = [(3601, _('All Satellites 1'), 1), (3602, _('All Satellites 2'), 1), (3603, _('All Satellites 3'), 1), (3604, _('All Satellites 4'), 1)] + tmp = [(3601, _('All Satellites')+' 1', 1), (3602, _('All Satellites')+' 2', 1), (3603, _('All Satellites')+' 3', 1), (3604, _('All Satellites')+' 4', 1)] nim.advanced.sats = getConfigSatlist(192,nimmgr.satList+tmp) nim.advanced.sat = ConfigSubDict() lnbs = [("0", "not available")] @@ -1028,7 +1034,8 @@ def InitNimManager(nimmgr): nim.terrestrial_5V = ConfigOnOff() else: nim.configMode = ConfigSelection(choices = { "nothing": _("disabled") }, default="nothing"); - print "pls add support for this frontend type!" + if slot.type is not None: + print "pls add support for this frontend type!", slot.type # assert False nimmgr.sec = SecConfigure(nimmgr)