make eDVBResourceManager accessible from python (needed for allocate a raw iDVBChannel)
[enigma2.git] / lib / dvb / frontend.cpp
index e82c6d4608d30280649b43bb34e4613095adfa39..3e2efbe7cfba07752395815f4dda1fd353d992cd 100644 (file)
 #include <dvbsi++/cable_delivery_system_descriptor.h>
 #include <dvbsi++/terrestrial_delivery_system_descriptor.h>
 
+void eDVBDiseqcCommand::setData(const char *str)
+{
+       len = strlen(str);
+       if (len > MAX_DISEQC_LENGTH)
+               len = MAX_DISEQC_LENGTH;
+       memcpy(data, str, len);
+}
+
 void eDVBFrontendParametersSatellite::set(const SatelliteDeliverySystemDescriptor &descriptor)
 {
        frequency    = descriptor.getFrequency() * 10;
@@ -607,7 +615,7 @@ void fillDictWithCableData(PyObject *dict, const FRONTENDPARAMETERS &parm)
        case FEC_7_8:
                tmp = "FEC_7_8";
                break;
-#ifdef HAVE_DVB_API_VERSION >= 3
+#if HAVE_DVB_API_VERSION >= 3
        case FEC_8_9:
                tmp = "FEC_8_9";
                break;
@@ -1229,6 +1237,12 @@ RESULT eDVBFrontend::prepare_sat(const eDVBFrontendParametersSatellite &feparm)
                                parm_u_qpsk_fec_inner = FEC_7_8;
                                break;
                }
+               // FIXME !!! get frequency range from tuner
+               if ( parm_frequency < 900000 || parm_frequency > 2200000 )
+               {
+                       eDebug("%d mhz out of tuner range.. dont tune", parm_frequency/1000);
+                       return -EINVAL;
+               }
                eDebug("tuning to %d mhz", parm_frequency/1000);
        }
        return res;
@@ -1293,7 +1307,7 @@ RESULT eDVBFrontend::prepare_cable(const eDVBFrontendParametersCable &feparm)
        case eDVBFrontendParametersCable::FEC::f7_8:
                parm_u_qam_fec_inner = FEC_7_8;
                break;
-#ifdef HAVE_DVB_API_VERSION >= 3
+#if HAVE_DVB_API_VERSION >= 3
        case eDVBFrontendParametersCable::FEC::f8_9:
                parm_u_qam_fec_inner = FEC_8_9;
                break;