1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2025-07-12 05:45:21 -04:00

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
plugins
channelmimo
channelrx
chanalyzer
demodadsb
demodais
demodam
demodapt
demodatv
demodbfm
demodchirpchat
demoddab
demoddatv
demoddsd
demodfreedv
demodnfm
demodpacket
demodpager
demodssb
demodvor
demodvorsc
demodwfm
filesink
freqtracker
localsink
noisefigure
radioclock
remotesink
sigmffilesink
udpsink
channeltx

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

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

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

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

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

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

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

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

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

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

@ -133,6 +133,7 @@ QByteArray ADSBDemodSettings::serialize() const
s.writeS32(40, (int)m_mapType);
s.writeBool(41, m_displayNavAids);
s.writeBool(42, m_displayPhotos);
s.writeBlob(43, m_rollupState);
for (int i = 0; i < ADSBDEMOD_COLUMNS; 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.readBool(41, &m_displayNavAids, true);
d.readBool(42, &m_displayPhotos, true);
d.readBlob(43, &m_rollupState);
for (int i = 0; i < ADSBDEMOD_COLUMNS; i++) {
d.readS32(100 + i, &m_columnIndexes[i], i);

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

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

@ -92,6 +92,7 @@ QByteArray AISDemodSettings::serialize() const
s.writeString(22, m_logFilename);
s.writeBool(23, m_logEnabled);
s.writeS32(24, m_baud);
s.writeBlob(25, m_rollupState);
for (int i = 0; i < AISDEMOD_MESSAGE_COLUMNS; 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.readBool(23, &m_logEnabled, false);
d.readS32(24, &m_baud, 9600);
d.readBlob(25, &m_rollupState);
for (int i = 0; i < AISDEMOD_MESSAGE_COLUMNS; i++)
d.readS32(100 + i, &m_messageColumnIndexes[i], i);

@ -60,6 +60,7 @@ struct AISDemodSettings
uint16_t m_reverseAPIDeviceIndex;
uint16_t m_reverseAPIChannelIndex;
Serializable *m_scopeGUI;
QByteArray m_rollupState;
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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

@ -45,6 +45,7 @@ struct DABDemodSettings
uint16_t m_reverseAPIPort;
uint16_t m_reverseAPIDeviceIndex;
uint16_t m_reverseAPIChannelIndex;
QByteArray m_rollupState;
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

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

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

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

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

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

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

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

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

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

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

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

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

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

@ -89,6 +89,7 @@ QByteArray PacketDemodSettings::serialize() const
s.writeString(25, m_logFilename);
s.writeBool(26, m_logEnabled);
s.writeBlob(27, m_rollupState);
for (int i = 0; i < PACKETDEMOD_COLUMNS; 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.readBool(26, &m_logEnabled, false);
d.readBlob(27, &m_rollupState);
for (int i = 0; i < PACKETDEMOD_COLUMNS; i++)
d.readS32(100 + i, &m_columnIndexes[i], i);

@ -56,6 +56,7 @@ struct PacketDemodSettings
QString m_logFilename;
bool m_logEnabled;
QByteArray m_rollupState;
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

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

@ -96,6 +96,7 @@ QByteArray PagerDemodSettings::serialize() const
s.writeString(25, m_logFilename);
s.writeBool(26, m_logEnabled);
s.writeBlob(27, m_rollupState);
for (int i = 0; i < PAGERDEMOD_MESSAGE_COLUMNS; 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.readBool(26, &m_logEnabled, false);
d.readBlob(27, &m_rollupState);
for (int i = 0; i < PAGERDEMOD_MESSAGE_COLUMNS; i++) {
d.readS32(100 + i, &m_messageColumnIndexes[i], i);

@ -66,6 +66,7 @@ struct PagerDemodSettings
QString m_logFilename;
bool m_logEnabled;
QByteArray m_rollupState;
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

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

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

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

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

@ -80,6 +80,7 @@ QByteArray VORDemodSettings::serialize() const
s.writeReal(21, m_refThresholdDB);
s.writeReal(22, m_varThresholdDB);
s.writeBool(23, m_magDecAdjust);
s.writeBlob(24, m_rollupState);
for (int i = 0; i < VORDEMOD_COLUMNS; 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(22, &m_varThresholdDB, -90.0);
d.readBool(23, &m_magDecAdjust, true);
d.readBlob(24, &m_rollupState);
for (int i = 0; i < VORDEMOD_COLUMNS; i++)
d.readS32(100 + i, &m_columnIndexes[i], i);

@ -53,6 +53,7 @@ struct VORDemodSettings
Real m_refThresholdDB; //!< Threshold in dB for valid VOR reference 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
QByteArray m_rollupState;
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

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

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

@ -45,6 +45,7 @@ struct VORDemodSCSettings
Real m_identThreshold; //!< Linear SNR threshold for Morse demodulator
Real m_refThresholdDB; //!< Threshold in dB for valid VOR reference 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
// However, old VORs can have 0.005% frequency offset, which is 6kHz

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

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

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

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

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

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

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

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

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

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

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

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

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

@ -111,6 +111,7 @@ QByteArray NoiseFigureSettings::serialize() const
s.writeS32(26, (int)m_interpolation);
s.writeString(27, m_setting);
s.writeBlob(28, m_rollupState);
for (int i = 0; i < NOISEFIGURE_COLUMNS; 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.readString(27, &m_setting, "centerFrequency");
d.readBlob(28, &m_rollupState);
for (int i = 0; i < NOISEFIGURE_COLUMNS; i++) {
d.readS32(100 + i, &m_resultsColumnIndexes[i], i);

@ -85,6 +85,7 @@ struct NoiseFigureSettings
uint16_t m_reverseAPIPort;
uint16_t m_reverseAPIDeviceIndex;
uint16_t m_reverseAPIChannelIndex;
QByteArray m_rollupState;
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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

@ -319,6 +319,9 @@ void IEEE_802_15_4_ModGUI::onWidgetRolled(QWidget* widget, bool rollDown)
{
(void) widget;
(void) rollDown;
m_settings.m_rollupState = saveState();
applySettings();
}
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->udpPort->setText(QString::number(m_settings.m_udpPort));
restoreState(m_settings.m_rollupState);
blockApplySettings(false);
}

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

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

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

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

@ -86,6 +86,7 @@ struct AISModSettings
bool m_udpEnabled;
QString m_udpAddress;
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)
// Is there any benefit to having this higher?

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

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