diff --git a/sdrbase/dsp/spectrumsettings.h b/sdrbase/dsp/spectrumsettings.h
index 29e84181b..0b28bb239 100644
--- a/sdrbase/dsp/spectrumsettings.h
+++ b/sdrbase/dsp/spectrumsettings.h
@@ -64,7 +64,7 @@ public:
QString m_wsSpectrumAddress;
uint16_t m_wsSpectrumPort;
static const int m_log2FFTSizeMin = 6; // 64
- static const int m_log2FFTSizeMax = 13; // 8k
+ static const int m_log2FFTSizeMax = 15; // 32k
SpectrumSettings();
virtual ~SpectrumSettings();
diff --git a/sdrgui/gui/glspectrumgui.cpp b/sdrgui/gui/glspectrumgui.cpp
index 1849aaa0e..ebf781ac2 100644
--- a/sdrgui/gui/glspectrumgui.cpp
+++ b/sdrgui/gui/glspectrumgui.cpp
@@ -148,6 +148,7 @@ void GLSpectrumGUI::displaySettings()
}
}
+ setFFTSizeToolitp();
unsigned int i = 0;
for (; i < sizeof(m_fpsMs)/sizeof(m_fpsMs[0]); i++)
@@ -242,6 +243,7 @@ void GLSpectrumGUI::on_fftSize_currentIndexChanged(int index)
setMaximumOverlap();
applySettings();
setAveragingToolitp();
+ setFFTSizeToolitp();
}
void GLSpectrumGUI::on_fftOverlap_valueChanged(int value)
@@ -524,6 +526,20 @@ void GLSpectrumGUI::setAveragingToolitp()
}
}
+void GLSpectrumGUI::setFFTSizeToolitp()
+{
+ if (m_glSpectrum)
+ {
+ QString s;
+ setNumberStr((float) m_glSpectrum->getSampleRate() / m_settings.m_fftSize, 2, s);
+ ui->fftSize->setToolTip(QString("FFT size (resolution: %1Hz)").arg(s));
+ }
+ else
+ {
+ ui->fftSize->setToolTip(QString("FFT size"));
+ }
+}
+
void GLSpectrumGUI::setFFTSize(int log2FFTSize)
{
ui->fftSize->setCurrentIndex(
@@ -553,6 +569,7 @@ bool GLSpectrumGUI::handleMessage(const Message& message)
if (GLSpectrum::MsgReportSampleRate::match(message))
{
setAveragingToolitp();
+ setFFTSizeToolitp();
return true;
}
else if (SpectrumVis::MsgConfigureSpectrumVis::match(message))
diff --git a/sdrgui/gui/glspectrumgui.h b/sdrgui/gui/glspectrumgui.h
index 94f344fb7..5291d1f12 100644
--- a/sdrgui/gui/glspectrumgui.h
+++ b/sdrgui/gui/glspectrumgui.h
@@ -77,6 +77,7 @@ private:
void setNumberStr(int n, QString& s);
void setNumberStr(float v, int decimalPlaces, QString& s);
void setAveragingToolitp();
+ void setFFTSizeToolitp();
void setMaximumOverlap();
bool handleMessage(const Message& message);
diff --git a/sdrgui/gui/glspectrumgui.ui b/sdrgui/gui/glspectrumgui.ui
index 9ee8271fd..53f03277c 100644
--- a/sdrgui/gui/glspectrumgui.ui
+++ b/sdrgui/gui/glspectrumgui.ui
@@ -50,7 +50,7 @@
- 60
+ 70
0
@@ -169,6 +169,16 @@
8k
+ -
+
+ 16k
+
+
+ -
+
+ 32k
+
+
-