X-Git-Url: http://code.vuplus.com/gitweb/?p=vuplus_dvbapp;a=blobdiff_plain;f=lib%2Fpython%2FPlugins%2FSystemPlugins%2FPositionerSetup%2Fplugin.py;h=a9003503ff2d608017ca7b0b27641e4fd6e1ac69;hp=e09711739b6dc360c4a5a81b1854694b17573377;hb=faaf85f037e9d29dd9f5178016caf7c80776d55b;hpb=e7c018fc484ad4263c2e7156d1ab58d1f5f67bda diff --git a/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py b/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py index e097117..a900350 100644 --- a/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py +++ b/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py @@ -10,11 +10,13 @@ from Plugins.Plugin import PluginDescriptor from Components.Label import Label from Components.ConfigList import ConfigList from Components.TunerInfo import TunerInfo -from Components.ActionMap import ActionMap +from Components.ActionMap import NumberActionMap, ActionMap from Components.NimManager import nimmanager from Components.MenuList import MenuList from Components.config import ConfigSatlist, ConfigNothing, ConfigSelection, ConfigSubsection, KEY_LEFT, KEY_RIGHT, getConfigListEntry from Components.TuneTest import Tuner +from Components.ConfigList import ConfigListScreen +from Components.config import config, ConfigSubsection, ConfigSelection, ConfigInteger, getConfigListEntry from Tools.Transponder import ConvertToHumanReadable from time import sleep @@ -88,7 +90,10 @@ class PositionerSetup(Screen): cur.get("system", eDVBFrontendParametersSatellite.System_DVB_S), cur.get("modulation", eDVBFrontendParametersSatellite.Modulation_QPSK), cur.get("rolloff", eDVBFrontendParametersSatellite.RollOff_alpha_0_35), - cur.get("pilot", eDVBFrontendParametersSatellite.Pilot_Unknown)) + cur.get("pilot", eDVBFrontendParametersSatellite.Pilot_Unknown), + cur.get("is_id", -1), + cur.get("pls_mode", eDVBFrontendParametersSatellite.PLS_Unknown), + cur.get("pls_code", 0)) self.tuner.tune(tp) self.createConfig() @@ -406,9 +411,7 @@ class Diseqc: sleep(0.05) self.frontend.sendDiseqc(cmd) # send 2nd time -tuning = None - -class TunerScreen(ScanSetup): +class TunerScreen(ConfigListScreen, Screen): skin = """ @@ -418,24 +421,40 @@ class TunerScreen(ScanSetup): def __init__(self, session, feid, fe_data): self.feid = feid self.fe_data = fe_data - ScanSetup.__init__(self, session) - self["introduction"].setText("") + Screen.__init__(self, session) + ConfigListScreen.__init__(self, None) + self.createConfig(fe_data) + self.createSetup() + self.tuning.sat.addNotifier(self.tuningSatChanged) + self.tuning.type.addNotifier(self.tuningTypeChanged) + self.scan_sat.system.addNotifier(self.systemChanged) + self.scan_sat.system_dvbs2x.addNotifier(self.systemChanged) + self.scan_sat.is_id_bool.addNotifier(self.isIdChanged, initial_call = False) + self.scan_sat.pls_mode.addNotifier(self.plsModeChanged, initial_call = False) + + self["actions"] = NumberActionMap(["SetupActions"], + { + "ok": self.keyGo, + "cancel": self.keyCancel, + }, -2) + + self["introduction"] = Label(_(" ")) def createSetup(self): - self.typeOfTuningEntry = None - self.satEntry = None self.list = [] - self.typeOfTuningEntry = getConfigListEntry(_('Tune'), tuning.type) - self.list.append(self.typeOfTuningEntry) - self.satEntry = getConfigListEntry(_('Satellite'), tuning.sat) - self.list.append(self.satEntry) + self.list.append(getConfigListEntry(_('Tune'), self.tuning.type) ) + self.list.append(getConfigListEntry(_('Satellite'), self.tuning.sat) ) + + self.is_id_boolEntry = None + self.plsModeEntry = None nim = nimmanager.nim_slots[self.feid] - self.systemEntry = None - - if tuning.type.value == "manual_transponder": - if nim.isCompatible("DVB-S2"): - self.systemEntry = getConfigListEntry(_('System'), self.scan_sat.system) - self.list.append(self.systemEntry) + if self.tuning.type.value == "manual_transponder": + scan_sat_system_value = self.scan_sat.system.value + if nim.isCompatible("DVB-S2X"): + scan_sat_system_value = self.scan_sat.system_dvbs2x.value + self.list.append(getConfigListEntry(_('System'), self.scan_sat.system_dvbs2x)) + elif nim.isCompatible("DVB-S2"): + self.list.append(getConfigListEntry(_('System'), self.scan_sat.system)) else: # downgrade to dvb-s, in case a -s2 config was active self.scan_sat.system.value = eDVBFrontendParametersSatellite.System_DVB_S @@ -443,49 +462,241 @@ class TunerScreen(ScanSetup): self.list.append(getConfigListEntry(_('Inversion'), self.scan_sat.inversion)) self.list.append(getConfigListEntry(_('Symbol rate'), self.scan_sat.symbolrate)) self.list.append(getConfigListEntry(_('Polarization'), self.scan_sat.polarization)) - if self.scan_sat.system.value == eDVBFrontendParametersSatellite.System_DVB_S: + if scan_sat_system_value == eDVBFrontendParametersSatellite.System_DVB_S: self.list.append(getConfigListEntry(_("FEC"), self.scan_sat.fec)) - elif self.scan_sat.system.value == eDVBFrontendParametersSatellite.System_DVB_S2: + elif scan_sat_system_value == eDVBFrontendParametersSatellite.System_DVB_S2: self.list.append(getConfigListEntry(_("FEC"), self.scan_sat.fec_s2)) self.modulationEntry = getConfigListEntry(_('Modulation'), self.scan_sat.modulation) self.list.append(self.modulationEntry) self.list.append(getConfigListEntry(_('Roll-off'), self.scan_sat.rolloff)) self.list.append(getConfigListEntry(_('Pilot'), self.scan_sat.pilot)) - elif tuning.type.value == "predefined_transponder": - self.list.append(getConfigListEntry(_("Transponder"), tuning.transponder)) + elif scan_sat_system_value == eDVBFrontendParametersSatellite.System_DVB_S2X: + if self.scan_sat.modulation_dvbs2x.value == eDVBFrontendParametersSatellite.Modulation_QPSK: + self.list.append(getConfigListEntry(_("FEC"), self.scan_sat.fec_s2x_qpsk)) + elif self.scan_sat.modulation_dvbs2x.value == eDVBFrontendParametersSatellite.Modulation_8PSK: + self.list.append(getConfigListEntry(_("FEC"), self.scan_sat.fec_s2x_8psk)) + elif self.scan_sat.modulation_dvbs2x.value == eDVBFrontendParametersSatellite.Modulation_8APSK: + self.list.append(getConfigListEntry(_("FEC"), self.scan_sat.fec_s2x_8apsk)) + elif self.scan_sat.modulation_dvbs2x.value == eDVBFrontendParametersSatellite.Modulation_16APSK: + self.list.append(getConfigListEntry(_("FEC"), self.scan_sat.fec_s2x_16apsk)) + elif self.scan_sat.modulation_dvbs2x.value == eDVBFrontendParametersSatellite.Modulation_32APSK: + self.list.append(getConfigListEntry(_("FEC"), self.scan_sat.fec_s2x_32apsk)) + self.modulationEntry = getConfigListEntry(_('Modulation'), self.scan_sat.modulation_dvbs2x) + self.list.append(self.modulationEntry) + self.list.append(getConfigListEntry(_('Roll-off'), self.scan_sat.rolloff)) + self.list.append(getConfigListEntry(_('Pilot'), self.scan_sat.pilot)) + if scan_sat_system_value in (eDVBFrontendParametersSatellite.System_DVB_S2, eDVBFrontendParametersSatellite.System_DVB_S2X): + if nim.isMultistream(): + self.is_id_boolEntry = getConfigListEntry(_('Transport Stream Type'), self.scan_sat.is_id_bool) + self.list.append(self.is_id_boolEntry) + if self.scan_sat.is_id_bool.value: + self.list.append(getConfigListEntry(_('Input Stream ID'), self.scan_sat.is_id)) + self.plsModeEntry = getConfigListEntry(_('PLS Mode'), self.scan_sat.pls_mode) + self.list.append(self.plsModeEntry) + if self.scan_sat.pls_mode.value != eDVBFrontendParametersSatellite.PLS_Unknown: + self.list.append(getConfigListEntry(_('PLS Code'), self.scan_sat.pls_code)) + elif self.tuning.type.value == "predefined_transponder": + self.list.append(getConfigListEntry(_("Transponder"), self.tuning.transponder)) self["config"].list = self.list self["config"].l.setList(self.list) - def newConfig(self): - if self["config"].getCurrent() in (self.typeOfTuningEntry, self.satEntry, self.systemEntry): - self.createSetup() - - def createConfig(self, foo): - global tuning - if not tuning: - tuning = ConfigSubsection() - tuning.type = ConfigSelection( - default = "manual_transponder", - choices = { "manual_transponder" : _("Manual transponder"), - "predefined_transponder" : _("Predefined transponder") } ) - tuning.sat = ConfigSatlist(list=nimmanager.getRotorSatListForNim(self.feid)) - tuning.sat.addNotifier(self.tuningSatChanged) - self.updateTransponders() + def createConfig(self, frontendData): + satlist = nimmanager.getRotorSatListForNim(self.feid) orb_pos = self.fe_data.get("orbital_position", None) + self.tuning = ConfigSubsection() + self.tuning.type = ConfigSelection( + default = "manual_transponder", + choices = { "manual_transponder" : _("Manual transponder"), + "predefined_transponder" : _("Predefined transponder") } ) + self.tuning.sat = ConfigSatlist(list = satlist) if orb_pos is not None: - for x in nimmanager.getRotorSatListForNim(self.feid): + for x in satlist: opos = str(orb_pos) - if x[0] == orb_pos and tuning.sat.value != opos: - tuning.sat.value = opos + if x[0] == orb_pos and self.tuning.sat.value != opos: + self.tuning.sat.value = opos del self.fe_data["orbital_position"] - ScanSetup.createConfig(self, self.fe_data) + + self.updateTransponders() + + defaultSat = { + "orbpos": 192, + "system": eDVBFrontendParametersSatellite.System_DVB_S, + "frequency": 11836, + "inversion": eDVBFrontendParametersSatellite.Inversion_Unknown, + "symbolrate": 27500, + "polarization": eDVBFrontendParametersSatellite.Polarisation_Horizontal, + "fec": eDVBFrontendParametersSatellite.FEC_Auto, + "fec_s2": eDVBFrontendParametersSatellite.FEC_9_10, + "fec_s2x_qpsk": eDVBFrontendParametersSatellite.FEC_13_45, + "fec_s2x_8psk": eDVBFrontendParametersSatellite.FEC_23_36, + "fec_s2x_8apsk": eDVBFrontendParametersSatellite.FEC_5_9_L, + "fec_s2x_16apsk": eDVBFrontendParametersSatellite.FEC_1_2_L, + "fec_s2x_32apsk": eDVBFrontendParametersSatellite.FEC_2_3_L, + "modulation": eDVBFrontendParametersSatellite.Modulation_QPSK, + "modulation_s2x": eDVBFrontendParametersSatellite.Modulation_QPSK, + "is_id": -1, + "pls_mode": eDVBFrontendParametersSatellite.PLS_Unknown, + "pls_code": 0 } + + if frontendData is not None: + ttype = frontendData.get("tuner_type", "UNKNOWN") + defaultSat["system"] = frontendData.get("system", eDVBFrontendParametersSatellite.System_DVB_S) + defaultSat["frequency"] = frontendData.get("frequency", 0) / 1000 + defaultSat["inversion"] = frontendData.get("inversion", eDVBFrontendParametersSatellite.Inversion_Unknown) + defaultSat["symbolrate"] = frontendData.get("symbol_rate", 0) / 1000 + defaultSat["polarization"] = frontendData.get("polarization", eDVBFrontendParametersSatellite.Polarisation_Horizontal) + defaultSat["orbpos"] = frontendData.get("orbital_position", 0) + + defaultSat["modulation"] = frontendData.get("modulation", eDVBFrontendParametersSatellite.Modulation_QPSK) + defaultSat["modulation_s2x"] = frontendData.get("modulation", eDVBFrontendParametersSatellite.Modulation_QPSK) + + if defaultSat["modulation"] > eDVBFrontendParametersSatellite.Modulation_8PSK: + defaultSat["modulation"] = eDVBFrontendParametersSatellite.Modulation_8PSK + + if defaultSat["system"] == eDVBFrontendParametersSatellite.System_DVB_S2: + defaultSat["fec_s2"] = frontendData.get("fec_inner", eDVBFrontendParametersSatellite.FEC_Auto) + elif defaultSat["system"] == eDVBFrontendParametersSatellite.System_DVB_S2X: + if defaultSat["modulation_s2x"] == eDVBFrontendParametersSatellite.Modulation_QPSK: + defaultSat["fec_s2x_qpsk"] = frontendData.get("fec_inner", eDVBFrontendParametersSatellite.FEC_13_45) + elif defaultSat["modulation_s2x"] == eDVBFrontendParametersSatellite.Modulation_8PSK: + defaultSat["fec_s2x_8psk"] = frontendData.get("fec_inner", eDVBFrontendParametersSatellite.FEC_23_36) + elif defaultSat["modulation_s2x"] == eDVBFrontendParametersSatellite.Modulation_8APSK: + defaultSat["fec_s2x_8apsk"] = frontendData.get("fec_inner", eDVBFrontendParametersSatellite.FEC_5_9_L) + elif defaultSat["modulation_s2x"] == eDVBFrontendParametersSatellite.Modulation_16APSK: + defaultSat["fec_s2x_16apsk"] = frontendData.get("fec_inner", eDVBFrontendParametersSatellite.FEC_1_2_L) + elif defaultSat["modulation_s2x"] == eDVBFrontendParametersSatellite.Modulation_32APSK: + defaultSat["fec_s2x_32apsk"] = frontendData.get("fec_inner", eDVBFrontendParametersSatellite.FEC_2_3_L) + else: + defaultSat["fec"] = frontendData.get("fec_inner", eDVBFrontendParametersSatellite.FEC_Auto) + + if defaultSat["system"] in (eDVBFrontendParametersSatellite.System_DVB_S2, eDVBFrontendParametersSatellite.System_DVB_S2X): + defaultSat["rolloff"] = frontendData.get("rolloff", eDVBFrontendParametersSatellite.RollOff_alpha_0_35) + defaultSat["pilot"] = frontendData.get("pilot", eDVBFrontendParametersSatellite.Pilot_Unknown) + defaultSat["is_id"] = frontendData.get("is_id", defaultSat["is_id"]) + defaultSat["pls_mode"] = frontendData.get("pls_mode", defaultSat["pls_mode"]) + defaultSat["pls_code"] = frontendData.get("pls_code", defaultSat["pls_code"]) + + self.scan_sat = ConfigSubsection() + + sat_choices = [ + (eDVBFrontendParametersSatellite.System_DVB_S, _("DVB-S")), + (eDVBFrontendParametersSatellite.System_DVB_S2, _("DVB-S2"))] + + sat_choices_dvbs2x = [ + (eDVBFrontendParametersSatellite.System_DVB_S, _("DVB-S")), + (eDVBFrontendParametersSatellite.System_DVB_S2, _("DVB-S2")), + (eDVBFrontendParametersSatellite.System_DVB_S2X, _("DVB-S2X"))] + + self.scan_sat.system = ConfigSelection(default = defaultSat["system"], choices = sat_choices) + self.scan_sat.system_dvbs2x = ConfigSelection(default = defaultSat["system"], choices = sat_choices_dvbs2x) + self.scan_sat.frequency = ConfigInteger(default = defaultSat["frequency"], limits = (1, 99999)) + self.scan_sat.inversion = ConfigSelection(default = defaultSat["inversion"], choices = [ + (eDVBFrontendParametersSatellite.Inversion_Off, _("Off")), + (eDVBFrontendParametersSatellite.Inversion_On, _("On")), + (eDVBFrontendParametersSatellite.Inversion_Unknown, _("Auto"))]) + self.scan_sat.symbolrate = ConfigInteger(default = defaultSat["symbolrate"], limits = (1, 99999)) + self.scan_sat.polarization = ConfigSelection(default = defaultSat["polarization"], choices = [ + (eDVBFrontendParametersSatellite.Polarisation_Horizontal, _("horizontal")), + (eDVBFrontendParametersSatellite.Polarisation_Vertical, _("vertical")), + (eDVBFrontendParametersSatellite.Polarisation_CircularLeft, _("circular left")), + (eDVBFrontendParametersSatellite.Polarisation_CircularRight, _("circular right"))]) + self.scan_sat.fec = ConfigSelection(default = defaultSat["fec"], choices = [ + (eDVBFrontendParametersSatellite.FEC_Auto, _("Auto")), + (eDVBFrontendParametersSatellite.FEC_1_2, "1/2"), + (eDVBFrontendParametersSatellite.FEC_2_3, "2/3"), + (eDVBFrontendParametersSatellite.FEC_3_4, "3/4"), + (eDVBFrontendParametersSatellite.FEC_5_6, "5/6"), + (eDVBFrontendParametersSatellite.FEC_7_8, "7/8"), + (eDVBFrontendParametersSatellite.FEC_None, _("None"))]) + self.scan_sat.fec_s2 = ConfigSelection(default = defaultSat["fec_s2"], choices = [ + (eDVBFrontendParametersSatellite.FEC_1_2, "1/2"), + (eDVBFrontendParametersSatellite.FEC_2_3, "2/3"), + (eDVBFrontendParametersSatellite.FEC_3_4, "3/4"), + (eDVBFrontendParametersSatellite.FEC_3_5, "3/5"), + (eDVBFrontendParametersSatellite.FEC_4_5, "4/5"), + (eDVBFrontendParametersSatellite.FEC_5_6, "5/6"), + (eDVBFrontendParametersSatellite.FEC_7_8, "7/8"), + (eDVBFrontendParametersSatellite.FEC_8_9, "8/9"), + (eDVBFrontendParametersSatellite.FEC_9_10, "9/10")]) + self.scan_sat.fec_s2x_qpsk = ConfigSelection(default = defaultSat["fec_s2x_qpsk"], choices = [ + (eDVBFrontendParametersSatellite.FEC_13_45, "13/45"), + (eDVBFrontendParametersSatellite.FEC_9_20, "9/20"), + (eDVBFrontendParametersSatellite.FEC_11_20, "11/20")]) + + self.scan_sat.fec_s2x_8psk = ConfigSelection(default = defaultSat["fec_s2x_8psk"], choices = [ + (eDVBFrontendParametersSatellite.FEC_23_36, "23/36"), + (eDVBFrontendParametersSatellite.FEC_25_36, "25/36"), + (eDVBFrontendParametersSatellite.FEC_13_18, "13/28")]) + + self.scan_sat.fec_s2x_8apsk = ConfigSelection(default = defaultSat["fec_s2x_8apsk"], choices = [ + (eDVBFrontendParametersSatellite.FEC_5_9_L, "5/9-L"), + (eDVBFrontendParametersSatellite.FEC_26_45_L, "26/45-L")]) + + self.scan_sat.fec_s2x_16apsk = ConfigSelection(default = defaultSat["fec_s2x_16apsk"], choices = [ + (eDVBFrontendParametersSatellite.FEC_1_2_L, "1/2-L"), + (eDVBFrontendParametersSatellite.FEC_8_15_L, "8/15-L"), + (eDVBFrontendParametersSatellite.FEC_5_9_L, "5/9-L"), + (eDVBFrontendParametersSatellite.FEC_26_45, "26/45"), + (eDVBFrontendParametersSatellite.FEC_3_5, "3/5"), + (eDVBFrontendParametersSatellite.FEC_3_5_L, "3/5-L"), + (eDVBFrontendParametersSatellite.FEC_28_45, "28/45"), + (eDVBFrontendParametersSatellite.FEC_23_36, "23/36"), + (eDVBFrontendParametersSatellite.FEC_2_3_L, "2/3-L"), + (eDVBFrontendParametersSatellite.FEC_25_36, "25/36"), + (eDVBFrontendParametersSatellite.FEC_13_18, "13/18"), + (eDVBFrontendParametersSatellite.FEC_7_9, "7/9"), + (eDVBFrontendParametersSatellite.FEC_77_90, "77/90")]) + + self.scan_sat.fec_s2x_32apsk = ConfigSelection(default = defaultSat["fec_s2x_32apsk"], choices = [ + (eDVBFrontendParametersSatellite.FEC_2_3_L, "2/3-L"), + (eDVBFrontendParametersSatellite.FEC_32_45, "32/45"), + (eDVBFrontendParametersSatellite.FEC_11_15, "11/15"), + (eDVBFrontendParametersSatellite.FEC_7_9, "7/9")]) + self.scan_sat.modulation = ConfigSelection(default = defaultSat["modulation"], choices = [ + (eDVBFrontendParametersSatellite.Modulation_QPSK, "QPSK"), + (eDVBFrontendParametersSatellite.Modulation_8PSK, "8PSK")]) + self.scan_sat.modulation_dvbs2x = ConfigSelection(default = defaultSat["modulation_s2x"], choices = [ + (eDVBFrontendParametersSatellite.Modulation_QPSK, "QPSK"), + (eDVBFrontendParametersSatellite.Modulation_8PSK, "8PSK"), + (eDVBFrontendParametersSatellite.Modulation_8APSK, "8APSK"), + (eDVBFrontendParametersSatellite.Modulation_16APSK, "16APSK"), + (eDVBFrontendParametersSatellite.Modulation_32APSK, "32APSK")]) + self.scan_sat.rolloff = ConfigSelection(default = defaultSat.get("rolloff", eDVBFrontendParametersSatellite.RollOff_alpha_0_35), choices = [ + (eDVBFrontendParametersSatellite.RollOff_alpha_0_35, "0.35"), + (eDVBFrontendParametersSatellite.RollOff_alpha_0_25, "0.25"), + (eDVBFrontendParametersSatellite.RollOff_alpha_0_20, "0.20")]) + self.scan_sat.pilot = ConfigSelection(default = defaultSat.get("pilot", eDVBFrontendParametersSatellite.Pilot_Unknown), choices = [ + (eDVBFrontendParametersSatellite.Pilot_Off, _("Off")), + (eDVBFrontendParametersSatellite.Pilot_On, _("On")), + (eDVBFrontendParametersSatellite.Pilot_Unknown, _("Auto"))]) + self.scan_sat.is_id = ConfigInteger(default = defaultSat["is_id"] if defaultSat["is_id"] != -1 else 0, limits = (0, 255)) + self.scan_sat.is_id_bool = ConfigSelection(default = defaultSat["is_id"] != -1, choices = [(True, _("Multistream")),(False, _("Ordinary"))]) + self.scan_sat.pls_mode = ConfigSelection(default = defaultSat["pls_mode"], choices = [ + (eDVBFrontendParametersSatellite.PLS_Root, _("Root")), + (eDVBFrontendParametersSatellite.PLS_Gold, _("Gold")), + (eDVBFrontendParametersSatellite.PLS_Combo, _("Combo")), + (eDVBFrontendParametersSatellite.PLS_Unknown, _("Auto"))]) + self.scan_sat.pls_code = ConfigInteger(default = defaultSat["pls_code"], limits = (0, 262143)) def tuningSatChanged(self, *parm): self.updateTransponders() + self.createSetup() + + def tuningTypeChanged(self, *parm): + self.createSetup() + + def systemChanged(self, *parm): + self.createSetup() + + def isIdChanged(self, *parm): + self.createSetup() + + def plsModeChanged(self, *parm): + self.createSetup() def updateTransponders(self): - if len(tuning.sat.choices): - transponderlist = nimmanager.getTransponders(int(tuning.sat.value)) + if len(self.tuning.sat.choices): + transponderlist = nimmanager.getTransponders(int(self.tuning.sat.value)) tps = [] cnt=0 for x in transponderlist: @@ -499,41 +710,66 @@ class TunerScreen(ScanSetup): pol = "CR" else: pol = "??" - if x[4] == 0: - fec = "FEC Auto" - elif x[4] == 1: - fec = "FEC 1/2" - elif x[4] == 2: - fec = "FEC 2/3" - elif x[4] == 3: - fec = "FEC 3/4" - elif x[4] == 4: - fec = "FEC 5/6" - elif x[4] == 5: - fec = "FEC 7/8" - elif x[4] == 6: - fec = "FEC 8/9" - elif x[4] == 7: - fec = "FEC 3/5" - elif x[4] == 8: - fec = "FEC 4/5" - elif x[4] == 9: - fec = "FEC 9/10" - elif x[4] == 15: - fec = "FEC None" - else: + + fec_desc = ("FEC Auto", "FEC 1/2", "FEC 2/3", "FEC 3/4", "FEC 5/6", "FEC 7/8", "FEC 8/9", "FEC 3/5", "FEC 4/5", "FEC 9/10", \ + "FEC Unknown", "FEC Unknown", "FEC Unknown", "FEC Unknown", "FEC Unknown", "FEC None", \ + "FEC_13_45", "FEC_9_20", "FEC_11_20", "FEC_23_36", "FEC_25_36", \ + "FEC_13_18", "FEC_26_45", "FEC_28_45", "FEC_7_9", "FEC_77_90", \ + "FEC_32_45", "FEC_11_15", "FEC_1_2_L", "FEC_8_15_L", "FEC_3_5_L", \ + "FEC_2_3_L", "FEC_5_9_L", "FEC_26_45_L") + if x[4] > len(fec_desc)-1: fec = "FEC Unknown" + else: + fec = fec_desc[x[4]] tps.append(str(x[1]) + "," + str(x[2]) + "," + pol + "," + fec) - tuning.transponder = ConfigSelection(choices=tps) + self.tuning.transponder = ConfigSelection(choices=tps) + + def keyLeft(self): + ConfigListScreen.keyLeft(self) + + def keyRight(self): + ConfigListScreen.keyRight(self) def keyGo(self): - returnvalue = (0, 0, 0, 0, 0, 0, 0, 0, 0, 0) - satpos = int(tuning.sat.value) - if tuning.type.value == "manual_transponder": - if self.scan_sat.system.value == eDVBFrontendParametersSatellite.System_DVB_S2: + returnvalue = (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 3, 0) + satpos = int(self.tuning.sat.value) + nim = nimmanager.nim_slots[self.feid] + if self.tuning.type.value == "manual_transponder": + system = self.scan_sat.system.value + modulation = self.scan_sat.modulation.value + if nim.isCompatible("DVB-S2X"): + system = self.scan_sat.system_dvbs2x.value + modulation = self.scan_sat.modulation_dvbs2x.value + + if system == eDVBFrontendParametersSatellite.System_DVB_S: + fec = self.scan_sat.fec.value + elif system == eDVBFrontendParametersSatellite.System_DVB_S2: fec = self.scan_sat.fec_s2.value + elif system == eDVBFrontendParametersSatellite.System_DVB_S2X: + if modulation == eDVBFrontendParametersSatellite.Modulation_QPSK: + fec = self.scan_sat.fec_s2x_qpsk.value + elif modulation == eDVBFrontendParametersSatellite.Modulation_8PSK: + fec = self.scan_sat.fec_s2x_8psk.value + elif modulation == eDVBFrontendParametersSatellite.Modulation_8APSK: + fec = self.scan_sat.fec_s2x_8apsk.value + elif modulation == eDVBFrontendParametersSatellite.Modulation_16APSK: + fec = self.scan_sat.fec_s2x_16apsk.value + elif modulation == eDVBFrontendParametersSatellite.Modulation_32APSK: + fec = self.scan_sat.fec_s2x_32apsk.value else: fec = self.scan_sat.fec.value + + is_id = -1 + pls_mode = eDVBFrontendParametersSatellite.PLS_Unknown + pls_code = 0 + if self.scan_sat.is_id_bool.value: + is_id = self.scan_sat.is_id.value + pls_mode = self.scan_sat.pls_mode.value + if pls_mode == eDVBFrontendParametersSatellite.PLS_Unknown: + pls_code = 0 + else: + pls_code = self.scan_sat.pls_code.value + returnvalue = ( self.scan_sat.frequency.value, self.scan_sat.symbolrate.value, @@ -541,14 +777,17 @@ class TunerScreen(ScanSetup): fec, self.scan_sat.inversion.value, satpos, - self.scan_sat.system.value, - self.scan_sat.modulation.value, + system, + modulation, self.scan_sat.rolloff.value, - self.scan_sat.pilot.value) - elif tuning.type.value == "predefined_transponder": - transponder = nimmanager.getTransponders(satpos)[tuning.transponder.index] + self.scan_sat.pilot.value, + is_id, + pls_mode, + pls_code) + elif self.tuning.type.value == "predefined_transponder": + transponder = nimmanager.getTransponders(satpos)[self.tuning.transponder.index] returnvalue = (transponder[1] / 1000, transponder[2] / 1000, - transponder[3], transponder[4], 2, satpos, transponder[5], transponder[6], transponder[8], transponder[9]) + transponder[3], transponder[4], 2, satpos, transponder[5], transponder[6], transponder[8], transponder[9], transponder[10], transponder[11], transponder[12]) self.close(returnvalue) def keyCancel(self):