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.cpp17
1 files changed, 12 insertions, 5 deletions
diff --git a/lib/dvb/sec.cpp b/lib/dvb/sec.cpp
index 2b7f717b..39124b34 100644
--- a/lib/dvb/sec.cpp
+++ b/lib/dvb/sec.cpp
@@ -388,6 +388,11 @@ RESULT eDVBSatelliteEquipmentControl::prepare(iDVBFrontend &frontend, FRONTENDPA
iDVBFrontend *sec_fe=&frontend;
eDVBRegisteredFrontend *linked_fe = 0;
eDVBSatelliteDiseqcParameters::t_diseqc_mode diseqc_mode = di_param.m_diseqc_mode;
+ eDVBSatelliteSwitchParameters::t_voltage_mode voltage_mode = sw_param.m_voltage_mode;
+ bool diseqc13V = voltage_mode == eDVBSatelliteSwitchParameters::HV_13;
+
+ if (diseqc13V)
+ voltage_mode = eDVBSatelliteSwitchParameters::HV;
frontend.getData(eDVBFrontend::SATPOS_DEPENDS_PTR, satposDependPtr);
@@ -437,13 +442,13 @@ RESULT eDVBSatelliteEquipmentControl::prepare(iDVBFrontend &frontend, FRONTENDPA
if (!(sat.polarisation & eDVBFrontendParametersSatellite::Polarisation::Vertical))
band |= 2;
- if ( sw_param.m_voltage_mode == eDVBSatelliteSwitchParameters::_14V
+ if ( voltage_mode == eDVBSatelliteSwitchParameters::_14V
|| ( sat.polarisation & eDVBFrontendParametersSatellite::Polarisation::Vertical
- && sw_param.m_voltage_mode == eDVBSatelliteSwitchParameters::HV ) )
+ && voltage_mode == eDVBSatelliteSwitchParameters::HV ) )
voltage = VOLTAGE(13);
- else if ( sw_param.m_voltage_mode == eDVBSatelliteSwitchParameters::_18V
+ else if ( voltage_mode == eDVBSatelliteSwitchParameters::_18V
|| ( !(sat.polarisation & eDVBFrontendParametersSatellite::Polarisation::Vertical)
- && sw_param.m_voltage_mode == eDVBSatelliteSwitchParameters::HV ) )
+ && voltage_mode == eDVBSatelliteSwitchParameters::HV ) )
voltage = VOLTAGE(18);
if ( (sw_param.m_22khz_signal == eDVBSatelliteSwitchParameters::ON)
|| ( sw_param.m_22khz_signal == eDVBSatelliteSwitchParameters::HILO && (band&1) ) )
@@ -597,7 +602,9 @@ RESULT eDVBSatelliteEquipmentControl::prepare(iDVBFrontend &frontend, FRONTENDPA
sec_sequence.push_back( eSecCommand(eSecCommand::SET_TONE, iDVBFrontend::toneOff) );
sec_sequence.push_back( eSecCommand(eSecCommand::SLEEP, m_params[DELAY_AFTER_CONT_TONE]) );
- if ( RotorCmd != -1 && RotorCmd != lastRotorCmd )
+ if (diseqc13V)
+ vlt = iDVBFrontend::voltage13;
+ else if ( RotorCmd != -1 && RotorCmd != lastRotorCmd )
{
if (rotor_param.m_inputpower_parameters.m_use)
vlt = VOLTAGE(18); // in input power mode set 18V for measure input power