use frontend_id in prepare too
authorAndreas Monzner <andreas.monzner@multimedia-labs.de>
Wed, 16 Nov 2005 18:32:59 +0000 (18:32 +0000)
committerAndreas Monzner <andreas.monzner@multimedia-labs.de>
Wed, 16 Nov 2005 18:32:59 +0000 (18:32 +0000)
lib/dvb/frontend.cpp
lib/dvb/idvb.h
lib/dvb/sec.cpp
lib/dvb/sec.h

index 2cb1c7d94ae5d52d71d8575f1c0dbb8985547654..13ae473b89750a7e9ecf4b4aeba5f3b40543456c 100644 (file)
@@ -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<iDVBFrontendParameters> &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);
 }
index c57fae9aa0a134d27f0ca95ef1f21f51c36878a0..f97022d5857ad1e8fa48be922dd24fa7d0962970 100644 (file)
@@ -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;
 };
 
index aaf459fbcc1920e8690ca0e5bde501c4103cc816..972728ede58cef26a6caef708ff98536fd332e2a 100644 (file)
@@ -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;
 
index 901e4e2ea8565d3601db836bb444cad23c2b0bd2..816994c4fe1279a6ed7c238f59b0624f9521f82b 100644 (file)
@@ -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