From 4501066426967d1b1ddb0ca300407dad37d44b03 Mon Sep 17 00:00:00 2001 From: f4exb Date: Wed, 28 Mar 2018 09:27:47 +0200 Subject: [PATCH] SSB demod: removed UDP/RTP copy audio entirely --- doc/img/SSBDemod_plugin.png | Bin 59611 -> 58810 bytes doc/img/SSBDemod_plugin.xcf | Bin 208255 -> 206890 bytes plugins/channelrx/demodssb/readme.md | 8 +++----- plugins/channelrx/demodssb/ssbdemod.cpp | 19 ------------------ plugins/channelrx/demodssb/ssbdemod.h | 2 -- plugins/channelrx/demodssb/ssbdemodgui.cpp | 16 --------------- plugins/channelrx/demodssb/ssbdemodgui.h | 2 -- plugins/channelrx/demodssb/ssbdemodgui.ui | 10 --------- .../channelrx/demodssb/ssbdemodsettings.cpp | 3 --- plugins/channelrx/demodssb/ssbdemodsettings.h | 3 --- 10 files changed, 3 insertions(+), 60 deletions(-) diff --git a/doc/img/SSBDemod_plugin.png b/doc/img/SSBDemod_plugin.png index e8437037aba840748c7661a059d60830fad02e3f..01c670ad4b95e10e76887004acfce723be7fa052 100644 GIT binary patch delta 40894 zcmY&=1yGe;xGqR{cM2jc(nvRwBHfL2BMl!Z2qH*GOLs|k3kZmGx3qMF)LHvKbLP$+ zXN&CkVy!oxc()5<2+czXu`HaAaNti?TVXsL92}bSYh5=uI1B>V10F6lofJHY;x4Z& zgYpM~5`~N}t-ENxO5a}=iYZZgyb@_+h+lq68yQH5r$P9>iWar8NJsVUjG>IDriSV{ zBWn(-v7x0)SAAqfBf6Ra5h0?1?!LlNTR6}7(D~)<`Y$E?@uz4{y$|;UwYjW*r@Jlx z^UmCMz@!w2Z8>VENE`kzXa8J8MC7h*$q}bAGATLvr&XqZ-`}ay1?bn#IKl2rB~4E_ z&h}@a!_K3tvn~{x@7`zcrpxsiz1Krqt2_?oou!WdmR4@1Sbam|_nN08jtX;G?>jji z;!x~$DX&gb!H zQN7*QC+qp*XmpE`>nSfypY(sGijT0Sy}7wrbm^x$-x&)z8xhO&J!(tZtL*qDN8`_9 zZ@J`CTHWO9=O=vBc15k<;AnY!d2m1%puwVzCUBgWgoLC&jzJMlzY|E#T?3L@Y zt7TsfIJfQJmb>Hm2ZF!v0>p$o_D#U`u^G3gYnE!^5fG^7{&ZTXkA_D;uGL-pJupyQ z&FH6~fZo*9l$=b8j)6gu!7sUaxabCrIH-~dtAC%fUkkY1*|C1O z8G$~uY=&}^>?%1}-W_^&(9_Z7{I-LwdePflQeIn)7Lo%||9{TYx>jLgR|gA8r>Cdn zx2)w_tZhCQe|~v@x$Gy>t`g1Cc?+GH3d13WBm+skRIYpO zr%!`eD_fzsm4MswG4EX8t3zoSnJ+0R%!#qI#0{eY-=GKY-SvtvMUJ)v%b~AfV$jWI zlKp(`$9@_p{rcKVm>P$Hfk7!=Y@6kOiwq)tJ`D;rNsf0Z2GZqAlfjNGj4VE3A^oMcCKU*j=2pQz&Q=}Mu#i5 z+m5ZT@VA_;vzwW2Dwg(N;fJPp9S&aMH{fs8lQ&p#4Si)dzq>w}A}$+jwYF~@a*w=6 zTJ}Go65n#+|Fq%w^3KNVlH@w6@=(+zn%Xh>NhM|AE0xV7EOqf*q0O0OekW>>YW}4v z5eW%|0e2^IC-7*&qXnF4!>!kUqWm83uRyd4x1y;k8$kCLY3+?K z8CS}@KPBH$(P@$=|J{7YuW$^fitF@QBu5`=!Si5#r^LkpWuS)RQ7cG}J`Cd7G3;1V)j*cD?8Tkj)tF?#QqwR|sW2YIH*;ZoDE$r(% z@8rpv!#y7?P3Z+A=n40S?t9tI$~MFo%}72*3-*;>+Zmpxy(GrRprRd*D{|mbQDJo+ zul1zx+G$-k%R~{MfKvEDj6=6Nlv>1R(rd)D=R=iA*OTco-JZhC0P^M52N0sqI5|1} zmds;B`sibXpLCX1wnrLOS`EZ8u<2Ik4Q`=EXNxB3NEtxylwFkdeN`0OqGtB;omSct z5)vkT&JPwyDrZ<-SVwHC?evtKCv7WQ4h6SF_2Z`vD4ROcgob+j^)Efvnh z&d$Kd7#w(1)`9KW znX6%BNsP?Pdj_iMY)#=m!jK>Yl+)|=n6pXsH&qS`d~tDcqqci7TOSD+tG!PC925IV z-uCQWnDM3UF17H>=2rE!)glDJfs*gAP;c6>08u0~AZFLarl)_Jv#%IuZ1X%?7Tjxt zB|Wox0cavYGkcpK8NU^ID0c+hd!6)>cwf$0&DGiv7)+{%w#@C~FA`b|RhMixu&IaM zmTk@PY&7pxn6Gt*QHuJJ27=f)0h>=iMkcSKf(_~gsDT+98y3?QhKk$2Gj_+Jd<;;U z&Cj-mukRmhuUgkWQ0RO&fd^|0KmXeVHQW2-_Ws&W)aP>lqh9%QF|m$mJ5cFFd@naZ zpv#nNpu!q4`G{Kg|}S{Q5O5BO~KoQ&tvS!-BG;{;(+!rD7;2GJ z8tATSDZ*o~su8Pe`s;#=WF(T<-th40Y-_7bge~7r083(t-u*vVyawEP9kv{aE<=z0c!$J2mMH4ac9d5uCQrvv!tYxS z3aM4g>m#lI-3P$B6G+PLs}<-Ct->MCx<|h%7WXF}`|5R<5NeD~k-;)@GdIi?xY2Vhp^zi4q~mCpX)f z2&x7KpR`IDI61$p_s7i8P`&=a*Rou*s&U4WP#i{iKSu`_7 z-?1rdIE_C(ElsgdCBthq2t}vC(J;}Mn26|PR0`(=WcBKa*EQ&T?A=RrgjT`DLeJcT zejN~P6Eq{LZ%rDGK=IF&&BpWO*G5>i%1j0mn4d8)aQa@_vk_zL%~V?boh)9nWv<4G+xyf4pMYRsXvqBE`L2b9#qqpdC9HL1*7wXy0l$(t>jJLE0k0( zG2A;^_THufj|}86W(I|FFS?u-1*}P8)s`Uo==w%YmPAYy0+q;#&El$s1L52K8s2~g zyO|1>i5Vl%^#r%=wLN;bH#c3*hP&z@@fWrW6v}njYY*>54LtY_9x*BBitG)>{bNtb zR+GHd230ysxwv*{7&a0JUt83|OZqQH6CLKt#YFb9^N_b0#dMj(M&Pbh1f_lzDEE6& zOSN53^nJ~32O>~1(7gC}k=b>b7^lX#ioF9z_4X}3i9^oQtqZf7Idb+zty0Y`$Q46U zDEH!ecDb4At5Voq&+2Tk&J@wImj|VghO(9xaiD!YEh^ojLrit;!%sD)U|Q6J zDDY3Z#rNa)3YNzE6B1Xfd-70gfP)YBdl-mfJB-I2kr;f63f?NoN^;nDZrXsW?KAz- z%E9*9O-(H>uNu4{^pu~!q2#%{eoqVCVtE>?h}~;_tN2A$01U8SxfDjQwv-{LNjK{A zj=l5<#gr#Nlt8UAb$Ui|rTb=2=zLF4;n8hKCF*%C?|gyt)o>gX$ATJ+`=@kr;>F_q z2)p_IMPat1=;CFZx|S0R(;-$h>Z4Fx$yS>><>k3jh4OuO+C8`j7%c#!VP)4@ng6?^ zQO0(E?%C>PQ`*KipJ?g~eK`#mjZ*Ae8IUXu}1nlWa_3lUXbs={(cxNntYlVdCsm`!ZbO zKHrNEgIeh0bCM8W=`4O-@hOFZ2c##BRD2IDrRnR~B~U~||9Y1N*BFSX?^%3DrA%0% zhAkdz&H~b{NZHv_QOi;dinm!(a-T&Cb!P$4b}idQG}W|D;Y!&PKwc)Q7)@_j8vB zU2;Pgq??~Xjf%K4mW!fS{xvxG>)hd_ZQXdT91frT>}bVlcmkgMkb2jFoB3P)pDvT^ z^PC?@%LG~FhGOuu%&g=?`ow8*I}a+IYe)n!R=Ig1ZrZ#HLLr6^QdVOpP$fC4|2cHZiBeNE~JkRw0dMu5tT%{I%KOaeFU5)Ae z?8kBKbWZ_F(&#>70*Ao3IQ&0<{x}Oz?p*xyh!@NI^jeQEItaH&#BoZGTHp#E{}Y;U z%>&tD0RQu7G~>?xqVu=cCpD|9!5%jDe5KBwdx-o-#grshh;_{#BogKo4#R-$;89RO zL!dknE;GKWr82j*WhpK$Ht?9UyaODzOs_5ybR-^ft&4odEd`mM+(bkcJO?pDjJwe6!P!18|npe)c7`|M?g) z(FTm_4Y44bK05EP|r$@$XO9%oZrhlRYS{EPmIr}@&C)$-jO|r5Vj%Vw_CCwx+er0ga4w(f&(ayT4g$2pUAjVpOrDX-WrS1ZSIS< zK5WB#E&XO$VQ}B?BWe&;@rj8V`x~9G0a2Nc%qN!VKX6cP_QEC8nO`qC5bVr9k}KhH zCTvidZ*v$|U6#IT%(#3`a;TCa2-8+3Kz8tuV*&1OzB!m!rdxvybc@9%H}9S7@Sj6N zc3f)}><|cw=}O}fAXS6|-f{7Fs`Ye`HR0=5J{E`vIa;;{=p0S^)k9E3ObjDEeF(Vv zBwoAe&`RAlA6`5>ytNUr`*Q*SUT~m8kelEi+pTB6bIZy;y>i<+p0mp26~qR44$wol zW5fE@?ZD5Ut83vjqQzWl1Q%iJ7K5+dk}f{vXqDa^_u%Z#*RduUxDJpxxD=+UlP#LQ zl&$-sGOdzcDF|g&U46=z3deSD&*8p}yuw@JB@gfKa_M*ZUH5IM>eT!^`e0}|r|tSl z`}3+s3R`i;yagTix+HccLg^&6}mzOKG7dYwmN@HDf>E@Ujv5Lc-XvG z68(}|)K7p_yTYF9X%rxY+2PdPyYBd?h%ZSoHT9MfV<2(bKoFXa4Q{_*ZI3p&S-A@u zW*p%IG3J|y@AZ)JLpOWFVmGLc-UoFvwp6eD!4KEH@`h7zTW$*u4P%9GXdbTn#rV9* z_1D#QCeQGnh;nQjc{wB=;ZL-o)FPS5y(eq+n2qB4B`^yFA`>)$S>4(0`ls)}Q>5IKBn=#b>$3GpS^5!Gw(L8)# z(zkVXBtD|Q*Y0?L?RD)m>Oi=|5%iOFwY$Z1jb+q!b<<^-;=Mya-VYqHyTD$vZ0Io( z4;~1S0CEF(#?`wto{do1@gNBFB=#s0j(0nw+0peTK39iS)LuDLwy&I5#T$b$iIxY6 zJT{+*06cAGW(H>qv5zj)JFNHMh;0Chzp=f21~4;Vqe^~$e$g{Aq@2McVvp%SK61Oe zcG>!!F$CD;%ErmUS!CMJSB=r^kNQeSE72vVOIZt<8=ZYqcUL{dgcgVW>(%j)y_lV- zci2+L3vC0Hkp3+0y3@ zZf=6YiGjnVmJ~h*Jzl%Ec3(|V@>H=_Bd0{+)eE29#U^f0urf!&7Y+*EWQqdP3ETEn z*CwycMD5uoH%1`#0huB6*Ds}J&m*HvL7=!U9P}M{XnP+TdM@?85xf6!cXI~tIz0q( zKSRiqPY`=>XlQq;lmz5{LQ)doK9WGK1K6)|=}*$f+(=xMjVLgSKS z`^^>wkPz`iJ%@Q`ocCurJ&u;6^~$#Z8L$Kt-T)A7r8K^1t8d;PfE>efO(vWB#c`=Q zTdVYKu}150H^$vM&7%nje@*0a4acx>?4%(X0|SHW=F#&n|8}5>LL9JKb)T~i$MZ1& zo5O;ZTRb^H{a0?6)B{^<)*quddoqD9c-8(XVn=!tBQa8?4Y_)6#`66`yIW<@{=%_w zE48*V%VJ(P)@X~T6Og_7ZC5l^lKLV&{JW_JX?QiasAIx?51Yb4Nr6>Fa6PZx-FaRl z?IoN-a^?{qKR)H zPCJ5xk+XK+R>dBZ*i^`RsKu zVo>D^2~&&j+GPMy-v8fu*P3&>+JiNwV8&;gi2@kitb(B4h}4ez11F{Amq9RfFQ&hT z!l@PSx6sFrA2De}(~H#$Pj6Qqzvbl66)2~9sJQ^7$iQ1*Mke!#(6JO@W*CAHLGJzA)udhs79$+IRB{LR`R{>YvMs81`d@*L;B zHgvh8Mfb$LkH`j=C56)J@UfEy?& zDaE6EnnS1kAE*79H~_^|P*ijgpe#%fBVXv{_W$Q@&qq<&{?9h?2qxyQ^@PuXyyR#- zegbN~QJYVg;X$cZx!Kj>68I=g8O;>+FTs3br$h-N5yTr4GxMumuJI~!Ihgh(Dmm?B zxF(Rog^w<`bMur#f3tN)!?LaZ1JpzCMz{+Y5w3kRLy1cZLE^NO4ZI)gS+eNVNaTxK z2&1Nh7q(?f$N%75pWNOlZ?TAJ;+xYl7?DLUr`M(->3n6^?*p9!mIXjaT*K=DUeU8> z&$6a$d;Vm^#f`7x^=6%G5)l$+&FnP+P2!d72CA;EZXRgwKoC@b6cu~Ex)ebi8l6%p zy!76?%!VJ6wAg|sx0v!jl8_PK*n$KOrn2&EH}At**)q~ zK~exs&g*Y+;onwIz`M53!g}8UPpkX|HWwEcj1}xDKMul{+0{&Ur2`TJYXOqp`D~b9 zT}x~FnPnRv5D?|xyxETCUq{5(0vHL`*c#1N82G6y!~|$0-wH7mD8!KO;Jr?1 zfauLNl*F;!jlr=2LKwScKq^rc=zKsGq5-MB+~y0I$>?{PW!%9bXb83;aF&*qFk~-$ zF{%EEg8%dQ`1o;F@*w+>YN*4P?OBk{QXpmz(3fbiw4 z`5N&aNY$p@g0vmbn_XO7fc7QgcQK`{Oq^+WizAz_cD5Wpa{^0<$A8ca_x3_G zpyHkK5WpWW^DmjxoRs?=W<2AYzN0JdcfUw4_vhT+X%0R_uB$>PPaoXQ#ViUePo>6i zV9SO{B}mwyZ}Us;FWoNgSdg$j^~VBf>_o~OHw!E5B+9Frf44Dva-H zQlRSUYL>6k%0%r07G}U7U9*##Uik=f&TB?Q(_oL5!)8{$2OQ`cp~d5X?!}AGoaTMU zpc}8B-RRWW5`h>69SbExrGGGy^=35$Cv{S}{orV!e&sMW+H7!Yzj>Fq(gr}hAIP&h(VFZV`twf& zOQnUWV&qZ)#(Hi2XjloL5ETQmuIR(HIY9OxaF~FV_+$M9`tG)^LhZX>_5I}|xT#iP zGyh8E#i*J41-e7cR?N(b9`Xe@8)Gp(;*KdMQDywbBsd zwG(f01Bf_{!e8|*eVTXD#yg_JR1dRazlzgHp6I4a3-9Z-aJ%<4A|Nq&1Fit@KD(H? zz`+v^xD$YpQv_tptnc4(3nz4)@-4VhKsRGEZ00dYw$mSKY`+2?r#7$l8fd-!;4#By z({i17YbV@cb)axrR=(pa7GOd0cykMdyk8!AtMw!D>RZ^=H;3`TtQRK%z-6+lE0X<8 zIk#iQ#|Nbg9PDeH$(aiPhatmp6Ubwn?|vl<9#vV7(Gj!jP3~;hTTt>mgEe&(OgYOL zAH~AW3d5G)zk0PL9S`)_HoS$lOvjTOx3_#}jcPOYPwlrHGZn4utgwlJPbf(dq-(eJ z`s7Q=mG#plqmyPXs{JGfRh=iCTBM^GM(Be-W72y6I9?P@*+xc1!RWb-jZI!bftrqv zj=3rJJ#UH%+;ciTHFe1-#0^QTWvhasycNtbq#H3uD ziHeEUg9_ia<8yYdXb$KK8sN>SSPM57i?tgnUnaGNH+S2~AAC!2)BAF*j$5aZ!ki)V zBSoZ!Y~jS0jErG`MVoH6(srlIDS%A^*uilE4UkT{OgioPKuRRPa(j-1gtT@vW&3__ zUZjY~X?m<=rMzt;#)BLs?yIu2i2t}zM-u;Zhr}o5=af!R3WLJT;>>M_Rx{Zh?_v!S z>9riGFM+}Pr+Ey)Ls%%>rkflu-KaNs+(yEZJ(Xwiamsz$z`Bo5OppPN0V)-Mbp|g; zKwTdnSGzo18XC`692gnFv3i}=wIErKs1;A%(DPxAJiM*;{Y7RfbQ@7FoKmB^7L-0< zs!*MJ2~&y%2=DU^4GxyL92V%6J7$zSWu&ZQ1I1OoxM#V5OPiCD#%N$FOi(Is4wIVB^EU*n}59erV>c8K0H)&XSwO1C6xs&XRO#GOmb&S2~ zAPBuCd*#-XJqeY^7sWwLzvS-r2NtB7I$D9goc*~|&GG5Ij$nG`TtW0O-%|h5(IVHs zx<9`bd}g1$1^Ry!A4>r~nofuufos6K^60PJ{;l1|S@M}?32gjA zG8W61o&g`20Zq;vit!0VK(=>?4xcd5h(3sA==Oj9z5Wpr6re?t!9~oTiX{=&i>nFZ z6A&s>M!!nWFa9(<7#B`HS~#91oPjBix_N>U}s`GobJhzaNbP3Fw!zG`1PkZ zswY$E{aCY>{EcHgYOTYG!nRs+ds1YY+SGdDno146Zd*IJl?pf{J>!_ni8*Nox* zd|lL=$Vfe90RjSoCd*Tctuh1M14syTu4>C6nCTrw%r2R)HU>EC{{6oyZ@04pG0*$> zH`RGXMbpTiWpj&N!k8s+L*t)w1FKz$k(D*dy`y8gF7G}-3;@XWPIyb6G@vyuHoCwh zrMqphM>JyqS?^9KC6bLMCu&~-E8w&oaO(g7Hc0`vDH6m~W;3{{CuZ{ldrYetGYL z3y{>~ZJ7BDz$mb>H4o+og+@LBl?sfMMFA-w9#m)q9Hyw15)GF2+e0D8=H2HXuqb2! zIs&4Pd*ZEuOD_=&A$|fzKbXJ>gCGoCyll*%*6nY;Fp;t8sQvb}vSxv*f%}*Y4B9HC zaD~A%2B46^hGC{!63oCP1)!@+--J_OTUA>3PeF#n&>at$!LPuPaX32exGGyu(Z75d zTpWQ>XP~NayKcPh`%E2>Xta0HGP_Q>n`f0ZFp(LX}K&*WSf`*Wg@TGYlCJ2fY z0T(*{MP~%Xq!(D>Bi1~w{ZyXE02}f$VO4@T7}$2jK9vH-ydN0kDl=^PYFF9z73M{Q zp+tFkFp?G8QV!IxYcNw(VqZ+sy?z2ytTpGJaIvtUgUJfeKr^oHK`_qML3SjL4Qb$# z<3QMiQ#=8rs|N_$u1(3@R@lHeD8F3jmb8>h&kXp-e76vbvKs$J6g~?~Isi!!%pz#R zfj#cck%^iG2Ge!(j~~*4AQHD*e1xeFJ01go-r#jQz^L2g$^c^iIha538wMg!H}U1= z!NM!AV_F0V1v?Miru*J>G%(V^d4CQMTY~8o1GiybQ#=2zU?gBYBXz920cI5$8ChMs zA}#J}Zj5NjG;Rq;1#qOpd)8JLoI3Kqe~$%75E;l5U@%3w!Eq_?8AkA^qcw@*H=xeM z12dz1-W%xt0IZg#vobSFRL%e=W)C7fy1R=MF{8ppc^)rsgH}8xe7zcC@P0}&dH5Z0 zmEP67YIW1xAxoqn&Rz+w-j&;w{V=rIZLj6gr64b#4OAu&eK~_IKYDw=XpWpWEG`-V zYy>Y3#vw;UZ`lCm-vXNZ6IA|Zl3;&iBanWDHCTv%u3=ZvR4^Un`4kiyZ*T)Jq1UJFTWu{5 zP(j~$?9bx0gE8KWFZ6OiMkEt-XQC2xU)|1xwmO3lz_?Q~m`5e7nfs(yUI3iA^S@IV zfeeaYonej=Z&9uKx#G=C(958WajysZ%SYu2E1Phh@F5C ziQXMc!A7jWq|DDWr}lyQI=j-gG%$JM1l>}=N)lgMbh&;*HPFPFQ$SeNW#vG9~FUKJPrD&810thPV{G#luBZ`H(pV(~9_ZYCMSm@WesqJ%&$ zSz3y2{sWEB)2PV~)_$83l176bTS*&tmyJTUPv`Yo)5!rA<|k<{|Kxg@B=5OIa-;fxRqGP-Nr+}ujZUeavTv9k|fA5#b`8Kms;j8`_uql?nC+FpTkLE{8bkzmNX-^WSTi zb}q(f!ceNwor1g&>?%WBTrkn8VYfhA>$>(;)Ef4rwRc|3e>1w$jSIw}tZye7*Mo6I z(+BAO=nW^iGCnix1E`*MmeXaPDWdnUfN!Kki)*q!8_u8xyM&2gt(+{!@o_=d%Q-{c zc0V-akf1OOv8^#VMu2L#|K2SDaKZ6~5j9v9M@>7@nID9Z4W-z(p+s$L(677~efFHy z)F=K9M*u%5Rr=fLrE2lh)g&(nH}!SxW2SVsJZ;74he=HqA~5^?0ocm6A2GB2>2ugY z?JLjt^~?O(^XF@4H^AJX0CdH|(o*3EY?;7|U&_kN!IW4y9=#*t>gB@GySZwPXJ)X~ z!aJNE1oKuu^W@d%>h?%MB)@W7PI!$6UQ@x~5-5kaUv7nh6kqHz!$Oc2%-X{a8I0Nh zTe}EnjP6~j`a0OV*NDkK^J4S-o49@gFOL8_vSW5vBh_kBFF)*9{9Gjl)}$&eKZ3vq zb^ePU*vFM)6cC= zEESSVkkWa=@>Ox&lRQb-%V$?&iRnCE2S z{qZBDBqf8_sDVzP|15hF%}44?1SR1^(85@2d+|1-2jm9BM=^5UcCf6Ka-=PdLL8@8zQ zKxQngmsUOiPJ`lgvk931nj8?QjE76H z;&*i=nEmn*v+i_W2WnYiHN*?1?Ov)U74^ft|M!0LZz;!C>zU8l_4=Czgs4U&k8Q!P z6W=!lG})7tm1TF5A>?_%vcCm{uQJe-zNr0#1)HM+7uRPvRUMtqU?dusE+mq=dvT!y zRkg`h;cjTRcnr1Il1P*Y*Mf7vv{}h^R4|#y9`|cGh%7> zpV_$k$`>RS+sK~icJQq#&U4SiKxs3v(C`)kB0Yd+FBCyveujGtq%&h~^FH^F$?Ekx zGG*X8q#M(MK&5bA3tM_d2YwIL3ThmTUxO!r{=cDrkPBdEU?Bqj`oC`i{J$qd_1@b2 zx1rLFVcf5q7|{Paav1lAKJi5*wX{L%(!Im@Hm8tl8&YmyvXU; z$BOje4B5r8qK@#tWRK@e7fhL~pNwf0OW1{mN{^DxdoB*H3jg=%=T`ksXTKER(O7<1 z)*Ah*B2zA2j+|8fPouiADAMjXPquKeY{ai162xp9JZ-2+m8gx_>^#dg<4)v>sPn?p zej~#lnE&3@I|qro@w!c|3Vm#ZElE_%E|Bohz;`w>|NMai10ddE*hLzxcc*Oi4nja* zylpycUTKJilj{#GLAHBYN!UJu@`gTCXc}F_Ox!p#kvg!fHS%$ zKhv;7tV3UnCS=N`HhUkti_*cmL#2h}bc7N^f%!Z?d$pGLrPbe5zE<0Tzpz@kR507< zLKTifQ|9sTZ_jDtY=i_@%5$LpLb|&BjpyU6zwh9-x0rJD$fA*X7@s=p-W;p*HMSC6 zjam~`Y1m0P1y2%2MA}`8C}O1XwSHC`*!b_T)F4pTZ;!OW1wO7%yxERVOq5qp&|APP z8}f(~!_+&hyI;0IO4Q!Hf&~-^LW)F%UMZX&g?J&;5o|@+AHCis2 zu3>EaJ$vl=wz$-&bXqVxe=yj zelmQj#ZaPK20f?2{s-1yqayehmM5dbPkaz|h9jMA&J&dmvc!vdW8>iDPjK;cpX&UT zwcyOaX8U4NolZN?qGuuM&SdnLjdNbMHLB!q>nZXGr<1f)uYK@qR#JA8XvwW;49NvK zgH4I&N?sqT%xM7k{|LSf_36_mdca9!$_$!5l|mKd-Cx;JTw0cd?~XHnr{itb|Iu@o zK(eM~!T-FCvggCQ8sPHnN5tn}o#7kTnt96|7(=oAnE^$%l!lc($Fp z58X)2OVh-Y#VuLn+ut1b9Am>=giMrL4_uFZ`zgt?$(ID zS&mTGl=ahYL=_x?!H|*ZkP*Y(C5=IDcI4yhM0IlZghZyK#zEG$24cVERQ7{FWAFaK zqg^|tcAG4?z4uw%@YI&>AcB@oV9D&MZ@Tp>Df!h|zU?;nRs^8vOyFU?fL6AG!BSrR z+}r2LPU|XK=a`vJrreDW!773>{5dosWuHQ4p@;K>{4GN=8X}!(;kTVr;YjWr+8HDv zoJkJZk5#IF;Iy5yQm3;}Ge!_z@b8EWK0d|Mw4r@2f#;ZrJQ=W)fViphvy|u5pj^Go zH>SoGfq@e{(jjX+q!;rY7Gip&GsUmfLdix1Bbn6^75I4S&k2E3IZDbk3tdN0sUW^s zEp3!usn@eRQD-4m=^2Z+#IAuYVxC#bfQVDc0vsh4 z)xD=3Svg%3bLiei`ER$Fw8`1@Ab%P1zgVMVn0&k&ge)f&(=0Al6(21B{o`kEK#GwGljC7VuCk<}=~N`f-M zUie$Xo`v4jQ4ija2ACQGy}r2)?dQd$DB1V|1LYvl}(gVy5AW z$4uNbyjW@lUqgyvpD>Sa60VeEP&zbi5WV~r{PGLMKjHmpUHu(?$~8)wtw?u0M1-T9 zLLR5sNrlr)*|_*bk5NE@mJj)#H!TMix_hhxLMFkVTycbiBqlRT3N#fWY0`u~nb(aM zvNDa)vd6`Vbr|-1-*qJRP@>5xReEy?2uKJWF`ntJC1XLgwlWC^`9wCxXNJkcN{}K01tvf+Jq&M%$t4{dode zUc41$N!LesTKeZ$NHKAu!xTeTyig@3< z>6qS1RA8UmMntHxz0Jg8dtqsw=0`&5Dq#;tSNFZppsFCg%=s6#aeqj&#z%8wRZ9MY z(s{$Uq|!U~yuY@A3=)+RE-s^grkOfM29VW5tC?bG7x;=%couR|hV;UU2I~e{aFG&;Q;gj`!6;M&Z%--DvPGjnqb!Uu2DX z!u8Lgpnb{XSyo}RU9F$&;dcfMhxleY(8*hOONiX#F;9K5WZ8tq*P75v5`SYWi1$fc z-RilN9<{WzR3tUJy-7?kY2x^bUuR(`4#Di;Q$Bdt>fppSZM^nbul%>M%V@2{GL2IH ztCwmF<%?Yv!At~%bA%)}?NV4nBq;;279kF|whznefyQr+`MmbO-(-zDJ0l_GRqKnf z=|D!aZr^RG-Gxk6(5^7hwm%~B#zl}a;pkO1UA#LlnSSSB*EuuUQ8~`konjGIM%T+~ z!TMpe8iC=4Xr`G;;rd>5v@|QP>{7c#c)3e^*B^81uO0cdKTkmREkVy#Y0FzsZZWJ- z18@kbE17;=IM`;R>%G^%np#9fy~qz^afEV-m3>4Te_iuhb*)K`A`{NIH)&TH95WwI zRA)IGk0L23i0_3UY$lAMq~#KQeZKlT1u5LG;#b4$DKO`oX!gyyVd6 zUUr%Aj)*F&OQLZR58^Lm9mt?*hA+WNx}Oy*dl3Pbto(dWP-O7mK`(Z1h%;rcB}S|Z z=C83x--YcD>)sMoZ#6Z#Su~FgM(a|)Aocz1JMi-mmU~6M*M_G1^}_U{sxV4XFqW8{ z3^lqpc1eUo{v&-kZaKnxIJ0%a1}Gac#_K?&+7NvD`w8Br2~$rVQn(ye3mXv@S|WLz zd7{9yO=3l`D@Q^C%Pu(;)}{x;{S^78=fFvEEpU zzDg|$ny0WuC$?3d`U*uOE$PZ37-GGn`XM7O8>9xmO|q6sliJ~5^oLqjEFDVBGdRKu z9DAMP#Cp#Y@Q|h&$uC1dd7X$lC%0DpJ2KXZDNrh3!Pu%qzRB1CF7lLi0L@2egFGSf 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 delta 41597 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 diff --git a/doc/img/SSBDemod_plugin.xcf b/doc/img/SSBDemod_plugin.xcf index 9e3857bb46f9e858832778ac4e14a9f786af4a20..4e8d048343a837c024d96810970c73cd6a329df9 100644 GIT binary patch delta 8246 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 LeYoLVW{>{@N66Y- diff --git a/plugins/channelrx/demodssb/readme.md b/plugins/channelrx/demodssb/readme.md index c92e84b52..eaf6995d9 100644 --- a/plugins/channelrx/demodssb/readme.md +++ b/plugins/channelrx/demodssb/readme.md @@ -144,13 +144,11 @@ To avoid unwanted squelch opening on short transient bursts only signals wilth p When the power threshold is close to the noise floor a few milliseconds help in preventing noise power wiggle to open the squelch. -

12: Copy audio to UDP

+

13: Audio mute and audio output select

-Copies audio output to UDP. Output is mono S16LE samples regardless of binaural/monaural operation. +Left click on this button to toggle audio mute for this channel. -

13: Audio mute

- -Use this button to toggle audio mute for this channel. +If you right click on it a dialog will open to select the audio output device.

14: Spectrum display

diff --git a/plugins/channelrx/demodssb/ssbdemod.cpp b/plugins/channelrx/demodssb/ssbdemod.cpp index cc355f172..59e40b498 100644 --- a/plugins/channelrx/demodssb/ssbdemod.cpp +++ b/plugins/channelrx/demodssb/ssbdemod.cpp @@ -38,7 +38,6 @@ MESSAGE_CLASS_DEFINITION(SSBDemod::MsgConfigureChannelizer, Message) const QString SSBDemod::m_channelIdURI = "de.maintech.sdrangelove.channel.ssb"; const QString SSBDemod::m_channelId = "SSBDemod"; -const int SSBDemod::m_udpBlockSize = 512; SSBDemod::SSBDemod(DeviceSourceAPI *deviceAPI) : ChannelSinkAPI(m_channelIdURI), @@ -87,9 +86,6 @@ SSBDemod::SSBDemod(DeviceSourceAPI *deviceAPI) : SSBFilter = new fftfilt(m_LowCutoff / m_audioSampleRate, m_Bandwidth / m_audioSampleRate, ssbFftLen); DSBFilter = new fftfilt((2.0f * m_Bandwidth) / m_audioSampleRate, 2 * ssbFftLen); - m_audioNetSink = new AudioNetSink(0); // parent thread allocated dynamically - no RTP - m_audioNetSink->setDestination(m_settings.m_udpAddress, m_settings.m_udpPort); - applyChannelSettings(m_inputSampleRate, m_inputFrequencyOffset, true); applySettings(m_settings, true); @@ -104,7 +100,6 @@ SSBDemod::~SSBDemod() if (SSBFilter) delete SSBFilter; if (DSBFilter) delete DSBFilter; DSPEngine::instance()->getAudioDeviceManager()->removeAudioSink(&m_audioFifo); - delete m_audioNetSink; m_deviceAPI->removeChannelAPI(this); m_deviceAPI->removeThreadedSink(m_threadedChannelizer); @@ -220,8 +215,6 @@ void SSBDemod::feed(const SampleVector::const_iterator& begin, const SampleVecto { m_audioBuffer[m_audioBufferFill].r = 0; m_audioBuffer[m_audioBufferFill].l = 0; - - if (m_settings.m_copyAudioToUDP) { m_audioNetSink->write(0); } } else { @@ -237,8 +230,6 @@ void SSBDemod::feed(const SampleVector::const_iterator& begin, const SampleVecto m_audioBuffer[m_audioBufferFill].r = (qint16)(sideband[i].real() * m_volume * agcVal); m_audioBuffer[m_audioBufferFill].l = (qint16)(sideband[i].imag() * m_volume * agcVal); } - - if (m_settings.m_copyAudioToUDP) { m_audioNetSink->write(m_audioBuffer[m_audioBufferFill].r + m_audioBuffer[m_audioBufferFill].l); } } else { @@ -246,8 +237,6 @@ void SSBDemod::feed(const SampleVector::const_iterator& begin, const SampleVecto qint16 sample = (qint16)(demod * m_volume * agcVal); m_audioBuffer[m_audioBufferFill].l = sample; m_audioBuffer[m_audioBufferFill].r = sample; - - if (m_settings.m_copyAudioToUDP) { m_audioNetSink->write(sample); } } } @@ -332,7 +321,6 @@ bool SSBDemod::handleMessage(const Message& cmd) BasebandSampleSink::MsgThreadedSink& cfg = (BasebandSampleSink::MsgThreadedSink&) cmd; const QThread *thread = cfg.getThread(); qDebug("SSBDemod::handleMessage: BasebandSampleSink::MsgThreadedSink: %p", thread); - m_audioNetSink->moveToThread(const_cast(thread)); // use the thread for udp sinks return true; } else if (DSPConfigureAudio::match(cmd)) @@ -428,7 +416,6 @@ void SSBDemod::applySettings(const SSBDemodSettings& settings, bool force) << " m_audioFlipChannels: " << settings.m_audioFlipChannels << " m_dsb: " << settings.m_dsb << " m_audioMute: " << settings.m_audioMute - << " m_copyAudioToUDP: " << settings.m_copyAudioToUDP << " m_agcActive: " << settings.m_agc << " m_agcClamping: " << settings.m_agcClamping << " m_agcTimeLog2: " << settings.m_agcTimeLog2 @@ -522,12 +509,6 @@ void SSBDemod::applySettings(const SSBDemodSettings& settings, bool force) << " agcClamping: " << agcClamping; } - if ((m_settings.m_udpAddress != settings.m_udpAddress) - || (m_settings.m_udpPort != settings.m_udpPort) || force) - { - m_audioNetSink->setDestination(settings.m_udpAddress, settings.m_udpPort); - } - if ((settings.m_audioDeviceName != m_settings.m_audioDeviceName) || force) { AudioDeviceManager *audioDeviceManager = DSPEngine::instance()->getAudioDeviceManager(); diff --git a/plugins/channelrx/demodssb/ssbdemod.h b/plugins/channelrx/demodssb/ssbdemod.h index 77700efb8..834baa38b 100644 --- a/plugins/channelrx/demodssb/ssbdemod.h +++ b/plugins/channelrx/demodssb/ssbdemod.h @@ -276,8 +276,6 @@ private: uint m_audioBufferFill; AudioFifo m_audioFifo; quint32 m_audioSampleRate; - AudioNetSink *m_audioNetSink; - static const int m_udpBlockSize; QMutex m_settingsMutex; diff --git a/plugins/channelrx/demodssb/ssbdemodgui.cpp b/plugins/channelrx/demodssb/ssbdemodgui.cpp index 7b9438adb..c5b9cf720 100644 --- a/plugins/channelrx/demodssb/ssbdemodgui.cpp +++ b/plugins/channelrx/demodssb/ssbdemodgui.cpp @@ -222,12 +222,6 @@ void SSBDemodGUI::on_flipSidebands_clicked(bool checked __attribute__((unused))) ui->lowCut->setValue(-lcValue); } -void SSBDemodGUI::on_copyAudioToUDP_toggled(bool checked) -{ - m_settings.m_copyAudioToUDP = checked; - applySettings(); -} - void SSBDemodGUI::onMenuDialogCalled(const QPoint &p) { BasicChannelSettingsDialog dialog(&m_channelMarker, this); @@ -235,14 +229,11 @@ void SSBDemodGUI::onMenuDialogCalled(const QPoint &p) dialog.exec(); m_settings.m_inputFrequencyOffset = m_channelMarker.getCenterFrequency(); - m_settings.m_udpAddress = m_channelMarker.getUDPAddress(), - m_settings.m_udpPort = m_channelMarker.getUDPSendPort(), m_settings.m_rgbColor = m_channelMarker.getColor().rgb(); m_settings.m_title = m_channelMarker.getTitle(); setWindowTitle(m_settings.m_title); setTitleColor(m_settings.m_rgbColor); - displayUDPAddress(); applySettings(); } @@ -486,7 +477,6 @@ void SSBDemodGUI::displaySettings() setTitleColor(m_settings.m_rgbColor); setWindowTitle(m_channelMarker.getTitle()); - displayUDPAddress(); blockApplySettings(true); @@ -541,16 +531,10 @@ void SSBDemodGUI::displaySettings() ui->agcThresholdGate->setValue(m_settings.m_agcThresholdGate); s = QString::number(ui->agcThresholdGate->value(), 'f', 0); ui->agcThresholdGateText->setText(s); - ui->copyAudioToUDP->setChecked(m_settings.m_copyAudioToUDP); blockApplySettings(false); } -void SSBDemodGUI::displayUDPAddress() -{ - ui->copyAudioToUDP->setToolTip(QString("Copy audio output to UDP %1:%2").arg(m_settings.m_udpAddress).arg(m_settings.m_udpPort)); -} - void SSBDemodGUI::displayAGCPowerThreshold(int value) { if (value == SSBDemodSettings::m_minPowerThresholdDB) diff --git a/plugins/channelrx/demodssb/ssbdemodgui.h b/plugins/channelrx/demodssb/ssbdemodgui.h index 3e81e9dbb..24eca4639 100644 --- a/plugins/channelrx/demodssb/ssbdemodgui.h +++ b/plugins/channelrx/demodssb/ssbdemodgui.h @@ -72,7 +72,6 @@ private: void applySettings(bool force = false); void applyBandwidths(bool force = false); void displaySettings(); - void displayUDPAddress(); void displayAGCPowerThreshold(int value); @@ -95,7 +94,6 @@ private slots: void on_audioMute_toggled(bool checked); void on_spanLog2_valueChanged(int value); void on_flipSidebands_clicked(bool checked); - void on_copyAudioToUDP_toggled(bool copy); void onWidgetRolled(QWidget* widget, bool rollDown); void onMenuDialogCalled(const QPoint& p); void handleInputMessages(); diff --git a/plugins/channelrx/demodssb/ssbdemodgui.ui b/plugins/channelrx/demodssb/ssbdemodgui.ui index f1d2b60bd..d204799e1 100644 --- a/plugins/channelrx/demodssb/ssbdemodgui.ui +++ b/plugins/channelrx/demodssb/ssbdemodgui.ui @@ -854,16 +854,6 @@ - - - - Copy audio to UDP - - - U - - - diff --git a/plugins/channelrx/demodssb/ssbdemodsettings.cpp b/plugins/channelrx/demodssb/ssbdemodsettings.cpp index 6645e0725..fbc4b7689 100644 --- a/plugins/channelrx/demodssb/ssbdemodsettings.cpp +++ b/plugins/channelrx/demodssb/ssbdemodsettings.cpp @@ -44,7 +44,6 @@ void SSBDemodSettings::resetToDefaults() m_audioMute = false; m_agc = false; m_agcClamping = false; - m_copyAudioToUDP = false; m_agcPowerThreshold = -40; m_agcThresholdGate = 4; m_agcTimeLog2 = 7; @@ -53,8 +52,6 @@ void SSBDemodSettings::resetToDefaults() m_volume = 3.0; m_spanLog2 = 3; m_inputFrequencyOffset = 0; - m_udpAddress = "127.0.0.1"; - m_udpPort = 9999; m_rgbColor = QColor(0, 255, 0).rgb(); m_title = "SSB Demodulator"; m_audioDeviceName = AudioDeviceManager::m_defaultDeviceName; diff --git a/plugins/channelrx/demodssb/ssbdemodsettings.h b/plugins/channelrx/demodssb/ssbdemodsettings.h index 16530ec09..7b6ac2035 100644 --- a/plugins/channelrx/demodssb/ssbdemodsettings.h +++ b/plugins/channelrx/demodssb/ssbdemodsettings.h @@ -32,14 +32,11 @@ struct SSBDemodSettings bool m_audioFlipChannels; bool m_dsb; bool m_audioMute; - bool m_copyAudioToUDP; bool m_agc; bool m_agcClamping; int m_agcTimeLog2; int m_agcPowerThreshold; int m_agcThresholdGate; - QString m_udpAddress; - quint16 m_udpPort; quint32 m_rgbColor; QString m_title; QString m_audioDeviceName;