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
ASSERT(!feparm->getDVBS(sat_parm));
- return m_sec->canTune(sat_parm, this, m_fe ? m_fe << 1 : 1);
+ return m_sec->canTune(sat_parm, this, m_fe ? 1 << m_fe : 1);
}
class iDVBSatelliteEquipmentControl: public iObject
{
public:
- virtual RESULT prepare(iDVBFrontend &frontend, FRONTENDPARAMETERS &parm, eDVBFrontendParametersSatellite &sat)=0;
+ virtual RESULT prepare(iDVBFrontend &frontend, FRONTENDPARAMETERS &parm, eDVBFrontendParametersSatellite &sat, int frontend_id)=0;
virtual int canTune(const eDVBFrontendParametersSatellite &feparm, iDVBFrontend *fe, int frontend_id)=0;
};
return ret;
}
-RESULT eDVBSatelliteEquipmentControl::prepare(iDVBFrontend &frontend, FRONTENDPARAMETERS &parm, eDVBFrontendParametersSatellite &sat)
+RESULT eDVBSatelliteEquipmentControl::prepare(iDVBFrontend &frontend, FRONTENDPARAMETERS &parm, eDVBFrontendParametersSatellite &sat, int frontend_id)
{
for (int idx=0; idx <= m_lnbidx; ++idx )
{
eDVBSatelliteLNBParameters &lnb_param = m_lnbs[idx];
+ if (!(lnb_param.tuner_mask & frontend_id)) // lnb for correct tuner?
+ continue;
eDVBSatelliteDiseqcParameters &di_param = lnb_param.m_diseqc_parameters;
eDVBSatelliteRotorParameters &rotor_param = lnb_param.m_rotor_parameters;
#ifndef SWIG
DECLARE_REF(eDVBSatelliteEquipmentControl);
eDVBSatelliteEquipmentControl();
- RESULT prepare(iDVBFrontend &frontend, FRONTENDPARAMETERS &parm, eDVBFrontendParametersSatellite &sat);
+ RESULT prepare(iDVBFrontend &frontend, FRONTENDPARAMETERS &parm, eDVBFrontendParametersSatellite &sat, int frontend_id);
int canTune(const eDVBFrontendParametersSatellite &feparm, iDVBFrontend *, int frontend_id);
bool currentLNBValid() { return m_lnbidx > -1 && m_lnbidx < (int)(sizeof(m_lnbs) / sizeof(eDVBSatelliteLNBParameters)); }
#endif