From b69752cd17ee8011f72f878115ec378aae06bd80 Mon Sep 17 00:00:00 2001 From: Andreas Monzner Date: Wed, 16 Nov 2005 18:32:59 +0000 Subject: [PATCH] use frontend_id in prepare too --- lib/dvb/frontend.cpp | 4 ++-- lib/dvb/idvb.h | 2 +- lib/dvb/sec.cpp | 4 +++- lib/dvb/sec.h | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/lib/dvb/frontend.cpp b/lib/dvb/frontend.cpp index 2cb1c7d9..13ae473b 100644 --- a/lib/dvb/frontend.cpp +++ b/lib/dvb/frontend.cpp @@ -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, m_fe ? 1 << m_fe : 1); if (res) return res; #if HAVE_DVB_API_VERSION < 3 @@ -919,5 +919,5 @@ int eDVBFrontend::isCompatibleWith(ePtr &feparm) 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); } diff --git a/lib/dvb/idvb.h b/lib/dvb/idvb.h index c57fae9a..f97022d5 100644 --- a/lib/dvb/idvb.h +++ b/lib/dvb/idvb.h @@ -352,7 +352,7 @@ public: 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; }; diff --git a/lib/dvb/sec.cpp b/lib/dvb/sec.cpp index aaf459fb..972728ed 100644 --- a/lib/dvb/sec.cpp +++ b/lib/dvb/sec.cpp @@ -96,11 +96,13 @@ int eDVBSatelliteEquipmentControl::canTune(const eDVBFrontendParametersSatellite 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; diff --git a/lib/dvb/sec.h b/lib/dvb/sec.h index 901e4e2e..816994c4 100644 --- a/lib/dvb/sec.h +++ b/lib/dvb/sec.h @@ -213,7 +213,7 @@ public: #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 -- 2.30.2