fix no more working tuner resource handling
[enigma2.git] / lib / dvb / frontend.cpp
index e1af3098d6c47944a7c41849cccab70f0fee4939..14be44bbb9ea6b1d3823f697909389a24882c2af 100644 (file)
@@ -1541,7 +1541,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 +2236,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 +2247,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)