From e6e7ece46cda8b2a13e15346875d1ad0a1199d46 Mon Sep 17 00:00:00 2001 From: f4exb Date: Sat, 8 Aug 2020 11:53:56 +0200 Subject: [PATCH] Removed file recording function from device plugins --- doc/img/AirspyHFInput_plugin.png | Bin 23240 -> 22473 bytes doc/img/AirspyHFInput_plugin.xcf | Bin 96677 -> 97114 bytes doc/img/BladeRF1Input_plugin.png | Bin 26132 -> 25488 bytes doc/img/BladeRF1Input_plugin.xcf | Bin 103506 -> 103926 bytes doc/img/BladeRF2Input_plugin.png | Bin 25912 -> 25188 bytes doc/img/BladeRF2Input_plugin.xcf | Bin 110894 -> 111332 bytes doc/img/FCDProPlus_plugin.png | Bin 22626 -> 21835 bytes doc/img/FCDProPlus_plugin.xcf | Bin 91424 -> 91658 bytes doc/img/FCDPro_plugin.png | Bin 36796 -> 36155 bytes doc/img/FCDPro_plugin.xcf | Bin 131834 -> 132263 bytes doc/img/HackRFInput_plugin.png | Bin 27823 -> 27053 bytes doc/img/HackRFInput_plugin.xcf | Bin 109223 -> 109455 bytes doc/img/KiwiSDRInput_plugin.png | Bin 18104 -> 17157 bytes doc/img/KiwiSDRInput_plugin.xcf | Bin 81209 -> 78251 bytes doc/img/LimeSDRInput_plugin.png | Bin 35912 -> 35151 bytes doc/img/LimeSDRInput_plugin.xcf | Bin 178203 -> 178428 bytes doc/img/LimeSDRInput_plugin_1.png | Bin 9960 -> 8987 bytes doc/img/LimeSDRInput_plugin_1.xcf | Bin 45727 -> 43158 bytes doc/img/LocalInput_plugin.png | Bin 12139 -> 11029 bytes doc/img/LocalInput_plugin.xcf | Bin 56263 -> 53337 bytes doc/img/Perseus_plugin.png | Bin 18992 -> 18505 bytes doc/img/Perseus_plugin.xcf | Bin 78666 -> 78900 bytes doc/img/PlutoSDRInput_plugin.png | Bin 37861 -> 37059 bytes doc/img/PlutoSDRInput_plugin.xcf | Bin 163331 -> 163564 bytes doc/img/PlutoSDRInput_plugin_1.png | Bin 9677 -> 8692 bytes doc/img/PlutoSDRInput_plugin_1.xcf | Bin 41825 -> 39295 bytes doc/img/RTLSDR_plugin.png | Bin 30306 -> 29549 bytes doc/img/RTLSDR_plugin.xcf | Bin 123171 -> 123404 bytes doc/img/RemoteInput_plugin.png | Bin 35949 -> 35017 bytes doc/img/RemoteInput_plugin.xcf | Bin 116418 -> 113300 bytes doc/img/RemoteInput_plugin_01.png | Bin 8395 -> 7368 bytes doc/img/RemoteInput_plugin_01.xcf | Bin 37484 -> 36470 bytes doc/img/SDRPlay_plugin.png | Bin 27503 -> 26920 bytes doc/img/SDRPlay_plugin.xcf | Bin 114015 -> 114248 bytes doc/img/SoapySDRInput_plugin1.png | Bin 29136 -> 28384 bytes doc/img/SoapySDRInput_plugin1.xcf | Bin 127702 -> 127935 bytes doc/img/TestSourceInput_plugin.png | Bin 37362 -> 36673 bytes doc/img/TestSourceInput_plugin.xcf | Bin 145166 -> 145399 bytes doc/img/XTRXInput_plugin.xcf | Bin 148099 -> 148332 bytes fcdlib/fcdtraits.cpp | 4 +- .../samplesink/localoutput/localoutput.cpp | 1 - plugins/samplesink/localoutput/localoutput.h | 2 - .../samplesink/localoutput/localoutput.pro | 51 --- .../samplesink/remoteoutput/remoteoutput.cpp | 1 - plugins/samplesink/xtrxoutput/xtrxoutput.h | 1 - plugins/samplesource/airspy/airspygui.cpp | 59 --- plugins/samplesource/airspy/airspygui.h | 2 - plugins/samplesource/airspy/airspygui.ui | 14 - plugins/samplesource/airspy/airspyinput.cpp | 74 ---- plugins/samplesource/airspy/airspyinput.h | 26 -- plugins/samplesource/airspy/airspyplugin.cpp | 2 +- .../samplesource/airspy/airspysettings.cpp | 1 - plugins/samplesource/airspy/airspysettings.h | 1 - plugins/samplesource/airspyhf/airspyhfgui.cpp | 59 --- plugins/samplesource/airspyhf/airspyhfgui.h | 2 - plugins/samplesource/airspyhf/airspyhfgui.ui | 14 - .../samplesource/airspyhf/airspyhfinput.cpp | 75 ---- plugins/samplesource/airspyhf/airspyhfinput.h | 26 -- .../samplesource/airspyhf/airspyhfplugin.cpp | 2 +- .../airspyhf/airspyhfsettings.cpp | 1 - .../samplesource/airspyhf/airspyhfsettings.h | 1 - plugins/samplesource/airspyhf/readme.md | 5 - .../samplesource/bladerf1input/CMakeLists.txt | 13 +- .../bladerf1input/bladerf1input.cpp | 75 ---- .../bladerf1input/bladerf1input.h | 30 +- .../bladerf1input/bladerf1inputgui.cpp | 58 --- .../bladerf1input/bladerf1inputgui.h | 2 - .../bladerf1input/bladerf1inputgui.ui | 15 - .../bladerf1input/bladerf1inputplugin.cpp | 2 +- plugins/samplesource/bladerf1input/readme.md | 5 - .../bladerf2input/bladerf2input.cpp | 75 ---- .../bladerf2input/bladerf2input.h | 26 -- .../bladerf2input/bladerf2inputgui.cpp | 58 --- .../bladerf2input/bladerf2inputgui.h | 2 - .../bladerf2input/bladerf2inputgui.ui | 15 - .../bladerf2input/bladerf2inputplugin.cpp | 2 +- .../bladerf2input/bladerf2inputsettings.cpp | 1 - .../bladerf2input/bladerf2inputsettings.h | 1 - plugins/samplesource/bladerf2input/readme.md | 5 - plugins/samplesource/fcdpro/fcdprogui.cpp | 58 --- plugins/samplesource/fcdpro/fcdprogui.h | 2 - plugins/samplesource/fcdpro/fcdprogui.ui | 14 - plugins/samplesource/fcdpro/fcdproinput.cpp | 77 +--- plugins/samplesource/fcdpro/fcdproinput.h | 26 -- .../samplesource/fcdpro/fcdprosettings.cpp | 1 - plugins/samplesource/fcdpro/fcdprosettings.h | 1 - plugins/samplesource/fcdpro/readme.md | 5 - .../samplesource/fcdproplus/fcdproplusgui.cpp | 58 --- .../samplesource/fcdproplus/fcdproplusgui.h | 2 - .../samplesource/fcdproplus/fcdproplusgui.ui | 14 - .../fcdproplus/fcdproplusinput.cpp | 77 +--- .../samplesource/fcdproplus/fcdproplusinput.h | 26 -- .../fcdproplus/fcdproplussettings.cpp | 1 - .../fcdproplus/fcdproplussettings.h | 1 - plugins/samplesource/fcdproplus/readme.md | 5 - .../samplesource/hackrfinput/hackrfinput.cpp | 76 ---- .../samplesource/hackrfinput/hackrfinput.h | 26 -- .../hackrfinput/hackrfinputgui.cpp | 58 --- .../samplesource/hackrfinput/hackrfinputgui.h | 2 - .../hackrfinput/hackrfinputgui.ui | 14 - .../hackrfinput/hackrfinputplugin.cpp | 2 +- .../hackrfinput/hackrfinputsettings.cpp | 1 - .../hackrfinput/hackrfinputsettings.h | 1 - plugins/samplesource/hackrfinput/readme.md | 5 - plugins/samplesource/kiwisdr/kiwisdrgui.cpp | 58 --- plugins/samplesource/kiwisdr/kiwisdrgui.h | 2 - plugins/samplesource/kiwisdr/kiwisdrgui.ui | 14 - plugins/samplesource/kiwisdr/kiwisdrinput.cpp | 76 ---- plugins/samplesource/kiwisdr/kiwisdrinput.h | 26 -- .../samplesource/kiwisdr/kiwisdrplugin.cpp | 2 +- .../samplesource/kiwisdr/kiwisdrsettings.cpp | 1 - .../samplesource/kiwisdr/kiwisdrsettings.h | 1 - plugins/samplesource/kiwisdr/readme.md | 5 - .../limesdrinput/limesdrinput.cpp | 75 ---- .../samplesource/limesdrinput/limesdrinput.h | 26 -- .../limesdrinput/limesdrinputgui.cpp | 58 --- .../limesdrinput/limesdrinputgui.h | 2 - .../limesdrinput/limesdrinputgui.ui | 15 - .../limesdrinput/limesdrinputplugin.cpp | 2 +- .../limesdrinput/limesdrinputsettings.cpp | 1 - .../limesdrinput/limesdrinputsettings.h | 1 - plugins/samplesource/limesdrinput/readme.md | 5 - .../samplesource/localinput/localinput.cpp | 84 +--- plugins/samplesource/localinput/localinput.h | 26 -- .../samplesource/localinput/localinputgui.cpp | 58 --- .../samplesource/localinput/localinputgui.h | 2 - .../samplesource/localinput/localinputgui.ui | 14 - .../localinput/localinputplugin.cpp | 2 +- .../localinput/localinputsettings.cpp | 1 - .../localinput/localinputsettings.h | 1 - plugins/samplesource/localinput/readme.md | 5 - plugins/samplesource/perseus/perseusgui.cpp | 59 --- plugins/samplesource/perseus/perseusgui.h | 2 - plugins/samplesource/perseus/perseusgui.ui | 14 - plugins/samplesource/perseus/perseusinput.cpp | 76 ---- plugins/samplesource/perseus/perseusinput.h | 26 -- .../samplesource/perseus/perseusplugin.cpp | 2 +- .../samplesource/perseus/perseussettings.cpp | 1 - .../samplesource/perseus/perseussettings.h | 1 - plugins/samplesource/perseus/readme.md | 5 - .../plutosdrinput/plutosdrinput.cpp | 78 ---- .../plutosdrinput/plutosdrinput.h | 26 -- .../plutosdrinput/plutosdrinputgui.cpp | 58 --- .../plutosdrinput/plutosdrinputgui.h | 2 - .../plutosdrinput/plutosdrinputgui.ui | 15 - .../plutosdrinput/plutosdrinputplugin.cpp | 2 +- .../plutosdrinput/plutosdrinputsettings.cpp | 1 - .../plutosdrinput/plutosdrinputsettings.h | 1 - plugins/samplesource/plutosdrinput/readme.md | 5 - plugins/samplesource/remoteinput/readme.md | 5 - .../samplesource/remoteinput/remoteinput.cpp | 86 +--- .../samplesource/remoteinput/remoteinput.h | 26 -- .../remoteinput/remoteinputgui.cpp | 58 --- .../samplesource/remoteinput/remoteinputgui.h | 2 - .../remoteinput/remoteinputgui.ui | 14 - .../remoteinput/remoteinputplugin.cpp | 2 +- .../remoteinput/remoteinputsettings.cpp | 1 - .../remoteinput/remoteinputsettings.h | 1 - plugins/samplesource/rtlsdr/readme.md | 5 - plugins/samplesource/rtlsdr/rtlsdrgui.cpp | 60 --- plugins/samplesource/rtlsdr/rtlsdrgui.h | 3 +- plugins/samplesource/rtlsdr/rtlsdrgui.ui | 14 - plugins/samplesource/rtlsdr/rtlsdrinput.cpp | 73 ---- plugins/samplesource/rtlsdr/rtlsdrinput.h | 28 +- plugins/samplesource/rtlsdr/rtlsdrplugin.cpp | 2 +- .../samplesource/rtlsdr/rtlsdrsettings.cpp | 1 - plugins/samplesource/rtlsdr/rtlsdrsettings.h | 1 - plugins/samplesource/sdrplay/sdrplaygui.cpp | 58 --- plugins/samplesource/sdrplay/sdrplaygui.h | 2 - plugins/samplesource/sdrplay/sdrplaygui.ui | 15 - plugins/samplesource/sdrplay/sdrplayinput.cpp | 74 ---- plugins/samplesource/sdrplay/sdrplayinput.h | 26 -- .../samplesource/sdrplay/sdrplaysettings.cpp | 1 - .../samplesource/sdrplay/sdrplaysettings.h | 1 - plugins/samplesource/soapysdrinput/readme.md | 5 - .../soapysdrinput/soapysdrinput.cpp | 75 ---- .../soapysdrinput/soapysdrinput.h | 26 -- .../soapysdrinput/soapysdrinputgui.cpp | 58 --- .../soapysdrinput/soapysdrinputgui.h | 2 - .../soapysdrinput/soapysdrinputgui.ui | 14 - .../soapysdrinput/soapysdrinputplugin.cpp | 2 +- .../soapysdrinput/soapysdrinputsettings.cpp | 1 - .../soapysdrinput/soapysdrinputsettings.h | 1 - plugins/samplesource/testsource/readme.md | 5 - .../samplesource/testsource/testsourcegui.cpp | 58 --- .../samplesource/testsource/testsourcegui.h | 2 - .../samplesource/testsource/testsourcegui.ui | 14 - .../testsource/testsourceinput.cpp | 75 ---- .../samplesource/testsource/testsourceinput.h | 26 -- .../testsource/testsourceplugin.cpp | 2 +- .../testsource/testsourcesettings.cpp | 1 - .../testsource/testsourcesettings.h | 1 - plugins/samplesource/xtrxinput/readme.md | 5 - plugins/samplesource/xtrxinput/xtrxinput.cpp | 66 --- plugins/samplesource/xtrxinput/xtrxinput.h | 27 -- .../samplesource/xtrxinput/xtrxinputgui.cpp | 57 --- plugins/samplesource/xtrxinput/xtrxinputgui.h | 2 - .../samplesource/xtrxinput/xtrxinputgui.ui | 15 - .../xtrxinput/xtrxinputplugin.cpp | 2 +- .../xtrxinput/xtrxinputsettings.cpp | 3 - .../xtrxinput/xtrxinputsettings.h | 1 - sdrbase/resources/webapi/doc/html2/index.html | 390 +++++++++--------- .../webapi/doc/swagger/include/Airspy.yaml | 12 - .../webapi/doc/swagger/include/AirspyHF.yaml | 12 - .../webapi/doc/swagger/include/BladeRF1.yaml | 12 - .../webapi/doc/swagger/include/BladeRF2.yaml | 12 - .../doc/swagger/include/DeviceActions.yaml | 5 + .../webapi/doc/swagger/include/FCDPro.yaml | 12 - .../doc/swagger/include/FCDProPlus.yaml | 12 - .../webapi/doc/swagger/include/HackRF.yaml | 12 - .../webapi/doc/swagger/include/KiwiSDR.yaml | 12 - .../webapi/doc/swagger/include/LimeSdr.yaml | 12 - .../doc/swagger/include/LocalInput.yaml | 12 - .../webapi/doc/swagger/include/Perseus.yaml | 12 - .../webapi/doc/swagger/include/PlutoSdr.yaml | 12 - .../doc/swagger/include/RemoteInput.yaml | 12 - .../webapi/doc/swagger/include/RtlSdr.yaml | 12 - .../webapi/doc/swagger/include/SDRPlay.yaml | 12 - .../webapi/doc/swagger/include/SoapySDR.yaml | 12 - .../doc/swagger/include/TestSource.yaml | 12 - .../webapi/doc/swagger/include/Xtrx.yaml | 12 - sdrbase/webapi/webapirequestmapper.cpp | 123 +----- .../sdrangel/api/swagger/include/Airspy.yaml | 12 - .../api/swagger/include/AirspyHF.yaml | 12 - .../api/swagger/include/BladeRF1.yaml | 12 - .../api/swagger/include/BladeRF2.yaml | 12 - .../api/swagger/include/DeviceActions.yaml | 36 -- .../sdrangel/api/swagger/include/FCDPro.yaml | 12 - .../api/swagger/include/FCDProPlus.yaml | 12 - .../sdrangel/api/swagger/include/HackRF.yaml | 12 - .../sdrangel/api/swagger/include/KiwiSDR.yaml | 12 - .../sdrangel/api/swagger/include/LimeSdr.yaml | 12 - .../api/swagger/include/LocalInput.yaml | 12 - .../sdrangel/api/swagger/include/Perseus.yaml | 12 - .../api/swagger/include/PlutoSdr.yaml | 12 - .../api/swagger/include/RemoteInput.yaml | 12 - .../sdrangel/api/swagger/include/RtlSdr.yaml | 12 - .../sdrangel/api/swagger/include/SDRPlay.yaml | 12 - .../api/swagger/include/SoapySDR.yaml | 12 - .../api/swagger/include/TestSource.yaml | 12 - .../sdrangel/api/swagger/include/Xtrx.yaml | 12 - 241 files changed, 250 insertions(+), 4140 deletions(-) delete mode 100644 plugins/samplesink/localoutput/localoutput.pro diff --git a/doc/img/AirspyHFInput_plugin.png b/doc/img/AirspyHFInput_plugin.png index c1029a7df5c927aa6a06c7f2783b0f7c75a580a5..a1a0dd4e90ac15ed1ef520ab6b8487aa519a24d8 100644 GIT binary patch literal 22473 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 PyNEw8>Fbng*@XWOB`!wJ literal 23240 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 G5Bv|bd6XRh delta 4319 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 diff --git a/doc/img/BladeRF1Input_plugin.png b/doc/img/BladeRF1Input_plugin.png index 0d7d35f9dc654bdf8dcb19a8fac4165c50d4f6fc..2ca462b37d6d45fd505d526611c4d533459929db 100644 GIT binary patch literal 25488 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

#uVwLvs^ZRHI({A7H8XOfH+lW3Q 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 L|7>q`8WaBo@-+@N diff --git a/doc/img/BladeRF2Input_plugin.png b/doc/img/BladeRF2Input_plugin.png index c69784a7dd842e3972426ca22edd2ecd83f138f7..6dc9918983538989add6f236f08a4cf02445e28b 100644 GIT binary patch literal 25188 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 PoM0$CRDDn+WBTGhE~BnV diff --git a/doc/img/BladeRF2Input_plugin.xcf b/doc/img/BladeRF2Input_plugin.xcf index cfd300b099d1bbf05e293d796428947b6ab1cfd2..230ae13fe48312270f3dd856f8b87b9607a8af88 100644 GIT binary patch delta 4241 zcmbW)dvr}_8prY9PRNaMZ~71E$Al}-dzhg2GhYBMJ;9oLx1 zK_VJbQkO)CvrWxd&CoE+Xk*kwsTpff%F@w`Dl?g4zS~La?6s!<%)8cSop(L&zC7=< z-*@k1_oaZ#R|4{$He&WZ)8BA?Cj~w(JrXRn94kFuD|I*_b!#TY8dCo#>6sZ);tDCL zP8wSzO?X?Hd{KI3p_DmPdc9Cu_*?1iQfbxSq%|DBp}SN(LE8DPRQ3;P&wUx?pUY}S zWx#`9slDWG@<>zD@H=2Qjyw#iCH+Q{|5Wko4-|`hEjxo zWsim5GjE3n2e^W~;fASNrHJgzW30pn_>+A+lE)i)8MmZX9NVfnIwB5(F$PmG2TQOP zrPzlfsKsU6l3F*S6s?=n>4-QC#u!Y&9O-9HR7;PwA(3!Ip$8I>j5K5-2YD#*DMb(S zwboq%9b4sXk^I!Jim3heSky7|VASvZU93i{`Ie&NyV4Uk@NZUhWBa&+2j$>FIe1Wx zY~-RC6{tcD&f^B|O3|Tcix|Ws38~0HHl>KprBjRwRG~)d%u?;rngrS+2JuKjDl(9b zToj`MRj9#vpHeh8Peca?Ixcwgmrp5TZrNkq8<{`E>}llMXP>IIDq?G;em}6GSuy>a z+sAw6NIiJ~JxfrDLpX^G_(qBo!V!fYNI){ukck}Rp#+tbBJL2KlTxo)QlBvJhUvo_ zq0iG8iI?!I)Rz+Un~Aru3h!VSKETKLJO1f$jy24hxYj|AujOq%C5ZR8$KoF~o5Y9s zySSs(d{;vPcTap7S@@NGJmI>OP$vxt0qb=@SMY5hZ*J* z17|mO-(EG%41G4qaJ=Z9fI9HY@zygQM!6rf`q(g+=^EC(v1_+C>RXGECwQ07#UiY> zkB?d)jaq>sl;Hr5;~cJ|PD&0z8+1iK495gGu|Rr$rn^qnY>U zKDa84S&waaA4l;izQApg3P4LlqZfwa1-$HW1{>z$E673cf>e0)Pq*PM8@Ts zx#P32yY6m1cMcqAbe?2^gZ$VD+KJkAz| z**bN7kb~X!p!w{GspR4tn_6quPW`37E6yABEy46Le8Kt3WOfHn(P|CjJV-gi5rrN| zKr+&hi5%pi1eG|1lemCyB>o7{jBrGu2PK%1Kqnb#(yRz@<5{s7h!muQtvPEE^05UT zRO1vb;UZbBP(v)Muh}=NStHkT-f+Y0tnD(F6c?@mHC?#V zK0c32&g+EUNW?fy!#pfS0k&g5j^PZh;*K;w5RvGF-biHjZ#twmd63yPQVyT09B!P$ z=P73|KEx-uh;K>8Kr^(%FE9YlV-jA&LXR`fFrS;>r-@^UeY#>^iwo_s#XHO$i+B6E z#@VN69s28e{K>W-hrx2RT0@DJ@)lXz6N4}slQA2M;l@^&IE=sIb9^T)^T(s;AT6h? z%P&eRr%{5H+-&7i6kt2J@ycU3gR8hh5`l1N#B23^5EaSz7? zIHk4xF}L=Nv@RI^!9!lhE?<8E?1O?Bu=)z7Q-T80FW`g%YF5C73%PJ17cS(&g5efV>`3m#xMO`q4p_S zhi)Rpoi+FjSM1}Ph;811TB(Ggl5XJ5S+YcWcQhtTrRm@!Qc8xUyuaUz0A<|~k0hib z1KE^dM=qUWRG~Gf;}kC8ri|Twh(LS9 zVjxnGjw~!fzD60lx6tvR8mDjxH@UGNBG4YO7>E?4BMXa=k1g<^8mIQp*=2P0cU3O) znUTT&lsja2D3j-7oVCwr?-&_-$73$mqX?V8h4*el8Fu3y=Z-)!ILE^|o{31q6ug3& z$dt?Q%%L+MZy^Uuunen^hqWlgJ19XZtR#1#68rEwSnEQraD-(j;(oWE;0jAn!2Le; znl*HO{B?ggw54^GpF02liMyKk-t)&>`Q%}bwR@PLeZU)cHF?9z(mid!WA4cVqTE|& KMY%gX0db)K delta 4025 zcmb8yc~q3w8OQP8D~o^|v{4{hOA>}aBt#J{ipC|l5Ur@y;6jMhxPju5su&YTVnrw( z8boCX2DL@YCW~*XU_3T1HEOIyn^=sgjTS9xv^F)?B_aKeGZ*{;yKOLa8`fdN)O?_)4nnDx>nA?8T_1 zzlY^X{&thhZ;V5Rt&T=L+5%~9p7^S^K2 z_xJU-61TlLyKSIzOLopsRun4R1HnyP-AD{`J zV?N%%dTb#Nr+h41>DXQZ z!N1yL3Nh^!lt*jq~YFfVP!0=jD?l4tUxY`QGrGr z$2nZZJt@o=!HB>BBw#A$VFlrb<#JJs3N+%l6wcm^=*k3w5rF|nz*Nk`3gn^~6==k9 zoFn{P!#oq_+urh-W8%(u?Kyb%mU~^4c1P8ETI<|HwBH%sBn`aFQ_FRnzk7RMlHHeN z_uYbO?8iwkV&5i`g#~WCWEvP01G5fhVDfLg6V*S7|68j7Wf@2|e z8q%Zzgg$UCGLZutI4TA<;24_GN(v?$=INMVAIo+3aP5H&`qsT}a2K=7U_TElL)we$ zHWb+1QMo*n^`uiz~Pz4fjSjaxgqh zdSR&)e*~OZ@h!M5jbP3r9z!VpC5=1;j;xWF@Ff##hwtG@L}NH6l7j@pd~Wz_UWJ`2 z7ny#e#~PMb91-X#J{i%TjD*+R>k`(OD-)u;th*i6uE`j8h9jFKOwPsz_x8k9Qer+z zQ3IaX#8bF{n`o29cScV{;dzWh3No-tny^cn_!+(+856&je$o*=5Q#xxF(AyV6z00+~|06c*{7={T*#bRWk0NYW&JGsi&@}6VLt|!7Qrtz>m zihfqJ*);1F4{NNW);0QhQ+P?UOBY3h6|@&;dm5W5ja{0?E=`L;JSO2){0u+GMwH<_ z9KpwE!EGts6OSPjF+`sp&&4FXDlKHUE@a?^{V@_RVK$Z_8=J8cdvFwIaRqmns5iQ? z17;a!YI?1=5nLFsCeZ=i(F<`HgXu`eO5~vgRph|SFhg^)ye&13 ziM!??|B!oK{u%Q`exiq!v(#RkG1_ymfpfLEGdN<3!`$09+@zgHvXJ(|o`?cZNZ~l7 zAVb>7YkK2(X;UW*0n5CJM|*P%cmj(0fc;mrfE*Mt|04dOh@=(Kv5k&xbZnzz8y(x| z*ha@TI<~DsK1xx812}~XxQVtxz7v=W3v=3sl^BkRyXK&TJ@l}!820xw0INFS_AN#;sMS|_cWl@Z(lQL@V@_Wb=?%&jm>P#8cIk2G|4LF8owBoLe zT|NjxIASpxQ!p2q$bk*zN;GygaB&RHXvJLy_dyWC5sT57g1N{<4s0k#1CF5?t$R~; z8Q~t*+ESN@NNMc>8TEeX2KPtNs7sSkmw_c%hS#wQZy_7MKt48LGu}ZdeubT=L=ARh z5BAAw)G=V)AsodCoWdEL#izJ{OSpn-xQQ=u2lvs&MB9Ov4cp9L-+m|0)&JEt-|goA Sal`-J?!yGWL(zp=Bm6%YQ&Ca? diff --git a/doc/img/FCDProPlus_plugin.png b/doc/img/FCDProPlus_plugin.png index 14cfd6ad67c0b5b5b34cb9cf7141fd05d62d71c4..945f74a7edb54fa0e41d56ffb1856de667c85aaf 100644 GIT binary patch literal 21835 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 PBcgs+zR~OdKQjIYw-}=U diff --git a/doc/img/FCDPro_plugin.png b/doc/img/FCDPro_plugin.png index 6a36b415c958ce0f1809a3576abedc50398a292b..b2c1317cc3dd24892d16dfe3c41a3b0b1a61909a 100644 GIT binary patch literal 36155 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

y`v2%~?0rRU(vkKO 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 WuI7;APR8OTrcE)N96xE+vhG&y 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 MG-JI>Q>?cCAA)oGM*si- diff --git a/doc/img/FCDPro_plugin.xcf b/doc/img/FCDPro_plugin.xcf index 02e1fe690ec60d8f4d5aab6085c1ca6a0fc28e67..202025e62c109e1b19eaf8b0d01783acee13cd92 100644 GIT binary patch delta 3832 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 diff --git a/doc/img/HackRFInput_plugin.png b/doc/img/HackRFInput_plugin.png index 1f1c4605e9c72fe3c802bb7112e44dae6c76b83b..1d2297f0f18ddce9ec8c31733f9685bbf9edf3c0 100644 GIT binary patch literal 27053 zcmeFZg;!K<*f$Cypdc+Np|qs5v>+kfLx*&Cr-HPAfOJWBcMTxj-Q6JF4c|S_`+n=3 z^FJJ2!z^ald-lHf6~DOl1k1~cqoEL?z`?)GNZ^%UN(RT^2}xf{ zTms@#4jc*A$#&CjM}6Z{Z|F zgp^(9_EX%{R3>k`1x*Z7MdgKFCvzx`4phn0D}@R(+EhLa3^Y0QOIC818u=-09%yJw zDOD1)ZKuC>khM$2#e6OQ+K{JpRk}qmoLI>CW6!yFs)?ZO(9)i^MT^PNh4#^$MQJu1 z!wcWHFN8@%-ZNo77s3?j06(4!iAeuHzhJSzUctn|fxYwp{^kGwTiQ2HUfhwS{O-qp zrlC9vQ`OV%Jux&dgu^OqmZ9!;r2lTuGtbfTDK-t$7KD7?P7thLO{WD^H9#LemL45Y ztLA}~e>t$@_D3g0t{IyJ!-s$*l~y(X?F+Qjym4!h6uZK!ZS_)-fy$RnGY3&x&AxBh zU7>zR@AO%D6u>q4^`+?2f2?F*aGkED3~Ur|XjSpTDv635LN?>m6?3G@6;r5z`6J-7 zYetZo*P8GMVns^jXnJLm48E4_Xgww-nY_up?Mf?reLZ42QE*VuTLA$b;&T}pQcQcZc{{|10 zm?y0(;fJ*SsdOE8{_f0zpYvc5Mu41F&&p9{e&-yzEgN={d3ttj#tdJ9q}k|uN-shOWELp^SLc~9P1Y@tIerCdvLTXWUkq3FzsPz zRe0R&H9SeRFG{qJ=nTRI@j3gS^)_g1lX=YI|H}_jzf?`L61^I`dc%$+tWhmmtQh?} z!LZh|Ii>lf8SdYN2{xyHfslOVJmrE61r1B2umzG6=gE=kY#MD%cYSyi$;Wyr9`ueZ z{G=uG`DX-D1DXGfm}eiumGXZ$owqHIM}mXq6lzSMCv6%&#?EP_@|%83Iwat#O!nzicts=D5KB>wbVuSrhpy|)Y)5Dn;Odds^3{>nN;WWk zIFM08^!rt#ypRXOB-PqvI5dNCy+>JNA&(7*Pl{gY$}v(M=3|1FRm>AgSfM|CBcQcu z%@Ja8avgAuj_;Nv8#%Co;nlwFY-nXfJ4i`uHdr|%xG5L!8_ml}v;B&X)sa;GQ&9F` zfM3b&%+ja`E%|b@=l2v!F|YUaolal)AiQJWU|xAJ^4kplUG*|_ z1WvR_8rVSoEPtIrC*UuL3BVSkaQQ`=JlQmzy%>L`Cx*h@iIm zis%a$Q@5a2H(08g{I@sfJM7@#pqJ$Ouw9$o`3A+mC8xgZg#PzDu`mc(bPMt-XZEFF zcg3nyW0<;XeZBcH=le)a0&lxJvb~3toaX{@nHmG7cE8bb!t2=mply4NMR!%%eEAP& z{??ADC(l+M{KbR#6193mFm9K&y1$h?R#|O@#}(pLb_zEPweJ3SRYMFNNDE{(DEWJ# zsQU2quieV6%H<}O^7iy$k?!dpab19w$6Ky_MOeHu0piTMnBx>P$l_iY^ASC%@tv^1>wO+4hzQUU)FSa6|dN-1?eS|?xGyEeO z;-qa)N27oA>PQc#Z25|^%vhKFWj?p5GD_lI!?B2(!=d?f&=4aZAzL0U8zi;l*F(dh z4;M{g(1AeAU*5Bb-}4ZwlL-C;RE~)~#pr}({=SAfBRfqek*|pU4E$Wp1I5r6YHe?> zw+_<$in)$^LkXpmeSRq6v#}&HZV)o=^Lm6$`+O7;tARH`#-%vIU>cP*bDJ@sFZIF~ z=Qt8v!b1FDaWU)rUCIBT_S|Lj5FH9Puxy{2P&j1E`99RLIr!X?LVSJ9&8Ce-R%Zb2 zkM4FCE|ZV;RZC-KHA!-$RUY2mY!%Q(b$|NS%#pW>tD3o6UcQEy`l-B%LMHiRwqRZ zNotlnsJ7%wboxUYD*pS^$WPni`h>G$jq|0}Pc!q-x8%mE?4~1|yT{I#HHF$XCN`jn zXxZkUkx$k8Bg2VB`y;TJQ9(Z34QV5^3T0+kee)>BEr-{Bs6TQR3{RCa5i;~l@1ttr zEhoRkQMA8yxxD4v&eKHNAiC7*_h9je4%H3qO7_3Ly z_E8nLz>P{W(eFta+;K@_W_-}H9m)GL%xTNOl)`Zr6%+!6?3E1PIzEI3sZe}PpE`i7 zryhp4BjT7S4*&UV!qv!Bw-U7}-0J_0hcFnoW8Iyehl6dn#>TW1?$FXAOvh&lZ+JF~ zp~7Bf2hEt6U6N0$N_2nXycIo0vF)y%cV++2nxANQeN?2XV~npNgo@VY#%qz}+R1ZR zc$q3^t8Awfm0`*Idl5)PB&G?cCtfp^Je8^8OtKeULP~W8-Q6-$YBaikd2T9pSB!Fs z`TX+ZyF_Jfx|c5dLz9x;2;Ltf&_jw=rgeQ7&#wRcc?*5G)SNddhJ@zk(p)V#VDO}b z2gp{3#AkR6rfTVVz7_5z-`dwBsgE;Z$FCbj&93lDGpSnYU<&`IL8DJ`WFgcD#|3#v z=_pak_YY@2xTn{6T)R|1O{lQGIXY2w6cZyq zfs>Eavp3uyue`v%|9*~wx$^0t-7;4x0u zTS7}K`Nd3eNXL&kAvsOHXo?k}UJ7?=7Yut4(nFqb6_2eE$X@1T0^B9*# zFjYNmJxS4Ny7l{TC=Dx(KZ#{RR`yoETw%%`?yYrG@F&^(;0rEky8dk69`CnmDY+A* z?{3ZQmsM|EimC{b8mc)MeUmD}%z~blhJeBO^oaPo?rFL^?z|PIU*Il8$&AW!>V(zom{4lFEbB%*b;B9)^K*va*{GArP6=p7mypXs()#SMfh|dW0^6O zUGbJRd|2Eu$H2iwz&!&&ZumN>C`reasn;7+7N+T*t`0De0( zJ?KpIlBoU*OG7*?EG*M%4d~P39r+#fdJXmRa8Yxo5fK&d_3c8bt{@URaSz)tpI@(G zlq6$|-CHJ8HFAh;V{8oaCkl)}{i|&o(jg*t^S$h-#01rS7OKs!rNtlba005@x@G!( zrcyWWjkJSzPZ5hVF8eEY?ZZ5qw~Azx+j%(XYC(N|I<@Xzw-Lz=llnNFcpTAu5ZC$m zaObv_U_!ucPnp8wL|4Vk#uoki_iy2(S<9LO40QCZ6qlv1_tz&`*}bjU!5u_zjVtR% zWZ*%*M+>FP9G}^?N@R-Ua^WS_WT#agJdNXzhtBjqX=#yO(%lVSE~aoSOhU2XY(%Oy z!-8tE=dO2x!>5?qUh%gJEUK5B2G*SBIN_+Wn^U3Iq%x0Q-bks}JU#Fc_Z_4)>_4HX zu+qgGJT34k6`#NkR@BpzkA;P0AelS*y;9EcMzma1OpJ;#kE*I_j!aV5Kmr@L)4$)! z#@N9Ul(8)&Kg-cQAauA3qg{<1u{(<-Mf#Bm1{>1C#>K(U9qYRkYxkcaFxsP0JJyS7 zy2!ijFHa5y#v#?}PkhrOsyCBjNGc7Sij{M(Nnf}G;2JrQ^XsWn%Jtflb)X{o;*bz2 z=TnDPU%~$*PKEuZq-^rXHjkrb)sl5&G$Ii_y|)J4;YNdr95uz_5u}Rc5|mTNB1Lbv zvB6QY_&LKL@{N}w&PUKhn=mXCSZ=L%tQ^X~tC7WgNgY)#I*2-@?eXdQ0iexZXdALY z$w}!^MxXX&(n0RtDZ%wu!~ET6p2;^xf3@K}E3RFGD`(=AA6vqy=8a9s*y?bf9yis> zcggm~7cQUD<1IG5sg>d$F#f2}*XJr3!2R`L-@IymDLTeuUOdjRiFyyMd|%!5UzY&s z!*uSp))8Fuba!>6Ynd2G>fUqtG?p!ujUD|(nzjUy+v0+d0q=#`THpD0<5+$@vPShY zP;;&v&o}$=h3!UYB?kKpmdIF)YJ{cC2hAr@c-UJ;$#u)9YJ?R&sbBU>TcrQJ#1P4? zxTOo968$cH_!h;Q&RnPWf5$xx@q=YjpvyDdT>(ga|#M4)~)`_ zqvjg!$hP3#7mVwxAUUDTGE{B2hvA=De36cSlp4jcJ`a1ke2>@bd>0c+$pT&m{Q1rY zb1ZgiB8gl!vhMCY4qF3X59X@jTwPs{+mOjd>K#m8At5Aj*=!Y-LjPKFo;}_jMaRZ= z6{%P5Lxw8EVnu0;J{X;hO3pLUN8BUQt(Wf1xL+&!Lxf89cj~S;7!EzXnzi?B_@g?e zC?qDgUg9F(PV4sMDsUS-UWrQUZH1X6?V5O@oEXwp3Yf{#+$xGT|a)Gt?4YjDiJ@E>09 z4*vOb<2y3xr@~45Wv{D~<)=q{zqU{2=5(ld40^{aZKC^i_4Vb3z1XBa_jZjzYBEi) z<~cf0V-$s8?EH#q;WWUXPMzc%XXJ_-v9hd8Q094kiV2!fq#tVmv!+gdo5fBsE{jrlZ<3^)k=*+F`j6b)s~a04*4EaMUg6>4T*4cQ)TqUST$*-n18R23g!JLl!47#5mz_`K zAIbHF{dVIY-1sor558yB~;+@QNaIrU$nD)X|l)7HDoPH*ip z5c8At=%jo>qox}t-DD=cQB;n*WBvkOx5o#y%TaN0-Joz^Zwo&429kLP#l_*v@n0yX z!;{CPFer;i?}vI}l?VLzDO>bxvBAmU>Tq#?srgMYq+d?(q2q9|k?^A}Xh#WLORj$K z2uNi{{dh}m+a%O7i6Wp;z>Vj~e9l*{uwLZZ8cONk8ceb}`h}a75$zv4wfQcyzXLiG zHyRAe1SdN2$4{j?&5{c~m;1Bi+95ZF#>S^pnl`wNrC>b@$@M2E^%>M8l*Rv-_yTq+ zANIv112FEf6k2lX33X{|9O~$bx&O;%5n%*YelSwaY0(lg^Rs`+)ldB5o z5x(0#%67Dq^NF1HsgDqVZ{rR5^w2}}k9jd0L<3smn|7Qmg(AxnVo%CbfM-xolm(eh zNH)}-=6qfW>%@^UR!ZQ?cWS9fq#s>7uuz^F#zQq48n9-^^Jur z+{<`^|BZt9HHBy%uVtWnR>;574`;9`B}mHIxIc0&t}vhRF+b4@Xrg(L`?>RuQsVAS z_&`M)PwT~{O3zE1TZ^mHI6c9=oYUBV&@}vX?@M~0HqT}Rz7zDk2A_Y4PiMWfdoJ=G zW7V3K8b@h;bD#$8%U*G+W2Vx!eE3u+SSEh|_QhoHL3P#=4pt@GS-}ZO$hPDm5s>mk zP3IZv%m3453wrXcZ0W|lFXt}&oxh&$z4Uz>6tswf75XEFY<5_uL%cIYO#|Drc23t@ zMF^9KPa$^^)HH1O&v@-e4+DcI764r@eX$+IA|7;24m;u;{pqDq7z&(n^v%Y z3x4}nsgN#OUEUnl(wUwK7-w-f9#h{ymF-zDKWnbLLRR;^}js$A;^?>lDA z5+0xlr{jgFU2CMk2`LoK zR!ko??f5F}FR>pSG{Z=Bb$h2Rk-PB^=U?+TGj^i6YKy?iN{8TXBNG!G92`HLQt`sc zkoD)QJk>TvCjQu@$uD|G%kH-666Pw5P+gY2T!Qb8ny+-c?@z>?_h;Hb2~?{x#flKP z&C|mD%lOU*+PSi#H(}1v+uKWJ4Jt7x!H~TMTj7H&?M7!2A%G8@wXn`E53y zb8_5{5gN3J%^rR{Ryxwa<>}3=^-;@8y}qvQgY&+cz|95@r{#=1t$m~O0nxJ06MrZ^ z^VV8tsQ;LMU?2`DsjQY3@%QiFUESQu9d{LB4G9#Sn}@6A1a1dvmqjQ1Fd~k%G>sK_Lzi(y`!1p@M=&`?qU8bVo*lcL0#uqpL?OBi5BL&QVIQK+oVys zw@}Z9j*f1*)KuRC^+U$6-yNfJzuZ?B=>Vk-wo&5|l!A^f1XR&Vu)@xV3&FjHfOxI# z?+^4dxBT?;Luk1_MMXeHHw0%z@Cs?J#;QNb1{z#h$>wu^f;>Ar+jP?PrmnHE((TOH z`|-vkDk>`E@e3ZmPgwQ0XfCxZ`h2J@$M~00LUm3%x`-fnS9kXeNdL3f7hwYf1LVV^ znpLJkmX?<3M?-0Xa^2x1p;(@%lR6#GJ&iX_Y1oDS{vlI6cm0{RqUQ#UZJ?H8}uD|hQ zfr|g7)9x6ekB<+GqFQR$*c_27Xp4!7r9a%@$Afj<-Q88ODO+z{951zdzaFx%dlBS2 z+(CyOoSl``!&dH2s|O-V6dDm0X0*{0=?}G-EWq6!!aXPt2@WoICeaa3m&YU~9>5U1 zhx<2jyVn@t+6Isao5d7ER|HvvV!q*gjg_I1(P*J6^ODzOhHk4j0= z{)*+`;1F%1kM;wcqdq&4+xaA7?pCQS5G(lYpmP*67OiIY7>Q_VEHayedLj<<*LzdN6g)hM07X*Er4AsId47wCz}Oy2SqIzXT^-?0 z?QLlR@Fum`;`M4bZZ4;=*`r_K5 zK`(vf8G+<+?#>SugWy#FcEq?Tdma#)>?JYHMLOm#s!O^o7lnZ$u+&qNq$xvI$lrXfB$(OX`-nxn0dEX9CYB~w0V~!V?lWYI@^3fb1e~&1|_qF zGe;-X>QDQRbY>MmA&<)z^(m;PTr zOgEM+tb~RfsSGWsDzh2-NsX}?GGNTs*475DG3eMAUZ<(4sa2Mtp^FIyoiY;SAAd8(U2i6JJB9NHzfp5rs9rQ+vmlxo%Q3RUKZRpH^`wd(B=n{{kz z`C7D|uNwyi;jS_1Ey^rcL!tcW=e|7L{2@W{L2BwBtGQNYrh2N4WZB&t+$lmp!ufhX z+EptY;m zJCFWY#=5$?nTA!c-1y8ohHbuxfP8mtq_8Kr3wtz(Z4v*H!1H;$p`lkTsj9vt_1I@QYS@@hm#-&%A&#o^`8=!Gsnzyi%CV72qbewY&E(lgmIO|YT-p#Sb5pCTu2*Lay(+;6 zy>E*;&9rK(a*6COn{|eNzgIF}II@A>P=mf*t33}p768v+bauTv0^#^Z;kXFT0c6IRzuT1>9!v&Oy>n1 zAU@iSyU=`hDG80|r+%-Pul$OXFP^#OKI&_GK#XQbQ*$%er(?EA5g*ntV75J}{2sQp zwtr-jIDZmxgzz5L`Kju-`GZ7fCqiR08KUIoP5>7*?)uvG{^5ZTXtBCp7r4w#$HKwd zh$_JyD5PhHjYne@MpDqnTMOA#zTm<_`iHx#?PxiHRq*%<01!4eV@fG{TkfC;y!}`x?^s!} z%St9lv9Q|mm2yqTbI?FOcwWw${P6c5ZE|w}TeyO@%I$JU3|iR_0G+|!fHn#ugF(BY zYQZT&IK6DqMlw4}oYd_HP;da~)>BQZrag`o?#8@!dGYEH?Lp_qLQ~=$qs1hHhWQ^{ zE-}_eYvd%ayUWdqe5E4o##kophLz1tqxmbKF|YyfKEDm{Y7$U?{*0Qc)!DuSA6BGR z?h7Eq`u27=xZ>&{fI;8g1~ypd>}|uwjphS~mF$0G9xzQPR+y z0T^-$(D4V*qV3aiZ4tUT#fazLNN7VG{5~dfSak7UEhz1?UIN{HtrK6@@O)uwRsfn_1rl3nlD51#$JL?>8KXv3Ueyb65s@1ZD&z_0I(D_dJPJiGxqbFf8S(?+dxjtS6 zC_W67&r0)2I(-9!(6FosGQlALX)H_i_ZRA;K~y08ii+|D>Jx^*_1mSTrTw|;P!P;h zgjYTwVPKnE&DWFzjwbe#pzV!KQyWmcEW7z0&c{VWMRDhJ+%{t}aB~$UL`0sqJXu?r z1G1X}Db`p$@-cXy_v6R&qyv!HYinyDbdcWySrXt%d>&3Zx;|&XXcz#!qQCG27Z4od z_NX{n=jdqpTt?X|lKXY5>%Bi0PxRAzvuT(DLk&->MBdB!kRg+O3`fK&l`0%e%un+2 zn2jz+NP3%nF@Q{F{cUeqTv&L4hGw+-*ZxD5cnpfJ(dpoUV)7IO*dxsiXUZV9}b~+*06_c z3Qy<#&Dp3q>ar1#jPZ3`zXRv$gU_R(79mr|7?4hhMm1? z==upDRcZ!?pI~QGMe3gw6|n(;XK)+o>wqe z+WEQT{MBU!PzSPda_08$Zf+)LY@(8rwe%4;4-U{;H~Zs66Z+;g968pVb2$o_ti46A z1jH8Z3?myfq^4x8s$)U(PVz^^X9Yz_quN|lQZmG9IZq*TXCxgVQ#^v2h9(fKA&bkQ z*8JoBjz}@&Y{nph#p$2&Ve{1z&$KD5Il}U|+5Mt|!=7HFRyu*zf7u&2Y1%+ESoSi1&uVvGCdH>Ds@^LaHs@ z(JuoaP=HojW--kKN+B?Wa($j2Kl1S4@yMpjAK&hkj%P_kONxHlWSnmEL*4}dru=3B zSYXM5KG2CT3ba2n@MP#g4JHuq1oAXDB_-wSx$V8Zey~D4y}fO{y}_&Pftm8Opf|qd z<4cBBy=sjxpcR7>?R1%aIWeKUHIUG*Y16DiNyLZ>P?7t^zfOQbP`t=+a6UsIkYIlH z?9n_03iqo+v`@ehc=760l@oL9WcD>EynmGG6!MiPvHiX7v74^=9IerqWJh{%0xkk4 zr;+VS9;L|3Gq~!xXa?S!s5cW5xM!tT2#pWf-co;d+#D68kSE!=z|HozgQ zfSmgq`@ni1AevuqPB*i%vOYL$NzYZ8wMS7&xvmA%z)EN#q!>nxV`4gia;I(LvnLvg z$70xn2`h9@k5?`BxuHQpdVnfs<>ung)&lJ&0G*@{ga^HHERfVj8eMEaF$;tg8uk5t zzj?U((QyY;K|$d;BBF}a>#c2sOmaPYmLuK+exyn~EJLCptkFQ2^QfS?V{O zsl$%Ay}EA+gIkgqVYS_mu?a4f_o~1|BlEdu0fR{>Ef1G(yuH0+==|Qk@K>+3){Z27 zmmV&ne}NSy<_Gkz_V!GTEiMLBIXO8;9ulIkuEWicpFbH?U&jJ^7^8*x58dl?aUsk6 zcq%ZiM6wklo>|wFN&zvGFuBfPp1z#Vt*~k3(v$oQ}yO|%|Uha)^jWIWqMlJZ_ z|CtXnf4s(T=K;OFbQ*_@%tuNL6A%AofpUSqiGH2R ze|rn-Aod#s%zw|y+bL|MM*T<4Ah!5#-wcmM#ydu=^0K{oMk_Z%BO(0^trU*g+kSIb z+`w03m_OX9^*JWfUnc@NAhrtn<5t4@XCKc`Rod8=Flz|eOVOSDCQ5SZ7s7)X5ek_R zk@K~bmn*HLe4SXGBPF>(YQ$xZ-ak*j#N6DXmW9oz7qO2ewOz?1^_9|r8Fq3= z?fW{*5TJK_&Rr?EB-eL>^Vx;Gel7&}skF4^2&-UI95%uJk51C=I~dA*8>xoywn~ON z-HNRfOE`u4U)3806T_;!x8$(71uJUi09|bH7fy*spMdYf1^lo7+2%9Fzbg8>;T}FW z;l)25Nex^tt&J6t<*iwn+FDIXCi`vUaYOJ7k0b4 z>M!Dyf0Jjr@Kj)W#p|%MMx|FAr1rUcygzzH&jv1;pS|jE)jzNl?==c*$-iLkUt(R8 zO~Pgi2tT!gIal9gkgsPXu2`o&cd}=`(VtHqsLoo@ABX%%8b_*e$yAAm()Da2&Rp*Z z|BZcCynh4XureC1rS8{?toqL?VpW!mvAQt)%$Ym`aSZsCq^b%jgqH@@8?Z9`@PBo- zRp(^_%Uy$J^yd`Izc0t?wU|<*3LK#^{L2M7V1HAF3G}fL+LzOz3U$=`_~Ob@Fe|4Z zSG&@FPZ>K~Qa!kD^4Si(I*ZiYZ5o7Dp#%GJ-0|pYEl4tI1_!HrPC9c)w(ers$VG{a zZ=t{@C%p1I`hDU7!Y64|8m)O+x+>#H4J+uQYFLA>jE%(nhcOhVP{0`h-FI_ytFG|W zD6Uy5Ez=Pc*>^TsIGU`)C*zxYQ^1&JN*pxgROW4pK2*#|u-<Xy^vKEiC#%P>hI54vQ~adk(d2V+PbFrkUR47Lh*`v_m8mA z7m+JJ$VX!U4{Y4p+u8XNxTPx3-oI5hdeac}UY@T13F`V-E}2~+yh~|?Affr0Kjdz> z?)1T&x1?PaIq*!C6WhVjv8ehP(iBxb(CJwc`mlD>LSTj<^I1@Yd43Sd(CUQmZ=ySe zxmBftpnPVJU$=oMBXbtpN$305yhK4c#s} z7DraTd!639aptx{nST*M`P#p$-2NuzG;7;gW>M43e)?M@J;c-;@V;Ad|HKauIdhC| z_DX{M<@`TcE)j2+jLgu)Hs$W-p|ry#UF=j(7`d(?8-QI4tsXxO`W$ z2iNQl`s-JtS=5_j8I{Nw&;_Ef%#fb6bxF(oLJmo>!JQCrl7oUBQO?|Pt>}jff~*Ai z7>rUm$$7Cagt8$Y>@`&RJV|EGKflU<$<2PW)8_Rwjm_*Mj_0Fg4@E(Y5m+wB0w*)2 zoIoF4Q*&~1wr#eR)E#^_B&|u@3ZCj3iQKMBlq)LUIKPHqr>Cd?B;_XpV3L)U6$T)H z67~EKP!pQY$E1Lt08n5%h+E(bNE`^H;~r_&Ce>dVxfUljSlUS5j}%HByj8$tVSo=5fW=km1?XseTe4*3$;NxZ-bJGPQr8S^K|9&cp&w=63@F+__gqC1WX57G_Wed$edqqwsSuu zF*=t{d~R^V8JP-0JR;rf7%Hssou8Oouw)tA+r zAQnb+0&apDZT4^hCIw)GFfI&qgI_5rXy1UDXE9x3)cOsc;MJu^XO`5SbVJRQ9hJ;r zd_wWardna>Z%0Ol>FJUemj9zo>TxEG?p;t)Q&#{$3#KqE&c=&_I+~iA;@Qox!Kj(> za4LV5^zc9_^1Dhu!70MY3+R4rQ2l5Z*8(yu)VTt@URl zlx*KEjJo-Q4Ps*AcrfV*CYOwX{vjeFatu?AEN4D|*-KO2!~NMxJ}?wrV>OYd0BnmT z*Yz+~igHN$62UojM&=kwRV!}tT(mEU*l*5<{!nJM-jvzszTfW}>ukw0M_5q&pJldr zDi!J|Y&eM4_?itLv~+C*y4btRnWr1Psy8k))sP&jrQ6nwsZ!xyPNZ`%8p8|zA@CRv zXl%eMLScZl-GF-b5(Q}y&-qPMVH>MR6pr9(Si9xjSeb#XGFB#!ZX~Gxo)XyVu z7_!V?s-+SV+0A@2GbwnT_sgoqhEn09pXL@PBFlMSHY?1I%N+ zrRl!a=m**tO#4p1>bpJPZ3nXqaIV*@frKpj&jHL0?fg3|_%s0AH+rY1s^eNH82{}G zW5J+dJwGh0`{(#ZZl$)%@8J? zlzG44{=*GuB%|7u%qyQ#Nji>(JV`_Qv#GjzR0@HXu-_e8oZe)b=5qzfrOloyqi4nW ztg6%pgRmd~V%j&DDGDeXtm;Wg(N7F|O>4W9gIWM;3y>^G0b}9$9PsKZurL=KhWUZe zs{HTK&bci1tQ@N9x|%L^?Mh%bp|&$Zp5znpbKO5M%G{~!4}leo^n%pfbEMNGO-Ez=gD z{J@-8aGV7rr@Vk*G3leOfXL`XQLA40hp-sVg-H9B=w6;^{M-9 zVzFkz(wy+AAewnoi$UCb4+m76QSolOlM&2`UO!~9TFSD_H~oUVqTUn*RaHg`8gn)L z&4iCS9&6z_XL}pb8=LWxGMX`G)p4bC?obYut&ki>>-Y{B(*`kD2c#ERb`XUH^z?jr z1WXvHUedru9^G}Mq@qd(*H1>q2&h;v86DWlI$jr(lFNebeky85`@h=io}O1eRlT9h z_J?YZyWaJp{v>t`)_ppss>E~QFg7$?IXnypD-BewwMcPN01u;+lKMk%=?Q=r(eilv zpOpb@lDEvv5dhzcMUZNj9L`3G(ST`#Q*gh;Xo)tj!1W3OFe)M=BWreUm!BTFfJ_c% z1&Z>Ixd&5t<6vDBA0IzSZ8(MZYKkAH(Sy>I*uwKu;G*cjZxbiwb?c%1n-AaV11l5? zUSBV73di}}jBdTO(TC)G?WtI*5<=h~$tA3>+U`=M%+W#(_AweON_#`ZMHMhmAomq? zzd?}v>J5(X>0(0WtsBFD@r298#RaotG?&lgSq$Jzr-}$+GqMl27e)e@HEIl5l*Z%f zauo7vJ>zeRZA1~4rs)d`@g1`v1Lnop2B`@@*rv8IOfIuAeOObr1@;EMqe&!(HbB5# zSa+jvND)?@Q#W?^H%bhh+Iw8NFswGI3W&%5bPSg;tA)DAus6l+@t=i-34l}gbTjNj zAmHhmULsOCI{+j{S1{Ed&+owrJe)M|+hCxfsQg>1_Z*ySWVP`V^dUKE!b00O7YY1h z8F1Ao+4#ruGR3~Mnj8s%(~SZkyrH4t%w^1FT{?T@3lx+L zVDDQlLrH*IaIvh-1o$cnP*{^)s+%CQcIw2^=O$Se!lFOsN z+_A!~^Ke_r7aMRKO4P)!Qq-gRvKM)zx$$198#7tnQ*7B~e zf^}5p^2O47;n8gRGlxnzw z9p2DmN=TQGL=tb4RWWO5r*N)^=V&%zohwh~$Q7cd4T2aVo7n?@ovS$tNwiOLW?@4| z)lE`v8p4&pw68z}BHpa3#@tc_(ueD82*b_B^Q7%AJZZXdp(tv@%3Y=rjy$M-_)>7R4cw{_>2kdeS zn*PxTmj?kf_f``B3dip+D%xp9!CqhjJ`h)pJTOTK2ztK3BYbo{)(hUnV^I49ifoAT z+s^9N42*31t)tfg;Wpy6$oFP;Nyt|bmJ&OEs4ef`5q(bWonmdN&xYDqJws|vh*Yx4 zRf=aGxzFGTh&G;(u*ql0>kd>NIYa;H?1Rk zhT;CR7K)WQvS=`DeN`kt$@<@(0z2oQ1T4=?O!kybfTLHdNeaGd;D5dsfbV7_npn`A zxLQNz%a<2G2d)q`djeJL`1rW&;)Ajg`e;u(so@r_oAn6Q;cjw3^wf{S=*Z*7lG86o zukF!LWIMR0c}^4yCmr`^BGoI6vB2~XFo%1FhF}nt?`(jr#w2=J;En;b%MWlc`x^B8 z_SsoNadC0jttUXew?N~&y`-X~%$hjtxIgF!#sN*u4*;QZ<3S?m&DI+*P2UM<#V$}? zfepMlE+=RNAXv?T?$fPmJ{qfsrE}&o!H1;PQZkF-BP-_55{;D~cBHFr0=XKVBdDSq zXUe}f9h>+6^PQC7!gy>*!zOPFf$xK1(#)~ztDJ=lbm+PtHT%JOfVc(n*f7M~s|-xC zu>r9;)&1XlU`qyR6jO6>#DE3}hK({58{cjNVI2sGvtZ~TAt8ZErxi?6r!8@J_!-Q9 z*y+Sf=C9If&NJ9G>Avxh5iVauzuApiuZ({<6*wd#{5!%mzq*n|{!oxwd8atT#}%+Y z(1bm{g)=sY8r?QfqdOcoN2T(?YTG+ZAs=_)L|*C8HE*Y*bh#O?bJpuU)t2V$S+V(C zU#g8vY<-3qDi{X*3$ycqp!nb2Pyfknl~(hdIzA6hASy+bm46@1$^a1Kadl_}<{WBL z1Azx;4<;0Es|&9mGW!+S4D8^@1n`Fk;tWFe)5@#Vi;3I?t>)MVjQ2hzZfqEGS}*hf z4cRh!*&851nA-^~et6s4b2Gp=^bc55xG;b*1oNhJbVxy$VbEzJ_y&fY%EA0NxV5Zb zCERzh1#uSY#ryT^*9mpLB;h#QkJY#(T~mTsZ2uUDQ@s4GZEhX5vy4R>si9I`d6gq| zjch|<9Lc(IkfLw!;7N8|!1_7b`AW}hL6|qVr=W^oo-rJV)pJWZ%sqhbprQpb%5>N} z8pq1;4^`xM)8AXtJsJ`T{){M?aA5RT6zZSnpRE;$tlCJn&(%I#9xu8%+LaWPEBueg z|BtdYTE*o6{CjNOis2o>JY=i zLOdgKv$>4uREy6OYeYR5b;O~Trghc@%aG=ENeCY5kzQcn-Z9_llV5@}-9DmxzQy1- z^u|zvPxm>mPFZEDNDl$ky0}qwuS#|3FO95fzx~5*`lnGQPmu#yC0N*kDq-CbQj*r*R4vIrp;SSfBC_ zCv-3yxkphRq7&*A=3e_cv`w!SP-QT>**JG`e%_(?g?2)%MvacFKy~x)u-x6YuLDO^ zY4Q={{$DI}MxrpJ6xl%VZ*lL9$CM^d3VMvogVno9UabCsfsV&r}+fQr|ZVnxy26K)xbfgCDv+KUZqvZTL?Qtp65vNNui+c)FeKXm4LI zPji}_F@)DFOkQK(N?31hQ{eiu>r~wH#v+z5OzdY@h&Fpv&DSj45Sl`D7i^CZvVygi zTghfuYUc}EPC^-QOXs);#4j_xP2~Q85M1 zd^X$sk36gBs+@aTGz@IY(EpZyiToo97n3d=6MWMJN$_t$lov~w7YWpqr$~Jq4Du@ItF_jvgvuSTNsjTBNJ1< zW`-za`imTbv*42(KrMrE>9-9(tvM66LUuquF79m*f9Un(n774N2PKWMntIP~`?3Lk zQ)9T8ZrcJwS0w-dJGb#vN`C%kjiDx{a016h0z^-mn6Q-HHN4)JSS;yE@+c|)r@Zt2 z$1;BZzJ@|X*+P_&8QB??nOVw;jFi2J2q9!u8g?W~c4k5M9z7n$b)DCFzTfZTI9|u|b+~?pwCDP1^8*QV;bzKlvTxfi|K0pOry!bl zb@S`0(+yTM0X)ccJwlz5`BKhhCRJTB-R>G+b(pzK?d&>tg0>9fht|UB1T&*%-uIG; zr|)+}s+RIF%BWuQKEdjflsvqj{_(+>LkIdN*L+*Ir7fjNpt~vebLsCxuh+xR?gpqZ zQ;Kt|ei;8^6q;YA&ZNp{lV4yltf4%k#2#C5w~`v7-sUku^3LJX~SCagxP1GfrN<|Fc z%ywpMVefZbHGAYo?;EsTp=Zlgo!}a(nLlM?Dy>hqP$yAx>{NdBj%%9feAM+<+9N-$ z`sR5^c!2q}v!2~7D#5dV$dybenTw9^+G+Aj+P5-v#mc1Q)zcd$BKuYkv9rkzUTb?x zHIq_HA81u?B3n8YVi)wigWK7eYDJGQFI2bRHbn+banIX~@z!GrK68X~+ z2??7PhWH^=syXH_rEw&K@qh=DU%j*1( zPy=?&M$+zAYK0=BwJi58{_QU(;=CSpkZ{7_Lzd2onHZ8uyc3(fmZLqpw ze)Ps}2BKXq|Fb3(Y8OglP(XXwon<>7O4#j2c4ddAF&g&|TCaS}RJ%MkkPH)=L6i1o z`ZU>^sqY8oBmW$Z-n<Tc9YHIzDjG?Cps(Uw-;h$NSic9J{?}{)D~oapC$;9 z$dE*;+uPg6%U}Jqut0#}H`(Rx&CEE@%+7+@l!iu8*WP~0(K=HrNh$CsBBR7C3> zt#~>A-@?Gt$w#o*i2Rt$$;pY}BLQH;)&0bS(=zC<6!cjCM=njx&CvjMihX8H0rhL6 zT3g##YL^TABN_B}IkCwJ@`G+bKuweXzAJHpj7U!}g8SP*uf5!*KLK?NJqL%bvvYy? z6MVS^x9e6>zU3Pwjs-%jQt_;?rXFi z6W963eGZ42HCb7_R=G^QUnvzgaS4eqVcNk5-4*ZQ?mhx7vF6{O=>pT|(Ey^pe*GGn zoXkoFGmUj$sSV`$MKF7#)6+5W@r+~y=>Q;x170C~XYAWI!yoP4*ka&ZU~k+pf~2Yy z;=uBB&%V6XGFx#_ITzRL9{SzDC2#A1-Ck*ZMuLFjp#L-@-)E7uzcZt+7S1`cvD{-x zuxal&{R`d`G{wyDn>W2vwB<4S`KS+QkcX0wfKwuoNDOP7-QC?!vY7)_+;LwZc!MgV z#|eUT70)FLo4xS}*hc^Y!{f@)s8T&Qe7oifCsy8^D7@~nKh(=h%vj}t?fi1kqXhDt zR-N|5u7Z?aOMfnY`m3ixD(~O%WfOMEcxO`VvRy+uvES?p;69iwk9dxsgpLOvOWnJ7 z5irI+h!d)0?ZYF6Io|5Rg*x~av>_+2LEc_l{Td5>m>OH7VPGH?91~$f=zeD20=b*@ z$R!G(`I64Pbe5KuK0k+a_4L{lovaCkg_s)h@83W05}pfVYWLUQQ(1VeOoRFb{sq76 zJ>1A807#wX4rihBslptb@$~i>HJfB4>K#To5qO5s-`B^&{iV^O#S3Ng32tAbY40G= zH{5QzW1#3%oVqIgmY#~&QaP%_*0cfjI=tH$%NRcc6RrT@u!G{_kUL~N$4HbQCv6Kn z7%KzTj);niHp12*uK}vj_eXB_&AP4^Zk8ZO^zga&Yv~posAy4paKYWJe(f;rN`JfM zOUk;@j%*e#me1xP=?tD(&f4m2{NOUlG_0~{`4e0uim8Jw{D#0IkWqIwRaq&I<`NXB&l zY3Kdg+T*|u{eWz0|E)59c3u;JsN&UMRv;76YQD`b_ZA6d6>gWJWqMN5`}82Tgeg=7 zk+*IUjuXj>(cu;d*u^hiWTPD6Ylp9hxhjJ~KMoL8W|t$bD91pMAWZN(H$SDNrBPB+ zic3$L*ZAHAEuGSO5vNom-@C0uzXOoq%JMmEHNw^c;h8vS!k=b8c`}bf@GHnW$S70& zFAfvFX3(ezUHKhr1*xg2$}6gK{V!s1z`1X%dJr~ekg&1<%T>%CGM1QI+>FT9sC&10 zW9U@qbH*@@ITp4_}i4F}65=W9B;x>9;Cy{DOe|Nae+30U=Z^gNn^HrFko9^>M< zxwu9iYQ&PabD(VoQ_j|r@o^GPk8?G?;(%HOF2{Mp)n#$&>ecEd1qlg>l8TDgMUP8S zd@ua&cRTyi$K~sasH}kHfPOLEmBobxan~T4ebSfEFu*|?f!#s|50DErtW;_QDhtIH z(v5`0KncRYP9=ULg63{bKb8&=I|T;I;uCS@p3V)v=KfASgwy?tJjju5w{&`Rb4ELZ_Mo`6C|K*~I3J zVG=1WE{4lJ^Yo#cpLVs?56Z>LTe>+pX`7m+G^ zFhTwTNBMqgZEY>=#*Mw`Ey1bXGVsJ?-rdJ%g22-k#v0H^%1k`PY%}j-N${j@Es+GVUA+=Zczqn+OPVo6)jV4Y;940f9?A& z=)P3cOXszotzP1@ousa8A^n86{`D#DF?su*eLti{5??3*Lj%>S@VoaS;w0gLLJ&Xe z>_@X*W$$+g)6Tl+dUMQ?gJZ%BPwdAsgZVq@C7uAN|~8# z&SdLxfDvZIL1jFCIb8V!jx2}%3X#e7^q@mO9dJ@>><&2lP%oLKiZ}e3Cy4(f%zY zsA!}UAg?%VZEcB92?VdQcM*nPqPx}G*SBZyUTcLl1-mwOLXF?LZQB-@04^d;APz%L z&NhhR5{SJGq%i7z($rAr2*f^?v!SP_$2a~n;wN}+Ms&gm z*DjUhrE0wu&^6yX=J-S9bxloD?c6%%t2c$6bznFRv6eP3ATy_P+T%IA7WSGW~7I zSt&Wv*uSu#s`@7`^RwmsD^ZH;e3ySqp07#@mqI zt#6(D^6+A%C6d2iGv@-1h1C<5-;uugO_S zmQ#9N|SyE?id^ryF4LZ6zMN;ZIxxQ zH1BWYzv9@Ax!1jq^VkxCtdE(IrAV?ns)5p z_0W9ofR_a!$`ss!4v||1w8Dyp^2&D|l9OXK?pfsMD}3Zu6=8#@j67=d?&19FUi*~| z;v!y&7$({r;O1+-g?#_u!EI({{es6zz0miGlDWByyZ=msbE2(QnSX-!6{(wz8^x8! zGD8M=NrFkp2@&UTlrR9Z6l{9`o=aT(V{i5oI#e?cXU}BRtkfncn$ytcMlm)t42rQW z)u&oYU2t_pda)ZMr!?!9$0 zQoBn&MpLa>PwAR#y8XZqQaa_6k(AtFbqn_Ux|^+YN~;C$^N3*==@d1Vl=R&uyr zzP_$XZa^zye{68O;7PyQ{PBZrre&^)p#@dATCqbXlncsRdF-P<6(;eSCQ zyI9t#6ngel*HEVDoZAe;_0DEkW@q-)=f=!8C3dXo%I-G~=zB^tTEB27nMP%k*3moE zsHir?U8T@@;?P=1SdJF*5vcWiA|i#o8a_Tg@ti&<4VF@p^k`#gMa=s$0&Cy0+Xijf zl(+JovsR#93TZj^_QAH1`pxE89#un1F<|F0F}nbiHzYvi8%NoQGwuDVSLR|DX-*^2 z=f<01jw6Bp)Y-yRm6!NB9#Jc1!6QW>BlE&K+hwqtF{|_Po&vKMw_)c?Rxn0xf%>Wi z6~(1ndopuEjnj4)8fhcO0Y?Xj&9Htt*8o6##;2){smoHXM2-N1mNpRoowS^n8lo9x zWe1cZj=7H<$03V#PMli`>oa8yZBEERkX=&*6?GyP`~IOBrh)yw8XRBlkn$b4`S*JawQ&rVeV*(67UVeA|hz-f^cPC zKdGzR(Ajwpp_h%-ni#`?Q8G1ue&nNgNr(Oba-F>P>?y?t81)vGmm3BL)8O)9LjMS_ zp)Ex??rtFO_y||M`fYZ?{SPrYr@N(0`EbdLJn|~PJC>xAW66ClTH+GnOu>h40g9oc zrKMH!4H?rKN=-t6Mz@hLhh5ep=$zC>Ztb*Rcq@5 z!2ijR2HuOi^yR}4aw;@9kLMa#+t@U~A|mHGPEoXSk4}jBonGDiwUK3ofYOEEOUplw zx9ib8pfGOnGbsiL1;=6-cmX2PCmSJq!Uf)fwI5Z(!xDkIp`q6X+})&Z^d2%?_w_YJ z{rDiv94WBez(#Hpr}b@{OpD?7+e_S^IblM(QCKK~i2-A9gN(!cE+(3Yr#?12`vEz= z941GRRa8_w$x7b+$A6_V3Wct)Sp_wjkdP4E?`121pMSFGQfyR=YvWkk|+P6fsXr<-eLZ73Hpxxhy{AM*3t_{%f!qN)oPOb;pWe(hM{8tAMV^x+Xo5^kOtc$+Ft8Aa5e4e{DwIA%%?1pO zFr>mp25t@=ep#Xl$#uZ`M|G?-Vfg0SU+ZChOzlHiB91wTNa1#puo8|kNFQIheWkE` zlX`fs2UYb=$qjkYzSEf4MY+M8oN(+4YeK;CcP0{!x`mY$8M)4dU%!Z>C;T=SEyvL? zxB!XPPt;OtSN?l7wX~z9_vyRLu3b}tk=O603zn8{UIR)&`t zM==Xx-}>)hJSbkqj-r*&oP1bd|y!b2ueGe*6e^EAw;}Ae~aIX4|$@%3ze=cy)eZ;eykB z7*CTReC{o3RxR(42)eGcGr2HW-M@P`1ZzOXZAiGHAT5mp=@4w2f_-r&6M;h;YebV4 z7S~J+Hn=>smry$}h7);ge6{y;fxuboQ%-R{t6ZmdPqv@*?_;x zJ*-DRcl4{Gl)?28X02zjHpczma>;(JtRD#6-fCuCqEgbDY=897M0M3}9Ts~QI0(WgdH_d53%Q`6AiBm%rKks2djhkouD-IkI^(O#w_D4qlS}2(c-Bdl>et#C zPGnE`_`-5NB6men&dta7l=ON}m!p(myw+A7BFzv?EImKZMLI|$e#Ka&%tFmQQ9mu5 zPC1U3bhVm|GhTnPVhREHnmKpapn?(`CiK$(Pk9fB$rN!LOSKh6hr#_ zn?B~VABKY}#sW-T)(pexGFfyPS)a)9Z1s!^%uqFvkn)+5ay<7|BU@DUrulEc z){c6-jF{lL@Q&MO6n{#9iTE16uf^3O)l(n*yi2G?7;xy7nK9>r3y1V<0@>0{%{u9v|j>T1CZ6Uc#J?c#b8_hv~D`p$ixQ(bgRd5L88s;+* zBY$AZBsH+A2k(dE27&u(sF+4r z!Z2PAGI;*%V!*0dMkh7X!y9$!EXq?C;$NMD;~F_ZPKSvaP?$#;1cHFH6E!S~`Y=!- zgy@HuLHK>ZmJx1YSQBj)zd(}6Fv^!htxQb*aK6>WL&C6{lJasMDXA`5P9yzTM0~{c zrVk%Py1q9kGZ1wgp>q=h*C1owgIa}m+VZ`(pBJx+7%8=X8&tf8Y8q9Mb<8EeOjmkW2f3 zq5AqzaM^bsK5T>M>+~T8od?o1g+{w-p#%~RFU*+Wdz`lwv1|d3>_vPyG1R6AbJ2l8 zyVQ0InlnYQ$(a_l&avOEl&mwLvuC^YwE5OaVNMI(=FZN=5T`Mq#XLY~ao@>qEKs5# zr#+6IIfN}?XnfnaV2Q_VgdRo8(oQ5$Ta;Wp$Bw1L%U4KR(bUo50aJ)zbux0$GIFYR zWg)`y_ZA;LSX)W3E3sH3pG2Y*fhV%1BTJhZgXXNLi{*KFl77E3$u|;#)D)VSnCS6q z5|>`{o=<};{{N;84@do@wWd<|(p}TDhF2m<$Y`ZpRjoZ9s6Q51*l^H(`?L_T$94`s;fg z1~v$A8yS-C*l`4c6q}5z4s5xYD!?x--OZu^c1WCc>j1os5ZhQbH=&7^S=DW=6??LZ zz2Qn-j1k62*6fFe#o13S!w5%bk29J(ALY27n2@%u2uap-V51)Jq9wC!o zXL(d1>$r{bpmb@2@sEm(^IT~58|O`st{=fDG0~Zvx@OZ|hbgl8ANpPgyu%>^B+Kxp@crXcf@j#Jgq~Qr{ z%#GpAzx#LYX0L_W6>FI_8_ruy!g3=D_B;3Q!`LR#-8x6jXJ=>kqo*kL!Gi})AFH7S zL9jctIAFrbR4Jm%D=?eqyb#};Hc6Vx=JWac$6JoyD0EwaaA**Y{)zVV*zj<2%(alI zlKF^@4x=$!(Y;&I(Ffo)hkX=t;)+X3#FLG2p2Y;Fx3=m4Ms9?PTNdx|8K zFn`AJt+QgYYJdMpGU+Row&Dj0~dD=qd|&_4xyuG+@N9k-~kf9Uo2 z`ui_|sZG{F)7AFBvkSJM1VQq3TwQ$!R{QFoKYJn0qeX<}{I0+MWk*dcbauRzL(emg zY`wI5g=JJ{1mmH<1I8_W{`?z;05l{#FDpB!sL1i$R75vwECe1aWHI^5lX(_br+5jn z4{tzB90^y>;KCdz40~c}e|6ZjoC5ES3xit}!!SC>2WBw$p$)5^rtpNHpQ?t2giSL8 z&Obw!#O$q=n?nII)1&KtS<^nvKT}6b*E$Dk&wnZ9^s2jfTXSda?)yD==gUX0MK+E) zW%Uc_JHmni1)80M15ZJ4@j49zZG1*FeZDVWohnf=kfSu`zxTPz-KL`c=d|Xkb>?SM zSkCVMpCR197O-x~?Q%2_jNhI_*QG?V4Oi};3wLrO6W=3N)Djxcn3)>)P4yLB=Ge*l z*L2Dhxlzd`BSuO#$QvR(X-lXQ=6aLEo-KYw*iKtlqb$i=yeQ>em=O8~+JLVK_r#cM z<>yxiDl1zK^M}!83UhaVn$O{J9*dRup|y4W>%NvE!7#dp?~_R+w}mJv1(Le)>!Fv^ zJgP_d{;}}a%Qu-4-)8wFb?+=?*JL+u70H5vJ1i^-7lKU-CE!2m$sIa+LRiXmyi&Gg zXMXUTF{3gCuEb6~?3eH1FgmHGP?~4~{IJ1RPd%Og@%PcN#>)a>z<)b)Qo4U&6U9W(NVTOpjARP8K`j9kIjeWQfU20Wka&n!uh6ek7%|U|F=AovJ zl+t^GsGO@y(kxN-JJ{?3gHBQ z3kXw$1y7O>v+;8wPbmRtWJxA4DZ)@Hep`#TbY^_Unaon z;qiLe-T_Gn8v`3#L|;FfQ%HEw&d|*$3sn(wiW!-sdU})r1_p+xn;X{)cRpEJS?t=$d;_%Ys<4bBp1B+JsTtTJY?QR2 z6+=aKH+U8zdhksQx_dOiArk$?_~e#1?I%I+WR)vxI&A^o;XRP zfPTp2lUZm)qZ2Pp--l?_-+T(Q#;I5IkiB2HX#u>K_>fWFP6Gx}@CH6|l5gV-9%C zO8NY;7fuXmPQOE{!*k=Im#qw;QZd4)*t>`#Jw$R+?#edMJDZNI;&8K^6-KrdkJWWM zSlW9aKo5DL{+*@ZHceuPfyrvOmX2d6$KI%|;c)|*v=1*iR~W9)eqO+yKaq6Xfo5a> zEUu0Irj64+LN(!_)pcV1xAik;f2+KhNHPD{8qEsL5*7Wrvzpz)g4}t_)FMs{w0r%w zt$EzNtl%0ml+OD<<=&$$glTQB|9mOphnUo`$nK@O#Ehn1Y^0v;cZH}@$5X}kQ&;K4 zy9IkyK;9o9T}pQ;OLDe8Ol|KMI~xo4qF*2$shG2*PnsKDH!K!&HfIkCscMrsdlBV| zDCZt-2a6XMrlgeGSQj*I(N-{AS+sg(WrQS6BKEGWY?qukus*Q9O{-DKEQ_5B(f!l% z4vl>!j|9Ga>m~(J%m6XqWr?a(XW&~qJG+luT*(Uy+O#-QS(<5KVMr19Y(izzu_-B` zfAnl!s|+XEDXEL<8$=Jn9#d=}zfDMtD}?T&Cu8e`vdZaloj8=@+P-vOMkfhnePCsc zGs*Ny7*6Mb{gIN=f3`WGQD;p^5&Nb_bExHdX`mBTKw3}l156MqvGG!~TN<}hKfQCL zJ0-%${{;ANuC1TV)W+=Ie|x3I;~p6^`3~0tt|{3oSxqbIh;OEyi80?)fUr{ zCK+yl=i4Jy9@o~|+S)r4`KUQ!QN~+?$=c1X3c}LhS~c|`tyo3;zYrBf9Ct>)gKMfX zo1nnwupay==*Q`HM%LHYhfK(gm8;nIVsgzkfe4GNR$);=X+O^6%fjKfUg+TwPs9 zD-6U?h}2#lz8HiDxZEize-FPQHTb z=W;%HXEk5Dxz-)FvAGFem5im3;dIU?ry+BN^&hQ!#l2=qzK!5g1mayi~xM+{Jt91tV5Bgq9@a(eAr~Yy|k%O1URmn3m z>PxQcZ^62U=jT(x;77oNel}??k|lovMnIL`pO-L|RaFv_l3>r__BT-nRyIaY$?)Qh z@gxm@T)J`N1jQ!N5HqqAo2b!98XbmLW3hpeEA;2Uq-m@q02St#o?rN4HI!|P8f&!9 z00y=Ze!MY+lK)7PR+T21o0Kx9a>o9Iq>Z>aI2U8Pp!V)L_g?ETgFWvc0 zPfs^x)v(z{V*Aowa@Z&9*fKmdseI$XwR*fMm+AZ@e2KUg0f#WQncA=OGVTD)o`&t zWm$ov)w*{Tm2-fE5weJJCUXn=fG=C`bezOVKZ~ZA-B>E=s{(2d$|anw0i^4iN)-ax zToxM#g8WzqdFm{OV2<^mY7(;c2p_(s=zM`iCCiBFyb$#!J-LhqjyPUFJlvAK!VP8V zt|k20VS2r`hvcr5mOirF?JR{)rhCUdIp{JCIWn-^Y}dvMD+z;|PTAU57ERB5+Lk1> zJXg#%biB%0Th0G%yp#X-6w{NJxq8?ejO?UTguhNBX&8HN$t0ekaHxFHSE=BX?6TH= zV(M~+B^Jo+{uK}u%$FI_r{AqtS$X{rTlaPgMx#MgJ6$=vm7`jiCwFr-IJfv}F>SK> zUfct#J#8|-6g92iN`P!MooD_Qw%m3=!}!@fM(GpR#@>+ORtjg@k3OETNZSWb9GFLL zHd>ck=#}bNU9J>s8^q6)nLl%mx5}f66c-j0x=4`EwoKltsCLc4dyMh6zx~#&g~_ND zdX$*OayF1*IRB+FN1#-851&rIOt>bmq6{f48Z*Vhr+Rd zxSc=tb7J@8?9ATu)z;=_fNcJkoH0)AF0j%s+YM{aT(m_)P?K8n%V1W1DU5Odt?CJ# z`BwUUVS?*hrwNM&R=WDms^VyxI?=sE;`xo)J=d01B;^+qTBb838#4>*1#FK7?W=v? zXQZVNqfIW|uEIHi$XW>gaqB%jL+g!x#eA*hY)87wl7``93Y*0{PTQZqm7Ur!_upHm zM$ATE^^@s~zBO4J8O=6A!gph}7q{v&ugPZF;dHn|w&n^Dk?$Bl$fu2y>OL*=?gV@6~OCEfZ-bmxb&!&vO&cJkiHn zc$Q9U8=*X&%nV_;%3;YUP|9v- zdCi~b3N9?o;k0#lx&e8| z1YbpCaw?14N51qMGyM^v{g{dKo7E@>+F9?&G*6`lZu)=D&rPN(zg23N4G;p?etlXf zU*FCm&-N2QCw!Q#ekNg2P4Ci{-pp=%SU0^l>hA3HvuV8z1fc3{LQY`O@fi%J)6GN( zj{B6Whlj(oj!V|W?(bveg5Xb$YR7-zDB+jKAJWn+t3;aW>;Khb>MXzxPxj#~;z=j$ zTVDtj9PGcPn3p-&DlWAnVZY1Rs(y2}GTo*)gPp2t`aB-l*1XAJor-Pipt!nKESk@e zIN)t{-4;}|)#$a7f4F^fsE6OT>t^~-veDm_X=@41_kBI%PYak?H;OIm;3B3cyXwcv zpOfavY!*0LwU(b^zr7$MBV%+u(Q9Ydf6CAFmJ|~5eLYhW+U1`jcv>Y3@j!#Tx2!)Q zZLF7rm%IyaSK#{;M&luI)fDJ{ZkwsM#;}*v^ducZ9FnM7Tbb~zSewyn@)RIi(!M;9 zd_>pWkS_&;dSN-(qVv+#zGH-7v`u~^RINSU=e!0?dG zV{y?|6MDH2+}Of2;G9lLrvxE|E;PrN0%c~WJ>}svE+wkUmr2}C=FvC=Ha5p3>=`~! zZfR+0Hy0Cfn^_bj6eOxAUrVbr&6cmGvOBx;Tw3Rp<6>|d7>Qy zuG~kbHDm}ul9*^nkM(@n$t3B?Ctdy%_QF(u5SxdRxxWvA)w8j%h)C9?`R(0)S(xSh zMy%XSm5E%IQy2~%^+gk;%^M0|C^J1Vs%B|XYkd2^*Z=emnYkQ@CxC@{+ngqO{BgHX zFsD|BdUrMuqs^db?|8#n`}(e&@qxGc!Q}AMu;aC`+Y}{dg@~Qe zpM%h@KhQ`Z(~OhOPP?jJ)Ct;&56jizd~d8Af8Wkn&hBW|mn^H<*;(yY&xTP&#wwoA zfTr2BT;gC-%94?O;Z6`IQ$?*%rwy=1{HD}5i;Q9;{4Eia9-o}MrC_G|MH3?RGVF?BGDtT zBXO+ww6YJYaP1GC5nQ?AX9a3zpEuqAYEM_OFYA^5XKSWLCnbq%YZFwNj2O>VoAF-F z7;J28EU>0GHSw?*59(bV%y#wk^mj^=Fokp>COq2JT8~KP`p$QFN)?AJ%??xGfQ>Fo zVKkj2{yEWx+NrOlG)JU$ES!GX&<2G%>=AIz(}y1k;dp40u&7ocM(5X!Qx2>w)9S|e zHH*(*I^Hu~o}zf3`J`vXiPtHyFf{qB(Qo{F2WEt~hDMD!c5fu%I_SrrCZ7BdP$@V$ zlTO!rtBi;6@5gh*P~FNU$W)(&58P!bO)x$9!`KBgcxTJF=A-iT8L>-M*iRk4ieLA@ z6h}$)=rQA3H2vZ&-4`Tq6cdSLYiM1bfM`{Ng{l(}aCG?(1LV?*<*=NHxHPI3F$F|)hy=m`RVZXeXF z;gIQD<~#ou zQqAO?*1l)Rz})O_7)53d(5l^9R6S20Ns(|ZPK|ADBFr&*i_@gsH2zcsoHR5T<;jy{ z)%jkm`&q{$l((fo^tN~G3NEC}U+Z1SEJ=_fzph=}bWmN6)NfRWXNBqzk}oDJH8xKa zN+wilGLP=u?AM|>m6OS`WJVR+UAgx0Ews_1(T-S$GYY!*$38y6sF{1xu2K;9+N&HB zi#B~L0{+xL_shi8>`~(f)5g!+yE4tp41vibjyWNjG*P0g>tn&jBIBuas;%k{F>F5R z3@*1tV02dlsQ+g2gFZ~#lUqjTDITw<8cT=P-T3GLUhHgtgA}(jk(5E-)vHSThS@9RJTg@?=jgzIYTS*!lQ=D%N863{lz__}( zoi2GCj}<6UhKrJ>a@cHDjqrEsSDYL*9mhmR|4HL=AW$7ny`<%djp?o?52CTWH+I94 zmQPN~GuZ!ww3!0eklnJ5q2y5i7=MXU(RL}1sD+xVoa_U3sKX^r!h>A`xldY2&6AzK zm!NR5Y9*i--hiW!K<0}k&5eiC`h4M#)LT8dz{RYGF|@ASoUV6ucb|fO8k?Cp0(jub z$%)?4LIW6G<@THXT0|jS9nNNM_1pz!my~jemTN53idAU_66mVDPTVf2#>U0~-$E-<9pJlO==6EMhk%d1ySq!P zSsncGOCVOo`s(VR@mwjljc73f68*_jCd+9Y{@-zkiY#XuZ5+D^K9*X`hhfh)5nh5M z6`FlxIbvZt%gt^MYwPPsB|IKiw1@L`lvGr&!@7kO$7|^O-n@BJZ90}Mu4LqffK(C^ zt$wXqJB$`qm+`4KtWx;p+H<2G1P#4NslLAc=QJ+S4y%9wF`%%3M*kfdVW=FMoxRlz z*6!EKV!Jh_p^ws_iDI_c9MiNzb{cEFfxHp}JdvZJp&>x{P5b0z{KCQlM&0J-=B!U5 zySk}WSQnsyfZl>XVAR#y%i?~qBebtsYuUFuk$*T8EGQ_LCg9ULTKf_@I~E!ok_CMD z0i_50^_SviL809xqNSP<5fB5W;qQHe)zkGsD@l^3AadJ4PoUS4Or+O=a(#&REjhg3 zcbQc7(z@p)fVK`tRVR8Qgmk{mVDI>FRG9o%VZ<7Mo^UJUGB! z1sFJTvB`zSbo2u)4pLd`9W^XGvL3iy&6iVJ(#gyLU0uR3#)C=U6$=a(8=VF-1u_Bu zo^SiulyQcFqp2AibU_a#%T@iUl$M7 z!$`Qe&^&xvfUJ-N6{^wrfo&=MTj&>;!ac^ zcHg2=B{~Rvl$t+)N>C`fk*U_AF985HLEiQLTYOXO-+q>aoV=pnF_npiZ6-+!R(`w# zh9)C@j**!o_TsnLi0@{|e|#pMzxEyz8|O?dbO`n_k9{tqtp83^g5R`$yz3vUDFI|T z&+g{ysam3ZJF1+-7jcTiX zTQ)My@%R1m&;I-T+S|5o#i{8CH5@ukYz3!J1;4?H4z4<)4t)P>$khoG{k=VN4MFg? zB=_`>?Tp|gKMnbSWqDp5`-#u4`ve_Y+kYd-U;BO_QI*iI6SS;eKd9M7vLe|yc;ova zICv2eJuFZqme7R3+`fV&A^Ihx1SPKOf2-v|!Rl6|n$w9+VU?IBCAD~RSFlM%bk0AnH2 zMbPo(Iq+#6vCLv_w)VmkD{l!UP`hCds7?O(RQe5SE7#8*5UG#kQ#fulA>Z=bd{-hz zO|UGJwLVT9Z5!Ci%~6`Dqxrkb$;KXSyb1^l=1SYN!ParHrF*zR42QgY%ED$p%&3m) z@n}sbQu}@SE<$wBm<8T1tIMlela4wbF+!9S1+!nqUQW2n`qQmi+p%Owe39Jm^Ot#J zrlu2lZ%a!{$&V6KQ>6f8a&I95GJGVaf6>3@WNT~&vla)Wk+6^%!T6LASt3q?NR$AMSN>wCG0T>yN!&m$V zIjwqwWtGK5UKa`(9!FfpBN;=WnE*0(u`}k!vE=FpcoLJtmUM%MKQ%6s-=A+l(*(L! z?vcl4Kla1pBhx$N-;?HXlDVAaL_bxFlDQlxkZ@@AZqGKM!Xlu@zCatp#Kl!JT^=2k zr;thMLSkrck0up+$M4Aru;R+o{V^_j6S-;H>TTvv6`PwIYfhK){z`iX2ZM*3Q_q{# zAj_HZEcp#*@b_Au?ko~$H9Bt3w~=zg!o$g!nPdF@U-|m^0TJozY^4z`q&2N4;{Evm zLmQ*VmE}?WIto6kY5N~Pgj;~`8B>RfHETjMeV&pd33)K^@%uwCDWNJJkZyC_&bJPh zT2k>?jIp$IDFcXV$fM#c-E1ex!Mz6exM)%{Z>Qh9M!!b0Z+KWVS1|;39}PT@iU$zj9Pkbn<1>ZSC##!GIU3JzQ?fM8c&X1sI!z#F#yGcdFz)#Oo3p z^mkUPxwy@N#43kvS#WWZxfp6{YPznga8P!2+DnYbYKmqtUD|ERI^O7Hq3dzTrmdrM z3&!c+p`p!5HAwfwL@a2+=Rh%xjfqjbAk(;fU|K??Z`F&>`_Q!OU+zhsRO3c`8*Q9KEaiM&dx|;0bNraA)%Lan$_Q2(JKl& z1+a7%Vel!FoN<3;l%CPHw6sXb$uZaw{j9ELZEkK3T}+6J6PA`nh6xD?0fTL#M2q9< zu*zv0(&EkrPL>fe-v*druQ+4?`A;WNZ>fX{i+W7F`2}W}0B8PxL+uv58 z+B(hIOw#BNHFeTheB{97KY-n>+xnQEkrA1hNo-!zID^!?yqtM)ae-kWHJt;*rIQmX z=O)>F(hnoJ19xp_&AceG9X5nak$zU z)HgC>^7qHb2LPo4YMpk+1KQg^15%}AsR@BBlPKt@s;Xuk!r>;>)o~;zC&!nSuXm-h zl-YiykvY2H?z%kg>c!QuI6;5k(6vE{hU5FF0P3M zcXQ}}odzI|!2eryns&K7_3axPG6Do%I*k(@==rr)^MCvLvee3Sn;);{Y1PYr&KUE3 zgMW)Z+T>#6e6%0|TGVS4lv)mkmw-^8W#lXZq;wp5YgpBmX|Vh)Zpu z|H_;U_8?tdu$!yvU!Ds04!~@flBJ_C zW^1k9r?Okc@F-B>fI1h=5zL=h-P{xr6%`G+clYp!jg9pa&56$Ia`*4nUj+rVImEGS zxKMBRcF?E#f3g7DjgBFol=6NgnOZd9vlt`qPnE0>CbK|Q93YPX*v|Lx@WAPH#|ki$ zdHQo{xvbju-SshK?+V(go%W~fXO*e2JkR%zGDXpDAgs2~Yb070xWoZf*%RuHW2P3OpFzr(uDI4+) zPz_RTXy_?9$Qrh1NaiaS7Lq+-hMj!!x=Qas9AQ!r3{DdLc+B+I^Y%1yn)3CXVpgp% zmU1uLaRg4c;`}~eGuih7obV41-9wYVAL@mhJCHet?ZjXY_3(YSSA`QqlXRDL7j^(f zj`27LJAPuDAxdS6cz6&3({zL-$!np@(VFe$htH_!6)C|k%)BnEzS_BLKgvoGlULrQ z3CVB4ZR)ph7-$!0bF@le;*$DpQFaKU!dUR6l0xzFCt@ljE)cw&bADQzg z8v7s5y(YfsC-U<*cS?PkXC0^BRL+7MNe%Bb46iig*9TbUJzUj0Xi`j+3$rej-fE^z zL7QkxjTaUUTFAn^ob)5Dt7vveftJPg=vAPOQ)b-S^zLrJcmyrVdbe2)ZlVb^#hmGV zq=-c;uL|!um+|y6HICBd;SlN8f?$!} z_Kh;a#LbNgC*dxb+81Le)zi4azq6)8fq%xziUkaR&AAer*z2n+3NkYPnVA`L8Z|+@ z;_ba{vW)-!1>X+~Bl|oss-hq*s?<%RaP&h#2+MwznH66hRk*lSVNt0!G48p9R?X@DC;Lyw zn$ewjZRMjMHD6?U@VDLfk;1wa4OQ1tK~*!fQj;1bm&uY;g!1lu6KpsA$uo*3{<8Mv zGyIxGfzkkX-&d6_$l_+<07pd5iQDHW6<-w|X04iaPi!nKVNFeZ_m-uvZr*pW(n;hb zs=++poH&XtoSfWV?ZDO8yJDd;p;x4?j!y+USYWCpG>xu=6h=_--)>;uUG4|<8Codz z_w{`R;*oSFe>yO6fe)z;9M=~2OMCH=Nx-=#>TH&U(B1xAmIL#132p;OlUQ4%tb^-8n1PQbk7~mR#6iBJTOTm(0&D+n2oeUjoR&Y zGx0?dr=5O!8*Y(Gmvp+K8xpQe;eTLGA}T*i%Fxfrfv zHgtrM56>c>ka zExIGsW)p>r$7L;7_+W6?LFVh0y`lQx2QZ6(!Tb{HS}=Gey3%Ca4{|V2%wfD0QrT)#$tZ``ZXMnC2-!l zDFRFdbO35abH0M{`YSK*48ZPKAZ`L*9b6$)P+6Zf$)u|&_{khSb9oP)fd2meC%4;~ z4i7hW3yX`p%WVS0-Zvki4<6@(AL7L?Z$!5Y#1*pVi$o?irs^p3e*G#3#(D~e4a&E+ zHlHlhmMk@5A|mMT-%F{hzXQ_1!~OCz z1qq37o=oc6_I7WoO)FG32>HLDW+U$_DlEkN$2?_fx0UY*K)5ggh#2Kk<9xqW(RBIc z)8xy*i$L!Y!Pcz1VWS9q5vjM;8=7)G5CXj_o8?v@^;S9`YBoCV`bI@XdCembd$xmJ zd)Ri|d@ie6stqRS*VDD`o0}V;0!czetk0iepwjVXe|)ieg)i6@@72_%6$5_$+Pr%_ zJ3r?FE3Wm^v-LtfGjYD{+igZnSu2@e3}vmd1TrbCtEEjx z)Xw<#D1_W63l1Yp&Ijs&$ao#cZO_9z$IY;xU0pfR(b0KtR{WsgrW+Sx3+iNQn1ZS% z#p9?UXlp1{P2E2yJ6pZYn~x$k1ZXJ%0Kd)G;YEmo1?kwEEOL9g-PQoFf-5%x%K%LS z=rlQ>-mFK>!_{cjSp$0W-EO^y$!<+p*XPj*pUqs^{Ap=vsrh1D3d#pXvde)q6TSZP zJAARKdLtf523*-|Q&$Gw3-~U|KZk^?-9beSx78Hd@=*r&RCBM>Ub-9XA5;v!s1*Zs z1(;y?n5p4Jo{X@l=n`whnCZr%%Q87=2jDWnPX7yZW-gZ_0)VWx$Ha)qsi=ZM8l>kd zKLBb*0JJzBTffiAH5thOD17LNsB`I+1@q~CSsVAkOS%vuK6l%Vzv#fN47HrEw<85% z7ZNHeapeMD(~_I;(b$T9JgKXamP^q{0w|1}Y4zd(O^62cqi)f0K$MICJH3))f`UkJ zfiLPkZJv$in_pyS6&&eYj5=R z^%3cyPV5*$zM_P(GFIDzevvuYndu31S{UzKt*C$h`bE}s2(%~+3=FV$UVQ+?6!`W% z&Kw5?MNg}ZrzbBEr)Vx+r719>nGry?yJlw_`m@Vv33(qV9x9fveCDv#pLm32%dOhl zQrcV!qu22eUh2HCB0qcu2RBx%!Qyta6q!k(2g?M#-aY4)U?2C{V6ci+^zu9gQOk|K9 zv+yNFE8`jf+K}Mj6|f^Wz=MpPJs|)IH+vGNbpQwup!w1Q&q{x_BS1QX7cY1GDk(TD zY#m_6Jb>Auu zsg~)sfV_(#_M*uhqw9(G;ubqf0(n#gNb6Ro%`MM^^3qT2xW~X-@T^9_eg3{6m zyq|7O0DQ*db~KF_{+esYI!s~y)~m1$u59l1X>ZN5hRcqmR+bRvx!4eEYkz-WszmE> zA5hcXr529{ZdcINUerdpBK;j4tS)oGig?dK!N<2~E%4#P&$(dob1+V+^?8cXDNd&CN=Gy&5NpOLFv=#HbY&X3BY#fA+46n?8bxd z0G;fesW9jp7|8h&gaWk4<<^!D+#n{%dolV2I`cuqr)f$Bx(uBRZ4W|VAr9gf&iJ)J z3+(}gWC_6qngJLYf7BpeD%Kuw*Z(eM0yH!^YKYbPe(e;m#1>wj8`-L_gf)= zmIJZinS9?sy?GXF(|C92>Th&^h`8cx6!)7;D(6BC1Ib$)%l4FqG5 zj9Oh=>j0T25J&>^2ptcv541f%1$qpb?ans(H18EW+}*i>BC#I9u|$Otu@wI88;twq zUNU!cheWGhoE6ez1;1bChB zHlHIqn!{PskG8)Ty$G6A{x(j zU|y4=TB3P6F2#Tj=pO(+fs^K&fRY-6rUL~oTn<|xY$gUKo!e2vw&_gy$AW@_T=w^> zzqF^3WK({r8fVR{kN9fr$dHOH!2to{e6HpzS*>;Qm3`K}nTR~%@e zC!n3`17_UUw+e`4an1G}0AG4DNe+ zCaw1t4dM4U_V)eHjJ44`)RObHRvHy%N)>G7;QGd4ZuTvgM)_4tzH24 zz}TK`NW{d(&Q_aYVp2%20Q|NMwuK%TZ_vy}m$_ssRa z9~>B1Cw{&`7~wrf1}}FH41`@=IA-VM+=4=2!Y_JS4+mtK(fl9P(`A_tAlm`6mRs%L zVWm@8LqMs9Fi&ED*?6f~2Z54xN6)(pv!)sBlfR@Or_-t-463{nEFG<>r&r_t!~!`xMW8l$pvqGhnl1dR=M6 z-&&6oa5^mEcm=S*#$(7*bW|?uO|7{)GVBgrPn?rBHo zg+jw9&<8-Ow##1E@wcMD=b=IcVqUte+7ato5p%7zO7`rvJ;j5^cdLRB<)UDjSNh*q zKU=iF5r^@H&4WBbe&az`css)*66}pRfgLRBC?*M&HN(WqkULKN$C8V9%~%Z=krr;2 zwpX6W7q6OM;93raF#NNB0k{hG5&m&-?yoExYNb+eFZgd(V0ArDMW9U_@E&SqctJG8 zD(l5Y5;`Fvx{$6t5)d{_mkmlxRErO{ab*FGer(s#lodZHk%pVQQCdM=5YJHAUhp^H z#oM}}o&#|YK(W!{B}MG*nL#TrO*n1__4?`4Cy`ehstJHUUOLG#<;%0^Uhfc^AFFPu zr9SEsEOy#|U~bU8&-0iWYFZTYpT`O53RN;B;Hh$0#y^lRQ4P~A1KG{fgo_Wf^cczo z%H5G&wnhCa@_~2wAzVS4wkS3KW*^Moua-Exwn-6wUNT;dDbUQ)1%nxCSpEXpdE;yuP5#jPE+7Kd(@`V+I;j3*gZR{ohU zR4e3=mK(=xZ4W3kI#_v>{mI?Uqk3gT7x9dO7N4%&p=1rrW z0ap=FN5C?q?&r&(zY_d?tSwN~60A=5K|Tc=NFFew`};>O{^nd};KzilL_X0&Pi}xy z0to&=Mwm<7S_B{end{5CqB$tKham$0O|DDRiAc9Eag9x#-PboLEEZS|5!pSddiVM2iG@mMkkZk(b0=OSk!JZ-dfneKyD>+pFSx3`bDO694rQzT7O7nmz2YviE{Y>7s}-i+-OO~d6M?~pjta|A zXB_j|1zsZ&IbhrsK3SZ{pri*uN&-~jcV}Q z!!=7pbH;3s$|D_uq)_*fEEke$wJC1{t8rzw9abGB1I|l!PF2~hM55}r2eezOg(T`T zqyF%jWpZZwZm{mk$`V?o#B1gIQmOPK@@kiSYxPAnme9JMKqL=UALqwEzSSg95RCC4 zAyJJr8|{OOdb&NZJ_t$_n~eBpM?DjgY5xclY;ol4k(90NfKxD;P~p65<#1(T2yk*Qat?@eg7bId(r)BB}h%nAb!&Uo^p7DXV#k)Zdz4UI>g8& zOVX(IPEF+~DD77Xv6&4U6XaRPsJ64$xd<3Vszq2byIdrkD!nBo$IY_6?4V zW%xPtxcH9tbPZS08@?p7=|D3N+S)%jkZ#H|qe|JZ|F_|;(uGA8Z}hC&tOv@^}{YX}UT z`NOM^t5aGVI}YEbC?f4O7Iv|${B0`hcJF(s0>1RnSt%w{|D?Zsd6`famCJ-5biD%R zM65V%oF3<5mO|p2c!j&jtkQ9rTyQaS5FkGx)6)2N`1LC9}YFD#3pT4=qPn?)yN^qYe-3VYYSI5gE02wy`iLGELgs$-xV|+IC zwv2dV1F{R#MLgKPs3o=Bn_6Mf?H2AXRe{=2p5e`EzB-)9@F3F>Ee*4VVhEN+`sSx- z@eL#Le8y|MWquG;e$K1f-h>_xccVE-;9BOWdJugijyQ&kG9&B!|U ze(mULj`5#@u)5y2MvX4Vk*Y=H0s@%;Qv-{G7MP+hY@M8pK;Q=X9V1N6m|bR)qglMn zv?}*F^S|)aMGT#cLpwVzrGbY_Hkz07l}1R`*4E&_7&z4h4rm-KG{geybpFwihJ*=3 zJo2QII{^K^1#50LS%?iV5FS+e15%uHDtiPlCPFXwr=bjr|M5Zzn0&(k6q`fHrjEJ9 zxnATuEAKbB%qY{g5~i7rj>R_*h&s30WnARks)zrS<8au^r%BU^)gX&dL!w)vOP5$k z66pw}#gc@RL2&0jSOH#T62BKWa3qX@6b98+0O@Ab?|Ka|w&C(IxGa$K8EpkR9X!Cb zMP;q-6XL~2^$emd$t+BG)06GkT~BU!CLC;nR=h|hZBHLv&PE*b-p+S77-$4s0XCBq zp77rMGL)okph`RQ>Y|lKy2Xc*@=2PZI*MsoA5+Gn?^bool_s{9xmQcas8oE8BzhEq z_(yCklMDGmy}`k(&zUG1Ftm$%Hn`;}gBE2iq5u%S z1C}e$cPM#z(}0f*LZvo~uqp)`fGcbP-dHW51p?A$bJd^lBLV@ji~-9EYYQ+eAlBen zvqK~ft;_E}QBHa}CUvobbdtZEG-$IINNzP;+uueCp_qrFfY)aFkSt9qfE zrXF|ngPG0z-)nGK%=uvEYgq(vdO`u=jg3{Zui69^HS=GLUT+q$To-*l`9~W&+_i;m z)erX8uAfO!cD_gW!s0-3E!y%PPWPm4<#~Y?6EOgzM)Z4FP#_BW+Z}eQAD0g6@>FqH zyz>N$ms({ku!wPzTJUduwRf1R(eI~p+szwlpL(E0-+xz_{XeTX5~^CFUTuo*=2knR z3G|Jwt`JNlFSRLP>;Xjwt{rfO5penl)S!BaDik;aUZjw9pYQhbkR?7TmMFYQAbHhA zw_|8hS~~_w!0OcGFw>ju>^9}Uo}U}g;GjM`055<-VF?HbKt(ff8fVnJ2CAe18R%tL zw|-eQsAJ-svA=+(CV>z&uxYiUXFxldskKUdOk1++C4}nBZO>1sz)NoWhAlk%@#9AV zUf1%$F-1c|GEiYO&hsFq0OA3MB_UmR0;m+E2REg2BXyl5OxJo^R@>uQymR4a2BR_Z zM_P+9!OyQSJ>|wU4CC=%?`{9-ZsERAvm|_j!EU^U|MO24U|@0qTeTC|fOw30 zFyFt|QvCS$@1J7oJ7`7$tP3O%4f4H5BcM<3lX9#o71q@jXGB$@^jNplxd)@!?coAT zBiDXw@Ol|UNiu?-8Z&vJp4D=%=XVs3Jr`GI1f(}H1?=X1DoFgbYf;f4wuA>M@G;lG zS+R8>Ie(y~Mb1@}04`>h@e$8ay&uqivM0@f!sr4O5rA&>4je&P2YM*bS__1(ql#in z(oipD)@SeOSGJ8hGz@Ze&b6P|xWAhmOBIa$@s-Ut0B=|THV6zf=>^siD&z;FlkR}U zgVNxYWRr|6jVfax=*0n1_y=GUvvn%|K;mY%S%Q{MPq9W-z3Zud)}gnzH?-$~I9aLo z#Bs51OJgwIw=i4=92z|p-zH*5Vibhw&(7wHAzlCI+4+z|E-31sYbXRW8F4!xE`QkM zJ43psNs2|i7RKCvODwpSBr|>DPL*AMKW_O0*UU%l$;)5z=2EvWy zLVYx#=kuu$XsQl~wJ+xXzCjG|t+AMf<`0*uag6`6ZxMMy`uO%ZG z-pDWLW!gxVlF>?DcZw_P_h_C}**eRkD^2YJIr9z>8L0=!A3Qd5EYK%*c1)juf*%78 zt`(`4jP5%A`t|FlGBwCinB1JKLS;RWe9?8^%|%=maLd0dE?$y(FphpT3geD zkdy&b^;f3mc0Twk#n1wTO9bHSG_+W`0}CF8)ok1!wBQQw$Gg;4v|7y)ZQ0>molN+j z<@%$kmJkuxRyAVf#Nk~@FUF!8NojZ_2}-MDV%eh>>9teoj3*b$r==eqyGb-E6#6a1 z$ohY85-fF++K-pJl@@Be4d(g@Y>d2A#@0(pnbpXw?51Zx+Gw_ZY$~Dw_iAQzhpTOr3Y4#=5rIcwXk;{7 z7k|~5#TpIN9z5U^7=e?NNkhhwM11|=aN#a69f8G=3to^;=Z=r!zYA`AF1@Lb2P?(} zEXC?)AE{j)obi#))wgVG1U$uDObkO)O~)JKj`RmpUx%yo2Pz*)(W6ei zn+4*bQh8=oQ)5>(T$sx@Oc#O0G=5Y#+*wu4xg}J1rj6SK+Q*Z3soT9@E8^&^j3Vop z&1f8;H5K}+rJ`^54n-WsWH@aVEZHw`cR)fHnl5oZsGs6Fc(^_HyciRM`h|V5lq_F6 zUTM~tt7P48+orv*!2@UEfg{`t0#1iAwon`Zq#R=C0~{yV$_gTS`GJp*5NOdJAdUk8 zYDxd{tNp$Hd7CyF5UGWE{rdGv?Y#B+MqextC7}`RQ;^D1lWa$XA|3z}+G=DE8DU;( zc0|JI)%>GFZ?bPj9`aE;o-l^xQ=pQ<4K_yE$$f{0)((CHh{Gm6inszu3=P%-eV05> z3rttwv{0YHd@6-^-ulc<`P?{o5@NN(&iG@Cu%+I`@%5_T`-;<4mUnNBJ%%27Qtp;& zB;H-(h{_#H2fg-5sl6uiwEfVjYbE0@Nkn<2P0eKWXS`Gn_Q;LtRZ ziXGi-9e)7QDc7r7TbkP^LlwUFydFAXTVc$^uk7Z5^vG=|HnS0pT3Giyei3 z=4>Df2JB1NE2=|~(k9l`)xE+A><|Bl?=>2Bz)LQN+S;y@&TKoDV&}qy?$%3AwBwcR znd58lrj$*#8N40Du))3K0yZ`9Y1n_HrVfBD+Xv3anE7zr{!@~(1APbf1c-j%4E<|h zBG@@Q8~23cEqGlo*0$%^fd3bOse-wK{vUgAfEQ?Q-TrSd)vJu(LOf65z(j{`M`*wi zniT}DSB2ZT@%`C|&r{Vu#AH&OpfMW)b=s5OI<{?3o__iMBZ6>lmanMy*;33gwF0;S zl7cx))_`3FNZ5Q_k2?%B=Wa(bC{2DF)%A6lVQ*!A$wGLYpUAbwp5$D)dmCXMcvdVX z!y8}|n2i6D0CCCjiHX@}Hx^)}e<_gp0nPIt%v6AX{SFQeFc|d0x;tEK2=#Vu7~ut` zU#c)KC=67zg<}7KCsOdVOWMjHhx&85s}0L013>y*QQx&rF8-ygjXAUjDel>oyC{2O2x^(M2J^ead1r}~tcfKDeY zEG%zvYK^Qz^3j<_JG9J$#CTkTi=la?7E7XZXnP6s^`^e6n$rEJ z1gYynQ{x85Mf-vN=3mKM80IlJ(WWWC)&hfz>8UzVSkCVa^c@Y+Um4!>5=XiHbVvZv z+hMoN<7?0Ddq5ZIET$8d-(Da4Shbh1vXS0VjMX-r5}h`vzh@6(U0Wf(EF26u05`em zn0LAiVggu5fb0NBzx?rqgGT(?s{z-;@j&^_wkYdFj704eZ#JrM^by{6vsc-^ntKkp zFv^Q&{jqEwx2oa93h|9tIESRp-4q*~ib4!2v$)(~mIf*hi5hv%NI@fym>E7{oXdLn zmepZJrGmpsSXg&yS+*v7|2EyWQIRQeyTJ3V-clHMiA>Z`j) zPeeWOMCXt#x$u4Lq*uE=uCDx2tkQdz_V6kC*T9@Prtq0tn1*U2NwM>VyH`9zNW3$o z*xGzS9_j&da&p=O3)^0&%+C+Dp~21=cL2WA4|j5)a($b@VXG z{#$U2WM+Oo@%}cCcSH+(^LuZ4f#w%JuD)go&U`aGE0FrN|5tg}{g3tkcS*7`Qp!i6 ziok5b&*w6vS)-!#+5x2Lbj0myg%Rjz90AhaR2am z^mzDO`+B`!uXE1xoO88DJ$Z6ZpPc-P5}U(LHS%-TG*h}0FWRGAC5 zax8Z5d-v5Oy&><7ImM61bWm1}EA-gi(&ue$ZLKR09-r0iEHuerTY0r8L%A^}^LuDG z^g~s+(iKA!6CM|rDrZJH$x#_-r8LQlBccy-oP; zU*YZD7pYxJE!AD^8!xq0s2zXAvT*oTK~06xX{VH+8xk*6U%u5FXcukxAv#_l{Od>7 z#G>(6%i~-2^R`VQmut<6%$e>09JUA~K%DhMUWSr{Y zyU^j;u-XDwHsT@PPyA!sTXK=~@`G#v=j$TZ%?1MdqU_tsC)rX3s;bNnNZ}yR= z5*Dr+2)ew(Swl)y#w~Bwt|Z}^cLZC4)66w;b)}}r&VtdAl|yTRQ7y_;|Cin=Lvf zypj(1Rnt&tG@SXAjhve-dx5WsQtz8KAm7>6Wn!2ldyf8h8UB>#nyM4(q9h|DgD|+g zz5P%_d52_}TJnIV(nDqm71iouy5qF#P48=bBYw4-chnr$U0zIY`3WZRjeMRp&`8I! z_PKBvwf(I9yHI;3jG5H3_!=oXccX=QT)om;t-#I#-n@}Si;@0K)(7QBk%B`KY;E&ugUU4Z@05Qo4O1+p6alEqCs?r?WIBT$*SJ>N7bR^e5$gJ?|xS7<}6;Oc-WnX8KP(_Kvud289exKGiJ!+rPd`Qg(ath9kAX>0dnc!7r$M!d~98 ziRZkI^5#Bk!Dt2DyW_VPUxgKm?r@yHW@)MSi}n5U=i9iXtgro%SFX#|bqs3w>U8R2 zjC>NC+{WI<1EurJO|K+Ko4!R@1%Eg3;J4t-Oz*5pCw=;dRZO0SdHh&~BfTP3{`q4@ zS8V7d&h39tewP2lhOjS>eRio!PQ7)oqCYA9&-%#i>x@$@K36+c3Ufm)1YGpgzw1wt z^uF5?r{bBmPH)lUOMa4bb;~LTA6+a~0=rr09pfg>>zi|8lq%gC`o8L2>)*)KgSG{F zPAc`nZ*6S(c@J1C;^W6-e(bj?ix-k_V`>Y!&p*z4XP%Cgr>g0d>C{Fr@GD?kdakwP zOQniPa-?D!i=iK^A2P0Ug0Qvh;pbNg(l|HFEq^CO)^RMZeH@7p|1&~of zf57V$5EA-mU5qqJ8H{A$gL(}q>&*pz^4uS|=zn^i=RQ$g7V`7fINRo_OHnGHDw{b? zcT`?Br>a_`m16nqad>kCoyXo#p(?7qXJS9WEJf~a9falRo&7K)JOlh9B1|Vwo+MI` z5V#l^8J|9lNZU>*s<^4 z=z#z@@}F}p%*`u5xXcd>pWLP#w1IiojdQvFVg5SzEZUfrbWl3F^M&aFYRWB7%_;5e`q! zb@tLi!jZ+pqouFEol4rai%5#&3#&1xdMWV$hSC=!p75+vaxT+QdHk8{hkkkmh?!t& znHP(;L$a1he5h7jMkvHpmY+ElKZ}yDT$oBt@HzR)=3 zdG7>sl+s4&9XX$mMvY7lmzLMFe-oZvv3x_`v+%>VuE{HQD`{cdo@nYDZlh9+6FV!P zFmo(?jgfUUgCPgs?qj&lQqH_=!pHRDpyfk~`?AuBg52E8@Bh7PP`+7VU zFBaH#*F*Vz=kW6>WvXr_{GGE5EUj9pgy?6Ar5Y{o@)Q&Zl89?XWhIlY1&yK)o~KTCm4zHpjpdjpzCeGfCuqGOQ}@ z_=e}OI~c2(h1wY(=%Au;<(l$bcI|cf`$v?X!OtY7JcZp;Pv;%U>CpE3u@A~0_4V$X zlFu$?>AYImX z3xY%NU4ihyQ`d<5Xts2BbKF7*@5p8 zVLptCVCyt~XVYAN%_5H# zDZE@9`rzJ`J8ym{CnDJ}dLXm2=g5(zlJmjK&D=+Bc_9Ty)rYkM<=^1#EfUn>{kK9L z7cb!~H!_N($R0X)Fz3x1(N;YQgcq0btim*%)S#cYfAl^V8xuD0FVcif&S4b;4}ZcZ z^dCPB?NMFb=R$E13-DoHhJo`jkHYtFZ_U9iS>4arZrmwi*w{>U#xsJ`__CPCU=8zF zd$#93>8vbGX;Y@#iyr_yx=K7cza1*;Zh_c*Raod^v1=$6N=x=7B_eu>>mPwp&0M;d z<)(2a#jYva4VQz}!w(SGE)

$;kq;F)TjHmm_06c_$|wyNcn%QGjplN^|H?uES4l z1TyLx8q8rGtZoufwIjS*;O+{@wL7>1!J{f}@7}$>h%1J@Q6}G=|E2BU=e=DUg@=+6Uh+qD z4cj+8#CC?Qd#9lz?T{(W&K9G>v6qbW;w}Z(=U8hxiL6xW>govl$=sRVon`dK3?n(P zw4K=&2aLrfzX}FGNDYS_ljFvX8#=dGIK{mnwS^Hs&RT>x`NYInJv}{9>xO+U z6%b&ex3siO7FTW~u90IF7Dgm&`-RE1+gX_ZWVfB7l z9v24@FT+N+=_rx_*jIMT$wf_1-zr%eU@Gf4YO(fb-iN1b(L|#At=$9X9v451xelUQ z2ox9qes!inY~!X)kw&K*W8}hNSVVVWJxG)XR`iP!-dpPu z44`IyroKFA-62l&b0R4Ntcf>5#02*5-;cshBA?gw!DXu#aSXc5SP({X?2Gh_jC@j3 zZPvZgoSSiUW1B^FPcUUAy-9Q8(u9?J*LX~D-{{ZpyUcR;_4D?K-#z56u-r6N73)GH zzxG&k$FnA->9Lpa@0+F4(b4U24bBh;DCi^huK0c_mzg2uaKnEklvf^ci+3@$!zpeu zG>2umg^kU0p{rP_ZsyK$Wq)E6IKklrEQ~s_9D(o z>TiqAIgia9)qz3wut-;@Q@pbDvi<@7z3cr{GXnNd^DqFFU4n zI5>Z0*sEAi)qWm!G{0JMn{ipRdXZPz_DY~qN5cx^ubvv7*5QX|{4<>Pw?4Pg)+hDX zoYd3(s5y~c_Gw>V@{7-tGPfM4FCM7+%Rr}pbZI+<#)nN=_X``%+Zd`#9}F#}&uVJ} zj&aE4UAWt8KWqt`=R{}WRQyfysvEDeZrF@sm{q;h6Sl1!Fk^)v9a~)N@rIWoqo7dS z!TXqrRI5F_D_l5vtYp^Jjq{}W0kIy|>!!{OxoRoe>HfjNfQ;#7+0*1_xRT+#*YHqd z#9dlt4sg`3us)`AS1yG-HMrbW9GEB({^O4oJrffXm<15_Lkb&P>u+I$WNjScq^m(j zRrxktOI7DzEG9OzTo&IG*D^lTK&`9B!I*r%XDbJRg z@(}SleDw^4{*9O41uh=j>v<$qW|rJ757m}UuQ$q{x-mlP&0$kM<2CMD(aGd=;*l9Fw5XOA1vrq4+8~#@gSizBu38Aap)yflaGFJujS* zq$+yOoV-;eZ}A$*JIxmR`aY6=%;D>Ntq+yyskh1XWqU`sUst9lW$5_-!!z2K%7PNfo6SdL(Mfm{O?1h|_2pgiyR+9;Q{!@#KQQ*)o^N?`NFhY!kI`s-PzPbl44FP#x!ICpV_M&g$~@b|z# z%_p;#78Y>E3t*jCuF9O7S2Iigk{_|NGxFl3G;4FNbg%nX9B3vk!yHIUtE;IoB3nn*2i4x9 z{<#od@xZTNjqR5_HP4=9!(#{-E#jO!jtSN1*JLK}g389mz+Cg%w$WdP>6#NZnY;Jx zm|^_qv^@WKlRSqdAOs$Qh)&haB;G>9=SO~J3XhM;K12OI@+ac3p>lp%afA-xxmB&NVwSJ z#_IL$n=a@gtoWO$zg7JpviFLdbM)tQF1C++86G^Wb0l<6)yxf*Z)0PNxAn60SISx)kX9o9>;=Mw z-O3A+0`)D##1Tih7TJShBA9yKxy}m{cpZ5H3G*5l=L5pScL3~Kfb{y51m))+0xlf{ z1^KZh5HH$)rD(e4y-akmwPIEye@*H6XCjmH9E`Mtkb;^rVECXOtUSSMZ!nOsbIUmq5yHBp6Jur}&j%627 ze*2+KMLAP>mjbiOAFuV>(=Q#JW3w;qc<<~TvGJ{bdF6deIOotZLhxGj2{fj(W?cx6 zRd6HLTIt_;F&(}8iHYU`%9-iKjP{4(Om@nA42aYWrBMxkn|tD~yjt?iJ@T;de3c!|8^XnQc-lP_FnOeNN~3u1KACfg-5zH$4-4di z$LJQhnOVKzQde)FGx>`E;2ywV5POKUjTlW5H71A=lHk?FmqtVf(cjmoW`vo6oSa;~ zqa<=ME)_InDyq$##BT)DwWH_Q6u^-PdxGoG*s+@lu=u?B{H9Vt?pJSRp=z|RR^{XM zAkBkeWh0OMvY0;oQ1YbR?(utCs;a_=2`rFI2_;%8Knp}~(Yj3c9RrtHLel2Z#j8Qb zG+C_1+Cra2r%?zhP**4D=#Ps)uffgC@(ZTlMD+-iqq_R~3Q%9T@17#;in$l3(p`C? zy$PC(_=QP=#@}dr4DKHd>Fx{pyx1;o?nmz2fhQ_a_ly*ZYE(w(Q-k9#iZ-#os=V+Z zUi0=T&C(X$ZMK`*3yoEcX45DTL8vU5nawOHex?y{InB$X~OYGC=YW9 z;JQP9u0<$R?SCgQx1l8P{cyZ>YqzKrF{OkyhysJz zdXen2*(M5*7%U4uVIE8rLm1|mQX>J24LoRAGj-~4k zOiVn+DHP8v1sw?^BGjE-7UxW=4f3;yJ|jQq@mTL!cyMK$WDMhL>X4_9^KG8&3CX%44H0k1{h?JE2{G-iGwmPsjZbCq|BEK# zU+~4~rfxhM*>PT|cC*QZZlI5A-ZKCdyXfflZ!=FjHmS7US>)fACryBtg+77Y{PvkHYi--HAw{VoDGUb>$0sVz3e+ z_pU-bgK+3eY|v$SxJ4qw6k?MG(xg1dkSR6^)=I?z$Be=Qd;2dc0dhx<5c&i3=P%>) zZ}RAz&N+eNB6=JJwbb0wvKkB{LdjDxH@9X>AGX4}zVZi%WFtYG2U<-u+>E{_bRc*_ zD9D9DTuefMHAP|z2;vd@A$m|k=thY(w#_q2jG@92o|`tU)^e&1OWqWsrK1}h9Mmz* zOu(I6USHQiR5TF!0>;dQrh59>UId=1@qEkBI|-8lXzsxa1$tzCDD9{|uR~+f?vv)s z47so;XJ%!A@ks>w>2>f62+)G{V%(y3*fp2Uho}jNjg9^A_s{s;WOo$oVNj+)+q(8bU5muFt54%X$@3W#lUoAR*)^8$rL@Y zt0D`Icz)a>5f%k@vt%X-g^h|ve`giTK3+#;Zt2gTNaas8HNMbTB<`->p@Ozvg^fd# z+Np5q&TPq!tjx^OR`L#{7gD~wL%fEMz)*ssv zz`bji6<+uNOP2nHiM5siP|~Qi-iC&T!v*Id2w-edTV3rF5y9!YFmc-2dOy^0DC!5% zss+_d1#VNgV~7@chy^?T$RgZG$eQpC8!KnNhbMj~|B1(OSS1MSe1%>NDOjUir_lCd zKB+7wI=bVnUEh32u!Lx8lY6sk^StpVAN`x+<^gj{gs2q&UeI358bM;&Bgv^xdi6I}&V zyA<8u9<}*`LtuJ-{&>2s8AcYsuDAgFy$u{gQR)PUMtCc6qySljBX!w!SOGa>d`VG% zUm|XfR!FMBMm4s=uR}z?!Qp*7&90ki<|HL zOICI{6%vg)79ZKm3}z2o)Ulx^%|bT&w7;GT(CBLK`Wo-b;#4il7a{#erug{y5CxXA z@W4DlQrje3I`q>d%U)?|X_$1q!o$NUt**e+&`?C?dJGPP-4WFyNz6y?`mNW|y;!BD z!(L=J=-aiGTurSXR<0DPCII!P8X6MNVZ@r$7X%-nM^=ARlY;V&Hh+A!{`%xZvOrKk|W`>Jee!a{z8<}7d^0##$5YC*sqg^+fDWXEB5zvbYtf5s69 zHUK2wp+nE!zCCg)oQ)iYAu5VK_U+#71*XwzZGb+$2)FSJ*v4(0ZZ4n{ z${bLn=6f6z&V+=BBX)c!c6pWCsYCs|M7o!G(~_;$$M-RevNx@zErS!=) zWYUzCa8_x6*MI)%=eK{12;hZ!U;YN6NVzHlrlD8%3c!Ef};b&xV*mYN1n zO;}sM_%*k}HK4R}pMV6(YQukoj)0&bEUd!1WqguWZ;Uo*_;c}^9b!@Gd_}8%lj_SB z@zj6HY9^bFa6nNImah^v{MU&w+`ysiU)21F-K=%E z!D{3jKb_}RW%_d_q>)J*>oJpmx{8ORh(Cm}joZ5GZgH}!<-98y>tUxkbOCqdo3qmz zDtzm0#AC*vVKUY2I2e5B;G|$`h1`Fn2TscJk<`H(O=rTB0*cv`=@}&OLX?#?=t*egpiyY@SfACvT@n~W+{|$EJyp2*|9uq9 qtN-Uw{?%hJz5f4lGlA*#Z;$*nK7ReZ5kDMLc_`~L;}opsy* diff --git a/doc/img/HackRFInput_plugin.xcf b/doc/img/HackRFInput_plugin.xcf index 3bc026e323d954948eeb4b28e29736af47828675..fb3a0ad4f45c81b57a818ee4b6ed6da38d38f6bb 100644 GIT binary patch delta 4123 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 DU|LY4 literal 18104 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 diff --git a/doc/img/KiwiSDRInput_plugin.xcf b/doc/img/KiwiSDRInput_plugin.xcf index db052dab242b8e6e2bd556df1d54bb66503adb9c..426b71f6543db723ee2eece11f821f913bcc9e40 100644 GIT binary patch delta 3116 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 delta 5522 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 diff --git a/doc/img/LimeSDRInput_plugin_1.png b/doc/img/LimeSDRInput_plugin_1.png index 54fcf716a10feb906292bb8076e83decac3c8566..313b50d2329cec1a81b4f5d4d25ff47555b8eb1a 100644 GIT binary patch literal 8987 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 literal 9960 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 D7)l$G delta 3232 zcmcJR4Qx|Y6vt2Zy6&SZW$OmrCL6G=W2MEl z3Me3Ze7KFRMIt(djqW8z3<{#r@F6-0C;|#0V)z!A1-kY<|L>#SD}iX1aFbu|x#!+{ z?m6$Cd*9vA5#jnX;=OWRUr)sh-LSJnhP_0l0YvegMAidD{XQkioI*4RefcAa3SC5H zQ;Et;h-&&1wdRssJSHyQl%yNN)n>lT*G7!iWqql1P+!zZKu^SUgzK2od??{| z_buwp%Fw9wL~#N55(A{^D8c?{9Z_^VfS=I?zyZb)VJOA4f!*Lo@CUd8M50(Tk+B>$ z=YrS3D$oSB6ZMLNuW>(sli(76HR`e<>u-5U(zg<9fh~Xs-+;s547g5|$Po20!4{UbW`kld3QUCi z)|n6%fw#d%?rPLzZcog8+}QNq+<{^!qc-?XeXWHl&$XhTYA4cDc7#kZ!o7#2G$ zm7vQ~NNKMl6NZ3F@OXHC+IjT*h|*(03P4t*mw{?91Q$L>`(5rjVjhJF3|rUiax3;Qy|LR;lR8;XUYEPEej`>< ztSK%us4m>txQkNhKvI6T|S4FIU-WSvx zFxW2y4$6b1hE5QU%MA>><_`|T^qbw5ZYg56yo|r|U}tEY;)751LFkga^Kwffb6JLN zJhZyQd+nFTJb2sX6h$XS!DIg<)WNoQ|D0@tsi;Lf6;j5KKT*6AYDSUIn72h-7g9t@ z5u99zFQ8hH71!4w7*&BO3C~s?5?6&Zu-RYyOWU-GouMW}-koFn=#xet7C+Z0;p@d* zP5VZf>r_|g&+jCYo?F(h7`gV7VL5A56AV>Oy&`MROU_Q*n7Edpv*aa)j;8K5V1BFQ#I*wny?u!Z*RHG8|_&TYl0Fx+W%3d3n22~N=} z3eGS|N|`;*1ZUSCDU}AQd!3-xcWF4B*wt__Umcfrd_>3wT6s{{M;YZr63|l1q6H&Cc zP|-_xui;NzRt0YBFZ!Km@OGjhOToKf6W9iJfrH=#QAsLMDgNN4_=A_e3RZ#!@Co<= z><7Pr^JJz{9~OxPDIk}>kTWLAHWb&NTr>d;b%g7Nj^n2mydS}qUr_Yg04i|JR{QbT zj0Wn*2=-Ut(Nlp(&+vud18@kyhe}+>l`Q~QaOFOtk-rjE;R#dqAb1A$Bwhqd0Rpey z1hyf7>Rk{JdG!f!5!YxEUtiQ<|+7^Qq0Kv7j z00h^z4;%yMz%9&;0m&c-l!C{=WH1XX1}i{40^QL9VJFxJjv-JBKkvh&2-dSk;}o3m zv=Oy00r<-8_*rS4YDa3cr-KZT4eTHv6oO*#FsJ|{z$j1y#)1i8B6u211Jl7wFo%rP PJ`chIu!!sR@$!EG1`d=2 diff --git a/doc/img/LocalInput_plugin.png b/doc/img/LocalInput_plugin.png index 3585ee104b3e4bbcb4209eb8d8168d043ace75aa..a44b5a7ce7633cfab5bf900e01b1e085f0a6d5df 100644 GIT binary patch literal 11029 zcmcI~cTkgGw=Rf)N)wSTT|j#8UAj_4rAY_r0i<{M2}-Xby;(x8r9+PS0zrPSBB0Xw9W zc}G7=5w%t==PXi!S>a0g$$&ZsHExeh;mj4tR@bQEk7lc%0=T4Uom~&> zBQi9aFBC-8ShJF2G-3^0-Wx+D&l~pxSGurAqZ;4YfG77}k~?B!7jEIbT3s~>hK5#a z+1yN5vN-%5SDP%d2kB3^vZ=mWp(`fN`W`&4p&C%Ku0kX7@CS&F=w_Ddw^MsNrmjBb zlWmQJ`KEQk>sC$`rskraXsCkWIp}J3GS{Gm@~Goo`i6WzEMIR;z_Gv*NlV7M73H+F`+0wkM@E?ExFZ zgQbr-Aup?*l5f{9F-)u<#La@$l>+RB1}oPSXnX1I0P?M`>f!ZG+xkj$*~CrbPh{7Y z;nBbbt~co^=wz@7S1{Qv@%3$y`DO$WdFEUbRqtqOKq)n^Pj?5uM6|)j{vi=np%b$T z*hSYL?k9s!oN7W_-odVYZ<-fBjgZ=TwQ*Rep{esLsM<#Mk_;R@X`dyBE2*eg-KHSqhJ=baR$TXf|D^Gpm~drf;*IzL-QS7`52pmtoEkyjA z9#_%Ik&nqua{2&c5F5?I2_|Q7?RBOBEn0Mqh3mhTf*bL1y!^!wN1vnU)m$}dxR_X7 zR?Pi&htTHIgo46#ZRcnb$EbBfFz|V)jHyD#?v^UsMe;Id7&`O*1DE*5g3$lTAyp z;^og(;ZcKp$A_=(B=kptpkk(~Qo^Y1S}=2v9OxPqTTgB$w01)GS_b|w9adLYoyA=Q z>D^jRLF36?R}jR_PgXL!RD=k^bRnbEm;8wnH4?=AyG@kf{pFu;NWN6Q+J`I~1n4K7 zsQk>)@rLkd(A%l`v+Eo_%i(KVYph2lEG?cjcaB6YR9YBqeyc8TOPx3v zl*bI5KDb_4#z7Ut_`@X(7@dx!>YanaszdnS_=4eLS2L&7;8`85qjCecqD5bI6Dj2| zuiuKz0oA`0CHGa2b*P}Z*_<$Io0?{!#iXahG_4D zsYF1bGJeCJMhtTmC*n+oTb140J`r9?S)=b;9+)ee)y+RjvMuh|$tOi$;XB%gLB49+ zFWjiZ3!4_SG?8yRm1=8xXpW_n{Beu=8!X3@WUC+_w!{CXThOQ_lpP5Q;e6XI`U2Sp z!Tiz>oT3rSW@?|1?BFn!c>

82g8LKN?3kQ!B&4mR;oI^|N9#NNE+O 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 T43+=_D~_hBj!NZI%dr0i$Kbv$ literal 12139 zcmbWd2T)W^ur`b@0xC&zPJ#j=SwON#aFHY;Npg^!BrI`v1tdupl$->~lJgQJNtT?K z3=)=Qfh8@l-{HM~{kQ7-@2$G`r)uid4rgXg_w@91_wz)&)_h5NkMSNJ9v-PGNa+n8 z-mNj9QQaW~dV(gxxPb?urP@m+;0gSlE5c#GZW#_mH+6?e||Ur?n>9;X9JD?>(R&mJm#T1VNqp&uJ>E6Pu&K4CCtTT zO<6Ul{=!F|EmnqI^yn%b72vViyyd?+C`s5J93CF-8KJGn{@}rPb{Yx_?YPh3;XEK^ zB_-;-2mkZFdv7TIKV$y~eSV3CitJ-pUva{+I*XtleIV2aP zpLsz330ty(C6H=`HUDo$8N|ey7_%0FdOnacbzaM8rdWk-EpCT2>t1Jpov||T*|utN zWuf)7XXS`Jf_rc5lREI0n(l9!;8UqQcmIc(KSWFX7w3o~G^YmyEcd{<>933rN{io> zN$L;w$V|UIM541SAUXk*{dZTegOZh42ldfkE|fcRdHb?vxjwoR?YHTFd|wLJW?-4?(G^u z@Ah=F+Gb~OxrI|YRMb)&F-(Lg0=py~I#l{(k-6}q+Qg%}@=Owvcd z5G-ltzwr#*!cI@?r|s1LUEtf|^hMoI)USb~m6zo&-hAr;HErbct#m7M!{ps=Z_3`m zU4yJRZ>F{>!CV{FytLwgeoeiz7OEJoY{l`N9a%!6lI$y($odhZCdN9(ueNlWxi5J6 zfL@l!)QrG;BvAfZ2^bH&$Kf|G-;xz8=Oz2hiIECTY=pn}49|n@U>|WcOv6YO|9s3g zPqu@SP(FYl)RZLF^j=uKgL)SZHA#Y4Y|>s~B&Hy+H=~>+hgLCPWZ=iDhvZ6&JsRV0 z!?G0?htOobKxhjwSe&sp*b0z<(3vYBU=JaRZ)h)_9vZw@sZV;oJeHlb!qgOY5_~hrO z9@)kaVRSk0(px2^JlAbeIG9^AJ$zt8iu1zHt4+gJNq*^Pa-n{B`0YV`Gsq8iq%&<+ zo2p|zo5ltoX;Ap>Eq6{e2xbuCnU#qaVKJs#~>@6l@r4d1(Qug1+k%3hRO;$F8fLOBP+>+vMFN< z3W6eB_m2*iwP0x@qt_y#8t=V310*{pXqBb!aeaq0)x#zY6cK6cl!Gn8a?88&g zmLX*mB^JF>XbF=lSNs%+mU8kjsFS#rYo)sF&!0cb^&26dKADT8m>-(_4611;Ox8&A zT#g5^4`#}y1qCHclObyCb+UX|-3f_`Y^|0Zuu|mqUQS{s*EUsQ)>I6X5gmW7boP8@ zSW8Lu$O0fAcMNPxu+b`W`e+e zPg%*GBn|pnbHyek8p6pWL>VdIezfq*i_QkG!tW&m zk=oCUGPXg?(b&-!hChNq@6r<9@5XpK1Ozl%54O_|L`GK#eE`X*R&vk_xs~<|=QqEK z(Uqtv_Fhho?6^|bKn73hUCcyzY6z4L15UCCX-wK_@j=Mvx6t4tQDre@sFBSJrGJ9M zNO~+5Mt54z&U^+pZ2J5AFYB5c8lH)Wic0RSsmG|~j!GNJcIRI@Ty%emzyIFC*oJvc zWbI&Cmd!f1Jo2Ygf63u2YrFL!o~HUEowV5Pn3Ek?T|qi;E~RQTF(;>RGw)k1T|MWm z>ctH??6e+)yu!hsVf-aG1&hn(LSSXOw9r&<8vXB~60Y)^R{hBvE%e%nWP-1xO|Hz# zvf?dh@pksgG-b71A#6ZIhD{29HDs&*QT> zORMO;x}DOuq7<5PSD2|na)G%7eBf32_4_O79Kw1XL_+jOICkOA&$XerxHo=Ul}_-b_uOM;Qy2y^=y%~ zRGhn8mvoP>=8dCA-T8ul6*RlIZSkXUsuXn|a*}-Wg24ez*w(qRy}%Soh0&tRV?q2$ zmHpVFhJ-KaUA&DWOp^zfgY(M**#*m^*`3oFSa@nbWKT@>NV|;NBjVv{taQl?quaZ5 zdQv>4r4F`W>m7Fpxm$KuPavg{w3wgkm3dT~pcff=d6}Rj(&O)+v)dL|#+BO!VU8EY zC_d1TN%CgO(7r(Z=}RL?wIENx54$iLOOrl|`o#HA$b2(JESXitN9GzvG^00k5>$f~ zrPcpvt5jTm(bCph{t@*mE>*qkKSmP=O;~?g90;m!7V@Ca+59suH@shC*1!>3G5|wuUqH+h=DsewIE{Zjxwhl8RfzMGso*0=T;4_)la^o7{`$wWrv;d0 zI<_^Fn8FPc{&q6{%CMG9Wz;L6|zbh*%c|U$w)X($s^Z&@n$x(!dHk#dK_=y?cCda! zUK=x!J>n+zsMtDp+S~ROVr6kiR%YwJm#=0nMc)K>JlE5stzQH)S@lHS%C4zNd_V9F zjqpdUcuEPU4H<)H-w&pUhD}Vo#jA5&8eYO(d!L||mZ%$$5S3yRIH07C`Pve88Up)l zvH9Bhax;0C)^nRs5{6$yYyr_-#HFPT{Ep{r-1uhn%zgdN?sPfe z0@M2vxJ6wNGOYf4!mnPvqRshfPT!MYd}`g9XRfcG z;6y!mEI1y0E0depEESn?R#xyM)BtJi&uM6C_E?KpRL{~&gP#xv2Wsc4Xd4=;IygMO z*^a!t*M^3Dh1$8{F)=pBe@C4bn`r9iH2~pse#Wrot)oa)yut5_T6eOxF|q}B$I!uR z3<(UqvLmkVJLOPCB=wv6lynTgG<1enFkUY!q!;9{OnY^d1}dZq=850Ft-3efxqH_F zdxD&pnyPY~7O=FmH9M8+!x%m}&8s5EB#ITWGAd*VnbTw+~xlA==^oGw>QR zi9%xL{f9P4RNMF6;{CI$x{+pkvYLRRSFWt)_FOA&lscID)vvjFj71t;Vbx0}(01v5 zcywe~X-QycXqcCuUuD^SFI|%x)pE+Js;X*jYkRa0M^(Xa(6WZrdtek|=o`OLssrY2 za&hYpA4qG~JkuxF@hPKfB)Rm5FFyFE#uDjTteO22qkYu+ep<{~nfFIm(L?h@@Sk?m z`wT^;rBM&nzPW8>c#C*!4(88p$FN9))YPn|N)72r2+7#w29t%Y=q25`RC42G{ZA^a z`@ZDkM@uzD^8LvozESE=%=}y}6RqX9)b`onf@G~9gk^h(~*2{kXsl0sVN;(2(ao;1*%DeHf>AqZ3T^OF)57XEm;L-Hu$ zZftLGhq?Lo*bf=paD20C{AH1>eyaI?U3m5 z6PB&ok$XHvH5uA`C8Orc==mN|sGAI48}tKHNqrKyWK)^*LfG*QAtzzieJYEb{vG!6 zhHo@xG*y27cNb;Xtg?5Be&I}IqnHF(|K#+_p-)Ur&Ac0?e`cu!2deevxoyu-hraIu zZupLk6SwB3zzl+~%~)NEG_pkRrm}gY%f-8QEsG)DPF+awQI|CK{OEIerSxK6Z`iHZ zw%+2hb?0p^_0oTxl||pQRY@aD<(sc-P*aQ}PS)OYaGDt~Jmd26QnP+{55A@Y@jraN zpDLNCgBn(k;1YfKrDSAe8E3jM917{3ha@efkP|mo=FmpOi==S->H+jiny_ z=tf>yzSyRt>d)I#l3Psacm3wlyK!>dbP>pmOTL4mQCVOm7tqJGN$~21Gotn=Dhs zMkq7Gl>XF(cZ{kz5Zo|0XG2d2|C#>&^=|EhgL!q~LTU&Y?jytxT*io3#LfwX0K28F}m}rYIkgh*KZj^poB~G zU%S#>N!B-N30lga?7i|*3ru;tr_5Webah_#(+>U^{1zwz&{q^AePrjxW}o*78tS60 zW1te6k|GVc@6jq8$JbNv1_I zYr_oDy4sPw)3YWrSJ$_OnW%fiZwU{kClAZ(v+RvUd8(O8G6BbiZklY%b;V4_r#Ul1 zk*Yz2JG$EynbWc2Fk0q|HLnNmo98y}frYyrRL5H%c8H-qIC{b#O8*?Ja)-G!8p-F6 z?JOe&iO&%=9?9ZT5%T;?T9Dw9X~ONx*-ntwovo}AvMS_j-Fk1Nskb(agmA|2^$<4g zGi1u=Z|$N<<_Cf%XoXGQq?cwJk$v{`NZ~;OUF)!5W!)?ezgtg*B%I^%;KKeH){kGD zyZ~!D^DEZI+M~Cgkcx@oSG<)T>-njsUVzucmSY3(v2|bNsPl9@%sY_RKc{JlX@OLL z@&P4JIp68L2-O413UPxMw0>p$ zd;740x4deI^q0Pw{y~fV)_n(I;Zhih(Gj2j`#4i^@etP-RSRs#%S1GRW&fGjImx3Ss!32wP%2MQEuF1!qmuH1+U?wJ{BgiB?5ZMNLD4ruj`6H!d zl$`Nm5xcV-Cqcy&{Je8l`lijZ#Om07?Qr3P@PG=|ePBTys}*kSI6NRkf5a~}B*?@G zILF$K{=jl_bA|~ikfVcxn^XpH6`mn|0Wm&*{w$O}UU_Z%L*>?MV|zy_c;6=ubY7P) zz8%bhAA8U7*;@x^2T?Aus>#q|36R>IHJB~wk9N2l3Wx}74cxFotfAo~h$KH+^8w(gUPne0 zOA$$v=~k|mJa8v}>)8a(p4KWD=oIB6KR9v>13a)4k=m{gOh-6|%8WGPp6Jn%4v~n1 zISDu{4R>m>MRr?83?w~XR)U1j>zRGrR#b3EzQ4dtt3#vs*Mbh)e`?XaQ{NP?L}|#R zsvbm9=txsTKtS+}nGDy$@eJ*iQYSz&xf9+^RUL7d8k&zSgICA{#{tiLJN2Ivx=A49 zw(xGaTT34iO=7QGP+*()C^ygy=Fdfu^9Xu0rrBT2^v@VHuF>bv5BwFcp2xy`!tYl1VX;VkYYGSZ^N{PV zzxVUg)4CEp5&)C93kz^GD~ORI>$y0;&ZpdAS_p8Rle}Et$ypGy66$qi6k;Sjjy#!~ z^UMyil^?W)X*<{3bWT!^@DRu zc?26ZU#cM{&qp4_}+=$p2YmW3jM5 zq4(Js?+mD^jrw)y_r!+NO4O9LLOuTjYffulEU%&UJVY@_*S5KbQSGHAryN*~f z7*u(a2H|?GgIfRlfeAypKVBy9j7-_t&-|Hb$9Hc`bAUllZMb4CTcElQMpk>}5mYB* z#vN@JaOH0Yje8NPC)f6Ud}~z#>R-fY(ia#>JXD+CDRAa9#Z)Pk(~^_{_+8SPvqp z8{FA#wj|xo26bZv>{?ZEEv?mNEdC#fgc6F#($?x_bKInD+ zv|hJVq(9-OWxOaTUb9H*W^8?jw%S`!*L3`kW6*J?W3_4&*-B;oiF-xY+&&YL8F%|L zldD6jHGH?y{wW)5^J;>>C{Ri8^a=RKM4sONwv?r9M_)O|L#)B{Trt~U%u#>(+ZX&Q zGORuyFgfB$H@Cb1Q`(C+>O53oJ=L3ux&HISV`YP&v@i?Xd2H@a9*}ftF@5Hhh%C>* zy&-qXZyP}ukglrOnZL_2y_Qz|(#$LAjzzAR4DpXwA!5cU2`aCgcvfgR_2A>S8H0%l zMBRI`ZzhX1y%7Z77!$Dir;td^0Izl1>M(TmZ0Fq1%4O-?=0IKNt&1fHBIg=rVz79O z`}8+XJS(kp+d&wA_wU*5CLq{o(_xCSA!?gtltSPDw;yd5TU_k%+Gy!S0rrpvqk+@< zeAl`9x(EpBHEp-#tHDwkCN4m-2$WR6{;D$Wf{s%hZ?Li_vc%jOuARUJY&A=cV0~jp z?abeR|0$_EM`)Zz$0OQ{i@d8)b{gf$6uvT<`6e)DVR{k`qS6^=0b>EJ0`L_}d0m3O zv6`L(wa$pfDpD}!%y{^Bps)r`{;dO246uLB3`vd*;xKMXM$6Sqn3Mfc-o;i1)x0Hm zarBzV@5*W6D=U))N0-xquaf7Q>Bj_TMyUV?t%C80^5DbVUxR~#svABUK)r;|S%O5% znJo$s;44@>w4imlO`z0bB;FzPG;43OlpYzN}JfE}43}@4;A1&8{OKyp{7C(AP zMatyFjP@jdqfGimJE5Dv5N~2idNy5uv?!a{^XhrD{PXbH-w(I^!jb)Rp_2YM0&xb@e7e_Bov#O)?!BQYNkwHzVdtNf5-DDbOl!P(_?s=vdz+;za# zZNdU&^bG%+&*oM6tiC~Xw>6h7=pXM9MwP;DkgqfT2rSWijzP=lH0)he6tj=J&0)Fj zxk;+5SH4DMFZf`gr$BCV2ou)m@P;s0C)eP3X$w8=eTvQ+>YkW2vHqcgZqp}sY;yli zTyj`cFYT{;^*ja#XNncs`VyGO{pl#dF*G5bzGL2uIj5m2v*JD#RVdd%Zptk1Kl}q= zBJU;~;0N?w1y{^fX@lQ9Xk6>(m|-+7U3fd;`6Be-K9z(f>x^eg1I~$e^><|xS*-5i zAJynEo|=k+{0~WYqu8=G;YeN_VF_^B;7-e&f!H0jjuvfxX#G}7;RVmr>=Evhv=cI- z?QhNQtPlt{kbZutG(^ilrn~fFi)zFVj<&?L-#h<3jw&1dtMI`<9fAMig!Sjf2Ba-LHcM;)R*M#{Vwqvp;GCr&{k_ISh7USU?LCH zw-dBE!m6qIgEY6}`Kti>N4cl22i=)gGEGiNBWR4*{26+Umxt%I!|z!!PRyx#(_{^iG19e z*=vUlf0%J^>5*u%h*U_2{isq%N~Kr>Pg$Yu+VsW~Z0X0`-rXj^jLWh@dUqSn(U<_o z0IBg|H48hHr@Uwj9~lJxIGFA&kkfEvAs;&*iJE7eJ*UpQmC9Qu#^*FJQ)zX+tp)3E z55xxw0M_W$?tqK!0*%up@Vs*Xc7Ev*P|zV|5pa~at zLWK|DD^FgYOd?JE%2*_etI-eU3Eu0;&Ay9*Q!!&$kEFvz6g0^dvTFp?<~{%~di&}zhG(7Z zgoP#3%Pn_p1+cNTZ-BA2&}=L$e|q|isG#+?p*$z@03LBi!v1JiNLc}6Yx7wDlNWr` zcPrzivN8cs%DTOLG$L;c6noUOFeqWyDdMDQsGn#BYP+*nesy|iIR${v&n1M=dh2vs6_g_Q3nLN6G){cI;bTlRp=?jM>=`Q<)huZb8(KB*cXs^GL4?$lUsM#R@j}A6Z$tS zpg-YWyLzjutI1-Hv_R!1J)QZHW;)2ujt9VFlhq%oL^F2(tVi@~NGvMZ*gTTITp`!G zwun-p<$u=|h);AjzjQsdPb~KbUK_C3b{3tXeuj28z2FjL$KWsGL|a;WhQIh;5{4mlr=-;; z@4E?{<%`gOiefy)u0Dr>$Yq5+Pk3ue3g zSfo=>1-f%>{^tVPJm1Nv5)i-9v<1=4HrQC zTXVAv6cEU&dKS+I-Axw}8@q+9U+UTRtO6t7W%_QW=y@UhcKHPwmj7w}(D%@39gtwDro$%9R1)~?yP_>K&zUBMAGs*ps_8d2(>*4WEV6cdkB=~TKG>T$)x_3 zXbv>H)Sxm5I6HOS&TVJig6}RfgkH9qT?Tf}yd z)WMXZjo%J8I3}R1VInX$-&0m(9K+8*(QQ1EsaCk#~u_HN%X2x{&4I+Y)h}I z5&^2-qn=nM*XE8d57iRi-5YD=eKN4fsUNaEsABD8!)ztmVpi{Kb){Xr%aY;Ki^3)R zsMW_^?%h^7j@^EpA$a<=8Vm9Y+a-S$W4+U;nz6H6<@K_#R?=S?0ApYt_!r7TPh~&n zCBJ?#q~b&-K{G{oLO11JF|kvR;l96X`!0Z9aXeQwg7o2&u1^EVoH~SRN2L@1Cc1bj zpv{LssKzbUta=G~4LeQE81d43Z|;W141)M=IDr^I$i2Of_&I!`Y`pFW;YxB4y5J3o z>~mW^|1igw`pl#?OU($A0VwTso19CS-mVE;IM6HNR}2;EVQYq@xx0uM7V)1Vls=_~ z-y!AZ`A zt9fD|&-vCCn~(8Ychc&=Nk)ZQp50JgZc!HI+Veer?6)U5yW{-MQ8{mZK0b3Mrn|S7 z4>ZE{kerLK6zt$IB3lkoUXeL9O{}~9U@RI5A}K1WR4}nQ5|sdKvvTHbLrW6Wra@xw z#gsvTwokKv0m~o}f@jCn?0f7wCFH5T5mkJ3s)=GYyEDH4={~*L0w1<6+nOY;e?OF? zB}Zc9hIw<@RmgFlf?_nP=IcU>w$sA&QPxAv-!2eq=ZSdZ?=dbU4)PA7k6zE46|hiI zNLmF?P_-`zsoO#30hs>s90P4w+-GfMcL6SyM+p(|vRvJ`P`UusU$(HjK5dLx^GX9A znJn>O&+%CN`ZVv$ENTS6Y`~<6HCD{U&hHgT3jK&i)(mX?auQGY`c)Y?f`q{wb|d3! z=+|auT2QE*fbA|SlQCK)l$?$A4^#}L_%i0((diRIQFDMiMA*J#Y;aJD+u?6$L9%0f zWUSx6w-8U`<>Mp1Xz%Inj!#L62T7LE{ z&t$Z=sbe8yK4pVR=-7u%YJh=J8U4xk?R$+}4yly59n00WYjWO3L38(s?XO(G3a!7_ z(938aKhJYHS8kuH!(R72?V`Q56+=c#O;eG9Orh{q)p`r3LT;~ddCV(HfWqQ>(4}@T z-VKolq1{vnwmbM(zjHha4*z0uY=(XL;1zgiZATxNg&D{-fpcEH~hmX;p-w`Kb6 z@XB4ES>1SdJoQIZH#7UsK z7R(9Q^Y)(=G2wFb;{YxB>)6_8g`kXY32VoB-!{D>zr4;e_rC3-a?y@Ye$Y*4cAt^) z6&NgDkMQG5c%-okpicQYIkzIaf33yJ1MZvmbO|O86x{%bN(8_YGXoA)UEs(%@ix=3 z3={Ye7K*z%O-M=U%ep@124E_Uw{NM(3$(UY!q_%%TJ?w=@k~_BMS33|mow}quadG- zUJ~JU_HhD^O^lwFER=z+vqrjoDg<9ky2){R4Q*aMJ5%S(bc*m7RQvX1rJt{S9f)8o zfoS4WXy{Gs0RX7CczAf0bHZ3H0kkoB$i_+BXzN8OJ{-)1l>&4>MbH)8?p>u|dui|`4^`ED>CDq^2_q%FZ}%QTGd>6e2wUoK}zNS7>XN0;k? zZLR5tGLu*$Q!Kf9BdKM<^TYRUYl0j&9%CWK{Yz973} zw^oE)GevBN(#CQTbLI)(XYN5x`vJaWCWm7ON{S(ne_DnwB2I(sPm08~`WVzp+_jrZk5jnGMag$;@8BB!BDuB_pJldaTHD z1l~88sscU*8LjeOL7giRyvFrBT2#|azI8tqKyHC(uhgiX41n`{qM2@@ehUi=epXu{ z`eYz>1W;Av6w0Md+!ZkhAiV(sTVra18_ONR8lqFfCpnxCBI~@(<1jC7&SR|K->?H% zeY>wBhY0gUcL!$N;(QH(O)AI0!o|rMfWmp7wdL8tip<5|-1V)kqtTaaD`+2|qalf+ zqN0_`URJBFa0MT1SZlO&mK?WlWI23OAt9fh7b zD<$ra@u?~eziU|)9ZOVd@DhJ=VX=#CUAU#y!r1U$@Lf$IuM@z)F{pK*5o|tqF)r!8 zySv-CTLy0c;CzD`I|=}~NK8tq_QN=^LeDIi$zHbiZgmi`S?@12J~3{Ho0%~%7N9e# zb6Nqo1@GtUoC8f17)y`M;K@M)tn8@bUZcgVN^oT>EhpggGQlVvx8-ne+EfTxa#Te* z-t`s56R5D;5@*X!af#I10$|I#Bk8Jr(5sq)OQ)Y|uAqxR&cqM(mdcPhUGTVR#;_}l zvDc*Tg2#yL;*O&2@%$B;jsL@kYp(eMyi6a%s~}vi(D*a_lH3YweK z!&v>o;i%R$iKT!9z#0WG3Q9^Bf1;k=S689ZEBQJzGxIT>{Io_C;4hWx@jc2dngrmU zm-QF5z!GFbDoi&QUQK>v_;Cn(Mk+qB%c*Ni9eotxJz`>2EiF_$D)8NZz$o-aX5=;b z`Gf`I3aZ*{!K*b}o1RE$DO3v0#0-WiU^Q)LsZXVG$33mbNfr5g<>zGp6 zuiciw>*plGvAtA@z*r70uJz-NY5B0ZYe_%l@bKd)cCp*OK_VRRZ*bSY=eIKB7B7sO zF9IvW*j#`Vfb$bVNTNgbc@<`lHCltjHx{>r9707!yP3hfbdC>U3DkZ zFmsL%tH)CJ6+Kk|IDoM=NQB&%5-~F%(3yLuD=dS3?lTZBbd;hDx8y4k%aFPFW?0?$_@Ogpg;f9O+?;8KU z_rK};R|Wsq*#A}Ezx3&UnV&b@;v357|D#e6-)8H{ryHUtO!uY>+$|`sIbj9}7u1jE z^OOYmZj;=R|Ce|Df64HlI{r_&{;R(KjjaEbp8i*|{#SbXZ{`25bn>rRnC`yWz~MDr+j0y)X~@KhVaoy8r+H diff --git a/doc/img/LocalInput_plugin.xcf b/doc/img/LocalInput_plugin.xcf index 9800b1b3039d264463ee123f84ad71f62f45a754..10f2ac8c68b92bc0dc6915dfcd6db7ccbdfb2dda 100644 GIT binary patch delta 1986 zcmZA1e@vBC9LMp`;Z$z6i^j;Jy;P zb$gGIcF^oH8pOyb%Nbc^csGr-jtxglJ!kVYUIcZ!1o~t1q}Zk4d}5!(^LPyh@i9(F zacn#Ob9Cc-{EmN_c{1*hrcIZePNWbHXAYG`Scx@YV&}`)k4CiOB+lb9uCb_za3Tdc zScH{Wb6YqfEnjTo1UE-BTmtz+I1;u6w)_ccK9NFzu&Y&NI()|uZ!G#PgKsl za2@O*ffh z50}7utf@FJxUG1p{p=0d=o#ad**Azsk4WY}(ud#iD!Fu=o7ct%s_k`AeT9B4q2S7@8*@Nq5mM7U`MOLK0 z;Psue8-nBNW8mJINXNY3{_X~;+d?PK;u40W9s_*JduAdNMOcm+Y{pKQXn=)IoYgY* zT%s~0oiY%EnaD&DmZJunu@fd5V4)LdaS1~#)If|CaW2{L_MRNGAr7L+{spQ05f(2lRb`2JHMtNldZe;z-gAHQme{7mS-f delta 3725 zcmciF4{#LK9l-J5W-qzqBq4$P;ZKM;@kpvbBn%-F%^#)^gi}Ja8tfk!#!{>;cBlnf z9NA-Rjek%KTL~!1t*wIEN@cEsEn`Z?Y7i@J=s*ZJ(4jMeWyAqT2ynUGes}LK-Z?lz zr{m6ivhTg!+xPpu_x4Zv4Yg;N`b?cNYDfLeO6_iujNggm+#oVypU9Y3M6Qj9l#LL% z@g0%sDI&LYi_8p&-1>Ww`R|Jy+#t@@|Ay|ZF7Q;9+O;(3Q*wSBs!H=KzW5nZL~9{j zBI;K5_7-nbcZRmA+f;2~tW`N6qKu@>sqQrdlmUXsDM>w^NuZfEn2T@Yeyqk5cn+`P z&mx|m<1uW)%XkxeaTp(o3?rOjJ4tBRyA%%L1kQ_O({VO2XHP&C8gVy%fR%U@8?hBT z@h%SG1kN)E-GzSrABE+i^_lm$eHUZVCz7_a%gs)0%N-ZW&RwKx52q$-pE|OG8Tl33 zK-u0B1C>8VB>x`#5Wm3V*bHVc|4(>Nq=1AAd(elI7-0C_U=E7PL`F>z8STR~24eIq z3U^@%R)CI2KZ}>}2HwFze28-dl#T-UFb%VC7nWef=L4ay&&&;V<-g+gF(u9xUjcT8 z#p_brinoN;73aCM?Xl)Wvi7N^`$Z;vf=evVjMU>^R)Cik;AI7PSpi;FfOj8`;1n*2 zT;~z-<$x9Cn~XZl!$LfOHFz4G42Ewzg)Z#JF?<4(&T~+L$*99TEW`s?gQwAn?dZaO z9Q%AQLjUrf%}|c(z2zhG&ZVaQjr7pD@}H_&e3X(?pSX!Tk!4do8Vt9+C5}&;DKhC> zB9q6X2@heLNX06&q8-#LS*MksicBrRT#>3}V9ixM1=d#8Yj}&)t3IG`6sHjtnVyYt zn1ou~j_+X^9>!DXz-xF5AK)lXBkH6+GBjt>X^&E=-;}c~{Z4`(t9!>5DIUGMx|-H? zX`g8|PE!0yS{ya`@y2*t&GmL&Q!Yt`F+x;_O9nP}1`Q)h<&c6n!_d0Gf^{5Go#Uu?Jg~T zWLhpOYM!#Ap{ke{2G5-yG_9!9K-f{sOcV#>tyvP;W11(NW)h%$$+;Q{oG{IZoq$CG zpV{psV3EKD)4XUWKo^mS*E9$03}W4}D53T!$8na}u#afqK^;_Q`suHyN_R*}NI)SS%p1EnL z7lO~)vEbvWWD@IxeZk(76Uio4C!F!&fBVQN5kq9!sc;ENCFUk*CuK^E* z`cCjrsP6&~h5BRqg4&g?nYTGNNRgKPjEpn9DO96?CFRAH?DNFAhQ&3Ks20Da{#AP| zc0%kTW>iPN9^Yf|a=Tpzmr=Gtb{}H);fylfb z^x-51M4H?no~ANP$85AnlQb=*unMhc$2ROj5BhKt0|eqm5y~(fv(bX3ScO)!hyGT( zHA7!C>#tgKdpvL+fbs{ZBF($_&w={E)p#`Z_#M}XEa7u)#BM4KH8^y3vc{I4g2kK_0xAf*FkN;bsbp zu^emBh8M5{-RQ+}oFy0qdGKNiW}q31u^ekd!S~Bm?a1_`g!s*o7Lo98!6=7!rzR9u zX>)_o4G#zZUWJP=7T01t%D}P;S70i*e)wk8gV7Jqh96D1Q~VOPJNyn7;a)7okMI*b Zh*fw98XiF_p2T|SXvgyi>TQ4D`(KY=4ygbD diff --git a/doc/img/Perseus_plugin.png b/doc/img/Perseus_plugin.png index e775b12c6b6ffe48a7021c52fb72b7687131a4a4..e5f08fc711ebad2cbca2cd25358b357ce75725fc 100644 GIT binary patch literal 18505 zcmbun1yoh-`z?w{BcgO8lF}gEAl=>F(%s#Nh)6d`cXzk6NOy^w?ndCe`}^+y+~0rP zd&W59oS_@`UW>KXyWV)7Ip;Iij#QMFKtmxwfq{WRladrwhJkrj1YVd(2w;mz=QlU- z3&B`MLKNl+`Y*e^Fb-@%c97I^hJiuFgub4^q^9G6jfgH%a$<7cS9@emDtcQ zY(;5yHcbR9jwsw~VYp|=ly4|0>b{12U8PEqy?0sIs;OV< zPGCzC{gA{%^ZT1*55-JzMGD#W&9dK$!mk*$R^hqkyn4t@6rsKDp;+PU{4k%fM_o*Z zBvM*vpo@>ZGAx>{jnb;};9)Np|65o1m9}7Rjc7JOlxyQTiTb3%+4na{J^4W@d_@dH zRon}X*M#vf&oNWoZOedL|J(>}sEDJZe$I@vryBR}$6eE}!mU$> z2c7sY5ZcW)mOi{kOd5*IUzU@M~0$r*=91LWRurw`A}dB))RV^X8$ zm@r>1Hfu7P_F`{1G@vCYcOO11ev|CI^n2WkL_0;;YeR6!@zXNjZ+mC{o4BV zAtykm@(Y<_p|Cx3t=Ay_=K{e^hWUx8Ne!_aRT{|=Mw9)VW%GOqktD-Amlv?>N#veH zL-d#PK9qILfli#_(Xouxj+UwfH8QotP7{iHG;1)< zgAT;Ry{>2i$6*i6zY|rPS;j)u$rUBkn+L}G-S(UJGRH5nzhsnmnFgK+F}dhVt4hNs zh@;--i_52%zG?jtAd-`p<0YS810zn|I8WHH@yVfyw&E(2p1k#kq)kYoqCZm`JBqA1 z9VIrEJVfnVrb^(#cgyVlqsI#vuJ~f=&QVd_Jf@sSg0^WC+EV&-hLTMOb?$uZ0)(te zGD0~9i%b5({a?D4?68+QJU$(hSGR}GxZZ>)lw>WhTvEeyOuce5VSS(BltL^z!f0c^ zNu%B?Bz@q=6eCdSR>Kv7XhdB8(^L2w&G}SLGW+-{A5BAd#xIJfDo15ktG}7|Ykc7F z<56BNb6OthY{#R%@h5FWP^VPd$Lps(g2sf@J*l-dv_V9b^aA0!&2BASjy=@{~KkdA;oP(O_zOzhrA>NJ@uc{6`LP$>zY%TxdUqV?lXoH%1B{PAOocl1kb@8%~5u8{!^CSCir zo*WkX#joSxg6SteE`Aop_lez4m40~B&I>nLYVs!Mv4MZGHgA7hNR+p*kfNumRPsqo*!_f9-r#5R3L>@_s^uXed0OZK;Cs6%>E*azu0_a zP53SyZDD7QJ;eXZvDQ98M&l>OSU;D@i>+B}W68Tsr2TKT{BOrXaVQj@r&Wu!=2mN$ zGi+v#V--E)UvgM`r6cCVRvYi$DML-y8ANjU+~ap*MaZ2u%l?;D*~baS8dN$y^=#eO zFD;fl+)n+b_rkW0j|h1j<$P$i6Q~-9$ImqbO9V_=b)-fZw-v>aw<;p5>8ATp;$h*v zf>YWDQ5W3XzP|Uwj#p1bI-B{Ks|RCJ`9&B~zS+Fw^;N~x@c2}uv9S542;4BH`Nqee ziu!8uMU3%2z8xQq@Jmqh+e(NGe5}Q@7u(zOF0lpjMY^Xq^k9C_v79uD-P3T+Hxvr! zs16nD@*ng6LI=0*jp)8lh7&hs-Q}8 zYmLUfr^Ne=(>6UU2#3-yhB{sO5&pBE86B1LA;QK)_}R^A7x&}6AuK`tw^sXuA03!t zb_(ZVmU9)vr2ci_t*{7g(QTIqwAHjj91tmKpAci8WYdzibVk&`wQ{0ziv zHL0-qla_p}FTLDf_@t0@f_SQil*eiT1U)@P8$MJo6(DdWLx>xD(aX zxBe1Kpz>9SxQKBr6KlkF3tSu$z32+_DLwn=6rusPCUUO?R?c`E)d< zA!h_K|FZXSJKxz4^7#08-IKo(q`vViCIj=G_qVsF3l>?YvpV*XLdXm%*~TLEFzIw0 z(>f93*o2Qi39QiDPfdPY)jVq1XB3Yi8GE>1Q?RpRe0+SwZ8PrY|FTu5PgpufFZOdyng%@VFOBtU#VlJ7=WHD?g@3x9A`KU@CvRJEH1V@Mr30 z8fk^>IqJsY;aCVVrpM)shIJ%n*H(<+c(XIaDnd&RU3tj5vVGv{a7nAye2h}1Gg7GD zp-kPn_t-+q7GjF4Zdk1iPyklEI=~uzR`tf*$BQjTD!vCnZj7uiaOTl}uMPf`;Jm`b)iWDuZi$3R^`iEf22M2E64`%;wRMwLs4&Oh zU8mG{q}y3lJ%xyoqymS=nw;)%V3CG~T~YCFQ1jq^`4Y8K%{t3ir1+n#@O!d;@GM3=Z-adH7({1GNM}M+Qr6H_>%5QG zQ|x}k3}vJ8;_r+?PeM9;#Pp}PpRV98?(st8*&V{q~1f=OK!H)|Ku>1SDRJ47CN?CU{ z0Nfr$l-^kS^EB4CN1d-^+R!IP#n5TwNqm50t@T3=9MT2d#|LG0uh?(_3ZaUa{zC3= zL-(uGJB??exk7>v<}(#)>(m*O=1sa5{;UNQ>`UmbIGIf!L%JJVYl$#4DkNi2^|!t| zsCLf3_^PA3`}!kegiyWqY`Km^qumP8AK^nmr60SxORNf*6~_VNI%-?jjJ6MW^Snd> z(f8xZM$CFHGMqw%RJ$E?2U*FAhhmKddaqw<3??LLcgrO;*1M~jZSQAnu5gj_6ERr1 z5|b`AG7uzuU)|>kxp%sj%Ya$>wAUK5-O4`(j~{&IQPF;-o$0ZOyjX87;pN3s*>;8^ z5kpe{w3;h{ULcnSA{IXl1H*Rv^{UDCaDqI3Fl$wZa*lpQ)_s>-oyx<_}}o$6W+UqDW$(*qc}**h^v^VnXM& zb~J9IObI!{va;z-~)2z=PS+xBkz#@TKnTSpFGJ=|yE~>zWXJ8ZB>J z9bRsB#^-gT2g~;B*H^24_qI3;+I{B}f-x~M3b~2g&9BhfcWz9iIZ!*#&4#Ng`Uc^c z?XAYz6=_RG+p1hhEu2OO+nz!X<|pcB|E?G}@chn~0}CU;k$tbkvWsKJb8Gd0s@-89 zc^B}Bk)A<}{WdqD2?vCW7mfZ;yM`|(e5wjRa+IxCPC1MuOfEZ_x$yVEWIg$Odh+$I zTOFdTkaZS@8_sRM+bfllk=Y6-^@CZTQV=vd`#q%VeOUkZW-CTEl`YbCsbMCWR-2UH z>%tH$?Kbe|HcJiVS|qCMQM05bYp1YOx@)nS#6c%>AAc~hRP9@m$Z!%@*19e&<9NG7 z%s%?-M+RTGA4EM+tWeP z-IZ3(@R!8K{hzQ!MMbOppZxUwA6&;X%bTwiL_}brv+U_+P;kE1LZPLPACD9UMdqI5~0Paoy|7 zjS(0wRw?xOlVag0H&%=+1#{x=!?ic9e*r^8LmU03=OxJwG0 zcg=jKE19!~AAa?^asaU;hKig#7#ickNxULb-doi8-n(5Ltymkt{4!)d0aMHQrpk7I z$9>H=$-d(jK~PX|c-Y3iJBCy+Q!b5z-80`<1N&Rp!A{%E#lb7MuAXD%V%8M?hAsmX z4hnuzNf2KM{({g6eRYwJY)@qH;s%%ue$hL*^M5?gl1<}?ey38v=7o=`aGE_#7p;5Q zM^L!<6{j^X+(YrLqR9K*xk}RF;$k=igtML87$=YqUXt)3bvtpFn?CdPNO9!#%YhZHx|_l;79(Q+zfiBWZJZNUu?E6d$~?i!NmeMCk^ z_AGbuM~vX(54y@W<0sp}FT_v)Gnyqxnjt@!$?tu0zxJfRPXZ4QFPp)W5Q>Ux%$jlo zCb3QkA|*#(n1^BzQas}Myh#lE&HX2AI?ZZhv5d}WJeHnEe}Im_ZQ8n^%JV_#SYI$k zAO_#d|CigHXa+i&(;fX4Ir^8`xe$VLDJtLwyPQU%Rd4A3^AXX!7Qa?&clw@p=?j!g zuKdF#r-Gc#$+$bQ_x|(9N<_75D?{o0AV9f$p8F!9Ur_P=M9gTkO$(YXQwBW5disIM zbg-I1FI1;zqofI>#>g1tY+pj+Kpr%!1lZgmX<;pF>WPH7RJBk2#+N%6NYfv8ur_2& zs}kQBpy?A(n%5?LLm{^~qvi4`2>C=?+k2iM@~rV9>bqQkd+x9P1ZWCCmcuF%AQl13 zt@xa?bY`)r$Bb8EI|!xPj}TxyIvcoKPnOM3G(NsoIK1}JK|c&h-v;~c;A~H{{2uk9 z^KdU5G|LETK5G-RJWOcU7B1@K%z0dOvB&L-d1o;Mcqf~|r46YiZs9;)6p#fRa8R<< zWIu49lDM?>Ts^f~FP^QY7O7`J)v=Ek_sT(UxMHRX6!R?hMR*%W7QDWxivOqnfQq^X`SR3f}x3PahHKcS`wmXGi;oT3?PNbYr(& zxOZqlZ#=MA$d)2+eamk8Dz!y^-G864QleqB!zq}t%K!d7XlpQL%in}Dr`NhOj@|7; z`c%*5_RndYJz?SnSP2f^Bfrz&H-3h}g$Jm3eG4Qi`D~yqN^rLtO8hDBXlU>fq|Meo z-hV$P#u6=*&-hXQsD8}t`OfR?iq}q-_JEba$k&BoIv6&M%a?lu$dSDJL9mqI47)|_ zR-Zn7B692e{{8J@-N)bso1Bh!@SgW{Ts3TKj*qZ847%CNpVv}M|FXKve0;@-QoHbZ z=GO^o8f^kfzH+28<#}{SYP{HWERvejafVV zatzu`YECQ4IF{N&87n9$L1AKIYH`^OlGpIJRx&7{=I3AW>v*FYmmrw|yZsK%?ezP~ zI?SSOMK9+fYH7c;SY~8UFm|55n&@t1iHvNv`9aw&e_i|Glsg-J6Y-VL2D8dY5|hP3 zjaiviZNaQP2nKvt^Cr6f50^VGJo4#W-QUHc=IcJj#nX0oG+9E%Gn7ha(7xcp!NX5B zJ6rhOA9B*;pi1X^D3=GmB<5ju{v+Gsek?C8j_`Ch*9pxD?GS|&)=*?js&&8tT3q)% zwxT)r1SYjR5w{_b!6XB}kJmM4XJ_+Gj^w01C&Iz{8qWMRgsZ!n`^g3Ep8~E{>qv1V z&pK;{mN!?grS#|&2OGNoggWdX(r_axt!x}M=2-hT9jb++sQOygYvVBL{uqj*PT})p z1>p*M8*Mk6QCFjs5khKeY8zWyAMEVxf+09qSU(Ho2un&zep<4D|DsBzp94@Xt)jzwYZVA@zF;lHaDk0*flJ8awW@@8fU zhTU;An5U#ttkl;y_a5-`xMoathV9{L`ThFwEU6RPTeTAcQA4J%hKGywH~07FzvC2Y z{2uPKWp)~^=e~e=ova{m8?s-~`Vxd`C<5>B;f4Xx)@>T z8@ga4p0CVae4Y6%TrJvfg?Q0luX9?}f)e z7QpnICJ0wdToR+%Fl-%16C+1i6iT)r|%sNg5!JtN1uUc!a;Bf-Bxys62pCy01m9On(NPWKj_#U zFVmF)C(VT`xl7N^elu;g@TN-*OoVj^1aflkw)-m-oI*wEba470S0d(DzD$zWMCDOx zsQ@P{D@L@qiiG(_5Q*yL+Wfqx*Tqiv7h>M@U;P@T6{qU!g!wu9hus`cMkTWoea)DA-@wZkm}ms)%hbXbQO zj3F)be|q!*-2mfrvk?vkUs+RA65KrqX`4HfxiB`%O|kmzUNaxhZBk%id4)fQO-okv zST^APEkKG_E{bHp8`_05)_746 zf^)>FMkgi;bsFv1JLW7yA=@)m&X30l2?_Nb*7b`#hvEpdInwCDdiml`*u%8zK%U4~ z;w@0mB8T1H93GKcEzz$WoSSP@N0*kDm(LxqyxRLrWkURNI&?6bN zGfskNgxtv;7xWT><2Tp>WVBc)*T?<81p=khkhI@^}hDc$*+2uDe0zpb)$JL9rO0;T! zdV7t=Yoa|wR<^5OM|%zz=(XYllXFjszuY${KGA%eHt zNd^a5KqJbT+lRtjGcz-K{kG)e&Zo@Qqn0QDfMWqLFA#1NWMGH}fu+W<8y3n6D?1;p zp1{o?UK}nZjiqtEHyg$RQp(ZA3renHMVf@78LQ#pVI(A^D)-BoOJpRZ?7BLvdToXk z?{c`P{vJTv#;`SXyP@bf!+mvV?eU7!+w&zF+BT3~YP?7G=PE4#mu>^{n-6H>->W5i z==;l}DN$39-8JS%p z0u17Yn0qf+fh-P&hwKtrKs6`~IZd7W&Rty)5%d9DH9`C2Oa+7J_(ROSjS1uyaiw!N z#~OaGL8H_f=4Ri!Vd9pL0Kx25nFp?MYkNDi+wcuPfBP&QGCRsw?P&4b?xiK2w{lHy z8l*5@c38Z($D5o;ity`jeKe=xa9m$mmchD+J^3#$fNVBg4m^+u8G6X;v>W&wQ@?N` zVz{N?*d`N1O-g$<#5%WLf=JV+Xz6zUzC}IzNUiQi$mowBMN^j*;w?LH!j@%?TbAf0 zER`bDVjCOMDCinqEdNd{CbyYV(K=P_F+A0^Ut^+&@wg`N z!YA~9AJE(aF&LGgMg0>|+L%(q-2H=okA1OhzLcIGk$2btA0rHP`lrh}RN0aixMwV?y@_XpKb(|$ zZ7ZJ&yUhRbA+!p)(wXhie580x(c(_3roLv0aE)&FwHW^-_@8{|1U zTG1v6g9&(Fya$eIRx`$KTpA=rkb{u0G~IcR1F;_%ea4Se1y^-2x9cpJ@m?g4{fS!q zwGcOH$#$iXi>EW@EUzh;+=r=_IL|5VztZ=HauH&AJ*a9HLJIV$+BT&zf&pjxL;=Iz-?sSbgk zhL2+98Vg?h_9Bg#tKLZw_QgfO_T>wN=LFGVb}KCa`0OwLsGu~d*Dfw9TE98n!g~>B zZqJ#c{BC!WeAU*`#g9w2;7;tcR(O$4<8C2jLwK=#!A+50q9!KZ}!V zm(LoFY+hQlfyE;q55cZb29}cpA)> zZ0vp@ElEmCzvbtDh)HzPB|;bc%k1dr7@v?(?Xs&pTc)*DqplCc-ka;rr?F%f6OcJ! z_)hyUUl8-u&9c;M%PA{kK#$oPh<Y4e zFX2vRA(N)Ry)X&&hCY}u`ne`3m}*eS3zdHWr$Gn+sB_h8p8*Pp)zuSC_-k6sH~25! zQG5yKH}DW$bty%>d_;BN!+fmotG-ryr#70#83R?_jQfzFMJ~`YR@h;W5BIgUOB^sY zwYANAC8c<5man34nf~M_>A$6=E$J3nkIagQKr#nO3RF`1pd#({n*RjQramPl;eveB z)g=T4C_oxdVf%;yhzkXv9j;9fqx?q;Svfg?V}90KYur~0_}+bui&NRxl$QSVpv7S` z-}N)+13tSImP``k_AMlfnu0z1vcO8)2EM~{;_{L9F45imNlo8kl*((?l4(p z^xe%*l9ZMG4YDx=upHx_5M+RbmfrQ8KokI2B=x%?6a0G;EHh%SG9m_M0-Z+1Z-7Y} z)W)SL6$BsHpns5(k}^KAMa#7FzURvSjFM4NWw0CVVSQC=eTT&c=zjpBYXU?La0nm* zRiJBtT&R;)5;7X}2WPOAY*6&lz4WbWM#(_Aw8jW@uDT!kzF7&th%?5SPA z%2lFG4wo9KDJk;@>VZZU+}#DH8X&sZlarJ3F;fi+37F@~_#5bZr+bE0uCT6h_Dcd* zS+-WeLkH=!-Nx019BH7)Wd!CXRDle9j<`6*OF^o8> z1nxhV>onGQU0U6NYMtd0K=Wn*SAmt_>7z}r*AgEP05k9zzZXO_mK51C-R58H1Kw!Q zY+=$@(LJe|Rv0_RCz&Bq9v{hwWZnNhj0_L|0M`c6z7MDh67hL_{r2sf_UaT6d3E;z zgy@yyTnUjctZiM8+ubAt69CBMMdyvdi0IIECH0-&PFU1y?=CmL2Mx&wlL^Wyfi{Uj zLNeYRjF`gfZdd-X64xq$l7ix7n6C09#{X}y-(=y&*?_wl3@GINEL0#(WHOLHUTxx;NqX`nmKt^(bay1-b^8pc;Z&o&fwHnPRQllZ zxnXWxc0v^v7H)gES~4{?t@1oKzq>x3fI>^4R}X+;uv}_jfHDiS+GY|7=V2G;^Snt* z)2oApw%b2xpqNSGcVk44gF7Z7*EEycM&0P4hyqWa0xu!obAX;<(rd$VKG*q}@b|Az zrr+I14!h+aLGY*%pFh`Sy$95Q02Uh`UkZ>zUblmFfU5so&KW>%P7BaqRch6SrKhKB z4>~(J>AsZ*@?nljq5Q@18fm@u7zj4VXlV7F4um*317FELKyL<5(2oz~h_;g+RJj@! z!!8(ozgsitJpj=-bvePPUVEX@p0wTT5;oiYcop=y!_H5#d$`Z5?cTM3uo7SoR~hw! zd5lTOVY42JtG^Bk>V-{B^B?tm%)Hf1JBqh11YLi(mFDje(M-Q`Fi|T#%XZP$nY&); zbxQV7VSLtM?o*G0;T?ardZEg=zezMf4n_~mL!gj}`1tTSL&p0JnL#}1EzI&8Uhi%w zZinh408<~Vb&^K)i>RyP;N#;nMv-bH?Sfl1Vk6*o-NT|*X!#MRM6+==`Bri2D5%tn zr_lO%A_Wr7xw;O_1lxbo>_N>Os&&Em`1%4R!fdU>_v*a1wpL0~5=y?n>Rw!>bjwN9 z)XVCR!d21Nw-fAaYfA_3Tl3cLM^oNIRVk=#p-j8}6X+~3^+kYG4&r1<2`z{1V&7!0 z#N_@ZG*y7T-=}s7^s1q?2Cx8~0An*RoY?3M2Z*R|U|?}D72uPFg$4F6851DLG;f3v zHbHd`KtocPjbNW6yl~Jaq1DXkPp^cF!{|lEhNr8C@o=}&J66Mg(O}hOVDYB`f2H{@ zXQbIy+}(}nOd>Zde1OM-Fby2NKxo+7-$xY!^`Q24 ze7SdN(F~nmXs0ggmKiOr_oj=9xEuo3*A2s7;BTg;lsGoKGeX(o?ouNY*!9uP3_7G> z$wfv+0x-YSx(Aja$P9VlQlP3`Ic_~>{(g6N7h2)&>l00q`^s#-^eIYusReFNH`aEn zUrUC^VY3V;S8E8Q7<0xW7@^89+b|1DcXX57O-nsO$Ydz$E>PMhFg~#v3 zroew0-(HQ6iMe&<;Ut#Q@%L;5A7o6R#etTFOOSYmfP4r+tXOMWYc=e+C~Dhv3OqY? z>p%mEg~V%z4AiwkK;8sld>KfrAUM7%^8Z_$3MNM)gU-NnbiSW9Ov6_7XJ95mUoAdV zYhWdR0rhw#B_+P=WoO{^hyW5BSbO(^g|ea*}q2N@8G z$|iSRXcDBsU78-l0vgK%ov6Nd7s5G;uRv^Sbvq=`<4BOE1Zobjfo?thi7y{W-1W*T z53H~U`gf-1AAB5oO(9|7XW&nbfyl`Bc(XNron3*q@3`W<9wvoxS&pT2$j)s{iJUtr zDJlwg{%4Gwp8oT%U&_GUF$82EB^s=MYOw&e*`AP;YE+sJ$G@YXqN)Kgg9kOBkQGFI z#?}K?St?AyhYL*mw$rc&Pxr&ceo#tF=J)2%E>C>8zdrvZ!!(035!$1nsMs}KtfB?P z5evTu1TGy54e<}qS=D;n(K?`d79WoV0K|dyxWZi+ss> za^a!VxcKO@7S#a!PA|+ylLPfDAt3$wTrF7m0FCsDEmgpm2a2@}{B9{%S69<{Tt7ke zS{P7gj)tz2(PWlj0Nb3Lojn0$+9L`tDYcPLWh)l{V0Ck{QKnhF8RXj4|1wMmoc88m4A{r%n3ycqy8;K3p0E8 z!d%pttW>|OS*WT*d8kbdmoveCvo8{tuP{410Ek}G_xGG@KE2>IMSl+vtoi9?KS|b0 zR2=#u*Rs645YUrca}JjW?d=9jSgLTt(Y~qD+hUFBjG?$fOqaO2&a3C$Puk@A#Bwyg zUAo`1&x%qv<@7bBb=C+*-V5wVT7@ODJU@#>DHbuvH@$xC|9GuNK|OAzquOy9(&n9m z>&jnJrj8mP9xdn@FVt)mJ0F$eNyS$G-QmfZ?V1>)*O5JJD@p!-%vkMYGOWR;E~ngd zRVKRg`ea^0MP`q!@|X1?$v}SxktHhuG75_O{wyLu5+DG@OE0L24;O^TlhS2Eggu!7 zffPn=kV7E$6pV>rt|w^MS5Q<`EM37YX))F)P0Qj3a{f<(U}SW3cO9;@uVR_U31)oLB?uFpG+=vbQ#M?XR~JIJMQ8Qk#z8}} zNzHX|JFbrZj)5Wn`$_^D(y&m{VZhQ`xZ#zwmprWw$#UlOi8gcPvD?P+(v-t~(yCT! zTU+-EHv_`)+R@Y(Z|5L0byv1*RuNOrHR`lk%H%2r3xYdV5{T?2Wr@bx8SXRM)wvP2 zS9{2GtuiCuAiV_-GOz{y+JTcc(Vd%k%xwO|u7hTWTq=?zmVC`9B4@$JNPIT4<{W&A zm+v)K7O3gi+7AttO9#6ML4|B>Pjfe%JjDf!~cHUYGgr5VICpt?mSaZp(g(f0SYW0>; ziB~~N6e;MZ2)tD!CS-f9^s6dn2-T)L75-sy2926@P;l^M5qrHxxa~X5ZcA2Z8Q`M} z?46(-Pm!#~rV8F-P49e&2MsNKUuhh^p3R|``#~62jK?%nc!5_kqU%2zgb=BpVs4@I zU53;E(^R#$8(y^dVo1Gkv8u9`)^4@uEbv|c=wzqQNDysOP?Pvi4f9zJJgVv+yP$^g zLhtLNqVpMsN8%1pDp@lAL8ZbFc=irStd^-{rlU~vJ;~xL8x-of3&NK9mWd&m$+*VO z9)<~Ax0J*x0Uq@8>@F&KgK?+jhkE$j>mGeI=aDR5%LnM9S8UfV9#bt?~66k0{!eS1}SzSV8hptyD<^-pbf zntx0AG{mb&s9wGD4#PlH?JFO>5teSKH(be}9P@8vOMiU0kfkfKA;~~A=Z&A}-)I>( zLG9{8x%xRkep05oBAYJN3D@i0!N8ryJi&jho6))Eb3O)zEogRG8>+8s^tEAKS&S~D zCSNVA#r&{-Ksx#pEK*$L-X@t7)`Uz}M~V@kkeoWqhgsOkMCR)GOr5&?WZNsSW%qUR zMWL^P$kLKPQcOsGOb@y}@8~k`aoYzVW#F@#A|dpW9$SKIaq>O=JqHjACZMQ@2IP*J zb&liAs`w{8_mzG?yg!NO8ch|*0WWIytdq!?=fIwAL22a#z*vBdZvqiJR(oY=I!Pi4 za35V=BK1=2cKrz`GX?Soux|7pkKE1gEY{PZ^IyCI!ns(vI#fLoc>3$S%0G8u;Ry;% z_?+Vn4~^Z1>mZRHEY?SvjU+1R>b~fTC6}OKYP5a6)?ljxijBG^SsErLh$Q)f0 z6X?J%1&ZEFjrNs}(Y0rPLmSL1mjbPP@Qy)E6sj+M#($q`wx%L5mj631u$OeZ+Hp7% zVFLBIklZUkaKP#PQl?<~xHCZ9Z#1PC;Pf@%|Xni!Nw0eF=uPITer z8|@6V44^)Ol205UDWIVEMl7UH3(TL=YEAm&F>@y;C&1%30QjNTY4{A4Z@zu&F^S=a zT6%$z>dQka6ej`GQjgj-=Y2Cc8_?FF1ObxepGhf`$ZR!D13;~MZqzZjxM=QVmCXVx zOs4~;Y$5>;0k~uXi%$ix+*)Y-|hsc>G$^bYk+6~t?YcbBCPDVqXjgGlylkP zxy3~0Hk3$%J`k0VI3MRdhE~HdFfjqlh1x0>S`9eE!G=zMPi&FJKxH(t!;OYHn?e8EKF9IJAF)25 z09&Th_yvG3P-BIGa&V}K0?Iz0iMYRkHhlsvFcmemeo%kM=XNs9*ql~GHUIr1mhXJ@ zy{jLzhr;W=@wgpGYHO!Hcx!7Dyng-q=H^DXN-STM77W)*sH*cbTNqj%2dAt#lFd=Y z0AvUB$$?&WP#h1|-catPi;cap_aRq4D2(~k3!o{v zIRnVr^^F*pQph)u8x8ngEI_oHU4wl~5_ z|3p$}u0xNk8DVrzMV!$LYQ2SVaI^4?-kMnp_IqjvKzy9%J<51@cuz6CfV&<1D8IO?=*(P9d{ zh=fYptLE@=aV0c0@c<|tu;Hi$6>7iR{6F8sVq;^$8b1d!xW>32#qD@?tU|9p{2G5>70|N-`A}e_xx1!5;9)0+jm?l>HuOW8rE#nF@GA1BoffPPlp(g|SgC43ee#cw2G~a% zxS!Pyy=dsO9_qP@^NGGiU(gHPe%q{#1MT9l$4S7yf%NrjXoSJzu+fa(0(L7?3yb%j zXQrT>%;UmC46-pe8K|FHvdy++bsH94KKw-}0KX@Z7-(qTaB$2Xda7-koSV^yrMk*o zx+gR``w-8ePB&>7_OWqQktFiNHxH7vp)Rw`xh?C$(>?h)#uh8Hxa=sh5umO4Kee~7 z@xFNzaJ16u3<#dKH#fJHec|mn306PoNnP7kB%ix0GUR2cNux1Y? z8fa@hiY5rT8IUaCbb?miJ0CAAPo}it1~<32UAy_TajUDV>+IJuf$7E=Xn*zAxKQI1 z03+<VZl4I5(@GHl#gCqT!=5&+nLnl ztkKfZSw~oYxGEj#0sbbd3_+h82dIt?@|F~E#uynH0hzf*zOtsG>9!Ve@9#XO-{p0||w5m@9E~==#x8Nx` zs3r@2z04}E1))m(3y~CvNysl>nuCA`f^~(`ksk;HVA6m@1{VPA>=m7lcRc-i`O1?3 zCxxLAs#{RL)#U@K`vd$r&HTV~HCk*iAD2ON2lc6Hvk{#8`E{V+?yPkR0$~XYNd6L~ zGfoR;N!5nkLFR&K|41{hU%e6nLD%!)a*ic!%m@6cA7@}>gxa@;qVDhZD?NY5N*wSi zhl7lloV-*0vEF=)fJ!!52qZL=P*?*40}uuxl#BZ&CSpKrZOv9yFtBIDi3$bAd*12`Z?yZjIE(;M#o%6Dy0-5nkW3icM2BRbn>M9`9n*q6LG?l$n9M|B|7ep7$7MFKX zI1D1?>PzP6vnGXi^PBxq&A^p+GvWXE0nA5GW`x>e0J>r;PS-n#YQasFREEZI50K1L zfItHzJ3!!py59?MkY=kJ12Qr))I;w`g<>RQ8tQ7?`6osa}AA3T#ZttmH1>$q0b@h7^ybfk@sP}jf3 z1PNkA|8;<`0hvW#`8v^Kx?Kn1Y90^*8Q!9Ea%4TN3kLKA#$X-`W_kFh%@s+$q&{9s zZ2au$;=%@c$LdUG0w4`j@k4Usyz&q9rw#%Wf=2rtM6G0B$Yst6>v0S&has-z6t7nm z2J0*P4e2>+_qXZKlxdOnbGJ)yzyG``nSZ=~pT1OH>8kfPPjQnv)N9@9&*f?V3lA%X z3lfA%(vsV>A*51+lld3Fk?Ew^uDIcaUlGtrUlNz%Bmx78sVyC4NvGh$(@cf=haJc- zp8lcNP5Rj{?Eze4m0LB+a=hZTqYuWb`^XT?#jG;^Y@ET2ZKs5(r z2y{Q~em_O8b`mp(Lr;CG+}P~w6CB)u_ZH*Rt)esVTf(5MV<)%kRhzp0Ljs=Ywy4Y1 zQ~i_eKJD@hzIu6L9=6r@NlPy0KQDkBe1-4A0QL3&GnP_AsUAyGe0(-LLgNiH2PH|6 zH%;K|9J8xF1CHPij_U5%>$skkofmYll<5juE`oR`H0E(BHc|Qg-V4Kql*3ojv^>+9 znMYIo(kZualu1GgLCVDxO@$b12ySlZt+FzFId+~MRU?dcwrbQU(_P}n0sEhOlD9+V zXthN)Dj1t+>xZio(tg&!(^74GTfo-BwSMruciyJ_)`B)C0esWA^`*A^=fJHaX@mtF zIPb?YR##f!!S`)6ZuwK;dtCoIA?tDCg3LTS{#7O;uwv47Sx!Y?E}qTEv@m*?VGEu! zmCC2Ci>Mox9S}VKB~>Y%jd2YAZi!O8F14zTAaGBoC8a2XQkf1JJhLr?9OO`34RM5c znre*3IhsJf*drvW>sXf6FQt{(t+QswkF{6|`qdxZ&tMapmvT@MK-2|~q(>@$7lM8T z2s-$CbvZFf>KaVaJT{(ZQAtetlqn$(SCkvxg2I7iHB8WJtRq|)Ip(ci3E)%;sxvT$ zxV&}lQc(?aDdoUi=%RmpOcAtS~%w$$<^)T+&gmZMz+L?5b=(g|2m18AR+A}MmD{yjOF)nF?T z;XOw_amAmLJhiJW;lU2XuJ32Dk{IAg47l#g8;hfY{Ur3wq*JbLLs6uyxcg63Jf?&ET%im(5bkRnF4{tmO zSP}j|2mf=rf7`^LW^y~2V)LV*!}7LX0|?^`%{@K#6>y7j-_zM%ncVM<{HH~8wLxgwvS O$4iOHi&lsj2K^6y&{z!s literal 18992 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 E0Kac8)Bpeg diff --git a/doc/img/Perseus_plugin.xcf b/doc/img/Perseus_plugin.xcf index 7d309814bd67aa249fd96524cbd90dfdc977f4ac..6d333ac1fbc5bc292778aca44bff1bf8925b1f34 100644 GIT binary patch delta 3179 zcmZwJ3s4o;9mnzCa(NZaK#g7>5JBP<;_KoCd|(3705uS*IEor8SQLmz0z(9C>~xVB zW0SVpKtz*vbXqmk*kWBY<}o8}iFJ%KI4x0|I0MP}nwl1;MdBoB=y$ny9qvre%!ggh zIlJfoKWES0J%1y#<5uXNOvCestc8ZzD@7iYVrryuIa1sLX$r^W_0r7!QtDIEe6N&M zEaf~R6%0sAACp#ImDWy`Hk^?*PLyglOPjwZHU3uG-YR4EE3%8>%O5^Ui5$n-H3&CSo@g|uM2)r{9c4s#GW~&y0fr}sM8+%&t{YQkm5pg} znZ#ljCnq~+HAF(i$TMm)U8!V;9C1}1jn0NQaznpi2t zGDb$Mhm&+L0kJDkj(WU^*Kimo@c}-BUy@^t&PElfkLjU1wFZ z>*nG+U`N@-S@qep&mN1ZNJ9>mV*}WMvv;5chtPp8^xzr>ByT9jVk*)|)kj=DwzjVV zr0Uy=y*PqXIEzcTfk6Taha1zJCpp1-%zHb`!>eJquujgCoX%@vWL{cOU_OfONy{QJ0m+z;#aM-> zu@$?d>qscm& ztfR>o=4&{NllTB1Nz=^hoZMybFpPr->Bz+jl%w8yr+$!cok;{Z0S2NTuijW&R`Y|p z4bA<=bKxqYZb9=O~oi6_wBbXjUSEFGzr-d`nLFM7%1Er^gp(G+DCzF>t>AgS{$P3rNbwJb{q zR#Ijwd$A%d9x_d{mQ<#$TDV5xv_&~BiM7_5C)_HbWP=WC_cJxW{eD*`I zJN{R!mmaq3c)ksv#|`1;aR+a zT{wVN{EWY)UcC^5tC1;PGDgbiJyYsE7Z%pyd2GW6_yR}Kj*A4-8&@F(ISoFqvD12) zQ16X_7}cN8&UE`sakup;w@dr1_gIACl&*A~nTaB#*l2h$(%m0r)6eWjHKPrur2ZZ- zRs9o?iabn485Up_YOxtM_Da#Sr5MJ@h#5vD9poNUf(k6fYSiI1?8ImI1}AWiz;5g1oDPb6ZM5K|epSb*-VSgpa*8eD;!RvSr`|&M)!e0awjw_JV z;2Rw3<>YsiZrgYiw?Ox{QAPHcQEcO5f!3}}oJ`Y0xImb!98N>dE$;sGP4sWY9(;}? z_!Sq3`clNfhiu$}Qp~}FcmkWS6?>$tm3%Lo>CEPcWtU?y9>!C61>5lnzQ!?}A)pXM z!M-?rh_QEN+!bPm)eg#yyqv4BqjV;nJKoOEt?^jj1zNi&$Tm{pA<$QN(%qlGLCW8P z9oUB!9LHJdrZ5aZBGOQR+i(w-;1O()#&T# z5Qo836rGnQMIaW*$ig^GM-{5EMk?ks6z`CxY(zbFlj@X%R1V`L&NE;HVv&q2jKg$P zp&Dzj5%o2`AMMqXt_<~Vb7$tHP{Qf%D4h#i(rh0n2@SS7C!zbo&iI?ZxaaW(-VJ=K ztG~2XD%}hl{A6h}+Hgvm=|LnCkcvD^mhOzkFr;G)N>G8NWLrk8Wgp-R97Q`WGH`EP zg%spq0%l?^EUc~ZeQZyhnI7t`acAaaTh6}kD4p4sZ@0IWM|-R<1Fc=zIFDBR#vgex zZUN zi66;!?ks8ULOg`^cnOVY!Xf;C(*zQXz8H*aFxp;TxhK?nb0EI%+j#yocia5gcG>*8 zAgf29xhoYX)kR)u`D#3g!28O-sV;h7TFfq5Op1$%;J$%ir!C>-U`eL5Y$_f`1CB`5 z+?5uKYO$ymi)yi`7K>`Js1{>nSanoh!%lpLZ*T(V7`!KE*|yU2K#CZ%VCPcSl*5cD{RV zopdoyrbm@bzY{Xi(K2y&$_)HaCO%JQ$Re4fcIOvw_%Pdl;pv1J6J!6mGPmCH6+5l} z?FcZ=T0_=99phro|)S9XR!N#oyy z7x4;S$5u38JKn<{e1uQ1AD`nZe2s5$1mEKre$sWu|0|W>aRz_k0s}iigdiN3q7R~Q N1>z9@^zu~G_zycC2cG}{ diff --git a/doc/img/PlutoSDRInput_plugin.png b/doc/img/PlutoSDRInput_plugin.png index 8e74d5267bff9cdd03c23b5749563b2aff386ef6..74d20d7b9d737a976c4d6a282988a69330caebe9 100644 GIT binary patch literal 37059 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 PgU@T>H$wR@wY~ly`%B0} literal 37861 zcmd43WmJ_>+dqheq##I3Nk})+A&np*-6-89ozh*>Ee+D$pdj7d-Q9VJ+2?uQ_rGT5 z^L!ZBLKcS;_ulv3*Y&GSh=QEtD-=Q$7#NsWpQOYTVPIbLf-gIym*9~bLvA(j?WMkq zq!{=P{@sZ-dxLMtwo)43VPH_-K)+tVq@>}42N4}U$%-RxAQIrxvJStLOo4$RgZU&T ztn4y>nC|SNEWQwQQo1MbT1pt{H7`<@Upcn$i!YbeVSkGCg)4uMtG^a6`GJ75rXu!5 zOe{}^+4m9#HjDaQ0Efu^`{q=}6;gUs)&R=G{IkUw$1+2CSL5OD+k+?k;6EA|dS5am zUovb_TBg_V!mr^mrNDo}uYIupzx+Xr3<3JC@QTp4{{Qxe|NmUDIs5*-J^50Tqe0Tj z6K~AS2aToNO=MpMo4Iyx?^bRMN6#jj$CQ~Ek1D-mGU3LN7kHVo7C6RLqP^ zNf(kKiG09x><=rP(1jU1wyV%h*8;y?={_|~RHm&2_i5@Me+863B zL5~?k+()!(>aXGd{&k4xrLIzGLo(Fa`eP=)U5=9QlL5(h)ijV=4-b}Bwgh^sZ3V=m zVM4el6<2kCpr?0Qx~=*I4f~Dyk76x^OHkm3A>@qhR$SI-GSbDPL`Zy}^28wFr=ik( zoz@$SNg*XA^;$Cc+(&Qeu+-kiv!YF5ghQtBe=tai%9 zQ~p6g8{6C46_+Tes3BotonKj2*VpZ*4DOwfsA$VKjgFRhe*}MJE>Y$7U`n0XxuD@l zIkQ)qC=0*Y2hX{*2euy700w&h#%RhHv0S}%` zsU;8O%F+meB!u$;t`oUFd@y~<0hZips^1{y@xFY`L91K&-TJlm{H%%KGx}yy6^gMr zuD|D5pnA6~TJ}6RlKZjK-l<%V{E2*pjOswGXQMw?Mj3S5ll)YU{>3_VthE$hCTA7Q`d@;=#FulgY|Y8PJ?3iNd7)IeyY;`8RvrPA7x|08EMyR z=ZwM4ZKoF;=Z;jAe}$z*KmBc z*e=9aD`zaYxVTuf3zLkVKJ4Wy!r3FeS9yvW`>(7kJMt+A{1F=`O0wRPl$qCy6Gtaco>}O6PveO-2%x`*|K%mp|1x$-n z7K(bQYKdyG(xECpimjZ(w`waVdw7cLF0Z3{X0X&Pw5Q4%3d@(*y1ugg;@UfyY^05s zj+4%tu;gQZRmpsP;Oi+2U!@zi@$7gjWRv*+c;)hXwo{gxI`d0Ow6@4N-s;EHuB^l+A4HeOX#S0}TZ z$c0#G)mg3$ajh8kL=tyRm+Q8s@O6(AxE z*04cOWS&xi987LOLAB)^+jN;uSf8OtsVckaDA{rQvlroqD%lCg%iS++PxltXX*>pa zTOF8$A-w%P+=5DdL)%DM-1qc#zuOHj1WIS6A0FFoe?uoAye> zzMsX%-kqR2NB)mu)nJjJY;gT}M&w_j+m zYb<6W4-YK~KbZTcroI&x7B)07nJClYYiVf#9}4IF{K$nH7VzsAS#xQ>Saf1aRQg}4 z=3!~k!?4GB>t{`JsXWEL%e{$^kPup2OxVwvg6Y}W+4=`ygfg=(_j?6)c6MvA@`5oa z^-QR_S3fS;N_RCO#Hkq>k#m+3#Z&g+mUMJ>@_0RPTg}(JV`Plz=nxs7m_SBGUh9pa z;INvH^Y@2$zff>u7rB4)Bn9DS=e_m`4rw`Pxc*!U$V}li2Z8I=1u(941)^*)pRqqbgW_jB^-9}FoH6Nc=T(Kb1 zW*tou=Zf8RzQ7jq+!5*3%B!g;hP42VPOSFL~LzD32iSquWV%nk&p{L@5iFM zyScG_-~KH4bi08fuSquf!lz{DOU9IWUQ0RuZ#K)t_@1O8W4R3eKKk+&5nEf9<>h4< zQw~C9IvmwvoB)x(Q9@6>9Ra9E@-aIjnLS@wuw@ovI%jH8&bFWL{l|)unP2EKfjXpE zb$KY{8I#BNMrxqUfC7;g+k?LjRVM}V;a@L9CF~#!Q`c3cY@w*!2i|z#-(a5sk z*+~!86M5r>F^=DEJaH%paC``?r`=?l0WKRGS${1n?OA7}97H%Rt_y5g-d9gU7B!xV zBF{D6_CKF*4eZTTQO<%{&jV!+&5Ub+A|%r z93L$Bn*`QwuB4_SxQ;UP`tiB>pWb6g&N<)fM{s^q>3-^bOr7sKGw;zIYSYYHt%c09 zRwyY{UimCD!Min&3XuOG9*ao2-}o|!Yms*daWQrAcA%brWS5O=>-}t=KvFx-nW-=J z(cq=C_29i|^{JW+W7(?#&OmTZYd_Y(>P>Imw`G1#nlzCd06`eyk2Aq zP4)_<*T!M-nRPwY_IhjtjV}oy&34`^EXTW;9kNG+w$HM%w|gW0(sSNNZB8{7>!LAp z9R>9A7m~`MI`9J8Q{g0|aS$8xj#3@Mm^6*vjv>3+;pgGYsOo_NiX+q+j1T9;xl<@T z2H(25Mz1irQ`H~IlXFHI_Z8>fZ8IU~vM2PTY_=zw1kTe1z4_Gm`RNIXI`*7JqXb`8 z^*Xapzk@5NkCCQhNxUn^uVbJ_NtZBEoz8rvQ)TEaMvdr;K@G=k6hs9o$Wh8IONj*w zOtqI#*UZ}usS(z%l^p2ExQGEf!aK|1q1yN$rVmeX# z%EEpVg)c|B4a-uZW&3~bPs}w!2w8e)7s}CbG5WhY)#9anx$e4o(Jcd7TRW2{_VF$ow zzp=mD_-bCnxvb%qy=a=v0Lic>ggo1sHL+db#s1EbP2$QZ+n1gL=#FnfXqYK8vW{5_ zUSntMm$1p?+R5>WLi5w{({4B~|0zvIh6HFXojpB0Sur_LQ5d}G=n)c1TS!#~N(=7H zv2*=@XAjvjBX2T?VE>5cWUCZ9mqw5wI$Qr^O!wt>V+s;qzzS8-PE1j!H_*#d950Y1 zgL#Xd$IJf=FzO~w3e4{8WWk_8>Z4Lfrqp1m3TEzq;f^W9S1j65k1UMi-@mTW7V++O!6PER!N%UKxES4Y$j!~wo;ZYGi{O7DH8gEN zQ{|~ORU1Gm+*SsY_Gx&>!Jg!7FEOahe5}{6eZzd^Mm6G5$JNV4<{U+K@OBFxcc51C z=$nuAwQ~|!AxP(rTTg9S4pFDnqYDV4F#*-IcO`sD{o53K@p2P}b!;{|Xv|Afp=(Qi zJc+u0ND-B2+2+au3W`%=9#clkLbw9SQJ)uHs}*}3TS8&4O$9bGz8Ka5gYI8_?@YhfsPCC3PmM&V2fXuHSXY22;n=)+@$_)1_ z4l^(q&0(NA)IYC`&ctg()pks%MD$tajhc23$ja{6>hT6a*c!gSwt2v}DmSH1c@{#? z|6*EmD)s!_w(H@QUD~Ii48QXlC)o|M`kJ{*MBpSq}7j9z;e>H34XK!Aiyy!#sO!1Mp@@L-Y*mQNEdzWYBN+l zlG*miCy7@Sc8Ny3xkUfwa?_1=I2mmwL`+ThzF6_eF8?|Gh}0xeUUC6Xj4Z&7GP=o| zj$N&GyzOX8TvA40S;gR>KE9l5iqPlMX@+GhV;Wx;clqg#J1~2_6}41txbkb>IIOFY zO;?^bRg9Xt+nYNKt&P3u4vaj-zY#+ovo74FBG+#rjprSw356;sUia)-|MH0~r|U_G__Tl+i(YD_2VP{`Rw)Ggrc$8|6P z#YwJxz}^{mFd}jO#6V9Uo&0=@NJb&4w|!Pwl-M(bb~&v&D zJ1G5r)@a#2^{7jl_mz*c0h(+7!$ZcPJfxs{!(!KcquqMcJHMCLmZ&M>XP6QW1FlS^ z1`NzFNshHC5nfEhwbzHI?i|f z^c;5g9=gdC_uTIPetDNq?8$C1Ap{QKRJZkp%h^eBWTxZj&;6Ha!uSopV) zA?MLl)^W}J;S&G~qrY*C<}ohY7L|C)N7XGJPX1FYc<0;5Fmopw_w4Mv96wZM$PRB9 zDl(Odwz}qeD>;c37;xZt6QU#A8te**hCE`%hmRSS*}hq9zk4W>;{8zlip-0KGi+yD zT!s7Oxh^w@-F_i;pU51hPS`yKB*n?ja)d_kXHo=fkDl=|Gxb( zB^}_~^D+P~TF-P{!BRCK^%lLym^Hh=iZW%P8KL^He7r~Xa3*U_sAnOv$ox$`#iJha zlbzF@Lye~}xl~q$c+7Xz^ltNj?FfP7D|HjV(uIpvSJ$%Fg^mbM`(~v;xnjGBU|7U< zpDNg?%IK&yN3eQMu7v$Mme4>K!KJlTXW-eoB-=?2lPO^iumNnXq!7=-i^kHl%`}sH*V&516J@Gf~ zY*8gW4!VW!GesAThXV0midxhtMd<8^W~M(O{^~W{$}7h>KYJ6yVYU1BU-LZ6SsAB# ziE5mh$Mf|&>XNn_P?;lS-KPyY#IphLPJ^t=8%->9&dpbkmgAcrVBXvlQ-Q41H=G$P) zHF;4|wa>=%Aq2cnyk0(;&i`Vy6dYt>apxY+XX{sNB1_XoRaD5z&-i*}a*goV+^(69 z_a^+Gi2WL}vJlHOaquo)JrE}jfhp!u9`^6vnv-u+|C1Eu{9P;Y>%B8twox#iuveLS zX&t&aHJ1G?1zmD_&%{8QZA1S5USZsSu5gjaOlu$Z-Me?6Gx(FQj}`zgpKbHxt2Q3$ zFy#O=!}Yjv2cO@Cg)ky8M>6UhFrS!MgH&<--spGX#C*6yLPA(?-ngE$-f-J>a8?T+ zOqV9}yRylqaJ-|Y4g#`I#_ zYbtZQP5K85+<^qfV*5u5SPfxpor44l!TVhbr=$6swo0i;dqyqM~*H5BM$(zZbk))55W+Gg*TU z*%6rB#vhC?Q82g9&A9)n_i*9?nPQzyYi}2VzIA^b?cr>tA5aS}fE)pR>qsJ=j@(bN zrxzC+Kr*0;Oc(Uz1$YdNm=_xZ1EcMB9aSQNuOxMj7>0kKuEy;0hT3;Q9rgr(@#I+5{>FW=C)hdoG~d?Ra~H? zRLvOVP0<70Mr}ymXrDBM?BE>`KBkJ*7RdDie1Rl13IuV%$4e!c6izE?%fqerd2w;r z;Nro$&oZ0Hzuumd`Pb7k(c=1j(3suMt}6(K&-s|>Xug($g9Ezm?=E&^h@7c3OB3d* zO{$Fsa1$6b6pJZ(%NXHcZogT4E?U~8^2L0fL4*vyr=akYP34^HIv0Ar!-ydKp#S{z z2qPvbndo|$=Z0pfbb7Tv6=pP$5Z_c@U(fY?Uex-sBp**&VIg@4&~hgeZjk_-Rh!VUHKHKQISPLT6ReGe5ExC#t9Q@qm zd@`)#yd)lkP7K{FFbD_;UH&pz3ak73(m;v|v4S~1J_bWcXgo6S(b4}GjCpyqP_M`( zARHJwTM}t7kuQ5a%=_m3=dYu`gmHL>XJ!(?^3&%a1RF>(IX!II``J^qTsNZ6 zkQ}H>2&lNWU?=E-Yk<|jXq=qgyfOI6;QG;Qd+u*BT(dS5 z+=f%2Xl0F=a@(%Lu$v6STM}F3%V!RQ&Vr1Dv^GVMM*J&(Vu zfBk6b=+8yF~vLAm`33w+nrIJwl!x z>rjJwWh?zZYw9>+VV=~s+#~}(V=%T;NoKOP+MQ@~3vTI9z?#Yz+Z<=u66JT%9THTg zl!by}%wD&^Im>QKRoN5Qr#u(l@;P24h!tDgrwej&f9k0N2Tfisd zGe}T#B}#LFw>2NAlc7Fi$*NZiTVbWf+vv-*)FxpBv8uJ7BB1-cJwB4h0C`_cP`$P9 zIfadK_?h4w1$bSq~B!k+Ib(q z=UvSIcYIVd*@(h8vm;1EZTkCd305BT#?N}*#2L?Qhda;o?OSV@o05hKTZg1WW!i#T zwHKu|-gNfpLt2Q_($8u^-oL9oRHy#quk8}XV06ZomlyN2U{**<*OGC^%B}mBVcwBP zJ0|z4-ig)qCqn&9GG$}}b2+G$yzdU5oUZ?N3Yg1lZadlap`S^2)Xr#+H9f2=We*Z} z*WbfxX!U&xxO4a08V1j4>e<1C6C@5z%T#!C`Zqyt9N8JOSGsaEM6@-Mb~zprttRx- zouAA(kPK-?pg&sYR;r+t_qA}wB06-+*XaE=RxyVA4Mpuyti1|?aKrK06`OsL zn)_c3gl=w}wzjsyDZ&K~oEcx7&-vt4RaJJ#Tx-kOmrD|s!M5{vjHDh-ZAhD(>ViXd z*Ak!URiM7O|4;0+O03rlSn-;&s!nyHmiPBB*DcKdh+l-TA#An_js9;I0E=ux>IH!} z9`B(xEMFt$Y^7U@{lSq5NyeuyE*V1qy=vmScRE=^TPw!Z2%sl1X*aA^Z~!;RZ1mR) zmrR1vN`?1OPN~hF zxJ`+MfgxF{8k>=!yPd6CY&Km&fEy;hO@s}D&t{0!{&@XXtKNDGa?)M^&<6TkJwt~3 zF^};`Mudo6qr1h&k1+JACBM|lb%!x6tK)Nz8V|h$LWD@dzim}aSi12?=2|tHE~;>l zuBmOzWI3UKD0ntOn~IB-lUe_ZNV*xpwfwa!6lc+{hj`KLpw#2>Y6h@}gpfDX{ls+I z)gK8XB!ErW+uvU$)S6glXk@guy&X7aitU4qgn?lK+DOaYb}AY^%MToSRTco4mFZLh zZdB;vj3lD-7y*3jT3ASh95;`&9p@$L>R)URf$lo6;29VXCjAACFjPEELqlUQQz#R3 zq+}pV>i4`N6--;}40=OKDzC1N@8#w7a6Z5cMeBfKsFtYz?IHF4e6rk%jE1%eIK(#S z(f=$tt3B@Qy`CSPc^!5?0s{y*d-_8u9~K>FbfAV7=pujs3@Tn6WV8IL!~Xe`T6AX` z2Y^P9T_~Q?d^gstJh!>E6|aejQi}nWBk<*<^9)V~KvRpiTBx%FmKh8bNq2`6hyqMJ z3vg+`wbfz+EAKj8TK<^n=2891Hh^C{e|+Eo3=RZMc-iA(XutSgWtAj1YpV09?$*?K zNS^acGrVG!f91;DvQXO$M(Cy7r+h$A8X6iZfR%!^0N{d{xjCJH+a=ArXyfW+z?PtJ z1^9cW0PfGCTY=mkqZpbxydJ0oyPde(kl^f#BicA-&`TU?CVR42X}AF)>Ag;oGkMI7%H*DOP>)6;S3@cP@Z6 z0FiiEJk<|q^b4(m@bGXn0OwwOw6-pLOwAsLXQRS9MGk5aD~j1i5jXz$#mq;U2D@t+ z4!QPiY~Psx`yG*T>p<5N?$9gyEs$3}IEaXnxVuKPs=z-T6a|9<;7gm0r7Q_cH> zAfvW|T-k zTN-Pk6pI{OV$)aup-du=c>yer%; zXWxPJy;UEDnGA_EqYJ!+nQM7wtKaY#GxOx(Rp}YlG#SzRGPnrT76_@7(7`2T6p28n zZn+8Ym`k)9t7hwfDi8yRXQlJWvSQTL%?&eV1jyjvE_i)H^7Qls1hw({D?FZcO1!xF zF#?!PB(*lblF#t2XY1mwh#Eov#=zQJb22b60IQ<$v0fyLjGsTvrtL1j17d7F3l~9; zCyY+O<`1ry#QVX{*Vp$J*t=ls2vt^APGJdahDSRO_x_CH`626+Y|0k^my5;vq)-4VcnVRmQANr55!@87?;MjL5!6u~393}aJM znh`+=13;KywSzh}0vy|9UPn4;B%-j;tzA;t9D6)0ey!ZcS#*JoFKhE!KxVZVv79yp z@K8L6=l&$EL?lrk-~)}eYp^*I5$m9yiWDhh;o8TiV+M=uCW4+r5ZU^$VJl2#26kj(>1_VD1rK^VbN zjshq$yXU<_zFfLA=q~_-8-eY7ZF~#rXc{oxfv}{s-8TKlCr{8n{<;EGvm{O{LYYJ+ z#_2Vaz41IioD!)sJ$`~j2sgj4CBzg)oENpo-EmhjRDtF%{b!j0$b+5DueFYEIuUwd zZjXh$U;q5DueVuhiU-|TwLf1ZYZcUJhVPJ29Qxa>L_O(}b}*dK$F_@MJ{b-hq$?Sy zK?Nq+-{1c=KEAs7&fDUtP`QE)5H%>AGRKs90R`|0^8+MbH+y5$R_d{R7{ao%$w}M~ zE3pn3aZ$m&D47@@>(Z0`2PatLULxGbzc)yfu69u#XRb=Nvq!|+3zip2#DtOhbjy$sCPTF5LVBqT@}8s>6;dJPYB4CE<_=u*hv zV6(_tXPk4cFWDp|2`0)PF(0Z755ysS&@0YPe%XMb{x04+9%#T zVrrjQZqPe^Dg2t~jbENv1z)X7`e3uk0o>`xWOUgYuJ+Ny0dLi(NzF2DCV)rf^q$?Q zqIEo~{)j>z4T6ImLc0bk6-90nXpXe6eM*#J zy#Bb>;phx3<2v@o!W9UlAAhW#3!gG){Jzg%lC4;zKo>`&(oZ;`rr|n@H=n<1=lH#} zvg4?@SG<%)V+8tMx*o_e!?KwniYM#jJZ@=K}a&RH{ujw;X;ByuWe5%;Fz z%g@iFxfv=s{mJ)^Cx{4dyhqfM>~(e9OUiIu*KVWvy`3fOy_55IXZd=-k}*+%ik zx#pL(y!f-MxfQ;2%4!+q>80N(PEKzNhzs1ktS`BUzKE?N=Z@E$3cI@a^tHs`@l_gY z+c%?$@;#5Kn=^a_;b^2PiN*_K{CPy(Bo!`%s`rWW(aeB30R#R=Io@D8>>I(r2E(4Y zR{($o;OYLdm?;Aw`_fGSNP7C$hjY;I3{-r2dW0|b188v~@+0ycYzdS!?8PV3Dw z1s7K$P_xR%U2g$!0zjq5yjCA1)nsLjfDrs}IU$dYt9y)f1oZ4AR)bxTJOL;Wq@=2C zRs?|%s&H(1sbT~=gXMBd^435iT;0eAXiEgKL@^Ml0or#OuVW|_mjeYRD8Cg5e*lfi z0+jH@@^OEv7$_9zn3$MQpaxLaT>aI-Ocaod>~_+ff5ycb>a~CCdv2OnxVVTsWiKJQ9?-xR_2osy1P`rv-A={57xr8RL-hXn|*|e?wTXsHT>Yi9_Gr z;W13I*q?v0+)-HXS$_TSoNa4&@z1;x$mP8wZGTp@yo_%`8)2?5$|H8T%|GN%+`4Dd|B>C+6p$x4TP<3#g7tWI~?E=;^-YiK4l1l3p%g zl-xiibzXAB3kV1R{qr0sFK7MqXfV9a$Adskg8}L>A`cJG<^I$FQ#6o}NCezi z9QP;fDQeGMfSL#T7zPs)lbD#;>Fq|;M60`VcNA&Vn5kIK*y&jhDWE^Y7UiuHA|kLr zN?jk5B;A^j7cv66xRDo=9iwcC+VRD_Mfn)eu|acYmrLXJDJYH?-;=PDlKr zM1;ReeSfl9_dvO*o@>7MzJ3(+I+SQG)c)jGfuu#?MUIuz2E!$X&0~sH#X6PdWBlBu3F6a(|Ej#CoT(&T6KnF+2Yqyj6jnHsyqQ8 zBx9zAK#%_K-2juI4|0c#ASej>J`nE!L+Ju>PmsS-(+FldDwsLovEM`jb;lT_+|U37 z1AByB{~r>NEM2aq)L4@(t4*mXDNli#$l|c8Flk<^LzDI{I-S=s8(_h35`mOBY^}t5 zK%s$N?i&_{Dlc%Q9AY|>4C}htiwQP5z~B#8GkRTRLwW6q)5L-vNkEtGp|pgq>x87v z1yk(hEa~@P_IWDZUul>jhr2=4(5)YQ4ll)C@;}gNd3n?)DWuKT66#zBm|J8I_i@WF zt_huCnCWicWeR-{4$qyq{a}p}bTEAP!EC}0Y`-L-HQcI+H!oQBQD>X?y-jPZ(eUqn zgCcBZeo360$TtXdq(>M1iJeUTf5C%rci`}JWF38P^^Dg2EP{S<&ZYk4go~M`ry7xlY85Y2b@$_mxGfx(y z5}F+kx+@KO4%c0%fbd%Ys)v7IpsH45g*wCGa_fSZRYyk$NG=)y*yM09{i;^es+}_t ze)1g+Hv9)G8L|4mlo>5`!Y4`wQ9qrSQu2xK#|t&w7h4~Bo@V;7AXG#vGV39pQ|oFg zf!}I^TLNN@I9%zlr90*wddj~j>7!c}EA7mbOvqBEhgOAc#1lPUaCy89T$?E@n!FWR z3L!ITgK>}Sz@iqI^}JmR0=dZ~A2>udw@VN(dJ`atgIpI3mt2a=2p0*Z^EPymvbCghzFNz7+|zWIsQ z>97}()WcTRh|>O)hWD!egI?hWrd@mHD(@jKqQzU$%E$K}?lp#Y#8Y+J3vN2-Wh8

0r2 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 Sn~*E;$73la$&yDVf&UAZusMYQ diff --git a/doc/img/PlutoSDRInput_plugin.xcf b/doc/img/PlutoSDRInput_plugin.xcf index c10aa524c4a0fa80cc6e49678285ea008384ab79..52213dc3c557cb38259e7957d6ff7bac8bbf7e4b 100644 GIT binary patch delta 6589 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 delta 6452 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 diff --git a/doc/img/PlutoSDRInput_plugin_1.png b/doc/img/PlutoSDRInput_plugin_1.png index f8261366318f993897cc661ff042f4715922aa9c..ed311259051d5833c1ba8f83317bfc5bf4b0c466 100644 GIT binary patch literal 8692 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 literal 9677 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 delta 3084 zcmchZYitx%6oAimw-4wG`k+e-Wo^?36xu>tN1-JqfYkquHpq6C8qAw^ImScMuiB!H4YZK01DznR@F9VAhLVUjQR+;i_a zbMC!o?i^!Z#IIjRY_4!5e^&XTqx!r^)IpK>bs|YiMckJ}My?Ra{#Yd6B~o}uWWrXF z%C|)tJH>jMP6b;@qfG?|xIASZ^^E#}9?eGz_z_%iUPm9F;3|FBSzi}`^ zBq4q*!oyGv3slGGRCRCi0&uCt?jeC!V$Mb7%nioSzhGiatg-77*92-3eNH9A9iSP{4__r>Q0#CC{br8Y#3T>J)Yvii4!K3 zm5=v~R~P2YRnkAVFV|dG`f7+x^$BCW_kvS0<>y5iFHZZm!ZW1~;+GmViu z^}btefAr{vZYc=hMo1*E%iUpp6q9@Pz7y6Yv*Xb9Hmk$5>%HM=nBTnZ=~hTI-%`}u zaiXJtUNDC4Pz-vHPIR4CbitsD40UhhNX02#6W%@5dHrmCA%i_$!|-B4_`UOJ!~M?V zHF;6-rMrywe&rzPO);+ZccY~{w$N{E=~qOW%lTy$+Y$0&DQ;|HWg!J7NzYDeH8%EZ z@aZuw4eaI`9sOOWbRL{F%#~XGz0op2Nvv1L4Cr@F_Ou&@yvbLaPxSo;7NE6xOF^U*bEx%70KEIUqCBxWoG>e zI{p&)46-v33ZVj?fQ9fXycPQVTuNN4WN6tooLVx8oDKKWri$g;!1n;020rPBTO};q zTN`w)S9#rDy-Kn~_Zn_P_u3>gjShR0ygi4_^vVjIe^RIo^%c28@xb~iq6`sHCwdmB z%VJWL`1{=M|9)Kd<5psS6yB}eaW40E9JkN&-|PnFLWU81xp`2E_knHvT{A%;MgHGR z7?^r@OV4ofDzRtC1hv$&P;HOf9k}XlapdN_A;E|LtX0SGPs`b8*X1+>j;FhwO8$YM ze&EHDf0p`a8~EW<`}pX`M8;%^6i^!#426eaJUj~gcnh8v8OsGT?n|I972lJy>peDQ>juiuVNCa<)e(CDZKznsZB*QrIm9 zF00Db_VJP*82?SA^rA=^0hLXGmqf}lpaAHX&lH(F16DyZw2D+v6jV?MR9uE`{0@e6 z7En0`VKU5sX9AAVEwSncWxJU~Atp@n=QFk`&2CCeqqxNyFjA>J04lIF{uom#I?S%bs z6wbi!@E1NJAr*3<45q>ySi&NkRwAs0t+12pKRK}Yz4!>F`6(6<4vLg$ro{F?0*?d6 z<`W)ozQ8!U-b^XjdV~Vs>R$dECp&KG diff --git a/doc/img/RTLSDR_plugin.png b/doc/img/RTLSDR_plugin.png index 5ecd56cc40aa3bb5c906c64a34a2f0fc107609b2..d062685767d1ee0304a862b4d27ba4de4c5ff933 100644 GIT binary patch literal 29549 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 MN-0Sei$C}OA758d0{{R3 literal 30306 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�_WgD}Ok%-`RUtNp#=n6KjJ-U3z-*PPGs1BY6H}gSWB>3VeNF#9*|L6O|04SL0c{(Q17YuD*8u?7xm z|KJV~MxTOI93eOX=lhR(9|1f7IRc6#7BZGWZHfD)JJGDy))J&TfPzTPY*DeW1Vefb zo6CV|V^d!J<%K%RyAACJXvZeMcPCX=&vI`@UglZ#P*R|UTKghBdzCxR^1Go6n-RjZ z2HY3R#4{4&?3QkYufDzATl_ya6G(~Cby*YcZXB=;>xJ&z z|8vd@nygnja5)uH<%kE9MX9sKr=-ZcxbOpd6dM=k?>B@3P~jQ`ic z0GOFu5Yt}b^!AJ4$M=WsZMggRJ{6f+STzHZ%k>YRjo+X-E9*8mm&-P(Vt zW?Bkb&)x27^WAVIc`gzwNS7x5gog)k#RMRFAVG)FD=#?mpwxUS0^#KKS5Ri+*ZXD4NM4S{6ycQAAxR5wJnnmTB2L)jj@ zfrp>x{lIuXirsvE}pBw~Lp6I53oMlk;zQQ~R(Q5<5Wjc>7%mtZh1&R`Xkl2znX( zyeY!YAzJw8)ipAFtwkMxrj7*R>ihQEF) zg1XpY1&tP-IW0SS1w840Iz_4*NO$+YKlu6GM1Jst!SJH`e||u^%Kxu_SA_J$^K-D* VMWAOP269!bq?nxOcM*NB{{t#Y^<4k} diff --git a/doc/img/RTLSDR_plugin.xcf b/doc/img/RTLSDR_plugin.xcf index 0805b73dda9597253f317ccc2510667847963a16..d2890373fa8b0b18b61084bdb6b119fba2ce950c 100644 GIT binary patch delta 4674 zcmZwL4OmoF9>?+DcHdbD8=k~+O1b@h^ZR7ibiO9Q@^hI}gxzgdcWRJwbS6x&~#aHBN& zP3itmq|}|#Odsjdo1{5`QqDYSejjPk57G;<(uzc>;4W$1Ptt1_q~dAPmT#nr25E=C zw0ECWQ!aI{bx3t~8J}*Dvlxvjj>HwgW~kSDhONm}B@N_vFVLSi@9!$@bv{03oA*>7 z`-ARUgAj~pjycu;X{pOuT*MX6_JHnE0B;cxhI=p>590|ui2M^;3Jd2mG3EQO3#M!wTC(wlN7!c#>(hbKP75Up83lsal($r-5I8LO$ z=vbIO#(X=ludnSR_n@uu2Yu;T7xbgq8kFT@Pj^>aX37u z?Kj^q-TVl0@H|$b7&~wfpWq8zkp}sp7jD5w#NvKDf*d?g?1NTuP>dZoh)<+Hd@c

4SpsjO1tiyU3_L-wKsIPftSe>_> zE}g}igW*@WePhAWj7;@x4_hvUk+-likgKp`I16t3uwSGRUGaO|hP&|>q~h;*2Fvj( z%J4op7;%h)v-lRjNZ}`?2yzlZP9n%j1Otrt0?tACp%-q!$luCAH}l$v5q>t-j;mPK zK-479x~Mesfv8hH_B-9x*7&2RNHJ|}U2He8Jw4l_Tcl{(#&$+1hJxuD8;=xZArH&2 z9;MiYqi8@2+N5!v5lZ~yhH@}Q`cr>o&~ZFckcB)f!+Mlr7mlI}Ge?cv>St?h zkFz(w$(3_Mi}UuZi|b+jE^eo{{X=)PHTDT?wUd`%CEPpfuWKWo`uGAAVLJ}sW1Poj zX`(NJVM91#Fcq_qjU^~Rku=Fp?1^kHiF3doi7W6L-o_a^_eC&l2uBR2VivMH#-3mn zPdw~r%k_-Y8T%CS=PK>_n6ln{c}k0yvDC5XfgW}qN~w$}wGdm~=UvZ6(l{xJhf&fD zJPsaaNn|C7bCW8t7qw`{B`Mj!4H$so(u4JAlOF0XrF?)ounDL9C{5$Wp7xA%%d|~& zOr)tqno6XpM4C#ZsYIGeq^a3h(lOdl^S0!~PPTmafMuEK>8uo2X|J1J>PRT*X;w|Y z;$^RNw_K0UnVgw*Qs&P*j60!+XL~vmlg`AXGcoB*Oga;jz6ZzAh*n&aW(DCU+>U5W zLYkEE2Iw<`*fZ!SDuduNexyS>%j6EtoPdWg8}q>vAafnw!h84+KE>A_@tb3375UlN zEnKBHukEWm%geJatGgMPwZ+@M+g)vqdkzaMhZN_`z+;~6b4mH!B`81y^I{>}V3C*H8dc?Rs9(cBczy4)-?D>u#C&aUAs)+Eet;ZxTMu$wHp z;Mtz{oRs%6UdKDwk5l*@KS&FF&=Z4jC+@`~$ieeig<|Z$L6WerNm}?F9nsICZs?CY zFct}zj=5Nf7qJoLsBTX}H*@@gd44uN{ke)|-WRjDtaXdOG{0PYgO8mLkj`QaIiC-j zD~4edVm#aPE2R9rs6{g_NlOjffB_heaY)1rPSs&ypM|#$+j5T9dZt*cLIW86Surttg ztfzI&;QgHCdhn~*=vM8-VVuTS_(^&t0DW*PMqxaXk%@U&iZyr>JEb-ENo(n2?Ri|L zA72E+#%8uIoCC7DZYpLW8%t1tB5cQjj*EJ;4zS<@-?76s+^0;>u~{B>Chh`;GzmHs)$1pGLVaWtVRjp&NFLEPy5-} z(p|-J+nU@n);jYzKVN&&Ph89 zQ6cTx2zI|+SEb#9kRVk@V-nIZ2X?FgeT=Op=IT8-jz+ZN8XX7WCftr_OhOvwz>XEp zf!Vt_`fnX-7FF5;`>_cq1SDJm2{WFWnUQwK2#)1^P&tf&S-#Gd8s#XQ&^sp5S??}2 zY%H#F{d(4S4O^nMu4be2FT2;=FpF!B5B9z_a^DQsiIVe@zTonG3#8ilc)_!6A9v=F zYU*d3B{f^S{_*6!?d`;O{jqv7$+PYx(=3_Ir?wg9xl+JAmoa>~jPN!Y;}^(CzE{S~XJus8%6M|BjHjQI zvGk~nf@Lx`XUQl(AY)&hjKhU8j%`+uajaEF?JOA|4Ulnq(c+7Bl^5%be|Xy)m~UsX ztS6&kF8?lw1f4W`wi{>sWt<7YU~tZvI3ythxyZ+Al%NWSP>&0^D&wp_LNFMS8f~17 z;~)tc$VEO@qXbnrgnC@SRR-jb5Dez_=}~!GgK@yi-pDtkUn4MR{6$7H7c~DMgT?MD z?d?X>Dj7{{@hUc<7+X+=ZP0E??N^9 f;}Dpa<`XytB57_w6Fw(`ey)E{R32$Gl8yfZPY@)^ delta 4493 zcmZA43s{s@9>?+D0YoH$%p0ZTqRuYmQi&NXt|Gb>CFW9=lt^AMu`I+}SkQpf3ax2K z>oqboiVReIGw{MHsCmm2&BYsnxfQ8h)a}VKZNJ0dHt(M2`OLg?&di+iKj(kWyfbe{ z+f}t~Ums*5D`Ey1=M7TZRZ_q;sbjg+ZITrFmDJ~~)VGHe^^`OyOS-SSG^~sCaEbKT zAt`x-G(pnS-J~>MY1T~X#SkgyvNZQWX~Cn?KVqfjSEUu_rFX|kt1n0uP0~m0rJ7yR z!PQdWzZS_H|B!Ez%&F;x*8;j&pwO;eaX#j*H5GhA zjQgE_vxw+8zQjd)d%HlX-L1F-gYXcN@f=>le7uD<_$NNaDSV4-l7Ap>#T^(VMf*R* zMKYelOPG(hutsWMhAsF6gw&p?X#Wd?VhRHGS~>BznZoRZ?u7?a##)wtw>FLg_7GiR z2c5Ck1zjp^4DV(I-k9Ly9BYrw_4ZELtm06Nz-W7W=U}OG7@`n|M5H1Ed02u{RAD!c zq8XQ21V02L3{i+9_AZHBq)J`q!a}1IOiBeuN;i`NH&4WWq+5Q6cx2!m2G-9r_D)uM zmydlNd}&MZSn?1)<5?GyWF>_RY~x(!uJv5=o}0+pk3n|!Ic0C}^{~`yJf>j|7GfpV zqZWtoIW9`Qy>JtHA_7D3FvepV<`8%9gYSQy>xh{0)on zE+Mt%<0puBJsdLqIz?z=7TyZiY%$dQ&p`}HjzJ9J^pa8|vh!=@F zfiooG8Soo0aiEkq9Aoe-vcQxi^4`R9RAWCH@C~j?j|U(G;nEYI;j%QE z6;0Yss7Z&p;IvJ;B#mJQk9h%{hL@eFqYBbfXnKdasdvbU$O2q`Q=3X71!BBZbg zDVwnmCvXl|q=`468~R`XhGDdnx(f7}N~o#y6P-$^sh8-G&L&6VevHB-JP!`_$&2wG zDzOXo_=<3UvQj3#;_KiXXenKJY)#~6uG#CR1X_VpR(m@)x~o0IO(Tb9F_E*zV6we^ zDib?32L&ib1!_=-)3_j|8+1S@`XUwy(saU~!F0^HBF$tvX7W0ECi5|K0O)9D0g6$9 z8r0!5E-(;-4hThG#9HZ7d-xVM)}&cK&WbmV>%U1JF=vdm$DA?MO3irE+j-C)lPmdO z{GPicGB2kI=k4v8Y>Z5@C6hBGvkIIcnMcu#%Tksff)R!&#Nla>s9CRK8CGKx_7ZdU zzol$`e{<+KrxSYPZu|u!k%Ad`8E@bne25(^@lNaBtl7Q}R=uTogqwT9UYC2$I+NSM z$H@kB70)HkW3w$_78eY}1NQbjZX)w`;t0OL4^n;`bcO@{aW5XlL}Y_3&L@lW$>Myn zIG-fWCyD3XO1Sf5rTGaMhjiqi0L7?44eD?j7Z{L12ZR#t25Wr&=C+RCyT|DHYg`a* zuPb=a8d9*@$H{PA#WUPR41GCSz5EN%gJ=7qa%oXD_M-vc;HtDZ03is+Kn%wiJc}&6 zh9Z=sT3X76UPd3$%f9B~Cpv0}n{gZd1m=19>q{8=u+R z%aWwBDagb;yooaK{xW8HO&i336((c6f5+jbnr8C;@MZ*)X2^utg*f(e+8TohVqm81L%t=iIiYBSt})ayKV18Y{x zxpr_N_$6;Ct!=es(w=(i=U4^X%L8w(V+~pgYjiy|>eB3Wbxzl7YwwZu#@ctJ!u9Zi zm$RNJa1}G0hZFFY>gVvk_I138QdjG5?e*VEXWL0v4#)(3ArpE;=B^T%{vBoF-jGQg zEi-gZWe#S_9Ey@Ty2RDh zwf@;**`50j+P2tanXp{HW0ii#%n)zqiAkdQu7F%%ujrb0~$}|L_2kt}+MreR(c#?}WII#dLuohc!0FC$#zcQF0^uV2n zA*nl7c5N^_y_}~wdH6z=L3 LT)D5w#G3yCvTodK diff --git a/doc/img/RemoteInput_plugin.png b/doc/img/RemoteInput_plugin.png index 873191493b4bb191bb14980b1d03b1a6203e45d3..89aa39a96803bcc00b4ea38a382477cbe6da15d7 100644 GIT binary patch literal 35017 zcmaI71z1$=+b@dJC7^VN(umTHfOIL{-Q6A10#ec-AWC<4NO#vzLpMlD$A0GjeS7cg zJLg=-_rh0Z)~s3UdG7edy}~~!NMfQ9qrt(!VM{eYML|nJ;D1O) zvXUR+o?!p|Y|W1cub?_eX*$Efp}&ItJcCR7K?q(%c9E7BN8Ut1L8U=-oul`LgQJ9# z{wSj2v2d8-siP|X)VJbpsE;_0tAdSig(xrY%sn+c%{JsyRWePkT{~Pg{6?FZ)7JZt z;ruhx$nw&yWkhP)U0@#l&*#snsri@Cub?Xw{dk*I_5}BB`sL?=-lM6!x_aFvRq6AWkGJ?NQsB`|`zkH2FgT07S2s`Y5{PO>K`2RT3|2X`A z{PO?v+5i4374q7K57@&5U6uRQrMt|JcnCO3A`Qq8cT&-4^^8`bj&XjCdq&uK9AdDY zNX>lJT`$e#v8nKai#}$?{pXr5q!8DjV%cB9n!2tfvz=uf+ykspE3OEAsz~4VMZ_S8 z1gl^N8#T6*+2|{I=zoZBIT{cdf6%<%sk)ZNE+QdXzzgP+DSP3!j3}lb)*IB(#9u>< zSnQ81$?vfxeHuq86$AS`uMfUNyRyg1&Cto;IZr_)WNq*k>}Ee*rfVXO5O>_MZazR; z6n&`wbJGcfQ$dC^OZ@FLMh5pb8qL~1G$@<_0yKERUZMF+E*Q^c(N9DE>+_7lNB!D= z$F}_}_=#ta1JotDcFH5||Ld~Z;!8uSao+t6YFS&(M+#T`uUDOZf7--6SXlhZijYkk zJ0KDGN%H2}R7yIm^p5I`xF7+08Y3?Xo+73NFBM)cnz6dfnbxd+{GS85O|CEeJ<};sYQyBXUc#aY z><@^l0x}Z|b?o6ELLKj{MQ0XXA!P4=fq{j%#gr4NL&2${SKwMcN)_Xpv!*}_x4o@vXNvgA&BiJt zFO?#|(y(V}=e#0Kc^eI`8ZKJ5W~X_DIGhGSgq}a9J0dnBHcirAUdt8ajA$$Vq%pyf z=hL@nxkWj){sOjUH;7@fVIS#XBub%Lv3U91?-{FNW+7QwSrtY+e0+TI=$^hF=k;JY zftSJi2G=KRAH~Iq{Ihr*f9Y+CVN$KZ>y`u9c;mMG@Z7sw=>rRh94(>%wX ze}yLsNgESPChO|O-X_OmTsP5wl`g(DQu_W7a3pAPXa)bLHeK^a+xOwp3sMysLmemBItlx^guJkBhcm9!S9i3C8`ajKLo3y&UtMUup~|RtECs{sg2p zXPu-xS^c>U7i^35DojN4t?y^?8O!L*tA7V#W-MH^D`l_7z18EWsDCY)zvFSuLS1ei z`+I8Y&*=BN=Q<}gvFg1sAuH=PDl(0S-aOju4e@kvbMe)@%KN`y?4u6behes3wOXHCFJgX6piPi=$4w{c zSvSj?sZ_|(h&B>FRLJ2{)7t|LjBXosxp3|M0L}M1LyZ|*{b(XnSqv#qL82r`lu>12 zT23%|Do2;Tuse##ujY)>wf*+Xi+z@ zEwQ|V09$H*aEa4A)|p%P0`+lyb2aD2Ef>=a!QI%(=6;l1^{Mcm%<6Cqi=EK;QpDxw zx_kJ$S~(aYJ$cTLT3(I!@UbaLUD=V+F6a&&UGr&F9eU!O<~zId-du4yt-o|G)0^fe zY5H?5$Ual9bv1K#ep*de_i7E8K`u+Ju>aMmQj8w;!gTvj+j)J&5BDpS?^>8YnQ+^- zJJJ3XNj4qx1e2EYdHV)tyT7Mk7^Onymu+Um`}`$m_;m|uOaH(~;lIfIPbp<47f29a zS{z|4ZJ%Y^ifT3ELbce8-*oRe!%nU-*1vPo%NG1hl<^HW(!G)RaC+&A1aam#>F5QR?J=XRc5&JizP*ZiLjWpLEiw$wdcb6hE-H`24WK9n?^5q zqWQ+|e2YfHbP+E%yGl>i(YC~%jICn4rCfoY2(1Z@*}SJ`9E}wlD%313hZd9L#F8YO zR*8Wnq=MW^wK@?)lvLu{c2Aqmyj1Bq7YKpG^BZe6;ib7~t(vdoS*oUw3{p+Ke=3K1N+)v*Vjogovsk~- zEoXa5f2rh(*yL$d+t#^OOkMIRCRn9_m#Wk!MqGVFkh+rfa%82Ap`-L`Y>`S6T3C5R zMW-Njj>w3Ci9X>30bhM!%E9Wn!@q9R(z;$5Th)EfG#$+O#(6WA92wJpKB%lKWlDu5 zNj%+ckaF}(c~ndBV18ja@lJJdjWu#?rNoz`<;AHDB{Q=EvzPCi?p#qI zKYU2WR@^=7uK;AdLn#E;;NYgzj45Y^zoxiEtrGvvsQoR3+jUIUB>JOYN<{E~?u9bP z3%i|_NSlpmNL1W_vqOeM-jf2`qg6105Hs>6#~F>+0)iI&z-QASzWDmK8fw` zRp-(*F&o&Rt!X2G+tma=(Gy|lcb$g8^dI1oBERu3x}t+_V_^z16MF0yL-|*Y>nM%) z^sMWdhIY|4!=_bb>tNao*wML5kQvMRUt*d@`iFC_ccDtbHOl8mHCL`?3ujZLjVblh z+j~O;Jd2uVF2{K#!i2^;(38Ixvo0FhUY{e-_x%nUn(FqW#SSBVo$K`{1qlw118F7u zPQPx7-aWl&4$r7fqqOfcn$n&!MBIx*o20=5%b<2hu;+>EL3=Rs=k}8N6fG|b!^EM2 zu3G&`%tHq{mq*+PapGbeAuKbv{;!LyrOe?Z3In^a?T59rOoLcar;jvlfdubZU&ZTnO56U3 z*Yj`lkS~!USG4070slmyCp;Wf-!(LLJXmJFrQKAFys`W}i!Z5TO)cdcny~(BmpbyO zH?J@F@K~OsAzoM>bOezJqS_ov!F$VIAi*;b@doS4nvU%q+&kX#d9gDY`z|!GyW2E7 zg%JH4c(!hDs>%r6LArkL_mcunaYR^Zcw|^+C)bwUT*Bol&sN!7hm3iGWYsJ!)c={s3y>=;`sx{1vS* z>7V5=U%|tZe-*|WbGBq5YRkP6swnxv9P{E(`gcDkwtv0vjia-e;AV@!>jDuX6;mTK zFgjx9yX#e#xuQio!MRiG7TLUZY`xYwBnE#*OqKlo+E4xUTIC*nB8Y}me=O8Lb6wHA ziuGIbtS{0JQ`6F8>&_fEZvy;GEL|ZQMRs%bcm$IST|v7mQ1}e!AJ)6Fsx2wz@IvAi z9UH>ssW3xblJgJN+!Dg$!TOKi7?U5|vn)(;Cr14BjSnU?%HEh7W-E<%k3{Etaj!l8 z46U)=9?t1_WM0BG<9b|qQly55Vli;uFUHiGNSU)n>&Z}4i7T5?sWRd=@Muheq|GcP zW~&II!#rdOZ%?$n*YMCh)A{aCe!OOkJ290Uuld+#+PN`V`H2DL!fkW@u?>OCZ8cj# z?_;;=$$|c7Q~b$58db@+w5R25BMs#t=*VMq#AACi3sIYkG*~w~`1jWD2(1K49AZ%R z;8~|jQqr0~sO3rWc}it|&5V&Yy^Ubs+_zhi^WyQ^!&mm>>3Py?$CA`W@5Q>o`hI-bYrl-529WnGwSts6T0 zOZE$TP*AHz!`|}+Qr&C^#I89P4H2&#yu2nYnXHvcETe4-SSt_Y;jOi4@?pmEp`36}A9E)s7jYJ!zY^OIjOBx9oXqyOgbq(; z#L;^H&c!67GvCCHPZ?Mth==&@^8rk`x7=GQH&@GX=cjiG(b$U8uo3c!(#gpFS}GS6 z{qXdfttgBeTE^vBOt|c-m^@9xLa%UK#?#XtR%5U(HsV-S`{gKwaK zvcU={6>|lpSb9KYDY|s3w5r)$&uj>WEfT&AI%VIXR}SbR&ti+&0TgY7psiV4vpmk! zGpOM+K5r%C_2r#sW;zQX6CfOi28}Z@lwgE+9$cR2i-)--${-4AaUrZeDfFuI*!Rr0 zyRk>k-2IjA9S(4kDUfIdDXpUP9Xb(POh&Oz&IWuNXl;0BE8{ z@!fFRr`pR1yh&1Y>bH{POYOXRFZ5KEh=?$d*lLJA21^=Dlw5{P0v%NGg&HX;0c(t}cn7;hIEA_fs;~|tKXA4z*;v^B1iS^Gk zJJk`{kNO#eXohGF@q>mGmpBZzqTw0|+??~;k%)Jx|=gy zc)=H6iYM+q-BRY9Ssr`6&WRZ1%;L?W&$6<~>`M#z3ia(;g!&1Y_!!=~z0oL0Yibos zPp8WPRi*mX4 zO5Y_BU01W*+Vp|FOkY{T#Tw(!RdX5cA|?G$eFPJGl`4s0h}R@dsWe}`RG6eu@thxv zvDL)a`@5A79nxqa#iz|(DOJu_33vNa-j0|2x4a-su#(HoPmZF$iuN5pwl~z^nXf4M z<_8W>?|L}Tr;2ucIjyfs1zRCRG?(=D5tDFfAPCR9{Ci4KVXXhlDGq_wRTO+HL_399 z7rVd1UtW+4EY#w_^Lv~?i>d+tReJlRQvW3XKF=L`@Y+8^@%6rhMB*arfoo}juWar2 zdWo8!Al~4To*Y9!1x?njaN#54%P3oV9K}+Og9VwO63!$VPz@9u47^&~zqqfQ+^}A0 z7atFQ^l>*W7^s-V_dIaOGv7&zisf6-IvL#%v2gx3ta*-=M!Kxq$}5&#rt29}vwFCx zkJTNUWO~bcRn)4!2Z(I0k_fUsom)ne9@W#X3(~q>`RyxLn)r=1=@N{_!TgPdiKcLx z>P)L1NQh*Fz!W*HkrEhkh}r%f`f4(VqjVl+uLg$&6d03^ymw_f zWAu$XqBq_-()AC3e16xpx$eKdc#cO?Ufq7CaMaHSuzn!k63Ny(q4`>yJiKd7NkY!&gaSY#Xk?#Cf9$NmuLNAB67l)7A zbruT1ejtivs&sTvZoB8KM@wH9sg=Ccaogv&J$diJIkD)NY?u>FEab-YF8(#J@6j^T z=6=l>tO;aV7<8+tU42|E&yyn~@1I@^c(ai5Pvt;BL~iB;(uX{l@OT2@Pb`QGGOhF+ z8faBEv~+ecy;Q7dM}MYw34mkCl6NkoMxTLlnp{E6Y|TF&FIYw-My(9)P}m(lLqR|H zGRm~^&*5%WFhk@6ISUD!w;T!cv`n<*lF=orx%5CkgZk|;EjM@a($bl5_2|e*sl#;< z3e)r}DzZm^mZFi%Jmhn=Q0efn;}_gTvpyO(TSiCj>cthPJe-B8oSv*V8kKxgiCp-p zwA!O|H0OEeOo?cJ0WiyC&kL&{w@9SZu+(hSX-P7}7gP%BFmPI)52VLM+XyZ?Bn4ra zts^$Yt<3qcH-BTtQZb9m&gPN7*F>N+jfeQDJuUXL+1(X#>+!;-V2a4~|HLqC!h{>EKe9*hptE&fzvfVeRyA(F5zX|5HM z?s317EK($7?Ix?5!rmF7bM8l0d+^^HXz5XV*Tu+sIsc5d6+8TOfYXKRplOQuY z%I~uLaMUVH9Ds*2ujXlF`RgTWjQobE9HR&{`o7qn{W44Tou3{Mq}$oX!J&< zg|jPO8A^K^uAKJ@k_3*w>)t7vdJO}S7C9(>-44*Qx_h=GKe+8uUiHH{eHoc2d&#oX zg^CY>54tcM7uJQwx>T-0@9}tyc6j32~lx&P`NP z3l=VibM^0xa&|OvJs#!t#Ck=$*B_A=69mT)X^l7RB4r zrc<}|E}1>rXk^`kLBGU9PyBA+PoU@d8k-6Ijr5*Y(s4AibFONRyIppUYCJ#Q(V$>5 z)3i6EV#=9XL*Aji0Pe{69r4uCRA!^`;^|0Tg~B*fQa^FT39 ze_ScPRLTsNs;J~!+V1zHVo9wZzQ`o#W>EvLCfL=#-*_$dFzWJj3a$z*$se}ICJCE7 z&*1Y+ec?T~l7_|v+HI-5i6rC1$JwP#CnjOCS-)E)rb6X7X`iM?(kY3$UqSltZ5d0s z{k#K2TG0D71O}o7v@7}rF6Um+L~cWdLoLRzu9w9=7M0ypf6(N(p7#%Mo@`&yX>d@b z0NqcHY~p(%jn*%2!cX`f{tjIo7Jg9oc@uG+?+;jhd|fT(3$G53Mdv=KgPTs1Gu}-! z5xU;{HXx7^`E;({-4s_+7~8OH+pf=#WhOLJ*MEb!vZ!-ob|ubYzjk)o7&;UPk@^Svag}$Hk}cN;O|0<7-63_Xx!T5>czYf}E$TkqRfZS8Y_` z)lbqKvOAX4syT;sMU~e-kSx$pEu|AzliH0@T7L}h>dB*Cx_2xOr0HY?>~>?kxOWcX zyet2nma1GB!PU?hdHRIs|4~g^TsspgDGsF>+3|A1-@qr|JSCUkT^tR{`|Adjh=$a% zwTmqiF7k+NlaERvlUZqnTQj+mfT#qCWVBe!cZVZgCeeSQVI7B5jFh5qDOiY74$v0l;`edNLUn#EoiEvQpj@`_{lt^W_jrEuJeJS zNL_91)||fo*2!Aea0WjC94jkpo?=#XObixMP(b_BV|q^{0g$*opB}EH6%@9ISlgLv zs~9caj6doyQk0^Weo7l+V`6)vS^Uh+2Jz-=)A(Fa;H&)cP0p0rTuH+ zqo@-6r$fP4eNc8s*M+C9olq6a+o$7h&d1~KTA3B)p82P-%Xg2}f+d58=%SjR(zF8w znitm`v&gbnpat9tnS8ERaU{;$!>Pd`A@7|wr82$t83F?XJ+@QL2W|P=#r4Rvr7vxn zRS|BM{GzWV5%^l$WRBF`Zx5P$PyI(A1i^fBG^&dXmQO|e=E+b>8likWo(Au$zcm&U zfh^i}t6Q$-Y#%;+fP1{QePC%yR?64X};b+hlig_q?pCye``a*`} z_5jlIj4?Mbc+v{mh|OUmL)57&{l>-O8DA$8?oK8Bp5$0G@u;Lu`zB}cT1qVv(( z`ud#=cj#IaH*_@snVjC`aJ3@{gIpkGeEgG*jm_?CDT(!58H-DFZtfd&g107PnSv#H zt;G4yderGTbw9hl=uiJpZDk)kFlU}aP4F~_4E8ZUc)GQkgiAdNzO^S$ zKK<+0uk_S8vPsN_dy~1r!NCTmraf8yj{}!Si&1@vGH;xBM&D3VcS4*?OG%(Ar0Co~ zjMqY)U4Km$#a#A0xvF1mk7X(9=#WO@voO~9Umng|a1aaK?$UhD;|tXkpi!Nt-#rOM zHgA*p5T8>_5bX=@=j7kNE&r!G{m=PKi9Y{k)NLRY0nk?OsbY0j4q{Apv*CA{>^|2H zUYCc`IyySxcwYrJUfvn$1D9`-CU*pZ+b&~lT}$fWMr-J&NYKg2iNX2y$Oq`Va-jV6 z^@V9xo8e$%|LKh)c~6J|F2?N;(&2sFYL4N52zlT3aH;Kge<~SGAv`)?Z7z>y={oY3 zBe_sB^?Ct$uc18JfcpKV=!mZ9LNG zo>1&{rrN*yx|E`0POAM0_gSXzrKXRMPYS>LTVUSigQq!U zBE9YHbQBa`l(#?fmA76Jj|o2spoIihRJ;Qbr@px)pUyQ=s?81cJ{A;$K7p!*Zl_(N!v(X>CEjQcguV26ZsudoKHuJ`ft%m8c$8VWrVPtf4 zdwZml;$+<7uRv2}Wu;+9AR@DFQ^HifqO2*MD5FY#?7qtk`w;I+nL@r;zA}(;{S_C= zS-?pL8l87E>g_UAT&Q#K=(fK1ZpN1L8g2my@g+}UqnLq;1+rcq{og{hHN3E}FuBi( zh}}{{$84!~)E&1COd^Fl9aCTnnWH6ananTKt$|O&$hff6;0pkB(w16p^~YA7 zL?tR$7)wXV_i8MsLj35)Ytv#=*`^DybSKkt$bR-jGrs0xp22#lS$7T6~E+% z6gXCV-qs!^QJmYI$BU?F&QH7PfA;(0!rj~4sS zT<6sFvxWnERplQK7tNE}FWty7Q7-AT9>$&8qDdhOjf3~f@ATh7M;koSv!0$Axnf)I z6XPDf*5aM2j8_af+)3IZ*5;im47@CdpBwrVx=?q8i-*0R5?fcDYskOIcl1s^hgja^ z$aNFm#_r4{tYzMhIL2CFT1Z@`l2V1>=s-USaMt7lEp>qB=w8f-2f|OGzDP(H1zs~3 z5cgp=clL`5DeE-tdb^n+pAgcZLuPY^Mwmz4J~m^cJO5Jz9%r&CIN$u?$43WF)UvPEj ztJ~eah2FJ`me0)%B0I9MuzW65(a_Mq<;|P1vVN`mCU;HmjeqDb-VySW5suW~!oj!F zHtN7D4@SRR6_uKqN8g7RX_Y6R+;b_IvAVy%uc)jP$^JC00kf$!H8pkGe2AhXf)W!| zsc=feT@n*Qy~z|66|2)lG}0~EB>lmdiDjiI@$+;u)r{7)>Igi*UcO{yQCQWck#O5h zHyCGRWSoL#(HVjsa(VFYmRMHZ(Gqrh`$e&{lzbU4tgR2Ua6b2wusJ(Bixtlp+1lzB zNNOqXF}}rw8S=iblt}2V>rxb*a=N>$_3+rVKkcKiS*SsUOO)v;`23rY z$AL16n3I~0E)3LhzsDPMg-ij4+y*3642;d4EdRF``$|quY(dCaT%M09?~MuB%`h%6 zFT1*P||Ld-_e;!;xw z_GgMU8=c<3iHL~EWeH`_%BRJC|K54E;y+er>#kO0xzZ*G8vNE|uB==J-%P{Gmhyrhn^PCbF^i9L-&;2SnP3i3F3IZK> zqDYm=>*}q*jpJs2+&40Qe06no@K!3j`3v=OJr<*lz5J~0e{=eD+}v{w_5iMc)(8LP z^KXgwUKbV#GH(hC3z;>mf?v@oB=8HiwY9Z8J>DT8AjBplbgS$8_LS*1%PlZ4jDlM{ zUyo#+1WEJj_wSqQjTm14M*%oDH@B9%zs;br1uZS;ObFcW&h-w)lV1?N!21L;; zeGTriHn{WYFNI9sS6$o-U9ZAFKHk}vl$2OZ{6b`HIeC7y>`qbMa)zc=ijR(tj?bd? zQB?Ffz#^24jA$Tcdt)fZ)_Wp7PkRU=eO-UD2~Gy?!0tg`Umv#iH|IN*_4WDs?S8}Q z+%cZ#+ou30OUKlNIyg9hGeqFfNF;dK9Yb3^0R~NZXZU<#V&WU&`@k`wyKl%8J{1cq zRDU6rH1=&bw5+WcFA3i27=W1bx!ubbxLytFiBJGC_?bU^Sb{lSe>8I(xWU zasIo+3z}_LAR@X(n-A~7Z0T>+Vl|(Ke{(;C{WJUfrI22b_BS|g@Hnm`ym;{<iM=;i78 z-uKo;&+o=`G*fV>KaS?+{(Ovx%Z89IBien%mmou-55PYMkbLoqLfPVx_&UXX{{lT( za3B>#Jf2^2F*)ooX?FfxU{@4CzD@bOXS8GT&~tO+G9Ue6czdzO!^g+wabf@*&8{%4 zzQMr=aL(kD6Neftmd~F*`&_SumFPC(*J|nJ@eHPy-9IhXTK9n!9|NF>*YBPuH8mB$ zn+mUgR(>~I1R$?ewtdi4X>u$rElv5jg@iKQp`Kv{1@z$j{O*6dJ35|mbJtrbnp;^h zf}mQxzc~lR1VGb(s3^?8fB%}IWvzS}rocl*N2d`GAO%sy=XUtD!@%HZp%xrCn!ztA zC4~}%g!z1RFp){%YROrr(JA-qGP$5vh1m$Pl9E#Y@bG5)(}R6w>&@i)GYd!sRXm*{ zjDnS%)Y8ie^kh$1fVc}B=(Pdace4>A41oWK{HarLPa8)^QSI%*aA0p?kTf@`_{$f# zw|Xs7Mn=?dVK2x!p-^%xtQcxH85zZ^zsm!oqh`xZuE0$NRcioJX)MpRFB9QB{!;|d z2W(>E2yodCxBtNVe6IV!zkkz!Up69H+dllBh>eZ?bA7r2?y`6e>=jC32b`o|NQ`&a zYdVh}vNmEw?zchy+=M4GQE%R`v&Xl3UrjbTo5MA^9Syem-l1VO!fkGEgUX6OIW<+x zDF}wf)(+>ZyL)=@crWjc+c&nhLh9@5>2)yIc6YzV$G?(Iervijn!&7HH>{!dmzJ4% znCHUI*tiR%1PVGjyC+L=+SjirFGzVl6)45T#L&^w=E<$a$H&iCnMR)00}Al?_y{9+ zpqe_~oNbBj=r=kc0$d6AR=4S+f`US29s1~NMR|G7+Y39HNaWSlE9eH`f0RN(ZQb_? zE-ZsD6&*pC5ccHNv{=<@RaI44EYvW-!IJpt@j(J;vvn-OPxtKnZilPqW5W548@+I( z{BGYs`62B3cf69dyK4aoT_l8oK`H6rzP%W|38NSjOijM-J8yy|p)0_45wkRk_EZh-QRno^t0Qm)} z!Ay~=PP<=5wpiF%4}ty(#5l(B;np?Y5b()fFsc{+^{W9$v0c!y<(=;?k30`b>%WQF zZS{vR2%II34;AWh42sJAz- z+k@P56Nj0FWxm0Y2DW0#dUCpvlk0`_cUQ;efIfgkO#(X&Yb7?ewv{zC2=o^v_khGw zfyxWoG-6Q4p9BVFjS7Qjih}=elUen-UhwDV=4PufdY+GPN6l50j4hFok?k$iGL^U8 zGFF?7{IXwZ^Lf140X6zpzxUCb9!q0mG0$Fw8SSqL^ z?=KTT%m$x>omjy zLRw|m6)M`A*c>MK@bG|&g~d9Pr&hc*r6_FLA4>)6h_7jBoj{<2+`k6U<(sEQwV8bQ zsldq}cnwWWSowveGd{D%m*ivu03mw-phJB{OK2Ms8k*$6!Wf@5c@2OQ5wFv0v9K4W zpzwNldZzm5LBQsVb}cd{qJ064oZMse87N~PL`C%kJuVM5K`0IBMuWc{-Q3=?UD#L! z=j8Cv(9l>yTRf>q{QUfa!@^#@dKIKq`gS^9ogVjJ+gmm)DzY0YfirTCdUz)O3VW0c zil90FA%4I8dPahYW;&8W6-FSUU0+NoHu~JKHM<}88oaA;+>n@@oP?zo5XQO(2hk`f zD1h)LW?(=G7E)DczTjs{Ca-fSJo1YZ5PwquCjz(!06wgCfK!3|Tj@9XO`HQn4`!_z z6f7((@IKJbx|WwSKxZb2*->W$r#6`_(d4k2M)|V3YLLcZskHTq70mW<+e10*;6~E9 z%>e|FOXDb<-U-XAsH$2A{ml$$Q2?jsj8}pn_@16V1Yklq&|(0{xHz1T&)|1YvT{F! zRQj9^(1C1O-`^jUWo_+lay@{PQdH#LrebHW?)Cu6K_4ul0osNw|Ne9#=r->`{@FoW z21>Q-ztuT8Imxu(Ck`k|*I3U*&lIbJj0ym{9Eig;pxX7Cr*w35^xj~;qLo`cs$c0{ zSXj7@_+(*057r0lf-?|Lh|E85+b-aOt`GW(O1FYEXllp+bi(8dI8Y^FP3<%>DbTb& zhsXcv!QJcXuRJKLpBWPc9xkR#%*~z8Hl@q-+eg8orU-blfuI1}fP_hG;uET^|31b% zM}d6&4$;HLZo(KR%y2Gw2LInuqjQvz^F}WwSf;KBJf?4B6d*)lpN1(+fE4r$420+8 zycQJ|P2slJ3y)_kiU7Tb9i#!+-yqOj0S*Ie2?J>Wg3|1(1(oPDz9b+Z0Idmj|DZr@ z&8X{h3ZZ$dg%Cj6eED&3aPGmD^YHVZuRJ{xczb)p7O{`Qe;DY-#ex|$65jx#L$Xshe38t%oLX;3Vq?P$V1HiascOYx68;X@msDQoywe8=D8t0wb;qq&e3w@YIav9!9hWrO;_ z=pgM-uhyhV?<4j;-Ch*`++xejk65ANg89g8GPx%AiUd6o>|n1i)$lFn%-?p=q2$B}EgwrJb_Kyx&C0QY7SG?BKR<#LQ z*|QUSE*Mr$@n2~F{;YvxGLLx6m`4c|=1#i=8`B$q8U`c#1Ia&AZgc?9Y z16YRWfxN#z>6FICB0F9YT5Qj2nBk&$=AAb#UrX~ z=gqcKE-|@Q1=&JZ{9^*&V=d3GG~(Ucb8%QBI6rDPdnylZ;RUCa$k+TFYkioTrln>; zK^$m$5DW>>U7KK7g`n%)b~;y6X~Q22A!Cw)r(V{`_v5y|2+Cid5v$$FJ~j1c3DEcU!$XGsi}W`3VCg+T_6jp{BIQ% zIVt7IwJ5}jLwHC_#qMcgq}5Yx%IzHyXDwQYsECUgGV;3wqWR~Xf_Dy4$|d46auGuzz(N-H?2 zwXI?0J)3nB_mTl6(4dz?KI-j-_C%xIPQD)M9@hv;lC~dZE_gVu*j$?yK66CodSU$cj?==m{QpKI$!geMt?~={END4|( zdvC&L_T8?aX@2w)&HGU4$l_kn*wI078+3a(pyB=Oe_yH=saGypJfp_=;{QCZvwp%i z@DXQ{ajjFR0b9xSGVu1pCwqo0RjOYs#{IUbvds!d70Qd*A3j^ABVm|qnmIgndm3T9 z_sF`!mz*;e5EPuS;1K_)QmVGGvl9k*Kbm;YU}A>>B@68#n3sU>D z+*-eh-@R|XGqwB2$4j~+^W%}$kEY^=^xNl6XhEVsyjhc(LOPjkQAHnKPEMjc=$5Hq z#;%-ki<5+LwJaQ}w%E2v56G`+U2^KM=n`%5MkqvQXn1&1C9|^@z{ZU92Lg#71QJlO%V z@lQ0(^}V~anXd{#M90Tnum`5=HzIaOtu=xF{V6hVW3xfS>fHdIo8d-p)Zt2d79Nw@ zIM8B6*T4ai3-$IfN`;$%7nlPac(_m-8G=r*4wPpBdq7!AwCkfWNw_L}Zk&Juqhd6c zy=s2HnVlGD0NiSWssjQz8?@^aRpBo^q7VYh)L zbp2DVd^Q1h1?EAo_&<#R9P%w4cmi6l-72l;-U2FiBQt0EX6x7vrVatj zDhC9zbZ&bypaS*?viC@E|e{2siZUI#2dKad9!vH~3)oiTa6{mLkbeM^9nX8TTU zn*HC~R)j|0les5G8>599OP8aCL|`jZ_d$WL2`2l1>;}`t5Rm^Pj53b({t1AGNg6;^ z{TOEqHZ~9FHZV0ejNI!hpm3*un~$Hb?(Fn|M{iR(t?|Jwu7OS80UG$*>F@TFIjDdG zV^9eF0P5X4w?hr!(TaL`@c~&E{wDyfazA+D09%F)F0?&8dIK#eI4VkhqI*Bmjxh+0 zKbOoaC^LPYTRziS+4&Wmb}kEJ(BLNT%o+_$w`SEF2G0H7ax*tjF^rZP9DAVmZ&W|^ z+>DKl#Q;op-hoUpUal|9We*(&_%&K4_hm@Q>!hTli~X5MpcTZWr^^ECq5bie2_6Z9 zex)K!YXqpvkUCqEhr6pCn7~z95A7Tq!{X=XhbiAc?cH0fXN7s?ox!NRy_*2QO3TU` z|2O-E3Dv{wV=6pC;7QKXQkEEjGZX;px$WZO;^1Ifd2lcS5*GO|Pz61KOR~4p?jLec zHF>5Ega!h@ivQHF_{oB1=mB80CzutmoGT-PV>cgt&CL8Qjz;oqT3Hdqn#m+VZV#{R z0!LMKHHbhI#+?SIEtxoDz{0q* ze9ln!_VzY6H%|bESv@#F{{wWA!Dupm9^YFIz>c!~Zo_$hS33^yGxz&*JKDY0XBc6Qn?t!u1%M zad>D0dQ_NR`OfA*Jn&iSmdYg)HroMf!g={p6p%_Vhy!H5-*X3%M>FWA$8la>UccrJ z!XqQu|3*ef=K-r`Yd;Q%f;d2b0a_Cnk@&&y9t{c_V2fZ{1`&)V7=b{91OLV$C%0o3 z1DOhwfFz1%oDODLz@V&!fEwwW9&>y97}0D>7M4;e9&K%HpjKPh@O+e%tOn@@Q~1&5 zOmnx6!Tid*=rj6686cqc08{B%gTorkF~|nj;TiPh*)vie2e^K3+dZ)Ty`L)r-DD!B zfCcpo9tlR}V&mh*l$2fq*~SD!)4!%~={xL`$h|=!uDNtXfWMD!`uY3&12O?~q+rf~ zS8FEVhgC2UjJMV6-#XAHKmMMm0H%YU*WMeU`;#uG{59Zp^^k)}-=C-cz@&oBNPr6c zO-#~!EOSfv=>`kvLV%W^14j?ANB9qbcSVJ?f$QzXXEgv%d2m>ERvP!E@HkR~$%`$( zBVo$Yf627+>K?b9crzc$0}vLFe<>Asbl#yVIVnX1JJ&l&1_ZuPAS2uq`pQzN9RVqQ zL4k;b1k;58v6FXjcn1Q)$IUb;%@&_re6=O+O^sFQv>01*V1KWgok(?BPvvuRW&UtV55y}H`DK5cPr03^;z zAWx}q7uw1XjG|%(AK(Z9%@+(-NP{La(BBVJ?MpPPdp+zr)IF4xm4QlT`JZIGTC{IB zw6;e701N@3`*1~AmFu;hTwHJ@ZGhGQvr&L524*?3LCyg&w(e`j_w|d*ONsJ1XW(B@ zU!hO0-1P{A)QllWMFfmz%osr@CUCg9xdAbzk&N!1n@a|Y@XJ@Pj7xH0S84NLyWErr zN}#H?+gyoe5Ky(j1;U~b=}$*T0H~TL3)ba8TI~k*224UF0{*B>?swo4RynMR!hs1X zIW;MuDF=s!0>bPBGDZ>zkKhQ9&aW~Q)O})V;4+9^Iv2U@E!*|%T4jdAvRWxJbor{c z7LtCs6?aGi;TzTkfcKaP7Js7NULR(aNqi&xT&C(GbCw0r+x+}|V%cG?q*e{KiK(ff zsj2F2N^LDC!1X;`ZE{Dfd$)Mq|5xwECwi!;s4xK1Nq1jgHP}P6WH1e^Q)jn42qu+M z-y0*@F4Pzfe18Kfz!@kf4(r{hv zrOiAW*miY`P1Lg_^83q0`w6RBxpXcd(&(3+DZOhum@8+uo@G|Z5{d!{9DE(<3lqia zdNdcH#r+1FE>NLnc!tx`(zGm}k`mgRVa)(wkFDA{J>$Uy1`JXj>|CV*m^ls1%U#fK zLBSFIJ@L-C_nT9XXE|7Jx*T7+06i@Kx5ahzz##xkD@3aVJj6d9wGYbpJ*;TIrlV8$ z$+SJaKe=(29b#KB4B^1;TDOvz` z5gEV*R`nk@Q8f1U_VII~!8NoFb_itT0qEXTr%tuv&LHkyknwech6tutfK~m@Vw`eA z%%ea3i;<-zP<%~JRy$xq@Zi*Y@J^mwY9PQNAeaGs_@0pP5m;IzTs8)~~P;jCXS83gx{@aB=@nh z`y*nH#;0(IHb*51JTW33lLZETMK|Onr`vA{92_Gojny@C|8WR97Xl(~?#A*l7CBd@ zftX77@!h|sbi|7N$N&e2f?&*1_v zgP4<(1FI|H!R4PxM!X(?pANV`Ob!JDHuLTN!oaEa$sLuTQ}{tiLlXq*>`$e_0`+oo z`7{ngP#p+~h}M8roSdv4-M$7OFMu4KMXIb%E`QGJ)az_C{T}|Q1A!d=L#bA+#Z(?9 zDBAFUfNuq?+h1zMg}TjLplV#-+-&jL>(}_J7O7-|Ta_7sp{MTISv5=4Yj8!pAeh0W zzM-NL*?V8A1Rg1>R^~GhN*z6~OHE4Z{kz-@BUz!Lp&(Kxo89d*yo(S&KQ>8PaidJ% zdUAdLtf7(OBo2lr#K7z*Om&7rp#V|ifLUeOGJ&BEfG0M`vxfsH0Br^q(k4Kdzdwe* z1crJ@uBW@_eo0|^hw}gRk}9$J1Av{vN}>?D>Mm61&W}op$2M7*6$FE;EQI2Ad2cYr^xwyGO9692<<)D(XvI(9bL7C+N%tC-V zsIBiHwA42>b)%xgth7gtJqo2!);R(l8NozPpRzz|TDx{F3qLP3; z9_xw91`{SAa5v{ovq6&uY}1~3jQdm{O~=k%O$q^OWW72Q%cV3vn{6*8s5a& zPShs7(R?5y$hgoreez}O;jeOEI{4Z4wC)*x{lIe9b%pCmJ9q;gFlfQ-B~g1kJTTB3 zB_D^ZYsMb%K`=fj2kkp{ps7+ zo)w&lC>Z@@*Td5Nm8mgqF75u>AkW81{ykE6-Od6G?ya}&@hQLdj+X}>(Y{G^`*Yz__~S$6yYAc!lneKg&dOMQyJEBF zYOALeD~7I$s~K*+P<&Xj+924>$K{8F?y7#b9(9RxdqXlq8o6)M|Mb&P-oBRgCcVb~ z)oE0&@@B#LXY}&FcI*le@~$r5QbT+8+(n;zqT9`lm5L5)oG0H>aJA5QD4>1+ zHe51JF}&mTL;_QhG1u|4YgxyA=3AIe&UFV-H_m)&piNk0RMS>T!}VzP*q&hVF!&a0 z$7@qG|Mf{n(&and*X&k2EsKVx9G6d@I@L4QU5@fyu_=jV(Rgx7J*6d0irV}LA5C7( zjL=`qO)_0Z4(d{KANh%8MG`cSa(`TYF6)+_y8rlzKNuisCuR!KQ1ArY3MlQu5i{hGS5 zkluZRlvho`q!dlxh}`__nCZ!rCx7Xjqqt;*E8!|axC$uE7y5aExKul=Jbt!SrKQ(Z zLb#sw+@{tT8;Fz8@gKUQO&3>PA}i7;e`|fw7|Z&w8{NT&bRU)n(AxS5cSzaJ6Vo*eQ8EIStYkWFv>i>6u{$oz|&fahby~YciH3pNW;m7 zKtX|9!M>aa{8fMbs(x1bG!rK`ho_>ZTgQ1+R8eQ>ZhlpB&|D(_ZS&WY9! z4O3QWeSIK`?`yaQ2zrQ=a7fR}s?Mu_q4j`C;vo)6NRsdIxBOyaUOk2AIstn(ErKc} zcoGu(UGQ=i=hA@47duy$n1OVzOjr4!CBnPC0AL88sxSOzgTFf9G$UOB+yYRxPrKGN zHg17LO)ig4Z7096_vw5PM}%hsfAHzorki@H7v6ePB8d_X#XcR57LpFi&Yn8q@x8W| zSEp~)x;R&s-~0#S-_CS&HCY)y-E{Df@kyifLv-h+`($i9LS#H-hHfnEb-w+D?$h-0 z*o$t4`PcNfJP#dh2s;+$;Uc=bz&cKGjM23?25mN>NcHm_l`Zn}@+44?OaYRR&{+lP zo9L=Z8u1jNqBe}1m}NdRGz5X(#=qY~jl0ehthFPIj|-08W% z1KK4KjZ2nQ%RTu1fZbkX`lH%MM@NGesnX@8DJv^O4ZH)Uwh>oEcVd6}^1HIKH69)w zAngf|0=V_v%KmeB_%wuL%1{{(NdWwwN&&KBl5r1(kxnn`;xl*KAEmc&4sB*;Rs|mw!gZ$d z@@|y+Zg2=aV4S{wC+<?#AbaX8`s>}BFE!vzmOyl1ASJeRS3{rz7{3RL2s z<52~3ow)~ihTN0)ojZ5N-A(c2;Z_R`4}XphIyaYHSXj8+hOB2azZ_o2j~#o~Vr7&+ z$9}@aMZB*rMrYafTUJu7rw1rlprA;Y=6Z@|1!`hsV?gi}x7Zk>zGGGE<=Sra2FU?v z4@7knj|&u5i}emYUH0O{Dg!jv+qkqSSlHNZgXC8>n|o^&hX)M9hY&a-nYmwEH*DMp za=06$F&by9mgHOa@6!?j9qu1;Y@lO&rkz5R77EB7rog0Fwr$_UZiPhK&#`@(rtGeJ z=9p4ls~C0eZH$n^6WfsIXI>ZT#4+Y!@%T#J1%ASyrFmULEvhuqxU&LEo>yg4DBvDWCD->32 zd(w;t2M5pmEO-1>vDvoWrC?K(g_#*YBpKo+$DW4GloqDjeS(7HdF7m(oW3yh3z=2W z<0*0KykY`c5?s|v!;2r<5PRIz%8D>Sl$4|se}tD#Sr0Q6;7Rb6y^M@1Dk|&2criN` z_uMZxDjo`)vx`x-7wYwrofRL|rP^q9B$w}9a&yT@(M#5;JI0n)%I#mo&BKzOan^8) zSgf>E?@kkqw|OHwEJG0>5+LC=a>##>DKBVr`t)7+lpZjO+{50)B9zC1L3a-i3&$V~ z++E$>3JA2}(_Rz~*ZHQ1)05HfHn!KJ$jFn>5r8j{P}qjDQTAY$0^Aqa&ii?I{0LQN z_Gt^GoA99{1F#uInRKDg;Lv)Z_DV4uIQ~suo_fJm8!%l@n+xH*Ieqr*PT(apH@nqhUeUDadr&et{Z?a*uE7zjNDnn=6za} zVy@0lS^|@8lpFi`@$!``=K>n~3oOboIvsvk^^Y~=YZ(&)Zf>ArO0 zBOUE3O@Rp=+Bh!hZJl4--?QJB`EkDenEBl3n)kb`51(BZ$37Anx12WB>ADw&Vf{p^ z1{leLzd!8l?Ir0plx3j5kd#Rg#*Lsj@z(aWUGauy#t#xIehn~X9jFe@b2-*IdY|DT zL-AS@*4p%x%Wco(MzX*r$P#*kNNG21!6_=* z1Qq`J)HhP0SyZlcf< zJ<~`c*LE5E`IiV#*oP+Pp(%ZKR#vlX+z(guHY&Jd0U@FHA3oePEV{-SrOazo`~Xo# zt}_>cE`BeR*tA!QMN*P6TkjNns+<~eYXe>Da&VHMf!qSGBavuP45mtT4@93%!~-O! zBswSa1#4{O%Z`q5kYKayI-|kw{1_aJNW1X@U68i6ww+T1Ji-a+NVSqQR(pdSX#$;q zN>`5RjQa2tm>R?hxc}pi*iL~bW2XQ_og8Z0fm;FLjdcZqO!avc4Hsw>d>_$ARe~#| zWEmM5fByONKqdYsE(*7N{YzaTbbYarUNE$&pm2r=S65fdyeX{OA<`%@_|&`f;4c!1gy zpmxb&Q(aR7e7_zl7Wf~vIHk=vJB~qbM7k&Yp*D6e_{FDqArPQ%qry`_a6Af|DWJvg z{{GF|x0hi%!wi%}8mqsPasWuZ( zg4Opvsmw3g#l%#N)3^Sj@Pob5jBtwHrrT2qU@U?RL55K!LM z76BV0CBJ=_9F7rha4bN`DqoidQqu1F`W|6;@a=b#NIAqDLC}II+z)(x*P%B+eTQ-T z7&s0vD+nb~gLd4oVFNs&7HFlUt_4ffK|*l@eQAy^O|qtBb1TNhs+?yGa5yUlq+sBgawIEsihd!GGVNuZj_r-gk1*ua^QVeS+s^`ovpO&&{Mt$Jkg}DnH_KyF9dI)7$Ls`k~x4 zb?)Zd>z2->ZgiaK*>X3sO(Y`W|IR3m03LK z+}f%a!d=4*i)-~g@=kN6%SP&m=P+wX1PZQr^8b@la2W0^Sy9Xdi$iDys}Q|amWJt> zHSQi9sE^=^(?os-RCs|N1-SSJ(vueJDE5dzGDF7Uabn@aznBDuYsuFS=gpj>jk`7_ zTUcskW_A=s3h0pF*R)*k<~Pk&Qx1u*7wD^w*p447JPa@ji{lkMWv24p+QDyWa3|OA z&|RIgC!y$baHC#RZpjb2+#Vf#F4ZKXC4!#)Z2XRY`RsBaUS}=qhusGQO8#a9Y8++P zKVB1DtJB$kxy)2p@08ET^3pqf*JQ01lUgsPaM$B3MjsAKiAj4t&`zllEzmU7gb@l~ zYhL->#+Wn=+8`vvZqzm2PSEYfYW8nJ6D9%f+m2@IrJknTG9p`Jy770>V(eaK6$zIX z_st`scayca?rrC}hlal}i7s1DsZOcSbJ1h3tmjMpi+&;tR7$~e;oN=lUHbOl<8_+$ zT7Bd6iavC{E=o_~m(ISM^n9%Idu(QY)f|?4O5NDLy3zPcZ*4&LfxOIPBwE*|ii^vmF&tu-9A zJjc%+_SNBcMNF8;mu4NW2OlRtt5@D$nLq8UoDj_Q#*9(qYwOICxJP69k8=^{a&YRk zA8J-w)xUewb4`D_hKvIIowfgYkSGOjT5htC0< zux9!@_B)Y@Up2%JIgy%M!UQBm<^ zD8CQDb-G=r49Q?tKIY-Jc%w5}n4t-azV<8qPiWD`CMIIR{YsYCL!~7D*rIMPPLn{> zdHmrQYPOyGN$s)Wq!ue8%Aq8Xo{rd1fDxh3mNfSb{rLkZzS1?$<3-&#VDz?o!`a5I z&uirsx!NT*-FK6_w%)yguT{AqFR$UvWm7;y*n1q{9A}alD8Mar|9F1~3AaY{q*l!@jv!R$&|db$ z$kP{@CJ?T5)0l!P1pSw|J^*u&vpkAMl;Ss>96&O0C~yQzqI>J^?+@!1t$e~q(vNdc zKNj@n1TdTd+`t`N0-_}=!fqg?s=of&CYAQ*_uydn;NS_^|8aG~yE{8ObLqU=@D{l_ zUtiy6klBb}4tCm%d!(o8Ng}F>ptd9Bt00-Vf&UAVHS~{h9dChgYE?F2+=zUd&R%)&D9}BLID8gR!tj1xFLy+JhvHM9F`=E3)|Q#wNyP3`M?%L z>I;cNfBC${iWtgJwBU%LXJR^uwGPJM8Muy@XJ21`@L&TOe(;#*9MqVa5_X!9^-w`z zs$rqJ=gxw+a`Na=Y81IjyCrBKrs$Vd_EEfU0pNN<-!OT;5eF{=2M7KzsjZkvI5%Rf6+A?}$F{sjnQQKl76Ub-@2M1^*GNDCPW{z4xK>N?QOiAoIT=(V8{2mImCp+k@|sSp8yEr(I~ zV&IU>i@#|oh_p0bUMo7^Zllpb0w+LrITT$S5z&AjKBSw3&BRcxT7}+-Og$lPH*~$* zdG%+t=~e(ChyV^lzMV~kT`902B9vw4I(jE6{a?QpfCBJU@4^E=KV=n_pYZZ**d<6F z0y!j*ro2)Wd;a4+$HC8j$b+kZM!~g7OMLRwsml%y5XZdn_ZlhMJQSoeg?^_|i*H7w z0CueRMs4n5!=;(wZKGCeqY{qr&~TWofAZd>#(s7>x7z99)^TeGwCpN=mEcz)G@iG$ ztp$pHos;8vq2@JC8=Qg=AHh*Uy);kR_)9cB;D5mEbH_jxrCH|~oPOI`F{BW8Zhqo{fZ1 zUEbav>A5uj8m<$Bba+nrx~g4;DT3hI9NJ{yTnb|9z!UlkVH<=Mlaxy!f-UlvjZ;%o zEu1%=8-M;EjGCIo0Eu0|qL!(6dHxb`0nxS~RjYj#6BSKBC$6F=5r3}!QrujhL}TcQ zuqeN1Gi$nSgGa^{?v{kGM+k_C5j2O4BHRb1|FFp*y-8t=%%p_pE6|}Ec8fm1U>P!; z0>|Tc)~*rUn&h6luuddS-W5TGfvijoI|Zm3{rI$oi*K9;5y9C0^)VGWMDY|jMRvl2 zRp!6v1j<$CS)LRWOW2cwLAmXfa(Rmt(BGQIjK;io+9s@Z%Bku!8f!QSTXl1BO%;n= z{6k28&kAQ?5V1#c4NLJR7$!gpPym!+Mfvc~IfJa8G88MJjo#HYIW>h4n*=NaDzg4y znO>j&xIQu}3J38PY;9suMJTWMiZ^e?I7W!sbO??FMStD+tu^HtO49@)Xqf=Y0Fu?f zWq3m6Z{K>ue@a!4wN4_HSi?Tmz3ngAx*i@pab;!M+>ye)J!mNY26)a z%hgOXlm;lrmS^BI)L%CYvT8plk#ZI*OUtAQrS}tXkA$FmFuibrY&KwW4ap4#n1+GO zlU8!|zJ@|q2Rt4*M@M07M92ii(>JD76PplK1opUvZ{Z5L2OVJZjveJuhe!IV=`nr6 zwXr!y$Gi{O8Z^-LvBx*z4#2*VWaXdsysZ@Ay}@qZ*Go+R>P2qm2OOxVu;gjsmURrF zFuTJ=x#cKrIx2&t^Kdnyx}56IZ(gD7`F{hY%pw}n+a9#j9WMMaugsxE{fEXv#wgi! zgHK+GYIk?{4aL|as;U8@p*wK{9{~nj7H0);Op<&q>Md6hF%jIqbB8Q^a17+&xjORw z6pF+}Sc8et5VHr!KSoxIA7)Mh?~n{Lnl&IS*VFI+rs>0Z%!ip3+c5b9-0t<16mAe` z44fJ_!Ltyy81olWHxf3-%V5iig&5p4 zR6Y)Hfq1<3U2iE-mDaySA8-?_8*UEsMUZYQ#~=bQn1qwSbH9uQON^tK=K;5@oT}<3 zDk>`TlH&P+ls^C9^90`3HYaIbc6KiB>|_SfkK#xI(w%J=I^f*$0WI`7&1mIwPT0eT zEmYrY_r7W_6-|qz zN!3X*`6v{vc}{HA^kU?M+aBp>-3+se0nqr>22-xS%m`m4*FPFBc=Tz-j&kkWYZ>Oo z2uOYM`**I;%6;Vi+-kz^)pux~V5!+EG9+|(ZIAi2xlp}SHVFw`*GNT%4Oks0 zx|}p=VSGP3q9b6QI7LpZ*_Sf7P*}i5?RxI?xw*$wNd~=xJT6+VWO66oF=e3OK|$P= zl<2LN^l#X)U_!iGKwXa~K*a9qFF_{(k!#x~m2zygj3>s2RyW#xA8x7G&wXyM?$^q+ zV*qf=8{@vk&Y7}L4y>e=p8LZU9WT}MqFB!Ux%4~V>4%%;*9I|L#j%#N%zi1D8=uZG zo;e!dRBX>56LK#&c7D~Z0Op={-wFJ?yUwL$heEv$1j?uvNUVt-xk$lU_b%Tj%Q2a{ z;fcxB!JX#sV-M^H8E~{iv0PV`YF*siKZWOm(_RBQUN-@l$AUOS6E5wdMn89Rufi97&st5%X+z7&SyBQNnrpO z#BLTx#vi5Z?f377y5%1~-a;jj78*jA@B{u3H8pzt2Po(c$ar-N$yBsknOBGOqUy52 z)Qk2t40q181$mEC()V6@LC>A{oqNO`=Dr+Oo4*c{&?O7>p6EC<#2qhn2MMkI7 zm}RMnIVwtEuP=Rm`3ycG6i=8Y+%e`51@w>Ksc;@JEz+Cf7ZKV7G9=~+YdnM`g@)(HV)AUk$9W;eiNP;jNXxsK zd;_n=CM_L>B7ONs>1wo-uxNg0YI=lX1u><|I)-G}Q6))^02oSn-CvI*E$!V(xM%L4 zR)f7yC|Jv%$?xLO6?V3C9&X=-oDgJw(#1gqaY@p%R#YsbZN1d|VlzBqm6x-^aq89s zfkv6bm}CZfCOV!gbK~Zm9>fzNY!}QOGG}+XresH&#qy;y11(M285z&Pk>UuYOt)zh zMG(L`Ye0#kFIH@iB1B2cN1}Jl`ym}Pz?IMc%?81l_JB=7n4f?9e>OUe@%`68FP*+3_ z^Z{+-9*di+$3S}4F^%S#eR>G3kkczMF;NJ%Qz&}(F`E+2+oOfpzdyu*c<*PFzf&@4 znqE?bZ&NdRtQVgEZO;+bdVpQ-ssg7$MNsF#a@Up@UD0YkN*UR+eY+wERoxtG-JFCj zR5pxLNM78tdv_K3J@PmqE1E7Z&JjF=9zY4}^6t#p;)~ykwmq7&Yhj9}PPz~^H&PR- zb0SlthY;z%snxylde2)}+_`n@<0Y>VJn*M2R$*dxdvPrVBO_*5jM!A8PvTE=80B-v z9m48nG@0+q%a8Zk{r#dxDpuAQ{ArhWc746iSZC9|*sfu2y2??cmS1D1Syy%c{D~OC zWTZ?N*yDYQtDE*L(Xq#&8r=1!J@y>A@vSoN^7j&;7i%KYp6-7oOY9J$kW zKZwS5s!+wntH<_jhoE^Cy@@;YKV{wC<}5d75skxb)lbOJy3}{wB%-h2>(%3R z&O4N*2KqWp&tIF^nUL$R@&k*)y-PiBUMhntH2c-6!!l9*sj1CqugL$?dWP~5HxA!(tL_+QX zF2j4g!M3y3-7FEfX9JugFfv|2!XG*`T$O*g`-tNQIvLy!#y|vQSO6>r;3)VOt)rikLJJC>ys(5VCAMfc)7?MpOCTArCVS8!Bd&G> z&WT5lA14%gq22zLV-sOI4_k@LwQB?t{`upWb^#=gD(XC^VWBud-EfIYn(|o?l`ucQ z5h5t)c}z2U3qK>6g2I;06Y(k`giOHx+0V=CPbRg2t^57b6rUPnGcaVr0w+}6$-#n= z;#goGxH`E_^{5D8R^;Z4VIni_BjXu^MfZrVX4%9RE^4C!ke$=LlY!wVdVMGVr2^s? zfoO6oDTxzPD9msGNV?9(p=WPMRAs)mgRd5t2POqB^tx&K+D49lN|5EkW;px${IOS! zpDK;Gk=@@EXKr=fhCSWsw#pRiFxvyJmHENmpiTL$wwN{q&1KM`Z?A}ukm>lZPpDI8 zU3(agp5fZY#>R$&^@v4BB;++vQ$#BU6d`lHz)C?|-Xw?hLHJKNP|0L0NH(NB*Gu*6 z@nGUNrof9xK->kNSL5Yb0XR_%XY)wy1-=E#he2i*;DYdMxqKXO2I9o3&#^f-KQp3= zRviP)Tuk!wI>g`%gQxR7gslGNq^($1Z{EByHZ^_JJ&$wI0;(4IslR?51t*2Ga~H`F z;$>G}gGQxUW*{mg)Qtx%Sw5nBBn#_`xQJGkXG*?)Pk}`Pbq(Y!CF(L1*|(r?1w=(_ zzdvt&z2C@vY&DLxcX0Gz1qs0DlRJMH%7rmr0D!6q&eX(2b{zTd>(z1GHnKtoux|iDRciN=*sVKni?IBYCp~?;u3R)v@#Q2Z9PC2%5Xit)ZB-Vt|!ocukbI2As}7&KQ3~14T9*y^~tD)wH1|Rx0U| zh;%{mt<{kbu4v^2NmT3R?vp~FZ zDLCZ7zjg4$<1TQ3d?kz5V`5@zN9Hk~rWa1Ya^xt{m%&!ERM~eAj6;Uoj4iZ_n1Uj- zxDHrrQTL0nTgeO~!qFiRdkQB*h?9c6{0oivd$l>xL(9-hIz4uUw;DeJu{cCmyRfx@ zTL^m{7PbpNy?QzdL~bb-)f>$231F7J0PsU%0<&%|hPoaNulaN{4t%_~tsC1pErd>P z%Bsb|S+LdW$7k7e4@sBLcYdF6&3r}OxT65ZBP_$_q=O(;mnULYI8MF7nJnoL(i;bt z8CvTwtk^9uA{7+4`HRpB2?^oV!Q#V)^+RSAqw%pw*o_vd`XsTb=R5YxgFK~x>hKHw zoaEqfMa2sX>KDS`+#@4~z#fxmGhWuj@}sR`><11I1sh!?i4!Q?-e7`o2hOn!XgFZj z*1pB%VW&*nqBS%$#A%S9by}#YsbBkr8s)6>p>FW(Bpf2M@JGnJsBh>TJRo5R@_{cT z_5d`pV;EIPL4r(ReS){f|Lt^=5OwpwSTgX32p+$(9zmb{0IU_GsP$cN85GdfiMvvz znD{*K_%l!y2U_dql12ZvLG{dj2MdFtX6d!cBRC4$!PvLul+y4d9BFc9>`Zm ziWg4j(ccG9KqxkdK-;HFX!xfaJnVskd0C0g#RGGj{IY4MwXBG4wAO#YPBkfDhcaItVWP7_sQw zqQ1OqQ(VX)>Qpv^NhIe!oD`pR`5?iNQI}X@X+azJ%MS+ti5eGZ6TY;eI50qa>1QAB&gM;2C zqfqh5O+lXXSr0=c+K=VOhNBS6k4yG>Fhj?>vzi(j99kR;e|it91V6<=f(fM*_IPJK z=PA3OXiN@wM4*hSzp*#z8Tbab4tg?DIfuU&(Y{5Q$c%c616&ynD(nX$5MpK#Nijk_ zBcWx;->^2(A)p?=z2$}a{)1_nnwm~l0(EVkn} z2AP_Pqng-@x}{k`gaA}J4PTP=I1hTWE@u%-4))BQP=3I0-9eTTR#~^+UqgJcXjahq zpr4ClDhc=pi$A_UaceFJuad=aS_&9!x}e)tjx}0kM@qSBNc3OmNUX~j#|neBoZHK& z#M2;&bq7c{u$G`3k3+;E>1McLR8Cc(VB$nKr(Lg_`5#Czb9MP4=(UwaUATQybMp|> z)Fs>~84Tx*>hV-Ng%bx7oF5WMSQB>B8$IAwC|pn}4F}uDUJeyi;EWSM;fI<687Uo_ zm-XOLMMVNxdzPPLa&X2W!qx+W(!;<)282oEgzf>~j$>H^0x$LvmTf8I=#U5v^k+C9 zpF60BwmDLu1=lpT+q(UW9O8c}kcrShVq_U3wh5BqA#4V)W(*9 zQzuViUT^{|Nh*>kw~07RD}ARvZ9VcBM+N=n&F}E`=Abu)u(iMrcmCqV3dr7=CASfZ zQW*&9z5?@(w8{Yx%FP_a-b{oBB_wS?5Z-B|jtq%`6HU@}H}lE}lM7ZeUr za`?~fot)xvN5p816S5v0C6nq+R8_BDkJc>*Ret|ce~iJXB*KmI=L$|294R))4ZQT8 zT=}f4TJX#G)_iac%~Rz(MeAVj0ilB7iH-Fbh;#Y)Ia7jA+TsVa_7M%h1%C zB3`Ve)qEnVDSEQdG%YPHAT>4h%He~#{ZhK0X_Hq;r%b|HbqpkHo@4(OoU){-5+@lf z!R_ts_6}7{h3{bEM=_5g3X0Aj-6~mlWAQr)UPa!8zM%{iDkqhkB>9e(7(yB2C8T2% zL)6@k{9~X2oILHJ19zjhg|mF3>m3!m3d%S^ISlfJ5w35rENf|Mip7M@Lq^4sn5)mN zvxr@!QuDF8`lLh#omOHW8IESWTh zXbk2sUKLg%sNk^a$rIZf92b8NF_xe6hhghRFZJ4c+>g!v+V*?|fUe zkUt~IuqzwBsfw=CPSUuAUO4^}WBnYR?vCBqDrDNqUlu}{kDZT-J{o-_GXM;j2KxJv zg}K;~F9I})*T!9g5v<|Zh=V7OUoH5qz0W4W~+^-qxx{3W~LC%14iAMMZ_A6k~BVK|ulvPb&m7IE#4mIy$tR4 z2poymXh1#z%{uXs{+%E7#~c}CK}pORJbI+~jqbbu-;~QB+iv!3;A3K?eVBH4RCnNdj7e+*0XF=7PFoE(Kqq z^Nip>0=gk=4LC(HD&QkZKIuGhU)rABD0pVr9g;^F$an+DXHhKSEzbdE6R9iNJup~X zB{L6k6EF!9GS{aM;WYY)AQjw|9P9&tN536yt4`qiVR^j)!!FkjbJfq=4Gatb&?iainD)5lR zNhM;%0KK)Y@J?8SX-vzx8Ki~!|y?q zL-O+iIZzHBd=2LmB(-px4jf5BaD713;?#b*69yE_f#EB+prJ$)dJk_45&Z7mEq8L8aslFtHGQk zn!vB!qnMy@9xMMtS(%{ouzs>mS}m?O3lr!lh)Up4RJcIQ#7EU5%`XMG>5rh<5zgm) z6k)MC8{mm(kwno1uYr_K9ENaINr^r4$kK#@CJbWH^P zAo>~1B~^i|7DyWNO?@#5@*!qu;~Klb)KpS`u`nUQFfcR6STAfvKS|0m+BL|EkYmZyk&=>%p8M04(!Pd_Q^61= zVv$4V)!o~hpg&pk03GAMvdh9y5-J{l$3aC#=OF5{4|yKQqD74}r&UzWf4IAu7S30VH_-4RRIaQw~yFO081a6}@S zYI%N;uduKXW}?Upi0V$r9FX9R37AG036MC}e`8N6m)MTNWIsDOWO2wxDymEP z?Po8cib_p<5wmPO>UvUNqLz-p(g3x ze_~^WnsNAcEv|$0*IZn%G#;i#EZs?lTY*^ZaM}o#FWmh(M0`;*7=7?rif8?+Hor9v zi4F7=^Bt2vnOEL=MJ(!AnMAZ!ZQLwAv2Q2CwY($S4X<|iN7r9gc}0`@#Ikw4H-2M4 z_rSnX;!ZRh9>@*REQST?`p54Kn;sX}Rc;R>PH*kjz~vB*In9)=Fx)GvI{ z7=$3GhjcKet)5a)^B()jhU#82NLpQ$tX4hHS(3=~X(`|JsF8pD0-vBD8K|SAC{>Q# z8M2V|v%~HC*&_KuyY<#A9z^Ke{fTnB{N2SXr)#rg!i&S44h9x?J=OiX{R^iXLb1P? zuLO`pEL=`(5jTym-g@#l77pCGIenY$)v~I5FD+x{c2*XsH5sn5e4M}O2IuZ*4C;eH zbRsXm;qvFEt|a3NPv#ynl5FkRy(<#*@}8_SMB#;c2d4f*fqGZ?)jnZK-s5NRQ{aBJ zm;EN^|AJorZf^41>SdT?i<0q{P*|%eZT*|U;SIn{x9GAuOHyAC-HAr{y%;7KR^7xe($f!6{;;KrMz8(OYT$P Pf6B*BAAKcneEoj`CaLj* literal 35949 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 UGDChBP~ku2W9kaI@}@Wb2kW0h8UO$Q diff --git a/doc/img/RemoteInput_plugin.xcf b/doc/img/RemoteInput_plugin.xcf index d6a1f9b981c2d99a51396e98bf759b21089add7a..2fda73ad0efabac3b6d90d4a1f7aeac35ba5e823 100644 GIT binary patch delta 3680 zcmZYC2~d{D9mnzC@*-CiF9K+hHsJ^`)(9#E4>U@Mcu=i~h~P0IL84TJdQI>Ric}4d zv=F>Tn^a1bHjbGG5oltyp+wWf#)eR}YD~3MO|(`CV@yl>eK}g*c4t1rzI(m9|J`Tb zhu@aESA602N}LIObMgeU>=Vh|M;f?WdhDnaa7TLlZ&Ji<>8UTJ*vnGflhRZ^Kl`!t zy@yhArL=f}w0wz_b65Jo>ymw=w5>`i*(Q~)k+JM@BvU`N{1X#U{_)=DtQ?owCgfOG zvGfFgec>wEnw-mQE!Jh*eVhH=?qc&thDqyg>dwpt=7G@%zT{l*VM!kE;3Hhe1Ig2d zp$NhlOv5}ZM;^AJ9EV`x9ejlAQm*F%$;*bJ2*Mal!#pfU9=4$zhhRzl{Xkgy{{nxP z27DJx*84ghFlifxA_!wJ4fC+vdM$Fhv8H%E-}a+ei>Me0+iwa-oV@V09SAa|C0O%U{>*h+pE@_&xrN&+wHr{2O>Aee)JLUICsMhH%6p5eu;ro3ImmaRd$BF}mb` zt6#`lJ@Fvkz2_+KL+7%aE{g5BVYP(&jEDagWl6r&Q=s3S(f&1729h7KvjO$x2Sed)>Z*oyb0upv@79l~iJ zPWy1$htocS_7T1aMKltSf-I~@F)C4wx~>?NPw{lM{6dbnn}+h!BZm%VSGrP9v_@XB z{yOrU&HgLrl{+Fc`hA}HdNiRYpuJCESxI>yj1hJG>hi=|&I{bIuq zgXu^`Ha21h_TVs)8R8Yf!R#9f$C@Yn#<^_5AFMx3@Uq!2br<(8-_bPg5m#X|I5<=P z=ip4Hd~z$=&>>B6gD*l6jRd413+qvgN>rl`&1gj%Itb6xZqn1f2t_m!kb*3%M=>f< zjXE@=6>aEXf^P6dD58;o6l7sNicyJbbRQh+-mY3>xld~_j*}DreKmHrhxv7A!8Lr|RsEm(L^d?B2yA3x6>8B0+9%#XyEMZUJ_yEG#3LD*$d_g^{>*#Q zEH*iJ){A7$NV5k?Ni9ot>%;w zo*|dJ*VQ*DOW3Kd)Dx7YvOJa!cC|A_N9qlMV5AqShW3;R%mM!bhh zxQ$0l&=J&m#zBLy0vPZ&7Ry{ z+&4sP@_ECe+`bg6oa@(4k=D+U)_n^zu>psqJj(M4Z@v$Lr477pY*>Pqa6;P5j0@ty zxCNQuI|_;jQ9%WnD%7G0Ex3VpX^Sg-5R9>iM=~;zk0Ml{3bklL3vQsD$-BY_!5E8p zLiCuGu{Orrsw$~Bp@q+OudeS|DqQ4TR`|TNwd}S_TG4{;^1hKOV)Z4gvgCP?cck9> z?YwMlzb_TPjyG`{Y(g<_NyYz=e#G;+<3(xb*X4fOE3NdO#JdM-I0N`Q27%|CW%ceWz1u|4PO^L1u`b zOu#ak@GO~eXJw{sl9`_;v#dlWd$r8ETA4f-nZn0qUJla;Q#o1Yz#f^Ztui%s$5(ZZ zi<%VGIquY?Q@hXq*aYuBR%%?gh3!8Pw%4K==i z9nKMGI409T*c)JG4w8|IbSyGHe) delta 5512 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 T@;{QhA`~@MwNEMNT>wxi!H literal 8395 zcmb7q1yoew`{o^n?vQSfMoKyarIi+t&Y`;p5EzgYX%r9`N(pHN>28s3>F$yaVK2Yk z|DN4*_MF|Fb7$_Hd*-|MdB1qx?|q($(oj>x!=}Op002)}Nlps@Ag$o{987fZQ{&o2 z6g;6@yi$|{&*1Aywjl^SVYw>ldjJ3q$-^50e9oW%FJgEqtIA_6qhn*@L&)+aR>4b@ zp7MI0vMx?eR?eP)th<%DrxlFB$IjE1K~Y&%<4rI=IRG#K%5u-O;eYn$ec{??P0~jf zX=%SztOfdDER0yF--%@sLgnRi-b?rE@Q-p%M|*LEklO21{n=@9-_;7>oGR8aOqk_t zAKLYHatPKUwM6^)B>V}C?dI8x&Ef$)RA0$j;IU0&(%L^iq_05Q`r8fe#S`RV+7C=% zj)95kGYpo2Dks+oJZ56D0Emf*_<^X%ND73UoE)wU6B83U0}&AsG(Ivi5~B3~{IfLz zG&aac=gKpxT63J4jOK^CW8M6vi1$}%Tz=Az^2yq*o*2C8W1b6&3afN@$Lx0`LSu+=W!{>u#q!k6i_@`|DT75Z1#=Hzp&uU2-Uzz-hBZ@OXJpRXT4?|Jv_`b_o zI)0#sMcHYG<2Tw}qkJPl(vL8RQZCnReP>te?7d&rs}1q*N=G-Lm5n z@?+~?d6^fu!_(L_5>Uwt#igw@%{#s^9%z{!4$K5cMH$TqKf9ES{TcA~Tq1kpaf%$3 zkcX}Z6`|@DAbEO@M)_#BuC$S=_RMW*l~>`o<5t{d$+9h{bzHwy#|P?Cf`;GH^EDyT z_L1teYBok3)W-=ze2=DKjQ_h~{v_21U()}cJt*~WM{8_MtL1j9dU7i|Z3PRp=qVk; z8=yvNh$SI1QcA{+`%3x#J}w1t$U+?qM0u=AyH0SjEC27_=TGo^%T@{MVEN+UB|e@g zaIjiiw}t)hKIz6CV`$nVQekFYdC2>gnXZRBK`2Dir~K~jhMM`W0dhL-MQ!xP3mmh> zAa~`*OjK4$8+?(opY4 zf6cI|ZkLaRVGV=UJR>l=CtPxe97?r=(SnGNOZp)TSJj($EzhtrIFni<1gaqg(rAG- zzfSJgrB@P_^11`6E;e@gnb4O+&rfE9MY2#)A$s??M^iyBOYcihZ*_KS9}^SBoO8l+ zW2egx(2?_7GxhLA7ld?xKsdei$zt%oa_HAZpj&r{b$Cs_l^|%;DMaork_j_28@JA?i0yJ!otJ4bhsE1-~leq_0Nav!ap^rbqE~)89 z9%IRX^R7>Cqb{;kPvDaq77G*hc#1r5aD2TC_5D369~2$Pg-ANSg`ED6r9*{<3{CuB zmRBy;hluAY7X9Dhh^ItXycemP-M|+tB7}PBrY8fFv{Sksq*patPEL>`W|wYB&#_&C zx*oT#+p4gHzAHDZ4rvGkh_wkj5hlQQXQKQJn%w9Sc}-X@uT}-Lg{6hQ30V?!S$xZX zeY@N}0XfQuY^dNN3z8E5SehA$Uc&atS}3D|KKkmUfQgsa<;4eTkzit?kuQSg-XUVT zk3#ag7$MYw-UcGyM;mUW$h16g8LNZE=nZ||3fGg=Mzeyn;EJgjEnBgl1UR=h6gis# zlXP9B&Q+OM8z6|r9dH1i6k?yjrsGug-euHEmehedf!{q z9t{ocZ0?I$?(MLuAaZ?eE&JQI_aq?@QO`?#Vs0f>m5l8OTltuo>lZVHnzA82g~FYk?f;n!$` zq>&s8S*hpg8z9IsC0rLMF&3r;G>oRg-q{#DHkK_pe~v5Dk}AmhCI1VP5?$yuj~o7Y z^tc?87z?HM%r;~wY`23^q<3U|{PD{tO(t=aPpy}Jr#($f%XhD%aj$zjyh&yw_o6s4 z@B2)sS`w5H!KX^7wOSR4sfhw`rmGg(Rr}F~8y%o8o$A}Htu8fn=T<3ktHsHAMNUyTpy4KHWaIHs96vq=&qlC?!tZ#Vgkb|*Yiv>*dstlinn#w0(?X$93bO@P9yEKeE z+j>9tCg$~oaVlM2unJ)X`x6wZk0_+7ta^KDwiDQ2y22QozS*!%)ZN$!d#mt_|u-5z8Tg=l$tupM^|IoJBPtFk67*YB2f%=;|j zmFnWu%*G53sx_YfaS(M~0sym-T=~nHp+NK|6N2Z2X2R*m=d&)BLr5tpM)qpDY!IL= z!O?96RR6y)W`7yTlpyz6@MTlW6c79L>m?v#VZk(6ZWV@_AD$ZkyBH{hY3(V zySuc6+1N1i^AicD<0T{{^bQPkJ*k-+J-KZU!%09QV=a4PD=~T(0EY^6XgoyJhwY~?`2&#t$a z0hzaNCB?jN9rqi6c2>DdDz)>b*A|+;G@T zjYH0Z3KUM*-)^f1p)Ad$I~*=F>D4&Xa+Bczt;?=vJ+ZXCLqjQhkh49=cXWpej9%bz z77aee`QFUC`g-v%1qHHs$24l@KW6w`78;RLjW-7kQvL`sa&l%~UUjX4XO;liOsO25 zABY%$iR5G#ne|SQ3X-|g+!10vF^q<>{9a!( z^{Esthnx6gIW$>v8r0(Xuxs6?v7dgf1hteY7#I6?t`gDax9=3^TWT6Sw&<8Z0D?Yx zZneFL3j*yZE#~2q)nf8b1Xs@*I>H=~)4bbM7BvJGz$is%R(W^8X7y9op}%QcH;L1( zLe2&hal0E`D~mpvoi*~|jBjYPX0@w#-ghF8pn!Sg$Bc5SnIa;%JJ{ieBZX^9u{h7& zjWC_-Bq4^=cXB~8LCCQkQ9z903I{(tWERxZqG^yq)%s78G`eU2k)b{Se|9Fbd zUGaYw>a>4Y#XsnhYs~BCS1tf!9=ptc^KVw0?Y#v9-RD&R8BHhhg-d_R9b9Xe8ctU? zwH8s)Ym5H4jTK}HL0nsi3*~r-JsqL^L&3kuyZ|;)fjCB_V)Hd=baT*R6ek0E!qm^ z{`{${1=$*y`@;7a*)V!_gYnIu>cZFRZ2oe`^XaF7m^Pu5&ZU++1Kj8Vj;rH(NoL|V zL$L~hz7ox%GvjPP#1QOEYJtUTUQ~Z3_^NL?RqBbOo)B4qA_U;1iuu=m*x2ojb52vL zIJg4m&LoK`r6+IOSgPJ&^}7M7?Sa2kMdm~6>+6v{^!|JN>>poB{yQDRZH;2e;e<>S zDkwW(eK6s9A(mnC^`~L3jqeBZoldm8@S z)MM!bq<^DZrYPP#&|S2dLr|%{Cr9_!@$fG}Foib$tw{_lr|ok=+}Vo!89Ji@(o|Z_ z3@4i=2vHgM#VHjei7xk#_z()LvcCzb;%Bq^Uoq7TPdC2I$Lq! zCi94hHEgjegZ)qwnZ{BXt(6y&O}f$0GpA3_O(J#`t1+T{EEJ$I$#DJb z--5j!ZJCFJBhbbfHg%!6l`M6!%KQ$5EorKhc+?uhA$2d2;k=gR)H688nNhMA?}=AA z8__aZW*q&I>&?o7|Dn8x$5T)7`S?TMvxzsyJH_RGf1ba@{^>Lu9&mGBi6M%Fef44H zYVy~1@MeSMNH98RodaHNNcn=XH3S2uMlag!&5nMmh-@4|OIcSeFQ>Ury?Lb=IOsVz z_=$ViZwL_)E^1*atV?lOI<4?B@`=Oh5K&0&K|Q6OhfaIzf_@EN`94oajeIFNEdtP( zvR8Nu<4d%xHd)LfTWk;*|3;cf(0U?qc3M)hhVuP&d%{PWSdsIOs~zPIEQYds=gVO3h9!?I7uH-!ldXw_Du{~xH0~Ga+)7P68G@Qb%Q<_4} z_B0%J@^4|1;0%pVAPfolc9-7F^dh;Ik?W_=oiaRdEv06a{whXPXCgS?+d)0f{;HAV za+wqh>{-X!KvvH552D(0oP8kM#N`xfbC&4;Kp%Q`vxhi>A~5LSfU2tMzxMCQG9F{2t|D^Q!9*_!V+KnK=9e=u9AL~<)K1`fGm+lZ8zKPU zTP-ITlDd<_G2dH!n9ED>h8D%h1)jIo?^?s9B8~pDxs|OnD4njdBQf#YX7Tj&TpG@i z{WoQd4yB@|_P-NJAJE|R7m0EK7pZ+Um0^u@rnc!(PXMst$MYo?ET7REO{U$s+Bbxm zaR)G|qlxZt6R~8X2e7`rKnD+SSNb>HS@LhsDoC!6ZqxO9zA_9>1w2 zm`g0l?X zPe$z)RW&*Z^1gzwrQV6GT{anRueyP_X!+UjNQ5U9yGa)-uZv>_I9+$GgqUVJw~dO8 zfV+pbM@`sxPGo%(gbe|gt80Bp@U;ZRqm^jhmE#`zo{>Doe}0R9*ZV6iy0A-(8+5Cr z{`BBbiu_HGhQOCg$JS@sAdydU(jg-D+FTLiSNH6M= z?%Om!BOwVY)?$*NX~UhffK6ssQK8#9oto66^E+$+xk{L1S>5ri@?MTvxY6%X7QM?} znlyd^HQGcb{BLFwSaj@Wufr@0(U()idPJ#C;ouXqc6=E|ZgZ|z=YRG&pUW!x%=KoW`@w$UQqtKSzOENZV zUy9Y`yoxV*+zZda;Nzsvvh;!!8i1+QyX1N9Y#oiSbGDbEX|gE9J(Qa9(Vc9iJu`tXhaqp$g`GZE?Yf~a@#*)kZ(VX9 zVU$EXsd*^?yxMK35S1b}s786sJpK-8D9|)y67kh*)Nr|8K7*B+Hm>>Ry6B^TX8y$0 zfaB(q!7VA#8*QDQTD;cY;RWw0yYFZ)Nd*It+Q4drs)Mj`xF+n0UIRB4;JRL7+jya~ zj+o-^`+&YwSMqyAt0O+fSCGnok?JN+WT`>xa4JZf!wPemGi*Dl{a--5@^}HcR*g!cuNo3Y?mt3%)~nXnBTn#(P>JrjUmJM zX856FXTnHY8Xtsw>US{kg@f_(xcVso5BwovU_qf<&Z@@};TwMv`wNCbXDoy>mMdlR zXlaFj^$h`QQqiJ=_rYA$__#K=UWJ*_*&Vt=s9FJa%c60};+zn{h&gBD zcSh>+Lmq|Fw$Pce_M?-Jl%ODxT7rLjQSddl#5K%gvv2Rjxd@3F(Wb}T}Y+z0x=Yd6Gr!0X~==HVVm;8ME=}h?9&cr_y zx5gtcnNxDMo#TzgYCWF-P66T<$G^hw3S6GfW?a_z{M8(DJQcgm**R^V+`q7)c8<9_ zB-xgMi)4?XE{CHX*P1_XOd+K`Y72gOYp$L!^=|neWgJ>jf?hn8*p>%K39X-ud*sEk zr8Q1E_R%fc$7{X%Jj)MV4l0)3xCBMK@8;=y-~&RaMq+z=dxiA?)m-4se&M%oCd#r{4v!(Jh$+*c`P~YEr%#U`cy7iftE=rD2FpBD(&eU^7)+hu^ixiiGA77m z#SB;D!Y8j@%KW!pXfOPJN`e~JlQgmeiCvSq^uOC>Ap0WE$i+fjbS&N(T9kvI*kR$5 zn==ryx?XzOUo#>4dY(V`7=D;Vx+OfD@R2x*qKV4>D^01fZbpf1&q0UKWqyVJoE<6R z>UcIz&3uNXvR7rCnTLsju?@Qy4U%as@oT5yXrhSqc74_!oE*wiV8wIfM+g@8pc*2p zsEFb2?p|R(!3m})v(3TGOK>&$nf&lQv36W+rd7zh2$SOC!Woi0!9~JXu-4Ysl>l8x_+s(n(nx$8Jx2DTyfMk4=Ei<>03E!K$cTY3@B)eP#?Eoa4AaizKu~d_maRa zo`o7b)Ud9aIACW)exHlA!sDOC02K*#{nz;_ZOI(3vqx+zz!dT2%a^6IDN{uq9a4N+ z@lg3_GDc2L>;|7h1#9b#?2g)5ql2kZzzF~%e-Iwq#;bbHJ{@FJ;y9n=mlPsh|BcxDB>2q4(9-V&#axOCTh?N$Wb zc%K9M?}YT;wfzE;n?ZpmL(~mrcdERnpSR^ha`Gc1j{%{Fe5he)7=0LYeN z`US65CJ<-8ff!4h7VP3<6R?W~(QC1iL5*n7fe;$sjTqYw9pm`lWI2WyO#;67n2N)i zEt!e`82|^EGee)$#Ja+`k_Mt4h z4fU9QYy1p0Mtii;6|Ypv;;zljGE(-lE3p1)_e$w{UaoWQZI=PU6jJ_h3DjgHGY$%4|D0IINEP5pi3;8v0jq>I_y<9=U`GLtfo- z219D8!0-P4)luJsKeJ+Zky{p%l>4Io-YX@dwOF3S{Zi;=)CEu?<4$o)6e8fru^4ob zwtGdfA|q`DR#=CLdao1>TEqWs-oN>cr2_iD$z`8NSgUA6qJ!mR~4x1KMN=n0qP5^9SPo?X zqfw*#rX!L)NGg!z2u&Huf$#d&1vpb`JtJlR$!qbJe7la4^?0aYl|8~0ISBCra@^4*=O+5c%U<8`A@ZUHLT1W=Y&lPh~+7V_T!`1`)a diff --git a/doc/img/RemoteInput_plugin_01.xcf b/doc/img/RemoteInput_plugin_01.xcf index a6e51288fbae94f49032c9819747e51142c3ae19..ada0f75585afd6da286bcbc85b7d9dc752b93d95 100644 GIT binary patch delta 2520 zcmcJRe`p(J7{{NxENNXXA*M~!hIZMquC|Gr$=POTvMp{nQ8w32VMwRAsc1*5r7-^x z=c(vm*Cg6qYhsz`bczMV%@cpX1~NqyHjqXIVS*@1l=?^gBcya`{JwYjaR>RMLifTa z_uTW|z0do6?|q*)^Jn?OY5vviT+8_#N4dUFiG&5B8}B1(j}mpdh(c?L!p{*!9w$2a zI%zGLQ1001;rrLC3*2YirgwEOd2#iCHAI##%s$I^>J`hI7HL>_b6?_m2H?@AlL&eR z{0#mu_c#58{zanZ8$bu>1Gj;@!2@6z?>Img*bKITz2HGG3XX#mcmsThaKc3*<&1x) zlJE{F=lp^?-ke>-iAtV3X2pBdp}5>$^_})DoN~z-RF^vb;jO+h8uLrd`s~=R+os#b zOx!(?%?;Lppt;|Df~e(XqSlwd6gUe$0bhe3h}v3+ya&J$Fb-Y>r@-6bV{nPc>79e| z8~7Iicy+StcvFwhss}Qv?}JoYt9%h(pW44E%S)YK>2BksJAWq%{s}N^qvU8oq<7qNUo-dNiUVQ0C{iro4lKq9R-9RJ-QokK?r6f6 zC`G020B>|hXLGh(X*O#1CURw4xs*$+zE`?F12;~ilCv>osV+*@Vv-e^WV(iM<+8`XSR@;932$Jp~)%PB^ReAhhS%9x4f8PR+d>= z&5~qZE=^3&*k(%86R<08=AE9)+w!HkX|s1G&lJngtddvK=Yw#oJaBE?#%WYjX8Bih zu8C5Uhe=k{B-4Z}XhII^5-&mGeN6m8CjLH=eTe#JS?R8j8gC2Z62WF^yqs2JS6rv{ z-*{>b(va$->$51j&HPBJ3f$KL$SQ)dSTo$>4&i4TKrt2LIOLCk7XZ#p)~fyD!$dot zB-)!GI-DUIcM_fWR&{Ru`=BJVa*bv@SmY6+Bw{3cLBF|QzDy)v1@qt<(S!i-?8MC= z4)%aUU<5o1lHfG>09*iYk2ply}BDIq! zwHu5944!%m;8;$*4-hDI4j@3f2jDnQZvi5Rg4@A%fHBe-BYh9Jmspw-{xnIBS!yfy nt^mpLyt3hzKIK$vYiuRYH+n`A*ce+al5kPEU)ZetD0Ke^O=7&1 delta 3085 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 Wbtfr}{x0&tB2^`{V*aiB&;JMYoSRSp literal 27503 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 delta 4705 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 diff --git a/doc/img/SoapySDRInput_plugin1.png b/doc/img/SoapySDRInput_plugin1.png index a3f29bdfbd5faee2bbe372fd4dd108a8650063b6..6f96aa549582c4b6a9cb628c395ecd8c461b8ea3 100644 GIT binary patch literal 28384 zcmeFZ^;?ut_b-e}Nl1sZgdiy`tq7=qAV{}#gLI=HQX-;s3P?FL(k+8Xr_v!QUD7dU z&2ygbd(QjY`v<%i7Z=PhbKiURUVE)itWEecl}ChlGYfEd$+gq);o z?JdCuG3EneR?>>5yAvTlU3pzXupZ>AVTyJ$<$J#kODrPu?h9$xUsDRF#LToLA=S>7 zQ?4V!g7=3bw~*8}waQ#U-BrdedrFIon8b|RCRJvmh=kzm1$jxyfNx2We#bj6?yLrx zJUBhvRI;}(yq6^&PTjJ_fg3H5(YWIOLD@ZuCT zg%l%Ivg1>(8S&CgV0jJjwp?TRT;q^|KPo8Zcc*gf-$_-}eWUP>nxlpU`@roa*1F2W z+~Uw{gbnmhgFM*7ZE829(lqQZ70YM8j}qcMz1*H)xIwV`Cvdc3OUyqq5y@R~{HWkG zuiCgkLoeq)gY0N}#v@tmZ6}-@~ZFRXgQ%6_@fgXtwkQXY^;3s!Bv<$2wVQd?esWqYM-7!9`&A%ZNAq-c zXsIK917BDfsdxMk#V}BUgIOJfxIVCRXP=?X8Z#KHD`60u)+ncPD5|BMR?MIw=DF#_ zkOS?O&pY4lv+2!_oWEg8Pk7kAs>MxSb|Q3B8w=`VYyPqcUUyr^ekAe$NJ6l1e0OjG4dOBGFUhg z`;3oD`i&zf>(1HuO6ENr)R3`?IqmlPd(@`J8d z9hs8js$Oor!bYV3dNp5Im}W%S&8W}M79W{2Fc8xfezs7;vg)T1^Q9~{;Gfa_Vy}t( zBB2H^UR5C{sd!1krSd8@Ez?i}>uGY!>ag>9O-zcY(v}E0$tOjXjmV41&F&OaW>ZR1 zezTYd)IL(wQS!#eY8)-SgyL?`oM-*F9EmYFG#lD?Bi_As&7!p4?Ee&r~mHH530}n2OaIbM7;aXB^~|6%L(dVg6-Kn}=+qWF!b75-#G>AS<)>oX)hyS-A*yN)cST+ zU$ZBVJIf08)i}v}7-!NCqol4Rep|cuhuu-5bUt{?VQt5&zD~$#?rmNqJ$81?h%&uZ zNe+nz_iLH=Y$o|F`a9c_!>KFcqTItx#^-+VQGrGUF-sl4H}QWxL)JAJ-DK9%aCUK- zTYPfu$rC)4bRn0`-wR%GPxa0THPpKcUYQqmvVs*!ls*Fcwbs1Ft_#Crxgn)zYZp!tFT*b3c2T zc?TOW(&Dp*>?8(}!hwzAeR?Zt?*hVy&G&TdBS$9W3N;^!zCFNW)kky;svJ}=YA7S6 zsmHolO=K8re*6x*SIlOSt#-$HaiJ%2nr7EIQg3Q|yY=VH)5Pi%``V3q@#V;|OTp^n zxzGiQwHpXUlz!d$*hl}&2p_|*`<)bi5lemYdEF>k*O!xBA2gWu65RT!}fOL01Z~D zN%zU*wLF(eqWpE)Q7vhVb7GIAljhU~KR;~US|9a_y?Z2|x*l<`AR=b^)v7N~ZzeCpHECoi5ryh1ad{Qws%T;wR(*LEXKEAQ&`TD(U zrMB7xJ`V@AEEIF!XAu3^RV0$}`L_E9!L!o&d#y->)VJEnbPoMPnnf*8&rY4AA z-`7Ntd(}^njf@3TG1$B*sb;x;M~r(+?^58;{D(mNW$S}~zWGrgiWuRh zXE#$Hry)@tX$J)?9UBvFvGsNAu_(RMm?c&EhgDN31s+OOwMt9xd4huskf1ea0*FPo51Y^B|{ zQS|Z2$?ml0Y*N7F`1qece_C0hC1ouwbHjAprE4cDN6!s$zf`IlV6B*E$hfGcSk-JQ z@Wpn0GfGJaB$JTHFH%7o`SxT`HWi<{aHPxhvrWMHy=-6def+^w%i<=3 zLqk-t9R7KeM?ZxJgAyz69oi_p&TCh;8fLg&y{)A4ZZM=Ds@Ok1tX9%uF^%Vysj_V5 z9vdI$cbbv>{{1`T0}OtC{(oE3v_CWWQIUL2Ot)_4pEOLW$^uoE(EFw?PUZL~V~ z^}P%TLHv~%CbwG2_$FVS#I?;f?nL#s^)oMFxXRDPNt6-yw~IcMQkTB&exRUKLc%hG zY_`_i!q$CfGa?4x&o}x#3RTgeJ^1w#U45#a<=M?~aZAU0pJv@DG9L6qaSvA+q@_3J zIlAl^kj}ohe*_8bR9YkBAkc`7UwD-BzmvTER=vP{;+u^@gIC!zbF8}#6GCpDJwjW5 z{-_~;q&PK&H#SNc`|XBk*fK-y!s1&N&yUM>U@VkWv-b&YuCEht*(+2)PNfQ+uhddn z?-TfyZ;{uEU(l<4EPM9Tt%Nyulr~(o51UDZKQbTxNg+Y>pZ!}$!*wyV&yDTdyZ3Lz zyzId5XB+SD=``yYe52lPh#0Qe8IA0@9K8TM%3#0N`8&)DvD5sY&Dc!qe|Fg3*Z00X zl8S0v#O^ou4F*Xa>*=mIF8qtF!E78==@ZtHhCMtVeL7}`TZ^B*0IG5{{wVkjW5lJJ z&%?KMe(TGF>^?ruC#w^tM|W1Km-QklP)5y`u(Ng#s`d?3esc30zWy9H8lW5BlPcLX z;WNYfb$Sb7;ek4*I8$}gu76{vNpXozkHTl3ECK=_wT-+(MvZ)<&bI1H2CDx3b90=o z)3oNF5<$qCm@qN=?OY+dt<1zGj~)M*RqGl*H9?3Y-mCqWtN(6%eMIl+ODC)-;2N3n zo%QqkPpha3?dOqWca9CG_;k6!7)Y_^u$lB~4MR|v2zprl`zsS}qP)4m-A87qSb#XwDq8yPwez>d- zu`Ty!^yg&+bj`H}cXG6y$?)>>_9O|0p6su#ROC^bU=Wcy29}BDr5p_DW`Mw^Fqu%|i z7};=AGnw@MQ*sVh#f9{PgT%uj|DIEAeGWGDhS~mUbJWlQ0b=)mFDoBcim21_NWpWU z29GQznmxB?gzU#YsAVgZxvy&t4`n{YDHvlVMR+rNNKnlWiMa|#Q8qa?47FuQ1y0{j z(XP=PZ<&mdZauhi?4&_AA?aUMr6m4i(@#nutm?`MA2wrcY)>EE2V*HbLI-}VmpQ8K{6mn6~MvA=qf;S~9 zKR((*5Z-?rdV21+qen7%!{cO_o&wh#d7@7daN9-&rLBODi5z~1iEpya>?*0&r_EOV z>Fv4Rr>l8SQ6@Rzk8X5At zQ%5IWW@Jd*pkdomq1ie*0?e?zGX9lCpLR&LB_i^h`}X)~d~=QO zk%pqP$FsprX~rhTvk$8|Qz4UmpVCsSH2)jkL2{CtIHh4yviY7n%!`iS18^0 zPJ5Dc1R43hw{dlBs$Pedoj32U#lfy=wA#mujVZ|)L(=xC7n?S7o5;xNbFVV}!33HE zY?fJjsgBt=sas~OiV)d^*$0KK+HLgZ14_&4>J1mZKDwnPbO8T#jalE!!$+n z>2&I$a+;Q~nB9uZ`&KxiuUV}J zSGVm2x=3*yVv+D8a#Yg9mD9xIw2Jfw0Tjqi`W$Wb?)+)n{r7JXQd3W=*r(w<)s^ai z$!~w4eznieW)v23|1LJvUz{d-CFZ(3@Xh9Vy8of>=YO5DTwT)&#fI-x7lz&0IqlCJ zJ2;N-TiBc4u77XHH>&-COZ=4gPyw5$@yrL#&hm)z2-XAY7&IGOc=+eEHZ_?4x z9j_ruj`zCx#v8l^ds9TMIzO_V1J9t7_N)1T3)!}3zDP{zaCWvRXWhIcSN`EqbM~vq zzun%$+Dq@4ezi6o&+Z*AnQ?1|5^U7q*Vfj)qvj84^gW^+KSYwL5;HLLg_E)0rHQhi zsv!w(y?=JNIcP1^lOdA<_qyhMxS`8yP;>wO{a1JVi}WhJ){CkYqiPHc4Nq3{GQ9qT zQ1vjI#))Cpo7jwwk;SREM#a)y(!T87IOItS)UW2dETKDtfYs`ZqCIIVU;l;BHcx48 zZZ23aeU+F_v2TAOt`8^jjjm`D_SG$v+C*L&jPA3r@mUPu%Z6T5eh{PJI9bTkpvMyyCm zp836{Zj3i?-k4Zfb>u!xu^!HSI!Ig_+bLUgV#&2dy)TP0HTr8T^76*7!KPzl%tvy{ z9Px#Ph0H-qi;Hp|9#yNJaFIkQUy<$vK6W7?@}G-xAVlWo-`K#;>e=tPBJ< z9EnN7&$T#|qa@@wHTF+G^BFNU^-p+s#d^9*QOifJ|9lIA{m7f@$wA)3SOS)!JTerY9T zWdfKvv%SSmFJE8RKi{!_MA3$}ntXnqry^uM@cC!Qx`@LBvQW38%kLbbW`E!z(eB_Q zMv7#oB4$H|p)`)e_9i#>h%n8^$nP)qHTK8XB`SyH>|qje9h>LJ%FJ*iJT^GWr6na( zKY#u#K)-+tCkx3cg$Zs;(*Jqo=l6A* z%3fpfCfs3$s}Au7Y=V`PJnj|KGeea~eq_^FHP)HzQ}VJx^JBAHbf?$n`xhS>@zk{r z$Pbhfy4}3`Vzx_DK%Z5sYA}@u(`)DcD;$i>vyzzjBCbbD+Am@n63m;;1o`w%>*6~5 zT3w%{HYHoepL3D#Ag{R>tS6z;O^!R|cxQh$u%m|d5>$x%}TUBf3Pn^m4^n}k>7Q%gkFN;NO zEo zdwzMHz``$@iYsAszGC!s2ocV3u`!*OZ_t`MB~|I4*%cY0lyQ1DF_#dK zdNFB<`J=8i)KVsUyzOTU;p*7xG;ppUzzzSz#f>W)#ayGS5G8KBPRyU6ch?esWG}eC zuC3A+WiR(^pCBmN>M;nx4~R)Bn519d-4Y!bYs-sniNbf${O^@fCSIPj<~iTr@qTby zO7GcJUh7+yQti~NRHymsIk(}ZMW==r)xS7!Y=7f@EjFF&65B*M@ru)!|(` z!P3>5RZ+}cY&^TXmo~!`<~GaJ&448PtK;>HWVG`BLDG=wZ44N7J|4+F;k-|WDCb4Z zqY@*Ws_?L+5UdMs%ZVjha^6wqC6xkG0UFFtYRYzkD<3~jDRI6Wa2Ug(Oh38R)gJPg zit45EOA<2dmoR#u_#3XiCK3-!qFktKWZCgoAfc;I+A%}6YukS{jVu(U^LAl>_ zdT7miaxT-_1dT6S->P+G^uKFwMK4iKP_E9a+f1AP-s)yv66Y<}3)gv&tzR-~CPdRK z5*MeKBU|w7$@#3o;)>Wu(7$x zC1vcnoGE@f{@c%Dy@|WXKs!&tvq;J~Az1nP;NxpFHOzHJzm|9FEj;L&Sb6i+|kH+M3zL8N9e??&s&He3Bo5 zo`tnFtM22jCWZKM-#ephcu7ea>{>qr?y3UjSIqsMAU%UO)D`RvB+pL95g=i4}jy2Ot zy6&lHo{h)*Y0~@Y(igjH8ie{*t^B<)n@irzb0FUETvbjPFDon&zH~H?I}P*977Ctw ztsNBZ?!Itrd&_J}8m`Njtq^58*Ya99@$T!eurPr<->uq}vCe3_afMV1%W(T)}qrwE8=cDfw^Up_h-(M-WlquR2xsH}BlJW7$6nipudq zw9FWwjSn)CM<**8dD!X?_l=s(UH~p@$T&xdxwXX zP&oW9PgdyeIk%MGJifp`erexJR@O9`qT6%0+|fVn&KRdCpCRpkJRiwNeb?lEl6+5h zcO(gmg2rQH*HCh@fCV1T4Z4<@nRLtE3mu7w|j(&sx5 zP0h>-^s9MG8V_lV15Vi5LW%fZ>Kr!8nO1M_{|RLzg%H#>_HSPu&U^XtWhM}do<#oO zn}U|5K$h^TFE6)Il!8_(N0v^N=#u=7K`ME>>Fj;yC-&@LwyR@hEM^_=+dDhM9VQE% za)XBagagjK4mZYwgM+W}=vSHl`#b2iHI)R*lk7gH{IZEo%14NSfkE!kBYpWVmRk#+ zN>4If^=KH+PWZXRC)RvlHl1xrG@UHdrUzbn|1Q$UX{mX+fD7Un>hb~t=3`1nMU6N2 zr2V07rTdrP7b+GL)xJktsba2g9VV;z0oX`NNj*_f!8SSlw~B0UFLVAQi&5vX*##B) zrjRu;K-KTV!=DBQp8a@t^P!_7FB!WEvcI1wd+_IOV^P9wr|AxPJZmEmqbyX!s~%AC{NLzCK#Q=lbwF ztfuIUSFn5}B?T$Mu-+pkHrBlBQ$hk&_M_T%228 zep_8FT50=hzMHSPVddw((SLyydZ`Z9M~ADOi~~+r*&7-gy|){WtbZ5Y^ziUF2dw6| z-zy4vbYo+KTGWvah9;LcOhQTdqrrRsE_Ihk+0NnSq?qp^cLorMO2o0j-rljQJ@>w! zf32kzFc!$d$|)jISooC06cjLKo_xc45x`SLsRWn@A)!W?k3=6gVB(CnmQ*nDRV!Yo zi!pm}rwDR6CG{HNH*|BGUc)9ZIavGk*G;_2X;$U&V_X>s*8&?iar#fUpUwkn%ML_c zVsINZBm$MV>#?B&BSo`_n|mtyTvRlEXwRgd4qz3(aeHg!o&P%Yx?#TE+#&{ zXbAT9`O(6Mp*H}G4zZeq_)r9((r!I`JGZ{x4Jf|XL%GpN6}W=#H)|4rtU|UUVT80I zrB1U=ru#4RI7A&L$cc!EJhrBE<>aCnq-;-7jYl&q($eX$T__|ZBrN;WpUyVaE$jUJzh*Bnw~p<#Xei?+9aR#rNmt4f9F6`@l{ zu7icm+|;E?d@T#V(%Gt`a*a=1g^G%Ov1TM?(r>|=Thr%sWMpmg?U6}BHl&V@jtw9p zv58prZdL1DqRwYO3;#o5Zf#%7IKnVgi91o&O>0v&Ha0##KUdB?T<%R-1=dmNhWZK{f|!P;i%eDW%KiRyDRflm6#*aOR(MC<3iPRPex{H>CQdGIM5FFY z?%tDZ1rgnnkdTl+OH1;8ev*T6gM_w1-!n5zEJdkTZ)DrGjrKn@6%z8sWuP^@U@05Q zpKiV0%s#biZ5iDdnw+Zd&C1X_e_qF0Uc55>Y4gf8?75|-_F}_&<@MCmRNNakctO9hg>y-~EHxOjM+YPfiusS)K~yUdo`25Q!Z zkoX^~s`8O~!|cWv{7U}#F$ij5Utgbj?2bxw_bgvaUz)_|H3v*VmW1HWvLi1FOz^FlM zR?tIVU&ARk@BAnm69U5W##q@o)ObkontyNKQEGZmC-xmt(xlkva}Ytd0?cg*CL$+2 zFr*tfdsVk3jpC)viYq7qL&L+~YXx}`Zb|MNV=*l)_X93ZtS}Vb)9L1`sT+LrslV9M z!Zh|jpa5<4?u8TY)b#W!$iJ>DeZq0=uuf;~Z>O}?Kh z-6#fg3iX`naD~PgME&p>YEbj?Y+gRVdyP)QIC|OEi-v}sBI?XXYs}-m35KZS6bHBf z5}sRM^s61cyu3bq`0xs(h$nPD2Wu7+e0+RFI5;?vB!Bkwurf0TwFcu{JGq7n`Q*Ni z&X|5>&-5asPH0;J{_=OKRuBVzW5^7?}X@|MHl z9#kTG%YG46e9a=Q;W~FaN^YGN(B)4cq5kaZns0f1tzoZ=E7#Tg;Fq@da*`DW8tef` z!cb9Bxp(j0UC^Bv{Qs#T5Z`)N^VEGc+{903>*Pyf$+K=Sitr%%mjfOAoK2b4LW%b0 zqiD76I5sskH5~lbSI&@5gQ{<8YI=NmwtWHuPQ-<6NW0B|c;JUedcRH)iY#S|g0*se zHAdEk3We{VcRS8cP7_v|wF_5SM8@0CHkFP2UIkyq)K?cuc^5Q<*p9^NfLm#?Pip8W@aYF#%yy21(%k_y+DvD1U3JKhljrj3E6EU zl1W^?*WK5*TvR<{3dk5LE}^HVCqQ0YA|fjQF;G1tjWeQUE)$`&?R2td%x!JGH!4{H zz^R;iFJ_@5T7NMyPbDo2LOAz|5TsX|f|#~6(^?R~)z#IhCB5#VPDh&u)(=u;0@Gpe zDM;t#o}`BTJ_%4muwOwLy6d?$#Z36lHyqjXYcE~U>IQc3l@Qrh$X&-5N3*)+=HUgY z%1HttM>D?tLSrl7VfsOIU=-?Qz7`XgphyqC>1`CX`cr1Ac6Yg&Iz!oJ#Z+7zUvcE>Y->v$K^KL0r2 z0~UQe`vdjeYWF>T&Xy}|DbkW~EyNN48^jLrNe6@PyEUY{@0qDprc+E(=URnTk?D{3 z9|u<52pFXse)t4avLdI^HjL)E8!u4D!^}`}QSFGz4!s8~-T!Bpn#-#l^-V0o;18Km#LuQ;WH< zqV-Hq2FwSg`~r@xRsDNZTu4s24O<;??Y1GciPx_F63NorHZ&tIO*0+*`4qDUKO`lE z*Vos}FN-$N0`fPvw50SNuzT+p5*nIt2aoFxk>>*B_$BzRO!^U&LrX7Q@JBN)Kzw1t zelXfl>%cvKi%<~}fh5p-++4V{vw_*5Cows;CuPaQ*RvW%Uv1Y#5ozs41!_~nf019mgWm@{4hRyL z1?G#FqCtu|-?!dVi2)Ht({W)+ZkA(Bvg_kPd|cTtH0WttumYYR$GwQpqMY7u{$bCn z=T>sb{CiE<$t?-Hn6Zad&?r>)dNJXqwfF!&J0oHEBSDAqyAzWuftE9agKB%4PigVv zNzM&+bCPHjT5sNb_PP^8vC=AdG_%FYf)qtLy+;*}>{2W6DX=*Vk|+v2As^4}9&t5Q zYp*92q`@Q`CCQBFv?k`x;wCInWanTB{``(0rB0Pw*LeCsn(k}qxSe4R^Wo^coItU4 z!RR>F=vxmCVZ3ruH&%wu`E%7y^V$640VKgJlYn3F7mxDaih|Fg&&+D)!zBDr8Of^p6*3NqShuFI1*0Z;Ns9uz8Dv$*|TafFSlKeo~ zw~e#j1zOX_T1O-q<{u}65``;~oXzQOge$ROiS9$ZQmLmn!;4#`>hE5Af628&lH@qw z?T?xY)m&ub`l+N9@v!T@#`TP~G9Qw9%8>QSd_@_@`uCx_4{=D!_MRb%Sa^0s5RLQB zCHO3|i#LNz+Jr(=mpOMIis3S+F%7koSRfmdE2B6cA-6oUfD2N}yniI+m3`rUCkHxQ z*_=?xt5Iu^-fq&6R|;HJ=Bdg%NxA zf&IjUE1W)Oc@tBZ&;N^^7rC;beUq6A{Viq>Rk?K67rXJN>ORo6B|E>xX<8MbS6s}b zgPo=lYE<$F@hiS28h|@z+*dtSdoB$kNrOK!4>OI4c8ac*jlP)nNUR_os*posW=>pB zRLIT*%5+aGPBQ-v)ImryF)1l_gV#S{{V}rEp!!br;C^u6Z{efh&bC`zIMS%5wLPsO zW4Y`2_}L&+usH^Tp^4_DKz^6{Wl-k5$-;D?tUI!zfM3PSEL0ZKoltz zaMSzuF|dOlNV9UrKHi>b1kPdsGCm-3A}IVr+-LD|n!|fo+E26br{)V0;6Go0*rB~)t8{PdMkC`~|7z~9 z$GDNjn|ld0a$fc$GFcRXWR|=oKB$q$B(5GFmLvIUXjx)5;H>D`Vti_94^SK3YDapI zb$DWVflGh*Kn!);daU$TdU|@HadSFQxo6D*{%ClIHm0GFDg!jR=dnRuVc9ENGFsui zZwZpWT#ASTE&;(J6fOJ7s;GdA(?8qW{or1KET>X-QmMU|C1OsN!Ap_K1Ct8bg*xho zfV{RsHc9s2V;>)%%1a|H_Xj!ZfByc}u_1iVp6(U2v*Qeo#+4Ru7;cKYacoXjvokYi zDWCmDXh+LdC?y0-r|qM74U7-e62iu2rvgzIV0l!4jKVyLMzK)$Kvpp$AsJpjKx@ko zCM3YGK`Ddse+~HR!;;Z#4bGP?F7p70et>4c7_%AOCAq?YUDd30-3ghoQ>vzTSV5;=SE>!=LNQ5$rX8 zM`(4M+3GV%Ni~jGr7a`DRRoujN{@<+>>fd~i#^oaN3HBEFXUvL zU0*lzeh+frX%itSQ|xGK3kI0XoauE1piE7DJykupV|H@#OU)$Iw6scYZbImZ5fDJd z9f3}S@gXIp8)p4F9-irBl>>E@g2(m@;i61Wv-kdO2)ZjwJUmgcvE(3fMo^R;3$;iQ z50yOLe1ZS>->a;t|F%lb%g_SxFBy8j1c3-xFw^}%e%ifQZ{s{)Yr5LYqF>qRp{=Ty z71A{neklIq(NNV(Rk=d-CyI*SCnsqu^$hJ_{M+5Vb>~h2l5%VlO4Yp2B<7cDr~aNE z?te+U;H$|}XroQF>Q)nuGT*H9dOSDXxp56!qLjZ*Lstha7z))&qty#ytxQE^Efjim zb#>)2yE{7zo?X1G_TP8ZGH|OvU2Yhcyx-ZVFXbW~;q3OV(dyq)f-#@W!nAI#7m zjt#pz3XBeu<{Xw@aSXhzmHv1Gkf3vkwbudu6tb4|QgB5y3+|MLI)+yQ$y8NCMXAM7eIM3A)$het|~0?~$W` zfWY680y4&c<6B%>g&bA-M4!Q*Myq^)c?Q2~asi33UNge{J6X+V9C#rNf&f}mEonMk zOW#Kbe;v&F(fgE>SRXCYz>K;?CL$0BNiwpC9RN!eE=!6NRSw-?=%S%1EFhhj3+Ah> z>3Y|tE(%_w2A%n)-BGSfp5|-pbG`Kq-sXj}D2+1-%b5o6kbn#+-}nUMfFwY<;Yg&M zk^h0_k7!0%5LQs{otjQ^AG>)-{1*(rqnDrr6-WBw-*Zw@QswElfZEZB7p?hh&-8-! zwZvQaf+J2*h=wpJDG5UO)5nkM^G#?BV{ZO=(E1CP8b>^6ctE0lEOvg{Jv?0g9)kal zRyBw;kV!^DtYI z_y9LuI|R)S^sHi+aSaY~U=N5z{LB4*$YxDHPl5eXo?dKJ^i!TrgV0>7kBA8aK38l| zD+}Z*UlXBKc1;9&Z(*n)vOJw3Ayc$~9pC;w7u)M(DPg;AJG+Q8U}J=UT7oM6>FbOY zifL)bfL}Kn6PoZJlwyD+xVXGbN>3l9lE?K@CQ2a~bdx)ImZ9huC_NKu35uLCuzhge!_~ir?1;f}2p0KdEU|8@t_^uptfa%16mm+~HCcHE#}L&b&?!wumU1^wyU=XVMF)2K)g9DiCg1SeB{ zs7UJ5_WJOQ;;-uiAb3N=Y^oXMXa0=%&062_?t&VuV7gTOkF2IO(8x5Q3vLS2`Jnf)Ab2Js|4KFH2nPi@i$jiS33hQ_Zb5& z4zzF3-D?R%of%7?{>^5dy-$Xjd3x9X)b0G@Vt0Sv445F?zg6kgwGUVX6)vF=8X!!! zQ5pNSzPfU)E4A-G?g8iJ?LW!FcIfRpUFU8FZUkgn*t{Vb8H^uf{%m|?Q`$K=uz*r4 zx%ZO=1Zz@IVd8o8wKnp4upX2;SoS2o2Dut9(Edf&}9qNq)Q{VkS|(n=BP}r z&fy?+3fk&CxBH-ej#W9(vOIc^1i>BrsppX#yu9y2@Tsm2fL8kBJ$?7*2f;d(wiHmX z-@JV*VA(_M;_8Y92>}5CFsvJl(mm%V`%jHSc&~#{3k3t}96uzJcQnEgN3($$4}!5@ zI63tv@|!7FKG}19s{Gee>0Mf3N+-w{X~HdysSYz)V3`&R`Hin4be4PUfQMfCe zzxTLsdbZoeWPJAKX#$0WeaovW@Yd^KEkVwJsIRr7f#1;@$CD?S0Cb=|P5_!8(K{8E z*c;H)F3j;*>0Ub!|4g^Fk?XHO&8q-@&YW@av%A}@?JeP#ygVugNdnrpurR7p2ju-y zM|4mxtw1{iNl*YxZXln2;y3#d_Ud}j zvkEzT>JK=Dn0;3QuRgqULSOn7IXX%uBO~*l{)qn(d~u@T+Heu`2zzjm&|`y=ZQuct z*-H-(g#ryw5ETGq)earOrJ+dz44}@gE>mO}33}@0=1kO|Kfg{ygu}$oA5&U-m%)3H zgeefyN=JtpT6S`0A4N0p?ALR_mR`{Qwg1X}#C z?`tsUt+TVu1KSeS_(4n~93<;RUNN(AIxXUJ-OVgQcBK4K3J<|*fSk!JBJ%rN!2eMr z|M~c5>dL03rA1b167zd|d&hkEfUy|O4R(lS?cNAP7Wi7%T0m9vhJ>mM!dK>stzync z)cJ~xAL`=BpwXxD*(q8ZWT9$oXc({-nriT__!;&?V&8M+%xy0qjY;Fiix)5EG3`jo zUfgFcU8-`w*@8V6(u~F1sYrJKdXo#lD|FL~>xv3&=wR4k=q!qjos7(ekDGe|o|Ch) za|`fRV7tuB%;*xiztZ0UAP}_Y*aBzJ(bh&w`olhQ2((Kx1Km*>7Rv33zT9 z^kvAX!q!Ji#O~|AmjI*6+h2h3kh?%bfDO7&8-yZ!I%5EgXrckII245UoiVfM-5KBQ zPI?wx&7Wpc^^s(S^2qbo42v?c!*Qkk-7VT$^Z9_^DgXj7uS21{=e@^z>((vk$ch2C zwak8809G*k-8)t$CX81Q>OkDl+vTQ&2lw+_Ql#GJuHA{T+<{i&>Od7W&+P=#lZ`qHTwR-zRwRDinY>sra zEY^RK!Ipg1b6U_sjz@HFX7wiT0st`@o6i*P74jb$f zuKgxhTS=MEjD!h+{gc&>SDeMDu{p(K*TtITOxrnDo-xtqs|HZbr`fZjl5~lQ-HAH7 zy1TiIXUvm19}pL&maAYGkmZw-_|jQpo*Q3>C^&W^q1AdoqNJ$!^_d)-;1~q-*bU9S zbe&eNMwE7!^yKUAMWWV(>*x}Ti3mqx$G>1?A!ZtV1V;=@s~#((Pa4W074PS$Q%HO< zfJga8It>zK63eJ^SI=5U*od+gVLH{#RPgo(rFTd^i58=;q{Mtp0{xSOAN_p3y}1t_ zmn`C!>0N4b^Cc-$E2~flda=7$59E~dm9IQU{DJ@l>c`=FPm35xk%x!K;NT#D2~#I0 zJ{1zUOzRMASs;LFh+nzUmUt9kJ_Nsdh0&KP#?ptrO=dYWKM2<(ccF7A^<8vybY~tM zy)-sA38lDY7&fo;pYxKsfNd1A)#zT_HpUBrW36Ff;c$@Eq*CK-3kk^v+O>Z|{EasU z$^b<&gAkXz_&1#E4?!Xi;wv2E42cKlpQ>y$PnEF=b$O=P9cXRMK_vC>S@>kr<>@-J zp%o}}V6-xX{D$&T238mFMq}$~psWhuM&WPPTMse=>%EX&2Rj3r4RkAcXu*Rwf%`#^ zCWWYIHQu=IMp?(s&dvutc{t-K$Ok+O40Wmdmjp*}Ct~P>z6C(E`SKM16*!PoU+0ue zSNhVR>Q}3Sxx_34*c06`DdIF^V2+v`{S|BJRtic2obDn$ED|gSLcV*Ke8yp8TW!_!r5cJ+#bYVotJ=!yd1ogO= z85hiSpx*tU>xYGhXM#*kVe7!BQ;P9wrqOpFdP(`AmjLF)4&4?9#Rh& zfkrD%Z-Z!R31dh5$RSw+!8kr~>a9q!bktumQ*PIj!dZ`erx!{u<5=jrDTK zr!C;hfSii|0X6jR&2=(d&>g+BnQ8<&1!C)(pQiON-cY7L>#9e46DYOVNTJ~ z%I>67^DYcj(4s5Wba={h)*r&t1)2a!$;d#yz8*=%r;s=Na<1hH7(wAFDYOLz1(-NE zu8TiOhEXg18F_%NF~CJGS7a^&q2W2h)*=9Y&z_1HYexT0ch>`TR+hha3Kz$UhsMZNR=HOc|(0qGoO|Eowy{6I`siO zG04It*Z2pchrxbyoZgf9fM!h~ivq8fg_ce_I%U`lV5#Qf7J)G?CnuN4dDLau9nZtc z%1TZvM!{}Ek>jyBfo@&^HyvZ3!bV*Zr;3k`wAK617`ln zm%eu1aBS(GghU1S=CWsndX-<5`;l9$f`Y^Unp;hNI^E>p`Yn?GQ?M+^Ccf!-9v|vj z8?;*B=e%@xUy6CekO{>AfaVan1B7uh=Q@N6%oz@dvVbj^0WkvWN4K#+;}wABYk*2L zPbKY7_LiW%fyT

eFljpRv(bzV3;Z!Sw?Uay-BWV~xI|vwr)87_d25+1XPLdAxov zZEhO=tw#6g#r;6{2SHQND!|~gqwVUtb4@uUq?f?U6ZZd{^MF*ataD)=kqzarCoR99)zaz=|7u*^W8_X4M&#OWi>CVe)st`@0C@`a9-9&LEljZ)07#r+YlgoAS_ev%$<~C6PQV!z#KjSZ^nGBtTUOG^g}Mmo;Yo zKQquTK>8qY5T1tri4gZjA^Vn~AQ_lz-l)F}yCAH|VZTw^k*}4bu33MC0pyUR!WPfytGk;U zxfT2ehS)1N(>VS={3nKG`L|>Gcd(4DDKTBqT|BTS+DV}K-b9zd>kEmEHmX)mWs4@+ zV+T3iaf2Lh$Z^?a)fvx5v@&F<_GCH6OD$T}EbdODV$tW9AK0a%=my8QIu-jDx{Ozm z#y@N9Cd$Re9{5UV`W3h!_~sA@w6cuv_(W)E=;Sgt;4O7C7; zC|ERK)SW)j(waDJ75g0Lt3*sf#bFAo+E(~g)8o^>ZL4yO zDkaY*%9pCG;Wj6yA#}yYVSEQ(SRxS;jw;D9g1(U{!Rl&%$9}ss#l>mm^pTN}$syl- zB`GV<6TDhWQJBc)P^p6W+JqOMkPr$z0DOG?U$mX*p<)Zh$4{SjcX#>aBZ9(oqQDy0%I9ljdMZDpG_jVZr52UZtMia5i)Tp* z0wngkaSZL}|NY10m@08-q~xcG(n{ik=#f+Aw0vUs{@btP01^^7n*`>Rd5vrbp5#iLHA}CvvAc+{kGfEl0;mPP*#n&h| zRB2CB>9JB4h&87>`r3V1HSSJ79#+G>0%6Xm@-hFyB|k2~qCtYA9$@}(7U2;r@zy)! zh^;VMdw>cEfrG*c(?_2M$3pA$tT!xRDJYydyEl%)F@*75bQ#FlLO}&P?Cx5Q1Y<5S#<)eSv+E^t;|8R{={EXXMug!3O zYM&x7bxL@{FfgPe6iZJ7xwYxX#fSbd$_c!N$NT*2ctur2psKP6F+-&isrjVQo1j5NDbMc<=4sNEC`(U_Z? z=sSh5`dKlpvkRwu`%6DtZikC~a#FHO;}JxIcl3E2DC7UJtup*6;hYg5u_QQH1N$GQ zqvjhsB`Il8t4XPT0yKPpcu%)QA9YjkEl7Jb)oizKL(7B5DtIBnJaCK`jn5u2`p3c< zPpl|~HefEgwJvO+SYf~c-xR<=7)#CBAR(e#G@*~;drp~lQ;2wJ#o?iOG2V~9zfVzr zRSHv%1e2(uFx>vmE7_W6KGoKB>Jc3;(vH>Fi5h*Cy!YG5$`qS}KiR26*JyWUus8H| zwz#X`nPy?U@$bfa@VllQ?ko z;7cC6b*0{Tr5%-^WzQU_3|6o&j?d2a;n&GSa9vD~cm6=LL+b3smL~?Z_O*MEO#YJM z2XRpW@m<5V;CEy`wfeBNrpKA~FYQ^aS&xv1N)`^!e@vCtGnR1wRr+7$eTh4i``^D) zQ7J8FLMZB-j1V;yQqdw5itJ_xBeGMHY)OkX(V|F1w!)B@v1Cc1Y?Wn3jIE+=NQhFF z-|OytpXc}e{;ubG{()cD<+^em&6)e2`}6s{-mi^&t->jW&i%2#SRMYCF9x5+PpjVk zwKlKk-6M?(1%`JNE@`C>1>)d`9opM@9)%JLr}s}fh%?HvspjuBV$L;nQ$jc z3&#~=nFocvUhh^5`cW*^aWg7l=EVV>h=bl0!%r)DAvg0Ptg^2L)pgJr<3GN{c<4GY zikL616He+AU;FlOCkhL<62c~SDPNFJghd00&8y@}dRiJRkj_Q9m^@)MtCJ-aP#GI& zti{*rF4P^RcRaMG+tBGv&p_??4#b*)@8wU%2vzp=$)ek8{+v^9O66eq6~hGmPNi}( ziW_I{uC@G+Jw3?}45{?DH}dg1dNwylQ?A^WuN5$Bv`YjDr zP8*4i&n&Uuko`Sy{-r^^{Zc_ay_1`y2E}UU`-hD1c75aPD|gd4J({?Qc;c9sZ-_ym z&O1`R&G+Hd2Qe`9g!xw^v-J5)MjM;hKwv#va|SaK&)Z4+DT zM(phDFd7SsUU8u}X~WX(Q8pp~t%tm^{M(;cuvnX(nCvnRB~r6<@7)U{tWvT@8DBBu z9yT!OYcZ96d@rj2je znm|mzq4$k433PlF@+hX3VyI)0&!oe`RU1pZJ`k21=Wfh|ewfj$-KK%iU5nnAmdXgk z1Z<8T)AsUp@RK?faNt>_ERl@IvxX&5Cg7L#*& z2Bc(5HYwXOc*c%%KMSt(ui?(}=PXk=?^<-8J+4 zqFsr1t>wFs?6}xR{aiYAr_X2E_)|K1dY)UdCYD4*i73}5+1m|v_<6^U&*!9j+F0qF z?=AT3FMnOo?^~;vtG2*oM@>}Ac5$z%`gL#3$f~QnOePrR)fLQ}UCO;TTBs792lbX! zS6^_TM>m(Sm00}`~eNBc(KUM`o^C8?~!Nh%YY8W$I5 zZdX_?xuCzz$E>c@^0o7&{iAO2f@~{H8IV3sZnrAmGFrF}rry-%*GHHB9q3y9w;?4W zoT+%*&0>3M-m5QGUd__O@{`K5-=AL7+W-eiUtgbdfm1OKc7poQSX#sgSNk=wBhB9g zSIh5EAXd;Z81v$AxucpTuS$(_t!|&6U#W(DhUz;*x!8MbLpEN0PnZ3+!-YwyhN#Sc^K*O>^$^-L?`k$;!c32Eepm&8HretuwC z*X7J4zlb*Dl2hcc@P$Hs6}H{7`+p6jeq}o?ka#U=6(hQS#ftvxo}c!q^Q)$xDn08? z&XrDB_&NRIr^M#0HbK8}4}Ak4sjWRa5rPLTRcZU**CdQPOXwV=&MrC9<(s#}O54L& zoIhRDA=g^r&FCkIu2LswRzPC&_G@|BboYC#hO;ySxdFpvB$D{gwfERaT5xCWHNTDp z^Vk#FW%?yc9=m4xXf294aX02V>EaS6i5o87LyS4{AC_>o_9j00^5bA)Ucra@<^U^U zFAb&~6A>@G)+&|!5MIvi@bj_Rj+(Sc(*dz14x8g2P#LUVc1f12nVuTfvTtFy>Sp`P zRJY^i8>!8lkovh99-HI!@D_+!d1PcyisPhqFqL77#X%P`^nQ7(|p)&Z;O%)AAxTCxG$w?0Uv63;j1j8D?(NpAGZJ3a30eHTXj zygs+npH5|P(gg%Or+<2%J9o}iO=FK<ns(jx;S~rhJXzspPKQd-B6J z;yItbx?@x`@71=uq6|m1@)jnQ;Xd-pz}NFWp6NK_+`Cx&q1WYsa469>2uGk;#Wvp@ z7Ys`50dy2(rotcsC@bGU3ZTBeo{x|zU`Pu1@h0^5`F|V9B_jia$58$fYO3XyPC8Dv zUAlc*bh*a)uR^ap)e7RCCbVuV9?@Y4n_TP>bK?(A3_Sg-AUG{izAw^AhL^KOLe1DD znxj8lv*Y;rufu&!{*^uYPWdGrqizvi1N$p-BTDi+f7Y|%Lp`v6{{xzol+;U*k^m_; zX`K0>@Chd?9Q=mn=FeeRnFMWEv#`3lE5WHX0|e&Ty(!6Hx`4^fL3r^Rd`;o|QaO7D zoTuPpWSC)^7J$WDnPemvOPo-ZQv(~DdPqj=ZKkxRKfYpz;!Lk=D62{Q{(0rN=}K`% z#Psauw$9E|TG_^Oue`s#PqJO@+h1dFU5?+tOTMDSZ-F5H)R*$v-RXxp#rj6?d6zix z#3N?MOnT*WuagA!ofrz?t%yKBz@L(mhY)oBM%h{}Lb4DszSD4)y4 z#GJO|gDL_|`rPZKTBzauYI^>%<;#OXy*GWk)mrVR_9{to`df9=wwlRQU%s^4^_hu1 zk=kdZ>X*(YYFUJ**GANf4W;IN>uVnIxq7@JMkwglF3HtFGV2`=lO#r35`TQ&x~j|b zqV>U#7J1<%pDk5?ud*CYhqDSQcfhe#PgEk- z^6DL0xC;ddudSx%%F0u&P1#jgUG)7Dun${+lBw|v$7uJ4zK^WMf@Af^ zTuz^yN?h-#O5z>QOIrK#lwD2G%yYG;=fvAcUhI++WNWjU!7z^4Vu88PH&`c%j@JFT zSU@9E+?<_c4n)zwGl^AiGQ>ez~ZyDJ>n zStdxfbm+N4c7s!5`Lbnvj|UoVs-EayfJbN@nf#}iSRJn97TZ!jmp1Pdrza`Kr0TU; z`6sFFaPP4*~5=cWUljPTIKXN@g)CYcjb*c zUq|M3*ab#JdwsEGH39=y?>GD z@@rHYrCJcu2{HWydMWv!=o9qw%*;#|9y?YN&1<51g&@B;L(u4cI(2EaF;%@SwK;2W zA}_~Bi{>r+Ux1&1wwR9iz-WgGwn%Iqcn>1c_<9`1q z*r50=BD%h|MLjdL@gE1{J&cmFYx{XwaT2LabL2>uFT;mnl?8tk0xzjn$iUV7cSuZVbp|9|Q~ zTt0vI@#7S{;6RP2bwBp1CUK*IdWuSFSXheB*(W+q;S1fZLl%`;b@W?OIMljl(4|sD z#u6Mpd?vQsGgwG)m?EH(nVkHXHG@f~EAV@FlRG^&bhYBDCXIKDbpZy+-9P^uttWSG z(lm0+778+Nu*%7Ob0v%St*U3|_L)N=>Jo;-uXJj78#5A**12d~P@PnZQ>J`$C0fl4GaI>+n@K_cfc|&%{$x${g$#F!Y3{sP3U6I1`66lB zVPk;zk^VHXj<3xYmuoZ4T20tHvdaGjxv8!}Qztg@$(%YiI_!JQIna9jY*a!?>KyKCfm= zn%{g9>@6#Fx#;sRx&MUMruMy^x`QnB?S|`0g(`5qcy>Q=A{Z6#5tIJrjOwVvKsNqGZvc+qm?TTD>be%Uu*%rE${MFEx>;i;dNU z#e&(PME!3lT`pW*O%-w|=t${UEVuRYM@{)oDpRtBv?X2-+d)M`4yM0*$Aiu;>UQ!i{{H-1;xEs(m00GSxYpBy#ZmgZ$lV7@HxH(wLh zY!%@@U9Dkh!A@V~ar7wPSEtNF8#tf9Wna^WZBF@Rw!mDE?xdVaXpNaGU%M`ybaU#z zAx5Yf0Gm+k0od_PO7Qcj)r_M``s+nw2SpTNZPPx3kJ2((x}70~C$49u3Syw7A% z9O{Y`8EXLBu`*4QtE=iwfG%};Js8(>OtXhnymIA=gpKqU(&=tJ)vMyQv>B{zIe?G6 z*3yDtr+-Je&jS7vlKvD8cnm=3X%&tMWl4($QVw-P4)0+8R!SH%)>>r*yjsjso7g4m_52h^Yq7Uq#UD%3= zZX);!ST%Z$SKd_P(YSbom+8=7{U~gu_yv!%A-wpSRXw+BtD?+qnQ+DJZUpc+9J2|W zs=9mkp6mXJT=|WS)-Q1V)G~D<91jT=UaeT18|Z%G((TQck-XymN5D$pCs=%*p+9iJ zZtT`^%5LJ=bKim3&ONmuC@4ts%nw_fpy49rj+Qi+js|VbP(}5l$8U-%gM0eEPB0HPJb z!W73>Ymmu5OkM&GJN4 zaQ}m@>qvj^_K|`MN=e*YQ{M%MaImNRQ6~%GO$yPH@TI!}&I&zS+qH8Mu!W6|;3;7` zZ^^UXg%hw!KCcXXvJIeBj%CSJkVHgR1F8;AgA`Wv{=6c3=jejU=^>Afioi!t)$;3w z4{OLhfAn*{p(&j_`7B^ZQ^{=8KuUi1M~=+dhD?vGC7gJjZWD@b#kfmimCdGQt5>_p zC+ObTfWL2z4>lPJN3t4~7lWMijEt5{{W}8RZ$Pcr0E~^|Lg{eX(9l96k-To<6S7lI zK*bi;Ak3qhRO&4^e++S|p2=l0?+{dnw;Zlat@DfOkteKcY@BC<{01BbuR~-A7wesw zZ!$l>4@Xy4?t-gr0QG#oiX>OvB^?X;J+$>`XaTi)C`bBJkHUA>3(0wHU>W*?vyj4y+QB}GzV zJ#k5|C3Jr^Pw$#D$Om+oo0TG2lww_+D&3tS zjU9*0&CMAprjt{IQx%#T;n3kK2_&>UmxGHFy=+Gw(Ar@@QM4*;b4(?|PDr5?m5W$v zCnQi+*Q_~<%*#VgNh3xGte-V#-U94Y{`muwu00kLHbh~mLh`*nRn? z5O^i8Uw`i~*#R8msha&iC+D=h6pit!3Bw3FedkQY*>hbqhz^_&4l9-~>lYG~PnRaU zi#2SDZ=BbYd+$W<$^=dB>zdVc?9A=|FY0YN@^7dY`2n0f&j7dKK8x0P76}uVva+e= zKE0etSV-3b^S(#672sIx;$B;yrfmH?>Z~CoJ&t1ORaaMgV)biPwquC5z_^RW`Ucgh zwjl8d$0?{n)QkLpag_MNtnvZ5Wg>qYB`$uyqOGXgxoG-H^G>j0ptd`Qyk0(7b7|5( zOz+SK3sabN*$# zqW0G7LMIaRqleS8IBAsqwl!BIQ?rDc+mwuB|95cQwV_k+uaKT9yLbMcHi=b3#9`RJ z-EcxHTGGwG9Q1(*V=0bb=#vlIrhv9|?U+=ToNbCzaSeB*I*f*ug6n?3HOmhpU9$LrC5(iZJ54Co zSv#uNhJ_!{Z=9=_(>^!&_RlYJ7B?5s4q`#9rmCD#%z&xOaVw_ITLYZwkh|?X*aO^W zmmQ{1QZzkTCZ8@<$QJsyTe^B<3ulnf4`ga8QdL#Oc4&7z02>n2!zF6LdzX>M);Bs7 zXcUMU|3l$J-gktcI%M=reC*X)DaN{9pFTfCfnZQ->8Z+^4KnzTEn%Pgbjd<~N?%`QFpChF2+KJ}rt@S5$3 zZa16|gJ3oO15?BPfvKpwf41{4l@fa`0-*xY1EErW8%rJ6NCw(HL)vYCBr>nc&atU4GL*fonm{3GgexT%89fA22xxby7JQe5D>_44vhU6qZfR4Pv$>JZQ+T)ek8rLad( z!BTesZ*eF4F(L$@ajM$ei#XE}5fQ~FKm92!Ee&gNT{vbE%6Dl@frwUI0o8$19+8{D zu99nTblPo>hjaaX(9DM*91J-H<2|pYo!=6*F}rr%0k@-Kair;ZBS)`>6oFkT3dahZ zUYx*jKQ%SKZ+##!YU%mO#`OcXK5MpZiz7k~aCe|R!kyNO%+Jj9a1b~45r}}hsi^~L z;o-i@Fi#Slh8w7bVHYmUbMGlTfOFUvu!AVAfI-2XS)xEKT#(I{>wT+3HlJP3>8?1 zrOk~b5MMR4Lx^SGj zc9$|=*uiYa=8%4&5`Yk3KlN7b!YKvjfFORbC*B(9@{`vwpheVeIC-bO*Ht;y@IF}R z@gy(4Y<2|OIsL(dWwAPJWm>+o5;$-Ly|T2l3%jP?EG1%W_#7&3g$s*_M7WsPBIiFf zo)@H<*Ut6JWR%z{l1(o@8m^E)T@KVOD>s@O|6PPUi2jHv=*u#2DJ}A%=b?^h@$Nex)?j*ArDL=vk@(X)7Vo04DU7+r7hX3U7WLF#Wo4UUrRw`ta?& zq$`o`osIX`k_84dBAvat>J?Ey2Z$kv8ad@5b9hD0nKp=FT;{A_XFtfUAy%_eTs-?+#ajOovv^da-hP zdYb4-v8th#7%0DwgY~Dd-2F>}@OGZDf$6-Vr(GZBn#InMHQ#VUKuE@P5V>9MH>G^e zt3_%j`op?oW+2&~Mh%=8avV5YH60(FE+ih0%UI)tQ5JB zbhh0)SH#jQ;pL-IrTp4&)gTzTgGxxloG&UW;yx2Y-Chm-4O)~=y{DO)l9|PEaUTq+ z)cU)ck*+?Ui5v*t)0a}7B3UnP_ntj}pa%kp_s*?^+rIg(X23+pF$7>@VO}PRW8pdn zg!qG~)_9L{7PzY^N1rbfQJ`Kpl&OJEi0jwqJx2Vi7`Ih5XeJ<$lC<4BLQ>6-=<>yQ zK~(g(X1xDMq4jrB+1Kx8)JGjwtU0>*u(5HQBMCc`M{9dEbuKXgA=F`u9grxNf+M^Y z=>1Vo{2KE6E2v{hEGyedWI)OKNtble|H2avR5FH`n1O+T%`y6}>2D-dBpm~q!ZCo& zvu?+5nFg*6ckd}ZAD+|NQg0smI0CSt4swf@M%FxmBxF(Ur-ZBj5Gr-X2J<{hm`UfW z3|s;}efmV~!)U5Ou_VymQYaAEx!@CBz1@KZ%HeLaBOW>wwqSU0={C!2M<>WZB13Xy zm`rSQXhB4;O0ZVy8z4eHg2P2JFa#Y%Gm|fa-VO|0#4w0SzkgtWSu)lpl5y2}vEbvs z&o~xl>5BFg2X3j&Ox&Jtp853U%RIJmMQq+1B7FmAe@Do&i?!nwu{zSQ>(<~g_9x-%Somt*uerAAFO$aU_5Kt8!6{EcyMZ+fe>i%^i@yug)?MjZccb{H*J@E4EOr|JLur{U4S1 r-w*fy;q3nx5cvQ8XZOziF*^|uwj?|-CIi2Vj_-ixp?$e~ZO;84&i{d` literal 29136 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 diff --git a/doc/img/SoapySDRInput_plugin1.xcf b/doc/img/SoapySDRInput_plugin1.xcf index 1068f3328a469c487283f0dbbc2a0ff406bffbb9..a991b315e79646710d9b7f7f17045fc2f79451bb 100644 GIT binary patch delta 3138 zcmZwJ4NR5S9mnzC;p#3HQE73uf;dF173EE8-9TO}O-p(6MmG^eMg(ny0@snb4C_;> zO`F+533hh1U~SrLsT3sFwo80rZr#$Uld?ItL%rvhQ;Nb8oYgd~zSo z%ftEq&pFTYT=~1R=eqNibQ95?k!tcUNHhDT$Q@F&OIk5citm)x3`yTQEv;{s9{;!G z`dIo-kyQ4mw7piU`>W*cl^Ryb+-#CvjJMMBD|5-jzV7=|x}V>#V}|75mcBAo=Q!*6 zz|k9IO^%f5W_ZhF*RRnvay<%AJUME*-MLS4GRD~s`Z>?y5(Y4WJ5ul*L?IsOD8M#p z)=zK-M0U?iJS15m6;epOH0N2of;VvjzmUQ%g4Be6ivLLSgTeggFDJAVWJ?d6!l1O! zfd`Q*Mf?)K2PujeBZwf}izP_51F}f6PitGwi>-BOnXR3P^E@TNee+`i?rHhIyZKjmn@YYx(TMc;w$Y-Zb>oJ#e{=?F@zA4jZLUPJr3Xy z-o{CMgv(OwQy?v|+;>?fUL=6!k<#*&NJAdBq8fYg65c=uPU9l_aT8xK!P$t!N~9qV zTTzX@cnNQy1E+Bj{dTzjKX-jGGlOGU2Ve2aUEFwJ-Aae&c3i2$Dxa+O&s{DbS$O}twU<2?*S;QP)lSy>=Pk9Fr$iO@V1HnHTA7r_m^2IYOFN1# z^q?1m7{!FNj$@PlJYK~+cptw8YmvbeGY=9#<`FKAgL9X80atMYx23EQL?8~S$VCaN z(13$Dg5x-a3%H6KxXt845P>+PA{QlgKwr($0Eo{4hIq zhV`?_YX7`F@i9+T&Y6qYTx@Z>Otz$QdqVDXl^dap5)Gk~YjhIF=#>+1P{%)Z+jS;ccA6N4Sh@xW!~=ARJ4P zf^2L;1?q7ChwO0f=FQWV4QyRY_ZR;m1-jd#jkeRm|QhW^WakySZKykbfE{m7{n+h2xzVy z(A|9TUa0m|7qtb)^4{A|HG3jivpowc&xb5p zNEL@eJcKoCLwWu7r^*t2@7y3NTD>!?jjOe%EaEXX%5-rbnYx-D%Vu+T1=hJ)GyYdl zU9z8v)`7an)*yFt{O)I`y6@z7KDfp1*Z4Y$4y@nJ>+A;!o*sAJEbH^hCX>%(S8>f3 z#NG$^nA(N!7E1l%%|AsAmg*W8Yd!*qF(&uS1<`WrbhfHX^O!y9& zWtL1zyG+(UWgZ)n$@_=Qw-?InTtQpoEt$4GG95Q$KA`iNY?<@V%lzRRGW}yR*H+71 z|Iz*v4IiFpFmKga!&y@k>Sn_16Jj*O<$U#JAs<@;+RaFk%m{5GF3@kpjYhQK7`kx| zeHemQX4D`I(MUoTTqu`iM%`RAq6Np$jdSS35WF(~G6+L7l8^-#%Hc*MT5t^AIEOwA z!AlSZVTeYO9nkcd{BXmt>2O%y>qI}D0XmO4WyX)-r|<-3VC+w{U&SE)hU*~PW1|?y zXSj_C#yVi%D+F_K9~K}2ixGnd$-;OX7YSf_#vef{GVmxKM=lDn5t~thGHl0ARG}8% d!yYui!hXDfgJ?!84o_uZf-LwP{;${c{|``pk^lez delta 3009 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

hBfk-MkJVCvA;=Ji$L$&oOS61)p18=?u0LP> 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 z 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 AhX4Qo literal 37362 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 delta 5483 zcmY+|4OmoF9>?+jy@NRT2DI|xyS5CWrUJq=uKNi1AVL;Oi-c(;CWg?GxTK()1Eqv- z2!Vk1_(H3Mr38*3>ZVd?Xer`Q3Bx+&gz~ z>9cR@b0#UqihzlV`MyZco+6Gvinw@-47n!q@z8}(G^&6fyso`&y73%Yf;q1dcCc$t1zu1ZB+O%!DPD{J4MrS_Q)vTNm zQS!Tn_PoGSj)OMGi`srY?fNFPqC>>N9GL4XhJJGM0(r96`n96M5NCeF!{b@+?U+?euSS{4E>JuJ4Rsv zmWZP`W>P6Y392lObIvR8xed;{n2>Lo+B?zSa7de*HB0AuZJYCVdG%x5EH|BR=*-`1 z^RfoS6&ctEiC8W&C;>z?=ri0D8BDH&Ls*PI zreG%G@FsZ5To4(_bvTj?N6|lu{!yoK5jXLGMfAf^jKw5` zBL+$2IeG<^Y-~lDO`iQNM?A0F8!X!FtO1SrLfbaxoTYwDq|W@bHY@8;pXazexx)k8 zx~!%9Uf^pI@eM^Z;*p9h6rmK=s6#W_&?z!r4|jOMgiu5yo-D_wQprLQN>PnEG@}ij zB7SeJHR{OH)J&xfovc=G zlckfz->=@@(6=i9+xzCk5!$wiJ`eY1@Wj{b%uLH#y7RK;8Nk%09>rJSXx7r*A9z$G zumP9QE)qmvkQ0W3?1KU^19Pzm>Bzx$l;bEGa0%_?Iax#|J7GAy5r`R>i$zFB4z{Bl zM@52}WH2W^I3M4NOz{92htMBFe@Fu^p`8T?oG={T2*eD`#Uk>YnocDL+fib13W!>elk8EsVVxmZvjwtFe~utgKl+zgA@Cb=>76lY6LbfA~_7@OM#& z53wKo>F{&-0e3~F_k6F!4y93ugAlAdJRDOv7v>Vma30eX^YSF_lC365o*J zD#dbVdP`61o#sQH%;gyr4Hcx=On@ zoONf#)oJsKYqm7Rt<#y~wE0+vE?mX)8Pi{E{moytmhOBLl0_0YVgl_695JB+HE2W& zZi^%;aK;GuAP5nNMKUswi(>Lite{eZMzr9z$mhb!=?>06e<`VeB@~ADBcbnX8Ix{E7T5Lny$cfq(j})Xo z?0(!|utTJPyG21Q*eC^8a7U!j4*lT)KLjHZ^O1s;$j1)sLoLn{V&N5$%{&8c2}LwG z@Rn3$fyr$t1ryp*hi0^)Q)H_i?(l*Mp@>F2Qjvusl%g7SXhs`4S(qN~gt*O%iV2~J zCd4Ud4%M0Kx|(f6+|edd#@fo-!E>3lbocLM;XCQu zc}Jwg4*lT)KLjHZ^O1s;$j1)sLoLpV?BX`Ji;b|0&1c^2C$c*jk(iGZurYSmgG*tL z2N<)5F?$%ZhcSB?vu7ppu><>1i?g_bJ51aT{ow&W1S1mjk%E=TC&aQHRQ913X9=-~ zVreY-&B1W4Yvr~dEalg=ZRPhZzmyNqnXRAOlX0*MA^Mwl%tHR+bzo3Euws@iqd{xo>G39F3Q~=C=}(l22uN5 z6?LF93Pl~BE9wYGQ9Z`LV?MLrd`9t(F^~I7d#bn`)NwcXE-M=Iu}IUedN+&e-G)w4 zee`gL7fc96G~$tpEEJ&>)u=-=+R!PguU^cmuR9elm=KC+#3L11C_*W!QHN%qP-uU0O#8{5Z3We!V`Q=XdDY)81W}e z!eoTtS%l*SMByc(F~(4thXqJL5*A|#mSF|nMkdxE8}Fe2o3RxipadVG40}<9gE)-O aa2zLb8fVai3w`);5tq@r|CUkJEB^zhOO;#z diff --git a/doc/img/XTRXInput_plugin.xcf b/doc/img/XTRXInput_plugin.xcf index 9ce255821f14238a2d87de0145534670b141db3c..852bcebd384283d4c6e8d01a88ef688c19c3a4fb 100644 GIT binary patch delta 5125 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 DKzt>x delta 4998 zcmY+|3shBA0><(0+{@F)AR(fbA?X!o#3x{mih#)Is01biP7<2We1zsBHTC*Jol=ny zV@lHmQY!}Gh?Z&iLbGu2fuog)uq0R zvwTAQ?bo`zyyMKbGP|5GXpKV4BN5#Hi>_yX7J#GTK6{V9rKQLl!rad*=(GUjB(COeYmyX3gn~E zz2CQ=d$lum)V`yB!BngIe5?8hD^7+9Cq|kc`ooF1^}d36(V{#C9A+4Qg>m zYUqKcXp0E+Lo!BVy41M6^ry49iU$n15uQRAdSft#V-n_?A?*S!xfg<3o3k5wdl?IJ z7y1YI=eZ~2Ut|{fM|s+LD30QqOpuia8;)oUa_^DDO?@(EZHqW>8;RBzm(>$OlCEtbgU!JqSFH9(XRB*QHf|lpZNeB%*mv&z z?Lwq>T@i~R7>TJ^h#Y)?QtZQVe2-gFr~!Y3petfAgp5K*QkjZ{$iW9F#XcOz_qZjs zH{g#Dbd@?V{|?MQjQNK#|FAX)M;wM?6sBP@a!~-2jMnH$wb#8rVxttn`4K^T1baB*0&YrL6vZ-iZHuZfE22KL+GjgkU6)Yozc?pjkpRv-M|s@e zm-Dml3}hh>oVk6=QHfKygu7ClCjwzZB;t{RF_?iY-~Axz?9Q zZG+Oxv_b!|+C!bKk27$rqeR{jsjp)(vfcZW7-kZ~Ok$Wx3^R#gCNaz;hMC0mNx3M1 zi32!^i}*zvVnqPjARKXIG-N21QJ99s$d#VIEe(Ad12I!dCc9*^OD4M%vP&Valw)`x zz0e+qaT=HL8-w-+^GprJv*?dhj3c8g!^|IY+}k$6IWgCahRt_x8@9?^HO#|mXGo6X zn$d8R_v>j~#0~fUbWYH8a!cm~O=oGQbAqN;F4b({)eh5ZqX=FIwzyWF0VKA^!m+>2e^F|Ot@htiy731(amf;<2#!eh2 zqjJNH$jI}yedU~(Yer-L=iWB zG_3&`*tEZ(CkEmln1DHW6Yt_9?7~<07C+%WlW9Ok|1`{olM}r?xQ}v;2@}nI(-RC^ z(4%zP@Ut0+VP*&Swwb-m@R{XSI~&+hTvyc`HuHik@0gAY=}fWQZNQHkcB)H zp&XSsg-f{0fISfi8zK>p6pXr|T@i~R7>TJ^ zh#Y)?QtXp9$4Of&!M$JIdWi}*{Kyl5uptuhNWmD)Ko;^)gmP5k6fWT|1NB58Y=}fW zQZNQHkcB)l@-)mZ3Xl8P@|_cNJ;94Vac?W$ZEi14wAvdvn_V+14db^$+IKZaTlfCb zdr}#XtBk%f9#>fp@VLs-z~d^LC7G|I0KB}+-=*!L7%G)NkC&w#+lJ7qY7tn6%VA(8sRB~p*IF&I3{5(R$v`I!ERLHEUw}~E+@D-yKJ7X zjhAVCaal&Y1Kitow=tjG{jmEhKsCt(MUuFGGRwHHaI3@Zyc^hb={nDE6Z%=pZ9KUm|Ib`rCrq$ z=WG?sPrj`=4xXxf_qM7n=E|cjz3e9rI@=BYOTn;G$B9~5dJV)2U@ z_mX8ajF<8B5*eL_$>{N-jDcJ>Vy%oBXJowfql}H&GRkhsIB3c^HA}`>FBz8&8MnL1 zxc`bQeoYi=X*pGvkZ)w^cwd(A>$3FR0|wCZS8ncumIzy%P_r|k#@IRD-aF*cfKG6? zanwCz=^ZOeOk=cwjW)`orC^DoJ*pKtA_@se$7IaIN~}jQ_TVVa;Tj&w(x)+6p(CP{ zY3Y+dB^{G74=b@A#n^+RIEQO^C`)u>v_eNjApz-_jCojz^(e+39K|_Y!$WpMz)sIT zmOQIH#{6SeRAh-cDNElBOa%McQ6A4ac7rUj1=x&_Q34Y?@i{7R0Eh84s=?>Qp2l}L zkBhjBpK(KWOYARHe#7smYw>(%eP2uU{{d&s1GNAE diff --git a/fcdlib/fcdtraits.cpp b/fcdlib/fcdtraits.cpp index 6826d5e47..b9a5adce0 100644 --- a/fcdlib/fcdtraits.cpp +++ b/fcdlib/fcdtraits.cpp @@ -35,8 +35,8 @@ const char *fcd_traits::displayedName = "FunCube Dongle Pro+"; const char *fcd_traits::pluginDisplayedName = "FunCube Pro Input"; const char *fcd_traits::pluginDisplayedName = "FunCube Pro+ Input"; -const char *fcd_traits::pluginVersion = "4.14.11"; -const char *fcd_traits::pluginVersion = "4.14.11"; +const char *fcd_traits::pluginVersion = "4.15.0"; +const char *fcd_traits::pluginVersion = "4.15.0"; const int64_t fcd_traits::loLowLimitFreq = 64000000L; const int64_t fcd_traits::loLowLimitFreq = 150000L; diff --git a/plugins/samplesink/localoutput/localoutput.cpp b/plugins/samplesink/localoutput/localoutput.cpp index 68b3c0a52..291c8b5ce 100644 --- a/plugins/samplesink/localoutput/localoutput.cpp +++ b/plugins/samplesink/localoutput/localoutput.cpp @@ -43,7 +43,6 @@ LocalOutput::LocalOutput(DeviceAPI *deviceAPI) : m_settings(), m_centerFrequency(0), m_sampleRate(48000), - m_fileSink(nullptr), m_deviceDescription("LocalOutput") { m_sampleSourceFifo.resize(SampleSourceFifo::getSizePolicy(m_sampleRate)); diff --git a/plugins/samplesink/localoutput/localoutput.h b/plugins/samplesink/localoutput/localoutput.h index a96d79d57..ca915b26c 100644 --- a/plugins/samplesink/localoutput/localoutput.h +++ b/plugins/samplesink/localoutput/localoutput.h @@ -34,7 +34,6 @@ class QNetworkAccessManager; class QNetworkReply; class DeviceAPI; -class FileRecord; class LocalOutput : public DeviceSampleSink { Q_OBJECT @@ -164,7 +163,6 @@ private: int m_sampleRate; QString m_remoteAddress; QString m_deviceDescription; - FileRecord *m_fileSink; //!< File sink to record device I/Q output QNetworkAccessManager *m_networkManager; QNetworkRequest m_networkRequest; diff --git a/plugins/samplesink/localoutput/localoutput.pro b/plugins/samplesink/localoutput/localoutput.pro deleted file mode 100644 index 655d2872a..000000000 --- a/plugins/samplesink/localoutput/localoutput.pro +++ /dev/null @@ -1,51 +0,0 @@ -#-------------------------------------------------------- -# -# Pro file for Windows builds with Qt Creator -# -#-------------------------------------------------------- - -TEMPLATE = lib -CONFIG += plugin - -QT += core gui widgets multimedia network opengl - -TARGET = outputlocal - -INCLUDEPATH += $$PWD -INCLUDEPATH += ../../../exports -INCLUDEPATH += ../../../sdrbase -INCLUDEPATH += ../../../sdrgui -INCLUDEPATH += ../../../swagger/sdrangel/code/qt5/client -macx:INCLUDEPATH += /opt/local/include - -CONFIG(Release):build_subdir = release -CONFIG(Debug):build_subdir = debug - -CONFIG(MINGW32):INCLUDEPATH += "C:\softs\boost_1_66_0" -CONFIG(MSVC):INCLUDEPATH += "C:\softs\boost_1_66_0" -CONFIG(macx):INCLUDEPATH += "../../../boost_1_69_0" - -SOURCES += localoutputgui.cpp\ -localoutput.cpp\ -localoutputsettings.cpp\ -localoutputplugin.cpp - -HEADERS += localoutputgui.h\ -localoutput.h\ -localoutputsettings.h\ -localoutputplugin.h - -FORMS += localoutputgui.ui - -LIBS += -L../../../sdrbase/$${build_subdir} -lsdrbase -LIBS += -L../../../sdrgui/$${build_subdir} -lsdrgui -LIBS += -L../../../swagger/$${build_subdir} -lswagger - -macx { - QMAKE_LFLAGS_SONAME = -Wl,-install_name,@rpath/ -} - -RESOURCES = ../../../sdrgui/resources/res.qrc - -CONFIG(MINGW32):DEFINES += USE_INTERNAL_TIMER=1 - diff --git a/plugins/samplesink/remoteoutput/remoteoutput.cpp b/plugins/samplesink/remoteoutput/remoteoutput.cpp index f3c1293bb..89a7ae530 100644 --- a/plugins/samplesink/remoteoutput/remoteoutput.cpp +++ b/plugins/samplesink/remoteoutput/remoteoutput.cpp @@ -31,7 +31,6 @@ #include "util/simpleserializer.h" #include "dsp/dspcommands.h" #include "dsp/dspengine.h" -#include "dsp/filerecord.h" #include "device/deviceapi.h" diff --git a/plugins/samplesink/xtrxoutput/xtrxoutput.h b/plugins/samplesink/xtrxoutput/xtrxoutput.h index 7598fa969..f18f69c13 100644 --- a/plugins/samplesink/xtrxoutput/xtrxoutput.h +++ b/plugins/samplesink/xtrxoutput/xtrxoutput.h @@ -32,7 +32,6 @@ class QNetworkReply; class DeviceAPI; class XTRXOutputThread; struct DeviceXTRXParams; -class FileRecord; class XTRXOutput : public DeviceSampleSink { diff --git a/plugins/samplesource/airspy/airspygui.cpp b/plugins/samplesource/airspy/airspygui.cpp index 6584cb5d1..17aeb6393 100644 --- a/plugins/samplesource/airspy/airspygui.cpp +++ b/plugins/samplesource/airspy/airspygui.cpp @@ -25,7 +25,6 @@ #include "device/deviceapi.h" #include "device/deviceuiset.h" -#include #include "ui_airspygui.h" #include "gui/colormapper.h" @@ -58,9 +57,6 @@ AirspyGui::AirspyGui(DeviceUISet *deviceUISet, QWidget* parent) : CRightClickEnabler *startStopRightClickEnabler = new CRightClickEnabler(ui->startStop); connect(startStopRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openDeviceSettingsDialog(const QPoint &))); - CRightClickEnabler *fileRecordRightClickEnabler = new CRightClickEnabler(ui->record); - connect(fileRecordRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openFileRecordDialog(const QPoint &))); - displaySettings(); m_rates = ((AirspyInput*) m_sampleSource)->getSampleRates(); @@ -148,23 +144,6 @@ bool AirspyGui::handleMessage(const Message& message) return true; } - else if (AirspyInput::MsgFileRecord::match(message)) // API action "record" feedback - { - const AirspyInput::MsgFileRecord& notif = (const AirspyInput::MsgFileRecord&) message; - bool record = notif.getStartStop(); - - ui->record->blockSignals(true); - ui->record->setChecked(record); - - if (record) { - ui->record->setStyleSheet("QToolButton { background-color : red; }"); - } else { - ui->record->setStyleSheet("QToolButton { background:rgb(79,79,79); }"); - } - - ui->record->blockSignals(false); - return true; - } else { return false; @@ -398,18 +377,6 @@ void AirspyGui::on_startStop_toggled(bool checked) } } -void AirspyGui::on_record_toggled(bool checked) -{ - if (checked) { - ui->record->setStyleSheet("QToolButton { background-color : red; }"); - } else { - ui->record->setStyleSheet("QToolButton { background:rgb(79,79,79); }"); - } - - AirspyInput::MsgFileRecord* message = AirspyInput::MsgFileRecord::create(checked); - m_sampleSource->getInputMessageQueue()->push(message); -} - void AirspyGui::on_transverter_clicked() { m_settings.m_transverterMode = ui->transverter->getDeltaFrequencyAcive(); @@ -502,29 +469,3 @@ void AirspyGui::openDeviceSettingsDialog(const QPoint& p) sendSettings(); } - -void AirspyGui::openFileRecordDialog(const QPoint& p) -{ - QFileDialog fileDialog( - this, - tr("Save I/Q record file"), - m_settings.m_fileRecordName, - tr("SDR I/Q Files (*.sdriq)") - ); - - fileDialog.setOptions(QFileDialog::DontUseNativeDialog); - fileDialog.setFileMode(QFileDialog::AnyFile); - fileDialog.move(p); - QStringList fileNames; - - if (fileDialog.exec()) - { - fileNames = fileDialog.selectedFiles(); - - if (fileNames.size() > 0) - { - m_settings.m_fileRecordName = fileNames.at(0); - sendSettings(); - } - } -} diff --git a/plugins/samplesource/airspy/airspygui.h b/plugins/samplesource/airspy/airspygui.h index 290c9b038..d566600d1 100644 --- a/plugins/samplesource/airspy/airspygui.h +++ b/plugins/samplesource/airspy/airspygui.h @@ -91,13 +91,11 @@ private slots: void on_lnaAGC_stateChanged(int state); void on_mixAGC_stateChanged(int state); void on_startStop_toggled(bool checked); - void on_record_toggled(bool checked); void on_transverter_clicked(); void updateHardware(); void updateStatus(); void handleInputMessages(); void openDeviceSettingsDialog(const QPoint& p); - void openFileRecordDialog(const QPoint& p); }; #endif // INCLUDE_AIRSPYGUI_H diff --git a/plugins/samplesource/airspy/airspygui.ui b/plugins/samplesource/airspy/airspygui.ui index 5a99a1476..1cf50415d 100644 --- a/plugins/samplesource/airspy/airspygui.ui +++ b/plugins/samplesource/airspy/airspygui.ui @@ -71,20 +71,6 @@ - - - - Left: toggle record I/Q samples from device - Right: select output file - - - - - - - :/record_off.png:/record_off.png - - - diff --git a/plugins/samplesource/airspy/airspyinput.cpp b/plugins/samplesource/airspy/airspyinput.cpp index f548e5d6a..9db458bb9 100644 --- a/plugins/samplesource/airspy/airspyinput.cpp +++ b/plugins/samplesource/airspy/airspyinput.cpp @@ -26,15 +26,12 @@ #include "SWGDeviceSettings.h" #include "SWGDeviceState.h" #include "SWGDeviceReport.h" -#include "SWGDeviceActions.h" #include "SWGAirspyReport.h" -#include "SWGAirspyActions.h" #include "airspyinput.h" #include "airspyplugin.h" #include "device/deviceapi.h" -#include "dsp/filerecord.h" #include "dsp/dspcommands.h" #include "dsp/dspengine.h" #include "airspysettings.h" @@ -42,7 +39,6 @@ MESSAGE_CLASS_DEFINITION(AirspyInput::MsgConfigureAirspy, Message) MESSAGE_CLASS_DEFINITION(AirspyInput::MsgStartStop, Message) -MESSAGE_CLASS_DEFINITION(AirspyInput::MsgFileRecord, Message) const qint64 AirspyInput::loLowLimitFreq = 24000000L; const qint64 AirspyInput::loHighLimitFreq = 1900000000L; @@ -56,9 +52,7 @@ AirspyInput::AirspyInput(DeviceAPI *deviceAPI) : m_running(false) { openDevice(); - m_fileSink = new FileRecord(QString("test_%1.sdriq").arg(m_deviceAPI->getDeviceUID())); m_deviceAPI->setNbSourceStreams(1); - m_deviceAPI->addAncillarySink(m_fileSink); m_networkManager = new QNetworkAccessManager(); connect(m_networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkManagerFinished(QNetworkReply*))); @@ -73,8 +67,6 @@ AirspyInput::~AirspyInput() stop(); } - m_deviceAPI->removeAncillarySink(m_fileSink); - delete m_fileSink; closeDevice(); } @@ -347,28 +339,6 @@ bool AirspyInput::handleMessage(const Message& message) return true; } - else if (MsgFileRecord::match(message)) - { - MsgFileRecord& conf = (MsgFileRecord&) message; - qDebug() << "AirspyInput::handleMessage: MsgFileRecord: " << conf.getStartStop(); - - if (conf.getStartStop()) - { - if (m_settings.m_fileRecordName.size() != 0) { - m_fileSink->setFileName(m_settings.m_fileRecordName); - } else { - m_fileSink->genUniqueFileName(m_deviceAPI->getDeviceUID()); - } - - m_fileSink->startRecording(); - } - else - { - m_fileSink->stopRecording(); - } - - return true; - } else { return false; @@ -614,7 +584,6 @@ bool AirspyInput::applySettings(const AirspySettings& settings, bool force) { int sampleRate = m_sampleRates[m_settings.m_devSampleRateIndex]/(1<handleMessage(*notif); // forward to file sink m_deviceAPI->getDeviceEngineInputMessageQueue()->push(notif); } @@ -764,9 +733,6 @@ void AirspyInput::webapiUpdateDeviceSettings( if (deviceSettingsKeys.contains("transverterMode")) { settings.m_transverterMode = response.getAirspySettings()->getTransverterMode() != 0; } - if (deviceSettingsKeys.contains("fileRecordName")) { - settings.m_fileRecordName = *response.getAirspySettings()->getFileRecordName(); - } if (deviceSettingsKeys.contains("useReverseAPI")) { settings.m_useReverseAPI = response.getAirspySettings()->getUseReverseApi() != 0; } @@ -792,37 +758,6 @@ int AirspyInput::webapiReportGet( return 200; } -int AirspyInput::webapiActionsPost( - const QStringList& deviceActionsKeys, - SWGSDRangel::SWGDeviceActions& query, - QString& errorMessage) -{ - SWGSDRangel::SWGAirspyActions *swgAirspyActions = query.getAirspyActions(); - - if (swgAirspyActions) - { - if (deviceActionsKeys.contains("record")) - { - bool record = swgAirspyActions->getRecord() != 0; - MsgFileRecord *msg = MsgFileRecord::create(record); - getInputMessageQueue()->push(msg); - - if (getMessageQueueToGUI()) - { - MsgFileRecord *msgToGUI = MsgFileRecord::create(record); - getMessageQueueToGUI()->push(msgToGUI); - } - } - - return 202; - } - else - { - errorMessage = "Missing AirspyActions in query"; - return 400; - } -} - void AirspyInput::webapiFormatDeviceSettings(SWGSDRangel::SWGDeviceSettings& response, const AirspySettings& settings) { response.getAirspySettings()->setCenterFrequency(settings.m_centerFrequency); @@ -842,12 +777,6 @@ void AirspyInput::webapiFormatDeviceSettings(SWGSDRangel::SWGDeviceSettings& res response.getAirspySettings()->setTransverterDeltaFrequency(settings.m_transverterDeltaFrequency); response.getAirspySettings()->setTransverterMode(settings.m_transverterMode ? 1 : 0); - if (response.getAirspySettings()->getFileRecordName()) { - *response.getAirspySettings()->getFileRecordName() = settings.m_fileRecordName; - } else { - response.getAirspySettings()->setFileRecordName(new QString(settings.m_fileRecordName)); - } - response.getAirspySettings()->setUseReverseApi(settings.m_useReverseAPI ? 1 : 0); if (response.getAirspySettings()->getReverseApiAddress()) { @@ -930,9 +859,6 @@ void AirspyInput::webapiReverseSendSettings(QList& deviceSettingsKeys, if (deviceSettingsKeys.contains("transverterMode") || force) { swgAirspySettings->setTransverterMode(settings.m_transverterMode ? 1 : 0); } - if (deviceSettingsKeys.contains("fileRecordName") || force) { - swgAirspySettings->setFileRecordName(new QString(settings.m_fileRecordName)); - } QString deviceSettingsURL = QString("http://%1:%2/sdrangel/deviceset/%3/device/settings") .arg(settings.m_reverseAPIAddress) diff --git a/plugins/samplesource/airspy/airspyinput.h b/plugins/samplesource/airspy/airspyinput.h index 300ab06e3..1a3d8422c 100644 --- a/plugins/samplesource/airspy/airspyinput.h +++ b/plugins/samplesource/airspy/airspyinput.h @@ -31,7 +31,6 @@ class QNetworkAccessManager; class QNetworkReply; class DeviceAPI; class AirspyWorker; -class FileRecord; class AirspyInput : public DeviceSampleSource { Q_OBJECT @@ -59,25 +58,6 @@ public: { } }; - class MsgFileRecord : public Message { - MESSAGE_CLASS_DECLARATION - - public: - bool getStartStop() const { return m_startStop; } - - static MsgFileRecord* create(bool startStop) { - return new MsgFileRecord(startStop); - } - - protected: - bool m_startStop; - - MsgFileRecord(bool startStop) : - Message(), - m_startStop(startStop) - { } - }; - class MsgStartStop : public Message { MESSAGE_CLASS_DECLARATION @@ -141,11 +121,6 @@ public: SWGSDRangel::SWGDeviceReport& response, QString& errorMessage); - virtual int webapiActionsPost( - const QStringList& deviceActionsKeys, - SWGSDRangel::SWGDeviceActions& actions, - QString& errorMessage); - static void webapiFormatDeviceSettings( SWGSDRangel::SWGDeviceSettings& response, const AirspySettings& settings); @@ -168,7 +143,6 @@ private: QString m_deviceDescription; std::vector m_sampleRates; bool m_running; - FileRecord *m_fileSink; //!< File sink to record device I/Q output QNetworkAccessManager *m_networkManager; QNetworkRequest m_networkRequest; diff --git a/plugins/samplesource/airspy/airspyplugin.cpp b/plugins/samplesource/airspy/airspyplugin.cpp index 29920ae25..8fbfe51a8 100644 --- a/plugins/samplesource/airspy/airspyplugin.cpp +++ b/plugins/samplesource/airspy/airspyplugin.cpp @@ -34,7 +34,7 @@ const int AirspyPlugin::m_maxDevices = 32; const PluginDescriptor AirspyPlugin::m_pluginDescriptor = { QString("Airspy"), QString("Airspy Input"), - QString("4.14.16"), + QString("4.15.0"), QString("(c) Edouard Griffiths, F4EXB"), QString("https://github.com/f4exb/sdrangel"), true, diff --git a/plugins/samplesource/airspy/airspysettings.cpp b/plugins/samplesource/airspy/airspysettings.cpp index 9669114f1..5be260a5a 100644 --- a/plugins/samplesource/airspy/airspysettings.cpp +++ b/plugins/samplesource/airspy/airspysettings.cpp @@ -42,7 +42,6 @@ void AirspySettings::resetToDefaults() m_transverterMode = false; m_transverterDeltaFrequency = 0; m_iqOrder = true; - m_fileRecordName = ""; m_useReverseAPI = false; m_reverseAPIAddress = "127.0.0.1"; m_reverseAPIPort = 8888; diff --git a/plugins/samplesource/airspy/airspysettings.h b/plugins/samplesource/airspy/airspysettings.h index 89c9cd68e..5b2850fcd 100644 --- a/plugins/samplesource/airspy/airspysettings.h +++ b/plugins/samplesource/airspy/airspysettings.h @@ -43,7 +43,6 @@ struct AirspySettings { bool m_transverterMode; qint64 m_transverterDeltaFrequency; bool m_iqOrder; - QString m_fileRecordName; bool m_useReverseAPI; QString m_reverseAPIAddress; uint16_t m_reverseAPIPort; diff --git a/plugins/samplesource/airspyhf/airspyhfgui.cpp b/plugins/samplesource/airspyhf/airspyhfgui.cpp index fb2e8aaf2..3347cbffe 100644 --- a/plugins/samplesource/airspyhf/airspyhfgui.cpp +++ b/plugins/samplesource/airspyhf/airspyhfgui.cpp @@ -23,7 +23,6 @@ #include #include "device/deviceuiset.h" -#include #include "ui_airspyhfgui.h" #include "gui/colormapper.h" @@ -57,9 +56,6 @@ AirspyHFGui::AirspyHFGui(DeviceUISet *deviceUISet, QWidget* parent) : CRightClickEnabler *startStopRightClickEnabler = new CRightClickEnabler(ui->startStop); connect(startStopRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openDeviceSettingsDialog(const QPoint &))); - CRightClickEnabler *fileRecordRightClickEnabler = new CRightClickEnabler(ui->record); - connect(fileRecordRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openFileRecordDialog(const QPoint &))); - displaySettings(); m_rates = ((AirspyHFInput*) m_sampleSource)->getSampleRates(); @@ -147,23 +143,6 @@ bool AirspyHFGui::handleMessage(const Message& message) return true; } - else if (AirspyHFInput::MsgFileRecord::match(message)) // API action "record" feedback - { - const AirspyHFInput::MsgFileRecord& notif = (const AirspyHFInput::MsgFileRecord&) message; - bool record = notif.getStartStop(); - - ui->record->blockSignals(true); - ui->record->setChecked(record); - - if (record) { - ui->record->setStyleSheet("QToolButton { background-color : red; }"); - } else { - ui->record->setStyleSheet("QToolButton { background:rgb(79,79,79); }"); - } - - ui->record->blockSignals(false); - return true; - } else { return false; @@ -350,18 +329,6 @@ void AirspyHFGui::on_startStop_toggled(bool checked) } } -void AirspyHFGui::on_record_toggled(bool checked) -{ - if (checked) { - ui->record->setStyleSheet("QToolButton { background-color : red; }"); - } else { - ui->record->setStyleSheet("QToolButton { background:rgb(79,79,79); }"); - } - - AirspyHFInput::MsgFileRecord* message = AirspyHFInput::MsgFileRecord::create(checked); - m_sampleSource->getInputMessageQueue()->push(message); -} - void AirspyHFGui::on_transverter_clicked() { m_settings.m_transverterMode = ui->transverter->getDeltaFrequencyAcive(); @@ -521,29 +488,3 @@ void AirspyHFGui::openDeviceSettingsDialog(const QPoint& p) sendSettings(); } - -void AirspyHFGui::openFileRecordDialog(const QPoint& p) -{ - QFileDialog fileDialog( - this, - tr("Save I/Q record file"), - m_settings.m_fileRecordName, - tr("SDR I/Q Files (*.sdriq)") - ); - - fileDialog.setOptions(QFileDialog::DontUseNativeDialog); - fileDialog.setFileMode(QFileDialog::AnyFile); - fileDialog.move(p); - QStringList fileNames; - - if (fileDialog.exec()) - { - fileNames = fileDialog.selectedFiles(); - - if (fileNames.size() > 0) - { - m_settings.m_fileRecordName = fileNames.at(0); - sendSettings(); - } - } -} diff --git a/plugins/samplesource/airspyhf/airspyhfgui.h b/plugins/samplesource/airspyhf/airspyhfgui.h index 1c43155e9..52254a252 100644 --- a/plugins/samplesource/airspyhf/airspyhfgui.h +++ b/plugins/samplesource/airspyhf/airspyhfgui.h @@ -87,7 +87,6 @@ private slots: void on_sampleRate_currentIndexChanged(int index); void on_decim_currentIndexChanged(int index); void on_startStop_toggled(bool checked); - void on_record_toggled(bool checked); void on_transverter_clicked(); void on_band_currentIndexChanged(int index); void on_dsp_toggled(bool checked); @@ -98,7 +97,6 @@ private slots: void updateStatus(); void handleInputMessages(); void openDeviceSettingsDialog(const QPoint& p); - void openFileRecordDialog(const QPoint& p); }; #endif // INCLUDE_AIRSPYHFGUI_H diff --git a/plugins/samplesource/airspyhf/airspyhfgui.ui b/plugins/samplesource/airspyhf/airspyhfgui.ui index 9dfe36a89..1d0e2455a 100644 --- a/plugins/samplesource/airspyhf/airspyhfgui.ui +++ b/plugins/samplesource/airspyhf/airspyhfgui.ui @@ -71,20 +71,6 @@ - - - - Left: toggle record I/Q samples from device - Right: select output file - - - - - - - :/record_off.png:/record_off.png - - - diff --git a/plugins/samplesource/airspyhf/airspyhfinput.cpp b/plugins/samplesource/airspyhf/airspyhfinput.cpp index 6b9679e3f..b7195953e 100644 --- a/plugins/samplesource/airspyhf/airspyhfinput.cpp +++ b/plugins/samplesource/airspyhf/airspyhfinput.cpp @@ -25,12 +25,9 @@ #include "SWGDeviceSettings.h" #include "SWGDeviceState.h" #include "SWGDeviceReport.h" -#include "SWGDeviceActions.h" #include "SWGAirspyHFReport.h" -#include "SWGAirspyHFActions.h" #include "device/deviceapi.h" -#include "dsp/filerecord.h" #include "dsp/dspcommands.h" #include "dsp/dspengine.h" @@ -42,7 +39,6 @@ MESSAGE_CLASS_DEFINITION(AirspyHFInput::MsgConfigureAirspyHF, Message) MESSAGE_CLASS_DEFINITION(AirspyHFInput::MsgStartStop, Message) -MESSAGE_CLASS_DEFINITION(AirspyHFInput::MsgFileRecord, Message) const qint64 AirspyHFInput::loLowLimitFreqHF = 9000L; const qint64 AirspyHFInput::loHighLimitFreqHF = 31000000L; @@ -58,9 +54,7 @@ AirspyHFInput::AirspyHFInput(DeviceAPI *deviceAPI) : m_running(false) { openDevice(); - m_fileSink = new FileRecord(QString("test_%1.sdriq").arg(m_deviceAPI->getDeviceUID())); m_deviceAPI->setNbSourceStreams(1); - m_deviceAPI->addAncillarySink(m_fileSink); m_networkManager = new QNetworkAccessManager(); connect(m_networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkManagerFinished(QNetworkReply*))); } @@ -74,8 +68,6 @@ AirspyHFInput::~AirspyHFInput() stop(); } - m_deviceAPI->removeAncillarySink(m_fileSink); - delete m_fileSink; closeDevice(); } @@ -358,28 +350,6 @@ bool AirspyHFInput::handleMessage(const Message& message) return true; } - else if (MsgFileRecord::match(message)) - { - MsgFileRecord& conf = (MsgFileRecord&) message; - qDebug() << "AirspyHFInput::handleMessage: MsgFileRecord: " << conf.getStartStop(); - - if (conf.getStartStop()) - { - if (m_settings.m_fileRecordName.size() != 0) { - m_fileSink->setFileName(m_settings.m_fileRecordName); - } else { - m_fileSink->genUniqueFileName(m_deviceAPI->getDeviceUID()); - } - - m_fileSink->startRecording(); - } - else - { - m_fileSink->stopRecording(); - } - - return true; - } else { return false; @@ -418,7 +388,6 @@ bool AirspyHFInput::applySettings(const AirspyHFSettings& settings, bool force) << " m_bandIndex: " << settings.m_bandIndex << " m_transverterDeltaFrequency: " << settings.m_transverterDeltaFrequency << " m_transverterMode: " << settings.m_transverterMode - << " m_fileRecordName: " << settings.m_fileRecordName << " m_useDSP: " << settings.m_useDSP << " m_useAGC: " << settings.m_useAGC << " m_agcHigh: " << settings.m_agcHigh @@ -639,7 +608,6 @@ bool AirspyHFInput::applySettings(const AirspyHFSettings& settings, bool force) { int sampleRate = m_sampleRates[sampleRateIndex]/(1<handleMessage(*notif); // forward to file sink m_deviceAPI->getDeviceEngineInputMessageQueue()->push(notif); } @@ -744,9 +712,6 @@ void AirspyHFInput::webapiUpdateDeviceSettings( if (deviceSettingsKeys.contains("bandIndex")) { settings.m_bandIndex = response.getAirspyHfSettings()->getBandIndex(); } - if (deviceSettingsKeys.contains("fileRecordName")) { - settings.m_fileRecordName = *response.getAirspyHfSettings()->getFileRecordName(); - } if (deviceSettingsKeys.contains("useReverseAPI")) { settings.m_useReverseAPI = response.getAirspyHfSettings()->getUseReverseApi() != 0; } @@ -793,12 +758,6 @@ void AirspyHFInput::webapiFormatDeviceSettings(SWGSDRangel::SWGDeviceSettings& r response.getAirspyHfSettings()->setTransverterMode(settings.m_transverterMode ? 1 : 0); response.getAirspyHfSettings()->setBandIndex(settings.m_bandIndex ? 1 : 0); - if (response.getAirspyHfSettings()->getFileRecordName()) { - *response.getAirspyHfSettings()->getFileRecordName() = settings.m_fileRecordName; - } else { - response.getAirspyHfSettings()->setFileRecordName(new QString(settings.m_fileRecordName)); - } - response.getAirspyHfSettings()->setUseReverseApi(settings.m_useReverseAPI ? 1 : 0); if (response.getAirspyHfSettings()->getReverseApiAddress()) { @@ -840,37 +799,6 @@ int AirspyHFInput::webapiReportGet( return 200; } -int AirspyHFInput::webapiActionsPost( - const QStringList& deviceActionsKeys, - SWGSDRangel::SWGDeviceActions& query, - QString& errorMessage) -{ - SWGSDRangel::SWGAirspyHFActions *swgAirspyHFActions = query.getAirspyHfActions(); - - if (swgAirspyHFActions) - { - if (deviceActionsKeys.contains("record")) - { - bool record = swgAirspyHFActions->getRecord() != 0; - MsgFileRecord *msg = MsgFileRecord::create(record); - getInputMessageQueue()->push(msg); - - if (getMessageQueueToGUI()) - { - MsgFileRecord *msgToGUI = MsgFileRecord::create(record); - getMessageQueueToGUI()->push(msgToGUI); - } - } - - return 202; - } - else - { - errorMessage = "Missing AirspyHFActions in query"; - return 400; - } -} - int AirspyHFInput::webapiRunGet( SWGSDRangel::SWGDeviceState& response, QString& errorMessage) @@ -934,9 +862,6 @@ void AirspyHFInput::webapiReverseSendSettings(QList& deviceSettingsKeys if (deviceSettingsKeys.contains("bandIndex") || force) { swgAirspyHFSettings->setBandIndex(settings.m_bandIndex); } - if (deviceSettingsKeys.contains("fileRecordName") || force) { - swgAirspyHFSettings->setFileRecordName(new QString(settings.m_fileRecordName)); - } if (deviceSettingsKeys.contains("useAGC")) { swgAirspyHFSettings->setUseAgc(settings.m_useAGC ? 1 : 0); } diff --git a/plugins/samplesource/airspyhf/airspyhfinput.h b/plugins/samplesource/airspyhf/airspyhfinput.h index 0de51f54b..c43864938 100644 --- a/plugins/samplesource/airspyhf/airspyhfinput.h +++ b/plugins/samplesource/airspyhf/airspyhfinput.h @@ -32,7 +32,6 @@ class QNetworkAccessManager; class QNetworkReply; class DeviceAPI; class AirspyHFWorker; -class FileRecord; class AirspyHFInput : public DeviceSampleSource { Q_OBJECT @@ -60,25 +59,6 @@ public: { } }; - class MsgFileRecord : public Message { - MESSAGE_CLASS_DECLARATION - - public: - bool getStartStop() const { return m_startStop; } - - static MsgFileRecord* create(bool startStop) { - return new MsgFileRecord(startStop); - } - - protected: - bool m_startStop; - - MsgFileRecord(bool startStop) : - Message(), - m_startStop(startStop) - { } - }; - class MsgStartStop : public Message { MESSAGE_CLASS_DECLARATION @@ -133,11 +113,6 @@ public: SWGSDRangel::SWGDeviceReport& response, QString& errorMessage); - virtual int webapiActionsPost( - const QStringList& deviceActionsKeys, - SWGSDRangel::SWGDeviceActions& actions, - QString& errorMessage); - virtual int webapiRunGet( SWGSDRangel::SWGDeviceState& response, QString& errorMessage); @@ -171,7 +146,6 @@ private: QString m_deviceDescription; std::vector m_sampleRates; bool m_running; - FileRecord *m_fileSink; //!< File sink to record device I/Q output QNetworkAccessManager *m_networkManager; QNetworkRequest m_networkRequest; diff --git a/plugins/samplesource/airspyhf/airspyhfplugin.cpp b/plugins/samplesource/airspyhf/airspyhfplugin.cpp index f3f243c3a..4d01ba96e 100644 --- a/plugins/samplesource/airspyhf/airspyhfplugin.cpp +++ b/plugins/samplesource/airspyhf/airspyhfplugin.cpp @@ -32,7 +32,7 @@ const PluginDescriptor AirspyHFPlugin::m_pluginDescriptor = { QString("AirspyHF"), QString("AirspyHF Input"), - QString("4.14.16"), + QString("4.15.0"), QString("(c) Edouard Griffiths, F4EXB"), QString("https://github.com/f4exb/sdrangel"), true, diff --git a/plugins/samplesource/airspyhf/airspyhfsettings.cpp b/plugins/samplesource/airspyhf/airspyhfsettings.cpp index 33e8e7d69..4f7ae4b57 100644 --- a/plugins/samplesource/airspyhf/airspyhfsettings.cpp +++ b/plugins/samplesource/airspyhf/airspyhfsettings.cpp @@ -35,7 +35,6 @@ void AirspyHFSettings::resetToDefaults() m_transverterDeltaFrequency = 0; m_iqOrder = true; m_bandIndex = 0; - m_fileRecordName = ""; m_useReverseAPI = false; m_reverseAPIAddress = "127.0.0.1"; m_reverseAPIPort = 8888; diff --git a/plugins/samplesource/airspyhf/airspyhfsettings.h b/plugins/samplesource/airspyhf/airspyhfsettings.h index dd121cbf9..805a0a708 100644 --- a/plugins/samplesource/airspyhf/airspyhfsettings.h +++ b/plugins/samplesource/airspyhf/airspyhfsettings.h @@ -30,7 +30,6 @@ struct AirspyHFSettings qint64 m_transverterDeltaFrequency; bool m_iqOrder; quint32 m_bandIndex; - QString m_fileRecordName; bool m_useReverseAPI; QString m_reverseAPIAddress; uint16_t m_reverseAPIPort; diff --git a/plugins/samplesource/airspyhf/readme.md b/plugins/samplesource/airspyhf/readme.md index bcf7dbb4c..d43807468 100644 --- a/plugins/samplesource/airspyhf/readme.md +++ b/plugins/samplesource/airspyhf/readme.md @@ -34,11 +34,6 @@ Device start / stop button. - Green square icon: device is running and can be stopped - Magenta (or pink) square icon: an error occurred. In the case the device was accidentally disconnected you may click on the icon, plug back in and start again. -

1.3: Record

- - - Left click: record baseband I/Q stream toggle button - - Right click: choose record file -

1.4: Stream sample rate

Baseband I/Q sample rate in kS/s. This is the device to host sample rate (3) divided by the decimation factor (4). diff --git a/plugins/samplesource/bladerf1input/CMakeLists.txt b/plugins/samplesource/bladerf1input/CMakeLists.txt index dd1178b14..9666297d3 100644 --- a/plugins/samplesource/bladerf1input/CMakeLists.txt +++ b/plugins/samplesource/bladerf1input/CMakeLists.txt @@ -17,7 +17,7 @@ set(bladerf1input_HEADERS ) include_directories( - ${CMAKE_SOURCE_DIR}/swagger/sdrangel/code/qt5/client + ${CMAKE_SOURCE_DIR}/swagger/sdrangel/code/qt5/client ${CMAKE_SOURCE_DIR}/devices ${LIBBLADERF_INCLUDE_DIRS} ) @@ -26,7 +26,6 @@ if(NOT SERVER_MODE) set(bladerf1input_SOURCES ${bladerf1input_SOURCES} bladerf1inputgui.cpp - bladerf1inputgui.ui ) set(bladerf1input_HEADERS @@ -54,13 +53,13 @@ if(LIBBLADERF_EXTERNAL) endif() target_link_libraries(${TARGET_NAME} - Qt5::Core - ${TARGET_LIB} + Qt5::Core + ${TARGET_LIB} sdrbase ${TARGET_LIB_GUI} - swagger - ${LIBBLADERF_LIBRARIES} - bladerf1device + swagger + ${LIBBLADERF_LIBRARIES} + bladerf1device ) install(TARGETS ${TARGET_NAME} DESTINATION ${INSTALL_FOLDER}) diff --git a/plugins/samplesource/bladerf1input/bladerf1input.cpp b/plugins/samplesource/bladerf1input/bladerf1input.cpp index d510898ad..4e45f9f96 100644 --- a/plugins/samplesource/bladerf1input/bladerf1input.cpp +++ b/plugins/samplesource/bladerf1input/bladerf1input.cpp @@ -24,15 +24,12 @@ #include "SWGDeviceSettings.h" #include "SWGDeviceState.h" -#include "SWGDeviceActions.h" -#include "SWGBladeRF1InputActions.h" #include "util/simpleserializer.h" #include "dsp/dspcommands.h" #include "dsp/dspdevicesourceengine.h" #include "dsp/dspdevicesinkengine.h" #include "dsp/dspengine.h" -#include "dsp/filerecord.h" #include "device/deviceapi.h" #include "bladerf1input.h" @@ -40,7 +37,6 @@ MESSAGE_CLASS_DEFINITION(Bladerf1Input::MsgConfigureBladerf1, Message) MESSAGE_CLASS_DEFINITION(Bladerf1Input::MsgStartStop, Message) -MESSAGE_CLASS_DEFINITION(Bladerf1Input::MsgFileRecord, Message) Bladerf1Input::Bladerf1Input(DeviceAPI *deviceAPI) : m_deviceAPI(deviceAPI), @@ -51,10 +47,7 @@ Bladerf1Input::Bladerf1Input(DeviceAPI *deviceAPI) : m_running(false) { openDevice(); - m_fileSink = new FileRecord(QString("test_%1.sdriq").arg(m_deviceAPI->getDeviceUID())); m_deviceAPI->setNbSourceStreams(1); - m_deviceAPI->addAncillarySink(m_fileSink); - m_deviceAPI->setBuddySharedPtr(&m_sharedParams); m_networkManager = new QNetworkAccessManager(); @@ -70,8 +63,6 @@ Bladerf1Input::~Bladerf1Input() stop(); } - m_deviceAPI->removeAncillarySink(m_fileSink); - delete m_fileSink; closeDevice(); m_deviceAPI->setBuddySharedPtr(0); } @@ -289,28 +280,6 @@ bool Bladerf1Input::handleMessage(const Message& message) return true; } - else if (MsgFileRecord::match(message)) - { - MsgFileRecord& conf = (MsgFileRecord&) message; - qDebug() << "BladerfInput::handleMessage: MsgFileRecord: " << conf.getStartStop(); - - if (conf.getStartStop()) - { - if (m_settings.m_fileRecordName.size() != 0) { - m_fileSink->setFileName(m_settings.m_fileRecordName); - } else { - m_fileSink->genUniqueFileName(m_deviceAPI->getDeviceUID()); - } - - m_fileSink->startRecording(); - } - else - { - m_fileSink->stopRecording(); - } - - return true; - } else if (MsgStartStop::match(message)) { MsgStartStop& cmd = (MsgStartStop&) message; @@ -577,7 +546,6 @@ bool Bladerf1Input::applySettings(const BladeRF1InputSettings& settings, bool fo { int sampleRate = settings.m_devSampleRate/(1<handleMessage(*notif); // forward to file sink m_deviceAPI->getDeviceEngineInputMessageQueue()->push(notif); } @@ -655,12 +623,6 @@ void Bladerf1Input::webapiFormatDeviceSettings(SWGSDRangel::SWGDeviceSettings& r response.getBladeRf1InputSettings()->setDcBlock(settings.m_dcBlock ? 1 : 0); response.getBladeRf1InputSettings()->setIqCorrection(settings.m_iqCorrection ? 1 : 0); - if (response.getBladeRf1InputSettings()->getFileRecordName()) { - *response.getBladeRf1InputSettings()->getFileRecordName() = settings.m_fileRecordName; - } else { - response.getBladeRf1InputSettings()->setFileRecordName(new QString(settings.m_fileRecordName)); - } - response.getBladeRf1InputSettings()->setUseReverseApi(settings.m_useReverseAPI ? 1 : 0); if (response.getBladeRf1InputSettings()->getReverseApiAddress()) { @@ -743,9 +705,6 @@ void Bladerf1Input::webapiUpdateDeviceSettings( if (deviceSettingsKeys.contains("iqCorrection")) { settings.m_iqCorrection = response.getBladeRf1InputSettings()->getIqCorrection() != 0; } - if (deviceSettingsKeys.contains("fileRecordName")) { - settings.m_fileRecordName = *response.getBladeRf1InputSettings()->getFileRecordName(); - } if (deviceSettingsKeys.contains("useReverseAPI")) { settings.m_useReverseAPI = response.getBladeRf1InputSettings()->getUseReverseApi() != 0; } @@ -788,37 +747,6 @@ int Bladerf1Input::webapiRun( return 200; } -int Bladerf1Input::webapiActionsPost( - const QStringList& deviceActionsKeys, - SWGSDRangel::SWGDeviceActions& query, - QString& errorMessage) -{ - SWGSDRangel::SWGBladeRF1InputActions *swgBladeRF1InputActions = query.getBladeRf1InputActions(); - - if (swgBladeRF1InputActions) - { - if (deviceActionsKeys.contains("record")) - { - bool record = swgBladeRF1InputActions->getRecord() != 0; - MsgFileRecord *msg = MsgFileRecord::create(record); - getInputMessageQueue()->push(msg); - - if (getMessageQueueToGUI()) - { - MsgFileRecord *msgToGUI = MsgFileRecord::create(record); - getMessageQueueToGUI()->push(msgToGUI); - } - } - - return 202; - } - else - { - errorMessage = "Missing BladeRF1InputActions in query"; - return 400; - } -} - void Bladerf1Input::webapiReverseSendSettings(QList& deviceSettingsKeys, const BladeRF1InputSettings& settings, bool force) { SWGSDRangel::SWGDeviceSettings *swgDeviceSettings = new SWGSDRangel::SWGDeviceSettings(); @@ -872,9 +800,6 @@ void Bladerf1Input::webapiReverseSendSettings(QList& deviceSettingsKeys if (deviceSettingsKeys.contains("iqCorrection") || force) { swgBladeRF1Settings->setIqCorrection(settings.m_iqCorrection ? 1 : 0); } - if (deviceSettingsKeys.contains("fileRecordName") || force) { - swgBladeRF1Settings->setFileRecordName(new QString(settings.m_fileRecordName)); - } QString deviceSettingsURL = QString("http://%1:%2/sdrangel/deviceset/%3/device/settings") .arg(settings.m_reverseAPIAddress) diff --git a/plugins/samplesource/bladerf1input/bladerf1input.h b/plugins/samplesource/bladerf1input/bladerf1input.h index fc265d8d2..721201ba9 100644 --- a/plugins/samplesource/bladerf1input/bladerf1input.h +++ b/plugins/samplesource/bladerf1input/bladerf1input.h @@ -25,15 +25,14 @@ #include #include -#include "../../../devices/bladerf1/devicebladerf1.h" -#include "../../../devices/bladerf1/devicebladerf1param.h" +#include "bladerf1/devicebladerf1.h" +#include "bladerf1/devicebladerf1param.h" #include "bladerf1inputsettings.h" class QNetworkAccessManager; class QNetworkReply; class DeviceAPI; class Bladerf1InputThread; -class FileRecord; class Bladerf1Input : public DeviceSampleSource { Q_OBJECT @@ -61,25 +60,6 @@ public: { } }; - class MsgFileRecord : public Message { - MESSAGE_CLASS_DECLARATION - - public: - bool getStartStop() const { return m_startStop; } - - static MsgFileRecord* create(bool startStop) { - return new MsgFileRecord(startStop); - } - - protected: - bool m_startStop; - - MsgFileRecord(bool startStop) : - Message(), - m_startStop(startStop) - { } - }; - class MsgStartStop : public Message { MESSAGE_CLASS_DECLARATION @@ -138,11 +118,6 @@ public: SWGSDRangel::SWGDeviceState& response, QString& errorMessage); - virtual int webapiActionsPost( - const QStringList& deviceActionsKeys, - SWGSDRangel::SWGDeviceActions& actions, - QString& errorMessage); - static void webapiFormatDeviceSettings( SWGSDRangel::SWGDeviceSettings& response, const BladeRF1InputSettings& settings); @@ -161,7 +136,6 @@ private: QString m_deviceDescription; DeviceBladeRF1Params m_sharedParams; bool m_running; - FileRecord *m_fileSink; //!< File sink to record device I/Q output QNetworkAccessManager *m_networkManager; QNetworkRequest m_networkRequest; diff --git a/plugins/samplesource/bladerf1input/bladerf1inputgui.cpp b/plugins/samplesource/bladerf1input/bladerf1inputgui.cpp index b0297a5f6..fb1cdd654 100644 --- a/plugins/samplesource/bladerf1input/bladerf1inputgui.cpp +++ b/plugins/samplesource/bladerf1input/bladerf1inputgui.cpp @@ -68,9 +68,6 @@ Bladerf1InputGui::Bladerf1InputGui(DeviceUISet *deviceUISet, QWidget* parent) : CRightClickEnabler *startStopRightClickEnabler = new CRightClickEnabler(ui->startStop); connect(startStopRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openDeviceSettingsDialog(const QPoint &))); - CRightClickEnabler *fileRecordRightClickEnabler = new CRightClickEnabler(ui->record); - connect(fileRecordRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openFileRecordDialog(const QPoint &))); - displaySettings(); connect(&m_inputMessageQueue, SIGNAL(messageEnqueued()), this, SLOT(handleInputMessages()), Qt::QueuedConnection); @@ -156,23 +153,6 @@ bool Bladerf1InputGui::handleMessage(const Message& message) return true; } - else if (Bladerf1Input::MsgFileRecord::match(message)) // API action "record" feedback - { - const Bladerf1Input::MsgFileRecord& notif = (const Bladerf1Input::MsgFileRecord&) message; - bool record = notif.getStartStop(); - - ui->record->blockSignals(true); - ui->record->setChecked(record); - - if (record) { - ui->record->setStyleSheet("QToolButton { background-color : red; }"); - } else { - ui->record->setStyleSheet("QToolButton { background:rgb(79,79,79); }"); - } - - ui->record->blockSignals(false); - return true; - } else { return false; @@ -455,18 +435,6 @@ void Bladerf1InputGui::on_startStop_toggled(bool checked) } } -void Bladerf1InputGui::on_record_toggled(bool checked) -{ - if (checked) { - ui->record->setStyleSheet("QToolButton { background-color : red; }"); - } else { - ui->record->setStyleSheet("QToolButton { background:rgb(79,79,79); }"); - } - - Bladerf1Input::MsgFileRecord* message = Bladerf1Input::MsgFileRecord::create(checked); - m_sampleSource->getInputMessageQueue()->push(message); -} - void Bladerf1InputGui::on_sampleRateMode_toggled(bool checked) { m_sampleRateMode = checked; @@ -579,29 +547,3 @@ void Bladerf1InputGui::openDeviceSettingsDialog(const QPoint& p) sendSettings(); } - -void Bladerf1InputGui::openFileRecordDialog(const QPoint& p) -{ - QFileDialog fileDialog( - this, - tr("Save I/Q record file"), - m_settings.m_fileRecordName, - tr("SDR I/Q Files (*.sdriq)") - ); - - fileDialog.setOptions(QFileDialog::DontUseNativeDialog); - fileDialog.setFileMode(QFileDialog::AnyFile); - fileDialog.move(p); - QStringList fileNames; - - if (fileDialog.exec()) - { - fileNames = fileDialog.selectedFiles(); - - if (fileNames.size() > 0) - { - m_settings.m_fileRecordName = fileNames.at(0); - sendSettings(); - } - } -} diff --git a/plugins/samplesource/bladerf1input/bladerf1inputgui.h b/plugins/samplesource/bladerf1input/bladerf1inputgui.h index 0991fc480..01943cb81 100644 --- a/plugins/samplesource/bladerf1input/bladerf1inputgui.h +++ b/plugins/samplesource/bladerf1input/bladerf1inputgui.h @@ -90,12 +90,10 @@ private slots: void on_xb200_currentIndexChanged(int index); void on_fcPos_currentIndexChanged(int index); void on_startStop_toggled(bool checked); - void on_record_toggled(bool checked); void on_sampleRateMode_toggled(bool checked); void updateHardware(); void updateStatus(); void openDeviceSettingsDialog(const QPoint& p); - void openFileRecordDialog(const QPoint& p); }; #endif // INCLUDE_BLADERFINPUTGUI_H diff --git a/plugins/samplesource/bladerf1input/bladerf1inputgui.ui b/plugins/samplesource/bladerf1input/bladerf1inputgui.ui index cf3297437..c0321330a 100644 --- a/plugins/samplesource/bladerf1input/bladerf1inputgui.ui +++ b/plugins/samplesource/bladerf1input/bladerf1inputgui.ui @@ -71,21 +71,6 @@ - - - - Left: toggle record I/Q samples from device - Right: select output file - - - - - - - :/record_off.png - :/record_on.png:/record_off.png - - - diff --git a/plugins/samplesource/bladerf1input/bladerf1inputplugin.cpp b/plugins/samplesource/bladerf1input/bladerf1inputplugin.cpp index 35e6493c1..efe685e77 100644 --- a/plugins/samplesource/bladerf1input/bladerf1inputplugin.cpp +++ b/plugins/samplesource/bladerf1input/bladerf1inputplugin.cpp @@ -32,7 +32,7 @@ const PluginDescriptor Blderf1InputPlugin::m_pluginDescriptor = { QString("BladeRF1"), QString("BladeRF1 Input"), - QString("4.14.11"), + QString("4.15.0"), QString("(c) Edouard Griffiths, F4EXB"), QString("https://github.com/f4exb/sdrangel"), true, diff --git a/plugins/samplesource/bladerf1input/readme.md b/plugins/samplesource/bladerf1input/readme.md index ef791344e..1e3157fa0 100644 --- a/plugins/samplesource/bladerf1input/readme.md +++ b/plugins/samplesource/bladerf1input/readme.md @@ -37,11 +37,6 @@ Device start / stop button. - Green square icon: device is running and can be stopped - Magenta (or pink) square icon: an error occurred. In the case the device was accidentally disconnected you may click on the icon, plug back in and start again. -

1.3: Record

- - - Left click: record baseband I/Q stream toggle button - - Right click: choose record file -

1.4: Stream sample rate

In device to host sample rate input mode (4A) this is the baseband I/Q sample rate in kS/s. This is the device to host sample rate (4) divided by the decimation factor (5). diff --git a/plugins/samplesource/bladerf2input/bladerf2input.cpp b/plugins/samplesource/bladerf2input/bladerf2input.cpp index 6b8993e74..3087302e0 100644 --- a/plugins/samplesource/bladerf2input/bladerf2input.cpp +++ b/plugins/samplesource/bladerf2input/bladerf2input.cpp @@ -26,12 +26,9 @@ #include "SWGDeviceState.h" #include "SWGDeviceReport.h" #include "SWGBladeRF2InputReport.h" -#include "SWGDeviceActions.h" -#include "SWGBladeRF2InputActions.h" #include "device/deviceapi.h" #include "dsp/dspcommands.h" -#include "dsp/filerecord.h" #include "dsp/dspengine.h" #include "bladerf2/devicebladerf2shared.h" @@ -41,7 +38,6 @@ MESSAGE_CLASS_DEFINITION(BladeRF2Input::MsgConfigureBladeRF2, Message) -MESSAGE_CLASS_DEFINITION(BladeRF2Input::MsgFileRecord, Message) MESSAGE_CLASS_DEFINITION(BladeRF2Input::MsgStartStop, Message) MESSAGE_CLASS_DEFINITION(BladeRF2Input::MsgReportGainRange, Message) @@ -67,9 +63,7 @@ BladeRF2Input::BladeRF2Input(DeviceAPI *deviceAPI) : } } - m_fileSink = new FileRecord(QString("test_%1.sdriq").arg(m_deviceAPI->getDeviceUID())); m_deviceAPI->setNbSourceStreams(1); - m_deviceAPI->addAncillarySink(m_fileSink); m_networkManager = new QNetworkAccessManager(); connect(m_networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkManagerFinished(QNetworkReply*))); } @@ -83,8 +77,6 @@ BladeRF2Input::~BladeRF2Input() stop(); } - m_deviceAPI->removeAncillarySink(m_fileSink); - delete m_fileSink; closeDevice(); } @@ -701,7 +693,6 @@ bool BladeRF2Input::handleMessage(const Message& message) { int sampleRate = settings.m_devSampleRate/(1<handleMessage(*notif); // forward to file sink m_deviceAPI->getDeviceEngineInputMessageQueue()->push(notif); } @@ -717,28 +708,6 @@ bool BladeRF2Input::handleMessage(const Message& message) return true; } - else if (MsgFileRecord::match(message)) - { - MsgFileRecord& conf = (MsgFileRecord&) message; - qDebug() << "BladeRF2Input::handleMessage: MsgFileRecord: " << conf.getStartStop(); - - if (conf.getStartStop()) - { - if (m_settings.m_fileRecordName.size() != 0) { - m_fileSink->setFileName(m_settings.m_fileRecordName); - } else { - m_fileSink->genUniqueFileName(m_deviceAPI->getDeviceUID()); - } - - m_fileSink->startRecording(); - } - else - { - m_fileSink->stopRecording(); - } - - return true; - } else if (MsgStartStop::match(message)) { MsgStartStop& cmd = (MsgStartStop&) message; @@ -975,7 +944,6 @@ bool BladeRF2Input::applySettings(const BladeRF2InputSettings& settings, bool fo { int sampleRate = settings.m_devSampleRate/(1<handleMessage(*notif); // forward to file sink m_deviceAPI->getDeviceEngineInputMessageQueue()->push(notif); } @@ -1126,9 +1094,6 @@ void BladeRF2Input::webapiUpdateDeviceSettings( if (deviceSettingsKeys.contains("transverterMode")) { settings.m_transverterMode = response.getBladeRf2InputSettings()->getTransverterMode() != 0; } - if (deviceSettingsKeys.contains("fileRecordName")) { - settings.m_fileRecordName = *response.getBladeRf2InputSettings()->getFileRecordName(); - } if (deviceSettingsKeys.contains("useReverseAPI")) { settings.m_useReverseAPI = response.getBladeRf2InputSettings()->getUseReverseApi() != 0; } @@ -1169,12 +1134,6 @@ void BladeRF2Input::webapiFormatDeviceSettings(SWGSDRangel::SWGDeviceSettings& r response.getBladeRf2InputSettings()->setTransverterDeltaFrequency(settings.m_transverterDeltaFrequency); response.getBladeRf2InputSettings()->setTransverterMode(settings.m_transverterMode ? 1 : 0); - if (response.getBladeRf2InputSettings()->getFileRecordName()) { - *response.getBladeRf2InputSettings()->getFileRecordName() = settings.m_fileRecordName; - } else { - response.getBladeRf2InputSettings()->setFileRecordName(new QString(settings.m_fileRecordName)); - } - response.getBladeRf2InputSettings()->setUseReverseApi(settings.m_useReverseAPI ? 1 : 0); if (response.getBladeRf2InputSettings()->getReverseApiAddress()) { @@ -1266,37 +1225,6 @@ int BladeRF2Input::webapiRun( return 200; } -int BladeRF2Input::webapiActionsPost( - const QStringList& deviceActionsKeys, - SWGSDRangel::SWGDeviceActions& query, - QString& errorMessage) -{ - SWGSDRangel::SWGBladeRF2InputActions *swgBladeRF2InputActions = query.getBladeRf2InputActions(); - - if (swgBladeRF2InputActions) - { - if (deviceActionsKeys.contains("record")) - { - bool record = swgBladeRF2InputActions->getRecord() != 0; - MsgFileRecord *msg = MsgFileRecord::create(record); - getInputMessageQueue()->push(msg); - - if (getMessageQueueToGUI()) - { - MsgFileRecord *msgToGUI = MsgFileRecord::create(record); - getMessageQueueToGUI()->push(msgToGUI); - } - } - - return 202; - } - else - { - errorMessage = "Missing BladeRF2InputActions in query"; - return 400; - } -} - void BladeRF2Input::webapiReverseSendSettings(QList& deviceSettingsKeys, const BladeRF2InputSettings& settings, bool force) { SWGSDRangel::SWGDeviceSettings *swgDeviceSettings = new SWGSDRangel::SWGDeviceSettings(); @@ -1335,9 +1263,6 @@ void BladeRF2Input::webapiReverseSendSettings(QList& deviceSettingsKeys if (deviceSettingsKeys.contains("transverterMode") || force) { swgBladeRF2Settings->setTransverterMode(settings.m_transverterMode ? 1 : 0); } - if (deviceSettingsKeys.contains("fileRecordName") || force) { - swgBladeRF2Settings->setFileRecordName(new QString(settings.m_fileRecordName)); - } if (deviceSettingsKeys.contains("devSampleRate")) { swgBladeRF2Settings->setDevSampleRate(settings.m_devSampleRate); } diff --git a/plugins/samplesource/bladerf2input/bladerf2input.h b/plugins/samplesource/bladerf2input/bladerf2input.h index 6cc35df1b..134d31dc4 100644 --- a/plugins/samplesource/bladerf2input/bladerf2input.h +++ b/plugins/samplesource/bladerf2input/bladerf2input.h @@ -32,7 +32,6 @@ class QNetworkAccessManager; class QNetworkReply; class DeviceAPI; class BladeRF2InputThread; -class FileRecord; struct bladerf_gain_modes; struct bladerf; @@ -62,25 +61,6 @@ public: { } }; - class MsgFileRecord : public Message { - MESSAGE_CLASS_DECLARATION - - public: - bool getStartStop() const { return m_startStop; } - - static MsgFileRecord* create(bool startStop) { - return new MsgFileRecord(startStop); - } - - protected: - bool m_startStop; - - MsgFileRecord(bool startStop) : - Message(), - m_startStop(startStop) - { } - }; - class MsgStartStop : public Message { MESSAGE_CLASS_DECLARATION @@ -182,11 +162,6 @@ public: SWGSDRangel::SWGDeviceState& response, QString& errorMessage); - virtual int webapiActionsPost( - const QStringList& deviceActionsKeys, - SWGSDRangel::SWGDeviceActions& actions, - QString& errorMessage); - static void webapiFormatDeviceSettings( SWGSDRangel::SWGDeviceSettings& response, const BladeRF2InputSettings& settings); @@ -204,7 +179,6 @@ private: bool m_running; DeviceBladeRF2Shared m_deviceShared; BladeRF2InputThread *m_thread; - FileRecord *m_fileSink; //!< File sink to record device I/Q output std::vector m_gainModes; QNetworkAccessManager *m_networkManager; QNetworkRequest m_networkRequest; diff --git a/plugins/samplesource/bladerf2input/bladerf2inputgui.cpp b/plugins/samplesource/bladerf2input/bladerf2inputgui.cpp index b9c54385c..4fee9f6ae 100644 --- a/plugins/samplesource/bladerf2input/bladerf2inputgui.cpp +++ b/plugins/samplesource/bladerf2input/bladerf2inputgui.cpp @@ -89,9 +89,6 @@ BladeRF2InputGui::BladeRF2InputGui(DeviceUISet *deviceUISet, QWidget* parent) : CRightClickEnabler *startStopRightClickEnabler = new CRightClickEnabler(ui->startStop); connect(startStopRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openDeviceSettingsDialog(const QPoint &))); - CRightClickEnabler *fileRecordRightClickEnabler = new CRightClickEnabler(ui->record); - connect(fileRecordRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openFileRecordDialog(const QPoint &))); - displaySettings(); connect(&m_inputMessageQueue, SIGNAL(messageEnqueued()), this, SLOT(handleInputMessages()), Qt::QueuedConnection); @@ -220,23 +217,6 @@ bool BladeRF2InputGui::handleMessage(const Message& message) return true; } - else if (BladeRF2Input::MsgFileRecord::match(message)) // API action "record" feedback - { - const BladeRF2Input::MsgFileRecord& notif = (const BladeRF2Input::MsgFileRecord&) message; - bool record = notif.getStartStop(); - - ui->record->blockSignals(true); - ui->record->setChecked(record); - - if (record) { - ui->record->setStyleSheet("QToolButton { background-color : red; }"); - } else { - ui->record->setStyleSheet("QToolButton { background:rgb(79,79,79); }"); - } - - ui->record->blockSignals(false); - return true; - } else { return false; @@ -491,18 +471,6 @@ void BladeRF2InputGui::on_startStop_toggled(bool checked) } } -void BladeRF2InputGui::on_record_toggled(bool checked) -{ - if (checked) { - ui->record->setStyleSheet("QToolButton { background-color : red; }"); - } else { - ui->record->setStyleSheet("QToolButton { background:rgb(79,79,79); }"); - } - - BladeRF2Input::MsgFileRecord* message = BladeRF2Input::MsgFileRecord::create(checked); - m_sampleSource->getInputMessageQueue()->push(message); -} - void BladeRF2InputGui::on_sampleRateMode_toggled(bool checked) { m_sampleRateMode = checked; @@ -573,29 +541,3 @@ void BladeRF2InputGui::openDeviceSettingsDialog(const QPoint& p) sendSettings(); } - -void BladeRF2InputGui::openFileRecordDialog(const QPoint& p) -{ - QFileDialog fileDialog( - this, - tr("Save I/Q record file"), - m_settings.m_fileRecordName, - tr("SDR I/Q Files (*.sdriq)") - ); - - fileDialog.setOptions(QFileDialog::DontUseNativeDialog); - fileDialog.setFileMode(QFileDialog::AnyFile); - fileDialog.move(p); - QStringList fileNames; - - if (fileDialog.exec()) - { - fileNames = fileDialog.selectedFiles(); - - if (fileNames.size() > 0) - { - m_settings.m_fileRecordName = fileNames.at(0); - sendSettings(); - } - } -} diff --git a/plugins/samplesource/bladerf2input/bladerf2inputgui.h b/plugins/samplesource/bladerf2input/bladerf2inputgui.h index 4029c3595..9db17889e 100644 --- a/plugins/samplesource/bladerf2input/bladerf2inputgui.h +++ b/plugins/samplesource/bladerf2input/bladerf2inputgui.h @@ -92,12 +92,10 @@ private slots: void on_gain_valueChanged(int value); void on_transverter_clicked(); void on_startStop_toggled(bool checked); - void on_record_toggled(bool checked); void on_sampleRateMode_toggled(bool checked); void updateHardware(); void updateStatus(); void openDeviceSettingsDialog(const QPoint& p); - void openFileRecordDialog(const QPoint& p); }; #endif /* PLUGINS_SAMPLESOURCE_BLADERF2INPUT_BLADERF2INPUTGUI_H_ */ diff --git a/plugins/samplesource/bladerf2input/bladerf2inputgui.ui b/plugins/samplesource/bladerf2input/bladerf2inputgui.ui index 3769e0c2d..7ec663a32 100644 --- a/plugins/samplesource/bladerf2input/bladerf2inputgui.ui +++ b/plugins/samplesource/bladerf2input/bladerf2inputgui.ui @@ -71,21 +71,6 @@
- - - - Left: toggle record I/Q samples from device - Right: select output file - - - - - - - :/record_off.png - :/record_on.png:/record_off.png - - - diff --git a/plugins/samplesource/bladerf2input/bladerf2inputplugin.cpp b/plugins/samplesource/bladerf2input/bladerf2inputplugin.cpp index b793efdcb..94b035baf 100644 --- a/plugins/samplesource/bladerf2input/bladerf2inputplugin.cpp +++ b/plugins/samplesource/bladerf2input/bladerf2inputplugin.cpp @@ -32,7 +32,7 @@ const PluginDescriptor Blderf2InputPlugin::m_pluginDescriptor = { QString("BladeRF2"), QString("BladeRF2 Input"), - QString("4.14.11"), + QString("4.15.0"), QString("(c) Edouard Griffiths, F4EXB"), QString("https://github.com/f4exb/sdrangel"), true, diff --git a/plugins/samplesource/bladerf2input/bladerf2inputsettings.cpp b/plugins/samplesource/bladerf2input/bladerf2inputsettings.cpp index f0be32a49..17c975f62 100644 --- a/plugins/samplesource/bladerf2input/bladerf2inputsettings.cpp +++ b/plugins/samplesource/bladerf2input/bladerf2inputsettings.cpp @@ -40,7 +40,6 @@ void BladeRF2InputSettings::resetToDefaults() m_transverterMode = false; m_transverterDeltaFrequency = 0; m_iqOrder = true; - m_fileRecordName = ""; m_useReverseAPI = false; m_reverseAPIAddress = "127.0.0.1"; m_reverseAPIPort = 8888; diff --git a/plugins/samplesource/bladerf2input/bladerf2inputsettings.h b/plugins/samplesource/bladerf2input/bladerf2inputsettings.h index facb025e1..6fb1a2952 100644 --- a/plugins/samplesource/bladerf2input/bladerf2inputsettings.h +++ b/plugins/samplesource/bladerf2input/bladerf2inputsettings.h @@ -42,7 +42,6 @@ struct BladeRF2InputSettings { bool m_transverterMode; qint64 m_transverterDeltaFrequency; bool m_iqOrder; - QString m_fileRecordName; bool m_useReverseAPI; QString m_reverseAPIAddress; uint16_t m_reverseAPIPort; diff --git a/plugins/samplesource/bladerf2input/readme.md b/plugins/samplesource/bladerf2input/readme.md index 2318e6948..0c8374e2a 100644 --- a/plugins/samplesource/bladerf2input/readme.md +++ b/plugins/samplesource/bladerf2input/readme.md @@ -37,11 +37,6 @@ Device start / stop button. - Green square icon: device is running and can be stopped - Magenta (or pink) square icon: an error occurred. In the case the device was accidentally disconnected you may click on the icon, plug back in and start again. -

1.3: Record

- - - Left click: record baseband I/Q stream toggle button - - Right click: choose record file -

1.4: Stream sample rate

In device to host sample rate input mode (6A) this is the baseband I/Q sample rate in kS/s. This is the device to host sample rate (6) divided by the decimation factor (8). diff --git a/plugins/samplesource/fcdpro/fcdprogui.cpp b/plugins/samplesource/fcdpro/fcdprogui.cpp index 04e7c8155..b69dc5f99 100644 --- a/plugins/samplesource/fcdpro/fcdprogui.cpp +++ b/plugins/samplesource/fcdpro/fcdprogui.cpp @@ -150,9 +150,6 @@ FCDProGui::FCDProGui(DeviceUISet *deviceUISet, QWidget* parent) : CRightClickEnabler *startStopRightClickEnabler = new CRightClickEnabler(ui->startStop); connect(startStopRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openDeviceSettingsDialog(const QPoint &))); - CRightClickEnabler *fileRecordRightClickEnabler = new CRightClickEnabler(ui->record); - connect(fileRecordRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openFileRecordDialog(const QPoint &))); - displaySettings(); connect(&m_inputMessageQueue, SIGNAL(messageEnqueued()), this, SLOT(handleInputMessages()), Qt::QueuedConnection); @@ -239,23 +236,6 @@ bool FCDProGui::handleMessage(const Message& message) return true; } - else if (FCDProInput::MsgFileRecord::match(message)) // API action "record" feedback - { - const FCDProInput::MsgFileRecord& notif = (const FCDProInput::MsgFileRecord&) message; - bool record = notif.getStartStop(); - - ui->record->blockSignals(true); - ui->record->setChecked(record); - - if (record) { - ui->record->setStyleSheet("QToolButton { background-color : red; }"); - } else { - ui->record->setStyleSheet("QToolButton { background:rgb(79,79,79); }"); - } - - ui->record->blockSignals(false); - return true; - } else { return false; @@ -526,18 +506,6 @@ void FCDProGui::on_startStop_toggled(bool checked) } } -void FCDProGui::on_record_toggled(bool checked) -{ - if (checked) { - ui->record->setStyleSheet("QToolButton { background-color : red; }"); - } else { - ui->record->setStyleSheet("QToolButton { background:rgb(79,79,79); }"); - } - - FCDProInput::MsgFileRecord* message = FCDProInput::MsgFileRecord::create(checked); - m_sampleSource->getInputMessageQueue()->push(message); -} - void FCDProGui::on_transverter_clicked() { m_settings.m_transverterMode = ui->transverter->getDeltaFrequencyAcive(); @@ -604,29 +572,3 @@ void FCDProGui::openDeviceSettingsDialog(const QPoint& p) sendSettings(); } - -void FCDProGui::openFileRecordDialog(const QPoint& p) -{ - QFileDialog fileDialog( - this, - tr("Save I/Q record file"), - m_settings.m_fileRecordName, - tr("SDR I/Q Files (*.sdriq)") - ); - - fileDialog.setOptions(QFileDialog::DontUseNativeDialog); - fileDialog.setFileMode(QFileDialog::AnyFile); - fileDialog.move(p); - QStringList fileNames; - - if (fileDialog.exec()) - { - fileNames = fileDialog.selectedFiles(); - - if (fileNames.size() > 0) - { - m_settings.m_fileRecordName = fileNames.at(0); - sendSettings(); - } - } -} diff --git a/plugins/samplesource/fcdpro/fcdprogui.h b/plugins/samplesource/fcdpro/fcdprogui.h index 30fc0e388..14679be72 100644 --- a/plugins/samplesource/fcdpro/fcdprogui.h +++ b/plugins/samplesource/fcdpro/fcdprogui.h @@ -101,12 +101,10 @@ private slots: void on_fcPos_currentIndexChanged(int index); void on_setDefaults_clicked(bool checked); void on_startStop_toggled(bool checked); - void on_record_toggled(bool checked); void on_transverter_clicked(); void updateHardware(); void updateStatus(); void openDeviceSettingsDialog(const QPoint& p); - void openFileRecordDialog(const QPoint& p); }; #endif // INCLUDE_FCDPROGUI_H diff --git a/plugins/samplesource/fcdpro/fcdprogui.ui b/plugins/samplesource/fcdpro/fcdprogui.ui index e90985668..feae1eeb4 100644 --- a/plugins/samplesource/fcdpro/fcdprogui.ui +++ b/plugins/samplesource/fcdpro/fcdprogui.ui @@ -71,20 +71,6 @@
- - - - Left: toggle record I/Q samples from device - Right: select output file - - - - - - - :/record_off.png:/record_off.png - - - diff --git a/plugins/samplesource/fcdpro/fcdproinput.cpp b/plugins/samplesource/fcdpro/fcdproinput.cpp index 1b825f47b..bb9036701 100644 --- a/plugins/samplesource/fcdpro/fcdproinput.cpp +++ b/plugins/samplesource/fcdpro/fcdproinput.cpp @@ -24,12 +24,9 @@ #include "SWGDeviceSettings.h" #include "SWGDeviceState.h" -#include "SWGDeviceActions.h" -#include "SWGFCDProActions.h" #include "dsp/dspcommands.h" #include "dsp/dspengine.h" -#include "dsp/filerecord.h" #include "device/deviceapi.h" #include "fcdproinput.h" @@ -39,11 +36,10 @@ MESSAGE_CLASS_DEFINITION(FCDProInput::MsgConfigureFCDPro, Message) MESSAGE_CLASS_DEFINITION(FCDProInput::MsgStartStop, Message) -MESSAGE_CLASS_DEFINITION(FCDProInput::MsgFileRecord, Message) FCDProInput::FCDProInput(DeviceAPI *deviceAPI) : m_deviceAPI(deviceAPI), - m_dev(0), + m_dev(nullptr), m_settings(), m_FCDThread(nullptr), m_deviceDescription(fcd_traits::displayedName), @@ -51,9 +47,7 @@ FCDProInput::FCDProInput(DeviceAPI *deviceAPI) : { m_fcdFIFO.setSize(20*fcd_traits::convBufSize); openDevice(); - m_fileSink = new FileRecord(QString("test_%1.sdriq").arg(m_deviceAPI->getDeviceUID())); m_deviceAPI->setNbSourceStreams(1); - m_deviceAPI->addAncillarySink(m_fileSink); m_networkManager = new QNetworkAccessManager(); connect(m_networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkManagerFinished(QNetworkReply*))); } @@ -67,9 +61,6 @@ FCDProInput::~FCDProInput() stop(); } - m_deviceAPI->removeAncillarySink(m_fileSink); - delete m_fileSink; - closeDevice(); } @@ -297,28 +288,6 @@ bool FCDProInput::handleMessage(const Message& message) return true; } - else if (MsgFileRecord::match(message)) - { - MsgFileRecord& conf = (MsgFileRecord&) message; - qDebug() << "FCDProInput::handleMessage: MsgFileRecord: " << conf.getStartStop(); - - if (conf.getStartStop()) - { - if (m_settings.m_fileRecordName.size() != 0) { - m_fileSink->setFileName(m_settings.m_fileRecordName); - } else { - m_fileSink->genUniqueFileName(m_deviceAPI->getDeviceUID()); - } - - m_fileSink->startRecording(); - } - else - { - m_fileSink->stopRecording(); - } - - return true; - } else { return false; @@ -576,7 +545,6 @@ void FCDProInput::applySettings(const FCDProSettings& settings, bool force) if (forwardChange) { DSPSignalNotification *notif = new DSPSignalNotification(fcd_traits::sampleRate/(1<handleMessage(*notif); // forward to file sink m_deviceAPI->getDeviceEngineInputMessageQueue()->push(notif); } } @@ -870,37 +838,6 @@ int FCDProInput::webapiRun( return 200; } -int FCDProInput::webapiActionsPost( - const QStringList& deviceActionsKeys, - SWGSDRangel::SWGDeviceActions& query, - QString& errorMessage) -{ - SWGSDRangel::SWGFCDProActions *swgFCDProActions = query.getFcdProActions(); - - if (swgFCDProActions) - { - if (deviceActionsKeys.contains("record")) - { - bool record = swgFCDProActions->getRecord() != 0; - MsgFileRecord *msg = MsgFileRecord::create(record); - getInputMessageQueue()->push(msg); - - if (getMessageQueueToGUI()) - { - MsgFileRecord *msgToGUI = MsgFileRecord::create(record); - getMessageQueueToGUI()->push(msgToGUI); - } - } - - return 202; - } - else - { - errorMessage = "Missing AirspyActions in query"; - return 400; - } -} - int FCDProInput::webapiSettingsGet( SWGSDRangel::SWGDeviceSettings& response, QString& errorMessage) @@ -1015,9 +952,6 @@ void FCDProInput::webapiUpdateDeviceSettings( if (deviceSettingsKeys.contains("transverterMode")) { settings.m_transverterMode = response.getFcdProSettings()->getTransverterMode() != 0; } - if (deviceSettingsKeys.contains("fileRecordName")) { - settings.m_fileRecordName = *response.getFcdProSettings()->getFileRecordName(); - } if (deviceSettingsKeys.contains("useReverseAPI")) { settings.m_useReverseAPI = response.getFcdProSettings()->getUseReverseApi() != 0; } @@ -1060,12 +994,6 @@ void FCDProInput::webapiFormatDeviceSettings(SWGSDRangel::SWGDeviceSettings& res response.getFcdProSettings()->setTransverterDeltaFrequency(settings.m_transverterDeltaFrequency); response.getFcdProSettings()->setTransverterMode(settings.m_transverterMode ? 1 : 0); - if (response.getFcdProSettings()->getFileRecordName()) { - *response.getFcdProSettings()->getFileRecordName() = settings.m_fileRecordName; - } else { - response.getFcdProSettings()->setFileRecordName(new QString(settings.m_fileRecordName)); - } - response.getFcdProSettings()->setUseReverseApi(settings.m_useReverseAPI ? 1 : 0); if (response.getFcdProSettings()->getReverseApiAddress()) { @@ -1164,9 +1092,6 @@ void FCDProInput::webapiReverseSendSettings(QList& deviceSettingsKeys, if (deviceSettingsKeys.contains("transverterMode") || force) { swgFCDProSettings->setTransverterMode(settings.m_transverterMode ? 1 : 0); } - if (deviceSettingsKeys.contains("fileRecordName") || force) { - swgFCDProSettings->setFileRecordName(new QString(settings.m_fileRecordName)); - } QString deviceSettingsURL = QString("http://%1:%2/sdrangel/deviceset/%3/device/settings") .arg(settings.m_reverseAPIAddress) diff --git a/plugins/samplesource/fcdpro/fcdproinput.h b/plugins/samplesource/fcdpro/fcdproinput.h index 1a7f72543..7ca24c76f 100644 --- a/plugins/samplesource/fcdpro/fcdproinput.h +++ b/plugins/samplesource/fcdpro/fcdproinput.h @@ -40,7 +40,6 @@ class QNetworkAccessManager; class QNetworkReply; class DeviceAPI; class FCDProThread; -class FileRecord; class FCDProInput : public DeviceSampleSource { Q_OBJECT @@ -68,25 +67,6 @@ public: { } }; - class MsgFileRecord : public Message { - MESSAGE_CLASS_DECLARATION - - public: - bool getStartStop() const { return m_startStop; } - - static MsgFileRecord* create(bool startStop) { - return new MsgFileRecord(startStop); - } - - protected: - bool m_startStop; - - MsgFileRecord(bool startStop) : - Message(), - m_startStop(startStop) - { } - }; - class MsgStartStop : public Message { MESSAGE_CLASS_DECLARATION @@ -145,11 +125,6 @@ public: SWGSDRangel::SWGDeviceState& response, QString& errorMessage); - virtual int webapiActionsPost( - const QStringList& deviceActionsKeys, - SWGSDRangel::SWGDeviceActions& actions, - QString& errorMessage); - static void webapiFormatDeviceSettings( SWGSDRangel::SWGDeviceSettings& response, const FCDProSettings& settings); @@ -188,7 +163,6 @@ private: FCDProThread* m_FCDThread; QString m_deviceDescription; bool m_running; - FileRecord *m_fileSink; //!< File sink to record device I/Q output QNetworkAccessManager *m_networkManager; QNetworkRequest m_networkRequest; diff --git a/plugins/samplesource/fcdpro/fcdprosettings.cpp b/plugins/samplesource/fcdpro/fcdprosettings.cpp index 4340f554e..075419d6b 100644 --- a/plugins/samplesource/fcdpro/fcdprosettings.cpp +++ b/plugins/samplesource/fcdpro/fcdprosettings.cpp @@ -51,7 +51,6 @@ void FCDProSettings::resetToDefaults() m_transverterMode = false; m_transverterDeltaFrequency = 0; m_iqOrder = true; - m_fileRecordName = ""; m_useReverseAPI = false; m_reverseAPIAddress = "127.0.0.1"; m_reverseAPIPort = 8888; diff --git a/plugins/samplesource/fcdpro/fcdprosettings.h b/plugins/samplesource/fcdpro/fcdprosettings.h index 27a0151ba..03d126c7e 100644 --- a/plugins/samplesource/fcdpro/fcdprosettings.h +++ b/plugins/samplesource/fcdpro/fcdprosettings.h @@ -52,7 +52,6 @@ struct FCDProSettings { bool m_transverterMode; qint64 m_transverterDeltaFrequency; bool m_iqOrder; - QString m_fileRecordName; bool m_useReverseAPI; QString m_reverseAPIAddress; uint16_t m_reverseAPIPort; diff --git a/plugins/samplesource/fcdpro/readme.md b/plugins/samplesource/fcdpro/readme.md index 85e34071f..8d1f12e92 100644 --- a/plugins/samplesource/fcdpro/readme.md +++ b/plugins/samplesource/fcdpro/readme.md @@ -24,11 +24,6 @@ Device start / stop button. - Green square icon: device is running and can be stopped - Magenta (or pink) square icon: an error occurred. In the case the device was accidentally disconnected you may click on the icon, plug back in and start again. -

1.3: Record

- - - Left click: record baseband I/Q stream toggle button - - Right click: choose record file -

1.4: Stream sample rate

Baseband I/Q sample rate in kS/s. This is the device sample rate (4) divided by the decimation factor (6). diff --git a/plugins/samplesource/fcdproplus/fcdproplusgui.cpp b/plugins/samplesource/fcdproplus/fcdproplusgui.cpp index 16e1c4e67..5ccd431cd 100644 --- a/plugins/samplesource/fcdproplus/fcdproplusgui.cpp +++ b/plugins/samplesource/fcdproplus/fcdproplusgui.cpp @@ -68,9 +68,6 @@ FCDProPlusGui::FCDProPlusGui(DeviceUISet *deviceUISet, QWidget* parent) : CRightClickEnabler *startStopRightClickEnabler = new CRightClickEnabler(ui->startStop); connect(startStopRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openDeviceSettingsDialog(const QPoint &))); - CRightClickEnabler *fileRecordRightClickEnabler = new CRightClickEnabler(ui->record); - connect(fileRecordRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openFileRecordDialog(const QPoint &))); - displaySettings(); connect(&m_inputMessageQueue, SIGNAL(messageEnqueued()), this, SLOT(handleInputMessages()), Qt::QueuedConnection); @@ -157,23 +154,6 @@ bool FCDProPlusGui::handleMessage(const Message& message) return true; } - else if (FCDProPlusInput::MsgFileRecord::match(message)) // API action "record" feedback - { - const FCDProPlusInput::MsgFileRecord& notif = (const FCDProPlusInput::MsgFileRecord&) message; - bool record = notif.getStartStop(); - - ui->record->blockSignals(true); - ui->record->setChecked(record); - - if (record) { - ui->record->setStyleSheet("QToolButton { background-color : red; }"); - } else { - ui->record->setStyleSheet("QToolButton { background:rgb(79,79,79); }"); - } - - ui->record->blockSignals(false); - return true; - } else { return false; @@ -385,18 +365,6 @@ void FCDProPlusGui::on_startStop_toggled(bool checked) m_sampleSource->getInputMessageQueue()->push(message); } -void FCDProPlusGui::on_record_toggled(bool checked) -{ - if (checked) { - ui->record->setStyleSheet("QToolButton { background-color : red; }"); - } else { - ui->record->setStyleSheet("QToolButton { background:rgb(79,79,79); }"); - } - - FCDProPlusInput::MsgFileRecord* message = FCDProPlusInput::MsgFileRecord::create(checked); - m_sampleSource->getInputMessageQueue()->push(message); -} - void FCDProPlusGui::on_transverter_clicked() { m_settings.m_transverterMode = ui->transverter->getDeltaFrequencyAcive(); @@ -426,29 +394,3 @@ void FCDProPlusGui::openDeviceSettingsDialog(const QPoint& p) sendSettings(); } - -void FCDProPlusGui::openFileRecordDialog(const QPoint& p) -{ - QFileDialog fileDialog( - this, - tr("Save I/Q record file"), - m_settings.m_fileRecordName, - tr("SDR I/Q Files (*.sdriq)") - ); - - fileDialog.setOptions(QFileDialog::DontUseNativeDialog); - fileDialog.setFileMode(QFileDialog::AnyFile); - fileDialog.move(p); - QStringList fileNames; - - if (fileDialog.exec()) - { - fileNames = fileDialog.selectedFiles(); - - if (fileNames.size() > 0) - { - m_settings.m_fileRecordName = fileNames.at(0); - sendSettings(); - } - } -} diff --git a/plugins/samplesource/fcdproplus/fcdproplusgui.h b/plugins/samplesource/fcdproplus/fcdproplusgui.h index 205e319eb..8cb567f11 100644 --- a/plugins/samplesource/fcdproplus/fcdproplusgui.h +++ b/plugins/samplesource/fcdproplus/fcdproplusgui.h @@ -88,12 +88,10 @@ private slots: void on_filterIF_currentIndexChanged(int index); void on_ppm_valueChanged(int value); void on_startStop_toggled(bool checked); - void on_record_toggled(bool checked); void on_transverter_clicked(); void updateHardware(); void updateStatus(); void openDeviceSettingsDialog(const QPoint& p); - void openFileRecordDialog(const QPoint& p); }; #endif // INCLUDE_FCDGUI_H diff --git a/plugins/samplesource/fcdproplus/fcdproplusgui.ui b/plugins/samplesource/fcdproplus/fcdproplusgui.ui index 03ebfe821..8c414c5ed 100644 --- a/plugins/samplesource/fcdproplus/fcdproplusgui.ui +++ b/plugins/samplesource/fcdproplus/fcdproplusgui.ui @@ -71,20 +71,6 @@
- - - - Left: toggle record I/Q samples from device - Right: select output file - - - - - - - :/record_off.png:/record_off.png - - - diff --git a/plugins/samplesource/fcdproplus/fcdproplusinput.cpp b/plugins/samplesource/fcdproplus/fcdproplusinput.cpp index 569a9f244..3e5723725 100644 --- a/plugins/samplesource/fcdproplus/fcdproplusinput.cpp +++ b/plugins/samplesource/fcdproplus/fcdproplusinput.cpp @@ -24,12 +24,9 @@ #include "SWGDeviceSettings.h" #include "SWGDeviceState.h" -#include "SWGDeviceActions.h" -#include "SWGFCDProPlusActions.h" #include "dsp/dspcommands.h" #include "dsp/dspengine.h" -#include "dsp/filerecord.h" #include "device/deviceapi.h" #include "fcdproplusinput.h" @@ -39,11 +36,10 @@ MESSAGE_CLASS_DEFINITION(FCDProPlusInput::MsgConfigureFCDProPlus, Message) MESSAGE_CLASS_DEFINITION(FCDProPlusInput::MsgStartStop, Message) -MESSAGE_CLASS_DEFINITION(FCDProPlusInput::MsgFileRecord, Message) FCDProPlusInput::FCDProPlusInput(DeviceAPI *deviceAPI) : m_deviceAPI(deviceAPI), - m_dev(0), + m_dev(nullptr), m_settings(), m_FCDThread(nullptr), m_deviceDescription(fcd_traits::displayedName), @@ -51,9 +47,7 @@ FCDProPlusInput::FCDProPlusInput(DeviceAPI *deviceAPI) : { m_fcdFIFO.setSize(20*fcd_traits::convBufSize); openDevice(); - m_fileSink = new FileRecord(QString("test_%1.sdriq").arg(m_deviceAPI->getDeviceUID())); m_deviceAPI->setNbSourceStreams(1); - m_deviceAPI->addAncillarySink(m_fileSink); m_networkManager = new QNetworkAccessManager(); connect(m_networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkManagerFinished(QNetworkReply*))); } @@ -67,9 +61,6 @@ FCDProPlusInput::~FCDProPlusInput() stop(); } - m_deviceAPI->removeAncillarySink(m_fileSink); - delete m_fileSink; - closeDevice(); } @@ -299,28 +290,6 @@ bool FCDProPlusInput::handleMessage(const Message& message) return true; } - else if (MsgFileRecord::match(message)) - { - MsgFileRecord& conf = (MsgFileRecord&) message; - qDebug() << "FCDProPlusInput::handleMessage: MsgFileRecord: " << conf.getStartStop(); - - if (conf.getStartStop()) - { - if (m_settings.m_fileRecordName.size() != 0) { - m_fileSink->setFileName(m_settings.m_fileRecordName); - } else { - m_fileSink->genUniqueFileName(m_deviceAPI->getDeviceUID()); - } - - m_fileSink->startRecording(); - } - else - { - m_fileSink->stopRecording(); - } - - return true; - } else { return false; @@ -487,7 +456,6 @@ void FCDProPlusInput::applySettings(const FCDProPlusSettings& settings, bool for if (forwardChange) { DSPSignalNotification *notif = new DSPSignalNotification(fcd_traits::sampleRate/(1<handleMessage(*notif); // forward to file sink m_deviceAPI->getDeviceEngineInputMessageQueue()->push(notif); } } @@ -631,37 +599,6 @@ int FCDProPlusInput::webapiSettingsPutPatch( return 200; } -int FCDProPlusInput::webapiActionsPost( - const QStringList& deviceActionsKeys, - SWGSDRangel::SWGDeviceActions& query, - QString& errorMessage) -{ - SWGSDRangel::SWGFCDProPlusActions *swgFCDProPlusActions = query.getFcdProPlusActions(); - - if (swgFCDProPlusActions) - { - if (deviceActionsKeys.contains("record")) - { - bool record = swgFCDProPlusActions->getRecord() != 0; - MsgFileRecord *msg = MsgFileRecord::create(record); - getInputMessageQueue()->push(msg); - - if (getMessageQueueToGUI()) - { - MsgFileRecord *msgToGUI = MsgFileRecord::create(record); - getMessageQueueToGUI()->push(msgToGUI); - } - } - - return 202; - } - else - { - errorMessage = "Missing FCDProPlusActions in query"; - return 400; - } -} - void FCDProPlusInput::webapiUpdateDeviceSettings( FCDProPlusSettings& settings, const QStringList& deviceSettingsKeys, @@ -715,9 +652,6 @@ void FCDProPlusInput::webapiUpdateDeviceSettings( if (deviceSettingsKeys.contains("transverterMode")) { settings.m_transverterMode = response.getFcdProPlusSettings()->getTransverterMode() != 0; } - if (deviceSettingsKeys.contains("fileRecordName")) { - settings.m_fileRecordName = *response.getFcdProPlusSettings()->getFileRecordName(); - } if (deviceSettingsKeys.contains("useReverseAPI")) { settings.m_useReverseAPI = response.getFcdProPlusSettings()->getUseReverseApi() != 0; } @@ -751,12 +685,6 @@ void FCDProPlusInput::webapiFormatDeviceSettings(SWGSDRangel::SWGDeviceSettings& response.getFcdProPlusSettings()->setTransverterDeltaFrequency(settings.m_transverterDeltaFrequency); response.getFcdProPlusSettings()->setTransverterMode(settings.m_transverterMode ? 1 : 0); - if (response.getFcdProPlusSettings()->getFileRecordName()) { - *response.getFcdProPlusSettings()->getFileRecordName() = settings.m_fileRecordName; - } else { - response.getFcdProPlusSettings()->setFileRecordName(new QString(settings.m_fileRecordName)); - } - response.getFcdProPlusSettings()->setUseReverseApi(settings.m_useReverseAPI ? 1 : 0); if (response.getFcdProPlusSettings()->getReverseApiAddress()) { @@ -828,9 +756,6 @@ void FCDProPlusInput::webapiReverseSendSettings(QList& deviceSettingsKe if (deviceSettingsKeys.contains("transverterMode") || force) { swgFCDProPlusSettings->setTransverterMode(settings.m_transverterMode ? 1 : 0); } - if (deviceSettingsKeys.contains("fileRecordName") || force) { - swgFCDProPlusSettings->setFileRecordName(new QString(settings.m_fileRecordName)); - } QString deviceSettingsURL = QString("http://%1:%2/sdrangel/deviceset/%3/device/settings") .arg(settings.m_reverseAPIAddress) diff --git a/plugins/samplesource/fcdproplus/fcdproplusinput.h b/plugins/samplesource/fcdproplus/fcdproplusinput.h index 8ea4278a2..5132056a0 100644 --- a/plugins/samplesource/fcdproplus/fcdproplusinput.h +++ b/plugins/samplesource/fcdproplus/fcdproplusinput.h @@ -40,7 +40,6 @@ class QNetworkAccessManager; class QNetworkReply; class DeviceAPI; class FCDProPlusThread; -class FileRecord; class FCDProPlusInput : public DeviceSampleSource { Q_OBJECT @@ -87,25 +86,6 @@ public: { } }; - class MsgFileRecord : public Message { - MESSAGE_CLASS_DECLARATION - - public: - bool getStartStop() const { return m_startStop; } - - static MsgFileRecord* create(bool startStop) { - return new MsgFileRecord(startStop); - } - - protected: - bool m_startStop; - - MsgFileRecord(bool startStop) : - Message(), - m_startStop(startStop) - { } - }; - FCDProPlusInput(DeviceAPI *deviceAPI); virtual ~FCDProPlusInput(); virtual void destroy(); @@ -145,11 +125,6 @@ public: SWGSDRangel::SWGDeviceSettings& response, // query + response QString& errorMessage); - virtual int webapiActionsPost( - const QStringList& deviceActionsKeys, - SWGSDRangel::SWGDeviceActions& actions, - QString& errorMessage); - static void webapiFormatDeviceSettings( SWGSDRangel::SWGDeviceSettings& response, const FCDProPlusSettings& settings); @@ -177,7 +152,6 @@ private: FCDProPlusThread* m_FCDThread; QString m_deviceDescription; bool m_running; - FileRecord *m_fileSink; //!< File sink to record device I/Q output QNetworkAccessManager *m_networkManager; QNetworkRequest m_networkRequest; diff --git a/plugins/samplesource/fcdproplus/fcdproplussettings.cpp b/plugins/samplesource/fcdproplus/fcdproplussettings.cpp index c01a3c666..aaa302934 100644 --- a/plugins/samplesource/fcdproplus/fcdproplussettings.cpp +++ b/plugins/samplesource/fcdproplus/fcdproplussettings.cpp @@ -42,7 +42,6 @@ void FCDProPlusSettings::resetToDefaults() m_transverterMode = false; m_transverterDeltaFrequency = 0; m_iqOrder = true; - m_fileRecordName = ""; m_useReverseAPI = false; m_reverseAPIAddress = "127.0.0.1"; m_reverseAPIPort = 8888; diff --git a/plugins/samplesource/fcdproplus/fcdproplussettings.h b/plugins/samplesource/fcdproplus/fcdproplussettings.h index 99b9be155..ed5bf7401 100644 --- a/plugins/samplesource/fcdproplus/fcdproplussettings.h +++ b/plugins/samplesource/fcdproplus/fcdproplussettings.h @@ -43,7 +43,6 @@ struct FCDProPlusSettings { bool m_transverterMode; qint64 m_transverterDeltaFrequency; bool m_iqOrder; - QString m_fileRecordName; bool m_useReverseAPI; QString m_reverseAPIAddress; uint16_t m_reverseAPIPort; diff --git a/plugins/samplesource/fcdproplus/readme.md b/plugins/samplesource/fcdproplus/readme.md index 8df200837..3a775ada1 100644 --- a/plugins/samplesource/fcdproplus/readme.md +++ b/plugins/samplesource/fcdproplus/readme.md @@ -24,11 +24,6 @@ Device start / stop button. - Green square icon: device is running and can be stopped - Magenta (or pink) square icon: an error occurred. In the case the device was accidentally disconnected you may click on the icon, plug back in and start again. -

1.3: Record

- - - Left click: record baseband I/Q stream toggle button - - Right click: choose record file -

1.4: Stream sample rate

Baseband I/Q sample rate in kS/s. This is the device sample rate (4) divided by the decimation factor (6). diff --git a/plugins/samplesource/hackrfinput/hackrfinput.cpp b/plugins/samplesource/hackrfinput/hackrfinput.cpp index abbade940..a5d414529 100644 --- a/plugins/samplesource/hackrfinput/hackrfinput.cpp +++ b/plugins/samplesource/hackrfinput/hackrfinput.cpp @@ -24,13 +24,10 @@ #include "SWGDeviceSettings.h" #include "SWGDeviceState.h" -#include "SWGDeviceActions.h" -#include "SWGHackRFInputActions.h" #include "util/simpleserializer.h" #include "dsp/dspcommands.h" #include "dsp/dspengine.h" -#include "dsp/filerecord.h" #include "device/deviceapi.h" #include "hackrf/devicehackrfvalues.h" #include "hackrf/devicehackrfshared.h" @@ -40,7 +37,6 @@ MESSAGE_CLASS_DEFINITION(HackRFInput::MsgConfigureHackRF, Message) MESSAGE_CLASS_DEFINITION(HackRFInput::MsgReportHackRF, Message) -MESSAGE_CLASS_DEFINITION(HackRFInput::MsgFileRecord, Message) MESSAGE_CLASS_DEFINITION(HackRFInput::MsgStartStop, Message) HackRFInput::HackRFInput(DeviceAPI *deviceAPI) : @@ -53,10 +49,7 @@ HackRFInput::HackRFInput(DeviceAPI *deviceAPI) : { openDevice(); - m_fileSink = new FileRecord(QString("test_%1.sdriq").arg(m_deviceAPI->getDeviceUID())); m_deviceAPI->setNbSourceStreams(1); - m_deviceAPI->addAncillarySink(m_fileSink); - m_deviceAPI->setBuddySharedPtr(&m_sharedParams); m_networkManager = new QNetworkAccessManager(); @@ -72,8 +65,6 @@ HackRFInput::~HackRFInput() stop(); } - m_deviceAPI->removeAncillarySink(m_fileSink); - delete m_fileSink; closeDevice(); m_deviceAPI->setBuddySharedPtr(0); } @@ -269,28 +260,6 @@ bool HackRFInput::handleMessage(const Message& message) return true; } - else if (MsgFileRecord::match(message)) - { - MsgFileRecord& conf = (MsgFileRecord&) message; - qDebug() << "HackRFInput::handleMessage: MsgFileRecord: " << conf.getStartStop(); - - if (conf.getStartStop()) - { - if (m_settings.m_fileRecordName.size() != 0) { - m_fileSink->setFileName(m_settings.m_fileRecordName); - } else { - m_fileSink->genUniqueFileName(m_deviceAPI->getDeviceUID()); - } - - m_fileSink->startRecording(); - } - else - { - m_fileSink->stopRecording(); - } - - return true; - } else if (MsgStartStop::match(message)) { MsgStartStop& cmd = (MsgStartStop&) message; @@ -337,7 +306,6 @@ bool HackRFInput::handleMessage(const Message& message) m_settings.m_centerFrequency = settings.m_centerFrequency; int sampleRate = m_settings.m_devSampleRate/(1<handleMessage(*notif); // forward to file sink m_deviceAPI->getDeviceEngineInputMessageQueue()->push(notif); return true; @@ -571,7 +539,6 @@ bool HackRFInput::applySettings(const HackRFInputSettings& settings, bool force) { int sampleRate = settings.m_devSampleRate/(1<handleMessage(*notif); // forward to file sink m_deviceAPI->getDeviceEngineInputMessageQueue()->push(notif); } @@ -684,9 +651,6 @@ void HackRFInput::webapiUpdateDeviceSettings( if (deviceSettingsKeys.contains("iqCorrection")) { settings.m_iqCorrection = response.getHackRfInputSettings()->getIqCorrection() != 0; } - if (deviceSettingsKeys.contains("fileRecordName")) { - settings.m_fileRecordName = *response.getHackRfInputSettings()->getFileRecordName(); - } if (deviceSettingsKeys.contains("transverterDeltaFrequency")) { settings.m_transverterDeltaFrequency = response.getHackRfInputSettings()->getTransverterDeltaFrequency(); } @@ -725,12 +689,6 @@ void HackRFInput::webapiFormatDeviceSettings(SWGSDRangel::SWGDeviceSettings& res response.getHackRfInputSettings()->setTransverterDeltaFrequency(settings.m_transverterDeltaFrequency); response.getHackRfInputSettings()->setTransverterMode(settings.m_transverterMode ? 1 : 0); - if (response.getHackRfInputSettings()->getFileRecordName()) { - *response.getHackRfInputSettings()->getFileRecordName() = settings.m_fileRecordName; - } else { - response.getHackRfInputSettings()->setFileRecordName(new QString(settings.m_fileRecordName)); - } - response.getHackRfInputSettings()->setUseReverseApi(settings.m_useReverseAPI ? 1 : 0); if (response.getHackRfInputSettings()->getReverseApiAddress()) { @@ -771,37 +729,6 @@ int HackRFInput::webapiRun( return 200; } -int HackRFInput::webapiActionsPost( - const QStringList& deviceActionsKeys, - SWGSDRangel::SWGDeviceActions& query, - QString& errorMessage) -{ - SWGSDRangel::SWGHackRFInputActions *swgHackRFInputActions = query.getHackRfInputActions(); - - if (swgHackRFInputActions) - { - if (deviceActionsKeys.contains("record")) - { - bool record = swgHackRFInputActions->getRecord() != 0; - MsgFileRecord *msg = MsgFileRecord::create(record); - getInputMessageQueue()->push(msg); - - if (getMessageQueueToGUI()) - { - MsgFileRecord *msgToGUI = MsgFileRecord::create(record); - getMessageQueueToGUI()->push(msgToGUI); - } - } - - return 202; - } - else - { - errorMessage = "Missing HackRFInputActions in query"; - return 400; - } -} - void HackRFInput::webapiReverseSendSettings(QList& deviceSettingsKeys, const HackRFInputSettings& settings, bool force) { SWGSDRangel::SWGDeviceSettings *swgDeviceSettings = new SWGSDRangel::SWGDeviceSettings(); @@ -852,9 +779,6 @@ void HackRFInput::webapiReverseSendSettings(QList& deviceSettingsKeys, if (deviceSettingsKeys.contains("iqCorrection") || force) { swgHackRFInputSettings->setIqCorrection(settings.m_iqCorrection ? 1 : 0); } - if (deviceSettingsKeys.contains("fileRecordName") || force) { - swgHackRFInputSettings->setFileRecordName(new QString(settings.m_fileRecordName)); - } if (deviceSettingsKeys.contains("transverterDeltaFrequency") || force) { swgHackRFInputSettings->setTransverterDeltaFrequency(settings.m_transverterDeltaFrequency); } diff --git a/plugins/samplesource/hackrfinput/hackrfinput.h b/plugins/samplesource/hackrfinput/hackrfinput.h index 98f40f202..9598d0d5d 100644 --- a/plugins/samplesource/hackrfinput/hackrfinput.h +++ b/plugins/samplesource/hackrfinput/hackrfinput.h @@ -32,7 +32,6 @@ class QNetworkAccessManager; class QNetworkReply; class DeviceAPI; class HackRFInputThread; -class FileRecord; class HackRFInput : public DeviceSampleSource { Q_OBJECT @@ -97,25 +96,6 @@ public: { } }; - class MsgFileRecord : public Message { - MESSAGE_CLASS_DECLARATION - - public: - bool getStartStop() const { return m_startStop; } - - static MsgFileRecord* create(bool startStop) { - return new MsgFileRecord(startStop); - } - - protected: - bool m_startStop; - - MsgFileRecord(bool startStop) : - Message(), - m_startStop(startStop) - { } - }; - HackRFInput(DeviceAPI *deviceAPI); virtual ~HackRFInput(); virtual void destroy(); @@ -155,11 +135,6 @@ public: SWGSDRangel::SWGDeviceState& response, QString& errorMessage); - virtual int webapiActionsPost( - const QStringList& deviceActionsKeys, - SWGSDRangel::SWGDeviceActions& actions, - QString& errorMessage); - static void webapiFormatDeviceSettings( SWGSDRangel::SWGDeviceSettings& response, const HackRFInputSettings& settings); @@ -178,7 +153,6 @@ private: QString m_deviceDescription; DeviceHackRFParams m_sharedParams; bool m_running; - FileRecord *m_fileSink; //!< File sink to record device I/Q output QNetworkAccessManager *m_networkManager; QNetworkRequest m_networkRequest; diff --git a/plugins/samplesource/hackrfinput/hackrfinputgui.cpp b/plugins/samplesource/hackrfinput/hackrfinputgui.cpp index 504d737b5..dba92aeb6 100644 --- a/plugins/samplesource/hackrfinput/hackrfinputgui.cpp +++ b/plugins/samplesource/hackrfinput/hackrfinputgui.cpp @@ -62,9 +62,6 @@ HackRFInputGui::HackRFInputGui(DeviceUISet *deviceUISet, QWidget* parent) : CRightClickEnabler *startStopRightClickEnabler = new CRightClickEnabler(ui->startStop); connect(startStopRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openDeviceSettingsDialog(const QPoint &))); - CRightClickEnabler *fileRecordRightClickEnabler = new CRightClickEnabler(ui->record); - connect(fileRecordRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openFileRecordDialog(const QPoint &))); - displaySettings(); displayBandwidths(); @@ -159,23 +156,6 @@ bool HackRFInputGui::handleMessage(const Message& message) return true; } - else if (HackRFInput::MsgFileRecord::match(message)) // API action "record" feedback - { - const HackRFInput::MsgFileRecord& notif = (const HackRFInput::MsgFileRecord&) message; - bool record = notif.getStartStop(); - - ui->record->blockSignals(true); - ui->record->setChecked(record); - - if (record) { - ui->record->setStyleSheet("QToolButton { background-color : red; }"); - } else { - ui->record->setStyleSheet("QToolButton { background:rgb(79,79,79); }"); - } - - ui->record->blockSignals(false); - return true; - } else { return false; @@ -445,18 +425,6 @@ void HackRFInputGui::on_startStop_toggled(bool checked) } } -void HackRFInputGui::on_record_toggled(bool checked) -{ - if (checked) { - ui->record->setStyleSheet("QToolButton { background-color : red; }"); - } else { - ui->record->setStyleSheet("QToolButton { background:rgb(79,79,79); }"); - } - - HackRFInput::MsgFileRecord* message = HackRFInput::MsgFileRecord::create(checked); - m_sampleSource->getInputMessageQueue()->push(message); -} - void HackRFInputGui::on_sampleRateMode_toggled(bool checked) { m_sampleRateMode = checked; @@ -539,29 +507,3 @@ void HackRFInputGui::openDeviceSettingsDialog(const QPoint& p) sendSettings(); } - -void HackRFInputGui::openFileRecordDialog(const QPoint& p) -{ - QFileDialog fileDialog( - this, - tr("Save I/Q record file"), - m_settings.m_fileRecordName, - tr("SDR I/Q Files (*.sdriq)") - ); - - fileDialog.setOptions(QFileDialog::DontUseNativeDialog); - fileDialog.setFileMode(QFileDialog::AnyFile); - fileDialog.move(p); - QStringList fileNames; - - if (fileDialog.exec()) - { - fileNames = fileDialog.selectedFiles(); - - if (fileNames.size() > 0) - { - m_settings.m_fileRecordName = fileNames.at(0); - sendSettings(); - } - } -} diff --git a/plugins/samplesource/hackrfinput/hackrfinputgui.h b/plugins/samplesource/hackrfinput/hackrfinputgui.h index e929ee863..32f19cc9f 100644 --- a/plugins/samplesource/hackrfinput/hackrfinputgui.h +++ b/plugins/samplesource/hackrfinput/hackrfinputgui.h @@ -101,13 +101,11 @@ private slots: void on_bbFilter_currentIndexChanged(int index); void on_vga_valueChanged(int value); void on_startStop_toggled(bool checked); - void on_record_toggled(bool checked); void on_sampleRateMode_toggled(bool checked); void on_transverter_clicked(); void updateHardware(); void updateStatus(); void openDeviceSettingsDialog(const QPoint& p); - void openFileRecordDialog(const QPoint& p); }; #endif // INCLUDE_HACKRFINPUTGUI_H diff --git a/plugins/samplesource/hackrfinput/hackrfinputgui.ui b/plugins/samplesource/hackrfinput/hackrfinputgui.ui index 4f51b2144..109107500 100644 --- a/plugins/samplesource/hackrfinput/hackrfinputgui.ui +++ b/plugins/samplesource/hackrfinput/hackrfinputgui.ui @@ -77,20 +77,6 @@
- - - - Left: toggle record I/Q samples from device - Right: select output file - - - - - - - :/record_off.png:/record_off.png - - - diff --git a/plugins/samplesource/hackrfinput/hackrfinputplugin.cpp b/plugins/samplesource/hackrfinput/hackrfinputplugin.cpp index 36e727113..c8c2db1e1 100644 --- a/plugins/samplesource/hackrfinput/hackrfinputplugin.cpp +++ b/plugins/samplesource/hackrfinput/hackrfinputplugin.cpp @@ -33,7 +33,7 @@ const PluginDescriptor HackRFInputPlugin::m_pluginDescriptor = { QString("HackRF"), QString("HackRF Input"), - QString("4.14.11"), + QString("4.15.0"), QString("(c) Edouard Griffiths, F4EXB"), QString("https://github.com/f4exb/sdrangel"), true, diff --git a/plugins/samplesource/hackrfinput/hackrfinputsettings.cpp b/plugins/samplesource/hackrfinput/hackrfinputsettings.cpp index 986274306..e6d837589 100644 --- a/plugins/samplesource/hackrfinput/hackrfinputsettings.cpp +++ b/plugins/samplesource/hackrfinput/hackrfinputsettings.cpp @@ -40,7 +40,6 @@ void HackRFInputSettings::resetToDefaults() m_dcBlock = false; m_iqCorrection = false; m_devSampleRate = 2400000; - m_fileRecordName = ""; m_transverterMode = false; m_transverterDeltaFrequency = 0; m_iqOrder = true; diff --git a/plugins/samplesource/hackrfinput/hackrfinputsettings.h b/plugins/samplesource/hackrfinput/hackrfinputsettings.h index 2d8b9eab8..e9e095c43 100644 --- a/plugins/samplesource/hackrfinput/hackrfinputsettings.h +++ b/plugins/samplesource/hackrfinput/hackrfinputsettings.h @@ -40,7 +40,6 @@ struct HackRFInputSettings { bool m_lnaExt; bool m_dcBlock; bool m_iqCorrection; - QString m_fileRecordName; bool m_transverterMode; qint64 m_transverterDeltaFrequency; bool m_iqOrder; diff --git a/plugins/samplesource/hackrfinput/readme.md b/plugins/samplesource/hackrfinput/readme.md index 25a26671a..f21ed46b0 100644 --- a/plugins/samplesource/hackrfinput/readme.md +++ b/plugins/samplesource/hackrfinput/readme.md @@ -28,11 +28,6 @@ If you have the Tx open in another tab and it is running then it will be stopped The settings on Rx or Tx tab are reapplied on start so these settings can be considered independent. -

1.3: Record

- - - Left click: record baseband I/Q stream toggle button - - Right click: choose record file -

1.4: Stream sample rate

In device to host sample rate input mode (6A) this is the baseband I/Q sample rate in kS/s. This is the device to host sample rate (6) divided by the decimation factor (7). diff --git a/plugins/samplesource/kiwisdr/kiwisdrgui.cpp b/plugins/samplesource/kiwisdr/kiwisdrgui.cpp index 2ec0f91e0..3b5cdfdad 100644 --- a/plugins/samplesource/kiwisdr/kiwisdrgui.cpp +++ b/plugins/samplesource/kiwisdr/kiwisdrgui.cpp @@ -79,9 +79,6 @@ KiwiSDRGui::KiwiSDRGui(DeviceUISet *deviceUISet, QWidget* parent) : connect(&m_inputMessageQueue, SIGNAL(messageEnqueued()), this, SLOT(handleInputMessages()), Qt::QueuedConnection); m_sampleSource->setMessageQueueToGUI(&m_inputMessageQueue); - CRightClickEnabler *fileRecordRightClickEnabler = new CRightClickEnabler(ui->record); - connect(fileRecordRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openFileRecordDialog(const QPoint &))); - CRightClickEnabler *startStopRightClickEnabler = new CRightClickEnabler(ui->startStop); connect(startStopRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openDeviceSettingsDialog(const QPoint &))); } @@ -175,18 +172,6 @@ void KiwiSDRGui::on_dcBlock_toggled(bool checked) sendSettings(); } -void KiwiSDRGui::on_record_toggled(bool checked) -{ - if (checked) { - ui->record->setStyleSheet("QToolButton { background-color : red; }"); - } else { - ui->record->setStyleSheet("QToolButton { background:rgb(79,79,79); }"); - } - - KiwiSDRInput::MsgFileRecord* message = KiwiSDRInput::MsgFileRecord::create(checked); - m_sampleSource->getInputMessageQueue()->push(message); -} - void KiwiSDRGui::on_agc_toggled(bool checked) { m_settings.m_useAGC = checked; @@ -291,23 +276,6 @@ bool KiwiSDRGui::handleMessage(const Message& message) m_statusColors[status] + "; border-radius: 7px; }"); return true; } - else if (KiwiSDRInput::MsgFileRecord::match(message)) // API action "record" feedback - { - const KiwiSDRInput::MsgFileRecord& notif = (const KiwiSDRInput::MsgFileRecord&) message; - bool record = notif.getStartStop(); - - ui->record->blockSignals(true); - ui->record->setChecked(record); - - if (record) { - ui->record->setStyleSheet("QToolButton { background-color : red; }"); - } else { - ui->record->setStyleSheet("QToolButton { background:rgb(79,79,79); }"); - } - - ui->record->blockSignals(false); - return true; - } else { return false; @@ -367,29 +335,3 @@ void KiwiSDRGui::openDeviceSettingsDialog(const QPoint& p) sendSettings(); } - -void KiwiSDRGui::openFileRecordDialog(const QPoint& p) -{ - QFileDialog fileDialog( - this, - tr("Save I/Q record file"), - m_settings.m_fileRecordName, - tr("SDR I/Q Files (*.sdriq)") - ); - - fileDialog.setOptions(QFileDialog::DontUseNativeDialog); - fileDialog.setFileMode(QFileDialog::AnyFile); - fileDialog.move(p); - QStringList fileNames; - - if (fileDialog.exec()) - { - fileNames = fileDialog.selectedFiles(); - - if (fileNames.size() > 0) - { - m_settings.m_fileRecordName = fileNames.at(0); - sendSettings(); - } - } -} diff --git a/plugins/samplesource/kiwisdr/kiwisdrgui.h b/plugins/samplesource/kiwisdr/kiwisdrgui.h index a94b5952b..c13a38f77 100644 --- a/plugins/samplesource/kiwisdr/kiwisdrgui.h +++ b/plugins/samplesource/kiwisdr/kiwisdrgui.h @@ -80,14 +80,12 @@ private slots: void handleInputMessages(); void on_startStop_toggled(bool checked); void on_centerFrequency_changed(quint64 value); - void on_record_toggled(bool checked); void on_gain_valueChanged(int value); void on_agc_toggled(bool checked); void on_serverAddress_returnPressed(); void on_serverAddressApplyButton_clicked(); void on_dcBlock_toggled(bool checked); void openDeviceSettingsDialog(const QPoint& p); - void openFileRecordDialog(const QPoint& p); void updateStatus(); void updateHardware(); }; diff --git a/plugins/samplesource/kiwisdr/kiwisdrgui.ui b/plugins/samplesource/kiwisdr/kiwisdrgui.ui index fbada70c2..bbf6bec05 100644 --- a/plugins/samplesource/kiwisdr/kiwisdrgui.ui +++ b/plugins/samplesource/kiwisdr/kiwisdrgui.ui @@ -74,20 +74,6 @@
- - - - Left: toggle record I/Q samples from device - Right: select output file - - - - - - - :/record_off.png:/record_off.png - - - diff --git a/plugins/samplesource/kiwisdr/kiwisdrinput.cpp b/plugins/samplesource/kiwisdr/kiwisdrinput.cpp index ac022f926..06d95cc36 100644 --- a/plugins/samplesource/kiwisdr/kiwisdrinput.cpp +++ b/plugins/samplesource/kiwisdr/kiwisdrinput.cpp @@ -27,19 +27,15 @@ #include "SWGDeviceSettings.h" #include "SWGDeviceState.h" #include "SWGDeviceReport.h" -#include "SWGDeviceActions.h" #include "SWGKiwiSDRReport.h" -#include "SWGKiwiSDRActions.h" #include "kiwisdrinput.h" #include "device/deviceapi.h" #include "kiwisdrworker.h" #include "dsp/dspcommands.h" #include "dsp/dspengine.h" -#include "dsp/filerecord.h" MESSAGE_CLASS_DEFINITION(KiwiSDRInput::MsgConfigureKiwiSDR, Message) -MESSAGE_CLASS_DEFINITION(KiwiSDRInput::MsgFileRecord, Message) MESSAGE_CLASS_DEFINITION(KiwiSDRInput::MsgStartStop, Message) MESSAGE_CLASS_DEFINITION(KiwiSDRInput::MsgSetStatus, Message) @@ -54,9 +50,7 @@ KiwiSDRInput::KiwiSDRInput(DeviceAPI *deviceAPI) : { m_kiwiSDRWorkerThread.start(); - m_fileSink = new FileRecord(); m_deviceAPI->setNbSourceStreams(1); - m_deviceAPI->addAncillarySink(m_fileSink); if (!m_sampleFifo.setSize(getSampleRate() * 2)) { qCritical("KiwiSDRInput::KiwiSDRInput: Could not allocate SampleFifo"); @@ -77,9 +71,6 @@ KiwiSDRInput::~KiwiSDRInput() m_kiwiSDRWorkerThread.quit(); m_kiwiSDRWorkerThread.wait(); - - m_deviceAPI->removeAncillarySink(m_fileSink); - delete m_fileSink; } void KiwiSDRInput::destroy() @@ -209,28 +200,6 @@ bool KiwiSDRInput::handleMessage(const Message& message) return true; } - else if (MsgFileRecord::match(message)) - { - MsgFileRecord& conf = (MsgFileRecord&) message; - qDebug() << "KiwiSDRInput::handleMessage: MsgFileRecord: " << conf.getStartStop(); - - if (conf.getStartStop()) - { - if (m_settings.m_fileRecordName.size() != 0) { - m_fileSink->setFileName(m_settings.m_fileRecordName); - } else { - m_fileSink->genUniqueFileName(m_deviceAPI->getDeviceUID()); - } - - m_fileSink->startRecording(); - } - else - { - m_fileSink->stopRecording(); - } - - return true; - } else if (MsgStartStop::match(message)) { MsgStartStop& cmd = (MsgStartStop&) message; @@ -276,7 +245,6 @@ bool KiwiSDRInput::applySettings(const KiwiSDRSettings& settings, bool force) << " m_centerFrequency: " << settings.m_centerFrequency << " m_gain: " << settings.m_gain << " m_useAGC: " << settings.m_useAGC - << " m_fileRecordName: " << settings.m_fileRecordName << " m_useAGC: " << settings.m_useAGC << " m_useReverseAPI: " << settings.m_useReverseAPI << " m_reverseAPIAddress: " << settings.m_reverseAPIAddress @@ -318,7 +286,6 @@ bool KiwiSDRInput::applySettings(const KiwiSDRSettings& settings, bool force) DSPSignalNotification *notif = new DSPSignalNotification( getSampleRate(), settings.m_centerFrequency); - m_fileSink->handleMessage(*notif); // forward to file sink m_deviceAPI->getDeviceEngineInputMessageQueue()->push(notif); } @@ -418,9 +385,6 @@ void KiwiSDRInput::webapiUpdateDeviceSettings( if (deviceSettingsKeys.contains("serverAddress")) { settings.m_serverAddress = *response.getKiwiSdrSettings()->getServerAddress(); } - if (deviceSettingsKeys.contains("fileRecordName")) { - settings.m_fileRecordName = *response.getKiwiSdrSettings()->getFileRecordName(); - } if (deviceSettingsKeys.contains("useReverseAPI")) { settings.m_useReverseAPI = response.getKiwiSdrSettings()->getUseReverseApi() != 0; } @@ -446,37 +410,6 @@ int KiwiSDRInput::webapiReportGet( return 200; } -int KiwiSDRInput::webapiActionsPost( - const QStringList& deviceActionsKeys, - SWGSDRangel::SWGDeviceActions& query, - QString& errorMessage) -{ - SWGSDRangel::SWGKiwiSDRActions *swgKiwiSDRActions = query.getKiwiSdrActions(); - - if (swgKiwiSDRActions) - { - if (deviceActionsKeys.contains("record")) - { - bool record = swgKiwiSDRActions->getRecord() != 0; - MsgFileRecord *msg = MsgFileRecord::create(record); - getInputMessageQueue()->push(msg); - - if (getMessageQueueToGUI()) - { - MsgFileRecord *msgToGUI = MsgFileRecord::create(record); - getMessageQueueToGUI()->push(msgToGUI); - } - } - - return 202; - } - else - { - errorMessage = "Missing KiwiSDRInputActions in query"; - return 400; - } -} - void KiwiSDRInput::webapiFormatDeviceSettings(SWGSDRangel::SWGDeviceSettings& response, const KiwiSDRSettings& settings) { response.getKiwiSdrSettings()->setGain(settings.m_gain); @@ -490,12 +423,6 @@ void KiwiSDRInput::webapiFormatDeviceSettings(SWGSDRangel::SWGDeviceSettings& re response.getKiwiSdrSettings()->setServerAddress(new QString(settings.m_serverAddress)); } - if (response.getKiwiSdrSettings()->getFileRecordName()) { - *response.getKiwiSdrSettings()->getFileRecordName() = settings.m_fileRecordName; - } else { - response.getKiwiSdrSettings()->setFileRecordName(new QString(settings.m_fileRecordName)); - } - response.getKiwiSdrSettings()->setUseReverseApi(settings.m_useReverseAPI ? 1 : 0); if (response.getKiwiSdrSettings()->getReverseApiAddress()) { @@ -539,9 +466,6 @@ void KiwiSDRInput::webapiReverseSendSettings(QList& deviceSettingsKeys, if (deviceSettingsKeys.contains("serverAddress") || force) { swgKiwiSDRSettings->setServerAddress(new QString(settings.m_serverAddress)); } - if (deviceSettingsKeys.contains("fileRecordName") || force) { - swgKiwiSDRSettings->setFileRecordName(new QString(settings.m_fileRecordName)); - } QString deviceSettingsURL = QString("http://%1:%2/sdrangel/deviceset/%3/device/settings") .arg(settings.m_reverseAPIAddress) diff --git a/plugins/samplesource/kiwisdr/kiwisdrinput.h b/plugins/samplesource/kiwisdr/kiwisdrinput.h index cfdac2d34..94d324aa3 100644 --- a/plugins/samplesource/kiwisdr/kiwisdrinput.h +++ b/plugins/samplesource/kiwisdr/kiwisdrinput.h @@ -30,7 +30,6 @@ class DeviceAPI; class KiwiSDRWorker; -class FileRecord; class QNetworkAccessManager; class QNetworkReply; @@ -60,25 +59,6 @@ public: { } }; - class MsgFileRecord : public Message { - MESSAGE_CLASS_DECLARATION - - public: - bool getStartStop() const { return m_startStop; } - - static MsgFileRecord* create(bool startStop) { - return new MsgFileRecord(startStop); - } - - protected: - bool m_startStop; - - MsgFileRecord(bool startStop) : - Message(), - m_startStop(startStop) - { } - }; - class MsgStartStop : public Message { MESSAGE_CLASS_DECLARATION @@ -160,11 +140,6 @@ public: SWGSDRangel::SWGDeviceReport& response, QString& errorMessage); - virtual int webapiActionsPost( - const QStringList& deviceActionsKeys, - SWGSDRangel::SWGDeviceActions& actions, - QString& errorMessage); - static void webapiFormatDeviceSettings( SWGSDRangel::SWGDeviceSettings& response, const KiwiSDRSettings& settings); @@ -176,7 +151,6 @@ public: private: DeviceAPI *m_deviceAPI; - FileRecord *m_fileSink; //!< File sink to record device I/Q output QMutex m_mutex; KiwiSDRSettings m_settings; KiwiSDRWorker* m_kiwiSDRWorker; diff --git a/plugins/samplesource/kiwisdr/kiwisdrplugin.cpp b/plugins/samplesource/kiwisdr/kiwisdrplugin.cpp index cf3ae0fc6..947dc1e86 100644 --- a/plugins/samplesource/kiwisdr/kiwisdrplugin.cpp +++ b/plugins/samplesource/kiwisdr/kiwisdrplugin.cpp @@ -32,7 +32,7 @@ const PluginDescriptor KiwiSDRPlugin::m_pluginDescriptor = { QString("KiwiSDR"), QString("KiwiSDR input"), - QString("4.12.3"), + QString("4.15.0"), QString("(c) Vort (c) Edouard Griffiths, F4EXB"), QString("https://github.com/f4exb/sdrangel"), true, diff --git a/plugins/samplesource/kiwisdr/kiwisdrsettings.cpp b/plugins/samplesource/kiwisdr/kiwisdrsettings.cpp index c569ab64c..f894288c7 100644 --- a/plugins/samplesource/kiwisdr/kiwisdrsettings.cpp +++ b/plugins/samplesource/kiwisdr/kiwisdrsettings.cpp @@ -34,7 +34,6 @@ void KiwiSDRSettings::resetToDefaults() m_serverAddress = "127.0.0.1:8073"; - m_fileRecordName = ""; m_useReverseAPI = false; m_reverseAPIAddress = "127.0.0.1"; m_reverseAPIPort = 8888; diff --git a/plugins/samplesource/kiwisdr/kiwisdrsettings.h b/plugins/samplesource/kiwisdr/kiwisdrsettings.h index bbb329a2c..23b09f312 100644 --- a/plugins/samplesource/kiwisdr/kiwisdrsettings.h +++ b/plugins/samplesource/kiwisdr/kiwisdrsettings.h @@ -29,7 +29,6 @@ struct KiwiSDRSettings { quint64 m_centerFrequency; QString m_serverAddress; - QString m_fileRecordName; bool m_useReverseAPI; QString m_reverseAPIAddress; diff --git a/plugins/samplesource/kiwisdr/readme.md b/plugins/samplesource/kiwisdr/readme.md index 437e7fe3b..f9896ea3d 100644 --- a/plugins/samplesource/kiwisdr/readme.md +++ b/plugins/samplesource/kiwisdr/readme.md @@ -15,11 +15,6 @@ This button is used to start the "device" i.e connect to the remote and start st - Blue triangle icon: device is ready and can be started - Green square icon: device is running and can be stopped -

2: Record

- - - Left click: record baseband I/Q stream toggle button - - Right click: choose record file -

3: Frequency

This is the center frequency of reception in kHz. diff --git a/plugins/samplesource/limesdrinput/limesdrinput.cpp b/plugins/samplesource/limesdrinput/limesdrinput.cpp index 0c0e57339..e388a9336 100644 --- a/plugins/samplesource/limesdrinput/limesdrinput.cpp +++ b/plugins/samplesource/limesdrinput/limesdrinput.cpp @@ -29,13 +29,10 @@ #include "SWGLimeSdrInputSettings.h" #include "SWGDeviceState.h" #include "SWGDeviceReport.h" -#include "SWGDeviceActions.h" #include "SWGLimeSdrInputReport.h" -#include "SWGLimeSdrInputActions.h" #include "device/deviceapi.h" #include "dsp/dspcommands.h" -#include "dsp/filerecord.h" #include "dsp/dspengine.h" #include "limesdrinput.h" #include "limesdrinputthread.h" @@ -47,7 +44,6 @@ MESSAGE_CLASS_DEFINITION(LimeSDRInput::MsgConfigureLimeSDR, Message) MESSAGE_CLASS_DEFINITION(LimeSDRInput::MsgGetStreamInfo, Message) MESSAGE_CLASS_DEFINITION(LimeSDRInput::MsgGetDeviceInfo, Message) MESSAGE_CLASS_DEFINITION(LimeSDRInput::MsgReportStreamInfo, Message) -MESSAGE_CLASS_DEFINITION(LimeSDRInput::MsgFileRecord, Message) MESSAGE_CLASS_DEFINITION(LimeSDRInput::MsgStartStop, Message) LimeSDRInput::LimeSDRInput(DeviceAPI *deviceAPI) : @@ -65,9 +61,7 @@ LimeSDRInput::LimeSDRInput(DeviceAPI *deviceAPI) : resumeTxBuddies(); resumeRxBuddies(); - m_fileSink = new FileRecord(QString("test_%1.sdriq").arg(m_deviceAPI->getDeviceUID())); m_deviceAPI->setNbSourceStreams(1); - m_deviceAPI->addAncillarySink(m_fileSink); m_networkManager = new QNetworkAccessManager(); connect(m_networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkManagerFinished(QNetworkReply*))); @@ -82,8 +76,6 @@ LimeSDRInput::~LimeSDRInput() stop(); } - m_deviceAPI->removeAncillarySink(m_fileSink); - delete m_fileSink; suspendRxBuddies(); suspendTxBuddies(); closeDevice(); @@ -745,28 +737,6 @@ bool LimeSDRInput::handleMessage(const Message& message) return true; } - else if (MsgFileRecord::match(message)) - { - MsgFileRecord& conf = (MsgFileRecord&) message; - qDebug() << "LimeSDRInput::handleMessage: MsgFileRecord: " << conf.getStartStop(); - - if (conf.getStartStop()) - { - if (m_settings.m_fileRecordName.size() != 0) { - m_fileSink->setFileName(m_settings.m_fileRecordName); - } else { - m_fileSink->genUniqueFileName(m_deviceAPI->getDeviceUID()); - } - - m_fileSink->startRecording(); - } - else - { - m_fileSink->stopRecording(); - } - - return true; - } else if (MsgStartStop::match(message)) { MsgStartStop& cmd = (MsgStartStop&) message; @@ -1348,7 +1318,6 @@ bool LimeSDRInput::applySettings(const LimeSDRInputSettings& settings, bool forc int sampleRate = m_settings.m_devSampleRate/(1<handleMessage(*notif); // forward to file sink m_deviceAPI->getDeviceEngineInputMessageQueue()->push(notif); } @@ -1538,9 +1507,6 @@ void LimeSDRInput::webapiUpdateDeviceSettings( if (deviceSettingsKeys.contains("transverterMode")) { settings.m_transverterMode = response.getLimeSdrInputSettings()->getTransverterMode() != 0; } - if (deviceSettingsKeys.contains("fileRecordName")) { - settings.m_fileRecordName = *response.getLimeSdrInputSettings()->getFileRecordName(); - } if (deviceSettingsKeys.contains("gpioDir")) { settings.m_gpioDir = response.getLimeSdrInputSettings()->getGpioDir() & 0xFF; } @@ -1585,13 +1551,6 @@ void LimeSDRInput::webapiFormatDeviceSettings(SWGSDRangel::SWGDeviceSettings& re response.getLimeSdrInputSettings()->setTiaGain(settings.m_tiaGain); response.getLimeSdrInputSettings()->setTransverterDeltaFrequency(settings.m_transverterDeltaFrequency); response.getLimeSdrInputSettings()->setTransverterMode(settings.m_transverterMode ? 1 : 0); - - if (response.getLimeSdrInputSettings()->getFileRecordName()) { - *response.getLimeSdrInputSettings()->getFileRecordName() = settings.m_fileRecordName; - } else { - response.getLimeSdrInputSettings()->setFileRecordName(new QString(settings.m_fileRecordName)); - } - response.getLimeSdrInputSettings()->setGpioDir(settings.m_gpioDir); response.getLimeSdrInputSettings()->setGpioPins(settings.m_gpioPins); response.getLimeSdrInputSettings()->setUseReverseApi(settings.m_useReverseAPI ? 1 : 0); @@ -1645,37 +1604,6 @@ int LimeSDRInput::webapiRun( return 200; } -int LimeSDRInput::webapiActionsPost( - const QStringList& deviceActionsKeys, - SWGSDRangel::SWGDeviceActions& query, - QString& errorMessage) -{ - SWGSDRangel::SWGLimeSdrInputActions *swgLimeSdrInputActions = query.getLimeSdrInputActions(); - - if (swgLimeSdrInputActions) - { - if (deviceActionsKeys.contains("record")) - { - bool record = swgLimeSdrInputActions->getRecord() != 0; - MsgFileRecord *msg = MsgFileRecord::create(record); - getInputMessageQueue()->push(msg); - - if (getMessageQueueToGUI()) - { - MsgFileRecord *msgToGUI = MsgFileRecord::create(record); - getMessageQueueToGUI()->push(msgToGUI); - } - } - - return 202; - } - else - { - errorMessage = "Missing LimeSdrInputActions in query"; - return 400; - } -} - void LimeSDRInput::webapiFormatDeviceReport(SWGSDRangel::SWGDeviceReport& response) { bool success = false; @@ -1793,9 +1721,6 @@ void LimeSDRInput::webapiReverseSendSettings(QList& deviceSettingsKeys, if (deviceSettingsKeys.contains("transverterMode") || force) { swgLimeSdrInputSettings->setTransverterMode(settings.m_transverterMode ? 1 : 0); } - if (deviceSettingsKeys.contains("fileRecordName") || force) { - swgLimeSdrInputSettings->setFileRecordName(new QString(settings.m_fileRecordName)); - } if (deviceSettingsKeys.contains("gpioDir") || force) { swgLimeSdrInputSettings->setGpioDir(settings.m_gpioDir & 0xFF); } diff --git a/plugins/samplesource/limesdrinput/limesdrinput.h b/plugins/samplesource/limesdrinput/limesdrinput.h index f499c80bc..06643cb1d 100644 --- a/plugins/samplesource/limesdrinput/limesdrinput.h +++ b/plugins/samplesource/limesdrinput/limesdrinput.h @@ -30,7 +30,6 @@ class DeviceAPI; class LimeSDRInputThread; -class FileRecord; class QNetworkAccessManager; class QNetworkReply; @@ -166,25 +165,6 @@ public: { } }; - class MsgFileRecord : public Message { - MESSAGE_CLASS_DECLARATION - - public: - bool getStartStop() const { return m_startStop; } - - static MsgFileRecord* create(bool startStop) { - return new MsgFileRecord(startStop); - } - - protected: - bool m_startStop; - - MsgFileRecord(bool startStop) : - Message(), - m_startStop(startStop) - { } - }; - class MsgStartStop : public Message { MESSAGE_CLASS_DECLARATION @@ -247,11 +227,6 @@ public: SWGSDRangel::SWGDeviceState& response, QString& errorMessage); - virtual int webapiActionsPost( - const QStringList& deviceActionsKeys, - SWGSDRangel::SWGDeviceActions& actions, - QString& errorMessage); - static void webapiFormatDeviceSettings( SWGSDRangel::SWGDeviceSettings& response, const LimeSDRInputSettings& settings); @@ -278,7 +253,6 @@ private: DeviceLimeSDRShared m_deviceShared; bool m_channelAcquired; lms_stream_t m_streamId; - FileRecord *m_fileSink; //!< File sink to record device I/Q output QNetworkAccessManager *m_networkManager; QNetworkRequest m_networkRequest; diff --git a/plugins/samplesource/limesdrinput/limesdrinputgui.cpp b/plugins/samplesource/limesdrinput/limesdrinputgui.cpp index 6bc245d14..36acd8a3b 100644 --- a/plugins/samplesource/limesdrinput/limesdrinputgui.cpp +++ b/plugins/samplesource/limesdrinput/limesdrinputgui.cpp @@ -97,9 +97,6 @@ LimeSDRInputGUI::LimeSDRInputGUI(DeviceUISet *deviceUISet, QWidget* parent) : connect(&m_inputMessageQueue, SIGNAL(messageEnqueued()), this, SLOT(handleInputMessages()), Qt::QueuedConnection); m_limeSDRInput->setMessageQueueToGUI(&m_inputMessageQueue); - CRightClickEnabler *fileRecordRightClickEnabler = new CRightClickEnabler(ui->record); - connect(fileRecordRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openFileRecordDialog(const QPoint &))); - CRightClickEnabler *startStopRightClickEnabler = new CRightClickEnabler(ui->startStop); connect(startStopRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openDeviceSettingsDialog(const QPoint &))); } @@ -263,23 +260,6 @@ bool LimeSDRInputGUI::handleMessage(const Message& message) return true; } - else if (LimeSDRInput::MsgFileRecord::match(message)) // API action "record" feedback - { - const LimeSDRInput::MsgFileRecord& notif = (const LimeSDRInput::MsgFileRecord&) message; - bool record = notif.getStartStop(); - - ui->record->blockSignals(true); - ui->record->setChecked(record); - - if (record) { - ui->record->setStyleSheet("QToolButton { background-color : red; }"); - } else { - ui->record->setStyleSheet("QToolButton { background:rgb(79,79,79); }"); - } - - ui->record->blockSignals(false); - return true; - } else { return false; @@ -571,18 +551,6 @@ void LimeSDRInputGUI::on_startStop_toggled(bool checked) } } -void LimeSDRInputGUI::on_record_toggled(bool checked) -{ - if (checked) { - ui->record->setStyleSheet("QToolButton { background-color : red; }"); - } else { - ui->record->setStyleSheet("QToolButton { background:rgb(79,79,79); }"); - } - - LimeSDRInput::MsgFileRecord* message = LimeSDRInput::MsgFileRecord::create(checked); - m_limeSDRInput->getInputMessageQueue()->push(message); -} - void LimeSDRInputGUI::on_centerFrequency_changed(quint64 value) { setCenterFrequencySetting(value); @@ -772,29 +740,3 @@ void LimeSDRInputGUI::openDeviceSettingsDialog(const QPoint& p) sendSettings(); } - -void LimeSDRInputGUI::openFileRecordDialog(const QPoint& p) -{ - QFileDialog fileDialog( - this, - tr("Save I/Q record file"), - m_settings.m_fileRecordName, - tr("SDR I/Q Files (*.sdriq)") - ); - - fileDialog.setOptions(QFileDialog::DontUseNativeDialog); - fileDialog.setFileMode(QFileDialog::AnyFile); - fileDialog.move(p); - QStringList fileNames; - - if (fileDialog.exec()) - { - fileNames = fileDialog.selectedFiles(); - - if (fileNames.size() > 0) - { - m_settings.m_fileRecordName = fileNames.at(0); - sendSettings(); - } - } -} diff --git a/plugins/samplesource/limesdrinput/limesdrinputgui.h b/plugins/samplesource/limesdrinput/limesdrinputgui.h index 203b0506d..b8d8f074e 100644 --- a/plugins/samplesource/limesdrinput/limesdrinputgui.h +++ b/plugins/samplesource/limesdrinput/limesdrinputgui.h @@ -83,7 +83,6 @@ private: private slots: void handleInputMessages(); void on_startStop_toggled(bool checked); - void on_record_toggled(bool checked); void on_centerFrequency_changed(quint64 value); void on_ncoFrequency_changed(qint64 value); void on_ncoEnable_toggled(bool checked); @@ -105,7 +104,6 @@ private slots: void on_transverter_clicked(); void on_sampleRateMode_toggled(bool checked); void openDeviceSettingsDialog(const QPoint& p); - void openFileRecordDialog(const QPoint& p); void updateHardware(); void updateStatus(); diff --git a/plugins/samplesource/limesdrinput/limesdrinputgui.ui b/plugins/samplesource/limesdrinput/limesdrinputgui.ui index 3c95b286b..2d9d98b37 100644 --- a/plugins/samplesource/limesdrinput/limesdrinputgui.ui +++ b/plugins/samplesource/limesdrinput/limesdrinputgui.ui @@ -71,21 +71,6 @@
- - - - Left: toggle record I/Q samples from device - Right: select output file - - - - - - - :/record_off.png - :/record_on.png:/record_off.png - - - diff --git a/plugins/samplesource/limesdrinput/limesdrinputplugin.cpp b/plugins/samplesource/limesdrinput/limesdrinputplugin.cpp index ae4cef507..dfdc184c7 100644 --- a/plugins/samplesource/limesdrinput/limesdrinputplugin.cpp +++ b/plugins/samplesource/limesdrinput/limesdrinputplugin.cpp @@ -35,7 +35,7 @@ const PluginDescriptor LimeSDRInputPlugin::m_pluginDescriptor = { QString("LimeSDR"), QString("LimeSDR Input"), - QString("4.14.11"), + QString("4.15.0"), QString("(c) Edouard Griffiths, F4EXB"), QString("https://github.com/f4exb/sdrangel"), true, diff --git a/plugins/samplesource/limesdrinput/limesdrinputsettings.cpp b/plugins/samplesource/limesdrinput/limesdrinputsettings.cpp index 9ac720d8c..da822b06c 100644 --- a/plugins/samplesource/limesdrinput/limesdrinputsettings.cpp +++ b/plugins/samplesource/limesdrinput/limesdrinputsettings.cpp @@ -47,7 +47,6 @@ void LimeSDRInputSettings::resetToDefaults() m_transverterMode = false; m_transverterDeltaFrequency = 0; m_iqOrder = true; - m_fileRecordName = ""; m_gpioDir = 0; m_gpioPins = 0; m_useReverseAPI = false; diff --git a/plugins/samplesource/limesdrinput/limesdrinputsettings.h b/plugins/samplesource/limesdrinput/limesdrinputsettings.h index 765a6b23c..ef43bbadf 100644 --- a/plugins/samplesource/limesdrinput/limesdrinputsettings.h +++ b/plugins/samplesource/limesdrinput/limesdrinputsettings.h @@ -67,7 +67,6 @@ struct LimeSDRInputSettings bool m_transverterMode; qint64 m_transverterDeltaFrequency; bool m_iqOrder; - QString m_fileRecordName; uint8_t m_gpioDir; //!< GPIO pin direction LSB first; 0 input, 1 output uint8_t m_gpioPins; //!< GPIO pins to write; LSB first bool m_useReverseAPI; diff --git a/plugins/samplesource/limesdrinput/readme.md b/plugins/samplesource/limesdrinput/readme.md index 338616195..0b5464233 100644 --- a/plugins/samplesource/limesdrinput/readme.md +++ b/plugins/samplesource/limesdrinput/readme.md @@ -30,11 +30,6 @@ Device start / stop button. - Green square icon: device is running and can be stopped - Magenta (or pink) square icon: an error occurred. In the case the device was accidentally disconnected you may click on the icon to stop, plug back in, check the source on the sampling devices control panel and start again. -

1.3: Record

- - - Left click: record baseband I/Q stream toggle button - - Right click: choose record file -

1.4: ADC sample rate

This is the sample rate at which the ADC runs in kS/s (k) or MS/s (M) before hardware decimation (8). Thus this is the device to host sample rate (5) multiplied by the hardware decimation factor (3). diff --git a/plugins/samplesource/localinput/localinput.cpp b/plugins/samplesource/localinput/localinput.cpp index 9016418e0..815be523e 100644 --- a/plugins/samplesource/localinput/localinput.cpp +++ b/plugins/samplesource/localinput/localinput.cpp @@ -25,20 +25,16 @@ #include "SWGDeviceSettings.h" #include "SWGDeviceState.h" #include "SWGDeviceReport.h" -#include "SWGDeviceActions.h" #include "SWGLocalInputReport.h" -#include "SWGLocalInputActions.h" #include "util/simpleserializer.h" #include "dsp/dspcommands.h" #include "dsp/dspengine.h" #include "device/deviceapi.h" -#include "dsp/filerecord.h" #include "localinput.h" MESSAGE_CLASS_DEFINITION(LocalInput::MsgConfigureLocalInput, Message) -MESSAGE_CLASS_DEFINITION(LocalInput::MsgFileRecord, Message) MESSAGE_CLASS_DEFINITION(LocalInput::MsgStartStop, Message) MESSAGE_CLASS_DEFINITION(LocalInput::MsgReportSampleRateAndFrequency, Message) @@ -50,9 +46,7 @@ LocalInput::LocalInput(DeviceAPI *deviceAPI) : { m_sampleFifo.setSize(96000 * 4); - m_fileSink = new FileRecord(QString("test_%1.sdriq").arg(m_deviceAPI->getDeviceUID())); m_deviceAPI->setNbSourceStreams(1); - m_deviceAPI->addAncillarySink(m_fileSink); m_networkManager = new QNetworkAccessManager(); connect(m_networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkManagerFinished(QNetworkReply*))); @@ -63,8 +57,6 @@ LocalInput::~LocalInput() disconnect(m_networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkManagerFinished(QNetworkReply*))); delete m_networkManager; stop(); - m_deviceAPI->removeAncillarySink(m_fileSink); - delete m_fileSink; } void LocalInput::destroy() @@ -165,34 +157,7 @@ void LocalInput::setCenterFrequency(qint64 centerFrequency) bool LocalInput::handleMessage(const Message& message) { - if (DSPSignalNotification::match(message)) - { - DSPSignalNotification& notif = (DSPSignalNotification&) message; - return m_fileSink->handleMessage(notif); // forward to file sink - } - else if (MsgFileRecord::match(message)) - { - MsgFileRecord& conf = (MsgFileRecord&) message; - qDebug() << "LocalInput::handleMessage: MsgFileRecord: " << conf.getStartStop(); - - if (conf.getStartStop()) - { - if (m_settings.m_fileRecordName.size() != 0) { - m_fileSink->setFileName(m_settings.m_fileRecordName); - } else { - m_fileSink->genUniqueFileName(m_deviceAPI->getDeviceUID()); - } - - m_fileSink->startRecording(); - } - else - { - m_fileSink->stopRecording(); - } - - return true; - } - else if (MsgStartStop::match(message)) + if (MsgStartStop::match(message)) { MsgStartStop& cmd = (MsgStartStop&) message; qDebug() << "LocalInput::handleMessage: MsgStartStop: " << (cmd.getStartStop() ? "start" : "stop"); @@ -241,9 +206,6 @@ void LocalInput::applySettings(const LocalInputSettings& settings, bool force) if ((m_settings.m_iqCorrection != settings.m_iqCorrection) || force) { reverseAPIKeys.append("iqCorrection"); } - if ((m_settings.m_fileRecordName != settings.m_fileRecordName) || force) { - reverseAPIKeys.append("fileRecordName"); - } if ((m_settings.m_dcBlock != settings.m_dcBlock) || (m_settings.m_iqCorrection != settings.m_iqCorrection) || force) { @@ -270,7 +232,6 @@ void LocalInput::applySettings(const LocalInputSettings& settings, bool force) qDebug() << "LocalInput::applySettings: " << " m_dcBlock: " << m_settings.m_dcBlock << " m_iqCorrection: " << m_settings.m_iqCorrection - << " m_fileRecordName: " << m_settings.m_fileRecordName << " m_remoteAddress: " << m_remoteAddress; } @@ -336,37 +297,6 @@ int LocalInput::webapiSettingsPutPatch( return 200; } -int LocalInput::webapiActionsPost( - const QStringList& deviceActionsKeys, - SWGSDRangel::SWGDeviceActions& query, - QString& errorMessage) -{ - SWGSDRangel::SWGLocalInputActions *swgLocalInputActions = query.getLocalInputActions(); - - if (swgLocalInputActions) - { - if (deviceActionsKeys.contains("record")) - { - bool record = swgLocalInputActions->getRecord() != 0; - MsgFileRecord *msg = MsgFileRecord::create(record); - getInputMessageQueue()->push(msg); - - if (getMessageQueueToGUI()) - { - MsgFileRecord *msgToGUI = MsgFileRecord::create(record); - getMessageQueueToGUI()->push(msgToGUI); - } - } - - return 202; - } - else - { - errorMessage = "Missing LocalInputActions in query"; - return 400; - } -} - void LocalInput::webapiUpdateDeviceSettings( LocalInputSettings& settings, const QStringList& deviceSettingsKeys, @@ -378,9 +308,6 @@ void LocalInput::webapiUpdateDeviceSettings( if (deviceSettingsKeys.contains("iqCorrection")) { settings.m_iqCorrection = response.getLocalInputSettings()->getIqCorrection() != 0; } - if (deviceSettingsKeys.contains("fileRecordName")) { - settings.m_fileRecordName = *response.getLocalInputSettings()->getFileRecordName(); - } if (deviceSettingsKeys.contains("useReverseAPI")) { settings.m_useReverseAPI = response.getLocalInputSettings()->getUseReverseApi() != 0; } @@ -400,12 +327,6 @@ void LocalInput::webapiFormatDeviceSettings(SWGSDRangel::SWGDeviceSettings& resp response.getLocalInputSettings()->setDcBlock(settings.m_dcBlock ? 1 : 0); response.getLocalInputSettings()->setIqCorrection(settings.m_iqCorrection); - if (response.getLocalInputSettings()->getFileRecordName()) { - *response.getLocalInputSettings()->getFileRecordName() = settings.m_fileRecordName; - } else { - response.getLocalInputSettings()->setFileRecordName(new QString(settings.m_fileRecordName)); - } - response.getLocalInputSettings()->setUseReverseApi(settings.m_useReverseAPI ? 1 : 0); if (response.getLocalInputSettings()->getReverseApiAddress()) { @@ -452,9 +373,6 @@ void LocalInput::webapiReverseSendSettings(QList& deviceSettingsKeys, c if (deviceSettingsKeys.contains("iqCorrection") || force) { swgLocalInputSettings->setIqCorrection(settings.m_iqCorrection ? 1 : 0); } - if (deviceSettingsKeys.contains("fileRecordName") || force) { - swgLocalInputSettings->setFileRecordName(new QString(settings.m_fileRecordName)); - } QString deviceSettingsURL = QString("http://%1:%2/sdrangel/deviceset/%3/device/settings") .arg(settings.m_reverseAPIAddress) diff --git a/plugins/samplesource/localinput/localinput.h b/plugins/samplesource/localinput/localinput.h index 2549cb7d2..8a01571d9 100644 --- a/plugins/samplesource/localinput/localinput.h +++ b/plugins/samplesource/localinput/localinput.h @@ -34,7 +34,6 @@ class QNetworkAccessManager; class QNetworkReply; class DeviceAPI; -class FileRecord; class LocalInput : public DeviceSampleSource { Q_OBJECT @@ -62,25 +61,6 @@ public: { } }; - class MsgFileRecord : public Message { - MESSAGE_CLASS_DECLARATION - - public: - bool getStartStop() const { return m_startStop; } - - static MsgFileRecord* create(bool startStop) { - return new MsgFileRecord(startStop); - } - - protected: - bool m_startStop; - - MsgFileRecord(bool startStop) : - Message(), - m_startStop(startStop) - { } - }; - class MsgStartStop : public Message { MESSAGE_CLASS_DECLARATION @@ -165,11 +145,6 @@ public: SWGSDRangel::SWGDeviceState& response, QString& errorMessage); - virtual int webapiActionsPost( - const QStringList& deviceActionsKeys, - SWGSDRangel::SWGDeviceActions& actions, - QString& errorMessage); - static void webapiFormatDeviceSettings( SWGSDRangel::SWGDeviceSettings& response, const LocalInputSettings& settings); @@ -187,7 +162,6 @@ private: int m_sampleRate; QString m_remoteAddress; QString m_deviceDescription; - FileRecord *m_fileSink; //!< File sink to record device I/Q output QNetworkAccessManager *m_networkManager; QNetworkRequest m_networkRequest; diff --git a/plugins/samplesource/localinput/localinputgui.cpp b/plugins/samplesource/localinput/localinputgui.cpp index 6616fe0ea..0322d6477 100644 --- a/plugins/samplesource/localinput/localinputgui.cpp +++ b/plugins/samplesource/localinput/localinputgui.cpp @@ -87,9 +87,6 @@ LocalInputGui::LocalInputGui(DeviceUISet *deviceUISet, QWidget* parent) : CRightClickEnabler *startStopRightClickEnabler = new CRightClickEnabler(ui->startStop); connect(startStopRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openDeviceSettingsDialog(const QPoint &))); - CRightClickEnabler *fileRecordRightClickEnabler = new CRightClickEnabler(ui->record); - connect(fileRecordRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openFileRecordDialog(const QPoint &))); - displaySettings(); connect(&m_statusTimer, SIGNAL(timeout()), this, SLOT(updateStatus())); @@ -205,23 +202,6 @@ bool LocalInputGui::handleMessage(const Message& message) return true; } - else if (LocalInput::MsgFileRecord::match(message)) // API action "record" feedback - { - const LocalInput::MsgFileRecord& notif = (const LocalInput::MsgFileRecord&) message; - bool record = notif.getStartStop(); - - ui->record->blockSignals(true); - ui->record->setChecked(record); - - if (record) { - ui->record->setStyleSheet("QToolButton { background-color : red; }"); - } else { - ui->record->setStyleSheet("QToolButton { background:rgb(79,79,79); }"); - } - - ui->record->blockSignals(false); - return true; - } else { return false; @@ -316,18 +296,6 @@ void LocalInputGui::on_startStop_toggled(bool checked) } } -void LocalInputGui::on_record_toggled(bool checked) -{ - if (checked) { - ui->record->setStyleSheet("QToolButton { background-color : red; }"); - } else { - ui->record->setStyleSheet("QToolButton { background:rgb(79,79,79); }"); - } - - LocalInput::MsgFileRecord* message = LocalInput::MsgFileRecord::create(checked); - m_sampleSource->getInputMessageQueue()->push(message); -} - void LocalInputGui::updateHardware() { if (m_doApplySettings) @@ -388,29 +356,3 @@ void LocalInputGui::openDeviceSettingsDialog(const QPoint& p) sendSettings(); } - -void LocalInputGui::openFileRecordDialog(const QPoint& p) -{ - QFileDialog fileDialog( - this, - tr("Save I/Q record file"), - m_settings.m_fileRecordName, - tr("SDR I/Q Files (*.sdriq)") - ); - - fileDialog.setOptions(QFileDialog::DontUseNativeDialog); - fileDialog.setFileMode(QFileDialog::AnyFile); - fileDialog.move(p); - QStringList fileNames; - - if (fileDialog.exec()) - { - fileNames = fileDialog.selectedFiles(); - - if (fileNames.size() > 0) - { - m_settings.m_fileRecordName = fileNames.at(0); - sendSettings(); - } - } -} diff --git a/plugins/samplesource/localinput/localinputgui.h b/plugins/samplesource/localinput/localinputgui.h index f71096570..1e7962b17 100644 --- a/plugins/samplesource/localinput/localinputgui.h +++ b/plugins/samplesource/localinput/localinputgui.h @@ -117,11 +117,9 @@ private slots: void on_dcOffset_toggled(bool checked); void on_iqImbalance_toggled(bool checked); void on_startStop_toggled(bool checked); - void on_record_toggled(bool checked); void updateHardware(); void updateStatus(); void openDeviceSettingsDialog(const QPoint& p); - void openFileRecordDialog(const QPoint& p); }; #endif // INCLUDE_LOCALINPUTGUI_H diff --git a/plugins/samplesource/localinput/localinputgui.ui b/plugins/samplesource/localinput/localinputgui.ui index 31893d636..09383c2bf 100644 --- a/plugins/samplesource/localinput/localinputgui.ui +++ b/plugins/samplesource/localinput/localinputgui.ui @@ -65,20 +65,6 @@
- - - - Left: toggle record I/Q samples from device - Right: select output file - - - - - - - :/record_off.png:/record_off.png - - - diff --git a/plugins/samplesource/localinput/localinputplugin.cpp b/plugins/samplesource/localinput/localinputplugin.cpp index 85b59803d..5711a0177 100644 --- a/plugins/samplesource/localinput/localinputplugin.cpp +++ b/plugins/samplesource/localinput/localinputplugin.cpp @@ -31,7 +31,7 @@ const PluginDescriptor LocalInputPlugin::m_pluginDescriptor = { QString("LocalInput"), QString("Local device input"), - QString("4.12.3"), + QString("4.15.0"), QString("(c) Edouard Griffiths, F4EXB"), QString("https://github.com/f4exb/sdrangel"), true, diff --git a/plugins/samplesource/localinput/localinputsettings.cpp b/plugins/samplesource/localinput/localinputsettings.cpp index a78dfa910..62782c894 100644 --- a/plugins/samplesource/localinput/localinputsettings.cpp +++ b/plugins/samplesource/localinput/localinputsettings.cpp @@ -27,7 +27,6 @@ void LocalInputSettings::resetToDefaults() { m_dcBlock = false; m_iqCorrection = false; - m_fileRecordName = ""; m_useReverseAPI = false; m_reverseAPIAddress = "127.0.0.1"; m_reverseAPIPort = 8888; diff --git a/plugins/samplesource/localinput/localinputsettings.h b/plugins/samplesource/localinput/localinputsettings.h index f7e4fa9f3..42689d497 100644 --- a/plugins/samplesource/localinput/localinputsettings.h +++ b/plugins/samplesource/localinput/localinputsettings.h @@ -24,7 +24,6 @@ struct LocalInputSettings { bool m_dcBlock; bool m_iqCorrection; - QString m_fileRecordName; bool m_useReverseAPI; QString m_reverseAPIAddress; uint16_t m_reverseAPIPort; diff --git a/plugins/samplesource/localinput/readme.md b/plugins/samplesource/localinput/readme.md index 72ee6a769..726446c67 100644 --- a/plugins/samplesource/localinput/readme.md +++ b/plugins/samplesource/localinput/readme.md @@ -15,11 +15,6 @@ Device start / stop button. - Blue triangle icon: device is ready and can be started - Green square icon: device is running and can be stopped -

2: Record

- - - Left click: record baseband I/Q stream toggle button - - Right click: choose record file -

3: Frequency

This is the center frequency in Hz sent from the Local Sink channel instance and corresponds to the center frequency of reception. The sub kHz value (000 to 999 Hz) is represented in smaller digits on the right. diff --git a/plugins/samplesource/perseus/perseusgui.cpp b/plugins/samplesource/perseus/perseusgui.cpp index a35c57ede..c7704ed18 100644 --- a/plugins/samplesource/perseus/perseusgui.cpp +++ b/plugins/samplesource/perseus/perseusgui.cpp @@ -21,7 +21,6 @@ #include "device/deviceapi.h" #include "device/deviceuiset.h" -#include "dsp/filerecord.h" #include "ui_perseusgui.h" #include "gui/colormapper.h" @@ -55,9 +54,6 @@ PerseusGui::PerseusGui(DeviceUISet *deviceUISet, QWidget* parent) : CRightClickEnabler *startStopRightClickEnabler = new CRightClickEnabler(ui->startStop); connect(startStopRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openDeviceSettingsDialog(const QPoint &))); - CRightClickEnabler *fileRecordRightClickEnabler = new CRightClickEnabler(ui->record); - connect(fileRecordRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openFileRecordDialog(const QPoint &))); - displaySettings(); m_rates = m_sampleSource->getSampleRates(); @@ -146,23 +142,6 @@ bool PerseusGui::handleMessage(const Message& message) return true; } - else if (PerseusInput::MsgFileRecord::match(message)) // API action "record" feedback - { - const PerseusInput::MsgFileRecord& notif = (const PerseusInput::MsgFileRecord&) message; - bool record = notif.getStartStop(); - - ui->record->blockSignals(true); - ui->record->setChecked(record); - - if (record) { - ui->record->setStyleSheet("QToolButton { background-color : red; }"); - } else { - ui->record->setStyleSheet("QToolButton { background:rgb(79,79,79); }"); - } - - ui->record->blockSignals(false); - return true; - } else { return false; @@ -320,18 +299,6 @@ void PerseusGui::on_startStop_toggled(bool checked) } } -void PerseusGui::on_record_toggled(bool checked) -{ - if (checked) { - ui->record->setStyleSheet("QToolButton { background-color : red; }"); - } else { - ui->record->setStyleSheet("QToolButton { background:rgb(79,79,79); }"); - } - - PerseusInput::MsgFileRecord* message = PerseusInput::MsgFileRecord::create(checked); - m_sampleSource->getInputMessageQueue()->push(message); -} - void PerseusGui::on_transverter_clicked() { m_settings.m_transverterMode = ui->transverter->getDeltaFrequencyAcive(); @@ -445,29 +412,3 @@ void PerseusGui::openDeviceSettingsDialog(const QPoint& p) sendSettings(); } - -void PerseusGui::openFileRecordDialog(const QPoint& p) -{ - QFileDialog fileDialog( - this, - tr("Save I/Q record file"), - m_settings.m_fileRecordName, - tr("SDR I/Q Files (*.sdriq)") - ); - - fileDialog.setOptions(QFileDialog::DontUseNativeDialog); - fileDialog.setFileMode(QFileDialog::AnyFile); - fileDialog.move(p); - QStringList fileNames; - - if (fileDialog.exec()) - { - fileNames = fileDialog.selectedFiles(); - - if (fileNames.size() > 0) - { - m_settings.m_fileRecordName = fileNames.at(0); - sendSettings(); - } - } -} diff --git a/plugins/samplesource/perseus/perseusgui.h b/plugins/samplesource/perseus/perseusgui.h index 33cd9b89d..45ce70b3b 100644 --- a/plugins/samplesource/perseus/perseusgui.h +++ b/plugins/samplesource/perseus/perseusgui.h @@ -84,7 +84,6 @@ private slots: void on_wideband_toggled(bool checked); void on_decim_currentIndexChanged(int index); void on_startStop_toggled(bool checked); - void on_record_toggled(bool checked); void on_transverter_clicked(); void on_attenuator_currentIndexChanged(int index); void on_adcDither_toggled(bool checked); @@ -93,7 +92,6 @@ private slots: void updateStatus(); void handleInputMessages(); void openDeviceSettingsDialog(const QPoint& p); - void openFileRecordDialog(const QPoint& p); }; #endif /* PLUGINS_SAMPLESOURCE_PERSEUS_PERSEUSGUI_H_ */ diff --git a/plugins/samplesource/perseus/perseusgui.ui b/plugins/samplesource/perseus/perseusgui.ui index 21e5bd323..1d457ba29 100644 --- a/plugins/samplesource/perseus/perseusgui.ui +++ b/plugins/samplesource/perseus/perseusgui.ui @@ -71,20 +71,6 @@
- - - - Left: toggle record I/Q samples from device - Right: select output file - - - - - - - :/record_off.png:/record_off.png - - - diff --git a/plugins/samplesource/perseus/perseusinput.cpp b/plugins/samplesource/perseus/perseusinput.cpp index a2886240f..903b5168c 100644 --- a/plugins/samplesource/perseus/perseusinput.cpp +++ b/plugins/samplesource/perseus/perseusinput.cpp @@ -22,11 +22,8 @@ #include "SWGDeviceSettings.h" #include "SWGDeviceState.h" #include "SWGDeviceReport.h" -#include "SWGDeviceActions.h" #include "SWGPerseusReport.h" -#include "SWGPerseusActions.h" -#include "dsp/filerecord.h" #include "dsp/dspcommands.h" #include "dsp/dspengine.h" #include "device/deviceapi.h" @@ -36,21 +33,17 @@ #include "perseusworker.h" MESSAGE_CLASS_DEFINITION(PerseusInput::MsgConfigurePerseus, Message) -MESSAGE_CLASS_DEFINITION(PerseusInput::MsgFileRecord, Message) MESSAGE_CLASS_DEFINITION(PerseusInput::MsgStartStop, Message) PerseusInput::PerseusInput(DeviceAPI *deviceAPI) : m_deviceAPI(deviceAPI), - m_fileSink(nullptr), m_deviceDescription("PerseusInput"), m_running(false), m_perseusWorker(nullptr), m_perseusDescriptor(0) { openDevice(); - m_fileSink = new FileRecord(QString("test_%1.sdriq").arg(m_deviceAPI->getDeviceUID())); m_deviceAPI->setNbSourceStreams(1); - m_deviceAPI->addAncillarySink(m_fileSink); m_networkManager = new QNetworkAccessManager(); connect(m_networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkManagerFinished(QNetworkReply*))); @@ -60,9 +53,6 @@ PerseusInput::~PerseusInput() { disconnect(m_networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkManagerFinished(QNetworkReply*))); delete m_networkManager; - m_deviceAPI->removeAncillarySink(m_fileSink); - delete m_fileSink; - closeDevice(); } void PerseusInput::destroy() @@ -220,28 +210,6 @@ bool PerseusInput::handleMessage(const Message& message) return true; } - else if (MsgFileRecord::match(message)) - { - MsgFileRecord& conf = (MsgFileRecord&) message; - qDebug() << "PerseusInput::handleMessage: MsgFileRecord: " << conf.getStartStop(); - - if (conf.getStartStop()) - { - if (m_settings.m_fileRecordName.size() != 0) { - m_fileSink->setFileName(m_settings.m_fileRecordName); - } else { - m_fileSink->genUniqueFileName(m_deviceAPI->getDeviceUID()); - } - - m_fileSink->startRecording(); - } - else - { - m_fileSink->stopRecording(); - } - - return true; - } else { return false; @@ -446,7 +414,6 @@ bool PerseusInput::applySettings(const PerseusSettings& settings, bool force) { int sampleRate = m_sampleRates[sampleRateIndex]/(1<handleMessage(*notif); // forward to file sink m_deviceAPI->getDeviceEngineInputMessageQueue()->push(notif); } @@ -539,37 +506,6 @@ int PerseusInput::webapiSettingsPutPatch( return 200; } -int PerseusInput::webapiActionsPost( - const QStringList& deviceActionsKeys, - SWGSDRangel::SWGDeviceActions& query, - QString& errorMessage) -{ - SWGSDRangel::SWGPerseusActions *swgPerseusActions = query.getPerseusActions(); - - if (swgPerseusActions) - { - if (deviceActionsKeys.contains("record")) - { - bool record = swgPerseusActions->getRecord() != 0; - MsgFileRecord *msg = MsgFileRecord::create(record); - getInputMessageQueue()->push(msg); - - if (getMessageQueueToGUI()) - { - MsgFileRecord *msgToGUI = MsgFileRecord::create(record); - getMessageQueueToGUI()->push(msgToGUI); - } - } - - return 202; - } - else - { - errorMessage = "Missing PerseusActions in query"; - return 400; - } -} - void PerseusInput::webapiUpdateDeviceSettings( PerseusSettings& settings, const QStringList& deviceSettingsKeys, @@ -610,9 +546,6 @@ void PerseusInput::webapiUpdateDeviceSettings( if (deviceSettingsKeys.contains("transverterMode")) { settings.m_transverterMode = response.getPerseusSettings()->getTransverterMode() != 0; } - if (deviceSettingsKeys.contains("fileRecordName")) { - settings.m_fileRecordName = *response.getPerseusSettings()->getFileRecordName(); - } if (deviceSettingsKeys.contains("useReverseAPI")) { settings.m_useReverseAPI = response.getPerseusSettings()->getUseReverseApi() != 0; } @@ -652,12 +585,6 @@ void PerseusInput::webapiFormatDeviceSettings(SWGSDRangel::SWGDeviceSettings& re response.getPerseusSettings()->setTransverterDeltaFrequency(settings.m_transverterDeltaFrequency); response.getPerseusSettings()->setTransverterMode(settings.m_transverterMode ? 1 : 0); - if (response.getPerseusSettings()->getFileRecordName()) { - *response.getPerseusSettings()->getFileRecordName() = settings.m_fileRecordName; - } else { - response.getPerseusSettings()->setFileRecordName(new QString(settings.m_fileRecordName)); - } - response.getPerseusSettings()->setUseReverseApi(settings.m_useReverseAPI ? 1 : 0); if (response.getPerseusSettings()->getReverseApiAddress()) { @@ -725,9 +652,6 @@ void PerseusInput::webapiReverseSendSettings(QList& deviceSettingsKeys, if (deviceSettingsKeys.contains("transverterMode") || force) { swgPerseusSettings->setTransverterMode(settings.m_transverterMode ? 1 : 0); } - if (deviceSettingsKeys.contains("fileRecordName") || force) { - swgPerseusSettings->setFileRecordName(new QString(settings.m_fileRecordName)); - } QString deviceSettingsURL = QString("http://%1:%2/sdrangel/deviceset/%3/device/settings") .arg(settings.m_reverseAPIAddress) diff --git a/plugins/samplesource/perseus/perseusinput.h b/plugins/samplesource/perseus/perseusinput.h index 97284d1f7..04c776b67 100644 --- a/plugins/samplesource/perseus/perseusinput.h +++ b/plugins/samplesource/perseus/perseusinput.h @@ -31,7 +31,6 @@ class QNetworkAccessManager; class QNetworkReply; class DeviceAPI; -class FileRecord; class PerseusWorker; class PerseusInput : public DeviceSampleSource { @@ -60,25 +59,6 @@ public: { } }; - class MsgFileRecord : public Message { - MESSAGE_CLASS_DECLARATION - - public: - bool getStartStop() const { return m_startStop; } - - static MsgFileRecord* create(bool startStop) { - return new MsgFileRecord(startStop); - } - - protected: - bool m_startStop; - - MsgFileRecord(bool startStop) : - Message(), - m_startStop(startStop) - { } - }; - class MsgStartStop : public Message { MESSAGE_CLASS_DECLARATION @@ -141,11 +121,6 @@ public: SWGSDRangel::SWGDeviceState& response, QString& errorMessage); - virtual int webapiActionsPost( - const QStringList& deviceActionsKeys, - SWGSDRangel::SWGDeviceActions& actions, - QString& errorMessage); - static void webapiFormatDeviceSettings( SWGSDRangel::SWGDeviceSettings& response, const PerseusSettings& settings); @@ -159,7 +134,6 @@ public: private: DeviceAPI *m_deviceAPI; - FileRecord *m_fileSink; QString m_deviceDescription; PerseusSettings m_settings; bool m_running; diff --git a/plugins/samplesource/perseus/perseusplugin.cpp b/plugins/samplesource/perseus/perseusplugin.cpp index 6134aad65..a8d68a9d1 100644 --- a/plugins/samplesource/perseus/perseusplugin.cpp +++ b/plugins/samplesource/perseus/perseusplugin.cpp @@ -33,7 +33,7 @@ const PluginDescriptor PerseusPlugin::m_pluginDescriptor = { QString("Perseus"), QString("Perseus Input"), - QString("4.14.16"), + QString("4.15.0"), QString("(c) Edouard Griffiths, F4EXB"), QString("https://github.com/f4exb/sdrangel"), true, diff --git a/plugins/samplesource/perseus/perseussettings.cpp b/plugins/samplesource/perseus/perseussettings.cpp index 0013d8736..c75e08e00 100644 --- a/plugins/samplesource/perseus/perseussettings.cpp +++ b/plugins/samplesource/perseus/perseussettings.cpp @@ -37,7 +37,6 @@ void PerseusSettings::resetToDefaults() m_adcPreamp = false; m_wideBand = false; m_attenuator = Attenuator_None; - m_fileRecordName = ""; m_useReverseAPI = false; m_reverseAPIAddress = "127.0.0.1"; m_reverseAPIPort = 8888; diff --git a/plugins/samplesource/perseus/perseussettings.h b/plugins/samplesource/perseus/perseussettings.h index df0476529..6c28b142a 100644 --- a/plugins/samplesource/perseus/perseussettings.h +++ b/plugins/samplesource/perseus/perseussettings.h @@ -43,7 +43,6 @@ struct PerseusSettings bool m_adcPreamp; bool m_wideBand; Attenuator m_attenuator; - QString m_fileRecordName; bool m_useReverseAPI; QString m_reverseAPIAddress; uint16_t m_reverseAPIPort; diff --git a/plugins/samplesource/perseus/readme.md b/plugins/samplesource/perseus/readme.md index 29c21e64c..dcc224458 100644 --- a/plugins/samplesource/perseus/readme.md +++ b/plugins/samplesource/perseus/readme.md @@ -41,11 +41,6 @@ Device start / stop button. - Green square icon: device is running and can be stopped - Magenta (or pink) square icon: an error occurred. In the case the device was accidentally disconnected you may click on the icon, plug back in and start again. -

1.3: Record

- - - Left click: record baseband I/Q stream toggle button - - Right click: choose record file -

1.4: Stream sample rate

Baseband I/Q sample rate in kS/s. This is the device to host sample rate (4) divided by the software decimation factor (6). diff --git a/plugins/samplesource/plutosdrinput/plutosdrinput.cpp b/plugins/samplesource/plutosdrinput/plutosdrinput.cpp index de812e2bb..b151f1315 100644 --- a/plugins/samplesource/plutosdrinput/plutosdrinput.cpp +++ b/plugins/samplesource/plutosdrinput/plutosdrinput.cpp @@ -22,11 +22,8 @@ #include "SWGDeviceSettings.h" #include "SWGDeviceState.h" #include "SWGDeviceReport.h" -#include "SWGDeviceActions.h" #include "SWGPlutoSdrInputReport.h" -#include "SWGPlutoSdrInputActions.h" -#include "dsp/filerecord.h" #include "dsp/dspcommands.h" #include "dsp/dspengine.h" #include "device/deviceapi.h" @@ -39,12 +36,10 @@ #define PLUTOSDR_BLOCKSIZE_SAMPLES (16*1024) //complex samples per buffer (must be multiple of 64) MESSAGE_CLASS_DEFINITION(PlutoSDRInput::MsgConfigurePlutoSDR, Message) -MESSAGE_CLASS_DEFINITION(PlutoSDRInput::MsgFileRecord, Message) MESSAGE_CLASS_DEFINITION(PlutoSDRInput::MsgStartStop, Message) PlutoSDRInput::PlutoSDRInput(DeviceAPI *deviceAPI) : m_deviceAPI(deviceAPI), - m_fileSink(0), m_deviceDescription("PlutoSDRInput"), m_running(false), m_plutoRxBuffer(0), @@ -66,9 +61,7 @@ PlutoSDRInput::PlutoSDRInput(DeviceAPI *deviceAPI) : resumeBuddies(); - m_fileSink = new FileRecord(QString("test_%1.sdriq").arg(m_deviceAPI->getDeviceUID())); m_deviceAPI->setNbSourceStreams(1); - m_deviceAPI->addAncillarySink(m_fileSink); m_networkManager = new QNetworkAccessManager(); connect(m_networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkManagerFinished(QNetworkReply*))); @@ -78,8 +71,6 @@ PlutoSDRInput::~PlutoSDRInput() { disconnect(m_networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkManagerFinished(QNetworkReply*))); delete m_networkManager; - m_deviceAPI->removeAncillarySink(m_fileSink); - delete m_fileSink; suspendBuddies(); closeDevice(); resumeBuddies(); @@ -207,28 +198,6 @@ bool PlutoSDRInput::handleMessage(const Message& message) return true; } - else if (MsgFileRecord::match(message)) - { - MsgFileRecord& conf = (MsgFileRecord&) message; - qDebug() << "PlutoSDRInput::handleMessage: MsgFileRecord: " << conf.getStartStop(); - - if (conf.getStartStop()) - { - if (m_settings.m_fileRecordName.size() != 0) { - m_fileSink->setFileName(m_settings.m_fileRecordName); - } else { - m_fileSink->genUniqueFileName(m_deviceAPI->getDeviceUID()); - } - - m_fileSink->startRecording(); - } - else - { - m_fileSink->stopRecording(); - } - - return true; - } else if (MsgStartStop::match(message)) { MsgStartStop& cmd = (MsgStartStop&) message; @@ -506,9 +475,6 @@ bool PlutoSDRInput::applySettings(const PlutoSDRInputSettings& settings, bool fo if ((m_settings.m_transverterDeltaFrequency != settings.m_transverterDeltaFrequency) || force) { reverseAPIKeys.append("transverterDeltaFrequency"); } - if ((m_settings.m_fileRecordName != settings.m_fileRecordName) || force) { - reverseAPIKeys.append("fileRecordName"); - } // determine if buddies threads or own thread need to be suspended @@ -756,7 +722,6 @@ bool PlutoSDRInput::applySettings(const PlutoSDRInputSettings& settings, bool fo int sampleRate = m_settings.m_devSampleRate/(1<handleMessage(*notif); // forward to file sink m_deviceAPI->getDeviceEngineInputMessageQueue()->push(notif); } @@ -985,9 +950,6 @@ void PlutoSDRInput::webapiUpdateDeviceSettings( if (deviceSettingsKeys.contains("transverterMode")) { settings.m_transverterMode = response.getPlutoSdrInputSettings()->getTransverterMode() != 0; } - if (deviceSettingsKeys.contains("fileRecordName")) { - settings.m_fileRecordName = *response.getPlutoSdrInputSettings()->getFileRecordName(); - } if (deviceSettingsKeys.contains("useReverseAPI")) { settings.m_useReverseAPI = response.getPlutoSdrInputSettings()->getUseReverseApi() != 0; } @@ -1013,37 +975,6 @@ int PlutoSDRInput::webapiReportGet( return 200; } -int PlutoSDRInput::webapiActionsPost( - const QStringList& deviceActionsKeys, - SWGSDRangel::SWGDeviceActions& query, - QString& errorMessage) -{ - SWGSDRangel::SWGPlutoSdrInputActions *swgPlutoSdrInputActions = query.getPlutoSdrInputActions(); - - if (swgPlutoSdrInputActions) - { - if (deviceActionsKeys.contains("record")) - { - bool record = swgPlutoSdrInputActions->getRecord() != 0; - MsgFileRecord *msg = MsgFileRecord::create(record); - getInputMessageQueue()->push(msg); - - if (getMessageQueueToGUI()) - { - MsgFileRecord *msgToGUI = MsgFileRecord::create(record); - getMessageQueueToGUI()->push(msgToGUI); - } - } - - return 202; - } - else - { - errorMessage = "Missing PlutoSdrInputActions in query"; - return 400; - } -} - void PlutoSDRInput::webapiFormatDeviceSettings(SWGSDRangel::SWGDeviceSettings& response, const PlutoSDRInputSettings& settings) { response.getPlutoSdrInputSettings()->setCenterFrequency(settings.m_centerFrequency); @@ -1068,12 +999,6 @@ void PlutoSDRInput::webapiFormatDeviceSettings(SWGSDRangel::SWGDeviceSettings& r response.getPlutoSdrInputSettings()->setTransverterDeltaFrequency(settings.m_transverterDeltaFrequency); response.getPlutoSdrInputSettings()->setTransverterMode(settings.m_transverterMode ? 1 : 0); - if (response.getPlutoSdrInputSettings()->getFileRecordName()) { - *response.getPlutoSdrInputSettings()->getFileRecordName() = settings.m_fileRecordName; - } else { - response.getPlutoSdrInputSettings()->setFileRecordName(new QString(settings.m_fileRecordName)); - } - response.getPlutoSdrInputSettings()->setUseReverseApi(settings.m_useReverseAPI ? 1 : 0); if (response.getPlutoSdrInputSettings()->getReverseApiAddress()) { @@ -1173,9 +1098,6 @@ void PlutoSDRInput::webapiReverseSendSettings(QList& deviceSettingsKeys if (deviceSettingsKeys.contains("transverterMode") || force) { swgPlutoSdrInputSettings->setTransverterMode(settings.m_transverterMode ? 1 : 0); } - if (deviceSettingsKeys.contains("fileRecordName") || force) { - swgPlutoSdrInputSettings->setFileRecordName(new QString(settings.m_fileRecordName)); - } QString deviceSettingsURL = QString("http://%1:%2/sdrangel/deviceset/%3/device/settings") .arg(settings.m_reverseAPIAddress) diff --git a/plugins/samplesource/plutosdrinput/plutosdrinput.h b/plugins/samplesource/plutosdrinput/plutosdrinput.h index b37f156ad..7b667c5df 100644 --- a/plugins/samplesource/plutosdrinput/plutosdrinput.h +++ b/plugins/samplesource/plutosdrinput/plutosdrinput.h @@ -32,7 +32,6 @@ class QNetworkAccessManager; class QNetworkReply; class DeviceAPI; -class FileRecord; class PlutoSDRInputThread; class PlutoSDRInput : public DeviceSampleSource { @@ -61,25 +60,6 @@ public: { } }; - class MsgFileRecord : public Message { - MESSAGE_CLASS_DECLARATION - - public: - bool getStartStop() const { return m_startStop; } - - static MsgFileRecord* create(bool startStop) { - return new MsgFileRecord(startStop); - } - - protected: - bool m_startStop; - - MsgFileRecord(bool startStop) : - Message(), - m_startStop(startStop) - { } - }; - class MsgStartStop : public Message { MESSAGE_CLASS_DECLARATION @@ -142,11 +122,6 @@ public: SWGSDRangel::SWGDeviceReport& response, QString& errorMessage); - virtual int webapiActionsPost( - const QStringList& deviceActionsKeys, - SWGSDRangel::SWGDeviceActions& actions, - QString& errorMessage); - static void webapiFormatDeviceSettings( SWGSDRangel::SWGDeviceSettings& response, const PlutoSDRInputSettings& settings); @@ -168,7 +143,6 @@ public: private: DeviceAPI *m_deviceAPI; bool m_open; - FileRecord *m_fileSink; QString m_deviceDescription; PlutoSDRInputSettings m_settings; bool m_running; diff --git a/plugins/samplesource/plutosdrinput/plutosdrinputgui.cpp b/plugins/samplesource/plutosdrinput/plutosdrinputgui.cpp index a26ad819a..ee475b552 100644 --- a/plugins/samplesource/plutosdrinput/plutosdrinputgui.cpp +++ b/plugins/samplesource/plutosdrinput/plutosdrinputgui.cpp @@ -70,9 +70,6 @@ PlutoSDRInputGui::PlutoSDRInputGui(DeviceUISet *deviceUISet, QWidget* parent) : CRightClickEnabler *startStopRightClickEnabler = new CRightClickEnabler(ui->startStop); connect(startStopRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openDeviceSettingsDialog(const QPoint &))); - CRightClickEnabler *fileRecordRightClickEnabler = new CRightClickEnabler(ui->record); - connect(fileRecordRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openFileRecordDialog(const QPoint &))); - blockApplySettings(true); displaySettings(); blockApplySettings(false); @@ -178,23 +175,6 @@ bool PlutoSDRInputGui::handleMessage(const Message& message) return true; } - else if (PlutoSDRInput::MsgFileRecord::match(message)) // API action "record" feedback - { - const PlutoSDRInput::MsgFileRecord& notif = (const PlutoSDRInput::MsgFileRecord&) message; - bool record = notif.getStartStop(); - - ui->record->blockSignals(true); - ui->record->setChecked(record); - - if (record) { - ui->record->setStyleSheet("QToolButton { background-color : red; }"); - } else { - ui->record->setStyleSheet("QToolButton { background:rgb(79,79,79); }"); - } - - ui->record->blockSignals(false); - return true; - } else { return false; @@ -210,18 +190,6 @@ void PlutoSDRInputGui::on_startStop_toggled(bool checked) } } -void PlutoSDRInputGui::on_record_toggled(bool checked) -{ - if (checked) { - ui->record->setStyleSheet("QToolButton { background-color : red; }"); - } else { - ui->record->setStyleSheet("QToolButton { background:rgb(79,79,79); }"); - } - - PlutoSDRInput::MsgFileRecord* message = PlutoSDRInput::MsgFileRecord::create(checked); - m_sampleSource->getInputMessageQueue()->push(message); -} - void PlutoSDRInputGui::on_centerFrequency_changed(quint64 value) { m_settings.m_centerFrequency = value * 1000; @@ -619,29 +587,3 @@ void PlutoSDRInputGui::openDeviceSettingsDialog(const QPoint& p) sendSettings(); } - -void PlutoSDRInputGui::openFileRecordDialog(const QPoint& p) -{ - QFileDialog fileDialog( - this, - tr("Save I/Q record file"), - m_settings.m_fileRecordName, - tr("SDR I/Q Files (*.sdriq)") - ); - - fileDialog.setOptions(QFileDialog::DontUseNativeDialog); - fileDialog.setFileMode(QFileDialog::AnyFile); - fileDialog.move(p); - QStringList fileNames; - - if (fileDialog.exec()) - { - fileNames = fileDialog.selectedFiles(); - - if (fileNames.size() > 0) - { - m_settings.m_fileRecordName = fileNames.at(0); - sendSettings(); - } - } -} diff --git a/plugins/samplesource/plutosdrinput/plutosdrinputgui.h b/plugins/samplesource/plutosdrinput/plutosdrinputgui.h index b61eaa4a7..206a9ea04 100644 --- a/plugins/samplesource/plutosdrinput/plutosdrinputgui.h +++ b/plugins/samplesource/plutosdrinput/plutosdrinputgui.h @@ -81,7 +81,6 @@ private: private slots: void on_startStop_toggled(bool checked); - void on_record_toggled(bool checked); void on_centerFrequency_changed(quint64 value); void on_loPPM_valueChanged(int value); void on_dcOffset_toggled(bool checked); @@ -106,7 +105,6 @@ private slots: void updateStatus(); void handleInputMessages(); void openDeviceSettingsDialog(const QPoint& p); - void openFileRecordDialog(const QPoint& p); }; #endif /* PLUGINS_SAMPLESOURCE_PLUTOSDRINPUT_PLUTOSDRINPUTGUI_H_ */ diff --git a/plugins/samplesource/plutosdrinput/plutosdrinputgui.ui b/plugins/samplesource/plutosdrinput/plutosdrinputgui.ui index 5e091bb69..336794851 100644 --- a/plugins/samplesource/plutosdrinput/plutosdrinputgui.ui +++ b/plugins/samplesource/plutosdrinput/plutosdrinputgui.ui @@ -71,21 +71,6 @@
- - - - Left: toggle record I/Q samples from device - Right: select output file - - - - - - - :/record_off.png - :/record_on.png:/record_off.png - - - diff --git a/plugins/samplesource/plutosdrinput/plutosdrinputplugin.cpp b/plugins/samplesource/plutosdrinput/plutosdrinputplugin.cpp index b3706a25b..86b03d3fb 100644 --- a/plugins/samplesource/plutosdrinput/plutosdrinputplugin.cpp +++ b/plugins/samplesource/plutosdrinput/plutosdrinputplugin.cpp @@ -33,7 +33,7 @@ class DeviceAPI; const PluginDescriptor PlutoSDRInputPlugin::m_pluginDescriptor = { QString("PlutoSDR"), QString("PlutoSDR Input"), - QString("4.14.11"), + QString("4.15.0"), QString("(c) Edouard Griffiths, F4EXB"), QString("https://github.com/f4exb/sdrangel"), true, diff --git a/plugins/samplesource/plutosdrinput/plutosdrinputsettings.cpp b/plugins/samplesource/plutosdrinput/plutosdrinputsettings.cpp index b336c5af8..72cb5fae1 100644 --- a/plugins/samplesource/plutosdrinput/plutosdrinputsettings.cpp +++ b/plugins/samplesource/plutosdrinput/plutosdrinputsettings.cpp @@ -49,7 +49,6 @@ void PlutoSDRInputSettings::resetToDefaults() m_transverterMode = false; m_transverterDeltaFrequency = 0; m_iqOrder = true; - m_fileRecordName = ""; m_useReverseAPI = false; m_reverseAPIAddress = "127.0.0.1"; m_reverseAPIPort = 8888; diff --git a/plugins/samplesource/plutosdrinput/plutosdrinputsettings.h b/plugins/samplesource/plutosdrinput/plutosdrinputsettings.h index 776223c1d..7dabb7310 100644 --- a/plugins/samplesource/plutosdrinput/plutosdrinputsettings.h +++ b/plugins/samplesource/plutosdrinput/plutosdrinputsettings.h @@ -79,7 +79,6 @@ struct PlutoSDRInputSettings { bool m_transverterMode; qint64 m_transverterDeltaFrequency; bool m_iqOrder; - QString m_fileRecordName; bool m_useReverseAPI; QString m_reverseAPIAddress; uint16_t m_reverseAPIPort; diff --git a/plugins/samplesource/plutosdrinput/readme.md b/plugins/samplesource/plutosdrinput/readme.md index 00a60aec9..b0cf00bef 100644 --- a/plugins/samplesource/plutosdrinput/readme.md +++ b/plugins/samplesource/plutosdrinput/readme.md @@ -47,11 +47,6 @@ Device start / stop button. - Green square icon: device is running and can be stopped - Magenta (or pink) square icon: an error occurred. In the case the device was accidentally disconnected you may click on the icon to stop, plug back in, check the source on the sampling devices control panel and start again. -

1.3: Record

- - - Left click: record baseband I/Q stream toggle button - - Right click: choose record file -

1.4: ADC sample rate

This is the sample rate at which the ADC runs in kS/s (k) or MS/s (M) before hardware decimation. Hardware decimation is only partially controlled by the user using the FIR decimation factor (12). The value here is the value returned by the device interface therefore it is always exact. diff --git a/plugins/samplesource/remoteinput/readme.md b/plugins/samplesource/remoteinput/readme.md index d5f064cf3..60066c3d9 100644 --- a/plugins/samplesource/remoteinput/readme.md +++ b/plugins/samplesource/remoteinput/readme.md @@ -29,11 +29,6 @@ Device start / stop button. - Blue triangle icon: device is ready and can be started - Green square icon: device is running and can be stopped -

2: Record

- - - Left click: record baseband I/Q stream toggle button - - Right click: choose record file -

3: Frequency

This is the center frequency in Hz sent in the meta data from the distant SDRangel instance and corresponds to the center frequency of reception. The sub kHz value (000 to 999 Hz) is represented in smaller digits on the right. diff --git a/plugins/samplesource/remoteinput/remoteinput.cpp b/plugins/samplesource/remoteinput/remoteinput.cpp index 517702a7a..e5a306617 100644 --- a/plugins/samplesource/remoteinput/remoteinput.cpp +++ b/plugins/samplesource/remoteinput/remoteinput.cpp @@ -25,15 +25,12 @@ #include "SWGDeviceSettings.h" #include "SWGDeviceState.h" #include "SWGDeviceReport.h" -#include "SWGDeviceActions.h" #include "SWGRemoteInputReport.h" -#include "SWGRemoteInputActions.h" #include "util/simpleserializer.h" #include "dsp/dspcommands.h" #include "dsp/dspengine.h" #include "device/deviceapi.h" -#include "dsp/filerecord.h" #include "remoteinput.h" #include "remoteinputudphandler.h" @@ -43,14 +40,12 @@ MESSAGE_CLASS_DEFINITION(RemoteInput::MsgConfigureRemoteInputTiming, Message) MESSAGE_CLASS_DEFINITION(RemoteInput::MsgReportRemoteInputAcquisition, Message) MESSAGE_CLASS_DEFINITION(RemoteInput::MsgReportRemoteInputStreamData, Message) MESSAGE_CLASS_DEFINITION(RemoteInput::MsgReportRemoteInputStreamTiming, Message) -MESSAGE_CLASS_DEFINITION(RemoteInput::MsgFileRecord, Message) MESSAGE_CLASS_DEFINITION(RemoteInput::MsgStartStop, Message) RemoteInput::RemoteInput(DeviceAPI *deviceAPI) : m_deviceAPI(deviceAPI), m_sampleRate(48000), m_mutex(QMutex::Recursive), - m_fileSink(nullptr), m_settings(), m_remoteInputUDPHandler(nullptr), m_deviceDescription(), @@ -60,9 +55,7 @@ RemoteInput::RemoteInput(DeviceAPI *deviceAPI) : m_remoteInputUDPHandler = new RemoteInputUDPHandler(&m_sampleFifo, m_deviceAPI); m_remoteInputUDPHandler->setMessageQueueToInput(&m_inputMessageQueue); - m_fileSink = new FileRecord(QString("test_%1.sdriq").arg(m_deviceAPI->getDeviceUID())); m_deviceAPI->setNbSourceStreams(1); - m_deviceAPI->addAncillarySink(m_fileSink); m_networkManager = new QNetworkAccessManager(); connect(m_networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkManagerFinished(QNetworkReply*))); @@ -73,9 +66,7 @@ RemoteInput::~RemoteInput() disconnect(m_networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkManagerFinished(QNetworkReply*))); delete m_networkManager; stop(); - m_deviceAPI->removeAncillarySink(m_fileSink); - delete m_fileSink; - delete m_remoteInputUDPHandler; + delete m_remoteInputUDPHandler; } void RemoteInput::destroy() @@ -165,12 +156,7 @@ bool RemoteInput::isStreaming() const bool RemoteInput::handleMessage(const Message& message) { - if (DSPSignalNotification::match(message)) - { - DSPSignalNotification& notif = (DSPSignalNotification&) message; - return m_fileSink->handleMessage(notif); // forward to file sink - } - else if (RemoteInputUDPHandler::MsgReportSampleRateChange::match(message)) + if (RemoteInputUDPHandler::MsgReportSampleRateChange::match(message)) { RemoteInputUDPHandler::MsgReportSampleRateChange& notif = (RemoteInputUDPHandler::MsgReportSampleRateChange&) message; int sampleRate = notif.getSampleRate(); @@ -185,28 +171,6 @@ bool RemoteInput::handleMessage(const Message& message) return true; } - else if (MsgFileRecord::match(message)) - { - MsgFileRecord& conf = (MsgFileRecord&) message; - qDebug() << "RemoteInput::handleMessage: MsgFileRecord: " << conf.getStartStop(); - - if (conf.getStartStop()) - { - if (m_settings.m_fileRecordName.size() != 0) { - m_fileSink->setFileName(m_settings.m_fileRecordName); - } else { - m_fileSink->genUniqueFileName(m_deviceAPI->getDeviceUID()); - } - - m_fileSink->startRecording(); - } - else - { - m_fileSink->stopRecording(); - } - - return true; - } else if (MsgStartStop::match(message)) { MsgStartStop& cmd = (MsgStartStop&) message; @@ -269,9 +233,6 @@ void RemoteInput::applySettings(const RemoteInputSettings& settings, bool force) if ((m_settings.m_apiPort != settings.m_apiPort) || force) { reverseAPIKeys.append("apiPort"); } - if ((m_settings.m_fileRecordName != settings.m_fileRecordName) || force) { - reverseAPIKeys.append("fileRecordName"); - } if ((m_settings.m_dcBlock != settings.m_dcBlock) || (m_settings.m_iqCorrection != settings.m_iqCorrection) || force) { @@ -368,37 +329,6 @@ int RemoteInput::webapiSettingsPutPatch( return 200; } -int RemoteInput::webapiActionsPost( - const QStringList& deviceActionsKeys, - SWGSDRangel::SWGDeviceActions& query, - QString& errorMessage) -{ - SWGSDRangel::SWGRemoteInputActions *swgRemoteInputActions = query.getRemoteInputActions(); - - if (swgRemoteInputActions) - { - if (deviceActionsKeys.contains("record")) - { - bool record = swgRemoteInputActions->getRecord() != 0; - MsgFileRecord *msg = MsgFileRecord::create(record); - getInputMessageQueue()->push(msg); - - if (getMessageQueueToGUI()) - { - MsgFileRecord *msgToGUI = MsgFileRecord::create(record); - getMessageQueueToGUI()->push(msgToGUI); - } - } - - return 202; - } - else - { - errorMessage = "Missing RemoteInputActions in query"; - return 400; - } -} - void RemoteInput::webapiUpdateDeviceSettings( RemoteInputSettings& settings, const QStringList& deviceSettingsKeys, @@ -422,9 +352,6 @@ void RemoteInput::webapiUpdateDeviceSettings( if (deviceSettingsKeys.contains("iqCorrection")) { settings.m_iqCorrection = response.getRemoteInputSettings()->getIqCorrection() != 0; } - if (deviceSettingsKeys.contains("fileRecordName")) { - settings.m_fileRecordName = *response.getRemoteInputSettings()->getFileRecordName(); - } if (deviceSettingsKeys.contains("useReverseAPI")) { settings.m_useReverseAPI = response.getRemoteInputSettings()->getUseReverseApi() != 0; } @@ -448,12 +375,6 @@ void RemoteInput::webapiFormatDeviceSettings(SWGSDRangel::SWGDeviceSettings& res response.getRemoteInputSettings()->setDcBlock(settings.m_dcBlock ? 1 : 0); response.getRemoteInputSettings()->setIqCorrection(settings.m_iqCorrection); - if (response.getRemoteInputSettings()->getFileRecordName()) { - *response.getRemoteInputSettings()->getFileRecordName() = settings.m_fileRecordName; - } else { - response.getRemoteInputSettings()->setFileRecordName(new QString(settings.m_fileRecordName)); - } - response.getRemoteInputSettings()->setUseReverseApi(settings.m_useReverseAPI ? 1 : 0); if (response.getRemoteInputSettings()->getReverseApiAddress()) { @@ -519,9 +440,6 @@ void RemoteInput::webapiReverseSendSettings(QList& deviceSettingsKeys, if (deviceSettingsKeys.contains("iqCorrection") || force) { swgRemoteInputSettings->setIqCorrection(settings.m_iqCorrection ? 1 : 0); } - if (deviceSettingsKeys.contains("fileRecordName") || force) { - swgRemoteInputSettings->setFileRecordName(new QString(settings.m_fileRecordName)); - } QString deviceSettingsURL = QString("http://%1:%2/sdrangel/deviceset/%3/device/settings") .arg(settings.m_reverseAPIAddress) diff --git a/plugins/samplesource/remoteinput/remoteinput.h b/plugins/samplesource/remoteinput/remoteinput.h index 88fe748e1..96b0cc5ea 100644 --- a/plugins/samplesource/remoteinput/remoteinput.h +++ b/plugins/samplesource/remoteinput/remoteinput.h @@ -35,7 +35,6 @@ class QNetworkAccessManager; class QNetworkReply; class DeviceAPI; class RemoteInputUDPHandler; -class FileRecord; class RemoteInput : public DeviceSampleSource { Q_OBJECT @@ -230,25 +229,6 @@ public: { } }; - class MsgFileRecord : public Message { - MESSAGE_CLASS_DECLARATION - - public: - bool getStartStop() const { return m_startStop; } - - static MsgFileRecord* create(bool startStop) { - return new MsgFileRecord(startStop); - } - - protected: - bool m_startStop; - - MsgFileRecord(bool startStop) : - Message(), - m_startStop(startStop) - { } - }; - class MsgStartStop : public Message { MESSAGE_CLASS_DECLARATION @@ -313,11 +293,6 @@ public: SWGSDRangel::SWGDeviceState& response, QString& errorMessage); - virtual int webapiActionsPost( - const QStringList& deviceActionsKeys, - SWGSDRangel::SWGDeviceActions& actions, - QString& errorMessage); - static void webapiFormatDeviceSettings( SWGSDRangel::SWGDeviceSettings& response, const RemoteInputSettings& settings); @@ -336,7 +311,6 @@ private: QString m_remoteAddress; QString m_deviceDescription; std::time_t m_startingTimeStamp; - FileRecord *m_fileSink; //!< File sink to record device I/Q output QNetworkAccessManager *m_networkManager; QNetworkRequest m_networkRequest; diff --git a/plugins/samplesource/remoteinput/remoteinputgui.cpp b/plugins/samplesource/remoteinput/remoteinputgui.cpp index 6c26c1d59..5f44d7011 100644 --- a/plugins/samplesource/remoteinput/remoteinputgui.cpp +++ b/plugins/samplesource/remoteinput/remoteinputgui.cpp @@ -87,9 +87,6 @@ RemoteInputGui::RemoteInputGui(DeviceUISet *deviceUISet, QWidget* parent) : CRightClickEnabler *startStopRightClickEnabler = new CRightClickEnabler(ui->startStop); connect(startStopRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openDeviceSettingsDialog(const QPoint &))); - CRightClickEnabler *fileRecordRightClickEnabler = new CRightClickEnabler(ui->record); - connect(fileRecordRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openFileRecordDialog(const QPoint &))); - displaySettings(); connect(&m_statusTimer, SIGNAL(timeout()), this, SLOT(updateStatus())); @@ -242,23 +239,6 @@ bool RemoteInputGui::handleMessage(const Message& message) return true; } - else if (RemoteInput::MsgFileRecord::match(message)) // API action "record" feedback - { - const RemoteInput::MsgFileRecord& notif = (const RemoteInput::MsgFileRecord&) message; - bool record = notif.getStartStop(); - - ui->record->blockSignals(true); - ui->record->setChecked(record); - - if (record) { - ui->record->setStyleSheet("QToolButton { background-color : red; }"); - } else { - ui->record->setStyleSheet("QToolButton { background:rgb(79,79,79); }"); - } - - ui->record->blockSignals(false); - return true; - } else { return false; @@ -446,18 +426,6 @@ void RemoteInputGui::on_startStop_toggled(bool checked) } } -void RemoteInputGui::on_record_toggled(bool checked) -{ - if (checked) { - ui->record->setStyleSheet("QToolButton { background-color : red; }"); - } else { - ui->record->setStyleSheet("QToolButton { background:rgb(79,79,79); }"); - } - - RemoteInput::MsgFileRecord* message = RemoteInput::MsgFileRecord::create(checked); - m_sampleSource->getInputMessageQueue()->push(message); -} - void RemoteInputGui::on_eventCountsReset_clicked(bool checked) { (void) checked; @@ -685,29 +653,3 @@ void RemoteInputGui::openDeviceSettingsDialog(const QPoint& p) sendSettings(); } - -void RemoteInputGui::openFileRecordDialog(const QPoint& p) -{ - QFileDialog fileDialog( - this, - tr("Save I/Q record file"), - m_settings.m_fileRecordName, - tr("SDR I/Q Files (*.sdriq)") - ); - - fileDialog.setOptions(QFileDialog::DontUseNativeDialog); - fileDialog.setFileMode(QFileDialog::AnyFile); - fileDialog.move(p); - QStringList fileNames; - - if (fileDialog.exec()) - { - fileNames = fileDialog.selectedFiles(); - - if (fileNames.size() > 0) - { - m_settings.m_fileRecordName = fileNames.at(0); - sendSettings(); - } - } -} diff --git a/plugins/samplesource/remoteinput/remoteinputgui.h b/plugins/samplesource/remoteinput/remoteinputgui.h index a015af63c..129bbf687 100644 --- a/plugins/samplesource/remoteinput/remoteinputgui.h +++ b/plugins/samplesource/remoteinput/remoteinputgui.h @@ -130,13 +130,11 @@ private slots: void on_dataAddress_returnPressed(); void on_dataPort_returnPressed(); void on_startStop_toggled(bool checked); - void on_record_toggled(bool checked); void on_eventCountsReset_clicked(bool checked); void updateHardware(); void updateStatus(); void networkManagerFinished(QNetworkReply *reply); void openDeviceSettingsDialog(const QPoint& p); - void openFileRecordDialog(const QPoint& p); }; #endif // INCLUDE_REMOTEINPUTGUI_H diff --git a/plugins/samplesource/remoteinput/remoteinputgui.ui b/plugins/samplesource/remoteinput/remoteinputgui.ui index 9ea60b208..0cfc7220c 100644 --- a/plugins/samplesource/remoteinput/remoteinputgui.ui +++ b/plugins/samplesource/remoteinput/remoteinputgui.ui @@ -65,20 +65,6 @@
- - - - Left: toggle record I/Q samples from device - Right: select output file - - - - - - - :/record_off.png:/record_off.png - - - diff --git a/plugins/samplesource/remoteinput/remoteinputplugin.cpp b/plugins/samplesource/remoteinput/remoteinputplugin.cpp index a60ab135c..d9d8297f6 100644 --- a/plugins/samplesource/remoteinput/remoteinputplugin.cpp +++ b/plugins/samplesource/remoteinput/remoteinputplugin.cpp @@ -31,7 +31,7 @@ const PluginDescriptor RemoteInputPlugin::m_pluginDescriptor = { QString("RemoteInput"), QString("Remote device input"), - QString("4.12.3"), + QString("4.15.0"), QString("(c) Edouard Griffiths, F4EXB"), QString("https://github.com/f4exb/sdrangel"), true, diff --git a/plugins/samplesource/remoteinput/remoteinputsettings.cpp b/plugins/samplesource/remoteinput/remoteinputsettings.cpp index 44bd0e0b7..5336389df 100644 --- a/plugins/samplesource/remoteinput/remoteinputsettings.cpp +++ b/plugins/samplesource/remoteinput/remoteinputsettings.cpp @@ -31,7 +31,6 @@ void RemoteInputSettings::resetToDefaults() m_dataPort = 9090; m_dcBlock = false; m_iqCorrection = false; - m_fileRecordName = ""; m_useReverseAPI = false; m_reverseAPIAddress = "127.0.0.1"; m_reverseAPIPort = 8888; diff --git a/plugins/samplesource/remoteinput/remoteinputsettings.h b/plugins/samplesource/remoteinput/remoteinputsettings.h index 86a81a6c2..bc11d5b8e 100644 --- a/plugins/samplesource/remoteinput/remoteinputsettings.h +++ b/plugins/samplesource/remoteinput/remoteinputsettings.h @@ -28,7 +28,6 @@ struct RemoteInputSettings { quint16 m_dataPort; bool m_dcBlock; bool m_iqCorrection; - QString m_fileRecordName; bool m_useReverseAPI; QString m_reverseAPIAddress; uint16_t m_reverseAPIPort; diff --git a/plugins/samplesource/rtlsdr/readme.md b/plugins/samplesource/rtlsdr/readme.md index 52e97f8dd..6d8b1eee7 100644 --- a/plugins/samplesource/rtlsdr/readme.md +++ b/plugins/samplesource/rtlsdr/readme.md @@ -30,11 +30,6 @@ Device start / stop button. - Green square icon: device is running and can be stopped - Magenta (or pink) square icon: an error occurred. In the case the device was accidentally disconnected you may click on the icon, plug back in and start again. -

1.3: Record

- - - Left click: record baseband I/Q stream toggle button - - Right click: choose record file -

1.4: Device or Baseband sample rate

In device sample rate input mode (7) this is the baseband I/Q sample rate in kS/s. This is the device sample rate (8) divided by the decimation factor (9). diff --git a/plugins/samplesource/rtlsdr/rtlsdrgui.cpp b/plugins/samplesource/rtlsdr/rtlsdrgui.cpp index c1daae896..1c503edaa 100644 --- a/plugins/samplesource/rtlsdr/rtlsdrgui.cpp +++ b/plugins/samplesource/rtlsdr/rtlsdrgui.cpp @@ -23,7 +23,6 @@ #include "device/deviceapi.h" #include "device/deviceuiset.h" -#include "dsp/filerecord.h" #include "ui_rtlsdrgui.h" #include "gui/colormapper.h" @@ -33,7 +32,6 @@ #include "dsp/dspengine.h" #include "dsp/dspcommands.h" - RTLSDRGui::RTLSDRGui(DeviceUISet *deviceUISet, QWidget* parent) : QWidget(parent), ui(new Ui::RTLSDRGui), @@ -70,9 +68,6 @@ RTLSDRGui::RTLSDRGui(DeviceUISet *deviceUISet, QWidget* parent) : CRightClickEnabler *startStopRightClickEnabler = new CRightClickEnabler(ui->startStop); connect(startStopRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openDeviceSettingsDialog(const QPoint &))); - - CRightClickEnabler *fileRecordRightClickEnabler = new CRightClickEnabler(ui->record); - connect(fileRecordRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openFileRecordDialog(const QPoint &))); } RTLSDRGui::~RTLSDRGui() @@ -169,23 +164,6 @@ bool RTLSDRGui::handleMessage(const Message& message) return true; } - else if (RTLSDRInput::MsgFileRecord::match(message)) // API action "record" feedback - { - const RTLSDRInput::MsgFileRecord& notif = (const RTLSDRInput::MsgFileRecord&) message; - bool record = notif.getStartStop(); - - ui->record->blockSignals(true); - ui->record->setChecked(record); - - if (record) { - ui->record->setStyleSheet("QToolButton { background-color : red; }"); - } else { - ui->record->setStyleSheet("QToolButton { background:rgb(79,79,79); }"); - } - - ui->record->blockSignals(false); - return true; - } else { return false; @@ -420,18 +398,6 @@ void RTLSDRGui::on_startStop_toggled(bool checked) } } -void RTLSDRGui::on_record_toggled(bool checked) -{ - if (checked) { - ui->record->setStyleSheet("QToolButton { background-color : red; }"); - } else { - ui->record->setStyleSheet("QToolButton { background:rgb(79,79,79); }"); - } - - RTLSDRInput::MsgFileRecord* message = RTLSDRInput::MsgFileRecord::create(checked); - m_sampleSource->getInputMessageQueue()->push(message); -} - void RTLSDRGui::on_transverter_clicked() { m_settings.m_transverterMode = ui->transverter->getDeltaFrequencyAcive(); @@ -588,29 +554,3 @@ void RTLSDRGui::openDeviceSettingsDialog(const QPoint& p) sendSettings(); } - -void RTLSDRGui::openFileRecordDialog(const QPoint& p) -{ - QFileDialog fileDialog( - this, - tr("Save I/Q record file"), - m_settings.m_fileRecordName, - tr("SDR I/Q Files (*.sdriq)") - ); - - fileDialog.setOptions(QFileDialog::DontUseNativeDialog); - fileDialog.setFileMode(QFileDialog::AnyFile); - fileDialog.move(p); - QStringList fileNames; - - if (fileDialog.exec()) - { - fileNames = fileDialog.selectedFiles(); - - if (fileNames.size() > 0) - { - m_settings.m_fileRecordName = fileNames.at(0); - sendSettings(); - } - } -} diff --git a/plugins/samplesource/rtlsdr/rtlsdrgui.h b/plugins/samplesource/rtlsdr/rtlsdrgui.h index ff1f813cd..8fc394100 100644 --- a/plugins/samplesource/rtlsdr/rtlsdrgui.h +++ b/plugins/samplesource/rtlsdr/rtlsdrgui.h @@ -24,6 +24,7 @@ #include "util/messagequeue.h" +#include "rtlsdrsettings.h" #include "rtlsdrinput.h" class DeviceUISet; @@ -94,12 +95,10 @@ private slots: void on_checkBox_stateChanged(int state); void on_agc_stateChanged(int state); void on_startStop_toggled(bool checked); - void on_record_toggled(bool checked); void on_transverter_clicked(); void on_sampleRateMode_toggled(bool checked); void on_biasT_stateChanged(int state); void openDeviceSettingsDialog(const QPoint& p); - void openFileRecordDialog(const QPoint& p); void updateHardware(); void updateStatus(); }; diff --git a/plugins/samplesource/rtlsdr/rtlsdrgui.ui b/plugins/samplesource/rtlsdr/rtlsdrgui.ui index f259bfc53..2d0a3aa4c 100644 --- a/plugins/samplesource/rtlsdr/rtlsdrgui.ui +++ b/plugins/samplesource/rtlsdr/rtlsdrgui.ui @@ -71,20 +71,6 @@
- - - - Left: toggle record I/Q samples from device - Right: select output file - - - - - - - :/record_off.png:/record_off.png - - - diff --git a/plugins/samplesource/rtlsdr/rtlsdrinput.cpp b/plugins/samplesource/rtlsdr/rtlsdrinput.cpp index 421b89311..53250765a 100644 --- a/plugins/samplesource/rtlsdr/rtlsdrinput.cpp +++ b/plugins/samplesource/rtlsdr/rtlsdrinput.cpp @@ -35,10 +35,8 @@ #include "rtlsdrthread.h" #include "dsp/dspcommands.h" #include "dsp/dspengine.h" -#include "dsp/filerecord.h" MESSAGE_CLASS_DEFINITION(RTLSDRInput::MsgConfigureRTLSDR, Message) -MESSAGE_CLASS_DEFINITION(RTLSDRInput::MsgFileRecord, Message) MESSAGE_CLASS_DEFINITION(RTLSDRInput::MsgStartStop, Message) const quint64 RTLSDRInput::frequencyLowRangeMin = 0UL; @@ -60,9 +58,7 @@ RTLSDRInput::RTLSDRInput(DeviceAPI *deviceAPI) : { openDevice(); - m_fileSink = new FileRecord(QString("test_%1.sdriq").arg(m_deviceAPI->getDeviceUID())); m_deviceAPI->setNbSourceStreams(1); - m_deviceAPI->addAncillarySink(m_fileSink); m_networkManager = new QNetworkAccessManager(); connect(m_networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkManagerFinished(QNetworkReply*))); @@ -77,9 +73,6 @@ RTLSDRInput::~RTLSDRInput() stop(); } - m_deviceAPI->removeAncillarySink(m_fileSink); - delete m_fileSink; - closeDevice(); } @@ -317,28 +310,6 @@ bool RTLSDRInput::handleMessage(const Message& message) return true; } - else if (MsgFileRecord::match(message)) - { - MsgFileRecord& conf = (MsgFileRecord&) message; - qDebug() << "RTLSDRInput::handleMessage: MsgFileRecord: " << conf.getStartStop(); - - if (conf.getStartStop()) - { - if (m_settings.m_fileRecordName.size() != 0) { - m_fileSink->setFileName(m_settings.m_fileRecordName); - } else { - m_fileSink->genUniqueFileName(m_deviceAPI->getDeviceUID()); - } - - m_fileSink->startRecording(); - } - else - { - m_fileSink->stopRecording(); - } - - return true; - } else if (MsgStartStop::match(message)) { MsgStartStop& cmd = (MsgStartStop&) message; @@ -591,7 +562,6 @@ bool RTLSDRInput::applySettings(const RTLSDRSettings& settings, bool force) { int sampleRate = m_settings.m_devSampleRate/(1<handleMessage(*notif); // forward to file sink m_deviceAPI->getDeviceEngineInputMessageQueue()->push(notif); } @@ -693,9 +663,6 @@ void RTLSDRInput::webapiUpdateDeviceSettings( if (deviceSettingsKeys.contains("biasTee")) { settings.m_biasTee = response.getRtlSdrSettings()->getBiasTee() != 0; } - if (deviceSettingsKeys.contains("fileRecordName")) { - settings.m_fileRecordName = *response.getRtlSdrSettings()->getFileRecordName(); - } if (deviceSettingsKeys.contains("useReverseAPI")) { settings.m_useReverseAPI = response.getRtlSdrSettings()->getUseReverseApi() != 0; } @@ -730,12 +697,6 @@ void RTLSDRInput::webapiFormatDeviceSettings(SWGSDRangel::SWGDeviceSettings& res response.getRtlSdrSettings()->setTransverterMode(settings.m_transverterMode ? 1 : 0); response.getRtlSdrSettings()->setRfBandwidth(settings.m_rfBandwidth); - if (response.getRtlSdrSettings()->getFileRecordName()) { - *response.getRtlSdrSettings()->getFileRecordName() = settings.m_fileRecordName; - } else { - response.getRtlSdrSettings()->setFileRecordName(new QString(settings.m_fileRecordName)); - } - response.getRtlSdrSettings()->setUseReverseApi(settings.m_useReverseAPI ? 1 : 0); if (response.getRtlSdrSettings()->getReverseApiAddress()) { @@ -787,37 +748,6 @@ int RTLSDRInput::webapiReportGet( return 200; } -int RTLSDRInput::webapiActionsPost( - const QStringList& deviceActionsKeys, - SWGSDRangel::SWGDeviceActions& query, - QString& errorMessage) -{ - SWGSDRangel::SWGRtlSdrActions *swgRtlSdrActions = query.getRtlSdrActions(); - - if (swgRtlSdrActions) - { - if (deviceActionsKeys.contains("record")) - { - bool record = swgRtlSdrActions->getRecord() != 0; - MsgFileRecord *msg = MsgFileRecord::create(record); - getInputMessageQueue()->push(msg); - - if (getMessageQueueToGUI()) - { - MsgFileRecord *msgToGUI = MsgFileRecord::create(record); - getMessageQueueToGUI()->push(msgToGUI); - } - } - - return 202; - } - else - { - errorMessage = "Missing RtlSdrActions in query"; - return 400; - } -} - void RTLSDRInput::webapiFormatDeviceReport(SWGSDRangel::SWGDeviceReport& response) { response.getRtlSdrReport()->setGains(new QList); @@ -891,9 +821,6 @@ void RTLSDRInput::webapiReverseSendSettings(QList& deviceSettingsKeys, if (deviceSettingsKeys.contains("biasTee") || force) { swgRtlSdrSettings->setBiasTee(settings.m_biasTee ? 1 : 0); } - if (deviceSettingsKeys.contains("fileRecordName") || force) { - swgRtlSdrSettings->setFileRecordName(new QString(settings.m_fileRecordName)); - } QString channelSettingsURL = QString("http://%1:%2/sdrangel/deviceset/%3/device/settings") .arg(settings.m_reverseAPIAddress) diff --git a/plugins/samplesource/rtlsdr/rtlsdrinput.h b/plugins/samplesource/rtlsdr/rtlsdrinput.h index 7beb9da88..0dce81a82 100644 --- a/plugins/samplesource/rtlsdr/rtlsdrinput.h +++ b/plugins/samplesource/rtlsdr/rtlsdrinput.h @@ -23,13 +23,12 @@ #include #include -#include +#include "dsp/devicesamplesource.h" #include "rtlsdrsettings.h" #include class DeviceAPI; class RTLSDRThread; -class FileRecord; class QNetworkAccessManager; class QNetworkReply; @@ -59,25 +58,6 @@ public: { } }; - class MsgFileRecord : public Message { - MESSAGE_CLASS_DECLARATION - - public: - bool getStartStop() const { return m_startStop; } - - static MsgFileRecord* create(bool startStop) { - return new MsgFileRecord(startStop); - } - - protected: - bool m_startStop; - - MsgFileRecord(bool startStop) : - Message(), - m_startStop(startStop) - { } - }; - class MsgStartStop : public Message { MESSAGE_CLASS_DECLARATION @@ -131,11 +111,6 @@ public: SWGSDRangel::SWGDeviceReport& response, QString& errorMessage); - virtual int webapiActionsPost( - const QStringList& deviceActionsKeys, - SWGSDRangel::SWGDeviceActions& actions, - QString& errorMessage); - virtual int webapiRunGet( SWGSDRangel::SWGDeviceState& response, QString& errorMessage); @@ -168,7 +143,6 @@ public: private: DeviceAPI *m_deviceAPI; - FileRecord *m_fileSink; //!< File sink to record device I/Q output QMutex m_mutex; RTLSDRSettings m_settings; rtlsdr_dev_t* m_dev; diff --git a/plugins/samplesource/rtlsdr/rtlsdrplugin.cpp b/plugins/samplesource/rtlsdr/rtlsdrplugin.cpp index 0d7d94a74..00b1cdc65 100644 --- a/plugins/samplesource/rtlsdr/rtlsdrplugin.cpp +++ b/plugins/samplesource/rtlsdr/rtlsdrplugin.cpp @@ -15,7 +15,7 @@ const PluginDescriptor RTLSDRPlugin::m_pluginDescriptor = { QString("RTLSDR"), QString("RTL-SDR Input"), - QString("4.14.12"), + QString("4.15.0"), QString("(c) Edouard Griffiths, F4EXB"), QString("https://github.com/f4exb/sdrangel"), true, diff --git a/plugins/samplesource/rtlsdr/rtlsdrsettings.cpp b/plugins/samplesource/rtlsdr/rtlsdrsettings.cpp index da9b9cc3e..ace5e0f89 100644 --- a/plugins/samplesource/rtlsdr/rtlsdrsettings.cpp +++ b/plugins/samplesource/rtlsdr/rtlsdrsettings.cpp @@ -41,7 +41,6 @@ void RTLSDRSettings::resetToDefaults() m_iqOrder = true; m_transverterDeltaFrequency = 0; m_rfBandwidth = 2500 * 1000; // Hz - m_fileRecordName = ""; m_offsetTuning = false; m_biasTee = false; m_useReverseAPI = false; diff --git a/plugins/samplesource/rtlsdr/rtlsdrsettings.h b/plugins/samplesource/rtlsdr/rtlsdrsettings.h index 8abfb8b6f..a80649339 100644 --- a/plugins/samplesource/rtlsdr/rtlsdrsettings.h +++ b/plugins/samplesource/rtlsdr/rtlsdrsettings.h @@ -42,7 +42,6 @@ struct RTLSDRSettings { bool m_iqOrder; qint64 m_transverterDeltaFrequency; quint32 m_rfBandwidth; //!< RF filter bandwidth in Hz - QString m_fileRecordName; bool m_offsetTuning; bool m_biasTee; bool m_useReverseAPI; diff --git a/plugins/samplesource/sdrplay/sdrplaygui.cpp b/plugins/samplesource/sdrplay/sdrplaygui.cpp index 53fbaf3a8..22bf38fb0 100644 --- a/plugins/samplesource/sdrplay/sdrplaygui.cpp +++ b/plugins/samplesource/sdrplay/sdrplaygui.cpp @@ -77,9 +77,6 @@ SDRPlayGui::SDRPlayGui(DeviceUISet *deviceUISet, QWidget* parent) : CRightClickEnabler *startStopRightClickEnabler = new CRightClickEnabler(ui->startStop); connect(startStopRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openDeviceSettingsDialog(const QPoint &))); - CRightClickEnabler *fileRecordRightClickEnabler = new CRightClickEnabler(ui->record); - connect(fileRecordRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openFileRecordDialog(const QPoint &))); - displaySettings(); connect(&m_inputMessageQueue, SIGNAL(messageEnqueued()), this, SLOT(handleInputMessages()), Qt::QueuedConnection); @@ -193,23 +190,6 @@ bool SDRPlayGui::handleMessage(const Message& message) return true; } - else if (SDRPlayInput::MsgFileRecord::match(message)) // API action "record" feedback - { - const SDRPlayInput::MsgFileRecord& notif = (const SDRPlayInput::MsgFileRecord&) message; - bool record = notif.getStartStop(); - - ui->record->blockSignals(true); - ui->record->setChecked(record); - - if (record) { - ui->record->setStyleSheet("QToolButton { background-color : red; }"); - } else { - ui->record->setStyleSheet("QToolButton { background:rgb(79,79,79); }"); - } - - ui->record->blockSignals(false); - return true; - } else { return false; @@ -487,18 +467,6 @@ void SDRPlayGui::on_startStop_toggled(bool checked) } } -void SDRPlayGui::on_record_toggled(bool checked) -{ - if (checked) { - ui->record->setStyleSheet("QToolButton { background-color : red; }"); - } else { - ui->record->setStyleSheet("QToolButton { background:rgb(79,79,79); }"); - } - - SDRPlayInput::MsgFileRecord* message = SDRPlayInput::MsgFileRecord::create(checked); - m_sampleSource->getInputMessageQueue()->push(message); -} - void SDRPlayGui::openDeviceSettingsDialog(const QPoint& p) { BasicDeviceSettingsDialog dialog(this); @@ -517,29 +485,3 @@ void SDRPlayGui::openDeviceSettingsDialog(const QPoint& p) sendSettings(); } - -void SDRPlayGui::openFileRecordDialog(const QPoint& p) -{ - QFileDialog fileDialog( - this, - tr("Save I/Q record file"), - m_settings.m_fileRecordName, - tr("SDR I/Q Files (*.sdriq)") - ); - - fileDialog.setOptions(QFileDialog::DontUseNativeDialog); - fileDialog.setFileMode(QFileDialog::AnyFile); - fileDialog.move(p); - QStringList fileNames; - - if (fileDialog.exec()) - { - fileNames = fileDialog.selectedFiles(); - - if (fileNames.size() > 0) - { - m_settings.m_fileRecordName = fileNames.at(0); - sendSettings(); - } - } -} diff --git a/plugins/samplesource/sdrplay/sdrplaygui.h b/plugins/samplesource/sdrplay/sdrplaygui.h index db334414e..7eae71a0e 100644 --- a/plugins/samplesource/sdrplay/sdrplaygui.h +++ b/plugins/samplesource/sdrplay/sdrplaygui.h @@ -94,9 +94,7 @@ private slots: void on_gainMixer_toggled(bool checked); void on_gainBaseband_valueChanged(int value); void on_startStop_toggled(bool checked); - void on_record_toggled(bool checked); void openDeviceSettingsDialog(const QPoint& p); - void openFileRecordDialog(const QPoint& p); }; #endif /* PLUGINS_SAMPLESOURCE_SDRPLAY_SDRPLAYGUI_H_ */ diff --git a/plugins/samplesource/sdrplay/sdrplaygui.ui b/plugins/samplesource/sdrplay/sdrplaygui.ui index 77b267deb..e9d07e273 100644 --- a/plugins/samplesource/sdrplay/sdrplaygui.ui +++ b/plugins/samplesource/sdrplay/sdrplaygui.ui @@ -71,21 +71,6 @@ - - - - Left: toggle record I/Q samples from device - Right: select output file - - - - - - - :/record_off.png - :/record_on.png:/record_off.png - - - diff --git a/plugins/samplesource/sdrplay/sdrplayinput.cpp b/plugins/samplesource/sdrplay/sdrplayinput.cpp index fd9177478..a30c20f94 100644 --- a/plugins/samplesource/sdrplay/sdrplayinput.cpp +++ b/plugins/samplesource/sdrplay/sdrplayinput.cpp @@ -25,14 +25,11 @@ #include "SWGDeviceSettings.h" #include "SWGDeviceState.h" #include "SWGDeviceReport.h" -#include "SWGDeviceActions.h" #include "SWGSDRPlayReport.h" -#include "SWGSDRPlayActions.h" #include "util/simpleserializer.h" #include "dsp/dspcommands.h" #include "dsp/dspengine.h" -#include #include "sdrplayinput.h" #include @@ -41,7 +38,6 @@ MESSAGE_CLASS_DEFINITION(SDRPlayInput::MsgConfigureSDRPlay, Message) MESSAGE_CLASS_DEFINITION(SDRPlayInput::MsgReportSDRPlayGains, Message) -MESSAGE_CLASS_DEFINITION(SDRPlayInput::MsgFileRecord, Message) MESSAGE_CLASS_DEFINITION(SDRPlayInput::MsgStartStop, Message) SDRPlayInput::SDRPlayInput(DeviceAPI *deviceAPI) : @@ -55,9 +51,7 @@ SDRPlayInput::SDRPlayInput(DeviceAPI *deviceAPI) : m_running(false) { openDevice(); - m_fileSink = new FileRecord(QString("test_%1.sdriq").arg(m_deviceAPI->getDeviceUID())); m_deviceAPI->setNbSourceStreams(1); - m_deviceAPI->addAncillarySink(m_fileSink); m_networkManager = new QNetworkAccessManager(); connect(m_networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkManagerFinished(QNetworkReply*))); @@ -72,8 +66,6 @@ SDRPlayInput::~SDRPlayInput() stop(); } - m_deviceAPI->removeAncillarySink(m_fileSink); - delete m_fileSink; closeDevice(); } @@ -311,28 +303,6 @@ bool SDRPlayInput::handleMessage(const Message& message) return true; } - else if (MsgFileRecord::match(message)) - { - MsgFileRecord& conf = (MsgFileRecord&) message; - qDebug() << "SDRPlayInput::handleMessage: MsgFileRecord: " << conf.getStartStop(); - - if (conf.getStartStop()) - { - if (m_settings.m_fileRecordName.size() != 0) { - m_fileSink->setFileName(m_settings.m_fileRecordName); - } else { - m_fileSink->genUniqueFileName(m_deviceAPI->getDeviceUID()); - } - - m_fileSink->startRecording(); - } - else - { - m_fileSink->stopRecording(); - } - - return true; - } else if (MsgStartStop::match(message)) { MsgStartStop& cmd = (MsgStartStop&) message; @@ -625,7 +595,6 @@ bool SDRPlayInput::applySettings(const SDRPlaySettings& settings, bool forwardCh { int sampleRate = getSampleRate(); DSPSignalNotification *notif = new DSPSignalNotification(sampleRate, m_settings.m_centerFrequency); - m_fileSink->handleMessage(*notif); // forward to file sink m_deviceAPI->getDeviceEngineInputMessageQueue()->push(notif); } @@ -713,37 +682,6 @@ int SDRPlayInput::webapiSettingsPutPatch( return 200; } -int SDRPlayInput::webapiActionsPost( - const QStringList& deviceActionsKeys, - SWGSDRangel::SWGDeviceActions& query, - QString& errorMessage) -{ - SWGSDRangel::SWGSDRPlayActions *swgSDRPlayActions = query.getSdrPlayActions(); - - if (swgSDRPlayActions) - { - if (deviceActionsKeys.contains("record")) - { - bool record = swgSDRPlayActions->getRecord() != 0; - MsgFileRecord *msg = MsgFileRecord::create(record); - getInputMessageQueue()->push(msg); - - if (getMessageQueueToGUI()) - { - MsgFileRecord *msgToGUI = MsgFileRecord::create(record); - getMessageQueueToGUI()->push(msgToGUI); - } - } - - return 202; - } - else - { - errorMessage = "Missing SDRPlayActions in query"; - return 400; - } -} - void SDRPlayInput::webapiUpdateDeviceSettings( SDRPlaySettings& settings, const QStringList& deviceSettingsKeys, @@ -800,9 +738,6 @@ void SDRPlayInput::webapiUpdateDeviceSettings( if (deviceSettingsKeys.contains("basebandGain")) { settings.m_basebandGain = response.getSdrPlaySettings()->getBasebandGain(); } - if (deviceSettingsKeys.contains("fileRecordName")) { - settings.m_fileRecordName = *response.getSdrPlaySettings()->getFileRecordName(); - } if (deviceSettingsKeys.contains("useReverseAPI")) { settings.m_useReverseAPI = response.getSdrPlaySettings()->getUseReverseApi() != 0; } @@ -836,12 +771,6 @@ void SDRPlayInput::webapiFormatDeviceSettings(SWGSDRangel::SWGDeviceSettings& re response.getSdrPlaySettings()->setMixerAmpOn(settings.m_mixerAmpOn ? 1 : 0); response.getSdrPlaySettings()->setBasebandGain(settings.m_basebandGain); - if (response.getSdrPlaySettings()->getFileRecordName()) { - *response.getSdrPlaySettings()->getFileRecordName() = settings.m_fileRecordName; - } else { - response.getSdrPlaySettings()->setFileRecordName(new QString(settings.m_fileRecordName)); - } - response.getSdrPlaySettings()->setUseReverseApi(settings.m_useReverseAPI ? 1 : 0); if (response.getSdrPlaySettings()->getReverseApiAddress()) { @@ -961,9 +890,6 @@ void SDRPlayInput::webapiReverseSendSettings(QList& deviceSettingsKeys, if (deviceSettingsKeys.contains("basebandGain") || force) { swgSDRPlaySettings->setBasebandGain(settings.m_basebandGain); } - if (deviceSettingsKeys.contains("fileRecordName") || force) { - swgSDRPlaySettings->setFileRecordName(new QString(settings.m_fileRecordName)); - } QString deviceSettingsURL = QString("http://%1:%2/sdrangel/deviceset/%3/device/settings") .arg(settings.m_reverseAPIAddress) diff --git a/plugins/samplesource/sdrplay/sdrplayinput.h b/plugins/samplesource/sdrplay/sdrplayinput.h index c89278eef..ae6070cf7 100644 --- a/plugins/samplesource/sdrplay/sdrplayinput.h +++ b/plugins/samplesource/sdrplay/sdrplayinput.h @@ -32,7 +32,6 @@ class QNetworkAccessManager; class QNetworkReply; class DeviceAPI; class SDRPlayThread; -class FileRecord; class SDRPlayInput : public DeviceSampleSource { Q_OBJECT @@ -97,25 +96,6 @@ public: { } }; - class MsgFileRecord : public Message { - MESSAGE_CLASS_DECLARATION - - public: - bool getStartStop() const { return m_startStop; } - - static MsgFileRecord* create(bool startStop) { - return new MsgFileRecord(startStop); - } - - protected: - bool m_startStop; - - MsgFileRecord(bool startStop) : - Message(), - m_startStop(startStop) - { } - }; - class MsgStartStop : public Message { MESSAGE_CLASS_DECLARATION @@ -178,11 +158,6 @@ public: SWGSDRangel::SWGDeviceState& response, QString& errorMessage); - virtual int webapiActionsPost( - const QStringList& deviceActionsKeys, - SWGSDRangel::SWGDeviceActions& actions, - QString& errorMessage); - static void webapiFormatDeviceSettings( SWGSDRangel::SWGDeviceSettings& response, const SDRPlaySettings& settings); @@ -204,7 +179,6 @@ private: QString m_deviceDescription; int m_devNumber; bool m_running; - FileRecord *m_fileSink; //!< File sink to record device I/Q output QNetworkAccessManager *m_networkManager; QNetworkRequest m_networkRequest; diff --git a/plugins/samplesource/sdrplay/sdrplaysettings.cpp b/plugins/samplesource/sdrplay/sdrplaysettings.cpp index 8405e90d7..4828bb086 100644 --- a/plugins/samplesource/sdrplay/sdrplaysettings.cpp +++ b/plugins/samplesource/sdrplay/sdrplaysettings.cpp @@ -43,7 +43,6 @@ void SDRPlaySettings::resetToDefaults() m_mixerAmpOn = false; m_basebandGain = 29; m_iqOrder = true; - m_fileRecordName = ""; m_useReverseAPI = false; m_reverseAPIAddress = "127.0.0.1"; m_reverseAPIPort = 8888; diff --git a/plugins/samplesource/sdrplay/sdrplaysettings.h b/plugins/samplesource/sdrplay/sdrplaysettings.h index 7966cd88c..7dbe2765c 100644 --- a/plugins/samplesource/sdrplay/sdrplaysettings.h +++ b/plugins/samplesource/sdrplay/sdrplaysettings.h @@ -46,7 +46,6 @@ struct SDRPlaySettings { bool m_mixerAmpOn; int m_basebandGain; bool m_iqOrder; - QString m_fileRecordName; bool m_useReverseAPI; QString m_reverseAPIAddress; uint16_t m_reverseAPIPort; diff --git a/plugins/samplesource/soapysdrinput/readme.md b/plugins/samplesource/soapysdrinput/readme.md index a35a276ed..05b8b6fab 100644 --- a/plugins/samplesource/soapysdrinput/readme.md +++ b/plugins/samplesource/soapysdrinput/readme.md @@ -95,11 +95,6 @@ Device start / stop button. - Green square icon: device is running and can be stopped - Magenta (or pink) square icon: an error occurred. In the case the device was accidentally disconnected you may click on the icon, plug back in and start again. Check the console log for possible errors. -

1.3: Record

- - - Left click: record baseband I/Q stream toggle button - - Right click: choose record file -

1.4: Stream sample rate

Baseband I/Q sample rate in kS/s. This is the device sample rate (the "SR" SoapySDR control) divided by the decimation factor (4). diff --git a/plugins/samplesource/soapysdrinput/soapysdrinput.cpp b/plugins/samplesource/soapysdrinput/soapysdrinput.cpp index 3eb502feb..e7e95e8f5 100644 --- a/plugins/samplesource/soapysdrinput/soapysdrinput.cpp +++ b/plugins/samplesource/soapysdrinput/soapysdrinput.cpp @@ -25,13 +25,10 @@ #include "SWGSoapySDRInputSettings.h" #include "SWGDeviceState.h" #include "SWGDeviceReport.h" -#include "SWGDeviceActions.h" #include "SWGSoapySDRReport.h" -#include "SWGSoapySDRInputActions.h" #include "device/deviceapi.h" #include "dsp/dspcommands.h" -#include "dsp/filerecord.h" #include "dsp/dspengine.h" #include "soapysdr/devicesoapysdr.h" @@ -39,7 +36,6 @@ #include "soapysdrinput.h" MESSAGE_CLASS_DEFINITION(SoapySDRInput::MsgConfigureSoapySDRInput, Message) -MESSAGE_CLASS_DEFINITION(SoapySDRInput::MsgFileRecord, Message) MESSAGE_CLASS_DEFINITION(SoapySDRInput::MsgStartStop, Message) MESSAGE_CLASS_DEFINITION(SoapySDRInput::MsgReportGainChange, Message) @@ -56,9 +52,7 @@ SoapySDRInput::SoapySDRInput(DeviceAPI *deviceAPI) : initStreamArgSettings(m_settings); initDeviceArgSettings(m_settings); - m_fileSink = new FileRecord(QString("test_%1.sdriq").arg(m_deviceAPI->getDeviceUID())); m_deviceAPI->setNbSourceStreams(1); - m_deviceAPI->addAncillarySink(m_fileSink); m_networkManager = new QNetworkAccessManager(); connect(m_networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkManagerFinished(QNetworkReply*))); @@ -73,9 +67,6 @@ SoapySDRInput::~SoapySDRInput() stop(); } - m_deviceAPI->removeAncillarySink(m_fileSink); - delete m_fileSink; - closeDevice(); } @@ -797,28 +788,6 @@ bool SoapySDRInput::handleMessage(const Message& message) return true; } - else if (MsgFileRecord::match(message)) - { - MsgFileRecord& conf = (MsgFileRecord&) message; - qDebug() << "SoapySDRInput::handleMessage: MsgFileRecord: " << conf.getStartStop(); - - if (conf.getStartStop()) - { - if (m_settings.m_fileRecordName.size() != 0) { - m_fileSink->setFileName(m_settings.m_fileRecordName); - } else { - m_fileSink->genUniqueFileName(m_deviceAPI->getDeviceUID()); - } - - m_fileSink->startRecording(); - } - else - { - m_fileSink->stopRecording(); - } - - return true; - } else if (MsgStartStop::match(message)) { MsgStartStop& cmd = (MsgStartStop&) message; @@ -1282,7 +1251,6 @@ bool SoapySDRInput::applySettings(const SoapySDRInputSettings& settings, bool fo { int sampleRate = settings.m_devSampleRate/(1<handleMessage(*notif); // forward to file sink m_deviceAPI->getDeviceEngineInputMessageQueue()->push(notif); } @@ -1492,9 +1460,6 @@ void SoapySDRInput::webapiUpdateDeviceSettings( if (deviceSettingsKeys.contains("transverterMode")) { settings.m_transverterMode = response.getSoapySdrInputSettings()->getTransverterMode() != 0; } - if (deviceSettingsKeys.contains("fileRecordName")) { - settings.m_fileRecordName = *response.getSoapySdrInputSettings()->getFileRecordName(); - } if (deviceSettingsKeys.contains("antenna")) { settings.m_antenna = *response.getSoapySdrInputSettings()->getAntenna(); } @@ -1648,37 +1613,6 @@ int SoapySDRInput::webapiRun( return 200; } -int SoapySDRInput::webapiActionsPost( - const QStringList& deviceActionsKeys, - SWGSDRangel::SWGDeviceActions& query, - QString& errorMessage) -{ - SWGSDRangel::SWGSoapySDRInputActions *swgSoapySDRInputActions = query.getSoapySdrInputActions(); - - if (swgSoapySDRInputActions) - { - if (deviceActionsKeys.contains("record")) - { - bool record = swgSoapySDRInputActions->getRecord() != 0; - MsgFileRecord *msg = MsgFileRecord::create(record); - getInputMessageQueue()->push(msg); - - if (getMessageQueueToGUI()) - { - MsgFileRecord *msgToGUI = MsgFileRecord::create(record); - getMessageQueueToGUI()->push(msgToGUI); - } - } - - return 202; - } - else - { - errorMessage = "Missing SoapySDRInputActions in query"; - return 400; - } -} - void SoapySDRInput::webapiFormatDeviceSettings(SWGSDRangel::SWGDeviceSettings& response, const SoapySDRInputSettings& settings) { response.getSoapySdrInputSettings()->setCenterFrequency(settings.m_centerFrequency); @@ -1692,12 +1626,6 @@ void SoapySDRInput::webapiFormatDeviceSettings(SWGSDRangel::SWGDeviceSettings& r response.getSoapySdrInputSettings()->setTransverterDeltaFrequency(settings.m_transverterDeltaFrequency); response.getSoapySdrInputSettings()->setTransverterMode(settings.m_transverterMode ? 1 : 0); - if (response.getSoapySdrInputSettings()->getFileRecordName()) { - *response.getSoapySdrInputSettings()->getFileRecordName() = settings.m_fileRecordName; - } else { - response.getSoapySdrInputSettings()->setFileRecordName(new QString(settings.m_fileRecordName)); - } - if (response.getSoapySdrInputSettings()->getAntenna()) { *response.getSoapySdrInputSettings()->getAntenna() = settings.m_antenna; } else { @@ -2025,9 +1953,6 @@ void SoapySDRInput::webapiReverseSendSettings(QList& deviceSettingsKeys if (deviceSettingsKeys.contains("transverterMode") || force) { swgSoapySDRInputSettings->setTransverterMode(settings.m_transverterMode ? 1 : 0); } - if (deviceSettingsKeys.contains("fileRecordName") || force) { - swgSoapySDRInputSettings->setFileRecordName(new QString(settings.m_fileRecordName)); - } if (deviceSettingsKeys.contains("antenna") || force) { swgSoapySDRInputSettings->setAntenna(new QString(settings.m_antenna)); } diff --git a/plugins/samplesource/soapysdrinput/soapysdrinput.h b/plugins/samplesource/soapysdrinput/soapysdrinput.h index 9475d2416..55e3844ed 100644 --- a/plugins/samplesource/soapysdrinput/soapysdrinput.h +++ b/plugins/samplesource/soapysdrinput/soapysdrinput.h @@ -33,7 +33,6 @@ class QNetworkAccessManager; class QNetworkReply; class DeviceAPI; class SoapySDRInputThread; -class FileRecord; namespace SoapySDR { @@ -74,25 +73,6 @@ public: { } }; - class MsgFileRecord : public Message { - MESSAGE_CLASS_DECLARATION - - public: - bool getStartStop() const { return m_startStop; } - - static MsgFileRecord* create(bool startStop) { - return new MsgFileRecord(startStop); - } - - protected: - bool m_startStop; - - MsgFileRecord(bool startStop) : - Message(), - m_startStop(startStop) - { } - }; - class MsgStartStop : public Message { MESSAGE_CLASS_DECLARATION @@ -203,11 +183,6 @@ public: SWGSDRangel::SWGDeviceState& response, QString& errorMessage); - virtual int webapiActionsPost( - const QStringList& deviceActionsKeys, - SWGSDRangel::SWGDeviceActions& actions, - QString& errorMessage); - static void webapiFormatDeviceSettings( SWGSDRangel::SWGDeviceSettings& response, const SoapySDRInputSettings& settings); @@ -225,7 +200,6 @@ private: bool m_running; SoapySDRInputThread *m_thread; DeviceSoapySDRShared m_deviceShared; - FileRecord *m_fileSink; //!< File sink to record device I/Q output QNetworkAccessManager *m_networkManager; QNetworkRequest m_networkRequest; diff --git a/plugins/samplesource/soapysdrinput/soapysdrinputgui.cpp b/plugins/samplesource/soapysdrinput/soapysdrinputgui.cpp index a29809126..fd1906147 100644 --- a/plugins/samplesource/soapysdrinput/soapysdrinputgui.cpp +++ b/plugins/samplesource/soapysdrinput/soapysdrinputgui.cpp @@ -95,9 +95,6 @@ SoapySDRInputGui::SoapySDRInputGui(DeviceUISet *deviceUISet, QWidget* parent) : CRightClickEnabler *startStopRightClickEnabler = new CRightClickEnabler(ui->startStop); connect(startStopRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openDeviceSettingsDialog(const QPoint &))); - CRightClickEnabler *fileRecordRightClickEnabler = new CRightClickEnabler(ui->record); - connect(fileRecordRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openFileRecordDialog(const QPoint &))); - displaySettings(); connect(&m_inputMessageQueue, SIGNAL(messageEnqueued()), this, SLOT(handleInputMessages()), Qt::QueuedConnection); @@ -516,23 +513,6 @@ bool SoapySDRInputGui::handleMessage(const Message& message) return true; } - else if (SoapySDRInput::MsgFileRecord::match(message)) // API action "record" feedback - { - const SoapySDRInput::MsgFileRecord& notif = (const SoapySDRInput::MsgFileRecord&) message; - bool record = notif.getStartStop(); - - ui->record->blockSignals(true); - ui->record->setChecked(record); - - if (record) { - ui->record->setStyleSheet("QToolButton { background-color : red; }"); - } else { - ui->record->setStyleSheet("QToolButton { background:rgb(79,79,79); }"); - } - - ui->record->blockSignals(false); - return true; - } else { return false; @@ -732,18 +712,6 @@ void SoapySDRInputGui::on_startStop_toggled(bool checked) } } -void SoapySDRInputGui::on_record_toggled(bool checked) -{ - if (checked) { - ui->record->setStyleSheet("QToolButton { background-color : red; }"); - } else { - ui->record->setStyleSheet("QToolButton { background:rgb(79,79,79); }"); - } - - SoapySDRInput::MsgFileRecord* message = SoapySDRInput::MsgFileRecord::create(checked); - m_sampleSource->getInputMessageQueue()->push(message); -} - void SoapySDRInputGui::displaySettings() { blockApplySettings(true); @@ -978,29 +946,3 @@ void SoapySDRInputGui::openDeviceSettingsDialog(const QPoint& p) sendSettings(); } - -void SoapySDRInputGui::openFileRecordDialog(const QPoint& p) -{ - QFileDialog fileDialog( - this, - tr("Save I/Q record file"), - m_settings.m_fileRecordName, - tr("SDR I/Q Files (*.sdriq)") - ); - - fileDialog.setOptions(QFileDialog::DontUseNativeDialog); - fileDialog.setFileMode(QFileDialog::AnyFile); - fileDialog.move(p); - QStringList fileNames; - - if (fileDialog.exec()) - { - fileNames = fileDialog.selectedFiles(); - - if (fileNames.size() > 0) - { - m_settings.m_fileRecordName = fileNames.at(0); - sendSettings(); - } - } -} diff --git a/plugins/samplesource/soapysdrinput/soapysdrinputgui.h b/plugins/samplesource/soapysdrinput/soapysdrinputgui.h index b3e7badd3..f6ee896dc 100644 --- a/plugins/samplesource/soapysdrinput/soapysdrinputgui.h +++ b/plugins/samplesource/soapysdrinput/soapysdrinputgui.h @@ -137,11 +137,9 @@ private slots: void on_fcPos_currentIndexChanged(int index); void on_transverter_clicked(); void on_startStop_toggled(bool checked); - void on_record_toggled(bool checked); void updateHardware(); void updateStatus(); void openDeviceSettingsDialog(const QPoint& p); - void openFileRecordDialog(const QPoint& p); }; diff --git a/plugins/samplesource/soapysdrinput/soapysdrinputgui.ui b/plugins/samplesource/soapysdrinput/soapysdrinputgui.ui index 994f16bb5..ee59b8d69 100644 --- a/plugins/samplesource/soapysdrinput/soapysdrinputgui.ui +++ b/plugins/samplesource/soapysdrinput/soapysdrinputgui.ui @@ -65,20 +65,6 @@
- - - - Left: toggle record I/Q samples from device - Right: select output file - - - - - - - :/record_off.png:/record_off.png - - - diff --git a/plugins/samplesource/soapysdrinput/soapysdrinputplugin.cpp b/plugins/samplesource/soapysdrinput/soapysdrinputplugin.cpp index eb2900aed..b3991d8fd 100644 --- a/plugins/samplesource/soapysdrinput/soapysdrinputplugin.cpp +++ b/plugins/samplesource/soapysdrinput/soapysdrinputplugin.cpp @@ -32,7 +32,7 @@ const PluginDescriptor SoapySDRInputPlugin::m_pluginDescriptor = { QString("SoapySDR"), QString("SoapySDR Input"), - QString("4.14.11"), + QString("4.15.0"), QString("(c) Edouard Griffiths, F4EXB"), QString("https://github.com/f4exb/sdrangel"), true, diff --git a/plugins/samplesource/soapysdrinput/soapysdrinputsettings.cpp b/plugins/samplesource/soapysdrinput/soapysdrinputsettings.cpp index bc5eb524d..6583dde0a 100644 --- a/plugins/samplesource/soapysdrinput/soapysdrinputsettings.cpp +++ b/plugins/samplesource/soapysdrinput/soapysdrinputsettings.cpp @@ -38,7 +38,6 @@ void SoapySDRInputSettings::resetToDefaults() m_transverterMode = false; m_transverterDeltaFrequency = 0; m_iqOrder = true; - m_fileRecordName = ""; m_antenna = "NONE"; m_bandwidth = 1000000; m_globalGain = 0; diff --git a/plugins/samplesource/soapysdrinput/soapysdrinputsettings.h b/plugins/samplesource/soapysdrinput/soapysdrinputsettings.h index b971a22cb..baab1b235 100644 --- a/plugins/samplesource/soapysdrinput/soapysdrinputsettings.h +++ b/plugins/samplesource/soapysdrinput/soapysdrinputsettings.h @@ -40,7 +40,6 @@ struct SoapySDRInputSettings { bool m_transverterMode; qint64 m_transverterDeltaFrequency; bool m_iqOrder; - QString m_fileRecordName; QString m_antenna; quint32 m_bandwidth; QMap m_tunableElements; diff --git a/plugins/samplesource/testsource/readme.md b/plugins/samplesource/testsource/readme.md index 1f66d548e..1681d6b99 100644 --- a/plugins/samplesource/testsource/readme.md +++ b/plugins/samplesource/testsource/readme.md @@ -28,11 +28,6 @@ Device start / stop button. - Green square icon: device is running and can be stopped - Magenta (or pink) square icon: an error occurred. In the case the device was accidentally disconnected you may click on the icon, plug back in and start again. -

1.3: Record

- - - Left click: record baseband I/Q stream toggle button - - Right click: choose record file -

1.4: Stream sample rate

Baseband I/Q sample rate in kS/s. This is the device to host sample rate (3) divided by the decimation factor (4). diff --git a/plugins/samplesource/testsource/testsourcegui.cpp b/plugins/samplesource/testsource/testsourcegui.cpp index 13c2e6aa5..e2df0a97e 100644 --- a/plugins/samplesource/testsource/testsourcegui.cpp +++ b/plugins/samplesource/testsource/testsourcegui.cpp @@ -73,9 +73,6 @@ TestSourceGui::TestSourceGui(DeviceUISet *deviceUISet, QWidget* parent) : CRightClickEnabler *startStopRightClickEnabler = new CRightClickEnabler(ui->startStop); connect(startStopRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openDeviceSettingsDialog(const QPoint &))); - - CRightClickEnabler *fileRecordRightClickEnabler = new CRightClickEnabler(ui->record); - connect(fileRecordRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openFileRecordDialog(const QPoint &))); } TestSourceGui::~TestSourceGui() @@ -284,18 +281,6 @@ void TestSourceGui::on_phaseImbalance_valueChanged(int value) sendSettings(); } -void TestSourceGui::on_record_toggled(bool checked) -{ - if (checked) { - ui->record->setStyleSheet("QToolButton { background-color : red; }"); - } else { - ui->record->setStyleSheet("QToolButton { background:rgb(79,79,79); }"); - } - - TestSourceInput::MsgFileRecord* message = TestSourceInput::MsgFileRecord::create(checked); - m_sampleSource->getInputMessageQueue()->push(message); -} - void TestSourceGui::displayAmplitude() { int amplitudeInt = ui->amplitudeCoarse->value() * 100 + ui->amplitudeFine->value(); @@ -481,23 +466,6 @@ bool TestSourceGui::handleMessage(const Message& message) return true; } - else if (TestSourceInput::MsgFileRecord::match(message)) // API action "record" feedback - { - const TestSourceInput::MsgFileRecord& notif = (const TestSourceInput::MsgFileRecord&) message; - bool record = notif.getStartStop(); - - ui->record->blockSignals(true); - ui->record->setChecked(record); - - if (record) { - ui->record->setStyleSheet("QToolButton { background-color : red; }"); - } else { - ui->record->setStyleSheet("QToolButton { background:rgb(79,79,79); }"); - } - - ui->record->blockSignals(false); - return true; - } else { return false; @@ -557,29 +525,3 @@ void TestSourceGui::openDeviceSettingsDialog(const QPoint& p) sendSettings(); } - -void TestSourceGui::openFileRecordDialog(const QPoint& p) -{ - QFileDialog fileDialog( - this, - tr("Save I/Q record file"), - m_settings.m_fileRecordName, - tr("SDR I/Q Files (*.sdriq)") - ); - - fileDialog.setOptions(QFileDialog::DontUseNativeDialog); - fileDialog.setFileMode(QFileDialog::AnyFile); - fileDialog.move(p); - QStringList fileNames; - - if (fileDialog.exec()) - { - fileNames = fileDialog.selectedFiles(); - - if (fileNames.size() > 0) - { - m_settings.m_fileRecordName = fileNames.at(0); - sendSettings(); - } - } -} diff --git a/plugins/samplesource/testsource/testsourcegui.h b/plugins/samplesource/testsource/testsourcegui.h index 50294332b..6f41f399d 100644 --- a/plugins/samplesource/testsource/testsourcegui.h +++ b/plugins/samplesource/testsource/testsourcegui.h @@ -97,9 +97,7 @@ private slots: void on_iBias_valueChanged(int value); void on_qBias_valueChanged(int value); void on_phaseImbalance_valueChanged(int value); - void on_record_toggled(bool checked); void openDeviceSettingsDialog(const QPoint& p); - void openFileRecordDialog(const QPoint& p); void updateStatus(); void updateHardware(); }; diff --git a/plugins/samplesource/testsource/testsourcegui.ui b/plugins/samplesource/testsource/testsourcegui.ui index 022772fbd..d5768cdd8 100644 --- a/plugins/samplesource/testsource/testsourcegui.ui +++ b/plugins/samplesource/testsource/testsourcegui.ui @@ -74,20 +74,6 @@
- - - - Left: toggle record I/Q samples from device - Right: select output file - - - - - - - :/record_off.png:/record_off.png - - - diff --git a/plugins/samplesource/testsource/testsourceinput.cpp b/plugins/samplesource/testsource/testsourceinput.cpp index e29778d7c..08d973fc2 100644 --- a/plugins/samplesource/testsource/testsourceinput.cpp +++ b/plugins/samplesource/testsource/testsourceinput.cpp @@ -25,18 +25,14 @@ #include "SWGDeviceSettings.h" #include "SWGDeviceState.h" -#include "SWGDeviceActions.h" -#include "SWGTestSourceActions.h" #include "testsourceinput.h" #include "device/deviceapi.h" #include "testsourceworker.h" #include "dsp/dspcommands.h" #include "dsp/dspengine.h" -#include "dsp/filerecord.h" MESSAGE_CLASS_DEFINITION(TestSourceInput::MsgConfigureTestSource, Message) -MESSAGE_CLASS_DEFINITION(TestSourceInput::MsgFileRecord, Message) MESSAGE_CLASS_DEFINITION(TestSourceInput::MsgStartStop, Message) @@ -48,9 +44,7 @@ TestSourceInput::TestSourceInput(DeviceAPI *deviceAPI) : m_running(false), m_masterTimer(deviceAPI->getMasterTimer()) { - m_fileSink = new FileRecord(QString("test_%1.sdriq").arg(m_deviceAPI->getDeviceUID())); m_deviceAPI->setNbSourceStreams(1); - m_deviceAPI->addAncillarySink(m_fileSink); if (!m_sampleFifo.setSize(96000 * 4)) { qCritical("TestSourceInput::TestSourceInput: Could not allocate SampleFifo"); @@ -68,9 +62,6 @@ TestSourceInput::~TestSourceInput() if (m_running) { stop(); } - - m_deviceAPI->removeAncillarySink(m_fileSink); - delete m_fileSink; } void TestSourceInput::destroy() @@ -205,28 +196,6 @@ bool TestSourceInput::handleMessage(const Message& message) return true; } - else if (MsgFileRecord::match(message)) - { - MsgFileRecord& conf = (MsgFileRecord&) message; - qDebug() << "TestSourceInput::handleMessage: MsgFileRecord: " << conf.getStartStop(); - - if (conf.getStartStop()) - { - if (m_settings.m_fileRecordName.size() != 0) { - m_fileSink->setFileName(m_settings.m_fileRecordName); - } else { - m_fileSink->genUniqueFileName(m_deviceAPI->getDeviceUID()); - } - - m_fileSink->startRecording(); - } - else - { - m_fileSink->stopRecording(); - } - - return true; - } else if (MsgStartStop::match(message)) { MsgStartStop& cmd = (MsgStartStop&) message; @@ -406,7 +375,6 @@ bool TestSourceInput::applySettings(const TestSourceSettings& settings, bool for { int sampleRate = settings.m_sampleRate/(1<handleMessage(*notif); // forward to file sink m_deviceAPI->getDeviceEngineInputMessageQueue()->push(notif); } @@ -531,37 +499,6 @@ int TestSourceInput::webapiSettingsPutPatch( return 200; } -int TestSourceInput::webapiActionsPost( - const QStringList& deviceActionsKeys, - SWGSDRangel::SWGDeviceActions& query, - QString& errorMessage) -{ - SWGSDRangel::SWGTestSourceActions *swgTestSourceActions = query.getTestSourceActions(); - - if (swgTestSourceActions) - { - if (deviceActionsKeys.contains("record")) - { - bool record = swgTestSourceActions->getRecord() != 0; - MsgFileRecord *msg = MsgFileRecord::create(record); - getInputMessageQueue()->push(msg); - - if (getMessageQueueToGUI()) - { - MsgFileRecord *msgToGUI = MsgFileRecord::create(record); - getMessageQueueToGUI()->push(msgToGUI); - } - } - - return 202; - } - else - { - errorMessage = "Missing TestSourceActions in query"; - return 400; - } -} - void TestSourceInput::webapiUpdateDeviceSettings( TestSourceSettings& settings, const QStringList& deviceSettingsKeys, @@ -623,9 +560,6 @@ void TestSourceInput::webapiUpdateDeviceSettings( if (deviceSettingsKeys.contains("phaseImbalance")) { settings.m_phaseImbalance = response.getTestSourceSettings()->getPhaseImbalance(); }; - if (deviceSettingsKeys.contains("fileRecordName")) { - settings.m_fileRecordName = *response.getTestSourceSettings()->getFileRecordName(); - } if (deviceSettingsKeys.contains("useReverseAPI")) { settings.m_useReverseAPI = response.getTestSourceSettings()->getUseReverseApi() != 0; } @@ -659,12 +593,6 @@ void TestSourceInput::webapiFormatDeviceSettings(SWGSDRangel::SWGDeviceSettings& response.getTestSourceSettings()->setQFactor(settings.m_qFactor); response.getTestSourceSettings()->setPhaseImbalance(settings.m_phaseImbalance); - if (response.getTestSourceSettings()->getFileRecordName()) { - *response.getTestSourceSettings()->getFileRecordName() = settings.m_fileRecordName; - } else { - response.getTestSourceSettings()->setFileRecordName(new QString(settings.m_fileRecordName)); - } - response.getTestSourceSettings()->setUseReverseApi(settings.m_useReverseAPI ? 1 : 0); if (response.getTestSourceSettings()->getReverseApiAddress()) { @@ -736,9 +664,6 @@ void TestSourceInput::webapiReverseSendSettings(QList& deviceSettingsKe if (deviceSettingsKeys.contains("phaseImbalance") || force) { swgTestSourceSettings->setPhaseImbalance(settings.m_phaseImbalance); }; - if (deviceSettingsKeys.contains("fileRecordName") || force) { - swgTestSourceSettings->setFileRecordName(new QString(settings.m_fileRecordName)); - } QString channelSettingsURL = QString("http://%1:%2/sdrangel/deviceset/%3/device/settings") .arg(settings.m_reverseAPIAddress) diff --git a/plugins/samplesource/testsource/testsourceinput.h b/plugins/samplesource/testsource/testsourceinput.h index 8280770ec..fd6d41f1d 100644 --- a/plugins/samplesource/testsource/testsourceinput.h +++ b/plugins/samplesource/testsource/testsourceinput.h @@ -29,7 +29,6 @@ class DeviceAPI; class TestSourceWorker; -class FileRecord; class QNetworkAccessManager; class QNetworkReply; @@ -59,25 +58,6 @@ public: { } }; - class MsgFileRecord : public Message { - MESSAGE_CLASS_DECLARATION - - public: - bool getStartStop() const { return m_startStop; } - - static MsgFileRecord* create(bool startStop) { - return new MsgFileRecord(startStop); - } - - protected: - bool m_startStop; - - MsgFileRecord(bool startStop) : - Message(), - m_startStop(startStop) - { } - }; - class MsgStartStop : public Message { MESSAGE_CLASS_DECLARATION @@ -136,11 +116,6 @@ public: SWGSDRangel::SWGDeviceState& response, QString& errorMessage); - virtual int webapiActionsPost( - const QStringList& deviceActionsKeys, - SWGSDRangel::SWGDeviceActions& actions, - QString& errorMessage); - static void webapiFormatDeviceSettings( SWGSDRangel::SWGDeviceSettings& response, const TestSourceSettings& settings); @@ -152,7 +127,6 @@ public: private: DeviceAPI *m_deviceAPI; - FileRecord *m_fileSink; //!< File sink to record device I/Q output QMutex m_mutex; TestSourceSettings m_settings; TestSourceWorker* m_testSourceWorker; diff --git a/plugins/samplesource/testsource/testsourceplugin.cpp b/plugins/samplesource/testsource/testsourceplugin.cpp index 3e2deef19..5f64a77e2 100644 --- a/plugins/samplesource/testsource/testsourceplugin.cpp +++ b/plugins/samplesource/testsource/testsourceplugin.cpp @@ -31,7 +31,7 @@ const PluginDescriptor TestSourcePlugin::m_pluginDescriptor = { QString("TestSource"), QString("Test Source input"), - QString("4.14.16"), + QString("4.15.0"), QString("(c) Edouard Griffiths, F4EXB"), QString("https://github.com/f4exb/sdrangel"), true, diff --git a/plugins/samplesource/testsource/testsourcesettings.cpp b/plugins/samplesource/testsource/testsourcesettings.cpp index 46e468cde..2c343f242 100644 --- a/plugins/samplesource/testsource/testsourcesettings.cpp +++ b/plugins/samplesource/testsource/testsourcesettings.cpp @@ -42,7 +42,6 @@ void TestSourceSettings::resetToDefaults() m_iFactor = 0.0f; m_qFactor = 0.0f; m_phaseImbalance = 0.0f; - m_fileRecordName = ""; m_useReverseAPI = false; m_reverseAPIAddress = "127.0.0.1"; m_reverseAPIPort = 8888; diff --git a/plugins/samplesource/testsource/testsourcesettings.h b/plugins/samplesource/testsource/testsourcesettings.h index 3003de5ab..e7529d51a 100644 --- a/plugins/samplesource/testsource/testsourcesettings.h +++ b/plugins/samplesource/testsource/testsourcesettings.h @@ -60,7 +60,6 @@ struct TestSourceSettings { float m_iFactor; //!< -1.0 < x < 1.0 float m_qFactor; //!< -1.0 < x < 1.0 float m_phaseImbalance; //!< -1.0 < x < 1.0 - QString m_fileRecordName; bool m_useReverseAPI; QString m_reverseAPIAddress; uint16_t m_reverseAPIPort; diff --git a/plugins/samplesource/xtrxinput/readme.md b/plugins/samplesource/xtrxinput/readme.md index 320915392..57c63f134 100644 --- a/plugins/samplesource/xtrxinput/readme.md +++ b/plugins/samplesource/xtrxinput/readme.md @@ -62,11 +62,6 @@ Device start / stop button. - Green square icon: device is running and can be stopped - Magenta (or pink) square icon: an error occurred. In the case the device was accidentally disconnected you may click on the icon to stop, plug back in, check the source on the sampling devices control panel and start again. -

1.3: Record

- - - Left click: record baseband I/Q stream toggle button - - Right click: choose record file -

1.4: ADC sample rate

This is the sample rate at which the ADC runs in kS/s (k) or MS/s (M) before hardware decimation (3). Thus this is the device to host sample rate (5) multiplied by the hardware decimation factor (3). diff --git a/plugins/samplesource/xtrxinput/xtrxinput.cpp b/plugins/samplesource/xtrxinput/xtrxinput.cpp index 3878b1fc1..b1d9a82bc 100644 --- a/plugins/samplesource/xtrxinput/xtrxinput.cpp +++ b/plugins/samplesource/xtrxinput/xtrxinput.cpp @@ -28,13 +28,10 @@ #include "SWGXtrxInputSettings.h" #include "SWGDeviceState.h" #include "SWGDeviceReport.h" -#include "SWGDeviceActions.h" #include "SWGXtrxInputReport.h" -#include "SWGXtrxInputActions.h" #include "device/deviceapi.h" #include "dsp/dspcommands.h" -#include "dsp/filerecord.h" #include "xtrxinput.h" #include "xtrxinputthread.h" #include "xtrx/devicextrxparam.h" @@ -46,7 +43,6 @@ MESSAGE_CLASS_DEFINITION(XTRXInput::MsgGetStreamInfo, Message) MESSAGE_CLASS_DEFINITION(XTRXInput::MsgGetDeviceInfo, Message) MESSAGE_CLASS_DEFINITION(XTRXInput::MsgReportClockGenChange, Message) MESSAGE_CLASS_DEFINITION(XTRXInput::MsgReportStreamInfo, Message) -MESSAGE_CLASS_DEFINITION(XTRXInput::MsgFileRecord, Message) MESSAGE_CLASS_DEFINITION(XTRXInput::MsgStartStop, Message) XTRXInput::XTRXInput(DeviceAPI *deviceAPI) : @@ -58,10 +54,7 @@ XTRXInput::XTRXInput(DeviceAPI *deviceAPI) : { openDevice(); - m_fileSink = new FileRecord(QString("test_%1.sdriq").arg(m_deviceAPI->getDeviceUID())); m_deviceAPI->setNbSourceStreams(1); - m_deviceAPI->addAncillarySink(m_fileSink); - m_networkManager = new QNetworkAccessManager(); connect(m_networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(networkManagerFinished(QNetworkReply*))); } @@ -75,8 +68,6 @@ XTRXInput::~XTRXInput() stop(); } - m_deviceAPI->removeAncillarySink(m_fileSink); - delete m_fileSink; closeDevice(); } @@ -731,19 +722,6 @@ bool XTRXInput::handleMessage(const Message& message) return true; } - else if (MsgFileRecord::match(message)) - { - MsgFileRecord& conf = (MsgFileRecord&) message; - qDebug() << "XTRXInput::handleMessage: MsgFileRecord: " << conf.getStartStop(); - - if (conf.getStartStop()) { - m_fileSink->startRecording(); - } else { - m_fileSink->stopRecording(); - } - - return true; - } else if (MsgStartStop::match(message)) { MsgStartStop& cmd = (MsgStartStop&) message; @@ -1280,7 +1258,6 @@ bool XTRXInput::applySettings(const XTRXInputSettings& settings, bool force, boo int ncoShift = m_settings.m_ncoEnable ? m_settings.m_ncoFrequency : 0; DSPSignalNotification *notif = new DSPSignalNotification(getSampleRate(), m_settings.m_centerFrequency + ncoShift); - m_fileSink->handleMessage(*notif); // forward to file sink m_deviceAPI->getDeviceEngineInputMessageQueue()->push(notif); if (getMessageQueueToGUI()) @@ -1414,9 +1391,6 @@ void XTRXInput::webapiUpdateDeviceSettings( if (deviceSettingsKeys.contains("pwrmode")) { settings.m_pwrmode = response.getXtrxInputSettings()->getPwrmode(); } - if (deviceSettingsKeys.contains("fileRecordName")) { - settings.m_fileRecordName = *response.getXtrxInputSettings()->getFileRecordName(); - } if (deviceSettingsKeys.contains("useReverseAPI")) { settings.m_useReverseAPI = response.getXtrxInputSettings()->getUseReverseApi() != 0; } @@ -1453,12 +1427,6 @@ void XTRXInput::webapiFormatDeviceSettings(SWGSDRangel::SWGDeviceSettings& respo response.getXtrxInputSettings()->setExtClockFreq(settings.m_extClockFreq); response.getXtrxInputSettings()->setPwrmode(settings.m_pwrmode); - if (response.getXtrxInputSettings()->getFileRecordName()) { - *response.getXtrxInputSettings()->getFileRecordName() = settings.m_fileRecordName; - } else { - response.getXtrxInputSettings()->setFileRecordName(new QString(settings.m_fileRecordName)); - } - response.getXtrxInputSettings()->setUseReverseApi(settings.m_useReverseAPI ? 1 : 0); if (response.getXtrxInputSettings()->getReverseApiAddress()) { @@ -1510,37 +1478,6 @@ int XTRXInput::webapiRun( return 200; } -int XTRXInput::webapiActionsPost( - const QStringList& deviceActionsKeys, - SWGSDRangel::SWGDeviceActions& query, - QString& errorMessage) -{ - SWGSDRangel::SWGXtrxInputActions *swgXtrxInputActions = query.getXtrxInputActions(); - - if (swgXtrxInputActions) - { - if (deviceActionsKeys.contains("record")) - { - bool record = swgXtrxInputActions->getRecord() != 0; - MsgFileRecord *msg = MsgFileRecord::create(record); - getInputMessageQueue()->push(msg); - - if (getMessageQueueToGUI()) - { - MsgFileRecord *msgToGUI = MsgFileRecord::create(record); - getMessageQueueToGUI()->push(msgToGUI); - } - } - - return 202; - } - else - { - errorMessage = "Missing XtrxInputActions in query"; - return 400; - } -} - void XTRXInput::webapiFormatDeviceReport(SWGSDRangel::SWGDeviceReport& response) { int ret; @@ -1634,9 +1571,6 @@ void XTRXInput::webapiReverseSendSettings(QList& deviceSettingsKeys, co if (deviceSettingsKeys.contains("pwrmode") || force) { swgXtrxInputSettings->setPwrmode(settings.m_pwrmode); } - if (deviceSettingsKeys.contains("fileRecordName") || force) { - swgXtrxInputSettings->setFileRecordName(new QString(settings.m_fileRecordName)); - } QString deviceSettingsURL = QString("http://%1:%2/sdrangel/deviceset/%3/device/settings") .arg(settings.m_reverseAPIAddress) diff --git a/plugins/samplesource/xtrxinput/xtrxinput.h b/plugins/samplesource/xtrxinput/xtrxinput.h index a0cbd4f94..3023fd235 100644 --- a/plugins/samplesource/xtrxinput/xtrxinput.h +++ b/plugins/samplesource/xtrxinput/xtrxinput.h @@ -33,7 +33,6 @@ class QNetworkReply; class DeviceAPI; class XTRXInputThread; struct DeviceXTRXParams; -class FileRecord; class XTRXInput : public DeviceSampleSource { @@ -171,25 +170,6 @@ public: { } }; - class MsgFileRecord : public Message { - MESSAGE_CLASS_DECLARATION - - public: - bool getStartStop() const { return m_startStop; } - - static MsgFileRecord* create(bool startStop) { - return new MsgFileRecord(startStop); - } - - protected: - bool m_startStop; - - MsgFileRecord(bool startStop) : - Message(), - m_startStop(startStop) - { } - }; - XTRXInput(DeviceAPI *deviceAPI); virtual ~XTRXInput(); virtual void destroy(); @@ -238,11 +218,6 @@ public: SWGSDRangel::SWGDeviceState& response, QString& errorMessage); - virtual int webapiActionsPost( - const QStringList& deviceActionsKeys, - SWGSDRangel::SWGDeviceActions& actions, - QString& errorMessage); - static void webapiFormatDeviceSettings( SWGSDRangel::SWGDeviceSettings& response, const XTRXInputSettings& settings); @@ -273,8 +248,6 @@ private: QNetworkAccessManager *m_networkManager; QNetworkRequest m_networkRequest; - FileRecord *m_fileSink; //!< File sink to record device I/Q output - bool openDevice(); void closeDevice(); XTRXInputThread *findThread(); diff --git a/plugins/samplesource/xtrxinput/xtrxinputgui.cpp b/plugins/samplesource/xtrxinput/xtrxinputgui.cpp index 9f1f2b86b..2d45dc408 100644 --- a/plugins/samplesource/xtrxinput/xtrxinputgui.cpp +++ b/plugins/samplesource/xtrxinput/xtrxinputgui.cpp @@ -76,9 +76,6 @@ XTRXInputGUI::XTRXInputGUI(DeviceUISet *deviceUISet, QWidget* parent) : CRightClickEnabler *startStopRightClickEnabler = new CRightClickEnabler(ui->startStop); connect(startStopRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openDeviceSettingsDialog(const QPoint &))); - CRightClickEnabler *fileRecordRightClickEnabler = new CRightClickEnabler(ui->record); - connect(fileRecordRightClickEnabler, SIGNAL(rightClick(const QPoint &)), this, SLOT(openFileRecordDialog(const QPoint &))); - displaySettings(); connect(&m_inputMessageQueue, SIGNAL(messageEnqueued()), this, SLOT(handleInputMessages()), Qt::QueuedConnection); @@ -232,23 +229,7 @@ bool XTRXInputGUI::handleMessage(const Message& message) return true; } - else if (XTRXInput::MsgFileRecord::match(message)) // API action "record" feedback - { - const XTRXInput::MsgFileRecord& notif = (const XTRXInput::MsgFileRecord&) message; - bool record = notif.getStartStop(); - ui->record->blockSignals(true); - ui->record->setChecked(record); - - if (record) { - ui->record->setStyleSheet("QToolButton { background-color : red; }"); - } else { - ui->record->setStyleSheet("QToolButton { background:rgb(79,79,79); }"); - } - - ui->record->blockSignals(false); - return true; - } return false; } @@ -513,18 +494,6 @@ void XTRXInputGUI::on_startStop_toggled(bool checked) } } -void XTRXInputGUI::on_record_toggled(bool checked) -{ - if (checked) { - ui->record->setStyleSheet("QToolButton { background-color : red; }"); - } else { - ui->record->setStyleSheet("QToolButton { background:rgb(79,79,79); }"); - } - - XTRXInput::MsgFileRecord* message = XTRXInput::MsgFileRecord::create(checked); - m_XTRXInput->getInputMessageQueue()->push(message); -} - void XTRXInputGUI::on_centerFrequency_changed(quint64 value) { setCenterFrequencySetting(value); @@ -700,29 +669,3 @@ void XTRXInputGUI::openDeviceSettingsDialog(const QPoint& p) sendSettings(); } - -void XTRXInputGUI::openFileRecordDialog(const QPoint& p) -{ - QFileDialog fileDialog( - this, - tr("Save I/Q record file"), - m_settings.m_fileRecordName, - tr("SDR I/Q Files (*.sdriq)") - ); - - fileDialog.setOptions(QFileDialog::DontUseNativeDialog); - fileDialog.setFileMode(QFileDialog::AnyFile); - fileDialog.move(p); - QStringList fileNames; - - if (fileDialog.exec()) - { - fileNames = fileDialog.selectedFiles(); - - if (fileNames.size() > 0) - { - m_settings.m_fileRecordName = fileNames.at(0); - sendSettings(); - } - } -} diff --git a/plugins/samplesource/xtrxinput/xtrxinputgui.h b/plugins/samplesource/xtrxinput/xtrxinputgui.h index 46f2b9aaa..44eb1865f 100644 --- a/plugins/samplesource/xtrxinput/xtrxinputgui.h +++ b/plugins/samplesource/xtrxinput/xtrxinputgui.h @@ -83,7 +83,6 @@ private: private slots: void handleInputMessages(); void on_startStop_toggled(bool checked); - void on_record_toggled(bool checked); void on_centerFrequency_changed(quint64 value); void on_ncoFrequency_changed(qint64 value); void on_ncoEnable_toggled(bool checked); @@ -106,7 +105,6 @@ private slots: void updateHardware(); void updateStatus(); void openDeviceSettingsDialog(const QPoint& p); - void openFileRecordDialog(const QPoint& p); }; #endif /* PLUGINS_SAMPLESOURCE_XTRXINPUT_XTRXINPUTGUI_H_ */ diff --git a/plugins/samplesource/xtrxinput/xtrxinputgui.ui b/plugins/samplesource/xtrxinput/xtrxinputgui.ui index 42139f59a..de4b9edce 100644 --- a/plugins/samplesource/xtrxinput/xtrxinputgui.ui +++ b/plugins/samplesource/xtrxinput/xtrxinputgui.ui @@ -71,21 +71,6 @@
- - - - Left: toggle record I/Q samples from device - Right: select output file - - - - - - - :/record_off.png - :/record_on.png:/record_off.png - - - diff --git a/plugins/samplesource/xtrxinput/xtrxinputplugin.cpp b/plugins/samplesource/xtrxinput/xtrxinputplugin.cpp index a0b59d902..40c56e054 100644 --- a/plugins/samplesource/xtrxinput/xtrxinputplugin.cpp +++ b/plugins/samplesource/xtrxinput/xtrxinputplugin.cpp @@ -38,7 +38,7 @@ const PluginDescriptor XTRXInputPlugin::m_pluginDescriptor = { QString("XTRX"), QString("XTRX Input"), - QString("4.14.11"), + QString("4.15.0"), QString("(c) Edouard Griffiths, F4EXB"), QString("https://github.com/f4exb/sdrangel"), true, diff --git a/plugins/samplesource/xtrxinput/xtrxinputsettings.cpp b/plugins/samplesource/xtrxinput/xtrxinputsettings.cpp index b9a616f9d..98584835d 100644 --- a/plugins/samplesource/xtrxinput/xtrxinputsettings.cpp +++ b/plugins/samplesource/xtrxinput/xtrxinputsettings.cpp @@ -44,7 +44,6 @@ void XTRXInputSettings::resetToDefaults() m_extClockFreq = 0; // Auto m_pwrmode = 1; m_iqOrder = true; - m_fileRecordName = ""; m_useReverseAPI = false; m_reverseAPIAddress = "127.0.0.1"; m_reverseAPIPort = 8888; @@ -72,7 +71,6 @@ QByteArray XTRXInputSettings::serialize() const s.writeBool(18, m_extClock); s.writeU32(19, m_extClockFreq); s.writeU32(20, m_pwrmode); - s.writeString(21, m_fileRecordName); s.writeBool(22, m_useReverseAPI); s.writeString(23, m_reverseAPIAddress); s.writeU32(24, m_reverseAPIPort); @@ -116,7 +114,6 @@ bool XTRXInputSettings::deserialize(const QByteArray& data) d.readBool(18, &m_extClock, false); d.readU32(19, &m_extClockFreq, 0); d.readU32(20, &m_pwrmode, 2); - d.readString(21, &m_fileRecordName, ""); d.readBool(22, &m_useReverseAPI, false); d.readString(23, &m_reverseAPIAddress, "127.0.0.1"); d.readU32(24, &uintval, 0); diff --git a/plugins/samplesource/xtrxinput/xtrxinputsettings.h b/plugins/samplesource/xtrxinput/xtrxinputsettings.h index 4a5173bae..fb0e9a63e 100644 --- a/plugins/samplesource/xtrxinput/xtrxinputsettings.h +++ b/plugins/samplesource/xtrxinput/xtrxinputsettings.h @@ -57,7 +57,6 @@ struct XTRXInputSettings uint32_t m_extClockFreq; //!< Frequency (Hz) of external clock source uint32_t m_pwrmode; bool m_iqOrder; - QString m_fileRecordName; bool m_useReverseAPI; QString m_reverseAPIAddress; uint16_t m_reverseAPIPort; diff --git a/sdrbase/resources/webapi/doc/html2/index.html b/sdrbase/resources/webapi/doc/html2/index.html index 7a19084c1..622e98c0c 100644 --- a/sdrbase/resources/webapi/doc/html2/index.html +++ b/sdrbase/resources/webapi/doc/html2/index.html @@ -1142,24 +1142,6 @@ margin-bottom: 20px; } }, "description" : "ATVMod" -}; - defs.AirspyActions = { - "properties" : { - "record" : { - "type" : "integer", - "description" : "Record IQ stream action\n * 0 - stop recording\n * 1 - start recording\n" - } - }, - "description" : "Airspy" -}; - defs.AirspyHFActions = { - "properties" : { - "record" : { - "type" : "integer", - "description" : "Record IQ stream action\n * 0 - stop recording\n * 1 - start recording" - } - }, - "description" : "AirspyHF" }; defs.AirspyHFReport = { "properties" : { @@ -1201,9 +1183,6 @@ margin-bottom: 20px; "bandIndex" : { "type" : "integer" }, - "fileRecordName" : { - "type" : "string" - }, "useReverseAPI" : { "type" : "integer", "description" : "Synchronize with reverse API (1 for yes, 0 for no)" @@ -1314,9 +1293,6 @@ margin-bottom: 20px; "type" : "integer", "description" : "IQ samples order\n * 0 - Q then I (swapped)\n * 1 - I then Q (straight)\n" }, - "fileRecordName" : { - "type" : "string" - }, "useReverseAPI" : { "type" : "integer", "description" : "Synchronize with reverse API (1 for yes, 0 for no)" @@ -1602,6 +1578,7 @@ margin-bottom: 20px; }, "description" : "A bandwidth expressed in Hertz (Hz)" }; +<<<<<<< ours defs.BladeRF1InputActions = { "properties" : { "record" : { @@ -1610,6 +1587,43 @@ margin-bottom: 20px; } }, "description" : "BladeRF1" +======= + defs.BeamSteeringCWModSettings = { + "properties" : { + "steerDegrees" : { + "type" : "integer" + }, + "rgbColor" : { + "type" : "integer" + }, + "title" : { + "type" : "string" + }, + "log2Interp" : { + "type" : "integer" + }, + "filterChainHash" : { + "type" : "integer" + }, + "useReverseAPI" : { + "type" : "integer", + "description" : "Synchronize with reverse API (1 for yes, 0 for no)" + }, + "reverseAPIAddress" : { + "type" : "string" + }, + "reverseAPIPort" : { + "type" : "integer" + }, + "reverseAPIDeviceIndex" : { + "type" : "integer" + }, + "reverseAPIChannelIndex" : { + "type" : "integer" + } + }, + "description" : "BeamSteeringCWMod" +>>>>>>> theirs }; defs.BladeRF1InputSettings = { "properties" : { @@ -1657,9 +1671,6 @@ margin-bottom: 20px; "type" : "integer", "description" : "IQ samples order\n * 0 - Q then I (swapped)\n * 1 - I then Q (straight)\n" }, - "fileRecordName" : { - "type" : "string" - }, "useReverseAPI" : { "type" : "integer", "description" : "Synchronize with reverse API (1 for yes, 0 for no)" @@ -1721,15 +1732,6 @@ margin-bottom: 20px; } }, "description" : "BladeRF1" -}; - defs.BladeRF2InputActions = { - "properties" : { - "record" : { - "type" : "integer", - "description" : "Record IQ stream action\n * 0 - stop recording\n * 1 - start recording\n" - } - }, - "description" : "BladeRF2" }; defs.BladeRF2InputReport = { "properties" : { @@ -1801,9 +1803,6 @@ margin-bottom: 20px; "type" : "integer", "description" : "IQ samples order\n * 0 - Q then I (swapped)\n * 1 - I then Q (straight)\n" }, - "fileRecordName" : { - "type" : "string" - }, "useReverseAPI" : { "type" : "integer", "description" : "Synchronize with reverse API (1 for yes, 0 for no)" @@ -2718,6 +2717,7 @@ margin-bottom: 20px; "type" : "integer", "description" : "Optional for reverse API. This is the device set index from where the message comes from." }, +<<<<<<< ours "airspyActions" : { "$ref" : "#/definitions/AirspyActions" }, @@ -2771,6 +2771,10 @@ margin-bottom: 20px; }, "xtrxInputActions" : { "$ref" : "#/definitions/XtrxInputActions" +======= + "sigMFFileInputActions" : { + "$ref" : "#/definitions/SigMFFileInputActions" +>>>>>>> theirs } }, "description" : "Base device actions. Only the device actions corresponding to the device specified in the deviceHwType field is or should be present." @@ -3074,24 +3078,6 @@ margin-bottom: 20px; "example" : "KO" } } -}; - defs.FCDProActions = { - "properties" : { - "record" : { - "type" : "integer", - "description" : "Record IQ stream action\n * 0 - stop recording\n * 1 - start recording\n" - } - }, - "description" : "FCDPro" -}; - defs.FCDProPlusActions = { - "properties" : { - "record" : { - "type" : "integer", - "description" : "Record IQ stream action\n * 0 - stop recording\n * 1 - start recording\n" - } - }, - "description" : "FCDProPlus" }; defs.FCDProPlusSettings = { "properties" : { @@ -3150,9 +3136,6 @@ margin-bottom: 20px; "type" : "integer", "description" : "IQ samples order\n * 0 - Q then I (swapped)\n * 1 - I then Q (straight)\n" }, - "fileRecordName" : { - "type" : "string" - }, "useReverseAPI" : { "type" : "integer", "description" : "Synchronize with reverse API (1 for yes, 0 for no)" @@ -3249,9 +3232,6 @@ margin-bottom: 20px; "type" : "integer", "description" : "IQ samples order\n * 0 - Q then I (swapped)\n * 1 - I then Q (straight)\n" }, - "fileRecordName" : { - "type" : "string" - }, "useReverseAPI" : { "type" : "integer", "description" : "Synchronize with reverse API (1 for yes, 0 for no)" @@ -3964,15 +3944,6 @@ margin-bottom: 20px; } }, "description" : "A gain expressed in centi-Bels (tenths of dB)" -}; - defs.HackRFInputActions = { - "properties" : { - "record" : { - "type" : "integer", - "description" : "Record IQ stream action\n * 0 - stop recording\n * 1 - start recording\n" - } - }, - "description" : "HackRF" }; defs.HackRFInputSettings = { "properties" : { @@ -4014,9 +3985,6 @@ margin-bottom: 20px; "iqCorrection" : { "type" : "integer" }, - "fileRecordName" : { - "type" : "string" - }, "transverterMode" : { "type" : "integer" }, @@ -4197,6 +4165,7 @@ margin-bottom: 20px; }, "description" : "Summarized information about this SDRangel instance" }; +<<<<<<< ours defs.KiwiSDRActions = { "properties" : { "record" : { @@ -4205,6 +4174,50 @@ margin-bottom: 20px; } }, "description" : "KiwiSDR" +======= + defs.InterferometerSettings = { + "properties" : { + "correlationType" : { + "type" : "integer", + "description" : "see InterferometerSettings::CorrelationType" + }, + "rgbColor" : { + "type" : "integer" + }, + "title" : { + "type" : "string" + }, + "log2Decim" : { + "type" : "integer" + }, + "filterChainHash" : { + "type" : "integer" + }, + "useReverseAPI" : { + "type" : "integer", + "description" : "Synchronize with reverse API (1 for yes, 0 for no)" + }, + "reverseAPIAddress" : { + "type" : "string" + }, + "reverseAPIPort" : { + "type" : "integer" + }, + "reverseAPIDeviceIndex" : { + "type" : "integer" + }, + "reverseAPIChannelIndex" : { + "type" : "integer" + }, + "spectrumConfig" : { + "$ref" : "#/definitions/GLSpectrum" + }, + "scopeConfig" : { + "$ref" : "#/definitions/GLScope" + } + }, + "description" : "Interferometer" +>>>>>>> theirs }; defs.KiwiSDRReport = { "properties" : { @@ -4235,9 +4248,6 @@ margin-bottom: 20px; "type" : "string", "description" : "Distant KiwiSDR instance URL or IPv4 address with port" }, - "fileRecordName" : { - "type" : "string" - }, "useReverseAPI" : { "type" : "integer", "description" : "Synchronize with reverse API (1 for yes, 0 for no)" @@ -4364,15 +4374,6 @@ margin-bottom: 20px; } }, "description" : "LimeRFE" -}; - defs.LimeSdrInputActions = { - "properties" : { - "record" : { - "type" : "integer", - "description" : "Record IQ stream action\n * 0 - stop recording\n * 1 - start recording\n" - } - }, - "description" : "LimeSDR" }; defs.LimeSdrInputReport = { "properties" : { @@ -4494,9 +4495,6 @@ margin-bottom: 20px; "type" : "integer", "description" : "IQ samples order\n * 0 - Q then I (swapped)\n * 1 - I then Q (straight)\n" }, - "fileRecordName" : { - "type" : "string" - }, "gpioDir" : { "type" : "integer", "format" : "int8" @@ -4642,15 +4640,6 @@ margin-bottom: 20px; } }, "description" : "LimeSDR" -}; - defs.LocalInputActions = { - "properties" : { - "record" : { - "type" : "integer", - "description" : "Record IQ stream action\n * 0 - stop recording\n * 1 - start recording" - } - }, - "description" : "LocalInput" }; defs.LocalInputReport = { "properties" : { @@ -4672,9 +4661,6 @@ margin-bottom: 20px; "iqCorrection" : { "type" : "integer" }, - "fileRecordName" : { - "type" : "string" - }, "useReverseAPI" : { "type" : "integer", "description" : "Synchronize with reverse API (1 for yes, 0 for no)" @@ -5055,15 +5041,6 @@ margin-bottom: 20px; } }, "description" : "Enumeration with name for values" -}; - defs.PerseusActions = { - "properties" : { - "record" : { - "type" : "integer", - "description" : "Record IQ stream action\n * 0 - stop recording\n * 1 - start recording" - } - }, - "description" : "Perseus" }; defs.PerseusReport = { "properties" : { @@ -5114,9 +5091,6 @@ margin-bottom: 20px; "type" : "integer", "description" : "IQ samples order\n * 0 - Q then I (swapped)\n * 1 - I then Q (straight)\n" }, - "fileRecordName" : { - "type" : "string" - }, "attenuator" : { "type" : "integer", "description" : "Attenuator setting in Bels (0, 10, 20 30 dB)" @@ -5136,15 +5110,6 @@ margin-bottom: 20px; } }, "description" : "Perseus" -}; - defs.PlutoSdrInputActions = { - "properties" : { - "record" : { - "type" : "integer", - "description" : "Record IQ stream action\n * 0 - stop recording\n * 1 - start recording\n" - } - }, - "description" : "PlutoSDR" }; defs.PlutoSdrInputReport = { "properties" : { @@ -5239,9 +5204,6 @@ margin-bottom: 20px; "type" : "integer", "description" : "IQ samples order\n * 0 - Q then I (swapped)\n * 1 - I then Q (straight)\n" }, - "fileRecordName" : { - "type" : "string" - }, "useReverseAPI" : { "type" : "integer", "description" : "Synchronize with reverse API (1 for yes, 0 for no)" @@ -5646,15 +5608,6 @@ margin-bottom: 20px; } }, "description" : "An arbitrary range of floating point values" -}; - defs.RemoteInputActions = { - "properties" : { - "record" : { - "type" : "integer", - "description" : "Record IQ stream action\n * 0 - stop recording\n * 1 - start recording" - } - }, - "description" : "RemoteInput" }; defs.RemoteInputReport = { "properties" : { @@ -5704,9 +5657,6 @@ margin-bottom: 20px; "iqCorrection" : { "type" : "integer" }, - "fileRecordName" : { - "type" : "string" - }, "useReverseAPI" : { "type" : "integer", "description" : "Synchronize with reverse API (1 for yes, 0 for no)" @@ -5936,15 +5886,6 @@ margin-bottom: 20px; } }, "description" : "Remote channel source settings" -}; - defs.RtlSdrActions = { - "properties" : { - "record" : { - "type" : "integer", - "description" : "Record IQ stream action\n * 0 - stop recording\n * 1 - start recording\n" - } - }, - "description" : "RTLSDR" }; defs.RtlSdrReport = { "properties" : { @@ -6014,9 +5955,6 @@ margin-bottom: 20px; "type" : "integer", "description" : "Bias tee\n * 0 - inactive\n * 1 - active\n" }, - "fileRecordName" : { - "type" : "string" - }, "useReverseAPI" : { "type" : "integer", "description" : "Synchronize with reverse API (1 for yes, 0 for no)" @@ -6032,15 +5970,6 @@ margin-bottom: 20px; } }, "description" : "RTLSDR" -}; - defs.SDRPlayActions = { - "properties" : { - "record" : { - "type" : "integer", - "description" : "Record IQ stream action\n * 0 - stop recording\n * 1 - start recording" - } - }, - "description" : "SDRplay1" }; defs.SDRPlayReport = { "properties" : { @@ -6124,9 +6053,6 @@ margin-bottom: 20px; "type" : "integer", "description" : "IQ samples order\n * 0 - Q then I (swapped)\n * 1 - I then Q (straight)\n" }, - "fileRecordName" : { - "type" : "string" - }, "useReverseAPI" : { "type" : "integer", "description" : "Synchronize with reverse API (1 for yes, 0 for no)" @@ -6439,15 +6365,6 @@ margin-bottom: 20px; } }, "description" : "A named gain setting specified by its range" -}; - defs.SoapySDRInputActions = { - "properties" : { - "record" : { - "type" : "integer", - "description" : "Record IQ stream action\n * 0 - stop recording\n * 1 - start recording" - } - }, - "description" : "SoapySDR" }; defs.SoapySDRInputSettings = { "properties" : { @@ -6487,9 +6404,6 @@ margin-bottom: 20px; "type" : "integer", "description" : "IQ samples order\n * 0 - Q then I (swapped)\n * 1 - I then Q (straight)\n" }, - "fileRecordName" : { - "type" : "string" - }, "antenna" : { "type" : "string" }, @@ -6731,6 +6645,7 @@ margin-bottom: 20px; } } }; +<<<<<<< ours defs.TestSourceActions = { "properties" : { "record" : { @@ -6739,6 +6654,114 @@ margin-bottom: 20px; } }, "description" : "TestSource" +======= + defs.TestMISettings = { + "properties" : { + "useReverseAPI" : { + "type" : "integer", + "description" : "Synchronize with reverse API (1 for yes, 0 for no)" + }, + "reverseAPIAddress" : { + "type" : "string" + }, + "reverseAPIPort" : { + "type" : "integer" + }, + "reverseAPIDeviceIndex" : { + "type" : "integer" + }, + "streams" : { + "type" : "array", + "description" : "Settings for each of the streams", + "items" : { + "$ref" : "#/definitions/TestMiStreamSettings" + } + } + }, + "description" : "TestMISettings" +}; + defs.TestMOSyncSettings = { + "properties" : { + "centerFrequency" : { + "type" : "integer", + "format" : "int64" + }, + "sampleRate" : { + "type" : "integer", + "format" : "int64" + }, + "log2Interp" : { + "type" : "integer" + }, + "fcPosTx" : { + "type" : "integer", + "description" : "See BladeRF2MIMO::fcPos_t" + } + }, + "description" : "TestMOSync" +}; + defs.TestMiStreamSettings = { + "properties" : { + "streamIndex" : { + "type" : "integer", + "description" : "Index of the stream to which the settings apply" + }, + "centerFrequency" : { + "type" : "integer", + "format" : "uint64" + }, + "frequencyShift" : { + "type" : "integer" + }, + "sampleRate" : { + "type" : "integer" + }, + "log2Decim" : { + "type" : "integer" + }, + "fcPos" : { + "type" : "integer" + }, + "sampleSizeIndex" : { + "type" : "integer" + }, + "amplitudeBits" : { + "type" : "integer" + }, + "autoCorrOptions" : { + "type" : "integer" + }, + "modulation" : { + "type" : "integer" + }, + "modulationTone" : { + "type" : "integer" + }, + "amModulation" : { + "type" : "integer" + }, + "fmDeviation" : { + "type" : "integer" + }, + "dcFactor" : { + "type" : "number", + "format" : "float" + }, + "iFactor" : { + "type" : "number", + "format" : "float" + }, + "qFactor" : { + "type" : "number", + "format" : "float" + }, + "phaseImbalance" : { + "type" : "number", + "format" : "float" + } + }, + "description" : "TestMiStreamSettings" +>>>>>>> theirs }; defs.TestSourceSettings = { "properties" : { @@ -6795,9 +6818,6 @@ margin-bottom: 20px; "type" : "number", "format" : "float" }, - "fileRecordName" : { - "type" : "string" - }, "useReverseAPI" : { "type" : "integer", "description" : "Synchronize with reverse API (1 for yes, 0 for no)" @@ -7372,15 +7392,6 @@ margin-bottom: 20px; } }, "description" : "WFMMod" -}; - defs.XtrxInputActions = { - "properties" : { - "record" : { - "type" : "integer", - "description" : "Record IQ stream action\n * 0 - stop recording\n * 1 - start recording\n" - } - }, - "description" : "XTRX" }; defs.XtrxInputReport = { "properties" : { @@ -7480,9 +7491,6 @@ margin-bottom: 20px; "type" : "integer", "description" : "IQ samples order\n * 0 - Q then I (swapped)\n * 1 - I then Q (straight)\n" }, - "fileRecordName" : { - "type" : "string" - }, "useReverseAPI" : { "type" : "integer", "description" : "Synchronize with reverse API (1 for yes, 0 for no)" @@ -33585,7 +33593,11 @@ except ApiException as e:
+<<<<<<< ours Generated 2020-08-08T23:29:13.057+02:00 +======= + Generated 2020-08-08T10:04:58.845+02:00 +>>>>>>> theirs
diff --git a/sdrbase/resources/webapi/doc/swagger/include/Airspy.yaml b/sdrbase/resources/webapi/doc/swagger/include/Airspy.yaml index 101d88f5e..0e6d4d452 100644 --- a/sdrbase/resources/webapi/doc/swagger/include/Airspy.yaml +++ b/sdrbase/resources/webapi/doc/swagger/include/Airspy.yaml @@ -43,8 +43,6 @@ AirspySettings: IQ samples order * 0 - Q then I (swapped) * 1 - I then Q (straight) - fileRecordName: - type: string useReverseAPI: description: Synchronize with reverse API (1 for yes, 0 for no) type: integer @@ -62,13 +60,3 @@ AirspyReport: type: array items: $ref: "/doc/swagger/include/Structs.yaml#/SampleRate" - -AirspyActions: - description: Airspy - properties: - record: - type: integer - description: > - Record IQ stream action - * 0 - stop recording - * 1 - start recording diff --git a/sdrbase/resources/webapi/doc/swagger/include/AirspyHF.yaml b/sdrbase/resources/webapi/doc/swagger/include/AirspyHF.yaml index 21c51f93b..5ac8e321c 100644 --- a/sdrbase/resources/webapi/doc/swagger/include/AirspyHF.yaml +++ b/sdrbase/resources/webapi/doc/swagger/include/AirspyHF.yaml @@ -23,8 +23,6 @@ AirspyHFSettings: * 1 - I then Q (straight) bandIndex: type: integer - fileRecordName: - type: string useReverseAPI: description: Synchronize with reverse API (1 for yes, 0 for no) type: integer @@ -61,13 +59,3 @@ AirspyHFReport: type: array items: $ref: "/doc/swagger/include/Structs.yaml#/SampleRate" - -AirspyHFActions: - description: AirspyHF - properties: - record: - type: integer - description: > - Record IQ stream action - * 0 - stop recording - * 1 - start recording \ No newline at end of file diff --git a/sdrbase/resources/webapi/doc/swagger/include/BladeRF1.yaml b/sdrbase/resources/webapi/doc/swagger/include/BladeRF1.yaml index d65e2fb60..1444272d8 100644 --- a/sdrbase/resources/webapi/doc/swagger/include/BladeRF1.yaml +++ b/sdrbase/resources/webapi/doc/swagger/include/BladeRF1.yaml @@ -34,8 +34,6 @@ BladeRF1InputSettings: IQ samples order * 0 - Q then I (swapped) * 1 - I then Q (straight) - fileRecordName: - type: string useReverseAPI: description: Synchronize with reverse API (1 for yes, 0 for no) type: integer @@ -46,16 +44,6 @@ BladeRF1InputSettings: reverseAPIDeviceIndex: type: integer -BladeRF1InputActions: - description: BladeRF1 - properties: - record: - type: integer - description: > - Record IQ stream action - * 0 - stop recording - * 1 - start recording - BladeRF1OutputSettings: description: BladeRF1 properties: diff --git a/sdrbase/resources/webapi/doc/swagger/include/BladeRF2.yaml b/sdrbase/resources/webapi/doc/swagger/include/BladeRF2.yaml index ed0e0aadc..bfeac7262 100644 --- a/sdrbase/resources/webapi/doc/swagger/include/BladeRF2.yaml +++ b/sdrbase/resources/webapi/doc/swagger/include/BladeRF2.yaml @@ -35,8 +35,6 @@ BladeRF2InputSettings: IQ samples order * 0 - Q then I (swapped) * 1 - I then Q (straight) - fileRecordName: - type: string useReverseAPI: description: Synchronize with reverse API (1 for yes, 0 for no) type: integer @@ -63,16 +61,6 @@ BladeRF2InputReport: items: $ref: "/doc/swagger/include/Structs.yaml#/NamedEnum" -BladeRF2InputActions: - description: BladeRF2 - properties: - record: - type: integer - description: > - Record IQ stream action - * 0 - stop recording - * 1 - start recording - BladeRF2OutputSettings: description: BladeRF2 properties: diff --git a/sdrbase/resources/webapi/doc/swagger/include/DeviceActions.yaml b/sdrbase/resources/webapi/doc/swagger/include/DeviceActions.yaml index beab35b84..c7abaffc0 100644 --- a/sdrbase/resources/webapi/doc/swagger/include/DeviceActions.yaml +++ b/sdrbase/resources/webapi/doc/swagger/include/DeviceActions.yaml @@ -14,6 +14,7 @@ DeviceActions: originatorIndex: description: Optional for reverse API. This is the device set index from where the message comes from. type: integer +<<<<<<< ours airspyActions: $ref: "/doc/swagger/include/Airspy.yaml#/AirspyActions" airspyHFActions: @@ -50,3 +51,7 @@ DeviceActions: $ref: "/doc/swagger/include/TestSource.yaml#/TestSourceActions" xtrxInputActions: $ref: "/doc/swagger/include/Xtrx.yaml#/XtrxInputActions" +======= + sigMFFileInputActions: + $ref: "/doc/swagger/include/SigMFFileInput.yaml#/SigMFFileInputActions" +>>>>>>> theirs diff --git a/sdrbase/resources/webapi/doc/swagger/include/FCDPro.yaml b/sdrbase/resources/webapi/doc/swagger/include/FCDPro.yaml index ab69fc7b5..0fbad784b 100644 --- a/sdrbase/resources/webapi/doc/swagger/include/FCDPro.yaml +++ b/sdrbase/resources/webapi/doc/swagger/include/FCDPro.yaml @@ -57,8 +57,6 @@ FCDProSettings: IQ samples order * 0 - Q then I (swapped) * 1 - I then Q (straight) - fileRecordName: - type: string useReverseAPI: description: Synchronize with reverse API (1 for yes, 0 for no) type: integer @@ -68,13 +66,3 @@ FCDProSettings: type: integer reverseAPIDeviceIndex: type: integer - -FCDProActions: - description: FCDPro - properties: - record: - type: integer - description: > - Record IQ stream action - * 0 - stop recording - * 1 - start recording diff --git a/sdrbase/resources/webapi/doc/swagger/include/FCDProPlus.yaml b/sdrbase/resources/webapi/doc/swagger/include/FCDProPlus.yaml index 9c57d23ce..6f2e0d3cb 100644 --- a/sdrbase/resources/webapi/doc/swagger/include/FCDProPlus.yaml +++ b/sdrbase/resources/webapi/doc/swagger/include/FCDProPlus.yaml @@ -43,8 +43,6 @@ FCDProPlusSettings: IQ samples order * 0 - Q then I (swapped) * 1 - I then Q (straight) - fileRecordName: - type: string useReverseAPI: description: Synchronize with reverse API (1 for yes, 0 for no) type: integer @@ -54,13 +52,3 @@ FCDProPlusSettings: type: integer reverseAPIDeviceIndex: type: integer - -FCDProPlusActions: - description: FCDProPlus - properties: - record: - type: integer - description: > - Record IQ stream action - * 0 - stop recording - * 1 - start recording diff --git a/sdrbase/resources/webapi/doc/swagger/include/HackRF.yaml b/sdrbase/resources/webapi/doc/swagger/include/HackRF.yaml index 374c0bcb9..e9bb65b36 100644 --- a/sdrbase/resources/webapi/doc/swagger/include/HackRF.yaml +++ b/sdrbase/resources/webapi/doc/swagger/include/HackRF.yaml @@ -27,8 +27,6 @@ HackRFInputSettings: type: integer iqCorrection: type: integer - fileRecordName: - type: string transverterMode: type: integer transverterDeltaFrequency: @@ -50,16 +48,6 @@ HackRFInputSettings: reverseAPIDeviceIndex: type: integer -HackRFInputActions: - description: HackRF - properties: - record: - type: integer - description: > - Record IQ stream action - * 0 - stop recording - * 1 - start recording - HackRFOutputSettings: description: HackRF properties: diff --git a/sdrbase/resources/webapi/doc/swagger/include/KiwiSDR.yaml b/sdrbase/resources/webapi/doc/swagger/include/KiwiSDR.yaml index e93a06560..d02981dbe 100644 --- a/sdrbase/resources/webapi/doc/swagger/include/KiwiSDR.yaml +++ b/sdrbase/resources/webapi/doc/swagger/include/KiwiSDR.yaml @@ -14,8 +14,6 @@ KiwiSDRSettings: serverAddress: description: Distant KiwiSDR instance URL or IPv4 address with port type: string - fileRecordName: - type: string useReverseAPI: description: Synchronize with reverse API (1 for yes, 0 for no) type: integer @@ -32,13 +30,3 @@ KiwiSDRReport: status: description: 0 for Idle, 1 for Connecting, 2 for Connected, 3 for Error, 4 for Disconnected type: integer - -KiwiSDRActions: - description: KiwiSDR - properties: - record: - type: integer - description: > - Record IQ stream action - * 0 - stop recording - * 1 - start recording diff --git a/sdrbase/resources/webapi/doc/swagger/include/LimeSdr.yaml b/sdrbase/resources/webapi/doc/swagger/include/LimeSdr.yaml index c122d419c..df2e22497 100644 --- a/sdrbase/resources/webapi/doc/swagger/include/LimeSdr.yaml +++ b/sdrbase/resources/webapi/doc/swagger/include/LimeSdr.yaml @@ -51,8 +51,6 @@ LimeSdrInputSettings: IQ samples order * 0 - Q then I (swapped) * 1 - I then Q (straight) - fileRecordName: - type: string gpioDir: type: integer format: int8 @@ -156,16 +154,6 @@ LimeSdrInputReport: type: integer format: int8 -LimeSdrInputActions: - description: LimeSDR - properties: - record: - type: integer - description: > - Record IQ stream action - * 0 - stop recording - * 1 - start recording - LimeSdrOutputReport: description: LimeSDR properties: diff --git a/sdrbase/resources/webapi/doc/swagger/include/LocalInput.yaml b/sdrbase/resources/webapi/doc/swagger/include/LocalInput.yaml index decc03bb9..cb4a0ef00 100644 --- a/sdrbase/resources/webapi/doc/swagger/include/LocalInput.yaml +++ b/sdrbase/resources/webapi/doc/swagger/include/LocalInput.yaml @@ -5,8 +5,6 @@ LocalInputSettings: type: integer iqCorrection: type: integer - fileRecordName: - type: string useReverseAPI: description: Synchronize with reverse API (1 for yes, 0 for no) type: integer @@ -25,13 +23,3 @@ LocalInputReport: format: uint64 sampleRate: type: integer - -LocalInputActions: - description: LocalInput - properties: - record: - type: integer - description: > - Record IQ stream action - * 0 - stop recording - * 1 - start recording \ No newline at end of file diff --git a/sdrbase/resources/webapi/doc/swagger/include/Perseus.yaml b/sdrbase/resources/webapi/doc/swagger/include/Perseus.yaml index 718c3074d..d2030886c 100644 --- a/sdrbase/resources/webapi/doc/swagger/include/Perseus.yaml +++ b/sdrbase/resources/webapi/doc/swagger/include/Perseus.yaml @@ -30,8 +30,6 @@ PerseusSettings: IQ samples order * 0 - Q then I (swapped) * 1 - I then Q (straight) - fileRecordName: - type: string attenuator: description: Attenuator setting in Bels (0, 10, 20 30 dB) type: integer @@ -52,13 +50,3 @@ PerseusReport: type: array items: $ref: "/doc/swagger/include/Structs.yaml#/SampleRate" - -PerseusActions: - description: Perseus - properties: - record: - type: integer - description: > - Record IQ stream action - * 0 - stop recording - * 1 - start recording \ No newline at end of file diff --git a/sdrbase/resources/webapi/doc/swagger/include/PlutoSdr.yaml b/sdrbase/resources/webapi/doc/swagger/include/PlutoSdr.yaml index 2111d0a52..0d59b1270 100644 --- a/sdrbase/resources/webapi/doc/swagger/include/PlutoSdr.yaml +++ b/sdrbase/resources/webapi/doc/swagger/include/PlutoSdr.yaml @@ -56,8 +56,6 @@ PlutoSdrInputSettings: IQ samples order * 0 - Q then I (swapped) * 1 - I then Q (straight) - fileRecordName: - type: string useReverseAPI: description: Synchronize with reverse API (1 for yes, 0 for no) type: integer @@ -138,13 +136,3 @@ PlutoSdrOutputReport: temperature: type: number format: float - -PlutoSdrInputActions: - description: PlutoSDR - properties: - record: - type: integer - description: > - Record IQ stream action - * 0 - stop recording - * 1 - start recording diff --git a/sdrbase/resources/webapi/doc/swagger/include/RemoteInput.yaml b/sdrbase/resources/webapi/doc/swagger/include/RemoteInput.yaml index 832de6cd3..a35e4dbb3 100644 --- a/sdrbase/resources/webapi/doc/swagger/include/RemoteInput.yaml +++ b/sdrbase/resources/webapi/doc/swagger/include/RemoteInput.yaml @@ -13,8 +13,6 @@ RemoteInputSettings: type: integer iqCorrection: type: integer - fileRecordName: - type: string useReverseAPI: description: Synchronize with reverse API (1 for yes, 0 for no) type: integer @@ -45,13 +43,3 @@ RemoteInputReport: maxNbRecovery: description: Maximum number of recovery blocks used per frame type: integer - -RemoteInputActions: - description: RemoteInput - properties: - record: - type: integer - description: > - Record IQ stream action - * 0 - stop recording - * 1 - start recording \ No newline at end of file diff --git a/sdrbase/resources/webapi/doc/swagger/include/RtlSdr.yaml b/sdrbase/resources/webapi/doc/swagger/include/RtlSdr.yaml index 66e04a3f8..253012cc9 100644 --- a/sdrbase/resources/webapi/doc/swagger/include/RtlSdr.yaml +++ b/sdrbase/resources/webapi/doc/swagger/include/RtlSdr.yaml @@ -45,8 +45,6 @@ RtlSdrSettings: Bias tee * 0 - inactive * 1 - active - fileRecordName: - type: string useReverseAPI: description: Synchronize with reverse API (1 for yes, 0 for no) type: integer @@ -64,13 +62,3 @@ RtlSdrReport: type: array items: $ref: "/doc/swagger/include/Structs.yaml#/Gain" - -RtlSdrActions: - description: RTLSDR - properties: - record: - type: integer - description: > - Record IQ stream action - * 0 - stop recording - * 1 - start recording diff --git a/sdrbase/resources/webapi/doc/swagger/include/SDRPlay.yaml b/sdrbase/resources/webapi/doc/swagger/include/SDRPlay.yaml index 84b45fb4e..528a5a70e 100644 --- a/sdrbase/resources/webapi/doc/swagger/include/SDRPlay.yaml +++ b/sdrbase/resources/webapi/doc/swagger/include/SDRPlay.yaml @@ -39,8 +39,6 @@ SDRPlaySettings: IQ samples order * 0 - Q then I (swapped) * 1 - I then Q (straight) - fileRecordName: - type: string useReverseAPI: description: Synchronize with reverse API (1 for yes, 0 for no) type: integer @@ -70,13 +68,3 @@ SDRPlayReport: type: array items: $ref: "/doc/swagger/include/Structs.yaml#/FrequencyBand" - -SDRPlayActions: - description: SDRplay1 - properties: - record: - type: integer - description: > - Record IQ stream action - * 0 - stop recording - * 1 - start recording \ No newline at end of file diff --git a/sdrbase/resources/webapi/doc/swagger/include/SoapySDR.yaml b/sdrbase/resources/webapi/doc/swagger/include/SoapySDR.yaml index 9858dc7a8..637b7834c 100644 --- a/sdrbase/resources/webapi/doc/swagger/include/SoapySDR.yaml +++ b/sdrbase/resources/webapi/doc/swagger/include/SoapySDR.yaml @@ -30,8 +30,6 @@ SoapySDRInputSettings: IQ samples order * 0 - Q then I (swapped) * 1 - I then Q (straight) - fileRecordName: - type: string antenna: type: string bandwidth: @@ -250,13 +248,3 @@ definitions: type: array items: type: string - -SoapySDRInputActions: - description: SoapySDR - properties: - record: - type: integer - description: > - Record IQ stream action - * 0 - stop recording - * 1 - start recording \ No newline at end of file diff --git a/sdrbase/resources/webapi/doc/swagger/include/TestSource.yaml b/sdrbase/resources/webapi/doc/swagger/include/TestSource.yaml index bb8499d37..01443cf61 100644 --- a/sdrbase/resources/webapi/doc/swagger/include/TestSource.yaml +++ b/sdrbase/resources/webapi/doc/swagger/include/TestSource.yaml @@ -38,8 +38,6 @@ TestSourceSettings: phaseImbalance: type: number format: float - fileRecordName: - type: string useReverseAPI: description: Synchronize with reverse API (1 for yes, 0 for no) type: integer @@ -49,13 +47,3 @@ TestSourceSettings: type: integer reverseAPIDeviceIndex: type: integer - -TestSourceActions: - description: TestSource - properties: - record: - type: integer - description: > - Record IQ stream action - * 0 - stop recording - * 1 - start recording \ No newline at end of file diff --git a/sdrbase/resources/webapi/doc/swagger/include/Xtrx.yaml b/sdrbase/resources/webapi/doc/swagger/include/Xtrx.yaml index 273bd22ac..11d462ef9 100644 --- a/sdrbase/resources/webapi/doc/swagger/include/Xtrx.yaml +++ b/sdrbase/resources/webapi/doc/swagger/include/Xtrx.yaml @@ -58,8 +58,6 @@ XtrxInputSettings: IQ samples order * 0 - Q then I (swapped) * 1 - I then Q (straight) - fileRecordName: - type: string useReverseAPI: description: Synchronize with reverse API (1 for yes, 0 for no) type: integer @@ -87,16 +85,6 @@ XtrxInputReport: description: 1 if GPSDO is locked else 0 type: integer -XtrxInputActions: - description: XTRX - properties: - record: - type: integer - description: > - Record IQ stream action - * 0 - stop recording - * 1 - start recording - XtrxOutputSettings: description: XTRX properties: diff --git a/sdrbase/webapi/webapirequestmapper.cpp b/sdrbase/webapi/webapirequestmapper.cpp index 74b7e8456..a29abe57b 100644 --- a/sdrbase/webapi/webapirequestmapper.cpp +++ b/sdrbase/webapi/webapirequestmapper.cpp @@ -3487,100 +3487,20 @@ bool WebAPIRequestMapper::getDeviceActions( if (deviceKeys.contains(deviceActionsKey) && deviceActionsJson[deviceActionsKey].isObject()) { - QJsonObject actionsJsonObject = deviceActionsJson[deviceActionsKey].toObject(); - deviceActionsKeys = actionsJsonObject.keys(); + // QJsonObject actionsJsonObject = deviceActionsJson[deviceActionsKey].toObject(); + // deviceActionsKeys = actionsJsonObject.keys(); - if (deviceActionsKey == "airspyActions") - { - deviceActions->setAirspyActions(new SWGSDRangel::SWGAirspyActions()); - deviceActions->getAirspyActions()->fromJsonObject(actionsJsonObject); - } - else if (deviceActionsKey == "airspyHFActions") - { - deviceActions->setAirspyHfActions(new SWGSDRangel::SWGAirspyHFActions()); - deviceActions->getAirspyHfActions()->fromJsonObject(actionsJsonObject); - } - else if (deviceActionsKey == "bladeRF1InputActions") - { - deviceActions->setBladeRf1InputActions(new SWGSDRangel::SWGBladeRF1InputActions()); - deviceActions->getBladeRf1InputActions()->fromJsonObject(actionsJsonObject); - } - else if (deviceActionsKey == "fcdProActions") - { - deviceActions->setFcdProActions(new SWGSDRangel::SWGFCDProActions()); - deviceActions->getFcdProActions()->fromJsonObject(actionsJsonObject); - } - else if (deviceActionsKey == "fcdProPlusActions") - { - deviceActions->setFcdProPlusActions(new SWGSDRangel::SWGFCDProPlusActions()); - deviceActions->getFcdProPlusActions()->fromJsonObject(actionsJsonObject); - } - else if (deviceActionsKey == "hackRFInputActions") - { - deviceActions->setHackRfInputActions(new SWGSDRangel::SWGHackRFInputActions()); - deviceActions->getHackRfInputActions()->fromJsonObject(actionsJsonObject); - } - else if (deviceActionsKey == "kiwiSDRActions") - { - deviceActions->setKiwiSdrActions(new SWGSDRangel::SWGKiwiSDRActions()); - deviceActions->getKiwiSdrActions()->fromJsonObject(actionsJsonObject); - } - else if (deviceActionsKey == "limeSdrInputActions") - { - deviceActions->setLimeSdrInputActions(new SWGSDRangel::SWGLimeSdrInputActions()); - deviceActions->getLimeSdrInputActions()->fromJsonObject(actionsJsonObject); - } - else if (deviceActionsKey == "localInputActions") - { - deviceActions->setLocalInputActions(new SWGSDRangel::SWGLocalInputActions()); - deviceActions->getLocalInputActions()->fromJsonObject(actionsJsonObject); - } - else if (deviceActionsKey == "perseusActions") - { - deviceActions->setPerseusActions(new SWGSDRangel::SWGPerseusActions()); - deviceActions->getPerseusActions()->fromJsonObject(actionsJsonObject); - } - else if (deviceActionsKey == "plutoSdrInputActions") - { - deviceActions->setPlutoSdrInputActions(new SWGSDRangel::SWGPlutoSdrInputActions()); - deviceActions->getPlutoSdrInputActions()->fromJsonObject(actionsJsonObject); - } - else if (deviceActionsKey == "remoteInputActions") - { - deviceActions->setRemoteInputActions(new SWGSDRangel::SWGRemoteInputActions()); - deviceActions->getRemoteInputActions()->fromJsonObject(actionsJsonObject); - } - else if (deviceActionsKey == "rtlSdrActions") - { - deviceActions->setRtlSdrActions(new SWGSDRangel::SWGRtlSdrActions()); - deviceActions->getRtlSdrActions()->fromJsonObject(actionsJsonObject); - } - else if (deviceActionsKey == "sdrPlayActions") - { - deviceActions->setSdrPlayActions(new SWGSDRangel::SWGSDRPlayActions()); - deviceActions->getSdrPlayActions()->fromJsonObject(actionsJsonObject); - } - else if (deviceActionsKey == "soapySDRInputActions") - { - deviceActions->setSoapySdrInputActions(new SWGSDRangel::SWGSoapySDRInputActions()); - deviceActions->getSoapySdrInputActions()->fromJsonObject(actionsJsonObject); - } - else if (deviceActionsKey == "testSourceActions") - { - deviceActions->setTestSourceActions(new SWGSDRangel::SWGTestSourceActions()); - deviceActions->getTestSourceActions()->fromJsonObject(actionsJsonObject); - } - else if (deviceActionsKey == "xtrxInputActions") - { - deviceActions->setXtrxInputActions(new SWGSDRangel::SWGXtrxInputActions()); - deviceActions->getXtrxInputActions()->fromJsonObject(actionsJsonObject); - } - else - { + // if (deviceActionsKey == "xtrxInputActions") + // { + // deviceActions->setXtrxInputActions(new SWGSDRangel::SWGXtrxInputActions()); + // deviceActions->getXtrxInputActions()->fromJsonObject(actionsJsonObject); + // } + // else + // { return false; - } + // } - return true; + // return true; } else { @@ -3674,23 +3594,7 @@ void WebAPIRequestMapper::resetDeviceActions(SWGSDRangel::SWGDeviceActions& devi { deviceActions.cleanup(); deviceActions.setDeviceHwType(nullptr); - deviceActions.setAirspyActions(nullptr); - deviceActions.setAirspyHfActions(nullptr); - deviceActions.setBladeRf1InputActions(nullptr); - deviceActions.setFcdProActions(nullptr); - deviceActions.setFcdProPlusActions(nullptr); - deviceActions.setHackRfInputActions(nullptr); - deviceActions.setKiwiSdrActions(nullptr); - deviceActions.setLimeSdrInputActions(nullptr); - deviceActions.setLocalInputActions(nullptr); - deviceActions.setPerseusActions(nullptr); - deviceActions.setPlutoSdrInputActions(nullptr); - deviceActions.setRemoteInputActions(nullptr); - deviceActions.setRtlSdrActions(nullptr); - deviceActions.setSdrPlayActions(nullptr); - deviceActions.setSoapySdrInputActions(nullptr); - deviceActions.setTestSourceActions(nullptr); - deviceActions.setXtrxInputActions(nullptr); + // deviceActions.setXtrxInputActions(nullptr); } void WebAPIRequestMapper::resetChannelSettings(SWGSDRangel::SWGChannelSettings& channelSettings) @@ -3915,9 +3819,6 @@ void WebAPIRequestMapper::processSoapySDRSettings( if (deviceSettingsJson.contains("transverterDeltaFrequency")) { swgSoapySDRInputSettings->setTransverterDeltaFrequency(deviceSettingsJson["transverterDeltaFrequency"].toInt()); } - if (deviceSettingsJson.contains("fileRecordName")) { - swgSoapySDRInputSettings->setFileRecordName(new QString(deviceSettingsJson["fileRecordName"].toString())); - } if (deviceSettingsJson.contains("antenna")) { swgSoapySDRInputSettings->setAntenna(new QString(deviceSettingsJson["antenna"].toString())); } diff --git a/swagger/sdrangel/api/swagger/include/Airspy.yaml b/swagger/sdrangel/api/swagger/include/Airspy.yaml index 79049672a..db109df77 100644 --- a/swagger/sdrangel/api/swagger/include/Airspy.yaml +++ b/swagger/sdrangel/api/swagger/include/Airspy.yaml @@ -43,8 +43,6 @@ AirspySettings: IQ samples order * 0 - Q then I (swapped) * 1 - I then Q (straight) - fileRecordName: - type: string useReverseAPI: description: Synchronize with reverse API (1 for yes, 0 for no) type: integer @@ -62,13 +60,3 @@ AirspyReport: type: array items: $ref: "http://swgserver:8081/api/swagger/include/Structs.yaml#/SampleRate" - -AirspyActions: - description: Airspy - properties: - record: - type: integer - description: > - Record IQ stream action - * 0 - stop recording - * 1 - start recording diff --git a/swagger/sdrangel/api/swagger/include/AirspyHF.yaml b/swagger/sdrangel/api/swagger/include/AirspyHF.yaml index ddc1618b8..af53f5db2 100644 --- a/swagger/sdrangel/api/swagger/include/AirspyHF.yaml +++ b/swagger/sdrangel/api/swagger/include/AirspyHF.yaml @@ -23,8 +23,6 @@ AirspyHFSettings: * 1 - I then Q (straight) bandIndex: type: integer - fileRecordName: - type: string useReverseAPI: description: Synchronize with reverse API (1 for yes, 0 for no) type: integer @@ -61,13 +59,3 @@ AirspyHFReport: type: array items: $ref: "http://swgserver:8081/api/swagger/include/Structs.yaml#/SampleRate" - -AirspyHFActions: - description: AirspyHF - properties: - record: - type: integer - description: > - Record IQ stream action - * 0 - stop recording - * 1 - start recording \ No newline at end of file diff --git a/swagger/sdrangel/api/swagger/include/BladeRF1.yaml b/swagger/sdrangel/api/swagger/include/BladeRF1.yaml index d65e2fb60..1444272d8 100644 --- a/swagger/sdrangel/api/swagger/include/BladeRF1.yaml +++ b/swagger/sdrangel/api/swagger/include/BladeRF1.yaml @@ -34,8 +34,6 @@ BladeRF1InputSettings: IQ samples order * 0 - Q then I (swapped) * 1 - I then Q (straight) - fileRecordName: - type: string useReverseAPI: description: Synchronize with reverse API (1 for yes, 0 for no) type: integer @@ -46,16 +44,6 @@ BladeRF1InputSettings: reverseAPIDeviceIndex: type: integer -BladeRF1InputActions: - description: BladeRF1 - properties: - record: - type: integer - description: > - Record IQ stream action - * 0 - stop recording - * 1 - start recording - BladeRF1OutputSettings: description: BladeRF1 properties: diff --git a/swagger/sdrangel/api/swagger/include/BladeRF2.yaml b/swagger/sdrangel/api/swagger/include/BladeRF2.yaml index 6bde2ccf7..962006d91 100644 --- a/swagger/sdrangel/api/swagger/include/BladeRF2.yaml +++ b/swagger/sdrangel/api/swagger/include/BladeRF2.yaml @@ -35,8 +35,6 @@ BladeRF2InputSettings: IQ samples order * 0 - Q then I (swapped) * 1 - I then Q (straight) - fileRecordName: - type: string useReverseAPI: description: Synchronize with reverse API (1 for yes, 0 for no) type: integer @@ -63,16 +61,6 @@ BladeRF2InputReport: items: $ref: "http://swgserver:8081/api/swagger/include/Structs.yaml#/NamedEnum" -BladeRF2InputActions: - description: BladeRF2 - properties: - record: - type: integer - description: > - Record IQ stream action - * 0 - stop recording - * 1 - start recording - BladeRF2OutputSettings: description: BladeRF2 properties: diff --git a/swagger/sdrangel/api/swagger/include/DeviceActions.yaml b/swagger/sdrangel/api/swagger/include/DeviceActions.yaml index 03cf6c2a9..ebf77b159 100644 --- a/swagger/sdrangel/api/swagger/include/DeviceActions.yaml +++ b/swagger/sdrangel/api/swagger/include/DeviceActions.yaml @@ -14,39 +14,3 @@ DeviceActions: originatorIndex: description: Optional for reverse API. This is the device set index from where the message comes from. type: integer - airspyActions: - $ref: "http://swgserver:8081/api/swagger/include/Airspy.yaml#/AirspyActions" - airspyHFActions: - $ref: "http://swgserver:8081/api/swagger/include/AirspyHF.yaml#/AirspyHFActions" - bladeRF1InputActions: - $ref: "http://swgserver:8081/api/swagger/include/BladeRF1.yaml#/BladeRF1InputActions" - bladeRF2InputActions: - $ref: "http://swgserver:8081/api/swagger/include/BladeRF2.yaml#/BladeRF2InputActions" - fcdProActions: - $ref: "http://swgserver:8081/api/swagger/include/FCDPro.yaml#/FCDProActions" - fcdProPlusActions: - $ref: "http://swgserver:8081/api/swagger/include/FCDProPlus.yaml#/FCDProPlusActions" - hackRFInputActions: - $ref: "http://swgserver:8081/api/swagger/include/HackRF.yaml#/HackRFInputActions" - kiwiSDRActions: - $ref: "http://swgserver:8081/api/swagger/include/KiwiSDR.yaml#/KiwiSDRActions" - limeSdrInputActions: - $ref: "http://swgserver:8081/api/swagger/include/LimeSdr.yaml#/LimeSdrInputActions" - localInputActions: - $ref: "http://swgserver:8081/api/swagger/include/LocalInput.yaml#/LocalInputActions" - perseusActions: - $ref: "http://swgserver:8081/api/swagger/include/Perseus.yaml#/PerseusActions" - plutoSdrInputActions: - $ref: "http://swgserver:8081/api/swagger/include/PlutoSdr.yaml#/PlutoSdrInputActions" - remoteInputActions: - $ref: "http://swgserver:8081/api/swagger/include/RemoteInput.yaml#/RemoteInputActions" - rtlSdrActions: - $ref: "http://swgserver:8081/api/swagger/include/RtlSdr.yaml#/RtlSdrActions" - sdrPlayActions: - $ref: "http://swgserver:8081/api/swagger/include/SDRPlay.yaml#/SDRPlayActions" - soapySDRInputActions: - $ref: "http://swgserver:8081/api/swagger/include/SoapySDR.yaml#/SoapySDRInputActions" - testSourceActions: - $ref: "http://swgserver:8081/api/swagger/include/TestSource.yaml#/TestSourceActions" - xtrxInputActions: - $ref: "http://swgserver:8081/api/swagger/include/Xtrx.yaml#/XtrxInputActions" diff --git a/swagger/sdrangel/api/swagger/include/FCDPro.yaml b/swagger/sdrangel/api/swagger/include/FCDPro.yaml index ab69fc7b5..0fbad784b 100644 --- a/swagger/sdrangel/api/swagger/include/FCDPro.yaml +++ b/swagger/sdrangel/api/swagger/include/FCDPro.yaml @@ -57,8 +57,6 @@ FCDProSettings: IQ samples order * 0 - Q then I (swapped) * 1 - I then Q (straight) - fileRecordName: - type: string useReverseAPI: description: Synchronize with reverse API (1 for yes, 0 for no) type: integer @@ -68,13 +66,3 @@ FCDProSettings: type: integer reverseAPIDeviceIndex: type: integer - -FCDProActions: - description: FCDPro - properties: - record: - type: integer - description: > - Record IQ stream action - * 0 - stop recording - * 1 - start recording diff --git a/swagger/sdrangel/api/swagger/include/FCDProPlus.yaml b/swagger/sdrangel/api/swagger/include/FCDProPlus.yaml index 9c57d23ce..6f2e0d3cb 100644 --- a/swagger/sdrangel/api/swagger/include/FCDProPlus.yaml +++ b/swagger/sdrangel/api/swagger/include/FCDProPlus.yaml @@ -43,8 +43,6 @@ FCDProPlusSettings: IQ samples order * 0 - Q then I (swapped) * 1 - I then Q (straight) - fileRecordName: - type: string useReverseAPI: description: Synchronize with reverse API (1 for yes, 0 for no) type: integer @@ -54,13 +52,3 @@ FCDProPlusSettings: type: integer reverseAPIDeviceIndex: type: integer - -FCDProPlusActions: - description: FCDProPlus - properties: - record: - type: integer - description: > - Record IQ stream action - * 0 - stop recording - * 1 - start recording diff --git a/swagger/sdrangel/api/swagger/include/HackRF.yaml b/swagger/sdrangel/api/swagger/include/HackRF.yaml index 374c0bcb9..e9bb65b36 100644 --- a/swagger/sdrangel/api/swagger/include/HackRF.yaml +++ b/swagger/sdrangel/api/swagger/include/HackRF.yaml @@ -27,8 +27,6 @@ HackRFInputSettings: type: integer iqCorrection: type: integer - fileRecordName: - type: string transverterMode: type: integer transverterDeltaFrequency: @@ -50,16 +48,6 @@ HackRFInputSettings: reverseAPIDeviceIndex: type: integer -HackRFInputActions: - description: HackRF - properties: - record: - type: integer - description: > - Record IQ stream action - * 0 - stop recording - * 1 - start recording - HackRFOutputSettings: description: HackRF properties: diff --git a/swagger/sdrangel/api/swagger/include/KiwiSDR.yaml b/swagger/sdrangel/api/swagger/include/KiwiSDR.yaml index e93a06560..d02981dbe 100644 --- a/swagger/sdrangel/api/swagger/include/KiwiSDR.yaml +++ b/swagger/sdrangel/api/swagger/include/KiwiSDR.yaml @@ -14,8 +14,6 @@ KiwiSDRSettings: serverAddress: description: Distant KiwiSDR instance URL or IPv4 address with port type: string - fileRecordName: - type: string useReverseAPI: description: Synchronize with reverse API (1 for yes, 0 for no) type: integer @@ -32,13 +30,3 @@ KiwiSDRReport: status: description: 0 for Idle, 1 for Connecting, 2 for Connected, 3 for Error, 4 for Disconnected type: integer - -KiwiSDRActions: - description: KiwiSDR - properties: - record: - type: integer - description: > - Record IQ stream action - * 0 - stop recording - * 1 - start recording diff --git a/swagger/sdrangel/api/swagger/include/LimeSdr.yaml b/swagger/sdrangel/api/swagger/include/LimeSdr.yaml index c122d419c..df2e22497 100644 --- a/swagger/sdrangel/api/swagger/include/LimeSdr.yaml +++ b/swagger/sdrangel/api/swagger/include/LimeSdr.yaml @@ -51,8 +51,6 @@ LimeSdrInputSettings: IQ samples order * 0 - Q then I (swapped) * 1 - I then Q (straight) - fileRecordName: - type: string gpioDir: type: integer format: int8 @@ -156,16 +154,6 @@ LimeSdrInputReport: type: integer format: int8 -LimeSdrInputActions: - description: LimeSDR - properties: - record: - type: integer - description: > - Record IQ stream action - * 0 - stop recording - * 1 - start recording - LimeSdrOutputReport: description: LimeSDR properties: diff --git a/swagger/sdrangel/api/swagger/include/LocalInput.yaml b/swagger/sdrangel/api/swagger/include/LocalInput.yaml index decc03bb9..cb4a0ef00 100644 --- a/swagger/sdrangel/api/swagger/include/LocalInput.yaml +++ b/swagger/sdrangel/api/swagger/include/LocalInput.yaml @@ -5,8 +5,6 @@ LocalInputSettings: type: integer iqCorrection: type: integer - fileRecordName: - type: string useReverseAPI: description: Synchronize with reverse API (1 for yes, 0 for no) type: integer @@ -25,13 +23,3 @@ LocalInputReport: format: uint64 sampleRate: type: integer - -LocalInputActions: - description: LocalInput - properties: - record: - type: integer - description: > - Record IQ stream action - * 0 - stop recording - * 1 - start recording \ No newline at end of file diff --git a/swagger/sdrangel/api/swagger/include/Perseus.yaml b/swagger/sdrangel/api/swagger/include/Perseus.yaml index b8dc2ad78..73f75127a 100644 --- a/swagger/sdrangel/api/swagger/include/Perseus.yaml +++ b/swagger/sdrangel/api/swagger/include/Perseus.yaml @@ -30,8 +30,6 @@ PerseusSettings: IQ samples order * 0 - Q then I (swapped) * 1 - I then Q (straight) - fileRecordName: - type: string attenuator: description: Attenuator setting in Bels (0, 10, 20 30 dB) type: integer @@ -52,13 +50,3 @@ PerseusReport: type: array items: $ref: "http://swgserver:8081/api/swagger/include/Structs.yaml#/SampleRate" - -PerseusActions: - description: Perseus - properties: - record: - type: integer - description: > - Record IQ stream action - * 0 - stop recording - * 1 - start recording \ No newline at end of file diff --git a/swagger/sdrangel/api/swagger/include/PlutoSdr.yaml b/swagger/sdrangel/api/swagger/include/PlutoSdr.yaml index 2111d0a52..0d59b1270 100644 --- a/swagger/sdrangel/api/swagger/include/PlutoSdr.yaml +++ b/swagger/sdrangel/api/swagger/include/PlutoSdr.yaml @@ -56,8 +56,6 @@ PlutoSdrInputSettings: IQ samples order * 0 - Q then I (swapped) * 1 - I then Q (straight) - fileRecordName: - type: string useReverseAPI: description: Synchronize with reverse API (1 for yes, 0 for no) type: integer @@ -138,13 +136,3 @@ PlutoSdrOutputReport: temperature: type: number format: float - -PlutoSdrInputActions: - description: PlutoSDR - properties: - record: - type: integer - description: > - Record IQ stream action - * 0 - stop recording - * 1 - start recording diff --git a/swagger/sdrangel/api/swagger/include/RemoteInput.yaml b/swagger/sdrangel/api/swagger/include/RemoteInput.yaml index 832de6cd3..a35e4dbb3 100644 --- a/swagger/sdrangel/api/swagger/include/RemoteInput.yaml +++ b/swagger/sdrangel/api/swagger/include/RemoteInput.yaml @@ -13,8 +13,6 @@ RemoteInputSettings: type: integer iqCorrection: type: integer - fileRecordName: - type: string useReverseAPI: description: Synchronize with reverse API (1 for yes, 0 for no) type: integer @@ -45,13 +43,3 @@ RemoteInputReport: maxNbRecovery: description: Maximum number of recovery blocks used per frame type: integer - -RemoteInputActions: - description: RemoteInput - properties: - record: - type: integer - description: > - Record IQ stream action - * 0 - stop recording - * 1 - start recording \ No newline at end of file diff --git a/swagger/sdrangel/api/swagger/include/RtlSdr.yaml b/swagger/sdrangel/api/swagger/include/RtlSdr.yaml index d53c6d746..f66b0d360 100644 --- a/swagger/sdrangel/api/swagger/include/RtlSdr.yaml +++ b/swagger/sdrangel/api/swagger/include/RtlSdr.yaml @@ -45,8 +45,6 @@ RtlSdrSettings: Bias tee * 0 - inactive * 1 - active - fileRecordName: - type: string useReverseAPI: description: Synchronize with reverse API (1 for yes, 0 for no) type: integer @@ -64,13 +62,3 @@ RtlSdrReport: type: array items: $ref: "http://swgserver:8081/api/swagger/include/Structs.yaml#/Gain" - -RtlSdrActions: - description: RTLSDR - properties: - record: - type: integer - description: > - Record IQ stream action - * 0 - stop recording - * 1 - start recording diff --git a/swagger/sdrangel/api/swagger/include/SDRPlay.yaml b/swagger/sdrangel/api/swagger/include/SDRPlay.yaml index ff4f9fd74..f3fdcab02 100644 --- a/swagger/sdrangel/api/swagger/include/SDRPlay.yaml +++ b/swagger/sdrangel/api/swagger/include/SDRPlay.yaml @@ -39,8 +39,6 @@ SDRPlaySettings: IQ samples order * 0 - Q then I (swapped) * 1 - I then Q (straight) - fileRecordName: - type: string useReverseAPI: description: Synchronize with reverse API (1 for yes, 0 for no) type: integer @@ -70,13 +68,3 @@ SDRPlayReport: type: array items: $ref: "http://swgserver:8081/api/swagger/include/Structs.yaml#/FrequencyBand" - -SDRPlayActions: - description: SDRplay1 - properties: - record: - type: integer - description: > - Record IQ stream action - * 0 - stop recording - * 1 - start recording \ No newline at end of file diff --git a/swagger/sdrangel/api/swagger/include/SoapySDR.yaml b/swagger/sdrangel/api/swagger/include/SoapySDR.yaml index eaf88b30e..87e9357e0 100644 --- a/swagger/sdrangel/api/swagger/include/SoapySDR.yaml +++ b/swagger/sdrangel/api/swagger/include/SoapySDR.yaml @@ -30,8 +30,6 @@ SoapySDRInputSettings: IQ samples order * 0 - Q then I (swapped) * 1 - I then Q (straight) - fileRecordName: - type: string antenna: type: string bandwidth: @@ -250,13 +248,3 @@ definitions: type: array items: type: string - -SoapySDRInputActions: - description: SoapySDR - properties: - record: - type: integer - description: > - Record IQ stream action - * 0 - stop recording - * 1 - start recording \ No newline at end of file diff --git a/swagger/sdrangel/api/swagger/include/TestSource.yaml b/swagger/sdrangel/api/swagger/include/TestSource.yaml index bb8499d37..01443cf61 100644 --- a/swagger/sdrangel/api/swagger/include/TestSource.yaml +++ b/swagger/sdrangel/api/swagger/include/TestSource.yaml @@ -38,8 +38,6 @@ TestSourceSettings: phaseImbalance: type: number format: float - fileRecordName: - type: string useReverseAPI: description: Synchronize with reverse API (1 for yes, 0 for no) type: integer @@ -49,13 +47,3 @@ TestSourceSettings: type: integer reverseAPIDeviceIndex: type: integer - -TestSourceActions: - description: TestSource - properties: - record: - type: integer - description: > - Record IQ stream action - * 0 - stop recording - * 1 - start recording \ No newline at end of file diff --git a/swagger/sdrangel/api/swagger/include/Xtrx.yaml b/swagger/sdrangel/api/swagger/include/Xtrx.yaml index 273bd22ac..11d462ef9 100644 --- a/swagger/sdrangel/api/swagger/include/Xtrx.yaml +++ b/swagger/sdrangel/api/swagger/include/Xtrx.yaml @@ -58,8 +58,6 @@ XtrxInputSettings: IQ samples order * 0 - Q then I (swapped) * 1 - I then Q (straight) - fileRecordName: - type: string useReverseAPI: description: Synchronize with reverse API (1 for yes, 0 for no) type: integer @@ -87,16 +85,6 @@ XtrxInputReport: description: 1 if GPSDO is locked else 0 type: integer -XtrxInputActions: - description: XTRX - properties: - record: - type: integer - description: > - Record IQ stream action - * 0 - stop recording - * 1 - start recording - XtrxOutputSettings: description: XTRX properties: