aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorghost <andreas.monzner@multimedia-labs.de>2010-11-26 12:54:28 +0100
committerghost <andreas.monzner@multimedia-labs.de>2010-11-26 12:54:28 +0100
commit8d76012a43ac01189160992ce3a5a08614fc93f0 (patch)
treef137937a44c0da5e0c433d0568cce940e040e608 /lib
parent6ef6ef31af71b1c4065cd5281d3a711c3b4dc2ae (diff)
downloadenigma2-8d76012a43ac01189160992ce3a5a08614fc93f0.tar.gz
enigma2-8d76012a43ac01189160992ce3a5a08614fc93f0.zip
sec.cpp: fixed rotor turning without inputpower measurement (introduced with latest unicable changes)
TODO: recheck rotor turning with unicable components... it seems broken refs #347
Diffstat (limited to 'lib')
-rw-r--r--lib/dvb/sec.cpp31
1 files changed, 14 insertions, 17 deletions
diff --git a/lib/dvb/sec.cpp b/lib/dvb/sec.cpp
index a8292c0c..9ca0f734 100644
--- a/lib/dvb/sec.cpp
+++ b/lib/dvb/sec.cpp
@@ -212,7 +212,7 @@ int eDVBSatelliteEquipmentControl::canTune(const eDVBFrontendParametersSatellite
eSecDebugNoSimulate("ret5 %d", ret);
- if (ret && lnb_param.SatCR_idx == -1)
+ if (ret && !is_unicable)
{
int lof = sat.frequency > lnb_param.m_lof_threshold ?
lnb_param.m_lof_hi : lnb_param.m_lof_lo;
@@ -300,11 +300,6 @@ RESULT eDVBSatelliteEquipmentControl::prepare(iDVBFrontend &frontend, FRONTENDPA
if ( sit != lnb_param.m_satellites.end())
{
eSecCommandList sec_sequence;
-
- lnb_param.guard_offset = 0; //HACK
-
- frontend.setData(eDVBFrontend::SATCR, lnb_param.SatCR_idx);
-
eDVBSatelliteSwitchParameters &sw_param = sit->second;
bool doSetFrontend = true;
bool doSetVoltageToneFrontend = true;
@@ -327,6 +322,11 @@ RESULT eDVBSatelliteEquipmentControl::prepare(iDVBFrontend &frontend, FRONTENDPA
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;
+ bool is_unicable = lnb_param.SatCR_idx != -1;
+
+ lnb_param.guard_offset = 0; //HACK
+
+ frontend.setData(eDVBFrontend::SATCR, lnb_param.SatCR_idx);
if (diseqc13V)
voltage_mode = eDVBSatelliteSwitchParameters::HV;
@@ -371,13 +371,10 @@ RESULT eDVBSatelliteEquipmentControl::prepare(iDVBFrontend &frontend, FRONTENDPA
int lof = (band&1)?lnb_param.m_lof_hi:lnb_param.m_lof_lo;
- int local=0;
-
-
- if(lnb_param.SatCR_idx == -1)
+ if(!is_unicable)
{
- // calc Frequency
- local = abs(sat.frequency
+ // calc Frequency
+ int local= abs(sat.frequency
- lof);
parm.FREQUENCY = ((((local * 2) / 125) + 1) / 2) * 125;
frontend.setData(eDVBFrontend::FREQ_OFFSET, sat.frequency - parm.FREQUENCY);
@@ -693,7 +690,7 @@ RESULT eDVBSatelliteEquipmentControl::prepare(iDVBFrontend &frontend, FRONTENDPA
if ( RotorCmd != -1 && RotorCmd != lastRotorCmd )
{
eSecCommand::pair compare;
- if (!send_mask && lnb_param.SatCR_idx == -1)
+ if (!send_mask && !is_unicable)
{
compare.steps = +3;
compare.tone = iDVBFrontend::toneOff;
@@ -747,10 +744,10 @@ RESULT eDVBSatelliteEquipmentControl::prepare(iDVBFrontend &frontend, FRONTENDPA
diseqc.data[3] = RotorCmd;
diseqc.data[4] = 0x00;
}
-// if(lnb_param.SatCR_idx == -1)
+// if(!is_unicable)
{
int mrt = m_params[MOTOR_RUNNING_TIMEOUT]; // in seconds!
- if ( rotor_param.m_inputpower_parameters.m_use || lnb_param.SatCR_idx == -1)
+ if ( rotor_param.m_inputpower_parameters.m_use && !is_unicable)
{ // use measure rotor input power to detect rotor state
bool turn_fast = need_turn_fast(rotor_param.m_inputpower_parameters.m_turning_speed);
eSecCommand::rotor cmd;
@@ -882,7 +879,7 @@ RESULT eDVBSatelliteEquipmentControl::prepare(iDVBFrontend &frontend, FRONTENDPA
sec_fe->setData(eDVBFrontend::NEW_UCSW, ucsw);
sec_fe->setData(eDVBFrontend::NEW_TONEBURST, di_param.m_toneburst_param);
- if ((doSetVoltageToneFrontend) && (lnb_param.SatCR_idx == -1))
+ if (doSetVoltageToneFrontend && !is_unicable)
{
eSecCommand::pair compare;
compare.voltage = voltage;
@@ -898,7 +895,7 @@ RESULT eDVBSatelliteEquipmentControl::prepare(iDVBFrontend &frontend, FRONTENDPA
sec_sequence.push_back( eSecCommand(eSecCommand::UPDATE_CURRENT_SWITCHPARMS) );
- if(lnb_param.SatCR_idx != -1)
+ if(is_unicable)
{
// check if voltage is disabled
eSecCommand::pair compare;