+static void fillDictWithCableData(ePyObject dict, struct dtv_property *p)
+{
+ long tmp = 0;
+// frequency
+ tmp = p[1].u.data/1000;
+ PutToDict(dict, "frequency", tmp);
+// sysbolrate
+ PutToDict(dict, "symbol_rate", p[2].u.data);
+// inner fec
+ switch (p[3].u.data)
+ {
+ case FEC_NONE: tmp = eDVBFrontendParametersCable::FEC_None;
+ case FEC_1_2: tmp = eDVBFrontendParametersCable::FEC_1_2;
+ case FEC_2_3: tmp = eDVBFrontendParametersCable::FEC_2_3;
+ case FEC_3_4: tmp = eDVBFrontendParametersCable::FEC_3_4;
+ case FEC_5_6: tmp = eDVBFrontendParametersCable::FEC_5_6;
+ case FEC_7_8: tmp = eDVBFrontendParametersCable::FEC_7_8;
+ case FEC_8_9: tmp = eDVBFrontendParametersCable::FEC_8_9;
+ default:
+ case FEC_AUTO: tmp = eDVBFrontendParametersCable::FEC_Auto;
+ }
+ PutToDict(dict, "fec_inner", tmp);
+// modulation
+ switch (p[4].u.data)
+ {
+ case QAM_16: tmp = eDVBFrontendParametersCable::Modulation_QAM16;
+ case QAM_32: tmp = eDVBFrontendParametersCable::Modulation_QAM32;
+ case QAM_64: tmp = eDVBFrontendParametersCable::Modulation_QAM64;
+ case QAM_128: tmp = eDVBFrontendParametersCable::Modulation_QAM128;
+ case QAM_256: tmp = eDVBFrontendParametersCable::Modulation_QAM256;
+ default:
+ case QAM_AUTO: tmp = eDVBFrontendParametersCable::Modulation_Auto;
+ }
+ PutToDict(dict, "modulation", tmp);
+// inversion
+ switch (p[5].u.data)
+ {
+ case INVERSION_OFF: tmp = eDVBFrontendParametersTerrestrial::Inversion_Off;
+ case INVERSION_ON: tmp = eDVBFrontendParametersTerrestrial::Inversion_On;
+ default:
+ case INVERSION_AUTO: tmp = eDVBFrontendParametersTerrestrial::Inversion_Unknown;
+ }
+ PutToDict(dict, "inversion", tmp);
+}
+
+static void fillDictWithTerrestrialData(ePyObject dict, struct dtv_property *p)
+{
+ long tmp =0;
+// system
+ switch (p[0].u.data)
+ {
+ default:
+ case SYS_DVBT: tmp = eDVBFrontendParametersTerrestrial::System_DVB_T;
+ case SYS_DVBT2: tmp = eDVBFrontendParametersTerrestrial::System_DVB_T2;
+ }
+ PutToDict(dict, "system", tmp);
+// frequency
+ tmp = p[1].u.data/1000;
+ PutToDict(dict, "frequency", tmp);
+// bandwidth
+ switch (p[2].u.data)
+ {
+ case 8000000: tmp = eDVBFrontendParametersTerrestrial::Bandwidth_8MHz; break;
+ case 7000000: tmp = eDVBFrontendParametersTerrestrial::Bandwidth_7MHz; break;
+ case 6000000: tmp = eDVBFrontendParametersTerrestrial::Bandwidth_6MHz; break;
+ case 5000000: tmp = eDVBFrontendParametersTerrestrial::Bandwidth_5MHz; break;
+ case 10000000: tmp = eDVBFrontendParametersTerrestrial::Bandwidth_10MHz; break;
+ case 1712000: tmp = eDVBFrontendParametersTerrestrial::Bandwidth_1_712MHz; break;
+ default:
+ case BANDWIDTH_AUTO: tmp = eDVBFrontendParametersTerrestrial::Bandwidth_Auto; break;
+ }
+ PutToDict(dict, "bandwidth", tmp);
+// code rate LP
+ switch (p[3].u.data)
+ {
+ case FEC_1_2: tmp = eDVBFrontendParametersTerrestrial::FEC_1_2; break;
+ case FEC_2_3: tmp = eDVBFrontendParametersTerrestrial::FEC_2_3; break;
+ case FEC_3_4: tmp = eDVBFrontendParametersTerrestrial::FEC_3_4; break;
+ case FEC_4_5: tmp = eDVBFrontendParametersTerrestrial::FEC_4_5; break;
+ case FEC_5_6: tmp = eDVBFrontendParametersTerrestrial::FEC_5_6; break;
+ case FEC_6_7: tmp = eDVBFrontendParametersTerrestrial::FEC_6_7; break;
+ case FEC_7_8: tmp = eDVBFrontendParametersTerrestrial::FEC_7_8; break;
+ case FEC_8_9: tmp = eDVBFrontendParametersTerrestrial::FEC_8_9; break;
+ default:
+ case FEC_AUTO: tmp = eDVBFrontendParametersTerrestrial::FEC_Auto; break;
+ }
+ PutToDict(dict, "code_rate_lp", tmp);
+// code rate HP
+ switch (p[4].u.data)
+ {
+ case FEC_1_2: tmp = eDVBFrontendParametersTerrestrial::FEC_1_2; break;
+ case FEC_2_3: tmp = eDVBFrontendParametersTerrestrial::FEC_2_3; break;
+ case FEC_3_4: tmp = eDVBFrontendParametersTerrestrial::FEC_3_4; break;
+ case FEC_4_5: tmp = eDVBFrontendParametersTerrestrial::FEC_4_5; break;
+ case FEC_5_6: tmp = eDVBFrontendParametersTerrestrial::FEC_5_6; break;
+ case FEC_6_7: tmp = eDVBFrontendParametersTerrestrial::FEC_6_7; break;
+ case FEC_7_8: tmp = eDVBFrontendParametersTerrestrial::FEC_7_8; break;
+ case FEC_8_9: tmp = eDVBFrontendParametersTerrestrial::FEC_8_9; break;
+ default:
+ case FEC_AUTO: tmp = eDVBFrontendParametersTerrestrial::FEC_Auto; break;
+ }
+ PutToDict(dict, "code_rate_hp", tmp);
+// constellation
+ switch (p[5].u.data)
+ {
+ case QPSK: tmp = eDVBFrontendParametersTerrestrial::Modulation_QPSK; break;
+ case QAM_16: tmp = eDVBFrontendParametersTerrestrial::Modulation_QAM16; break;
+ case QAM_64: tmp = eDVBFrontendParametersTerrestrial::Modulation_QAM64; break;
+ case QAM_256: tmp = eDVBFrontendParametersTerrestrial::Modulation_QAM256; break;
+ default:
+ case QAM_AUTO: tmp = eDVBFrontendParametersTerrestrial::Modulation_Auto; break;
+ }
+ PutToDict(dict, "constellation", tmp);
+
+// transmission
+ switch (p[6].u.data)
+ {
+ case TRANSMISSION_MODE_1K: tmp = eDVBFrontendParametersTerrestrial::TransmissionMode_1k; break;
+ case TRANSMISSION_MODE_2K: tmp = eDVBFrontendParametersTerrestrial::TransmissionMode_2k; break;
+ case TRANSMISSION_MODE_4K: tmp = eDVBFrontendParametersTerrestrial::TransmissionMode_4k; break;
+ case TRANSMISSION_MODE_8K: tmp = eDVBFrontendParametersTerrestrial::TransmissionMode_8k; break;
+ case TRANSMISSION_MODE_16K: tmp = eDVBFrontendParametersTerrestrial::TransmissionMode_16k; break;
+ case TRANSMISSION_MODE_32K: tmp = eDVBFrontendParametersTerrestrial::TransmissionMode_32k; break;
+ default:
+ case TRANSMISSION_MODE_AUTO: tmp = eDVBFrontendParametersTerrestrial::TransmissionMode_Auto; break;
+ }
+ PutToDict(dict, "transmission_mode", tmp);
+// guard interval
+ switch (p[7].u.data)
+ {
+ case GUARD_INTERVAL_19_256: tmp = eDVBFrontendParametersTerrestrial::GuardInterval_19_256; break;
+ case GUARD_INTERVAL_19_128: tmp = eDVBFrontendParametersTerrestrial::GuardInterval_19_128; break;
+ case GUARD_INTERVAL_1_128: tmp = eDVBFrontendParametersTerrestrial::GuardInterval_1_128; break;
+ case GUARD_INTERVAL_1_32: tmp = eDVBFrontendParametersTerrestrial::GuardInterval_1_32; break;
+ case GUARD_INTERVAL_1_16: tmp = eDVBFrontendParametersTerrestrial::GuardInterval_1_16; break;
+ case GUARD_INTERVAL_1_8: tmp = eDVBFrontendParametersTerrestrial::GuardInterval_1_8; break;
+ case GUARD_INTERVAL_1_4: tmp = eDVBFrontendParametersTerrestrial::GuardInterval_1_4; break;
+ default:
+ case GUARD_INTERVAL_AUTO: tmp = eDVBFrontendParametersTerrestrial::GuardInterval_Auto; break;
+ }
+ PutToDict(dict, "guard_interval", tmp);
+// hierarchy
+ switch (p[8].u.data)
+ {
+ case HIERARCHY_NONE: tmp = eDVBFrontendParametersTerrestrial::Hierarchy_None; break;
+ case HIERARCHY_1: tmp = eDVBFrontendParametersTerrestrial::Hierarchy_1; break;
+ case HIERARCHY_2: tmp = eDVBFrontendParametersTerrestrial::Hierarchy_2; break;
+ case HIERARCHY_4: tmp = eDVBFrontendParametersTerrestrial::Hierarchy_4; break;
+ default:
+ case HIERARCHY_AUTO: tmp = eDVBFrontendParametersTerrestrial::Hierarchy_Auto; break;
+ }
+ PutToDict(dict, "hierarchy_information", tmp);
+// inversion
+ switch (p[9].u.data)
+ {
+ case INVERSION_OFF: tmp = eDVBFrontendParametersTerrestrial::Inversion_Off;
+ case INVERSION_ON: tmp = eDVBFrontendParametersTerrestrial::Inversion_On;
+ default:
+ case INVERSION_AUTO: tmp = eDVBFrontendParametersTerrestrial::Inversion_Unknown;
+ }
+ PutToDict(dict, "inversion", tmp);
+#ifdef DTV_DVBT2_PLP_ID
+ tmp = p[10].u.data;
+ PutToDict(dict, "plp_id", tmp);
+#endif
+}
+
+#else // #if HAVE_DVB_API_VERSION >= 5