FileSink output: force settings at startup and on deserialize

This commit is contained in:
f4exb 2017-10-14 07:28:57 +02:00
parent 2d27235769
commit ca674efb24
5 changed files with 14 additions and 7 deletions

View File

@ -38,6 +38,7 @@ FileSinkGui::FileSinkGui(DeviceSinkAPI *deviceAPI, QWidget* parent) :
QWidget(parent), QWidget(parent),
ui(new Ui::FileSinkGui), ui(new Ui::FileSinkGui),
m_deviceAPI(deviceAPI), m_deviceAPI(deviceAPI),
m_forceSettings(true),
m_settings(), m_settings(),
m_fileName("./test.sdriq"), m_fileName("./test.sdriq"),
m_deviceSampleSink(0), m_deviceSampleSink(0),
@ -117,6 +118,7 @@ bool FileSinkGui::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;
} else { } else {
@ -196,8 +198,9 @@ void FileSinkGui::sendSettings()
void FileSinkGui::updateHardware() void FileSinkGui::updateHardware()
{ {
qDebug() << "FileSinkGui::updateHardware"; qDebug() << "FileSinkGui::updateHardware";
FileSinkOutput::MsgConfigureFileSink* message = FileSinkOutput::MsgConfigureFileSink::create(m_settings); FileSinkOutput::MsgConfigureFileSink* message = FileSinkOutput::MsgConfigureFileSink::create(m_settings, m_forceSettings);
m_deviceSampleSink->getInputMessageQueue()->push(message); m_deviceSampleSink->getInputMessageQueue()->push(message);
m_forceSettings = false;
m_updateTimer.stop(); m_updateTimer.stop();
} }

View File

@ -57,6 +57,7 @@ private:
Ui::FileSinkGui* ui; Ui::FileSinkGui* ui;
DeviceSinkAPI* m_deviceAPI; DeviceSinkAPI* m_deviceAPI;
bool m_forceSettings;
FileSinkSettings m_settings; FileSinkSettings m_settings;
QString m_fileName; QString m_fileName;
QTimer m_updateTimer; QTimer m_updateTimer;

View File

@ -157,7 +157,7 @@ bool FileSinkOutput::handleMessage(const Message& message)
{ {
qDebug() << "FileSinkOutput::handleMessage: MsgConfigureFileSink"; qDebug() << "FileSinkOutput::handleMessage: MsgConfigureFileSink";
MsgConfigureFileSink& conf = (MsgConfigureFileSink&) message; MsgConfigureFileSink& conf = (MsgConfigureFileSink&) message;
applySettings(conf.getSettings(), false); applySettings(conf.getSettings(), conf.getForce());
return true; return true;
} }
else if (MsgConfigureFileSinkWork::match(message)) else if (MsgConfigureFileSinkWork::match(message))

View File

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

View File

@ -25,7 +25,7 @@
const PluginDescriptor FileSinkPlugin::m_pluginDescriptor = { const PluginDescriptor FileSinkPlugin::m_pluginDescriptor = {
QString("File sink output"), QString("File sink output"),
QString("3.5.0"), QString("3.7.4"),
QString("(c) Edouard Griffiths, F4EXB"), QString("(c) Edouard Griffiths, F4EXB"),
QString("https://github.com/f4exb/sdrangel"), QString("https://github.com/f4exb/sdrangel"),
true, true,