make comment a bit more generic
[enigma2.git] / lib / dvb / dvb.cpp
index 364787ac8f9a4f860fae8e03e6bce13f74769add..8c89a16f6868872fe234ca4d1ff322ec64055620 100644 (file)
@@ -304,7 +304,8 @@ RESULT eDVBResourceManager::allocateChannel(const eDVBChannelID &channelid, eUse
                if(channelid==cache_chan->getChannelID())
                {
                        eDebug("use cached_channel");
-                       channel=m_cached_channel;
+                       channel =  m_cached_channel;
+                       m_cached_channel->recheckFrontendState();
                        return 0;
                }
                m_cached_channel=0;
@@ -591,16 +592,16 @@ void eDVBChannel::frontendStateChanged(iDVBFrontend*fe)
                ourstate = state_tuning;
        } else if (state == iDVBFrontend::stateLostLock)
        {
+                       /* on managed channels, we try to retune in order to re-acquire lock. */
                if (m_feparm)
                {
-                       eDebug("OURSTATE: lost lock.. retune");
+                       eDebug("OURSTATE: lost lock, trying to 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
+               } else
+                       /* on unmanaged channels, we don't do this. the client will do this. */
                {
-                       eDebug("OURSTATE: lost lock.. but no feparm avail.. set state_unavailable");
+                       eDebug("OURSTATE: lost lock, unavailable now.")
                        ourstate = state_unavailable;
                }
        } else if (state == iDVBFrontend::stateFailed)