Save/restore rollup state in channel plugins

This commit is contained in:
Jon Beniston 2021-11-24 09:50:42 +00:00
parent 4b80fbf337
commit 2e68017b12
132 changed files with 310 additions and 2 deletions

View File

@ -167,6 +167,7 @@ void BeamSteeringCWModGUI::displaySettings()
ui->interpolationFactor->setCurrentIndex(m_settings.m_log2Interp); ui->interpolationFactor->setCurrentIndex(m_settings.m_log2Interp);
applyInterpolation(); applyInterpolation();
ui->steeringDegreesText->setText(tr("%1").arg(m_settings.m_steerDegrees)); ui->steeringDegreesText->setText(tr("%1").arg(m_settings.m_steerDegrees));
restoreState(m_settings.m_rollupState);
blockApplySettings(false); blockApplySettings(false);
} }
@ -208,6 +209,9 @@ void BeamSteeringCWModGUI::onWidgetRolled(QWidget* widget, bool rollDown)
{ {
(void) widget; (void) widget;
(void) rollDown; (void) rollDown;
m_settings.m_rollupState = saveState();
applySettings();
} }
void BeamSteeringCWModGUI::onMenuDialogCalled(const QPoint &p) void BeamSteeringCWModGUI::onMenuDialogCalled(const QPoint &p)

View File

@ -58,6 +58,7 @@ QByteArray BeamSteeringCWModSettings::serialize() const
s.writeU32(12, m_log2Interp); s.writeU32(12, m_log2Interp);
s.writeU32(13, m_filterChainHash); s.writeU32(13, m_filterChainHash);
s.writeS32(14, m_channelOutput); s.writeS32(14, m_channelOutput);
s.writeBlob(15, m_rollupState);
return s.final(); return s.final();
} }
@ -101,6 +102,7 @@ bool BeamSteeringCWModSettings::deserialize(const QByteArray& data)
d.readU32(13, &m_filterChainHash, 0); d.readU32(13, &m_filterChainHash, 0);
d.readS32(14, &stmp, 0); d.readS32(14, &stmp, 0);
m_channelOutput = stmp < 0 ? 0 : stmp > 2 ? 2 : stmp; m_channelOutput = stmp < 0 ? 0 : stmp > 2 ? 2 : stmp;
d.readBlob(15, &m_rollupState);
return true; return true;
} }

View File

@ -38,6 +38,7 @@ struct BeamSteeringCWModSettings
uint16_t m_reverseAPIChannelIndex; uint16_t m_reverseAPIChannelIndex;
Serializable *m_channelMarker; Serializable *m_channelMarker;
QByteArray m_rollupState;
BeamSteeringCWModSettings(); BeamSteeringCWModSettings();
void resetToDefaults(); void resetToDefaults();

View File

@ -198,6 +198,7 @@ void InterferometerGUI::displaySettings()
applyDecimation(); applyDecimation();
ui->phaseCorrection->setValue(m_settings.m_phase); ui->phaseCorrection->setValue(m_settings.m_phase);
ui->phaseCorrectionText->setText(tr("%1").arg(m_settings.m_phase)); ui->phaseCorrectionText->setText(tr("%1").arg(m_settings.m_phase));
restoreState(m_settings.m_rollupState);
blockApplySettings(false); blockApplySettings(false);
} }
@ -241,6 +242,9 @@ void InterferometerGUI::onWidgetRolled(QWidget* widget, bool rollDown)
{ {
(void) widget; (void) widget;
(void) rollDown; (void) rollDown;
m_settings.m_rollupState = saveState();
applySettings();
} }
void InterferometerGUI::onMenuDialogCalled(const QPoint &p) void InterferometerGUI::onMenuDialogCalled(const QPoint &p)

View File

@ -70,6 +70,7 @@ QByteArray InterferometerSettings::serialize() const
if (m_channelMarker) { if (m_channelMarker) {
s.writeBlob(22, m_channelMarker->serialize()); s.writeBlob(22, m_channelMarker->serialize());
} }
s.writeBlob(23, m_rollupState);
return s.final(); return s.final();
} }
@ -125,9 +126,10 @@ bool InterferometerSettings::deserialize(const QByteArray& data)
} }
if (m_channelMarker) { if (m_channelMarker) {
d.readBlob(21, &bytetmp); d.readBlob(22, &bytetmp);
m_channelMarker->deserialize(bytetmp); m_channelMarker->deserialize(bytetmp);
} }
d.readBlob(23, &m_rollupState);
return true; return true;
} }

View File

@ -52,6 +52,7 @@ struct InterferometerSettings
Serializable *m_channelMarker; Serializable *m_channelMarker;
Serializable *m_spectrumGUI; Serializable *m_spectrumGUI;
Serializable *m_scopeGUI; Serializable *m_scopeGUI;
QByteArray m_rollupState;
InterferometerSettings(); InterferometerSettings();
void resetToDefaults(); void resetToDefaults();

View File

@ -97,6 +97,7 @@ void ChannelAnalyzerGUI::displaySettings()
QString rolloffStr = QString::number(m_settings.m_rrcRolloff/100.0, 'f', 2); QString rolloffStr = QString::number(m_settings.m_rrcRolloff/100.0, 'f', 2);
ui->rrcRolloffText->setText(rolloffStr); ui->rrcRolloffText->setText(rolloffStr);
restoreState(m_settings.m_rollupState);
blockApplySettings(false); blockApplySettings(false);
} }
@ -432,6 +433,9 @@ void ChannelAnalyzerGUI::onWidgetRolled(QWidget* widget, bool rollDown)
{ {
(void) widget; (void) widget;
(void) rollDown; (void) rollDown;
m_settings.m_rollupState = saveState();
applySettings();
} }
void ChannelAnalyzerGUI::onMenuDialogCalled(const QPoint& p) void ChannelAnalyzerGUI::onMenuDialogCalled(const QPoint& p)

View File

@ -79,6 +79,7 @@ QByteArray ChannelAnalyzerSettings::serialize() const
s.writeFloat(19, m_pllDampingFactor); s.writeFloat(19, m_pllDampingFactor);
s.writeFloat(20, m_pllLoopGain); s.writeFloat(20, m_pllLoopGain);
s.writeBool(21, m_costasLoop); s.writeBool(21, m_costasLoop);
s.writeBlob(22, m_rollupState);
return s.final(); return s.final();
} }
@ -130,6 +131,7 @@ bool ChannelAnalyzerSettings::deserialize(const QByteArray& data)
d.readFloat(19, &m_pllDampingFactor, 0.5f); d.readFloat(19, &m_pllDampingFactor, 0.5f);
d.readFloat(20, &m_pllLoopGain, 10.0f); d.readFloat(20, &m_pllLoopGain, 10.0f);
d.readBool(21, &m_costasLoop, false); d.readBool(21, &m_costasLoop, false);
d.readBlob(22, &m_rollupState);
return true; return true;
} }

View File

@ -53,6 +53,7 @@ struct ChannelAnalyzerSettings
Serializable *m_channelMarker; Serializable *m_channelMarker;
Serializable *m_spectrumGUI; Serializable *m_spectrumGUI;
Serializable *m_scopeGUI; Serializable *m_scopeGUI;
QByteArray m_rollupState;
ChannelAnalyzerSettings(); ChannelAnalyzerSettings();
void resetToDefaults(); void resetToDefaults();

View File

@ -1994,6 +1994,9 @@ void ADSBDemodGUI::onWidgetRolled(QWidget* widget, bool rollDown)
{ {
(void) widget; (void) widget;
(void) rollDown; (void) rollDown;
m_settings.m_rollupState = saveState();
applySettings();
} }
void ADSBDemodGUI::onMenuDialogCalled(const QPoint &p) void ADSBDemodGUI::onMenuDialogCalled(const QPoint &p)
@ -2775,6 +2778,7 @@ void ADSBDemodGUI::displaySettings()
applyMapSettings(); applyMapSettings();
restoreState(m_settings.m_rollupState);
blockApplySettings(false); blockApplySettings(false);
} }

View File

@ -133,6 +133,7 @@ QByteArray ADSBDemodSettings::serialize() const
s.writeS32(40, (int)m_mapType); s.writeS32(40, (int)m_mapType);
s.writeBool(41, m_displayNavAids); s.writeBool(41, m_displayNavAids);
s.writeBool(42, m_displayPhotos); s.writeBool(42, m_displayPhotos);
s.writeBlob(43, m_rollupState);
for (int i = 0; i < ADSBDEMOD_COLUMNS; i++) { for (int i = 0; i < ADSBDEMOD_COLUMNS; i++) {
s.writeS32(100 + i, m_columnIndexes[i]); s.writeS32(100 + i, m_columnIndexes[i]);
@ -231,6 +232,7 @@ bool ADSBDemodSettings::deserialize(const QByteArray& data)
d.readS32(40, (int *)&m_mapType, (int)AVIATION_LIGHT); d.readS32(40, (int *)&m_mapType, (int)AVIATION_LIGHT);
d.readBool(41, &m_displayNavAids, true); d.readBool(41, &m_displayNavAids, true);
d.readBool(42, &m_displayPhotos, true); d.readBool(42, &m_displayPhotos, true);
d.readBlob(43, &m_rollupState);
for (int i = 0; i < ADSBDEMOD_COLUMNS; i++) { for (int i = 0; i < ADSBDEMOD_COLUMNS; i++) {
d.readS32(100 + i, &m_columnIndexes[i], i); d.readS32(100 + i, &m_columnIndexes[i], i);

View File

@ -144,6 +144,7 @@ struct ADSBDemodSettings
} m_mapType; } m_mapType;
bool m_displayNavAids; bool m_displayNavAids;
bool m_displayPhotos; bool m_displayPhotos;
QByteArray m_rollupState;
ADSBDemodSettings(); ADSBDemodSettings();
void resetToDefaults(); void resetToDefaults();

View File

@ -361,6 +361,9 @@ void AISDemodGUI::onWidgetRolled(QWidget* widget, bool rollDown)
setMinimumWidth(352); setMinimumWidth(352);
} }
} }
m_settings.m_rollupState = saveState();
applySettings();
} }
void AISDemodGUI::onMenuDialogCalled(const QPoint &p) void AISDemodGUI::onMenuDialogCalled(const QPoint &p)
@ -597,6 +600,7 @@ void AISDemodGUI::displaySettings()
} }
filter(); filter();
restoreState(m_settings.m_rollupState);
blockApplySettings(false); blockApplySettings(false);
} }

View File

@ -92,6 +92,7 @@ QByteArray AISDemodSettings::serialize() const
s.writeString(22, m_logFilename); s.writeString(22, m_logFilename);
s.writeBool(23, m_logEnabled); s.writeBool(23, m_logEnabled);
s.writeS32(24, m_baud); s.writeS32(24, m_baud);
s.writeBlob(25, m_rollupState);
for (int i = 0; i < AISDEMOD_MESSAGE_COLUMNS; i++) for (int i = 0; i < AISDEMOD_MESSAGE_COLUMNS; i++)
s.writeS32(100 + i, m_messageColumnIndexes[i]); s.writeS32(100 + i, m_messageColumnIndexes[i]);
@ -162,6 +163,7 @@ bool AISDemodSettings::deserialize(const QByteArray& data)
d.readString(22, &m_logFilename, "ais_log.csv"); d.readString(22, &m_logFilename, "ais_log.csv");
d.readBool(23, &m_logEnabled, false); d.readBool(23, &m_logEnabled, false);
d.readS32(24, &m_baud, 9600); d.readS32(24, &m_baud, 9600);
d.readBlob(25, &m_rollupState);
for (int i = 0; i < AISDEMOD_MESSAGE_COLUMNS; i++) for (int i = 0; i < AISDEMOD_MESSAGE_COLUMNS; i++)
d.readS32(100 + i, &m_messageColumnIndexes[i], i); d.readS32(100 + i, &m_messageColumnIndexes[i], i);

View File

@ -60,6 +60,7 @@ struct AISDemodSettings
uint16_t m_reverseAPIDeviceIndex; uint16_t m_reverseAPIDeviceIndex;
uint16_t m_reverseAPIChannelIndex; uint16_t m_reverseAPIChannelIndex;
Serializable *m_scopeGUI; Serializable *m_scopeGUI;
QByteArray m_rollupState;
int m_messageColumnIndexes[AISDEMOD_MESSAGE_COLUMNS];//!< How the columns are ordered in the table int m_messageColumnIndexes[AISDEMOD_MESSAGE_COLUMNS];//!< How the columns are ordered in the table
int m_messageColumnSizes[AISDEMOD_MESSAGE_COLUMNS]; //!< Size of the columns in the table int m_messageColumnSizes[AISDEMOD_MESSAGE_COLUMNS]; //!< Size of the columns in the table

View File

@ -180,6 +180,9 @@ void AMDemodGUI::onWidgetRolled(QWidget* widget, bool rollDown)
if((widget == ui->spectrumContainer) && (m_nfmDemod != NULL)) if((widget == ui->spectrumContainer) && (m_nfmDemod != NULL))
m_nfmDemod->setSpectrum(m_threadedSampleSink->getMessageQueue(), rollDown); m_nfmDemod->setSpectrum(m_threadedSampleSink->getMessageQueue(), rollDown);
*/ */
m_settings.m_rollupState = saveState();
applySettings();
} }
void AMDemodGUI::onMenuDialogCalled(const QPoint &p) void AMDemodGUI::onMenuDialogCalled(const QPoint &p)
@ -367,6 +370,7 @@ void AMDemodGUI::displaySettings()
displayStreamIndex(); displayStreamIndex();
restoreState(m_settings.m_rollupState);
blockApplySettings(false); blockApplySettings(false);
} }

View File

@ -73,6 +73,7 @@ QByteArray AMDemodSettings::serialize() const
s.writeU32(16, m_reverseAPIPort); s.writeU32(16, m_reverseAPIPort);
s.writeU32(17, m_reverseAPIDeviceIndex); s.writeU32(17, m_reverseAPIDeviceIndex);
s.writeU32(18, m_reverseAPIChannelIndex); s.writeU32(18, m_reverseAPIChannelIndex);
s.writeBlob(19, m_rollupState);
return s.final(); return s.final();
} }
@ -129,6 +130,7 @@ bool AMDemodSettings::deserialize(const QByteArray& data)
m_reverseAPIDeviceIndex = utmp > 99 ? 99 : utmp; m_reverseAPIDeviceIndex = utmp > 99 ? 99 : utmp;
d.readU32(18, &utmp, 0); d.readU32(18, &utmp, 0);
m_reverseAPIChannelIndex = utmp > 99 ? 99 : utmp; m_reverseAPIChannelIndex = utmp > 99 ? 99 : utmp;
d.readBlob(19, &m_rollupState);
return true; return true;
} }

View File

@ -49,6 +49,7 @@ struct AMDemodSettings
uint16_t m_reverseAPIPort; uint16_t m_reverseAPIPort;
uint16_t m_reverseAPIDeviceIndex; uint16_t m_reverseAPIDeviceIndex;
uint16_t m_reverseAPIChannelIndex; uint16_t m_reverseAPIChannelIndex;
QByteArray m_rollupState;
AMDemodSettings(); AMDemodSettings();
void resetToDefaults(); void resetToDefaults();

View File

@ -389,6 +389,9 @@ void APTDemodGUI::onWidgetRolled(QWidget* widget, bool rollDown)
{ {
(void) widget; (void) widget;
(void) rollDown; (void) rollDown;
m_settings.m_rollupState = saveState();
applySettings();
} }
void APTDemodGUI::onMenuDialogCalled(const QPoint &p) void APTDemodGUI::onMenuDialogCalled(const QPoint &p)
@ -547,6 +550,7 @@ void APTDemodGUI::displaySettings()
displayStreamIndex(); displayStreamIndex();
restoreState(m_settings.m_rollupState);
blockApplySettings(false); blockApplySettings(false);
} }

View File

@ -90,6 +90,7 @@ QByteArray APTDemodSettings::serialize() const
s.writeU32(25, m_reverseAPIPort); s.writeU32(25, m_reverseAPIPort);
s.writeU32(26, m_reverseAPIDeviceIndex); s.writeU32(26, m_reverseAPIDeviceIndex);
s.writeU32(27, m_reverseAPIChannelIndex); s.writeU32(27, m_reverseAPIChannelIndex);
s.writeBlob(28, m_rollupState);
return s.final(); return s.final();
} }
@ -150,6 +151,7 @@ bool APTDemodSettings::deserialize(const QByteArray& data)
m_reverseAPIDeviceIndex = utmp > 99 ? 99 : utmp; m_reverseAPIDeviceIndex = utmp > 99 ? 99 : utmp;
d.readU32(27, &utmp, 0); d.readU32(27, &utmp, 0);
m_reverseAPIChannelIndex = utmp > 99 ? 99 : utmp; m_reverseAPIChannelIndex = utmp > 99 ? 99 : utmp;
d.readBlob(28, &m_rollupState);
return true; return true;
} }

View File

@ -53,6 +53,7 @@ struct APTDemodSettings
uint16_t m_reverseAPIPort; uint16_t m_reverseAPIPort;
uint16_t m_reverseAPIDeviceIndex; uint16_t m_reverseAPIDeviceIndex;
uint16_t m_reverseAPIChannelIndex; uint16_t m_reverseAPIChannelIndex;
QByteArray m_rollupState;
APTDemodSettings(); APTDemodSettings();
void resetToDefaults(); void resetToDefaults();

View File

@ -119,6 +119,7 @@ void ATVDemodGUI::displaySettings()
ui->amScaleOffsetText->setText(QString("%1").arg(m_settings.m_amOffsetFactor)); ui->amScaleOffsetText->setText(QString("%1").arg(m_settings.m_amOffsetFactor));
applySampleRate(); applySampleRate();
restoreState(m_settings.m_rollupState);
m_doApplySettings = true; m_doApplySettings = true;
} }
@ -206,6 +207,9 @@ void ATVDemodGUI::onWidgetRolled(QWidget* widget, bool rollDown)
{ {
(void) widget; (void) widget;
(void) rollDown; (void) rollDown;
m_settings.m_rollupState = saveState();
applySettings();
} }
ATVDemodGUI::ATVDemodGUI(PluginAPI* objPluginAPI, DeviceUISet *deviceUISet, BasebandSampleSink *rxChannel, QWidget* objParent) : ATVDemodGUI::ATVDemodGUI(PluginAPI* objPluginAPI, DeviceUISet *deviceUISet, BasebandSampleSink *rxChannel, QWidget* objParent) :

View File

@ -85,6 +85,7 @@ QByteArray ATVDemodSettings::serialize() const
s.writeS32(22, m_amScalingFactor); s.writeS32(22, m_amScalingFactor);
s.writeS32(23, m_amOffsetFactor); s.writeS32(23, m_amOffsetFactor);
s.writeBool(24, m_fftFiltering); s.writeBool(24, m_fftFiltering);
s.writeBlob(25, m_rollupState);
return s.final(); return s.final();
} }
@ -133,6 +134,7 @@ bool ATVDemodSettings::deserialize(const QByteArray& arrData)
d.readS32(22, &m_amScalingFactor, 100); d.readS32(22, &m_amScalingFactor, 100);
d.readS32(23, &m_amOffsetFactor, 0); d.readS32(23, &m_amOffsetFactor, 0);
d.readBool(24, &m_fftFiltering, false); d.readBool(24, &m_fftFiltering, false);
d.readBlob(25, &m_rollupState);
return true; return true;
} }

View File

@ -74,6 +74,7 @@ struct ATVDemodSettings
uint16_t m_udpPort; uint16_t m_udpPort;
Serializable *m_channelMarker; Serializable *m_channelMarker;
int m_streamIndex; int m_streamIndex;
QByteArray m_rollupState;
ATVDemodSettings(); ATVDemodSettings();
void resetToDefaults(); void resetToDefaults();

View File

@ -293,6 +293,9 @@ void BFMDemodGUI::onWidgetRolled(QWidget* widget, bool rollDown)
{ {
(void) widget; (void) widget;
(void) rollDown; (void) rollDown;
m_settings.m_rollupState = saveState();
applySettings();
} }
void BFMDemodGUI::onMenuDialogCalled(const QPoint &p) void BFMDemodGUI::onMenuDialogCalled(const QPoint &p)
@ -462,6 +465,7 @@ void BFMDemodGUI::displaySettings()
displayStreamIndex(); displayStreamIndex();
restoreState(m_settings.m_rollupState);
blockApplySettings(false); blockApplySettings(false);
} }

View File

@ -86,6 +86,7 @@ QByteArray BFMDemodSettings::serialize() const
s.writeU32(17, m_reverseAPIDeviceIndex); s.writeU32(17, m_reverseAPIDeviceIndex);
s.writeU32(18, m_reverseAPIChannelIndex); s.writeU32(18, m_reverseAPIChannelIndex);
s.writeS32(19, m_streamIndex); s.writeS32(19, m_streamIndex);
s.writeBlob(20, m_rollupState);
return s.final(); return s.final();
} }
@ -151,6 +152,7 @@ bool BFMDemodSettings::deserialize(const QByteArray& data)
d.readU32(18, &utmp, 0); d.readU32(18, &utmp, 0);
m_reverseAPIChannelIndex = utmp > 99 ? 99 : utmp; m_reverseAPIChannelIndex = utmp > 99 ? 99 : utmp;
d.readS32(19, &m_streamIndex, 0); d.readS32(19, &m_streamIndex, 0);
d.readBlob(20, &m_rollupState);
return true; return true;
} }

View File

@ -45,6 +45,7 @@ struct BFMDemodSettings
Serializable *m_channelMarker; Serializable *m_channelMarker;
Serializable *m_spectrumGUI; Serializable *m_spectrumGUI;
QByteArray m_rollupState;
static const int m_nbRFBW; static const int m_nbRFBW;
static const int m_rfBW[]; static const int m_rfBW[];

View File

@ -320,6 +320,9 @@ void ChirpChatDemodGUI::onWidgetRolled(QWidget* widget, bool rollDown)
{ {
(void) widget; (void) widget;
(void) rollDown; (void) rollDown;
m_settings.m_rollupState = saveState();
applySettings();
} }
void ChirpChatDemodGUI::onMenuDialogCalled(const QPoint &p) void ChirpChatDemodGUI::onMenuDialogCalled(const QPoint &p)
@ -492,6 +495,7 @@ void ChirpChatDemodGUI::displaySettings()
displaySquelch(); displaySquelch();
restoreState(m_settings.m_rollupState);
blockApplySettings(false); blockApplySettings(false);
} }

View File

@ -127,6 +127,7 @@ QByteArray ChirpChatDemodSettings::serialize() const
s.writeBool(26, m_sendViaUDP); s.writeBool(26, m_sendViaUDP);
s.writeString(27, m_udpAddress); s.writeString(27, m_udpAddress);
s.writeU32(28, m_udpPort); s.writeU32(28, m_udpPort);
s.writeBlob(29, m_rollupState);
return s.final(); return s.final();
} }
@ -199,6 +200,7 @@ bool ChirpChatDemodSettings::deserialize(const QByteArray& data)
} else { } else {
m_udpPort = 9999; m_udpPort = 9999;
} }
d.readBlob(29, &m_rollupState);
return true; return true;
} }

View File

@ -66,6 +66,7 @@ struct ChirpChatDemodSettings
Serializable *m_channelMarker; Serializable *m_channelMarker;
Serializable *m_spectrumGUI; Serializable *m_spectrumGUI;
QByteArray m_rollupState;
static const int bandwidths[]; static const int bandwidths[];
static const int nbBandwidths; static const int nbBandwidths;

View File

@ -375,6 +375,9 @@ void DABDemodGUI::onWidgetRolled(QWidget* widget, bool rollDown)
{ {
(void) widget; (void) widget;
(void) rollDown; (void) rollDown;
m_settings.m_rollupState = saveState();
applySettings();
} }
void DABDemodGUI::onMenuDialogCalled(const QPoint &p) void DABDemodGUI::onMenuDialogCalled(const QPoint &p)
@ -553,6 +556,7 @@ void DABDemodGUI::displaySettings()
filter(); filter();
restoreState(m_settings.m_rollupState);
blockApplySettings(false); blockApplySettings(false);
} }

View File

@ -76,6 +76,7 @@ QByteArray DABDemodSettings::serialize() const
s.writeU32(13, m_reverseAPIPort); s.writeU32(13, m_reverseAPIPort);
s.writeU32(14, m_reverseAPIDeviceIndex); s.writeU32(14, m_reverseAPIDeviceIndex);
s.writeU32(15, m_reverseAPIChannelIndex); s.writeU32(15, m_reverseAPIChannelIndex);
s.writeBlob(16, m_rollupState);
for (int i = 0; i < DABDEMOD_COLUMNS; i++) for (int i = 0; i < DABDEMOD_COLUMNS; i++)
s.writeS32(100 + i, m_columnIndexes[i]); s.writeS32(100 + i, m_columnIndexes[i]);
@ -131,6 +132,7 @@ bool DABDemodSettings::deserialize(const QByteArray& data)
m_reverseAPIDeviceIndex = utmp > 99 ? 99 : utmp; m_reverseAPIDeviceIndex = utmp > 99 ? 99 : utmp;
d.readU32(15, &utmp, 0); d.readU32(15, &utmp, 0);
m_reverseAPIChannelIndex = utmp > 99 ? 99 : utmp; m_reverseAPIChannelIndex = utmp > 99 ? 99 : utmp;
d.readBlob(16, &m_rollupState);
for (int i = 0; i < DABDEMOD_COLUMNS; i++) for (int i = 0; i < DABDEMOD_COLUMNS; i++)
d.readS32(100 + i, &m_columnIndexes[i], i); d.readS32(100 + i, &m_columnIndexes[i], i);

View File

@ -45,6 +45,7 @@ struct DABDemodSettings
uint16_t m_reverseAPIPort; uint16_t m_reverseAPIPort;
uint16_t m_reverseAPIDeviceIndex; uint16_t m_reverseAPIDeviceIndex;
uint16_t m_reverseAPIChannelIndex; uint16_t m_reverseAPIChannelIndex;
QByteArray m_rollupState;
int m_columnIndexes[DABDEMOD_COLUMNS];//!< How the columns are ordered in the table int m_columnIndexes[DABDEMOD_COLUMNS];//!< How the columns are ordered in the table
int m_columnSizes[DABDEMOD_COLUMNS]; //!< Size of the columns in the table int m_columnSizes[DABDEMOD_COLUMNS]; //!< Size of the columns in the table

View File

@ -135,6 +135,9 @@ void DATVDemodGUI::onWidgetRolled(QWidget* widget, bool rollDown)
{ {
(void) widget; (void) widget;
(void) rollDown; (void) rollDown;
m_settings.m_rollupState = saveState();
applySettings();
} }
void DATVDemodGUI::onMenuDialogCalled(const QPoint &p) void DATVDemodGUI::onMenuDialogCalled(const QPoint &p)
@ -387,6 +390,7 @@ void DATVDemodGUI::displaySettings()
connect(m_datvDemod->getUDPStream(), &DATVUDPStream::fifoData, this, &DATVDemodGUI::on_StreamDataAvailable); connect(m_datvDemod->getUDPStream(), &DATVUDPStream::fifoData, this, &DATVDemodGUI::on_StreamDataAvailable);
} }
restoreState(m_settings.m_rollupState);
blockApplySettings(false); blockApplySettings(false);
} }

View File

@ -113,6 +113,7 @@ QByteArray DATVDemodSettings::serialize() const
s.writeString(34, m_softLDPCToolPath); s.writeString(34, m_softLDPCToolPath);
s.writeS32(35, m_softLDPCMaxTrials); s.writeS32(35, m_softLDPCMaxTrials);
s.writeBool(36, m_playerEnable); s.writeBool(36, m_playerEnable);
s.writeBlob(37, m_rollupState);
return s.final(); return s.final();
} }
@ -201,6 +202,7 @@ bool DATVDemodSettings::deserialize(const QByteArray& data)
d.readS32(35, &tmp, 8); d.readS32(35, &tmp, 8);
m_softLDPCMaxTrials = tmp < 1 ? 1 : tmp > m_softLDPCMaxMaxTrials ? m_softLDPCMaxMaxTrials : tmp; m_softLDPCMaxTrials = tmp < 1 ? 1 : tmp > m_softLDPCMaxMaxTrials ? m_softLDPCMaxMaxTrials : tmp;
d.readBool(36, &m_playerEnable, true); d.readBool(36, &m_playerEnable, true);
d.readBlob(37, &m_rollupState);
validateSystemConfiguration(); validateSystemConfiguration();

View File

@ -107,6 +107,7 @@ struct DATVDemodSettings
uint16_t m_reverseAPIPort; uint16_t m_reverseAPIPort;
uint16_t m_reverseAPIDeviceIndex; uint16_t m_reverseAPIDeviceIndex;
uint16_t m_reverseAPIChannelIndex; uint16_t m_reverseAPIChannelIndex;
QByteArray m_rollupState;
static const int m_softLDPCMaxMaxTrials = 50; static const int m_softLDPCMaxMaxTrials = 50;
DATVDemodSettings(); DATVDemodSettings();

View File

@ -246,6 +246,9 @@ void DSDDemodGUI::onWidgetRolled(QWidget* widget, bool rollDown)
{ {
(void) widget; (void) widget;
(void) rollDown; (void) rollDown;
m_settings.m_rollupState = saveState();
applySettings();
} }
void DSDDemodGUI::onMenuDialogCalled(const QPoint &p) void DSDDemodGUI::onMenuDialogCalled(const QPoint &p)
@ -457,6 +460,7 @@ void DSDDemodGUI::displaySettings()
displayStreamIndex(); displayStreamIndex();
restoreState(m_settings.m_rollupState);
blockApplySettings(false); blockApplySettings(false);
} }

View File

@ -102,6 +102,7 @@ QByteArray DSDDemodSettings::serialize() const
s.writeU32(28, m_reverseAPIChannelIndex); s.writeU32(28, m_reverseAPIChannelIndex);
s.writeBool(29, m_audioMute); s.writeBool(29, m_audioMute);
s.writeS32(30, m_streamIndex); s.writeS32(30, m_streamIndex);
s.writeBlob(31, m_rollupState);
return s.final(); return s.final();
} }
@ -180,6 +181,7 @@ bool DSDDemodSettings::deserialize(const QByteArray& data)
m_reverseAPIChannelIndex = utmp > 99 ? 99 : utmp; m_reverseAPIChannelIndex = utmp > 99 ? 99 : utmp;
d.readBool(29, &m_audioMute, false); d.readBool(29, &m_audioMute, false);
d.readS32(30, &m_streamIndex, 0); d.readS32(30, &m_streamIndex, 0);
d.readBlob(31, &m_rollupState);
return true; return true;
} }

View File

@ -55,6 +55,7 @@ struct DSDDemodSettings
Serializable *m_channelMarker; Serializable *m_channelMarker;
Serializable *m_scopeGUI; Serializable *m_scopeGUI;
QByteArray m_rollupState;
DSDDemodSettings(); DSDDemodSettings();
void resetToDefaults(); void resetToDefaults();

View File

@ -233,6 +233,9 @@ void FreeDVDemodGUI::onWidgetRolled(QWidget* widget, bool rollDown)
{ {
(void) widget; (void) widget;
(void) rollDown; (void) rollDown;
m_settings.m_rollupState = saveState();
applySettings();
} }
FreeDVDemodGUI::FreeDVDemodGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, BasebandSampleSink *rxChannel, QWidget* parent) : FreeDVDemodGUI::FreeDVDemodGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, BasebandSampleSink *rxChannel, QWidget* parent) :
@ -386,6 +389,7 @@ void FreeDVDemodGUI::displaySettings()
displayStreamIndex(); displayStreamIndex();
restoreState(m_settings.m_rollupState);
blockApplySettings(false); blockApplySettings(false);
} }

View File

@ -80,6 +80,7 @@ QByteArray FreeDVDemodSettings::serialize() const
s.writeU32(22, m_reverseAPIChannelIndex); s.writeU32(22, m_reverseAPIChannelIndex);
s.writeS32(23, (int) m_freeDVMode); s.writeS32(23, (int) m_freeDVMode);
s.writeS32(24, m_streamIndex); s.writeS32(24, m_streamIndex);
s.writeBlob(25, m_rollupState);
return s.final(); return s.final();
} }
@ -141,6 +142,7 @@ bool FreeDVDemodSettings::deserialize(const QByteArray& data)
} }
d.readS32(24, &m_streamIndex, 0); d.readS32(24, &m_streamIndex, 0);
d.readBlob(25, &m_rollupState);
return true; return true;
} }

View File

@ -54,6 +54,7 @@ struct FreeDVDemodSettings
Serializable *m_channelMarker; Serializable *m_channelMarker;
Serializable *m_spectrumGUI; Serializable *m_spectrumGUI;
QByteArray m_rollupState;
FreeDVDemodSettings(); FreeDVDemodSettings();
void resetToDefaults(); void resetToDefaults();

View File

@ -278,6 +278,9 @@ void NFMDemodGUI::onWidgetRolled(QWidget* widget, bool rollDown)
if((widget == ui->spectrumContainer) && (m_nfmDemod != NULL)) if((widget == ui->spectrumContainer) && (m_nfmDemod != NULL))
m_nfmDemod->setSpectrum(m_threadedSampleSink->getMessageQueue(), rollDown); m_nfmDemod->setSpectrum(m_threadedSampleSink->getMessageQueue(), rollDown);
*/ */
m_settings.m_rollupState = saveState();
applySettings();
} }
void NFMDemodGUI::onMenuDialogCalled(const QPoint &p) void NFMDemodGUI::onMenuDialogCalled(const QPoint &p)
@ -503,6 +506,7 @@ void NFMDemodGUI::displaySettings()
setDcsCode(m_reportedDcsCode); setDcsCode(m_reportedDcsCode);
displayStreamIndex(); displayStreamIndex();
restoreState(m_settings.m_rollupState);
blockApplySettings(false); blockApplySettings(false);
} }

View File

@ -107,6 +107,7 @@ QByteArray NFMDemodSettings::serialize() const
s.writeBool(23, m_dcsOn); s.writeBool(23, m_dcsOn);
s.writeU32(24, m_dcsCode); s.writeU32(24, m_dcsCode);
s.writeBool(25, m_dcsPositive); s.writeBool(25, m_dcsPositive);
s.writeBlob(26, m_rollupState);
return s.final(); return s.final();
} }
@ -169,7 +170,8 @@ bool NFMDemodSettings::deserialize(const QByteArray& data)
d.readBool(23, &m_dcsOn, false); d.readBool(23, &m_dcsOn, false);
d.readU32(24, &utmp, 0023); d.readU32(24, &utmp, 0023);
m_dcsCode = utmp < 511 ? utmp : 511; m_dcsCode = utmp < 511 ? utmp : 511;
d.readBool(26, &m_dcsPositive, false); d.readBool(25, &m_dcsPositive, false);
d.readBlob(26, &m_rollupState);
return true; return true;
} }

View File

@ -54,6 +54,7 @@ struct NFMDemodSettings
uint16_t m_reverseAPIPort; uint16_t m_reverseAPIPort;
uint16_t m_reverseAPIDeviceIndex; uint16_t m_reverseAPIDeviceIndex;
uint16_t m_reverseAPIChannelIndex; uint16_t m_reverseAPIChannelIndex;
QByteArray m_rollupState;
Serializable *m_channelMarker; Serializable *m_channelMarker;

View File

@ -360,6 +360,9 @@ void PacketDemodGUI::onWidgetRolled(QWidget* widget, bool rollDown)
{ {
(void) widget; (void) widget;
(void) rollDown; (void) rollDown;
m_settings.m_rollupState = saveState();
applySettings();
} }
void PacketDemodGUI::onMenuDialogCalled(const QPoint &p) void PacketDemodGUI::onMenuDialogCalled(const QPoint &p)
@ -540,6 +543,7 @@ void PacketDemodGUI::displaySettings()
filter(); filter();
restoreState(m_settings.m_rollupState);
blockApplySettings(false); blockApplySettings(false);
} }

View File

@ -89,6 +89,7 @@ QByteArray PacketDemodSettings::serialize() const
s.writeString(25, m_logFilename); s.writeString(25, m_logFilename);
s.writeBool(26, m_logEnabled); s.writeBool(26, m_logEnabled);
s.writeBlob(27, m_rollupState);
for (int i = 0; i < PACKETDEMOD_COLUMNS; i++) for (int i = 0; i < PACKETDEMOD_COLUMNS; i++)
s.writeS32(100 + i, m_columnIndexes[i]); s.writeS32(100 + i, m_columnIndexes[i]);
@ -156,6 +157,7 @@ bool PacketDemodSettings::deserialize(const QByteArray& data)
d.readString(25, &m_logFilename, "pager_log.csv"); d.readString(25, &m_logFilename, "pager_log.csv");
d.readBool(26, &m_logEnabled, false); d.readBool(26, &m_logEnabled, false);
d.readBlob(27, &m_rollupState);
for (int i = 0; i < PACKETDEMOD_COLUMNS; i++) for (int i = 0; i < PACKETDEMOD_COLUMNS; i++)
d.readS32(100 + i, &m_columnIndexes[i], i); d.readS32(100 + i, &m_columnIndexes[i], i);

View File

@ -56,6 +56,7 @@ struct PacketDemodSettings
QString m_logFilename; QString m_logFilename;
bool m_logEnabled; bool m_logEnabled;
QByteArray m_rollupState;
int m_columnIndexes[PACKETDEMOD_COLUMNS];//!< How the columns are ordered in the table int m_columnIndexes[PACKETDEMOD_COLUMNS];//!< How the columns are ordered in the table
int m_columnSizes[PACKETDEMOD_COLUMNS]; //!< Size of the columns in the table int m_columnSizes[PACKETDEMOD_COLUMNS]; //!< Size of the columns in the table

View File

@ -410,6 +410,9 @@ void PagerDemodGUI::onWidgetRolled(QWidget* widget, bool rollDown)
setMinimumWidth(352); setMinimumWidth(352);
} }
} }
m_settings.m_rollupState = saveState();
applySettings();
} }
void PagerDemodGUI::onMenuDialogCalled(const QPoint &p) void PagerDemodGUI::onMenuDialogCalled(const QPoint &p)
@ -629,6 +632,7 @@ void PagerDemodGUI::displaySettings()
} }
filter(); filter();
restoreState(m_settings.m_rollupState);
blockApplySettings(false); blockApplySettings(false);
} }

View File

@ -96,6 +96,7 @@ QByteArray PagerDemodSettings::serialize() const
s.writeString(25, m_logFilename); s.writeString(25, m_logFilename);
s.writeBool(26, m_logEnabled); s.writeBool(26, m_logEnabled);
s.writeBlob(27, m_rollupState);
for (int i = 0; i < PAGERDEMOD_MESSAGE_COLUMNS; i++) { for (int i = 0; i < PAGERDEMOD_MESSAGE_COLUMNS; i++) {
s.writeS32(100 + i, m_messageColumnIndexes[i]); s.writeS32(100 + i, m_messageColumnIndexes[i]);
@ -173,6 +174,7 @@ bool PagerDemodSettings::deserialize(const QByteArray& data)
d.readString(25, &m_logFilename, "pager_log.csv"); d.readString(25, &m_logFilename, "pager_log.csv");
d.readBool(26, &m_logEnabled, false); d.readBool(26, &m_logEnabled, false);
d.readBlob(27, &m_rollupState);
for (int i = 0; i < PAGERDEMOD_MESSAGE_COLUMNS; i++) { for (int i = 0; i < PAGERDEMOD_MESSAGE_COLUMNS; i++) {
d.readS32(100 + i, &m_messageColumnIndexes[i], i); d.readS32(100 + i, &m_messageColumnIndexes[i], i);

View File

@ -66,6 +66,7 @@ struct PagerDemodSettings
QString m_logFilename; QString m_logFilename;
bool m_logEnabled; bool m_logEnabled;
QByteArray m_rollupState;
int m_messageColumnIndexes[PAGERDEMOD_MESSAGE_COLUMNS];//!< How the columns are ordered in the table int m_messageColumnIndexes[PAGERDEMOD_MESSAGE_COLUMNS];//!< How the columns are ordered in the table
int m_messageColumnSizes[PAGERDEMOD_MESSAGE_COLUMNS]; //!< Size of the columns in the table int m_messageColumnSizes[PAGERDEMOD_MESSAGE_COLUMNS]; //!< Size of the columns in the table

View File

@ -273,6 +273,9 @@ void SSBDemodGUI::onWidgetRolled(QWidget* widget, bool rollDown)
{ {
(void) widget; (void) widget;
(void) rollDown; (void) rollDown;
m_settings.m_rollupState = saveState();
applySettings();
} }
SSBDemodGUI::SSBDemodGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, BasebandSampleSink *rxChannel, QWidget* parent) : SSBDemodGUI::SSBDemodGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, BasebandSampleSink *rxChannel, QWidget* parent) :
@ -568,6 +571,7 @@ void SSBDemodGUI::displaySettings()
displayStreamIndex(); displayStreamIndex();
restoreState(m_settings.m_rollupState);
blockApplySettings(false); blockApplySettings(false);
} }

View File

@ -94,6 +94,7 @@ QByteArray SSBDemodSettings::serialize() const
s.writeU32(21, m_reverseAPIDeviceIndex); s.writeU32(21, m_reverseAPIDeviceIndex);
s.writeU32(22, m_reverseAPIChannelIndex); s.writeU32(22, m_reverseAPIChannelIndex);
s.writeS32(23, m_streamIndex); s.writeS32(23, m_streamIndex);
s.writeBlob(24, m_rollupState);
return s.final(); return s.final();
} }
@ -155,6 +156,7 @@ bool SSBDemodSettings::deserialize(const QByteArray& data)
d.readU32(22, &utmp, 0); d.readU32(22, &utmp, 0);
m_reverseAPIChannelIndex = utmp > 99 ? 99 : utmp; m_reverseAPIChannelIndex = utmp > 99 ? 99 : utmp;
d.readS32(23, &m_streamIndex, 0); d.readS32(23, &m_streamIndex, 0);
d.readBlob(24, &m_rollupState);
return true; return true;
} }

View File

@ -50,6 +50,7 @@ struct SSBDemodSettings
Serializable *m_channelMarker; Serializable *m_channelMarker;
Serializable *m_spectrumGUI; Serializable *m_spectrumGUI;
QByteArray m_rollupState;
SSBDemodSettings(); SSBDemodSettings();
void resetToDefaults(); void resetToDefaults();

View File

@ -1104,6 +1104,9 @@ void VORDemodGUI::onWidgetRolled(QWidget* widget, bool rollDown)
{ {
(void) widget; (void) widget;
(void) rollDown; (void) rollDown;
m_settings.m_rollupState = saveState();
applySettings();
} }
void VORDemodGUI::onMenuDialogCalled(const QPoint &p) void VORDemodGUI::onMenuDialogCalled(const QPoint &p)
@ -1328,6 +1331,7 @@ void VORDemodGUI::displaySettings()
header->moveSection(header->visualIndex(i), m_settings.m_columnIndexes[i]); header->moveSection(header->visualIndex(i), m_settings.m_columnIndexes[i]);
} }
restoreState(m_settings.m_rollupState);
blockApplySettings(false); blockApplySettings(false);
} }

View File

@ -80,6 +80,7 @@ QByteArray VORDemodSettings::serialize() const
s.writeReal(21, m_refThresholdDB); s.writeReal(21, m_refThresholdDB);
s.writeReal(22, m_varThresholdDB); s.writeReal(22, m_varThresholdDB);
s.writeBool(23, m_magDecAdjust); s.writeBool(23, m_magDecAdjust);
s.writeBlob(24, m_rollupState);
for (int i = 0; i < VORDEMOD_COLUMNS; i++) for (int i = 0; i < VORDEMOD_COLUMNS; i++)
s.writeS32(100 + i, m_columnIndexes[i]); s.writeS32(100 + i, m_columnIndexes[i]);
@ -139,6 +140,7 @@ bool VORDemodSettings::deserialize(const QByteArray& data)
d.readReal(21, &m_refThresholdDB, -45.0); d.readReal(21, &m_refThresholdDB, -45.0);
d.readReal(22, &m_varThresholdDB, -90.0); d.readReal(22, &m_varThresholdDB, -90.0);
d.readBool(23, &m_magDecAdjust, true); d.readBool(23, &m_magDecAdjust, true);
d.readBlob(24, &m_rollupState);
for (int i = 0; i < VORDEMOD_COLUMNS; i++) for (int i = 0; i < VORDEMOD_COLUMNS; i++)
d.readS32(100 + i, &m_columnIndexes[i], i); d.readS32(100 + i, &m_columnIndexes[i], i);

View File

@ -53,6 +53,7 @@ struct VORDemodSettings
Real m_refThresholdDB; //!< Threshold in dB for valid VOR reference signal Real m_refThresholdDB; //!< Threshold in dB for valid VOR reference signal
Real m_varThresholdDB; //!< Threshold in dB for valid VOR variable signal Real m_varThresholdDB; //!< Threshold in dB for valid VOR variable signal
bool m_magDecAdjust; //!< Adjust for magnetic declination when drawing radials on the map bool m_magDecAdjust; //!< Adjust for magnetic declination when drawing radials on the map
QByteArray m_rollupState;
int m_columnIndexes[VORDEMOD_COLUMNS];//!< How the columns are ordered in the table int m_columnIndexes[VORDEMOD_COLUMNS];//!< How the columns are ordered in the table
int m_columnSizes[VORDEMOD_COLUMNS]; //!< Size of the coumns in the table int m_columnSizes[VORDEMOD_COLUMNS]; //!< Size of the coumns in the table

View File

@ -222,6 +222,9 @@ void VORDemodSCGUI::onWidgetRolled(QWidget* widget, bool rollDown)
{ {
(void) widget; (void) widget;
(void) rollDown; (void) rollDown;
m_settings.m_rollupState = saveState();
applySettings();
} }
void VORDemodSCGUI::onMenuDialogCalled(const QPoint &p) void VORDemodSCGUI::onMenuDialogCalled(const QPoint &p)
@ -367,6 +370,7 @@ void VORDemodSCGUI::displaySettings()
displayStreamIndex(); displayStreamIndex();
restoreState(m_settings.m_rollupState);
blockApplySettings(false); blockApplySettings(false);
} }

View File

@ -75,6 +75,7 @@ QByteArray VORDemodSCSettings::serialize() const
s.writeReal(20, m_identThreshold); s.writeReal(20, m_identThreshold);
s.writeReal(21, m_refThresholdDB); s.writeReal(21, m_refThresholdDB);
s.writeReal(22, m_varThresholdDB); s.writeReal(22, m_varThresholdDB);
s.writeBlob(23, m_rollupState);
return s.final(); return s.final();
} }
@ -129,6 +130,7 @@ bool VORDemodSCSettings::deserialize(const QByteArray& data)
d.readReal(20, &m_identThreshold, 2.0); d.readReal(20, &m_identThreshold, 2.0);
d.readReal(21, &m_refThresholdDB, -45.0); d.readReal(21, &m_refThresholdDB, -45.0);
d.readReal(22, &m_varThresholdDB, -90.0); d.readReal(22, &m_varThresholdDB, -90.0);
d.readBlob(23, &m_rollupState);
return true; return true;
} }

View File

@ -45,6 +45,7 @@ struct VORDemodSCSettings
Real m_identThreshold; //!< Linear SNR threshold for Morse demodulator Real m_identThreshold; //!< Linear SNR threshold for Morse demodulator
Real m_refThresholdDB; //!< Threshold in dB for valid VOR reference signal Real m_refThresholdDB; //!< Threshold in dB for valid VOR reference signal
Real m_varThresholdDB; //!< Threshold in dB for valid VOR variable signal Real m_varThresholdDB; //!< Threshold in dB for valid VOR variable signal
QByteArray m_rollupState;
// Highest frequency is the FM subcarrier at up to ~11kHz // Highest frequency is the FM subcarrier at up to ~11kHz
// However, old VORs can have 0.005% frequency offset, which is 6kHz // However, old VORs can have 0.005% frequency offset, which is 6kHz

View File

@ -143,6 +143,9 @@ void WFMDemodGUI::onWidgetRolled(QWidget* widget, bool rollDown)
{ {
(void) widget; (void) widget;
(void) rollDown; (void) rollDown;
m_settings.m_rollupState = saveState();
applySettings();
} }
void WFMDemodGUI::onMenuDialogCalled(const QPoint &p) void WFMDemodGUI::onMenuDialogCalled(const QPoint &p)
@ -289,6 +292,7 @@ void WFMDemodGUI::displaySettings()
displayStreamIndex(); displayStreamIndex();
restoreState(m_settings.m_rollupState);
blockApplySettings(false); blockApplySettings(false);
} }

View File

@ -75,6 +75,7 @@ QByteArray WFMDemodSettings::serialize() const
s.writeU32(15, m_reverseAPIDeviceIndex); s.writeU32(15, m_reverseAPIDeviceIndex);
s.writeU32(16, m_reverseAPIChannelIndex); s.writeU32(16, m_reverseAPIChannelIndex);
s.writeS32(17, m_streamIndex); s.writeS32(17, m_streamIndex);
s.writeBlob(18, m_rollupState);
return s.final(); return s.final();
} }
@ -131,6 +132,7 @@ bool WFMDemodSettings::deserialize(const QByteArray& data)
d.readU32(16, &utmp, 0); d.readU32(16, &utmp, 0);
m_reverseAPIChannelIndex = utmp > 99 ? 99 : utmp; m_reverseAPIChannelIndex = utmp > 99 ? 99 : utmp;
d.readS32(17, &m_streamIndex, 0); d.readS32(17, &m_streamIndex, 0);
d.readBlob(18, &m_rollupState);
return true; return true;
} }

View File

@ -40,6 +40,7 @@ struct WFMDemodSettings
uint16_t m_reverseAPIPort; uint16_t m_reverseAPIPort;
uint16_t m_reverseAPIDeviceIndex; uint16_t m_reverseAPIDeviceIndex;
uint16_t m_reverseAPIChannelIndex; uint16_t m_reverseAPIChannelIndex;
QByteArray m_rollupState;
Serializable *m_channelMarker; Serializable *m_channelMarker;

View File

@ -275,6 +275,7 @@ void FileSinkGUI::displaySettings()
displayStreamIndex(); displayStreamIndex();
setPosFromFrequency(); setPosFromFrequency();
restoreState(m_settings.m_rollupState);
blockApplySettings(false); blockApplySettings(false);
} }
@ -344,6 +345,9 @@ void FileSinkGUI::onWidgetRolled(QWidget* widget, bool rollDown)
{ {
(void) widget; (void) widget;
(void) rollDown; (void) rollDown;
m_settings.m_rollupState = saveState();
applySettings();
} }
void FileSinkGUI::onMenuDialogCalled(const QPoint &p) void FileSinkGUI::onMenuDialogCalled(const QPoint &p)

View File

@ -72,6 +72,7 @@ QByteArray FileSinkSettings::serialize() const
s.writeS32(16, m_preRecordTime); s.writeS32(16, m_preRecordTime);
s.writeS32(17, m_squelchPostRecordTime); s.writeS32(17, m_squelchPostRecordTime);
s.writeBool(18, m_squelchRecordingEnable); s.writeBool(18, m_squelchRecordingEnable);
s.writeBlob(19, m_rollupState);
return s.final(); return s.final();
} }
@ -127,6 +128,7 @@ bool FileSinkSettings::deserialize(const QByteArray& data)
d.readS32(16, &m_preRecordTime, 0); d.readS32(16, &m_preRecordTime, 0);
d.readS32(17, &m_squelchPostRecordTime, 0); d.readS32(17, &m_squelchPostRecordTime, 0);
d.readBool(18, &m_squelchRecordingEnable, false); d.readBool(18, &m_squelchRecordingEnable, false);
d.readBlob(19, &m_rollupState);
return true; return true;
} }

View File

@ -43,6 +43,7 @@ struct FileSinkSettings
uint16_t m_reverseAPIChannelIndex; uint16_t m_reverseAPIChannelIndex;
Serializable *m_spectrumGUI; Serializable *m_spectrumGUI;
QByteArray m_rollupState;
FileSinkSettings(); FileSinkSettings();
void resetToDefaults(); void resetToDefaults();

View File

@ -248,6 +248,9 @@ void FreqTrackerGUI::onWidgetRolled(QWidget* widget, bool rollDown)
{ {
(void) widget; (void) widget;
(void) rollDown; (void) rollDown;
m_settings.m_rollupState = saveState();
applySettings();
} }
void FreqTrackerGUI::onMenuDialogCalled(const QPoint &p) void FreqTrackerGUI::onMenuDialogCalled(const QPoint &p)
@ -426,6 +429,7 @@ void FreqTrackerGUI::displaySettings()
displaySpectrumBandwidth(m_settings.m_spanLog2); displaySpectrumBandwidth(m_settings.m_spanLog2);
displayStreamIndex(); displayStreamIndex();
restoreState(m_settings.m_rollupState);
blockApplySettings(false); blockApplySettings(false);
} }

View File

@ -85,6 +85,7 @@ QByteArray FreqTrackerSettings::serialize() const
s.writeU32(20, m_reverseAPIChannelIndex); s.writeU32(20, m_reverseAPIChannelIndex);
s.writeS32(21, m_squelchGate); s.writeS32(21, m_squelchGate);
s.writeS32(22, m_streamIndex); s.writeS32(22, m_streamIndex);
s.writeBlob(23, m_rollupState);
return s.final(); return s.final();
} }
@ -157,6 +158,7 @@ bool FreqTrackerSettings::deserialize(const QByteArray& data)
d.readS32(21, &tmp, 5); d.readS32(21, &tmp, 5);
m_squelchGate = tmp < 0 ? 0 : tmp > 99 ? 99 : tmp; m_squelchGate = tmp < 0 ? 0 : tmp > 99 ? 99 : tmp;
d.readS32(22, &m_streamIndex, 0); d.readS32(22, &m_streamIndex, 0);
d.readBlob(23, &m_rollupState);
return true; return true;
} }

View File

@ -56,6 +56,7 @@ struct FreqTrackerSettings
uint16_t m_reverseAPIPort; uint16_t m_reverseAPIPort;
uint16_t m_reverseAPIDeviceIndex; uint16_t m_reverseAPIDeviceIndex;
uint16_t m_reverseAPIChannelIndex; uint16_t m_reverseAPIChannelIndex;
QByteArray m_rollupState;
FreqTrackerSettings(); FreqTrackerSettings();
void resetToDefaults(); void resetToDefaults();

View File

@ -173,6 +173,7 @@ void LocalSinkGUI::displaySettings()
applyDecimation(); applyDecimation();
displayStreamIndex(); displayStreamIndex();
restoreState(m_settings.m_rollupState);
blockApplySettings(false); blockApplySettings(false);
} }
@ -249,6 +250,9 @@ void LocalSinkGUI::onWidgetRolled(QWidget* widget, bool rollDown)
{ {
(void) widget; (void) widget;
(void) rollDown; (void) rollDown;
m_settings.m_rollupState = saveState();
applySettings();
} }
void LocalSinkGUI::onMenuDialogCalled(const QPoint &p) void LocalSinkGUI::onMenuDialogCalled(const QPoint &p)

View File

@ -59,6 +59,7 @@ QByteArray LocalSinkSettings::serialize() const
s.writeU32(12, m_log2Decim); s.writeU32(12, m_log2Decim);
s.writeU32(13, m_filterChainHash); s.writeU32(13, m_filterChainHash);
s.writeS32(14, m_streamIndex); s.writeS32(14, m_streamIndex);
s.writeBlob(15, m_rollupState);
return s.final(); return s.final();
} }
@ -99,6 +100,7 @@ bool LocalSinkSettings::deserialize(const QByteArray& data)
m_log2Decim = tmp > 6 ? 6 : tmp; m_log2Decim = tmp > 6 ? 6 : tmp;
d.readU32(13, &m_filterChainHash, 0); d.readU32(13, &m_filterChainHash, 0);
d.readS32(14, &m_streamIndex, 0); d.readS32(14, &m_streamIndex, 0);
d.readBlob(15, &m_rollupState);
return true; return true;
} }

View File

@ -39,6 +39,7 @@ struct LocalSinkSettings
uint16_t m_reverseAPIChannelIndex; uint16_t m_reverseAPIChannelIndex;
Serializable *m_channelMarker; Serializable *m_channelMarker;
QByteArray m_rollupState;
LocalSinkSettings(); LocalSinkSettings();
void resetToDefaults(); void resetToDefaults();

View File

@ -549,6 +549,9 @@ void NoiseFigureGUI::onWidgetRolled(QWidget* widget, bool rollDown)
{ {
(void) widget; (void) widget;
(void) rollDown; (void) rollDown;
m_settings.m_rollupState = saveState();
applySettings();
} }
void NoiseFigureGUI::onMenuDialogCalled(const QPoint &p) void NoiseFigureGUI::onMenuDialogCalled(const QPoint &p)
@ -755,6 +758,7 @@ void NoiseFigureGUI::displaySettings()
header->moveSection(header->visualIndex(i), m_settings.m_resultsColumnIndexes[i]); header->moveSection(header->visualIndex(i), m_settings.m_resultsColumnIndexes[i]);
} }
restoreState(m_settings.m_rollupState);
blockApplySettings(false); blockApplySettings(false);
} }

View File

@ -111,6 +111,7 @@ QByteArray NoiseFigureSettings::serialize() const
s.writeS32(26, (int)m_interpolation); s.writeS32(26, (int)m_interpolation);
s.writeString(27, m_setting); s.writeString(27, m_setting);
s.writeBlob(28, m_rollupState);
for (int i = 0; i < NOISEFIGURE_COLUMNS; i++) { for (int i = 0; i < NOISEFIGURE_COLUMNS; i++) {
s.writeS32(100 + i, m_resultsColumnIndexes[i]); s.writeS32(100 + i, m_resultsColumnIndexes[i]);
@ -183,6 +184,7 @@ bool NoiseFigureSettings::deserialize(const QByteArray& data)
d.readS32(26, (int*)&m_interpolation, LINEAR); d.readS32(26, (int*)&m_interpolation, LINEAR);
d.readString(27, &m_setting, "centerFrequency"); d.readString(27, &m_setting, "centerFrequency");
d.readBlob(28, &m_rollupState);
for (int i = 0; i < NOISEFIGURE_COLUMNS; i++) { for (int i = 0; i < NOISEFIGURE_COLUMNS; i++) {
d.readS32(100 + i, &m_resultsColumnIndexes[i], i); d.readS32(100 + i, &m_resultsColumnIndexes[i], i);

View File

@ -85,6 +85,7 @@ struct NoiseFigureSettings
uint16_t m_reverseAPIPort; uint16_t m_reverseAPIPort;
uint16_t m_reverseAPIDeviceIndex; uint16_t m_reverseAPIDeviceIndex;
uint16_t m_reverseAPIChannelIndex; uint16_t m_reverseAPIChannelIndex;
QByteArray m_rollupState;
int m_resultsColumnIndexes[NOISEFIGURE_COLUMNS];//!< How the columns are ordered in the table int m_resultsColumnIndexes[NOISEFIGURE_COLUMNS];//!< How the columns are ordered in the table
int m_resultsColumnSizes[NOISEFIGURE_COLUMNS]; //!< Size of the columns in the table int m_resultsColumnSizes[NOISEFIGURE_COLUMNS]; //!< Size of the columns in the table

View File

@ -208,6 +208,9 @@ void RadioClockGUI::onWidgetRolled(QWidget* widget, bool rollDown)
setMinimumWidth(352); setMinimumWidth(352);
} }
} }
m_settings.m_rollupState = saveState();
applySettings();
} }
void RadioClockGUI::onMenuDialogCalled(const QPoint &p) void RadioClockGUI::onMenuDialogCalled(const QPoint &p)
@ -360,6 +363,7 @@ void RadioClockGUI::displaySettings()
displayStreamIndex(); displayStreamIndex();
restoreState(m_settings.m_rollupState);
blockApplySettings(false); blockApplySettings(false);
} }

View File

@ -68,6 +68,7 @@ QByteArray RadioClockSettings::serialize() const
s.writeU32(19, m_reverseAPIDeviceIndex); s.writeU32(19, m_reverseAPIDeviceIndex);
s.writeU32(20, m_reverseAPIChannelIndex); s.writeU32(20, m_reverseAPIChannelIndex);
s.writeBlob(21, m_scopeGUI->serialize()); s.writeBlob(21, m_scopeGUI->serialize());
s.writeBlob(22, m_rollupState);
return s.final(); return s.final();
} }
@ -118,6 +119,7 @@ bool RadioClockSettings::deserialize(const QByteArray& data)
d.readBlob(21, &bytetmp); d.readBlob(21, &bytetmp);
m_scopeGUI->deserialize(bytetmp); m_scopeGUI->deserialize(bytetmp);
} }
d.readBlob(22, &m_rollupState);
return true; return true;
} }

View File

@ -53,6 +53,7 @@ struct RadioClockSettings
uint16_t m_reverseAPIDeviceIndex; uint16_t m_reverseAPIDeviceIndex;
uint16_t m_reverseAPIChannelIndex; uint16_t m_reverseAPIChannelIndex;
Serializable *m_scopeGUI; Serializable *m_scopeGUI;
QByteArray m_rollupState;
static const int RADIOCLOCK_CHANNEL_SAMPLE_RATE = 1000; static const int RADIOCLOCK_CHANNEL_SAMPLE_RATE = 1000;
static const int m_scopeStreams = 8; static const int m_scopeStreams = 8;

View File

@ -172,6 +172,7 @@ void RemoteSinkGUI::displaySettings()
updateTxDelayTime(); updateTxDelayTime();
applyDecimation(); applyDecimation();
displayStreamIndex(); displayStreamIndex();
restoreState(m_settings.m_rollupState);
blockApplySettings(false); blockApplySettings(false);
} }
@ -222,6 +223,9 @@ void RemoteSinkGUI::onWidgetRolled(QWidget* widget, bool rollDown)
{ {
(void) widget; (void) widget;
(void) rollDown; (void) rollDown;
m_settings.m_rollupState = saveState();
applySettings();
} }
void RemoteSinkGUI::onMenuDialogCalled(const QPoint &p) void RemoteSinkGUI::onMenuDialogCalled(const QPoint &p)

View File

@ -70,6 +70,7 @@ QByteArray RemoteSinkSettings::serialize() const
s.writeU32(12, m_log2Decim); s.writeU32(12, m_log2Decim);
s.writeU32(13, m_filterChainHash); s.writeU32(13, m_filterChainHash);
s.writeS32(14, m_streamIndex); s.writeS32(14, m_streamIndex);
s.writeBlob(15, m_rollupState);
return s.final(); return s.final();
} }
@ -127,6 +128,7 @@ bool RemoteSinkSettings::deserialize(const QByteArray& data)
m_log2Decim = tmp > 6 ? 6 : tmp; m_log2Decim = tmp > 6 ? 6 : tmp;
d.readU32(13, &m_filterChainHash, 0); d.readU32(13, &m_filterChainHash, 0);
d.readS32(14, &m_streamIndex, 0); d.readS32(14, &m_streamIndex, 0);
d.readBlob(15, &m_rollupState);
return true; return true;
} }

View File

@ -47,6 +47,7 @@ struct RemoteSinkSettings
uint16_t m_reverseAPIChannelIndex; uint16_t m_reverseAPIChannelIndex;
Serializable *m_channelMarker; Serializable *m_channelMarker;
QByteArray m_rollupState;
RemoteSinkSettings(); RemoteSinkSettings();
void resetToDefaults(); void resetToDefaults();

View File

@ -268,6 +268,7 @@ void SigMFFileSinkGUI::displaySettings()
displayStreamIndex(); displayStreamIndex();
setPosFromFrequency(); setPosFromFrequency();
restoreState(m_settings.m_rollupState);
blockApplySettings(false); blockApplySettings(false);
} }
@ -337,6 +338,9 @@ void SigMFFileSinkGUI::onWidgetRolled(QWidget* widget, bool rollDown)
{ {
(void) widget; (void) widget;
(void) rollDown; (void) rollDown;
m_settings.m_rollupState = saveState();
applySettings();
} }
void SigMFFileSinkGUI::onMenuDialogCalled(const QPoint &p) void SigMFFileSinkGUI::onMenuDialogCalled(const QPoint &p)

View File

@ -74,6 +74,7 @@ QByteArray SigMFFileSinkSettings::serialize() const
s.writeS32(16, m_preRecordTime); s.writeS32(16, m_preRecordTime);
s.writeS32(17, m_squelchPostRecordTime); s.writeS32(17, m_squelchPostRecordTime);
s.writeBool(18, m_squelchRecordingEnable); s.writeBool(18, m_squelchRecordingEnable);
s.writeBlob(19, m_rollupState);
return s.final(); return s.final();
} }
@ -130,6 +131,7 @@ bool SigMFFileSinkSettings::deserialize(const QByteArray& data)
d.readS32(16, &m_preRecordTime, 0); d.readS32(16, &m_preRecordTime, 0);
d.readS32(17, &m_squelchPostRecordTime, 0); d.readS32(17, &m_squelchPostRecordTime, 0);
d.readBool(18, &m_squelchRecordingEnable, false); d.readBool(18, &m_squelchRecordingEnable, false);
d.readBlob(19, &m_rollupState);
return true; return true;
} }

View File

@ -44,6 +44,7 @@ struct SigMFFileSinkSettings
uint16_t m_reverseAPIChannelIndex; uint16_t m_reverseAPIChannelIndex;
Serializable *m_spectrumGUI; Serializable *m_spectrumGUI;
QByteArray m_rollupState;
SigMFFileSinkSettings(); SigMFFileSinkSettings();
void resetToDefaults(); void resetToDefaults();

View File

@ -254,6 +254,7 @@ void UDPSinkGUI::displaySettings()
displayStreamIndex(); displayStreamIndex();
restoreState(m_settings.m_rollupState);
blockApplySettings(false); blockApplySettings(false);
ui->glSpectrum->setSampleRate(m_settings.m_outputSampleRate); ui->glSpectrum->setSampleRate(m_settings.m_outputSampleRate);
@ -584,6 +585,9 @@ void UDPSinkGUI::onWidgetRolled(QWidget* widget, bool rollDown)
if ((widget == ui->spectrumBox) && (m_udpSink)) { if ((widget == ui->spectrumBox) && (m_udpSink)) {
m_udpSink->enableSpectrum(rollDown); m_udpSink->enableSpectrum(rollDown);
} }
m_settings.m_rollupState = saveState();
applySettings();
} }
void UDPSinkGUI::onMenuDialogCalled(const QPoint &p) void UDPSinkGUI::onMenuDialogCalled(const QPoint &p)

View File

@ -93,6 +93,7 @@ QByteArray UDPSinkSettings::serialize() const
s.writeU32(26, m_reverseAPIDeviceIndex); s.writeU32(26, m_reverseAPIDeviceIndex);
s.writeU32(27, m_reverseAPIChannelIndex); s.writeU32(27, m_reverseAPIChannelIndex);
s.writeS32(28, m_streamIndex); s.writeS32(28, m_streamIndex);
s.writeBlob(29, m_rollupState);
return s.final(); return s.final();
@ -183,6 +184,7 @@ bool UDPSinkSettings::deserialize(const QByteArray& data)
d.readU32(27, &u32tmp, 0); d.readU32(27, &u32tmp, 0);
m_reverseAPIChannelIndex = u32tmp > 99 ? 99 : u32tmp; m_reverseAPIChannelIndex = u32tmp > 99 ? 99 : u32tmp;
d.readS32(28, &m_streamIndex, 0); d.readS32(28, &m_streamIndex, 0);
d.readBlob(29, &m_rollupState);
return true; return true;
} }

View File

@ -72,6 +72,7 @@ struct UDPSinkSettings
Serializable *m_channelMarker; Serializable *m_channelMarker;
Serializable *m_spectrumGUI; Serializable *m_spectrumGUI;
QByteArray m_rollupState;
UDPSinkSettings(); UDPSinkSettings();
void resetToDefaults(); void resetToDefaults();

View File

@ -307,6 +307,7 @@ void FileSourceGUI::displaySettings()
ui->gainText->setText(tr("%1 dB").arg(m_settings.m_gainDB)); ui->gainText->setText(tr("%1 dB").arg(m_settings.m_gainDB));
ui->interpolationFactor->setCurrentIndex(m_settings.m_log2Interp); ui->interpolationFactor->setCurrentIndex(m_settings.m_log2Interp);
applyInterpolation(); applyInterpolation();
restoreState(m_settings.m_rollupState);
blockApplySettings(false); blockApplySettings(false);
} }
@ -357,6 +358,9 @@ void FileSourceGUI::onWidgetRolled(QWidget* widget, bool rollDown)
{ {
(void) widget; (void) widget;
(void) rollDown; (void) rollDown;
m_settings.m_rollupState = saveState();
applySettings();
} }
void FileSourceGUI::onMenuDialogCalled(const QPoint &p) void FileSourceGUI::onMenuDialogCalled(const QPoint &p)

View File

@ -62,6 +62,7 @@ QByteArray FileSourceSettings::serialize() const
s.writeU32(11, m_reverseAPIDeviceIndex); s.writeU32(11, m_reverseAPIDeviceIndex);
s.writeU32(12, m_reverseAPIChannelIndex); s.writeU32(12, m_reverseAPIChannelIndex);
s.writeS32(13, m_streamIndex); s.writeS32(13, m_streamIndex);
s.writeBlob(14, m_rollupState);
return s.final(); return s.final();
} }
@ -106,6 +107,7 @@ bool FileSourceSettings::deserialize(const QByteArray& data)
d.readU32(12, &tmp, 0); d.readU32(12, &tmp, 0);
m_reverseAPIChannelIndex = tmp > 99 ? 99 : tmp; m_reverseAPIChannelIndex = tmp > 99 ? 99 : tmp;
d.readS32(13, &m_streamIndex, 0); d.readS32(13, &m_streamIndex, 0);
d.readBlob(14, &m_rollupState);
return true; return true;
} }

View File

@ -40,6 +40,7 @@ struct FileSourceSettings
uint16_t m_reverseAPIChannelIndex; uint16_t m_reverseAPIChannelIndex;
Serializable *m_channelMarker; Serializable *m_channelMarker;
QByteArray m_rollupState;
FileSourceSettings(); FileSourceSettings();
void resetToDefaults(); void resetToDefaults();

View File

@ -161,6 +161,7 @@ void LocalSourceGUI::displaySettings()
ui->interpolationFactor->setCurrentIndex(m_settings.m_log2Interp); ui->interpolationFactor->setCurrentIndex(m_settings.m_log2Interp);
ui->localDevicePlay->setChecked(m_settings.m_play); ui->localDevicePlay->setChecked(m_settings.m_play);
applyInterpolation(); applyInterpolation();
restoreState(m_settings.m_rollupState);
blockApplySettings(false); blockApplySettings(false);
} }
@ -223,6 +224,9 @@ void LocalSourceGUI::onWidgetRolled(QWidget* widget, bool rollDown)
{ {
(void) widget; (void) widget;
(void) rollDown; (void) rollDown;
m_settings.m_rollupState = saveState();
applySettings();
} }
void LocalSourceGUI::onMenuDialogCalled(const QPoint &p) void LocalSourceGUI::onMenuDialogCalled(const QPoint &p)

View File

@ -59,6 +59,7 @@ QByteArray LocalSourceSettings::serialize() const
s.writeU32(12, m_log2Interp); s.writeU32(12, m_log2Interp);
s.writeU32(13, m_filterChainHash); s.writeU32(13, m_filterChainHash);
s.writeS32(14, m_streamIndex); s.writeS32(14, m_streamIndex);
s.writeBlob(15, m_rollupState);
return s.final(); return s.final();
} }
@ -99,6 +100,7 @@ bool LocalSourceSettings::deserialize(const QByteArray& data)
m_log2Interp = tmp > 6 ? 6 : tmp; m_log2Interp = tmp > 6 ? 6 : tmp;
d.readU32(13, &m_filterChainHash, 0); d.readU32(13, &m_filterChainHash, 0);
d.readS32(14, &m_streamIndex, 0); d.readS32(14, &m_streamIndex, 0);
d.readBlob(15, &m_rollupState);
return true; return true;
} }

View File

@ -39,6 +39,7 @@ struct LocalSourceSettings
uint16_t m_reverseAPIChannelIndex; uint16_t m_reverseAPIChannelIndex;
Serializable *m_channelMarker; Serializable *m_channelMarker;
QByteArray m_rollupState;
LocalSourceSettings(); LocalSourceSettings();
void resetToDefaults(); void resetToDefaults();

View File

@ -319,6 +319,9 @@ void IEEE_802_15_4_ModGUI::onWidgetRolled(QWidget* widget, bool rollDown)
{ {
(void) widget; (void) widget;
(void) rollDown; (void) rollDown;
m_settings.m_rollupState = saveState();
applySettings();
} }
void IEEE_802_15_4_ModGUI::onMenuDialogCalled(const QPoint &p) void IEEE_802_15_4_ModGUI::onMenuDialogCalled(const QPoint &p)
@ -561,6 +564,7 @@ void IEEE_802_15_4_ModGUI::displaySettings()
ui->udpAddress->setText(m_settings.m_udpAddress); ui->udpAddress->setText(m_settings.m_udpAddress);
ui->udpPort->setText(QString::number(m_settings.m_udpPort)); ui->udpPort->setText(QString::number(m_settings.m_udpPort));
restoreState(m_settings.m_rollupState);
blockApplySettings(false); blockApplySettings(false);
} }

View File

@ -193,6 +193,7 @@ QByteArray IEEE_802_15_4_ModSettings::serialize() const
s.writeString(35, m_udpAddress); s.writeString(35, m_udpAddress);
s.writeU32(36, m_udpPort); s.writeU32(36, m_udpPort);
s.writeBool(37, m_udpBytesFormat); s.writeBool(37, m_udpBytesFormat);
s.writeBlob(38, m_rollupState);
return s.final(); return s.final();
} }
@ -271,6 +272,7 @@ bool IEEE_802_15_4_ModSettings::deserialize(const QByteArray& data)
m_udpPort = 9998; m_udpPort = 9998;
} }
d.readBool(37, &m_udpBytesFormat); d.readBool(37, &m_udpBytesFormat);
d.readBlob(38, &m_rollupState);
return true; return true;
} }

View File

@ -76,6 +76,7 @@ struct IEEE_802_15_4_ModSettings
bool m_udpBytesFormat; //!< true for bytes payload bool m_udpBytesFormat; //!< true for bytes payload
QString m_udpAddress; QString m_udpAddress;
uint16_t m_udpPort; uint16_t m_udpPort;
QByteArray m_rollupState;
static const int m_udpBufferSize = 100000; static const int m_udpBufferSize = 100000;
IEEE_802_15_4_ModSettings(); IEEE_802_15_4_ModSettings();

View File

@ -329,6 +329,9 @@ void AISModGUI::onWidgetRolled(QWidget* widget, bool rollDown)
{ {
(void) widget; (void) widget;
(void) rollDown; (void) rollDown;
m_settings.m_rollupState = saveState();
applySettings();
} }
void AISModGUI::onMenuDialogCalled(const QPoint &p) void AISModGUI::onMenuDialogCalled(const QPoint &p)
@ -546,6 +549,7 @@ void AISModGUI::displaySettings()
ui->heading->setValue(m_settings.m_heading); ui->heading->setValue(m_settings.m_heading);
ui->message->setText(m_settings.m_data); ui->message->setText(m_settings.m_data);
restoreState(m_settings.m_rollupState);
blockApplySettings(false); blockApplySettings(false);
} }

View File

@ -171,6 +171,7 @@ QByteArray AISModSettings::serialize() const
s.writeBool(37, m_udpEnabled); s.writeBool(37, m_udpEnabled);
s.writeString(38, m_udpAddress); s.writeString(38, m_udpAddress);
s.writeU32(39, m_udpPort); s.writeU32(39, m_udpPort);
s.writeBlob(40, m_rollupState);
return s.final(); return s.final();
} }
@ -246,6 +247,7 @@ bool AISModSettings::deserialize(const QByteArray& data)
} else { } else {
m_udpPort = 9998; m_udpPort = 9998;
} }
d.readBlob(40, &m_rollupState);
return true; return true;
} }

View File

@ -86,6 +86,7 @@ struct AISModSettings
bool m_udpEnabled; bool m_udpEnabled;
QString m_udpAddress; QString m_udpAddress;
uint16_t m_udpPort; uint16_t m_udpPort;
QByteArray m_rollupState;
// Sample rate is multiple of 9600 baud rate (use even multiple so Gausian filter has odd number of taps) // Sample rate is multiple of 9600 baud rate (use even multiple so Gausian filter has odd number of taps)
// Is there any benefit to having this higher? // Is there any benefit to having this higher?

View File

@ -269,6 +269,9 @@ void AMModGUI::onWidgetRolled(QWidget* widget, bool rollDown)
{ {
(void) widget; (void) widget;
(void) rollDown; (void) rollDown;
m_settings.m_rollupState = saveState();
applySettings();
} }
void AMModGUI::onMenuDialogCalled(const QPoint &p) void AMModGUI::onMenuDialogCalled(const QPoint &p)
@ -451,6 +454,7 @@ void AMModGUI::displaySettings()
displayStreamIndex(); displayStreamIndex();
restoreState(m_settings.m_rollupState);
blockApplySettings(false); blockApplySettings(false);
} }

Some files were not shown because too many files have changed in this diff Show More