From 58328ace0d04f662dea1cb2c719573902f7e77a6 Mon Sep 17 00:00:00 2001 From: f4exb Date: Sat, 25 Jun 2022 02:53:11 +0200 Subject: [PATCH] Spectrum GUI: updates to the go to markers feature and documentation --- doc/img/MainWindow_spectrum_gui_F.png | Bin 4357 -> 5610 bytes doc/img/MainWindow_spectrum_gui_F.xcf | Bin 15610 -> 20082 bytes sdrgui/device/deviceuiset.cpp | 1 + sdrgui/gui/glspectrum.cpp | 3 ++- sdrgui/gui/glspectrum.h | 3 +++ sdrgui/gui/glspectrumgui.cpp | 6 +++++- sdrgui/gui/spectrum.md | 3 +++ sdrgui/mainwindow.cpp | 6 +++--- 8 files changed, 17 insertions(+), 5 deletions(-) diff --git a/doc/img/MainWindow_spectrum_gui_F.png b/doc/img/MainWindow_spectrum_gui_F.png index a3cb42df0ec179b10cfa0b4e26688267d2fc5f22..7b1d1b46f1c06f45ff12fa2b91c74fe76a7b879e 100644 GIT binary patch literal 5610 zcmai21yEFPyI%xJX^@b#=nyIC4rxI^SULp>mz3^C5R?!J=|;+>mynWj!37avNdaL2 z>E7?<{^z^%&Al`C?#!Ne&vVYaPyT+-6RWGON=nQ~41qvM)zy@qKp;32;5vv99~?Ks zwd27;=wc`3aZJFc@{6j~JS>Qpqs_cK!^xSN!_?6+y-;c% zt>N8b6)ANlLy_#=$hZC6t9+v-wZngomIZFu@4vIFo?ukC5pNuZM@jsZGmr2V@a2M_dRRoT%tL8>>bp@|8w| ziZDAXPdi&SpXZ*AY^v&7x<;X7bPx!2m%5U?f$vYutiQ3rQFi~|qf7?ZC1_j18h@A4 zMq-H*#dQH;CwTE({`~beB}L6T7gifoqSnsy-0vBE3cC%p({kgdh1Ro$jAoQyjJ*m{ z5;<|&RBRF*3#>aAWCX)UJBKgjGkYOIY;5yK2U4qgqfjyg`VoR0f!_X*SpeaWpvb2+ zcye8Vkcfgk0xyO_;hGX5JI?J03M#h$f9cs<`UgcJj(8{ zOH&{tuDf+MUAOe3324asi?3)w|A^G^UQg%FmfmRpYPY>9W@kCQ-wvTcuGByjO2&D^m(BmF2qwy|NlGL>DT8k-x zr8-#!Ec*^(Wz@L0nSqbsXpZYY*7<>Z7!&BNGHW9{nQm2Vx;O>C1iKr?0r%_UDJI& zwXi|GGZS04&8h&qsY1vuovgi--cv+&6(A#z&$KYNZ3*xE<9dc}PrqG}Kn1mshQ~ga zVU|QH$ZN!GstFYNPi@Km38gjPS$ncC?A7}ho)XhXM-1hc%1|eI*pr9bmuNOXsRvx*H5+djnD>F z_V?xc?21u&NJmb7e%E>zh8s~)v{SEV+$FNNuynMvjWa>(YcP~v1qx$QJ=$j}DCoOm zIhrer=K2|P!|MGy|7SZ~2&aI+k)xTZOM%GjS(cdFBCJ`LCNd-hl4NdEYb?kuXFo5uMC1t&A;%P5pnudUEWl+#QVl>1%Ww{N=kV>u%$L+P;z313{{dn@S{k3$;t zGD{Mpaf!4xu`}P62*_WC+}MrQLab%DaK(iIn>#f!rVmAq*n9Y#G@9_mt>Nsb7z1*pxAz#peWk&rN6#_t%`7nB}-QNa2GhJ�C%13Mx%3;<8Llt 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

gnml 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 literal 15610 zcmeHOe^gZ0oqsd$%?tyh@n?-Tn~uM7l6H9qA`lR?gKo3!$}q$H1X(u@^UFbgSQxUB zh^ReLt7ww;nA4+;4Ag8}V`I}adve-yn(CTtR>owzdseFG25Q`F)X-2Cg<+Vx-|xHk z!2`)LV72_g<$UM!z2E!2_kQ2K_uc#9G6X}FTZ~)10prtY>FFG#_d&L!0_i1?*&r$v ze9Q$&S_>u=Nb^7hkQ9(FF&+KpgY<&T2tw1T-s;Lqe^nUr92U-5TjTeH{XXMAhQgbS zfBP-76-#DGuAxd#(4QKt3Hi{5-X|Wd4cAxrjkVPkA>U)kj|PI?>WbcwkDE(mZ*4ix|Z>TD0OizPc{iqzvq}El1!p2aQcay&sYg7jUwf?YC z@>l3o9qo)UE0XG0G^70r#pHt&XMRL+?jec`&QpA714Uzi;_|Xgkh5nF2Pgdwgg^sh1?O-y1 z$odS0{s8FMUo%K1hzIvs2jG^WP9Om;Rp`nUwg~MY_A60A6m7;O#th>Un8iSK6=dvTPnFM8v(hafOOm zk7s8-k(M)(jMADdud5A*0`M4DTNGc6I0WwhKtOXOuar{VgKMIzitHqjDMb3@Em;K+}XpmhOS1ie|-lZQRV z)0BbEgTNOMundcy;|WAaWK4oZhIt*QVW@&7r2t(NIKjQ^FuhPz}(K-m{m-BD`Sy~gl26!kc6ko35BBR;|~ zi(+zsBF8n(`T}Cu#Vv{~lSCEy61+gmK<))D;To|o0)2s~2=sB!@ILp&@8BAh@&M%T zAgX&b%5)|dMH&rWIL+?WDAQTIUwt(4J{aE-f%P2(`8r$YD*(U3botDpoCZs#6qgA> zJP(3QcAG)oGAS;zVv2B?bl@`CX`@pHFl1mVe{L>g_$L@FImzpS?ZJlAasi-R2C8A0 z|BOC%HJna5=rvpt!9!if6gb2&ujd2_N63M8l-(fJQ4!f+u0Mjb{jmq=f+$#qMZ*n| zwsU-xw88lwg_xq`Ec6cAt#i?H|Ni#-ZP9a>PvM5zqF_};_1s|e11LjX$C2T>R8O4i zU{3EwnG*ymRfHx8Z36gAH1@mq+Rn*Y=(P>2K{W42vBeKC8fBb7TcQ#d941rvTtGO~ ze|MtuX2;mRtWPsTec#tHH+^a=`9A6fE^+w=D$t7hN<#rc&O;2`r!QZwN>4A?G8F>iU3p8skEt}iG@Vn#q zf@zkQ+Go{Loc#pDL5g$mH$g~qzRd7nDbB5=I1Yg^1h|D{xg;vG3MOnKvH(a3)Q>`a z5LFcFPDr3WlB&Co!8F0RM?Yhu0qRdE?$OUlpW!ZJ;DO{QWenkg(Vf7|&>6+&n%Jz+ znZ$ZXxF*}@L?WfWjfU-$m;tPXaZav3B?UqqQV`_MH0W`3#orq66oGa zyP-iks6Qzh^!OB^LHF@WXa3J%u;e6D9kz?l|2Me+P%Z;?ewS>&{Ypo}shasnqUAW8 zl@U0^o3#hBDt07REv6Uo_99P3t z5MBqxk2XhIlR$+#6}ZvSgQnr)&5=lJvZPA=HPik^bU3qz@0@PG%DEGJlUZ3ZT=_uD ziYp%;Xa-UZoYR9LpTWa>)K!n||}ZfBM}s2BaAF%M(sCQVFRM|`Nk*zx~zS&u4=9e?bzG;Ah`i|b#%v4Vyfpa0&+ ze@!EeFYWllavE$r^IFHlG+y#^Eg?U_CZPLaeQew?`SNi;n(<7zjYM9ixFO)0p6J~$ zZi5REY#4lhrYqEXdGWKEp$@*LO;bt?=bu?hF2N(QG94Q!%T|fFdm6< z6mSb8z*<05k@+C^8W#e~fj)53-vknnoP-RP#?o=FrRYIW`WLfqhUSv zagRn@W?T2CkK4wNAGykz5RZ}m!Z?+93?7+yl|9+*M+0>y#beT^2#>js*EtW@$@?Rq z%vIRl{P2t8l!58tpUU>pN3oU@qyt?8f6Kw+Qbs&4F+W+22SVv#yXt~6> zHgyy_gu4{-w!pO5@o3xoQ7Hp)+!aC`(6lNlBgCV)s2T5)M#~L8_H2}VL`Q`PJdyPn zfBw0QOHzTJOZ-_BEl1912*D6x$VT+B!v>QmAI78k$dua<m0qxf7Cn-!eJnNj)1WwL$Z4*NxC0%r}S(GZ3&oqX{XgtLW$^^k*1w$HoZ zFXiw~;Q^0nhSgJx-(4z@zicvHIQ!SFIek805;qBszHQeM13Mf$1`^k{36A(CQQV|<4DPz|dZ}A*47y8S zzp+bA%^F94_Q~^^YiPBG>m&x%V&r;*;ONC_4#&oKJ3|LwDOEdqOOG84b-ugN;edjm zV83Nv(;djSn^5oDhBfV2bDLnl5(Edky{7Azp^noV>V8I~MTvn=3P$ zI*ar2OkzN=^*sw!8*PnH^;yAoB_N6cn{8*$_V4xVuDcPtQMbG2d)s?<+H6?B+Y-5L z0)ct>yo!5nRvqaHABmCJk=mXkRX6uY75#kC&791puHszi(=QZBeQqz>F7;V-#V?Bf zqN1HW4KMcW4nv>e-90Zh^z1Au!UDm1Yu%de;A$(@wDvu7jl>$P4KZ@<8Nn*mv|6`x zz7gm+wZ8Un?fTz#1m5V}VzpvTjkQ1Xwf4-_CebHY`s%Ndfd)&%0J&B#SbBY;=(AW# z&wS|H|0B2B((7v3=lk$Xsl|c?8cY9^YfiVrTw=woFqhjb+h8uY3YIvQt1W}uub*_= z1k0e!ee(KtwPf~c3kO!^{|pw5S19cBz4_j$Kw;q2dvE%L!njuyy?o)&(H57saL5%o z%1fp)ojLY58Tlr$OfdHqy4M#MnhT59y9)(#yi63!cyq$$NHQlJHl7;v=J+?kc^=JC z@FW+&ba>_!#62RyphwJbt=F%Mn*ipli>-HM3@cCMxbz$2CV)8`W3KG%Va1f4p%+!~ zwr0TFnt^XCD2a@0vuXMjo_>X=U*YLjm>tK{r||SCJben^_fz;WlVOBK$B|B_D7o_> z(rA;RI2I_QjCla4vuRb{s$`ig4{R1qS!c6sz>SeTr?>}8n>xO`o_F7Zf&+=Bwb=za zN`;eMvEmmlzjfg|yz6GUXzC=L-LI`(qm@W*x!!fH%3R4yPC<>m+i~!dAAj)D zbItDE9nTjdvo+~RqAi!V#gVBBwqDo1kADA7)j!zX2QD@_)VAJ$Xu@`KOS<-F=I}*v zpol zCr2C09Hrm6bkM1_-1Ld2F4EO~B7c>(@Q*+efsZ<4EpXVM*q@*A z4W0Qj;Dp}7!kz7htc8|c7Z2Ey3J1KRDdTL$H}&QoB#dUWbzA!(=k5!8t$K5;45mCM zD_J6jz$If1?Z4>QXGt~>L4jf2AP_^*!xs!%c3#|Flu|I{0jtCcCAt`gVqA1U1|^m_ z1axsWC5XTazh;_Vk<%-3dPPp}k<)wR=kJkl4Tj$hn8B{Ybfc) zmQJM`MHcO(Zxq>Wq1?>Mu&e>fL%{wNvNA%;a5WW2BZ$3bHSl^4RzI^WJ5CXBnaoq`d!Nc%I=!hW|}bnmL>`D*O(dkrCm2 IpF86J4setIsDeviceSpectrum(true); m_spectrumVis = deviceSet->m_spectrumVis; m_spectrumVis->setGLSpectrum(m_spectrum); m_spectrumGUI = new GLSpectrumGUI; diff --git a/sdrgui/gui/glspectrum.cpp b/sdrgui/gui/glspectrum.cpp index ffdeb0954..e7d246ec7 100644 --- a/sdrgui/gui/glspectrum.cpp +++ b/sdrgui/gui/glspectrum.cpp @@ -107,7 +107,8 @@ GLSpectrum::GLSpectrum(QWidget* parent) : m_calibrationShiftdB(0.0), m_calibrationInterpMode(SpectrumSettings::CalibInterpLinear), m_messageQueueToGUI(nullptr), - m_openGLLogger(nullptr) + m_openGLLogger(nullptr), + m_isDeviceSpectrum(false) { // Enable multisampling anti-aliasing (MSAA) int multisamples = MainCore::instance()->getSettings().getMultisampling(); diff --git a/sdrgui/gui/glspectrum.h b/sdrgui/gui/glspectrum.h index e074fcd40..249266dfb 100644 --- a/sdrgui/gui/glspectrum.h +++ b/sdrgui/gui/glspectrum.h @@ -201,6 +201,8 @@ public: void setCalibrationPoints(const QList& calibrationPoints); SpectrumSettings::CalibrationInterpolationMode& getCalibrationInterpMode() { return m_calibrationInterpMode; } void setCalibrationInterpMode(SpectrumSettings::CalibrationInterpolationMode mode); + void setIsDeviceSpectrum(bool isDeviceSpectrum) { m_isDeviceSpectrum = isDeviceSpectrum; } + bool isDeviceSpectrum() const { return m_isDeviceSpectrum; } private: struct ChannelMarkerState { @@ -364,6 +366,7 @@ private: MessageQueue *m_messageQueueToGUI; QOpenGLDebugLogger *m_openGLLogger; + bool m_isDeviceSpectrum; void updateWaterfall(const Real *spectrum); void update3DSpectrogram(const Real *spectrum); diff --git a/sdrgui/gui/glspectrumgui.cpp b/sdrgui/gui/glspectrumgui.cpp index 4a0b3ab94..9b369d9be 100644 --- a/sdrgui/gui/glspectrumgui.cpp +++ b/sdrgui/gui/glspectrumgui.cpp @@ -235,6 +235,7 @@ void GLSpectrumGUI::displayGotoMarkers() { ui->gotoMarker->clear(); ui->gotoMarker->addItem("Go to..."); + for (auto marker : m_settings.m_annoationMarkers) { if (marker.m_show != SpectrumAnnotationMarker::Hidden) @@ -244,7 +245,8 @@ void GLSpectrumGUI::displayGotoMarkers() ui->gotoMarker->addItem(QString("%1 - %2").arg(marker.m_text).arg(freqString)); } } - ui->gotoMarker->setVisible(ui->gotoMarker->count() > 1); + + ui->gotoMarker->setVisible(m_glSpectrum && m_glSpectrum->isDeviceSpectrum() && (ui->gotoMarker->count() > 1)); } QString GLSpectrumGUI::displayScaled(int64_t value, char type, int precision, bool showMult) @@ -263,6 +265,7 @@ QString GLSpectrumGUI::displayScaled(int64_t value, char type, int precision, bo return tr("%1").arg(QString::number(value, 'e', precision)); } } + void GLSpectrumGUI::blockApplySettings(bool block) { m_doApplySettings = !block; @@ -465,6 +468,7 @@ void GLSpectrumGUI::on_markers_clicked(bool checked) m_settings.m_annoationMarkers = m_glSpectrum->getAnnotationMarkers(); m_settings.m_markersDisplay = m_glSpectrum->getMarkersDisplay(); + displayGotoMarkers(); applySettings(); } diff --git a/sdrgui/gui/spectrum.md b/sdrgui/gui/spectrum.md index f0963c0d3..96c6c9c9b 100644 --- a/sdrgui/gui/spectrum.md +++ b/sdrgui/gui/spectrum.md @@ -352,6 +352,9 @@ Use the toggle button to switch between relative and calibrated power readings. Right click to open the [calibration management dialog](spectrumcalibration.md) +

B.6.5: Go to annotation marker

+ +This combo only appears if the spectrum display is the spectrum of a device (i.e. main spectrum) and if there are visible annotation markers. It allows to set the device center frequency to the frequency of the selected annotation marker.

3D Spectrogram Controls

diff --git a/sdrgui/mainwindow.cpp b/sdrgui/mainwindow.cpp index 0beb9e21a..c2e69fe2c 100644 --- a/sdrgui/mainwindow.cpp +++ b/sdrgui/mainwindow.cpp @@ -1025,7 +1025,7 @@ void MainWindow::removeLastDeviceSet() m_deviceUIs.back()->m_deviceGUI->destroy(); m_deviceUIs.back()->m_deviceAPI->resetSamplingDeviceId(); m_deviceUIs.back()->m_deviceAPI->getPluginInterface()->deleteSampleSourcePluginInstanceInput( - m_deviceUIs.back()->m_deviceAPI->getSampleSource()); + m_deviceUIs.back()->m_deviceAPI->getSampleSource()); m_deviceUIs.back()->m_deviceAPI->clearBuddiesLists(); // clear old API buddies lists DeviceAPI *sourceAPI = m_deviceUIs.back()->m_deviceAPI; @@ -1048,7 +1048,7 @@ void MainWindow::removeLastDeviceSet() m_deviceUIs.back()->m_deviceGUI->destroy(); m_deviceUIs.back()->m_deviceAPI->resetSamplingDeviceId(); m_deviceUIs.back()->m_deviceAPI->getPluginInterface()->deleteSampleSinkPluginInstanceOutput( - m_deviceUIs.back()->m_deviceAPI->getSampleSink()); + m_deviceUIs.back()->m_deviceAPI->getSampleSink()); m_deviceUIs.back()->m_deviceAPI->clearBuddiesLists(); // clear old API buddies lists DeviceAPI *sinkAPI = m_deviceUIs.back()->m_deviceAPI; @@ -1072,7 +1072,7 @@ void MainWindow::removeLastDeviceSet() m_deviceUIs.back()->m_deviceGUI->destroy(); m_deviceUIs.back()->m_deviceAPI->resetSamplingDeviceId(); m_deviceUIs.back()->m_deviceAPI->getPluginInterface()->deleteSampleMIMOPluginInstanceMIMO( - m_deviceUIs.back()->m_deviceAPI->getSampleMIMO()); + m_deviceUIs.back()->m_deviceAPI->getSampleMIMO()); DeviceAPI *mimoAPI = m_deviceUIs.back()->m_deviceAPI; delete m_deviceUIs.back();