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;
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];
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
return -EINVAL;
}
+int eDVBFrontend::isCompatibleWith(ePtr<iDVBFrontendParameters> &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);
+}