X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/c2f1a638b1eb861d1a8e97530adfcefd65ff6ac0..d86dfb91c834be43d9bcddd69ddbc7e463825fbd:/lib/dvb/frontend.cpp diff --git a/lib/dvb/frontend.cpp b/lib/dvb/frontend.cpp index b8debd81..f2c3401d 100644 --- a/lib/dvb/frontend.cpp +++ b/lib/dvb/frontend.cpp @@ -131,21 +131,21 @@ RESULT eDVBFrontendParameters::getDVBT(eDVBFrontendParametersTerrestrial &p) con return 0; } -RESULT eDVBFrontendParameters::setDVBS(eDVBFrontendParametersSatellite &p) +RESULT eDVBFrontendParameters::setDVBS(const eDVBFrontendParametersSatellite &p) { sat = p; m_type = iDVBFrontend::feSatellite; return 0; } -RESULT eDVBFrontendParameters::setDVBC(eDVBFrontendParametersCable &p) +RESULT eDVBFrontendParameters::setDVBC(const eDVBFrontendParametersCable &p) { cable = p; m_type = iDVBFrontend::feCable; return 0; } -RESULT eDVBFrontendParameters::setDVBT(eDVBFrontendParametersTerrestrial &p) +RESULT eDVBFrontendParameters::setDVBT(const eDVBFrontendParametersTerrestrial &p) { terrestrial = p; m_type = iDVBFrontend::feTerrestrial; @@ -208,7 +208,7 @@ RESULT eDVBFrontendParameters::getHash(unsigned long &hash) const DEFINE_REF(eDVBFrontend); -eDVBFrontend::eDVBFrontend(int adap, int fe, int &ok): m_type(-1), m_curVoltage(-1) +eDVBFrontend::eDVBFrontend(int adap, int fe, int &ok): m_type(-1), m_fe(fe), m_curVoltage(-1) { #if HAVE_DVB_API_VERSION < 3 char sec_filename[128]; @@ -633,7 +633,7 @@ RESULT eDVBFrontend::tune(const iDVBFrontendParameters &where) return -ENOENT; } - res = m_sec->prepare(*this, parm, feparm); + res = m_sec->prepare(*this, parm, feparm, 1 << m_fe); if (res) return res; #if HAVE_DVB_API_VERSION < 3 @@ -908,3 +908,16 @@ RESULT eDVBFrontend::setData(int num, int val) return -EINVAL; } +int eDVBFrontend::isCompatibleWith(ePtr &feparm) +{ + if (m_type != eDVBFrontend::feSatellite) + return 1; + + ASSERT(m_sec); + + eDVBFrontendParametersSatellite sat_parm; + + ASSERT(!feparm->getDVBS(sat_parm)); + + return m_sec->canTune(sat_parm, this, 1 << m_fe); +}