ourstate = state_tuning;
} else if (state == iDVBFrontend::stateLostLock)
{
- eDebug("OURSTATE: lost lock");
- ourstate = state_unavailable;
+ eDebug("OURSTATE: lost lock.. retune");
+ ourstate = state_tuning;
+ m_frontend->get().tune(*m_feparm);
} else if (state == iDVBFrontend::stateFailed)
{
eDebug("OURSTATE: failed");
/* if tuning fails, shutdown the channel immediately. */
int res;
res = m_frontend->get().tune(*feparm);
+ m_feparm = feparm;
if (res)
{
int getUseCount() { return m_use_count; }
private:
+ ePtr<iDVBFrontendParameters> m_feparm; // for retune on lostlock
ePtr<eDVBAllocatedFrontend> m_frontend;
ePtr<eDVBAllocatedDemux> m_demux, m_decoder_demux;
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)