+#if HAVE_DVB_API_VERSION < 3
+ parm.Frequency = feparm.frequency * 1000;
+ parm.u.qam.SymbolRate = feparm.symbol_rate;
+#else
+ parm.frequency = feparm.frequency * 1000;
+ parm.u.qam.symbol_rate = feparm.symbol_rate;
+#endif
+ fe_modulation_t mod=QAM_AUTO;
+ switch (feparm.modulation)
+ {
+ case eDVBFrontendParametersCable::Modulation::QAM16:
+ mod = QAM_16;
+ break;
+ case eDVBFrontendParametersCable::Modulation::QAM32:
+ mod = QAM_32;
+ break;
+ case eDVBFrontendParametersCable::Modulation::QAM64:
+ mod = QAM_64;
+ break;
+ case eDVBFrontendParametersCable::Modulation::QAM128:
+ mod = QAM_128;
+ break;
+ case eDVBFrontendParametersCable::Modulation::QAM256:
+ mod = QAM_256;
+ break;
+ case eDVBFrontendParametersCable::Modulation::Auto:
+ mod = QAM_AUTO;
+ break;
+ }
+#if HAVE_DVB_API_VERSION < 3
+ parm.u.qam.QAM = mod;
+#else
+ parm.u.qam.modulation = mod;
+#endif
+ switch (feparm.inversion)
+ {
+ case eDVBFrontendParametersCable::Inversion::On:
+ #if HAVE_DVB_API_VERSION < 3
+ parm.Inversion =
+ #else
+ parm.inversion =
+ #endif
+ INVERSION_ON;
+ break;
+ case eDVBFrontendParametersCable::Inversion::Off:
+ #if HAVE_DVB_API_VERSION < 3
+ parm.Inversion =
+ #else
+ parm.inversion =
+ #endif
+ INVERSION_OFF;
+ break;
+ case eDVBFrontendParametersCable::Inversion::Unknown:
+ #if HAVE_DVB_API_VERSION < 3
+ parm.Inversion =
+ #else
+ parm.inversion =
+ #endif
+ INVERSION_AUTO;
+ break;
+ }
+
+ fe_code_rate_t fec_inner=FEC_AUTO;
+ switch (feparm.fec_inner)
+ {
+ case eDVBFrontendParametersCable::FEC::fNone:
+ fec_inner = FEC_NONE;
+ break;
+ case eDVBFrontendParametersCable::FEC::f1_2:
+ fec_inner = FEC_1_2;
+ break;
+ case eDVBFrontendParametersCable::FEC::f2_3:
+ fec_inner = FEC_2_3;
+ break;
+ case eDVBFrontendParametersCable::FEC::f3_4:
+ fec_inner = FEC_3_4;
+ break;
+ case eDVBFrontendParametersCable::FEC::f4_5:
+ fec_inner = FEC_4_5;
+ break;
+ case eDVBFrontendParametersCable::FEC::f5_6:
+ fec_inner = FEC_5_6;
+ break;
+ case eDVBFrontendParametersCable::FEC::f6_7:
+ fec_inner = FEC_6_7;
+ break;
+ case eDVBFrontendParametersCable::FEC::f7_8:
+ fec_inner = FEC_7_8;
+ break;
+ case eDVBFrontendParametersCable::FEC::f8_9:
+ fec_inner = FEC_8_9;
+ break;
+ case eDVBFrontendParametersCable::FEC::fAuto:
+ fec_inner = FEC_AUTO;
+ break;
+ }
+#if HAVE_DVB_API_VERSION < 3
+ parm.u.qam.FEC_inner = fec_inner;
+#else
+ parm.u.qam.fec_inner = fec_inner;
+#endif
+#else
+ eFatal("Old API not fully supported");
+#endif // old api
+ break;