format, ac3 and crypted indicators now working
[enigma2.git] / lib / dvb / frontend.cpp
index a3483904b8c78f349bdb316fc876aa293db43ab6..103d89495b15a3c77939d7d1272db93aed7ef444 100644 (file)
@@ -177,8 +177,11 @@ RESULT eDVBFrontendParameters::calculateDifference(const iDVBFrontendParameters
                        diff = 1<<29;
                else if (sat.polarisation != osat.polarisation)
                        diff = 1<<28;
-               else 
+               else
+               {
                        diff = abs(sat.frequency - osat.frequency);
+                       diff += abs(sat.symbol_rate - osat.symbol_rate);
+               }
                return 0;
        }
        case iDVBFrontend::feCable:
@@ -229,6 +232,8 @@ eDVBFrontend::eDVBFrontend(int adap, int fe, int &ok)
        for (int i=0; i<entries; ++i)
                m_data[i] = -1;
 
+       m_idleInputpower[0]=m_idleInputpower[1]=0;
+
        ok = !openFrontend();
        closeFrontend();
 }
@@ -1059,6 +1064,19 @@ RESULT eDVBFrontend::sendToneburst(int burst)
                cmd = SEC_MINI_B;
        if (::ioctl(m_secfd, SEC_DISEQC_SEND_BURST, cmd))
                return -EINVAL;
+#else
+       fe_sec_mini_cmd_t cmd = SEC_MINI_A;
+       if ( burst == eDVBSatelliteDiseqcParameters::A )
+               cmd = SEC_MINI_A;
+       else if ( burst == eDVBSatelliteDiseqcParameters::B )
+               cmd = SEC_MINI_B;
+       else
+       {
+               eDebug("unknown toneburst!");
+               return -EINVAL;
+       }
+       if (::ioctl(m_fd, FE_DISEQC_SEND_BURST, cmd))
+               return -EINVAL;
 #endif
        return 0;
 }