1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2024-11-25 01:18:38 -05:00

Merge pull request #1055 from srcejon/rx_rollup_state

Save/restore rollup state in channel plugins
This commit is contained in:
Edouard Griffiths 2021-11-24 19:23:57 +01:00 committed by GitHub
commit 15a0d21910
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
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);
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)

View File

@ -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;
}

View File

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

View File

@ -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)

View File

@ -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;
}

View File

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

View File

@ -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)

View File

@ -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;
}

View File

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

View File

@ -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);
}

View File

@ -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);

View File

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

View File

@ -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);
}

View File

@ -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);

View File

@ -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

View File

@ -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);
}

View File

@ -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;
}

View File

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

View File

@ -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);
}

View File

@ -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;
}

View File

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

View File

@ -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) :

View File

@ -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;
}

View File

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

View File

@ -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);
}

View File

@ -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;
}

View File

@ -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[];

View File

@ -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);
}

View File

@ -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;
}

View File

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

View File

@ -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);
}

View File

@ -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);

View File

@ -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

View File

@ -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);
}

View File

@ -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();

View File

@ -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();

View File

@ -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);
}

View File

@ -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;
}

View File

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

View File

@ -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);
}

View File

@ -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;
}

View File

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

View File

@ -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);
}

View File

@ -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;
}

View File

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

View File

@ -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);
}

View File

@ -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);

View File

@ -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

View File

@ -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);
}

View File

@ -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);

View File

@ -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

View File

@ -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);
}

View File

@ -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;
}

View File

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

View File

@ -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);
}

View File

@ -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);

View File

@ -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

View File

@ -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);
}

View File

@ -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;
}

View File

@ -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

View File

@ -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);
}

View File

@ -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;
}

View File

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

View File

@ -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)

View File

@ -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;
}

View File

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

View File

@ -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);
}

View File

@ -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;
}

View File

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

View File

@ -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)

View File

@ -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;
}

View File

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

View File

@ -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);
}

View File

@ -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);

View File

@ -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

View File

@ -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);
}

View File

@ -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;
}

View File

@ -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;

View File

@ -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)

View File

@ -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;
}

View File

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

View File

@ -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)

View File

@ -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;
}

View File

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

View File

@ -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)

View File

@ -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;
}

View File

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

View File

@ -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)

View File

@ -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;
}

View File

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

View File

@ -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)

View File

@ -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;
}

View File

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

View File

@ -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);
}

View File

@ -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;
}

View File

@ -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();

View File

@ -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);
}

View File

@ -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;
}

View File

@ -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?

View File

@ -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