X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/134f31483989e72a606c6b7ae5d5ae6e753a470e..9ebbf4ebb29f522e25e86cf261e8e225126b75b7:/lib/dvb/frontend.cpp diff --git a/lib/dvb/frontend.cpp b/lib/dvb/frontend.cpp index be7bdc74..c1dce2d9 100644 --- a/lib/dvb/frontend.cpp +++ b/lib/dvb/frontend.cpp @@ -645,40 +645,48 @@ RESULT eDVBFrontend::tune(const iDVBFrontendParameters &where) } case feCable: { +#if HAVE_DVB_API_VERSION >= 3 eDVBFrontendParametersCable feparm; if (where.getDVBC(feparm)) return -EINVAL; #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; switch (feparm.modulation) { case eDVBFrontendParametersCable::Modulation::QAM16: - parm.u.qam.modulation = QAM_16; + mod = QAM_16; break; case eDVBFrontendParametersCable::Modulation::QAM32: - parm.u.qam.modulation = QAM_32; + mod = QAM_32; break; case eDVBFrontendParametersCable::Modulation::QAM64: - parm.u.qam.modulation = QAM_64; + mod = QAM_64; break; case eDVBFrontendParametersCable::Modulation::QAM128: - parm.u.qam.modulation = QAM_128; + mod = QAM_128; break; case eDVBFrontendParametersCable::Modulation::QAM256: - parm.u.qam.modulation = QAM_256; + mod = QAM_256; break; case eDVBFrontendParametersCable::Modulation::Auto: - parm.u.qam.modulation = QAM_AUTO; + mod = QAM_AUTO; break; } - switch (feparm.modulation) +#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 @@ -703,41 +711,51 @@ RESULT eDVBFrontend::tune(const iDVBFrontendParameters &where) parm.inversion = #endif INVERSION_AUTO; - break; + break; } + + fe_code_rate_t fec_inner; switch (feparm.fec_inner) { case eDVBFrontendParametersCable::FEC::fNone: - parm.u.qam.fec_inner = FEC_NONE; + fec_inner = FEC_NONE; break; case eDVBFrontendParametersCable::FEC::f1_2: - parm.u.qam.fec_inner = FEC_1_2; + fec_inner = FEC_1_2; break; case eDVBFrontendParametersCable::FEC::f2_3: - parm.u.qam.fec_inner = FEC_2_3; + fec_inner = FEC_2_3; break; case eDVBFrontendParametersCable::FEC::f3_4: - parm.u.qam.fec_inner = FEC_3_4; + fec_inner = FEC_3_4; break; case eDVBFrontendParametersCable::FEC::f4_5: - parm.u.qam.fec_inner = FEC_4_5; + fec_inner = FEC_4_5; break; case eDVBFrontendParametersCable::FEC::f5_6: - parm.u.qam.fec_inner = FEC_5_6; + fec_inner = FEC_5_6; break; case eDVBFrontendParametersCable::FEC::f6_7: - parm.u.qam.fec_inner = FEC_6_7; + fec_inner = FEC_6_7; break; case eDVBFrontendParametersCable::FEC::f7_8: - parm.u.qam.fec_inner = FEC_7_8; + fec_inner = FEC_7_8; break; case eDVBFrontendParametersCable::FEC::f8_9: - parm.u.qam.fec_inner = FEC_8_9; + fec_inner = FEC_8_9; break; case eDVBFrontendParametersCable::FEC::fAuto: - parm.u.qam.fec_inner = FEC_AUTO; + 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; } case feTerrestrial: