BladeRF input: force settings at startup and on deserialize

This commit is contained in:
f4exb 2017-10-14 06:36:29 +02:00
parent 4af7c40641
commit f31032426a
4 changed files with 13 additions and 6 deletions

View File

@ -221,7 +221,7 @@ bool BladerfInput::handleMessage(const Message& message)
MsgConfigureBladerf& conf = (MsgConfigureBladerf&) message;
qDebug() << "BladerfInput::handleMessage: MsgConfigureBladerf";
if (!applySettings(conf.getSettings(), false))
if (!applySettings(conf.getSettings(), conf.getForce()))
{
qDebug("BladeRF config error");
}

View File

@ -37,18 +37,21 @@ public:
public:
const BladeRFInputSettings& getSettings() const { return m_settings; }
bool getForce() const { return m_force; }
static MsgConfigureBladerf* create(const BladeRFInputSettings& settings)
static MsgConfigureBladerf* create(const BladeRFInputSettings& settings, bool force)
{
return new MsgConfigureBladerf(settings);
return new MsgConfigureBladerf(settings, force);
}
private:
BladeRFInputSettings m_settings;
bool m_force;
MsgConfigureBladerf(const BladeRFInputSettings& settings) :
MsgConfigureBladerf(const BladeRFInputSettings& settings, bool force) :
Message(),
m_settings(settings)
m_settings(settings),
m_force(force)
{ }
};

View File

@ -32,6 +32,7 @@ BladerfInputGui::BladerfInputGui(DeviceSourceAPI *deviceAPI, QWidget* parent) :
QWidget(parent),
ui(new Ui::BladerfInputGui),
m_deviceAPI(deviceAPI),
m_forceSettings(true),
m_settings(),
m_sampleSource(NULL),
m_sampleRate(0),
@ -110,6 +111,7 @@ bool BladerfInputGui::deserialize(const QByteArray& data)
{
if(m_settings.deserialize(data)) {
displaySettings();
m_forceSettings = true;
sendSettings();
return true;
} else {
@ -359,8 +361,9 @@ void BladerfInputGui::on_record_toggled(bool checked)
void BladerfInputGui::updateHardware()
{
qDebug() << "BladerfGui::updateHardware";
BladerfInput::MsgConfigureBladerf* message = BladerfInput::MsgConfigureBladerf::create( m_settings);
BladerfInput::MsgConfigureBladerf* message = BladerfInput::MsgConfigureBladerf::create(m_settings, m_forceSettings);
m_sampleSource->getInputMessageQueue()->push(message);
m_forceSettings = false;
m_updateTimer.stop();
}

View File

@ -54,6 +54,7 @@ private:
Ui::BladerfInputGui* ui;
DeviceSourceAPI* m_deviceAPI;
bool m_forceSettings;
BladeRFInputSettings m_settings;
QTimer m_updateTimer;
QTimer m_statusTimer;