aboutsummaryrefslogtreecommitdiff
path: root/lib/dvb/sec.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/dvb/sec.cpp')
-rw-r--r--lib/dvb/sec.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/lib/dvb/sec.cpp b/lib/dvb/sec.cpp
index 16c68e8f..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
{
@@ -355,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);
@@ -397,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
{