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
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()
sleep(0.05)
self.frontend.sendDiseqc(cmd) # send 2nd time
-tuning = None
-
-class TunerScreen(ScanSetup):
+class TunerScreen(ConfigListScreen, Screen):
skin = """
<screen position="90,100" size="520,400" title="Tune">
<widget name="config" position="20,10" size="460,350" scrollbarMode="showOnDemand" />
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
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:
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,
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):