diff options
| author | ghost <andreas.monzner@multimedia-labs.de> | 2009-09-21 14:49:25 +0200 |
|---|---|---|
| committer | ghost <andreas.monzner@multimedia-labs.de> | 2009-09-21 14:49:25 +0200 |
| commit | 655614dbacf97de7347619a9a746daa28f9ef887 (patch) | |
| tree | c4885e90a34920f0e003cca02964435d720c37d4 /lib/dvb/frontend.cpp | |
| parent | 45ed0e897cfa0a45bd1e609f0b6a551350ac1c3d (diff) | |
| download | enigma2-655614dbacf97de7347619a9a746daa28f9ef887.tar.gz enigma2-655614dbacf97de7347619a9a746daa28f9ef887.zip | |
frontend.cpp: add support for FE_TIMEDOUT frontend event flag
Diffstat (limited to 'lib/dvb/frontend.cpp')
| -rw-r--r-- | lib/dvb/frontend.cpp | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/lib/dvb/frontend.cpp b/lib/dvb/frontend.cpp index 15a46db8..0319c4c9 100644 --- a/lib/dvb/frontend.cpp +++ b/lib/dvb/frontend.cpp @@ -666,15 +666,28 @@ void eDVBFrontend::feEvent(int w) #if HAVE_DVB_API_VERSION < 3 if (event.type == FE_COMPLETION_EV) #else - eDebug("(%d)fe event: status %x, inversion %s", m_dvbid, event.status, (event.parameters.inversion == INVERSION_ON) ? "on" : "off"); + eDebug("(%d)fe event: status %x, inversion %s, m_tuning %d", m_dvbid, event.status, (event.parameters.inversion == INVERSION_ON) ? "on" : "off", m_tuning); if (event.status & FE_HAS_LOCK) #endif { state = stateLock; } else { - if (m_tuning) + if (m_tuning) { state = stateTuning; +#if HAVE_DVB_API_VERSION >= 3 + if (event.status & FE_TIMEDOUT) { + eDebug("FE_TIMEDOUT! ..abort"); + m_tuneTimer->stop(); + timeout(); + return; + } + ++m_tuning; +#else + m_tuneTimer->stop(); + timeout(); +#endif + } else { eDebug("stateLostLock"); @@ -2387,9 +2400,9 @@ RESULT eDVBFrontend::tune(const iDVBFrontendParameters &where) if (!m_simulate) { m_tuneTimer->start(0,true); + m_tuning = 1; if (m_state != stateTuning) { - m_tuning = 1; m_state = stateTuning; m_stateChanged(this); } |
