diff --git a/sdrbase/dsp/glspectrumsettings.cpp b/sdrbase/dsp/glspectrumsettings.cpp
index 42a926da3..1ea0fa9d3 100644
--- a/sdrbase/dsp/glspectrumsettings.cpp
+++ b/sdrbase/dsp/glspectrumsettings.cpp
@@ -110,7 +110,8 @@ bool GLSpectrumSettings::deserialize(const QByteArray& data)
m_fftWindow = (FFTWindow::Function) tmp;
d.readReal(4, &m_refLevel, 0);
d.readReal(5, &m_powerRange, 100);
- d.readS32(26, &m_fpsPeriodMs, 50);
+ d.readS32(26, &tmp, 50);
+ m_fpsPeriodMs = tmp < 5 ? 5 : tmp > 500 ? 500 : tmp;
d.readBool(6, &m_displayWaterfall, true);
d.readBool(7, &m_invertedWaterfall, true);
d.readBool(8, &m_displayMaxHold, false);
diff --git a/sdrbase/webapi/webapiadapterbase.cpp b/sdrbase/webapi/webapiadapterbase.cpp
index 4a2a78285..e27b00039 100644
--- a/sdrbase/webapi/webapiadapterbase.cpp
+++ b/sdrbase/webapi/webapiadapterbase.cpp
@@ -370,8 +370,10 @@ void WebAPIAdapterBase::webapiUpdatePreset(
if (spectrumIt->contains("refLevel")) {
spectrumSettings.m_refLevel = apiPreset->getSpectrumConfig()->getRefLevel();
}
- if (spectrumIt->contains("fpsPeriodMs")) {
- spectrumSettings.m_fpsPeriodMs = apiPreset->getSpectrumConfig()->getFpsPeriodMs();
+ if (spectrumIt->contains("fpsPeriodMs"))
+ {
+ qint32 fpsPeriodMs = apiPreset->getSpectrumConfig()->getFpsPeriodMs();
+ spectrumSettings.m_fpsPeriodMs = fpsPeriodMs < 5 ? 5 : fpsPeriodMs > 500 ? 500 : fpsPeriodMs;
}
if (spectrumIt->contains("waterfallShare")) {
spectrumSettings.m_waterfallShare = apiPreset->getSpectrumConfig()->getWaterfallShare();
diff --git a/sdrgui/gui/glspectrum.cpp b/sdrgui/gui/glspectrum.cpp
index 8202645bc..dcc206809 100644
--- a/sdrgui/gui/glspectrum.cpp
+++ b/sdrgui/gui/glspectrum.cpp
@@ -440,10 +440,6 @@ void GLSpectrum::newSpectrum(const Real *spectrum, int nbBins, int fftSize)
updateWaterfall(spectrum);
updateHistogram(spectrum);
-
- if (m_fpsPeriodMs == 0) {
- update();
- }
}
void GLSpectrum::updateWaterfall(const Real *spectrum)
diff --git a/sdrgui/gui/glspectrumgui.cpp b/sdrgui/gui/glspectrumgui.cpp
index ab1dc19fa..1ba1d046d 100644
--- a/sdrgui/gui/glspectrumgui.cpp
+++ b/sdrgui/gui/glspectrumgui.cpp
@@ -32,7 +32,7 @@
#include "util/db.h"
#include "ui_glspectrumgui.h"
-const int GLSpectrumGUI::m_fpsMs[] = {500, 200, 100, 50, 20, 10, 5, 0};
+const int GLSpectrumGUI::m_fpsMs[] = {500, 200, 100, 50, 20, 10, 5};
GLSpectrumGUI::GLSpectrumGUI(QWidget* parent) :
QWidget(parent),
@@ -147,24 +147,17 @@ void GLSpectrumGUI::displaySettings()
}
}
- if (m_settings.m_fpsPeriodMs == 0)
- {
- ui->fps->setCurrentIndex(sizeof(m_fpsMs)/sizeof(m_fpsMs[0]) - 1);
- }
- else
- {
- unsigned int i = 0;
+ unsigned int i = 0;
- for (; i < sizeof(m_fpsMs)/sizeof(m_fpsMs[0]); i++)
- {
- if (m_settings.m_fpsPeriodMs >= m_fpsMs[i]) {
- break;
- }
+ for (; i < sizeof(m_fpsMs)/sizeof(m_fpsMs[0]); i++)
+ {
+ if (m_settings.m_fpsPeriodMs >= m_fpsMs[i]) {
+ break;
}
-
- ui->fps->setCurrentIndex(i);
}
+ ui->fps->setCurrentIndex(i);
+
ui->fftOverlap->setValue(m_settings.m_fftOverlap);
setMaximumOverlap();
ui->averaging->setCurrentIndex(m_settings.m_averagingIndex);
diff --git a/sdrgui/gui/glspectrumgui.ui b/sdrgui/gui/glspectrumgui.ui
index 02a9c49bb..f256f1cac 100644
--- a/sdrgui/gui/glspectrumgui.ui
+++ b/sdrgui/gui/glspectrumgui.ui
@@ -461,7 +461,7 @@
Spectrum maximum FPS (NL for No Limit)
- 3
+ 0
-
@@ -498,11 +498,6 @@
200
- -
-
- NL
-
-
-