1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2025-08-09 01:02:26 -04:00

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

View File

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