WFM modulator: use settings in GUI (3)

This commit is contained in:
f4exb 2017-10-13 08:40:10 +02:00
parent 394e2864d2
commit 024814e997
3 changed files with 87 additions and 73 deletions

View File

@ -68,7 +68,7 @@ void NFMModGUI::resetToDefaults()
{ {
m_settings.resetToDefaults(); m_settings.resetToDefaults();
displaySettings(); displaySettings();
applySettings(); applySettings(true);
} }
QByteArray NFMModGUI::serialize() const QByteArray NFMModGUI::serialize() const
@ -78,7 +78,6 @@ QByteArray NFMModGUI::serialize() const
bool NFMModGUI::deserialize(const QByteArray& data) bool NFMModGUI::deserialize(const QByteArray& data)
{ {
qDebug("NFMModGUI::deserialize");
if(m_settings.deserialize(data)) { if(m_settings.deserialize(data)) {
displaySettings(); displaySettings();
applySettings(true); applySettings(true);

View File

@ -72,84 +72,98 @@ void WFMModGUI::setCenterFrequency(qint64 centerFrequency)
void WFMModGUI::resetToDefaults() void WFMModGUI::resetToDefaults()
{ {
blockApplySettings(true); m_settings.resetToDefaults();
displaySettings();
applySettings(true);
ui->rfBW->setCurrentIndex(7); // blockApplySettings(true);
ui->afBW->setValue(8); //
ui->fmDev->setValue(50); // ui->rfBW->setCurrentIndex(7);
ui->toneFrequency->setValue(100); // ui->afBW->setValue(8);
ui->volume->setValue(10); // ui->fmDev->setValue(50);
ui->deltaFrequency->setValue(0); // ui->toneFrequency->setValue(100);
// ui->volume->setValue(10);
blockApplySettings(false); // ui->deltaFrequency->setValue(0);
applySettings(); //
// blockApplySettings(false);
// applySettings();
} }
QByteArray WFMModGUI::serialize() const QByteArray WFMModGUI::serialize() const
{ {
SimpleSerializer s(1); return m_settings.serialize();
s.writeS32(1, m_channelMarker.getCenterFrequency()); // SimpleSerializer s(1);
s.writeS32(2, ui->rfBW->currentIndex()); // s.writeS32(1, m_channelMarker.getCenterFrequency());
s.writeS32(3, ui->afBW->value()); // s.writeS32(2, ui->rfBW->currentIndex());
s.writeS32(4, ui->fmDev->value()); // s.writeS32(3, ui->afBW->value());
s.writeU32(5, m_channelMarker.getColor().rgb()); // s.writeS32(4, ui->fmDev->value());
s.writeS32(6, ui->toneFrequency->value()); // s.writeU32(5, m_channelMarker.getColor().rgb());
s.writeS32(7, ui->volume->value()); // s.writeS32(6, ui->toneFrequency->value());
s.writeBlob(8, ui->cwKeyerGUI->serialize()); // s.writeS32(7, ui->volume->value());
return s.final(); // s.writeBlob(8, ui->cwKeyerGUI->serialize());
// return s.final();
} }
bool WFMModGUI::deserialize(const QByteArray& data) bool WFMModGUI::deserialize(const QByteArray& data)
{ {
SimpleDeserializer d(data); if(m_settings.deserialize(data)) {
displaySettings();
applySettings(true);
return true;
} else {
resetToDefaults();
return false;
}
if(!d.isValid()) // SimpleDeserializer d(data);
{ //
resetToDefaults(); // if(!d.isValid())
return false; // {
} // resetToDefaults();
// return false;
if(d.getVersion() == 1) // }
{ //
QByteArray bytetmp; // if(d.getVersion() == 1)
quint32 u32tmp; // {
qint32 tmp; // QByteArray bytetmp;
// quint32 u32tmp;
blockApplySettings(true); // qint32 tmp;
m_channelMarker.blockSignals(true); //
// blockApplySettings(true);
d.readS32(1, &tmp, 0); // m_channelMarker.blockSignals(true);
m_channelMarker.setCenterFrequency(tmp); //
d.readS32(2, &tmp, 7); // d.readS32(1, &tmp, 0);
ui->rfBW->setCurrentIndex(tmp); // m_channelMarker.setCenterFrequency(tmp);
d.readS32(3, &tmp, 3); // d.readS32(2, &tmp, 7);
ui->afBW->setValue(tmp); // ui->rfBW->setCurrentIndex(tmp);
d.readS32(4, &tmp, 50); // d.readS32(3, &tmp, 3);
ui->fmDev->setValue(tmp); // ui->afBW->setValue(tmp);
// d.readS32(4, &tmp, 50);
if(d.readU32(5, &u32tmp)) // ui->fmDev->setValue(tmp);
{ //
m_channelMarker.setColor(u32tmp); // if(d.readU32(5, &u32tmp))
} // {
// m_channelMarker.setColor(u32tmp);
d.readS32(6, &tmp, 100); // }
ui->toneFrequency->setValue(tmp); //
d.readS32(7, &tmp, 10); // d.readS32(6, &tmp, 100);
ui->volume->setValue(tmp); // ui->toneFrequency->setValue(tmp);
d.readBlob(8, &bytetmp); // d.readS32(7, &tmp, 10);
ui->cwKeyerGUI->deserialize(bytetmp); // ui->volume->setValue(tmp);
// d.readBlob(8, &bytetmp);
blockApplySettings(false); // ui->cwKeyerGUI->deserialize(bytetmp);
m_channelMarker.blockSignals(false); //
// blockApplySettings(false);
applySettings(); // m_channelMarker.blockSignals(false);
return true; //
} // applySettings();
else // return true;
{ // }
resetToDefaults(); // else
return false; // {
} // resetToDefaults();
// return false;
// }
} }
bool WFMModGUI::handleMessage(const Message& message) bool WFMModGUI::handleMessage(const Message& message)
@ -405,7 +419,8 @@ WFMModGUI::WFMModGUI(PluginAPI* pluginAPI, DeviceSinkAPI *deviceAPI, QWidget* pa
connect(getInputMessageQueue(), SIGNAL(messageEnqueued()), this, SLOT(handleSourceMessages())); connect(getInputMessageQueue(), SIGNAL(messageEnqueued()), this, SLOT(handleSourceMessages()));
connect(m_wfmMod, SIGNAL(levelChanged(qreal, qreal, int)), ui->volumeMeter, SLOT(levelChanged(qreal, qreal, int))); connect(m_wfmMod, SIGNAL(levelChanged(qreal, qreal, int)), ui->volumeMeter, SLOT(levelChanged(qreal, qreal, int)));
applySettings(); displaySettings();
applySettings(true);
} }
WFMModGUI::~WFMModGUI() WFMModGUI::~WFMModGUI()
@ -424,7 +439,7 @@ void WFMModGUI::blockApplySettings(bool block)
m_doApplySettings = !block; m_doApplySettings = !block;
} }
void WFMModGUI::applySettings() void WFMModGUI::applySettings(bool force __attribute__((unused)))
{ {
if (m_doApplySettings) if (m_doApplySettings)
{ {

View File

@ -113,7 +113,7 @@ private:
virtual ~WFMModGUI(); virtual ~WFMModGUI();
void blockApplySettings(bool block); void blockApplySettings(bool block);
void applySettings(); void applySettings(bool force = false);
void displaySettings(); void displaySettings();
void updateWithStreamData(); void updateWithStreamData();
void updateWithStreamTime(); void updateWithStreamTime();