fix
[enigma2.git] / lib / dvb / frontend.cpp
index 353f85ad8949428c8c4667d6088c9085e1cbbb02..7b71ca13ac5a6d0b17aa8179e1731fb00464b154 100644 (file)
 #include <dvbsi++/cable_delivery_system_descriptor.h>
 #include <dvbsi++/terrestrial_delivery_system_descriptor.h>
 
+void eDVBDiseqcCommand::setCommandString(const char *str)
+{
+       if (!str)
+               return;
+       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;
@@ -1229,6 +1239,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;