From 84347bead42c346b606fc9d95858688b96ec886f Mon Sep 17 00:00:00 2001 From: ghost Date: Thu, 11 Dec 2008 20:17:40 +0100 Subject: [PATCH] PositionerSetup/plugin.py: add support for DVB-S2 --- .../SystemPlugins/PositionerSetup/plugin.py | 59 +++++++++++++++++----- 1 file changed, 47 insertions(+), 12 deletions(-) diff --git a/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py b/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py index 928d72a..a45676f 100644 --- a/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py +++ b/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py @@ -64,7 +64,7 @@ class PositionerSetup(Screen): self.diseqc = Diseqc(self.frontend) self.tuner = Tuner(self.frontend) - self.tuner.tune((0,0,0,0,0,0)) + self.tuner.tune((0,0,0,0,0,0,0,0,0,0)) self.createConfig() @@ -388,8 +388,10 @@ class Tuner: parm.fec = transponder[3] parm.inversion = transponder[4] parm.orbital_position = transponder[5] - parm.system = 0 # FIXMEE !! HARDCODED DVB-S (add support for DVB-S2) - parm.modulation = 1 # FIXMEE !! HARDCODED QPSK + parm.system = transponder[6] + parm.modulation = transponder[7] + parm.rolloff = transponder[8] + parm.pilot = transponder[9] feparm = eDVBFrontendParameters() feparm.setDVBS(parm, True) self.lastparm = feparm @@ -428,21 +430,35 @@ class TunerScreen(ScanSetup): self.list.append(self.typeOfTuningEntry) self.satEntry = getConfigListEntry(_('Satellite'), tuning.sat) self.list.append(self.satEntry) + 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) + else: + # downgrade to dvb-s, in case a -s2 config was active + self.scan_sat.system.value = "dvb-s" self.list.append(getConfigListEntry(_('Frequency'), self.scan_sat.frequency)) self.list.append(getConfigListEntry(_('Inversion'), self.scan_sat.inversion)) self.list.append(getConfigListEntry(_('Symbol Rate'), self.scan_sat.symbolrate)) self.list.append(getConfigListEntry(_("Polarity"), self.scan_sat.polarization)) - self.list.append(getConfigListEntry(_("FEC"), self.scan_sat.fec)) + if self.scan_sat.system.value == "dvb-s": + self.list.append(getConfigListEntry(_("FEC"), self.scan_sat.fec)) + elif self.scan_sat.system.value == "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(_('Rolloff'), 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)) self["config"].list = self.list self["config"].l.setList(self.list) def newConfig(self): - if self["config"].getCurrent() == self.typeOfTuningEntry: - self.createSetup() - elif self["config"].getCurrent() == self.satEntry: + if self["config"].getCurrent() in (self.typeOfTuningEntry, self.satEntry, self.systemEntry): self.createSetup() def createConfig(self, foo): @@ -506,19 +522,38 @@ class TunerScreen(ScanSetup): tuning.transponder = ConfigSelection(choices=tps) def keyGo(self): - returnvalue = (0, 0, 0, 0, 0, 0) + 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 == "dvb-s2": + fec = self.scan_sat.fec_s2.value + else: + fec = self.scan_sat.fec.value returnvalue = ( self.scan_sat.frequency.value, self.scan_sat.symbolrate.value, self.scan_sat.polarization.index, - self.scan_sat.fec.index, + { "auto": 0, + "1_2": 1, + "2_3": 2, + "3_4": 3, + "5_6": 4, + "7_8": 5, + "8_9": 6, + "3_5": 7, + "4_5": 8, + "9_10": 9, + "none": 15 }[fec], self.scan_sat.inversion.index, - satpos) + satpos, + self.scan_sat.system.index, + self.scan_sat.modulation.index, + self.scan_sat.rolloff.index, + self.scan_sat.pilot.index) elif tuning.type.value == "predefined_transponder": transponder = nimmanager.getTransponders(satpos)[tuning.transponder.index] - returnvalue = (int(transponder[1] / 1000), int(transponder[2] / 1000), transponder[3], transponder[4], 2, satpos) + returnvalue = (int(transponder[1] / 1000), int(transponder[2] / 1000), + transponder[3], transponder[4], 2, satpos, transponder[5], transponder[6], transponder[8], transponder[9]) self.close(returnvalue) def keyCancel(self): @@ -526,7 +561,7 @@ class TunerScreen(ScanSetup): class RotorNimSelection(Screen): skin = """ - + """ -- 2.7.4