From 28d04c91f2af5582c69fc599bc09066ce0068463 Mon Sep 17 00:00:00 2001 From: asb2m10 Date: Mon, 27 Jan 2014 19:26:53 -0500 Subject: [PATCH] Async UI update from audio thread --- .../UserInterfaceState.xcuserstate | Bin 87920 -> 89204 bytes Source/PluginData.cpp | 2 +- Source/PluginEditor.cpp | 2 -- Source/PluginParam.cpp | 2 +- Source/PluginProcessor.cpp | 15 +++++++++++++-- Source/PluginProcessor.h | 12 ++++++++---- 6 files changed, 23 insertions(+), 10 deletions(-) diff --git a/Builds/MacOSX/Dexed.xcodeproj/project.xcworkspace/xcuserdata/asb2m10.xcuserdatad/UserInterfaceState.xcuserstate b/Builds/MacOSX/Dexed.xcodeproj/project.xcworkspace/xcuserdata/asb2m10.xcuserdatad/UserInterfaceState.xcuserstate index 49520041b32637a390654db6056f23e39b974b6a..b2f594e4e997107de3041eb52d5aafb2a4ade47e 100644 GIT binary patch literal 89204 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%0DQ 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
0A&r9`^t2fkS&9jgHZP^fv_r_ z0mtnXXrQ`6SH2Ti%OO1gO>h_|v&MZ9>`PtB>{xzHc_Cm~T0w2LM$u`k)u?Ez!r7%I z`Cv}UKo&~!!8KIRPIN`E2>@stx<{Xysw%2S33xz#6k3mowgzuA9V}L1NdP?k>_D&# zJU}T-9%Y}d+v{1c3DI8QdjkHd8Geu>U!iL5s5k|{X%q&*R7Jyu3lh--zpGNEiFxcq zU7Xn3KPwW4K+KR|QL5S;ja^V`17h4!v;cN_MX<6&pZE=|MW1L3ie(T?Xf>E64NMnn zG&lLlr~|QI<&VtgM16?6GJ-886ylx z(I@tH)@Vo+!|8s1B}5G+GpMie&!S#OZ+sVPJS^H6*bPwwHB-TWpN4+SLF(-xR|mAk z0FSCMo6Mjef?JIduuU_b5gNL2jCh!}>K{cR0AxqF8tZ8vOGLG%e6NxOsWKQn2JTE> zRXL5r5+>pq)-Hx5U_s1WRL0E!B-Q}vC{$TnzqA&%h(q+^tE?=Y4NRlKLLbwG;Vo|^&A%4QzyD|dNG9(NBH(Vu_~$pdor`4YI>qUf;=x^H6Rvt z6e}8FXy|{$8YXw&P}LfsHxdIt^cg2NpR&#)dgxqJU0DOl!-95gI7o>CUOfyKH&E1- z>XHwsP3YXiaO$i?qIGS!Z&;7Gd5^LoI-J%VYV9z<=vaEFEK!Mt#>_Mag42p1?)O#u zv`&y0g-&B)J87D(FC8jMsfCJ-Jbq=p`o;HRjy=xB?qbbG#x3I*pAThXw^8t#Kpy%VD7aPb0LO1lBE1QD#lA45$rP?HZUZf1z1 z4${=WTTqcT;r@Xd#6TrZ2%Cbv@M>s;ayZe^kyOo!!(f3`OHu8ok{RPMOvAfv&D!~j zsEcK$Q4^<8taU#W51X}~1}hP**;v-BZ+FeAN_5#gh_xDtBCnBCm${Mf4eS~7?D1io zDVcQ{64xct1pG?8IX0!S#-n;}thz>smbmBWScK$p=&B(zz*I|V1=_G_6BpyV&(!3u~G(W`hLRF0|KT5 z1r;ETu-cCcZcG&na>;%|E-8nw72+jd6-|)EMy49ZRR@GIU4K;7uw(;hSuq4CU=b>2 z(j2BfNi_`e{>(j{B!4-J)?i&#?k@$kn&B_4sH6jF2+v|*GxmcKRE~qC)$k54miaNk zUL9}*Q}zP_MXbsXMw7`;7#67v}($$Dj-!YoUf!ik=7y-8@jBED~r3iaj4G_{ynqcX2 ze**)zzm}}h7Xa-^3?FW0u=WzmMCFr`7nlZhWr&b!^c1n_HU^<+U-_+uFp<2hR{K=f zqcI|RCj&aCXP~f+uT4FY!WLW+)<^S4F=-tLkgJ0*Y$0gBHr+Ze?_mS&B}ANA+fGZD zNtLZ|?Eo$6)1hd75uiLChX{RkBaz20qlk&UsJ0H9~wbtwc}URW_xGr_Mgh*bxIbqqH& zL@CAzsf*Xy0KJo&?95m_g+lI)52dkppg z349FmOUfXpUjUq8+a&fJK> z1D^?fC{=^2{M9vJGGpWM&l&K_UeUq!GSDCqvJ2&~cO#%z_)K3h@bh~GUd3G-q^QIX z^`aQo>Be*?8>@G=B7Q7zWYravTlyH^u`v!vvlHe*qo>?Ilcr|0$^MZIkbfWy)5>iH zae>$`{}@-;8URF9U4uh5N$1M%Y>Wf4{yJA8dIm-MDxDd-8QcSso)}dQKzItOTu}q% zLQSjpP-rv9##(Y9jHfiHo*p8p$TkBgG-~{!0@QO1VCLDt3wt@RMwk|+vP3l9@4+@1 zB?ca5kqtWIKnG>sn$o2PA8b8Hy$Pfi%d3kbvTQc7L3(FfYM_D)TWpw>gsqV^)fJl5 znJo-_X|HIgDW6^rdy@chUomV0&@i|EBcNHdt4)Xo+QmTkPFHHm8R$}9zF#Xgn7s_{ z0l8FN2P1IlKA|%3Kw65;-0z>m88#}`X!>m)_|LJKZ9|3fzQ*Pu4D?>|9Wg;&!9fSX zo=CQBlL0ge;CdQ@ zrCxNO;;XKpg&+tTpdwx!t>T(9{;8p~m?1I*6ssXY3-MNo&baIYWt=Wdu#SfMjq1oC zb<6fsS638N=!Pbb4N<#K^Bu=HeTcG}(&~~*@Q~5;0En3muDP7`&)92!y(iclx*^OTtSB$lk`3m=RSc>^ zN713-7<~K6B=ubYNkxDUBwb)zP?;aL2SX6dHtI8p)hD=`^&g`4k7n#ttYNoE9J(`E z86rM1~g{lmU&Lktpf$H`5oLsgIl9OI-R9^tNj-w~&rosuyZ%&a zw0+RJ9ja##vQ!9FA@yKzQtW;KiidtOpv+eZUtkw(>~t(-Fp~EHMk#EjVby$np=NGm zokyviHD6CB5ccd$0|Td?GEuiwX=FFCK8JMM2hQ>UwgJFW*AX52xBy=R*2;iQp)X{B z*Tec+YMWLb1-mC;=fvVr{Zf!6)n;f1L;xXQAv>2rKfo4gfUbdRXP_qRGpOPMEq7q< zWL;DCxoa6U|60=1yn^-4@2NKsqZ^Wmy7Sd3QVSE+;G=Yas~A9kZvd7D3W`_~RpZXl z3}!`dV5;6u3lr#c>bxfmdSP#%7ZgDfEI%4eAJ0G*_X;Fb)WJ!{Y=tqO$e>Q^4b({Z z54%I6(e5b>Y_Dbvd`S^Y*l06$dhbz%OqP%B{e|kB2KGz_mfc>`oyLK*2150n?eMme zJ(Lf2K-W~!a{;X2Nw+E#Q~>1YoSnm9m+XbRe-9hB8^FE=z}i=-6`#%LF}SmO1sC?< zQ1tx(7IsLm6}i7qP4#K4xsVM57Z7xBjP{8&vBSUtnaY{4X9sHHJ_jH)zPO|vK37D@9ptntA3##%`~_V|$bde(A$e9N9rN(I~6 z>NQs0#5(qm?-)5P8{6(y)~;`SJ4l09z!rmYpbjp>Iw5b=6mBV#W6o1_v6Oi;Fx88(EO13Ve=#AN6n9!A2&Z? ze$xDu`Dybr=4Z{%nV&bmV1Cj3lKExxE9O_tubE#rzhQpUyv_WU`EBz%=I!Qp&F`7t zH-BLM(EO44WAi8GPtBj1KR172{?h!F`D^nI^G@?O=5Nj4nZGyxVE)nkllf=!FXms( zznOnG?=t^k-fjNV{Fe-uz{*(WWkEKGC(Dv-lufc(mSu}|3vUF1ph|xE`oOx{1@R7;d#Ov2rm)dM0lC-R>Io}??MzJ&18313F|3c?>w_yFN+2tSkXvk5j@ts{360P5`HP+ zn+e}a_#+7)CVVI1m&4162)~l>s|de_@W&9I5dJvAuOGvzEfTh5VliwHasBqG>|;37hQA`BwJNFp3WgbX5N6JZh&4kp4>A`}z2 zyFw@@!r?@yCc;c2EFeON2#blZln7xWEGNRzL^zfRClI(!KscQU>j}I@U$}(8i|~a_ zMA$-vYlv_?5pE*Ftwgw!2=@}6XA0rd_{zB zi0}guej&mxBK$=Rm>5K2FcE{57@Wl5C5C>)Ffi_=NpdH9X%gPqt5*TDmym~7wsb5G zcETohxNJ3g?YVrEI>NWTe?g@7n)CYlSop`N@V^f_Dh}YaPl+!CrQfHq8*k&OI9?s) z$Dm{RKQKy9*FDg;!YvD_w?H)4)(6!$yuqf7cDvHVM{5flX{Yy}#Pak46`?;4?2Z-o z?g;(r1BgUg8fu$hoOmg^R2}2bprhyjh>pB7F*o@J`gRIO(s4x7nsN)1ynO*u(8(i^D~c_vD7-(YRJcLkK#K{-@E1xpSon-scC? zw=fiHQc6&&>?a*0&Dst(`@I+O#TV!x-as@fM&m4$u^7B((wq-Ux!64BbGqSfcX zOn-#Ai3*b-CiF6A2+sTU-a4}zi(-}HBNg<31CxzJu0qiXUiP}MaZ$YO{ahUcu66mx z-q;*V!wwbvkp0!7!)glr@waC&hq8p;qeVZ(6Y;$|O47gg^7uGgogja3FOrs~4=1xKmR(I|-K|i!;CPB#HP9SPIQ+pN8u%NjeR#J7H3l}C%@KAMx^!+tH zEL2HJG@xo#vkYBt#9icj5foYz zT%cu~id=TkvGSirE;94cYc-g0PJEgmiODKHxj{$x-@ym&KZjLEL@QKeB99U<$xtzY zyXqkM+Z39Vl0vVwY+BqJ?%3;l?)UUeiL=D`knk{GWOCK9r@(ER`!%*In6Z|pjouTJ zV0#W$p&xQ!Zy!z+$QZFtP~d!ZoT)*_kq1CU;y7`F-;)_Ht*r|+CCWHl*Fg;lT$}J; zMxTibNK2`T7F_On+&|5pL?!#X8*LIM?r;^eqTa<0EF{{~9L`XIPwQ38!_0cq!q#}T znX7_6tXJ!p!dZH%D4ZxsN2mjo1|7@(=_!kmX!<$`ma2+aDIK49YC|eA5q7A!Rl~cJ_Q0((+@2D-IW?uDu{nMPVp*y7 zobeAt%#pNe9AZbS;Aizpsq|<+4)k#<=s7{hialtiMaFPSZMZJIIW09sD9NMZh0|v1XRM{V)%$*ERH;e91(q*$j%#8gqnI^ zHj3W<8_UhxRQN6X8;$RSR|rvCAE8qHoUjtOTOGSC=s5nLwtxw%fPGoO#o3bwRMgu4 zliTQH=jTxsk&a&3&A6~2j?Sl4@XLaZWB=(Xhy(?3MlB&h0SP?)&a(vBcwR+p#r_6i z%fcPuhNbDrnJI0Zb#U%J8NQ{2*&RPA@LPKFiWG)e2(lLSduZD$>ZnHr9kUOB9r3jX zrXkS+1k~i93YcJS-c-k1-FvrH+XOF4hr87v9TOi{ZdZpm`hQg6@%d&&{FZN)?zj@D z{!m3p>6J{Y7Mv}E62O0^fqcH*EYvP-=#u731{MCg|Dk_~WYQB5F{_B2*{g7it@`!& zATFV9wW|Z1-78MA0ko1tJbaG||J+`|kCn&-2K86rpV#|h1Kq_Dk2~DdOPACa{ExOO zbZcAVHZoa9s2E+;dxsK}+XtdK69*TLSw~wB;>LDa$5_W&$63b{{u07pO8CnNe|eX6 zf^{M{+zNXwuOR#exC4=gdyxObI}m;2*N^$|oVlygQd4s#B<1Dgu^SL`^Cl#vr>)WG z$+I3p>6v7mY@K3-9id%>-%R)`3BRSwdZ=|O(34O2t%Sdd(sT8HO3%6xf0hoocHXMA z%q&JjX6Bk%t8#MFCM2cmhTYvQ}9GKo0C^y^-)Y zQF3nnPsv$v#^l;XnX^~1>nZcn*UX@wqLc)!4V022thLrUE9|(vmGHL_{&vFO(Pa%; z7pj!pN%*_|drIoRlYKk+xvMgBGC;OcGjsImIMTYTM{QYdT>(TKMfiINe=jBCK4lEt zFz6e9=}GtPo(I5kv*F^-%=DZ!vti2Pr&+PC?NMq^u%4(g=K;b$7-0^;T{q&R`e0CH zcTQTA&+Dw`^vLIPt?N}#4-@{8D5&~x?|lB@=OZ%*QmE!gl572>(3c zUm*O8UDgM!52@6?MEI8@)c%L&D{#*{-yGzQ(2|?0bNN{-y^6kj5?;2x0wlaf_*V)4 z8YSU%#+I7A8EJigowq74FEtZnDla<+v@OnVyls7-0)5B2-TJN-c5J^%_-%xLi|}uE zSwFCT2tYq3{5yo-PJzDrpW2O64n6K8;kgB1)^jtnz+_~krKPQbn{KI@2kLUuqpaF# z{ee=|tw8>0{Yjne_X+<&WVS&~R;+u_*Jn55dU|SlhR*drYzRQ@A&53?+OQeMb1tW6(QuY{s^Q zDtZ}d*&2Gb{^3hLYcbp9&) zoO+G9eEzD8?9AL;kVa~Z=D@eyjPw{ywN0?4^~jubTLw^+MfmRt{{yAyN7a~|6&io+ zW>sTAI;i%ifkf!qZ<}nJN?~^A>}@_ecgB1da#@zzA4HZ~1ed zz69u{rKW)wOUub-5}QN6L`m+n9n~WPSJ_qrTsVgz5Wzs>vKfF(+ zg&NU__l)-wm2hf*=^l^Q-m!U)Klf9#<6;{?P|)FD{WhB zTWwbn!A%4Y5xhj`(`CEHcCE^mzC`Hv-?QcLpljCP%T)=?$P|F!OtV>k)HVJdmCmmF355Pg7<*ZhOM^r0ppp3?{-5A`B%$QkU%++q1yn z=ZP?k2*W9ZNBpPe?X>pxwiE7W6y&7RdCkg>vq5j#wo_8J+1|3fZF`3Zqlhq?2xEu< z58t)Dr!r+65yt=b^E&;W9p}B5!br(Ti%R>Kwr?l}U)jF4?Xc}6!UQ5rBtkL~Qo3y4 z+P;IyfFo0>L`b8Pk^Y}fMtWG5jgXr?ccxU zQqjxF%An|F#To(o0Q*piUUvbEJ;^>yMQ<_@rbN+OvF;ATrYUUF@^Z6u%*NU$_6RB2 zo}xlJgb0VmLVDo3%WhZIIyE(22bFD~44~{e_FQ|O9S-UFh>%Z&0wNT4*{9eKRzdlR zP!s|69~x|b%V}RGKcX@?BU`sj_G$JqAfa2IV=uQ?z+Aym!)Zh)p>uT@o2%18%ijNd zm&(^X>bld@VHKVhat$^*wwp#(a z!Pc?6u&}^F1qBtmbrfR^6yM+G*u%`+`^!B%p%Mp&7x#gYgyGsR<)H??UtL(GMjB&s=ci0@Oi2K;sALBezN^^)R=+` zFNwaS5N)8;nb~r)6|%}-R&|n90kW#|a&8~IUCM}LdkNfaw#S%CS6S8VTVn&CUwt#IURz$uD(@!0y$vxt zWOhthE8FYUakCS~wSr|;k8f)Yp0+#UinZ|^aBy<}TH&*17nKU1GfOl(Z+1ae^^#S+ zWmO+p)pxmBl36mR=w(^ePgeD3Db;}g>a)!Fei0tS9<}G0-ktY%_U?|#Cyg#Hj=ZvW z`gYm8Wp1KZ@ z^?70T((IMlYgsi|Rt=F=LuJ*loSk`b;NZ%YxGn$W{=-`{wWYc& zD`)$HTwP9WV=VZ1SvBEv!Fe_7=YMWQF=OHm_Ksh#9_lJ;r)(27|LPgzU1v`_s~3F8>EOgkV(-R>h;4>B|2W}lKXpr`;Mu+C zSGQ8PCLf+MX3MHMNEwl}JA zVmLZ-E;u+kef7*? zQNNc}`(;(Evh0DZWhZ%GpI5pUmnKI?<;{@28$ViW%h1?4f8S({&`8}c# zvg(kmI;^aEBx}_fk@qV-a4M&I39{;xtU4{L&Mep1YaGaycavvj)j1{G#Q*9=xbCmclg9T^ zek!26j&pE!Qa*>}18b$yU#~}+ni}O<pO*4H~IV`%vt#y z)=l}b__ye0YqCDX%qeqhIYYvXf;3m=t#3vsJPd8?A`D+0}K z4R2L6`()K~S(UD=`yy*yUJ-;=SevyjFQ4sQvaU}~yzbz&`PYl7=CI~C3upU|RC7Xe zl7%^sU&*T1%EEtSEv&pVd>_x}KNyRFX^f_IxX6ELf)8)igeqi(c#X_53t5G7$?!}N+ ztJN7J%Oy*>zeN`Ke8-J`kCmCUcUE$C=R?@fr;WClR{1#X&*52U`6x|mElYW2DW4Kv zeq(rZPmMX>Nckb2Th<#6XX6VZWhTGAeb$!OR#rmH?o`xP(b}=DgDe%4B{OARb=JE4 zOzG`!x0IPwejdnqt-K6$b>JfWb=0+P+8Wu0T2ot#B|T(GD@!_MNxd=D5&c?ryQF08 z=Az6wA37`7H3t^|e$_hK2CSOxi!E(KZ6jkn3&~R9Z}s$v=+tQDkgOi@M;pGrq|vs} zwpH@Z?sB1Rr)_Uss;Dd#`?l2JX=@h`egC=L-##_a25P(iWmLi19>%3g$ddWDrF{B~ znc1V5F)D{|PYK%o+7ZHLopyjWL>sCN(+<=Q(hk-R(GJxP(+-!VQnF+zOZ2&nER~a` z^0HJ>mTYCIiY(d7lH)q}=hgz4=FebnRyE*4F_ zYwPXpYUknU?dIz4`a?v)x*iw)5+P()|FfQd)ay0 zxwyGIejkzXD}7A~srpy|XW`%zfOQ9ev%uUi4~e@5 z{Irmrhqs5Pi@l?*o1GmsviI?_^>lObwsrM&a&hx;bMf?Y_W6DxtgIdHZ@fIQe?o{m?bzmnrc_B(spdV1Qq z+Ire~IJ?=qdHH%d|4<|2S0W_7ZvWFlZXWiYE*?G%q_-zEa&vU0TD~sKr>m>GrpI zaE{i-%aU8TS(3;nGPS40N9`HySrZdcT{~5K!C$Qo8r+XtOf?@6&?h8tKybg%Ho<+m z1P$hkcim;FTDZt9OBS-^enFe0O&0lbEYe=mUiMdO_|?2$9@ZeJPd9G2r&fRW?^*`* z3JX$mg{Yc!cTa7q_DZ|&{&S4>s;Kt;zc4;3O?%y6U8pYiGVR;#=Y*DNZ)k5SH~;*L z|Nggk{nXyp^7J3Ay(3FCqH{*eCj2bbl*1m&Qmy~ZVd+}__)N6+g)Dje zZw`B_egCb)8M5RRUe4IXOr?w5MbSIEE=KEkd0=dmjV$^6&?xHvITc-AU49nV<&&j4 z|BIM(8lCQIOgg|$D{;~B#kQzcod|5q_t>&pBb)0c3|>-gic zKUV(Bf2yM654c3@>}08Nw2s#ZP5!=@StZoDDB-%wl3#Y=?$PlSWek_~n*LR|o;vSu z8~eyo^DnjdMOnPAEVamP@dLUhUlwqJ zQoH}`>n7iJ2nh`s5E|C6a>$Uu-!E_c;xs-3=dPp-L~qWGNur?4oY4$P^#BZuZs<)eY0}T_fe<;};ej z*i-qENE7bi*eI-b=b!=Mjb$lNmO9H4-zlyCAAIxWyIg)~2A>2DjF~tof3BRWQAH$z6le$s5(aL4=Zy)uy7fan(-FT&L<7BC8v~Gedb^D*xZHiL2sj}4l$GS!6 zB6Y)+^7N3U;H>ieC-?07R-W%BiQ4phb7$6U&oBL+qnoG1Jy(``MeF9vQt$ss+>4dC zm&j6|ALCx8TW*Y-x#^n~cY}Y|)*nZd*k`U^TK&n`FR`!Dty5xOD@y~Sb-&3{NO-vp z^tn+$@1SO($`=Y+WPK^_%fmP8wh5aU-4@+eSz=fR#^|=|cF58oSsJV)t>IAbtS|h0 zc|G8-Hhlee9s>fq2Z!>qA#6a9zuKzHz)<5ifq1#i-DGT)dp(4O1`VkC_2x3omG66f z*?Pb3kaD4l)g90sl%=7vG)$I;FVh{?9TBf&X@o4z32&gpV8?zQf!suvJMcFR>eqKb zsB+VYUO~#MlV)MPd-Lm7jF~kH>egHNx+_0u`_mzxe;17L#QSlz=E0%8f{YjUc$4MJ zbqTsty3@Kdvh=Ggjg_T|vNSC`@=MT(x+Ep&^STSVi?TFQmcnI8UZzXdUD92arBSjp zT9(ErQJ4Kw2tNebWI%9V*0qK4 zfBY<3WPL00OA0r2yoC943iovPbq{2TlXbi-P2fFkZME_Erd2I|oSENsFS1+UrS6sP zwJc4NrOC3S{M@Y8bK?Sm!lFzLVR2sfUgXnd=svV+)U2}d<>1De9PK;z>lGXlYG-%R zBu7q_WLm9y>(T@H+CQyrUAk{)<>u`nZAu3ybH=}JUOKdIKdmqsw{(53+-B-x#Y>bf zQ_lc~^M~hb z(=047Fes=?P?rlDZC+iWqDn+PgNB5(<*%Q2jnNyzRpC-h;UeLt;d#RIwQSVPm#>HO zNUy%V`VP2gUb0kP3rj0&{(ZCHp+W50)wfqbw-EkWIoGUfmo+A@DWDF|6`q?@sXRIDUyQ#-RfL?Cin=y@NS<`YOMbD8^a&mu~L0&HbOjX{)W%KX(a|?}{)ejmH)Ftb5rwxfUYBnFxw{K{;iO4N9qL{E2w!(p%@B4`Q zqN!*nI*Y!dzX%awVx$-+ripoCp;#=Iie+MjSS8koO=1@x0i6(u;ZOEYC@ zc6dDh%V}@*_vdGG?#A+u4)N@EwK=aZEb{4# z=(FZtxt|NqBC{6A0r_^y(yXkK>5J=27^@Q$qc5(!3{W@k+a+L#ML?*9LsdstizW@# zkFu_rdJB`~(V_q+)|YFfzO=r&@{14(YeV#9_2u+7`tte;`ilBWdRu*EeHFc(-d^vZ zcho!So%JqySG}9wU0+pSE$fpZo@^J&(qdU!DoZi4v|N@}%F=3C;^~a%vJJAdNtU+A z(l%M*NotoY?UAK@vP7qO201KCaqOzEp|7d0rLV2`(0l5=^xk?Oy|2EG{ug~+eLa1B zeFJ?%eItEieG|Q(zNx;MEFF`j1X(&OOI**ngkP1V8?wavJFbOKWa+sqy_BUlvh-e- zGG$W}*;FN)=8{eG%BBTnQ;lqDkWGvH@M>D$I_vv?(t`i&7G&9cfxU9pXIR|(u1A&c zUi9ia824H9ufBF_{MKf+cPr9&Hg2%w|Nh21`fkRhqyMuP?4NG}*O+_%DbI@8N8ii1 z#j^j#H^}wtw* zX@lv;4L1L0?*qRdq3^2y{cR5PGmSfJ{dafqQEtN6u-ky2>od=|`1XIbxbaKzS+{xo zA@aq>#rZ`){~zulsb6MXefPg=?N1k{AHrX4++gp&I&rgVlkKk$(XThIzyJSW^gmx) ze+Ykzarp!PD*V5`U4VY4as5O8YVtp?|K$#?Kinikzt6bCk^hf3N7o-R?s4>AO_A{g z2<8;~e4AzCO#t+9`r|?yqd%(W)yr{NIuWBkp+6~0{9k;yXAAEB9NN8Q_n_cz-9xQw zk2;w3s_*OHe0jNhPJcmJBT-r7RMr|7^+~dHT9(dyS;M;aG`G(OkF&`7n=c1n(WfZ~ zU)5ierE{{B7^A)(6{ z;D!FRa_~##;FPR`|IqU?EmfAT{PV#d4MI6MQ#qIfPQ(~Y3^`;eO_r|zJAM9js<>2qyZE!QV%Tl^5y$JXG z+MBO`^SMceng$PL&sxf!ud?>^G&wJK2H25johK5G6^j4PM{oS6;3@w$z znk#$qvk!XP%FtStKFHF?Z+p%f^JT1Od_UHPj)s7r_Uvrn^Vm1I#rnzO)Jb!oCIKxC` zxA7Fll%L*Em`R4ovT1(Vw7|E*{Kdt>5Mh|9?D_3{H_S53mQBrMQ}y5Nxxlbk*>jEN}7b+Tz8*|e~-=Zx^rhmAIV&h%yI zHW{}56zVp^cGKk^5xBYI-j0jws)Ri(8n)ItDE(k z;`r@z{2sYnS-&sNC+m0L8Tfs4;oOqvPoIt$P8d$M;HG1tL3}_W_=rS^qOd|mIHM}~ zxFY{B$e4!Nh{kHH$3|?%4(!5S?8hBs2vLA_3$Sj1;xI=kSi%}*P!8q6UInV7CThbI z-tfgQsD}n~W6Ni&X#x-2WO;BgeBRqi;11E&$1y6A$;R15ewgR#92ZMyRBYJ|pwd}3^72z0# zF&GDWt(}8;U?#MSumsUqh80)^`mQBD?G?~hT|Q7>9Xad#z+Sp;2nKuVdZRA}gZ*{v zuVa55`|H?W$38mp)SbtBA@n)HJm`zT8aAi_dZYKp08GOSL}DgpgW1%_;{vWC4L5KL zcW@8Ht5^2;fJ`9_8nBPS9W~JbUC|x%%g`S~LCgkXHc%_WR7^(%sF#6y8CGHo_8}J3 z$3XuInV|?O!x44S6eB?Hh1P?33lUG@JRqLJ<|qYbxG?z_t^^0Tf;trT1?v>9kA?^W zF&7R2H7-oNg^9N?vsHLB#$r6^W#Qwvh)YPpRiuGB6~2oXc!vyp#3vz&m?AgwB0mbE zD#)V38A|``*D9Zjt*}o|J7iIsV>|d09ijrs1--Rev z2-LWkE!;pIi!}yo7i)$VXoXG)26J4DJ&W~4e~@#r;rJEdm<9GIMvleEvDg}H!8Yu` zJ{$%0FLn}VL2kv;KupDM2~pf0>`|OqDo%ZhQ=j70r#NvJKMam9&hf=LzW7a$NAYyL z#2t196rhPID75Pv$xlK`{`gxh1So2K3pSTA0^_59**U z>VugxZ;qB|jkX9xS8&dnGmqxPZaxkZFbPvI4O}nG$-$f)%$H#WR$&d+VLditGsw%F zdYhAzIoCP!Yalms>TZ4;TzAc>zxi{#z$?%L^G`yQ$MbuYO9i?9Urpkxx5pOVzQFfBU{4EI zxT6}FFAMUtAWw@XAV-Vlpm!GZ&VoEG$kT#6Ejpn$27;I^hGIB=#dt7>7Lzd*(-DFB zpnn$RWN{oPk$}@Ui$tV?ep%ebeLMttT08|gT9Bi~dm${z&yxHsbAkLUwa~*HrC^D2 zaDofmP!(SA#V@Fb&gctrupA0>s zVD2pGi{%Z_UrTyn#r4<93>pxhRUs5XB~%7=x2lQSAT}!>)ImFRK`?rvH;B`U_^f1% z##nH^SaH5salTm1z+$YzHgFxX+6!jKin+03Zmf>s1TNwlI47*Br8RZ4rbgD($hta+ z$(op~+khHb6Nhye=3+TkVl|j&>)&t)M{pF!L0zortu^~tvyb(4+{A6%#eF;n^K1PI zA3?oJn;-l&OpQVC^z3K`+X5fInEb4C|E%0re;|2=t`PuL#E|j0Qa^GY|Bm z%u>XFzLZ&mby$xbpk`&xfSAgh2lXnGjLV=_WvEpdt`B7%<9DRvr4VHc!3FfEEVEH| zD&~Xr%d&o1)-Sseo3Rz!u@m&aEd4JVk5gdpvg}><0@$}K`%Vi2-Baj2RVL&mIKuK7m49cNAD!>)YpG{5Fh7anX zF6yH-=!Xscu<3+A&|{kcpdU8$!-n(NW&}opKG;l01ZH9m=!*^WYeTJU)?ovvlMQvU zIS6`Ua}?CchC10$Cz}*pMH+764({P4Ug0&~2vJ@I9q3Q_q9E7urCz zR0DaIC(rU;@Wn5vhkl5}3Y-LcRmcl_aE?~s*a|hk@fD~~1&*u0aTQvDV=IJUAckN# zs6~ZQ7>fy*jA@`Q6{t%E=B2_WP=g9PunT*zAJnA6VZ`A$s7Zy>IEzf)GHXE`6+1&l zG&r{64ZIVg5`C^jY?T7g1H@K|*eVfQC1R>Xk1EllN;5DI^rX@j>;-#PVx3C&g|N+u zBCtXgFekRP;0Yfzf*<_R3w^;{*fJNk%&#qTVM~0r)YX=KY-7L-*s_=Hc963zd)l5r zA}-?^uHymdvF%$SDw`lbG@!qg>1$;h*n>DKH$W%!1U0U_02{Cw+prVVr!uvzOl>PO zZ#Dx{TTJ7m)<= zslvKdeh0Z!$q>Shd9^cx76ueSag>B5Dua2os|x1Lt~R_tj&_aF6fMviZP5qR*={5z zA`-JO7xQrd$#{%ULfEsfeK}MEGi1;D_N;HuxnNID_Vq#i?3W`JM{ym*?@$YkK;91Q z?a%@K=!Gy0#xVQ}8Iv#-%$Y+JW`npKqQUwOtH3-soIxTkfLI+;a0O{XI5xv-&`ZZH zpvI1ez&YW_IpKH?9OuY!j>PGB3wQAVAIT4f7P29$Fyu$~4;$y5FkWdiJinAW<>0AuVt#cW$r*lQvf<2wt z)0sV;si!l0I#W;Q4MMmSha;+kIdG{3X26BVyU=@=cIb!zaE`n5Mn8mLAn1jQj4>Dw zX2V5UmpZyoLzf-cg}p+!nu0lY)IHUME51Y&iYiW!K)Y|I1K4Yw6ojddUow@uiM zeK>$axQB;$g5QO3r*7_Ru@%JVPR{Pc=Y9%jaUMyyjGMRv&VP4ecPDoDXLySYWEwxB ztV$27(!;9su&OPpzyTw`{#7}qDmhmr=c>#^wcN;uf?y`9>0u7$u$nc>qC8ly8a=L7 z7xcIqy{$%_s&zqEOvW@&n`+di+APqQYV@Vr1Ek|UJ_^Cei0V0E3ihvVKuK7lG&ujO zSAZj2;0_L|&i>UsP!A2!1WiG2st*M@Rv!r&^s4#=T*Wn92mP%gy(63kQ$W~v6gt--oAl97TdVEr05gs4fqYZ7lwR}gc}<=Bip*pGvt zzcr8HEY2ed^tUGK)MTBS_rQ$QWJYQ-BeirWgrX=8b6B7o`hi?(g@83`-Gy=twXVfH z*CO9q?}eyMt!tYi5Awqd8WaQT)n>igR;UANTe|@o!w=2S5~;Y2J0Ql|uZ8d+9*-WN z{vP3=jvnJM5mP`NJ*cC{0xU)}mf<&S#1=639@No;K6%h1kDFj05BBhM06q3>1Ln;$ z0QAqZE6CY%IOwsk>Jt%me4L7cqLR z0P%V4MJx^>4##m07r+d75xW<$d!^w%9)WYy>zNSVoJ-z?L7lxzfS!4CtT)GaQ%`S> z^QLFsJs;NdDFfp6sRC-{;|y1Lqb}-$ z^TekqTA(%BqBjPDe)&){pGlx!KGe>K+WAmBA8O&V3e?JHKMsTZeU2dkXOIZ$;6waA zjj~3e>#L9oz>!szZt9U3 z8o%U1UK9Xz|K%5q0<-f=66nz{JiacEugl}>^7y(uzHWXL1u@h$hXwj#IL3lH*PV=M zAiuigRhPW#E=3H;t1fxfrOtI9f}HA=f(=~Y0dlM7hvsMndRebMg3%MyvmW)V7l%YJ zU-hoz7VhE!9^((Z!v`>9^>aW1xzu+>XAookgP=wY$gKgnH7EgMYG8#jD2HnB2J_aS z0UCoC8_@3tf#6(iKzt4Qpg%&v>@^sJIpF%xAQ~I66+5sSu{Z>BX~4`iI16HL@CwwX z!Fv#YL;BRPFp7b?H>BHc{RE(L}S)( z%vz0Eqj7bxPUAX4_~}7Te&pmwPJZO%M^1iaQ67~*9DW?@M;v~{;l~<&9PdXQe%?^l zsfUIjCO=~GYl$`>9zTE3XTKnH2lL}ckNoJ7A3gG;etttS0@TrOG{#{freHcEF$?t2 zZvhq~8r0X1`ub5{KkDnZ3G~*F8vD^(zkN7>!#Ii)NWd8+;vy~~71wYBw{Z^-@dVHC z0&rru4HZbKI13tZ7A5hCQ6%imIrA z+VFxe>Y@P}qbXXTHQJ#g0?-BB&;z~E4Z1|-&>XGM79G$Df#`~0^g>?@Ko|yN z7=DF}F&K|Yn2H&Q!fedLLM%ZHR$w*OVFNZ}8+Kw3_TwOq;3&=@5ijuppM+>$7#6Tb z4KOFonUm(k*qqp!6I*lkZO(qp*{?Z0YEEyO)0^fG@dB@fXkm`BD35xe@GV**6eAE0 z;%q^DEr_qhO+3O=AzD)7mejT-wQboQ{lRf9*MK=`xgD3mF)i;1(TX0nGJxK-;+R(S zp%r~-H3;m}YBbhjD|X-20^2a#9+YSSqe#}SYFc#fAs1TZ53)HJ{j^ftgBtP#L$1uVo8 z9K{(V;uSs$zSD&AaDX#7u5)*=cjs}K4)*W78;8Lfoqxw0(38M2s0`u`^aHaH*a71) z1MDBT7jYo&K#{cnD(erbbbe zKqoLO-RN_-oj8aiLUdQ50C;ToCTN59SPRzezC(!M9N;_%E(rcxa1f|_F#kQ6eS_II zm^uY#3em#^wNV$;smC->qaMt7k0hkwrVu^pMNfLslV0@f3+ArpFi`)VaiIRah^-f~ z^&+-jjnE48tk*)Uz-o|hFY@h0zP(F>I`y^#x%M7_FlqE|c zh_4Sl?6VTY*XI$Q3emS3yio^JF&p!69S=ai`;`YX+0PlHF$K(GzXV*wB_aCfg${+l z?DZ#){>)zgrC5XCa0l$!|G5wY98n#$FcK3m8RRe^9;bx}VXcr-umX<>;V~gRCL|fx z!90dqq5^C&2;m^c&{W*UJt4yAS6E%pudum@#&UcRVxWZFp#B4?|3Km%xDmTRuLfyR z93?>?2hqnt!$9tX$bAsG52nY1tD*+z-C%k*cs1S$F@)I~!X86fBLH0x2l5+oPKcp4 z;P|0Vn21Qs0`U(e{-MM_tS0EsuzH|B!^+?PMzlaj zu=j{<*pGuk{Az|GAh%z8AOr((807Zr86ifJ^T=|bz9ac>Bk94&QAh;wjl3pActsF< zxGSi8II|JXY=kTSjo8B<3L#g6H^@QezsYm4056b%Od&>fKvx9g1lVH~^&QRnqgj76 z>yPG`(aW()h%u%hhcWbLOc(S_OfkMYW5smBEN zn!qs=*lR*lv;)1Fz+)$@1ba-ljGMS4#Kb}<1uJv|`Awux6Zawx$Ay?w6#Vx|WzY*@ z7>vW9kCTXZGLM)2YF9>NcIaO=l*i zQ@iQS&=>4Iow`rw9GJcsu{esm$Pi)%d(6m#yvPr7n{f*Ca>jWiff~-Zf;3Re8SFjd zJ|2M>W)Q=Sm-qwkK>Ra42@#P4jwTmF%2=a|+i8f$nBK*-ALFkU2=!5HGn3)J_9dQE8P6V?P!Td&C6e4mwCSfXO zAPTcF4-2sbF<61sSceVRjBQ{RBKKfFn2AVcBJvncg8oI)zexHQN&h10UnKpDq<@k0 zFOvR6(!WUh7fJsjpM(BI(!WUh7fJsj>0cE6i=ux~^e>A3MbW<~`WK}K{fnZ1QS>j0 z{zcKhDEb#g|Dxz$6#a{$e^K-=ivC5>zbN__MgOAcUljd|qJL5JFN*#}(Z4AA7e)V~ z=wB55i=ux~^e>A3MbW<~`WHq2qC!FcqUc`~{fnZ1QS>j0{zcKhDEb#g|Dqy5&!U!s zT1HXJDDs>sKyEWt$OZPE*$M17vkSU`KF*|`GwI#Tc$^ku7BSCi4&t2E8tt$aJHg{; z?M18*v-6@bilR75VgcymY#u-RH*5qoo|7Ncb&eW3ko%lqknfz{=m*xH69?j%Lp*a5 zgqTY$=hg@Ho7)&oaRE1Q3wLl|h^&7$8izKU^eDm5n_IAu-1Imn(qhl zoX>jmS#Lh;&1b#&thc}&zW4?8z%dJ`@q%?&5As^D1?0An+!m7CLULP3ZVP8)8R)~p zRiG9N-wUxQ7xEwJOkpcjki#iFjD9*dauMZ~@6B*=f!86g%^-^FENg9@<4NYMYq z(=Y>3LM)*dOG<;sF5$6DDuS9U;jv3(Fgr`e;ViBq4dlJ#wh&7zqZ(?U7Cf;XhY^Qk zAf{-}i)i{BZ2>Ek!4lBx=ndF}twO{&fpZ|n3qGKZG1Mi7y2MbI80r#3U1B%~mr;{t z)MQx!P{U>OuoA1mW0q0x<>lc5H&g|2E@z+R2SJR>iE%k~TTuno!Q8B<4fbC#74xwW z^l(KqUJJ1@2UIWxF|6bqTR92TbtQFO$$7O(4@+2sTvt)oRphy9FZSaA*nc(guP%aO zD1lPwiV%ch5Qc&nS2L5VnaS0c!A!1U2G;~25JBjUcw9mXl*iDkwe)i>`L8AawdA;# zKCNZFwXC<6_13c9S{}R31O-7Y*J)uuC-g>N^hYSjVciL^*Sb?+E`FThDy1C+GD&F&N~zemF)VLx>GLc0*p|hZ!QV1oUA8^RR(lZ+I!h zMge-Vk)CYKg(m0#e^8%|U2qe><2hb{K5p_rBk=f5P0<3xxQVg%+q$_ z-hLj}LG0UagSd9sp$2M!dhGDVG%Ua(EJ2JAJBxs|ca}qWR02KQITqtF5mSWNWrBiG zLkk0lV^?1=Kf9RgT?0W5yUv38?jqM+%;9b;kne8t-A%r`$#?g!m<-Ov-O~{%#2(h( zV~$cF?>(i#x_iPw9D9gk50BlWJa!fqBO1%G5^Jyy)Nc>{*u$*trFMJCX|Ef+&;-o# zUi!4xALOu?8Q9wg9fDz)4Q6L=0$$>S5c~3g8tfy^ee`5sMN|g)?Q;Tk z-^a}CW50bq_ywFt``Bk6IqaJc>a>qF_a)&f9^wUF<1L7NU#1ZInfv{mEBgz;4D7p~ zx!6xV_qPOdu%9*eQ;+@BV*dv01n1>`;@*D{M{o*faUK`JwPZgty#E%S;hhk%reKd) z_J}or*@!I;`Vh-}#8v>cjAidwa*eGDZ}_1tI)J&44MbP;#Q=n15Qbtnn6239Scnx^ z4f+;K?6I3c?6JfiOYE`KDfTFi;~a=NmY8FofjY&$2R(_URtE&=&4K(dg9g;TA(Kf>Z1{e|3GsP{{iAZK>P>j)q(El0pdOI8;I)wdmnfV`gAY{@}VHu>mYj_ zv!NFkm4vs)LMqv@+K>rSs^P!xe zPlwp+5NjV|?L+RU4)QzX3GzEceuv2KP%|(uhgu^5J;6SQWQ+zm9^!mIG!c=Qg}Imy z_CB-(^y$!c9Kb0g;WDlu4L9)!oO_3!;{{&hjSzBObA-K)aLycI4vuI+Z;qIQIX+?s z_Bi5;x@dsLXo_~|2x@dB5M99>9O;i=F&Q&48`S3r^*OQ-D?ojYtiyV2!WQhs37p4u zJiuf8j&!`jMG9DQpvOnq>nM92%@pET zF60G0K1Pp^X+e*VRRME;tP7@qy^oRSvEQ&AyTD$@*z4FK#N#y1fqai8;Sz3uy^oRO zu}?xA&jEUKoZcMI2lhJ7EFUk15-0^rR0nf&oZ26s2kLvAnK-@;?01~~j8O$5XHP>7ZWm)GK~2qCvgl$s?XT;;C0W^@^un z@zg6mQ-}oWl~4uLD}n1pLSr;V3$zAxOQ2o}-OvN4@l-*mLA_2>}6V&Y#bvs49PBlR@ki#i*IMo(`Aof#3FbZSAxqE6dreO}q;nX5jVmxLb3bQc}3$X&L!K|HT z&(oW*1?+j6x}3>@3UGuE=+PN^bB1|1!#td!M`zgQ4Evl30dsL?Fot0S#(}v$vly$e z7VL9|ea>vfJ{-Vdkn5S_U{21Q$5lMU3%tf#WFS+Bv$;U7XA8g#S}@yZ>Cf4gAg;4h zz)YT{rf1pn>>e-&XODt?&a%(h1YE==q=G%qa@{z46OZr`AA~r^Je*^Xa|RSaag;$xXjF3&NS=h*ukdndAY zq7D`)k4j*#MD|K_Moln>iQe!$6+Xb#~7pTpJ{4j$CdK5w_P^Sy7VEqdX z(FD!V5^X?jE(D=FdVo4z=!?OSF%5GtADo{TsLuuJbKy5^#1?GBPVB~EFi#hV`NB<5 zlM7Gr9Q5+SANVB1#T<~33wc5O7Y(pN6}X`)sL@4wd$Bg?>BRg~oJ5b4=y8%Q>_Cr`h(C!QC(+|1dXPkqlZZd5J%~AJ0K!1MlZN3}jK?Gp ze-iO0MPeq1KWPni-~bNc2#(@7&fx-*aT!-YE=lB&MEps_oSX+*=urqoPz=^6i}I+5 z${>eia!B?8F((sqauAr6k(B{SvWW zE`Z|j0yBDcmn40@+Tou^1}dnn?g(}C1D9>Glkhqv4aDg;fmU51Y%CbUm^A@ z#D0aCuTbkN)cT4w%EAW3e5EGpq9y#%8A0fdo(KhXzA_Zd%9W9jF$r@JgN-20E5vz) zT3?C9K@jVeQ#cFiedQvUlPk>0m4|o%=HhB@`()~_yzUQ0FBTJZP5Y#p#Imopf`y9 z+87Y?wfR_trC5fQAm(dZupK+G2h{%>F<(26D|mo(yu@n|`!!}eEe9k}`!s5wRsh7G zRs_^J%^u7~8g))1-ZW-9tqGc;J%}}pSks6#tsAI&8g)+_j){oGEX>6MQ1diup0*a$ zJB`@Wh&^o^_TxC1kF;yJf!nx;hj;;EPkW2^_=rzJTqpMHT9kqd+`(*IuLV!|fO=oA z4{Ckg56sMUYJR;B`XdyBK&`KjKsZKY9LVGP6ii11$l*HmzaE1XNX2~+(6bwd5r<e&2kAr$XGaLKV==djIIr&5z!`3+hMMqz7yLne@ASn0gn|6-kl&rzSca8YgWs?bo3RJ`aS+6C z=MqwJ71wYBxA7b=g}5t_6Q;-m;<{T96+qs1$@^{%)P@(By}OOz2l{uH{@tbacd5x; zYI3(fLNN$qFdj282lGLH?=A&(x=YM=w}6?sy9?CqF0tRGPj~6l-E+8rWL(B8d=!Fl z5ci1ro`hmBM=4mq8f8K6?lBkli20r`>Y@P}gV^u2MF(_3XAtkbp`f4lMj#xcF#}Op zid9&P_1J`+*n|Bz2292S@%Bc-j4*exle8Glhpl} z_yh02Jl_8#!~^E$0r@>3rw8Rx36)U`twA0S$m2mL1Y$FY>A?})!b2e*=0-_W1jjxk zo`+6wg*#fHBLdI`T|qq_4gvLeI1-~kPacxf!`mRiPuTOxYayQI zKpy0W8OZM`^?XV_pO%6Zn5n0>pr%i2z(l3Kb}7ZYp3S~HA`o$bk<5| zt#sB(C+>9ml1^XJ=}UTh_@gs|KyT7}q7V8b6x1|*C`KS0qcIK>F$L4X9Hq~~T%5!y z5L^0rB!L*yi7}mer&I5AVoj$W>C_{gdZa5cQ;&4&kxo6*Kj4!PFX+Py@_0e-Ur?JD z}>izyIuHz=| z<2eX2!xZ_zjAUp)jWUX&1WJNS406k${u%wj>}OER z3}z~WS diff --git a/Source/PluginData.cpp b/Source/PluginData.cpp index 4df1558..83423b2 100644 --- a/Source/PluginData.cpp +++ b/Source/PluginData.cpp @@ -194,7 +194,7 @@ void DexedAudioProcessor::packProgram(int idx, const char *name) { void DexedAudioProcessor::updateProgramFromSysex(const uint8 *rawdata) { memcpy(data, rawdata, 160); - refreshUI = true; + triggerAsyncUpdate(); } void DexedAudioProcessor::loadBuiltin(int idx) { diff --git a/Source/PluginEditor.cpp b/Source/PluginEditor.cpp index 1486954..20614f3 100755 --- a/Source/PluginEditor.cpp +++ b/Source/PluginEditor.cpp @@ -250,8 +250,6 @@ void DexedAudioProcessorEditor::timerCallback() { int32_t env[6]; if ( processor->refreshUI ) { - if ( processor->refreshUI & DexedAudioProcessor::REFRESH_COMP ) - updateUI(); if ( processor->refreshUI & DexedAudioProcessor::REFRESH_MSG ) global.repaint(); processor->refreshUI = 0; diff --git a/Source/PluginParam.cpp b/Source/PluginParam.cpp index 243b247..2e8b370 100755 --- a/Source/PluginParam.cpp +++ b/Source/PluginParam.cpp @@ -417,7 +417,7 @@ void DexedAudioProcessor::setCurrentProgram(int index) { unpackProgram(index); lfo.reset(data + 137); currentProgram = index; - updateUI(); + triggerAsyncUpdate(); } const String DexedAudioProcessor::getProgramName(int index) { diff --git a/Source/PluginProcessor.cpp b/Source/PluginProcessor.cpp index da11ba6..682ce8f 100755 --- a/Source/PluginProcessor.cpp +++ b/Source/PluginProcessor.cpp @@ -28,6 +28,7 @@ #include "msfa/pitchenv.h" #include "msfa/aligned_buf.h" + //============================================================================== DexedAudioProcessor::DexedAudioProcessor() { #ifdef DEBUG @@ -189,7 +190,7 @@ void DexedAudioProcessor::processMidiMessage(MidiMessage *msg) { } TRACE("program update sysex"); updateProgramFromSysex(buf+4); - refreshUI |= REFRESH_COMP; + triggerAsyncUpdate(); return; } @@ -202,7 +203,7 @@ void DexedAudioProcessor::processMidiMessage(MidiMessage *msg) { TRACE("update 32bulk voice)"); importSysex((const char *)buf+4); currentProgram = 0; - refreshUI |= REFRESH_COMP; + triggerAsyncUpdate(); } return; } @@ -222,6 +223,8 @@ void DexedAudioProcessor::processMidiMessage(MidiMessage *msg) { case 0xb0 : { int controller = buf[1]; int value = buf[2]; + + // pedal if (controller == 64) { sustain = value != 0; if (!sustain) { @@ -417,6 +420,9 @@ bool DexedAudioProcessor::hasEditor() const { void DexedAudioProcessor::updateUI() { + // notify host something has changed + updateHostDisplay(); + AudioProcessorEditor *editor = getActiveEditor(); if ( editor == NULL ) { return; @@ -429,6 +435,11 @@ AudioProcessorEditor* DexedAudioProcessor::createEditor() { return new DexedAudioProcessorEditor (this); } +void DexedAudioProcessor::handleAsyncUpdate() { + updateUI(); +} + + void DexedAudioProcessor::log(const char *source, const char *fmt, ...) { char output[4096]; va_list argptr; diff --git a/Source/PluginProcessor.h b/Source/PluginProcessor.h index 38fbd68..2e6b00a 100755 --- a/Source/PluginProcessor.h +++ b/Source/PluginProcessor.h @@ -41,7 +41,7 @@ struct ProcessorVoice { //============================================================================== /** */ -class DexedAudioProcessor : public AudioProcessor +class DexedAudioProcessor : public AudioProcessor, public AsyncUpdater { static const int MAX_ACTIVE_NOTES = 16; ProcessorVoice voices[MAX_ACTIVE_NOTES]; @@ -89,13 +89,17 @@ class DexedAudioProcessor : public AudioProcessor void keydown(uint8_t pitch, uint8_t velo); void keyup(uint8_t pitch); void processSamples(int n_samples, int16_t *buffer); - + + /** + * this is called from the Audio thread to tell + * to update the UI / hostdata + */ + void handleAsyncUpdate(); + void initCtrl(); public : static const int REFRESH_MSG = 1; - static const int REFRESH_COMP = 1 << 1; - int refreshUI; char data[161];