X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/3d054bf2cc5942ca6e15c8944b4d927d85903713..2fcfe7e7703ce61ccb532939b6e2132b8423b7c3:/lib/dvb/frontend.cpp diff --git a/lib/dvb/frontend.cpp b/lib/dvb/frontend.cpp index 022b9095..13ae473b 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,13 +633,13 @@ RESULT eDVBFrontend::tune(const iDVBFrontendParameters &where) return -ENOENT; } - res = m_sec->prepare(*this, parm, feparm); + res = m_sec->prepare(*this, parm, feparm, m_fe ? 1 << m_fe : 1); if (res) return res; #if HAVE_DVB_API_VERSION < 3 - eDebug("tuning to %d mhz", parm.Frequency/100); + eDebug("tuning to %d mhz", parm.Frequency/1000); #else - eDebug("tuning to %d mhz", parm.frequency/100); + eDebug("tuning to %d mhz", parm.frequency/1000); #endif break; } @@ -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, m_fe ? 1 << m_fe : 1); +}