mirror of
https://github.com/f4exb/sdrangel.git
synced 2025-05-23 10:48:41 -04:00
Spectrum: make markers display persistent
This commit is contained in:
parent
639373f7eb
commit
c025ea47ee
@ -61,6 +61,7 @@ void SpectrumSettings::resetToDefaults()
|
||||
m_wsSpectrum = false;
|
||||
m_wsSpectrumAddress = "127.0.0.1";
|
||||
m_wsSpectrumPort = 8887;
|
||||
m_markersDisplay = MarkersDisplayNone;
|
||||
}
|
||||
|
||||
QByteArray SpectrumSettings::serialize() const
|
||||
@ -93,6 +94,7 @@ QByteArray SpectrumSettings::serialize() const
|
||||
s.writeBool(25, m_usb);
|
||||
s.writeS32(26, m_fpsPeriodMs);
|
||||
s.writeBool(27, m_wsSpectrum);
|
||||
s.writeS32(28, (int) m_markersDisplay);
|
||||
s.writeS32(100, m_histogramMarkers.size());
|
||||
|
||||
for (int i = 0; i < m_histogramMarkers.size(); i++) {
|
||||
@ -169,10 +171,12 @@ bool SpectrumSettings::deserialize(const QByteArray& data)
|
||||
d.readBool(24, &m_ssb, false);
|
||||
d.readBool(25, &m_usb, true);
|
||||
d.readS32(26, &tmp, 50);
|
||||
d.readBool(27, &m_wsSpectrum, false);
|
||||
m_fpsPeriodMs = tmp < 5 ? 5 : tmp > 500 ? 500 : tmp;
|
||||
int histogramMarkersSize;
|
||||
d.readBool(27, &m_wsSpectrum, false);
|
||||
d.readS32(28, &tmp, 0);
|
||||
m_markersDisplay = (MarkersDisplay) tmp;
|
||||
|
||||
int histogramMarkersSize;
|
||||
d.readS32(100, &histogramMarkersSize, 0);
|
||||
histogramMarkersSize = histogramMarkersSize < 0 ? 0 :
|
||||
histogramMarkersSize > SpectrumHistogramMarker::m_maxNbOfMarkers ?
|
||||
|
@ -75,6 +75,7 @@ public:
|
||||
QList<SpectrumHistogramMarker> m_histogramMarkers;
|
||||
QList<SpectrumWaterfallMarker> m_waterfallMarkers;
|
||||
QList<SpectrumAnnotationMarker> m_annoationMarkers;
|
||||
MarkersDisplay m_markersDisplay;
|
||||
static const int m_log2FFTSizeMin = 6; // 64
|
||||
static const int m_log2FFTSizeMax = 15; // 32k
|
||||
|
||||
|
@ -448,6 +448,16 @@ void GLSpectrum::setAnnotationMarkers(const QList<SpectrumAnnotationMarker>& ann
|
||||
update();
|
||||
}
|
||||
|
||||
void GLSpectrum::setMarkersDisplay(SpectrumSettings::MarkersDisplay markersDisplay)
|
||||
{
|
||||
m_mutex.lock();
|
||||
m_markersDisplay = markersDisplay;
|
||||
updateMarkersDisplay();
|
||||
m_changesPending = true;
|
||||
m_mutex.unlock();
|
||||
update();
|
||||
}
|
||||
|
||||
float GLSpectrum::getPowerMax() const
|
||||
{
|
||||
return m_linear ? m_powerScale.getRangeMax() : CalcDb::powerFromdB(m_powerScale.getRangeMax());
|
||||
@ -1403,6 +1413,7 @@ void GLSpectrum::drawAnnotationMarkers()
|
||||
}
|
||||
|
||||
float h = m_annotationMarkerHeight / (float) m_histogramHeight;
|
||||
float htop = 1.0f / (float) m_histogramHeight;
|
||||
|
||||
for (const auto &marker : m_visibleAnnotationMarkers)
|
||||
{
|
||||
@ -1415,7 +1426,7 @@ void GLSpectrum::drawAnnotationMarkers()
|
||||
if (marker->m_bandwidth == 0)
|
||||
{
|
||||
GLfloat d[] {
|
||||
marker->m_startPos, 0,
|
||||
marker->m_startPos, htop,
|
||||
marker->m_startPos, h
|
||||
};
|
||||
m_glShaderSimple.drawSegments(m_glHistogramBoxMatrix, color, d, 2);
|
||||
@ -1425,8 +1436,8 @@ void GLSpectrum::drawAnnotationMarkers()
|
||||
GLfloat q3[] {
|
||||
marker->m_stopPos, h,
|
||||
marker->m_startPos, h,
|
||||
marker->m_startPos, 0,
|
||||
marker->m_stopPos, 0
|
||||
marker->m_startPos, htop,
|
||||
marker->m_stopPos, htop
|
||||
};
|
||||
m_glShaderSimple.drawSurface(m_glHistogramBoxMatrix, color, q3, 4);
|
||||
}
|
||||
|
@ -169,6 +169,7 @@ public:
|
||||
void updateAnnotationMarkers();
|
||||
void updateMarkersDisplay();
|
||||
SpectrumSettings::MarkersDisplay& getMarkersDisplay() { return m_markersDisplay; }
|
||||
void setMarkersDisplay(SpectrumSettings::MarkersDisplay markersDisplay);
|
||||
|
||||
private:
|
||||
struct ChannelMarkerState {
|
||||
|
@ -251,6 +251,7 @@ void GLSpectrumGUI::applySpectrumSettings()
|
||||
m_glSpectrum->setHistogramMarkers(m_settings.m_histogramMarkers);
|
||||
m_glSpectrum->setWaterfallMarkers(m_settings.m_waterfallMarkers);
|
||||
m_glSpectrum->setAnnotationMarkers(m_settings.m_annoationMarkers);
|
||||
m_glSpectrum->setMarkersDisplay(m_settings.m_markersDisplay);
|
||||
}
|
||||
|
||||
void GLSpectrumGUI::on_fftWindow_currentIndexChanged(int index)
|
||||
@ -386,6 +387,7 @@ void GLSpectrumGUI::on_markers_clicked(bool checked)
|
||||
m_settings.m_histogramMarkers = m_glSpectrum->getHistogramMarkers();
|
||||
m_settings.m_waterfallMarkers = m_glSpectrum->getWaterfallMarkers();
|
||||
m_settings.m_annoationMarkers = m_glSpectrum->getAnnotationMarkers();
|
||||
m_settings.m_markersDisplay = m_glSpectrum->getMarkersDisplay();
|
||||
|
||||
applySettings();
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user