1 diff --git a/lib/dvb/db.cpp b/lib/dvb/db.cpp
2 index 0f367be5..ca435464 100755
5 @@ -512,7 +512,7 @@ void eDVBDB::saveServicelist(const char *file)
6 ch.m_frontendParameters->getFlags(flags);
7 if (!ch.m_frontendParameters->getDVBS(sat))
9 - if (sat.system == eDVBFrontendParametersSatellite::System_DVB_S2)
10 + if ((sat.system == eDVBFrontendParametersSatellite::System_DVB_S2) || (sat.system == eDVBFrontendParametersSatellite::System_DVB_S2X))
12 fprintf(f, "\ts %d:%d:%d:%d:%d:%d:%d:%d:%d:%d:%d\n",
13 sat.frequency, sat.symbol_rate,
14 diff --git a/lib/dvb/dvb.cpp b/lib/dvb/dvb.cpp
15 index 852c4034..67c3aa98 100644
18 @@ -414,6 +414,10 @@ bool eDVBResourceManager::frontendIsCompatible(int index, const char *type)
20 if (i->m_frontend->getSlotID() == index)
22 + if (!strcmp(type, "DVB-S2X"))
24 + return i->m_frontend->supportsDeliverySystem(SYS_DVBS2X, false);
26 if (!strcmp(type, "DVB-S2"))
28 return i->m_frontend->supportsDeliverySystem(SYS_DVBS2, false);
29 @@ -456,6 +460,8 @@ void eDVBResourceManager::setFrontendType(int index, const char *type)
31 whitelist.push_back(SYS_DVBS);
32 whitelist.push_back(SYS_DVBS2);
33 + if (!strcmp(type, "DVB-S2X"))
34 + whitelist.push_back(SYS_DVBS2X);
36 else if (!strcmp(type, "DVB-T2") || !strcmp(type, "DVB-T"))
38 diff --git a/lib/dvb/frontend.cpp b/lib/dvb/frontend.cpp
39 index 91c866c9..a2eb0e82 100755
40 --- a/lib/dvb/frontend.cpp
41 +++ b/lib/dvb/frontend.cpp
43 #define FEC_S2_QPSK_4_5 (fe_code_rate_t)(FEC_4_5)
44 #define FEC_S2_QPSK_9_10 (fe_code_rate_t)(FEC_9_10)
47 +#define FEC_S2_QPSK_13_45 (fe_code_rate_t)(FEC_13_45)
49 #include <dvbsi++/satellite_delivery_system_descriptor.h>
50 #include <dvbsi++/cable_delivery_system_descriptor.h>
51 #include <dvbsi++/terrestrial_delivery_system_descriptor.h>
52 @@ -132,23 +135,23 @@ void eDVBFrontendParametersSatellite::set(const SatelliteDeliverySystemDescripto
53 modulation=eDVBFrontendParametersSatellite::Modulation_QPSK;
55 rolloff = descriptor.getRollOff();
56 - if (system == eDVBFrontendParametersSatellite::System_DVB_S2)
57 + if (system == eDVBFrontendParametersSatellite::System_DVB_S)
59 - eDebug("SAT DVB-S2 freq %d, %s, pos %d, sr %d, fec %d, modulation %d, rolloff %d",
60 + eDebug("SAT DVB-S freq %d, %s, pos %d, sr %d, fec %d",
62 polarisation ? "hor" : "vert",
70 + else // System_DVB_S2 or System_DVB_S2X
72 - eDebug("SAT DVB-S freq %d, %s, pos %d, sr %d, fec %d",
73 + eDebug("SAT DVB-S2 freq %d, %s, pos %d, sr %d, fec %d, modulation %d, rolloff %d",
75 polarisation ? "hor" : "vert",
84 @@ -1018,7 +1021,7 @@ void PutSatelliteDataToDict(ePyObject &dict, eDVBFrontendParametersSatellite &fe
85 PutToDict(dict, "fec_inner", feparm.fec);
86 PutToDict(dict, "modulation", feparm.modulation);
87 PutToDict(dict, "polarization", feparm.polarisation);
88 - if (feparm.system == eDVBFrontendParametersSatellite::System_DVB_S2)
89 + if ((feparm.system == eDVBFrontendParametersSatellite::System_DVB_S2) || (feparm.system == eDVBFrontendParametersSatellite::System_DVB_S2X))
91 PutToDict(dict, "rolloff", feparm.rolloff);
92 PutToDict(dict, "pilot", feparm.pilot);
93 @@ -1084,6 +1087,7 @@ static void fillDictWithSatelliteData(ePyObject dict, struct dtv_property *p, lo
94 case FEC_7_8: tmp = eDVBFrontendParametersSatellite::FEC_7_8; break;
95 case FEC_8_9: tmp = eDVBFrontendParametersSatellite::FEC_8_9; break;
96 case FEC_9_10: tmp = eDVBFrontendParametersSatellite::FEC_9_10; break;
97 + case FEC_13_45 ... FEC_26_45_L: tmp = eDVBFrontendParametersSatellite::FEC_13_45 + (long)(p_inner_fec - FEC_13_45); break;
98 case FEC_NONE: tmp = eDVBFrontendParametersSatellite::FEC_None; break;
99 case FEC_AUTO: tmp = eDVBFrontendParametersSatellite::FEC_Auto; break;
100 default: eDebug("got unsupported FEC from frontend! report as FEC_AUTO!\n");
101 @@ -1094,7 +1098,12 @@ static void fillDictWithSatelliteData(ePyObject dict, struct dtv_property *p, lo
103 default: eDebug("got unsupported system from frontend! report as DVBS!");
104 case SYS_DVBS: tmp = eDVBFrontendParametersSatellite::System_DVB_S; break;
106 + case SYS_DVBS2: tmp = eDVBFrontendParametersSatellite::System_DVB_S2; break;
107 + case SYS_DVBS2X: tmp = eDVBFrontendParametersSatellite::System_DVB_S2X; break;
109 + PutToDict(dict, "system", tmp);
111 + if ((p_system == SYS_DVBS2) || (p_system == SYS_DVBS2X))
115 @@ -1112,17 +1121,16 @@ static void fillDictWithSatelliteData(ePyObject dict, struct dtv_property *p, lo
116 case PILOT_AUTO: tmp = eDVBFrontendParametersSatellite::Pilot_Unknown; break;
118 PutToDict(dict, "pilot", tmp);
120 - tmp = eDVBFrontendParametersSatellite::System_DVB_S2; break;
123 - PutToDict(dict, "system", tmp);
125 switch (p_modulation)
127 default: eDebug("got unsupported modulation from frontend! report as QPSK!");
128 case QPSK: tmp = eDVBFrontendParametersSatellite::Modulation_QPSK; break;
129 case PSK_8: tmp = eDVBFrontendParametersSatellite::Modulation_8PSK; break;
130 + case APSK_8: tmp = eDVBFrontendParametersSatellite::Modulation_8APSK; break;
131 + case APSK_16: tmp = eDVBFrontendParametersSatellite::Modulation_16APSK; break;
132 + case APSK_32: tmp = eDVBFrontendParametersSatellite::Modulation_32APSK; break;
134 PutToDict(dict, "modulation", tmp);
136 @@ -1475,7 +1483,7 @@ void eDVBFrontend::getFrontendData(ePyObject dest)
138 PutToDict(dest, "tuner_number", m_slotid);
140 - if (supportsDeliverySystem(SYS_DVBS, true) || supportsDeliverySystem(SYS_DVBS2, true))
141 + if (supportsDeliverySystem(SYS_DVBS, true) || supportsDeliverySystem(SYS_DVBS2, true) || supportsDeliverySystem(SYS_DVBS2X, true))
145 @@ -1973,12 +1981,16 @@ void eDVBFrontend::setFrontend(bool recvEvents)
147 case eDVBFrontendParametersSatellite::System_DVB_S: system = SYS_DVBS; break;
148 case eDVBFrontendParametersSatellite::System_DVB_S2: system = SYS_DVBS2; break;
149 + case eDVBFrontendParametersSatellite::System_DVB_S2X: system = SYS_DVBS2X; break;
151 switch(sparm.modulation)
153 case eDVBFrontendParametersSatellite::Modulation_QPSK: modulation = QPSK; break;
154 case eDVBFrontendParametersSatellite::Modulation_8PSK: modulation = PSK_8; break;
155 case eDVBFrontendParametersSatellite::Modulation_QAM16: modulation = QAM_16; break;
156 + case eDVBFrontendParametersSatellite::Modulation_8APSK: modulation = APSK_8; break;
157 + case eDVBFrontendParametersSatellite::Modulation_16APSK: modulation = APSK_16; break;
158 + case eDVBFrontendParametersSatellite::Modulation_32APSK: modulation = APSK_32; break;
162 @@ -2002,7 +2014,7 @@ void eDVBFrontend::setFrontend(bool recvEvents)
163 p[4].cmd = DTV_SYMBOL_RATE, p[4].u.data = parm_u_qpsk_symbol_rate;
164 p[5].cmd = DTV_INNER_FEC, p[5].u.data = parm_u_qpsk_fec_inner;
165 p[6].cmd = DTV_INVERSION, p[6].u.data = parm_inversion;
166 - if (system == SYS_DVBS2)
167 + if ((system == SYS_DVBS2) || (system == SYS_DVBS2X))
169 p[7].cmd = DTV_ROLLOFF, p[7].u.data = rolloff;
170 p[8].cmd = DTV_PILOT, p[8].u.data = pilot;
171 @@ -2116,8 +2128,7 @@ RESULT eDVBFrontend::prepare_sat(const eDVBFrontendParametersSatellite &feparm,
172 res = m_sec->prepare(*this, parm, feparm, 1 << m_slotid, tunetimeout);
175 - eDebugNoSimulate("prepare_sat System %d Freq %d Pol %d SR %d INV %d FEC %d orbpos %d system %d modulation %d pilot %d, rolloff %d",
177 + eDebugNoSimulate("prepare_sat Freq %d Pol %d SR %d INV %d FEC %d orbpos %d system %d modulation %d pilot %d, rolloff %d",
181 @@ -2171,7 +2182,7 @@ RESULT eDVBFrontend::prepare_sat(const eDVBFrontendParametersSatellite &feparm,
186 + else if (feparm.system == eDVBFrontendParametersSatellite::System_DVB_S2)
190 @@ -2207,6 +2218,45 @@ RESULT eDVBFrontend::prepare_sat(const eDVBFrontendParametersSatellite &feparm,
196 + switch (feparm.fec)
198 + case eDVBFrontendParametersSatellite::FEC_1_2:
199 + parm_u_qpsk_fec_inner = FEC_S2_QPSK_1_2;
201 + case eDVBFrontendParametersSatellite::FEC_2_3:
202 + parm_u_qpsk_fec_inner = FEC_S2_QPSK_2_3;
204 + case eDVBFrontendParametersSatellite::FEC_3_4:
205 + parm_u_qpsk_fec_inner = FEC_S2_QPSK_3_4;
207 + case eDVBFrontendParametersSatellite::FEC_3_5:
208 + parm_u_qpsk_fec_inner = FEC_S2_QPSK_3_5;
210 + case eDVBFrontendParametersSatellite::FEC_4_5:
211 + parm_u_qpsk_fec_inner = FEC_S2_QPSK_4_5;
213 + case eDVBFrontendParametersSatellite::FEC_5_6:
214 + parm_u_qpsk_fec_inner = FEC_S2_QPSK_5_6;
216 + case eDVBFrontendParametersSatellite::FEC_7_8:
217 + parm_u_qpsk_fec_inner = FEC_S2_QPSK_7_8;
219 + case eDVBFrontendParametersSatellite::FEC_8_9:
220 + parm_u_qpsk_fec_inner = FEC_S2_QPSK_8_9;
222 + case eDVBFrontendParametersSatellite::FEC_9_10:
223 + parm_u_qpsk_fec_inner = FEC_S2_QPSK_9_10;
225 + case eDVBFrontendParametersSatellite::FEC_13_45 ... eDVBFrontendParametersSatellite::FEC_26_45_L:
226 + parm_u_qpsk_fec_inner = (fe_code_rate_t)((int)FEC_S2_QPSK_13_45 + (feparm.fec-eDVBFrontendParametersSatellite::FEC_13_45));
229 + eDebugNoSimulate("no valid fec for DVB-S2X set.. abort !!");
233 // FIXME !!! get frequency range from tuner
234 if ( parm_frequency < 900000 || parm_frequency > 2200000 )
236 @@ -2791,13 +2841,18 @@ int eDVBFrontend::isCompatibleWith(ePtr<iDVBFrontendParameters> &feparm)
237 if (type == eDVBFrontend::feSatellite)
239 eDVBFrontendParametersSatellite sat_parm;
240 - bool can_handle_dvbs, can_handle_dvbs2;
241 + bool can_handle_dvbs, can_handle_dvbs2, can_handle_dvbs2x;
242 can_handle_dvbs = supportsDeliverySystem(SYS_DVBS, true);
243 can_handle_dvbs2 = supportsDeliverySystem(SYS_DVBS2, true);
244 + can_handle_dvbs2x = supportsDeliverySystem(SYS_DVBS2X, true);
245 if (feparm->getDVBS(sat_parm) < 0)
249 + if (sat_parm.system == eDVBFrontendParametersSatellite::System_DVB_S2X && !can_handle_dvbs2x)
253 if (sat_parm.system == eDVBFrontendParametersSatellite::System_DVB_S2 && !can_handle_dvbs2)
256 @@ -2897,17 +2952,18 @@ void eDVBFrontend::setDeliverySystemWhitelist(const std::vector<fe_delivery_syst
258 bool eDVBFrontend::setSlotInfo(ePyObject obj)
260 - ePyObject Id, Descr, Enabled, IsDVBS2, IsDVBT2, frontendId;
261 - if (!PyTuple_Check(obj) || PyTuple_Size(obj) != 6)
262 + ePyObject Id, Descr, Enabled, IsDVBS2, IsDVBT2, IsDVBS2X, frontendId;
263 + if (!PyTuple_Check(obj) || PyTuple_Size(obj) != 7)
265 Id = PyTuple_GET_ITEM(obj, 0);
266 Descr = PyTuple_GET_ITEM(obj, 1);
267 Enabled = PyTuple_GET_ITEM(obj, 2);
268 IsDVBS2 = PyTuple_GET_ITEM(obj, 3);
269 IsDVBT2 = PyTuple_GET_ITEM(obj, 4);
270 - frontendId = PyTuple_GET_ITEM(obj, 5);
271 + IsDVBS2X = PyTuple_GET_ITEM(obj, 5);
272 + frontendId = PyTuple_GET_ITEM(obj, 6);
273 m_slotid = PyInt_AsLong(Id);
274 - if (!PyInt_Check(Id) || !PyString_Check(Descr) || !PyBool_Check(Enabled) || !PyBool_Check(IsDVBS2) || !PyBool_Check(IsDVBT2) || !PyInt_Check(frontendId))
275 + if (!PyInt_Check(Id) || !PyString_Check(Descr) || !PyBool_Check(Enabled) || !PyBool_Check(IsDVBS2) || !PyBool_Check(IsDVBT2) || !PyBool_Check(IsDVBS2X) || !PyInt_Check(frontendId))
277 strcpy(m_description, PyString_AS_STRING(Descr));
278 if (PyInt_AsLong(frontendId) == -1 || PyInt_AsLong(frontendId) != m_dvbid) {
279 @@ -2931,9 +2987,14 @@ bool eDVBFrontend::setSlotInfo(ePyObject obj)
280 /* HACK for legacy dvb api without DELSYS support */
281 m_delsys[SYS_DVBT2] = true;
283 + if (IsDVBS2X == Py_True)
285 + /* HACK for legacy dvb api without DELSYS support */
286 + m_delsys[SYS_DVBS2X] = true;
289 - eDebugNoSimulate("setSlotInfo for dvb frontend %d to slotid %d, descr %s, need rotorworkaround %s, enabled %s, DVB-S2 %s, DVB-T2 %s",
290 - m_dvbid, m_slotid, m_description, m_need_rotor_workaround ? "Yes" : "No", Enabled == Py_True ? "Yes" : "No", IsDVBS2 == Py_True ? "Yes" : "No", IsDVBT2 == Py_True ? "Yes" : "No" );
291 + eDebugNoSimulate("setSlotInfo for dvb frontend %d to slotid %d, descr %s, need rotorworkaround %s, enabled %s, DVB-S2 %s, DVB-T2 %s, DVB-S2X %s",
292 + m_dvbid, m_slotid, m_description, m_need_rotor_workaround ? "Yes" : "No", Enabled == Py_True ? "Yes" : "No", IsDVBS2 == Py_True ? "Yes" : "No", IsDVBT2 == Py_True ? "Yes" : "No", IsDVBS2X == Py_True ? "Yes" : "No");
295 PyErr_SetString(PyExc_StandardError,
296 diff --git a/lib/dvb/frontendparms.h b/lib/dvb/frontendparms.h
297 index c4989fbc..c941ca69 100644
298 --- a/lib/dvb/frontendparms.h
299 +++ b/lib/dvb/frontendparms.h
300 @@ -21,15 +21,19 @@ struct eDVBFrontendParametersSatellite
304 - 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_None=15
305 + FEC_Auto=0, FEC_1_2=1, FEC_2_3=2, FEC_3_4=3, FEC_5_6=4, FEC_7_8=5, FEC_8_9=6, FEC_3_5=7, FEC_4_5=8, FEC_9_10=9, FEC_None=15,
306 + FEC_13_45=16, FEC_9_20=17, FEC_11_20=18, FEC_23_36=19, FEC_25_36=20,
307 + FEC_13_18=21, FEC_26_45=22, FEC_28_45=23, FEC_7_9=24, FEC_77_90=25,
308 + FEC_32_45=26, FEC_11_15=27, FEC_1_2_L=28, FEC_8_15_L=29, FEC_3_5_L=30,
309 + FEC_2_3_L=31, FEC_5_9_L=32, FEC_26_45_L=33
313 - System_DVB_S, System_DVB_S2
314 + System_DVB_S, System_DVB_S2, System_DVB_S2X
318 - Modulation_Auto, Modulation_QPSK, Modulation_8PSK, Modulation_QAM16
319 + Modulation_Auto, Modulation_QPSK, Modulation_8PSK, Modulation_QAM16, Modulation_16APSK, Modulation_32APSK, Modulation_8APSK
323 diff --git a/lib/dvb/scan.cpp b/lib/dvb/scan.cpp
324 index 969ed9fa..1f045df8 100644
325 --- a/lib/dvb/scan.cpp
326 +++ b/lib/dvb/scan.cpp
327 @@ -832,15 +832,41 @@ void eDVBScan::channelDone()
329 case iDVBFrontend::feSatellite:
331 + char system_name[255];
332 + char modulation_name[255];
333 + memset(system_name, 0, sizeof(system_name));
334 + memset(modulation_name, 0, sizeof(modulation_name));
336 eDVBFrontendParametersSatellite parm;
337 m_ch_current->getDVBS(parm);
339 + if (parm.system == eDVBFrontendParametersSatellite::System_DVB_S2)
340 + strcpy(system_name, "DVB-S2");
341 + else if (parm.system == eDVBFrontendParametersSatellite::System_DVB_S2X)
342 + strcpy(system_name, "DVB-S2X");
344 + strcpy(system_name, "DVB-S");
346 + if (parm.modulation == eDVBFrontendParametersSatellite::Modulation_QPSK)
347 + strcpy(modulation_name, "QPSK");
348 + else if (parm.modulation == eDVBFrontendParametersSatellite::Modulation_8PSK)
349 + strcpy(modulation_name, "8PSK");
350 + else if (parm.modulation == eDVBFrontendParametersSatellite::Modulation_8APSK)
351 + strcpy(modulation_name, "8APSK");
352 + else if (parm.modulation == eDVBFrontendParametersSatellite::Modulation_16APSK)
353 + strcpy(modulation_name, "16APSK");
354 + else if (parm.modulation == eDVBFrontendParametersSatellite::Modulation_32APSK)
355 + strcpy(modulation_name, "32APSK");
357 + strcpy(modulation_name, "8PSK");
359 snprintf(sname, 255, "%d%c SID 0x%02x",
361 parm.polarisation ? 'V' : 'H',
362 m_pmt_in_progress->first);
363 snprintf(pname, 255, "%s %s %d%c %d.%d°%c",
364 - parm.system ? "DVB-S2" : "DVB-S",
365 - parm.modulation == 1 ? "QPSK" : "8PSK",
369 parm.polarisation ? 'V' : 'H',
370 parm.orbital_position/10,
371 diff --git a/lib/python/Components/NimManager.py b/lib/python/Components/NimManager.py
372 index b92ad92b..d726fece 100755
373 --- a/lib/python/Components/NimManager.py
374 +++ b/lib/python/Components/NimManager.py
375 @@ -153,7 +153,7 @@ class SecConfigure:
377 for slot in nim_slots:
378 if slot.type is not None:
379 - used_nim_slots.append((slot.slot, slot.description, slot.config.configMode.value != "nothing" and True or False, slot.isCompatible("DVB-S2"), slot.isCompatible("DVB-T2"), slot.frontend_id is None and -1 or slot.frontend_id))
380 + used_nim_slots.append((slot.slot, slot.description, slot.config.configMode.value != "nothing" and True or False, slot.isCompatible("DVB-S2"), slot.isCompatible("DVB-T2"), slot.isCompatible("DVB-S2X"), slot.frontend_id is None and -1 or slot.frontend_id))
381 eDVBResourceManager.getInstance().setFrontendSlotInformations(used_nim_slots)
383 for slot in nim_slots:
384 @@ -510,7 +510,7 @@ class NIM(object):
385 def __init__(self, slot, type, description, has_outputs = True, internally_connectable = None, multi_type = {}, frontend_id = None, i2c = None, is_empty = False):
388 - if type not in ("DVB-S", "DVB-C", "DVB-T", "DVB-S2", "DVB-T2", None):
389 + if type not in ("DVB-S", "DVB-C", "DVB-T", "DVB-S2", "DVB-T2", "DVB-S2X", None):
390 print "warning: unknown NIM type %s, not using." % type
393 @@ -528,7 +528,8 @@ class NIM(object):
394 "DVB-C": ("DVB-C", None),
395 "DVB-T": ("DVB-T", None),
396 "DVB-S2": ("DVB-S", "DVB-S2", None),
397 - "DVB-T2": ("DVB-T", "DVB-T2", None)
398 + "DVB-T2": ("DVB-T", "DVB-T2", None),
399 + "DVB-S2X": ("DVB-S", "DVB-S2", "DVB-S2X", None),
403 @@ -558,7 +559,8 @@ class NIM(object):
406 "DVB-S2": ("DVB-S", "DVB-S2"),
407 - "DVB-T2": ("DVB-T", "DVB-T2",)
408 + "DVB-T2": ("DVB-T", "DVB-T2",),
409 + "DVB-S2X": ("DVB-S", "DVB-S2", "DVB-S2X"),
411 return connectable[self.getType()]
413 @@ -615,6 +617,7 @@ class NIM(object):
417 + "DVB-S2X": "DVB-S2X",
421 @@ -798,13 +801,20 @@ class NimManager:
423 # get MultiType from DTV_ENUM_DELSYS
424 if entry["frontend_device"] is not None:
425 - types = [type for type in ["DVB-C", "DVB-T2", "DVB-T", "DVB-S2", "DVB-S", "ATSC"] if eDVBResourceManager.getInstance().frontendIsCompatible(entry["frontend_device"], type)]
426 + types = [type for type in ["DVB-C", "DVB-T2", "DVB-T", "DVB-S2", "DVB-S", "ATSC", "DVB-S2X"] if eDVBResourceManager.getInstance().frontendIsCompatible(entry["frontend_device"], type)]
427 if "DVB-T2" in types and "DVB-T" in types:
428 # DVB-T2 implies DVB-T support
429 types.remove("DVB-T")
430 if "DVB-S2" in types and "DVB-S" in types:
431 # DVB-S2 implies DVB-S support
432 types.remove("DVB-S")
433 + if "DVB-S2X" in types:
434 + if "DVB-S" in types:
435 + # DVB-S2X implies DVB-S support
436 + types.remove("DVB-S")
437 + if "DVB-S2" in types:
438 + # DVB-S2X implies DVB-S2 support
439 + types.remove("DVB-S2")
441 entry["multi_type"] = {}
443 @@ -908,6 +918,8 @@ class NimManager:
445 elif type == "DVB-T2":
447 + elif type == "DVB-S2X":
449 nimList = self.getNimListOfType(type, slotid)
450 for nim in nimList[:]:
451 mode = self.getNimConfig(nim)
452 @@ -921,6 +933,8 @@ class NimManager:
454 elif type == "DVB-T2":
456 + elif type == "DVB-S2X":
458 nimList = self.getNimListOfType(type, slotid)
460 for nim in nimList[:]:
461 diff --git a/lib/python/Components/ServiceScan.py b/lib/python/Components/ServiceScan.py
462 index 6a82ade0..74123861 100644
463 --- a/lib/python/Components/ServiceScan.py
464 +++ b/lib/python/Components/ServiceScan.py
465 @@ -54,9 +54,11 @@ class ServiceScan:
467 network = ("%s %d.%d %s") % (sat_name, orb_pos / 10, orb_pos % 10, h)
468 tp_text = ("%s %s %d%c / %d / %s") %( { tp.System_DVB_S : "DVB-S",
469 - tp.System_DVB_S2 : "DVB-S2" }.get(tp.system, tp.System_DVB_S),
470 + tp.System_DVB_S2 : "DVB-S2" , tp.System_DVB_S2X : "DVB-S2X"}.get(tp.system, tp.System_DVB_S),
471 { tp.Modulation_Auto : "Auto", tp.Modulation_QPSK : "QPSK",
472 - tp.Modulation_8PSK : "8PSK", tp.Modulation_QAM16 : "QAM16" }.get(tp.modulation, tp.Modulation_QPSK),
473 + tp.Modulation_8PSK : "8PSK", tp.Modulation_QAM16 : "QAM16",
474 + tp.Modulation_8APSK : "8APSK", tp.Modulation_16APSK : "16APSK",
475 + tp.Modulation_32APSK : "32APSK"}.get(tp.modulation, tp.Modulation_QPSK),
477 { tp.Polarisation_Horizontal : 'H', tp.Polarisation_Vertical : 'V', tp.Polarisation_CircularLeft : 'L',
478 tp.Polarisation_CircularRight : 'R' }.get(tp.polarisation, tp.Polarisation_Horizontal),
479 @@ -64,7 +66,11 @@ class ServiceScan:
480 { tp.FEC_Auto : "AUTO", tp.FEC_1_2 : "1/2", tp.FEC_2_3 : "2/3",
481 tp.FEC_3_4 : "3/4", tp.FEC_5_6 : "5/6", tp.FEC_7_8 : "7/8",
482 tp.FEC_8_9 : "8/9", tp.FEC_3_5 : "3/5", tp.FEC_4_5 : "4/5",
483 - tp.FEC_9_10 : "9/10", tp.FEC_None : "NONE" }.get(tp.fec, tp.FEC_Auto))
484 + tp.FEC_9_10 : "9/10", tp.FEC_None : "NONE",
485 + tp.FEC_13_45 : "13/45", tp.FEC_9_20 : "9/20", tp.FEC_11_20 : "11/20", tp.FEC_23_36 : "23/36", tp.FEC_25_36 : "25/36",
486 + tp.FEC_13_18 : "13/18", tp.FEC_26_45 : "26/45", tp.FEC_28_45 : "28/45", tp.FEC_7_9 : "7/9", tp.FEC_77_90 : "77/90",
487 + tp.FEC_32_45 : "32/45", tp.FEC_11_15 : "11/15", tp.FEC_1_2_L : "1/2-L", tp.FEC_8_15_L : "8/15-L", tp.FEC_3_5_L : "3/5-L",
488 + tp.FEC_2_3_L : "2/3-L", tp.FEC_5_9_L : "5/9-L", tp.FEC_26_45_L : "26/45-L"}.get(tp.fec, tp.FEC_Auto))
489 elif tp_type == iDVBFrontend.feCable:
491 tp = transponder.getDVBC()
492 diff --git a/lib/python/Plugins/SystemPlugins/Blindscan/plugin.py b/lib/python/Plugins/SystemPlugins/Blindscan/plugin.py
493 index 82ce819a..5215a4b8 100644
494 --- a/lib/python/Plugins/SystemPlugins/Blindscan/plugin.py
495 +++ b/lib/python/Plugins/SystemPlugins/Blindscan/plugin.py
496 @@ -199,7 +199,7 @@ class Blindscan(ConfigListScreen, Screen):
497 defaultSat["inversion"] = frontendData.get("inversion", eDVBFrontendParametersSatellite.Inversion_Unknown)
498 defaultSat["symbolrate"] = frontendData.get("symbol_rate", 0) / 1000
499 defaultSat["polarization"] = frontendData.get("polarization", eDVBFrontendParametersSatellite.Polarisation_Horizontal)
500 - if defaultSat["system"] == eDVBFrontendParametersSatellite.System_DVB_S2:
501 + if defaultSat["system"] in (eDVBFrontendParametersSatellite.System_DVB_S2, eDVBFrontendParametersSatellite.System_DVB_S2X):
502 defaultSat["fec_s2"] = frontendData.get("fec_inner", eDVBFrontendParametersSatellite.FEC_Auto)
503 defaultSat["rolloff"] = frontendData.get("rolloff", eDVBFrontendParametersSatellite.RollOff_alpha_0_35)
504 defaultSat["pilot"] = frontendData.get("pilot", eDVBFrontendParametersSatellite.Pilot_Unknown)
505 @@ -305,7 +305,7 @@ class Blindscan(ConfigListScreen, Screen):
507 if cur == self.tunerEntry or \
508 cur == self.systemEntry or \
509 - (self.modulationEntry and self.systemEntry[1].value == eDVBFrontendParametersSatellite.System_DVB_S2 and cur == self.modulationEntry):
510 + (self.modulationEntry and (self.systemEntry[1].value in (eDVBFrontendParametersSatellite.System_DVB_S2, eDVBFrontendParametersSatellite.System_DVB_S2X)) and cur == self.modulationEntry):
513 def checkSettings(self):
514 @@ -506,7 +506,8 @@ class Blindscan(ConfigListScreen, Screen):
516 parm = eDVBFrontendParametersSatellite()
517 sys = { "DVB-S" : eDVBFrontendParametersSatellite.System_DVB_S,
518 - "DVB-S2" : eDVBFrontendParametersSatellite.System_DVB_S2}
519 + "DVB-S2" : eDVBFrontendParametersSatellite.System_DVB_S2,
520 + "DVB-S2X" : eDVBFrontendParametersSatellite.System_DVB_S2X}
521 qam = { "QPSK" : parm.Modulation_QPSK,
522 "8PSK" : parm.Modulation_8PSK}
523 inv = { "INVERSION_OFF" : parm.Inversion_Off,
524 @@ -521,7 +522,11 @@ class Blindscan(ConfigListScreen, Screen):
525 "FEC_8_9" : parm.FEC_8_9,
526 "FEC_3_5" : parm.FEC_3_5,
527 "FEC_9_10" : parm.FEC_9_10,
528 - "FEC_NONE" : parm.FEC_None}
529 + "FEC_NONE" : parm.FEC_None,
530 + "FEC_13_45" : parm.FEC_13_45, "FEC_9_20" : parm.FEC_9_20, "FEC_11_20" : parm.FEC_11_20, "FEC_23_36" : parm.FEC_23_36, "FEC_25_36" : parm.FEC_25_36,
531 + "FEC_13_18" : parm.FEC_13_18, "FEC_26_45" : parm.FEC_26_45, "FEC_28_45" : parm.FEC_28_45, "FEC_7_9" : parm.FEC_7_9, "FEC_77_90" : parm.FEC_77_90,
532 + "FEC_32_45" : parm.FEC_32_45, "FEC_11_15" : parm.FEC_11_15, "FEC_1_2_L" : parm.FEC_1_2_L, "FEC_8_15_L" : parm.FEC_8_15_L, "FEC_3_5_L" : parm.FEC_3_5_L,
533 + "FEC_2_3_L" : parm.FEC_2_3_L, "FEC_5_9_L" : parm.FEC_5_9_L, "FEC_26_45_L" : parm.FEC_26_45_L}
534 roll ={ "ROLLOFF_20" : parm.RollOff_alpha_0_20,
535 "ROLLOFF_25" : parm.RollOff_alpha_0_25,
536 "ROLLOFF_35" : parm.RollOff_alpha_0_35}
537 diff --git a/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py b/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py
538 index e0971173..b94a8819 100644
539 --- a/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py
540 +++ b/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py
541 @@ -433,7 +433,12 @@ class TunerScreen(ScanSetup):
542 self.systemEntry = None
544 if tuning.type.value == "manual_transponder":
545 - if nim.isCompatible("DVB-S2"):
546 + scan_sat_system_value = self.scan_sat.system.value
547 + if nim.isCompatible("DVB-S2X"):
548 + scan_sat_system_value = self.scan_sat.system_dvbs2x.value
549 + self.systemEntry = getConfigListEntry(_('System'), self.scan_sat.system_dvbs2x)
550 + self.list.append(self.systemEntry)
551 + elif nim.isCompatible("DVB-S2"):
552 self.systemEntry = getConfigListEntry(_('System'), self.scan_sat.system)
553 self.list.append(self.systemEntry)
555 @@ -443,21 +448,39 @@ class TunerScreen(ScanSetup):
556 self.list.append(getConfigListEntry(_('Inversion'), self.scan_sat.inversion))
557 self.list.append(getConfigListEntry(_('Symbol rate'), self.scan_sat.symbolrate))
558 self.list.append(getConfigListEntry(_('Polarization'), self.scan_sat.polarization))
559 - if self.scan_sat.system.value == eDVBFrontendParametersSatellite.System_DVB_S:
560 + if scan_sat_system_value == eDVBFrontendParametersSatellite.System_DVB_S:
561 self.list.append(getConfigListEntry(_("FEC"), self.scan_sat.fec))
562 - elif self.scan_sat.system.value == eDVBFrontendParametersSatellite.System_DVB_S2:
563 + elif scan_sat_system_value == eDVBFrontendParametersSatellite.System_DVB_S2:
564 self.list.append(getConfigListEntry(_("FEC"), self.scan_sat.fec_s2))
565 self.modulationEntry = getConfigListEntry(_('Modulation'), self.scan_sat.modulation)
566 self.list.append(self.modulationEntry)
567 self.list.append(getConfigListEntry(_('Roll-off'), self.scan_sat.rolloff))
568 self.list.append(getConfigListEntry(_('Pilot'), self.scan_sat.pilot))
569 + elif scan_sat_system_value == eDVBFrontendParametersSatellite.System_DVB_S2X:
570 + if self.scan_sat.modulation_dvbs2x.value == eDVBFrontendParametersSatellite.Modulation_QPSK:
571 + self.list.append(getConfigListEntry(_("FEC"), self.scan_sat.fec_s2x_qpsk))
572 + elif self.scan_sat.modulation_dvbs2x.value == eDVBFrontendParametersSatellite.Modulation_8PSK:
573 + self.list.append(getConfigListEntry(_("FEC"), self.scan_sat.fec_s2x_8psk))
574 + elif self.scan_sat.modulation_dvbs2x.value == eDVBFrontendParametersSatellite.Modulation_8APSK:
575 + self.list.append(getConfigListEntry(_("FEC"), self.scan_sat.fec_s2x_8apsk))
576 + elif self.scan_sat.modulation_dvbs2x.value == eDVBFrontendParametersSatellite.Modulation_16APSK:
577 + self.list.append(getConfigListEntry(_("FEC"), self.scan_sat.fec_s2x_16apsk))
578 + elif self.scan_sat.modulation_dvbs2x.value == eDVBFrontendParametersSatellite.Modulation_32APSK:
579 + self.list.append(getConfigListEntry(_("FEC"), self.scan_sat.fec_s2x_32apsk))
580 + self.modulationEntry = getConfigListEntry(_('Modulation'), self.scan_sat.modulation_dvbs2x)
581 + self.list.append(self.modulationEntry)
582 + self.list.append(getConfigListEntry(_('Roll-off'), self.scan_sat.rolloff))
583 + self.list.append(getConfigListEntry(_('Pilot'), self.scan_sat.pilot))
584 elif tuning.type.value == "predefined_transponder":
585 self.list.append(getConfigListEntry(_("Transponder"), tuning.transponder))
586 self["config"].list = self.list
587 self["config"].l.setList(self.list)
590 - if self["config"].getCurrent() in (self.typeOfTuningEntry, self.satEntry, self.systemEntry):
591 + cur = self["config"].getCurrent()
592 + if cur in (self.typeOfTuningEntry, self.satEntry, self.systemEntry) or \
593 + (self.modulationEntry and (cur == self.modulationEntry) and \
594 + self.systemEntry and (self.systemEntry[1].value == eDVBFrontendParametersSatellite.System_DVB_S2X)):
597 def createConfig(self, foo):
598 @@ -499,41 +522,49 @@ class TunerScreen(ScanSetup):
626 + 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", \
627 + "FEC Unknown", "FEC Unknown", "FEC Unknown", "FEC Unknown", "FEC Unknown", "FEC None", \
628 + "FEC_13_45", "FEC_9_20", "FEC_11_20", "FEC_23_36", "FEC_25_36", \
629 + "FEC_13_18", "FEC_26_45", "FEC_28_45", "FEC_7_9", "FEC_77_90", \
630 + "FEC_32_45", "FEC_11_15", "FEC_1_2_L", "FEC_8_15_L", "FEC_3_5_L", \
631 + "FEC_2_3_L", "FEC_5_9_L", "FEC_26_45_L")
632 + if x[4] > len(fec_desc)-1:
635 + fec = fec_desc[x[4]]
636 tps.append(str(x[1]) + "," + str(x[2]) + "," + pol + "," + fec)
637 tuning.transponder = ConfigSelection(choices=tps)
640 returnvalue = (0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
641 satpos = int(tuning.sat.value)
642 + nim = nimmanager.nim_slots[self.feid]
643 if tuning.type.value == "manual_transponder":
644 - if self.scan_sat.system.value == eDVBFrontendParametersSatellite.System_DVB_S2:
645 + system = self.scan_sat.system.value
646 + modulation = self.scan_sat.modulation.value
647 + if nim.isCompatible("DVB-S2X"):
648 + system = self.scan_sat.system_dvbs2x.value
649 + modulation = self.scan_sat.modulation_dvbs2x.value
651 + if system == eDVBFrontendParametersSatellite.System_DVB_S:
652 + fec = self.scan_sat.fec.value
653 + elif system == eDVBFrontendParametersSatellite.System_DVB_S2:
654 fec = self.scan_sat.fec_s2.value
655 + elif system == eDVBFrontendParametersSatellite.System_DVB_S2X:
656 + if modulation == eDVBFrontendParametersSatellite.Modulation_QPSK:
657 + fec = self.scan_sat.fec_s2x_qpsk.value
658 + elif modulation == eDVBFrontendParametersSatellite.Modulation_8PSK:
659 + fec = self.scan_sat.fec_s2x_8psk.value
660 + elif modulation == eDVBFrontendParametersSatellite.Modulation_8APSK:
661 + fec = self.scan_sat.fec_s2x_8apsk.value
662 + elif modulation == eDVBFrontendParametersSatellite.Modulation_16APSK:
663 + fec = self.scan_sat.fec_s2x_16apsk.value
664 + elif modulation == eDVBFrontendParametersSatellite.Modulation_32APSK:
665 + fec = self.scan_sat.fec_s2x_32apsk.value
667 - fec = self.scan_sat.fec.value
668 + fec = self.scan_sat.fec_s2.value
671 self.scan_sat.frequency.value,
672 self.scan_sat.symbolrate.value,
673 @@ -541,8 +572,8 @@ class TunerScreen(ScanSetup):
675 self.scan_sat.inversion.value,
677 - self.scan_sat.system.value,
678 - self.scan_sat.modulation.value,
681 self.scan_sat.rolloff.value,
682 self.scan_sat.pilot.value)
683 elif tuning.type.value == "predefined_transponder":
684 diff --git a/lib/python/Plugins/SystemPlugins/Satfinder/plugin.py b/lib/python/Plugins/SystemPlugins/Satfinder/plugin.py
685 index e611ca53..a87ca26f 100644
686 --- a/lib/python/Plugins/SystemPlugins/Satfinder/plugin.py
687 +++ b/lib/python/Plugins/SystemPlugins/Satfinder/plugin.py
688 @@ -71,7 +71,12 @@ class Satfinder(ScanSetup):
690 self.systemEntry = None
691 if self.tuning_type.value == "manual_transponder":
692 - if nim.isCompatible("DVB-S2"):
693 + scan_sat_system_value = self.scan_sat.system.value
694 + if nim.isCompatible("DVB-S2X"):
695 + scan_sat_system_value = self.scan_sat.system_dvbs2x.value
696 + self.systemEntry = getConfigListEntry(_('System'), self.scan_sat.system_dvbs2x)
697 + self.list.append(self.systemEntry)
698 + elif nim.isCompatible("DVB-S2"):
699 self.systemEntry = getConfigListEntry(_('System'), self.scan_sat.system)
700 self.list.append(self.systemEntry)
702 @@ -81,14 +86,29 @@ class Satfinder(ScanSetup):
703 self.list.append(getConfigListEntry(_('Inversion'), self.scan_sat.inversion))
704 self.list.append(getConfigListEntry(_('Symbol rate'), self.scan_sat.symbolrate))
705 self.list.append(getConfigListEntry(_('Polarization'), self.scan_sat.polarization))
706 - if self.scan_sat.system.value == eDVBFrontendParametersSatellite.System_DVB_S:
707 + if scan_sat_system_value == eDVBFrontendParametersSatellite.System_DVB_S:
708 self.list.append(getConfigListEntry(_("FEC"), self.scan_sat.fec))
709 - elif self.scan_sat.system.value == eDVBFrontendParametersSatellite.System_DVB_S2:
710 + elif scan_sat_system_value == eDVBFrontendParametersSatellite.System_DVB_S2:
711 self.list.append(getConfigListEntry(_("FEC"), self.scan_sat.fec_s2))
712 self.modulationEntry = getConfigListEntry(_('Modulation'), self.scan_sat.modulation)
713 self.list.append(self.modulationEntry)
714 self.list.append(getConfigListEntry(_('Roll-off'), self.scan_sat.rolloff))
715 self.list.append(getConfigListEntry(_('Pilot'), self.scan_sat.pilot))
716 + elif scan_sat_system_value == eDVBFrontendParametersSatellite.System_DVB_S2X:
717 + if self.scan_sat.modulation_dvbs2x.value == eDVBFrontendParametersSatellite.Modulation_QPSK:
718 + self.list.append(getConfigListEntry(_("FEC"), self.scan_sat.fec_s2x_qpsk))
719 + elif self.scan_sat.modulation_dvbs2x.value == eDVBFrontendParametersSatellite.Modulation_8PSK:
720 + self.list.append(getConfigListEntry(_("FEC"), self.scan_sat.fec_s2x_8psk))
721 + elif self.scan_sat.modulation_dvbs2x.value == eDVBFrontendParametersSatellite.Modulation_8APSK:
722 + self.list.append(getConfigListEntry(_("FEC"), self.scan_sat.fec_s2x_8apsk))
723 + elif self.scan_sat.modulation_dvbs2x.value == eDVBFrontendParametersSatellite.Modulation_16APSK:
724 + self.list.append(getConfigListEntry(_("FEC"), self.scan_sat.fec_s2x_16apsk))
725 + elif self.scan_sat.modulation_dvbs2x.value == eDVBFrontendParametersSatellite.Modulation_32APSK:
726 + self.list.append(getConfigListEntry(_("FEC"), self.scan_sat.fec_s2x_32apsk))
727 + self.modulationEntry = getConfigListEntry(_('Modulation'), self.scan_sat.modulation_dvbs2x)
728 + self.list.append(self.modulationEntry)
729 + self.list.append(getConfigListEntry(_('Roll-off'), self.scan_sat.rolloff))
730 + self.list.append(getConfigListEntry(_('Pilot'), self.scan_sat.pilot))
731 elif self.tuning_transponder and self.tuning_type.value == "predefined_transponder":
732 self.list.append(getConfigListEntry(_("Transponder"), self.tuning_transponder))
733 self["config"].list = self.list
734 @@ -101,6 +121,9 @@ class Satfinder(ScanSetup):
735 elif cur == self.satEntry:
738 + elif self.modulationEntry and (cur == self.modulationEntry) and \
739 + self.systemEntry and (self.systemEntry[1].value == eDVBFrontendParametersSatellite.System_DVB_S2X):
742 def sat_changed(self, config_element):
744 @@ -109,11 +132,29 @@ class Satfinder(ScanSetup):
745 def retune(self, configElement):
746 returnvalue = (0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
747 satpos = int(self.tuning_sat.value)
748 + nim = nimmanager.nim_slots[self.feid]
749 if self.tuning_type.value == "manual_transponder":
750 - if self.scan_sat.system.value == eDVBFrontendParametersSatellite.System_DVB_S2:
751 - fec = self.scan_sat.fec_s2.value
753 + system = self.scan_sat.system.value
754 + modulation = self.scan_sat.modulation.value
755 + if nim.isCompatible("DVB-S2X"):
756 + system = self.scan_sat.system_dvbs2x.value
757 + modulation = self.scan_sat.modulation_dvbs2x.value
759 + if system == eDVBFrontendParametersSatellite.System_DVB_S:
760 fec = self.scan_sat.fec.value
761 + elif system == eDVBFrontendParametersSatellite.System_DVB_S2:
762 + fec = self.scan_sat.fec_s2.value
763 + elif system == eDVBFrontendParametersSatellite.System_DVB_S2X:
764 + if modulation == eDVBFrontendParametersSatellite.Modulation_QPSK:
765 + fec = self.scan_sat.fec_s2x_qpsk.value
766 + elif modulation == eDVBFrontendParametersSatellite.Modulation_8PSK:
767 + fec = self.scan_sat.fec_s2x_8psk.value
768 + elif modulation == eDVBFrontendParametersSatellite.Modulation_8APSK:
769 + fec = self.scan_sat.fec_s2x_8apsk.value
770 + elif modulation == eDVBFrontendParametersSatellite.Modulation_16APSK:
771 + fec = self.scan_sat.fec_s2x_16apsk.value
772 + elif modulation == eDVBFrontendParametersSatellite.Modulation_32APSK:
773 + fec = self.scan_sat.fec_s2x_32apsk.value
775 self.scan_sat.frequency.value,
776 self.scan_sat.symbolrate.value,
777 @@ -121,8 +162,8 @@ class Satfinder(ScanSetup):
779 self.scan_sat.inversion.value,
781 - self.scan_sat.system.value,
782 - self.scan_sat.modulation.value,
785 self.scan_sat.rolloff.value,
786 self.scan_sat.pilot.value)
787 self.tune(returnvalue)
788 @@ -143,11 +184,19 @@ class Satfinder(ScanSetup):
792 - for x in (self.tuning_type, self.tuning_sat, self.scan_sat.frequency,
793 + setup_list = [self.tuning_type, self.tuning_sat, self.scan_sat.frequency,
794 self.scan_sat.inversion, self.scan_sat.symbolrate,
795 self.scan_sat.polarization, self.scan_sat.fec, self.scan_sat.pilot,
796 self.scan_sat.fec_s2, self.scan_sat.fec, self.scan_sat.modulation,
797 - self.scan_sat.rolloff, self.scan_sat.system):
798 + self.scan_sat.rolloff, self.scan_sat.system]
800 + nim = nimmanager.nim_slots[self.feid]
801 + if nim.isCompatible("DVB-S2X"):
802 + dvbs2x_setup_list = [self.scan_sat.system_dvbs2x, self.scan_sat.modulation_dvbs2x, self.scan_sat.fec_s2x_qpsk,
803 + self.scan_sat.fec_s2x_8psk, self.scan_sat.fec_s2x_8apsk, self.scan_sat.fec_s2x_16apsk, self.scan_sat.fec_s2x_32apsk]
804 + setup_list.extend(dvbs2x_setup_list)
806 + for x in setup_list:
807 x.addNotifier(self.retune, initial_call = False)
809 def updateSats(self):
810 diff --git a/lib/python/Screens/ScanSetup.py b/lib/python/Screens/ScanSetup.py
811 index 9cc6dea9..b7f57887 100644
812 --- a/lib/python/Screens/ScanSetup.py
813 +++ b/lib/python/Screens/ScanSetup.py
814 @@ -7,6 +7,7 @@ from Components.ActionMap import NumberActionMap, ActionMap
815 from Components.ConfigList import ConfigListScreen
816 from Components.NimManager import nimmanager, getConfigSatlist
817 from Components.Label import Label
818 +from Components.SystemInfo import SystemInfo
819 from Tools.Directories import resolveFilename, SCOPE_DEFAULTPARTITIONMOUNTDIR, SCOPE_DEFAULTDIR, SCOPE_DEFAULTPARTITION
820 from Tools.HardwareInfo import HardwareInfo
821 from Screens.MessageBox import MessageBox
822 @@ -601,7 +602,13 @@ class ScanSetup(ConfigListScreen, Screen, CableTransponderSearchSupport, Terrest
823 if nim.isCompatible("DVB-S"):
824 if self.scan_type.value == "single_transponder":
826 - if nim.isCompatible("DVB-S2"):
828 + scan_sat_system_value = self.scan_sat.system.value
829 + if nim.isCompatible("DVB-S2X"):
830 + scan_sat_system_value = self.scan_sat.system_dvbs2x.value
831 + self.systemEntry = getConfigListEntry(_('System'), self.scan_sat.system_dvbs2x)
832 + self.list.append(self.systemEntry)
833 + elif nim.isCompatible("DVB-S2"):
834 self.systemEntry = getConfigListEntry(_('System'), self.scan_sat.system)
835 self.list.append(self.systemEntry)
837 @@ -612,14 +619,34 @@ class ScanSetup(ConfigListScreen, Screen, CableTransponderSearchSupport, Terrest
838 self.list.append(getConfigListEntry(_('Inversion'), self.scan_sat.inversion))
839 self.list.append(getConfigListEntry(_('Symbol rate'), self.scan_sat.symbolrate))
840 self.list.append(getConfigListEntry(_('Polarization'), self.scan_sat.polarization))
841 - if self.scan_sat.system.value == eDVBFrontendParametersSatellite.System_DVB_S:
842 - self.list.append(getConfigListEntry(_("FEC"), self.scan_sat.fec))
843 - elif self.scan_sat.system.value == eDVBFrontendParametersSatellite.System_DVB_S2:
844 - self.list.append(getConfigListEntry(_("FEC"), self.scan_sat.fec_s2))
846 + if scan_sat_system_value == eDVBFrontendParametersSatellite.System_DVB_S2:
847 self.modulationEntry = getConfigListEntry(_('Modulation'), self.scan_sat.modulation)
848 self.list.append(self.modulationEntry)
849 self.list.append(getConfigListEntry(_('Roll-off'), self.scan_sat.rolloff))
850 self.list.append(getConfigListEntry(_('Pilot'), self.scan_sat.pilot))
851 + elif scan_sat_system_value == eDVBFrontendParametersSatellite.System_DVB_S2X:
852 + self.modulationEntry = getConfigListEntry(_('Modulation'), self.scan_sat.modulation_dvbs2x)
853 + self.list.append(self.modulationEntry)
854 + self.list.append(getConfigListEntry(_('Roll-off'), self.scan_sat.rolloff))
855 + self.list.append(getConfigListEntry(_('Pilot'), self.scan_sat.pilot))
857 + if scan_sat_system_value == eDVBFrontendParametersSatellite.System_DVB_S:
858 + self.list.append(getConfigListEntry(_("FEC"), self.scan_sat.fec))
859 + elif scan_sat_system_value == eDVBFrontendParametersSatellite.System_DVB_S2:
860 + self.list.append(getConfigListEntry(_("FEC"), self.scan_sat.fec_s2))
861 + elif scan_sat_system_value == eDVBFrontendParametersSatellite.System_DVB_S2X:
862 + if self.scan_sat.modulation_dvbs2x.value == eDVBFrontendParametersSatellite.Modulation_QPSK:
863 + self.list.append(getConfigListEntry(_("FEC"), self.scan_sat.fec_s2x_qpsk))
864 + elif self.scan_sat.modulation_dvbs2x.value == eDVBFrontendParametersSatellite.Modulation_8PSK:
865 + self.list.append(getConfigListEntry(_("FEC"), self.scan_sat.fec_s2x_8psk))
866 + elif self.scan_sat.modulation_dvbs2x.value == eDVBFrontendParametersSatellite.Modulation_8APSK:
867 + self.list.append(getConfigListEntry(_("FEC"), self.scan_sat.fec_s2x_8apsk))
868 + elif self.scan_sat.modulation_dvbs2x.value == eDVBFrontendParametersSatellite.Modulation_16APSK:
869 + self.list.append(getConfigListEntry(_("FEC"), self.scan_sat.fec_s2x_16apsk))
870 + elif self.scan_sat.modulation_dvbs2x.value == eDVBFrontendParametersSatellite.Modulation_32APSK:
871 + self.list.append(getConfigListEntry(_("FEC"), self.scan_sat.fec_s2x_32apsk))
873 elif self.scan_type.value == "single_satellite":
875 print self.scan_satselection[index_to_scan]
876 @@ -686,43 +713,18 @@ class ScanSetup(ConfigListScreen, Screen, CableTransponderSearchSupport, Terrest
878 cur = self["config"].getCurrent()
883 if cur == self.typeOfScanEntry or \
884 cur == self.tunerEntry or \
885 cur == self.systemEntry or \
886 - (self.modulationEntry and self.systemEntry[1].value == eDVBFrontendParametersSatellite.System_DVB_S2 and cur == self.modulationEntry):
887 + (self.modulationEntry and \
888 + (self.systemEntry[1].value in (eDVBFrontendParametersSatellite.System_DVB_S2, eDVBFrontendParametersSatellite.System_DVB_S2X)) and \
889 + cur == self.modulationEntry):
892 def createConfig(self, frontendData):
893 - #("Type", frontendData["system"], TYPE_TEXT),
894 - #("Modulation", frontendData["modulation"], TYPE_TEXT),
895 - #("Orbital position", frontendData["orbital_position"], TYPE_VALUE_DEC),
896 - #("Frequency", frontendData["frequency"], TYPE_VALUE_DEC),
897 - #("Symbolrate", frontendData["symbol_rate"], TYPE_VALUE_DEC),
898 - #("Polarization", frontendData["polarization"], TYPE_TEXT),
899 - #("Inversion", frontendData["inversion"], TYPE_TEXT),
900 - #("FEC inner", frontendData["fec_inner"], TYPE_TEXT),
902 - #elif frontendData["tuner_type"] == "DVB-C":
903 - #return ( ("NIM", ['A', 'B', 'C', 'D'][frontendData["tuner_number"]], TYPE_TEXT),
904 - #("Type", frontendData["tuner_type"], TYPE_TEXT),
905 - #("Frequency", frontendData["frequency"], TYPE_VALUE_DEC),
906 - #("Symbolrate", frontendData["symbol_rate"], TYPE_VALUE_DEC),
907 - #("Modulation", frontendData["modulation"], TYPE_TEXT),
908 - #("Inversion", frontendData["inversion"], TYPE_TEXT),
909 - # ("FEC inner", frontendData["fec_inner"], TYPE_TEXT),
911 - #elif frontendData["tuner_type"] == "DVB-T":
912 - #return ( ("NIM", ['A', 'B', 'C', 'D'][frontendData["tuner_number"]], TYPE_TEXT),
913 - #("Type", frontendData["tuner_type"], TYPE_TEXT),
914 - #("Frequency", frontendData["frequency"], TYPE_VALUE_DEC),
915 - #("Inversion", frontendData["inversion"], TYPE_TEXT),
916 - #("Bandwidth", frontendData["bandwidth"], TYPE_VALUE_DEC),
917 - #("CodeRateLP", frontendData["code_rate_lp"], TYPE_TEXT),
918 - #("CodeRateHP", frontendData["code_rate_hp"], TYPE_TEXT),
919 - #("Constellation", frontendData["constellation"], TYPE_TEXT),
920 - #("Transmission Mode", frontendData["transmission_mode"], TYPE_TEXT),
921 - #("Guard Interval", frontendData["guard_interval"], TYPE_TEXT),
922 - #("Hierarchy Inform.", frontendData["hierarchy_information"], TYPE_TEXT),
925 "system": eDVBFrontendParametersSatellite.System_DVB_S,
926 @@ -732,7 +734,13 @@ class ScanSetup(ConfigListScreen, Screen, CableTransponderSearchSupport, Terrest
927 "polarization": eDVBFrontendParametersSatellite.Polarisation_Horizontal,
928 "fec": eDVBFrontendParametersSatellite.FEC_Auto,
929 "fec_s2": eDVBFrontendParametersSatellite.FEC_9_10,
930 - "modulation": eDVBFrontendParametersSatellite.Modulation_QPSK }
931 + "fec_s2x_qpsk": eDVBFrontendParametersSatellite.FEC_13_45,
932 + "fec_s2x_8psk": eDVBFrontendParametersSatellite.FEC_23_36,
933 + "fec_s2x_8apsk": eDVBFrontendParametersSatellite.FEC_5_9_L,
934 + "fec_s2x_16apsk": eDVBFrontendParametersSatellite.FEC_1_2_L,
935 + "fec_s2x_32apsk": eDVBFrontendParametersSatellite.FEC_2_3_L,
936 + "modulation": eDVBFrontendParametersSatellite.Modulation_QPSK,
937 + "modulation_s2x": eDVBFrontendParametersSatellite.Modulation_QPSK}
940 "inversion": eDVBFrontendParametersCable.Inversion_Unknown,
941 @@ -760,14 +768,34 @@ class ScanSetup(ConfigListScreen, Screen, CableTransponderSearchSupport, Terrest
942 defaultSat["inversion"] = frontendData.get("inversion", eDVBFrontendParametersSatellite.Inversion_Unknown)
943 defaultSat["symbolrate"] = frontendData.get("symbol_rate", 0) / 1000
944 defaultSat["polarization"] = frontendData.get("polarization", eDVBFrontendParametersSatellite.Polarisation_Horizontal)
945 + defaultSat["orbpos"] = frontendData.get("orbital_position", 0)
947 + defaultSat["modulation"] = frontendData.get("modulation", eDVBFrontendParametersSatellite.Modulation_QPSK)
948 + defaultSat["modulation_s2x"] = frontendData.get("modulation", eDVBFrontendParametersSatellite.Modulation_QPSK)
950 + if defaultSat["modulation"] > eDVBFrontendParametersSatellite.Modulation_8PSK:
951 + defaultSat["modulation"] = eDVBFrontendParametersSatellite.Modulation_8PSK
953 if defaultSat["system"] == eDVBFrontendParametersSatellite.System_DVB_S2:
954 defaultSat["fec_s2"] = frontendData.get("fec_inner", eDVBFrontendParametersSatellite.FEC_Auto)
955 - defaultSat["rolloff"] = frontendData.get("rolloff", eDVBFrontendParametersSatellite.RollOff_alpha_0_35)
956 - defaultSat["pilot"] = frontendData.get("pilot", eDVBFrontendParametersSatellite.Pilot_Unknown)
957 + elif defaultSat["system"] == eDVBFrontendParametersSatellite.System_DVB_S2X:
958 + if defaultSat["modulation_s2x"] == eDVBFrontendParametersSatellite.Modulation_QPSK:
959 + defaultSat["fec_s2x_qpsk"] = frontendData.get("fec_inner", eDVBFrontendParametersSatellite.FEC_13_45)
960 + elif defaultSat["modulation_s2x"] == eDVBFrontendParametersSatellite.Modulation_8PSK:
961 + defaultSat["fec_s2x_8psk"] = frontendData.get("fec_inner", eDVBFrontendParametersSatellite.FEC_23_36)
962 + elif defaultSat["modulation_s2x"] == eDVBFrontendParametersSatellite.Modulation_8APSK:
963 + defaultSat["fec_s2x_8apsk"] = frontendData.get("fec_inner", eDVBFrontendParametersSatellite.FEC_5_9_L)
964 + elif defaultSat["modulation_s2x"] == eDVBFrontendParametersSatellite.Modulation_16APSK:
965 + defaultSat["fec_s2x_16apsk"] = frontendData.get("fec_inner", eDVBFrontendParametersSatellite.FEC_1_2_L)
966 + elif defaultSat["modulation_s2x"] == eDVBFrontendParametersSatellite.Modulation_32APSK:
967 + defaultSat["fec_s2x_32apsk"] = frontendData.get("fec_inner", eDVBFrontendParametersSatellite.FEC_2_3_L)
969 defaultSat["fec"] = frontendData.get("fec_inner", eDVBFrontendParametersSatellite.FEC_Auto)
970 - defaultSat["modulation"] = frontendData.get("modulation", eDVBFrontendParametersSatellite.Modulation_QPSK)
971 - defaultSat["orbpos"] = frontendData.get("orbital_position", 0)
973 + if defaultSat["system"] in (eDVBFrontendParametersSatellite.System_DVB_S2, eDVBFrontendParametersSatellite.System_DVB_S2X):
974 + defaultSat["rolloff"] = frontendData.get("rolloff", eDVBFrontendParametersSatellite.RollOff_alpha_0_35)
975 + defaultSat["pilot"] = frontendData.get("pilot", eDVBFrontendParametersSatellite.Pilot_Unknown)
977 elif ttype == "DVB-C":
978 defaultCab["frequency"] = frontendData.get("frequency", 0) / 1000
979 defaultCab["symbolrate"] = frontendData.get("symbol_rate", 0) / 1000
980 @@ -822,9 +850,17 @@ class ScanSetup(ConfigListScreen, Screen, CableTransponderSearchSupport, Terrest
981 self.scan_ber.enabled = False
984 - self.scan_sat.system = ConfigSelection(default = defaultSat["system"], choices = [
986 + (eDVBFrontendParametersSatellite.System_DVB_S, _("DVB-S")),
987 + (eDVBFrontendParametersSatellite.System_DVB_S2, _("DVB-S2"))]
989 + sat_choices_dvbs2x = [
990 (eDVBFrontendParametersSatellite.System_DVB_S, _("DVB-S")),
991 - (eDVBFrontendParametersSatellite.System_DVB_S2, _("DVB-S2"))])
992 + (eDVBFrontendParametersSatellite.System_DVB_S2, _("DVB-S2")),
993 + (eDVBFrontendParametersSatellite.System_DVB_S2X, _("DVB-S2X"))]
995 + self.scan_sat.system = ConfigSelection(default = defaultSat["system"], choices = sat_choices)
996 + self.scan_sat.system_dvbs2x = ConfigSelection(default = defaultSat["system"], choices = sat_choices_dvbs2x)
997 self.scan_sat.frequency = ConfigInteger(default = defaultSat["frequency"], limits = (1, 99999))
998 self.scan_sat.inversion = ConfigSelection(default = defaultSat["inversion"], choices = [
999 (eDVBFrontendParametersSatellite.Inversion_Off, _("Off")),
1000 @@ -854,9 +890,51 @@ class ScanSetup(ConfigListScreen, Screen, CableTransponderSearchSupport, Terrest
1001 (eDVBFrontendParametersSatellite.FEC_7_8, "7/8"),
1002 (eDVBFrontendParametersSatellite.FEC_8_9, "8/9"),
1003 (eDVBFrontendParametersSatellite.FEC_9_10, "9/10")])
1005 + self.scan_sat.fec_s2x_qpsk = ConfigSelection(default = defaultSat["fec_s2x_qpsk"], choices = [
1006 + (eDVBFrontendParametersSatellite.FEC_13_45, "13/45"),
1007 + (eDVBFrontendParametersSatellite.FEC_9_20, "9/20"),
1008 + (eDVBFrontendParametersSatellite.FEC_11_20, "11/20")])
1010 + self.scan_sat.fec_s2x_8psk = ConfigSelection(default = defaultSat["fec_s2x_8psk"], choices = [
1011 + (eDVBFrontendParametersSatellite.FEC_23_36, "23/36"),
1012 + (eDVBFrontendParametersSatellite.FEC_25_36, "25/36"),
1013 + (eDVBFrontendParametersSatellite.FEC_13_18, "13/28")])
1015 + self.scan_sat.fec_s2x_8apsk = ConfigSelection(default = defaultSat["fec_s2x_8apsk"], choices = [
1016 + (eDVBFrontendParametersSatellite.FEC_5_9_L, "5/9-L"),
1017 + (eDVBFrontendParametersSatellite.FEC_26_45_L, "26/45-L")])
1019 + self.scan_sat.fec_s2x_16apsk = ConfigSelection(default = defaultSat["fec_s2x_16apsk"], choices = [
1020 + (eDVBFrontendParametersSatellite.FEC_1_2_L, "1/2-L"),
1021 + (eDVBFrontendParametersSatellite.FEC_8_15_L, "8/15-L"),
1022 + (eDVBFrontendParametersSatellite.FEC_5_9_L, "5/9-L"),
1023 + (eDVBFrontendParametersSatellite.FEC_26_45, "26/45"),
1024 + (eDVBFrontendParametersSatellite.FEC_3_5, "3/5"),
1025 + (eDVBFrontendParametersSatellite.FEC_3_5_L, "3/5-L"),
1026 + (eDVBFrontendParametersSatellite.FEC_28_45, "28/45"),
1027 + (eDVBFrontendParametersSatellite.FEC_23_36, "23/36"),
1028 + (eDVBFrontendParametersSatellite.FEC_2_3_L, "2/3-L"),
1029 + (eDVBFrontendParametersSatellite.FEC_25_36, "25/36"),
1030 + (eDVBFrontendParametersSatellite.FEC_13_18, "13/18"),
1031 + (eDVBFrontendParametersSatellite.FEC_7_9, "7/9"),
1032 + (eDVBFrontendParametersSatellite.FEC_77_90, "77/90")])
1034 + self.scan_sat.fec_s2x_32apsk = ConfigSelection(default = defaultSat["fec_s2x_32apsk"], choices = [
1035 + (eDVBFrontendParametersSatellite.FEC_2_3_L, "2/3-L"),
1036 + (eDVBFrontendParametersSatellite.FEC_32_45, "32/45"),
1037 + (eDVBFrontendParametersSatellite.FEC_11_15, "11/15"),
1038 + (eDVBFrontendParametersSatellite.FEC_7_9, "7/9")])
1040 self.scan_sat.modulation = ConfigSelection(default = defaultSat["modulation"], choices = [
1041 (eDVBFrontendParametersSatellite.Modulation_QPSK, "QPSK"),
1042 (eDVBFrontendParametersSatellite.Modulation_8PSK, "8PSK")])
1043 + self.scan_sat.modulation_dvbs2x = ConfigSelection(default = defaultSat["modulation_s2x"], choices = [
1044 + (eDVBFrontendParametersSatellite.Modulation_QPSK, "QPSK"),
1045 + (eDVBFrontendParametersSatellite.Modulation_8PSK, "8PSK"),
1046 + (eDVBFrontendParametersSatellite.Modulation_8APSK, "8APSK"),
1047 + (eDVBFrontendParametersSatellite.Modulation_16APSK, "16APSK"),
1048 + (eDVBFrontendParametersSatellite.Modulation_32APSK, "32APSK")])
1049 self.scan_sat.rolloff = ConfigSelection(default = defaultSat.get("rolloff", eDVBFrontendParametersSatellite.RollOff_alpha_0_35), choices = [
1050 (eDVBFrontendParametersSatellite.RollOff_alpha_0_35, "0.35"),
1051 (eDVBFrontendParametersSatellite.RollOff_alpha_0_25, "0.25"),
1052 @@ -1072,13 +1150,34 @@ class ScanSetup(ConfigListScreen, Screen, CableTransponderSearchSupport, Terrest
1053 nimsats = self.satList[index_to_scan]
1054 selsatidx = self.scan_satselection[index_to_scan].index
1056 + modulation = self.scan_sat.modulation.value
1057 # however, the satList itself could be empty. in that case, "index" is 0 (for "None").
1059 orbpos = nimsats[selsatidx][0]
1060 - if self.scan_sat.system.value == eDVBFrontendParametersSatellite.System_DVB_S:
1062 + system = self.scan_sat.system.value
1063 + if nim.isCompatible("DVB-S2X"):
1064 + system = self.scan_sat.system_dvbs2x.value
1066 + if system == eDVBFrontendParametersSatellite.System_DVB_S:
1067 fec = self.scan_sat.fec.value
1068 + elif system == eDVBFrontendParametersSatellite.System_DVB_S2:
1069 + fec = self.scan_sat.fec_s2.value
1070 + elif system == eDVBFrontendParametersSatellite.System_DVB_S2X:
1071 + modulation = self.scan_sat.modulation_dvbs2x.value
1072 + if modulation == eDVBFrontendParametersSatellite.Modulation_QPSK:
1073 + fec = self.scan_sat.fec_s2x_qpsk.value
1074 + elif modulation == eDVBFrontendParametersSatellite.Modulation_8PSK:
1075 + fec = self.scan_sat.fec_s2x_8psk.value
1076 + elif modulation == eDVBFrontendParametersSatellite.Modulation_8APSK:
1077 + fec = self.scan_sat.fec_s2x_8apsk.value
1078 + elif modulation == eDVBFrontendParametersSatellite.Modulation_16APSK:
1079 + fec = self.scan_sat.fec_s2x_16apsk.value
1080 + elif modulation == eDVBFrontendParametersSatellite.Modulation_32APSK:
1081 + fec = self.scan_sat.fec_s2x_32apsk.value
1083 fec = self.scan_sat.fec_s2.value
1085 print "add sat transponder"
1086 self.addSatTransponder(tlist, self.scan_sat.frequency.value,
1087 self.scan_sat.symbolrate.value,
1088 @@ -1086,8 +1185,8 @@ class ScanSetup(ConfigListScreen, Screen, CableTransponderSearchSupport, Terrest
1090 self.scan_sat.inversion.value,
1092 - self.scan_sat.system.value,
1093 - self.scan_sat.modulation.value,
1096 self.scan_sat.rolloff.value,
1097 self.scan_sat.pilot.value)
1099 diff --git a/lib/python/Tools/Transponder.py b/lib/python/Tools/Transponder.py
1100 index a8829813..2b46d0e6 100644
1101 --- a/lib/python/Tools/Transponder.py
1102 +++ b/lib/python/Tools/Transponder.py
1103 @@ -22,12 +22,34 @@ def ConvertToHumanReadable(tp, type = None):
1104 eDVBFrontendParametersSatellite.FEC_3_5 : "3/5",
1105 eDVBFrontendParametersSatellite.FEC_4_5 : "4/5",
1106 eDVBFrontendParametersSatellite.FEC_8_9 : "8/9",
1107 - eDVBFrontendParametersSatellite.FEC_9_10 : "9/10"}[tp["fec_inner"]]
1108 + eDVBFrontendParametersSatellite.FEC_9_10 : "9/10",
1109 + eDVBFrontendParametersSatellite.FEC_13_45 : "13/45",
1110 + eDVBFrontendParametersSatellite.FEC_9_20 : "9/20",
1111 + eDVBFrontendParametersSatellite.FEC_11_20 : "11/20",
1112 + eDVBFrontendParametersSatellite.FEC_23_36 : "23/36",
1113 + eDVBFrontendParametersSatellite.FEC_25_36 : "25/36",
1114 + eDVBFrontendParametersSatellite.FEC_13_18 : "13/18",
1115 + eDVBFrontendParametersSatellite.FEC_26_45 : "26/45",
1116 + eDVBFrontendParametersSatellite.FEC_28_45 : "28/45",
1117 + eDVBFrontendParametersSatellite.FEC_7_9 : "7/9",
1118 + eDVBFrontendParametersSatellite.FEC_77_90 : "77/90",
1119 + eDVBFrontendParametersSatellite.FEC_32_45 : "32/45",
1120 + eDVBFrontendParametersSatellite.FEC_11_15 : "11/15",
1121 + eDVBFrontendParametersSatellite.FEC_1_2_L : "1/2-L",
1122 + eDVBFrontendParametersSatellite.FEC_8_15_L : "8/15-L",
1123 + eDVBFrontendParametersSatellite.FEC_3_5_L : "3/5-L",
1124 + eDVBFrontendParametersSatellite.FEC_2_3_L : "2/3-L",
1125 + eDVBFrontendParametersSatellite.FEC_5_9_L : "5/9-L",
1126 + eDVBFrontendParametersSatellite.FEC_26_45_L : "26/45-L"}[tp["fec_inner"]]
1127 ret["modulation"] = {
1128 eDVBFrontendParametersSatellite.Modulation_Auto : _("Auto"),
1129 eDVBFrontendParametersSatellite.Modulation_QPSK : "QPSK",
1130 eDVBFrontendParametersSatellite.Modulation_QAM16 : "QAM16",
1131 - eDVBFrontendParametersSatellite.Modulation_8PSK : "8PSK"}[tp["modulation"]]
1132 + eDVBFrontendParametersSatellite.Modulation_8PSK : "8PSK",
1133 + eDVBFrontendParametersSatellite.Modulation_16APSK : "16APSK",
1134 + eDVBFrontendParametersSatellite.Modulation_32APSK : "32APSK",
1135 + eDVBFrontendParametersSatellite.Modulation_8APSK : "8APSK",
1136 + }[tp["modulation"]]
1137 ret["orbital_position"] = nimmanager.getSatName(int(tp["orbital_position"]))
1138 ret["polarization"] = {
1139 eDVBFrontendParametersSatellite.Polarisation_Horizontal : _("Horizontal"),
1140 @@ -36,8 +58,9 @@ def ConvertToHumanReadable(tp, type = None):
1141 eDVBFrontendParametersSatellite.Polarisation_CircularRight : _("Circular right")}[tp["polarization"]]
1143 eDVBFrontendParametersSatellite.System_DVB_S : "DVB-S",
1144 - eDVBFrontendParametersSatellite.System_DVB_S2 : "DVB-S2"}[tp["system"]]
1145 - if ret["system"] == "DVB-S2":
1146 + eDVBFrontendParametersSatellite.System_DVB_S2 : "DVB-S2",
1147 + eDVBFrontendParametersSatellite.System_DVB_S2X : "DVB-S2X"}[tp["system"]]
1148 + if ret["system"] in ("DVB-S2", "DVB-S2X"):
1150 eDVBFrontendParametersSatellite.RollOff_alpha_0_35 : "0.35",
1151 eDVBFrontendParametersSatellite.RollOff_alpha_0_25 : "0.25",
1152 @@ -83,6 +106,7 @@ def ConvertToHumanReadable(tp, type = None):
1153 eDVBFrontendParametersTerrestrial.FEC_1_2 : "1/2",
1154 eDVBFrontendParametersTerrestrial.FEC_2_3 : "2/3",
1155 eDVBFrontendParametersTerrestrial.FEC_3_4 : "3/4",
1156 + eDVBFrontendParametersTerrestrial.FEC_4_5 : "4/5",
1157 eDVBFrontendParametersTerrestrial.FEC_5_6 : "5/6",
1158 eDVBFrontendParametersTerrestrial.FEC_6_7 : "6/7",
1159 eDVBFrontendParametersTerrestrial.FEC_7_8 : "7/8",
1160 @@ -92,6 +116,7 @@ def ConvertToHumanReadable(tp, type = None):
1161 eDVBFrontendParametersTerrestrial.FEC_1_2 : "1/2",
1162 eDVBFrontendParametersTerrestrial.FEC_2_3 : "2/3",
1163 eDVBFrontendParametersTerrestrial.FEC_3_4 : "3/4",
1164 + eDVBFrontendParametersTerrestrial.FEC_4_5 : "4/5",
1165 eDVBFrontendParametersTerrestrial.FEC_5_6 : "5/6",
1166 eDVBFrontendParametersTerrestrial.FEC_6_7 : "6/7",
1167 eDVBFrontendParametersTerrestrial.FEC_7_8 : "7/8",