cleanup code
[enigma2.git] / lib / dvb / dvb.cpp
index 6f72cb1703b1dce919a26cd559384b158c43d212..f5ca483e70d01357436efa55ef65fb7f938928ae 100644 (file)
@@ -242,8 +242,8 @@ void eDVBResourceManager::addAdapter(iDVBAdapter *adapter)
                        {
                                if (prev_dvbt_frontend)
                                {
-                                       prev_dvbt_frontend->m_frontend->setData(eDVBFrontend::LINKED_NEXT_PTR, (int)new_fe);
-                                       frontend->setData(eDVBFrontend::LINKED_PREV_PTR, (int)&(*prev_dvbt_frontend));
+                                       prev_dvbt_frontend->m_frontend->setData(eDVBFrontend::LINKED_NEXT_PTR, (long)new_fe);
+                                       frontend->setData(eDVBFrontend::LINKED_PREV_PTR, (long)&(*prev_dvbt_frontend));
                                }
                                prev_dvbt_frontend = new_fe;
                        }
@@ -322,7 +322,7 @@ RESULT eDVBResourceManager::allocateFrontendByIndex(ePtr<eDVBAllocatedFrontend>
                        // check if another slot linked to this is in use
                        eDVBRegisteredFrontend *satpos_depends_to_fe =
                                (eDVBRegisteredFrontend*) i->m_frontend->m_data[eDVBFrontend::SATPOS_DEPENDS_PTR];
-                       if ( (int)satpos_depends_to_fe != -1 )
+                       if ( (long)satpos_depends_to_fe != -1 )
                        {
                                if (satpos_depends_to_fe->m_inuse)
                                {
@@ -335,7 +335,7 @@ RESULT eDVBResourceManager::allocateFrontendByIndex(ePtr<eDVBAllocatedFrontend>
                        {
                                eDVBRegisteredFrontend *next =
                                        (eDVBRegisteredFrontend *) i->m_frontend->m_data[eDVBFrontend::LINKED_NEXT_PTR];
-                               while ( (int)next != -1 )
+                               while ( (long)next != -1 )
                                {
                                        if (next->m_inuse)
                                        {
@@ -347,7 +347,7 @@ RESULT eDVBResourceManager::allocateFrontendByIndex(ePtr<eDVBAllocatedFrontend>
                                }
                                eDVBRegisteredFrontend *prev = (eDVBRegisteredFrontend *)
                                        i->m_frontend->m_data[eDVBFrontend::LINKED_PREV_PTR];
-                               while ( (int)prev != -1 )
+                               while ( (long)prev != -1 )
                                {
                                        if (prev->m_inuse)
                                        {
@@ -748,6 +748,15 @@ error:
        return ret;
 }
 
+bool eDVBResourceManager::canMeasureFrontendInputPower()
+{
+       for (eSmartPtrList<eDVBRegisteredFrontend>::iterator i(m_frontend.begin()); i != m_frontend.end(); ++i)
+       {
+               return i->m_frontend->readInputpower() >= 0;
+       }
+       return false;
+}
+
 class eDVBChannelFilePush: public eFilePushThread
 {
 public:
@@ -1014,6 +1023,9 @@ void eDVBChannel::pvrEvent(int event)
 
 void eDVBChannel::cueSheetEvent(int event)
 {
+               /* we might end up here if playing failed or stopped, but the client hasn't (yet) noted. */
+       if (!m_pvr_thread)
+               return;
        switch (event)
        {
        case eCueSheet::evtSeek:
@@ -1051,7 +1063,6 @@ void eDVBChannel::cueSheetEvent(int event)
                                m_skipmode_n = m_skipmode_m = 0;
                        }
                }
-               ASSERT(m_pvr_thread);
                m_pvr_thread->setIFrameSearch(m_skipmode_n != 0);
                if (m_cue->m_skipmode_ratio != 0)
                        m_pvr_thread->setTimebaseChange(0x10000 * 9000 / (m_cue->m_skipmode_ratio / 10)); /* negative values are also ok */