X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/87b7120717755841c47c5883ae7ee191c2cd3a87..2c8c2343f6fe05e59a8633b24d565e0fff5c6a3d:/lib/dvb/frontend.cpp diff --git a/lib/dvb/frontend.cpp b/lib/dvb/frontend.cpp index b4a870fb..99cafe75 100644 --- a/lib/dvb/frontend.cpp +++ b/lib/dvb/frontend.cpp @@ -400,9 +400,7 @@ void eDVBFrontend::feEvent(int w) else { state = stateLostLock; - - if (m_state != stateLostLock) - eDebug("FIXME: we lost lock, so we might have to retune."); + m_data[0] = m_data[1] = m_data[2] = -1; // reset diseqc } } if (m_state != state) @@ -415,19 +413,12 @@ void eDVBFrontend::feEvent(int w) void eDVBFrontend::timeout() { - int state; + m_tuning = 0; if (m_state == stateTuning) { - state = stateFailed; - eDebug("DVBFrontend: timeout"); - if (m_state != state) - { - m_state = state; - m_stateChanged(this); - } - m_tuning = 0; - } else - m_tuning = 0; + m_state = stateFailed; + m_stateChanged(this); + } } int eDVBFrontend::readFrontendData(int type) @@ -520,10 +511,12 @@ void eDVBFrontend::tuneLoop() // called by m_tuneTimer ++m_sec_sequence.current(); break; case eSecCommand::SET_VOLTAGE: + { int voltage = m_sec_sequence.current()++->voltage; eDebug("[SEC] setVoltage %d", voltage); setVoltage(voltage); break; + } case eSecCommand::SET_TONE: eDebug("[SEC] setTone %d", m_sec_sequence.current()->tone); setTone(m_sec_sequence.current()++->tone); @@ -669,13 +662,6 @@ void eDVBFrontend::setFrontend() perror("FE_SET_FRONTEND failed"); return; } - - if (m_state != stateTuning) - { - m_tuning = 1; - m_state = stateTuning; - m_stateChanged(this); - } m_timeout->start(5000, 1); // 5 sec timeout. TODO: symbolrate dependent } @@ -948,8 +934,16 @@ RESULT eDVBFrontend::tune(const iDVBFrontendParameters &where) m_sec_sequence.push_back( eSecCommand(eSecCommand::SET_FRONTEND) ); m_tuneTimer->start(0,true); + m_timeout->stop(); m_sec_sequence.current() = m_sec_sequence.begin(); + if (m_state != stateTuning) + { + m_tuning = 1; + m_state = stateTuning; + m_stateChanged(this); + } + return 0; }