From 6704651786d0899d517443669efe380173ee6e7e Mon Sep 17 00:00:00 2001 From: John Greb Date: Tue, 2 Dec 2014 19:00:12 +0000 Subject: [PATCH] Change settings from main context. --- plugins/samplesource/fcd/fcdinput.cpp | 21 ++++++++------------- plugins/samplesource/fcd/fcdinput.h | 5 ++++- plugins/samplesource/fcd/fcdsource.cpp | 7 ++++--- plugins/samplesource/fcd/fcdthread.h | 3 --- 4 files changed, 16 insertions(+), 20 deletions(-) diff --git a/plugins/samplesource/fcd/fcdinput.cpp b/plugins/samplesource/fcd/fcdinput.cpp index c77aaf25f..1c76bf49a 100644 --- a/plugins/samplesource/fcd/fcdinput.cpp +++ b/plugins/samplesource/fcd/fcdinput.cpp @@ -93,8 +93,7 @@ bool FCDInput::startInput(int device) m_deviceDescription = QString("Funcube Dongle"); -// if (!applySettings(m_generalSettings, m_settings, true)) -// qCritical("FCD: Unable to set config at start"); + applySettings(m_generalSettings, m_settings, true); qDebug("FCDInput: start"); return true; @@ -132,8 +131,7 @@ bool FCDInput::handleMessage(Message* message) { if(MsgConfigureFCD::match(message)) { MsgConfigureFCD* conf = (MsgConfigureFCD*)message; - if(!applySettings(conf->getGeneralSettings(), conf->getSettings(), false)) - qDebug("FCD config error"); + applySettings(conf->getGeneralSettings(), conf->getSettings(), false); message->completed(); return true; } else { @@ -141,14 +139,10 @@ bool FCDInput::handleMessage(Message* message) } } -bool FCDInput::applySettings(const GeneralSettings& generalSettings, const Settings& settings, bool force) +void FCDInput::applySettings(const GeneralSettings& generalSettings, const Settings& settings, bool force) { - QMutexLocker mutexLocker(&m_mutex); bool freqChange; - if(!m_FCDThread) - return false; - if((m_generalSettings.m_centerFrequency != generalSettings.m_centerFrequency)) freqChange = true; else @@ -156,13 +150,14 @@ bool FCDInput::applySettings(const GeneralSettings& generalSettings, const Setti if(freqChange || force) { m_generalSettings.m_centerFrequency = generalSettings.m_centerFrequency; - m_FCDThread->set_center_freq( (double)(generalSettings.m_centerFrequency) ); + set_center_freq( (double)(generalSettings.m_centerFrequency) ); } if(!freqChange || force) { - m_FCDThread->set_lna_gain(settings.gain); - m_FCDThread->set_bias_t(settings.bias); + set_lna_gain(settings.gain); + set_bias_t(settings.bias); } - return true; + } + diff --git a/plugins/samplesource/fcd/fcdinput.h b/plugins/samplesource/fcd/fcdinput.h index 6e0a85849..741722543 100644 --- a/plugins/samplesource/fcd/fcdinput.h +++ b/plugins/samplesource/fcd/fcdinput.h @@ -72,6 +72,9 @@ public: const QString& getDeviceDescription() const; int getSampleRate() const; + void set_center_freq(double freq); + void set_bias_t(bool on); + void set_lna_gain(bool on); quint64 getCenterFrequency() const; bool handleMessage(Message* message); @@ -80,7 +83,7 @@ private: Settings m_settings; FCDThread* m_FCDThread; QString m_deviceDescription; - bool applySettings(const GeneralSettings& generalSettings, const Settings& settings, bool force); + void applySettings(const GeneralSettings& generalSettings, const Settings& settings, bool force); }; #endif // INCLUDE_FCD_H diff --git a/plugins/samplesource/fcd/fcdsource.cpp b/plugins/samplesource/fcd/fcdsource.cpp index 98b93db31..429f6bc49 100644 --- a/plugins/samplesource/fcd/fcdsource.cpp +++ b/plugins/samplesource/fcd/fcdsource.cpp @@ -9,6 +9,7 @@ * it under the terms of the GNU General Public Licence version 3. */ +#include "fcdinput.h" #include "fcdthread.h" #include "hid-libusb.h" #include "qthid.h" @@ -54,20 +55,20 @@ void FCDThread::CloseSource() fcd_handle = NULL; } -void FCDThread::set_center_freq(double freq) +void FCDInput::set_center_freq(double freq) { if (fcdAppSetFreq(freq) == FCD_MODE_NONE) qDebug("No FCD HID found for frquency change"); } -void FCDThread::set_bias_t(bool on) +void FCDInput::set_bias_t(bool on) { quint8 cmd = on ? 1 : 0; fcdAppSetParam(FCD_CMD_APP_SET_BIAS_TEE, &cmd, 1); } -void FCDThread::set_lna_gain(bool on) +void FCDInput::set_lna_gain(bool on) { quint8 cmd = on ? 1 : 0; diff --git a/plugins/samplesource/fcd/fcdthread.h b/plugins/samplesource/fcd/fcdthread.h index d67bb9972..0594ac6ff 100644 --- a/plugins/samplesource/fcd/fcdthread.h +++ b/plugins/samplesource/fcd/fcdthread.h @@ -38,9 +38,6 @@ public: void stopWork(); bool OpenSource(const char *filename); void CloseSource(); - void set_center_freq(double freq); - void set_bias_t(bool on); - void set_lna_gain(bool on); int work(int n_items); private: snd_pcm_format_t fcd_format;