X-Git-Url: http://code.vuplus.com/gitweb/?p=vuplus_dvbapp;a=blobdiff_plain;f=lib%2Fdvb%2Fdvb.cpp;h=af468237cd701bb3b76d55b179747c899585b36d;hp=6f9a67fbd092002b4b6818805a6a75eb6c29b2b5;hb=4740f407833680f64142804134509350db42a079;hpb=6e860dd76f06031b31bac9280e9b85ab7abfdadf diff --git a/lib/dvb/dvb.cpp b/lib/dvb/dvb.cpp old mode 100644 new mode 100755 index 6f9a67f..af46823 --- a/lib/dvb/dvb.cpp +++ b/lib/dvb/dvb.cpp @@ -145,19 +145,20 @@ eDVBAdapterLinux::eDVBAdapterLinux(int nr): m_nr(nr) #endif if (stat(filename, &s)) break; - ePtr fe; + eDVBFrontend *fe; { int ok = 0; - fe = new eDVBFrontend(m_nr, num_fe, ok); + fe = new eDVBFrontend(m_nr, num_fe, ok, true); if (ok) - m_frontend.push_back(fe); + m_simulate_frontend.push_back(ePtr(fe)); } + { int ok = 0; - fe = new eDVBFrontend(m_nr, num_fe, ok, true); + fe = new eDVBFrontend(m_nr, num_fe, ok, false, fe); if (ok) - m_simulate_frontend.push_back(fe); + m_frontend.push_back(ePtr(fe)); } ++num_fe; } @@ -1186,8 +1187,22 @@ void eDVBChannel::frontendStateChanged(iDVBFrontend*fe) } } else if (state == iDVBFrontend::stateFailed) { +#ifdef BUILD_VUPLUS /* ikseong */ + if (m_current_frontend_parameters) + { + eDebug("OURSTATE: lost lock, trying to retune"); + ourstate = state_tuning; + m_frontend->get().tune(*m_current_frontend_parameters); + } + else + { + eDebug("OURSTATE: failed"); + ourstate = state_failed; + } +#else eDebug("OURSTATE: failed"); ourstate = state_failed; +#endif } else eFatal("state unknown");