X-Git-Url: http://code.vuplus.com/gitweb/?p=vuplus_dvbapp;a=blobdiff_plain;f=lib%2Fpython%2FScreens%2FSatconfig.py;h=bce652528024a0798ddcd287e9aefb178ceb451e;hp=749c09db1a2df245e20247e9e9b45004c22aedde;hb=6e362ab078a3346137cb16688e7680a2f1739478;hpb=aba0cdf8718a41a4ac3397131b45d272d119d60b diff --git a/lib/python/Screens/Satconfig.py b/lib/python/Screens/Satconfig.py index 749c09d..bce6525 100644 --- a/lib/python/Screens/Satconfig.py +++ b/lib/python/Screens/Satconfig.py @@ -95,6 +95,7 @@ class NimSetup(Screen, ConfigListScreen, ServiceStopScreen): self.advancedType = None self.advancedManufacturer = None self.advancedSCR = None + self.advancedConnected = None if self.nim.isMultiType(): multiType = self.nimConfig.multiType @@ -205,7 +206,7 @@ class NimSetup(Screen, ConfigListScreen, ServiceStopScreen): checkList = (self.configMode, self.diseqcModeEntry, self.advancedSatsEntry, \ self.advancedLnbsEntry, self.advancedDiseqcMode, self.advancedUsalsEntry, \ self.advancedLof, self.advancedPowerMeasurement, self.turningSpeed, \ - self.advancedType, self.advancedSCR, self.advancedManufacturer, self.advancedUnicable, \ + self.advancedType, self.advancedSCR, self.advancedManufacturer, self.advancedUnicable, self.advancedConnected, \ self.uncommittedDiseqcCommand, self.cableScanType, self.multiType) if self["config"].getCurrent() == self.multiType: from Components.NimManager import InitNimManager @@ -285,6 +286,18 @@ class NimSetup(Screen, ConfigListScreen, ServiceStopScreen): self.list.append(self.advancedType) self.list.append(self.advancedSCR) self.list.append(getConfigListEntry(_("Frequency"), manufacturer.vco[product_name][manufacturer.scr[product_name].index])) + + choices = [] + connectable = nimmanager.canConnectTo(self.slotid) + for id in connectable: + choices.append((str(id), nimmanager.getNimDescription(id))) + if len(choices): + self.advancedConnected = getConfigListEntry(_("connected"), self.nimConfig.advanced.unicableconnected) + self.list.append(self.advancedConnected) + if self.nimConfig.advanced.unicableconnected.value == True: + self.nimConfig.advanced.unicableconnectedTo.setChoices(choices) + self.list.append(getConfigListEntry(_("Connected to"),self.nimConfig.advanced.unicableconnectedTo)) + else: #kein Unicable self.list.append(getConfigListEntry(_("Voltage mode"), Sat.voltage)) self.list.append(getConfigListEntry(_("Increased voltage"), currLnb.increased_voltage)) @@ -354,7 +367,40 @@ class NimSetup(Screen, ConfigListScreen, ServiceStopScreen): self.fillListWithAdvancedSatEntrys(Sat) self["config"].list = self.list + def checkLoopthrough(self): + if self.nimConfig.configMode.value == "loopthrough": + loopthrough_count = 0 + dvbs_slots = nimmanager.getNimListOfType('DVB-S') + dvbs_slots_len = len(dvbs_slots) + + for x in dvbs_slots: + try: + nim_slot = nimmanager.nim_slots[x] + if nim_slot == self.nimConfig: + self_idx = x + if nim_slot.config.configMode.value == "loopthrough": + loopthrough_count += 1 + except: pass + if loopthrough_count >= dvbs_slots_len: + return False + + self.slot_dest_list = [] + def checkRecursiveConnect(slot_id): + if slot_id in self.slot_dest_list: + return False + self.slot_dest_list.append(slot_id) + slot_config = nimmanager.nim_slots[slot_id].config + if slot_config.configMode.value == "loopthrough": + return checkRecursiveConnect(int(slot_config.connectedTo.value)) + return True + + return checkRecursiveConnect(self.slotid) + def keySave(self): + if not self.checkLoopthrough(): + self.session.open(MessageBox, _("The loopthrough setting is wrong."),MessageBox.TYPE_ERROR,timeout=10) + return + old_configured_sats = nimmanager.getConfiguredSats() self.run() new_configured_sats = nimmanager.getConfiguredSats() @@ -476,7 +522,7 @@ class NimSelection(Screen): def okbuttonClick(self): nim = self["nimlist"].getCurrent() nim = nim and nim[3] - if nim is not None and not nim.empty: + if nim is not None and not nim.empty and nim.isSupported(): self.session.openWithCallback(self.updateList, self.resultclass, nim.slot) def showNim(self, nim): @@ -535,6 +581,8 @@ class NimSelection(Screen): text = _("enabled") if x.isMultiType(): text = _("Switchable tuner types:") + "(" + ','.join(x.getMultiTypeList().values()) + ")" + "\n" + text + if not x.isSupported(): + text = _("tuner is not supported") self.list.append((slotid, x.friendly_full_description, text, x)) self["nimlist"].setList(self.list)