diff options
Diffstat (limited to 'lib/dvb/dvb.cpp')
| -rw-r--r-- | lib/dvb/dvb.cpp | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/lib/dvb/dvb.cpp b/lib/dvb/dvb.cpp index 32e19308..364787ac 100644 --- a/lib/dvb/dvb.cpp +++ b/lib/dvb/dvb.cpp @@ -591,9 +591,18 @@ void eDVBChannel::frontendStateChanged(iDVBFrontend*fe) ourstate = state_tuning; } else if (state == iDVBFrontend::stateLostLock) { - eDebug("OURSTATE: lost lock.. retune"); - ourstate = state_tuning; - m_frontend->get().tune(*m_feparm); + if (m_feparm) + { + eDebug("OURSTATE: lost lock.. retune"); + ourstate = state_tuning; + m_frontend->get().tune(*m_feparm); + } + else // this case happens in scan.. in scan setChannel is not used .. so m_feparm is NULL + // but its okay.. in scan we dont like to retune + { + eDebug("OURSTATE: lost lock.. but no feparm avail.. set state_unavailable"); + ourstate = state_unavailable; + } } else if (state == iDVBFrontend::stateFailed) { eDebug("OURSTATE: failed"); |
