HackRF input: force settings at start and on preset deserialization

This commit is contained in:
f4exb 2017-05-26 17:43:58 +02:00
parent 3b44a5367c
commit d6eb9788c4
3 changed files with 14 additions and 8 deletions

View File

@ -36,18 +36,21 @@ public:
public:
const HackRFInputSettings& getSettings() const { return m_settings; }
bool getForce() const { return m_force; }
static MsgConfigureHackRF* create(const HackRFInputSettings& settings)
static MsgConfigureHackRF* create(const HackRFInputSettings& settings, bool force = false)
{
return new MsgConfigureHackRF(settings);
return new MsgConfigureHackRF(settings, force);
}
private:
HackRFInputSettings m_settings;
bool m_force;
MsgConfigureHackRF(const HackRFInputSettings& settings) :
MsgConfigureHackRF(const HackRFInputSettings& settings, bool force) :
Message(),
m_settings(settings)
m_settings(settings),
m_force(force)
{ }
};

View File

@ -36,6 +36,7 @@ HackRFInputGui::HackRFInputGui(DeviceSourceAPI *deviceAPI, QWidget* parent) :
ui(new Ui::HackRFInputGui),
m_deviceAPI(deviceAPI),
m_settings(),
m_forceSettings(true),
m_sampleSource(NULL),
m_lastEngineState((DSPDeviceSourceEngine::State)-1)
{
@ -54,17 +55,16 @@ HackRFInputGui::HackRFInputGui(DeviceSourceAPI *deviceAPI, QWidget* parent) :
m_statusTimer.start(500);
displaySettings();
displayBandwidths();
char recFileNameCStr[30];
sprintf(recFileNameCStr, "test_%d.sdriq", m_deviceAPI->getDeviceUID());
m_fileSink = new FileRecord(std::string(recFileNameCStr));
m_deviceAPI->addSink(m_fileSink);
connect(m_deviceAPI->getDeviceOutputMessageQueue(), SIGNAL(messageEnqueued()), this, SLOT(handleDSPMessages()), Qt::QueuedConnection);
sendSettings();
}
HackRFInputGui::~HackRFInputGui()
@ -119,6 +119,7 @@ bool HackRFInputGui::deserialize(const QByteArray& data)
if(m_settings.deserialize(data))
{
displaySettings();
m_forceSettings = true;
sendSettings();
return true;
}
@ -355,8 +356,9 @@ void HackRFInputGui::on_record_toggled(bool checked)
void HackRFInputGui::updateHardware()
{
qDebug() << "HackRFGui::updateHardware";
HackRFInput::MsgConfigureHackRF* message = HackRFInput::MsgConfigureHackRF::create(m_settings);
HackRFInput::MsgConfigureHackRF* message = HackRFInput::MsgConfigureHackRF::create(m_settings, m_forceSettings);
m_sampleSource->getInputMessageQueue()->push(message);
m_forceSettings = false;
m_updateTimer.stop();
}

View File

@ -62,6 +62,7 @@ private:
DeviceSourceAPI* m_deviceAPI;
HackRFInputSettings m_settings;
bool m_forceSettings;
QTimer m_updateTimer;
QTimer m_statusTimer;
DeviceSampleSource* m_sampleSource;