X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/f97a4e53dcd9321cfe4d026f8efac3a3fea1cb6a..c39bb28b743d4bc4457a63f3d0896690209356b4:/lib/python/Screens/Satconfig.py diff --git a/lib/python/Screens/Satconfig.py b/lib/python/Screens/Satconfig.py index 5415ae05..49fc2b7b 100644 --- a/lib/python/Screens/Satconfig.py +++ b/lib/python/Screens/Satconfig.py @@ -5,7 +5,7 @@ from Components.ActionMap import ActionMap from Components.ConfigList import ConfigListScreen from Components.MenuList import MenuList from Components.NimManager import nimmanager -from Components.config import getConfigListEntry, config, ConfigNothing +from Components.config import getConfigListEntry, config, ConfigNothing, ConfigSelection, updateConfigElement from Screens.MessageBox import MessageBox from time import mktime, localtime @@ -46,7 +46,22 @@ class NimSetup(Screen, ConfigListScreen): if nim.powerMeasurement.value: nim.powerMeasurement.value = False nim.powerMeasurement.save() - + + def createConfigMode(self): + choices = { "nothing": _("nothing connected"), + "simple": _("simple"), + "advanced": _("advanced")} + #if len(nimmanager.getNimListOfType(nimmanager.getNimType(self.slotid), exception = x)) > 0: + # choices["equal"] = _("equal to") + # choices["satposdepends"] = _("second cable of motorized LNB") + if len(nimmanager.canEqualTo(self.slotid)) > 0: + choices["equal"] = _("equal to") + if len(nimmanager.canDependOn(self.slotid)) > 0: + choices["satposdepends"] = _("second cable of motorized LNB") + if len(nimmanager.canConnectTo(self.slotid)) > 0: + choices["loopthrough"] = _("loopthrough to") + self.nim.config.configMode.setChoices(choices) + def createSetup(self): print "Creating setup" self.list = [ ] @@ -64,6 +79,7 @@ class NimSetup(Screen, ConfigListScreen): self.turnFastEpochEnd = None self.uncommittedDiseqcCommand = None self.cableScanType = None + self.have_advanced = False if self.nim.isCompatible("DVB-S"): self.configMode = getConfigListEntry(_("Configuration Mode"), self.nimConfig.configMode) @@ -76,7 +92,34 @@ class NimSetup(Screen, ConfigListScreen): self.createSimpleSetup(self.list, self.nimConfig.diseqcMode.value) if self.nimConfig.diseqcMode.value == "positioner": self.createPositionerSetup(self.list) - elif self.nimConfig.configMode.value in ["loopthrough", "satposdepends", "nothing", "equal"]: + elif self.nimConfig.configMode.value == "equal": + choices = [] + nimlist = nimmanager.canEqualTo(self.nim.slot) + for id in nimlist: + #choices.append((str(id), str(chr(65 + id)))) + choices.append((str(id), nimmanager.getNimDescription(id))) + self.nimConfig.connectedTo.setChoices(choices) + #self.nimConfig.connectedTo = updateConfigElement(self.nimConfig.connectedTo, ConfigSelection(choices = choices)) + self.list.append(getConfigListEntry(_("Tuner"), self.nimConfig.connectedTo)) + elif self.nimConfig.configMode.value == "satposdepends": + choices = [] + nimlist = nimmanager.canDependOn(self.nim.slot) + for id in nimlist: + #choices.append((str(id), str(chr(65 + id)))) + choices.append((str(id), nimmanager.getNimDescription(id))) + self.nimConfig.connectedTo.setChoices(choices) + #self.nimConfig.connectedTo = updateConfigElement(self.nimConfig.connectedTo, ConfigSelection(choices = choices)) + self.list.append(getConfigListEntry(_("Tuner"), self.nimConfig.connectedTo)) + elif self.nimConfig.configMode.value == "loopthrough": + choices = [] + print "connectable to:", nimmanager.canConnectTo(self.slotid) + connectable = nimmanager.canConnectTo(self.slotid) + for id in connectable: + choices.append((str(id), nimmanager.getNimDescription(id))) + self.nimConfig.connectedTo.setChoices(choices) + #self.nimConfig.connectedTo = updateConfigElement(self.nimConfig.connectedTo, ConfigSelection(choices = choices)) + self.list.append(getConfigListEntry(_("Connected to"), self.nimConfig.connectedTo)) + elif self.nimConfig.configMode.value == "nothing": pass elif self.nimConfig.configMode.value == "advanced": # advanced # SATs @@ -84,11 +127,12 @@ class NimSetup(Screen, ConfigListScreen): self.list.append(self.advancedSatsEntry) cur_orb_pos = self.nimConfig.advanced.sats.orbital_position satlist = self.nimConfig.advanced.sat.keys() - if cur_orb_pos not in satlist: - cur_orb_pos = satlist[0] - currSat = self.nimConfig.advanced.sat[cur_orb_pos] - self.fillListWithAdvancedSatEntrys(currSat) - self.have_advanced = True + if cur_orb_pos is not None: + if cur_orb_pos not in satlist: + cur_orb_pos = satlist[0] + currSat = self.nimConfig.advanced.sat[cur_orb_pos] + self.fillListWithAdvancedSatEntrys(currSat) + self.have_advanced = True elif self.nim.isCompatible("DVB-C"): self.configMode = getConfigListEntry(_("Configuration Mode"), self.nimConfig.configMode) self.list.append(self.configMode) @@ -286,9 +330,13 @@ class NimSetup(Screen, ConfigListScreen): "cancel": self.keyCancel, }, -2) + self.slotid = slotid self.nim = nimmanager.nim_slots[slotid] self.nimConfig = self.nim.config + self.createConfigMode() self.createSetup() + # safeAll is needed, so that keyCancel works properly + self.saveAll() def keyLeft(self): ConfigListScreen.keyLeft(self)