From a5bf0c27202507f29087e33966c0b4bfced2daf6 Mon Sep 17 00:00:00 2001 From: f4exb Date: Fri, 24 Jul 2015 01:09:03 +0200 Subject: [PATCH] Added spectrum histogram clear button --- Readme.md | 11 ++++++---- include-gpl/gui/glspectrum.h | 1 + include-gpl/gui/glspectrumgui.h | 1 + sdrbase/gui/glspectrum.cpp | 12 +++++++++++ sdrbase/gui/glspectrumgui.cpp | 6 ++++++ sdrbase/gui/glspectrumgui.ui | 37 +++++++++++++++++++++++++++++++- sdrbase/resources/clear.png | Bin 0 -> 127 bytes sdrbase/resources/grid.png | Bin 259 -> 240 bytes sdrbase/resources/res.qrc | 1 + 9 files changed, 64 insertions(+), 5 deletions(-) create mode 100644 sdrbase/resources/clear.png diff --git a/Readme.md b/Readme.md index cf284de5b..83f46bdbe 100644 --- a/Readme.md +++ b/Readme.md @@ -112,21 +112,24 @@ Done since the fork - Added a scope widget in the channel analyzer plugin - Channel analyzer bandwidth up to half the available RF (IF) bandwidth (was 48k fixed) - Enhanced scope display and controls: scale display, better X (time) and Y scales control, grid fit to scale, effectively implementing triggers, trigger on magnitude and phase, properly handling time shift, ... - - Enhanced spectrum display: Histogram: define NO_AVX, wider decay range, make stroke and late holdoff adjustable. Added option to show live spectrum (had only max hold before). + - Enhanced spectrum display: Histogram: wider decay range, make stroke and late holdoff adjustable. Added option to show live spectrum (had only max hold before). - Enhanced channel analyzer: enhanced scope and spectrum displays as mentioned above, make the spectrum display synchronous to scope (hence triggerable a la E4406A). - Sort channel plugins by delta frequency and type before saving to preset - Implemented scope pre-trigger delay - Implemented variable scope memory depth - Implemented trigger delay - Trigger on both edges + - Spectrum histogram clear ===== To Do ===== - - Enhance presets management (Edit, Move, Import/Export from/to human readable format like JSON) + - Trigger line display for all trigger modes - Level calibration - - Enhance WFM (stereo, RDS?) - - Even more demods ... + - Enhance presets management (Edit, Move, Import/Export from/to human readable format like JSON) - recording capability - Tx channels for Rx/Tx boards like BladeRF + - Enhance WFM (stereo, RDS?) + - Even more demods ... + \ No newline at end of file diff --git a/include-gpl/gui/glspectrum.h b/include-gpl/gui/glspectrum.h index 152f7a83e..ce0c7f180 100644 --- a/include-gpl/gui/glspectrum.h +++ b/include-gpl/gui/glspectrum.h @@ -54,6 +54,7 @@ public: void removeChannelMarker(ChannelMarker* channelMarker); void newSpectrum(const std::vector& spectrum, int fftSize); + void clearSpectrumHistogram(); private: struct ChannelMarkerState { diff --git a/include-gpl/gui/glspectrumgui.h b/include-gpl/gui/glspectrumgui.h index 8c55d3e66..fd1b5bcb6 100644 --- a/include-gpl/gui/glspectrumgui.h +++ b/include-gpl/gui/glspectrumgui.h @@ -70,6 +70,7 @@ private slots: void on_current_toggled(bool checked); void on_invert_toggled(bool checked); void on_grid_toggled(bool checked); + void on_clearSpectrum_clicked(bool checked); }; #endif // INCLUDE_GLSPECTRUMGUI_H diff --git a/sdrbase/gui/glspectrum.cpp b/sdrbase/gui/glspectrum.cpp index 6eb3ef1cb..b8ff4d34c 100644 --- a/sdrbase/gui/glspectrum.cpp +++ b/sdrbase/gui/glspectrum.cpp @@ -472,6 +472,18 @@ void GLSpectrum::resizeGL(int width, int height) m_changesPending = true; } +void GLSpectrum::clearSpectrumHistogram() +{ + if(!m_mutex.tryLock(2)) + return; + + memset(m_histogram, 0x00, 100 * m_fftSize); + memset(m_histogramHoldoff, 0x07, 100 * m_fftSize); + + m_mutex.unlock(); + update(); +} + void GLSpectrum::paintGL() { if(!m_mutex.tryLock(2)) diff --git a/sdrbase/gui/glspectrumgui.cpp b/sdrbase/gui/glspectrumgui.cpp index 65b53918f..7a07ad91f 100644 --- a/sdrbase/gui/glspectrumgui.cpp +++ b/sdrbase/gui/glspectrumgui.cpp @@ -288,3 +288,9 @@ void GLSpectrumGUI::on_traceIntensity_valueChanged(int index) if(m_glSpectrum != NULL) m_glSpectrum->setDisplayTraceIntensity(m_displayTraceIntensity); } + +void GLSpectrumGUI::on_clearSpectrum_clicked(bool checked) +{ + if(m_glSpectrum != NULL) + m_glSpectrum->clearSpectrumHistogram(); +} diff --git a/sdrbase/gui/glspectrumgui.ui b/sdrbase/gui/glspectrumgui.ui index 655742735..32dc43774 100644 --- a/sdrbase/gui/glspectrumgui.ui +++ b/sdrbase/gui/glspectrumgui.ui @@ -6,7 +6,7 @@ 0 0 - 273 + 320 60 @@ -270,6 +270,9 @@ true + + false + @@ -484,6 +487,38 @@ + + + + + 24 + 24 + + + + + 24 + 24 + + + + Clear spectrum histogram + + + + + + + :/clear.png:/clear.png + + + + 16 + 16 + + + + diff --git a/sdrbase/resources/clear.png b/sdrbase/resources/clear.png new file mode 100644 index 0000000000000000000000000000000000000000..5fff0a4c3e660dc2aca2341dbe26bd4fb78f0759 GIT binary patch literal 127 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1SIoCSFHz9oCO|{#S9GG!XV7ZFl!D-1$&97 zuPgg~c5xvA{;9p^Hvxs@JY5_^EKVmUC8bg=d#Wzp$P!38yVOD literal 0 HcmV?d00001 diff --git a/sdrbase/resources/grid.png b/sdrbase/resources/grid.png index e384a539401ac789e4510fab076550c6200f90dc..c7285a777a50ed394c4e896182516a70db40e4a3 100644 GIT binary patch delta 185 zcmV;q07n0V0`LKlKY!l`7ZMH?ysils0001wNkln_!75l`b$@)wRXU)lzP_MS~V54DK_L%FwxRMJ?HJ?4kwtTE&1l0|96fNoSG#qx z&j|q$wbWH;t#i&Tgnw0~R4D~E=xC>uCXPY~PtDN_KejLKs}HA6$19Wo0000vertical_w.png current.png slopeb_icon.png + clear.png