remove no more needed function
[enigma2.git] / lib / dvb / frontend.cpp
index e1af3098d6c47944a7c41849cccab70f0fee4939..47b86575303c57d688a5c48165abb5bddea592d5 100644 (file)
@@ -532,16 +532,17 @@ int eDVBFrontend::openFrontend()
 
 int eDVBFrontend::closeFrontend()
 {
-       eDVBRegisteredFrontend *linked_fe = (eDVBRegisteredFrontend*)m_data[LINKED_NEXT_PTR];
-       while (linked_fe != (eDVBRegisteredFrontend*)-1)
+       long tmp = m_data[LINKED_NEXT_PTR];
+       while (tmp != -1)
        {
+               eDVBRegisteredFrontend *linked_fe = (eDVBRegisteredFrontend*)tmp;
                if (linked_fe->m_inuse)
                {
                        eDebug("dont close frontend %d until the linked frontend %d in slot %d is still in use",
                                m_dvbid, linked_fe->m_frontend->getDVBID(), linked_fe->m_frontend->getSlotID());
                        return -1;
                }
-               linked_fe->m_frontend->getData(LINKED_NEXT_PTR, (long&)linked_fe);
+               linked_fe->m_frontend->getData(LINKED_NEXT_PTR, tmp);
        }
        if (m_fd >= 0)
        {
@@ -574,6 +575,7 @@ int eDVBFrontend::closeFrontend()
 
 eDVBFrontend::~eDVBFrontend()
 {
+       m_data[LINKED_PREV_PTR] = m_data[LINKED_NEXT_PTR] = -1;
        closeFrontend();
        delete m_timeout;
        delete m_tuneTimer;
@@ -1541,7 +1543,7 @@ void eDVBFrontend::tuneLoop()  // called by m_tuneTimer
                                if (f) // new interface exist?
                                {
                                        bool slimiting = m_sec_sequence.current()->mode == eSecCommand::modeStatic;
-                                       if (fprintf(f, "%s", slimiting ? "on" : "off") != 1)
+                                       if (fprintf(f, "%s", slimiting ? "on" : "off") <= 0)
                                                eDebug("write %s failed!! (%m)", proc_name);
                                        else
                                                eDebug("[SEC] set %s current limiting", slimiting ? "static" : "dynamic");
@@ -2236,7 +2238,6 @@ int eDVBFrontend::isCompatibleWith(ePtr<iDVBFrontendParameters> &feparm)
        int type;
        if (feparm->getSystem(type) || type != m_type || !m_enabled)
                return 0;
-
        if (m_type == eDVBFrontend::feSatellite)
        {
                ASSERT(m_sec);
@@ -2248,10 +2249,13 @@ int eDVBFrontend::isCompatibleWith(ePtr<iDVBFrontendParameters> &feparm)
                ret = m_sec->canTune(sat_parm, this, 1 << m_slotid);
                if (ret > 1 && sat_parm.system == eDVBFrontendParametersSatellite::System::DVB_S && m_can_handle_dvbs2)
                        ret -= 1;
+               return ret;
        }
        else if (m_type == eDVBFrontend::feCable)
                return 2;  // more prio for cable frontends
-       return 1;
+       else if (m_type == eDVBFrontend::feTerrestrial)
+               return 1;
+       return 0;
 }
 
 bool eDVBFrontend::setSlotInfo(ePyObject obj)