copy lists, not list identities... should fix saving of non-default values
[enigma2.git] / lib / dvb / frontend.cpp
index f4cbd307d27ee4af0e02c5fa8ef2ae7d9c6347e3..99cafe75340c73b63396ebdfdeba03a7622b36d4 100644 (file)
@@ -413,19 +413,12 @@ void eDVBFrontend::feEvent(int w)
 
 void eDVBFrontend::timeout()
 {
-       int state;
+       m_tuning = 0;
        if (m_state == stateTuning)
        {
-               state = stateFailed;
-               eDebug("DVBFrontend: timeout");
-               if (m_state != state)
-               {
-                       m_state = state;
-                       m_stateChanged(this);
-               }
-               m_tuning = 0;
-       } else
-               m_tuning = 0;
+               m_state = stateFailed;
+               m_stateChanged(this);
+       }
 }
 
 int eDVBFrontend::readFrontendData(int type)
@@ -669,13 +662,6 @@ void eDVBFrontend::setFrontend()
                perror("FE_SET_FRONTEND failed");
                return;
        }
-
-       if (m_state != stateTuning)
-       {
-               m_tuning = 1;
-               m_state = stateTuning;
-               m_stateChanged(this);
-       }
        m_timeout->start(5000, 1); // 5 sec timeout. TODO: symbolrate dependent
 }
 
@@ -948,8 +934,16 @@ RESULT eDVBFrontend::tune(const iDVBFrontendParameters &where)
 
        m_sec_sequence.push_back( eSecCommand(eSecCommand::SET_FRONTEND) );
        m_tuneTimer->start(0,true);
+       m_timeout->stop();
        m_sec_sequence.current() = m_sec_sequence.begin();
 
+       if (m_state != stateTuning)
+       {
+               m_tuning = 1;
+               m_state = stateTuning;
+               m_stateChanged(this);
+       }
+
        return 0;
 }