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