void FCDInput::applySettings(const GeneralSettings& generalSettings, const Settings& settings, bool force) { bool freqChange; if((m_generalSettings.m_centerFrequency != generalSettings.m_centerFrequency)) freqChange = true; else freqChange = false; if(freqChange || force) { m_generalSettings.m_centerFrequency = generalSettings.m_centerFrequency; set_center_freq( (double)(generalSettings.m_centerFrequency) ); } if(!freqChange || force) { set_lna_gain(settings.gain); set_bias_t(settings.bias); } }
void FCDProPlusInput::applySettings(const FCDProPlusSettings& settings, bool force) { bool signalChange = false; if ((m_settings.m_centerFrequency != settings.m_centerFrequency) || force) { qDebug() << "FCDProPlusInput::applySettings: fc: " << settings.m_centerFrequency; m_settings.m_centerFrequency = settings.m_centerFrequency; if (m_dev != 0) { set_center_freq((double) m_settings.m_centerFrequency); } signalChange = true; } if ((m_settings.m_lnaGain != settings.m_lnaGain) || force) { m_settings.m_lnaGain = settings.m_lnaGain; if (m_dev != 0) { set_lna_gain(settings.m_lnaGain); } } if ((m_settings.m_biasT != settings.m_biasT) || force) { m_settings.m_biasT = settings.m_biasT; if (m_dev != 0) { set_bias_t(settings.m_biasT); } } if ((m_settings.m_mixGain != settings.m_mixGain) || force) { m_settings.m_mixGain = settings.m_mixGain; if (m_dev != 0) { set_mixer_gain(settings.m_mixGain); } } if ((m_settings.m_ifGain != settings.m_ifGain) || force) { m_settings.m_ifGain = settings.m_ifGain; if (m_dev != 0) { set_if_gain(settings.m_ifGain); } } if ((m_settings.m_ifFilterIndex != settings.m_ifFilterIndex) || force) { m_settings.m_ifFilterIndex = settings.m_ifFilterIndex; if (m_dev != 0) { set_if_filter(settings.m_ifFilterIndex); } } if ((m_settings.m_rfFilterIndex != settings.m_rfFilterIndex) || force) { m_settings.m_rfFilterIndex = settings.m_rfFilterIndex; if (m_dev != 0) { set_rf_filter(settings.m_rfFilterIndex); } } if ((m_settings.m_LOppmTenths != settings.m_LOppmTenths) || force) { m_settings.m_LOppmTenths = settings.m_LOppmTenths; if (m_dev != 0) { set_lo_ppm(); } } if ((m_settings.m_dcBlock != settings.m_dcBlock) || force) { m_settings.m_dcBlock = settings.m_dcBlock; m_deviceAPI->configureCorrections(m_settings.m_dcBlock, m_settings.m_iqImbalance); } if ((m_settings.m_iqImbalance != settings.m_iqImbalance) || force) { m_settings.m_iqImbalance = settings.m_iqImbalance; m_deviceAPI->configureCorrections(m_settings.m_dcBlock, m_settings.m_iqImbalance); } if (signalChange) { DSPSignalNotification *notif = new DSPSignalNotification(fcd_traits<ProPlus>::sampleRate, m_settings.m_centerFrequency); m_deviceAPI->getDeviceInputMessageQueue()->push(notif); } }