X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/aa5f0da5970746434fe4deea234a98b35857c473..b96f203b700c91e463eff20889d734119530bce0:/lib/dvb/sec.cpp diff --git a/lib/dvb/sec.cpp b/lib/dvb/sec.cpp index d504fcb2..0b40ae50 100644 --- a/lib/dvb/sec.cpp +++ b/lib/dvb/sec.cpp @@ -138,7 +138,8 @@ int eDVBSatelliteEquipmentControl::canTune(const eDVBFrontendParametersSatellite if ( di_param.m_committed_cmd < eDVBSatelliteDiseqcParameters::SENDNO ) csw = 0xF0 | (csw << 2); - csw |= band; + if (di_param.m_committed_cmd <= eDVBSatelliteDiseqcParameters::SENDNO) + csw |= band; if ( di_param.m_diseqc_mode == eDVBSatelliteDiseqcParameters::V1_2 ) // ROTOR { @@ -287,6 +288,8 @@ RESULT eDVBSatelliteEquipmentControl::prepare(iDVBFrontend &frontend, FRONTENDPA else parm.FREQUENCY = sat.frequency - lnb_param.m_lof_lo; + parm.FREQUENCY = abs(parm.FREQUENCY); + if (sat.polarisation == eDVBFrontendParametersSatellite::Polarisation::Horizontal) band |= 2; @@ -353,7 +356,8 @@ RESULT eDVBSatelliteEquipmentControl::prepare(iDVBFrontend &frontend, FRONTENDPA if ( di_param.m_committed_cmd < eDVBSatelliteDiseqcParameters::SENDNO ) csw = 0xF0 | (csw << 2); - csw |= band; + if (di_param.m_committed_cmd <= eDVBSatelliteDiseqcParameters::SENDNO) + csw |= band; bool send_csw = (di_param.m_committed_cmd != eDVBSatelliteDiseqcParameters::SENDNO); @@ -395,7 +399,10 @@ RESULT eDVBSatelliteEquipmentControl::prepare(iDVBFrontend &frontend, FRONTENDPA } if (changed_csw) { - if ( di_param.m_use_fast && (lastcsw & 0xF0) && ((csw / 4) == (lastcsw / 4)) ) + if ( di_param.m_use_fast + && di_param.m_committed_cmd < eDVBSatelliteDiseqcParameters::SENDNO + && (lastcsw & 0xF0) + && ((csw / 4) == (lastcsw / 4)) ) eDebug("dont send committed cmd (fast diseqc)"); else {