X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/6c0cfe38f170eb90a48ad144b97c8ef09d53f165..e330dbae62e83dd2aa2ff63a984519a84b23c3ad:/lib/dvb/frontend.cpp diff --git a/lib/dvb/frontend.cpp b/lib/dvb/frontend.cpp index dcd1c048..a05963cd 100644 --- a/lib/dvb/frontend.cpp +++ b/lib/dvb/frontend.cpp @@ -288,7 +288,9 @@ eDVBFrontend::eDVBFrontend(int adap, int fe, int &ok): m_type(-1), m_fe(fe), m_c m_tuneTimer = new eTimer(eApp); CONNECT(m_tuneTimer->timeout, eDVBFrontend::tuneLoop); - memset(m_data, 0xFFFF, sizeof(m_data)); + int entries = sizeof(m_data) / sizeof(int); + for (int i=0; i= 3 eDVBFrontendParametersCable feparm; if (where.getDVBC(feparm)) return -EINVAL; @@ -655,8 +658,6 @@ RESULT eDVBFrontend::tune(const iDVBFrontendParameters &where) parm.frequency = feparm.frequency * 1000; parm.u.qam.symbol_rate = feparm.symbol_rate; #endif - - fe_modulation_t mod; switch (feparm.modulation) { @@ -684,7 +685,6 @@ RESULT eDVBFrontend::tune(const iDVBFrontendParameters &where) #else parm.u.qam.modulation = mod; #endif - switch (feparm.inversion) { case eDVBFrontendParametersCable::Inversion::On: @@ -752,7 +752,9 @@ RESULT eDVBFrontend::tune(const iDVBFrontendParameters &where) #else parm.u.qam.fec_inner = fec_inner; #endif - +#else + eFatal("Old API not fully supported"); +#endif // old api break; } case feTerrestrial: @@ -995,7 +997,7 @@ RESULT eDVBFrontend::setSecSequence(const eSecCommandList &list) RESULT eDVBFrontend::getData(int num, int &data) { - if ( num < 7 ) + if ( num < (int)(sizeof(m_data)/sizeof(int)) ) { data = m_data[num]; return 0; @@ -1005,7 +1007,7 @@ RESULT eDVBFrontend::getData(int num, int &data) RESULT eDVBFrontend::setData(int num, int val) { - if ( num < 7 ) + if ( num < (int)(sizeof(m_data)/sizeof(int)) ) { m_data[num] = val; return 0; @@ -1015,14 +1017,16 @@ RESULT eDVBFrontend::setData(int num, int val) int eDVBFrontend::isCompatibleWith(ePtr &feparm) { - if (m_type != eDVBFrontend::feSatellite) - return 1; - - ASSERT(m_sec); - - eDVBFrontendParametersSatellite sat_parm; - - ASSERT(!feparm->getDVBS(sat_parm)); + int type; + if (feparm->getSystem(type) || type != m_type) + return 0; - return m_sec->canTune(sat_parm, this, 1 << m_fe); + if (m_type == eDVBFrontend::feSatellite) + { + ASSERT(m_sec); + eDVBFrontendParametersSatellite sat_parm; + ASSERT(!feparm->getDVBS(sat_parm)); + return m_sec->canTune(sat_parm, this, 1 << m_fe); + } + return 1; }