X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/6d7673190e7fec573aed8e15e98d470cd4189d52..2b6021b22bea4aacfec94140138c3f42262bf5fb:/lib/python/Screens/ScanSetup.py diff --git a/lib/python/Screens/ScanSetup.py b/lib/python/Screens/ScanSetup.py index 6237b50d..445c71d8 100644 --- a/lib/python/Screens/ScanSetup.py +++ b/lib/python/Screens/ScanSetup.py @@ -3,7 +3,7 @@ from ServiceScan import * from Components.config import config, ConfigSubsection, ConfigSelection, ConfigYesNo, ConfigInteger, getConfigListEntry, ConfigSlider, ConfigSatlist, ConfigEnableDisable from Components.ActionMap import NumberActionMap from Components.ConfigList import ConfigList, ConfigListScreen -from Components.NimManager import nimmanager +from Components.NimManager import nimmanager, getConfigSatlist from Components.Label import Label from Screens.MessageBox import MessageBox from enigma import eTimer, eDVBFrontendParametersSatellite, eComponentScan, eDVBSatelliteEquipmentControl, eDVBFrontendParametersTerrestrial, eDVBFrontendParametersCable @@ -91,15 +91,25 @@ def getInitialTransponderList(tlist, pos): def getInitialCableTransponderList(tlist, cable): list = nimmanager.getTranspondersCable(cable) + symbolrates = [6900000, 6875000] + modulations = [3, 5, 1, 2, 4] # QAM 64, 256, 16, 32, 128 + for x in list: if x[0] == 1: #CABLE - parm = eDVBFrontendParametersCable() - parm.frequency = x[1] - parm.symbol_rate = x[2] - parm.modulation = x[3] - parm.fec_inner = x[4] - parm.inversion = 2 # AUTO - tlist.append(parm) + for symbolrate in symbolrates: + for modulation in modulations: + parm = eDVBFrontendParametersCable() + parm.frequency = x[1] + parm.symbol_rate = symbolrate + parm.modulation = modulation + parm.fec_inner = 0 + parm.inversion = 2 # AUTO + #print "frequency:", x[1] + #print "symbol_rate:", x[2] + #print "modulation:", x[3] + #print "fec_inner:", x[4] + #print "inversion:", 2 + tlist.append(parm) def getInitialTerrestrialTransponderList(tlist, region): list = nimmanager.getTranspondersTerrestrial(region) @@ -125,12 +135,11 @@ class ScanSetup(ConfigListScreen, Screen): frontendData = None if self.service is not None: self.feinfo = self.service.frontendInfo() - frontendData = self.feinfo and self.feinfo.getFrontendData(True) + frontendData = self.feinfo and self.feinfo.getAll(True) self.createConfig(frontendData) del self.feinfo del self.service - self["actions"] = NumberActionMap(["SetupActions"], { "ok": self.keyGo, @@ -179,10 +188,10 @@ class ScanSetup(ConfigListScreen, Screen): self.list.append(self.typeOfScanEntry) if nimmanager.getNimType(self.scan_nims.index) == nimmanager.nimType["DVB-S"]: - if self.scan_type.value == "single_transponder": - self.systemEntry = getConfigListEntry(_('Transpondertype'), self.scan_sat.system) - self.list.append(self.systemEntry) + if nimmanager.getNimName(self.scan_nims.index).find("DVB-S2") != -1: + self.systemEntry = getConfigListEntry(_('Transpondertype'), self.scan_sat.system) + self.list.append(self.systemEntry) self.list.append(getConfigListEntry(_('Satellite'), self.scan_satselection[self.scan_nims.index])) self.list.append(getConfigListEntry(_('Frequency'), self.scan_sat.frequency)) self.list.append(getConfigListEntry(_('Inversion'), self.scan_sat.inversion)) @@ -306,21 +315,24 @@ class ScanSetup(ConfigListScreen, Screen): defaultSat = { "orbpos": 192, "system": "dvb-s", "frequency": 11836, "inversion": "auto", "symbolrate": 27500, "polarization": "horizontal", "fec": "auto", "fec_s2": "9_10", "modulation": "qpsk" } defaultCab = {"frequency": 466, "inversion": "auto", "modulation": "64qam", "fec": "auto", "symbolrate": 6900} if frontendData is not None: - if frontendData["tuner_type"] == "DVB-S": - defaultSat["system"] = {"DVB-S": "dvb-s", "DVB-S2": "dvb-s2"}[frontendData["system"]] - defaultSat["frequency"] = int(frontendData["frequency"] / 1000) - defaultSat["inversion"] = {"INVERSION_OFF": "off", "INVERSION_ON": "on", "INVERSION_AUTO": "auto"}[frontendData["inversion"]] - defaultSat["symbolrate"] = int(frontendData["symbol_rate"] / 1000) - defaultSat["polarization"] = {"HORIZONTAL": "horizontal", "VERTICAL": "vertical", "CIRCULAR_LEFT": "circular_left", "CIRCULAR_RIGHT": "circular_right", "UNKNOWN": None}[frontendData["polarization"]] - defaultSat["fec"] = {"DVB-S": {"FEC_AUTO": "auto", "FEC_1_2": "1_2", "FEC_2_3": "2_3", "FEC_3_4": "3_4", "FEC_5_6": "5_6", "FEC_7_8": "7_8", "FEC_NONE": "none"}, "DVB-S2": {"FEC_1_2": "1_2", "FEC_2_3": "2_3", "FEC_3_4": "3_4", "FEC_4_5": "4_5", "FEC_5_6": "5_6", "FEC_7_8": "7_8", "FEC_8_9": "8_9", "FEC_9_10": "9_10"}}[frontendData["system"]][frontendData["fec_inner"]] - defaultSat["modulation"] = {"QPSK": "qpsk", "8PSK": "8psk"}[frontendData["modulation"]] - defaultSat["orbpos"] = frontendData["orbital_position"] - elif frontendData["tuner_type"] == "DVB-C": - defaultCab["frequency"] = int(frontendData["frequency"] / 1000) - defaultCab["symbolrate"] = int(frontendData["symbol_rate"] / 1000) - defaultSat["inversion"] = {"INVERSION_OFF": "off", "INVERSION_ON": "on", "INVERSION_AUTO": "auto"}[frontendData["inversion"]] - defaultSat["fec"] = {"FEC_AUTO": "auto", "FEC_1_2": "1_2", "FEC_2_3": "2_3", "FEC_3_4": "3_4", "FEC_5_6": "5_6", "FEC_7_8": "7_8", "FEC_8_9": "8_9", "FEC_NONE": "none"}[frontendData["fec_inner"]] - defaultSat["modulation"] = {"QAM_AUTO": "auto", "QAM_16": "16qam", "QAM_32": "32qam", "QAM_64": "64qam", "QAM_128": "128qam", "QAM_256": "256qam"}[frontendData["modulation"]] + ttype = frontendData.get("tuner_type", "UNKNOWN") + if ttype == "DVB-S": + defaultSat["system"] = {"DVB-S": "dvb-s", "DVB-S2": "dvb-s2"}[frontendData.get("system", "DVB-S")] + defaultSat["frequency"] = int(frontendData.get("frequency", 0) / 1000) + defaultSat["inversion"] = {"INVERSION_OFF": "off", "INVERSION_ON": "on", "INVERSION_AUTO": "auto"}[frontendData.get("inversion", "INVERSION_AUTO")] + defaultSat["symbolrate"] = int(frontendData.get("symbol_rate", 0) / 1000) + defaultSat["polarization"] = {"HORIZONTAL": "horizontal", "VERTICAL": "vertical", "CIRCULAR_LEFT": "circular_left", "CIRCULAR_RIGHT": "circular_right", "UNKNOWN": None}[frontendData.get("polarization", "HORIZONTAL")] + defaultSat["fec"] = {"DVB-S": {"FEC_AUTO": "auto", "FEC_1_2": "1_2", "FEC_2_3": "2_3", "FEC_3_4": "3_4", "FEC_5_6": "5_6", "FEC_7_8": "7_8", "FEC_NONE": "none"}, \ + "DVB-S2": {"FEC_1_2": "1_2", "FEC_2_3": "2_3", "FEC_3_4": "3_4", "FEC_4_5": "4_5", "FEC_5_6": "5_6", "FEC_7_8": "7_8", "FEC_8_9": "8_9", "FEC_9_10": "9_10"}} \ + [frontendData.get("system", "DVB-S")][frontendData.get("fec_inner", "FEC_AUTO")] + defaultSat["modulation"] = {"QPSK": "qpsk", "8PSK": "8psk"}[frontendData.get("modulation", "QPSK")] + defaultSat["orbpos"] = frontendData.get("orbital_position", 0) + elif ttype == "DVB-C": + defaultCab["frequency"] = int(frontendData.get("frequency", 0) / 1000) + defaultCab["symbolrate"] = int(frontendData.get("symbol_rate", 0) / 1000) + defaultCab["inversion"] = {"INVERSION_OFF": "off", "INVERSION_ON": "on", "INVERSION_AUTO": "auto"}[frontendData.get("inversion", "INVERSION_AUTO")] + defaultCab["fec"] = {"FEC_AUTO": "auto", "FEC_1_2": "1_2", "FEC_2_3": "2_3", "FEC_3_4": "3_4", "FEC_5_6": "5_6", "FEC_7_8": "7_8", "FEC_8_9": "8_9", "FEC_NONE": "none"}[frontendData.get("fec_inner", "FEC_AUTO")] + defaultCab["modulation"] = {"QAM_AUTO": "auto", "QAM_16": "16qam", "QAM_32": "32qam", "QAM_64": "64qam", "QAM_128": "128qam", "QAM_256": "256qam"}[frontendData.get("modulation", "QAM_16")] self.scan_sat = ConfigSubsection() self.scan_cab = ConfigSubsection() @@ -387,7 +399,7 @@ class ScanSetup(ConfigListScreen, Screen): for slot in nimmanager.nimslots: if (nimmanager.getNimType(slot.slotid) == nimmanager.nimType["DVB-S"]): print str(slot.slotid) + " : " + str(self.satList) - self.scan_satselection.append(ConfigSatlist(default = defaultSat["orbpos"], list = self.satList[slot.slotid])) + self.scan_satselection.append(getConfigSatlist(int(defaultSat["orbpos"]), self.satList[slot.slotid])) else: self.scan_satselection.append(None) @@ -580,6 +592,8 @@ class ScanSimple(ConfigListScreen, Screen): nim.nim_index = 0 if nimtype == nimmanager.nimType["DVB-S"] and not len(nimmanager.getSatListForNim(0)): scan_possible=False + if nimtype == nimmanager.nimType["empty/unknown"]: + scan_possible = False if scan_possible: self.list.append(getConfigListEntry(_("Scan NIM") + " 0 (" + nimmanager.getNimTypeName(0) + ")", nim)) @@ -613,6 +627,7 @@ class ScanSimple(ConfigListScreen, Screen): print "Scan Tuner", slotid, "-", c.value if c.value: scanPossible = False + trustNit = False tlist = [ ] if nimmanager.getNimType(slotid) == nimmanager.nimType["DVB-S"]: print "is sat" @@ -632,6 +647,8 @@ class ScanSimple(ConfigListScreen, Screen): elif nimmanager.getNimType(slotid) == nimmanager.nimType["DVB-C"]: scanPossible = True getInitialCableTransponderList(tlist, nimmanager.getCableDescription(slotid)) + if nimmanager.getCableTrustNit(slotid): + trustNit = True elif nimmanager.getNimType(slotid) == nimmanager.nimType["DVB-T"]: scanPossible = True getInitialTerrestrialTransponderList(tlist, nimmanager.getTerrestrialDescription(slotid)) @@ -640,6 +657,8 @@ class ScanSimple(ConfigListScreen, Screen): if scanPossible: flags=eComponentScan.scanNetworkSearch + if trustNit: + flags |= eComponentScan.clearToScanOnFirstNIT tmp = self.scan_clearallservices.value if tmp == "yes": flags |= eComponentScan.scanRemoveServices @@ -665,6 +684,8 @@ class ScanSimple(ConfigListScreen, Screen): return 0 def ScanNimTwoNeeded(self): + if nimmanager.getNimType(1) == nimmanager.nimType["empty/unknown"]: + return False if nimmanager.getNimType(0) != nimmanager.getNimType(1): return True if nimmanager.getNimType(0) == nimmanager.nimType["DVB-S"]: #two dvb-s nims