From 9ac619f4a264a5e34e99350c4602010f3ed45842 Mon Sep 17 00:00:00 2001 From: Laytan Laats Date: Wed, 24 Jan 2024 20:58:14 +0100 Subject: [PATCH 01/22] vendor/raylib: change to non-universal binaries We already have 2 different folders for the different architectures, so this does should not have any usage impact. Main motivation for doing this is hombrew requiring non-universal binaries in their installation, so this is a step to getting homebrew and vendor to play nice. --- .../raylib/macos-arm64/libraylib.5.0.0.dylib | Bin 3390744 -> 1656744 bytes vendor/raylib/macos/libraylib.5.0.0.dylib | Bin 3390744 -> 1958496 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/vendor/raylib/macos-arm64/libraylib.5.0.0.dylib b/vendor/raylib/macos-arm64/libraylib.5.0.0.dylib index 24e79113389b5cf55c107a1344cda32a2b4ac1a1..ba53cd2322230231aacd6bc709af7c8119a2dfa8 100755 GIT binary patch literal 1656744 zcmeFadwf*&o&WziGm~T{7feV3At7^e1at-%0R<%rWpV)$E(!<=7EL0c2^S$;EQm-@ ztU;jPnQdsL)dE)51Yvh*;k!&r3MjO&i@QU;RJyVz3N;9{LBVERXnwEH=e*C%IiEzj z`}qCy{R1A4Fms;gb>5%*?R`Gy%zu1y>2IlwDGdJ-@t23cDLoi_k)?CQ`rxnH&R9jo z^szIi3ncxQ)$MTtDE~{QvlSJ~=dD~Gm&*2L-=m-Vc#|G3Keol?j5%1H`LLp5+42>S zFN-1B-pHf6ojQsDKQ`NQl0Bqd{Hv%~{P_Gi6^rIAuU=TQYLOYo2#2Z z=CpH0>7BE%YT2@e3BXvs^?O!>#nb;-Y0XnIja$piO4NUe?9m)}rZ zkGW0$$J;KiQ56+WE{@l_Z?{*M1hM#+Wr-KJ)1sdc|97p&*7(&W>GARC)sOLGb2?3? z40}(QE3%y4#vI+=b{-M@pKgxvW67T05a~SC<0VTMFJIi9 zy(MHXhxGhdvPWn153*OYsOrgiyz0sEt0#L@jTt|_QN82!BnJWNc1%I}^>i}7=*k(3 z9qSq%NB-xcON{n!bW-1DZ|E&_0qp$`(z$Hj!lm<`Sk^UuLm$xNcbw`SKQ`OLSkYZM zh;ro?<@j|xMCqmE@?*0-#JW3s%T_Fzx3pV(59{`fi#l-pKd@Kxbk$OkL2~?@Gp+Xc z@r}xr%42TT@~Up_<&eDqrI#N|@uPy$KPoC>rntaU0pVP;j0)rc_oW^ZdXLvbDNF7&t}IlG*tKM%~t+RVHgM4 z6m9_j#vw}lZ!zXy`+G8$X^xmKiT&@nr8kRobDq!NcsTawKYco(S7GM!vtPZw>U)Ku zJHZO@r(c2qSP$`ClzGx$?E^uKx{t4n&x>Z_kK5AgEx%G>LmphUZ27!JLniTzSh{M+ zI6ee^Z}HLv%Z5C#WZqNbC*2_iMNWo1G;is$8gwv2is&3HbhXPvxS`#W#d8){b#GRj z!u8$R<+*o5yX6l|tXbZ@U2!UAw-Vp}7x_@KcN6?1DAcW*m(x_kQxh_>y9@#Y2| zs+l|Q2KL42nEjEK_>V+|hW!=Gmh#%n|MVigqu5-ZyOz^0F?9HDRQ^RvmV8TwmJHF) zAs*Z=pZFO0*{LuLeLuR9U7p@?i&s2_4h^;G+cPz;=_VWp`!i+~{=XN__@z}#s%z#f z`}R-_1;XI}rD5@%-p6H6=sh z=P4c5dU6)jT2J^)>y9FGEn)07sCd8e%AstQj(*Kc$Go58|M+y8pKrlbZ2X5xT%^bLy12=QvW)9rUftxvSGY4+wz|9=E znFBX-;ARfo%z>LZa5D#P=D^JyxS0btbKqtU+{}TSIdC%vZsx$v9JrYSH*?@-4*Wly z1J@S+s_C02m8OmgThrGM+ncUD;ApzOI-%)$i4y$EuI##EXS>!pS-Up0XRyVdxvS1L z=0k5X3lt1+L|fis``U2c-}1sVri}Tp6325ASi@DY7JJsNR_OnPW8-^|B-Y?eX6?>l z6T%)l8@|KILRv>!%&rG^Sq6&=Ue?3PCo4LC#lk~u3-OZ@KdnSXSR*Ec+Y%|P)LUXU z`8hTqQMWls;(L>H-YD@faYwq<&Jp635FOzs0@mD17qqMY0d>HY;SyuZa zh%c9TVN%qnKW7r-b?ITFE{&ZKZgf!j_P^6?GsMQ)^?X|?@yWzbO1z4A!Ch86HN=-o zd=2sA5`WPii}Mq%c$}X|iGM$C`d*wG=U_vk_GrD{TW6xzmp_{&ATEyU-@WEQ#y ze|O`r%qh~}u1!yk#oNDDluNs|Jk=60ag2 zh_{`}3Q>RCwXAqMs2d{ku3cLgX9b@p@bYTccE=ezME2U^tmSQD{p0Q7@V_dtJpa#I zcz$N@x|q%y4u78w=k35*gEpe~IT7vTkXSy6HZnuhy@*yhEXGA%eIWXxi1w_dd;=`o zLGes9>qG36(6?(JC0Y3Z>Wda34tNabh?51h!SVEnu+AswZMoK@*(7OZCFz<~sPl>_ z^N6;*cPuQCmReEn5p8=;j0^iwn||#Yll?1k`{G&`*`D)@4Vuc2!oX>G{wi@fzZ#Qv7R) zzajB6wpgA2c^35*VN)7s-fPVtqaHS!;`VA>BjSH5QIA{deX(l=KTUkL#Lp8yDDlgQ zdVM$&8|x!lUn#vl(T*cpoy3cXJLBmUahNK2NDE|JPAT0eydgEqHC{6 ze3+;k5$B26we8w9DJ>b|+IFpSl+|Woyw7RqCGtPwyd1L=(I&;mG7rBMyni%gV55_efK0h20&+~hF$H&dL z@LgQ1nXc_0uRr424AI9%oC79?kE0(JZCo0YgblB5L!4hCm6g}7$I+*!51N2>Qffnc zsjf}8Tl4G$g+C0}V$LG+ram4=9yXgt?I|Mh8sdE|bt=Nv5nm|rt;8E8zLWS_iSMU2 zG$NL+h&DLS8h;m!Ee#USrfUmLc|Sa!ZzAt6vsho%FNeyiXkyrdxw*)PD+T7TBCLqw zIb1XIcJ>@2Nr|50sfW${oUF(o|t6kSmk@|y6#CJ>lD)EaFuc9)Ys<$DLmV$m# zoGEVWCEiLrwZB!5zE;%38K(Sflr)zq+*zr#3&Hf5}>+bwOposFjT%9LI)o1z@A z(we(o;z8=i+9bY}#>@{UhMoGj5$R^m9?`na*&~`XXBTz!jH!;*yRC7{r*yTN#;A+& zxh<}5XQwG${ywp51wTi8dc409>D?*jdJ*S2J+DN)nl!?CZ4=e2eG=b8yzkvseU$im ziC?F7dLH#KNsKuG?X0EjBJ5GouLd-aC9DXm5kFT*ry4H|Cz_j)fd>!%G@wJ!W zFA_f>@eP6pw7FxfY0)U((xvsm7P0OLnfnZ3e=G4x@j1JPkJZCyth^knlL4*Ll0WDl zDD4Xit#N1;buyqej<)j2l$I=MY+XnBd{ys@(5|tbi^m7?jIg~lejS$Tm`kiXBU+9c z3roa5oA^SB*APD{@gVWO@v%(UIYM!Zq7GxNF6!GwDIaFhcsKZ-SR6#06O4X9;u*vb zSa>^IMg6K{q}fh8Lpu`TmP&jN@!b;NPuwY&3-L;c7gGIyMdHVZzaQr!PlE9|?*-F5 z?#VthH%ORd%pXJA`z~u*`iOBeq>W6r@^b2zT$99FAL$KgZ%CRjUE3k?X5zzBtTvAj zUoP=u#6uE4L2*b!9Q3t5#vO|$!lE=bWtcRjlAoqEK3^)zjn8xc8Q<})i>z!`H;wx^ zuCE>opKU38wfY)O2m}ZyOKWD?aReK{?f(U$^rXTI&udjT*k&!#&u(ui&@s z#p-_lR~HNX)usin%zwIr&j+##9OTo@gikkX*QW?K6HH~Sw$ZljC(CTkjr{x3+?n5e zcqppF_Tn#pkbB`@ zw&i~Dhi$o>{{^3$KG>Fde8n-o#AE(Wa*_r`ch>zLU1xj1WBf70GaGZiT&VN+56+5odZN-k~ zC5MwgT|bQtNY0b%2kJzS*A3pcIK30X&H-%rl?Q$UpT7d1KMP)g&!5)=QD#SZnPu&& zgwJ2}MQ5n5z9Mn2m`4S)EXArXCtfD;sl=a^_zL0&B>q}bbRG8#wn=;z(|MN78txI| zr4m0ze7VF=5O0+DIpPtC=PP=+4n78%@@F1#kHnjZPm=f^;tM67VbkruD)Ak}-KmX z7k&bh{!!wixDUX@F~;Xl*El{m&n!P_Lhfp}j&&c@Q) z&NdUDBJrKX0}?mtxfriac8q$S#m8I|ho3~mXQsq4XSlw)2;;vViBGU*kH<7|mz9WKiDRSS=>6_m#xOMENwzP-%$ zBWw+&wM^oDD370&_%Pxji8m2X<@a1-@yEJ?_-u)Xi8o6843*&(iJvE4%Gb9h`*?*0Ay~Otr7i(mbK1`hPHL{7f60er{dEy5oewnyav)YLgpDFRFRQKy8 zUQ2wR#9t$R(ZbuA(O-LRHHQn|8kKvU#K#iMCVBh)E}%#LFaJNW4MfGl;iHyq5Uj+pYGu60el_PU4LcH~RjI5;yw( z;U25~DA`#lafRytVTrqlJG@pqMn5n~;zmCZkhswgd?ax%+3!2hYJV8xd8bS?zBizEa{r z;zuREm3Y=2Ry#Y0&y{!+@qH5COZ=L|!^Hi3FHEc-#@d80k;-iT>M_TRZ>*I)4Ch@VP-z4!J z#1C6|h^-NGv51z%eaW%(hS(0`;vRyD;~s*@hr^N{_qznYDDf3yOosh?t@c+DUm|gR z-Hf^>aeZAI(T3hWk^za2C2sXEhS)sf z;vSbNf7THf`$|mw1o2nw=J-e02cn+0YwZ$0Lwvczs(($?t9I?6#CH&PCRp`eQNHck zN{Lqy-!1V)#Lr562l1Rlt9{&?LVal0rbxV%_JSkn}#9LwS;{ z;r5~YTq5y&;s+(J5qDbrY7sVo_)Lj=iEo#Qr+A->9wZx73c|hXjWZxnAzOWZVggZ&%#@g!@iO(Rt>_eMHe0Zugo`zqePU2Oh zmwjbMJ1VgFz9MW@NuQyU@q{#8{6CUy`!-@7+_b$nAWbHw8SOE(x`3q?_o|W z{3*o6z5kdUjDb|g#l3$MUq@Wr`!{ji`xj**?){s%zOMVWKDb>I_x??K-1`@H#C~lP z-%9*ox;6ffQhNLHd+;%RgiWP%iM;|QKCFumD&U;@cl?fTSZoK_ixg&?g@@Q)>hHw< z(^!}x=A*cX{ih~w_|L`uQxiAhUdQ+5nYiH(4@vwS*>^~O(4AB!)e`SR{ZUBb`NYM3 z9#gp3&m+oYl*JEM3 z(ku20nfO-XWs<-1gKpa449v-UeQP^x*Y~@}YzJ5^#r>kic7Sam-ap4$R!x+qYKa$7 znTUP!G5aBA_#4EYBNIPOc`x=HnKm!Cf6jMK-}u@3^5n+qZYp=`U~Ry zEq=-n@6$xMVy{yyJ`uK)(i^bov3?@nCh_aUOC>+0LS@(>@dTsHCGH|F`!$XJPWEf2 zQT)$Je$B1Khf4lP!#`Ii@g1Z;De;}e`$~SwCgRl+-$VR>#P?k10XCNE>>CnqBJQyGA_MGQ;?)xWfcS2SpCisJzQ_Q(M0~h~hgg{Eg4jzR zt5c|(RJLL-y@?MaKE>j546zx+LlS?KxX0ov46zr9FR}0dD;I4vqD3TLLww`_bD0E~ zKHrRJ2PIx>=x?*?_lve0(ds4s0r8I{?h|bh`=l*CJM4QSZuRj6*iPc<9&5Nw#3xC7 zji_r8?G1@vA};o`#_~VFu%8uuKt$iqYU28Rw1~Fe;t$h!CTXFv$*E3D@0eGHF;v0yY{C+||gX)gM;;%y+6@3QwUP?Sj z{HVm=C7y2a*9G{qbRsXsGkK=EtgmS!+AES?UyDYxc8Tk2MYK`APupb2s5|0$7ZYDY zc^s1TTZxNjLrwbEh>K?gO+1_0bQ|B-ZQ^H$kCJ?d`kE)AiRWxg`gxSk;yD`=-$1;t zt?#PZ2*U@ehdSSbTp0)=Iou;^&ATkoaZdsTSX#vCfNV;@LY>dEvQ0 zQJ)(n{dMA3EIdT}R3cibV1*#Pf*kzVX+H^u)&;`08s4a83-o5zK$AnD&F z?nt%TIb~hvh`Gi*%r$QP*0~1qIPQ-Ta|b+!fxeKQE!X2B_%P8I(zE3zK7zP-*4o7N zKDAwI=xL5)fEjJNUE)UD74NW!}#}(yac^0L>%YwYicW`@KXw zk4oHV6N4pRim_*5yTqHwj>qCl2{5A#ZIbw2(zi)Go9bGr#WxaQeTeUtcs}t|i*F>r zyu?>Z+(-PR#D@_V&$*iN-$nIPJm+fS*~G1T!2q??{?&PwgkN=xG z2bY^9<6vbhQAAm$7Ot`qoKEh&ntTG3cyweSi#>q_qEt_@ElDq zJV(=e*AKxjc6RpWalUe`b3cFn#z=z)X}~i?cjISzr}cNRtgCkCE`FY;t-3Smp7mJk zuV2Z1Mf|xOZZCV+XIN`&c!D(`oe@@(92T07yK3qT%_7p2abJG-1-L=l(FO=A@x%Ce6jJns*G%5z;L2cCqs-LvxHYN4skF8k!TN5qsXO@o6+P z?~>+O?gO)Gwi%jJq`B5r^CLs^0cq;EPs?g&v!OXn8nL&{s#$Mn&X8t3_i0%*s|`&n zY0h@lEHyOeNK?suT2?zXhUPqJ4tCX48k$R_@pGS+)y~6)<}zuHch%f)Xs(iGDED7k z?Tj@vQPKpuYDO8F>!fM#s=3S1C@FfsI+OddtYHl_Gzp|R*;S(%8W(9&xzEaKC&$pF z8DVwR++t`lNVBi2CehGjlO~J%wX9)XpG)n%4{4Tn)m$+&`K0-%tLB2C(MU5=f2VsigU+tLAA#GlMk3|7Hzqk)fGIng;H3vufrVnny{~pZn9Sn(rE#D$+D|)l4%q z^GH*`{bp7><%Xt)G@H6={Dx)`X+G|%xyR7dl4d6Nty#mm!_cfC4ZR1;T;~TEnpLF9 z;=VPjoxX-<4Qbx!s>w7o>qwKzeQQ=b$%f`d(mdN$qZpbEq`B5r(=mtogw2K>?q{=x z^%p}EH0*TM{K?R4A>!PJe%Y#d z+tBPJ%~0-_vueVIrinCxu9}dc*+Uv9_t#nNylH6ml4fpK&Cd+Ye$rg*s@Y;_!lbF> zzCLSMn+#1eY4&y1ykKaKkfxOT`mA=IF*L_WbGWOf*3g_F&0y{WwA!gQH1Co|>;<%H zDh$mj(p>3k=OIJ$0cpfuK&zd}hUT;p7WXk)HKm5;3~8=))!b)jT1ivJeT-H+cN&^= zq-pG`@fw=*r0L6jiB>xWhUOA!#525BO>aYUnKWWwpjFeu&|D==CHE^@H3^0$N*b{* z(5kuiIJNidr15aSqE+*ip;1!#{HJ~Wvt2b`7@7pqyx&#RYG_=f5xz=mSRWahG@-#d zm-{EJn*Y!>A(la!D_u3eH8k0z5zpUR?KB&jKBPIweV$g$K0}jFno((8G;bLijWkEQ zYF;-q14uKxM;AL=4UN~Z(^V5NG(OTyzomu39kFlBAR%Qor&kueY1kNk5uUOeTR5=r^KsBe^%ng{nbfv zU#PHCL;8IZUqrlb+!reJwZ!WsZroR7ai6Eq8}}7W&-4m@p6s+sdgDIf^tdk+`UuMw zKI(|JPvU)uXT^PHFp@L5)zDeT7eZLNg&mjGzxGz-LIZxc=BNe%FlA*`y@V@coz51ne@gUl*1C&pHswrW9~mQ z>1UChlM+8hd?fdine-=!3;&skze`-av(Us(5ns-IU?x6~_B$Mucn$HP+}CB&FCzYi z#A}H=xxdP!UqM{>x=ef(@ra~fLwqRrMVa&)h;NtpX5vonPcrF)#1~5Z1o4k0{x0!S z?oTq=IYr#`oTaEIn(&$9Ssv~aGU*2pe?#IQ5O0(CY2tqFH!|4?Q-518@n+&5OZ*7& zq1-2AvU8018xlW3yf63tnDqLdMeJXY_$ksmxR1xA*Y`5wnLCM}A$^;~TZzx*{u`4W zeeWao4odty>8s=Wl92!H>&%y_mdB=Jk6XWWls(qA_0 zNc<}CHzaO63)Ug=>!dG@?>`dhQmDTQNIZeKllw?a@o^EKF7Y(trhQ4meg<*Vz9hl3 zi7({76O;Wu#1BebBR-t_KTP@o#6uF_LjBJ*i5vY`HTP|p>=^x6MB+w2Hj4W&OnPGv zXrsjSec;&3$bA(i{TYhSdWp9ZH$8hO^5kXfOz+M*aBZ!5Gy&Y7S)A@Qn z#v@GMlYu>X68BMFz9I2-6vw`NJ#Vt}BJl=^2Z?9J_tqdy2-na{JWTwe#E%Hxt_|mF zdsDbGL?70!Es?lBM{CzUmbgAgYu6_6b-T%qK1XZUOz#&H@mwM1T=-1{zV1z=B^TZrZ0Ocy^L*$MnoCINqJZ$iAf>NBA?hB3#omu0nrW(YfgvSHaN_ z3ccwWSHaQW32u7ERdDocf}5Uk6&(GM;HGC>1xJ4&xak>J!3&9-o@Et$Dsj`Zse&tZ z-Hz!QRKcU7ZU!{dGn|5t6?HS9nV#Vkd>(PrGnwFczmk}b2F%Z73Vw!ltqU0w!}UG7 zuM6w=I~7g)$VHeRw=FpOQ)z#8z?qGAC-?o+frbXr_0}Ax!KarFmZ}_dS{HBoLn~@g~tnMYN+5-$UHP{YoY~Vd9%4 z-c0<8#7`5S&iz3qJ7lsliparE|<8me*H+|>CCeojkxUmlQWLWK=BK;DHpCf)i;^&Dw zdRpzI(VW4$2Qb1ihzBJ70OB7>+}llC9F2Z9_Xcfoy~SsQeP%SzGVRYpT?;UM{KvaW zB%e_q(wm-_6m>kGc#EVrp2Zk0`H}{Zev`zF__RpeNBWVHFKL)zN8%%hpOtu#VaMWQ z!tZMl4@kV+up{xw#79|tOd&Saup{vq#M>l3%dlhdG2!_e;--CjBA;svJCc48algfv z6ryKJBbw=1M_~tZEsVPn&GZg8!B-h}EWRh~%_jbe#Mc>iByP;#OD#So?4L92NPG+N zc8PB#UTX0@8Sli5Xs=3qhhazJJBgQBd{QCSMEq5W?@8=B&aIjlE_2_YZ83|V2hYwK zVM^Q>pBgM2&u~*e+ad9>#AjOkKOv^?bI0>5636^Ylx>^DS5bfDxA=vy&ziW^Uxep# zso(in(q|LzYw-((SPgNprzzII<9S}w_pY%}qp z7Jm`!(EMPzg-7UFc|1!g@zInI9TFc)e5B+@nn8TI#2+QTPvZLf4)9!;#9t)6?2p<) ze4*rzdX4yQi8m8(llU>>9?4Jj0r9yKKSTTtiC-t)BJl(&-vY^hWz>_|63-|7s}dhg z{EEb95uYUayH*f?L*lOyzb5gfZpO>&7%zu>Ynu*9ehIvnLA2?RX7x+pw>zoL<=kr? z>+xJC@qol@g-m0SYl@h;1{C$aEHQK1;=ebVY>LtONl-4tt$q@e3vsKT1m!|}lO-P_ z?2^d;i1x9>uM!_>sSgo$op_zZ^>;8twD%>RM)}-d@^=}}cCM7T(KjEL_yDrg*HVAb zrxIT%@e#xiOMJB8csGmW?;1;duEZx3-zV`I#GRJ%#qZD%pDFQq#CJ=45%FshUqO6| z>^CEBde1(_q6mADIFtNln~Be~aI{CkBU(t}uMtnR_}N0S=kBW|zK8TjCBC0{PJ*@l zHWROw_%Y%KCH^k))I_VD4~SPv{0#AZ5dHFnj{0 zXW{fYg7x`~lO#fa!S_(yV1*-aE^*Uyvd9BG!$aKK_u#jesqeS;Jt3y| zJ@^d;OJ5SAz9*zv`<@U>FybTW(}-L9o)G`-S3M@4-9Wg+3znJy-)0xAr|DHkr7!@4*;F+}ihG?MB?%_uyT4#I1b~#xCO4 zz6WCzackd$v52^}@4=Wu+}ihGeoy>n-=nXK{$J>OvL}U)r+w?Z6XSQ>mnZrjV_hzO z>snt!32v;X>(XNVvfzDap3xrXq7TrYrN*9(9x=V(J87P}PvXYCV~@oLhrWmUHt{=+ zu{9m~9^xI6-nfS=eplY4A3%NKK8p`7z(x~KwfNNVydm+~5;xW$;Mq$M=^BeuTK`ool)sD)ZfvezH*)BtDC{_~ALCC~;#>+amET zq&Gd|E9`6~ZrZ0NxZw{!5ceSpewp+hi%$^GB2%4RDDlly2SXAM8g*0RTZoUc_zDAT zEAjOb-$DE%iR;g#Ml@#e6$a?{N$}nliDy$?o-6Sq#6uD{*6V{UK18%d(pO8|@F#yP z@nN)f$jLL;@c?*W!yrn6?k0o<$aV{k;aLZx-Jr>Ko}tN&F0P@tm!xk8CAw`dtcP|0?lok{yNm zpShYfU4_KO?-rZvk0zdO*{>JizX>Y*lyfCMkN81}Z!qlivxd8wc(ug$8g?YUpLkY( ztDVclCrSJ&@p_3X)GwKSH$voF0&&?NjC~0rz1Dq#0j3eJw)lMmY=B{3;$GrbKQY=D z@hKL+FW$vRJRtF@#7(~gA>v;}yj1f0Hc@|DFY!IZBNE?BJWKKu?>uOZ&w;wQ#EKjJeb{vz>!#P<{b zSmI&grr(Va@i%;%3oZWR0NX3Z5%@eMzMr_&-yDefDswD;;s9$V{d9@zKFpA|N#e(> z{@}B-SeB>ddGTI`7RIJK>AQk=G~jpJ0?yWZgLb?#LH~YV&;{nf9Eu;aJw3wwwdAJ6Mf~<69;eE}PQ@SQzjw;x&y@0K zj+o-_(wK<1iZsyga|WEV#z$T4Z%#vc!s-#$p%$?YS2n(1SDIX2d=}X|)FZYI*Jvj4 z@h|rsTy*I!WzmH}wngXr*%yhhVZ)K__a){R`O?Q0`+80;@ny{@_4RsmtS@KYIA3ns zcwgRGHsql5KKE;$QSLL#^VIA3`%dzGZgt>y+!fE|scZ4qh~o_dJ?;~?<*DcKH!$Ts zcgmoF?ukS4)CGg{)J<7=>dB#b>P7sejmuLf-<_u}!ru=b%2WUS-aPfs_`BuFJoSMw zdFtX(dFrc6^3;zJ-Zgx>pUG1nLs-w@v;NjR^*F+5!)NlKJaq!XSnbJEcRDq(d zrYEXrJ^kGSk~MciR=PSitEW0|-~jhO;y5uUOC6WfOa0Tp+uT};=4Or@HGdfM_03Rx z>Ij?9&vI3Fw%z9{boiWo5_~D66MdDQ0(YL0)tC zd4075^;8K~`wQIV_#247BIm8{qJ(6%%3)Vi((iB=6by0~puTtt3f#OsXooeo4ZJ8v za}RV5bbFm%x5w#mH;&sj?RfCbrHXR9n;~s~VvdG6g_^tAHPAg1wr<6z1G-u1b~ORt z6LH+AZd%;j+>;G9wRiL3l5^CDl;nqriD zi7#E#%RXbkIG>`7_w`Hpj@y1qqB`N0o~j-7VE#b6Iw)m~J7q|cI&nyr`qmwGb#RKu zoqAWgI_a)n>cuBXMmuIQXPutZWARq1@nXdlR$X=*NNGI~5I6Xss-KnTHr(Hdo($9Sq`Bd7| zuFf6U-+d0p=d$eTi@ogXPSlM=S3h@Ru3h~t{&?NE9mlu3?P~Hoy>6t`*nC=FyPA)> zkvhWR>w&tFvnbKWJSaQVjq9sRo2>QYn5Z8Y2K@%@O!;58v-~9v)zZ#ZrmN<5<|@ci z&FzeNa#X)PPpxEnJ9rUo?HK;f;cpn~eFoawRQ%QAZ$FN=pv`@NzpMD;?LbM&Q;YCd z<;YXlqrJ^S8;Z`&Q`6DjX8U=b=cx^7Z;wssrTz^p2kox7GFN@vnWr92&lBx!TydWI z1oG~8)AH2M2j1?^&t|?pyj_j8`AX;HseSvPUCnU#-1!MUmcZLpf01|R`xT*Gy-n@O z+CQb2`hC5o6#Hzcr9S2u=j%DC$k%&%i7&D5Sf3+nyw9k^d9{9DepQjrjXLZcQ0hze zjq{yO=5;Pz?K97&&YH*6pWyhJ1sQ7Uh!S6Jja_}DMp6F^_SAhn)gFb3>ivZd^*1

v3G)FGKZccC}hl)Gu)S@}QpTKyRWt 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

5pEprwqK%8`rqlRP6is#f7hw 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 z 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�=iq$3*TbOmDaYbW8uTL^I5XgY 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

%8%I82KK6V_CZy_gNk8w^&K?Z-V4bzzv||@K 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

_ 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 z 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 i(b!e9 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

kqAK29 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 C9VPs;TnP7FQQ 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�BOk z6v~$C_Re6&)9EmQr^cHvfn;rHqZQHm)DO**Dx&$RY+|4KHi@*~Mnx2UMotq#Yun%K zK}VoSe5$Wms@}F~&&ccpSv|@4-~426N*6WFPqSj<0rF&;s8~X$WnviG@Z{av(49~E zf%qg6_O2(#bSCBnSw?g{VhWzp?;(~By!YG2ih%F|rS~h%6>%+hJ~B(>pAf}Ld1O-M zdWUS-5JsdFjiy0dS9jRwg;?OrJ^^7`-gYyeT6fbQQVdm?l2S#H-32_$zZvY&rBAZ0 zdfSuNQa4#K_PNKZAL!?hSu;qvW*rZqw=R9Nb%z9Fmc`Jw*L2ff3~ff}yDOmME!@a8 zp=xz=0n->t-jbz0BT&co#~0cDxLkZo^VP64U){*b4S}VRk{1hGE3Qz-qJ9#ADY2aj zlW}mEGR0I;*2=d!7hYQUaao|Tn}DGw8s-E+J=Abs4=hDOV_#Qjy;CoFk@GX0T>ZN| zf3sXk%8taVIRgrXEjzSXv8oF$WIy+JL?zHe@5{+NVh-z}Cu@0q95aNuH&a=0wz7T7 zSq+Nz=K~gKDEv8^W7?A9^7Cf#BQj(; a{r7=Afs&FIQYPs!d1lg4fUk&2~`AkGI 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ℜ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 z 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

U?TZzYOFy^pEjuBdm5g@gq4 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%0AyW7B`UF!W_4acS4 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

{llM{SD0I^MOil)76tMseFM{LkT2gukUT_=hwY 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

#aApS%TLZsdEb%1(zd#{%4i3 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

Qn|i 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%0ACGU*S!S(8-U*;aLxBb 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

WjDR@Mbh`WK3_OtRE0wg0BRXr9Jf6@^oHDHV4pl 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�XKfe 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 b9wKwO!cZ>pK6l=ClR}2E`T(Z?{WtytI@(4X diff --git a/vendor/raylib/macos/libraylib.5.0.0.dylib b/vendor/raylib/macos/libraylib.5.0.0.dylib index 24e79113389b5cf55c107a1344cda32a2b4ac1a1..1688072951312400d71c4ffbebdde2988f810d7b 100755 GIT binary patch literal 1958496 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 z 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

CW$AyrD{#Qp|_jQ>Q^M< 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

@^M?A}l5&{( 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

h8ZD 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%0A)Fv7(c9Q*HlktcCrXq1mc@ zh1Nf~_Q7^O7YpB>*ps6|s~­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 ^5*6_s}*dtnvep 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 C9VPs;TnP7FQQ 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�BOk z6v~$C_Re6&)9EmQr^cHvfn;rHqZQHm)DO**Dx&$RY+|4KHi@*~Mnx2UMotq#Yun%K zK}VoSe5$Wms@}F~&&ccpSv|@4-~426N*6WFPqSj<0rF&;s8~X$WnviG@Z{av(49~E zf%qg6_O2(#bSCBnSw?g{VhWzp?;(~By!YG2ih%F|rS~h%6>%+hJ~B(>pAf}Ld1O-M zdWUS-5JsdFjiy0dS9jRwg;?OrJ^^7`-gYyeT6fbQQVdm?l2S#H-32_$zZvY&rBAZ0 zdfSuNQa4#K_PNKZAL!?hSu;qvW*rZqw=R9Nb%z9Fmc`Jw*L2ff3~ff}yDOmME!@a8 zp=xz=0n->t-jbz0BT&co#~0cDxLkZo^VP64U){*b4S}VRk{1hGE3Qz-qJ9#ADY2aj zlW}mEGR0I;*2=d!7hYQUaao|Tn}DGw8s-E+J=Abs4=hDOV_#Qjy;CoFk@GX0T>ZN| zf3sXk%8taVIRgrXEjzSXv8oF$WIy+JL?zHe@5{+NVh-z}Cu@0q95aNuH&a=0wz7T7 zSq+Nz=K~gKDEv8^W7?A9^7Cf#BQj(; a{r7=Afs&FIQYPs!d1lg4fUk&2~`AkGI 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ℜ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 z zK9*qx^}%a5yIqMv);8*&$;Me@vrsjZ#j0c$rbS5icbkqSRk8N>l{b88{k*8jOp2Y( zGNKU!RE)TwLB_VK06U#a6^v@5*o?)5H98mA6y!++W$5^UtevO&KUx0a2bmj|9@K~T z#~;(6Y{Mq~PZ}D^-31x@OvYp)b%INu?h=PGUYF~SKm>CETEeBQ?6GDEVtrk1w9?p5mlM6; z0CER>PHAQiCxd+yh41f?WuR5^N*;!}@hkgPH@QuLzrmL1SL9pKm zkubTTi5~@Q4gf#uE&ho2)v6E?o-u4%Y)+oQJRGmRT@wnGF^6eirp|NjAikjk@#&i8 zz_7V;oLE)Q5_r2%CU8%`WOs5J*muQp!E}>^9M}-wAb}o)?OfJcN9{AS|Fh)!gtr*Y zX7xu2q|&gl$7|mL^12$cJAsEOpO3wyONQ#OGzFTXD4*e@np4bG2fSm=MNtrB(Stgt zEb(*~i62+|E^1-UrMT(LwFEDz^5{N`g_G=rF42I%D!HV4*^Kb~@$9r}KFz12mZNFzQU^I8R*}2_? z-XZ9nKuz4A0R_p#y>tN^3VK_e`XRHKr@GKpig*v@sSeJV!O3%7 z(1SSG+Kr6uz3z3i3RKW%D`;Co^6<+@jpU{=Fj4jsE~tMg_W|v>ja;0c@rIDAQ7JWY zB{w7b*>_2vSh`npLYhcHQLaeQ#>|QC{m>%C#Xq9gr)i1XoUCgT^6mmwZv97u8(6Wa z!&{xWZ^YrOnG)-9spCCYlvBo)g3%p?bnws-v?3 z=unf`0}Nfxbp$%!U0}FDZJgwWe)8nfy*eF7hv?vc_kbx(&a{}A{NAG;Wgs|e8@=Rh zf!@)$%WoG3TWqI{-_THS%~AZmYbUBc@AxM)QQfHBZsw>>%u$B21Lr6Wd=F|sV#>>_ zVfA1}WDOYDp)xi4sH8f%hGKqKY5*W+q}BQJb}Dzz^Jb3Gj8-P9j5X&y6k(e?20&+K zv~i036Cw{WqeW>lGLVHu{?oP^570&W@d+GDcf4K@HR7uViwE8HjoPrK zk$2Ix&i=+*`EB^T#+mnh-s0DK5AznEdNX3bcdTJiVMQlI7~bMEJwvA+Yo=Mi5tz-@ znxQaqF4(5=k{Gt9pw+-GT9D zqB9zJ_}@2T#=PXr7ncQ)m7%AzK=(%-yZ^}^^|LWEP&l*L^#di7J*8;yn6QIvTI}sz zI98$>A_isa!i*M|Sb;lxzwO!sS;;~i!D#CnwG8SwuRYnH7V&ABglWsy<|wizaumt+ zerL;$=mu}gt1LjcwsG;FgqBak1Jf^2IAz?MWAvx**T-B6AlFs5sFKdd`Kq<1-1sUY zGY%@L>1YtG-GY>j3(_S7)qw}eyA7bsegkb%n;wjK@ zK8l+BBU=KcTrv2d>S84&3G^LK$B|-Z7bh#UFkD+IYPjy^|2e9<+g24$t8xi?yG9y9 zUjg(IG4`cmNJMof%!IpK<6qOPk#vns-W-j@EWN8FBr_%RC8L$9m1+<^ZYeXF%R7&8 zCZxG2uVx#E>Jm*Q^aER*OpCuuJv)Mtn>KbcsJXY;+}jQ@40=os4Qm9Y?*! z$6cx|gUKTrvpX4Ds`oMnsltiXhg)ajzNP{A-x`3avKEP2;AzA*Qh5nT16!|1@*IVy zEHiBwG12fEnB8TnMk#M7hC@*$6h$&KGpqO)`9OB$?Qv-;!3u?r?-nr~C2i1h2N)BH zx!TWM_(y~)I~@>$j9H~c-v+W^V@#3PEB`{#mKjcPv&Q6<9B*1izDk3cCMGVFC5oBM zs`djnlyl*x3`nM$5@jz@9o1G&ubA|_)mG;~A%;@S(wc;*=WfNqU6B9GPIviAVR|9WDA;=V8lD(^qN+Hl!ers!c2(R(aZa#46hdbk)DRP?y=X1*5Kd zqYJhL_3wQPhsvnu63S~_^cZ874>P2eYuHj6B=2=N$NS8vCT^B~l0RJ7_bS~$Zt3%$lDaM2zx{o*9b;0Ff*FB_=-k&1djDqSw9eCub^6Y zxnw|DA{K_Bym^Zl!4kr>3he@l$Y-G zw!|f~tpz0WLsw?2Nvb4Se+=4hHS*fiNs*1+)i<;o@PLFhZ)BG%tK9?5|F31WGViZ9 zd9QCTE8JJuRoJ~OASSL^j;LlCJuh;bJ8?@?Q`_-tC^}G7d#gZmo5XL~{#iL~#}*@- zSavs}msQknbN=xta@T_dyF!{zLqk&ZlE7;g-&p;frkKA_Mlu^Zf#tlbewEypriS>= zSBx-bq%-C(--tD{41j)=7g=T(gMXc$ws|Mf%pdJ>HnBpK090sE*hd|$CA-n5s>%$@ zqDF63O1QS`#l*a8&6`H;hXl@roBP+dz%u9J&zk{2a+$hzs!NFi#&ZK8f{HM-=YAXd33Cm}w))rvMEGqa-AAWJYZ zH~m#NFy>dS78MAR`*XZUy31!Z2hq&0S0?! zIccIKDXf&E7~sZs9{4WcJAvD&fB>^vC&1{kl|U5&Zq(SQd-qZpk^r+hBPj9}=}o;2 z>WsbIg-Fr6N%<0EylpkJ^d}ns29al4Ipxz8rx^Difw(?F-vN2Yg zRwc%xl>eT}Hy$~eT+nAoYPw5JO)4q2tM~K5ppFzpL@o?Uw4YHcZ^Q|Fs8GEScJ_7uu2fZy{MZDs^5pT=)ar4sC!<9-2VT-}- z2MAl7u1}m-NDkMmg;ozY!xc?odnfA?l)g!+iZ*8n0+X~^-jcwT>h^iMaKMO75mw4} zb0kejTa`+)&%9a_S<13$SQJ&W9brvjT&dzVV5qIEH31P5a#nwH4sCE9%r=jD9rW7C z-r0Xmiq9oXS_SvZE|iL6DFC#BLC4u*p$W~J;YH=@{By|Yw+xx}Pb@UD(O>$mx8)|u zSTg|0K4^f9mDHEJ_ML1Dw5uWZ(9gU3Ti842&en2PVxlz(+T*~M-Q9ykocClb^ zZoZU#60UE}a4N1OII(kTj(L2a9>NT5#1`L(Rf;~@_NMHU@|gOx3()O!vG+oDqZAH^ z*X%q(omJYCvEM5dMATbSpdSNLs#le33vg$)9+Sa3?Z8M#BS zo=^GJ_qC6<=3VcaT{=nO=NR^j+)pIqkvkVkTuOcahHpv@_@J6KY|Iz^G(1-ph)K6O z2iT_&V&A}>pQ4V2w@}Ad+31CQF|AZ7Np)orZzS1766be3z?`f3+)es~y{^4o&y?sy z4_Yy9&lMOA9qd~)()r(HvRO47qT4&1F`3)9?vHNx5XG8I4^B{1nHzc}@kDlW=&$@k zR{X(zAV3%f=<44+f0Np%mAKhAvW$ZJMeh-|y4fu$&`0cxDb`gf&}%N}q7-NwAjxLN zHpE^66xeGUvvRld3__^=2<#;<4AnQLAiD+G>)f4!?6HtGAT0UJmU}jxhgElrm9~7@ z^&^uwSG(AJHwBvRg3eBXPH{n#0rlvxVg^uBXHiR|K|uix7ZTnFk4!J7AD|B6Ujb)Yhf&Ut0qOcv+GO~OehpUeCkl)|WRQ-p z7N)`YN}(By$Aw}z-Xi?MvA9tA-^}tE&M3UqXe=i~90;GfC!WmkBRHV*kDv7QemNFb z9{!j~Or%#7Noozww-V|1L<-lgR-8bzq0C0(mR&zyMWd_N0&e)9^3H(a6jHyMNKMj9 zlr(1Itkb|GGTid9s1pbpUJzip1ypgXu-`J-H9&MCnyiV*UA!N7S6l!UL$Ls^np$oY zJQk?pwUAeiZ3_w3P8?G&<}KPzNC_{xwC}D0UU~~TwtGt}Z#rleoP3KyISsEcZ?im= z0#nik&M)5{R=k+ugkbbJj`Dl_CtjSB(>o@`o;pw6FGB3%%mQ=O$Yt-=alTq8PK$a@ zJ0p7WX&&HvIA&~_|JH+tWt;ZjFCWH?(>$8Nm{=+}oViaYlsU3(SR}U6RJ`M5Pi#hB4q5UMPwX%cbvnM+_z zc|^rEpYkap>I_9)nPH-am0jE+YN+GotaIY|=i%y2?OR1~I1{D0&l3yA3Ig%bUOB<^ z{Mx!VI54c?`4D~?&ccuOgdJ2%@q?MjKt9jS!5D6KCmx3s;P>?J+vTf+;ZGIXGLzQ^|LB!|j!O3?J=S z7Z)aVth;6kswguuGSlPWvOts)vTp}7@sVb;;jWeRSWS=PX7ZVV84XL1LPnzF;EX)! zv4+YhAEy=BCQ{QwepS@l{0t&Kl~CJSUy35F(Z@lr*~CfFx1s<751<(SCgY~fjUPs( zP3{*Coqj+ADZLmWRrY^MKdAT}Jx76mY^4TG?t(lb6kAjQc~0e<0}O=b2r1P?{~!H{-aRp82zX)cTp|fs992C zyQ|9PhF5&Y^|w!R=hN-t&FI^@>noQ1a4X!a3^?pCFpP zrA@UZhv{*K&pZpwv&1~h%(KEgXNMBPC|*9APx-twt5<@|TiILjR5;f=>FDEN@GM;W-v8qK&y&Z&NrvE+jWDWl*S`E3NQQ#%M3a zobfmRx>HI3PWN#bd1aY9>Ad9>LkC2TAV53ED2pR4u)>{*-g2@mpi0%8>s=z>bV~xO z^k~xqAL~oXn8Q|2lHj}I2}C2*!1Q*NK4C|?!%4;?+??RXv5>*IJeFHTx6S0xb0$_> zSUt!F5LcO=bZDD2T#?v($yGUI=-fZW@LaK}n%THA{ZlOzbH2pJ100b>KPk~T@*aC)^lQNvhlosSjL%A z|A{$+gL>YxLAWzjswpQXC$1;l5d5RMA$VEQ*{%%d9yh3>UyzXiZ*qgGgi^jm$v@U( zBl=IYF4TltKTS} zv~~En@h(4$iHruDWY4@8mFb4w9pq!Y0dFdgHB1R-zG-;uW#?(&mKkEVsPU~&;z*o} z6((%%9i{a$9yKWL!m?25R&V@|ROPJr#87!`#=Bgiw(#Bj%x6nK`r(dHeB!(K-SN=~ z=SAZAYtzO*DD&<8Cr;ll;)E_cP#27aODD~Z`j7D_aL#O*0$`iO-yBy`Qz&Mu>jUvR8?;5cmDojjK z;R%3T)i;iDq^8l^Jc+RfuP73}L}2qGeYSa#j>)`KC0?|8G?00`^x{~$rcq6%W-_JI zCQV-?OMK`@r^Y=03^wf_KK~`|pE&|FgSDO?%LNXdtZz5bOZ>P=)od+fzXD!UWA*>^ zX}CzX*_SM~MXI8TtpB-0AL~x3_XzwWbK_$yQWPrf@-|&bIP-p4d8~eOPCWnW@?rIx zbGhoS^qn6*%M~1(K{6-$B&~PD1f1J8(z*<2-}kH&Cx$L-r?F-Z%bDw4?0GQjlJj4``uvtyY4!QKsZZtyR0prJ1FO@l>I|%pf0!>-gUt4U71-MQvw^Mf+qZ|R z!LNZPYGCvS&4=}`K|#|0Q(AlMVwz6F|Np8z3j4K3FjbpFw@10lP}}wmRh4d_iK>Xb zz0FfV(=>+JDC#{nU7qgO9^O=a9)-VFi{P}$qq*GJNTWPOqdY1eE01nv*ci#iU8{G^ z=x>H%XTVixOcDS`f|A<@rELtow0+q_7- z2gyExfH>mUtUr2>GV((|{Ldj~T6-k$-<*bjs*fC{K9V8)lX|#W9jTt;A66xq()JDG zKD&S4*wovcUYX!qZd;h1ZAKb*P%b0Hw1>C(p9o8Ab@cvEss-eqiWQ$`0yvd!zRBCP zjA)VACBevLZ`QFKW5i3$UHjiKtF&0SAT%$@p)omFCWp`DfU2UXh@Vl~BOlQk_{O~{DMxcvFg5Ot1*nKz-ZI-w01{K$ zolmJFGSNI2s2gn>ogNFUgOI3>n%|+a#ljVhivFc+tG*!Xpt1mXJve zqE2tDZW}VqaY#DHAq$6(=HWRSPAc0Oip{T6JCD@YZuiSSl0}EFY)|qtN1smeGgqH` zlb=3)?n{26@b;DA%-dw_ABol**ILO>wB0z^N`BJ)zn`HmI=+8ok!9xwKTTIc*D0d6 z72}J~`{N?$YAZBuW#I*SD0FNEh!F@V1w3x|9E;{yyoid+A=CstoE1?Ty%%)TCn4fGFJQO*tDs|kG7BaF*{vjTeKs^-5lK}i(0eyj-+d#aW2w|8lhGyvGu5| zP*-Vf@IqrsOj(5#d-U~)DR++o2Ncw?jHdmW^+z`C&uUQIKQ1J$v{t=ZH9e91%H`{T zz9e~a6Dm%trTpCTORb^sIvJ~&O^iNbOxR)46ZrR3U|k})vL@*IWKe4x5JI!0IF+zU z=+&vvRW|fv743#rr9#_n==*7*r<>4*ZkH;c={&o|kV2}!J&GwDEczpeOl7+9kvSV3 zWc~4>*x6MRJ}`dwwE_n*ZszTHHGA013BKqv^6OT*Z~p7$_`5H|!JSzcIY;zp1n?IH zk$dYT|M2dYrpl;#-*e1pq6k`(_{5XPmx%Vp5JnfuvH%vCrAQ$^EJe+dELe^Hg8b<=`6@SoG>ZT2GB8CU(Rpn7fcp33UmLzNrp%xj} z6^hL$syH(?<7D5mpSGCCO(j6|nw9b3o#U$kdkWg%9QAK(5k+b7d?jjO5xxJO3itnT(RakKx z96%OSP~n33PJAit9sd7CIgF14E4 z@m2|S>hRI(UYJz5*7@e&GVwxazBB5-V=8cVtbV^wdO}(vNSpZ*jg#joBB>d-E|~H8Y zwa=NOk}=v25#y+2jN1+o{F-r zHtTjHRW4iKLsW0vo&Q(W3ml!SUNF6Slm1inN>(JQC*nU?Pzd{i;?EK&>U#(jqkm09 zan5IMf!`nHqS##2sB)5w>n}ppe&|N{X}mv{6&A}eOo)b%`W^zySN@X1(%U?TY1GAZ z;eX|o{i9q=e3ctdwh=auCj_4Rzptc^B;r6My@(}LMh^9A-{(Ix~YJSl|& zlC4znT#->4obA1?-QA>xiK@s^a77BLwsXDuqWLLK_{uSh$6(5Z*^%YOklmbt~^ZqE)vM%b@ELm1%VyLeb z;!?5lP8<&3=xtujE&@Y18i2LEldT#reroxAqkqzjJ!iS*sTwW?dL&t*%_vs0He7mn zL814$ACL!2nt}o@!Mg&&aRFveY(`g3)B3)qk392nM1AVZBZyL)e?u_yoxYdDvHC7< zH(8uBoa^l94ZQk>d0XUFTN<|z>bBrzHSKj#&oNAoh08iRllX)a|26a1wx^X}HurgnG*wg~a@@{3CMe+>P8MV)cGdCpsJA2pUa!b+_ zsZA6!F%+9f z1?oo@#;1Hii;s25t)0Q`u|ClrI?k8QVn0VxR#l+;b-dzYTy*z1>vj)O4Rnfzr*c1A zHEbhjeedToFfHY4Q7esZoq)-y&-2R!{>8yetT6LDH`rDFN1k+kTF=oS8p9JRU0gVS zZO<wea5H%h`(T$YRN9UY zm14WfR{Ba_30n8UGvia<7vDIqy@<}Y<%9YQ(Y(Te=jMcCQ=!9r{+AR7x4sF;7u@=K zaO+#)+9w!~P`*?|GB;27z*tEn^>0ybygWP@&8>Yf&IM}FR&VoU>S3;K>hJH~>QCSV`3W%s6^mihMaPtsEt`0B z^ilAHIbY4vWKsIe{6~AY@_$8WkwK@Qd8qD_&bmU-gR_6sU2u{-Ht;Qtn5bz!EN zD#Djt(Ox$-%Kiki3j=hvx4F|$6+U|)F(BYD{BM+)m|j>0jGbiq5*lV{1pF~(%$R1( zyGarmINLP6^l5O|nQTVv{xp=yg@`Oo&8Yj8s7zf41GZGKMh(kE@jo(XomNyT0-%zP(0BgfNIKupctW=x<4 zdv{n~2uFKO1tPKUt6!Mqj`M^9qn)xpf)fVJmQ62xEc}B_yFX^OWFlp*WAd!sEH1E% z(hpLV5kJImP(9_|=rcrTIt-P*KmQFwuliHWvM_x!&FCMgeE!ee@$fh*pMN&jLAI0d z?85o4B-%K5Wm53i+l1hOVa>Yd)hcOiP}8M$fWOxEo{&iQ?NqvZlnx=GUmC?nM-eNp zGxk3BeSioVI~R#6G>_%Z7nr2#zu>dgOzZ~)FYVK+E|~d55LfQa^GOnY)-1#K&wr&y zpTXF&-SAPcWwW=rO)b%MAk*8jL~pT1sd&&|m7zb8vIr0HUSE(!TScMQS5<;(dzqlF z%cHSo`At+U#;I9bFn;Z9lRD2|R5mbe-pryBZ{Ca|j0VH35?LNPzx_QjZ*%j83bI{cyGnaGnybv6cdgkSdU+Y+I^DWq&cTn=U?mHjlF}=5c{mH?uD1 zF&D+3@B8&Uu3o@n@j~qLeb+UTpI%l-{s<x$fJ=BM}J< z?DCPUGtFE5$O89m;mFbEjq?Ehk%fuZ@JMug$X&JbXG_-?EPcnjT&g!K9WR)Na8&2q zdrKzX|ByEuuRz;^yai&F5@T;&Ds9msWb-AG&5uX^n$V79eq3_AC!bacdx}(w!Q^#W z#L-ydO3!RnwTAmk>RTpkMnYfP%M}9jhsrxa56)W)tKH}d`$p_84JYMu*4LYLpY+tG zDJ2N#;VCe{PJ6Iv~++uC$D8XjM(6Eyvju@)#nAa5rX z*_3cKOYRaQiGOsMxA{@X(e%;qhRxyF<&wV_`ck0`G+NjgNk70)4P?-poIpl)Em7X|};g^^CCq$)S?WRy1 zF;>Rso@I&kL{%{JBgub1g>_jv95C`5MgLH(=Qu5Y ztVP)vP)4J7T$!ns=0F7e0#t$?8cFM<{4(c5;wX9ll>gplQw9?$3%PaG+w4csRTja1 zS=>VwJ!1)S_H6o;@pMibs`DJ$z-j)m#^v2;v891d(_(}3SKnc}ez&jhr|&_(_xt)j z;ybb5Fwh>mJw65*L0uc7hf~F*m2rud04|i{M1Q|61_5T{=9|@v4mC5 z)-6I!{cS{0be(JcT2zMuC?TSOwwST(%xn+dNa!7034sYsq2k6`%50K$Go-Cz z3okjoVx>rtUcnI1AYj}&Tvg%h}FuS4Iycf2*(Ue2Mu;~mE>0D%m+o1NZp z?S3_FmZ@w2L&8q?x==xwI`7c^TYH`qDFTxSQq?fJy(qT%3s4BqHnr2E9Rc1WtxG#Rkcw++y8GDMS-N3g-!NLK zrrqA5^GIE|v|*LE<#3vqRuD@%x9*iO*`l>hV2LIoHPLpukUBwH7fKCqgZ=LsEo1b( z|FYS`of3&N1f4Cq8OWdiCEsWPJtQq6Ut*ZD0a(}!Km@+R6kDBTeQL-ttcby>_l1;Zut?# z)0sbXegQxCET$|o6?T@D!N4l%g0$GT5?jIH+Sz_{h*))|7K}w)&jkL7yWZcw2M>R4s z)+mTP?cVr5alQi%UD|C;2B&eXn6+D7K~%c4_EEr4 z`Y@QD*dDBvzbwzHWJc?hQEcJSB%ZQ_#Qy!dxTe~sHpz(ZUq$n{B@a%JGgJZ^Y(N5b z=S&G6U2Zd|0IV(#5&sYv`Tj$KAu+;;azF{}d;bTFkWCK}{}33B{tpR;#Hdg$g!PNB zgi9{H&1+1{-r8t>?64AxbjAE#w2h~1>B0>@LNX(@U03A+*ud!FV>coc%ZPe@8;Y$P zoDPaBU8hNR)ff5dR3dD+RqD}L?wHj6-_p86B!@hoExFp-@S{a{v{By$u@Y?VHFa5B zA+GGSwe|aa)40YG$_HyPvB#_lRY^rCcB^5;nMcYfWyA#5K-NUxza8X6CDKI?Ha*7j zl*5uJ$@-^~me8|38B;vF7PQhcE*zYpi3aDTM=Kg4CrH*W${}(Rho#ZMm!iXRMpBo? zB5FT!fcj7!(wFLx!T5CUD7B4dVzY}ffHhOGY4qt?|0Q;QlJSYm9>#ynIuRMJCpN9| z8Dk5P?Eey*16OVjB=Ydj7}+Ai(slqMhJpM(`t1$s3ofDk>vOOlh8HXoS!$cH-rIcm zel2J1c<*ig_(QJFjC)#0n?WOmYr7)R$IuLX!`&|_|LOF3ny#>m$g4o7ecv)qULxD7 zPETt_M&q|Q^uryG8$7|LzG2?xzmTKbRE+XnjMM*8=AmI`ZjQ~kAByIm7p(Pn=d%UY zSAR?SGdx%6T}eqhw649o;`;f5N}n0aKyvRv+fHDGwkp9!N{{EWfi zKd3ls;dZcD-`CLIa}iSt)s_60;a%|!vZr>(B-alJJPHbyc6#I5pEd^{0^Pw_RYf>{ zW#-xOBBSPvWbRE!VW*GKLguYV^xxt5R~8`-NhD*|?M)ZSWZcnfj5~UvMH?lYL!(b^ zT(}=&ju^*`qKmqEYgk24(%A@j`JWKQ%xRcz=lMFzb#7RPaTp4M^h23;`sg!d6)9of z=m#XYxg|{Xt_knwp4P{_O~;d%(PO_4x?wAFVCwwJP;LJ5aOTT>xLdKAs*+{0Z*fe< z6MOGDBswv$h?b*La}nt*D-gQ9Kjv!9=rxpuRnZqEw{e_OU!8$Qg`@AC9h*S~)ZVcf zTUl0_1!@B3y?4e|U(^`Irh|@%u3ShiWFk>48L}q4HNWuy45nT4`*ond@c{dvO}tEa zvXK)Z*RMxY){9xDRI(vi^7QyD<|RE(BLV;C>Md;}qf`wWZ{t&cJvWo|5H!2IXAyyh zWuukN-Zh?8@nB=)f#LJN<6YAcjE}g?nxrp9nccTr(tMKQ?go0Jwa9UAJ}?$Ji|%l` z-j{{KqOO>Xf!LfcN5PA?$-K;-krX$j!`m|4ROhqiw_sp?Sga_&@)*8`_zg z>p1*SEZZSe)RkRqS0Y#~*4Xm#KF=RIKJ(W!&CQdsa8wY|C zd$F0(jLbALWJG^QQb4vb{RPa4hlrXK`w~$llcX2Vhfn=ySl$?shNPmb( z6p<(mf#eX8C?gT6AOf-KxclAbACs$}@R)q3L>jfDq$UDr;&%EAXwk-RB|ac%>SJ`` zgBD<(tM%ug`fT?uE2VRq?5Sp>DWcOB(V4HW8MeTg6!`GK0_WLu$?V(=JY!frfMSkG zZ*!a3neTYH!=~JOqzTR=SZIEhEb=>*-^|V&=MB6}{FfX|4aSVN7!)PyG^5i%W_A`i zWAVX39)1%CG>UpoqXS!(HW;x)TMg$iz2$E1gh~wVNC==By#MTT3a6fPb^xZ%w@t`; zo^7VwHJu)2R!t$a7->A|AN@jd(?fjeANlDYOjya5%Smt3oWk@F)24P&JU<~M)nB2D zlgly|&zXSEq~CTynL!W@=8y{WP3zS2{6!|baIiM~j|!LURLgc8oxLtp+PUy=(mfsZ zO$}K_S0%;cC6`$>6RN#Cs8pJ2uQiM`x0wGU*ug%T-xK-O_y1r1=eqTN2&wZ{>U|pD zXg~ViV<&Zs`};*yr3rb`>=#@hUpq8N_KPE|5q&h^#4eo8Szl!HQx{Ek6_Tg}ADV;0 z@mR)r{5Z0wVEhQ#9g{a6up@luwAnNXE+X{I=;ZQY{(`Y-^E%56YuZ=CnD*7MrF}J0 zlyg(<{=Vq6*%&AM?0b0FiCtU9%D4fs@7kQ$FsY{}mf`j113!k}f0Of|*je+UnG^cV zbyN2bCp&G1p~TwkEFq@}ea%l@vu6~I)>m3=Vzote)2iLIfu?M%(sM|pHOZTdI-Q!-so_mp=| z&)2lVZ;5`{2Qdg(e`2P;m(hQNaSZLp+RIVAdDCX|U%`J_uyb0SFhJB>g+{$ye*f@W zgsOR%-9gh%+ILDirps4J^NkmaNYoj`7vbgaT+M~&@)3X6#0q*)e` zDmx6BySF!%84{$Ezs%4d!Lw;mRYv_7er9Jd<~1!s37pros3K$W=Y#QpuW12?ynfrx zHKR#?Z0>z{;dq13k2?hRD;HO=;Z)`IiHZooyii3>Oz={smohKbw?4KXeGt#5?a09f zCM%$!nfRJI`x@>+w#IqP;*%mV^2XeR^J^Gx_QxL~cZ|=;P;Dh0m+owM12d(d^X3}O zwTmm9f7_QTXQzFc=R9R!>YPV;fraOtn&RshE@EbF+L*d{EU}+_KFj|GUu;pGb0&QQ z74?D$ou;TiI)3dyP5G@eU)@I@WSR~hX7HKk%(8{%IF!a2BFMA(?~AMS%+x_22A4n;o+#~1lbhtr0) znT*uh-W8LKj_wTBIAw`uggb3B!mhR%Gy2&W4Q@sqgS(!Lbo4#TyL=Bt+HI5v)JLFW zd#Vj}Ru!SUAW@pXAW@vZAW@#D0AaTP#+iW`xNl~`P^=>a{Y5SMJiHw-AA+xt%@_u##|u@FFgXQ4-W27vWf2NjN%q5iYZpBv((ucvj}K zJ7;#WtdO?RyZltf7zxHEXI~_T*Q5Erh+R0}C51e$1nJ9VP<62ks%FZdiaYHeZ!n^= zi;ofKO+mg${%6c#xtoJUFW)O8gA>&#}Om99NAm8dl}%lkZCJyOB)Oi zbxt>Y%Sz*THOkr0{K#2`3>QF#ee{G9(ZF6Gn4EIdpBXfFB0qEeb-ZgPtu2@0`GiG~b9t zi1mp}J2~$g97PRmn7zpJdSFKlfZga_Q+Bk45!c514dPL&6&qmm4Ch>pGRY!yVhbjM zg}3>~LLmtTlV#GICG+=!EI1>#L6)@UpgD;pA ztVu!5$PCQj3}PVyHc{FL4_0X@&LFmc!AWY4<5+H$TY4+E>9yX{sx_^OQ9&nwB&f9k z(W0V7MLcn=@?s$cYw3ei3V_5yY0Svi^#f9TAhVW?AEekwQ&D-k;Fn&GLSu3U9C*j#`YAwj3|V*+g?? zuueTzuTqb-P4ehVa;*B^jZu^UBc%XFZjho7)1kra=?Bau3e4JdJ=zeYiUr!&zrqT3 zOx1m3Gom4@1NMq~$h#n*9;-XlW9=S!P>)5TVhQo%s^M2$Bxyu65xT8|KU2`<9q7IF zea47OFD{6T2{ehpm@jM2K4{>c75=3O{-qiIC6=Md6L@_8i}6qvfYCs83Z7$>Wog91 z`)U8wAkB@;F2Oh``mMA(ywF!Dx)hOuCH^L;nY_~kmFls2x_YdgE04YdMTQ_vZ#^bH z#+(iEPSz}))v2=lS4iCIhwJ(oPR`Pf2yfHmyrMFgDj*cvA zoQS565)G?;iFMC4UEL7{Cc4yNsxA$8ow)p(RI4~eNj_SzO^M6Vg`bFy!C$NgOMqXi zGkT8_7t`^Z(lSOSDw9Zeha zTSs-+-{nTiGi=|+SCK|VS`~nBMQ+Qs_J7+BTbi9=OEMslV`;WEh%Ayjyfm*n_$@N$ zT8~QRv_hBWWhnI-J6~jJp0!C~nMNoIWKJ&QHdG#3M3=B#p4%H_LFUcif+W-e>n5Pa zFJ|iyKF(>Y)}r=CAD3B`wnO{RIf86@+18|<=!BO#b&3W7EtKNmuCe}pp^@)C;*UuE}-GF#Gq=jkjT;k ztB%ChjTdxvH#S^JeX%HP$^ARhqtez;u7=DYvq6+FV8ydp{!Qhx3ww#Wh5XS6N}0%R z^IO&D@v9 zPsSN8$8)ajpIeOt2Jn4}iHg>b2;A!0e%uNZ=r%ugM^ss5BK`=N$IVvj$HS$$H#ReA z&9|&PW~k6yHIt(;^;q4Z9&7i=BNNTlE_@7a_ue+zZQCx-OhOg`$@EXO3@RkivrTm0@jysYqJVpu`Y5p z@q1HYEw;jY}^ChK8><1y=MBnH-1)A+ede%?PvwZI}(=dZ|c zjJr$^G@U1=9$&^?Tt*(4$)!i-`U$o~JsqKwM1~8GnZ~YL*ZdArWcx!)>_3zK07+}A z8OAOyNk4PWwm~99v-#73)Tt+b%2o17Js8uykM>{$|Hl~9mLx$Ejx_iaU2bnSbbim$ z|L57zGDV?bL%lfqfkG6~N7h3!@S+==Z6P`={uF{b84 zh5?-|Yf3tKP4b@t9x!@vDHlC}StWrPz-$zpYu5?|MbMAZ-5^v2Wm;Ib{HF+lwqQg2 z?idTTTa#ICc?=SAtoR4HAHp`vJxYH4qh#+nbChg8t4GOIpd!FzWW;P2W?z;5iDLBX zd)4UA%zUyNs~#!Z)-y*^dcJ?8(nV#qZpO?Vjxc9S?bv9#BMat2(yet@bTQRMaTpUy zHVxS6L(bPQk(6q+5#B`6Ll!4t#~pvS{!FgqSNaO;YN;f3z&vW*#%V|@3F}RkwTvK5 zKH8knhwRWFE#Fi~fE#EsE`&EMgmZ!JeqsOjp}Woo$xBCTc7L^I_tz?Rzi&rVl(e1l zS4B~o+tKz+LZ8KCxY)iM$0#RRs#@t>vs0LS7MWhrnK>)8*n*yC;Fv`Q75Alt6PkaHkJ5eC zFXMa-v^xXi?4d<6am+idTY;F7W0oA6RlcRsdX!Z0pUQANm7ymr@^2V0V!J9b!5ZYX z2T~^1_*BM^>W*@2G+84*$+ljdk{EcIIAe=cDg&JHhc;xz8GnN#9_!zdc{6du4<+;F zSHvoYsu;@W=9Y9iDx9zNP!tsfKE=GxwE{fa=h`9Ai=rBvZ_KlPb^htK^vih4q!m}YML zFMJKoo~bCGLUhz)bxb|hcF2QS+=ob&DB1y`Zx({0-M_%-c4S_SC~Yo~tj60^$$NO0 zl6_2PAp)wb=zjHBoh2ZgYn?WvJ|*MCK&M}%)7PoT+EqN_vr;rb1QlPnVDUD0g1gVh>zzGck(m zWenD_UUB6~hIjn*1V3n%BxmPGJ$clYUOejh`-Df;=SQxjy}0m)h3Zu8 zq930=B+H786-OCH{Q;4oa&O5WUFgI{BbRlSbBemBbGeb zCV_tgaJeaVBt*E;T%B* z>hUW>J?@uFR;1((wg3z3>@)S(d&o_1Aaw*Y$h>?1&D0Q3rPF zuRrRq*Ywva{k2VhE!JNm!=j*>`s??60n88mqYjs z7d)u5-=n{x`YWuzeyG20)?ZiYuUh>zPJhkdi((H;V1C$AkH{|dxTjq`e$}EL_pjq& zkES7NB={MUjD$J`D13?j`kwx}K!3UQmneIX@*Mp&RDb2_ug?W+^ywJ{a*jBaKyE2= zI)30+T==cskKv!u-j!{3^duF%{6z>lNnRp}E1EZGWvhzD0>V@Or)c54n->UrHQWm; zI8g*2E4N+)aPi}Ebs(}3OGMA*dW21`>9F;&1GR@Sy)aIWS3Gj3#2Gkt$hZd4{59L; zt164P9U!-l3E4c*nkB_LwgM-QTixhG3+V3)GtSLRC#*JiZ&K7)?g!T%z9KsDVu9s; zQ=P8)-{ee9mjK)*fjhwJ{x=0z2oru&L)(;b#r+#at>f=j%ehD4;ybUQ?*+a$TH};r zF^zU3=6s&ZO%*tQRa$vpSf6j|`rM(*)%Dpzef*K1l*`HN|8YkazUXQAhjI6_OdGVS zvPGjZ0e?JZBCb5fC20@O<6@$SfHOcIJs?!}FN&WwB+Go>Www{aX3Uu3y2^ExHHwnt zOi8s~+aLsG-Jw6nZ-@k5Y}mHqS~2j!$>s%rCZj4SL9cav#=E0eINZ@00|dU`{K#eg z)qLH2&1LQ?i@Cn7{*yAE{N-Rq&{4aX@aBPBxC?EJE7X0pTj#slva=ZxRNqgpGk z_`KWPEHvA(W^fi4Juy?BCPqM|o%85~{6I9E3iUBO|~PUU0m^GoLjg> z5_ES(LVK-m{NQ+Zd_dV75f4sO+1A?lW;mZqUr)*#b{KaHV+HO=Jj@Qd+DVBhk!Q!y z8CoaX!{yB)d#n@ei7w%)>?$d^qGp{@FD8Cu$9m733B?ICGg68Z>ZY(~e}HAlDn%6P zGP8?eh38?9lC7(|7;V$w=(${B51uV)1k$#)PqB{3WnpDJQ8~QIE{+Fud&^x2HCaZB z+1a5h|3gG9+Nhxp#{8`MR0quN(c)}P>{jk?^cFNuA70tG=#;IMBj9H}=#D9UFhO8} zATTV9^9v7F7>3BT#_oev~hYFC4XaU_w)bqN!D>esD^hK8BLfx)8{U|7`a0=DA7;)uk zDRKt=gd&dguKa8|^dWevCsKTd_58VvvWhLi_fQo%!@6r6eA(-0syM9)_YPKKKs6)M z%lE?Id23%vI}3^gicG)L$x)dTEp2Bnd@F9LT#;Wf%e?~AnNwzy6LWqwatC|fDYhYk z<-913GiLG!m?N**oL-*HzZugtu^`u@`A~^ZiWQY`LeItf+dSG7D?jmp$ZbgS07-<> zzob(Qvs3*#SEVAsMHDCr9`2c7nxPVC4_`^emE>W4LO(2xzZCy=u$XP0d%*x27P{AZ z?NW8wJUAZlSi*P6>b>I7M0|&wL+LxeHbkrssv2wZ_0I|Dags)YJ2A+F-VRr$l^>CM z_2n-1dvDw|TX6pT=g@*kuz0%Pu@8#VEEo5oja@1j3!hLkd@U5ugeqYeV`QD=*=FaN zt@E_ldA20-cyH_~w|>i)&wS1U?71G}kzjFkz;Rg4Ng{Uc>s9WCrSRtf5KF&d8-Q)k zdwiuNueOt8&07#`wA0R#U^JCyvg3GO*-iv^xd>%8ERc-{R%PZj`OSrO@$*tc7PmEv zq&SvD*0CmCv5HoI1V`}UdVvxxFuigU#jIN6js#b6iAU$S@wIY~85|{kCyM!$F$Dj zxLea#@6*0%GpD%%q9T6XAn((zX}-YJD}B?v<{1(0QJ-NhJF!UaOW-|&vcsEZQxh!u zV79x=i`((7gl zzRmtn^(8k(;yx+g8yPSyGF~{r74FfZ4YR^Oy1<%W$EFZG<{LN36_4A9;$q1fbu|v7 z6Ol@qO8GgN&9#!7BP4OM^Z{#XgqzB85yW*kyBI{GG8Tj91#16sx$#8y4G9eu?lQZJ zF`{6npG{M$Oq?caShQIJ7FR_C*nr>#8KIOWQ_dzOU?hDK4rr&~|pTvhda4CG80>{}8oQcVlz+rR&hryF*pTcA; z;ROPxs2@0$$&|o>$582$a4>0=!bf#lWj}D-$&|p6?&3FvPf;?K@R6>%iN#sBX6`R8 zGo;!XZbqd~;!~WACA`RW*j?;!^n;K;nG}RzVN`}Bpps-P;l&Ej0B$~EC~pWWd&ZH3 zK57axm>-o9fStQUd~Khv$=nK;Gi^}vt?%YyfJ|=hKo3-0?qYSv&rH!qnO{BTqY?g# zodXan_PRC{LAB&k$Uov|r1(*pzg!0rR)FhUTkt9I+;T4RIWY8qQhjXcZm0uu7F`be zdeByVJ!q>|rW>uks+q-2$QAATNHTxrmR^=jc3xw=DtL(-LZfBg`A6#;LKLRQ11Iex? zj)54dUe$@ASH+zegA%r4GF#@J>-Ht%(L29T_B=x)LRyzMTG{GF8!qpsgE>Qc7V{NQ-+}`j!BoDZZhpd~wskjV`ZW6_+4SJ>5OWg1Z zc_@=MKih!$9Wi@zx-69DX4|Zd5q9z&Q34}3H$mKyNTULK(d=Sd_1LfE2G@;~P1VyP zSc020>JOp0AO6V#)`(7dds=ewv6~Op?KQp|yUVTXq^6jO_n4Q4RZbGLkwE0w=DbxR zOi1@IBesJgVJShmHd#wbZzP-rdx}+MW!Y3brv=PUCd-Y%mIM3u@An&z?Dw^PR2;bR z7{suqWwIHZz}mn`bL9fAJK`m5Lh38I+_#z70*U5LVEu(f2(*hGlHAJ^)>D5kv4lW} zWdPO*0+YFkh(iCu4s}t3_Wdbr8v}$jcwQ5}tv%)e*wqQ&5KBHNsIRylJ1sKV4wI%m zF`wCREQ(;HEHVUxDrXjXBj55n-j_giCrjUeyju;9s&-{Zsn#R+Di`R9xpmpI@q+XT zFU=_6L9=CQbbL80rYwtY^MF{aOuxWJXwU0wP^U)LcZ_7>fT78_`*s=AfZ+;xIi)!n z*i@{!^HusHRb<&Vv75%SYvCydS9TO(ChxxKh}8ABRKGLug?1E9b(%q)Wp79=v*Uo4*F(9@xal|P#42F3Gu+=Bo(8& zQ_bv7xA_5%M%|7NV3y@f!IMSfaCp@s!=2$=XWV^|_VP!U7PL^f1jR%yzAb)ns;xA? zqgWDU@D8aMmMQ7VteovDkjrua>Liyvvh@wN*pNuaX6 ziI3EA;wjZXE*DTU6~OAv+<#?Zx}1ecBJ+u4KsL+5NL{}SNWo_06V;n@t$5`Z!T=#a z>Kf|y8>unTE1X~h69lAU>r6D(z{WjJQh-iz=aozfBm|R``7#Jx{V3&4CYu4N7l3Oo zV0jxU8_42pl~nfIRw3`u#Wg~F~3fc4P+WX zgt~N|Di9)(JyHSe-?FN$!KlApymk?2+rV{#SZ_PFW7a}jMDax(_>GC~(G~3A5edtE z7m-HZ__Vy0TlryOAOdTkH|xCNCnb>eG(th_w024DBg$V9@wm%mbJ)%Sv>fBbu_!6~ zHTvGOQ{>}`MQpW5gw0RcI?X0ov%~uFd9*zuTh7 z2Jj$Bzhbq4nqdaoTrHSl_&S$mv^uv4R-*;CXBR%hDuHM6m5SepdC^3wUjYbCr`0wv z-?Nh?jhd~BUy!2Fv`52Sz{&L*+J!`tLN*$KijR$-dH~=zJ1Kim3#nKGx`U_T!e>}+ znYMT8n^5pc@HChf%p>1&Fx=H0Du}nHz^^j*6Bc~L7a2J${1X(Uf2f5#(Tk3cP|O1o zd@J|d&(S{-ET{lY4!eT+^YGSgrHSp0u9hh4q&s9B8VytVNC3$#Oaj@AnbOWm;!=gH z{Xn!}7_y^b$c_dE$09%q4rhFZ$}w7rzO14YWEL3 z%wRm+W~X0|5h`+-;P8!}ILKWR)v7h?m? zT7NmCIW$1<9J_q0d)&oher_B-xDn>RKhQd{PH|`BoUml$vOQwoVtKo9cag|Y*)L6v zj>L%WW+AUJL@Us!h7yXAZO=GK$yAXkfg3$(FV)_Ya;HWLENcbUM1@oE*G@VX5H{g2 zY{mSxDqHQKB&%@eZ89~k$Q4#W2A9h?_c<2TobPkOz;&3M_3->s?G{($n+=Co+=u^m zDN2;cA`fU>4ug*J7}c}CM8}W0s1eI<*8&Yw=|d2_NbohI>x4v7BR$C4rjE5Afff8%G3|eHH0Zr3e?_OzJxCkSF&yF0sm=4 zg#@)J>7E*wZOT}VymH={4TB6(o(n>eoXe0IaIHY)#7uWkw3h!wL%P zv+R1Bs81hss_Lv<1;tP+Oiz4VDM+bzDUL@&CBV0CLbu?|coQV6811#$KWp(fVC zb>eRNAx@Pz7B4n}2ghepKlZ0NaT3M{e~h8}M3n-dl^fSZnyr zf`^6a7vFNr8{_8+{YcFBGrCXU=Z#iuKZV7#Uee3G zH4(YE!rj@y@S#cYd>gZjvF)J&Ke2!y=`nMaU9Krdb{*5wOBh^Xfq2&88YjG%L%2k@ zBaiu%r6b*r0zRC4kfBmNR!>)tyzQjL2RC=7$m({8P^gcQ`kEuj zMa(2ioN|4q7{lgV#jiG7n^5fHI#mp?H9M{Bi}@O(FGuc#)(B$gWeG}F`HhmY!zg); z2*s|HM5Qe2*J%-w)fw1nojy^46>MvotP3ba-pKqi1hWGaW*0mv{3pN0Ddd^6S;E|p zW=o(vj5#kzi2u=C3E|NUdnE!TH5}B4zlFkybh?{WbF9)e0)6g>^}u|^_xr*8y|f5V zlVHBe`tF2YxK0As$LQmHeiOJ7#?X;Kc?hnA_#exa5FVYog{4*_^{^+#kp*)Lp%6>Y zB5Bb2^?H4gq3?=Z%7RrV1~dvPxr=4KjD?JcMYJgf!wt}jeSTFm(N$>*k!lnQ2Egbe}{-*O+$zLgd zMf`D^X@rjtH10YGNkM?pB5rjN#CmH{NyuI+1Oa1-^xpDyGSRkJ-<5h|8QH993V%kv z*GM4@gK@5>g;6&2O!#>ihIXL^kJ0_@;n;D21)|HihHbM>(Bu@xzP2fQfRW{Dn_|fm zAi}pghyD(3o$=RdHHYNo6hJzwwh$sdcAgh;>XZ-3v|nZ7>&j2;tg}6gW{3jGa=r%; z>xcaU=mNm81OS5-V4&s|-ZbtK%i3_x>#QFx5e{H8qr621f}3Tr9k#QDRWHj3;FCrU zA+swvHxnH+{?%QUsvY*kP%LV5pQuPQLX$i!l!oE}Zc>cjNdT7<$p*^uw68dwyWdJ9 z&j{=nLrk*yyeCNcM6zr0m@Bd;MYFpxZ0^H6u;@l?r*4?0$R$M!)tfLv?LE zT}L5FZ}k12@P}TPxf9z%lqhQ(OB17*p~qyJ!epAlWSYWcn!;p4XFy!<SBkv3ms&b5s15Na52TH?R+Mtlyx%LP@#oQw92`1qyOA}f!a2g`FD?uiM>W+9plLx zot=wdw?W31h_X~0=Pfd-PH)~?Rw#3{DWvifqwxO~9CIq(A3-VlTZfpTbb?ga&R5G*&wECG>XuS-J=Xhfqf}`Z?CLfOg4U0~#g9QtpSj6{ z-q}=Nba8-=JBadf^Ng9EZNuJ>MWIo{u zT&6d3Xhhn48qs?`g_p;mL^bUz&IO)RS^)lD@-y1U;K`%h)xR>|z$}mf5iv7BcZ}5kKnqPbB^W!s5g)+|LVg&wS4(yhy7BKIDao zm|wN$S+S;KITX&5XnJSWUc#kU76K}N0WIsC2Y~#!5?KR;{Mm9mzJMh8a|`5?Q)Q<> z%=gN<@Z2JPrWea+iF}?fpQZdP7*9G6lp(*eT*4;uGC;~p9Qn! zvznjjbNTUJFP{tK^CtOR#LwIyKeLz0=Q4hp>Xl7yCZN~?C=fxxh7_ZZ_&@Xc02q<{cP;8 z!*|-@yX^4Y`q{L{4&SSv>nuC`L;YMOe20|#iGJ1zvh{OSu6{P= z+2Kw*yuc1G)X%z+JfDpL#5%lCO?_;IUUbXW!C6m9Ajh88e!}%&*{M?$kz#loDP#mm zikBpXS77{Er{EYZHbkaOW!8MtdpLTPW4<}PD|*!c9-k6&jOX#_RRianPEzLKv@(3O zFtpR#QV5VdRqjA$5;NzLX4oQIl~k12Qv3UvGHaY)joWMj(eS6RkH6r>WHHM3?6wwv z#$hg(5X?3io>-n~XHRBrIC`8T+S)?+p1o;&&ucenzK7uAG_Gfp4i>J*TCd-WCPfRb zcbTVn%=t*x_8NDKc7Gspb#D060WQVGxsAZ4KxCRT;D{;dKsv*+${QJnV9aSek%#?z zeSUQ}G%MeYCyL04Ud*8xPmISA{P-nc?f#SSMZ_J;6eos{^0R*|;K*0h6C}Bo03h!qgeo*hQR>B8tjB?o?@ z1UvNcoIfI77h7|ed~`xmYjJ#m_=nmL$#kY|Z_@6g{I~mGt<1l#q zNXB8X{QEEdvPETpqoNN2H-&SD{*#X>qlZ9tbJb#s}Ym`9$; z1pzdKP?M%o(eWhte=hGjIA4ygy~v(%>%QGVy$8DpjN^rR-N4f$iSbcVO2pdap$mqc*F7)D$Jc9#y@h zG+k=AKoUhCmq_8i4&=)7VcAKyHOTpkASda(I-NvFx^1MRi~Qzs>r$zhyzaBc@tT3~ z@1b#J!`qASZ_~kQ#&6W`eP;ZiFQ4)3r~bFl`;$LP%=a7C+4Fs^m74GFVR8bHbIE!= ziN$oraH0Pzx5%hVo=DiN z6UHRrL`i5L-M4u*ND@BPByRJ-bgFs9(R|f9MzUv(n>pG!peK>Iga%0?5*g>yYAKTW zbP;KR&)gT(f1AK)w8n^Ywr=YWImzj91~VnYoOrP|pd;Q*LPMq`==0p#9 z(EpnGap;4@{O~)6uCIdzWEfA&Ksy7Cou`AO+f>0^=Y3P;^=E4Iex;vNPkv99RkZddfm zZZpu~GG8=3FS?CK_6YNZuo4H0=82qK`D-m->wCy6Kek*ovaVq#ocD|Ldy%Vk?*MXK zpAcV;QsG)l0~6zNmW2K9Qd#>rcET%-z>8eDtK;;i19|T7-@<*{29iiCr*x`^PccW zlxhMe4RV;Y2IGX;jmG+5qr>gkieszB0geN@9^1t`d`=;Af4#)GxdUx{x2SZT~8N}4J^xK@5bnZ%> z4WX)2k5IbFYqxiH6QMPaNs8(wts2mjOVGR)RY+4FJ-=OEXEr%?q5}O@sK1notGh`f z-=vVA*;FEN*EgN-YkLlF99+3^!!4k~QT+(u^06B&>Ku<0%ESFgF+rY=gX-NWkC~5T zGr2@BLcXql1SN|HlorIT7<@$gLKGupP(FkXf`m)8=zWz#D${IDmxSqh6q4j2>z4#u zpNv5H0QB4sBF|zvOVu9KqvOFm9ib{Z^FdWn|AVTc?gv#xXFjMZ>VL49Guji3+rJKy zD8`)R3vWS-TMzK?CO+FZ2H5PSon_E?C#ZR1G;|%~BcgR)B5Fo6@?~Onj#V+s*I3V8 zD&DXlL`upz>sK;kM7c@GY1(F|@AjH6wmMYQbK&J9u_nKF7-!NY z%Y|UJLCV;$P|0p3ehde<1y z$*NlxaiArdNQIk1Y&UJ@oOIS<(w%$ADESCjoy?k#c^>3>#5};694ZLg{EpX*^#zgo z9l=UtaA2mu>`Z|A7|Ez_jQLz|ncNe^**fT)kc})<9Vm98=2$FnB%m6bmDDH@{Qbyw?jcZLn!!W2nEdyp_oRPzU{CsI2lk|Yc3@BXX9xDAe|BJAVxmaj__voz z%a{cP12~ls>W$bFVFYvaxw=a@;CNE3Xi&?+DE|E~pGA|(_+IEFoPr_K9 z$9%rwaA>jOlQ^q6d#%pi8C0y|q^{qXNxr>Yj&Bshb$dG8&|F;W-?l zuZvn;?T)&M_ox|skDkF8&NJ$NC?}OTdG6hr8D?PmirK3(zhuqq+m$`Q>*$_qW{y9PSt6;8+C9|&n{P;>1lW)I05pzby74>EV)6x zWLk!Xt0@^8rlwz3UE4Q@Cc8r*p&tg38X`9Yc|hCMv! zPnIHr6Ylkf)~lp16A0W_LOr|lGH)xM%GynFsDayir9w%@W^1*VZM0l1HeGOv z1k|SjiU7OL0l%&_F2A3OaeCWarQn6pLoKUb7mFc90 zrTReRgEDn4$~X!A>Afs6?br%x5lwRix(HJYY5LESZ#didghKXk`pBu z>Ce7rB z!-q!6Q69$+8P&)g=2!%O%JUdc1g?lOjcWN8yH0ZucFZ|Mz&@Tzxbfm4k0^AyjOxD- z)Gl9JA(+l;C>zWi4K&q zNqI~j#iF9?KY0(Z^W7)!<)iv!O9g$XgZ8VSPgGEs4m!ri$deI#4rF*0`z!Vt(N`F@ z2!PzqJ^bF}+)F}d&}qrzCZ|Ah&UEgVhu;Y(egzcC0p%PiV%LcWBw*PACF8yRfJiKZ z2l6DW`hdh=f1rSmYJph&inPW{v|GD;Jx4XF-;%fYP{axPPr^!F0edrM}cq96; z)t1Q8##*64M#QfrjXC#D7unUd&vi~90ELvFw%cbToe$8rp2#^$w=bV}*G3j-Mg#YA z%|j3g?*27%QPtMh=Dv`~5}nzlG!KgHa?7ez=748|ewP^}^DfYgr}na3w3jdrQYPXy zT&$rW6l%9-XRC`;ghVElxT1m2$&%ej^^wi%5XO}q(qV^)=rp^L+iU8cOd!Ua98z#| z%(^v8?DBZl$t|w}5ji`nOLMJz9QYDO@n@Scw%zze%o`ngYNHb0Wv>*F+*4K%<+7f? z_G?H(kpn!J9jJKUxT_GMpO4G_&@{QWDKq-YNqPoP;mPE{zGW;}i!UV3X4r`>Dd8G; zp4igeW}Vo1q&r^VHIKN>efWmi@ct35D^6Qrx}3_N)lEdJy=S@y2;1pz-3NA@^;1$= z-{ps%8r?=uNtbZf@}u~%-c}(~vb!X`@UHx@j`T*!K_t2ICP!0?xXZT)p>gqCUO3O1 zi37KiDh{<~;_0-c%8A#sBF;8Sjgp0xOf)Wp^>F=o$T;aEqh$EP07pp5!=ZJO0A9I8 z;P*4d%(7=bK zF=zN*3L|j z+EAp5l6SJoxdBRha>yXY>+P(4it6LcHxu}|BK6?Lt+PfPWmeKzIAXyo z@ECmRDu1g3=}x)VXChe^a~z1YW38P|b62ZXNH+|1`4ySr`Ur<3#`?b{4$anYOB{aL z&LNxa%<7zm6FNFvyK-#TPU;i)E0}B;Wt}#AYHi+=?Da9_=x$d|flP+b`su^XswNGo zmE)@gr|>fuTJId*a)m-fF1vX;_~H1@zQ}SuWaC;c`OFD0qUJm=x%GAZ^Ks`Xhn{oP z-8Yqi2u}LW-=D}qR_@Lj=O0a3zpZRsIszoQ!aNN`uLjYAr?5HsbNGxw{E4Gu=hfoW z=309AzG6|DGV<@$7GLx4QpR45{QBZGgk$mvxs~}?@hVB=%-+rtvYpXzS8<&LU`%5X z)V6T0yv>!j>GC#R-YVs-l009*^{mw%fxcyGSByhbu}Gk)(L3DTNNYCE9U%nLS39|q zgP}#3bmVlIG041^iJf+`ljtvf|AToC#%kVI(RlfRPZ&abtY1F^Me9M5Jd9nbjPffj zby1F{r7B-OhDowVXo4)YRr}#$vOZ%(N2CnUqx|pGY*zQtWdGyGBRHp1 zbag*~ivctYm#bOVWe^A4ddPdc^Nnwv+3t*ZrbFPR$<#35DzE2!Y1Wat5$6>NDQ6sI z7emG0A+J&LighxDiMCaS@}#|V{~2TSwKcl0Dh4HheAA8X2aiC4yS}7Y$VP&gwYiJE z6qjX`oP9p5urcc&(s%gl>_{}sCq_xAndTTOSS5Qe{eFb4pRo=Og_}iVlw(%8h)WvevH0rZ{(|s{8r=$jcH%3uOqESc+T*Fl2)yAa`$|mq~d6JjIFyZ zS`V6Bm*|W2b=EtF1&~@~BvP#_iAdlIi3g>%LgTG{q~&AyAE+yZ*GUGo9(=BWNFoVy z%7Rd0!*nW`lI>=)Svw>tD9Iw=#F6?~G!MAsNiVFTy25)J$XksP7}7a8r%H}KahyJO0MH*6?2ShSqZ8b=;#L>S_>e)=y?vX5{I`6+%Z2@F_NwpvUL{(c*>ZjTQ#kyOPC916x zOSMPn+#2J=Q0~=kRSa6^+PMN{9j%nHtJBids|HT1@M_)9AEfoOcGg_N#ljx_j3sGR zTM36f$k54chg59^nas7tsLcJ6CQ((LQmT5s%9@&ieaDB)CXi&K6Qfx&)>F+mo#sB( zqHFi7Ox2r>k_U7>S?s=SJTGJ-&pBw62=CoNJ=w(1emOaDtapU!D>Ebc;%B*ccf_n# zwJbo=S*esYl0cIcP??m;HccH$)ZGV=v1v~w#k?E;?v(vg?C)B0n2XpZ$?be^5o&8a-3Q`j}B zbc*s-t?HB;oQcZxY64Yt>SvDyRd?r?)&24$bdAC)YyY|)wH64yYRx!PWmq|xs?e`ws{WnX~P4@tfdlflRmwT|HS&_W7SxJ z{otW)aVt5^J+a;_sq81Hm1m?e)>E?hat@qIM6HS-SDrC;z~WMQ%QnVd?!09vua{>x zJB+a|=aKs%?i4w!Bt3bljE3Devi#s7w)HvZ`mJ}EzG-EYdT66X)ovqos z<7W^%H&5gqW4A0h2|kb2ZU)bm_TQrvlI6Ms-24dPLlxezs=Dz%v^O&~ z`>pJMs6J_uKG~b%SV_=9P|YXS&2$QH9xFlN_gY0N$XP}8ob&eRaRN8P=NwYK&V#>d zIHT&nsJ3{)xMv_WRvh3}txKj+4FNtQ8<4!PGqWE4Fs)QldLm3uUJ9xyWP)u)V*JXefk7tCIEzq8ofp_vGW>EeWSSj7b;F{fIgO#R_ zsO|?WqJjOv_ z@p;Ww3wq{Mff-){Bt*+H3QeZ1Qro(}pOb739TR_<>F3 z?L~PL(Yo`dV$o1?E-RMX)y`|x$9%d*x_QnA5*93W@`(U{4%&tJ%VS0f7tX6Slb~`+ z^Dft@5`nB6vA;(=Zt=4n>GUpYw`teF`KUf(Hhtzh{FH1WtR^z1YDw+1rH)j5m=X;XnZL(}3%T@yR95k+b_n@)q4M~MLtC^&%+D)X0 z$**}`G$f5{SguPp3#`qOY7eRQ@jNcDJ|lS>$${4smP8yQ<*xZ2V{GilIR`z)b-1Fq z`ZM|7#<$D34l|EC4jR||O)B%cz<*ufZzk7s0{a6%yh#=X;tibz6ic=qG-@^{aDJCW zg3((f+|6(U9x^qE%r4_!k>7V1|JqvA+6eJtN&%D+lHkAC>%vk_M?kFUs>BXr7{E}z zVG*cgtNDRl$!R7Da1;fdkhht|KuYX`&i-Y&l8Xmqde-c=h6p31sdZxNBuKtTVO z2qyjT*m5>@ZN19W6OJ`-ky?_S0WQMmX&$p~l(dP(0P^Gv?6Qs^_|{OJGFhE7SkJx_ z~-+nFF*fJ3TL)(?5%U*A8^*JgaA@Gd?rJD?9jvGDDsYvtG z+D5RH%uT$&&)h386J(=KBBg#EQiW#gchnEC9>5A4DX}r*j$f-LpWP1pe^v1B*6?W* z%={$KZMJSuxs@DwjwEg%@sfF42Rc+;`ME*}gy124AZ;q_%0LjZu9Ye!$RUX|VkD^g z#QO8QDU6eZaIZB%f)m`2z9b=I1GXf2ekc6i0?J)TFU^ZFIyl|rTtEhF$vha6V*1!- zjB{Z`oLOp|WBEG4nNg9LRD>GAR~XKP zA6i$5xn#v8El}9hftHd#TVLOCOu1Zh+uy%k5*3sJ>*7mcN;)BPe z=9m=Yu=`W%uY_H`HG4vqcz@Ill7yMGZ#QGQ*L;~<_SR2;<}!6LoBo>tpYvp$Dg0qe1SIcnMZu) zF)<}vM%5uia#)Du{A>2tVEH)3{uq>8yAtb((4&OEyyM)Q-$P0yv#_Os$fa`9eFd*r zob)?BOT@C@+Cz-s`~xC|(!hFM6Z4s)dth59pnAZ!UZPgM$Y??7 z*Bs>T*=MSKSFzEfm8aDioT-KRr>&bm*B22bR&A$HMPL!Bl*4`nB((%)&+ZwrnS zvwJN$!_#lGus(Bf4-*_YUdJY5eXG~OnWP~J>$ip8tJ$oQr*8-C{cmI%-XOLGDFK{gio1DT6?fRQoM_6PGS#aEK4q?wz*2o=Rxa-0OA}EXLA@^#Hrg3 zU*xu2>t+EP@z5L0U2abbmqEuCCC5(s_*MOTHDmE*nM$Jp$fzBLxu(dB0>3$adw5cT z<2$ZvrS5e^>hW;(44=8(XMP%)iWeCOnrhMmKJ(>3!qM2}G~#(E}>H5yJPMxc3^F>)>VHo^t7==p=?IlKmYel9&8^mx(; zNKLMCn{R;aYv~oJB-5PN!<)N9M~qpBJo| zw{}p~@X-^DJKh9+Nj|O&ca>_q8qbU@4{z=We|EwxXQ93j&AS5iJM77c>t?~`Q0PrH z%;VW*+seAdiPkUeCb;uFaS2+o9g{*|lcxAF-#ka1g^@}#=|774y&R5FUy{j=Xy^>d zmb`Agin?zTugpgT`;ep3P^oj=Hnh$ZVq- z+X?3{e@GAMNn*XGYcB|%pc-%Dc_A!YPP~9|hZ!Vvh^geABch8t%3_su$4|KBdN4wF((`D)Zpbu6SE*hy@xU>`SkENwy6~2N_>B9vEWSYALvO3`VGgXj z&2eF99%&gA6D%xMbhGTVD1dcYS@AO0vvg{mC}!7Tc^Hk<{r(fWGSXLN`P0NO-igNg zGH>`eXvnJAe{*NuvcZla!FTk^&TT(BU-Mg6&%lH*e6V>Cwb|m4 zjQ`d#ufb-y4EIZByS?1#{c?i;Q1*v~hxEyPK$w>!&s<3JThm6#y80Xo;xpCqeJS7m z3Jb4iUSrBGVEPRAn}G%z-ObkGv1;Em>73ku%ayk@VXwfk*Io2XN<%gQ+m z+lw`utt*K>t}h=oIk;KN0@sui8WY4{SL9>yAu8&)mSswGn=WCC(omK3bSnvkFtk zAp~@CU!N87{9)MdHR}IN67g@sv5PBOb0qv((70nJVZPdt|K@kR-2JWyPAYx1?qZA} zYcOP%mzB&`|FH|7*d=sFw@onuBosy%$Q%SMm%hUv`uAtaK`YwNo?zVNcqx!u8cV z8*MZkAv64!kOQZtB7(~3k)5lFaQA4~_uw>fJ^GE_jT$th7l));FRgJMlpnv2-e<>{ zYVtU+E9<*MRh?XYl1c_ACc7wDmK+1E-7uny&jg=ABjY_=D18KERX*Wh3j;u-ex+1L zniPV_-Q;2@w2al;Z(v^?|GHE;#66Q`#d+N!mU_WqdwhBe!-^5ATK#HX1)=gphb$c{ zjz{Q8zvBQi`_?^l)zSiQ_*Mq(es8#`R-ZWwo1<3*{Di*ke6JuC$b^JMB+PqVS~-qhU=hW7a$zSyE`q z-Av=|X)53qZ}d-%YWj)|%s;Ktud8@ns$L&oDy2mKRHq~Ac%7~zM99nCp=KGbwyz(( zo08i`Rp`dA*RacLa5_5-dO}X%+P&-Xz^%8 z`#!>r?RCFAAH`^q8(S#C+F|8IvCKp2SSCV=hdO*(os>*fAHS$846ElkJ!Z=`oK; z%+XP5(W!T($E=l@zuPfW(ql}CdCrarq{l3gm`Ldke5b~b zosb0WN_;2Y=foD3g5P;OJ3X!1Z)?Dko;5h;7k70Y?y|9rc6N|D4PJVDP7(3V{l|wS zepUbR?@9ck{^P68Bz}7T@y|(oY5(yTokhH}|M&+ae!p-_nd?6s#-+2P|M&)pZ|*<- zpAx^S|M+>u#4l3uTn>s(C8t+D!zqKsX$^GUPQ^%5Gdd9>DYr=ydfDaU85> zr{e!I)JQA+G)a=r7rC#j&%gUKC@nBP|VjeGQ4f1m0z_>31F93wgcGfkk|dT z51m^!DhoolnsjDWN5I?)xf>2 z|FOa=fG4Syg03%G$%ah7B0KjFTqzaPGvp(;dC+gZZRLDj7}QwAv!QdbWMP}g##DrG zs#QjU#H2{|C79BXt=xcyH@H^0Zp8|WG9Y-*(WH8VG!1B9A{7xssPZmV5JSO!$H&Y^ z@SlC}30VR5tTRrP1Z_;|;7|-Nxse{Oq8a0-BoX^mbJ5L~#h3s&VWef>j5tS158dwC zz~YqE*~Cw8gm0wC32eCOHUEG z)7`EOCxTxju;I^+xU+0WJg;nr+iZ>JlEA?xm0$+o%vKGt-M4GR^jMT4VY%6X-h@TVJPzuHHlP)R0V-2{K3bU7LkN{Z7r&Wayr@^b(SV!FAZ|g3Z*e&$P>-f~Wa+9twvZ<}K zZ9ux^RJz4qR^puybmSU8-*j`iH!=~khWzmBNNX+7E7hOLl5Yx9p2;!4v$Yu z$P1H!p$UrSsQ#wH(PU?fLG8ZEJ|q15ucr9s`llv_Oxhe95nx zQkr3|-MGOYNzL_0I?VXd?P-snM0<86#*cWiN*k&Zf@KS2{EUge=q9IU$TGBA1!qnQPqsuSCa(>D&?*+{+=7lC!v;p?}!cd^*5rXy|ez{0b6;by&D>Y(J?{WB6wiOW>nD9UyWf|cU`2d%tG);M_95$Yt92_A5+0UrJ z*Kc{L0fB_JHkOM~#9eDsTt z&efwTCvbpTB$$@?A~j1H5fe&a!45-RFOLK#mbPh!z3CAW}Jsdgj;*EuhRyIg0EY zP&izX|CnJxInohESR_B4zn84xjZ$(}@Ow`=c~F@%QkBu?g$i-6Z^Gk}@aAv%A{$j< zk&z<=lfMIV6%oem*Jw-{`S9NGh9(%hyg8a)WRHkH?h7wpM6-25;HBAok>v}#k^4r- z$|aD#=Bp?)ZZ80eHv-WdiNp1GvvnK7r`M}=i9BlOlFYMbNPl@GT_R7BtcS@w5A~Zz z(&;?aBg!R1kwWYz{bX>DC{LtbkV+lsH}!%9KGK{id`9+@p?-vyk<+{!p%%UgngIz5^O>OOk>CJGBpm6nK?GJj-b9>n`^WMT*{Ent zbo_c)PzVKF%kaiM6bSaE3_x@S z;`y>p2PQ-%*a)AdhUMyAd|VkVFnz7>WV5221kVq1-7<#Y;4Lt|CqcW1$vS$y+MA@a ztMEfnCr}pqAmX{ah$*DjcXHtzp7%Q1y*XWq?;k{!q?D->s!wtXk5MG&u&mF3j*dSH zEBl%{;&0dnf1&ILuS3>gN{)#8B-qUus%RArs-#6?)SG561g0)=D-8&o?5%3Mpi6`q ziK-GK?))MpbHHl~3rIs9Ko_6yXHybxEz(RezL3#}QJFPQ?C5+2v|TOdkT#*+;tF@2 zV>Da@H$$rmBDCrPhBTX|_?b2*bGQ|(zboThaXJcLBYe3U_!|XRKL-x2d&IqJ%=IT0 z)MW<8Wj}&fOG>C&R8bU-6dckZy&Qnf@l~u=HJ|P^MRP~0+TnG;#_6hNA4;@+WM(dT zCmvKbk3wfk2O!zjT%IZ)&fX|o{43W}a<&^E$cXUN!$1EK)Do>3aSwsdiv_>Vz6?$+ zN|e{}yl{WMNN6@iSL(*%Bqi45H3y{SlXecWA8gnot#kXglUZr!$E7pKT}N&PyX0oD zr{{)Kiv`D!d%wypjtX_b@MMo$lKaNk0-bYB&z!7sI%gJnjN4zAvQt#WJD)8f z4QzlOQpW9F2qF3zPe|`%Q=livgvV4tF5~B|MtB>UypeicLbQO5*2oTK0=U_!*HknEaLw&x{@H;isHVX4gHJbRPM}3jCg#`Gqr`@`5kPC0`;br4c zdaD(iM9|slaZKle&r;*-+lld&n!}?0C3ARt+8oaQ%!Z6f5do3if8l{AXbl^F(q)ynOBBD|Y z-E-~Ib3RigW%iX5L48;AQ1xA1%3FefQDK{g)&GoSC>FgTGz5h6%C%;cP_o;gTXjS) zUc#tO6IC2YiYoFLJPiVv+)i@)%OT|3f|C;&FVTJ7SH>X;QCDJKNNyUZQd7O#LsI{z zFQwE(0~z&yTSJ2?g=P@rx6)%Y4o5k=OJtR?mD@l#DC|Ko=D}x#;Ha zf%C~oL(*&Pn_A&N*}3>~zar3R2p9aEv2e0D;%06@ep{Iv$x745P5@L(rQZnt8%(kj z6pgUBRTGLg$n~@fB-1-tdd0Z?2SPZXo*;2$hh5>%CNQ72x{kbsaJRSCNAkQ4=XMfWp$(_6+<6Q>?1p3i9TPc=BB4a9HD0@U|$nx&Z7aQv*j^+S9I5v7^2O3F> zU#qNZd$zK!`|Mi^DvkAj^*(zU5abUPr@tCw)On`3II^?Q8P~^njZGyGY zFixmWG|FU*2;87K4|9AdxYIE=O-tWEJ z(HowAmtXNc$nqDOjF0ixk;IwG6(U^rsu6#j`HLnm_Jwx75nhyo?BgrU$r)=bx#G~C z^dgAwIeB`4`8FPXyMOt;_@1fN$H({7R2SDS-CVop%IQDHVR$%KnIoOCJp#(%*W!yk zXJ0Oa^BguUL*`2n^98E_!CELjYoJs6)O4!oZsKxXK_kSSgM~AGSTr#TqtOanW^Gu> z3;Rmjqvosj5QXRV0JU(U=BVMWW1!T`XoE zeEgieSeZU0Ag(ufMh15bWCdRY#lNL6G~(4owG_fdHFj{=_nLBQV_*IS>v(dR9VU#) z^_bN3qPPFRrD5}5p({!|D>C&p zNux<><+qaGHhzowZQ-|w-)87sBhPd**u;gN4TK%U$(6g@w_~2y-x?RMIFqfW|Di%Q zs?L?eqwAx-ed;KM_yvr-olTq%AVNaU=F?jjQY?@c9mpeINTEO;?+>!?HXy(2 z4|176YWjnmE08J=M7(|3q2U0++&DSCEC$Rb29!en7_EZ;H*K8Y@ zqgJT6DwhPr!}*l1>A7mF=Ta}ROpi}*{DU8I#WkUE&99@$>n?@7U$y8e#!A><)U?9p z2Fs+?wD6ozygaA647M#B66yM)iC|9Dw^ety+f-4{t=Dvk{gs73zT&D#dHFA2?M1%( z+i%kR+0&jGp}1YUNTfbbdv-JQv}depPsO)s&!3J}B??u0=B$wVq)F@gG^ww@WY+k! zG|0%zS=z|YqNeOos?x2hP^~&cw~F=F@A#Z}QdWDUrvI)zstt3NHcNXZWw&P?hDJuI zOtt5<|GPcoQD?}Tp07#&^?Y3i{@lDsZ6jpxC#+lYAI#Un)3U}#>ih4;r$xqO&eB#H zpHTMra8c&B9-l!MW{pqiza5_zp;WY|UE0%YzP|e(wCA;pvfA@s&sR&AZcn$gr&69X zv&Po_w;rE`mt?i4^1mLR*L8a~^V55L^8SPN{OPi+_WbwbW9jy6mG)dG&zbSLrQq9- z&tbU6d)C)=|MmDNd)Az#qH8Tu&zbhThw+kcd@K5M*iTg6G(D7>{=4<1RPZ@Vg`oDv zpNn*Rz7_ph__M6>`M3DPdAT_sH_Ch@2AoupzRTIt0@OMAF+!E2CnhE$pmm_m#&^$t zcDCd;&V3`~TMmADwCGo*soiIBJd%jHt{;81zgiVfi` zx_nZdj<6O|z|~JP@p+Ygnc-h8O2ePCR8-&I_f!y{piD4rllDJ_Y0_T+O@Q7DJiP^>B zWX#ud0V&GHRb3LvyQUj;7LTfk`H^+DEu%HAkVC#D3|~)xV;uQ(*%86D4BXFY4p-k$ z=O05@0Cv86^9j;6KFLKUn>ZpXUquz5Y3U=u2U!D^frPWgTl+sx_|5aNOR!+h(wu(q z^%0oNx8;|EsUaKzs1t`483>) z1H`xO?mNQ#zig|>v(^_*m%VWXg(_i z5FgE+_4BH|yOeO6h#XTGJ}Ghx*a>Es+>wy{1#)~4Bn-CoOagnOJo^04AvbHg%N(gE zIRtN%4hofq@?uzYItf4CF6(_RI3!Mtp+wG#{Gyx*iNJ{k6B1XP2%0SmjaUk(EtHs1 z97^8eQ?*lAeSwP^K*o}YZ;MoBzQKaBDyb_hCqASm2m1%o4!^lPU|Jx5*7<>ccS+1x)BN$Ved##88;tSD$(ykej)HaN;*r+8UT^`XxS z`YFxGYevFvQ8eu@1*-yys|VtxDhY){Y%^9dwlHa`P$=MIQ)sp!X?+r ziei8CP2)YoZ@%Uh-o5lXpuOmn!&$eIheN$dczTSMr9Hg2G5{(JYLHB zt>w3b-v)k1^4o|WS`6i&oZoGtY&*I&nz_A2CR%_UhswWSb=$ld9Z|3H~_{y$;;odA zCR?@iMKubo+nr{pdJfn1;L}>)e%tfv7&Aw@Qg={LwI1A%rO=LVF3VwyYQ36A>-$KVDUm|O&nseX)*_9ZMTiW76isOkndjl9 z7#RfioL3pI7zA>@&G%X9g9JNeDI4>|UDB~fgsa{bUghBOF(Azs0OK={5u8a$%YARt z**37^;%jC8ZI%@C$3EOBoUMv;W8ZhC)H^1w5AojJIJO<;S=er?ZZ`~ zeNcLK?E;m~hdAaJFoL^u9FiFxLejte^SZG4GE2Fw7yDzHO2Ak6kH0fVAq>(X2b~g} zz!bh<1|JlnvKA1eLCA=ZkJ0?5$w>=jWF%=tP#ZZ!1r-rnDZEAvmJpI)BUg-I7j5>; zN7Vc@RP~0SfU^I}(FSO`I$Ll9ACqUngsXTK`S|?g@RLACtai;3cqVyB^cs+2VM<#| zMT8Nkf{Yf(d6U7jlR|e(FGmfaY#(0|hcsL89iDMxCqy7kI$c0Ds^V zd(I2lQw5|52(#TCNd8!z2$CFvQGzuQ4kD-I3L9rVV6Hz2bA7QyKdI$#G38oKpM7bX zA3z%r#?t3c_E}d*o+ibC)%g>DfqioCJfnN(Da=d&YnFpbx%8=it?fRziwYT9`q>8IA@>#*WlPjd zS%2Oo;RS?T-bbx?@iEP8N*Z-?Y^^icEp(Gc;NcJ93qe(=K@^|e)~S@i!UBC>w*x>qJCtL6?jq^Vz$L_|nyo+-wa}^+Zf7YVNIHd)u>ol!7^C zcj|xD)Tpyt@?E!|!CLDeM$vphd7^}?mTAHlZI4&@SUY=Ev8k=0__GaEgfuOi>3jWtS)GXFg1aN4Y!WMa&?6hTZd>dsJwg58{0d7QhoyEuv?W5=}?#=Py4sp@ri zrEt=47}QeTcod&GOcu!iigQ+{8{IA9dr!{VxXWbXPr$>*EsD=xs7~R?;)(y5)Z2CH zwSsA!z^Ro+>JvEXQJ=t3P1F;iPT=ge;@p@Azd1i88?;PUYiH#ozR!w9_44KvT5K(6 zYRO$}-`pR()%t)LVO}o`uu)2m9_e!Z{vZ|C^s(DC!9j~e5QTcZ8C-341nYJn<#GQv zY|Fl;GuXwq^(hd$$a$kI2Q$oN&a2tcCJlrJara7XO&7CNAcafBOD_kfA#=UTU>}x# zGS}GOk!OL^qWCT$weKJ!BePxSA+@TQqF?sL%+l&>ub3pnms{#Gn@>h=>}PCr1GuU3DrfU!I?AMn#c8att-zkEvSC;o`S0d`0tF<^^H5pOfJa9=7 zVX*HC_67-AKIRG}&k@N;BNj&l)D z3Q15?OWEhdC7UxZ!iE`V)w~r&U~+e;oQt?WH0}`dRB90aX$@g7dP257!2Su6G`DPN z+m4JGzTfm!hU5#5-pgJhoLpGv`y?~{EUf}aD-ArZ!0G3{ug&5y20HrCEzUWl{Xb;YXpWeR}+at8#x=di)qR zR02kgvvr0kZYcJEjKb$d67PcOyWcaKfoRDZzq1$&(X-6$GJv8p$wn+ASOS1Z8ZzL1 z6?2G4$K8S`nJ-Lh3|H-y_Qos9A&#FhG6;!68)f(rCH0xU`BUlj9q*{IK6H`A{L;NZfX~~axxBl`fwiZk@pvD1F^Mmk+x5Dwg1=R=J-)F=e=yFMl4dbS_ z0apypc}D6H;BP1@JnaSE$uUsn`1o>iV2D*Ye&OW!lg=?n1GiB68WI!8f_ z6JMtL59|qKD16* zHxSHrqB^+>e+GN|qsQ=qRlQ_&PU0w^YKgrVY!V3_*A8^{`gZ(LiGV=kBz|ACF=9@E z&Y-!NH4PEO38~)+$bs}=K&wWOm&3im#MMR-GM`e;z6TC~6O9lEQT2HG{uj4WFSbwK{1jSbh zji6BJTBU)pD&>A#du-$LBznh5jawjbo{|MUrL0@LFq?k~gu#Su+mjYh9su zj*lfKA-0fbWaTWk2TSz1T3QR$oYICD#wc~JtZGoWY?<-kQe*BEhC^mqa8Gs4J|Dt+RE!OEgov zfCya!9@r>`_5pV~A1M#^-bnj7*)vUa;*)vgze`0h5&12PCpSas;K`0qqj~aT*2KId z08Dsl9+M4)f|hdeaU3Wz4SO{zw6vE)UvQUcZhC1A;@Xv`_( z6PS}fG0egA5D)n0ghgt>_nQc^qknkm@#ROl^f=VnE>#Fw{*OHxN>*l*@QrbSJ;(+R3#;zgesW)?f^5p0+PO{l12;{(ZOo!jxmcR<(7n_6LLYgm& z(VWsMwp*FWV4KkA-A=qK|6(;*N~*h^oQ}=@CLR$AMc#}gPd-L8O{MtkK!7{#AZX=& zh?0oi=PDgkQtz1v&VR8^rC#NxUOkD_O{6MOiS1{h@N&dNaK<_WMDi1N<9P7WV-MY7 zMcxvcBx-ZmM0h~Tig)B<0ZFw&j2Lg_k|+iN#1XV*i6Qm@knxF`XBVZjW2>Kix{}>e zvZ0e1eacHY=!JFP+o}N)9=JgwUbC;zQ~hGJDkW;T9vZ4Y1s--hRlvhe5gv9p&oVL- zlEY3BqYZ(3SRjl+j*P+9wQ3Bm5Qs|McRs0a=+tR$>UK$8Myjj>JuvmxFc)c6U0Ucv zH`ro5#2S)L$#D41$|Bp}2u(dj%kNvP;y2UuTaQ;|fjvz6=gqSksmOsAX2xfwVSa}% zmaYw&t5d>Uak)??DohpHA}Vno1BsbF!6#N}k1;_ff~y0{8{TUIaC+m@`CnH*ta|$;&v^9S z-$(!a7por=O>dw1(;?0nM>9J_kBUHOvHY=XRU*=%e=0Zmn?=0Cbs}KCgJXP?_#Lsc zy~$&y~^Ike%2FiFV7Hr0{Pk+`GWWU8-r4wb1@WZ|HLw zXpwzUZ|FlAXt8~IZ|LI)Jf$ng{04D?Sgd32R*JWrT(DC%N-fLO(T);8m#N-FpObIpFJ9pP@pDl;rNn9`kkXt&Zxhe z8PZCp} zv`^>^t|mjyGti_S**sBinavaRYQDhoHK#mTTeBKd=v1=WC;Oj+o#ogBie0UT#y;GA zG*_|pqTnR)6@PrMY@WQUH&49snJ%hE%iiGBvj$^8owTV>{LdnX(`eU%cW8hPt(^#n zf58ewmt{hR)Wsd_qQGmlVwtWlTD4E~OB__hK>RS}#q1-zM?%>_sn}vZxm-yh!k0f7 z&#YYfq9!w~w8w?~L?CB75Q#VJLfQl}yg$gF1+rg%ki!Qf8Esvqzmrwl4d+tkRR^-! z`<*{XZHs~Ulea4A=)1BiFnjJof4~@~&ftWT5+O?Lbz7{FNM0^25bM4D3yv&h;G4ft zOJ6js0{dbwWJLy2Xjgb4f6G9M?Bl$U7m(ff8sdj&Z0Yf5jvRe$htVJweWkB0Gv>;9 zqm*bnQKZIjd^s&<%SPs4zKp>7m3nOc<{g1~0(r)PJm7`Q5=gUxXgx|+pjJ9+B2}M? zkQVm6<$mHy$^HwKy?UCP8kN+`b?Rg{b*!WYb!yN}JyTLobw3y@*B|@7!al6RvQjd- zONo6XyP8A#2c9frBvBYmiGF}$vqYGqKCoNlu{34uOCI}82&UT(!$!zg{>FMwN|90% zyS}rhBI`uiZ{{=L!r>Ly2vxFPFy4eh{9?HYmGIk)fu@jk(WDxS{O?^qmr^{ve#DZZ z*Uxa)kHd2B9>=g0b?LdQRWsy3?hOFh*Qp_QdLg?6^1cI6n_KDH9vcf}l>?dUE%O_J zv^o%p6)3cTwIHt1DG<>;kEYVaifM8L8c$ha8tvAttQfmm^rZ|2e`MqN&fchdk4s z;r4y?yEz}X(RY#8a0AZr#zW7!knLgRl>V|d<%N@NP2^TbJ*~+AxhKKB&nhkpCX{?u zOnN%U4XPE6!dtgO(R$^>n2dMnx2rU4q<*_pzlp(&F60@3%yJ+>FXSHrxw=2d9|dw= ze~|wX$Vdlry|=dc0y)%yEcHU}5y;m|b$?#;LYABj=pqo2Z&7A zrZqmJPNHPXPz(Fpjc}b>M-f>c(A+jherCz*2(9hbooLUghrux=FLzcJkejTrHs!pc zs!_62Qqa-5l$|~M*8adU$9_fWt%EnQ&@bpO(?~LjsjF}8flMC*XO`r} zc}v+LDWx=K<DW>oSFSJph4?E>%dm#-1xyymv z>xI+{#Zg64#)QnYh$ORW{h(SviC!K@0Suo$PvWJz^-4 z6s}^u$D#(CI4dLLm-=hENNp2eOPA7hBSm~_J%ZRyewBGvI&-D4M^%3&r~ZcU5o;oR zEp@(|dDu5)zDhFZav(KzteaW*Y`-;MCz+p;%;G66%dWFhf;07-Ss0%+dI*_2-ONSb zlzE0^F6S(H>i2GD;WPc!9Idq;C-$v8;b>rml6s*| zo#m$PC#e-G)u@Xz)Gj1PAjdh7yS$K{X8|byqNHUdpYx^LtzZ|+b|yJ9Y-NkpzF8(N z$bGm6R*K(fu61=J*C_xo*Ao0rL zsHK8E*(z9;Z(ARKKxEh{7)v(^6TssIvHL1S6CD5ia*x;EPCsi=gyq|cCFXvP^(I`L z_$o&s4vUw)IGW6p%QFa;G*o6%BKOGN%Z**yKO$Q7wHxRj14bTM*<4Uz>vuAtc#E>% zd8+Ja;tB&J)&Lg5fzP6%$sNN zCWQkcT2v0PhxLJ9A$5pgAu8IkT!MRu6H~+Iw1AB)tWD+7HX>Iui>Y@=>mwMvKw=m? zOxz$_70Yt{PvZsk3H+RNr4LqpE&haU&=5sL#BLP3QJIXYrzwX*;oz5yW(Z0bsbzDN z%p^QbY`H&Q4)%QCEB|Xc=&+4+KE*QF_?&165@NubaWFiqCw2$-8`uZnCmS~3viIYc z{>T8)OZ0ae$MCI0hXdZfwDYI>rnlIp39cBlUahi`(nHLcpp)VxE?qBpKqBT&g;U|VVr zCj-M3&2s1yah9@7mIrxIT3l-Skf`S|bXnItp@`9sUDW*XX{1h6shka{o}mCj`mYec z848f*u1HM+xlka(fMn1GT6B|j+4C%SjE%L-S(d!h{aS{i+#txxm+bSi@ikMI!!#W8 z!+rmv(kuZ7O(&`dkUX?m7wzl^FCjh~|4+Q^!#|1?3-Hcaie89aS)n9HbA;4L$XD2h zMnxt}F1M_c?s8CJkF)=B4&sa09pD$|$o|X2JY(;|M(9YLC(1;;`M8>h5;t|Yq^=;9 z1;B8ggK4!JU$p!s^gp2XKf77e7(?`)$IMqVV>%L)_uf??^g}K~t=KV?;t)^BrhM6sld`Z1Sr(WrfY|ltiZ_ue%xv5`C>cyn`on59G z%oE~`buUu9J=se?3tw^RZRJS8Uwd>Pe%fWNV#mlH=EY+X)Y}|9UM>4s8S;6$vWX*y z=gaV)nD(|1Pm3*9^ZLy9MDowIyS#fP|DL|;^EgDeIJSM46lbRV(mc1vB;4|4C5(Q~p-_ zAMv+&$}8%>IHI^1Cb3Qx3;?kQtUwf?1h*D83@FSuST65 z-L}p_F|fyF(K|0PwsyP7h&^7*HlahfA{-Q{b-%UMGQh%gVC%CBxNNSi= z&3q?2%=a#YdHXU$&TpW*pPA;pIm*jP*>6PJw9Ax#PcVx=zxk3orUd(QY^W!7fbdM{ItB0MQ{40_hQV&WXG8|?L#8Fl8Z%%xjt*qhq%iw zGunzDtMdxZHr@{?l3sr&@Jvh;S%R2v+OxLu#*{FQzCWumpX!e8DUxcpsMKrS)Q?Xj z^%b3(G0FW)QlBRkdq8`77py@|@!Qr;WOVy#H6Ls)wQH?Zqi2`x&uYIH-6tVKrtNJ7 zs$RB5#IY#53Rp-kAF_@`r^XbkSHmYW&Pi`yr(`vha_*+f-#K1croC)?hxKQKH=+r1 zH{%zw?_w|UdTwXWVPE@b|NaeyG>AxRef=BusyR&iH(;Do{tcC~4$y&%`EBM`gxV%} zxh$+kEpw&uCtKcX@yzdoJj>(~k|N{pP%)foDfyF^zM?#d^Wo9o1#*A`(e%}UyeQND z#bdgRY<#=k6OrS9yx~Cp>4iLaERc2wB6e=Kj46=E9LUo^G8EE!`=4mat4PbBfP(h& zPH42Ip=qZcCZosR`l+>b0r(-~ggc`0iYTOXu06ZII-0EGsKdUhKUljpP+)=nV9nNF zT7i|Y!n?da8roxG7UeQ+@7JD!|3s*d1QPnz`e=v)?R|Y+k7rLvMe_SnySs}2Oq0-v zcMztOy9GR%Evgbhpwf2q&}P}bSM-6XNbe8uKM$?y!BTs?TsHboO3AaRJ&*CM{N-cq zSZ+_&mfL1+xs4Rd{6DHOLtDTIpC~rn<`ZQ89f&M@*BU!dAdfkad%ckBjsY@PLBi&n zL?+Te?PPVK0B-`wo+b1|JCr>qIoOzm7FmzTv>eHP`IL6oAN5o1=iI9FU!-<>qS$BK z-~lJ6ZM=&Sr(B%Deuz`)alP|2_09wFp%LH~4$$Fs$9-HM(mNB{8*48OyTZqJ>#JXJM3#C$I{6AN$aS;X zo%x2{z@6@HU`@B)4P=9PE9Q4Etx+FD+PB|I^ON542rQ}BSL6|{{8AP1!E{^+I9jl|kM#igESsN+1u-qJ$X!x>_}Qu>nWIaa z`{7NM!kf-^Ai`%{4m46A!yU*|UP!S(_H!UvTx*Cxwmzi4^Mtp|KaT+Nssq{Jg*+sX z#SUZ>5XDcFrPlfqM758C{;D)Q>%F|B%eqrznH|gGZ-oeCaJDXSf4w9l7=3E(M9$KH zA@_eYT`c6LN=Kdw zIr0?jFWMYQ-dqq$URo$@@J2-6SR;OMO=p2JVM=xZxKpt@*$AQ*vZO;nCbRcqw-i1sk0&F~k!r zptUNKszqf?#BdGV3JGhHSbTTF5uM0%Cs9g53L16!JQ1@B+O#-Y^_g~I#yRXmSWYR| zN!L-SWDx7K6+{5kY&XnRac2GoVFlt<9WEa>{FiUAujqSS`an>flv2-mh7g=ooNv_2 z^2;2H+G6egW4bO!?1NW!=Grr)e7el+US*c|E>o<^faA{aWO}ZKsM&gg7Td@68Wjc8 zh#qG}%X&6DC6pdcbHN5B5wsa|TlP|PpyoL`4&J5TTHc${ue>*Dpy2Q@a%S*BzQoX~GlPvh<5{*|MalS*`Bi72WNm!^P%!h^-|MvzPfxx;J{$(* zVF!}s82_a}?s6bYy=B6O0J%{?l*eE*%TZyIRCt;ICn=z~yVc#AuN)DDCJ`RuE}6Sx zh5tZZ@emusJ5&W;TZgbnVC$)SDCZ@Ju81NOC0o;)dBo;6 z4}iO0A;O$;lSA+8LNkcXAXZrPmA_a@6nLE z1+t$5xnB*w1Gz{bTbsOO&VigQkXIduwxl_brh|bj1|mF8?0E~QQD#J(-oHSUPYLt& zj&>k>VPEx}i2F5d+x^CY zwy|O0eoi(3a@BgrfiFgr@x>S6y}|kmqA#c-Ia%-ElhOdhCx$z)q)ww=_+{!t$YBQC zq!LwwT7lLzRFX;*3FIILB0JtLLM49`jZZjWSNO=rJli82f?^jt z4^sP3huZj@H1(BuO}89-+p1NA86LLe=vUeD*qo0=mxm>(0B90eZj~okpxjioevshE z=SInZv4nbI;a1M@ch*WN*&pXoju$$QVoP!!mpPA`qqzq!Dya=FMPP9in3l(xE)P?c z@}~J*twjwmGX&<^F8wI{t&$8gG|NK>RKZ}cBI#0{RLG-S+IsUN@szsV=8F zNtohe4n%x!UC0pvnX4d*!HM$Y0&@j;lT++XFXR(peN!CBHZSB2fs{Lt(O`yK+tmjF zIo5$xdLc&(WRL^7*b8Zr+CI5gcj*Q%WXb_R);W+nypa3%2eQb4$Z1Qr1$PMKAt1rz zO^P`@50qutExydJ{V)9b7)M@J;X2V9_qjB<-I^v^x!IYLz0l0+RQ5J_OZ$tk({! z{(sUkr@qNCExC zUfGBA&R%R+c(R|>EBjlBM6P)YwDynm4p%@a3o86U!xjXFM6g-OtdC;2A+}2n{3*4O zbRnT`_*5kzGptBYY>X#mDcO^Bj>$}iQa|)WIytT)hvUUI4Tdz1p8XDA zO2k$Z`|VtXuC<#M&0nQS(+8kf^9kW=_)5+`=s=fRCKh0l1xYK1Kk=)P%Y*P z38VuI0CJ2#n7Btka2oTe{f2t7U(!FTy#%K3{utVb+;7s$rYORnib;z@oeD~;T;^nV zKq3-D4V}#|{AXkWGN0hS4HZ9^Ij+cy{Rng?7F+ctu1nzigFukcbJH8b5{s*&%T$|~xmaQ&5kp*isUwy&N3mKlbhTWBQAjXEB9uVSVhxzC8Z)Dz^o8_(uPmJ3 zQ#1O4S~&A~4oln}NXvGRowX_l@ftV_YaN(D`%hJr{;+LX_@bJz9FpNKF8@ux;c7Nso8q?K9N%BVKzXUgR1F~-v5)c zKr@aIr~5$pHSN+RW3JriiACr+RykZoLgDsr5$YTNko#5E_q|`G1=gkStZCKPtjJjn zWfS@t5Ntwt4}eLPuDD!@G@KTUOL%n5LLvb-ld+gz5uXeAZQ>U}Ian)4J&1bGzM-sN zM?Z*Gaa+?CNc_yxW#=%L&&jh;Y88_opP;CZjW0Rx(W>_b56uTr9&ONqWY&3)(mWt{ zJCLls!OHIdx!Hk?2a}~nwbS?mDRZ#{`P2(JMj#aq7GwWoCtepUZrUDh2Hn;gAwwF#6ckTEWd5p)Bfzgwc@0 z7oEFSR;UPZM&0ey1vP8p=73CbzS3$9P=rBzX&NHZhs2F|G011+ZdKQNhW1K)Fs|Fu z*9lxtRtQ3+sxwd334XPyTP#x6<3MRkm@AHG9ntNVa*RxekcWM=q@Jbv{=3smfd=W$ z|LTE|W|d0Y_0=&e+JsRVb${i5KHc1_J2KB3tlxkM`mD$-7NG7-=|;k7s{3Oa^!+hh ziSP`SM3Xb556zK2eTeE>m=tNU+#loV11EA%>N9_w#=VYJW##=El5!^N%q<|($(fYc zEu6raaSf+$%A@xg_2md|_IO&HnUP-CM*R7HYWjq1(gbFvO)Anc|61Kw84>$o<#=Kr zlnzIn?|xf{=D&uGyUi?iub%ClUF7lJ{9`n04q_=6qIlwE9IVhK+n+=^VhPfT#aN%A zfRiYHlF@4aBi^o-x7u~H{r&iNw<1Wnq7fhUiE%_!0cGL(BM9IGLrFfsbM{W%98%yk z%9B*Q z2Ax{vHgu_^E>)>Ada=tiS|D30T^91GV|$1_vDx||qpl)wWTk5^atdrp%+lh(M?jVV zYVM>?K|y>KWP)UJ%qq=LmS~0|+q|PaqFM&W`uO*SvheCKwcI@N$&)Poc?F~r*q)Oe zumW&Ou>^2Ru?oSd#?GJ;K*7~^Boo2cmNb6p^XB@Hxr~Ez#{BO*Vw^r2@qwtlTD-Vk z7(?O?HO6PULdP*OxiM0;7g==_;=~u;wjLLBH8;VgQ{$*j&o3K8-_`zoJFLyfFB+d2 z==QJ)S}f0n`=^GI-D#hD;4a2Ve7PP$U|e~Lsc|`%oYb$KeJ-0(>cqCT2f6sO!>a97 ze!=^67E%2iLw*Mx~iXXgpxLyA$CzjIuj?0v~)IuXRNt6Yn_dZDiWHKxawp` zX3SATQm1yXMGm_~Qh%aT&v#QxzGk2zDmA@6@ZggChX~{c4n(%k(h`jrTYknWNG&4K zk%xm_(d6(!#Ir7TYyP!x($8z96-J#tE9KODWDbzm9Y~x?+%m7ov@KB(IjQU9|DLp@ zMWxD|sIiJ&tIojMS2(R|froL2nIjxFT4fBgeI(>L8vqxLHd{kj-hu&lvH&z?8=_a+ z0Od#SeuVIntQIFAtJvp7JG10Vb}l!m2N%m#>LRHfjjz8tnQ0-Bmq(v8>dS;fWM5q1 z^`XctE|K?o)9(;#p*d@f?n^ z4Gk3>sr`zXIbgP);}vQq9msyU%<&hqG(;@dZkZiEAa6L3H@%R8J=E6jK;HL4-jgzq zIgl}6y<6Kdfy`A9W&c!yklHS$c@uV1;Y|Rceq9WWV4~cQhlJh^cCpF#2UL$#R0x4r zUUIU7Jji9x z@Yz;5`8zb#NFRA?@3VH^loj%Hjf|e^RZ?}C?Ko$yQwt`68 z2)xfd22;8?l0+_r+NlR6KQM2jzVB(&Fx_`fY3)n}$(!DWlrrec!ytAN_1mAQ9#-UJ zh2ZUwPvJO7f7JNs%g+?ql0uLziGF~hJxpYL3BO>*77Iqn{ffRf-46Jq150K~zpKx3 zQ@;|b&_b#(FcllNdaN_{);oymT+elB*8FAebJ%B1dN?!U#ct=muupIdJ*pyoknnhw zbqbo9o}l5}AqKIDEhhT^bQO-_yU^i8@Nf2wnrdL;0YelrfhBUUO_SArr!>ghoJ#C= zH?F6S@j|Q2?m+pCEk=EV*jdh0WJhX9&lO#4HT|sPT>D?xgYqFW-9#?t#*HQRU^Spz zn}TH{%Ok5d{U~9<3qNhoq9L-P`nkhrEy>zo!mS0$TewXJEX?#FQng*{YZarIO4*Eo zGK`X`6bz2~=sYF@!N8k#FjaeRR}(nGOv~#?vnt!4Bi;cF>~0E5W7xX9Pb&RUO=3QArH$P3>~I zLgA1(+l}vaZZ|IN;EshuN^c*Sv)#Dth3&?nD@or(`Uc+LFfNhTRnv^Kj$K+vVq^|i zGF-OG8Ki4x4EmIavvQaiZuNmKw+vP$m3F6D48S4TSi5a&laKFB5P>*(0p5&V6B6N3t%JR9p;#0U$I=FvzI>Uu35k2v7SXL7&%9_tr$ zD_}gmRjRy(XI5Rn+}80(|aY)t{I+w6tA)&wRBZGT?nV^U#qh zNM5{)#?7|<=ER|X^O8cQ;nuHfLK;Pfku*S8PZ)F(~5O8ZIASaBCs`jqakqS5OvBbaXf|z34oaDbSKz z4Qdtgcn?4(=7ezK%y42hrvA^ZcYit%u5xD7H@!%Wo}Qd5{Xd$zlxnv1(nsff+`u**xZ)Y^V8&dAIl;K3-58;^`}w(w;owL1b@{2}r!%Mqa7hj*XYIXqp!mVh zIst#X(v=y8(dajx9(q8$?tUpj=eb{po_^G+YLM|)9?_oss?qBa zwxx7!8{trLxFoR09szT!lj1q%9x+b;pM;4+(^P-JvmJs+zeq zbvbR-n3353rZ$=E!J+bKckCc`oCFy>OwhVun)h;`%zAU<%g*`O8Z07^V9s%>GKD!y zXm*bEW5hI=H=J9)U%BdNM z%)$=28>3c|r6?*D^pB!rji-l{H`MJfC1r7i%QnT>8hOsz$$RoCNq**F$vhC1Qi$yn z3>p+Galf>}T;rd!Tu#Xc%)jsAT@*kCNDlMOS(*z#6h2*>IsXfC*oWhv`7aSg`Dih< zxB3tv>Ld`K-`o@&@u@Lymu@2>owbcwjPE-5mt2K6X3iJjljw!17s=qk_xLVj)?evV zeAj{16S=u1HdT}N;d|twvQMh3*;xgr@?@_&nUrrDPX`Kmf@S+=PM|G#HjD_(>6CO1 zt3X_>Pp)Al`u4W^?DO zVQHNep0i9io80i3990sUvqEywbv+x_PsnC=l(uuu;{JA92!2G`a5-&|kdXVo@KiRk z3g&r{_0cMjwHJLuu2RVPqoPQ1It{x^H2?|UJ~W)TVt7%Yfy*A2`t&r)s-QWdYo5VO zfx2S^6K9_+o1+cltr9N3VtC0fSCI)jm>k8WPw;rYk1pjtxFPWI@g=%zhP7m#Tok;J#*l_<-#L?=ht|XK3^r$>x z(&LygP`gKbB$x!w=IA`bGD9@2krkfT@Ew6m*4S1~@o<4U?UO@&j5qYTk|*uvUF5+B zkNhRK&%so0`3@t4ncBEJ2OAWkKbPYueDTVlB2Qc-a+*he5;20@i3x@4HV+<0V1oj4 zTw#3ofivG#+|^s$#XqTIdQp7#$eij6!Wevz?h~_%!z1=3#+8iN74UuT)Nghq^9Pr$ zn!Ph37wPP?1~Mr4pj02vQM2MO7xVZ!Lgs{`u*~_dN)+L?4`a$kZY{{Mxm0h=U9H3q zJcAapNR%L^c)d&ib$`t5me9e+3rjYv1F=wbXtYbur*(7|n7fWQV6S+YbbOXS=Ry~OPclE`?Y^`AF1|>2IX=74n5_h|KQc!M zWM=pA!na^~`RCHfp=L)%YOs>aMocJFAp1L@hAcs8?>FcNe)x}!FR_pI1roD|!W`8x zJ-Vc7tKmmri&KV#LTkECP}&3u1=cj30NoYhCL0yBIdj*j zi?9AE{>c}G=6tLI;|j74xUkig1S5$Pg+(7Yz97^&UNunY$&aa2nCcNi)Xn*=&~Fr& z0!{P8r?bA6q|W*_{+G|Iq$Xa}LqqzZIsMQg4;v%qQ|&z1r;3^^YS4%ZxCi??n&eu|A zOyK-r*r=aCs`|=k$S7ZV^JBhZQ*WkrWaj_P!lyA8oqu7qQTLG45}X{FWYme}WXy$p z&8Yv1R8`^aAP97Cf200po}_7C&_tQZF=RnDm!x-8Qeb$#N;B>}6Q)BeenKl!l@ybj z>V+}XZ44#qW#EjuUn_!d)SJ4+-;)-X0f8)+w#zNANy(Rbi&Cn1I}dWpwo!jJovp)3 z>4)+aT^*SCY@p0C?vOK4Pvi^bhtt*BpnuT(6th*XOvi`Tbu`r65P#=uq@HzD4>isg zQR}@(Le13^`Kg6cM%p`3zFgY#XS!J&8$x%s+H|LjS89^&k7to#Qw_4h=Ir&+79;*B zKqS|;zy9Sfe+d~2xJ>$J+;WSb6?LWO%+mF?o1_v0#m{pxd{~ zy#GG3g%VE*?jzR8n_tm(>x$`n*`PbOFoS|{12%z}p>SeWf%V(V2j+x3&jryLK@I~K zBq#Y~FMYnO9_Barg5UgC-AZ$f5$xjdN)X}_8IERoYhgltG)UW+ep#7dBi4XGA}I^h zI*k#LFO6{UWEsEc8q%Nm?BYUc{}7}8e2Tzbg zekq-mDQWRlUx^7XP?m~a>@+8Sn^Y9x^N%BeBxSM~?0HENN;hVDFZP)atrA){&8(X$ zqb!n7xQa>{*-+WinQy1ApbV&ZDy^~3M$u8ISh_KlLa1kIeoY}u@Wa6gRx(Z))ukxn zSZYB+`43Z{npyI9Oa9-IzrH;nerjq(#}2m7sN)JF^-?|1AEyEMmMI#q_>6IxVmyk^ zFbEo384!`jex|gGw_1F$TctPOW3)s^cm$}tAK|?J#(Ce5cbPZME-HM}Yy62J!|PX8 z$Ji+uo{zok1`+t`ekn84DGi~ZSj{R+*Y4cbVX@D^a1?)7AhVGYO3&+oyjr4Ph&Sk4 znZ?9lkxNSF)N!8sd6u%YNgVH6eW_MnDZGA*s>@!&^H!d1QIC%K6LQu|Xf&D19J~*q z*k7sXgaj(97px8CiKU)RRVzW&d=*-IupIg@)lzXr){ay0G`?WPs8~&8rgkS!>c}*? zaS|Mgluxn;mu3Y43(AVZ{QbwCL>E%>o%HT?#>DIhSDjmo!kk~S{Rpc;RgjdWm}Cq zW>YpbkN+|qLZ;aFCoNNy2fJfM3B|)PJBZBT5lXB#rii*^j6EyAJa(Y;2n$<5%+ivwXps-lBI}SZM0W59$XWGk`{V^wgT+BqlXH2*_Fjy6 zE;P8Sx4n=9LPNxl!FN|P`KB%nCGKjG0;cnxX`M$N-e*bu=F*P$3Z=~fUVN|j5pY$1 zsjpe;D_7Otf;uj0%RQ3jQC%|fJJK+cu+;(kGM;|D<2~$`JFO?wTl-+=8@>CRP}OlO z%z4S7rHoAZ@1zUUj}k=%6S4V{7!&VjA|k#g2hcO>$S4!;Fn;xfu$)gSMkK6D2Ek{^Q!XyF|n%RuY9h>T)K0eKkx8>Z;$zU>01BJorGfv zB?sKgx5g%hwD8!;#u5*JJxZx?)S zEO>)$)0T*_;N3``TsV473t|_S$I|(Bb83Tqat47LW&aTW9v=>hKEjw#4e#a8DLZi8 zY(5ib8xF6$u34|hc03iS!(LR?M6dZ_lQ-4^S#k8;a3YwK7;P-r$MFC{pi>5a*HMEg z_jx!k#xB^4)-e}h$B;l-h&8HP>W)_5rbu~BbL{!l&**5TfmFbz^Nb>^=0Xe|(MHrV zU$7P{!Ce1{mm>*<4T1nIq-zxrqAA=cD05GYNggqUuXU- z{XBwwA~C+mkBW-eSP=gzH+Ba657QqwmFcRY=f=W{MhxubXB+o-?A$QTj5Owoe(Nvm zj=gV>rPSHx%F?xVVS2p_uxw3r3FW#e75mIsII}x14c(ORDYLp zjb|MY+iE-=Y4n|SzAv^#o^sDRKR5Q~iU5{U`xV(kbLqd*PbaBkklV$cLqL`YTOxtP zRrxFf2(`GRynGlx+YMSOyX1hRi;72yTlrG09^5jhFlD* zPxuD`c*VynZ6nj-7DiEP}MHQrsDjGFG67y9Vy zyA-`$jz0*FfGtpOOaqWyA-yYvOrW|)tKikpiDrVFF;?3Yd5t~_iIqL1%dzyJy{pw> zjw_Pky9|R0s#;=dq4~xlbiW+yR>_nc^Xyv%V!jwJ{*=2w)#V(TH5M$@Y7PXZgeAt# zSR(qUv7jSZcJlDpVg53dpIBjeuq#%`38Cbe*X9q(u?O&e>rvM1k45TvUz~L3ER&vi zqyUx_O9*uduQRBV8NJWE{|f3i*PN7;@04z2>&4Pv$b2m_0+#n&fxL`(nWtR{E};>t zLgxL2lD2aLUyx0nP!)0F%;Z+U1;KR*?jc2_+xa?OF9NDv+_ZB)hec|k+#{us`JC`1 z&9BXk;pEM}pz-wRaJ*-LIB)*4f>HVLn+44N$He)Gvd?p^O{s(`6;)?Ps45jTKcFLB zsiO(Fp;8 z3eu%YDX{=sqcZ$b#Z@GP5+OX5>h&P0YjQ$9@JtoiA1d@kB+?VcHRPX&1Eeon_CfW} zD{FfOPTvMY{xu)#*(@238=ISdg1tdKc3bLYwJO*UY~gp*aY(IexymjI4LE6kP&F~7 z0Va!!)aS<2d@Z^E;j|CO{9MjczG69Ja~+K?22dVs ztsdZCk?#{M>I(bX;VClxgiTcRIKHPahPTeT2$xBP5ls^6im>u%YxSUM{!WUe%W*W- z<~Y>4aJ)U&zgXr~hzHH6?}AE)H> zq*SsXtCECXg1&88mGoDBx+;&ps>GCe*SXc4mmG3JC~v+j>WJ?>X;yf|`mpZ{_?XjQ zu<2m>R58@IbIoV|+={}=h6>aQ-LiL6N2!{f1J1_0160jOIbG6I_UBLFxh0bKclpAE zWd6w_2O);>nPpMm2l6G4wlDJoC8#Kp58^!-Y~t(kGWn<+t7<-9{(^>jo5%sMoiy=e z-9+}@*IKKfqpD#R`xS7xW88+VgI`DTf(;DMNcxZ8c$?t3thm%gX!#DFr9e^#&kkwq zjbEz)LQ-b2zx9;R)QE4N_e2i+LBr0bH={whb3`r;mFe0-u2($ zsb7fFe^&n~Zv8Y*kSmn;RDsmO>@&Hf09eeW6y(4)8>J^-k#y@A5;r-|6b z|Dz7a!{hL%xeQO}sQI$>R|E!VZ&TFVjU#Ln)(-mSQlKIKXpJeGV$Y;vw85D(bvJ+} zJBK2V^`bY6LGgcw4+_7tFd}6ybjD52yQy)D5^3U1bt`sL`WsH?kq)4`(&y?6SiSN! zG!MnmBR&+KU>AyInm&jpM~NsM@STbhSrE`->uF?X)z9a_c~kFWkr?%NU@N3Gn)k%_3^ML{7G;w_CxTwLkvWi< zQj}1#RYFNxp(?H2= z9Hep?xwf&%{J*npgWrc>-MD1n`#cJtBbH<7M*9%lWS08!rZh*&r#8_zqi!pPFa}?S zB$B8sLO8)BgVwx#Vsgkx#=V7;LO%aOHj~%J4Bl&DW^E6nFy38J5Xrl-%Up|tl~H#* z3zfsvMxBH(i0{Gmx|WoHxrVqce)EO+t^#B3Qc!~$a3MdLee)?#Dt;C)*MZc5Lvq@8 z4GI+R0&5Ya)w?xtxX-`iLqzvNUpi@ko0OYQ%6F6U(n)!468fF4E7wgLpp&{SH)Wts zao-08k{9jLMvL}>_#VT!=MqLI?0Y5bBVJnvBQfhh|J^~i#l&^%V7L6MTqAiEo#rXe zNZz8K@{Q!3`e}fXd_X@9oO!S+ZlxQQu3(VgTxHCa)1LyD7N$n=;-x4O2gh6*-<3ae zdU_}mQ=iP_Xf)qWcX^;1yv%Us56|m8oVjk2Go0>wUh+p@J428k?-?|^#qB<;RrlV~ zA5e{F>eHP{f5u7An|XV>vw8MUS)b7-%`WzlW^z@lMg@B0ZGUIF{rOq#A8w=@pB%r> zX<2T(CvWykZp-k@jP0*KrpsbMPfLeJU7j*HIAV4s8~iKcyM3`qVoos{wyC%$5zxxK#UwzpC(lupwtUEgn|zC46- z>QoHGd^s_7y~rQQiTDq%q`m{FuOK-+H&nHQ8qYAE4)x&0oq6M!OAmmvS=oEzonO<4 z+m@!pe@pi;y*SdilV{9L(nAeQFOxJd-5;$r{I&4+l=CiW?_)TQKso=!-=JMRJ#+ZG9Mk(E{$>L!f?iGKZ$5uJ`Ky7DF6J*i z{;og3WPGk)Gq?NAuhGy;S6bhN`k+fAY%X|{zqbjjU>$RXZ2ql4sT4(6c^0_kWq%&~ z$4gEvd#!tgGnT$j9V00JmiacW^;V6p^)RVXQg&GXlg{Qh?q8;l!+Jdcq<(W(vSQ$f z*OW7&+2!B)dcX*E_|4t^5!g;w`FFk%G(u|xzH@^Sdf8vL${7DS=1pV#ieOnc|9fpl zQXf8CL}bKDKD1i7;Lc`uV4t{l!G`AJbfYv?vF;%MNd864-s}rx%P7zxP8_! zx_1ZAyG=4)pZ#!ekGS$^yR=&$_Hdp5CMsrp5MCE-GT$!UVR3@-{}J~#@KF_4AAdp; z2pYVJf?`FDHYzA8)HfocEM#FEGYGbLR+8u$gWV865T{tudB4xYG0*~ZS{Hj z^wG9fP(%^}B&gMZs0b<%EZ(?k5tLUY|LZ^9*;=l0VyLt!~Lu^Q@6)zqij8FB?Qdt=adH!`SaltZErv ziU3`(tSa;3vkS~tXgJY5l#HQ)Xz>Pb`wRu=t!%nu8CIp6cynKF7HdbNx9;7NIrpSD zV7yqFwFen)de6I_@^bWTvWLb4^))m~-jE%ib<${>BGa7xUVs0ds2JSu^!l3n@>-k{ zDh`!n!aF1`q1P%#GSp;nVn{iIAF`Bu9Fo&S`60Gz%a7!jQ^+Q+;n~H0f0tjS#Cq#a zQGT(UCqT)hQ6%JeQE?RiSF09bBX_(72RGIYJEV;TRN!fL4p?K=v^k583c15RdCMX30xd|-4@ zDUV(*T+a15wEq0;D1347>gw&zLrsgJu1=@6sq1*4O`@YKsA}?I{9jI@Ty!*9ZJC6Z z$fUKl?UNe$UEcM3(HGk??nT~%LqWRCdhR8$tbqC3+e8Wi!CzxB?5MMr{nC@{o0ZDU z*%*nDrRc3u{+MVz6L@NJ8nhdI;&x|X<1}Y0?c2H<-Li8=tMfq9fYyxu6@BY)=ShsD z%1}MXeP&T{DBjNATCc-?3eh~e}tNz&Ov=lomQykUq7I`!(CUw8kIL>HVT{ zimy~cze8x)X>#g@++f3rSJ}>93F4qfgvrGAfKy)6Ql_6sOK<&LZf>sX?e!YCtJ66W zG*pZ#3twAYMfN&n=uV`=@-d}Kj<;Vd;js*Opb$`?I%(s-Jg~ z1HsWUvPT={{g2aZwjo!PP_jRVQThF)6%8VD;yIK3J`1{1CeFb7L=2$(j#xgtb z5qDZ?t(-IFQLuJ=D~0;_?(R1Q19cZvT^GABPbF}oc7}e7z8O1Nzs2Xr zj>E1BaiUmz;`6~r-JXGjtR%r~UzmCa1?4Y3VB16oW^V@GMc>{BrxrBGz%?)}}q( zYLXX(LoLBpb(gWMM~yxpxRCz^{MUuA#RCZ3CAC`H;4SI>8FOT8sPXboo)fvU2LPKb zS>EEH;9YEhHtRPTCOPG1{l*CDuDZJeH?fI2v@(@EsrfuZuj7c|!Pd-0D8`lw8m!eD zy)*bi_Keq4V_y?mDcGjaFc!aw=OCuG5sC4SRw~p;ZS}i1UvRNowk70pg3N!G;zIon zE~<}OC#B$!?gdX%F0DdVvfRZg_$`3k=;d1Thc? z=iaaja9}huIW%}tC^^%fFrW;{35&hsc+HEGnGb58an8W|{m0Az<-x_y8BOru$|mQ@ zrkdp0*v}9aY@Z@eG|1>th?k{NC3*`K377?;bGw1P+S-K{NPMQcIStwcj(@+jJG<~s z!$xjY^b=erJj2|>bX#7#m;`+Psx=VG4(Dp-y7FGt0Zq+QTHQeTp9@*qIrS@4&~B`w z6pO&8EGVpzJCrMUf4&e&#u}fJghI=(9H2*QpYeth>qS*kK}C>AJ}p=>?ZSOB*eH6; z$?hF#b53dH?Sw}B8y5<=1zfIw#tZK;964AZwq0AA>YZt;T3P=U@Q-@RE%|jrTDEC( z8twuXGn_&>!^w_@M&PZzc2^`hr|~IqVgoX<{q|a@?>hgpP9PABz`P2WcM9fK19K+- zUhf){Z$cw4r?m3H0;hkizy{()r=(}4U_r+C-!WD@R96%%=cf@muKsna|btO1!mdHcO$ey|M_Kv^yOfl>Q%A# z7oSL(sjn3gtBiXw>?+uSM5rahEDTjk%P@^1?zM`7CbQ8>{QaYn4h zbD=ZB$r}i9gLl?aQ&qNgjBnJBU#oA7I`fOojzgFohxa3i7xfi;e{~mp4WHoU0EB07 zX;bN%uv4?mKo)Q?PAJ@!I^rMzn&#*F3jp8Ag0H{eJ2jNplLeu!x*&SI-5Flh8T;rU zrKP@>ix9TSin|4YxOdI`Vz!elN;+(Bm15m5vx}E}2>kvxg$fBL3W(zc1a2(5P5%e# zh7?4Ppw}r20JechVRuS%Bsm6wUws!eLR@A)qxcYNKRR5!I@%j;mO+{jw$%qAT-d6U z8Con2^C)r#Ntd#9kJOEE-?4tgd#zDwKPH zWmoVH2A}Ob@K=*)li41dnen}cEYUhA;M8s^czMM9e#ap)VXWK?)BiA9$}$s0-OQIF zY;Y8|L+^=gkpb<4*P`J#F}~-J*s+$=4nV%u3-#=XRmI1h9;tpC3gAeX3POFDgn*53XRm`1QzG}F^|@BgsvGe&nZ}CkRd4(msvaUKvTLBDyosk{&NIaLmq;gp*6rxVo~@?!_yZYy#XD!r zI^1w7yquD~9)yzI;@dO)HzVI*?vGeFkL!2TN& ztQ9cyQWA(RL{>4P@gMrr3^PX=_gMUFwT+hbx|LF#yBp09lC~A-B-ly7YYZj-q5?um zvs14vaj*VNS|8s{4Uz^~CbBXilmZbaep^XaqDFYf(03q%9VU}w1x5>5Fto)*jbEx_ zV-dC8>q*rv?uBsh<8tU}{@o>NlpBd7zBU%JD*XV{dp$xr{EL2>j=f(E)Up5z1#JTg zQg1xa{jrc(9>=7P_wGN z!+ua+5JjKN!|33=hhJq?&6>JARl)LMz4ve!h|7cPk<&c1Jpzpp7GKdnFXV*JKNzas zT896WX7A^}F3H(JSfCMdnCZ-T%XIHB8j#CP;J>^-MDM-L=6fa0_(Pxij2-r!(F@@< zYSOu=4rrZs9>usLhXs<$N-Xdbn{kHQT*271<`MYk|WEBKI8cE1R~PVONP(9m~{=X zHEk_sfpS)?!@YGllvKTE=73P)s$6=JsewAWV$?R9hsmWpRK546t%+NQQ_@XO3enR< z@>cC>@G57%dVuo5O6v>8WsrWQdImY-QX8zr>q7y=6siK^bHd5VaxeHG)ra{^TNzqf z42P!5!__Ni9vN~+?iRQH8}Ud`F*7f9wx!l%vnpVOqwt$b{+4e~_%hI++P( z;Td_qGP0tU?)&cmsL0f}NL;#hcQ_dfVT>h%_K@{5^NvN0uf`3-s;SjHZ-L|39M~Vf z?VU?a1SUSomWWA-&9%Y%u`L^Hq@2Jq5nAeqkh|2pw)XR$oMLEePrt1)dha7g)!SF7 z7jpTLcXA#-y8Zn&(-X-M#YWO+CYaFgh#n_rICAnv-a7*(FcnN;ZGSye!3|6W991!3 zj&#iT&QAC8?hGZIDKa=Ulr(coC=uKiN(RgM^+JpLQmG^|?%Gigw0jrPM!0Fn6eDiB zJJu8E1so&!EPyuSWAJLmo(5`-l@OyBRPTzFL=sJ@v)Dz5BwEAHV~q*Sc0#*8VlGZ> zleYl$h`rh1wPBuNl*lj$SL2@eI;cT%%A;o$?HF-yo}&pRR^~G~_}h*JuEP`_-Q~aM z?T4v%vqWfE3*VoX^L;eO!`ObkC+BMD`Pv05aoGabYBRGYlQhAxza%stF7nJJzp|ht)g;eaHETx{_NVYCl^DVwfDB zCKAm>SPs3by%~6p$%jYps`8Q8^3^O7KQd{H#LWDVSKhv#<+V@mCaOF&Qi}?Fj13KX zf1;>>+k+L;vEk&^As;^aQ(IEkr(Z@tWKoCDwEFi>9;W9jGuhjbob642{N=&(^8?{I z+rX2D)RQPWUc{Q*Vzm84i_zYuMuSsZmyu`8_m*4S2&X{O8$FJHB)vTD(K33rD9oG0 zvoNs=uv6>tpRmHJ=^(F(D!li(WQ)w~|EfNGE%pH}+vlR(EWW+n%(L#u*-*kq zP_8-40av^1{?=vV48v6!74jVr-$I5dS+XUM4QKfM(du7>`AUt^M30uySX|4qF^z<- z@R32o*{ly$Nl$(6YF82kKsNK|m5;bt>P2yy{JiqL(SGUvd{klJ(^t>(RTeJc$22nY z{;hxV{z7^#|9gFE*DCdDwBc_yJ{{cUM7T?+rMsT9uiWnM$H!0!Xm1$#KfCx)YSj0I8?PMtpxZM*Yi3`S}r!T~& z5L?;$t-p%d*EEr}RQ}`eR2_2>960_A2YXdB;4NTaM60GPpAHQqE(QB*M#EuSB*Ho1| zahT4M<%VnZFjVYj$ygxl}&_`c5Q*2Jb=uX%6sG`_pi ziLWMssQ8xi`&D80f~vu56YIB)aQ=AqqS*3naz`#F%GS1~_7b+>jqq)@2?IkTRlR5a zIxHvb#OiqQ{6dp-i|5Ok6HiWdNZ5E|?bq2cn_i9YEsa%6C1P6T6Q5~Ud@sEG_0BMg zCTrrO zz{`yp{*Esp3wpPQTf89ARC7X8$UP5UU-pyOJKN&lD=##|Un{BH@!A<3V#Z33gH28B zI!^^oT-48-)-t*qO9U7o1t7VjIaIW`AbPQ{SPZ&9;7ox|Z!3Hh z2TWE)`j4&m{>B5w>xslA;AV`cD#D69Kmf78* zC7b>LzSWbb3+v_vX~iOmKT9Lye*0*~ByCo6>JET|Qh12ju63AQ$ zVp@zYPK+$JOmQ1$XQ`~9JJc(#*bt zJG~>ZoFi$NEw%+LI!%GjqDx9mU$)egS_*UNYdYCWnaxo=>ywOUpG*yYzBu-Ge2#s4i|u-* zo<5YVraKK|cnR7th-x*ydCr}+%I@A>B@{Y~+Ctx1JDqqTQ$vYp#Z;NTKvFdo{&(OQZbAEbqF=6FD*sGxU%gln)eE6Z^8X^_%U6wi>BMzOvpE2pN&& zwS)*BDQ!<{PG^2M34BjIg zt)CXC-sLoC?|d5j7f6T@Ca%}s|1ua;Piy>o-=s;I;j`aci;&378jx1I(q9I?h&Z+Q zuc8<<`h0Q*pDb?Y-g4#4&R`b8v^}UnuQnTfnEr51 zkD{d@;bzOk-@)T(b0V_YmT^+5E_B-BG9N%3M+h+DR zjj(l)`I7z2{;cjoZpnme(wgJ89R2+9AUm9RfxQF~=4Z)~`x6b%Fxhk3k~6QtkR0)T z$izfbza5q&xwlUg6XOjJ5j#AYR$^k*1F;RmEw~zC8$iUR zvqAN^H}-ZH8z>cojpCF!zEnNeZPry_bg7^$#(u?&+X1WC#c1V;>;lEusd-#al^87# z$1kWVh#n40DE?mp6A>o*{#K@T*&6oQ_YL(rzbQipICVgYM1?eT8JRtp7c?)G7ppN&^E#X1q2R@47otgH$H8ca^x zABca-fO(jg@g?IiQ!j}2jW3yK5><6eCM#hHHFc^R*VswKmCer+d&7-u5GCUJ#Lpj_ z=(@VSeUA(To%k>+3?<_#tJ+oW*b$-RpEc0fpHDpJ^=5sas){eUkGV;J{dg}+yJ=-g)jeuk0@qP^ow8cm|IZpjKIV&50A8a#=(viR>~?QUG-D1n`r zfVFvRU01hhVDEYj* z{Vq4g7j9eyq=OK}ZKnq7T!W-U!*@+~AtTWcReEGuqTx0YK0Xk?=DTrqJkfpJc+?~w zYzaO}_0+ilaw8Cr8<*QZP9q^V{vas{Z6p`kBwCD3-s7j3aoZaqXf}mBD}gXnbe1>! z)a*?t`D49HH!FDp2uYw%`IeK!q}-o(chAkk=p za=+0A)3(v3uQTnoxKz7^J=5+tOyXZ@_u`W??QW-#OuOp_WN&D<-lf}pKb)BWcTRA( z)1b)Sw&9=9aH9x_4`EctZ!Imt4kWq6et5soZu#T`9Ki#BxYb=E0&-`Txjz;Q_c{?m zFsgBvsK095hegxgA>XEW=dl%RdSXT=m#VH_41dvx#muje8 zdoe)@spMQ1(|XIod=Nj1Tot=Gb)ElBrmZz^`ig&(In}@G`zre$X}q|~s-+aEJK9g> zMHS{vlF{ue>ga*Yo}6+JMd)wdqIgMxw^^57_4yhLD=)SLxA7g8z!JOo`M8oF1Q<4U zbA`J+ew?RYM9uNOK9SYbrv?K?LxGN?k;ng@s-v9}^k?|)og|PXO(em9OB@{U=Y;Qp za8XQr2RT)zl*91f^H#9BGXo=bIma$B$2u+Xb``@Py_Fh{NTo)TX6Ttc2KKHK>vg92 z5T1j%Bg|%+4)OB3ZzHfx;@#9Cwh#!8IissqFe86vB(Bd0 zZ<2@+P-{Y~@eaf0)tkDWrcg2FFZc`&2_+_?9KoWlrCf$x-R#ut@(~AFaT1qTx4g*A z^HL;Z0=5-@1Vo3PR_9EtSF?~sm7Q4@`TJqo?}@*EqbBLF)s@fp)|ocP&X^XTGru5u zN+>yHzG;v6QmI)XVcPhX_XnG;hshShdjg^MMx)H|Hs20unf&nQpZtSZCL< z%3`bX+u6m=nUoe^($2LYYW9RLB*h9qX?6R(S`o%qO!rq>qQ8vp^ayFT(w0W0W<3n8 zn)>bj^NGzxtYid=|IN-_Gh8}k#dHIb>?UEji_3u9!%Ye9YLsNUOTz;XLYQv*3owdp`Y8| z@2mO2ExG^ljQlPdiV{~1M+am4v;SEMG#DLwp<;Prd=MK*Y??^&FEZzm=C2yQ7fJr1 z5pCJi9#z_12aX%_8cNvKOg=0&hAmB{)?vSR-Rcq_VhUGmH_;;shLJa>s;%zuPF^69 zuUFy8nX`>*V5j#9q)X022wr`onw7#hYvzpvo>abo8!S!4B}-Exg~j`m#4fRwcRayy zD6TWnbRtVZqP{_J%a#yBFDLeQw3wl!c@}npFyIE2Xig5PacXv(=*+L1K59^Lp^`dk zCzk>xGp$XeT<)|}!`*}SP7TrUO*A}83f*ANdJmad6)0%G!T9Ic?2VjCHOxA!G>_%l z%c*a+_eC*mmP&pCM5#kXuiR9#^r-2_7=crHuY5gr+qXV4VP($v&t38mS-i zwR%1=6`aKbTfx;-pyC?tq+>dM$7KO7?WXJ8z*Mk~&M3fWp%cmj!}&#Dgt{nxnq*a7;Pw{;jj3rg3Cya55byEV4AC5?hWtj8 zd!ofGm;idhL#5Dz_bd#J+(MXl2e}gs>qtUq=9?Syzq!MHbCj z|Mu+sw<~zdjPSh8G}_PPSr2mGgbPT)XHp0&3>k1Y^MHxrZ)`VOjozm&$N>{k8T^}XIdoqljk(~ZztNf zLwIYN_cJAIcP35FK5aIqy3^?YP)3{uDEh*?i?7v&Yiyy<_=OgADKzNUJ=6kdDogg6 z<>#JYa}W139hsNuQ9silnOnq;y-0G{lw3-^*z%c6a7q& zz|T}_GtKuit{2x>AQLCfoiiEjUPZ96CD6jjZKMOw+z6{nE%%CMvphM2%Ypn#GTHZm zi3tu)+Ktq-kBb-~Bh&Tb zr)Ab3<1)J5=tyG0Nn#!7HZjtJQmI9gw!f-vDs^!ARw_2JC~^8n{=%9lwDb96dDT#?`N3&R$XN zhq&gWK*Air!YZl_3#fFK9t!R&+%#F9}CFUjx)UN<>9YCZG zv&Lz{jO`zt$C5h&y7UiwK=yRi&)kRBQ(lexh>EQ#dPG$Rs^6FyMQlQ;{Tmt-beHOB zu=>-RtAmMm!ZY3wOksDaX%en=M721cQ@3{Sp*spUJ*~IipZAm$gl=!vv)bxUXRQg( z=rmsynXgP9Ev)V)TOi(`@(WW_4Iw^MZFLwy_>XE0Bz`Hd4UF}Z z4MntvX6!y#4X4@~)V#vQT+9(oU3NeYlt)a3t}<63j0re$ z>KjZNHSoux=;Tr<*o`*W3+yT}^o1VHJbk)=`n7-glihSq{8sFyfCLey#ym;69 z)>+N-yGbDq#Tc=o9z&#QJzU4yxT^rv%(Z8XdRq*Vd9V z&p7V8%O2&%8-%-&#L;=&5H)Vr$&0_DJP)s**)QPEy3Kwv>$_ohS)H;Mn(WcZwTXdM zVR!V9aH6Ja5Q$19nC3?JSE7={ASL>9WG6b4oqT{b!(v#jPguLWVIU?IlEu8j))FVN z-K#-KtHTG}k`1FW#NjlYz+)X7ar+8&R1Sey4w8Bao?n}IqDmY+>@Io`I926Qs&X9a z!%UUW(O2^HG`T~(3EV}*@%i;tA3!Ojk5*dZ3F)sW{db!_MrqByi_zX+6qr|E^|4;K z#D=TkED_9rlqe%HE|93Nl6XRTy3&stm_|$4pgP(nr9ZM}f4szG@tba&8y; zx7z67RyfmJsnNs9XR5T35q8ZX1p)V7y?s^)#hqvBZWenh)qSo}u;?o(*SUSdFGMPK zZWs8si;HzTdbV;(b4&U*rKP@AUD}7Bt~zCR$KIB%Xrd~bY>S%j7bR^rCExAeN~bM% zDs*w1yu#H|DKfh_4JW~p*o>S_33@$SukU!#tW4Qn1nW!n%5(UlV-HM%yf>P>zo^zY^4C1*-^lBzkuoBOYaUh^*Igwb)Q_S72~r? zdx7mG!p)5#tKaZD$|^zBO^Jpl$g7^kTS1Cp3xl7s zL~sQ^*dPXsQAEJ0S*4AP+D$a*IUtBS5)Je1%|df?x4AL6Pb3$Z z8v$}3Daw10AD=)hAb&E11RxC$TAkb9$%!pP!&^$1+u0MI$15-Fq7 z;zm8`U4|J+y1Pe{?ig*#Ixqi2v8DgUz=V&Hh|tQu>wOzII;s%019fwc0TYG_qTiRW z^gW143`kKGb$_+FkB$k%FDipRuxXx zSM3&V5m&sw^fD!zs4a_mSP+=U?t91aB!lj(QX+}ODgy3Y#%;8!%zK1=44`FH#~Z~p zoq4Z{t~vAe8OqUL5FWFbv_8bd(XX2^qlZ~Qe_;W29{YuP;q6B%b{<6=FlCjGiJX8EuK4_-4^B{2kW66PoD-Y}tov3Af%{FadH54XnW4fZ|tBlhMPL{g?u_AU!v)=f2+0{Z~Kt z!}+;q<>x-n&;5{}`!~uB&~E|sf8=BZIC{J%xi#%*A35MY;p63(b#R@h3Yd!I@T&e0 zz0^`7gU|e$6hX6$U!b|&HPpM`ASai4&!k-Cdw_gC^=iKLz9m2`^=kLnyTSq%Q8`_yH?_i+ zaT#TZ9yLje$h6f=-DmNQw5cedqyS#(=RV2g=HxqNwY&a(zM7x)M}F455{4*PJG#m( zF4z$E&6lmbKs3lL%Hw0jOHqX%VZ1jtH2WeK+#(*L&q^`-Xf=mB4^ zUT*t>D9|Xvc8ZhNKY?kr*EX%h)a!|w6>p=JhG>%Wsr>uEr%A3#4b&@5yN76Y)2x>2 zqe-ulcbQ2~BqBjk55;;#%t62H#HhBpy`C2%vvV|)KkGr!-jh$$K%E7PQ5)Yf>qXB{ zLv2C#`BJDQZj&E!&V?+6Wjs;+Xb0O{1ii(NIPfg9N@vIO7$AH9?V$@hoYr>HAE2*i z!!0z*`-yYwoYmb6gundj-XT)r-YNys!9Z@sTAw2T$;8Qe~XSu9cgx@JJym; z=Xltl<1fm+OsfxX?NeY|(##LYg+G(F=Y|&~Y8n<~Hs`hjJwZna7PcVb1h?hx%0({? zCOU}+Zq?XZr6iB9D(2*;&gd}l1m<;ciSuBG*K>=7E%qid6OIdYXlCYn598E?B4-&< z#mnrD_9;uW`+dcxeR$;cmXXmW7yzsku z_S{CG(jqumhx6KS)?4S}n8V6C)qO#2byF1c+0}}{O?u|vYwqgp)DTD8-%m@dsX4#5 z6YWWuhw4}HSA0n-!>kH3-aualifwkOQ#`zPuU;F#@ zCf)~H4(}r9RTzuhfrBTp7DJo7$6ZVlnj;tt0VrBS9S zRt2dAgg2f+Mnu4g#oxM5|>SqGRa zt@dA=Q5n-~8Q^3rUH*sHA=kH<>5TTuya+I;cwxoJ+!y`r3p>(sUpTy|TOza<5CXv+ z>Xgrur0A628`95!+IHgTw0YCf$IC2GK6`H%s@@pwZL|)OMi2j+v_dA%iTC0)`3e$W zpPPxl5s>MI!XV*K7CWXUu^FSF*M!f>qUkzy=CG|S%xkeoTpJW~SqUF`zt(w-ee4gS z=LVKR!8xa$O@qEZTcT%SXT+Ow*g27cw9RwdJ1n9K-wF?SGxi41Ve6f-;_xN{Wt#q^ ze-Y^t@e{S~@PcSJ;?~6Hh6-Z4%#(4%PlF=8@#dSH_F&H_l^WJ`%u4&r5STZ*Jd#`_ z@(|D3-Uu6prm))Zrjc$jx>TA-{!LynxkQRvxJQ#FI!c|T{d<#3-0e^Lo^MY*;M-O* z>)S{Cva~idV#=@eKolE7`L#NFgeZ0mwEaJ+!_w^~UPNQ;XVShDK>w=eV#*gpf6|0y z$Q{M|CQ-a`3iiJ8H+1@@P~v{Aj-H+_)EJz6@QM`vo4j))t;%HjnceZB%|b z(KX9!6zOCu5lB~a{sd=kc$XY0TeVo9LXK|k)c#-JLdJg9F*lboe173Qpb3)Q+Oh8% z$Iu)Hg^YiwtXZX_v?rQlxW$|@=oWs!5abW2ZSk> zMOZJBzc%r1fGEHC(9CH>5sb9+v(>PYCwF_>4=t3?tA73AmXd-oNwh-oIc?bbMuuMB zI`eSch%r8cKtVS-(GBT%r&%mih+%(2lzr}gn(kKUp&?I`8$XI*41x$2gk#@H{2G9BDHU7HF2 z{R+h>~%4*Z~Q$>}D8eBK6;((~(|@O|D?zZoxhu>Pa*LVOQ$ejArb@23bx43F!@ zOp>HIDGrrJ{i6U;o18U7yy|yM1bY1+yf!O;DW7BpkDg>S4rCX3>!42xIVFr!y3by! z`J!_TUUVBV$UMhLM5)V{&?}v(vEk(0+1@rdb2z!o%#qiT4!93_v?tZiWa6_U3?EVz zs(dijK~Wo{JqxqqtYrh!3@3J?h;;Qe9t9aoPPm+aKS8 zReOnjrYYBoZ_ObM1sNInak68QWjf@3O>?}T!h7{r!>@TMJ*l{+X7&{fV*2Cc9L^Xv zoH0PSkf7Z+OnuYt`=utSsKaeh(W@WSaAX z#(DFk+0GZotUT?1vlA(d56fJWQS4|+v*mbI`z;@0XxdR`{ z+>;`>=32td+3fO_!0+Q$BFW#6J=k>x`(sDy+Y0+$ADzogM2Wec7difxnf+||cL0`WILs4coIgdSWPQ6$BQ;rly z79qd`VW1!Mb~$Fwez?ZHVVw*zPvm@FEOy`Z&ZsD)M$W!4n&fuw0@bV{---_8l$z6m zE6lk}j}n1;FYZdE$?1PilC`o$@HHku&7f0q80#S$9cfdRw ziR0PR(h^6T!Ru6rheL0`>^CIB$bDXCI)~y*^+ADCKZZNzgiw50f7abR7-1f)V-?#* zj%N!f-W&e9^aP!r4sMs6DW)Ax&NFTR?1_*MwL;>TG7(Sp&o<4>|AFeaoVd;_Q~`7S z0v=HT?!4htX;#G6-k{-e3P`N48Ni~hp_Mcni-L-MJGmbO+z0Gt)V)%rc-Lxu?JiaA zxCbCH>1!g=MUv)Q@3L)rZ^{f8&Qk&50k%eB)R8q%_!fARdM)TaCWVUkpVbCwD}^oB zv?g4*!oa_at_jDN3El#yVF3Jv9T<5ZSU3U0^nda%D%c0byQa)IMO<3zKBlZ)NWPfL z49VM?GK5b^!5U|zSA#V#Wzlr?0DVWPLP$-bBXx|M)H`JFOZ@jC*Kd8N_rhD)8MT=9 z0&D@Mt|}(6$n>>^6Ma77$Z9Zof0G9HHIQD4(?3ijyp6rgSX*MkkEb?4R5J!xqS9{s zX-JeJxm+?Ga0SFUUYEJL{EsfL=<>DKO0xVimtNhHK7N@pMG*tK4vI*8BtpHKlp$0_ zfyMiwZkf>zM+Y(9nb_ZdQ>%}XSNdmQavE^e!bqblT-xFlt4i+yAd?5tNr~YkOb2>( z#KBDHh?1AWiA|U-XONI+b`25vbjY5Rh)WVJj8{DD7EMz&Ph@~cHiQ4fFB{3mR4l1I zdB3HJq|gRY>XrBG2jV!fr#V{oQImCt?1M>ZCB^Bdw9rSiS42ax_f{e4T@8V6*h|Z~ zhEiMPLc^JMDk@yq!tsQWL;s@E;4m;jxixYl?lKN|J63{c@4J_SmDH!GG(lcp}3V1*E|M;E5d~}Xy%_T~s4|{`YMB)!? z@Hc2wxNwtEh`kZpXvE>HLM%%nS$+9sdhKnW0b6Fd`5MPJIbLq6eQ*~Ukz?kvwEGruo-!qq>_^t6hw+Eca>bj5WGKV=V zk8MIX_voeI?PV^$e6R9rRX&%s(SXYDq=LXx1ys}v~ls59@KEPYT&XqItG8IZl)FrLVZ(EP?tIHF68!GMLY)LwXtPX zyPjkrZ$nPx_4!xtpFg)V)RZcpf4tohXekO&-CzC1iuXg+`3#pV$QD0p-&oboWo>k% zt+{h9?W5*wX48Kmw~YE(tai?&{#KGuWu2OsD4UmV;Rae5S8e~7S6f=2q58(FJ}zsc zAuXxOOTNmwjNe|P`OVg;BT9PT>GbE6vMC#OILp@*I{i006Sg?x*EpB2V=2}ZoU{Ktl(JAd`ae3dTGoFBp=C2OOn=a&b4cPTHI_S*9cwEAZgZSqio)HpMP7A{fXC`I?Crq zdUQ6W`p)my1FB%byu35^XIABD_|H;xXQ;XX`S6>*D7!P=897w-4zOqVCy?%pPIAsD zNwK(yopH-Rv9_?vtH~=5`YEQcisB5Ne30VUkG0Wb?fx0>)0I_Z3AjVr0S33<-wEQ& z@An29BFNIF84spC_Wd{i$@?GvllO1`llPo;5A_|SeuBwB$=(kQ<$nJArhoGOqkr-~ z@Okk0^?z>r{ZTiZu{JDstkoo%ybDaDl)5yNnx0AhAd|Y!q^2!+f!|m8Z|9$Fq)zss z4;XI*gR&UebO6L={QUp@K9Fe5fFS8A7pZo9m_YK+k4cvOQZyJGyf$^DPmf_XHY0^E zMG9XGSHnvX`#(4cy$760#dR5~4_7zG-c79(O=tMW^%_5181B+km7qa~_u#?5td${N zI(W66LsQ3gp{KL!<`)wbsEI>do+C)?vf?pFqfJe_%j3H>sW!%U-#%yK;yR#Ct%Ftm zvKCg^%B3qmzC!hLSsT4X^*5lNPuH)yHG`(gftN65W7E~0;1=IwYbzb*PqB@|G{eq$ zeX*wE6yEWks~Vr=lJ&>1y4oM8MlNfkH>k!V{2D{fGIr{iZ&fR$rcTanaY6p9O0(md zRiBFvU?P5zVYfciw6FBQ33*OSsHIu+cIw&m^n0lQnG&GEXpeeaAG)yz{oL9ArSC@K;E*YYl zujP`1f7Hc0qg>WTBWC{X_3%0~|MqF&Hw&TW-+p4o>z)2@GY4;B4&J~VoN^|-?~LEz zT>d6h)-S_b*HGK3s%?U)EjwRX{{ZTA>Td@w`1V=U6YF_P5ARB}eUPTK#Z9q_TiA(z zHSwGnLd9mi@R`Tx8gy|S7K;8XNCC{(cX3!|=iA!b>2Da9QoqWi?EI}~KQkjtsRFtP z06QW8*c$+mpgS?z?Oe}4b(y(a<1eGb?xRjBXN;9GSy%vzZ(&0>u^LdGqY?k{GL1O- z7M(vC^*B&#t@^9@Cmb?b%;~2U#SiGXi4Xx?z0_*uS)n}H-UT0;f5@+yf1*xIttiWU z^G@pito&@_cL`r3Fe|Z=w3X6xi~BrzePGL%k=Iqr37Q_kpPlGSZ~sUGELW1)Dt2P! z2j%~&m068EgG5c>Qq0Ha!ztu9ZUxbt`P-j<{qo}<)gepd%=GW6?0V3gmUq@hhgd1` zZGyzpWxY;VD{A(?=Rj2CCyusFA90%_6>iF9u0H)|*F)&4akJI=1{Y#q8oNc-KlRAl zsA+tD8*&e$3kn1CBS9ARV@lIEw5pLa5LdW~+V`EWjohw?J*XWACNxc}qDNTxZjORc&Xc{5yVxz>G-`hDQhS)#deuiaXXGK`Sx7JVHTV#u;nYV+sIITj|4pgV zx*c_#M&_8BIP2O3Kpv%;1QbNCX7S6e@*b>(Uneo6WYKj!3+{bJBYu52u_4^F`M7Z5 zhFSufG^H*IH|-r3EaVi;wx;&u0|S=V6uz7|_AWj^@QgRtbx1Fq3q9?dQ8LXhFmmns z2>XCd?Z-t5DSCOh>Aj1HbyeB4``DVownTH&mg5Jk4-__sXEfj2*;%Mpff*YGN?<^9 zU`>iw0qTidyF=$Zn_{+QirGCZw+zAxoU`NFo&|xX504(1>~|Kh)f6_fier{@?(Tp= zEm5*V@`?r%#v^HbA#{%_%wM9uZ=8p6 z5+p~8-{R{>)TMaOtR9;z?kQO+C#L=aD^ImZm^vK>jg?tGy+i76jo?7$annX5im$c= z|9Y$=)gl%JJ!w3#ep(x4KxHa8GD~!}e8!Vsey*^l@mu38>Nko(+%j!cq92B3Vk%84 zKPSGs!S8r8rbeg7)VGz0uj)p70%oQUJk<%ccl#I_{ux+CMlpui!Wkw1MF>0r8o742 zOft;i+a1QEz;9DcPNO&$W!TN+4>bL~)CaKRN(vOxPEi-;qJ;VDu$<8bkW!(%moYZV z=%?5{6OWse#>e+F_}G}ihlVslU=9lsKDJ(+1N%PP!TV6Rhnqg6gHx4F``|x2GJU)$ zJfo$E{Zq?-Hd+4D5?J&1Kw%3_Dvw;dB^OVAF~U=}4B=@e)q+gw!0qcDX@Q zZ-b`t+G-A6uYDal?`P=TVrYX?|Eq&z=*U3RW-zqDVCbYg4E=USNx?sCWj=UpVh>w) zmBCQC4_n98K885&+h8ce4;PK;%!naAdQutmbd{GP$*N1G&?JJ>!5QM`=r=!I`epgy zS%Q;E4$>WE)FnFj62?{|T}k(*_P#w^VIcQv(z6}=T#WTmTA#5t%Fs98Bixi+z@|#N zz5k#*q<+i!kR6d9M<6@qmA@igerA3U$$y85e{8b%a81aEPJ{pHDCafN@i4y~W0Plx zYZE&#k6ce^TsBFF-{clC~qHQmHbJYB*GkG!srO=?l5%X)##QECZb<t6V1=cI73LV zi=7$!WbIhUWk$))Z=}b2j=b^z9{>G0#UH?b2^H{isIVCsq{-`hc3nj5x6x<6=P5ic z@}xC08FOv#C(Q`HEN=uqGo$3f4BTIg#~y9~$@18n{SnMcB8x%zYvj(N91aV2MV|3Z zIdkQ6%U{n(_wOjvzxllN&!&HWa%H-If%E@6e)?6a?aEJcySy9}$k>Mt_mnRp88!cFgV6U$XJ{)5P%2j5S+d-0d$x91Gj z!QdrtVl$fu4;*p3b86Y0m|}6*`IRWua|FW8Y5g-=7R0qN9Df5o7`JOvN95_(j68VS z=gNZ|^#L<~C@l@9QmZ8m)~T$FJXqVMg2V0lC`TSN<>w9#BM*WAF(ahGAE%{3%FnZB z3p!V9q@5i0bR@~uvE#U|jhzA)jh)@`8wQG2$V-mwUZA(p%{ywiecaxzjlQniKELJG zaNU@)*Eo}3$7_-fJ?Xxq%x8@han6F}MkO@tHZpU6`u}p@@fwZH_Bis)kyoUNwzZZ$ zJ_N?v!slzXRC|vF+CCO&FV`4phGkQ*@O7-}wg;S3o3=Ywt)Ly?Xg%l7Pudum(PSmM zFI5U!lh;*}Ec$8^z3w3_pGs@uGLbe+#By(9o6~<4s;lKB`JL2)3hR|ZXF?nLwdIJT zJ;Lz(NcD2mf+Muql#yqERO05+86{^??3VxzKuY)`x21wlfC-4Ej&CvWbJq`v-95LF zTX;pNY>=U*)6m5AQO9XexFX)XBP2tSJq`Xo=?zLiTYHEzcAWV2?ENxhGLbv+%Smq+ z%2)Tvpz`#UjRuwHd_sglP&w>vdwCbYt5h97t|t>oz=H!%d!9 zFVqw^W)=*~fl1iZ<*GF_a;+M$1i+*p(7(>&gya-&em z_TNP1c;4y%3aFH-=T*@75}L@@oe3M9@h>=+KMy_)w;h|&EL?&BA*7bwV~|=&x6{Q! z>YrznTtx+67)k*88u{~@YpHjGS}fSscYK5Lg`H!^a%g~4e-W#B`nn{@9f+(yk9!6r z9I5tW|92Y*?M0qmCy_@lwsBMY@eXG)G9B5#Zm|a#{YCpZ;}v9n7rm*jQ}jzptkO$&vp)M^Pj-xcd8fc-mk6?)KN@ zdCT{I_PKg>oyxF{nAn!-W|}ndxi43w8R0Ke+AEZn9^gh#@P%Mfdp1&Q8zsC+30nk< zE)&^Mn7H}hfMu^r`jkR;{~LvDS0Ow8l>*d+k22ljOx&fCut}KMmMJZV{~cW7U#{NS zpq_EA=%jP@sSI5v?xCQ))1329*k7*erT_KUJV+wEV+}rJdxz~t8ZyaI-;__Y_|AOp;fOPsH`)uNzPy8ptR`f(1 zn#-)6t%LQ;<$&}hXm+Q#>JBbfeGH~|A|b>OhQ9c8C_YaK`_y?V1Y>&2>p`b~6AhoT zf(IY*z)VLU>*X`mb>&yc}@GzvNv09GNGr z)bp)8Ul(AF#EW;G%MF+PL@zkuN8;G4Jnxh|7GMo!1TtUvt{K~n)C&GL@wjGeG1tjs zyTdq$H6X@u-X}P~NvAJIXDw+Yu3a&sqz%W>jJWo))rxa?!A7gmm+FJ?`Tn*88-9I$ zLwv>-2GO}w%EHo7? zH5I($SJ2~2RA&wFDut#z1^GOPv`dpAu>BUxQQ~;#`S* zIO+N?39N0dx-Nq)V7(bgpj8AHXJW6_DEIk&!9Y6FKziwygER+QcG5?T`O<8_76KrK z4H&co=?g&%DTX!^PdeU0y48@`rOdD}4>Q}oV`kf5koODsFJ<3Ie!-hzU{>bb5AbtD zZM!?}rra!Zls+nLFL0gR?`3sa^8Lrvf91WtZ&#ar?zi{H-oX6=UQ}VP>%oBDr`!&f zaGT*7A3GC1amH_PF5e1kcwzq7{qw)qDI?K51Ci#O{n{(d>WY<>YCMY?SXuRY#QygA zJ2jc*SKR`w|N7knz2JnoWg0xuIiqMvh-_{-=oJzUT53(f2wdyo8|busq!u?M_=H~)QB-)f=-yoQ%k^^38w ziCx}@a0+5vuz~X-z7f`0FYqi&*NpvmZS^Nhbg%dp#zS(y?D@+K{BOvlp8yvdJ9H48 zHN0}>DeyLyo5$!UZ6zIFwLiYU$eFhb*2lZ6?YqZ~1+^`epvB(f8}S-iN0#`i&iMXf zXI`t#uE5h2)g^mPVzqbJ+kEj~IbZz5ez9CX2mRu^TlwO~^cR36PcT4|$LYbpcp9_O zjtkRY0F|**NtWo$g@b>g_;elkyx~)VODXm{+r1JsZI9OfnMWt;(bl|27wOTKwf?Iy-!tDJ#-4j(O-MXXR;{Leo{b=1Emc9QL_g#EGK4g0O^Zw4xWBDJ;|Ly!I z_`eNW!+fUmA^sK7@mzi*{Oi!r$@~}cY%Blxo_BuAufs3L$9Ddf-&y?6W;&zgNB-`!Fm3lD(P>)8{niY)@GJRpU+|jz=rrEsep%8t*Auo2ReOj3@k=6_bRW zF_2x$IFh%jG;Rbr4(o`!j|q1Xy*}Q_r2H&Mz-!v6pU8W~T2GeYev>*rmwhsxt^L-E zk?Orpy*9ISs6>hrEz|Ia-P=CFS7cGYo2MoEUBM^CBAtdaAl7ZW4p@sO;UInTFxZ;gBX3(<=siCClHAchJ1yZCug(xdtSm-0*8 z+y2HOYIAU^mM2kd;_rmA^6vhXJcK=5y29}l*t@+Iscw(0OZ^BU8P+6Gqc#KAXb*_>A=T(PW@2_!AHowV288lf-9y45*OT@?kw!v zOko<``RFLmEf3?D1NvX(F@<3cs-wc5Oqb}TR(SzP+7x@QDfVqS!9mJ0=uHF{%jHfd zmfrBs`u_&{U%Tk^|9htYN9Oc@unhxY!dL{;{m=QXTS7%Kx*so7f@=TOEB~eXzC#^f zTe!cr`fss~sh@V~_$*Odc>sSF1PQ0&Jf~t7@u_Fo_|)5pR9(ttY&n-J`f|CtlFPUH zbNSvN8>{+-6LJl>to;MF59ZtxqQ570g!~{k$ymF0JRO6(D*-ZskY-VCn4P{k_EECZ z9g8a59vg)}D4{hVZ7h5`qvyoua^C!z_ASwr8K!0^g%TVKJEq(nTdafR*$C8}9E!Jd z3Xuss;avuxIs4H*jJTH=-#NvcGG*o;1h0rz-==1O9u-O4I*90LZ3?Y$q(D4UF6?Lj zjBr$C2E5c)c^bozJh)z7aEXzXgsf@jv;NkX(Zrho5rmtu(KxnM`u@FFEnKoB~T^p}B*+_21Qml(nBlb}i|> zS0e8~JVLV{XXWwE=rQq&N;u4-QalI3B{;fG$%oVsM~-}%X}`u5qzg(r3oEZ_-S0NP_nD0mojHkE87n&hWj%4pU0!F}Zb?%V=P{$^9i{|oINr;&ei=Xujtguzz z5I(!cy`r>+7|k{Ax5{hW@Aa;6ukM>~{i*re9a|Z3$M(lDrufQW;#J&ax78G#{nJ3x z{=;e#dvHf-4HT9A6zj{mnj5z9VC8@&a&c^}ZkhuF8UqMJybU_F9~nOt?&Y;o<3zSi zt4W-FmGGD-BfQAy{xyl>2Qi>R2$<3si`&MHqH!Ff8*HV0W=5^1jc3zFT9qG+%G=*B zm%FCvg?tDq_csjpDZsYgyUX(Tp)l&c@b~rk{C)g=S^nNv{QWqesh9gq{TP*#!_*JWLz!KV=J5BK zVoU!)zqn3@jbH5^k;}!$xtCccenoMtCUGc4lNeb{_m75KPAb{>35Qg;=MhL~d&oJp z6$aeoO#w(wXf25yYS=jEQk14jJ$V%;MiR~DAK91Z^3UP$*n{xT0oVUy{;6d_9{*gA zJ%r((m9UsE&Oa+H|Lp5M$oIMYQ(bl#{IO-UiD;0+5_9ZB$EW8|M0jgu1}8kpFgrM* zeC>TsDB;*}LZSm%j`A5#;DoTXk{ce%A8?i*!U;>A{%!EIHC^q=BQE?=I*Xsd;Wq3T ziMm87ZG~>(c}3N)U<1lgQT1TjzUcV_ncPheq;8QzQLGC`Hua0K1(p;H2g(62BXehm z%d`a%cUC#h78hIti`qBR?e{x))CO$2oAw=ss%XVinkFPY3%WL_3A~s*;H}L+d4idfUSWTb`!X9OE8~4ZRo}s|5SO33}nO(n0 zCGX?#$os!yzsg*&kn*QI%4NdiN-gGceIu73Y-gy`N*wa2Gupjc^O*By(w)J3+Zi(v?{hmt_gy<<6TXn@3XghospO~IpiYG1G#gcy zc;3qkEJE6akROmm2=TmU%;SSm=jNa1BSiOI5i$n%&o51#ZxgCIL!IgQTJ7(pMtjR4 z-V7_u_}A(Eq2~Qs-utp+j?9^T|0lM54~P)y>xVm|13yQe2*h`nE*2XOI3pS}62t0d{wh4Eeyq<;hyWS&^7QcMh>YYY6 z5l#i^r8mM_YuG&!KUG|IIlSnwVB%9nnE8>qgL6eW!MbMX4Q)65K1Ix(?wk);9-p(W zAUaj6jpUq1P5O_+@ixyZRUJW)sBYa& z|4U`a&%|YD$7iNH6GW;=?@<5bt6RJ?dxNGNb(-X1mWwBgUQEZ1s1!f564D@ARqzyj zS>PST!(;5&;i&Zi=4mTl@lA)SD&f%qtC6W{q2q#qWp@x3L4_1=r>?H;{xYYUkF zit(+TL%NuB_rTCG#j)=N+#d*+v%W*u5QlEU3ts7iMMf_(kS7Ze!@L%=f{St3_7o0w zk1bHp+%XVNl#}8&c|W`h5suSgf@MR4>te@Kdbts|hSt6iJ5tRa5L^&y2`&T*A}g9# z#Gz6{a#U3!!-k_U#YAv_FeC><&Q*4U3vIG8l$i3Ukd1C_u~T0_uMsCbx%5V4OWZC{ z;5;61&(-QYfX}HWg;C|f#8wur-cWch0rR6@Hw5<=MdtDr@yycPrEZWm7uR97SrjUw zX4m9E3A8IzxJrtjOOm~pg_<@Og^MO|Fr%r_+r{^(-j^iL=FL{##QKV={}YBlsVMFq zN1Ny8jh+q2MyGKa?hg2mxO4hO3U?7%?HULY*Mk0$>K(BTWzvV~HtA5~Le%~^h!hIM zcys@7bqngM#m*fHOO+~cgD*(i`e(X=9w4lfTBdbdu#t``j47skV=`12a7Xn`Nh8#V z!d1>7++&fdI3(iCs}qgd2qwi;SYGl8rvWn)E{DNlaXhi)P42x)R}UvPYAlWaiOJA< zKzEB095|{|Zla$#TgPGXqXIRhFDp3rb!?6*%5!VhQQGt|b?5PH8my}!`!{g69B zzU$k44AA@C>HW%d??1(dDJ>-$>3!bBGH=G(ps=$O!DkF-7&Lfeo;ZhoO8w7igY^Gq zkSM7w)4eNh+Uy3OQG~qsoJIu0>la7QIADFt_m%ehwTikKZyp}5-W2PwAF4S9c$B6z z3*-&Ay52^-;(Qc2cPK`VTgy=gwPk@skkgC0^TPlgg)S)w0go!>mt{rAt0>-a@acGw zU$3Yxr0an`ZuPh9XCofr$R0>gJo;1Lkbc0p>HwN93+Ae3@()kvA4Du?vY`ds=`F=mF~?!U-;Ygf=VZIp-s7L0kNgYVFHWFXB>8k#Dy{NBvZ^r{ZJ zG+KKdOsIpdt6z2M*YFUo%VMh=YHz~ej)Y;DmDiABvj0Eqy$^g8)z$c&kPQS3&PD>p z8YI=IL9GqcDk)U6WS4AYS5QC_1>~uU)K;so3o0VPO@!%m+dOTlv{p-Nwe+c0+6v+y zAOR!+6aylnpalO;T(k%Z0hRo|=g#czY!d!x`##U_ecxw4pV^tYbN`-m?z#7#bMCov zz(_6+6csx&p+6ykD;OO%FBmPX@u1sazr7au5Wed%W{Y!jt@dM!2{(I0?bwk7u|7Ij!kyYuD2GGAvNk^hu@S9hg{`8fQNNU|7Wvi&7Z z(|%6ja?0wtiuJ|IXRuf&oWTeTR-!iVV3D;228*z5>|l|$c?XNQ?S{c{0;yAhL%(F# z=Ypr4@;7R67wzau{wCE;k-t&vi|kqtQ|Uzh_LQZ^_&B`CuD+YT(P1sH@F{|6VDRnmel;cNtIW**zfknyL zCN}v?wrdelMq8xB#N#iL8v_!NEONRBC2ePNS{sRz5l0562u!8_`|?IchgExxK%2`L z+m^L5tu!rd;5L7B7>@87-5ulmjR79^xR+~BY%=mAtku&u%2M5<=a>5pP0ybz2#_t~ z+hiMy0$xe|v|r;;dASX|uL&_7h_45rXXuH6SqREISOlSqy~YiLk%Uedj41SngOP zd!nA*;@T5m;HZIH!@x$*+{5al7TnCE2t$2ZVA~X*o;%ZTbkp;f_>JLN`miMynS~dJ zIbw%8(`Tf=(n{!Uop$dxh2Fjcy@A;dQ&(3n2KsNx--e#fNvy1Atn*&W-Rboi<=GvU zG{UbWPX1BWGnPcOI~ga}FB1QR>oQj6Z~BCKUz@}BVyMg&!fvbC+rj{XMRH7ng1`zJAKjLq}9vf z$sz5O{^XQ*9=7G3JN^}U=f>_%2pm`5DK;6FB!bmOM|o%Yn_bB}=iVbr5?kJR0Z}Z8 z(#Su`}sWeEg|>(1P3Y|B}=GfjxF~b-{O!gnTIkZ zONaf9&{qff=SMXA`0~#t3picNKi{BFb|L?qZ2`xUe-cN4gZxtkcPamzp9-AmyvKpF zi+P_@DE#V+7I2($Pyx>Im*f`MRe{cXTBWT{Fu

U?TZzYOFy^pEjuBdm5g@gq4 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%0AyW7B`UF!W_4acS4 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

{llM{SD0I^MOil)76tMseFM{LkT2gukUT_=hwY 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

#aApS%TLZsdEb%1(zd#{%4i3 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

Qn|i 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%0ACGU*S!S(8-U*;aLxBb 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

WjDR@Mbh`WK3_OtRE0wg0BRXr9Jf6@^oHDHV4pl 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�XKfe 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 b9wKwO!cZ>pK6l=ClR}2E`T(Z?{WtytI@(4X From d6734c85b8c58e035d01e8a6ed60f8fae50cf1de Mon Sep 17 00:00:00 2001 From: Tetralux Date: Mon, 12 Feb 2024 06:00:49 +0000 Subject: [PATCH 02/22] [os] Fix os.change_directory(), os.set_current_directory() - set_current_directory() was leaking the wstring path string because it wasn't using the temp allocator. - change_directory() wasn't calling SetCurrentDirectoryW() under the lock! --- core/os/file_windows.odin | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/core/os/file_windows.odin b/core/os/file_windows.odin index 831e9c38c..3efe30d17 100644 --- a/core/os/file_windows.odin +++ b/core/os/file_windows.odin @@ -394,7 +394,8 @@ get_current_directory :: proc(allocator := context.allocator) -> string { } set_current_directory :: proc(path: string) -> (err: Errno) { - wstr := win32.utf8_to_wstring(path) + runtime.DEFAULT_TEMP_ALLOCATOR_TEMP_GUARD() + wstr := win32.utf8_to_wstring(path, context.temp_allocator) win32.AcquireSRWLockExclusive(&cwd_lock) @@ -406,18 +407,7 @@ set_current_directory :: proc(path: string) -> (err: Errno) { return } - - - -change_directory :: proc(path: string) -> (err: Errno) { - runtime.DEFAULT_TEMP_ALLOCATOR_TEMP_GUARD() - wpath := win32.utf8_to_wstring(path, context.temp_allocator) - - if !win32.SetCurrentDirectoryW(wpath) { - err = Errno(win32.GetLastError()) - } - return -} +change_directory :: set_current_directory make_directory :: proc(path: string, mode: u32 = 0) -> (err: Errno) { runtime.DEFAULT_TEMP_ALLOCATOR_TEMP_GUARD() From 5f49b8997a495effd273fc90e1ae1fdf14c5000e Mon Sep 17 00:00:00 2001 From: Kay Date: Mon, 12 Feb 2024 01:45:11 -0600 Subject: [PATCH 03/22] remove return statement from case Type_Info_Enumerated_Array, as it causes early exit in JSON unmarshalling. --- core/encoding/json/unmarshal.odin | 1 - 1 file changed, 1 deletion(-) diff --git a/core/encoding/json/unmarshal.odin b/core/encoding/json/unmarshal.odin index 0a55bb553..3e978fe01 100644 --- a/core/encoding/json/unmarshal.odin +++ b/core/encoding/json/unmarshal.odin @@ -492,7 +492,6 @@ unmarshal_object :: proc(p: ^Parser, v: any, end_token: Token_Kind) -> (err: Unm } } - return nil case: return UNSUPPORTED_TYPE } From 5dd2e38affc90b075a19777b044f98489235f24a Mon Sep 17 00:00:00 2001 From: gingerBill Date: Mon, 12 Feb 2024 11:54:24 +0000 Subject: [PATCH 04/22] Change minor/adjoint to be `row, col` from `c, r` to be consistent with `[row, col]` syntax; Add `#no_bounds_check` were appropriate --- core/math/linalg/general.odin | 38 ++-- core/math/linalg/specific.odin | 306 ++++++++++++++++----------------- 2 files changed, 172 insertions(+), 172 deletions(-) diff --git a/core/math/linalg/general.odin b/core/math/linalg/general.odin index 4275dcb42..9d9309f12 100644 --- a/core/math/linalg/general.odin +++ b/core/math/linalg/general.odin @@ -296,7 +296,7 @@ angle_between :: proc{ // Splines @(require_results) -vector_slerp :: proc "contextless" (x, y: $T/[$N]$E, a: E) -> T { +vector_slerp :: proc "contextless" (x, y: $T/[$N]$E, a: E) -> T #no_bounds_check { cos_alpha := dot(x, y) alpha := math.acos(cos_alpha) sin_alpha := math.sin(alpha) @@ -308,7 +308,7 @@ vector_slerp :: proc "contextless" (x, y: $T/[$N]$E, a: E) -> T { } @(require_results) -catmull_rom :: proc "contextless" (v1, v2, v3, v4: $T/[$N]$E, s: E) -> T { +catmull_rom :: proc "contextless" (v1, v2, v3, v4: $T/[$N]$E, s: E) -> T #no_bounds_check { s2 := s*s s3 := s2*s @@ -321,7 +321,7 @@ catmull_rom :: proc "contextless" (v1, v2, v3, v4: $T/[$N]$E, s: E) -> T { } @(require_results) -hermite :: proc "contextless" (v1, t1, v2, t2: $T/[$N]$E, s: E) -> T { +hermite :: proc "contextless" (v1, t1, v2, t2: $T/[$N]$E, s: E) -> T #no_bounds_check { s2 := s*s s3 := s2*s @@ -334,7 +334,7 @@ hermite :: proc "contextless" (v1, t1, v2, t2: $T/[$N]$E, s: E) -> T { } @(require_results) -cubic :: proc "contextless" (v1, v2, v3, v4: $T/[$N]$E, s: E) -> T { +cubic :: proc "contextless" (v1, v2, v3, v4: $T/[$N]$E, s: E) -> T #no_bounds_check { return ((v1 * s + v2) * s + v3) * s + v4 } @@ -415,12 +415,12 @@ inverse :: proc{ } @(require_results) -hermitian_adjoint :: proc "contextless" (m: $M/matrix[$N, N]$T) -> M where intrinsics.type_is_complex(T), N >= 1 { +hermitian_adjoint :: proc "contextless" (m: $M/matrix[$N, N]$T) -> M where intrinsics.type_is_complex(T), N >= 1 #no_bounds_check { return conj(transpose(m)) } @(require_results) -trace :: proc "contextless" (m: $M/matrix[$N, N]$T) -> (trace: T) { +trace :: proc "contextless" (m: $M/matrix[$N, N]$T) -> (trace: T) #no_bounds_check { for i in 0.. (trace: T) { } @(require_results) -matrix_minor :: proc "contextless" (m: $M/matrix[$N, N]$T, #any_int row, column: int) -> (minor: T) where N > 1 { +matrix_minor :: proc "contextless" (m: $M/matrix[$N, N]$T, #any_int row, column: int) -> (minor: T) where N > 1 #no_bounds_check { K :: int(N-1) cut_down: matrix[K, K]T for col_idx in 0.. (det: T) { +matrix1x1_determinant :: proc "contextless" (m: $M/matrix[1, 1]$T) -> (det: T) #no_bounds_check { return m[0, 0] } @(require_results) -matrix2x2_determinant :: proc "contextless" (m: $M/matrix[2, 2]$T) -> (det: T) { +matrix2x2_determinant :: proc "contextless" (m: $M/matrix[2, 2]$T) -> (det: T) #no_bounds_check { return m[0, 0]*m[1, 1] - m[0, 1]*m[1, 0] } @(require_results) -matrix3x3_determinant :: proc "contextless" (m: $M/matrix[3, 3]$T) -> (det: T) { +matrix3x3_determinant :: proc "contextless" (m: $M/matrix[3, 3]$T) -> (det: T) #no_bounds_check { a := +m[0, 0] * (m[1, 1] * m[2, 2] - m[1, 2] * m[2, 1]) b := -m[0, 1] * (m[1, 0] * m[2, 2] - m[1, 2] * m[2, 0]) c := +m[0, 2] * (m[1, 0] * m[2, 1] - m[1, 1] * m[2, 0]) return a + b + c } @(require_results) -matrix4x4_determinant :: proc "contextless" (m: $M/matrix[4, 4]$T) -> (det: T) { +matrix4x4_determinant :: proc "contextless" (m: $M/matrix[4, 4]$T) -> (det: T) #no_bounds_check { a := adjugate(m) #no_bounds_check for i in 0..<4 { det += m[0, i] * a[0, i] @@ -472,13 +472,13 @@ matrix4x4_determinant :: proc "contextless" (m: $M/matrix[4, 4]$T) -> (det: T) { @(require_results) -matrix1x1_adjugate :: proc "contextless" (x: $M/matrix[1, 1]$T) -> (y: M) { +matrix1x1_adjugate :: proc "contextless" (x: $M/matrix[1, 1]$T) -> (y: M) #no_bounds_check { y = x return } @(require_results) -matrix2x2_adjugate :: proc "contextless" (x: $M/matrix[2, 2]$T) -> (y: M) { +matrix2x2_adjugate :: proc "contextless" (x: $M/matrix[2, 2]$T) -> (y: M) #no_bounds_check { y[0, 0] = +x[1, 1] y[0, 1] = -x[1, 0] y[1, 0] = -x[0, 1] @@ -487,7 +487,7 @@ matrix2x2_adjugate :: proc "contextless" (x: $M/matrix[2, 2]$T) -> (y: M) { } @(require_results) -matrix3x3_adjugate :: proc "contextless" (m: $M/matrix[3, 3]$T) -> (y: M) { +matrix3x3_adjugate :: proc "contextless" (m: $M/matrix[3, 3]$T) -> (y: M) #no_bounds_check { y[0, 0] = +(m[1, 1] * m[2, 2] - m[2, 1] * m[1, 2]) y[0, 1] = -(m[1, 0] * m[2, 2] - m[2, 0] * m[1, 2]) y[0, 2] = +(m[1, 0] * m[2, 1] - m[2, 0] * m[1, 1]) @@ -502,7 +502,7 @@ matrix3x3_adjugate :: proc "contextless" (m: $M/matrix[3, 3]$T) -> (y: M) { @(require_results) -matrix4x4_adjugate :: proc "contextless" (x: $M/matrix[4, 4]$T) -> (y: M) { +matrix4x4_adjugate :: proc "contextless" (x: $M/matrix[4, 4]$T) -> (y: M) #no_bounds_check { for i in 0..<4 { for j in 0..<4 { sign: T = 1 if (i + j) % 2 == 0 else -1 @@ -513,13 +513,13 @@ matrix4x4_adjugate :: proc "contextless" (x: $M/matrix[4, 4]$T) -> (y: M) { } @(require_results) -matrix1x1_inverse_transpose :: proc "contextless" (x: $M/matrix[1, 1]$T) -> (y: M) { +matrix1x1_inverse_transpose :: proc "contextless" (x: $M/matrix[1, 1]$T) -> (y: M) #no_bounds_check { y[0, 0] = 1/x[0, 0] return } @(require_results) -matrix2x2_inverse_transpose :: proc "contextless" (x: $M/matrix[2, 2]$T) -> (y: M) { +matrix2x2_inverse_transpose :: proc "contextless" (x: $M/matrix[2, 2]$T) -> (y: M) #no_bounds_check { d := x[0, 0]*x[1, 1] - x[0, 1]*x[1, 0] when intrinsics.type_is_integer(T) { y[0, 0] = +x[1, 1] / d @@ -582,13 +582,13 @@ matrix4x4_inverse_transpose :: proc "contextless" (x: $M/matrix[4, 4]$T) -> (y: } @(require_results) -matrix1x1_inverse :: proc "contextless" (x: $M/matrix[1, 1]$T) -> (y: M) { +matrix1x1_inverse :: proc "contextless" (x: $M/matrix[1, 1]$T) -> (y: M) #no_bounds_check { y[0, 0] = 1/x[0, 0] return } @(require_results) -matrix2x2_inverse :: proc "contextless" (x: $M/matrix[2, 2]$T) -> (y: M) { +matrix2x2_inverse :: proc "contextless" (x: $M/matrix[2, 2]$T) -> (y: M) #no_bounds_check { d := x[0, 0]*x[1, 1] - x[0, 1]*x[1, 0] when intrinsics.type_is_integer(T) { y[0, 0] = +x[1, 1] / d diff --git a/core/math/linalg/specific.odin b/core/math/linalg/specific.odin index 4a0f5ee40..0f26055bf 100644 --- a/core/math/linalg/specific.odin +++ b/core/math/linalg/specific.odin @@ -584,7 +584,7 @@ angle_axis_from_quaternion :: proc { @(require_results) -quaternion_from_forward_and_up_f16 :: proc "contextless" (forward, up: Vector3f16) -> Quaternionf16 { +quaternion_from_forward_and_up_f16 :: proc "contextless" (forward, up: Vector3f16) -> Quaternionf16 #no_bounds_check { f := normalize(forward) s := normalize(cross(f, up)) u := cross(s, f) @@ -628,7 +628,7 @@ quaternion_from_forward_and_up_f16 :: proc "contextless" (forward, up: Vector3f1 return normalize(q) } @(require_results) -quaternion_from_forward_and_up_f32 :: proc "contextless" (forward, up: Vector3f32) -> Quaternionf32 { +quaternion_from_forward_and_up_f32 :: proc "contextless" (forward, up: Vector3f32) -> Quaternionf32 #no_bounds_check { f := normalize(forward) s := normalize(cross(f, up)) u := cross(s, f) @@ -672,7 +672,7 @@ quaternion_from_forward_and_up_f32 :: proc "contextless" (forward, up: Vector3f3 return normalize(q) } @(require_results) -quaternion_from_forward_and_up_f64 :: proc "contextless" (forward, up: Vector3f64) -> Quaternionf64 { +quaternion_from_forward_and_up_f64 :: proc "contextless" (forward, up: Vector3f64) -> Quaternionf64 #no_bounds_check { f := normalize(forward) s := normalize(cross(f, up)) u := cross(s, f) @@ -886,7 +886,7 @@ quaternion_squad :: proc{ @(require_results) -quaternion_from_matrix4_f16 :: proc "contextless" (m: Matrix4f16) -> (q: Quaternionf16) { +quaternion_from_matrix4_f16 :: proc "contextless" (m: Matrix4f16) -> (q: Quaternionf16) #no_bounds_check { m3: Matrix3f16 = --- m3[0, 0], m3[1, 0], m3[2, 0] = m[0, 0], m[1, 0], m[2, 0] m3[0, 1], m3[1, 1], m3[2, 1] = m[0, 1], m[1, 1], m[2, 1] @@ -894,7 +894,7 @@ quaternion_from_matrix4_f16 :: proc "contextless" (m: Matrix4f16) -> (q: Quatern return quaternion_from_matrix3(m3) } @(require_results) -quaternion_from_matrix4_f32 :: proc "contextless" (m: Matrix4f32) -> (q: Quaternionf32) { +quaternion_from_matrix4_f32 :: proc "contextless" (m: Matrix4f32) -> (q: Quaternionf32) #no_bounds_check { m3: Matrix3f32 = --- m3[0, 0], m3[1, 0], m3[2, 0] = m[0, 0], m[1, 0], m[2, 0] m3[0, 1], m3[1, 1], m3[2, 1] = m[0, 1], m[1, 1], m[2, 1] @@ -902,7 +902,7 @@ quaternion_from_matrix4_f32 :: proc "contextless" (m: Matrix4f32) -> (q: Quatern return quaternion_from_matrix3(m3) } @(require_results) -quaternion_from_matrix4_f64 :: proc "contextless" (m: Matrix4f64) -> (q: Quaternionf64) { +quaternion_from_matrix4_f64 :: proc "contextless" (m: Matrix4f64) -> (q: Quaternionf64) #no_bounds_check { m3: Matrix3f64 = --- m3[0, 0], m3[1, 0], m3[2, 0] = m[0, 0], m[1, 0], m[2, 0] m3[0, 1], m3[1, 1], m3[2, 1] = m[0, 1], m[1, 1], m[2, 1] @@ -917,7 +917,7 @@ quaternion_from_matrix4 :: proc{ @(require_results) -quaternion_from_matrix3_f16 :: proc "contextless" (m: Matrix3f16) -> (q: Quaternionf16) { +quaternion_from_matrix3_f16 :: proc "contextless" (m: Matrix3f16) -> (q: Quaternionf16) #no_bounds_check { four_x_squared_minus_1 := m[0, 0] - m[1, 1] - m[2, 2] four_y_squared_minus_1 := m[1, 1] - m[0, 0] - m[2, 2] four_z_squared_minus_1 := m[2, 2] - m[0, 0] - m[1, 1] @@ -967,7 +967,7 @@ quaternion_from_matrix3_f16 :: proc "contextless" (m: Matrix3f16) -> (q: Quatern return } @(require_results) -quaternion_from_matrix3_f32 :: proc "contextless" (m: Matrix3f32) -> (q: Quaternionf32) { +quaternion_from_matrix3_f32 :: proc "contextless" (m: Matrix3f32) -> (q: Quaternionf32) #no_bounds_check { four_x_squared_minus_1 := m[0, 0] - m[1, 1] - m[2, 2] four_y_squared_minus_1 := m[1, 1] - m[0, 0] - m[2, 2] four_z_squared_minus_1 := m[2, 2] - m[0, 0] - m[1, 1] @@ -1017,7 +1017,7 @@ quaternion_from_matrix3_f32 :: proc "contextless" (m: Matrix3f32) -> (q: Quatern return } @(require_results) -quaternion_from_matrix3_f64 :: proc "contextless" (m: Matrix3f64) -> (q: Quaternionf64) { +quaternion_from_matrix3_f64 :: proc "contextless" (m: Matrix3f64) -> (q: Quaternionf64) #no_bounds_check { four_x_squared_minus_1 := m[0, 0] - m[1, 1] - m[2, 2] four_y_squared_minus_1 := m[1, 1] - m[0, 0] - m[2, 2] four_z_squared_minus_1 := m[2, 2] - m[0, 0] - m[1, 1] @@ -1147,7 +1147,7 @@ quaternion_between_two_vector3 :: proc{ @(require_results) -matrix2_inverse_transpose_f16 :: proc "contextless" (m: Matrix2f16) -> (c: Matrix2f16) { +matrix2_inverse_transpose_f16 :: proc "contextless" (m: Matrix2f16) -> (c: Matrix2f16) #no_bounds_check { d := m[0, 0]*m[1, 1] - m[0, 1]*m[1, 0] id := 1.0/d c[0, 0] = +m[1, 1] * id @@ -1157,7 +1157,7 @@ matrix2_inverse_transpose_f16 :: proc "contextless" (m: Matrix2f16) -> (c: Matri return c } @(require_results) -matrix2_inverse_transpose_f32 :: proc "contextless" (m: Matrix2f32) -> (c: Matrix2f32) { +matrix2_inverse_transpose_f32 :: proc "contextless" (m: Matrix2f32) -> (c: Matrix2f32) #no_bounds_check { d := m[0, 0]*m[1, 1] - m[0, 1]*m[1, 0] id := 1.0/d c[0, 0] = +m[1, 1] * id @@ -1167,7 +1167,7 @@ matrix2_inverse_transpose_f32 :: proc "contextless" (m: Matrix2f32) -> (c: Matri return c } @(require_results) -matrix2_inverse_transpose_f64 :: proc "contextless" (m: Matrix2f64) -> (c: Matrix2f64) { +matrix2_inverse_transpose_f64 :: proc "contextless" (m: Matrix2f64) -> (c: Matrix2f64) #no_bounds_check { d := m[0, 0]*m[1, 1] - m[0, 1]*m[1, 0] id := 1.0/d c[0, 0] = +m[1, 1] * id @@ -1184,15 +1184,15 @@ matrix2_inverse_transpose :: proc{ @(require_results) -matrix2_determinant_f16 :: proc "contextless" (m: Matrix2f16) -> f16 { +matrix2_determinant_f16 :: proc "contextless" (m: Matrix2f16) -> f16 #no_bounds_check { return m[0, 0]*m[1, 1] - m[0, 1]*m[1, 0] } @(require_results) -matrix2_determinant_f32 :: proc "contextless" (m: Matrix2f32) -> f32 { +matrix2_determinant_f32 :: proc "contextless" (m: Matrix2f32) -> f32 #no_bounds_check { return m[0, 0]*m[1, 1] - m[0, 1]*m[1, 0] } @(require_results) -matrix2_determinant_f64 :: proc "contextless" (m: Matrix2f64) -> f64 { +matrix2_determinant_f64 :: proc "contextless" (m: Matrix2f64) -> f64 #no_bounds_check { return m[0, 0]*m[1, 1] - m[0, 1]*m[1, 0] } matrix2_determinant :: proc{ @@ -1203,7 +1203,7 @@ matrix2_determinant :: proc{ @(require_results) -matrix2_inverse_f16 :: proc "contextless" (m: Matrix2f16) -> (c: Matrix2f16) { +matrix2_inverse_f16 :: proc "contextless" (m: Matrix2f16) -> (c: Matrix2f16) #no_bounds_check { d := m[0, 0]*m[1, 1] - m[0, 1]*m[1, 0] id := 1.0/d c[0, 0] = +m[1, 1] * id @@ -1213,7 +1213,7 @@ matrix2_inverse_f16 :: proc "contextless" (m: Matrix2f16) -> (c: Matrix2f16) { return c } @(require_results) -matrix2_inverse_f32 :: proc "contextless" (m: Matrix2f32) -> (c: Matrix2f32) { +matrix2_inverse_f32 :: proc "contextless" (m: Matrix2f32) -> (c: Matrix2f32) #no_bounds_check { d := m[0, 0]*m[1, 1] - m[0, 1]*m[1, 0] id := 1.0/d c[0, 0] = +m[1, 1] * id @@ -1223,7 +1223,7 @@ matrix2_inverse_f32 :: proc "contextless" (m: Matrix2f32) -> (c: Matrix2f32) { return c } @(require_results) -matrix2_inverse_f64 :: proc "contextless" (m: Matrix2f64) -> (c: Matrix2f64) { +matrix2_inverse_f64 :: proc "contextless" (m: Matrix2f64) -> (c: Matrix2f64) #no_bounds_check { d := m[0, 0]*m[1, 1] - m[0, 1]*m[1, 0] id := 1.0/d c[0, 0] = +m[1, 1] * id @@ -1240,7 +1240,7 @@ matrix2_inverse :: proc{ @(require_results) -matrix2_adjoint_f16 :: proc "contextless" (m: Matrix2f16) -> (c: Matrix2f16) { +matrix2_adjoint_f16 :: proc "contextless" (m: Matrix2f16) -> (c: Matrix2f16) #no_bounds_check { c[0, 0] = +m[1, 1] c[1, 0] = -m[0, 1] c[0, 1] = -m[1, 0] @@ -1248,7 +1248,7 @@ matrix2_adjoint_f16 :: proc "contextless" (m: Matrix2f16) -> (c: Matrix2f16) { return c } @(require_results) -matrix2_adjoint_f32 :: proc "contextless" (m: Matrix2f32) -> (c: Matrix2f32) { +matrix2_adjoint_f32 :: proc "contextless" (m: Matrix2f32) -> (c: Matrix2f32) #no_bounds_check { c[0, 0] = +m[1, 1] c[1, 0] = -m[0, 1] c[0, 1] = -m[1, 0] @@ -1256,7 +1256,7 @@ matrix2_adjoint_f32 :: proc "contextless" (m: Matrix2f32) -> (c: Matrix2f32) { return c } @(require_results) -matrix2_adjoint_f64 :: proc "contextless" (m: Matrix2f64) -> (c: Matrix2f64) { +matrix2_adjoint_f64 :: proc "contextless" (m: Matrix2f64) -> (c: Matrix2f64) #no_bounds_check { c[0, 0] = +m[1, 1] c[1, 0] = -m[0, 1] c[0, 1] = -m[1, 0] @@ -1308,7 +1308,7 @@ matrix2_rotate :: proc{ @(require_results) -matrix3_from_quaternion_f16 :: proc "contextless" (q: Quaternionf16) -> (m: Matrix3f16) { +matrix3_from_quaternion_f16 :: proc "contextless" (q: Quaternionf16) -> (m: Matrix3f16) #no_bounds_check { qxx := q.x * q.x qyy := q.y * q.y qzz := q.z * q.z @@ -1333,7 +1333,7 @@ matrix3_from_quaternion_f16 :: proc "contextless" (q: Quaternionf16) -> (m: Matr return m } @(require_results) -matrix3_from_quaternion_f32 :: proc "contextless" (q: Quaternionf32) -> (m: Matrix3f32) { +matrix3_from_quaternion_f32 :: proc "contextless" (q: Quaternionf32) -> (m: Matrix3f32) #no_bounds_check { qxx := q.x * q.x qyy := q.y * q.y qzz := q.z * q.z @@ -1358,7 +1358,7 @@ matrix3_from_quaternion_f32 :: proc "contextless" (q: Quaternionf32) -> (m: Matr return m } @(require_results) -matrix3_from_quaternion_f64 :: proc "contextless" (q: Quaternionf64) -> (m: Matrix3f64) { +matrix3_from_quaternion_f64 :: proc "contextless" (q: Quaternionf64) -> (m: Matrix3f64) #no_bounds_check { qxx := q.x * q.x qyy := q.y * q.y qzz := q.z * q.z @@ -1409,21 +1409,21 @@ matrix3_inverse :: proc{ @(require_results) -matrix3_determinant_f16 :: proc "contextless" (m: Matrix3f16) -> f16 { +matrix3_determinant_f16 :: proc "contextless" (m: Matrix3f16) -> f16 #no_bounds_check { a := +m[0, 0] * (m[1, 1] * m[2, 2] - m[1, 2] * m[2, 1]) b := -m[0, 1] * (m[1, 0] * m[2, 2] - m[1, 2] * m[2, 0]) c := +m[0, 2] * (m[1, 0] * m[2, 1] - m[1, 1] * m[2, 0]) return a + b + c } @(require_results) -matrix3_determinant_f32 :: proc "contextless" (m: Matrix3f32) -> f32 { +matrix3_determinant_f32 :: proc "contextless" (m: Matrix3f32) -> f32 #no_bounds_check { a := +m[0, 0] * (m[1, 1] * m[2, 2] - m[1, 2] * m[2, 1]) b := -m[0, 1] * (m[1, 0] * m[2, 2] - m[1, 2] * m[2, 0]) c := +m[0, 2] * (m[1, 0] * m[2, 1] - m[1, 1] * m[2, 0]) return a + b + c } @(require_results) -matrix3_determinant_f64 :: proc "contextless" (m: Matrix3f64) -> f64 { +matrix3_determinant_f64 :: proc "contextless" (m: Matrix3f64) -> f64 #no_bounds_check { a := +m[0, 0] * (m[1, 1] * m[2, 2] - m[1, 2] * m[2, 1]) b := -m[0, 1] * (m[1, 0] * m[2, 2] - m[1, 2] * m[2, 0]) c := +m[0, 2] * (m[1, 0] * m[2, 1] - m[1, 1] * m[2, 0]) @@ -1437,7 +1437,7 @@ matrix3_determinant :: proc{ @(require_results) -matrix3_adjoint_f16 :: proc "contextless" (m: Matrix3f16) -> (adjoint: Matrix3f16) { +matrix3_adjoint_f16 :: proc "contextless" (m: Matrix3f16) -> (adjoint: Matrix3f16) #no_bounds_check { adjoint[0, 0] = +(m[1, 1] * m[2, 2] - m[2, 1] * m[1, 2]) adjoint[0, 1] = -(m[1, 0] * m[2, 2] - m[2, 0] * m[1, 2]) adjoint[0, 2] = +(m[1, 0] * m[2, 1] - m[2, 0] * m[1, 1]) @@ -1450,7 +1450,7 @@ matrix3_adjoint_f16 :: proc "contextless" (m: Matrix3f16) -> (adjoint: Matrix3f1 return adjoint } @(require_results) -matrix3_adjoint_f32 :: proc "contextless" (m: Matrix3f32) -> (adjoint: Matrix3f32) { +matrix3_adjoint_f32 :: proc "contextless" (m: Matrix3f32) -> (adjoint: Matrix3f32) #no_bounds_check { adjoint[0, 0] = +(m[1, 1] * m[2, 2] - m[2, 1] * m[1, 2]) adjoint[0, 1] = -(m[1, 0] * m[2, 2] - m[2, 0] * m[1, 2]) adjoint[0, 2] = +(m[1, 0] * m[2, 1] - m[2, 0] * m[1, 1]) @@ -1463,7 +1463,7 @@ matrix3_adjoint_f32 :: proc "contextless" (m: Matrix3f32) -> (adjoint: Matrix3f3 return adjoint } @(require_results) -matrix3_adjoint_f64 :: proc "contextless" (m: Matrix3f64) -> (adjoint: Matrix3f64) { +matrix3_adjoint_f64 :: proc "contextless" (m: Matrix3f64) -> (adjoint: Matrix3f64) #no_bounds_check { adjoint[0, 0] = +(m[1, 1] * m[2, 2] - m[2, 1] * m[1, 2]) adjoint[0, 1] = -(m[1, 0] * m[2, 2] - m[2, 0] * m[1, 2]) adjoint[0, 2] = +(m[1, 0] * m[2, 1] - m[2, 0] * m[1, 1]) @@ -1503,21 +1503,21 @@ matrix3_inverse_transpose :: proc{ @(require_results) -matrix3_scale_f16 :: proc "contextless" (s: Vector3f16) -> (m: Matrix3f16) { +matrix3_scale_f16 :: proc "contextless" (s: Vector3f16) -> (m: Matrix3f16) #no_bounds_check { m[0, 0] = s[0] m[1, 1] = s[1] m[2, 2] = s[2] return m } @(require_results) -matrix3_scale_f32 :: proc "contextless" (s: Vector3f32) -> (m: Matrix3f32) { +matrix3_scale_f32 :: proc "contextless" (s: Vector3f32) -> (m: Matrix3f32) #no_bounds_check { m[0, 0] = s[0] m[1, 1] = s[1] m[2, 2] = s[2] return m } @(require_results) -matrix3_scale_f64 :: proc "contextless" (s: Vector3f64) -> (m: Matrix3f64) { +matrix3_scale_f64 :: proc "contextless" (s: Vector3f64) -> (m: Matrix3f64) #no_bounds_check { m[0, 0] = s[0] m[1, 1] = s[1] m[2, 2] = s[2] @@ -1531,7 +1531,7 @@ matrix3_scale :: proc{ @(require_results) -matrix3_rotate_f16 :: proc "contextless" (angle_radians: f16, v: Vector3f16) -> (rot: Matrix3f16) { +matrix3_rotate_f16 :: proc "contextless" (angle_radians: f16, v: Vector3f16) -> (rot: Matrix3f16) #no_bounds_check { c := math.cos(angle_radians) s := math.sin(angle_radians) @@ -1553,7 +1553,7 @@ matrix3_rotate_f16 :: proc "contextless" (angle_radians: f16, v: Vector3f16) -> return rot } @(require_results) -matrix3_rotate_f32 :: proc "contextless" (angle_radians: f32, v: Vector3f32) -> (rot: Matrix3f32) { +matrix3_rotate_f32 :: proc "contextless" (angle_radians: f32, v: Vector3f32) -> (rot: Matrix3f32) #no_bounds_check { c := math.cos(angle_radians) s := math.sin(angle_radians) @@ -1575,7 +1575,7 @@ matrix3_rotate_f32 :: proc "contextless" (angle_radians: f32, v: Vector3f32) -> return rot } @(require_results) -matrix3_rotate_f64 :: proc "contextless" (angle_radians: f64, v: Vector3f64) -> (rot: Matrix3f64) { +matrix3_rotate_f64 :: proc "contextless" (angle_radians: f64, v: Vector3f64) -> (rot: Matrix3f64) #no_bounds_check { c := math.cos(angle_radians) s := math.sin(angle_radians) @@ -1644,7 +1644,7 @@ matrix3_look_at :: proc{ @(require_results) -matrix4_from_quaternion_f16 :: proc "contextless" (q: Quaternionf16) -> (m: Matrix4f16) { +matrix4_from_quaternion_f16 :: proc "contextless" (q: Quaternionf16) -> (m: Matrix4f16) #no_bounds_check { qxx := q.x * q.x qyy := q.y * q.y qzz := q.z * q.z @@ -1672,7 +1672,7 @@ matrix4_from_quaternion_f16 :: proc "contextless" (q: Quaternionf16) -> (m: Matr return m } @(require_results) -matrix4_from_quaternion_f32 :: proc "contextless" (q: Quaternionf32) -> (m: Matrix4f32) { +matrix4_from_quaternion_f32 :: proc "contextless" (q: Quaternionf32) -> (m: Matrix4f32) #no_bounds_check { qxx := q.x * q.x qyy := q.y * q.y qzz := q.z * q.z @@ -1700,7 +1700,7 @@ matrix4_from_quaternion_f32 :: proc "contextless" (q: Quaternionf32) -> (m: Matr return m } @(require_results) -matrix4_from_quaternion_f64 :: proc "contextless" (q: Quaternionf64) -> (m: Matrix4f64) { +matrix4_from_quaternion_f64 :: proc "contextless" (q: Quaternionf64) -> (m: Matrix4f64) #no_bounds_check { qxx := q.x * q.x qyy := q.y * q.y qzz := q.z * q.z @@ -1783,37 +1783,37 @@ matrix4_inverse :: proc{ @(require_results) -matrix4_minor_f16 :: proc "contextless" (m: Matrix4f16, c, r: int) -> f16 { +matrix4_minor_f16 :: proc "contextless" (m: Matrix4f16, row, col: int) -> f16 #no_bounds_check { cut_down: Matrix3f16 - for i in 0..<3 { - col := i if i < c else i+1 - for j in 0..<3 { - row := j if j < r else j+1 - cut_down[i][j] = m[col][row] + for j in 0..<3 { + x := j if j < col else j+1 + for i in 0..<3 { + y := i if i < row else i+1 + cut_down[i, j] = m[x, y] } } return matrix3_determinant(cut_down) } @(require_results) -matrix4_minor_f32 :: proc "contextless" (m: Matrix4f32, c, r: int) -> f32 { +matrix4_minor_f32 :: proc "contextless" (m: Matrix4f32, row, col: int) -> f32 #no_bounds_check { cut_down: Matrix3f32 - for i in 0..<3 { - col := i if i < c else i+1 - for j in 0..<3 { - row := j if j < r else j+1 - cut_down[i][j] = m[col][row] + for j in 0..<3 { + x := j if j < col else j+1 + for i in 0..<3 { + y := i if i < row else i+1 + cut_down[i, j] = m[x, y] } } return matrix3_determinant(cut_down) } @(require_results) -matrix4_minor_f64 :: proc "contextless" (m: Matrix4f64, c, r: int) -> f64 { +matrix4_minor_f64 :: proc "contextless" (m: Matrix4f64, row, col: int) -> f64 #no_bounds_check { cut_down: Matrix3f64 - for i in 0..<3 { - col := i if i < c else i+1 - for j in 0..<3 { - row := j if j < r else j+1 - cut_down[i][j] = m[col][row] + for j in 0..<3 { + x := j if j < col else j+1 + for i in 0..<3 { + y := i if i < row else i+1 + cut_down[i, j] = m[x, y] } } return matrix3_determinant(cut_down) @@ -1826,24 +1826,24 @@ matrix4_minor :: proc{ @(require_results) -matrix4_cofactor_f16 :: proc "contextless" (m: Matrix4f16, c, r: int) -> f16 { +matrix4_cofactor_f16 :: proc "contextless" (m: Matrix4f16, row, col: int) -> f16 { sign, minor: f16 - sign = 1 if (c + r) % 2 == 0 else -1 - minor = matrix4_minor(m, c, r) + sign = 1 if (row + col) % 2 == 0 else -1 + minor = matrix4_minor(m, row, col) return sign * minor } @(require_results) -matrix4_cofactor_f32 :: proc "contextless" (m: Matrix4f32, c, r: int) -> f32 { +matrix4_cofactor_f32 :: proc "contextless" (m: Matrix4f32, row, col: int) -> f32 { sign, minor: f32 - sign = 1 if (c + r) % 2 == 0 else -1 - minor = matrix4_minor(m, c, r) + sign = 1 if (row + col) % 2 == 0 else -1 + minor = matrix4_minor(m, row, col) return sign * minor } @(require_results) -matrix4_cofactor_f64 :: proc "contextless" (m: Matrix4f64, c, r: int) -> f64 { +matrix4_cofactor_f64 :: proc "contextless" (m: Matrix4f64, row, col: int) -> f64 { sign, minor: f64 - sign = 1 if (c + r) % 2 == 0 else -1 - minor = matrix4_minor(m, c, r) + sign = 1 if (row + col) % 2 == 0 else -1 + minor = matrix4_minor(m, row, col) return sign * minor } matrix4_cofactor :: proc{ @@ -1854,28 +1854,28 @@ matrix4_cofactor :: proc{ @(require_results) -matrix4_adjoint_f16 :: proc "contextless" (m: Matrix4f16) -> (adjoint: Matrix4f16) { +matrix4_adjoint_f16 :: proc "contextless" (m: Matrix4f16) -> (adjoint: Matrix4f16) #no_bounds_check { for i in 0..<4 { for j in 0..<4 { - adjoint[i][j] = matrix4_cofactor(m, i, j) + adjoint[i, j] = matrix4_cofactor(m, i, j) } } return } @(require_results) -matrix4_adjoint_f32 :: proc "contextless" (m: Matrix4f32) -> (adjoint: Matrix4f32) { +matrix4_adjoint_f32 :: proc "contextless" (m: Matrix4f32) -> (adjoint: Matrix4f32) #no_bounds_check { for i in 0..<4 { for j in 0..<4 { - adjoint[i][j] = matrix4_cofactor(m, i, j) + adjoint[i, j] = matrix4_cofactor(m, i, j) } } return } @(require_results) -matrix4_adjoint_f64 :: proc "contextless" (m: Matrix4f64) -> (adjoint: Matrix4f64) { +matrix4_adjoint_f64 :: proc "contextless" (m: Matrix4f64) -> (adjoint: Matrix4f64) #no_bounds_check { for i in 0..<4 { for j in 0..<4 { - adjoint[i][j] = matrix4_cofactor(m, i, j) + adjoint[i, j] = matrix4_cofactor(m, i, j) } } return @@ -1888,26 +1888,26 @@ matrix4_adjoint :: proc{ @(require_results) -matrix4_determinant_f16 :: proc "contextless" (m: Matrix4f16) -> (determinant: f16) { +matrix4_determinant_f16 :: proc "contextless" (m: Matrix4f16) -> (determinant: f16) #no_bounds_check { adjoint := matrix4_adjoint(m) for i in 0..<4 { - determinant += m[i][0] * adjoint[i][0] + determinant += m[0, i] * adjoint[0, i] } return } @(require_results) -matrix4_determinant_f32 :: proc "contextless" (m: Matrix4f32) -> (determinant: f32) { +matrix4_determinant_f32 :: proc "contextless" (m: Matrix4f32) -> (determinant: f32) #no_bounds_check { adjoint := matrix4_adjoint(m) for i in 0..<4 { - determinant += m[i][0] * adjoint[i][0] + determinant += m[0, i] * adjoint[0, i] } return } @(require_results) -matrix4_determinant_f64 :: proc "contextless" (m: Matrix4f64) -> (determinant: f64) { +matrix4_determinant_f64 :: proc "contextless" (m: Matrix4f64) -> (determinant: f64) #no_bounds_check { adjoint := matrix4_adjoint(m) for i in 0..<4 { - determinant += m[i][0] * adjoint[i][0] + determinant += m[0, i] * adjoint[0, i] } return } @@ -1919,46 +1919,46 @@ matrix4_determinant :: proc{ @(require_results) -matrix4_inverse_transpose_f16 :: proc "contextless" (m: Matrix4f16) -> (inverse_transpose: Matrix4f16) { +matrix4_inverse_transpose_f16 :: proc "contextless" (m: Matrix4f16) -> (inverse_transpose: Matrix4f16) #no_bounds_check { adjoint := matrix4_adjoint(m) determinant: f16 = 0 for i in 0..<4 { - determinant += m[i][0] * adjoint[i][0] + determinant += m[0, i] * adjoint[0, i] } inv_determinant := 1.0 / determinant for i in 0..<4 { for j in 0..<4 { - inverse_transpose[i][j] = adjoint[i][j] * inv_determinant + inverse_transpose[i, j] = adjoint[i, j] * inv_determinant } } return } @(require_results) -matrix4_inverse_transpose_f32 :: proc "contextless" (m: Matrix4f32) -> (inverse_transpose: Matrix4f32) { +matrix4_inverse_transpose_f32 :: proc "contextless" (m: Matrix4f32) -> (inverse_transpose: Matrix4f32) #no_bounds_check { adjoint := matrix4_adjoint(m) determinant: f32 = 0 for i in 0..<4 { - determinant += m[i][0] * adjoint[i][0] + determinant += m[0, i] * adjoint[0, i] } inv_determinant := 1.0 / determinant for i in 0..<4 { for j in 0..<4 { - inverse_transpose[i][j] = adjoint[i][j] * inv_determinant + inverse_transpose[i, j] = adjoint[i, j] * inv_determinant } } return } @(require_results) -matrix4_inverse_transpose_f64 :: proc "contextless" (m: Matrix4f64) -> (inverse_transpose: Matrix4f64) { +matrix4_inverse_transpose_f64 :: proc "contextless" (m: Matrix4f64) -> (inverse_transpose: Matrix4f64) #no_bounds_check { adjoint := matrix4_adjoint(m) determinant: f64 = 0 for i in 0..<4 { - determinant += m[i][0] * adjoint[i][0] + determinant += m[0, i] * adjoint[0, i] } inv_determinant := 1.0 / determinant for i in 0..<4 { for j in 0..<4 { - inverse_transpose[i][j] = adjoint[i][j] * inv_determinant + inverse_transpose[i, j] = adjoint[i, j] * inv_determinant } } return @@ -1973,25 +1973,25 @@ matrix4_inverse_transpose :: proc{ @(require_results) matrix4_translate_f16 :: proc "contextless" (v: Vector3f16) -> Matrix4f16 { m := MATRIX4F16_IDENTITY - m[3][0] = v[0] - m[3][1] = v[1] - m[3][2] = v[2] + m[0, 3] = v[0] + m[1, 3] = v[1] + m[2, 3] = v[2] return m } @(require_results) matrix4_translate_f32 :: proc "contextless" (v: Vector3f32) -> Matrix4f32 { m := MATRIX4F32_IDENTITY - m[3][0] = v[0] - m[3][1] = v[1] - m[3][2] = v[2] + m[0, 3] = v[0] + m[1, 3] = v[1] + m[2, 3] = v[2] return m } @(require_results) matrix4_translate_f64 :: proc "contextless" (v: Vector3f64) -> Matrix4f64 { m := MATRIX4F64_IDENTITY - m[3][0] = v[0] - m[3][1] = v[1] - m[3][2] = v[2] + m[0, 3] = v[0] + m[1, 3] = v[1] + m[2, 3] = v[2] return m } matrix4_translate :: proc{ @@ -2002,85 +2002,85 @@ matrix4_translate :: proc{ @(require_results) -matrix4_rotate_f16 :: proc "contextless" (angle_radians: f16, v: Vector3f16) -> Matrix4f16 { +matrix4_rotate_f16 :: proc "contextless" (angle_radians: f16, v: Vector3f16) -> (rot: Matrix4f16) #no_bounds_check { c := math.cos(angle_radians) s := math.sin(angle_radians) a := normalize(v) t := a * (1-c) - rot := MATRIX4F16_IDENTITY + rot = 1 - rot[0][0] = c + t[0]*a[0] - rot[0][1] = 0 + t[0]*a[1] + s*a[2] - rot[0][2] = 0 + t[0]*a[2] - s*a[1] - rot[0][3] = 0 + rot[0, 0] = c + t[0]*a[0] + rot[1, 0] = 0 + t[0]*a[1] + s*a[2] + rot[2, 0] = 0 + t[0]*a[2] - s*a[1] + rot[3, 0] = 0 - rot[1][0] = 0 + t[1]*a[0] - s*a[2] - rot[1][1] = c + t[1]*a[1] - rot[1][2] = 0 + t[1]*a[2] + s*a[0] - rot[1][3] = 0 + rot[0, 1] = 0 + t[1]*a[0] - s*a[2] + rot[1, 1] = c + t[1]*a[1] + rot[2, 1] = 0 + t[1]*a[2] + s*a[0] + rot[3, 1] = 0 - rot[2][0] = 0 + t[2]*a[0] + s*a[1] - rot[2][1] = 0 + t[2]*a[1] - s*a[0] - rot[2][2] = c + t[2]*a[2] - rot[2][3] = 0 + rot[0, 2] = 0 + t[2]*a[0] + s*a[1] + rot[1, 2] = 0 + t[2]*a[1] - s*a[0] + rot[2, 2] = c + t[2]*a[2] + rot[3, 2] = 0 - return rot + return } @(require_results) -matrix4_rotate_f32 :: proc "contextless" (angle_radians: f32, v: Vector3f32) -> Matrix4f32 { +matrix4_rotate_f32 :: proc "contextless" (angle_radians: f32, v: Vector3f32) -> (rot: Matrix4f32) #no_bounds_check { c := math.cos(angle_radians) s := math.sin(angle_radians) a := normalize(v) t := a * (1-c) - rot := MATRIX4F32_IDENTITY + rot = 1 - rot[0][0] = c + t[0]*a[0] - rot[0][1] = 0 + t[0]*a[1] + s*a[2] - rot[0][2] = 0 + t[0]*a[2] - s*a[1] - rot[0][3] = 0 + rot[0, 0] = c + t[0]*a[0] + rot[1, 0] = 0 + t[0]*a[1] + s*a[2] + rot[2, 0] = 0 + t[0]*a[2] - s*a[1] + rot[3, 0] = 0 - rot[1][0] = 0 + t[1]*a[0] - s*a[2] - rot[1][1] = c + t[1]*a[1] - rot[1][2] = 0 + t[1]*a[2] + s*a[0] - rot[1][3] = 0 + rot[0, 1] = 0 + t[1]*a[0] - s*a[2] + rot[1, 1] = c + t[1]*a[1] + rot[2, 1] = 0 + t[1]*a[2] + s*a[0] + rot[3, 1] = 0 - rot[2][0] = 0 + t[2]*a[0] + s*a[1] - rot[2][1] = 0 + t[2]*a[1] - s*a[0] - rot[2][2] = c + t[2]*a[2] - rot[2][3] = 0 + rot[0, 2] = 0 + t[2]*a[0] + s*a[1] + rot[1, 2] = 0 + t[2]*a[1] - s*a[0] + rot[2, 2] = c + t[2]*a[2] + rot[3, 2] = 0 - return rot + return } @(require_results) -matrix4_rotate_f64 :: proc "contextless" (angle_radians: f64, v: Vector3f64) -> Matrix4f64 { +matrix4_rotate_f64 :: proc "contextless" (angle_radians: f64, v: Vector3f64) -> (rot: Matrix4f64) #no_bounds_check { c := math.cos(angle_radians) s := math.sin(angle_radians) a := normalize(v) t := a * (1-c) - rot := MATRIX4F64_IDENTITY + rot = 1 - rot[0][0] = c + t[0]*a[0] - rot[0][1] = 0 + t[0]*a[1] + s*a[2] - rot[0][2] = 0 + t[0]*a[2] - s*a[1] - rot[0][3] = 0 + rot[0, 0] = c + t[0]*a[0] + rot[1, 0] = 0 + t[0]*a[1] + s*a[2] + rot[2, 0] = 0 + t[0]*a[2] - s*a[1] + rot[3, 0] = 0 - rot[1][0] = 0 + t[1]*a[0] - s*a[2] - rot[1][1] = c + t[1]*a[1] - rot[1][2] = 0 + t[1]*a[2] + s*a[0] - rot[1][3] = 0 + rot[0, 1] = 0 + t[1]*a[0] - s*a[2] + rot[1, 1] = c + t[1]*a[1] + rot[2, 1] = 0 + t[1]*a[2] + s*a[0] + rot[3, 1] = 0 - rot[2][0] = 0 + t[2]*a[0] + s*a[1] - rot[2][1] = 0 + t[2]*a[1] - s*a[0] - rot[2][2] = c + t[2]*a[2] - rot[2][3] = 0 + rot[0, 2] = 0 + t[2]*a[0] + s*a[1] + rot[1, 2] = 0 + t[2]*a[1] - s*a[0] + rot[2, 2] = c + t[2]*a[2] + rot[3, 2] = 0 - return rot + return } matrix4_rotate :: proc{ matrix4_rotate_f16, @@ -2091,26 +2091,26 @@ matrix4_rotate :: proc{ @(require_results) matrix4_scale_f16 :: proc "contextless" (v: Vector3f16) -> (m: Matrix4f16) { - m[0][0] = v[0] - m[1][1] = v[1] - m[2][2] = v[2] - m[3][3] = 1 + m[0, 0] = v[0] + m[1, 1] = v[1] + m[2, 2] = v[2] + m[3, 3] = 1 return } @(require_results) matrix4_scale_f32 :: proc "contextless" (v: Vector3f32) -> (m: Matrix4f32) { - m[0][0] = v[0] - m[1][1] = v[1] - m[2][2] = v[2] - m[3][3] = 1 + m[0, 0] = v[0] + m[1, 1] = v[1] + m[2, 2] = v[2] + m[3, 3] = 1 return } @(require_results) matrix4_scale_f64 :: proc "contextless" (v: Vector3f64) -> (m: Matrix4f64) { - m[0][0] = v[0] - m[1][1] = v[1] - m[2][2] = v[2] - m[3][3] = 1 + m[0, 0] = v[0] + m[1, 1] = v[1] + m[2, 2] = v[2] + m[3, 3] = 1 return } matrix4_scale :: proc{ From 900fe95ba0b54dcc83ad2dbb2f16df8482135c61 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Mon, 12 Feb 2024 12:08:43 +0000 Subject: [PATCH 05/22] Split out `linalg.identity` between matrices and array-based matrix --- core/math/linalg/general.odin | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/core/math/linalg/general.odin b/core/math/linalg/general.odin index 9d9309f12..667546e78 100644 --- a/core/math/linalg/general.odin +++ b/core/math/linalg/general.odin @@ -172,13 +172,23 @@ projection :: proc "contextless" (x, normal: $T/[$N]$E) -> T where IS_NUMERIC(E) } @(require_results) -identity :: proc "contextless" ($T: typeid/[$N][N]$E) -> (m: T) #no_bounds_check { +identity_array_based_matrix :: proc "contextless" ($T: typeid/[$N][N]$E) -> (m: T) #no_bounds_check { for i in 0.. T #no_bounds_check { + return 1 +} + +identity :: proc{ + identity_array_based_matrix, + identity_matrix, +} + transpose :: intrinsics.transpose @(require_results) From c291fffce1972fcfc631dd4c6f623e3f5055f74b Mon Sep 17 00:00:00 2001 From: gingerBill Date: Mon, 12 Feb 2024 12:29:37 +0000 Subject: [PATCH 06/22] Add metadata type to `map`s debug information to aid debuggers knowing what is in it it --- src/check_type.cpp | 29 +++++++++++++++++++++++++++++ src/llvm_backend_debug.cpp | 2 +- src/types.cpp | 1 + 3 files changed, 31 insertions(+), 1 deletion(-) diff --git a/src/check_type.cpp b/src/check_type.cpp index d216ae3e6..5c70500d1 100644 --- a/src/check_type.cpp +++ b/src/check_type.cpp @@ -2265,6 +2265,35 @@ gb_internal void init_map_internal_types(Type *type) { GB_ASSERT(key != nullptr); GB_ASSERT(value != nullptr); + Scope *metadata_scope = create_scope(nullptr, nullptr); + + Type *metadata_type = alloc_type_struct(); + metadata_type->Struct.fields = slice_make(permanent_allocator(), 3); + metadata_type->Struct.fields[0] = alloc_entity_field(metadata_scope, make_token_ident("key"), key, false, 0, EntityState_Resolved); + metadata_type->Struct.fields[1] = alloc_entity_field(metadata_scope, make_token_ident("value"), value, false, 1, EntityState_Resolved); + metadata_type->Struct.fields[2] = alloc_entity_field(metadata_scope, make_token_ident("hash"), t_uintptr, false, 2, EntityState_Resolved); + metadata_type->Struct.scope = metadata_scope; + + gb_unused(type_size_of(metadata_type)); + + // NOTE(bill): [0]^struct{key: Key, value: Value, hash: uintptr} + // This is a zero array to a pointer to keep the alignment to that of a pointer, and not effective the size of the final struct + metadata_type = alloc_type_array(alloc_type_pointer(metadata_type), 0);; + + + Scope *scope = create_scope(nullptr, nullptr); + Type *debug_type = alloc_type_struct(); + debug_type->Struct.fields = slice_make(permanent_allocator(), 4); + debug_type->Struct.fields[0] = alloc_entity_field(scope, make_token_ident("data"), t_uintptr, false, 0, EntityState_Resolved); + debug_type->Struct.fields[1] = alloc_entity_field(scope, make_token_ident("len"), t_int, false, 1, EntityState_Resolved); + debug_type->Struct.fields[2] = alloc_entity_field(scope, make_token_ident("allocator"), t_allocator, false, 2, EntityState_Resolved); + debug_type->Struct.fields[3] = alloc_entity_field(scope, make_token_ident("__metadata"), metadata_type, false, 3, EntityState_Resolved); + debug_type->Struct.scope = scope; + + gb_unused(type_size_of(debug_type)); + + type->Map.debug_metadata_type = debug_type; + type->Map.lookup_result_type = make_optional_ok_type(value); } diff --git a/src/llvm_backend_debug.cpp b/src/llvm_backend_debug.cpp index e053c5b40..894c60729 100644 --- a/src/llvm_backend_debug.cpp +++ b/src/llvm_backend_debug.cpp @@ -710,7 +710,7 @@ gb_internal void lb_debug_complete_types(lbModule *m) { case Type_Map: GB_ASSERT(t_raw_map != nullptr); - bt = base_type(t_raw_map); + bt = base_type(t->Map.debug_metadata_type); /*fallthrough*/ case Type_Struct: if (file == nullptr) { diff --git a/src/types.cpp b/src/types.cpp index 8275b87ba..04fb06582 100644 --- a/src/types.cpp +++ b/src/types.cpp @@ -231,6 +231,7 @@ struct TypeProc { Type *key; \ Type *value; \ Type *lookup_result_type; \ + Type *debug_metadata_type; \ }) \ TYPE_KIND(Struct, TypeStruct) \ TYPE_KIND(Union, TypeUnion) \ From f378367fe72c12fccb19d32540fe86962967556e Mon Sep 17 00:00:00 2001 From: gingerBill Date: Mon, 12 Feb 2024 15:17:06 +0000 Subject: [PATCH 07/22] Store cell data in map debug metadata --- src/check_type.cpp | 38 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 36 insertions(+), 2 deletions(-) diff --git a/src/check_type.cpp b/src/check_type.cpp index 5c70500d1..01bb36255 100644 --- a/src/check_type.cpp +++ b/src/check_type.cpp @@ -2255,6 +2255,34 @@ gb_internal void map_cell_size_and_len(Type *type, i64 *size_, i64 *len_) { if (len_) *len_ = len; } +gb_internal Type *get_map_cell_type(Type *type) { + i64 size, len; + i64 elem_size = type_size_of(type); + map_cell_size_and_len(type, &size, &len); + + if (size == len*elem_size) { + return type; + } + + if (is_power_of_two(len)) { + return type; + } + + i64 padding = size - len*elem_size; + GB_ASSERT(padding > 0); + + // Padding exists + Type *s = alloc_type_struct(); + Scope *scope = create_scope(nullptr, nullptr); + s->Struct.fields = slice_make(permanent_allocator(), 2); + s->Struct.fields[0] = alloc_entity_field(scope, make_token_ident("v"), alloc_type_array(type, len), false, 0, EntityState_Resolved); + s->Struct.fields[1] = alloc_entity_field(scope, make_token_ident("_"), alloc_type_array(t_u8, padding), false, 1, EntityState_Resolved); + s->Struct.scope = scope; + gb_unused(type_size_of(s)); + + return s; +} + gb_internal void init_map_internal_types(Type *type) { GB_ASSERT(type->kind == Type_Map); GB_ASSERT(t_allocator != nullptr); @@ -2265,13 +2293,19 @@ gb_internal void init_map_internal_types(Type *type) { GB_ASSERT(key != nullptr); GB_ASSERT(value != nullptr); - Scope *metadata_scope = create_scope(nullptr, nullptr); + + + Type *key_cell = get_map_cell_type(key); + Type *value_cell = get_map_cell_type(value); Type *metadata_type = alloc_type_struct(); - metadata_type->Struct.fields = slice_make(permanent_allocator(), 3); + Scope *metadata_scope = create_scope(nullptr, nullptr); + metadata_type->Struct.fields = slice_make(permanent_allocator(), 5); metadata_type->Struct.fields[0] = alloc_entity_field(metadata_scope, make_token_ident("key"), key, false, 0, EntityState_Resolved); metadata_type->Struct.fields[1] = alloc_entity_field(metadata_scope, make_token_ident("value"), value, false, 1, EntityState_Resolved); metadata_type->Struct.fields[2] = alloc_entity_field(metadata_scope, make_token_ident("hash"), t_uintptr, false, 2, EntityState_Resolved); + metadata_type->Struct.fields[3] = alloc_entity_field(metadata_scope, make_token_ident("key_cell"), key_cell, false, 3, EntityState_Resolved); + metadata_type->Struct.fields[4] = alloc_entity_field(metadata_scope, make_token_ident("value_cell"), value_cell, false, 4, EntityState_Resolved); metadata_type->Struct.scope = metadata_scope; gb_unused(type_size_of(metadata_type)); From c0d407a2b44695c7550e363dc265e1036382b5c2 Mon Sep 17 00:00:00 2001 From: Lucas Perlind Date: Tue, 13 Feb 2024 10:13:34 +1100 Subject: [PATCH 08/22] Revert "Change minor/adjoint to be `row, col` from `c, r` to be consistent with `[row, col]` syntax; Add `#no_bounds_check` were appropriate" This reverts commit 5dd2e38affc90b075a19777b044f98489235f24a. --- core/math/linalg/general.odin | 38 ++-- core/math/linalg/specific.odin | 306 ++++++++++++++++----------------- 2 files changed, 172 insertions(+), 172 deletions(-) diff --git a/core/math/linalg/general.odin b/core/math/linalg/general.odin index 667546e78..3a4b43341 100644 --- a/core/math/linalg/general.odin +++ b/core/math/linalg/general.odin @@ -306,7 +306,7 @@ angle_between :: proc{ // Splines @(require_results) -vector_slerp :: proc "contextless" (x, y: $T/[$N]$E, a: E) -> T #no_bounds_check { +vector_slerp :: proc "contextless" (x, y: $T/[$N]$E, a: E) -> T { cos_alpha := dot(x, y) alpha := math.acos(cos_alpha) sin_alpha := math.sin(alpha) @@ -318,7 +318,7 @@ vector_slerp :: proc "contextless" (x, y: $T/[$N]$E, a: E) -> T #no_bounds_check } @(require_results) -catmull_rom :: proc "contextless" (v1, v2, v3, v4: $T/[$N]$E, s: E) -> T #no_bounds_check { +catmull_rom :: proc "contextless" (v1, v2, v3, v4: $T/[$N]$E, s: E) -> T { s2 := s*s s3 := s2*s @@ -331,7 +331,7 @@ catmull_rom :: proc "contextless" (v1, v2, v3, v4: $T/[$N]$E, s: E) -> T #no_bou } @(require_results) -hermite :: proc "contextless" (v1, t1, v2, t2: $T/[$N]$E, s: E) -> T #no_bounds_check { +hermite :: proc "contextless" (v1, t1, v2, t2: $T/[$N]$E, s: E) -> T { s2 := s*s s3 := s2*s @@ -344,7 +344,7 @@ hermite :: proc "contextless" (v1, t1, v2, t2: $T/[$N]$E, s: E) -> T #no_bounds_ } @(require_results) -cubic :: proc "contextless" (v1, v2, v3, v4: $T/[$N]$E, s: E) -> T #no_bounds_check { +cubic :: proc "contextless" (v1, v2, v3, v4: $T/[$N]$E, s: E) -> T { return ((v1 * s + v2) * s + v3) * s + v4 } @@ -425,12 +425,12 @@ inverse :: proc{ } @(require_results) -hermitian_adjoint :: proc "contextless" (m: $M/matrix[$N, N]$T) -> M where intrinsics.type_is_complex(T), N >= 1 #no_bounds_check { +hermitian_adjoint :: proc "contextless" (m: $M/matrix[$N, N]$T) -> M where intrinsics.type_is_complex(T), N >= 1 { return conj(transpose(m)) } @(require_results) -trace :: proc "contextless" (m: $M/matrix[$N, N]$T) -> (trace: T) #no_bounds_check { +trace :: proc "contextless" (m: $M/matrix[$N, N]$T) -> (trace: T) { for i in 0.. (trace: T) #no_bounds_che } @(require_results) -matrix_minor :: proc "contextless" (m: $M/matrix[$N, N]$T, #any_int row, column: int) -> (minor: T) where N > 1 #no_bounds_check { +matrix_minor :: proc "contextless" (m: $M/matrix[$N, N]$T, #any_int row, column: int) -> (minor: T) where N > 1 { K :: int(N-1) cut_down: matrix[K, K]T for col_idx in 0.. (det: T) #no_bounds_check { +matrix1x1_determinant :: proc "contextless" (m: $M/matrix[1, 1]$T) -> (det: T) { return m[0, 0] } @(require_results) -matrix2x2_determinant :: proc "contextless" (m: $M/matrix[2, 2]$T) -> (det: T) #no_bounds_check { +matrix2x2_determinant :: proc "contextless" (m: $M/matrix[2, 2]$T) -> (det: T) { return m[0, 0]*m[1, 1] - m[0, 1]*m[1, 0] } @(require_results) -matrix3x3_determinant :: proc "contextless" (m: $M/matrix[3, 3]$T) -> (det: T) #no_bounds_check { +matrix3x3_determinant :: proc "contextless" (m: $M/matrix[3, 3]$T) -> (det: T) { a := +m[0, 0] * (m[1, 1] * m[2, 2] - m[1, 2] * m[2, 1]) b := -m[0, 1] * (m[1, 0] * m[2, 2] - m[1, 2] * m[2, 0]) c := +m[0, 2] * (m[1, 0] * m[2, 1] - m[1, 1] * m[2, 0]) return a + b + c } @(require_results) -matrix4x4_determinant :: proc "contextless" (m: $M/matrix[4, 4]$T) -> (det: T) #no_bounds_check { +matrix4x4_determinant :: proc "contextless" (m: $M/matrix[4, 4]$T) -> (det: T) { a := adjugate(m) #no_bounds_check for i in 0..<4 { det += m[0, i] * a[0, i] @@ -482,13 +482,13 @@ matrix4x4_determinant :: proc "contextless" (m: $M/matrix[4, 4]$T) -> (det: T) # @(require_results) -matrix1x1_adjugate :: proc "contextless" (x: $M/matrix[1, 1]$T) -> (y: M) #no_bounds_check { +matrix1x1_adjugate :: proc "contextless" (x: $M/matrix[1, 1]$T) -> (y: M) { y = x return } @(require_results) -matrix2x2_adjugate :: proc "contextless" (x: $M/matrix[2, 2]$T) -> (y: M) #no_bounds_check { +matrix2x2_adjugate :: proc "contextless" (x: $M/matrix[2, 2]$T) -> (y: M) { y[0, 0] = +x[1, 1] y[0, 1] = -x[1, 0] y[1, 0] = -x[0, 1] @@ -497,7 +497,7 @@ matrix2x2_adjugate :: proc "contextless" (x: $M/matrix[2, 2]$T) -> (y: M) #no_bo } @(require_results) -matrix3x3_adjugate :: proc "contextless" (m: $M/matrix[3, 3]$T) -> (y: M) #no_bounds_check { +matrix3x3_adjugate :: proc "contextless" (m: $M/matrix[3, 3]$T) -> (y: M) { y[0, 0] = +(m[1, 1] * m[2, 2] - m[2, 1] * m[1, 2]) y[0, 1] = -(m[1, 0] * m[2, 2] - m[2, 0] * m[1, 2]) y[0, 2] = +(m[1, 0] * m[2, 1] - m[2, 0] * m[1, 1]) @@ -512,7 +512,7 @@ matrix3x3_adjugate :: proc "contextless" (m: $M/matrix[3, 3]$T) -> (y: M) #no_bo @(require_results) -matrix4x4_adjugate :: proc "contextless" (x: $M/matrix[4, 4]$T) -> (y: M) #no_bounds_check { +matrix4x4_adjugate :: proc "contextless" (x: $M/matrix[4, 4]$T) -> (y: M) { for i in 0..<4 { for j in 0..<4 { sign: T = 1 if (i + j) % 2 == 0 else -1 @@ -523,13 +523,13 @@ matrix4x4_adjugate :: proc "contextless" (x: $M/matrix[4, 4]$T) -> (y: M) #no_bo } @(require_results) -matrix1x1_inverse_transpose :: proc "contextless" (x: $M/matrix[1, 1]$T) -> (y: M) #no_bounds_check { +matrix1x1_inverse_transpose :: proc "contextless" (x: $M/matrix[1, 1]$T) -> (y: M) { y[0, 0] = 1/x[0, 0] return } @(require_results) -matrix2x2_inverse_transpose :: proc "contextless" (x: $M/matrix[2, 2]$T) -> (y: M) #no_bounds_check { +matrix2x2_inverse_transpose :: proc "contextless" (x: $M/matrix[2, 2]$T) -> (y: M) { d := x[0, 0]*x[1, 1] - x[0, 1]*x[1, 0] when intrinsics.type_is_integer(T) { y[0, 0] = +x[1, 1] / d @@ -592,13 +592,13 @@ matrix4x4_inverse_transpose :: proc "contextless" (x: $M/matrix[4, 4]$T) -> (y: } @(require_results) -matrix1x1_inverse :: proc "contextless" (x: $M/matrix[1, 1]$T) -> (y: M) #no_bounds_check { +matrix1x1_inverse :: proc "contextless" (x: $M/matrix[1, 1]$T) -> (y: M) { y[0, 0] = 1/x[0, 0] return } @(require_results) -matrix2x2_inverse :: proc "contextless" (x: $M/matrix[2, 2]$T) -> (y: M) #no_bounds_check { +matrix2x2_inverse :: proc "contextless" (x: $M/matrix[2, 2]$T) -> (y: M) { d := x[0, 0]*x[1, 1] - x[0, 1]*x[1, 0] when intrinsics.type_is_integer(T) { y[0, 0] = +x[1, 1] / d diff --git a/core/math/linalg/specific.odin b/core/math/linalg/specific.odin index 0f26055bf..4a0f5ee40 100644 --- a/core/math/linalg/specific.odin +++ b/core/math/linalg/specific.odin @@ -584,7 +584,7 @@ angle_axis_from_quaternion :: proc { @(require_results) -quaternion_from_forward_and_up_f16 :: proc "contextless" (forward, up: Vector3f16) -> Quaternionf16 #no_bounds_check { +quaternion_from_forward_and_up_f16 :: proc "contextless" (forward, up: Vector3f16) -> Quaternionf16 { f := normalize(forward) s := normalize(cross(f, up)) u := cross(s, f) @@ -628,7 +628,7 @@ quaternion_from_forward_and_up_f16 :: proc "contextless" (forward, up: Vector3f1 return normalize(q) } @(require_results) -quaternion_from_forward_and_up_f32 :: proc "contextless" (forward, up: Vector3f32) -> Quaternionf32 #no_bounds_check { +quaternion_from_forward_and_up_f32 :: proc "contextless" (forward, up: Vector3f32) -> Quaternionf32 { f := normalize(forward) s := normalize(cross(f, up)) u := cross(s, f) @@ -672,7 +672,7 @@ quaternion_from_forward_and_up_f32 :: proc "contextless" (forward, up: Vector3f3 return normalize(q) } @(require_results) -quaternion_from_forward_and_up_f64 :: proc "contextless" (forward, up: Vector3f64) -> Quaternionf64 #no_bounds_check { +quaternion_from_forward_and_up_f64 :: proc "contextless" (forward, up: Vector3f64) -> Quaternionf64 { f := normalize(forward) s := normalize(cross(f, up)) u := cross(s, f) @@ -886,7 +886,7 @@ quaternion_squad :: proc{ @(require_results) -quaternion_from_matrix4_f16 :: proc "contextless" (m: Matrix4f16) -> (q: Quaternionf16) #no_bounds_check { +quaternion_from_matrix4_f16 :: proc "contextless" (m: Matrix4f16) -> (q: Quaternionf16) { m3: Matrix3f16 = --- m3[0, 0], m3[1, 0], m3[2, 0] = m[0, 0], m[1, 0], m[2, 0] m3[0, 1], m3[1, 1], m3[2, 1] = m[0, 1], m[1, 1], m[2, 1] @@ -894,7 +894,7 @@ quaternion_from_matrix4_f16 :: proc "contextless" (m: Matrix4f16) -> (q: Quatern return quaternion_from_matrix3(m3) } @(require_results) -quaternion_from_matrix4_f32 :: proc "contextless" (m: Matrix4f32) -> (q: Quaternionf32) #no_bounds_check { +quaternion_from_matrix4_f32 :: proc "contextless" (m: Matrix4f32) -> (q: Quaternionf32) { m3: Matrix3f32 = --- m3[0, 0], m3[1, 0], m3[2, 0] = m[0, 0], m[1, 0], m[2, 0] m3[0, 1], m3[1, 1], m3[2, 1] = m[0, 1], m[1, 1], m[2, 1] @@ -902,7 +902,7 @@ quaternion_from_matrix4_f32 :: proc "contextless" (m: Matrix4f32) -> (q: Quatern return quaternion_from_matrix3(m3) } @(require_results) -quaternion_from_matrix4_f64 :: proc "contextless" (m: Matrix4f64) -> (q: Quaternionf64) #no_bounds_check { +quaternion_from_matrix4_f64 :: proc "contextless" (m: Matrix4f64) -> (q: Quaternionf64) { m3: Matrix3f64 = --- m3[0, 0], m3[1, 0], m3[2, 0] = m[0, 0], m[1, 0], m[2, 0] m3[0, 1], m3[1, 1], m3[2, 1] = m[0, 1], m[1, 1], m[2, 1] @@ -917,7 +917,7 @@ quaternion_from_matrix4 :: proc{ @(require_results) -quaternion_from_matrix3_f16 :: proc "contextless" (m: Matrix3f16) -> (q: Quaternionf16) #no_bounds_check { +quaternion_from_matrix3_f16 :: proc "contextless" (m: Matrix3f16) -> (q: Quaternionf16) { four_x_squared_minus_1 := m[0, 0] - m[1, 1] - m[2, 2] four_y_squared_minus_1 := m[1, 1] - m[0, 0] - m[2, 2] four_z_squared_minus_1 := m[2, 2] - m[0, 0] - m[1, 1] @@ -967,7 +967,7 @@ quaternion_from_matrix3_f16 :: proc "contextless" (m: Matrix3f16) -> (q: Quatern return } @(require_results) -quaternion_from_matrix3_f32 :: proc "contextless" (m: Matrix3f32) -> (q: Quaternionf32) #no_bounds_check { +quaternion_from_matrix3_f32 :: proc "contextless" (m: Matrix3f32) -> (q: Quaternionf32) { four_x_squared_minus_1 := m[0, 0] - m[1, 1] - m[2, 2] four_y_squared_minus_1 := m[1, 1] - m[0, 0] - m[2, 2] four_z_squared_minus_1 := m[2, 2] - m[0, 0] - m[1, 1] @@ -1017,7 +1017,7 @@ quaternion_from_matrix3_f32 :: proc "contextless" (m: Matrix3f32) -> (q: Quatern return } @(require_results) -quaternion_from_matrix3_f64 :: proc "contextless" (m: Matrix3f64) -> (q: Quaternionf64) #no_bounds_check { +quaternion_from_matrix3_f64 :: proc "contextless" (m: Matrix3f64) -> (q: Quaternionf64) { four_x_squared_minus_1 := m[0, 0] - m[1, 1] - m[2, 2] four_y_squared_minus_1 := m[1, 1] - m[0, 0] - m[2, 2] four_z_squared_minus_1 := m[2, 2] - m[0, 0] - m[1, 1] @@ -1147,7 +1147,7 @@ quaternion_between_two_vector3 :: proc{ @(require_results) -matrix2_inverse_transpose_f16 :: proc "contextless" (m: Matrix2f16) -> (c: Matrix2f16) #no_bounds_check { +matrix2_inverse_transpose_f16 :: proc "contextless" (m: Matrix2f16) -> (c: Matrix2f16) { d := m[0, 0]*m[1, 1] - m[0, 1]*m[1, 0] id := 1.0/d c[0, 0] = +m[1, 1] * id @@ -1157,7 +1157,7 @@ matrix2_inverse_transpose_f16 :: proc "contextless" (m: Matrix2f16) -> (c: Matri return c } @(require_results) -matrix2_inverse_transpose_f32 :: proc "contextless" (m: Matrix2f32) -> (c: Matrix2f32) #no_bounds_check { +matrix2_inverse_transpose_f32 :: proc "contextless" (m: Matrix2f32) -> (c: Matrix2f32) { d := m[0, 0]*m[1, 1] - m[0, 1]*m[1, 0] id := 1.0/d c[0, 0] = +m[1, 1] * id @@ -1167,7 +1167,7 @@ matrix2_inverse_transpose_f32 :: proc "contextless" (m: Matrix2f32) -> (c: Matri return c } @(require_results) -matrix2_inverse_transpose_f64 :: proc "contextless" (m: Matrix2f64) -> (c: Matrix2f64) #no_bounds_check { +matrix2_inverse_transpose_f64 :: proc "contextless" (m: Matrix2f64) -> (c: Matrix2f64) { d := m[0, 0]*m[1, 1] - m[0, 1]*m[1, 0] id := 1.0/d c[0, 0] = +m[1, 1] * id @@ -1184,15 +1184,15 @@ matrix2_inverse_transpose :: proc{ @(require_results) -matrix2_determinant_f16 :: proc "contextless" (m: Matrix2f16) -> f16 #no_bounds_check { +matrix2_determinant_f16 :: proc "contextless" (m: Matrix2f16) -> f16 { return m[0, 0]*m[1, 1] - m[0, 1]*m[1, 0] } @(require_results) -matrix2_determinant_f32 :: proc "contextless" (m: Matrix2f32) -> f32 #no_bounds_check { +matrix2_determinant_f32 :: proc "contextless" (m: Matrix2f32) -> f32 { return m[0, 0]*m[1, 1] - m[0, 1]*m[1, 0] } @(require_results) -matrix2_determinant_f64 :: proc "contextless" (m: Matrix2f64) -> f64 #no_bounds_check { +matrix2_determinant_f64 :: proc "contextless" (m: Matrix2f64) -> f64 { return m[0, 0]*m[1, 1] - m[0, 1]*m[1, 0] } matrix2_determinant :: proc{ @@ -1203,7 +1203,7 @@ matrix2_determinant :: proc{ @(require_results) -matrix2_inverse_f16 :: proc "contextless" (m: Matrix2f16) -> (c: Matrix2f16) #no_bounds_check { +matrix2_inverse_f16 :: proc "contextless" (m: Matrix2f16) -> (c: Matrix2f16) { d := m[0, 0]*m[1, 1] - m[0, 1]*m[1, 0] id := 1.0/d c[0, 0] = +m[1, 1] * id @@ -1213,7 +1213,7 @@ matrix2_inverse_f16 :: proc "contextless" (m: Matrix2f16) -> (c: Matrix2f16) #no return c } @(require_results) -matrix2_inverse_f32 :: proc "contextless" (m: Matrix2f32) -> (c: Matrix2f32) #no_bounds_check { +matrix2_inverse_f32 :: proc "contextless" (m: Matrix2f32) -> (c: Matrix2f32) { d := m[0, 0]*m[1, 1] - m[0, 1]*m[1, 0] id := 1.0/d c[0, 0] = +m[1, 1] * id @@ -1223,7 +1223,7 @@ matrix2_inverse_f32 :: proc "contextless" (m: Matrix2f32) -> (c: Matrix2f32) #no return c } @(require_results) -matrix2_inverse_f64 :: proc "contextless" (m: Matrix2f64) -> (c: Matrix2f64) #no_bounds_check { +matrix2_inverse_f64 :: proc "contextless" (m: Matrix2f64) -> (c: Matrix2f64) { d := m[0, 0]*m[1, 1] - m[0, 1]*m[1, 0] id := 1.0/d c[0, 0] = +m[1, 1] * id @@ -1240,7 +1240,7 @@ matrix2_inverse :: proc{ @(require_results) -matrix2_adjoint_f16 :: proc "contextless" (m: Matrix2f16) -> (c: Matrix2f16) #no_bounds_check { +matrix2_adjoint_f16 :: proc "contextless" (m: Matrix2f16) -> (c: Matrix2f16) { c[0, 0] = +m[1, 1] c[1, 0] = -m[0, 1] c[0, 1] = -m[1, 0] @@ -1248,7 +1248,7 @@ matrix2_adjoint_f16 :: proc "contextless" (m: Matrix2f16) -> (c: Matrix2f16) #no return c } @(require_results) -matrix2_adjoint_f32 :: proc "contextless" (m: Matrix2f32) -> (c: Matrix2f32) #no_bounds_check { +matrix2_adjoint_f32 :: proc "contextless" (m: Matrix2f32) -> (c: Matrix2f32) { c[0, 0] = +m[1, 1] c[1, 0] = -m[0, 1] c[0, 1] = -m[1, 0] @@ -1256,7 +1256,7 @@ matrix2_adjoint_f32 :: proc "contextless" (m: Matrix2f32) -> (c: Matrix2f32) #no return c } @(require_results) -matrix2_adjoint_f64 :: proc "contextless" (m: Matrix2f64) -> (c: Matrix2f64) #no_bounds_check { +matrix2_adjoint_f64 :: proc "contextless" (m: Matrix2f64) -> (c: Matrix2f64) { c[0, 0] = +m[1, 1] c[1, 0] = -m[0, 1] c[0, 1] = -m[1, 0] @@ -1308,7 +1308,7 @@ matrix2_rotate :: proc{ @(require_results) -matrix3_from_quaternion_f16 :: proc "contextless" (q: Quaternionf16) -> (m: Matrix3f16) #no_bounds_check { +matrix3_from_quaternion_f16 :: proc "contextless" (q: Quaternionf16) -> (m: Matrix3f16) { qxx := q.x * q.x qyy := q.y * q.y qzz := q.z * q.z @@ -1333,7 +1333,7 @@ matrix3_from_quaternion_f16 :: proc "contextless" (q: Quaternionf16) -> (m: Matr return m } @(require_results) -matrix3_from_quaternion_f32 :: proc "contextless" (q: Quaternionf32) -> (m: Matrix3f32) #no_bounds_check { +matrix3_from_quaternion_f32 :: proc "contextless" (q: Quaternionf32) -> (m: Matrix3f32) { qxx := q.x * q.x qyy := q.y * q.y qzz := q.z * q.z @@ -1358,7 +1358,7 @@ matrix3_from_quaternion_f32 :: proc "contextless" (q: Quaternionf32) -> (m: Matr return m } @(require_results) -matrix3_from_quaternion_f64 :: proc "contextless" (q: Quaternionf64) -> (m: Matrix3f64) #no_bounds_check { +matrix3_from_quaternion_f64 :: proc "contextless" (q: Quaternionf64) -> (m: Matrix3f64) { qxx := q.x * q.x qyy := q.y * q.y qzz := q.z * q.z @@ -1409,21 +1409,21 @@ matrix3_inverse :: proc{ @(require_results) -matrix3_determinant_f16 :: proc "contextless" (m: Matrix3f16) -> f16 #no_bounds_check { +matrix3_determinant_f16 :: proc "contextless" (m: Matrix3f16) -> f16 { a := +m[0, 0] * (m[1, 1] * m[2, 2] - m[1, 2] * m[2, 1]) b := -m[0, 1] * (m[1, 0] * m[2, 2] - m[1, 2] * m[2, 0]) c := +m[0, 2] * (m[1, 0] * m[2, 1] - m[1, 1] * m[2, 0]) return a + b + c } @(require_results) -matrix3_determinant_f32 :: proc "contextless" (m: Matrix3f32) -> f32 #no_bounds_check { +matrix3_determinant_f32 :: proc "contextless" (m: Matrix3f32) -> f32 { a := +m[0, 0] * (m[1, 1] * m[2, 2] - m[1, 2] * m[2, 1]) b := -m[0, 1] * (m[1, 0] * m[2, 2] - m[1, 2] * m[2, 0]) c := +m[0, 2] * (m[1, 0] * m[2, 1] - m[1, 1] * m[2, 0]) return a + b + c } @(require_results) -matrix3_determinant_f64 :: proc "contextless" (m: Matrix3f64) -> f64 #no_bounds_check { +matrix3_determinant_f64 :: proc "contextless" (m: Matrix3f64) -> f64 { a := +m[0, 0] * (m[1, 1] * m[2, 2] - m[1, 2] * m[2, 1]) b := -m[0, 1] * (m[1, 0] * m[2, 2] - m[1, 2] * m[2, 0]) c := +m[0, 2] * (m[1, 0] * m[2, 1] - m[1, 1] * m[2, 0]) @@ -1437,7 +1437,7 @@ matrix3_determinant :: proc{ @(require_results) -matrix3_adjoint_f16 :: proc "contextless" (m: Matrix3f16) -> (adjoint: Matrix3f16) #no_bounds_check { +matrix3_adjoint_f16 :: proc "contextless" (m: Matrix3f16) -> (adjoint: Matrix3f16) { adjoint[0, 0] = +(m[1, 1] * m[2, 2] - m[2, 1] * m[1, 2]) adjoint[0, 1] = -(m[1, 0] * m[2, 2] - m[2, 0] * m[1, 2]) adjoint[0, 2] = +(m[1, 0] * m[2, 1] - m[2, 0] * m[1, 1]) @@ -1450,7 +1450,7 @@ matrix3_adjoint_f16 :: proc "contextless" (m: Matrix3f16) -> (adjoint: Matrix3f1 return adjoint } @(require_results) -matrix3_adjoint_f32 :: proc "contextless" (m: Matrix3f32) -> (adjoint: Matrix3f32) #no_bounds_check { +matrix3_adjoint_f32 :: proc "contextless" (m: Matrix3f32) -> (adjoint: Matrix3f32) { adjoint[0, 0] = +(m[1, 1] * m[2, 2] - m[2, 1] * m[1, 2]) adjoint[0, 1] = -(m[1, 0] * m[2, 2] - m[2, 0] * m[1, 2]) adjoint[0, 2] = +(m[1, 0] * m[2, 1] - m[2, 0] * m[1, 1]) @@ -1463,7 +1463,7 @@ matrix3_adjoint_f32 :: proc "contextless" (m: Matrix3f32) -> (adjoint: Matrix3f3 return adjoint } @(require_results) -matrix3_adjoint_f64 :: proc "contextless" (m: Matrix3f64) -> (adjoint: Matrix3f64) #no_bounds_check { +matrix3_adjoint_f64 :: proc "contextless" (m: Matrix3f64) -> (adjoint: Matrix3f64) { adjoint[0, 0] = +(m[1, 1] * m[2, 2] - m[2, 1] * m[1, 2]) adjoint[0, 1] = -(m[1, 0] * m[2, 2] - m[2, 0] * m[1, 2]) adjoint[0, 2] = +(m[1, 0] * m[2, 1] - m[2, 0] * m[1, 1]) @@ -1503,21 +1503,21 @@ matrix3_inverse_transpose :: proc{ @(require_results) -matrix3_scale_f16 :: proc "contextless" (s: Vector3f16) -> (m: Matrix3f16) #no_bounds_check { +matrix3_scale_f16 :: proc "contextless" (s: Vector3f16) -> (m: Matrix3f16) { m[0, 0] = s[0] m[1, 1] = s[1] m[2, 2] = s[2] return m } @(require_results) -matrix3_scale_f32 :: proc "contextless" (s: Vector3f32) -> (m: Matrix3f32) #no_bounds_check { +matrix3_scale_f32 :: proc "contextless" (s: Vector3f32) -> (m: Matrix3f32) { m[0, 0] = s[0] m[1, 1] = s[1] m[2, 2] = s[2] return m } @(require_results) -matrix3_scale_f64 :: proc "contextless" (s: Vector3f64) -> (m: Matrix3f64) #no_bounds_check { +matrix3_scale_f64 :: proc "contextless" (s: Vector3f64) -> (m: Matrix3f64) { m[0, 0] = s[0] m[1, 1] = s[1] m[2, 2] = s[2] @@ -1531,7 +1531,7 @@ matrix3_scale :: proc{ @(require_results) -matrix3_rotate_f16 :: proc "contextless" (angle_radians: f16, v: Vector3f16) -> (rot: Matrix3f16) #no_bounds_check { +matrix3_rotate_f16 :: proc "contextless" (angle_radians: f16, v: Vector3f16) -> (rot: Matrix3f16) { c := math.cos(angle_radians) s := math.sin(angle_radians) @@ -1553,7 +1553,7 @@ matrix3_rotate_f16 :: proc "contextless" (angle_radians: f16, v: Vector3f16) -> return rot } @(require_results) -matrix3_rotate_f32 :: proc "contextless" (angle_radians: f32, v: Vector3f32) -> (rot: Matrix3f32) #no_bounds_check { +matrix3_rotate_f32 :: proc "contextless" (angle_radians: f32, v: Vector3f32) -> (rot: Matrix3f32) { c := math.cos(angle_radians) s := math.sin(angle_radians) @@ -1575,7 +1575,7 @@ matrix3_rotate_f32 :: proc "contextless" (angle_radians: f32, v: Vector3f32) -> return rot } @(require_results) -matrix3_rotate_f64 :: proc "contextless" (angle_radians: f64, v: Vector3f64) -> (rot: Matrix3f64) #no_bounds_check { +matrix3_rotate_f64 :: proc "contextless" (angle_radians: f64, v: Vector3f64) -> (rot: Matrix3f64) { c := math.cos(angle_radians) s := math.sin(angle_radians) @@ -1644,7 +1644,7 @@ matrix3_look_at :: proc{ @(require_results) -matrix4_from_quaternion_f16 :: proc "contextless" (q: Quaternionf16) -> (m: Matrix4f16) #no_bounds_check { +matrix4_from_quaternion_f16 :: proc "contextless" (q: Quaternionf16) -> (m: Matrix4f16) { qxx := q.x * q.x qyy := q.y * q.y qzz := q.z * q.z @@ -1672,7 +1672,7 @@ matrix4_from_quaternion_f16 :: proc "contextless" (q: Quaternionf16) -> (m: Matr return m } @(require_results) -matrix4_from_quaternion_f32 :: proc "contextless" (q: Quaternionf32) -> (m: Matrix4f32) #no_bounds_check { +matrix4_from_quaternion_f32 :: proc "contextless" (q: Quaternionf32) -> (m: Matrix4f32) { qxx := q.x * q.x qyy := q.y * q.y qzz := q.z * q.z @@ -1700,7 +1700,7 @@ matrix4_from_quaternion_f32 :: proc "contextless" (q: Quaternionf32) -> (m: Matr return m } @(require_results) -matrix4_from_quaternion_f64 :: proc "contextless" (q: Quaternionf64) -> (m: Matrix4f64) #no_bounds_check { +matrix4_from_quaternion_f64 :: proc "contextless" (q: Quaternionf64) -> (m: Matrix4f64) { qxx := q.x * q.x qyy := q.y * q.y qzz := q.z * q.z @@ -1783,37 +1783,37 @@ matrix4_inverse :: proc{ @(require_results) -matrix4_minor_f16 :: proc "contextless" (m: Matrix4f16, row, col: int) -> f16 #no_bounds_check { +matrix4_minor_f16 :: proc "contextless" (m: Matrix4f16, c, r: int) -> f16 { cut_down: Matrix3f16 - for j in 0..<3 { - x := j if j < col else j+1 - for i in 0..<3 { - y := i if i < row else i+1 - cut_down[i, j] = m[x, y] + for i in 0..<3 { + col := i if i < c else i+1 + for j in 0..<3 { + row := j if j < r else j+1 + cut_down[i][j] = m[col][row] } } return matrix3_determinant(cut_down) } @(require_results) -matrix4_minor_f32 :: proc "contextless" (m: Matrix4f32, row, col: int) -> f32 #no_bounds_check { +matrix4_minor_f32 :: proc "contextless" (m: Matrix4f32, c, r: int) -> f32 { cut_down: Matrix3f32 - for j in 0..<3 { - x := j if j < col else j+1 - for i in 0..<3 { - y := i if i < row else i+1 - cut_down[i, j] = m[x, y] + for i in 0..<3 { + col := i if i < c else i+1 + for j in 0..<3 { + row := j if j < r else j+1 + cut_down[i][j] = m[col][row] } } return matrix3_determinant(cut_down) } @(require_results) -matrix4_minor_f64 :: proc "contextless" (m: Matrix4f64, row, col: int) -> f64 #no_bounds_check { +matrix4_minor_f64 :: proc "contextless" (m: Matrix4f64, c, r: int) -> f64 { cut_down: Matrix3f64 - for j in 0..<3 { - x := j if j < col else j+1 - for i in 0..<3 { - y := i if i < row else i+1 - cut_down[i, j] = m[x, y] + for i in 0..<3 { + col := i if i < c else i+1 + for j in 0..<3 { + row := j if j < r else j+1 + cut_down[i][j] = m[col][row] } } return matrix3_determinant(cut_down) @@ -1826,24 +1826,24 @@ matrix4_minor :: proc{ @(require_results) -matrix4_cofactor_f16 :: proc "contextless" (m: Matrix4f16, row, col: int) -> f16 { +matrix4_cofactor_f16 :: proc "contextless" (m: Matrix4f16, c, r: int) -> f16 { sign, minor: f16 - sign = 1 if (row + col) % 2 == 0 else -1 - minor = matrix4_minor(m, row, col) + sign = 1 if (c + r) % 2 == 0 else -1 + minor = matrix4_minor(m, c, r) return sign * minor } @(require_results) -matrix4_cofactor_f32 :: proc "contextless" (m: Matrix4f32, row, col: int) -> f32 { +matrix4_cofactor_f32 :: proc "contextless" (m: Matrix4f32, c, r: int) -> f32 { sign, minor: f32 - sign = 1 if (row + col) % 2 == 0 else -1 - minor = matrix4_minor(m, row, col) + sign = 1 if (c + r) % 2 == 0 else -1 + minor = matrix4_minor(m, c, r) return sign * minor } @(require_results) -matrix4_cofactor_f64 :: proc "contextless" (m: Matrix4f64, row, col: int) -> f64 { +matrix4_cofactor_f64 :: proc "contextless" (m: Matrix4f64, c, r: int) -> f64 { sign, minor: f64 - sign = 1 if (row + col) % 2 == 0 else -1 - minor = matrix4_minor(m, row, col) + sign = 1 if (c + r) % 2 == 0 else -1 + minor = matrix4_minor(m, c, r) return sign * minor } matrix4_cofactor :: proc{ @@ -1854,28 +1854,28 @@ matrix4_cofactor :: proc{ @(require_results) -matrix4_adjoint_f16 :: proc "contextless" (m: Matrix4f16) -> (adjoint: Matrix4f16) #no_bounds_check { +matrix4_adjoint_f16 :: proc "contextless" (m: Matrix4f16) -> (adjoint: Matrix4f16) { for i in 0..<4 { for j in 0..<4 { - adjoint[i, j] = matrix4_cofactor(m, i, j) + adjoint[i][j] = matrix4_cofactor(m, i, j) } } return } @(require_results) -matrix4_adjoint_f32 :: proc "contextless" (m: Matrix4f32) -> (adjoint: Matrix4f32) #no_bounds_check { +matrix4_adjoint_f32 :: proc "contextless" (m: Matrix4f32) -> (adjoint: Matrix4f32) { for i in 0..<4 { for j in 0..<4 { - adjoint[i, j] = matrix4_cofactor(m, i, j) + adjoint[i][j] = matrix4_cofactor(m, i, j) } } return } @(require_results) -matrix4_adjoint_f64 :: proc "contextless" (m: Matrix4f64) -> (adjoint: Matrix4f64) #no_bounds_check { +matrix4_adjoint_f64 :: proc "contextless" (m: Matrix4f64) -> (adjoint: Matrix4f64) { for i in 0..<4 { for j in 0..<4 { - adjoint[i, j] = matrix4_cofactor(m, i, j) + adjoint[i][j] = matrix4_cofactor(m, i, j) } } return @@ -1888,26 +1888,26 @@ matrix4_adjoint :: proc{ @(require_results) -matrix4_determinant_f16 :: proc "contextless" (m: Matrix4f16) -> (determinant: f16) #no_bounds_check { +matrix4_determinant_f16 :: proc "contextless" (m: Matrix4f16) -> (determinant: f16) { adjoint := matrix4_adjoint(m) for i in 0..<4 { - determinant += m[0, i] * adjoint[0, i] + determinant += m[i][0] * adjoint[i][0] } return } @(require_results) -matrix4_determinant_f32 :: proc "contextless" (m: Matrix4f32) -> (determinant: f32) #no_bounds_check { +matrix4_determinant_f32 :: proc "contextless" (m: Matrix4f32) -> (determinant: f32) { adjoint := matrix4_adjoint(m) for i in 0..<4 { - determinant += m[0, i] * adjoint[0, i] + determinant += m[i][0] * adjoint[i][0] } return } @(require_results) -matrix4_determinant_f64 :: proc "contextless" (m: Matrix4f64) -> (determinant: f64) #no_bounds_check { +matrix4_determinant_f64 :: proc "contextless" (m: Matrix4f64) -> (determinant: f64) { adjoint := matrix4_adjoint(m) for i in 0..<4 { - determinant += m[0, i] * adjoint[0, i] + determinant += m[i][0] * adjoint[i][0] } return } @@ -1919,46 +1919,46 @@ matrix4_determinant :: proc{ @(require_results) -matrix4_inverse_transpose_f16 :: proc "contextless" (m: Matrix4f16) -> (inverse_transpose: Matrix4f16) #no_bounds_check { +matrix4_inverse_transpose_f16 :: proc "contextless" (m: Matrix4f16) -> (inverse_transpose: Matrix4f16) { adjoint := matrix4_adjoint(m) determinant: f16 = 0 for i in 0..<4 { - determinant += m[0, i] * adjoint[0, i] + determinant += m[i][0] * adjoint[i][0] } inv_determinant := 1.0 / determinant for i in 0..<4 { for j in 0..<4 { - inverse_transpose[i, j] = adjoint[i, j] * inv_determinant + inverse_transpose[i][j] = adjoint[i][j] * inv_determinant } } return } @(require_results) -matrix4_inverse_transpose_f32 :: proc "contextless" (m: Matrix4f32) -> (inverse_transpose: Matrix4f32) #no_bounds_check { +matrix4_inverse_transpose_f32 :: proc "contextless" (m: Matrix4f32) -> (inverse_transpose: Matrix4f32) { adjoint := matrix4_adjoint(m) determinant: f32 = 0 for i in 0..<4 { - determinant += m[0, i] * adjoint[0, i] + determinant += m[i][0] * adjoint[i][0] } inv_determinant := 1.0 / determinant for i in 0..<4 { for j in 0..<4 { - inverse_transpose[i, j] = adjoint[i, j] * inv_determinant + inverse_transpose[i][j] = adjoint[i][j] * inv_determinant } } return } @(require_results) -matrix4_inverse_transpose_f64 :: proc "contextless" (m: Matrix4f64) -> (inverse_transpose: Matrix4f64) #no_bounds_check { +matrix4_inverse_transpose_f64 :: proc "contextless" (m: Matrix4f64) -> (inverse_transpose: Matrix4f64) { adjoint := matrix4_adjoint(m) determinant: f64 = 0 for i in 0..<4 { - determinant += m[0, i] * adjoint[0, i] + determinant += m[i][0] * adjoint[i][0] } inv_determinant := 1.0 / determinant for i in 0..<4 { for j in 0..<4 { - inverse_transpose[i, j] = adjoint[i, j] * inv_determinant + inverse_transpose[i][j] = adjoint[i][j] * inv_determinant } } return @@ -1973,25 +1973,25 @@ matrix4_inverse_transpose :: proc{ @(require_results) matrix4_translate_f16 :: proc "contextless" (v: Vector3f16) -> Matrix4f16 { m := MATRIX4F16_IDENTITY - m[0, 3] = v[0] - m[1, 3] = v[1] - m[2, 3] = v[2] + m[3][0] = v[0] + m[3][1] = v[1] + m[3][2] = v[2] return m } @(require_results) matrix4_translate_f32 :: proc "contextless" (v: Vector3f32) -> Matrix4f32 { m := MATRIX4F32_IDENTITY - m[0, 3] = v[0] - m[1, 3] = v[1] - m[2, 3] = v[2] + m[3][0] = v[0] + m[3][1] = v[1] + m[3][2] = v[2] return m } @(require_results) matrix4_translate_f64 :: proc "contextless" (v: Vector3f64) -> Matrix4f64 { m := MATRIX4F64_IDENTITY - m[0, 3] = v[0] - m[1, 3] = v[1] - m[2, 3] = v[2] + m[3][0] = v[0] + m[3][1] = v[1] + m[3][2] = v[2] return m } matrix4_translate :: proc{ @@ -2002,85 +2002,85 @@ matrix4_translate :: proc{ @(require_results) -matrix4_rotate_f16 :: proc "contextless" (angle_radians: f16, v: Vector3f16) -> (rot: Matrix4f16) #no_bounds_check { +matrix4_rotate_f16 :: proc "contextless" (angle_radians: f16, v: Vector3f16) -> Matrix4f16 { c := math.cos(angle_radians) s := math.sin(angle_radians) a := normalize(v) t := a * (1-c) - rot = 1 + rot := MATRIX4F16_IDENTITY - rot[0, 0] = c + t[0]*a[0] - rot[1, 0] = 0 + t[0]*a[1] + s*a[2] - rot[2, 0] = 0 + t[0]*a[2] - s*a[1] - rot[3, 0] = 0 + rot[0][0] = c + t[0]*a[0] + rot[0][1] = 0 + t[0]*a[1] + s*a[2] + rot[0][2] = 0 + t[0]*a[2] - s*a[1] + rot[0][3] = 0 - rot[0, 1] = 0 + t[1]*a[0] - s*a[2] - rot[1, 1] = c + t[1]*a[1] - rot[2, 1] = 0 + t[1]*a[2] + s*a[0] - rot[3, 1] = 0 + rot[1][0] = 0 + t[1]*a[0] - s*a[2] + rot[1][1] = c + t[1]*a[1] + rot[1][2] = 0 + t[1]*a[2] + s*a[0] + rot[1][3] = 0 - rot[0, 2] = 0 + t[2]*a[0] + s*a[1] - rot[1, 2] = 0 + t[2]*a[1] - s*a[0] - rot[2, 2] = c + t[2]*a[2] - rot[3, 2] = 0 + rot[2][0] = 0 + t[2]*a[0] + s*a[1] + rot[2][1] = 0 + t[2]*a[1] - s*a[0] + rot[2][2] = c + t[2]*a[2] + rot[2][3] = 0 - return + return rot } @(require_results) -matrix4_rotate_f32 :: proc "contextless" (angle_radians: f32, v: Vector3f32) -> (rot: Matrix4f32) #no_bounds_check { +matrix4_rotate_f32 :: proc "contextless" (angle_radians: f32, v: Vector3f32) -> Matrix4f32 { c := math.cos(angle_radians) s := math.sin(angle_radians) a := normalize(v) t := a * (1-c) - rot = 1 + rot := MATRIX4F32_IDENTITY - rot[0, 0] = c + t[0]*a[0] - rot[1, 0] = 0 + t[0]*a[1] + s*a[2] - rot[2, 0] = 0 + t[0]*a[2] - s*a[1] - rot[3, 0] = 0 + rot[0][0] = c + t[0]*a[0] + rot[0][1] = 0 + t[0]*a[1] + s*a[2] + rot[0][2] = 0 + t[0]*a[2] - s*a[1] + rot[0][3] = 0 - rot[0, 1] = 0 + t[1]*a[0] - s*a[2] - rot[1, 1] = c + t[1]*a[1] - rot[2, 1] = 0 + t[1]*a[2] + s*a[0] - rot[3, 1] = 0 + rot[1][0] = 0 + t[1]*a[0] - s*a[2] + rot[1][1] = c + t[1]*a[1] + rot[1][2] = 0 + t[1]*a[2] + s*a[0] + rot[1][3] = 0 - rot[0, 2] = 0 + t[2]*a[0] + s*a[1] - rot[1, 2] = 0 + t[2]*a[1] - s*a[0] - rot[2, 2] = c + t[2]*a[2] - rot[3, 2] = 0 + rot[2][0] = 0 + t[2]*a[0] + s*a[1] + rot[2][1] = 0 + t[2]*a[1] - s*a[0] + rot[2][2] = c + t[2]*a[2] + rot[2][3] = 0 - return + return rot } @(require_results) -matrix4_rotate_f64 :: proc "contextless" (angle_radians: f64, v: Vector3f64) -> (rot: Matrix4f64) #no_bounds_check { +matrix4_rotate_f64 :: proc "contextless" (angle_radians: f64, v: Vector3f64) -> Matrix4f64 { c := math.cos(angle_radians) s := math.sin(angle_radians) a := normalize(v) t := a * (1-c) - rot = 1 + rot := MATRIX4F64_IDENTITY - rot[0, 0] = c + t[0]*a[0] - rot[1, 0] = 0 + t[0]*a[1] + s*a[2] - rot[2, 0] = 0 + t[0]*a[2] - s*a[1] - rot[3, 0] = 0 + rot[0][0] = c + t[0]*a[0] + rot[0][1] = 0 + t[0]*a[1] + s*a[2] + rot[0][2] = 0 + t[0]*a[2] - s*a[1] + rot[0][3] = 0 - rot[0, 1] = 0 + t[1]*a[0] - s*a[2] - rot[1, 1] = c + t[1]*a[1] - rot[2, 1] = 0 + t[1]*a[2] + s*a[0] - rot[3, 1] = 0 + rot[1][0] = 0 + t[1]*a[0] - s*a[2] + rot[1][1] = c + t[1]*a[1] + rot[1][2] = 0 + t[1]*a[2] + s*a[0] + rot[1][3] = 0 - rot[0, 2] = 0 + t[2]*a[0] + s*a[1] - rot[1, 2] = 0 + t[2]*a[1] - s*a[0] - rot[2, 2] = c + t[2]*a[2] - rot[3, 2] = 0 + rot[2][0] = 0 + t[2]*a[0] + s*a[1] + rot[2][1] = 0 + t[2]*a[1] - s*a[0] + rot[2][2] = c + t[2]*a[2] + rot[2][3] = 0 - return + return rot } matrix4_rotate :: proc{ matrix4_rotate_f16, @@ -2091,26 +2091,26 @@ matrix4_rotate :: proc{ @(require_results) matrix4_scale_f16 :: proc "contextless" (v: Vector3f16) -> (m: Matrix4f16) { - m[0, 0] = v[0] - m[1, 1] = v[1] - m[2, 2] = v[2] - m[3, 3] = 1 + m[0][0] = v[0] + m[1][1] = v[1] + m[2][2] = v[2] + m[3][3] = 1 return } @(require_results) matrix4_scale_f32 :: proc "contextless" (v: Vector3f32) -> (m: Matrix4f32) { - m[0, 0] = v[0] - m[1, 1] = v[1] - m[2, 2] = v[2] - m[3, 3] = 1 + m[0][0] = v[0] + m[1][1] = v[1] + m[2][2] = v[2] + m[3][3] = 1 return } @(require_results) matrix4_scale_f64 :: proc "contextless" (v: Vector3f64) -> (m: Matrix4f64) { - m[0, 0] = v[0] - m[1, 1] = v[1] - m[2, 2] = v[2] - m[3, 3] = 1 + m[0][0] = v[0] + m[1][1] = v[1] + m[2][2] = v[2] + m[3][3] = 1 return } matrix4_scale :: proc{ From 6df07a2c0ada1a2ead90af3cb5c4543a805fab80 Mon Sep 17 00:00:00 2001 From: Lucas Perlind Date: Tue, 13 Feb 2024 10:23:29 +1100 Subject: [PATCH 09/22] Remove bounds checking on a lot of linalg --- core/math/linalg/general.odin | 40 +++---- core/math/linalg/specific.odin | 202 ++++++++++++++++----------------- 2 files changed, 121 insertions(+), 121 deletions(-) diff --git a/core/math/linalg/general.odin b/core/math/linalg/general.odin index 3a4b43341..51dfd2360 100644 --- a/core/math/linalg/general.odin +++ b/core/math/linalg/general.odin @@ -306,7 +306,7 @@ angle_between :: proc{ // Splines @(require_results) -vector_slerp :: proc "contextless" (x, y: $T/[$N]$E, a: E) -> T { +vector_slerp :: proc "contextless" (x, y: $T/[$N]$E, a: E) -> T #no_bounds_check { cos_alpha := dot(x, y) alpha := math.acos(cos_alpha) sin_alpha := math.sin(alpha) @@ -318,7 +318,7 @@ vector_slerp :: proc "contextless" (x, y: $T/[$N]$E, a: E) -> T { } @(require_results) -catmull_rom :: proc "contextless" (v1, v2, v3, v4: $T/[$N]$E, s: E) -> T { +catmull_rom :: proc "contextless" (v1, v2, v3, v4: $T/[$N]$E, s: E) -> T #no_bounds_check { s2 := s*s s3 := s2*s @@ -331,7 +331,7 @@ catmull_rom :: proc "contextless" (v1, v2, v3, v4: $T/[$N]$E, s: E) -> T { } @(require_results) -hermite :: proc "contextless" (v1, t1, v2, t2: $T/[$N]$E, s: E) -> T { +hermite :: proc "contextless" (v1, t1, v2, t2: $T/[$N]$E, s: E) -> T #no_bounds_check { s2 := s*s s3 := s2*s @@ -344,7 +344,7 @@ hermite :: proc "contextless" (v1, t1, v2, t2: $T/[$N]$E, s: E) -> T { } @(require_results) -cubic :: proc "contextless" (v1, v2, v3, v4: $T/[$N]$E, s: E) -> T { +cubic :: proc "contextless" (v1, v2, v3, v4: $T/[$N]$E, s: E) -> T #no_bounds_check { return ((v1 * s + v2) * s + v3) * s + v4 } @@ -425,12 +425,12 @@ inverse :: proc{ } @(require_results) -hermitian_adjoint :: proc "contextless" (m: $M/matrix[$N, N]$T) -> M where intrinsics.type_is_complex(T), N >= 1 { +hermitian_adjoint :: proc "contextless" (m: $M/matrix[$N, N]$T) -> M where intrinsics.type_is_complex(T), N >= 1 #no_bounds_check { return conj(transpose(m)) } @(require_results) -trace :: proc "contextless" (m: $M/matrix[$N, N]$T) -> (trace: T) { +trace :: proc "contextless" (m: $M/matrix[$N, N]$T) -> (trace: T) #no_bounds_check { for i in 0.. (trace: T) { } @(require_results) -matrix_minor :: proc "contextless" (m: $M/matrix[$N, N]$T, #any_int row, column: int) -> (minor: T) where N > 1 { +matrix_minor :: proc "contextless" (m: $M/matrix[$N, N]$T, #any_int row, column: int) -> (minor: T) where N > 1 #no_bounds_check { K :: int(N-1) cut_down: matrix[K, K]T for col_idx in 0.. (det: T) { +matrix1x1_determinant :: proc "contextless" (m: $M/matrix[1, 1]$T) -> (det: T) #no_bounds_check { return m[0, 0] } @(require_results) -matrix2x2_determinant :: proc "contextless" (m: $M/matrix[2, 2]$T) -> (det: T) { +matrix2x2_determinant :: proc "contextless" (m: $M/matrix[2, 2]$T) -> (det: T) #no_bounds_check { return m[0, 0]*m[1, 1] - m[0, 1]*m[1, 0] } @(require_results) -matrix3x3_determinant :: proc "contextless" (m: $M/matrix[3, 3]$T) -> (det: T) { +matrix3x3_determinant :: proc "contextless" (m: $M/matrix[3, 3]$T) -> (det: T) #no_bounds_check { a := +m[0, 0] * (m[1, 1] * m[2, 2] - m[1, 2] * m[2, 1]) b := -m[0, 1] * (m[1, 0] * m[2, 2] - m[1, 2] * m[2, 0]) c := +m[0, 2] * (m[1, 0] * m[2, 1] - m[1, 1] * m[2, 0]) return a + b + c } @(require_results) -matrix4x4_determinant :: proc "contextless" (m: $M/matrix[4, 4]$T) -> (det: T) { +matrix4x4_determinant :: proc "contextless" (m: $M/matrix[4, 4]$T) -> (det: T) #no_bounds_check { a := adjugate(m) - #no_bounds_check for i in 0..<4 { + for i in 0..<4 { det += m[0, i] * a[0, i] } return @@ -482,13 +482,13 @@ matrix4x4_determinant :: proc "contextless" (m: $M/matrix[4, 4]$T) -> (det: T) { @(require_results) -matrix1x1_adjugate :: proc "contextless" (x: $M/matrix[1, 1]$T) -> (y: M) { +matrix1x1_adjugate :: proc "contextless" (x: $M/matrix[1, 1]$T) -> (y: M) #no_bounds_check { y = x return } @(require_results) -matrix2x2_adjugate :: proc "contextless" (x: $M/matrix[2, 2]$T) -> (y: M) { +matrix2x2_adjugate :: proc "contextless" (x: $M/matrix[2, 2]$T) -> (y: M) #no_bounds_check { y[0, 0] = +x[1, 1] y[0, 1] = -x[1, 0] y[1, 0] = -x[0, 1] @@ -497,7 +497,7 @@ matrix2x2_adjugate :: proc "contextless" (x: $M/matrix[2, 2]$T) -> (y: M) { } @(require_results) -matrix3x3_adjugate :: proc "contextless" (m: $M/matrix[3, 3]$T) -> (y: M) { +matrix3x3_adjugate :: proc "contextless" (m: $M/matrix[3, 3]$T) -> (y: M) #no_bounds_check { y[0, 0] = +(m[1, 1] * m[2, 2] - m[2, 1] * m[1, 2]) y[0, 1] = -(m[1, 0] * m[2, 2] - m[2, 0] * m[1, 2]) y[0, 2] = +(m[1, 0] * m[2, 1] - m[2, 0] * m[1, 1]) @@ -512,7 +512,7 @@ matrix3x3_adjugate :: proc "contextless" (m: $M/matrix[3, 3]$T) -> (y: M) { @(require_results) -matrix4x4_adjugate :: proc "contextless" (x: $M/matrix[4, 4]$T) -> (y: M) { +matrix4x4_adjugate :: proc "contextless" (x: $M/matrix[4, 4]$T) -> (y: M) #no_bounds_check { for i in 0..<4 { for j in 0..<4 { sign: T = 1 if (i + j) % 2 == 0 else -1 @@ -523,13 +523,13 @@ matrix4x4_adjugate :: proc "contextless" (x: $M/matrix[4, 4]$T) -> (y: M) { } @(require_results) -matrix1x1_inverse_transpose :: proc "contextless" (x: $M/matrix[1, 1]$T) -> (y: M) { +matrix1x1_inverse_transpose :: proc "contextless" (x: $M/matrix[1, 1]$T) -> (y: M) #no_bounds_check { y[0, 0] = 1/x[0, 0] return } @(require_results) -matrix2x2_inverse_transpose :: proc "contextless" (x: $M/matrix[2, 2]$T) -> (y: M) { +matrix2x2_inverse_transpose :: proc "contextless" (x: $M/matrix[2, 2]$T) -> (y: M) #no_bounds_check { d := x[0, 0]*x[1, 1] - x[0, 1]*x[1, 0] when intrinsics.type_is_integer(T) { y[0, 0] = +x[1, 1] / d @@ -592,13 +592,13 @@ matrix4x4_inverse_transpose :: proc "contextless" (x: $M/matrix[4, 4]$T) -> (y: } @(require_results) -matrix1x1_inverse :: proc "contextless" (x: $M/matrix[1, 1]$T) -> (y: M) { +matrix1x1_inverse :: proc "contextless" (x: $M/matrix[1, 1]$T) -> (y: M) #no_bounds_check { y[0, 0] = 1/x[0, 0] return } @(require_results) -matrix2x2_inverse :: proc "contextless" (x: $M/matrix[2, 2]$T) -> (y: M) { +matrix2x2_inverse :: proc "contextless" (x: $M/matrix[2, 2]$T) -> (y: M) #no_bounds_check { d := x[0, 0]*x[1, 1] - x[0, 1]*x[1, 0] when intrinsics.type_is_integer(T) { y[0, 0] = +x[1, 1] / d diff --git a/core/math/linalg/specific.odin b/core/math/linalg/specific.odin index 4a0f5ee40..d51a034d1 100644 --- a/core/math/linalg/specific.odin +++ b/core/math/linalg/specific.odin @@ -584,7 +584,7 @@ angle_axis_from_quaternion :: proc { @(require_results) -quaternion_from_forward_and_up_f16 :: proc "contextless" (forward, up: Vector3f16) -> Quaternionf16 { +quaternion_from_forward_and_up_f16 :: proc "contextless" (forward, up: Vector3f16) -> Quaternionf16 #no_bounds_check { f := normalize(forward) s := normalize(cross(f, up)) u := cross(s, f) @@ -628,7 +628,7 @@ quaternion_from_forward_and_up_f16 :: proc "contextless" (forward, up: Vector3f1 return normalize(q) } @(require_results) -quaternion_from_forward_and_up_f32 :: proc "contextless" (forward, up: Vector3f32) -> Quaternionf32 { +quaternion_from_forward_and_up_f32 :: proc "contextless" (forward, up: Vector3f32) -> Quaternionf32 #no_bounds_check { f := normalize(forward) s := normalize(cross(f, up)) u := cross(s, f) @@ -672,7 +672,7 @@ quaternion_from_forward_and_up_f32 :: proc "contextless" (forward, up: Vector3f3 return normalize(q) } @(require_results) -quaternion_from_forward_and_up_f64 :: proc "contextless" (forward, up: Vector3f64) -> Quaternionf64 { +quaternion_from_forward_and_up_f64 :: proc "contextless" (forward, up: Vector3f64) -> Quaternionf64 #no_bounds_check { f := normalize(forward) s := normalize(cross(f, up)) u := cross(s, f) @@ -886,7 +886,7 @@ quaternion_squad :: proc{ @(require_results) -quaternion_from_matrix4_f16 :: proc "contextless" (m: Matrix4f16) -> (q: Quaternionf16) { +quaternion_from_matrix4_f16 :: proc "contextless" (m: Matrix4f16) -> (q: Quaternionf16) #no_bounds_check { m3: Matrix3f16 = --- m3[0, 0], m3[1, 0], m3[2, 0] = m[0, 0], m[1, 0], m[2, 0] m3[0, 1], m3[1, 1], m3[2, 1] = m[0, 1], m[1, 1], m[2, 1] @@ -894,7 +894,7 @@ quaternion_from_matrix4_f16 :: proc "contextless" (m: Matrix4f16) -> (q: Quatern return quaternion_from_matrix3(m3) } @(require_results) -quaternion_from_matrix4_f32 :: proc "contextless" (m: Matrix4f32) -> (q: Quaternionf32) { +quaternion_from_matrix4_f32 :: proc "contextless" (m: Matrix4f32) -> (q: Quaternionf32) #no_bounds_check { m3: Matrix3f32 = --- m3[0, 0], m3[1, 0], m3[2, 0] = m[0, 0], m[1, 0], m[2, 0] m3[0, 1], m3[1, 1], m3[2, 1] = m[0, 1], m[1, 1], m[2, 1] @@ -902,7 +902,7 @@ quaternion_from_matrix4_f32 :: proc "contextless" (m: Matrix4f32) -> (q: Quatern return quaternion_from_matrix3(m3) } @(require_results) -quaternion_from_matrix4_f64 :: proc "contextless" (m: Matrix4f64) -> (q: Quaternionf64) { +quaternion_from_matrix4_f64 :: proc "contextless" (m: Matrix4f64) -> (q: Quaternionf64) #no_bounds_check { m3: Matrix3f64 = --- m3[0, 0], m3[1, 0], m3[2, 0] = m[0, 0], m[1, 0], m[2, 0] m3[0, 1], m3[1, 1], m3[2, 1] = m[0, 1], m[1, 1], m[2, 1] @@ -917,7 +917,7 @@ quaternion_from_matrix4 :: proc{ @(require_results) -quaternion_from_matrix3_f16 :: proc "contextless" (m: Matrix3f16) -> (q: Quaternionf16) { +quaternion_from_matrix3_f16 :: proc "contextless" (m: Matrix3f16) -> (q: Quaternionf16) #no_bounds_check { four_x_squared_minus_1 := m[0, 0] - m[1, 1] - m[2, 2] four_y_squared_minus_1 := m[1, 1] - m[0, 0] - m[2, 2] four_z_squared_minus_1 := m[2, 2] - m[0, 0] - m[1, 1] @@ -967,7 +967,7 @@ quaternion_from_matrix3_f16 :: proc "contextless" (m: Matrix3f16) -> (q: Quatern return } @(require_results) -quaternion_from_matrix3_f32 :: proc "contextless" (m: Matrix3f32) -> (q: Quaternionf32) { +quaternion_from_matrix3_f32 :: proc "contextless" (m: Matrix3f32) -> (q: Quaternionf32) #no_bounds_check { four_x_squared_minus_1 := m[0, 0] - m[1, 1] - m[2, 2] four_y_squared_minus_1 := m[1, 1] - m[0, 0] - m[2, 2] four_z_squared_minus_1 := m[2, 2] - m[0, 0] - m[1, 1] @@ -1017,7 +1017,7 @@ quaternion_from_matrix3_f32 :: proc "contextless" (m: Matrix3f32) -> (q: Quatern return } @(require_results) -quaternion_from_matrix3_f64 :: proc "contextless" (m: Matrix3f64) -> (q: Quaternionf64) { +quaternion_from_matrix3_f64 :: proc "contextless" (m: Matrix3f64) -> (q: Quaternionf64) #no_bounds_check { four_x_squared_minus_1 := m[0, 0] - m[1, 1] - m[2, 2] four_y_squared_minus_1 := m[1, 1] - m[0, 0] - m[2, 2] four_z_squared_minus_1 := m[2, 2] - m[0, 0] - m[1, 1] @@ -1147,7 +1147,7 @@ quaternion_between_two_vector3 :: proc{ @(require_results) -matrix2_inverse_transpose_f16 :: proc "contextless" (m: Matrix2f16) -> (c: Matrix2f16) { +matrix2_inverse_transpose_f16 :: proc "contextless" (m: Matrix2f16) -> (c: Matrix2f16) #no_bounds_check { d := m[0, 0]*m[1, 1] - m[0, 1]*m[1, 0] id := 1.0/d c[0, 0] = +m[1, 1] * id @@ -1157,7 +1157,7 @@ matrix2_inverse_transpose_f16 :: proc "contextless" (m: Matrix2f16) -> (c: Matri return c } @(require_results) -matrix2_inverse_transpose_f32 :: proc "contextless" (m: Matrix2f32) -> (c: Matrix2f32) { +matrix2_inverse_transpose_f32 :: proc "contextless" (m: Matrix2f32) -> (c: Matrix2f32) #no_bounds_check { d := m[0, 0]*m[1, 1] - m[0, 1]*m[1, 0] id := 1.0/d c[0, 0] = +m[1, 1] * id @@ -1167,7 +1167,7 @@ matrix2_inverse_transpose_f32 :: proc "contextless" (m: Matrix2f32) -> (c: Matri return c } @(require_results) -matrix2_inverse_transpose_f64 :: proc "contextless" (m: Matrix2f64) -> (c: Matrix2f64) { +matrix2_inverse_transpose_f64 :: proc "contextless" (m: Matrix2f64) -> (c: Matrix2f64) #no_bounds_check { d := m[0, 0]*m[1, 1] - m[0, 1]*m[1, 0] id := 1.0/d c[0, 0] = +m[1, 1] * id @@ -1184,15 +1184,15 @@ matrix2_inverse_transpose :: proc{ @(require_results) -matrix2_determinant_f16 :: proc "contextless" (m: Matrix2f16) -> f16 { +matrix2_determinant_f16 :: proc "contextless" (m: Matrix2f16) -> f16 #no_bounds_check { return m[0, 0]*m[1, 1] - m[0, 1]*m[1, 0] } @(require_results) -matrix2_determinant_f32 :: proc "contextless" (m: Matrix2f32) -> f32 { +matrix2_determinant_f32 :: proc "contextless" (m: Matrix2f32) -> f32 #no_bounds_check { return m[0, 0]*m[1, 1] - m[0, 1]*m[1, 0] } @(require_results) -matrix2_determinant_f64 :: proc "contextless" (m: Matrix2f64) -> f64 { +matrix2_determinant_f64 :: proc "contextless" (m: Matrix2f64) -> f64 #no_bounds_check { return m[0, 0]*m[1, 1] - m[0, 1]*m[1, 0] } matrix2_determinant :: proc{ @@ -1203,7 +1203,7 @@ matrix2_determinant :: proc{ @(require_results) -matrix2_inverse_f16 :: proc "contextless" (m: Matrix2f16) -> (c: Matrix2f16) { +matrix2_inverse_f16 :: proc "contextless" (m: Matrix2f16) -> (c: Matrix2f16) #no_bounds_check { d := m[0, 0]*m[1, 1] - m[0, 1]*m[1, 0] id := 1.0/d c[0, 0] = +m[1, 1] * id @@ -1213,7 +1213,7 @@ matrix2_inverse_f16 :: proc "contextless" (m: Matrix2f16) -> (c: Matrix2f16) { return c } @(require_results) -matrix2_inverse_f32 :: proc "contextless" (m: Matrix2f32) -> (c: Matrix2f32) { +matrix2_inverse_f32 :: proc "contextless" (m: Matrix2f32) -> (c: Matrix2f32) #no_bounds_check { d := m[0, 0]*m[1, 1] - m[0, 1]*m[1, 0] id := 1.0/d c[0, 0] = +m[1, 1] * id @@ -1223,7 +1223,7 @@ matrix2_inverse_f32 :: proc "contextless" (m: Matrix2f32) -> (c: Matrix2f32) { return c } @(require_results) -matrix2_inverse_f64 :: proc "contextless" (m: Matrix2f64) -> (c: Matrix2f64) { +matrix2_inverse_f64 :: proc "contextless" (m: Matrix2f64) -> (c: Matrix2f64) #no_bounds_check { d := m[0, 0]*m[1, 1] - m[0, 1]*m[1, 0] id := 1.0/d c[0, 0] = +m[1, 1] * id @@ -1240,7 +1240,7 @@ matrix2_inverse :: proc{ @(require_results) -matrix2_adjoint_f16 :: proc "contextless" (m: Matrix2f16) -> (c: Matrix2f16) { +matrix2_adjoint_f16 :: proc "contextless" (m: Matrix2f16) -> (c: Matrix2f16) #no_bounds_check { c[0, 0] = +m[1, 1] c[1, 0] = -m[0, 1] c[0, 1] = -m[1, 0] @@ -1248,7 +1248,7 @@ matrix2_adjoint_f16 :: proc "contextless" (m: Matrix2f16) -> (c: Matrix2f16) { return c } @(require_results) -matrix2_adjoint_f32 :: proc "contextless" (m: Matrix2f32) -> (c: Matrix2f32) { +matrix2_adjoint_f32 :: proc "contextless" (m: Matrix2f32) -> (c: Matrix2f32) #no_bounds_check { c[0, 0] = +m[1, 1] c[1, 0] = -m[0, 1] c[0, 1] = -m[1, 0] @@ -1256,7 +1256,7 @@ matrix2_adjoint_f32 :: proc "contextless" (m: Matrix2f32) -> (c: Matrix2f32) { return c } @(require_results) -matrix2_adjoint_f64 :: proc "contextless" (m: Matrix2f64) -> (c: Matrix2f64) { +matrix2_adjoint_f64 :: proc "contextless" (m: Matrix2f64) -> (c: Matrix2f64) #no_bounds_check { c[0, 0] = +m[1, 1] c[1, 0] = -m[0, 1] c[0, 1] = -m[1, 0] @@ -1308,7 +1308,7 @@ matrix2_rotate :: proc{ @(require_results) -matrix3_from_quaternion_f16 :: proc "contextless" (q: Quaternionf16) -> (m: Matrix3f16) { +matrix3_from_quaternion_f16 :: proc "contextless" (q: Quaternionf16) -> (m: Matrix3f16) #no_bounds_check { qxx := q.x * q.x qyy := q.y * q.y qzz := q.z * q.z @@ -1333,7 +1333,7 @@ matrix3_from_quaternion_f16 :: proc "contextless" (q: Quaternionf16) -> (m: Matr return m } @(require_results) -matrix3_from_quaternion_f32 :: proc "contextless" (q: Quaternionf32) -> (m: Matrix3f32) { +matrix3_from_quaternion_f32 :: proc "contextless" (q: Quaternionf32) -> (m: Matrix3f32) #no_bounds_check { qxx := q.x * q.x qyy := q.y * q.y qzz := q.z * q.z @@ -1358,7 +1358,7 @@ matrix3_from_quaternion_f32 :: proc "contextless" (q: Quaternionf32) -> (m: Matr return m } @(require_results) -matrix3_from_quaternion_f64 :: proc "contextless" (q: Quaternionf64) -> (m: Matrix3f64) { +matrix3_from_quaternion_f64 :: proc "contextless" (q: Quaternionf64) -> (m: Matrix3f64) #no_bounds_check { qxx := q.x * q.x qyy := q.y * q.y qzz := q.z * q.z @@ -1409,21 +1409,21 @@ matrix3_inverse :: proc{ @(require_results) -matrix3_determinant_f16 :: proc "contextless" (m: Matrix3f16) -> f16 { +matrix3_determinant_f16 :: proc "contextless" (m: Matrix3f16) -> f16 #no_bounds_check { a := +m[0, 0] * (m[1, 1] * m[2, 2] - m[1, 2] * m[2, 1]) b := -m[0, 1] * (m[1, 0] * m[2, 2] - m[1, 2] * m[2, 0]) c := +m[0, 2] * (m[1, 0] * m[2, 1] - m[1, 1] * m[2, 0]) return a + b + c } @(require_results) -matrix3_determinant_f32 :: proc "contextless" (m: Matrix3f32) -> f32 { +matrix3_determinant_f32 :: proc "contextless" (m: Matrix3f32) -> f32 #no_bounds_check { a := +m[0, 0] * (m[1, 1] * m[2, 2] - m[1, 2] * m[2, 1]) b := -m[0, 1] * (m[1, 0] * m[2, 2] - m[1, 2] * m[2, 0]) c := +m[0, 2] * (m[1, 0] * m[2, 1] - m[1, 1] * m[2, 0]) return a + b + c } @(require_results) -matrix3_determinant_f64 :: proc "contextless" (m: Matrix3f64) -> f64 { +matrix3_determinant_f64 :: proc "contextless" (m: Matrix3f64) -> f64 #no_bounds_check { a := +m[0, 0] * (m[1, 1] * m[2, 2] - m[1, 2] * m[2, 1]) b := -m[0, 1] * (m[1, 0] * m[2, 2] - m[1, 2] * m[2, 0]) c := +m[0, 2] * (m[1, 0] * m[2, 1] - m[1, 1] * m[2, 0]) @@ -1437,7 +1437,7 @@ matrix3_determinant :: proc{ @(require_results) -matrix3_adjoint_f16 :: proc "contextless" (m: Matrix3f16) -> (adjoint: Matrix3f16) { +matrix3_adjoint_f16 :: proc "contextless" (m: Matrix3f16) -> (adjoint: Matrix3f16) #no_bounds_check { adjoint[0, 0] = +(m[1, 1] * m[2, 2] - m[2, 1] * m[1, 2]) adjoint[0, 1] = -(m[1, 0] * m[2, 2] - m[2, 0] * m[1, 2]) adjoint[0, 2] = +(m[1, 0] * m[2, 1] - m[2, 0] * m[1, 1]) @@ -1450,7 +1450,7 @@ matrix3_adjoint_f16 :: proc "contextless" (m: Matrix3f16) -> (adjoint: Matrix3f1 return adjoint } @(require_results) -matrix3_adjoint_f32 :: proc "contextless" (m: Matrix3f32) -> (adjoint: Matrix3f32) { +matrix3_adjoint_f32 :: proc "contextless" (m: Matrix3f32) -> (adjoint: Matrix3f32) #no_bounds_check { adjoint[0, 0] = +(m[1, 1] * m[2, 2] - m[2, 1] * m[1, 2]) adjoint[0, 1] = -(m[1, 0] * m[2, 2] - m[2, 0] * m[1, 2]) adjoint[0, 2] = +(m[1, 0] * m[2, 1] - m[2, 0] * m[1, 1]) @@ -1463,7 +1463,7 @@ matrix3_adjoint_f32 :: proc "contextless" (m: Matrix3f32) -> (adjoint: Matrix3f3 return adjoint } @(require_results) -matrix3_adjoint_f64 :: proc "contextless" (m: Matrix3f64) -> (adjoint: Matrix3f64) { +matrix3_adjoint_f64 :: proc "contextless" (m: Matrix3f64) -> (adjoint: Matrix3f64) #no_bounds_check { adjoint[0, 0] = +(m[1, 1] * m[2, 2] - m[2, 1] * m[1, 2]) adjoint[0, 1] = -(m[1, 0] * m[2, 2] - m[2, 0] * m[1, 2]) adjoint[0, 2] = +(m[1, 0] * m[2, 1] - m[2, 0] * m[1, 1]) @@ -1503,21 +1503,21 @@ matrix3_inverse_transpose :: proc{ @(require_results) -matrix3_scale_f16 :: proc "contextless" (s: Vector3f16) -> (m: Matrix3f16) { +matrix3_scale_f16 :: proc "contextless" (s: Vector3f16) -> (m: Matrix3f16) #no_bounds_check { m[0, 0] = s[0] m[1, 1] = s[1] m[2, 2] = s[2] return m } @(require_results) -matrix3_scale_f32 :: proc "contextless" (s: Vector3f32) -> (m: Matrix3f32) { +matrix3_scale_f32 :: proc "contextless" (s: Vector3f32) -> (m: Matrix3f32) #no_bounds_check { m[0, 0] = s[0] m[1, 1] = s[1] m[2, 2] = s[2] return m } @(require_results) -matrix3_scale_f64 :: proc "contextless" (s: Vector3f64) -> (m: Matrix3f64) { +matrix3_scale_f64 :: proc "contextless" (s: Vector3f64) -> (m: Matrix3f64) #no_bounds_check { m[0, 0] = s[0] m[1, 1] = s[1] m[2, 2] = s[2] @@ -1531,7 +1531,7 @@ matrix3_scale :: proc{ @(require_results) -matrix3_rotate_f16 :: proc "contextless" (angle_radians: f16, v: Vector3f16) -> (rot: Matrix3f16) { +matrix3_rotate_f16 :: proc "contextless" (angle_radians: f16, v: Vector3f16) -> (rot: Matrix3f16) #no_bounds_check { c := math.cos(angle_radians) s := math.sin(angle_radians) @@ -1553,7 +1553,7 @@ matrix3_rotate_f16 :: proc "contextless" (angle_radians: f16, v: Vector3f16) -> return rot } @(require_results) -matrix3_rotate_f32 :: proc "contextless" (angle_radians: f32, v: Vector3f32) -> (rot: Matrix3f32) { +matrix3_rotate_f32 :: proc "contextless" (angle_radians: f32, v: Vector3f32) -> (rot: Matrix3f32) #no_bounds_check { c := math.cos(angle_radians) s := math.sin(angle_radians) @@ -1644,7 +1644,7 @@ matrix3_look_at :: proc{ @(require_results) -matrix4_from_quaternion_f16 :: proc "contextless" (q: Quaternionf16) -> (m: Matrix4f16) { +matrix4_from_quaternion_f16 :: proc "contextless" (q: Quaternionf16) -> (m: Matrix4f16) #no_bounds_check { qxx := q.x * q.x qyy := q.y * q.y qzz := q.z * q.z @@ -1672,7 +1672,7 @@ matrix4_from_quaternion_f16 :: proc "contextless" (q: Quaternionf16) -> (m: Matr return m } @(require_results) -matrix4_from_quaternion_f32 :: proc "contextless" (q: Quaternionf32) -> (m: Matrix4f32) { +matrix4_from_quaternion_f32 :: proc "contextless" (q: Quaternionf32) -> (m: Matrix4f32) #no_bounds_check { qxx := q.x * q.x qyy := q.y * q.y qzz := q.z * q.z @@ -1700,7 +1700,7 @@ matrix4_from_quaternion_f32 :: proc "contextless" (q: Quaternionf32) -> (m: Matr return m } @(require_results) -matrix4_from_quaternion_f64 :: proc "contextless" (q: Quaternionf64) -> (m: Matrix4f64) { +matrix4_from_quaternion_f64 :: proc "contextless" (q: Quaternionf64) -> (m: Matrix4f64) #no_bounds_check { qxx := q.x * q.x qyy := q.y * q.y qzz := q.z * q.z @@ -1783,7 +1783,7 @@ matrix4_inverse :: proc{ @(require_results) -matrix4_minor_f16 :: proc "contextless" (m: Matrix4f16, c, r: int) -> f16 { +matrix4_minor_f16 :: proc "contextless" (m: Matrix4f16, c, r: int) -> f16 #no_bounds_check { cut_down: Matrix3f16 for i in 0..<3 { col := i if i < c else i+1 @@ -1795,7 +1795,7 @@ matrix4_minor_f16 :: proc "contextless" (m: Matrix4f16, c, r: int) -> f16 { return matrix3_determinant(cut_down) } @(require_results) -matrix4_minor_f32 :: proc "contextless" (m: Matrix4f32, c, r: int) -> f32 { +matrix4_minor_f32 :: proc "contextless" (m: Matrix4f32, c, r: int) -> f32 #no_bounds_check { cut_down: Matrix3f32 for i in 0..<3 { col := i if i < c else i+1 @@ -1807,7 +1807,7 @@ matrix4_minor_f32 :: proc "contextless" (m: Matrix4f32, c, r: int) -> f32 { return matrix3_determinant(cut_down) } @(require_results) -matrix4_minor_f64 :: proc "contextless" (m: Matrix4f64, c, r: int) -> f64 { +matrix4_minor_f64 :: proc "contextless" (m: Matrix4f64, c, r: int) -> f64 #no_bounds_check { cut_down: Matrix3f64 for i in 0..<3 { col := i if i < c else i+1 @@ -1854,7 +1854,7 @@ matrix4_cofactor :: proc{ @(require_results) -matrix4_adjoint_f16 :: proc "contextless" (m: Matrix4f16) -> (adjoint: Matrix4f16) { +matrix4_adjoint_f16 :: proc "contextless" (m: Matrix4f16) -> (adjoint: Matrix4f16) #no_bounds_check { for i in 0..<4 { for j in 0..<4 { adjoint[i][j] = matrix4_cofactor(m, i, j) @@ -1863,7 +1863,7 @@ matrix4_adjoint_f16 :: proc "contextless" (m: Matrix4f16) -> (adjoint: Matrix4f1 return } @(require_results) -matrix4_adjoint_f32 :: proc "contextless" (m: Matrix4f32) -> (adjoint: Matrix4f32) { +matrix4_adjoint_f32 :: proc "contextless" (m: Matrix4f32) -> (adjoint: Matrix4f32) #no_bounds_check { for i in 0..<4 { for j in 0..<4 { adjoint[i][j] = matrix4_cofactor(m, i, j) @@ -1872,7 +1872,7 @@ matrix4_adjoint_f32 :: proc "contextless" (m: Matrix4f32) -> (adjoint: Matrix4f3 return } @(require_results) -matrix4_adjoint_f64 :: proc "contextless" (m: Matrix4f64) -> (adjoint: Matrix4f64) { +matrix4_adjoint_f64 :: proc "contextless" (m: Matrix4f64) -> (adjoint: Matrix4f64) #no_bounds_check { for i in 0..<4 { for j in 0..<4 { adjoint[i][j] = matrix4_cofactor(m, i, j) @@ -1888,7 +1888,7 @@ matrix4_adjoint :: proc{ @(require_results) -matrix4_determinant_f16 :: proc "contextless" (m: Matrix4f16) -> (determinant: f16) { +matrix4_determinant_f16 :: proc "contextless" (m: Matrix4f16) -> (determinant: f16) #no_bounds_check { adjoint := matrix4_adjoint(m) for i in 0..<4 { determinant += m[i][0] * adjoint[i][0] @@ -1896,7 +1896,7 @@ matrix4_determinant_f16 :: proc "contextless" (m: Matrix4f16) -> (determinant: f return } @(require_results) -matrix4_determinant_f32 :: proc "contextless" (m: Matrix4f32) -> (determinant: f32) { +matrix4_determinant_f32 :: proc "contextless" (m: Matrix4f32) -> (determinant: f32) #no_bounds_check { adjoint := matrix4_adjoint(m) for i in 0..<4 { determinant += m[i][0] * adjoint[i][0] @@ -1904,7 +1904,7 @@ matrix4_determinant_f32 :: proc "contextless" (m: Matrix4f32) -> (determinant: f return } @(require_results) -matrix4_determinant_f64 :: proc "contextless" (m: Matrix4f64) -> (determinant: f64) { +matrix4_determinant_f64 :: proc "contextless" (m: Matrix4f64) -> (determinant: f64) #no_bounds_check { adjoint := matrix4_adjoint(m) for i in 0..<4 { determinant += m[i][0] * adjoint[i][0] @@ -1919,7 +1919,7 @@ matrix4_determinant :: proc{ @(require_results) -matrix4_inverse_transpose_f16 :: proc "contextless" (m: Matrix4f16) -> (inverse_transpose: Matrix4f16) { +matrix4_inverse_transpose_f16 :: proc "contextless" (m: Matrix4f16) -> (inverse_transpose: Matrix4f16) #no_bounds_check { adjoint := matrix4_adjoint(m) determinant: f16 = 0 for i in 0..<4 { @@ -1934,7 +1934,7 @@ matrix4_inverse_transpose_f16 :: proc "contextless" (m: Matrix4f16) -> (inverse_ return } @(require_results) -matrix4_inverse_transpose_f32 :: proc "contextless" (m: Matrix4f32) -> (inverse_transpose: Matrix4f32) { +matrix4_inverse_transpose_f32 :: proc "contextless" (m: Matrix4f32) -> (inverse_transpose: Matrix4f32) #no_bounds_check { adjoint := matrix4_adjoint(m) determinant: f32 = 0 for i in 0..<4 { @@ -1949,7 +1949,7 @@ matrix4_inverse_transpose_f32 :: proc "contextless" (m: Matrix4f32) -> (inverse_ return } @(require_results) -matrix4_inverse_transpose_f64 :: proc "contextless" (m: Matrix4f64) -> (inverse_transpose: Matrix4f64) { +matrix4_inverse_transpose_f64 :: proc "contextless" (m: Matrix4f64) -> (inverse_transpose: Matrix4f64) #no_bounds_check { adjoint := matrix4_adjoint(m) determinant: f64 = 0 for i in 0..<4 { @@ -1971,7 +1971,7 @@ matrix4_inverse_transpose :: proc{ @(require_results) -matrix4_translate_f16 :: proc "contextless" (v: Vector3f16) -> Matrix4f16 { +matrix4_translate_f16 :: proc "contextless" (v: Vector3f16) -> Matrix4f16 #no_bounds_check { m := MATRIX4F16_IDENTITY m[3][0] = v[0] m[3][1] = v[1] @@ -1979,7 +1979,7 @@ matrix4_translate_f16 :: proc "contextless" (v: Vector3f16) -> Matrix4f16 { return m } @(require_results) -matrix4_translate_f32 :: proc "contextless" (v: Vector3f32) -> Matrix4f32 { +matrix4_translate_f32 :: proc "contextless" (v: Vector3f32) -> Matrix4f32 #no_bounds_check { m := MATRIX4F32_IDENTITY m[3][0] = v[0] m[3][1] = v[1] @@ -1987,7 +1987,7 @@ matrix4_translate_f32 :: proc "contextless" (v: Vector3f32) -> Matrix4f32 { return m } @(require_results) -matrix4_translate_f64 :: proc "contextless" (v: Vector3f64) -> Matrix4f64 { +matrix4_translate_f64 :: proc "contextless" (v: Vector3f64) -> Matrix4f64 #no_bounds_check { m := MATRIX4F64_IDENTITY m[3][0] = v[0] m[3][1] = v[1] @@ -2002,7 +2002,7 @@ matrix4_translate :: proc{ @(require_results) -matrix4_rotate_f16 :: proc "contextless" (angle_radians: f16, v: Vector3f16) -> Matrix4f16 { +matrix4_rotate_f16 :: proc "contextless" (angle_radians: f16, v: Vector3f16) -> Matrix4f16 #no_bounds_check { c := math.cos(angle_radians) s := math.sin(angle_radians) @@ -2029,7 +2029,7 @@ matrix4_rotate_f16 :: proc "contextless" (angle_radians: f16, v: Vector3f16) -> return rot } @(require_results) -matrix4_rotate_f32 :: proc "contextless" (angle_radians: f32, v: Vector3f32) -> Matrix4f32 { +matrix4_rotate_f32 :: proc "contextless" (angle_radians: f32, v: Vector3f32) -> Matrix4f32 #no_bounds_check { c := math.cos(angle_radians) s := math.sin(angle_radians) @@ -2056,7 +2056,7 @@ matrix4_rotate_f32 :: proc "contextless" (angle_radians: f32, v: Vector3f32) -> return rot } @(require_results) -matrix4_rotate_f64 :: proc "contextless" (angle_radians: f64, v: Vector3f64) -> Matrix4f64 { +matrix4_rotate_f64 :: proc "contextless" (angle_radians: f64, v: Vector3f64) -> Matrix4f64 #no_bounds_check { c := math.cos(angle_radians) s := math.sin(angle_radians) @@ -2090,7 +2090,7 @@ matrix4_rotate :: proc{ @(require_results) -matrix4_scale_f16 :: proc "contextless" (v: Vector3f16) -> (m: Matrix4f16) { +matrix4_scale_f16 :: proc "contextless" (v: Vector3f16) -> (m: Matrix4f16) #no_bounds_check { m[0][0] = v[0] m[1][1] = v[1] m[2][2] = v[2] @@ -2098,7 +2098,7 @@ matrix4_scale_f16 :: proc "contextless" (v: Vector3f16) -> (m: Matrix4f16) { return } @(require_results) -matrix4_scale_f32 :: proc "contextless" (v: Vector3f32) -> (m: Matrix4f32) { +matrix4_scale_f32 :: proc "contextless" (v: Vector3f32) -> (m: Matrix4f32) #no_bounds_check { m[0][0] = v[0] m[1][1] = v[1] m[2][2] = v[2] @@ -2106,7 +2106,7 @@ matrix4_scale_f32 :: proc "contextless" (v: Vector3f32) -> (m: Matrix4f32) { return } @(require_results) -matrix4_scale_f64 :: proc "contextless" (v: Vector3f64) -> (m: Matrix4f64) { +matrix4_scale_f64 :: proc "contextless" (v: Vector3f64) -> (m: Matrix4f64) #no_bounds_check { m[0][0] = v[0] m[1][1] = v[1] m[2][2] = v[2] @@ -2225,7 +2225,7 @@ matrix4_look_at_from_fru :: proc{ @(require_results) -matrix4_perspective_f16 :: proc "contextless" (fovy, aspect, near, far: f16, flip_z_axis := true) -> (m: Matrix4f16) { +matrix4_perspective_f16 :: proc "contextless" (fovy, aspect, near, far: f16, flip_z_axis := true) -> (m: Matrix4f16) #no_bounds_check { tan_half_fovy := math.tan(0.5 * fovy) m[0, 0] = 1 / (aspect*tan_half_fovy) m[1, 1] = 1 / (tan_half_fovy) @@ -2240,7 +2240,7 @@ matrix4_perspective_f16 :: proc "contextless" (fovy, aspect, near, far: f16, fli return } @(require_results) -matrix4_perspective_f32 :: proc "contextless" (fovy, aspect, near, far: f32, flip_z_axis := true) -> (m: Matrix4f32) { +matrix4_perspective_f32 :: proc "contextless" (fovy, aspect, near, far: f32, flip_z_axis := true) -> (m: Matrix4f32) #no_bounds_check { tan_half_fovy := math.tan(0.5 * fovy) m[0, 0] = 1 / (aspect*tan_half_fovy) m[1, 1] = 1 / (tan_half_fovy) @@ -2255,7 +2255,7 @@ matrix4_perspective_f32 :: proc "contextless" (fovy, aspect, near, far: f32, fli return } @(require_results) -matrix4_perspective_f64 :: proc "contextless" (fovy, aspect, near, far: f64, flip_z_axis := true) -> (m: Matrix4f64) { +matrix4_perspective_f64 :: proc "contextless" (fovy, aspect, near, far: f64, flip_z_axis := true) -> (m: Matrix4f64) #no_bounds_check { tan_half_fovy := math.tan(0.5 * fovy) m[0, 0] = 1 / (aspect*tan_half_fovy) m[1, 1] = 1 / (tan_half_fovy) @@ -2278,7 +2278,7 @@ matrix4_perspective :: proc{ @(require_results) -matrix_ortho3d_f16 :: proc "contextless" (left, right, bottom, top, near, far: f16, flip_z_axis := true) -> (m: Matrix4f16) { +matrix_ortho3d_f16 :: proc "contextless" (left, right, bottom, top, near, far: f16, flip_z_axis := true) -> (m: Matrix4f16) #no_bounds_check { m[0, 0] = +2 / (right - left) m[1, 1] = +2 / (top - bottom) m[2, 2] = +2 / (far - near) @@ -2294,7 +2294,7 @@ matrix_ortho3d_f16 :: proc "contextless" (left, right, bottom, top, near, far: f return } @(require_results) -matrix_ortho3d_f32 :: proc "contextless" (left, right, bottom, top, near, far: f32, flip_z_axis := true) -> (m: Matrix4f32) { +matrix_ortho3d_f32 :: proc "contextless" (left, right, bottom, top, near, far: f32, flip_z_axis := true) -> (m: Matrix4f32) #no_bounds_check { m[0, 0] = +2 / (right - left) m[1, 1] = +2 / (top - bottom) m[2, 2] = +2 / (far - near) @@ -2310,7 +2310,7 @@ matrix_ortho3d_f32 :: proc "contextless" (left, right, bottom, top, near, far: f return } @(require_results) -matrix_ortho3d_f64 :: proc "contextless" (left, right, bottom, top, near, far: f64, flip_z_axis := true) -> (m: Matrix4f64) { +matrix_ortho3d_f64 :: proc "contextless" (left, right, bottom, top, near, far: f64, flip_z_axis := true) -> (m: Matrix4f64) #no_bounds_check { m[0, 0] = +2 / (right - left) m[1, 1] = +2 / (top - bottom) m[2, 2] = +2 / (far - near) @@ -2334,7 +2334,7 @@ matrix_ortho3d :: proc{ @(require_results) -matrix4_infinite_perspective_f16 :: proc "contextless" (fovy, aspect, near: f16, flip_z_axis := true) -> (m: Matrix4f16) { +matrix4_infinite_perspective_f16 :: proc "contextless" (fovy, aspect, near: f16, flip_z_axis := true) -> (m: Matrix4f16) #no_bounds_check { tan_half_fovy := math.tan(0.5 * fovy) m[0, 0] = 1 / (aspect*tan_half_fovy) m[1, 1] = 1 / (tan_half_fovy) @@ -2349,7 +2349,7 @@ matrix4_infinite_perspective_f16 :: proc "contextless" (fovy, aspect, near: f16, return } @(require_results) -matrix4_infinite_perspective_f32 :: proc "contextless" (fovy, aspect, near: f32, flip_z_axis := true) -> (m: Matrix4f32) { +matrix4_infinite_perspective_f32 :: proc "contextless" (fovy, aspect, near: f32, flip_z_axis := true) -> (m: Matrix4f32) #no_bounds_check { tan_half_fovy := math.tan(0.5 * fovy) m[0, 0] = 1 / (aspect*tan_half_fovy) m[1, 1] = 1 / (tan_half_fovy) @@ -2364,7 +2364,7 @@ matrix4_infinite_perspective_f32 :: proc "contextless" (fovy, aspect, near: f32, return } @(require_results) -matrix4_infinite_perspective_f64 :: proc "contextless" (fovy, aspect, near: f64, flip_z_axis := true) -> (m: Matrix4f64) { +matrix4_infinite_perspective_f64 :: proc "contextless" (fovy, aspect, near: f64, flip_z_axis := true) -> (m: Matrix4f64) #no_bounds_check { tan_half_fovy := math.tan(0.5 * fovy) m[0, 0] = 1 / (aspect*tan_half_fovy) m[1, 1] = 1 / (tan_half_fovy) @@ -2387,19 +2387,19 @@ matrix4_infinite_perspective :: proc{ @(require_results) -matrix2_from_scalar_f16 :: proc "contextless" (f: f16) -> (m: Matrix2f16) { +matrix2_from_scalar_f16 :: proc "contextless" (f: f16) -> (m: Matrix2f16) #no_bounds_check { m[0, 0], m[1, 0] = f, 0 m[0, 1], m[1, 1] = 0, f return } @(require_results) -matrix2_from_scalar_f32 :: proc "contextless" (f: f32) -> (m: Matrix2f32) { +matrix2_from_scalar_f32 :: proc "contextless" (f: f32) -> (m: Matrix2f32) #no_bounds_check { m[0, 0], m[1, 0] = f, 0 m[0, 1], m[1, 1] = 0, f return } @(require_results) -matrix2_from_scalar_f64 :: proc "contextless" (f: f64) -> (m: Matrix2f64) { +matrix2_from_scalar_f64 :: proc "contextless" (f: f64) -> (m: Matrix2f64) #no_bounds_check { m[0, 0], m[1, 0] = f, 0 m[0, 1], m[1, 1] = 0, f return @@ -2412,21 +2412,21 @@ matrix2_from_scalar :: proc{ @(require_results) -matrix3_from_scalar_f16 :: proc "contextless" (f: f16) -> (m: Matrix3f16) { +matrix3_from_scalar_f16 :: proc "contextless" (f: f16) -> (m: Matrix3f16) #no_bounds_check { m[0, 0], m[1, 0], m[2, 0] = f, 0, 0 m[0, 1], m[1, 1], m[2, 1] = 0, f, 0 m[0, 2], m[1, 2], m[2, 2] = 0, 0, f return } @(require_results) -matrix3_from_scalar_f32 :: proc "contextless" (f: f32) -> (m: Matrix3f32) { +matrix3_from_scalar_f32 :: proc "contextless" (f: f32) -> (m: Matrix3f32) #no_bounds_check { m[0, 0], m[1, 0], m[2, 0] = f, 0, 0 m[0, 1], m[1, 1], m[2, 1] = 0, f, 0 m[0, 2], m[1, 2], m[2, 2] = 0, 0, f return } @(require_results) -matrix3_from_scalar_f64 :: proc "contextless" (f: f64) -> (m: Matrix3f64) { +matrix3_from_scalar_f64 :: proc "contextless" (f: f64) -> (m: Matrix3f64) #no_bounds_check { m[0, 0], m[1, 0], m[2, 0] = f, 0, 0 m[0, 1], m[1, 1], m[2, 1] = 0, f, 0 m[0, 2], m[1, 2], m[2, 2] = 0, 0, f @@ -2440,7 +2440,7 @@ matrix3_from_scalar :: proc{ @(require_results) -matrix4_from_scalar_f16 :: proc "contextless" (f: f16) -> (m: Matrix4f16) { +matrix4_from_scalar_f16 :: proc "contextless" (f: f16) -> (m: Matrix4f16) #no_bounds_check { m[0, 0], m[1, 0], m[2, 0], m[3, 0] = f, 0, 0, 0 m[0, 1], m[1, 1], m[2, 1], m[3, 1] = 0, f, 0, 0 m[0, 2], m[1, 2], m[2, 2], m[3, 2] = 0, 0, f, 0 @@ -2448,7 +2448,7 @@ matrix4_from_scalar_f16 :: proc "contextless" (f: f16) -> (m: Matrix4f16) { return } @(require_results) -matrix4_from_scalar_f32 :: proc "contextless" (f: f32) -> (m: Matrix4f32) { +matrix4_from_scalar_f32 :: proc "contextless" (f: f32) -> (m: Matrix4f32) #no_bounds_check { m[0, 0], m[1, 0], m[2, 0], m[3, 0] = f, 0, 0, 0 m[0, 1], m[1, 1], m[2, 1], m[3, 1] = 0, f, 0, 0 m[0, 2], m[1, 2], m[2, 2], m[3, 2] = 0, 0, f, 0 @@ -2456,7 +2456,7 @@ matrix4_from_scalar_f32 :: proc "contextless" (f: f32) -> (m: Matrix4f32) { return } @(require_results) -matrix4_from_scalar_f64 :: proc "contextless" (f: f64) -> (m: Matrix4f64) { +matrix4_from_scalar_f64 :: proc "contextless" (f: f64) -> (m: Matrix4f64) #no_bounds_check { m[0, 0], m[1, 0], m[2, 0], m[3, 0] = f, 0, 0, 0 m[0, 1], m[1, 1], m[2, 1], m[3, 1] = 0, f, 0, 0 m[0, 2], m[1, 2], m[2, 2], m[3, 2] = 0, 0, f, 0 @@ -2471,19 +2471,19 @@ matrix4_from_scalar :: proc{ @(require_results) -matrix2_from_matrix3_f16 :: proc "contextless" (m: Matrix3f16) -> (r: Matrix2f16) { +matrix2_from_matrix3_f16 :: proc "contextless" (m: Matrix3f16) -> (r: Matrix2f16) #no_bounds_check { r[0, 0], r[1, 0] = m[0, 0], m[1, 0] r[0, 1], r[1, 1] = m[0, 1], m[1, 1] return } @(require_results) -matrix2_from_matrix3_f32 :: proc "contextless" (m: Matrix3f32) -> (r: Matrix2f32) { +matrix2_from_matrix3_f32 :: proc "contextless" (m: Matrix3f32) -> (r: Matrix2f32) #no_bounds_check { r[0, 0], r[1, 0] = m[0, 0], m[1, 0] r[0, 1], r[1, 1] = m[0, 1], m[1, 1] return } @(require_results) -matrix2_from_matrix3_f64 :: proc "contextless" (m: Matrix3f64) -> (r: Matrix2f64) { +matrix2_from_matrix3_f64 :: proc "contextless" (m: Matrix3f64) -> (r: Matrix2f64) #no_bounds_check { r[0, 0], r[1, 0] = m[0, 0], m[1, 0] r[0, 1], r[1, 1] = m[0, 1], m[1, 1] return @@ -2496,19 +2496,19 @@ matrix2_from_matrix3 :: proc{ @(require_results) -matrix2_from_matrix4_f16 :: proc "contextless" (m: Matrix4f16) -> (r: Matrix2f16) { +matrix2_from_matrix4_f16 :: proc "contextless" (m: Matrix4f16) -> (r: Matrix2f16) #no_bounds_check { r[0, 0], r[1, 0] = m[0, 0], m[1, 0] r[0, 1], r[1, 1] = m[0, 1], m[1, 1] return } @(require_results) -matrix2_from_matrix4_f32 :: proc "contextless" (m: Matrix4f32) -> (r: Matrix2f32) { +matrix2_from_matrix4_f32 :: proc "contextless" (m: Matrix4f32) -> (r: Matrix2f32) #no_bounds_check { r[0, 0], r[1, 0] = m[0, 0], m[1, 0] r[0, 1], r[1, 1] = m[0, 1], m[1, 1] return } @(require_results) -matrix2_from_matrix4_f64 :: proc "contextless" (m: Matrix4f64) -> (r: Matrix2f64) { +matrix2_from_matrix4_f64 :: proc "contextless" (m: Matrix4f64) -> (r: Matrix2f64) #no_bounds_check { r[0, 0], r[1, 0] = m[0, 0], m[1, 0] r[0, 1], r[1, 1] = m[0, 1], m[1, 1] return @@ -2521,21 +2521,21 @@ matrix2_from_matrix4 :: proc{ @(require_results) -matrix3_from_matrix2_f16 :: proc "contextless" (m: Matrix2f16) -> (r: Matrix3f16) { +matrix3_from_matrix2_f16 :: proc "contextless" (m: Matrix2f16) -> (r: Matrix3f16) #no_bounds_check { r[0, 0], r[1, 0], r[2, 0] = m[0, 0], m[1, 0], 0 r[0, 1], r[1, 1], r[2, 1] = m[0, 1], m[1, 1], 0 r[0, 2], r[1, 2], r[2, 2] = 0, 0, 1 return } @(require_results) -matrix3_from_matrix2_f32 :: proc "contextless" (m: Matrix2f32) -> (r: Matrix3f32) { +matrix3_from_matrix2_f32 :: proc "contextless" (m: Matrix2f32) -> (r: Matrix3f32) #no_bounds_check { r[0, 0], r[1, 0], r[2, 0] = m[0, 0], m[1, 0], 0 r[0, 1], r[1, 1], r[2, 1] = m[0, 1], m[1, 1], 0 r[0, 2], r[1, 2], r[2, 2] = 0, 0, 1 return } @(require_results) -matrix3_from_matrix2_f64 :: proc "contextless" (m: Matrix2f64) -> (r: Matrix3f64) { +matrix3_from_matrix2_f64 :: proc "contextless" (m: Matrix2f64) -> (r: Matrix3f64) #no_bounds_check { r[0, 0], r[1, 0], r[2, 0] = m[0, 0], m[1, 0], 0 r[0, 1], r[1, 1], r[2, 1] = m[0, 1], m[1, 1], 0 r[0, 2], r[1, 2], r[2, 2] = 0, 0, 1 @@ -2549,21 +2549,21 @@ matrix3_from_matrix2 :: proc{ @(require_results) -matrix3_from_matrix4_f16 :: proc "contextless" (m: Matrix4f16) -> (r: Matrix3f16) { +matrix3_from_matrix4_f16 :: proc "contextless" (m: Matrix4f16) -> (r: Matrix3f16) #no_bounds_check { r[0, 0], r[1, 0], r[2, 0] = m[0, 0], m[1, 0], m[2, 0] r[0, 1], r[1, 1], r[2, 1] = m[0, 1], m[1, 1], m[2, 1] r[0, 2], r[1, 2], r[2, 2] = m[0, 2], m[1, 2], m[2, 2] return } @(require_results) -matrix3_from_matrix4_f32 :: proc "contextless" (m: Matrix4f32) -> (r: Matrix3f32) { +matrix3_from_matrix4_f32 :: proc "contextless" (m: Matrix4f32) -> (r: Matrix3f32) #no_bounds_check { r[0, 0], r[1, 0], r[2, 0] = m[0, 0], m[1, 0], m[2, 0] r[0, 1], r[1, 1], r[2, 1] = m[0, 1], m[1, 1], m[2, 1] r[0, 2], r[1, 2], r[2, 2] = m[0, 2], m[1, 2], m[2, 2] return } @(require_results) -matrix3_from_matrix4_f64 :: proc "contextless" (m: Matrix4f64) -> (r: Matrix3f64) { +matrix3_from_matrix4_f64 :: proc "contextless" (m: Matrix4f64) -> (r: Matrix3f64) #no_bounds_check { r[0, 0], r[1, 0], r[2, 0] = m[0, 0], m[1, 0], m[2, 0] r[0, 1], r[1, 1], r[2, 1] = m[0, 1], m[1, 1], m[2, 1] r[0, 2], r[1, 2], r[2, 2] = m[0, 2], m[1, 2], m[2, 2] @@ -2577,7 +2577,7 @@ matrix3_from_matrix4 :: proc{ @(require_results) -matrix4_from_matrix2_f16 :: proc "contextless" (m: Matrix2f16) -> (r: Matrix4f16) { +matrix4_from_matrix2_f16 :: proc "contextless" (m: Matrix2f16) -> (r: Matrix4f16) #no_bounds_check { r[0, 0], r[1, 0], r[2, 0], r[3, 0] = m[0, 0], m[1, 0], 0, 0 r[0, 1], r[1, 1], r[2, 1], r[3, 1] = m[0, 1], m[1, 1], 0, 0 r[0, 2], r[1, 2], r[2, 2], r[3, 2] = 0, 0, 1, 0 @@ -2585,7 +2585,7 @@ matrix4_from_matrix2_f16 :: proc "contextless" (m: Matrix2f16) -> (r: Matrix4f16 return } @(require_results) -matrix4_from_matrix2_f32 :: proc "contextless" (m: Matrix2f32) -> (r: Matrix4f32) { +matrix4_from_matrix2_f32 :: proc "contextless" (m: Matrix2f32) -> (r: Matrix4f32) #no_bounds_check { r[0, 0], r[1, 0], r[2, 0], r[3, 0] = m[0, 0], m[1, 0], 0, 0 r[0, 1], r[1, 1], r[2, 1], r[3, 1] = m[0, 1], m[1, 1], 0, 0 r[0, 2], r[1, 2], r[2, 2], r[3, 2] = 0, 0, 1, 0 @@ -2593,7 +2593,7 @@ matrix4_from_matrix2_f32 :: proc "contextless" (m: Matrix2f32) -> (r: Matrix4f32 return } @(require_results) -matrix4_from_matrix2_f64 :: proc "contextless" (m: Matrix2f64) -> (r: Matrix4f64) { +matrix4_from_matrix2_f64 :: proc "contextless" (m: Matrix2f64) -> (r: Matrix4f64) #no_bounds_check { r[0, 0], r[1, 0], r[2, 0], r[3, 0] = m[0, 0], m[1, 0], 0, 0 r[0, 1], r[1, 1], r[2, 1], r[3, 1] = m[0, 1], m[1, 1], 0, 0 r[0, 2], r[1, 2], r[2, 2], r[3, 2] = 0, 0, 1, 0 @@ -2608,7 +2608,7 @@ matrix4_from_matrix2 :: proc{ @(require_results) -matrix4_from_matrix3_f16 :: proc "contextless" (m: Matrix3f16) -> (r: Matrix4f16) { +matrix4_from_matrix3_f16 :: proc "contextless" (m: Matrix3f16) -> (r: Matrix4f16) #no_bounds_check { r[0, 0], r[1, 0], r[2, 0], r[3, 0] = m[0, 0], m[1, 0], m[2, 0], 0 r[0, 1], r[1, 1], r[2, 1], r[3, 1] = m[0, 1], m[1, 1], m[2, 1], 0 r[0, 2], r[1, 2], r[2, 2], r[3, 2] = m[0, 2], m[1, 2], m[2, 2], 0 @@ -2616,7 +2616,7 @@ matrix4_from_matrix3_f16 :: proc "contextless" (m: Matrix3f16) -> (r: Matrix4f16 return } @(require_results) -matrix4_from_matrix3_f32 :: proc "contextless" (m: Matrix3f32) -> (r: Matrix4f32) { +matrix4_from_matrix3_f32 :: proc "contextless" (m: Matrix3f32) -> (r: Matrix4f32) #no_bounds_check { r[0, 0], r[1, 0], r[2, 0], r[3, 0] = m[0, 0], m[1, 0], m[2, 0], 0 r[0, 1], r[1, 1], r[2, 1], r[3, 1] = m[0, 1], m[1, 1], m[2, 1], 0 r[0, 2], r[1, 2], r[2, 2], r[3, 2] = m[0, 2], m[1, 2], m[2, 2], 0 @@ -2624,7 +2624,7 @@ matrix4_from_matrix3_f32 :: proc "contextless" (m: Matrix3f32) -> (r: Matrix4f32 return } @(require_results) -matrix4_from_matrix3_f64 :: proc "contextless" (m: Matrix3f64) -> (r: Matrix4f64) { +matrix4_from_matrix3_f64 :: proc "contextless" (m: Matrix3f64) -> (r: Matrix4f64) #no_bounds_check { r[0, 0], r[1, 0], r[2, 0], r[3, 0] = m[0, 0], m[1, 0], m[2, 0], 0 r[0, 1], r[1, 1], r[2, 1], r[3, 1] = m[0, 1], m[1, 1], m[2, 1], 0 r[0, 2], r[1, 2], r[2, 2], r[3, 2] = m[0, 2], m[1, 2], m[2, 2], 0 @@ -2710,7 +2710,7 @@ to_quaternion :: proc{ @(require_results) -matrix2_orthonormalize_f16 :: proc "contextless" (m: Matrix2f16) -> (r: Matrix2f16) { +matrix2_orthonormalize_f16 :: proc "contextless" (m: Matrix2f16) -> (r: Matrix2f16) #no_bounds_check { r[0] = normalize(m[0]) d0 := dot(r[0], r[1]) @@ -2720,7 +2720,7 @@ matrix2_orthonormalize_f16 :: proc "contextless" (m: Matrix2f16) -> (r: Matrix2f return } @(require_results) -matrix2_orthonormalize_f32 :: proc "contextless" (m: Matrix2f32) -> (r: Matrix2f32) { +matrix2_orthonormalize_f32 :: proc "contextless" (m: Matrix2f32) -> (r: Matrix2f32) #no_bounds_check { r[0] = normalize(m[0]) d0 := dot(r[0], r[1]) @@ -2730,7 +2730,7 @@ matrix2_orthonormalize_f32 :: proc "contextless" (m: Matrix2f32) -> (r: Matrix2f return } @(require_results) -matrix2_orthonormalize_f64 :: proc "contextless" (m: Matrix2f64) -> (r: Matrix2f64) { +matrix2_orthonormalize_f64 :: proc "contextless" (m: Matrix2f64) -> (r: Matrix2f64) #no_bounds_check { r[0] = normalize(m[0]) d0 := dot(r[0], r[1]) @@ -2747,7 +2747,7 @@ matrix2_orthonormalize :: proc{ @(require_results) -matrix3_orthonormalize_f16 :: proc "contextless" (m: Matrix3f16) -> (r: Matrix3f16) { +matrix3_orthonormalize_f16 :: proc "contextless" (m: Matrix3f16) -> (r: Matrix3f16) #no_bounds_check { r[0] = normalize(m[0]) d0 := dot(r[0], r[1]) @@ -2762,7 +2762,7 @@ matrix3_orthonormalize_f16 :: proc "contextless" (m: Matrix3f16) -> (r: Matrix3f return } @(require_results) -matrix3_orthonormalize_f32 :: proc "contextless" (m: Matrix3f32) -> (r: Matrix3f32) { +matrix3_orthonormalize_f32 :: proc "contextless" (m: Matrix3f32) -> (r: Matrix3f32) #no_bounds_check { r[0] = normalize(m[0]) d0 := dot(r[0], r[1]) @@ -2777,7 +2777,7 @@ matrix3_orthonormalize_f32 :: proc "contextless" (m: Matrix3f32) -> (r: Matrix3f return } @(require_results) -matrix3_orthonormalize_f64 :: proc "contextless" (m: Matrix3f64) -> (r: Matrix3f64) { +matrix3_orthonormalize_f64 :: proc "contextless" (m: Matrix3f64) -> (r: Matrix3f64) #no_bounds_check { r[0] = normalize(m[0]) d0 := dot(r[0], r[1]) From 9469b90b019f331109300658a17d1614bf4dabee Mon Sep 17 00:00:00 2001 From: Lucas Perlind Date: Tue, 13 Feb 2024 17:13:17 +1100 Subject: [PATCH 10/22] Add ID3DUserDefinedAnnotation --- vendor/directx/d3d11/d3d11.odin | 16 ++++++++++++++++ vendor/directx/dxgi/dxgidebug.odin | 1 + 2 files changed, 17 insertions(+) diff --git a/vendor/directx/d3d11/d3d11.odin b/vendor/directx/d3d11/d3d11.odin index 53d45c47c..a1e3cf039 100644 --- a/vendor/directx/d3d11/d3d11.odin +++ b/vendor/directx/d3d11/d3d11.odin @@ -4,6 +4,7 @@ foreign import "system:d3d11.lib" import "../dxgi" import "../d3d_compiler" +import "core:sys/windows" IUnknown :: dxgi.IUnknown IUnknown_VTable :: dxgi.IUnknown_VTable @@ -16,6 +17,7 @@ IID :: dxgi.IID SIZE_T :: dxgi.SIZE_T BOOL :: dxgi.BOOL UINT :: dxgi.UINT +INT :: dxgi.INT RECT :: dxgi.RECT SIZE :: dxgi.SIZE @@ -5151,3 +5153,17 @@ MESSAGE_ID :: enum u32 { CalcSubresource :: #force_inline proc "contextless" (MipSlice: UINT, ArraySlice: UINT, MipLevels: UINT) -> UINT { return MipSlice + ArraySlice * MipLevels } + +ID3DUserDefinedAnnotation_UUID_STRING :: "B2DAAD8B-03D4-4DBF-95EB-32AB4B63D0AB" +ID3DUserDefinedAnnotation_UUID := &IID{0xB2DAAD8B, 0x03D4, 0x4DBF, {0x95, 0xEB, 0x32, 0xAB, 0x4B, 0x63, 0xD0, 0xAB}} +ID3DUserDefinedAnnotation :: struct #raw_union { + #subtype iunknown: IUnknown, + using vtable: ^ID3DUserDefinedAnnotation_VTable, +} +ID3DUserDefinedAnnotation_VTable :: struct { + using iunknown_vtable: IUnknown_VTable, + BeginEvent: proc "system" (this: ^ID3DUserDefinedAnnotation, Name: windows.LPCWSTR) -> INT, + EndEvent: proc "system" (this: ^ID3DUserDefinedAnnotation) -> INT, + SetMarker: proc "system" (this: ^ID3DUserDefinedAnnotation, Name: windows.LPCWSTR), + GetStatus: proc "system" (this: ^ID3DUserDefinedAnnotation) -> BOOL, +} diff --git a/vendor/directx/dxgi/dxgidebug.odin b/vendor/directx/dxgi/dxgidebug.odin index f5d4904eb..98a92d953 100644 --- a/vendor/directx/dxgi/dxgidebug.odin +++ b/vendor/directx/dxgi/dxgidebug.odin @@ -11,6 +11,7 @@ DEBUG_RLO_FLAGS :: enum u32 { // TODO: convert to bit_set } UINT :: win32.UINT +INT :: win32.INT UINT64 :: win32.UINT64 LPCSTR :: win32.LPCSTR DEBUG_ID :: win32.GUID From 5cd57a3a7f96e4966a7a17f99363893911fbad0d Mon Sep 17 00:00:00 2001 From: gingerBill Date: Tue, 13 Feb 2024 15:50:07 +0000 Subject: [PATCH 11/22] Use `Raw_Map` as the debug information for a `map` --- src/check_type.cpp | 2 ++ src/llvm_backend_debug.cpp | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/check_type.cpp b/src/check_type.cpp index 01bb36255..03c7474fb 100644 --- a/src/check_type.cpp +++ b/src/check_type.cpp @@ -2307,6 +2307,7 @@ gb_internal void init_map_internal_types(Type *type) { metadata_type->Struct.fields[3] = alloc_entity_field(metadata_scope, make_token_ident("key_cell"), key_cell, false, 3, EntityState_Resolved); metadata_type->Struct.fields[4] = alloc_entity_field(metadata_scope, make_token_ident("value_cell"), value_cell, false, 4, EntityState_Resolved); metadata_type->Struct.scope = metadata_scope; + metadata_type->Struct.node = nullptr; gb_unused(type_size_of(metadata_type)); @@ -2323,6 +2324,7 @@ gb_internal void init_map_internal_types(Type *type) { debug_type->Struct.fields[2] = alloc_entity_field(scope, make_token_ident("allocator"), t_allocator, false, 2, EntityState_Resolved); debug_type->Struct.fields[3] = alloc_entity_field(scope, make_token_ident("__metadata"), metadata_type, false, 3, EntityState_Resolved); debug_type->Struct.scope = scope; + debug_type->Struct.node = nullptr; gb_unused(type_size_of(debug_type)); diff --git a/src/llvm_backend_debug.cpp b/src/llvm_backend_debug.cpp index 894c60729..6bcbac13f 100644 --- a/src/llvm_backend_debug.cpp +++ b/src/llvm_backend_debug.cpp @@ -710,7 +710,9 @@ gb_internal void lb_debug_complete_types(lbModule *m) { case Type_Map: GB_ASSERT(t_raw_map != nullptr); - bt = base_type(t->Map.debug_metadata_type); + // bt = base_type(t->Map.debug_metadata_type); + bt = base_type(t_raw_map); + GB_ASSERT(bt->kind == Type_Struct); /*fallthrough*/ case Type_Struct: if (file == nullptr) { From cbfb32c34c09fd13098f0127bc98c88b53587a97 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Tue, 13 Feb 2024 16:21:41 +0000 Subject: [PATCH 12/22] Fix race condition with regards to #soa arrays by using the fields mutex --- src/check_type.cpp | 10 +++++----- src/threading.cpp | 10 ++++++++++ 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/check_type.cpp b/src/check_type.cpp index 03c7474fb..66f8b1185 100644 --- a/src/check_type.cpp +++ b/src/check_type.cpp @@ -2553,6 +2553,8 @@ gb_internal Type *make_soa_struct_internal(CheckerContext *ctx, Ast *array_typ_e GB_ASSERT(is_type_struct(elem)); Type *old_struct = base_type(elem); + RW_MUTEX_GUARD(&old_struct->Struct.fields_mutex); + field_count = old_struct->Struct.fields.count; soa_struct = alloc_type_struct(); @@ -2593,21 +2595,19 @@ gb_internal Type *make_soa_struct_internal(CheckerContext *ctx, Ast *array_typ_e } if (soa_kind != StructSoa_Fixed) { - Entity *len_field = alloc_entity_field(scope, empty_token, t_int, false, cast(i32)field_count+0); + Entity *len_field = alloc_entity_field(scope, make_token_ident("__$len"), t_int, false, cast(i32)field_count+0); soa_struct->Struct.fields[field_count+0] = len_field; add_entity(ctx, scope, nullptr, len_field); add_entity_use(ctx, nullptr, len_field); if (soa_kind == StructSoa_Dynamic) { - Entity *cap_field = alloc_entity_field(scope, empty_token, t_int, false, cast(i32)field_count+1); + Entity *cap_field = alloc_entity_field(scope, make_token_ident("__$cap"), t_int, false, cast(i32)field_count+1); soa_struct->Struct.fields[field_count+1] = cap_field; add_entity(ctx, scope, nullptr, cap_field); add_entity_use(ctx, nullptr, cap_field); - Token token = {}; - token.string = str_lit("allocator"); init_mem_allocator(ctx->checker); - Entity *allocator_field = alloc_entity_field(scope, token, t_allocator, false, cast(i32)field_count+2); + Entity *allocator_field = alloc_entity_field(scope, make_token_ident("allocator"), t_allocator, false, cast(i32)field_count+2); soa_struct->Struct.fields[field_count+2] = allocator_field; add_entity(ctx, scope, nullptr, allocator_field); add_entity_use(ctx, nullptr, allocator_field); diff --git a/src/threading.cpp b/src/threading.cpp index c283da425..b8bc9b118 100644 --- a/src/threading.cpp +++ b/src/threading.cpp @@ -119,17 +119,25 @@ struct MutexGuard { explicit MutexGuard(RecursiveMutex *rm) noexcept : rm{rm} { mutex_lock(this->rm); } + explicit MutexGuard(RwMutex *rm) noexcept : rwm{rwm} { + rw_mutex_lock(this->rwm); + } explicit MutexGuard(BlockingMutex &bm) noexcept : bm{&bm} { mutex_lock(this->bm); } explicit MutexGuard(RecursiveMutex &rm) noexcept : rm{&rm} { mutex_lock(this->rm); } + explicit MutexGuard(RwMutex &rwm) noexcept : rwm{&rwm} { + rw_mutex_lock(this->rwm); + } ~MutexGuard() noexcept { if (this->bm) { mutex_unlock(this->bm); } else if (this->rm) { mutex_unlock(this->rm); + } else if (this->rwm) { + rw_mutex_unlock(this->rwm); } } @@ -137,10 +145,12 @@ struct MutexGuard { BlockingMutex *bm; RecursiveMutex *rm; + RwMutex *rwm; }; #define MUTEX_GUARD_BLOCK(m) if (MutexGuard GB_DEFER_3(_mutex_guard_){m}) #define MUTEX_GUARD(m) mutex_lock(m); defer (mutex_unlock(m)) +#define RW_MUTEX_GUARD(m) rw_mutex_lock(m); defer (rw_mutex_unlock(m)) struct RecursiveMutex { From d496dbf3a0ee05819ab6e802939b4219cfa9c7fe Mon Sep 17 00:00:00 2001 From: gingerBill Date: Tue, 13 Feb 2024 16:54:41 +0000 Subject: [PATCH 13/22] Fix race condition with #soa --- src/check_type.cpp | 6 ++---- src/threading.cpp | 16 ++++++++++++++++ src/types.cpp | 17 ++++++----------- 3 files changed, 24 insertions(+), 15 deletions(-) diff --git a/src/check_type.cpp b/src/check_type.cpp index 66f8b1185..8a140d95e 100644 --- a/src/check_type.cpp +++ b/src/check_type.cpp @@ -632,9 +632,6 @@ gb_internal void check_struct_type(CheckerContext *ctx, Type *struct_type, Ast * scope_reserve(ctx->scope, min_field_count); - rw_mutex_lock(&struct_type->Struct.fields_mutex); - defer (rw_mutex_unlock(&struct_type->Struct.fields_mutex)); - if (st->is_raw_union && min_field_count > 1) { struct_type->Struct.is_raw_union = true; context = str_lit("struct #raw_union"); @@ -662,6 +659,7 @@ gb_internal void check_struct_type(CheckerContext *ctx, Type *struct_type, Ast * gb_unused(where_clause_ok); } check_struct_fields(ctx, node, &struct_type->Struct.fields, &struct_type->Struct.tags, st->fields, min_field_count, struct_type, context); + wait_signal_set(&struct_type->Struct.fields_wait_signal); } #define ST_ALIGN(_name) if (st->_name != nullptr) { \ @@ -2553,8 +2551,8 @@ gb_internal Type *make_soa_struct_internal(CheckerContext *ctx, Ast *array_typ_e GB_ASSERT(is_type_struct(elem)); Type *old_struct = base_type(elem); - RW_MUTEX_GUARD(&old_struct->Struct.fields_mutex); + wait_signal_until_available(&old_struct->Struct.fields_wait_signal); field_count = old_struct->Struct.fields.count; soa_struct = alloc_type_struct(); diff --git a/src/threading.cpp b/src/threading.cpp index b8bc9b118..731394126 100644 --- a/src/threading.cpp +++ b/src/threading.cpp @@ -107,6 +107,22 @@ gb_internal void thread_set_name (Thread *t, char const *name); gb_internal void yield_thread(void); gb_internal void yield_process(void); +struct Wait_Signal { + Futex futex; +}; + +gb_internal void wait_signal_until_available(Wait_Signal *ws) { + if (ws->futex.load() == 0) { + futex_wait(&ws->futex, 1); + } +} + +gb_internal void wait_signal_set(Wait_Signal *ws) { + ws->futex.store(1); + futex_broadcast(&ws->futex); +} + + struct MutexGuard { MutexGuard() = delete; diff --git a/src/types.cpp b/src/types.cpp index 04fb06582..2f1994574 100644 --- a/src/types.cpp +++ b/src/types.cpp @@ -144,7 +144,7 @@ struct TypeStruct { Type * soa_elem; i32 soa_count; StructSoaKind soa_kind; - RwMutex fields_mutex; + Wait_Signal fields_wait_signal; BlockingMutex offset_mutex; // for settings offsets bool is_polymorphic; @@ -2969,9 +2969,8 @@ gb_internal Selection lookup_field_from_index(Type *type, i64 index) { isize max_count = 0; switch (type->kind) { case Type_Struct: - rw_mutex_shared_lock(&type->Struct.fields_mutex); + wait_signal_until_available(&type->Struct.fields_wait_signal); max_count = type->Struct.fields.count; - rw_mutex_shared_unlock(&type->Struct.fields_mutex); break; case Type_Tuple: max_count = type->Tuple.variables.count; break; } @@ -2982,8 +2981,7 @@ gb_internal Selection lookup_field_from_index(Type *type, i64 index) { switch (type->kind) { case Type_Struct: { - rw_mutex_shared_lock(&type->Struct.fields_mutex); - defer (rw_mutex_shared_unlock(&type->Struct.fields_mutex)); + wait_signal_until_available(&type->Struct.fields_wait_signal); for (isize i = 0; i < max_count; i++) { Entity *f = type->Struct.fields[i]; if (f->kind == Entity_Variable) { @@ -3048,9 +3046,8 @@ gb_internal Selection lookup_field_with_selection(Type *type_, String field_name } } if (type->kind == Type_Struct) { - rw_mutex_shared_lock(&type->Struct.fields_mutex); + wait_signal_until_available(&type->Struct.fields_wait_signal); isize field_count = type->Struct.fields.count; - rw_mutex_shared_unlock(&type->Struct.fields_mutex); if (field_count != 0) for_array(i, type->Struct.fields) { Entity *f = type->Struct.fields[i]; if (f->flags&EntityFlag_Using) { @@ -3079,9 +3076,8 @@ gb_internal Selection lookup_field_with_selection(Type *type_, String field_name } if (type->kind == Type_Struct) { - rw_mutex_shared_lock(&type->Struct.fields_mutex); + wait_signal_until_available(&type->Struct.fields_wait_signal); Scope *s = type->Struct.scope; - rw_mutex_shared_unlock(&type->Struct.fields_mutex); if (s != nullptr) { Entity *found = scope_lookup_current(s, field_name); if (found != nullptr && found->kind != Entity_Variable) { @@ -3129,9 +3125,8 @@ gb_internal Selection lookup_field_with_selection(Type *type_, String field_name } } - rw_mutex_shared_lock(&type->Struct.fields_mutex); + wait_signal_until_available(&type->Struct.fields_wait_signal); isize field_count = type->Struct.fields.count; - rw_mutex_shared_unlock(&type->Struct.fields_mutex); if (field_count != 0) for_array(i, type->Struct.fields) { Entity *f = type->Struct.fields[i]; if (f->kind != Entity_Variable || (f->flags & EntityFlag_Field) == 0) { From 912c326d8b05dba282a9a58e2405b09f774dbe34 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Tue, 13 Feb 2024 17:06:04 +0000 Subject: [PATCH 14/22] Fix typo that causes map info debug issues --- src/llvm_backend_debug.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/llvm_backend_debug.cpp b/src/llvm_backend_debug.cpp index 6bcbac13f..f45cf0cbc 100644 --- a/src/llvm_backend_debug.cpp +++ b/src/llvm_backend_debug.cpp @@ -710,8 +710,8 @@ gb_internal void lb_debug_complete_types(lbModule *m) { case Type_Map: GB_ASSERT(t_raw_map != nullptr); - // bt = base_type(t->Map.debug_metadata_type); - bt = base_type(t_raw_map); + bt = base_type(bt->Map.debug_metadata_type); + // bt = base_type(t_raw_map); GB_ASSERT(bt->kind == Type_Struct); /*fallthrough*/ case Type_Struct: From c5c2a4d09d98f0d3b6263e204785553e47b83395 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Tue, 13 Feb 2024 17:13:39 +0000 Subject: [PATCH 15/22] Fix typo --- src/threading.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/threading.cpp b/src/threading.cpp index 731394126..725b58c89 100644 --- a/src/threading.cpp +++ b/src/threading.cpp @@ -135,7 +135,7 @@ struct MutexGuard { explicit MutexGuard(RecursiveMutex *rm) noexcept : rm{rm} { mutex_lock(this->rm); } - explicit MutexGuard(RwMutex *rm) noexcept : rwm{rwm} { + explicit MutexGuard(RwMutex *rwm) noexcept : rwm{rwm} { rw_mutex_lock(this->rwm); } explicit MutexGuard(BlockingMutex &bm) noexcept : bm{&bm} { From 16584779fb9589ef9acf859f82d1e7e2f5c84c0a Mon Sep 17 00:00:00 2001 From: Laytan Laats Date: Wed, 14 Feb 2024 19:57:57 +0100 Subject: [PATCH 16/22] miniaudio: update to 0.11.21 --- vendor/miniaudio/common.odin | 42 +- vendor/miniaudio/data_conversion.odin | 80 +- vendor/miniaudio/device_io_procs.odin | 19 +- vendor/miniaudio/device_io_types.odin | 246 +- vendor/miniaudio/doc.odin | 323 +- vendor/miniaudio/effects.odin | 39 +- vendor/miniaudio/encoding.odin | 2 +- vendor/miniaudio/engine.odin | 132 +- vendor/miniaudio/filtering.odin | 2 +- vendor/miniaudio/generation.odin | 2 +- vendor/miniaudio/job_queue.odin | 2 +- vendor/miniaudio/logging.odin | 9 +- vendor/miniaudio/node_graph.odin | 11 +- vendor/miniaudio/resource_manager.odin | 1 + vendor/miniaudio/src/miniaudio.h | 29494 ++++++++++++----------- vendor/miniaudio/utilities.odin | 37 +- 16 files changed, 16433 insertions(+), 14008 deletions(-) diff --git a/vendor/miniaudio/common.odin b/vendor/miniaudio/common.odin index e77d265bd..abc108cf9 100644 --- a/vendor/miniaudio/common.odin +++ b/vendor/miniaudio/common.odin @@ -141,28 +141,32 @@ result :: enum c.int { CANCELLED = -51, MEMORY_ALREADY_MAPPED = -52, + /* General non-standard errors. */ + CRC_MISMATCH = -100, + /* General miniaudio-specific errors. */ - FORMAT_NOT_SUPPORTED = -100, - DEVICE_TYPE_NOT_SUPPORTED = -101, - SHARE_MODE_NOT_SUPPORTED = -102, - NO_BACKEND = -103, - NO_DEVICE = -104, - API_NOT_FOUND = -105, - INVALID_DEVICE_CONFIG = -106, - LOOP = -107, + FORMAT_NOT_SUPPORTED = -200, + DEVICE_TYPE_NOT_SUPPORTED = -201, + SHARE_MODE_NOT_SUPPORTED = -202, + NO_BACKEND = -203, + NO_DEVICE = -204, + API_NOT_FOUND = -205, + INVALID_DEVICE_CONFIG = -206, + LOOP = -207, + BACKEND_NOT_ENABLED = -208, /* State errors. */ - DEVICE_NOT_INITIALIZED = -200, - DEVICE_ALREADY_INITIALIZED = -201, - DEVICE_NOT_STARTED = -202, - DEVICE_NOT_STOPPED = -203, + DEVICE_NOT_INITIALIZED = -300, + DEVICE_ALREADY_INITIALIZED = -301, + DEVICE_NOT_STARTED = -302, + DEVICE_NOT_STOPPED = -303, /* Operation errors. */ - FAILED_TO_INIT_BACKEND = -300, - FAILED_TO_OPEN_BACKEND_DEVICE = -301, - FAILED_TO_START_BACKEND_DEVICE = -302, - FAILED_TO_STOP_BACKEND_DEVICE = -303, -} + FAILED_TO_INIT_BACKEND = -400, + FAILED_TO_OPEN_BACKEND_DEVICE = -401, + FAILED_TO_START_BACKEND_DEVICE = -402, + FAILED_TO_STOP_BACKEND_DEVICE = -403, +} MIN_CHANNELS :: 1 @@ -214,7 +218,7 @@ standard_sample_rate :: enum u32 { rate_192000 = 192000, rate_16000 = 16000, /* Extreme lows */ - rate_11025 = 11250, + rate_11025 = 11025, rate_8000 = 8000, rate_352800 = 352800, /* Extreme highs */ @@ -229,7 +233,7 @@ standard_sample_rate :: enum u32 { channel_mix_mode :: enum c.int { rectangular = 0, /* Simple averaging based on the plane(s) the channel is sitting on. */ simple, /* Drop excess channels; zeroed out extra channels. */ - custom_weights, /* Use custom weights specified in ma_channel_router_config. */ + custom_weights, /* Use custom weights specified in ma_channel_converter_config. */ default = rectangular, } diff --git a/vendor/miniaudio/data_conversion.odin b/vendor/miniaudio/data_conversion.odin index d75872665..568adf16f 100644 --- a/vendor/miniaudio/data_conversion.odin +++ b/vendor/miniaudio/data_conversion.odin @@ -138,7 +138,7 @@ foreign lib { /* Converts the given input data. - Both the input and output frames must be in the format specified in the config when the resampler was initilized. + Both the input and output frames must be in the format specified in the config when the resampler was initialized. On input, [pFrameCountOut] contains the number of output frames to process. On output it contains the number of output frames that were actually processed, which may be less than the requested amount which will happen if there's not enough input data. You can use @@ -161,7 +161,7 @@ foreign lib { /* - Sets the input and output sample sample rate. + Sets the input and output sample rate. */ resampler_set_rate :: proc(pResampler: ^resampler, sampleRateIn, sampleRateOut: u32) -> result --- @@ -226,13 +226,14 @@ mono_expansion_mode :: enum c.int { } channel_converter_config :: struct { - format: format, - channelsIn: u32, - channelsOut: u32, - pChannelMapIn: [^]channel, - pChannelMapOut: [^]channel, - mixingMode: channel_mix_mode, - ppWeights: ^[^]f32, /* [in][out]. Only used when mixingMode is set to ma_channel_mix_mode_custom_weights. */ + format: format, + channelsIn: u32, + channelsOut: u32, + pChannelMapIn: [^]channel, + pChannelMapOut: [^]channel, + mixingMode: channel_mix_mode, + calculateLFEFromSpatialChannels: b32, /* When an output LFE channel is present, but no input LFE, set to true to set the output LFE to the average of all spatial channels (LR, FR, etc.). Ignored when an input LFE is present. */ + ppWeights: ^[^]f32, /* [in][out]. Only used when mixingMode is set to ma_channel_mix_mode_custom_weights. */ } channel_converter :: struct { @@ -275,19 +276,20 @@ Data Conversion **************************************************************************************************************************************************************/ data_converter_config :: struct { - formatIn: format, - formatOut: format, - channelsIn: u32, - channelsOut: u32, - sampleRateIn: u32, - sampleRateOut: u32, - pChannelMapIn: [^]channel, - pChannelMapOut: [^]channel, - ditherMode: dither_mode, - channelMixMode: channel_mix_mode, - ppChannelWeights: ^[^]f32, /* [in][out]. Only used when channelMixMode is set to ma_channel_mix_mode_custom_weights. */ - allowDynamicSampleRate: b32, - resampling: resampler_config, + formatIn: format, + formatOut: format, + channelsIn: u32, + channelsOut: u32, + sampleRateIn: u32, + sampleRateOut: u32, + pChannelMapIn: [^]channel, + pChannelMapOut: [^]channel, + ditherMode: dither_mode, + channelMixMode: channel_mix_mode, + calculateLFEFromSpatialChannels: b32, /* When an output LFE channel is present, but no input LFE, set to true to set the output LFE to the average of all spatial channels (LR, FR, etc.). Ignored when an input LFE is present. */ + ppChannelWeights: ^[^]f32, /* [in][out]. Only used when channelMixMode is set to ma_channel_mix_mode_custom_weights. */ + allowDynamicSampleRate: b32, + resampling: resampler_config, } data_converter_execution_path :: enum c.int { @@ -471,6 +473,28 @@ foreign lib { The channel map buffer must have a capacity of at least `channels`. */ channel_map_contains_channel_position :: proc(channels: u32, pChannelMap: [^]channel, channelPosition: channel) -> b32 --- + + /* + Find a channel position in the given channel map. Returns MA_TRUE if the channel is found; MA_FALSE otherwise. The + index of the channel is output to `pChannelIndex`. + + The channel map buffer must have a capacity of at least `channels`. + */ + channel_map_find_channel_position :: proc(channels: u32, pChannelMap: [^]channel, channelPosition: channel, pChannelIndex: ^u32) -> b32 --- + + /* + Generates a string representing the given channel map. + + This is for printing and debugging purposes, not serialization/deserialization. + + Returns the length of the string, not including the null terminator. + */ + channel_map_to_string :: proc(pChannelMap: [^]channel, channels: u32, pBufferOut: [^]u8, bufferCap: uint) -> uint --- + + /* + Retrieves a human readable version of a channel position. + */ + channel_position_to_string :: proc(channel: channel) -> cstring --- } @@ -514,9 +538,11 @@ rb :: struct { } pcm_rb :: struct { - rb: rb, - format: format, - channels: u32, + ds: data_source_base, + rb: rb, + format: format, + channels: u32, + sampleRate: u32, /* Not required for the ring buffer itself, but useful for associating the data with some sample rate, particularly for data sources. */ } @(default_calling_convention="c", link_prefix="ma_") @@ -556,6 +582,10 @@ foreign lib { pcm_rb_get_subbuffer_stride :: proc(pRB: ^pcm_rb) -> u32 --- pcm_rb_get_subbuffer_offset :: proc(pRB: ^pcm_rb, subbufferIndex: u32) -> u32 --- pcm_rb_get_subbuffer_ptr :: proc(pRB: ^pcm_rb, subbufferIndex: u32, pBuffer: rawptr) -> rawptr --- + pcm_rb_get_format :: proc(pRB: ^pcm_rb) -> format --- + pcm_rb_get_channels :: proc(pRB: ^pcm_rb) -> u32 --- + pcm_rb_get_sample_rate :: proc(pRB: ^pcm_rb) -> u32 --- + pcm_rb_set_sample_rate :: proc(pRB: ^pcm_rb, sampleRate: u32) --- } /* diff --git a/vendor/miniaudio/device_io_procs.odin b/vendor/miniaudio/device_io_procs.odin index 7f39eb84f..0d572ae2c 100644 --- a/vendor/miniaudio/device_io_procs.odin +++ b/vendor/miniaudio/device_io_procs.odin @@ -636,17 +636,17 @@ foreign lib { callback will write to every sample in the output buffer, or if you are doing your own clearing. noClip - When set to true, the contents of the output buffer passed into the data callback will be clipped after returning. When set to false (default), the - contents of the output buffer are left alone after returning and it will be left up to the backend itself to decide whether or not the clip. This only + When set to true, the contents of the output buffer are left alone after returning and it will be left up to the backend itself to decide whether or + not to clip. When set to false (default), the contents of the output buffer passed into the data callback will be clipped after returning. This only applies when the playback sample format is f32. noDisableDenormals By default, miniaudio will disable denormals when the data callback is called. Setting this to true will prevent the disabling of denormals. noFixedSizedCallback - Allows miniaudio to fire the data callback with any frame count. When this is set to true, the data callback will be fired with a consistent frame - count as specified by `periodSizeInFrames` or `periodSizeInMilliseconds`. When set to false, miniaudio will fire the callback with whatever the - backend requests, which could be anything. + Allows miniaudio to fire the data callback with any frame count. When this is set to false (the default), the data callback will be fired with a + consistent frame count as specified by `periodSizeInFrames` or `periodSizeInMilliseconds`. When set to true, miniaudio will fire the callback with + whatever the backend requests, which could be anything. dataCallback The callback to fire whenever data is ready to be delivered to or from the device. @@ -668,7 +668,7 @@ foreign lib { A pointer that will passed to callbacks in pBackendVTable. resampling.linear.lpfOrder - The linear resampler applies a low-pass filter as part of it's procesing for anti-aliasing. This setting controls the order of the filter. The higher + The linear resampler applies a low-pass filter as part of it's processing for anti-aliasing. This setting controls the order of the filter. The higher the value, the better the quality, in general. Setting this to 0 will disable low-pass filtering altogether. The maximum value is `MA_MAX_FILTER_ORDER`. The default value is `min(4, MA_MAX_FILTER_ORDER)`. @@ -1150,8 +1150,6 @@ foreign lib { Do not call this in any callback. - This will be called implicitly by `ma_device_uninit()`. - See Also -------- @@ -1586,6 +1584,11 @@ foreign lib { */ get_backend_name :: proc(backend: backend) -> cstring --- + /* + Retrieves the backend enum from the given name. + */ + get_backend_from_name :: proc(pBackendName: cstring, pBackend: ^backend) -> result --- + /* Determines whether or not the given backend is available by the compilation environment. */ diff --git a/vendor/miniaudio/device_io_types.odin b/vendor/miniaudio/device_io_types.odin index 5a2c4bc73..857e53ff5 100644 --- a/vendor/miniaudio/device_io_types.odin +++ b/vendor/miniaudio/device_io_types.odin @@ -84,6 +84,7 @@ device_notification_type :: enum c.int { rerouted, interruption_began, interruption_ended, + unlocked, } device_notification :: struct { @@ -195,7 +196,7 @@ DEPRECATED. Use ma_device_notification_proc instead. The callback for when the device has been stopped. This will be called when the device is stopped explicitly with `ma_device_stop()` and also called implicitly when the device is stopped through external forces -such as being unplugged or an internal error occuring. +such as being unplugged or an internal error occurring. Parameters @@ -225,7 +226,7 @@ share_mode :: enum c.int { /* iOS/tvOS/watchOS session categories. */ ios_session_category :: enum c.int { - default = 0, /* AVAudioSessionCategoryPlayAndRecord with AVAudioSessionCategoryOptionDefaultToSpeaker. */ + default = 0, /* AVAudioSessionCategoryPlayAndRecord. */ none, /* Leave the session category unchanged. */ ambient, /* AVAudioSessionCategoryAmbient */ solo_ambient, /* AVAudioSessionCategorySoloAmbient */ @@ -267,34 +268,41 @@ opensl_recording_preset :: enum c.int { voice_unprocessed, /* SL_ANDROID_RECORDING_PRESET_UNPROCESSED */ } +/* WASAPI audio thread priority characteristics. */ +wasapi_usage :: enum c.int { + default = 0, + games, + pro_audio, +} + /* AAudio usage types. */ aaudio_usage :: enum c.int { default = 0, /* Leaves the usage type unset. */ - announcement, /* AAUDIO_SYSTEM_USAGE_ANNOUNCEMENT */ - emergency, /* AAUDIO_SYSTEM_USAGE_EMERGENCY */ - safety, /* AAUDIO_SYSTEM_USAGE_SAFETY */ - vehicle_status, /* AAUDIO_SYSTEM_USAGE_VEHICLE_STATUS */ + media, /* AAUDIO_USAGE_MEDIA */ + voice_communication, /* AAUDIO_USAGE_VOICE_COMMUNICATION */ + voice_communication_signalling, /* AAUDIO_USAGE_VOICE_COMMUNICATION_SIGNALLING */ alarm, /* AAUDIO_USAGE_ALARM */ + notification, /* AAUDIO_USAGE_NOTIFICATION */ + notification_ringtone, /* AAUDIO_USAGE_NOTIFICATION_RINGTONE */ + notification_event, /* AAUDIO_USAGE_NOTIFICATION_EVENT */ assistance_accessibility, /* AAUDIO_USAGE_ASSISTANCE_ACCESSIBILITY */ assistance_navigation_guidance, /* AAUDIO_USAGE_ASSISTANCE_NAVIGATION_GUIDANCE */ assistance_sonification, /* AAUDIO_USAGE_ASSISTANCE_SONIFICATION */ - assitant, /* AAUDIO_USAGE_ASSISTANT */ game, /* AAUDIO_USAGE_GAME */ - media, /* AAUDIO_USAGE_MEDIA */ - notification, /* AAUDIO_USAGE_NOTIFICATION */ - notification_event, /* AAUDIO_USAGE_NOTIFICATION_EVENT */ - notification_ringtone, /* AAUDIO_USAGE_NOTIFICATION_RINGTONE */ - voice_communication, /* AAUDIO_USAGE_VOICE_COMMUNICATION */ - voice_communication_signalling, /* AAUDIO_USAGE_VOICE_COMMUNICATION_SIGNALLING */ + assitant, /* AAUDIO_USAGE_ASSISTANT */ + emergency, /* AAUDIO_SYSTEM_USAGE_EMERGENCY */ + safety, /* AAUDIO_SYSTEM_USAGE_SAFETY */ + vehicle_status, /* AAUDIO_SYSTEM_USAGE_VEHICLE_STATUS */ + announcement, /* AAUDIO_SYSTEM_USAGE_ANNOUNCEMENT */ } /* AAudio content types. */ aaudio_content_type :: enum c.int { default = 0, /* Leaves the content type unset. */ - movie, /* AAUDIO_CONTENT_TYPE_MOVIE */ - music, /* AAUDIO_CONTENT_TYPE_MUSIC */ - sonification, /* AAUDIO_CONTENT_TYPE_SONIFICATION */ speech, /* AAUDIO_CONTENT_TYPE_SPEECH */ + music, /* AAUDIO_CONTENT_TYPE_MUSIC */ + movie, /* AAUDIO_CONTENT_TYPE_MOVIE */ + sonification, /* AAUDIO_CONTENT_TYPE_SONIFICATION */ } /* AAudio input presets. */ @@ -302,12 +310,19 @@ aaudio_input_preset :: enum c.int { default = 0, /* Leaves the input preset unset. */ generic, /* AAUDIO_INPUT_PRESET_GENERIC */ camcorder, /* AAUDIO_INPUT_PRESET_CAMCORDER */ - unprocessed, /* AAUDIO_INPUT_PRESET_UNPROCESSED */ voice_recognition, /* AAUDIO_INPUT_PRESET_VOICE_RECOGNITION */ voice_communication, /* AAUDIO_INPUT_PRESET_VOICE_COMMUNICATION */ + unprocessed, /* AAUDIO_INPUT_PRESET_UNPROCESSED */ voice_performance, /* AAUDIO_INPUT_PRESET_VOICE_PERFORMANCE */ } +aaudio_allowed_capture_policy :: enum c.int { + default = 0, /* Leaves the allowed capture policy unset. */ + all, /* AAUDIO_ALLOW_CAPTURE_BY_ALL */ + system, /* AAUDIO_ALLOW_CAPTURE_BY_SYSTEM */ + none, /* AAUDIO_ALLOW_CAPTURE_BY_NONE */ +} + timer :: struct #raw_union { counter: i64, @@ -364,36 +379,41 @@ device_config :: struct { periods: u32, performanceProfile: performance_profile, noPreSilencedOutputBuffer: b8, /* When set to true, the contents of the output buffer passed into the data callback will be left undefined rather than initialized to zero. */ - noClip: b8, /* When set to true, the contents of the output buffer passed into the data callback will be clipped after returning. Only applies when the playback sample format is f32. */ + noClip: b8, /* When set to true, the contents of the output buffer passed into the data callback will not be clipped after returning. Only applies when the playback sample format is f32. */ noDisableDenormals: b8, /* Do not disable denormals when firing the data callback. */ - noFixedSizedCallback: b8, /* Disables strict fixed-sized data callbacks. Setting this to true will result in the period size being treated only as a hint to the backend. This is an optimization for those who don't need fixed sized callbacks. */ + noFixedSizedCallback: b8, /* Disables strict fixed-sized data callbacks. Setting this to true will result in the period size being treated only as a hint to the backend. This is an optimization for those who don't need fixed sized callbacks. */ dataCallback: device_data_proc, notificationCallback: device_notification_proc, stopCallback: stop_proc, pUserData: rawptr, resampling: resampler_config, playback: struct { - pDeviceID: ^device_id, - format: format, - channels: u32, - channelMap: [^]channel, - channelMixMode: channel_mix_mode, - shareMode: share_mode, + pDeviceID: ^device_id, + format: format, + channels: u32, + channelMap: [^]channel, + channelMixMode: channel_mix_mode, + calculateLFEFromSpatialChannels: b32, /* When an output LFE channel is present, but no input LFE, set to true to set the output LFE to the average of all spatial channels (LR, FR, etc.). Ignored when an input LFE is present. */ + shareMode: share_mode, }, capture: struct { - pDeviceID: ^device_id, - format: format, - channels: u32, - channelMap: [^]channel, - channelMixMode: channel_mix_mode, - shareMode: share_mode, + pDeviceID: ^device_id, + format: format, + channels: u32, + channelMap: [^]channel, + channelMixMode: channel_mix_mode, + calculateLFEFromSpatialChannels: b32, /* When an output LFE channel is present, but no input LFE, set to true to set the output LFE to the average of all spatial channels (LR, FR, etc.). Ignored when an input LFE is present. */ + shareMode: share_mode, }, wasapi: struct { - noAutoConvertSRC: b8, /* When set to true, disables the use of AUDCLNT_STREAMFLAGS_AUTOCONVERTPCM. */ - noDefaultQualitySRC: b8, /* When set to true, disables the use of AUDCLNT_STREAMFLAGS_SRC_DEFAULT_QUALITY. */ - noAutoStreamRouting: b8, /* Disables automatic stream routing. */ - noHardwareOffloading: b8, /* Disables WASAPI's hardware offloading feature. */ + usage: wasapi_usage, /* When configured, uses Avrt APIs to set the thread characteristics. */ + noAutoConvertSRC: b8, /* When set to true, disables the use of AUDCLNT_STREAMFLAGS_AUTOCONVERTPCM. */ + noDefaultQualitySRC: b8, /* When set to true, disables the use of AUDCLNT_STREAMFLAGS_SRC_DEFAULT_QUALITY. */ + noAutoStreamRouting: b8, /* Disables automatic stream routing. */ + noHardwareOffloading: b8, /* Disables WASAPI's hardware offloading feature. */ + loopbackProcessID: u32, /* The process ID to include or exclude for loopback mode. Set to 0 to capture audio from all processes. Ignored when an explicit device ID is specified. */ + loopbackProcessExclude: b8, /* When set to true, excludes the process specified by loopbackProcessID. By default, the process will be included. */ }, alsa: struct { noMMap: b32, /* Disables MMap mode. */ @@ -409,20 +429,23 @@ device_config :: struct { allowNominalSampleRateChange: b32, /* Desktop only. When enabled, allows changing of the sample rate at the operating system level. */ }, opensl: struct { - streamType: opensl_stream_type, - recordingPreset: opensl_recording_preset, + streamType: opensl_stream_type, + recordingPreset: opensl_recording_preset, + enableCompatibilityWorkarounds: b32, }, aaudio: struct { - usage: aaudio_usage, - contentType: aaudio_content_type, - inputPreset: aaudio_input_preset, - noAutoStartAfterReroute: b32, + usage: aaudio_usage, + contentType: aaudio_content_type, + inputPreset: aaudio_input_preset, + allowedCapturePolicy: aaudio_allowed_capture_policy, + noAutoStartAfterReroute: b32, + enableCompatibilityWorkarounds: b32, }, } /* -The callback for handling device enumeration. This is fired from `ma_context_enumerated_devices()`. +The callback for handling device enumeration. This is fired from `ma_context_enumerate_devices()`. Parameters @@ -500,7 +523,7 @@ sample rate. For the channel map, the default should be used when `ma_channel_ma `MA_CHANNEL_NONE`). On input, the `periodSizeInFrames` or `periodSizeInMilliseconds` option should always be set. The backend should inspect both of these variables. If `periodSizeInFrames` is set, it should take priority, otherwise it needs to be derived from the period size in milliseconds (`periodSizeInMilliseconds`) and the sample rate, keeping in mind that the sample rate may be 0, in which case the -sample rate will need to be determined before calculating the period size in frames. On output, all members of the `ma_device_data_format` +sample rate will need to be determined before calculating the period size in frames. On output, all members of the `ma_device_descriptor` object should be set to a valid value, except for `periodSizeInMilliseconds` which is optional (`periodSizeInFrames` *must* be set). Starting and stopping of the device is done with `onDeviceStart()` and `onDeviceStop()` and should be self-explanatory. If the backend uses @@ -516,7 +539,7 @@ If the backend requires absolute flexibility with it's data delivery, it can opt which will allow it to implement the logic that will run on the audio thread. This is much more advanced and is completely optional. The audio thread should run data delivery logic in a loop while `ma_device_get_state() == ma_device_state_started` and no errors have been -encounted. Do not start or stop the device here. That will be handled from outside the `onDeviceDataLoop()` callback. +encountered. Do not start or stop the device here. That will be handled from outside the `onDeviceDataLoop()` callback. The invocation of the `onDeviceDataLoop()` callback will be handled by miniaudio. When you start the device, miniaudio will fire this callback. When the device is stopped, the `ma_device_get_state() == ma_device_state_started` condition will fail and the loop will be terminated @@ -609,12 +632,17 @@ context_type :: struct { using _: struct #raw_union { wasapi: (struct { - commandThread: thread, - commandLock: mutex, - commandSem: semaphore, - commandIndex: u32, - commandCount: u32, - commands: [4]context_command__wasapi, + commandThread: thread, + commandLock: mutex, + commandSem: semaphore, + commandIndex: u32, + commandCount: u32, + commands: [4]context_command__wasapi, + hAvrt: handle, + AvSetMmThreadCharacteristicsA: proc "system" (), + AvRevertMmThreadCharacteristics: proc "system" (), + hMMDevapi: handle, + ActivateAudioInterfaceAsync: proc "system" (), } when SUPPORT_WASAPI else struct {}), dsound: (struct { @@ -888,6 +916,7 @@ context_type :: struct { AAudioStreamBuilder_setUsage: proc "system" (), AAudioStreamBuilder_setContentType: proc "system" (), AAudioStreamBuilder_setInputPreset: proc "system" (), + AAudioStreamBuilder_setAllowedCapturePolicy: proc "system" (), AAudioStreamBuilder_openStream: proc "system" (), AAudioStream_close: proc "system" (), AAudioStream_getState: proc "system" (), @@ -926,6 +955,7 @@ context_type :: struct { using _: struct #raw_union { win32: (struct { /*HMODULE*/ hOle32DLL: handle, + CoInitialize: proc "system" (), CoInitializeEx: proc "system" (), CoUninitialize: proc "system" (), CoCreateInstance: proc "system" (), @@ -941,25 +971,12 @@ context_type :: struct { RegOpenKeyExA: proc "system" (), RegCloseKey: proc "system" (), RegQueryValueExA: proc "system" (), + + /*HRESULT*/ CoInitializeResult: c.long, } when ODIN_OS == .Windows else struct {}), posix: (struct { - pthreadSO: handle, - pthread_create: proc "system" (), - pthread_join: proc "system" (), - pthread_mutex_init: proc "system" (), - pthread_mutex_destroy: proc "system" (), - pthread_mutex_lock: proc "system" (), - pthread_mutex_unlock: proc "system" (), - pthread_cond_init: proc "system" (), - pthread_cond_destroy: proc "system" (), - pthread_cond_wait: proc "system" (), - pthread_cond_signal: proc "system" (), - pthread_attr_init: proc "system" (), - pthread_attr_destroy: proc "system" (), - pthread_attr_setschedpolicy: proc "system" (), - pthread_attr_getschedparam: proc "system" (), - pthread_attr_setschedparam: proc "system" (), + _unused: c.int, } when ODIN_OS != .Windows else struct {}), _unused: c.int, @@ -997,48 +1014,50 @@ device :: struct { }, }, playback: struct { - pID: ^device_id, /* Set to NULL if using default ID, otherwise set to the address of "id". */ - id: device_id, /* If using an explicit device, will be set to a copy of the ID used for initialization. Otherwise cleared to 0. */ - name: [MAX_DEVICE_NAME_LENGTH + 1]c.char, /* Maybe temporary. Likely to be replaced with a query API. */ - shareMode: share_mode, /* Set to whatever was passed in when the device was initialized. */ - playback_format: format, - channels: u32, - channelMap: [MAX_CHANNELS]channel, - internalFormat: format, - internalChannels: u32, - internalSampleRate: u32, - internalChannelMap: [MAX_CHANNELS]channel, - internalPeriodSizeInFrames: u32, - internalPeriods: u32, - channelMixMode: channel_mix_mode, - converter: data_converter, - pIntermediaryBuffer: rawptr, /* For implementing fixed sized buffer callbacks. Will be null if using variable sized callbacks. */ - intermediaryBufferCap: u32, - intermediaryBufferLen: u32, /* How many valid frames are sitting in the intermediary buffer. */ - pInputCache: rawptr, /* In external format. Can be null. */ - inputCacheCap: u64, - inputCacheConsumed: u64, - inputCacheRemaining: u64, + pID: ^device_id, /* Set to NULL if using default ID, otherwise set to the address of "id". */ + id: device_id, /* If using an explicit device, will be set to a copy of the ID used for initialization. Otherwise cleared to 0. */ + name: [MAX_DEVICE_NAME_LENGTH + 1]c.char, /* Maybe temporary. Likely to be replaced with a query API. */ + shareMode: share_mode, /* Set to whatever was passed in when the device was initialized. */ + playback_format: format, + channels: u32, + channelMap: [MAX_CHANNELS]channel, + internalFormat: format, + internalChannels: u32, + internalSampleRate: u32, + internalChannelMap: [MAX_CHANNELS]channel, + internalPeriodSizeInFrames: u32, + internalPeriods: u32, + channelMixMode: channel_mix_mode, + calculateLFEFromSpatialChannels: b32, + converter: data_converter, + pIntermediaryBuffer: rawptr, /* For implementing fixed sized buffer callbacks. Will be null if using variable sized callbacks. */ + intermediaryBufferCap: u32, + intermediaryBufferLen: u32, /* How many valid frames are sitting in the intermediary buffer. */ + pInputCache: rawptr, /* In external format. Can be null. */ + inputCacheCap: u64, + inputCacheConsumed: u64, + inputCacheRemaining: u64, }, capture: struct { - pID: ^device_id, /* Set to NULL if using default ID, otherwise set to the address of "id". */ - id: device_id, /* If using an explicit device, will be set to a copy of the ID used for initialization. Otherwise cleared to 0. */ - name: [MAX_DEVICE_NAME_LENGTH + 1]c.char, /* Maybe temporary. Likely to be replaced with a query API. */ - shareMode: share_mode, /* Set to whatever was passed in when the device was initialized. */ - capture_format: format, - channels: u32, - channelMap: [MAX_CHANNELS]channel, - internalFormat: format, - internalChannels: u32, - internalSampleRate: u32, - internalChannelMap: [MAX_CHANNELS]channel, - internalPeriodSizeInFrames: u32, - internalPeriods: u32, - channelMixMode: channel_mix_mode, - converter: data_converter, - pIntermediaryBuffer: rawptr, /* For implementing fixed sized buffer callbacks. Will be null if using variable sized callbacks. */ - intermediaryBufferCap: u32, - intermediaryBufferLen: u32, /* How many valid frames are sitting in the intermediary buffer. */ + pID: ^device_id, /* Set to NULL if using default ID, otherwise set to the address of "id". */ + id: device_id, /* If using an explicit device, will be set to a copy of the ID used for initialization. Otherwise cleared to 0. */ + name: [MAX_DEVICE_NAME_LENGTH + 1]c.char, /* Maybe temporary. Likely to be replaced with a query API. */ + shareMode: share_mode, /* Set to whatever was passed in when the device was initialized. */ + capture_format: format, + channels: u32, + channelMap: [MAX_CHANNELS]channel, + internalFormat: format, + internalChannels: u32, + internalSampleRate: u32, + internalChannelMap: [MAX_CHANNELS]channel, + internalPeriodSizeInFrames: u32, + internalPeriods: u32, + channelMixMode: channel_mix_mode, + calculateLFEFromSpatialChannels: b32, + converter: data_converter, + pIntermediaryBuffer: rawptr, /* For implementing fixed sized buffer callbacks. Will be null if using variable sized callbacks. */ + intermediaryBufferCap: u32, + intermediaryBufferLen: u32, /* How many valid frames are sitting in the intermediary buffer. */ }, using _: struct #raw_union { @@ -1067,6 +1086,8 @@ device :: struct { mappedBufferPlaybackLen: u32, isStartedCapture: b32, /*atomic*/ /* Can be read and written simultaneously across different threads. Must be used atomically, and must be 32-bit. */ isStartedPlayback: b32, /*atomic*/ /* Can be read and written simultaneously across different threads. Must be used atomically, and must be 32-bit. */ + loopbackProcessID: u32, + loopbackProcessExclude: b8, noAutoConvertSRC: b8, /* When set to true, disables the use of AUDCLNT_STREAMFLAGS_AUTOCONVERTPCM. */ noDefaultQualitySRC: b8, /* When set to true, disables the use of AUDCLNT_STREAMFLAGS_SRC_DEFAULT_QUALITY. */ noHardwareOffloading: b8, @@ -1074,6 +1095,9 @@ device :: struct { allowPlaybackAutoStreamRouting: b8, isDetachedPlayback: b8, isDetachedCapture: b8, + usage: wasapi_usage, + hAvrtHandle: rawptr, + rerouteLock: mutex, } when SUPPORT_WASAPI else struct {}), dsound: (struct { @@ -1171,6 +1195,7 @@ device :: struct { usage: aaudio_usage, contentType: aaudio_content_type, inputPreset: aaudio_input_preset, + allowedCapturePolicy: aaudio_allowed_capture_policy, noAutoStartAfterReroute: b32, } when SUPPORT_AAUDIO else struct {}), @@ -1192,8 +1217,13 @@ device :: struct { } when SUPPORT_OPENSL else struct {}), webaudio: (struct { - indexPlayback: c.int, /* We use a factory on the JavaScript side to manage devices and use an index for JS/C interop. */ - indexCapture: c.int, + /* audioWorklets path. */ + /* EMSCRIPTEN_WEBAUDIO_T */ audioContext: c.int, + /* EMSCRIPTEN_WEBAUDIO_T */ audioWorklet: c.int, + pIntermediaryBuffer: ^f32, + pStackBuffer: rawptr, + initResult: result, /* Set to MA_BUSY while initializing is in progress. */ + deviceIndex: c.int, /* We store the device in a list on the JavaScript side. This is used to map our C object to the JS object. */ } when SUPPORT_WEBAUDIO else struct {}), null_device: (struct { diff --git a/vendor/miniaudio/doc.odin b/vendor/miniaudio/doc.odin index c6de0ec61..33c613ae4 100644 --- a/vendor/miniaudio/doc.odin +++ b/vendor/miniaudio/doc.odin @@ -2,7 +2,7 @@ package miniaudio /* Audio playback and capture library. Choice of public domain or MIT-0. See license statements at the end of this file. -miniaudio - v0.11.9 - 2022-04-20 +miniaudio - v0.11.21 - 2023-11-15 David Reid - mackron@gmail.com @@ -40,7 +40,7 @@ A config/init pattern is used throughout the entire library. The idea is that yo object and pass that into the initialization routine. The advantage to this system is that the config object can be initialized with logical defaults and new properties added to it without breaking the API. The config object can be allocated on the stack and does not need to be -maintained after initialization of the corresponding object. +maintained after initialization of the corresponding object. 1.1. Low Level API @@ -89,7 +89,7 @@ device on the stack, but you could allocate it on the heap if that suits your si // Do something here. Probably your program's main loop. - ma_device_uninit(&device); // This will stop the device so no need to do that manually. + ma_device_uninit(&device); return 0; } ``` @@ -365,7 +365,7 @@ initialized. The easiest but least flexible way of playing a sound is like so: This plays what miniaudio calls an "inline" sound. It plays the sound once, and then puts the internal sound up for recycling. The last parameter is used to specify which sound group the sound should be associated with which will be explained later. This particular way of playing a sound is -simple, but lacks flexibility and features. A more flexible way of playing a sound is to first +simple, but lacks flexibility and features. A more flexible way of playing a sound is to first initialize a sound: ```c @@ -388,7 +388,7 @@ Sounds should be uninitialized with `ma_sound_uninit()`. Sounds are not started by default. Start a sound with `ma_sound_start()` and stop it with `ma_sound_stop()`. When a sound is stopped, it is not rewound to the start. Use -`ma_sound_seek_to_pcm_frames(&sound, 0)` to seek back to the start of a sound. By default, starting +`ma_sound_seek_to_pcm_frame(&sound, 0)` to seek back to the start of a sound. By default, starting and stopping sounds happens immediately, but sometimes it might be convenient to schedule the sound the be started and/or stopped at a specific time. This can be done with the following functions: @@ -400,13 +400,13 @@ the be started and/or stopped at a specific time. This can be done with the foll ``` The start/stop time needs to be specified based on the absolute timer which is controlled by the -engine. The current global time time in PCM frames can be retrieved with `ma_engine_get_time()`. -The engine's global time can be changed with `ma_engine_set_time()` for synchronization purposes if -required. Note that scheduling a start time still requires an explicit call to `ma_sound_start()` -before anything will play: +engine. The current global time time in PCM frames can be retrieved with +`ma_engine_get_time_in_pcm_frames()`. The engine's global time can be changed with +`ma_engine_set_time_in_pcm_frames()` for synchronization purposes if required. Note that scheduling +a start time still requires an explicit call to `ma_sound_start()` before anything will play: ```c - ma_sound_set_start_time_in_pcm_frames(&sound, ma_engine_get_time(&engine) + (ma_engine_get_sample_rate(&engine) * 2); + ma_sound_set_start_time_in_pcm_frames(&sound, ma_engine_get_time_in_pcm_frames(&engine) + (ma_engine_get_sample_rate(&engine) * 2); ma_sound_start(&sound); ``` @@ -462,6 +462,11 @@ is at the end, use `ma_sound_at_end()`. Looping of a sound can be controlled wit miniaudio should work cleanly out of the box without the need to download or install any dependencies. See below for platform-specific details. +Note that GCC and Clang require `-msse2`, `-mavx2`, etc. for SIMD optimizations. + +If you get errors about undefined references to `__sync_val_compare_and_swap_8`, `__atomic_load_8`, +etc. you need to link with `-latomic`. + 2.1. Windows ------------ @@ -491,9 +496,10 @@ notarization process. To fix this there are two options. The first is to use the #include "miniaudio.h" ``` -This will require linking with `-framework CoreFoundation -framework CoreAudio -framework AudioUnit`. -Alternatively, if you would rather keep using runtime linking you can add the following to your -entitlements.xcent file: +This will require linking with `-framework CoreFoundation -framework CoreAudio -framework AudioToolbox`. +If you get errors about AudioToolbox, try with `-framework AudioUnit` instead. You may get this when +using older versions of iOS. Alternatively, if you would rather keep using runtime linking you can +add the following to your entitlements.xcent file: ``` com.apple.security.cs.allow-dyld-environment-variables @@ -534,6 +540,20 @@ you'll need to disable run-time linking with `MA_NO_RUNTIME_LINKING` and link wi The Emscripten build emits Web Audio JavaScript directly and should compile cleanly out of the box. You cannot use `-std=c*` compiler flags, nor `-ansi`. +You can enable the use of AudioWorkets by defining `MA_ENABLE_AUDIO_WORKLETS` and then compiling +with the following options: + + -sAUDIO_WORKLET=1 -sWASM_WORKERS=1 -sASYNCIFY + +An example for compiling with AudioWorklet support might look like this: + + emcc program.c -o bin/program.html -DMA_ENABLE_AUDIO_WORKLETS -sAUDIO_WORKLET=1 -sWASM_WORKERS=1 -sASYNCIFY + +To run locally, you'll need to use emrun: + + emrun bin/program.html + + 2.7. Build Options ------------------ @@ -629,10 +649,29 @@ You cannot use `-std=c*` compiler flags, nor `-ansi`. | | and `ma_device` APIs. This is useful if you only want to use | | | miniaudio's data conversion and/or decoding APIs. | +----------------------------------+--------------------------------------------------------------------+ + | MA_NO_RESOURCE_MANAGER | Disables the resource manager. When using the engine this will | + | | also disable the following functions: | + | | | + | | ``` | + | | ma_sound_init_from_file() | + | | ma_sound_init_from_file_w() | + | | ma_sound_init_copy() | + | | ma_engine_play_sound_ex() | + | | ma_engine_play_sound() | + | | ``` | + | | | + | | The only way to initialize a `ma_sound` object is to initialize it | + | | from a data source. | + +----------------------------------+--------------------------------------------------------------------+ + | MA_NO_NODE_GRAPH | Disables the node graph API. This will also disable the engine API | + | | because it depends on the node graph. | + +----------------------------------+--------------------------------------------------------------------+ + | MA_NO_ENGINE | Disables the engine API. | + +----------------------------------+--------------------------------------------------------------------+ | MA_NO_THREADING | Disables the `ma_thread`, `ma_mutex`, `ma_semaphore` and | | | `ma_event` APIs. This option is useful if you only need to use | | | miniaudio for data conversion, decoding and/or encoding. Some | - | | families of APIsrequire threading which means the following | + | | families of APIs require threading which means the following | | | options must also be set: | | | | | | ``` | @@ -731,7 +770,7 @@ To read data from a data source: ma_result result; ma_uint64 framesRead; - result = ma_data_source_read_pcm_frames(pDataSource, pFramesOut, frameCount, &framesRead, loop); + result = ma_data_source_read_pcm_frames(pDataSource, pFramesOut, frameCount, &framesRead); if (result != MA_SUCCESS) { return result; // Failed to read data from the data source. } @@ -751,7 +790,7 @@ you could plug in a decoder like so: ma_uint64 framesRead; ma_decoder decoder; // <-- This would be initialized with `ma_decoder_init_*()`. - result = ma_data_source_read_pcm_frames(&decoder, pFramesOut, frameCount, &framesRead, loop); + result = ma_data_source_read_pcm_frames(&decoder, pFramesOut, frameCount, &framesRead); if (result != MA_SUCCESS) { return result; // Failed to read data from the decoder. } @@ -805,7 +844,7 @@ retrieved like so: ma_uint32 channels; ma_uint32 sampleRate; ma_channel channelMap[MA_MAX_CHANNELS]; - + result = ma_data_source_get_data_format(pDataSource, &format, &channels, &sampleRate, channelMap, MA_MAX_CHANNELS); if (result != MA_SUCCESS) { return result; // Failed to retrieve data format. @@ -825,7 +864,9 @@ read data within a certain range of the underlying data. To do this you can use ``` This is useful if you have a sound bank where many sounds are stored in the same file and you want -the data source to only play one of those sub-sounds. +the data source to only play one of those sub-sounds. Note that once the range is set, everything +that takes a position, such as cursors and loop points, should always be relatvie to the start of +the range. When the range is set, any previously defined loop point will be reset. Custom loop points can also be used with data sources. By default, data sources will loop after they reach the end of the data source, but if you need to loop at a specific location, you can do @@ -854,19 +895,19 @@ To do this, you can use chaining: return result; // Failed to set the next data source. } - result = ma_data_source_read_pcm_frames(&decoder1, pFramesOut, frameCount, pFramesRead, MA_FALSE); + result = ma_data_source_read_pcm_frames(&decoder1, pFramesOut, frameCount, pFramesRead); if (result != MA_SUCCESS) { return result; // Failed to read from the decoder. } ``` In the example above we're using decoders. When reading from a chain, you always want to read from -the top level data source in the chain. In the example above, `decoder1` is the top level data +the top level data source in the chain. In the example above, `decoder1` is the top level data source in the chain. When `decoder1` reaches the end, `decoder2` will start seamlessly without any gaps. -Note that the `loop` parameter is set to false in the example above. When this is set to true, only -the current data source will be looped. You can loop the entire chain by linking in a loop like so: +Note that when looping is enabled, only the current data source will be looped. You can loop the +entire chain by linking in a loop like so: ```c ma_data_source_set_next(&decoder1, &decoder2); // decoder1 -> decoder2 @@ -877,9 +918,9 @@ Note that setting up chaining is not thread safe, so care needs to be taken if y changing links while the audio thread is in the middle of reading. Do not use `ma_decoder_seek_to_pcm_frame()` as a means to reuse a data source to play multiple -instances of the same sound simultaneously. Instead, initialize multiple data sources for each -instance. This can be extremely inefficient depending on the data source and can result in -glitching due to subtle changes to the state of internal filters. +instances of the same sound simultaneously. This can be extremely inefficient depending on the type +of data source and can result in glitching due to subtle changes to the state of internal filters. +Instead, initialize multiple data sources for each instance. 4.1. Custom Data Sources @@ -924,7 +965,7 @@ base object (`ma_data_source_base`): // Retrieve the length in PCM frames here. Return MA_NOT_IMPLEMENTED and set *pLength to 0 if there is no notion of a length or if the length is unknown. } - static g_my_data_source_vtable = + static ma_data_source_vtable g_my_data_source_vtable = { my_data_source_read, my_data_source_seek, @@ -954,7 +995,7 @@ base object (`ma_data_source_base`): void my_data_source_uninit(my_data_source* pMyDataSource) { // ... do the uninitialization of your custom data source here ... - + // You must uninitialize the base data source. ma_data_source_uninit(&pMyDataSource->base); } @@ -1003,7 +1044,7 @@ configure the engine with an engine config: ma_engine_config engineConfig; engineConfig = ma_engine_config_init(); - engineConfig.pPlaybackDevice = &myDevice; + engineConfig.pDevice = &myDevice; result = ma_engine_init(&engineConfig, &engine); if (result != MA_SUCCESS) { @@ -1044,7 +1085,7 @@ Note that when you're not using a device, you must set the channel count and sam config or else miniaudio won't know what to use (miniaudio will use the device to determine this normally). When not using a device, you need to use `ma_engine_read_pcm_frames()` to process audio data from the engine. This kind of setup is useful if you want to do something like offline -processing. +processing or want to use a different audio system for playback such as SDL. When a sound is loaded it goes through a resource manager. By default the engine will initialize a resource manager internally, but you can also specify a pre-initialized resource manager: @@ -1209,7 +1250,7 @@ might be beneficial to pre-decode the sound. You can do this with the `MA_SOUND_ By default, sounds will be loaded synchronously, meaning `ma_sound_init_*()` will not return until the sound has been fully loaded. If this is prohibitive you can instead load sounds asynchronously -by specificying the `MA_SOUND_FLAG_ASYNC` flag: +by specifying the `MA_SOUND_FLAG_ASYNC` flag: ```c ma_sound_init_from_file(&engine, "my_sound.wav", MA_SOUND_FLAG_DECODE | MA_SOUND_FLAG_ASYNC, pGroup, NULL, &sound); @@ -1230,7 +1271,7 @@ counter hit's zero. You can specify a fence like so: ma_sound sounds[4]; result = ma_fence_init(&fence); - if (result != MA_SUCCES) { + if (result != MA_SUCCESS) { return result; } @@ -1256,6 +1297,18 @@ When streaming sounds, 2 seconds worth of audio data is stored in memory. Althou fine, it's inefficient to use streaming for short sounds. Streaming is useful for things like music tracks in games. +When loading a sound from a file path, the engine will reference count the file to prevent it from +being loaded if it's already in memory. When you uninitialize a sound, the reference count will be +decremented, and if it hits zero, the sound will be unloaded from memory. This reference counting +system is not used for streams. The engine will use a 64-bit hash of the file name when comparing +file paths which means there's a small chance you might encounter a name collision. If this is an +issue, you'll need to use a different name for one of the colliding file paths, or just not load +from files and instead load from a data source. + +You can use `ma_sound_init_copy()` to initialize a copy of another sound. Note, however, that this +only works for sounds that were initialized with `ma_sound_init_from_file()` and without the +`MA_SOUND_FLAG_STREAM` flag. + When you initialize a sound, if you specify a sound group the sound will be attached to that group automatically. If you set it to NULL, it will be automatically attached to the engine's endpoint. If you would instead rather leave the sound unattached by default, you can can specify the @@ -1395,19 +1448,19 @@ can be useful to schedule a sound to start or stop: ```c // Start the sound in 1 second from now. - ma_sound_set_start_time_in_pcm_frames(&sound, ma_engine_get_time(&engine) + (ma_engine_get_sample_rate(&engine) * 1)); + ma_sound_set_start_time_in_pcm_frames(&sound, ma_engine_get_time_in_pcm_frames(&engine) + (ma_engine_get_sample_rate(&engine) * 1)); // Stop the sound in 2 seconds from now. - ma_sound_set_stop_time_in_pcm_frames(&sound, ma_engine_get_time(&engine) + (ma_engine_get_sample_rate(&engine) * 2)); + ma_sound_set_stop_time_in_pcm_frames(&sound, ma_engine_get_time_in_pcm_frames(&engine) + (ma_engine_get_sample_rate(&engine) * 2)); ``` Note that scheduling a start time still requires an explicit call to `ma_sound_start()` before anything will play. The time is specified in global time which is controlled by the engine. You can get the engine's -current time with `ma_engine_get_time()`. The engine's global time is incremented automatically as -audio data is read, but it can be reset with `ma_engine_set_time()` in case it needs to be -resynchronized for some reason. +current time with `ma_engine_get_time_in_pcm_frames()`. The engine's global time is incremented +automatically as audio data is read, but it can be reset with `ma_engine_set_time_in_pcm_frames()` +in case it needs to be resynchronized for some reason. To determine whether or not a sound is currently playing, use `ma_sound_is_playing()`. This will take the scheduled start and stop times into account. @@ -1416,7 +1469,25 @@ Whether or not a sound should loop can be controlled with `ma_sound_set_looping( be looping by default. Use `ma_sound_is_looping()` to determine whether or not a sound is looping. Use `ma_sound_at_end()` to determine whether or not a sound is currently at the end. For a looping -sound this should never return true. +sound this should never return true. Alternatively, you can configure a callback that will be fired +when the sound reaches the end. Note that the callback is fired from the audio thread which means +you cannot be uninitializing sound from the callback. To set the callback you can use +`ma_sound_set_end_callback()`. Alternatively, if you're using `ma_sound_init_ex()`, you can pass it +into the config like so: + + ```c + soundConfig.endCallback = my_end_callback; + soundConfig.pEndCallbackUserData = pMyEndCallbackUserData; + ``` + +The end callback is declared like so: + + ```c + void my_end_callback(void* pUserData, ma_sound* pSound) + { + ... + } + ``` Internally a sound wraps around a data source. Some APIs exist to control the underlying data source, mainly for convenience: @@ -1431,7 +1502,7 @@ source, mainly for convenience: Sound groups have the same API as sounds, only they are called `ma_sound_group`, and since they do not have any notion of a data source, anything relating to a data source is unavailable. -Internally, sound data is loaded via the `ma_decoder` API which means by default in only supports +Internally, sound data is loaded via the `ma_decoder` API which means by default it only supports file formats that have built-in support in miniaudio. You can extend this to support any kind of file format through the use of custom decoders. To do this you'll need to use a self-managed resource manager and configure it appropriately. See the "Resource Management" section below for @@ -1446,7 +1517,7 @@ streaming. This is supported by miniaudio via the `ma_resource_manager` API. The resource manager is mainly responsible for the following: * Loading of sound files into memory with reference counting. - * Streaming of sound data + * Streaming of sound data. When loading a sound file, the resource manager will give you back a `ma_data_source` compatible object called `ma_resource_manager_data_source`. This object can be passed into any @@ -1541,7 +1612,7 @@ need to retrieve a job using `ma_resource_manager_next_job()` and then process i ma_job job; ma_result result = ma_resource_manager_next_job(pMyResourceManager, &job); if (result != MA_SUCCESS) { - if (result == MA_NOT_DATA_AVAILABLE) { + if (result == MA_NO_DATA_AVAILABLE) { // No jobs are available. Keep going. Will only get this if the resource manager was initialized // with MA_RESOURCE_MANAGER_FLAG_NON_BLOCKING. continue; @@ -1580,7 +1651,7 @@ default. This can be done by setting `pVFS` member of the resource manager's con This is particularly useful in programs like games where you want to read straight from an archive rather than the normal file system. If you do not specify a custom VFS, the resource manager will -use the operating system's normal file operations. This is default. +use the operating system's normal file operations. To load a sound file and create a data source, call `ma_resource_manager_data_source_init()`. When loading a sound you need to specify the file path and options for how the sounds should be loaded. @@ -1606,7 +1677,7 @@ an example for initializing a data source: // ... - ma_resource_manager_data_source_uninit(pResourceManager, &dataSource); + ma_resource_manager_data_source_uninit(&dataSource); ``` The `flags` parameter specifies how you want to perform loading of the sound file. It can be a @@ -1843,19 +1914,21 @@ once after the other: ```c ma_resource_manager_data_source_init(pResourceManager, "my_file", ..., &myDataBuffer0); // Refcount = 1. Initial load. - ma_resource_manager_data_source_uninit(pResourceManager, &myDataBuffer0); // Refcount = 0. Unloaded. + ma_resource_manager_data_source_uninit(&myDataBuffer0); // Refcount = 0. Unloaded. ma_resource_manager_data_source_init(pResourceManager, "my_file", ..., &myDataBuffer1); // Refcount = 1. Reloaded because previous uninit() unloaded it. - ma_resource_manager_data_source_uninit(pResourceManager, &myDataBuffer1); // Refcount = 0. Unloaded. + ma_resource_manager_data_source_uninit(&myDataBuffer1); // Refcount = 0. Unloaded. ``` A binary search tree (BST) is used for storing data buffers as it has good balance between efficiency and simplicity. The key of the BST is a 64-bit hash of the file path that was passed into `ma_resource_manager_data_source_init()`. The advantage of using a hash is that it saves memory over storing the entire path, has faster comparisons, and results in a mostly balanced BST -due to the random nature of the hash. The disadvantage is that file names are case-sensitive. If -this is an issue, you should normalize your file names to upper- or lower-case before initializing -your data sources. +due to the random nature of the hash. The disadvantages are that file names are case-sensitive and +there's a small chance of name collisions. If case-sensitivity is an issue, you should normalize +your file names to upper- or lower-case before initializing your data sources. If name collisions +become an issue, you'll need to change the name of one of the colliding names or just not use the +resource manager. When a sound file has not already been loaded and the `MA_RESOURCE_MANAGER_DATA_SOURCE_FLAG_ASYNC` flag is excluded, the file will be decoded synchronously by the calling thread. There are two @@ -1935,7 +2008,7 @@ miniaudio's routing infrastructure follows a node graph paradigm. The idea is th node whose outputs are attached to inputs of another node, thereby creating a graph. There are different types of nodes, with each node in the graph processing input data to produce output, which is then fed through the chain. Each node in the graph can apply their own custom effects. At -the start of the graph will usually be one or more data source nodes which have no inputs, but +the start of the graph will usually be one or more data source nodes which have no inputs and instead pull their data from a data source. At the end of the graph is an endpoint which represents the end of the chain and is where the final output is ultimately extracted from. @@ -1961,7 +2034,7 @@ splitter node. It's at this point that the two data sources are mixed. After mix performs it's processing routine and produces two outputs which is simply a duplication of the input stream. One output is attached to a low pass filter, whereas the other output is attached to a echo/delay. The outputs of the the low pass filter and the echo are attached to the endpoint, and -since they're both connected to the same input but, they'll be mixed. +since they're both connected to the same input bus, they'll be mixed. Each input bus must be configured to accept the same number of channels, but the number of channels used by input buses can be different to the number of channels for output buses in which case @@ -2001,14 +2074,14 @@ data from the graph: ``` When you read audio data, miniaudio starts at the node graph's endpoint node which then pulls in -data from it's input attachments, which in turn recusively pull in data from their inputs, and so +data from it's input attachments, which in turn recursively pull in data from their inputs, and so on. At the start of the graph there will be some kind of data source node which will have zero inputs and will instead read directly from a data source. The base nodes don't literally need to read from a `ma_data_source` object, but they will always have some kind of underlying object that sources some kind of audio. The `ma_data_source_node` node can be used to read from a `ma_data_source`. Data is always in floating-point format and in the number of channels you specified when the graph was initialized. The sample rate is defined by the underlying data sources. -It's up to you to ensure they use a consistent and appropraite sample rate. +It's up to you to ensure they use a consistent and appropriate sample rate. The `ma_node` API is designed to allow custom nodes to be implemented with relative ease, but miniaudio includes a few stock nodes for common functionality. This is how you would initialize a @@ -2049,7 +2122,7 @@ another, you do not need to detach first. You can just call `ma_node_attach_outp deal with it for you. Less frequently you may want to create a specialized node. This will be a node where you implement -your own processing callback to apply a custom effect of some kind. This is similar to initalizing +your own processing callback to apply a custom effect of some kind. This is similar to initializing one of the stock node types, only this time you need to specify a pointer to a vtable containing a pointer to the processing function and the number of input and output buses. Example: @@ -2076,7 +2149,7 @@ pointer to the processing function and the number of input and output buses. Exa static ma_node_vtable my_custom_node_vtable = { - my_custom_node_process_pcm_frames, // The function that will be called process your custom node. This is where you'd implement your effect processing. + my_custom_node_process_pcm_frames, // The function that will be called to process your custom node. This is where you'd implement your effect processing. NULL, // Optional. A callback for calculating the number of input frames that are required to process a specified number of output frames. 2, // 2 input buses. 1, // 1 output bus. @@ -2088,7 +2161,7 @@ pointer to the processing function and the number of input and output buses. Exa // Each bus needs to have a channel count specified. To do this you need to specify the channel // counts in an array and then pass that into the node config. ma_uint32 inputChannels[2]; // Equal in size to the number of input channels specified in the vtable. - ma_uint32 outputChannels[1]; // Equal in size to the number of output channels specicied in the vtable. + ma_uint32 outputChannels[1]; // Equal in size to the number of output channels specified in the vtable. inputChannels[0] = channelsIn; inputChannels[1] = channelsIn; @@ -2172,10 +2245,19 @@ and include the following: +-----------------------------------------+---------------------------------------------------+ | MA_NODE_FLAG_CONTINUOUS_PROCESSING | Causes the processing callback to be called even | | | when no data is available to be read from input | - | | attachments. This is useful for effects like | + | | attachments. When a node has at least one input | + | | bus, but there are no inputs attached or the | + | | inputs do not deliver any data, the node's | + | | processing callback will not get fired. This flag | + | | will make it so the callback is always fired | + | | regardless of whether or not any input data is | + | | received. This is useful for effects like | | | echos where there will be a tail of audio data | | | that still needs to be processed even when the | - | | original data sources have reached their ends. | + | | original data sources have reached their ends. It | + | | may also be useful for nodes that must always | + | | have their processing callback fired when there | + | | are no inputs attached. | +-----------------------------------------+---------------------------------------------------+ | MA_NODE_FLAG_ALLOW_NULL_INPUT | Used in conjunction with | | | `MA_NODE_FLAG_CONTINUOUS_PROCESSING`. When this | @@ -2206,7 +2288,7 @@ called `ma_splitter_node`. This takes has 1 input bus and splits the stream into You can use it like this: ```c - ma_splitter_node_config splitterNodeConfig = ma_splitter_node_config_init(channelsIn, channelsOut); + ma_splitter_node_config splitterNodeConfig = ma_splitter_node_config_init(channels); ma_splitter_node splitterNode; result = ma_splitter_node_init(&nodeGraph, &splitterNodeConfig, NULL, &splitterNode); @@ -2366,7 +2448,7 @@ bus and input bus is locked. This locking is specifically for attaching and deta different threads and does not affect `ma_node_graph_read_pcm_frames()` in any way. The locking and unlocking is mostly self-explanatory, but a slightly less intuitive aspect comes into it when considering that iterating over attachments must not break as a result of attaching or detaching a -node while iteration is occuring. +node while iteration is occurring. Attaching and detaching are both quite simple. When an output bus of a node is attached to an input bus of another node, it's added to a linked list. Basically, an input bus is a linked list, where @@ -2394,37 +2476,18 @@ used. The same general process applies to detachment. See `ma_node_attach_output 8. Decoding =========== The `ma_decoder` API is used for reading audio files. Decoders are completely decoupled from -devices and can be used independently. The following formats are supported: +devices and can be used independently. Built-in support is included for the following formats: - +---------+------------------+----------+ - | Format | Decoding Backend | Built-In | - +---------+------------------+----------+ - | WAV | dr_wav | Yes | - | MP3 | dr_mp3 | Yes | - | FLAC | dr_flac | Yes | - | Vorbis | stb_vorbis | No | - +---------+------------------+----------+ + +---------+ + | Format | + +---------+ + | WAV | + | MP3 | + | FLAC | + +---------+ -Vorbis is supported via stb_vorbis which can be enabled by including the header section before the -implementation of miniaudio, like the following: - - ```c - #define STB_VORBIS_HEADER_ONLY - #include "extras/stb_vorbis.c" // Enables Vorbis decoding. - - #define MINIAUDIO_IMPLEMENTATION - #include "miniaudio.h" - - // The stb_vorbis implementation must come after the implementation of miniaudio. - #undef STB_VORBIS_HEADER_ONLY - #include "extras/stb_vorbis.c" - ``` - -A copy of stb_vorbis is included in the "extras" folder in the miniaudio repository (https://github.com/mackron/miniaudio). - -Built-in decoders are amalgamated into the implementation section of miniaudio. You can disable the -built-in decoders by specifying one or more of the following options before the miniaudio -implementation: +You can disable the built-in decoders by specifying one or more of the following options before the +miniaudio implementation: ```c #define MA_NO_WAV @@ -2432,8 +2495,8 @@ implementation: #define MA_NO_FLAC ``` -Disabling built-in decoding libraries is useful if you use these libraries independantly of the -`ma_decoder` API. +miniaudio supports the ability to plug in custom decoders. See the section below for details on how +to use custom decoders. A decoder can be initialized from a file with `ma_decoder_init_file()`, a block of memory with `ma_decoder_init_memory()`, or from data delivered via callbacks with `ma_decoder_init()`. Here is @@ -2534,7 +2597,7 @@ The `ma_decoding_backend_vtable` vtable has the following functions: ``` onInit - onInitFile + onInitFile onInitFileW onInitMemory onUninit @@ -2546,11 +2609,11 @@ these are not specified, miniaudio will deal with it for you via a generic imple When you initialize a custom data source (by implementing the `onInit` function in the vtable) you will need to output a pointer to a `ma_data_source` which implements your custom decoder. See the -section about data sources for details on how to implemen this. Alternatively, see the +section about data sources for details on how to implement this. Alternatively, see the "custom_decoders" example in the miniaudio repository. The `onInit` function takes a pointer to some callbacks for the purpose of reading raw audio data -from some abitrary source. You'll use these functions to read from the raw data and perform the +from some arbitrary source. You'll use these functions to read from the raw data and perform the decoding. When you call them, you will pass in the `pReadSeekTellUserData` pointer to the relevant parameter. @@ -2574,8 +2637,7 @@ opportunity to clean up and internal data. 9. Encoding =========== -The `ma_encoding` API is used for writing audio files. The only supported output format is WAV -which is achieved via dr_wav which is amalgamated into the implementation section of miniaudio. +The `ma_encoding` API is used for writing audio files. The only supported output format is WAV. This can be disabled by specifying the following option before the implementation of miniaudio: ```c @@ -2615,9 +2677,16 @@ outputting any audio data. To output audio data, use `ma_encoder_write_pcm_frame example below: ```c - framesWritten = ma_encoder_write_pcm_frames(&encoder, pPCMFramesToWrite, framesToWrite); + ma_uint64 framesWritten; + result = ma_encoder_write_pcm_frames(&encoder, pPCMFramesToWrite, framesToWrite, &framesWritten); + if (result != MA_SUCCESS) { + ... handle error ... + } ``` +The `framesWritten` variable will contain the number of PCM frames that were actually written. This +is optionally and you can pass in `NULL` if you need this. + Encoders must be uninitialized with `ma_encoder_uninit()`. @@ -2701,7 +2770,7 @@ To perform the conversion simply call `ma_channel_converter_process_pcm_frames() } ``` -It is up to the caller to ensure the output buffer is large enough to accomodate the new PCM +It is up to the caller to ensure the output buffer is large enough to accommodate the new PCM frames. Input and output PCM frames are always interleaved. Deinterleaved layouts are not supported. @@ -3147,7 +3216,7 @@ you can chain first and second order filters together. If you need to change the configuration of the filter, but need to maintain the state of internal registers you can do so with `ma_lpf_reinit()`. This may be useful if you need to change the sample -rate and/or cutoff frequency dynamically while maintaing smooth transitions. Note that changing the +rate and/or cutoff frequency dynamically while maintaining smooth transitions. Note that changing the format or channel count after initialization is invalid and will result in an error. The `ma_lpf` object supports a configurable order, but if you only need a first order filter you @@ -3320,8 +3389,8 @@ The noise API uses simple LCG random number generation. It supports a custom see for things like automated testing requiring reproducibility. Setting the seed to zero will default to `MA_DEFAULT_LCG_SEED`. -The amplitude, seed, and type can be changed dynamically with `ma_noise_set_amplitude()`, -`ma_noise_set_seed()`, and `ma_noise_set_type()` respectively. +The amplitude and seed can be changed dynamically with `ma_noise_set_amplitude()` and +`ma_noise_set_seed()` respectively. By default, the noise API will use different values for different channels. So, for example, the left side in a stereo stream will be different to the right side. To instead have each channel use @@ -3349,7 +3418,7 @@ miniaudio supports reading from a buffer of raw audio data via the `ma_audio_buf read from memory that's managed by the application, but can also handle the memory management for you internally. Memory management is flexible and should support most use cases. -Audio buffers are initialised using the standard configuration system used everywhere in miniaudio: +Audio buffers are initialized using the standard configuration system used everywhere in miniaudio: ```c ma_audio_buffer_config config = ma_audio_buffer_config_init( @@ -3469,7 +3538,7 @@ you will want to use. To initialize a ring buffer, do something like the followi ``` The `ma_pcm_rb_init()` function takes the sample format and channel count as parameters because -it's the PCM varient of the ring buffer API. For the regular ring buffer that operates on bytes you +it's the PCM variant of the ring buffer API. For the regular ring buffer that operates on bytes you would call `ma_rb_init()` which leaves these out and just takes the size of the buffer in bytes instead of frames. The fourth parameter is an optional pre-allocated buffer and the fifth parameter is a pointer to a `ma_allocation_callbacks` structure for custom memory allocation routines. @@ -3516,21 +3585,26 @@ producer thread. 15. Backends ============ -The following backends are supported by miniaudio. +The following backends are supported by miniaudio. These are listed in order of default priority. +When no backend is specified when initializing a context or device, miniaudio will attempt to use +each of these backends in the order listed in the table below. + +Note that backends that are not usable by the build target will not be included in the build. For +example, ALSA, which is specific to Linux, will not be included in the Windows build. +-------------+-----------------------+--------------------------------------------------------+ | Name | Enum Name | Supported Operating Systems | +-------------+-----------------------+--------------------------------------------------------+ | WASAPI | ma_backend_wasapi | Windows Vista+ | | DirectSound | ma_backend_dsound | Windows XP+ | - | WinMM | ma_backend_winmm | Windows XP+ (may work on older versions, but untested) | + | WinMM | ma_backend_winmm | Windows 95+ | | Core Audio | ma_backend_coreaudio | macOS, iOS | - | ALSA | ma_backend_alsa | Linux | - | PulseAudio | ma_backend_pulseaudio | Cross Platform (disabled on Windows, BSD and Android) | - | JACK | ma_backend_jack | Cross Platform (disabled on BSD and Android) | | sndio | ma_backend_sndio | OpenBSD | | audio(4) | ma_backend_audio4 | NetBSD, OpenBSD | | OSS | ma_backend_oss | FreeBSD | + | PulseAudio | ma_backend_pulseaudio | Cross Platform (disabled on Windows, BSD and Android) | + | ALSA | ma_backend_alsa | Linux | + | JACK | ma_backend_jack | Cross Platform (disabled on BSD and Android) | | AAudio | ma_backend_aaudio | Android 8+ | | OpenSL ES | ma_backend_opensl | Android (API level 16+) | | Web Audio | ma_backend_webaudio | Web (via Emscripten) | @@ -3569,6 +3643,12 @@ Some backends have some nuance details you may want to be aware of. miniaudio's built-in resampler is to take advantage of any potential device-specific optimizations the driver may implement. +BSD +--- +- The sndio backend is currently only enabled on OpenBSD builds. +- The audio(4) backend is supported on OpenBSD, but you may need to disable sndiod before you can + use it. + 15.4. UWP --------- - UWP only supports default playback and capture devices. @@ -3599,14 +3679,28 @@ Some backends have some nuance details you may want to be aware of. 16. Optimization Tips ===================== +See below for some tips on improving performance. -16.1. High Level API +16.1. Low Level API +------------------- +- In the data callback, if your data is already clipped prior to copying it into the output buffer, + set the `noClip` config option in the device config to true. This will disable miniaudio's built + in clipping function. +- By default, miniaudio will pre-silence the data callback's output buffer. If you know that you + will always write valid data to the output buffer you can disable pre-silencing by setting the + `noPreSilence` config option in the device config to true. + +16.2. High Level API -------------------- - If a sound does not require doppler or pitch shifting, consider disabling pitching by initializing the sound with the `MA_SOUND_FLAG_NO_PITCH` flag. -- If a sound does not require spatialization, disable it by initialzing the sound with the - `MA_SOUND_FLAG_NO_SPATIALIZATION` flag. It can be renabled again post-initialization with +- If a sound does not require spatialization, disable it by initializing the sound with the + `MA_SOUND_FLAG_NO_SPATIALIZATION` flag. It can be re-enabled again post-initialization with `ma_sound_set_spatialization_enabled()`. +- If you know all of your sounds will always be the same sample rate, set the engine's sample + rate to match that of the sounds. Likewise, if you're using a self-managed resource manager, + consider setting the decoded sample rate to match your sounds. By configuring everything to + use a consistent sample rate, sample rate conversion can be avoided. @@ -3615,17 +3709,6 @@ Some backends have some nuance details you may want to be aware of. - Automatic stream routing is enabled on a per-backend basis. Support is explicitly enabled for WASAPI and Core Audio, however other backends such as PulseAudio may naturally support it, though not all have been tested. -- The contents of the output buffer passed into the data callback will always be pre-initialized to - silence unless the `noPreSilencedOutputBuffer` config variable in `ma_device_config` is set to - true, in which case it'll be undefined which will require you to write something to the entire - buffer. -- By default miniaudio will automatically clip samples. This only applies when the playback sample - format is configured as `ma_format_f32`. If you are doing clipping yourself, you can disable this - overhead by setting `noClip` to true in the device config. -- Note that GCC and Clang requires `-msse2`, `-mavx2`, etc. for SIMD optimizations. -- The sndio backend is currently only enabled on OpenBSD builds. -- The audio(4) backend is supported on OpenBSD, but you may need to disable sndiod before you can - use it. - When compiling with VC6 and earlier, decoding is restricted to files less than 2GB in size. This is due to 64-bit file APIs not being available. */ diff --git a/vendor/miniaudio/effects.odin b/vendor/miniaudio/effects.odin index d1bf7e9e8..273845001 100644 --- a/vendor/miniaudio/effects.odin +++ b/vendor/miniaudio/effects.odin @@ -1,6 +1,6 @@ package miniaudio -import c "core:c/libc" +import "core:c" when ODIN_OS == .Windows { foreign import lib "lib/miniaudio.lib" @@ -24,7 +24,7 @@ delay_config :: struct { delay :: struct { config: delay_config, cursor: u32, /* Feedback is written to this cursor. Always equal or in front of the read cursor. */ - bufferSizeInFrames: u32, /* The maximum of config.startDelayInFrames and config.feedbackDelayInFrames. */ + bufferSizeInFrames: u32, pBuffer: [^]f32, } @@ -51,10 +51,11 @@ gainer_config :: struct { } gainer :: struct { - config: gainer_config, - t: u32, - pOldGains: [^]f32, - pNewGains: [^]f32, + config: gainer_config, + t: u32, + masterVolume: f32, + pOldGains: [^]f32, + pNewGains: [^]f32, /* Memory management. */ _pHeap: rawptr, @@ -72,6 +73,8 @@ foreign lib { gainer_process_pcm_frames :: proc(pGainer: ^gainer, pFramesOut: rawptr, pFramesIn: rawptr, frameCount: u64) -> result --- gainer_set_gain :: proc(pGainer: ^gainer, newGain: f32) -> result --- gainer_set_gains :: proc(pGainer: ^gainer, pNewGains: [^]f32) -> result --- + gainer_set_master_volume :: proc(pGainer: ^gainer, volume: f32) -> result --- + gainer_get_master_volume :: proc(pGainer: ^gainer, volume: ^f32) -> result --- } @@ -120,7 +123,7 @@ fader :: struct { volumeBeg: f32, /* If volumeBeg and volumeEnd is equal to 1, no fading happens (ma_fader_process_pcm_frames() will run as a passthrough). */ volumeEnd: f32, lengthInFrames: u64, /* The total length of the fade. */ - cursorInFrames: u64, /* The current time in frames. Incremented by ma_fader_process_pcm_frames(). */ + cursorInFrames: i64, /* The current time in frames. Incremented by ma_fader_process_pcm_frames(). Signed because it'll be offset by startOffsetInFrames in set_fade_ex(). */ } @(default_calling_convention="c", link_prefix="ma_") @@ -131,6 +134,7 @@ foreign lib { fader_process_pcm_frames :: proc(pFader: ^fader, pFramesOut, pFramesIn: rawptr, frameCount: u64) -> result --- fader_get_data_format :: proc(pFader: ^fader, pFormat: ^format, pChannels, pSampleRate: ^u32) --- fader_set_fade :: proc(pFader: ^fader, volumeBeg, volumeEnd: f32, lengthInFrames: u64) --- + fader_set_fade_ex :: proc(pFader: ^fader, volumeBeg, volumeEnd: f32, lengthInFrames: u64, startOffsetInFrames: i64) --- fader_get_current_volume :: proc(pFader: ^fader) -> f32 --- } @@ -142,6 +146,11 @@ vec3f :: struct { z: f32, } +atomic_vec3f :: struct { + v: vec3f, + lock: spinlock, +} + attenuation_model :: enum c.int { none, /* No distance attenuation and no spatialization. */ inverse, /* Equivalent to OpenAL's AL_INVERSE_DISTANCE_CLAMPED. */ @@ -172,9 +181,9 @@ spatializer_listener_config :: struct { spatializer_listener :: struct { config: spatializer_listener_config, - position: vec3f, /* The absolute position of the listener. */ - direction: vec3f, /* The direction the listener is facing. The world up vector is config.worldUp. */ - velocity: vec3f, + position: atomic_vec3f, /* The absolute position of the listener. */ + direction: atomic_vec3f, /* The direction the listener is facing. The world up vector is config.worldUp. */ + velocity: atomic_vec3f, isEnabled: b32, /* Memory management. */ @@ -224,6 +233,7 @@ spatializer_config :: struct { coneOuterGain: f32, dopplerFactor: f32, /* Set to 0 to disable doppler effect. */ directionalAttenuationFactor: f32, /* Set to 0 to disable directional attenuation. */ + minSpatializationChannelGain: f32, /* The minimal scaling factor to apply to channel gains when accounting for the direction of the sound relative to the listener. Must be in the range of 0..1. Smaller values means more aggressive directional panning, larger values means more subtle directional panning. */ gainSmoothTimeInFrames: u32, /* When the gain of a channel changes during spatialization, the transition will be linearly interpolated over this number of frames. */ } @@ -245,10 +255,11 @@ spatializer :: struct { dopplerFactor: f32, /* Set to 0 to disable doppler effect. */ directionalAttenuationFactor: f32, /* Set to 0 to disable directional attenuation. */ gainSmoothTimeInFrames: u32, /* When the gain of a channel changes during spatialization, the transition will be linearly interpolated over this number of frames. */ - position: vec3f, - direction: vec3f, - velocity: vec3f, /* For doppler effect. */ + position: atomic_vec3f, + direction: atomic_vec3f, + velocity: atomic_vec3f, /* For doppler effect. */ dopplerPitch: f32, /* Will be updated by ma_spatializer_process_pcm_frames() and can be used by higher level functions to apply a pitch shift for doppler effect. */ + minSpatializationChannelGain: f32, gainer: gainer, /* For smooth gain transitions. */ pNewChannelGainsOut: [^]f32, /* An offset of _pHeap. Used by ma_spatializer_process_pcm_frames() to store new channel gains. The number of elements in this array is equal to config.channelsOut. */ @@ -266,6 +277,8 @@ foreign lib { spatializer_init :: proc(pConfig: ^spatializer_config, pAllocationCallbacks: ^allocation_callbacks, pSpatializer: ^spatializer) -> result --- spatializer_uninit :: proc(pSpatializer: ^spatializer, pAllocationCallbacks: ^allocation_callbacks) --- spatializer_process_pcm_frames :: proc(pSpatializer: ^spatializer, pListener: ^spatializer_listener, pFramesOut, pFramesIn: rawptr, frameCount: u64) -> result --- + spatializer_set_master_volume :: proc(pSpatializer: ^spatializer, volume: f32) -> result --- + spatializer_get_master_volume :: proc(pSpatializer: ^spatializer, pVolume: ^f32) -> result --- spatializer_get_input_channels :: proc(pSpatializer: ^spatializer) -> u32 --- spatializer_get_output_channels :: proc(pSpatializer: ^spatializer) -> u32 --- spatializer_set_attenuation_model :: proc(pSpatializer: ^spatializer, attenuationModel: attenuation_model) --- diff --git a/vendor/miniaudio/encoding.odin b/vendor/miniaudio/encoding.odin index f2318457c..63aa45c6d 100644 --- a/vendor/miniaudio/encoding.odin +++ b/vendor/miniaudio/encoding.odin @@ -39,7 +39,7 @@ encoder :: struct { onUninit: encoder_uninit_proc, onWritePCMFrames: encoder_write_pcm_frames_proc, pUserData: rawptr, - pInternalEncoder: rawptr, /* <-- The drwav/drflac/stb_vorbis/etc. objects. */ + pInternalEncoder: rawptr, data: struct #raw_union { vfs: struct { pVFS: ^vfs, diff --git a/vendor/miniaudio/engine.odin b/vendor/miniaudio/engine.odin index 0f4ba3353..6eabd75c2 100644 --- a/vendor/miniaudio/engine.odin +++ b/vendor/miniaudio/engine.odin @@ -16,13 +16,17 @@ Engine /* Sound flags. */ sound_flags :: enum c.int { + /* Resource manager flags. */ STREAM = 0x00000001, /* MA_RESOURCE_MANAGER_DATA_SOURCE_FLAG_STREAM */ DECODE = 0x00000002, /* MA_RESOURCE_MANAGER_DATA_SOURCE_FLAG_DECODE */ ASYNC = 0x00000004, /* MA_RESOURCE_MANAGER_DATA_SOURCE_FLAG_ASYNC */ WAIT_INIT = 0x00000008, /* MA_RESOURCE_MANAGER_DATA_SOURCE_FLAG_WAIT_INIT */ - NO_DEFAULT_ATTACHMENT = 0x00000010, /* Do not attach to the endpoint by default. Useful for when setting up nodes in a complex graph system. */ - NO_PITCH = 0x00000020, /* Disable pitch shifting with ma_sound_set_pitch() and ma_sound_group_set_pitch(). This is an optimization. */ - NO_SPATIALIZATION = 0x00000040, /* Disable spatialization. */ + UNKNOWN_LENGTH = 0x00000010, /* MA_RESOURCE_MANAGER_DATA_SOURCE_FLAG_UNKNOWN_LENGTH */ + + /* ma_sound specific flags. */ + NO_DEFAULT_ATTACHMENT = 0x00001000, /* Do not attach to the endpoint by default. Useful for when setting up nodes in a complex graph system. */ + NO_PITCH = 0x00002000, /* Disable pitch shifting with ma_sound_set_pitch() and ma_sound_group_set_pitch(). This is an optimization. */ + NO_SPATIALIZATION = 0x00004000, /* Disable spatialization. */ } ENGINE_MAX_LISTENERS :: 4 @@ -35,31 +39,44 @@ engine_node_type :: enum c.int { } engine_node_config :: struct { - pEngine: ^engine, - type: engine_node_type, - channelsIn: u32, - channelsOut: u32, - sampleRate: u32, /* Only used when the type is set to ma_engine_node_type_sound. */ - isPitchDisabled: b8, /* Pitching can be explicitly disable with MA_SOUND_FLAG_NO_PITCH to optimize processing. */ - isSpatializationDisabled: b8, /* Spatialization can be explicitly disabled with MA_SOUND_FLAG_NO_SPATIALIZATION. */ - pinnedListenerIndex: u8, /* The index of the listener this node should always use for spatialization. If set to MA_LISTENER_INDEX_CLOSEST the engine will use the closest listener. */ + pEngine: ^engine, + type: engine_node_type, + channelsIn: u32, + channelsOut: u32, + sampleRate: u32, /* Only used when the type is set to ma_engine_node_type_sound. */ + volumeSmoothTimeInPCMFrames: u32, + monoExpansionMode: mono_expansion_mode, + isPitchDisabled: b8, /* Pitching can be explicitly disable with MA_SOUND_FLAG_NO_PITCH to optimize processing. */ + isSpatializationDisabled: b8, /* Spatialization can be explicitly disabled with MA_SOUND_FLAG_NO_SPATIALIZATION. */ + pinnedListenerIndex: u8, /* The index of the listener this node should always use for spatialization. If set to MA_LISTENER_INDEX_CLOSEST the engine will use the closest listener. */ } /* Base node object for both ma_sound and ma_sound_group. */ engine_node :: struct { - baseNode: node_base, /* Must be the first member for compatiblity with the ma_node API. */ - pEngine: ^engine, /* A pointer to the engine. Set based on the value from the config. */ - sampleRate: u32, /* The sample rate of the input data. For sounds backed by a data source, this will be the data source's sample rate. Otherwise it'll be the engine's sample rate. */ - fader: fader, - resampler: linear_resampler, /* For pitch shift. */ - spatializer: spatializer, - panner: panner, - pitch: f32, /*atomic*/ - oldPitch: f32, /* For determining whether or not the resampler needs to be updated to reflect the new pitch. The resampler will be updated on the mixing thread. */ - oldDopplerPitch: f32, /* For determining whether or not the resampler needs to be updated to take a new doppler pitch into account. */ - isPitchDisabled: b32, /*atomic*/ /* When set to true, pitching will be disabled which will allow the resampler to be bypassed to save some computation. */ - isSpatializationDisabled: b32, /*atomic*/ /* Set to false by default. When set to false, will not have spatialisation applied. */ - pinnedListenerIndex: u32, /*atomic*/ /* The index of the listener this node should always use for spatialization. If set to MA_LISTENER_INDEX_CLOSEST the engine will use the closest listener. */ + baseNode: node_base, /* Must be the first member for compatiblity with the ma_node API. */ + pEngine: ^engine, /* A pointer to the engine. Set based on the value from the config. */ + sampleRate: u32, /* The sample rate of the input data. For sounds backed by a data source, this will be the data source's sample rate. Otherwise it'll be the engine's sample rate. */ + volumeSmoothTimeInPCMFrames: u32, + monoExpansionMode: mono_expansion_mode, + fader: fader, + resampler: linear_resampler, /* For pitch shift. */ + spatializer: spatializer, + panner: panner, + volumeGainer: gainer, /* This will only be used if volumeSmoothTimeInPCMFrames is > 0. */ + volume: f32, /*atomic*/ /* Defaults to 1. */ + pitch: f32, /*atomic*/ + oldPitch: f32, /* For determining whether or not the resampler needs to be updated to reflect the new pitch. The resampler will be updated on the mixing thread. */ + oldDopplerPitch: f32, /* For determining whether or not the resampler needs to be updated to take a new doppler pitch into account. */ + isPitchDisabled: b32, /*atomic*/ /* When set to true, pitching will be disabled which will allow the resampler to be bypassed to save some computation. */ + isSpatializationDisabled: b32, /*atomic*/ /* Set to false by default. When set to false, will not have spatialisation applied. */ + pinnedListenerIndex: u32, /*atomic*/ /* The index of the listener this node should always use for spatialization. If set to MA_LISTENER_INDEX_CLOSEST the engine will use the closest listener. */ + + fadeSettings: struct { + volumeBeg: f32, /*atomic*/ + volumeEnd: f32, /*atomic*/ + fadeLengthInFrames: u64, /*atomic*/ /* <-- Defaults to (~(ma_uint64)0) which is used to indicate that no fade should be applied. */ + absoluteGlobalTimeInFrames: u64, /*atomic*/ /* <-- The time to start the fade. */ + }, /* Memory management. */ _ownsHeap: b8, @@ -79,6 +96,9 @@ foreign lib { SOUND_SOURCE_CHANNEL_COUNT :: 0xFFFFFFFF +/* Callback for when a sound reaches the end. */ +sound_end_proc :: #type proc "c" (pUserData: rawptr, pSound: ^sound) + sound_config :: struct { pFilePath: cstring, /* Set this to load from the resource manager. */ pFilePathW: [^]c.wchar_t, /* Set this to load from the resource manager. */ @@ -87,14 +107,22 @@ sound_config :: struct { initialAttachmentInputBusIndex: u32, /* The index of the input bus of pInitialAttachment to attach the sound to. */ channelsIn: u32, /* Ignored if using a data source as input (the data source's channel count will be used always). Otherwise, setting to 0 will cause the engine's channel count to be used. */ channelsOut: u32, /* Set this to 0 (default) to use the engine's channel count. Set to MA_SOUND_SOURCE_CHANNEL_COUNT to use the data source's channel count (only used if using a data source as input). */ + monoExpansionMode: mono_expansion_mode, /* Controls how the mono channel should be expanded to other channels when spatialization is disabled on a sound. */ flags: u32, /* A combination of MA_SOUND_FLAG_* flags. */ + volumeSmoothTimeInPCMFrames: u32, /* The number of frames to smooth over volume changes. Defaults to 0 in which case no smoothing is used. */ initialSeekPointInPCMFrames: u64, /* Initializes the sound such that it's seeked to this location by default. */ rangeBegInPCMFrames: u64, rangeEndInPCMFrames: u64, loopPointBegInPCMFrames: u64, loopPointEndInPCMFrames: u64, isLooping: b32, - pDoneFence: ^fence, /* Released when the resource manager has finished decoding the entire sound. Not used with streams. */ + + endCallback: sound_end_proc, /* Fired when the sound reaches the end. Will be fired from the audio thread. Do not restart, uninitialize or otherwise change the state of the sound from here. Instead fire an event or set a variable to indicate to a different thread to change the start of the sound. Will not be fired in response to a scheduled stop with ma_sound_set_stop_time_*(). */ + pEndCallbackUserData: rawptr, + + initNotifications: resource_manager_pipeline_notifications, + + pDoneFence: ^fence, /* Deprecated. Use initNotifications instead. Released when the resource manager has finished decoding the entire sound. Not used with streams. */ } sound :: struct { @@ -102,6 +130,10 @@ sound :: struct { pDataSource: ^data_source, seekTarget: u64, /*atomic*/ /* The PCM frame index to seek to in the mixing thread. Set to (~(ma_uint64)0) to not perform any seeking. */ atEnd: b32, /*atomic*/ + + endCallback: sound_end_proc, + pEndCallbackUserData: rawptr, + ownsDataSource: b8, /* @@ -120,7 +152,9 @@ sound_inlined :: struct { @(default_calling_convention="c", link_prefix="ma_") foreign lib { - sound_config_init :: proc() -> sound_config --- + @(deprecated="Will be removed in 0.12. Use sound_config_init2() instead.") + sound_config_init :: proc() -> sound_config --- + sound_config_init2 :: proc(pEngine: ^engine) -> sound_config --- /* Will be renamed to sound_config_init() in version 0.12. */ sound_init_from_file :: proc(pEngine: ^engine, pFilePath: cstring, flags: u32, pGroup: ^sound_group, pDoneFence: ^fence, pSound: ^sound) -> result --- sound_init_from_file_w :: proc(pEngine: ^engine, pFilePath: [^]c.wchar_t, flags: u32, pGroup: ^sound_group, pDoneFence: ^fence, pSound: ^sound) -> result --- @@ -132,6 +166,8 @@ foreign lib { sound_get_data_source :: proc(pSound: ^sound) -> ^data_source --- sound_start :: proc(pSound: ^sound) -> result --- sound_stop :: proc(pSound: ^sound) -> result --- + sound_stop_with_fade_in_pcm_frames :: proc(pSound: ^sound, fadeLengthInFrames: u64) --- /* Will overwrite any scheduled stop and fade. */ + sound_stop_with_fade_in_milliseconds :: proc(pSound: ^sound, fadeLengthInFrames: u64) --- /* Will overwrite any scheduled stop and fade. */ sound_set_volume :: proc(pSound: ^sound, volume: f32) --- sound_get_volume :: proc(pSound: ^sound) -> f32 --- sound_set_pan :: proc(pSound: ^sound, pan: f32) --- @@ -174,13 +210,20 @@ foreign lib { sound_get_directional_attenuation_factor :: proc(pSound: ^sound) -> f32 --- sound_set_fade_in_pcm_frames :: proc(pSound: ^sound, volumeBeg, volumeEnd: f32, fadeLengthInFrames: u64) --- sound_set_fade_in_milliseconds :: proc(pSound: ^sound, volumeBeg, volumeEnd: f32, fadeLengthInMilliseconds: u64) --- + sound_set_fade_start_in_pcm_frames :: proc(pSound: ^sound, volumeBeg, volumeEnd: f32, fadeLengthInFrames, absoluteGlobalTimeInFrames: u64) --- + sound_set_fade_start_in_milliseconds :: proc(pSound: ^sound, volumeBeg, volumeEnd: f32, fadeLengthInMilliseconds, absoluteGlobalTimeInMilliseconds: u64) --- sound_get_current_fade_volume :: proc(pSound: ^sound) -> f32 --- sound_set_start_time_in_pcm_frames :: proc(pSound: ^sound, absoluteGlobalTimeInFrames: u64) --- sound_set_start_time_in_milliseconds :: proc(pSound: ^sound, absoluteGlobalTimeInMilliseconds: u64) --- sound_set_stop_time_in_pcm_frames :: proc(pSound: ^sound, absoluteGlobalTimeInFrames: u64) --- sound_set_stop_time_in_milliseconds :: proc(pSound: ^sound, absoluteGlobalTimeInMilliseconds: u64) --- + + sound_set_stop_time_with_fade_in_pcm_frames :: proc(pSound: ^sound, stopAbsoluteGlobalTimeInFrames, fadeLengthInFrames: u64) --- + sound_set_stop_time_with_fade_in_milliseconds :: proc(pSound: ^sound, fadeAbsoluteGlobalTimeInMilliseconds, fadeLengthInMilliseconds: u64) --- + sound_is_playing :: proc(pSound: ^sound) -> b32 --- sound_get_time_in_pcm_frames :: proc(pSound: ^sound) -> u64 --- + sound_get_time_in_milliseconds :: proc(pSound: ^sound) -> u64 --- sound_set_looping :: proc(pSound: ^sound, isLooping: b32) --- sound_is_looping :: proc(pSound: ^sound) -> b32 --- sound_at_end :: proc(pSound: ^sound) -> b32 --- @@ -190,6 +233,7 @@ foreign lib { sound_get_length_in_pcm_frames :: proc(pSound: ^sound, pLength: ^u64) -> result --- sound_get_cursor_in_seconds :: proc(pSound: ^sound, pCursor: ^f32) -> result --- sound_get_length_in_seconds :: proc(pSound: ^sound, pLength: ^f32) -> result --- + sound_set_end_callback :: proc(pSound: ^sound, callback: sound_end_proc, pUserData: rawptr) --- } @@ -199,7 +243,9 @@ sound_group :: distinct sound @(default_calling_convention="c", link_prefix="ma_") foreign lib { - sound_group_config_init :: proc() -> sound_group_config --- + @(deprecated="Will be removed in 0.12. Use sound_config_init2() instead.") + sound_group_config_init :: proc() -> sound_group_config --- + sound_group_config_init2 :: proc(pEngine: ^engine) -> sound_group_config --- sound_group_init :: proc(pEngine: ^engine, flags: u32, pParentGroup, pGroup: ^sound_group) -> result --- sound_group_init_ex :: proc(pEngine: ^engine, pConfig: ^sound_group_config, pGroup: ^sound_group) -> result --- @@ -258,12 +304,17 @@ foreign lib { sound_group_get_time_in_pcm_frames :: proc(pGroup: ^sound_group) -> u64 --- } +engine_process_proc :: #type proc "c" (pUserData: rawptr, pFramesOut: [^]f32, frameCount: u64) engine_config :: struct { pResourceManager: ^resource_manager, /* Can be null in which case a resource manager will be created for you. */ pContext: ^context_type, pDevice: ^device, /* If set, the caller is responsible for calling ma_engine_data_callback() in the device's data callback. */ pPlaybackDeviceID: ^device_id, /* The ID of the playback device to use with the default listener. */ + + dataCallback: device_data_proc, /* Can be null. Can be used to provide a custom device data callback. */ + notificationCallback: device_notification_proc, + pLog: ^log, /* When set to NULL, will use the context's log. */ listenerCount: u32, /* Must be between 1 and MA_ENGINE_MAX_LISTENERS. */ channels: u32, /* The number of channels to use when mixing and spatializing. When set to 0, will use the native channel count of the device. */ @@ -272,11 +323,16 @@ engine_config :: struct { periodSizeInMilliseconds: u32, /* Used if periodSizeInFrames is unset. */ gainSmoothTimeInFrames: u32, /* The number of frames to interpolate the gain of spatialized sounds across. If set to 0, will use gainSmoothTimeInMilliseconds. */ gainSmoothTimeInMilliseconds: u32, /* When set to 0, gainSmoothTimeInFrames will be used. If both are set to 0, a default value will be used. */ + + defaultVolumeSmoothTimeInPCMFrames: u32, /* Defaults to 0. Controls the default amount of smoothing to apply to volume changes to sounds. High values means more smoothing at the expense of high latency (will take longer to reach the new volume). */ + allocationCallbacks: allocation_callbacks, noAutoStart: b32, /* When set to true, requires an explicit call to ma_engine_start(). This is false by default, meaning the engine will be started automatically in ma_engine_init(). */ noDevice: b32, /* When set to true, don't create a default device. ma_engine_read_pcm_frames() can be called manually to read data. */ monoExpansionMode: mono_expansion_mode, /* Controls how the mono channel should be expanded to other channels when spatialization is disabled on a sound. */ pResourceManagerVFS: ^vfs, /* A pointer to a pre-allocated VFS object to use with the resource manager. This is ignored if pResourceManager is not NULL. */ + onProcess: engine_process_proc, /* Fired at the end of each call to ma_engine_read_pcm_frames(). For engine's that manage their own internal device (the default configuration), this will be fired from the audio thread, and you do not need to call ma_engine_read_pcm_frames() manually in order to trigger this. */ + pProcessUserData: rawptr, /* User data that's passed into onProcess. */ } engine :: struct { @@ -294,7 +350,12 @@ engine :: struct { pInlinedSoundHead: ^sound_inlined, /* The first inlined sound. Inlined sounds are tracked in a linked list. */ inlinedSoundCount: u32, /*atomic*/ /* The total number of allocated inlined sound objects. Used for debugging. */ gainSmoothTimeInFrames: u32, /* The number of frames to interpolate the gain of spatialized sounds across. */ - monoExpansionMode: mono_expansion_mode, + + defaultVolumeSmoothTimeInPCMFrames: u32, + + monoExpansionMode: mono_expansion_mode, + onProcess: engine_process_proc, + pProcessUserData: rawptr, } @(default_calling_convention="c", link_prefix="ma_") @@ -309,15 +370,26 @@ foreign lib { engine_get_device :: proc(pEngine: ^engine) -> ^device --- engine_get_log :: proc(pEngine: ^engine) -> ^log --- engine_get_endpoint :: proc(pEngine: ^engine) -> ^node --- - engine_get_time :: proc(pEngine: ^engine) -> u64 --- - engine_set_time :: proc(pEngine: ^engine, globalTime: u64) -> result --- + + engine_get_time_in_pcm_frames :: proc(pEngine: ^engine) -> u64 --- + engine_get_time_in_milliseconds :: proc(pEngine: ^engine) -> u64 --- + engine_set_time_in_pcm_frames :: proc(pEngine: ^engine, globalTime: u64) -> result --- + engine_set_time_in_milliseconds :: proc(pEngine: ^engine, globalTime: u64) -> result --- + + @(deprecated="Use engine_get_time_in_pcm_frames(). Will be removed in 0.12.") + engine_get_time :: proc(pEngine: ^engine) -> u64 --- + @(deprecated="Use engine_set_time_in_pcm_frames(). Will be removed in 0.12.") + engine_set_time :: proc(pEngine: ^engine, globalTime: u64) -> result --- + engine_get_channels :: proc(pEngine: ^engine) -> u32 --- engine_get_sample_rate :: proc(pEngine: ^engine) -> u32 --- engine_start :: proc(pEngine: ^engine) -> result --- engine_stop :: proc(pEngine: ^engine) -> result --- engine_set_volume :: proc(pEngine: ^engine, volume: f32) -> result --- + engine_get_volume :: proc(pEngine: ^engine) -> f32 --- engine_set_gain_db :: proc(pEngine: ^engine, gainDB: f32) -> result --- + engine_get_gain_db :: proc(pEngine: ^engine) -> f32 --- engine_get_listener_count :: proc(pEngine: ^engine) -> u32 --- engine_find_closest_listener :: proc(pEngine: ^engine, absolutePosX, absolutePosY, absolutePosZ: f32) -> u32 --- diff --git a/vendor/miniaudio/filtering.odin b/vendor/miniaudio/filtering.odin index f3bde3371..31ddbd7a4 100644 --- a/vendor/miniaudio/filtering.odin +++ b/vendor/miniaudio/filtering.odin @@ -1,6 +1,6 @@ package miniaudio -import c "core:c/libc" +import "core:c" when ODIN_OS == .Windows { foreign import lib "lib/miniaudio.lib" diff --git a/vendor/miniaudio/generation.odin b/vendor/miniaudio/generation.odin index f93d3afab..69be85234 100644 --- a/vendor/miniaudio/generation.odin +++ b/vendor/miniaudio/generation.odin @@ -49,7 +49,7 @@ noise_config :: struct { } noise :: struct { - ds: data_source_vtable, + ds: data_source_base, config: noise_config, lcg: lcg, state: struct #raw_union { diff --git a/vendor/miniaudio/job_queue.odin b/vendor/miniaudio/job_queue.odin index 1b9389af7..baa71c5f1 100644 --- a/vendor/miniaudio/job_queue.odin +++ b/vendor/miniaudio/job_queue.odin @@ -1,6 +1,6 @@ package miniaudio -import c "core:c/libc" +import "core:c" when ODIN_OS == .Windows { foreign import lib "lib/miniaudio.lib" diff --git a/vendor/miniaudio/logging.odin b/vendor/miniaudio/logging.odin index 6fb94f4b0..52b1c7980 100644 --- a/vendor/miniaudio/logging.odin +++ b/vendor/miniaudio/logging.odin @@ -1,6 +1,6 @@ package miniaudio -import c "core:c/libc" +import "core:c/libc" when ODIN_OS == .Windows { foreign import lib "lib/miniaudio.lib" @@ -34,11 +34,6 @@ logLevel (in) pMessage (in) The log message. - - -Remarks -------- -Do not modify the state of the device from inside the callback. */ log_callback_proc :: proc "c" (pUserData: rawptr, level: u32, pMessage: cstring) @@ -63,6 +58,6 @@ foreign lib { log_register_callback :: proc(pLog: ^log, callback: log_callback) -> result --- log_unregister_callback :: proc(pLog: ^log, callback: log_callback) -> result --- log_post :: proc(pLog: ^log, level: u32, pMessage: cstring) -> result --- - log_postv :: proc(pLog: ^log, level: u32, pFormat: cstring, args: c.va_list) -> result --- + log_postv :: proc(pLog: ^log, level: u32, pFormat: cstring, args: libc.va_list) -> result --- log_postf :: proc(pLog: ^log, level: u32, pFormat: cstring, #c_vararg args: ..any) -> result --- } diff --git a/vendor/miniaudio/node_graph.odin b/vendor/miniaudio/node_graph.odin index 531a8e6d8..09ab50a3b 100644 --- a/vendor/miniaudio/node_graph.odin +++ b/vendor/miniaudio/node_graph.odin @@ -44,7 +44,7 @@ node_vtable :: struct { /* Extended processing callback. This callback is used for effects that process input and output at different rates (i.e. they perform resampling). This is similar to the simple version, only - they take two seperate frame counts: one for input, and one for output. + they take two separate frame counts: one for input, and one for output. On input, `pFrameCountOut` is equal to the capacity of the output buffer for each bus, whereas `pFrameCountIn` will be equal to the number of PCM frames in each of the buffers in `ppFramesIn`. @@ -102,7 +102,7 @@ node_output_bus :: struct { channels: u8, /* The number of channels in the audio stream for this bus. */ /* Mutable via multiple threads. Must be used atomically. The weird ordering here is for packing reasons. */ - inputNodeInputBusIndex: u8, /*atomic*/ /* The index of the input bus on the input. Required for detaching. */ + inputNodeInputBusIndex: u8, /* The index of the input bus on the input. Required for detaching. Will only be used in the spinlock so does not need to be atomic. */ flags: u32, /*atomic*/ /* Some state flags for tracking the read state of the output buffer. A combination of MA_NODE_OUTPUT_BUS_FLAG_*. */ refCount: u32, /*atomic*/ /* Reference count for some thread-safety when detaching. */ isAttached: b32, /*atomic*/ /* This is used to prevent iteration of nodes that are in the middle of being detached. Used for thread safety. */ @@ -236,10 +236,11 @@ foreign lib { } -/* Splitter Node. 1 input, 2 outputs. Used for splitting/copying a stream so it can be as input into two separate output nodes. */ +/* Splitter Node. 1 input, many outputs. Used for splitting/copying a stream so it can be as input into two separate output nodes. */ splitter_node_config :: struct { - nodeConfig: node_config, - channels: u32, + nodeConfig: node_config, + channels: u32, + outputBusCount: u32, } splitter_node :: struct { diff --git a/vendor/miniaudio/resource_manager.odin b/vendor/miniaudio/resource_manager.odin index 661ece468..f27f3a53a 100644 --- a/vendor/miniaudio/resource_manager.odin +++ b/vendor/miniaudio/resource_manager.odin @@ -190,6 +190,7 @@ resource_manager_config :: struct { decodedChannels: u32, /* The decoded channel count to use. Set to 0 (default) to use the file's native channel count. */ decodedSampleRate: u32, /* the decoded sample rate to use. Set to 0 (default) to use the file's native sample rate. */ jobThreadCount: u32, /* Set to 0 if you want to self-manage your job threads. Defaults to 1. */ + jobThreadStackSize: uint, jobQueueCapacity: u32, /* The maximum number of jobs that can fit in the queue at a time. Defaults to MA_JOB_TYPE_RESOURCE_MANAGER_QUEUE_CAPACITY. Cannot be zero. */ flags: u32, pVFS: ^vfs, /* Can be NULL in which case defaults will be used. */ diff --git a/vendor/miniaudio/src/miniaudio.h b/vendor/miniaudio/src/miniaudio.h index f774f0d5f..47332e11a 100644 --- a/vendor/miniaudio/src/miniaudio.h +++ b/vendor/miniaudio/src/miniaudio.h @@ -1,6 +1,6 @@ /* Audio playback and capture library. Choice of public domain or MIT-0. See license statements at the end of this file. -miniaudio - v0.11.9 - 2022-04-20 +miniaudio - v0.11.21 - 2023-11-15 David Reid - mackron@gmail.com @@ -38,7 +38,7 @@ A config/init pattern is used throughout the entire library. The idea is that yo object and pass that into the initialization routine. The advantage to this system is that the config object can be initialized with logical defaults and new properties added to it without breaking the API. The config object can be allocated on the stack and does not need to be -maintained after initialization of the corresponding object. +maintained after initialization of the corresponding object. 1.1. Low Level API @@ -87,7 +87,7 @@ device on the stack, but you could allocate it on the heap if that suits your si // Do something here. Probably your program's main loop. - ma_device_uninit(&device); // This will stop the device so no need to do that manually. + ma_device_uninit(&device); return 0; } ``` @@ -363,7 +363,7 @@ initialized. The easiest but least flexible way of playing a sound is like so: This plays what miniaudio calls an "inline" sound. It plays the sound once, and then puts the internal sound up for recycling. The last parameter is used to specify which sound group the sound should be associated with which will be explained later. This particular way of playing a sound is -simple, but lacks flexibility and features. A more flexible way of playing a sound is to first +simple, but lacks flexibility and features. A more flexible way of playing a sound is to first initialize a sound: ```c @@ -386,7 +386,7 @@ Sounds should be uninitialized with `ma_sound_uninit()`. Sounds are not started by default. Start a sound with `ma_sound_start()` and stop it with `ma_sound_stop()`. When a sound is stopped, it is not rewound to the start. Use -`ma_sound_seek_to_pcm_frames(&sound, 0)` to seek back to the start of a sound. By default, starting +`ma_sound_seek_to_pcm_frame(&sound, 0)` to seek back to the start of a sound. By default, starting and stopping sounds happens immediately, but sometimes it might be convenient to schedule the sound the be started and/or stopped at a specific time. This can be done with the following functions: @@ -398,13 +398,13 @@ the be started and/or stopped at a specific time. This can be done with the foll ``` The start/stop time needs to be specified based on the absolute timer which is controlled by the -engine. The current global time time in PCM frames can be retrieved with `ma_engine_get_time()`. -The engine's global time can be changed with `ma_engine_set_time()` for synchronization purposes if -required. Note that scheduling a start time still requires an explicit call to `ma_sound_start()` -before anything will play: +engine. The current global time time in PCM frames can be retrieved with +`ma_engine_get_time_in_pcm_frames()`. The engine's global time can be changed with +`ma_engine_set_time_in_pcm_frames()` for synchronization purposes if required. Note that scheduling +a start time still requires an explicit call to `ma_sound_start()` before anything will play: ```c - ma_sound_set_start_time_in_pcm_frames(&sound, ma_engine_get_time(&engine) + (ma_engine_get_sample_rate(&engine) * 2); + ma_sound_set_start_time_in_pcm_frames(&sound, ma_engine_get_time_in_pcm_frames(&engine) + (ma_engine_get_sample_rate(&engine) * 2); ma_sound_start(&sound); ``` @@ -460,6 +460,11 @@ is at the end, use `ma_sound_at_end()`. Looping of a sound can be controlled wit miniaudio should work cleanly out of the box without the need to download or install any dependencies. See below for platform-specific details. +Note that GCC and Clang require `-msse2`, `-mavx2`, etc. for SIMD optimizations. + +If you get errors about undefined references to `__sync_val_compare_and_swap_8`, `__atomic_load_8`, +etc. you need to link with `-latomic`. + 2.1. Windows ------------ @@ -489,9 +494,10 @@ notarization process. To fix this there are two options. The first is to use the #include "miniaudio.h" ``` -This will require linking with `-framework CoreFoundation -framework CoreAudio -framework AudioUnit`. -Alternatively, if you would rather keep using runtime linking you can add the following to your -entitlements.xcent file: +This will require linking with `-framework CoreFoundation -framework CoreAudio -framework AudioToolbox`. +If you get errors about AudioToolbox, try with `-framework AudioUnit` instead. You may get this when +using older versions of iOS. Alternatively, if you would rather keep using runtime linking you can +add the following to your entitlements.xcent file: ``` com.apple.security.cs.allow-dyld-environment-variables @@ -532,6 +538,20 @@ you'll need to disable run-time linking with `MA_NO_RUNTIME_LINKING` and link wi The Emscripten build emits Web Audio JavaScript directly and should compile cleanly out of the box. You cannot use `-std=c*` compiler flags, nor `-ansi`. +You can enable the use of AudioWorkets by defining `MA_ENABLE_AUDIO_WORKLETS` and then compiling +with the following options: + + -sAUDIO_WORKLET=1 -sWASM_WORKERS=1 -sASYNCIFY + +An example for compiling with AudioWorklet support might look like this: + + emcc program.c -o bin/program.html -DMA_ENABLE_AUDIO_WORKLETS -sAUDIO_WORKLET=1 -sWASM_WORKERS=1 -sASYNCIFY + +To run locally, you'll need to use emrun: + + emrun bin/program.html + + 2.7. Build Options ------------------ @@ -627,10 +647,29 @@ You cannot use `-std=c*` compiler flags, nor `-ansi`. | | and `ma_device` APIs. This is useful if you only want to use | | | miniaudio's data conversion and/or decoding APIs. | +----------------------------------+--------------------------------------------------------------------+ + | MA_NO_RESOURCE_MANAGER | Disables the resource manager. When using the engine this will | + | | also disable the following functions: | + | | | + | | ``` | + | | ma_sound_init_from_file() | + | | ma_sound_init_from_file_w() | + | | ma_sound_init_copy() | + | | ma_engine_play_sound_ex() | + | | ma_engine_play_sound() | + | | ``` | + | | | + | | The only way to initialize a `ma_sound` object is to initialize it | + | | from a data source. | + +----------------------------------+--------------------------------------------------------------------+ + | MA_NO_NODE_GRAPH | Disables the node graph API. This will also disable the engine API | + | | because it depends on the node graph. | + +----------------------------------+--------------------------------------------------------------------+ + | MA_NO_ENGINE | Disables the engine API. | + +----------------------------------+--------------------------------------------------------------------+ | MA_NO_THREADING | Disables the `ma_thread`, `ma_mutex`, `ma_semaphore` and | | | `ma_event` APIs. This option is useful if you only need to use | | | miniaudio for data conversion, decoding and/or encoding. Some | - | | families of APIsrequire threading which means the following | + | | families of APIs require threading which means the following | | | options must also be set: | | | | | | ``` | @@ -729,7 +768,7 @@ To read data from a data source: ma_result result; ma_uint64 framesRead; - result = ma_data_source_read_pcm_frames(pDataSource, pFramesOut, frameCount, &framesRead, loop); + result = ma_data_source_read_pcm_frames(pDataSource, pFramesOut, frameCount, &framesRead); if (result != MA_SUCCESS) { return result; // Failed to read data from the data source. } @@ -749,7 +788,7 @@ you could plug in a decoder like so: ma_uint64 framesRead; ma_decoder decoder; // <-- This would be initialized with `ma_decoder_init_*()`. - result = ma_data_source_read_pcm_frames(&decoder, pFramesOut, frameCount, &framesRead, loop); + result = ma_data_source_read_pcm_frames(&decoder, pFramesOut, frameCount, &framesRead); if (result != MA_SUCCESS) { return result; // Failed to read data from the decoder. } @@ -803,7 +842,7 @@ retrieved like so: ma_uint32 channels; ma_uint32 sampleRate; ma_channel channelMap[MA_MAX_CHANNELS]; - + result = ma_data_source_get_data_format(pDataSource, &format, &channels, &sampleRate, channelMap, MA_MAX_CHANNELS); if (result != MA_SUCCESS) { return result; // Failed to retrieve data format. @@ -823,7 +862,9 @@ read data within a certain range of the underlying data. To do this you can use ``` This is useful if you have a sound bank where many sounds are stored in the same file and you want -the data source to only play one of those sub-sounds. +the data source to only play one of those sub-sounds. Note that once the range is set, everything +that takes a position, such as cursors and loop points, should always be relatvie to the start of +the range. When the range is set, any previously defined loop point will be reset. Custom loop points can also be used with data sources. By default, data sources will loop after they reach the end of the data source, but if you need to loop at a specific location, you can do @@ -852,19 +893,19 @@ To do this, you can use chaining: return result; // Failed to set the next data source. } - result = ma_data_source_read_pcm_frames(&decoder1, pFramesOut, frameCount, pFramesRead, MA_FALSE); + result = ma_data_source_read_pcm_frames(&decoder1, pFramesOut, frameCount, pFramesRead); if (result != MA_SUCCESS) { return result; // Failed to read from the decoder. } ``` In the example above we're using decoders. When reading from a chain, you always want to read from -the top level data source in the chain. In the example above, `decoder1` is the top level data +the top level data source in the chain. In the example above, `decoder1` is the top level data source in the chain. When `decoder1` reaches the end, `decoder2` will start seamlessly without any gaps. -Note that the `loop` parameter is set to false in the example above. When this is set to true, only -the current data source will be looped. You can loop the entire chain by linking in a loop like so: +Note that when looping is enabled, only the current data source will be looped. You can loop the +entire chain by linking in a loop like so: ```c ma_data_source_set_next(&decoder1, &decoder2); // decoder1 -> decoder2 @@ -875,9 +916,9 @@ Note that setting up chaining is not thread safe, so care needs to be taken if y changing links while the audio thread is in the middle of reading. Do not use `ma_decoder_seek_to_pcm_frame()` as a means to reuse a data source to play multiple -instances of the same sound simultaneously. Instead, initialize multiple data sources for each -instance. This can be extremely inefficient depending on the data source and can result in -glitching due to subtle changes to the state of internal filters. +instances of the same sound simultaneously. This can be extremely inefficient depending on the type +of data source and can result in glitching due to subtle changes to the state of internal filters. +Instead, initialize multiple data sources for each instance. 4.1. Custom Data Sources @@ -922,7 +963,7 @@ base object (`ma_data_source_base`): // Retrieve the length in PCM frames here. Return MA_NOT_IMPLEMENTED and set *pLength to 0 if there is no notion of a length or if the length is unknown. } - static g_my_data_source_vtable = + static ma_data_source_vtable g_my_data_source_vtable = { my_data_source_read, my_data_source_seek, @@ -952,7 +993,7 @@ base object (`ma_data_source_base`): void my_data_source_uninit(my_data_source* pMyDataSource) { // ... do the uninitialization of your custom data source here ... - + // You must uninitialize the base data source. ma_data_source_uninit(&pMyDataSource->base); } @@ -1001,7 +1042,7 @@ configure the engine with an engine config: ma_engine_config engineConfig; engineConfig = ma_engine_config_init(); - engineConfig.pPlaybackDevice = &myDevice; + engineConfig.pDevice = &myDevice; result = ma_engine_init(&engineConfig, &engine); if (result != MA_SUCCESS) { @@ -1042,7 +1083,7 @@ Note that when you're not using a device, you must set the channel count and sam config or else miniaudio won't know what to use (miniaudio will use the device to determine this normally). When not using a device, you need to use `ma_engine_read_pcm_frames()` to process audio data from the engine. This kind of setup is useful if you want to do something like offline -processing. +processing or want to use a different audio system for playback such as SDL. When a sound is loaded it goes through a resource manager. By default the engine will initialize a resource manager internally, but you can also specify a pre-initialized resource manager: @@ -1207,7 +1248,7 @@ might be beneficial to pre-decode the sound. You can do this with the `MA_SOUND_ By default, sounds will be loaded synchronously, meaning `ma_sound_init_*()` will not return until the sound has been fully loaded. If this is prohibitive you can instead load sounds asynchronously -by specificying the `MA_SOUND_FLAG_ASYNC` flag: +by specifying the `MA_SOUND_FLAG_ASYNC` flag: ```c ma_sound_init_from_file(&engine, "my_sound.wav", MA_SOUND_FLAG_DECODE | MA_SOUND_FLAG_ASYNC, pGroup, NULL, &sound); @@ -1228,7 +1269,7 @@ counter hit's zero. You can specify a fence like so: ma_sound sounds[4]; result = ma_fence_init(&fence); - if (result != MA_SUCCES) { + if (result != MA_SUCCESS) { return result; } @@ -1254,6 +1295,18 @@ When streaming sounds, 2 seconds worth of audio data is stored in memory. Althou fine, it's inefficient to use streaming for short sounds. Streaming is useful for things like music tracks in games. +When loading a sound from a file path, the engine will reference count the file to prevent it from +being loaded if it's already in memory. When you uninitialize a sound, the reference count will be +decremented, and if it hits zero, the sound will be unloaded from memory. This reference counting +system is not used for streams. The engine will use a 64-bit hash of the file name when comparing +file paths which means there's a small chance you might encounter a name collision. If this is an +issue, you'll need to use a different name for one of the colliding file paths, or just not load +from files and instead load from a data source. + +You can use `ma_sound_init_copy()` to initialize a copy of another sound. Note, however, that this +only works for sounds that were initialized with `ma_sound_init_from_file()` and without the +`MA_SOUND_FLAG_STREAM` flag. + When you initialize a sound, if you specify a sound group the sound will be attached to that group automatically. If you set it to NULL, it will be automatically attached to the engine's endpoint. If you would instead rather leave the sound unattached by default, you can can specify the @@ -1393,19 +1446,19 @@ can be useful to schedule a sound to start or stop: ```c // Start the sound in 1 second from now. - ma_sound_set_start_time_in_pcm_frames(&sound, ma_engine_get_time(&engine) + (ma_engine_get_sample_rate(&engine) * 1)); + ma_sound_set_start_time_in_pcm_frames(&sound, ma_engine_get_time_in_pcm_frames(&engine) + (ma_engine_get_sample_rate(&engine) * 1)); // Stop the sound in 2 seconds from now. - ma_sound_set_stop_time_in_pcm_frames(&sound, ma_engine_get_time(&engine) + (ma_engine_get_sample_rate(&engine) * 2)); + ma_sound_set_stop_time_in_pcm_frames(&sound, ma_engine_get_time_in_pcm_frames(&engine) + (ma_engine_get_sample_rate(&engine) * 2)); ``` Note that scheduling a start time still requires an explicit call to `ma_sound_start()` before anything will play. The time is specified in global time which is controlled by the engine. You can get the engine's -current time with `ma_engine_get_time()`. The engine's global time is incremented automatically as -audio data is read, but it can be reset with `ma_engine_set_time()` in case it needs to be -resynchronized for some reason. +current time with `ma_engine_get_time_in_pcm_frames()`. The engine's global time is incremented +automatically as audio data is read, but it can be reset with `ma_engine_set_time_in_pcm_frames()` +in case it needs to be resynchronized for some reason. To determine whether or not a sound is currently playing, use `ma_sound_is_playing()`. This will take the scheduled start and stop times into account. @@ -1414,7 +1467,25 @@ Whether or not a sound should loop can be controlled with `ma_sound_set_looping( be looping by default. Use `ma_sound_is_looping()` to determine whether or not a sound is looping. Use `ma_sound_at_end()` to determine whether or not a sound is currently at the end. For a looping -sound this should never return true. +sound this should never return true. Alternatively, you can configure a callback that will be fired +when the sound reaches the end. Note that the callback is fired from the audio thread which means +you cannot be uninitializing sound from the callback. To set the callback you can use +`ma_sound_set_end_callback()`. Alternatively, if you're using `ma_sound_init_ex()`, you can pass it +into the config like so: + + ```c + soundConfig.endCallback = my_end_callback; + soundConfig.pEndCallbackUserData = pMyEndCallbackUserData; + ``` + +The end callback is declared like so: + + ```c + void my_end_callback(void* pUserData, ma_sound* pSound) + { + ... + } + ``` Internally a sound wraps around a data source. Some APIs exist to control the underlying data source, mainly for convenience: @@ -1429,7 +1500,7 @@ source, mainly for convenience: Sound groups have the same API as sounds, only they are called `ma_sound_group`, and since they do not have any notion of a data source, anything relating to a data source is unavailable. -Internally, sound data is loaded via the `ma_decoder` API which means by default in only supports +Internally, sound data is loaded via the `ma_decoder` API which means by default it only supports file formats that have built-in support in miniaudio. You can extend this to support any kind of file format through the use of custom decoders. To do this you'll need to use a self-managed resource manager and configure it appropriately. See the "Resource Management" section below for @@ -1444,7 +1515,7 @@ streaming. This is supported by miniaudio via the `ma_resource_manager` API. The resource manager is mainly responsible for the following: * Loading of sound files into memory with reference counting. - * Streaming of sound data + * Streaming of sound data. When loading a sound file, the resource manager will give you back a `ma_data_source` compatible object called `ma_resource_manager_data_source`. This object can be passed into any @@ -1539,7 +1610,7 @@ need to retrieve a job using `ma_resource_manager_next_job()` and then process i ma_job job; ma_result result = ma_resource_manager_next_job(pMyResourceManager, &job); if (result != MA_SUCCESS) { - if (result == MA_NOT_DATA_AVAILABLE) { + if (result == MA_NO_DATA_AVAILABLE) { // No jobs are available. Keep going. Will only get this if the resource manager was initialized // with MA_RESOURCE_MANAGER_FLAG_NON_BLOCKING. continue; @@ -1578,7 +1649,7 @@ default. This can be done by setting `pVFS` member of the resource manager's con This is particularly useful in programs like games where you want to read straight from an archive rather than the normal file system. If you do not specify a custom VFS, the resource manager will -use the operating system's normal file operations. This is default. +use the operating system's normal file operations. To load a sound file and create a data source, call `ma_resource_manager_data_source_init()`. When loading a sound you need to specify the file path and options for how the sounds should be loaded. @@ -1604,7 +1675,7 @@ an example for initializing a data source: // ... - ma_resource_manager_data_source_uninit(pResourceManager, &dataSource); + ma_resource_manager_data_source_uninit(&dataSource); ``` The `flags` parameter specifies how you want to perform loading of the sound file. It can be a @@ -1841,19 +1912,21 @@ once after the other: ```c ma_resource_manager_data_source_init(pResourceManager, "my_file", ..., &myDataBuffer0); // Refcount = 1. Initial load. - ma_resource_manager_data_source_uninit(pResourceManager, &myDataBuffer0); // Refcount = 0. Unloaded. + ma_resource_manager_data_source_uninit(&myDataBuffer0); // Refcount = 0. Unloaded. ma_resource_manager_data_source_init(pResourceManager, "my_file", ..., &myDataBuffer1); // Refcount = 1. Reloaded because previous uninit() unloaded it. - ma_resource_manager_data_source_uninit(pResourceManager, &myDataBuffer1); // Refcount = 0. Unloaded. + ma_resource_manager_data_source_uninit(&myDataBuffer1); // Refcount = 0. Unloaded. ``` A binary search tree (BST) is used for storing data buffers as it has good balance between efficiency and simplicity. The key of the BST is a 64-bit hash of the file path that was passed into `ma_resource_manager_data_source_init()`. The advantage of using a hash is that it saves memory over storing the entire path, has faster comparisons, and results in a mostly balanced BST -due to the random nature of the hash. The disadvantage is that file names are case-sensitive. If -this is an issue, you should normalize your file names to upper- or lower-case before initializing -your data sources. +due to the random nature of the hash. The disadvantages are that file names are case-sensitive and +there's a small chance of name collisions. If case-sensitivity is an issue, you should normalize +your file names to upper- or lower-case before initializing your data sources. If name collisions +become an issue, you'll need to change the name of one of the colliding names or just not use the +resource manager. When a sound file has not already been loaded and the `MA_RESOURCE_MANAGER_DATA_SOURCE_FLAG_ASYNC` flag is excluded, the file will be decoded synchronously by the calling thread. There are two @@ -1933,7 +2006,7 @@ miniaudio's routing infrastructure follows a node graph paradigm. The idea is th node whose outputs are attached to inputs of another node, thereby creating a graph. There are different types of nodes, with each node in the graph processing input data to produce output, which is then fed through the chain. Each node in the graph can apply their own custom effects. At -the start of the graph will usually be one or more data source nodes which have no inputs, but +the start of the graph will usually be one or more data source nodes which have no inputs and instead pull their data from a data source. At the end of the graph is an endpoint which represents the end of the chain and is where the final output is ultimately extracted from. @@ -1959,7 +2032,7 @@ splitter node. It's at this point that the two data sources are mixed. After mix performs it's processing routine and produces two outputs which is simply a duplication of the input stream. One output is attached to a low pass filter, whereas the other output is attached to a echo/delay. The outputs of the the low pass filter and the echo are attached to the endpoint, and -since they're both connected to the same input but, they'll be mixed. +since they're both connected to the same input bus, they'll be mixed. Each input bus must be configured to accept the same number of channels, but the number of channels used by input buses can be different to the number of channels for output buses in which case @@ -1999,14 +2072,14 @@ data from the graph: ``` When you read audio data, miniaudio starts at the node graph's endpoint node which then pulls in -data from it's input attachments, which in turn recusively pull in data from their inputs, and so +data from it's input attachments, which in turn recursively pull in data from their inputs, and so on. At the start of the graph there will be some kind of data source node which will have zero inputs and will instead read directly from a data source. The base nodes don't literally need to read from a `ma_data_source` object, but they will always have some kind of underlying object that sources some kind of audio. The `ma_data_source_node` node can be used to read from a `ma_data_source`. Data is always in floating-point format and in the number of channels you specified when the graph was initialized. The sample rate is defined by the underlying data sources. -It's up to you to ensure they use a consistent and appropraite sample rate. +It's up to you to ensure they use a consistent and appropriate sample rate. The `ma_node` API is designed to allow custom nodes to be implemented with relative ease, but miniaudio includes a few stock nodes for common functionality. This is how you would initialize a @@ -2047,7 +2120,7 @@ another, you do not need to detach first. You can just call `ma_node_attach_outp deal with it for you. Less frequently you may want to create a specialized node. This will be a node where you implement -your own processing callback to apply a custom effect of some kind. This is similar to initalizing +your own processing callback to apply a custom effect of some kind. This is similar to initializing one of the stock node types, only this time you need to specify a pointer to a vtable containing a pointer to the processing function and the number of input and output buses. Example: @@ -2074,7 +2147,7 @@ pointer to the processing function and the number of input and output buses. Exa static ma_node_vtable my_custom_node_vtable = { - my_custom_node_process_pcm_frames, // The function that will be called process your custom node. This is where you'd implement your effect processing. + my_custom_node_process_pcm_frames, // The function that will be called to process your custom node. This is where you'd implement your effect processing. NULL, // Optional. A callback for calculating the number of input frames that are required to process a specified number of output frames. 2, // 2 input buses. 1, // 1 output bus. @@ -2086,7 +2159,7 @@ pointer to the processing function and the number of input and output buses. Exa // Each bus needs to have a channel count specified. To do this you need to specify the channel // counts in an array and then pass that into the node config. ma_uint32 inputChannels[2]; // Equal in size to the number of input channels specified in the vtable. - ma_uint32 outputChannels[1]; // Equal in size to the number of output channels specicied in the vtable. + ma_uint32 outputChannels[1]; // Equal in size to the number of output channels specified in the vtable. inputChannels[0] = channelsIn; inputChannels[1] = channelsIn; @@ -2170,10 +2243,19 @@ and include the following: +-----------------------------------------+---------------------------------------------------+ | MA_NODE_FLAG_CONTINUOUS_PROCESSING | Causes the processing callback to be called even | | | when no data is available to be read from input | - | | attachments. This is useful for effects like | + | | attachments. When a node has at least one input | + | | bus, but there are no inputs attached or the | + | | inputs do not deliver any data, the node's | + | | processing callback will not get fired. This flag | + | | will make it so the callback is always fired | + | | regardless of whether or not any input data is | + | | received. This is useful for effects like | | | echos where there will be a tail of audio data | | | that still needs to be processed even when the | - | | original data sources have reached their ends. | + | | original data sources have reached their ends. It | + | | may also be useful for nodes that must always | + | | have their processing callback fired when there | + | | are no inputs attached. | +-----------------------------------------+---------------------------------------------------+ | MA_NODE_FLAG_ALLOW_NULL_INPUT | Used in conjunction with | | | `MA_NODE_FLAG_CONTINUOUS_PROCESSING`. When this | @@ -2204,7 +2286,7 @@ called `ma_splitter_node`. This takes has 1 input bus and splits the stream into You can use it like this: ```c - ma_splitter_node_config splitterNodeConfig = ma_splitter_node_config_init(channelsIn, channelsOut); + ma_splitter_node_config splitterNodeConfig = ma_splitter_node_config_init(channels); ma_splitter_node splitterNode; result = ma_splitter_node_init(&nodeGraph, &splitterNodeConfig, NULL, &splitterNode); @@ -2364,7 +2446,7 @@ bus and input bus is locked. This locking is specifically for attaching and deta different threads and does not affect `ma_node_graph_read_pcm_frames()` in any way. The locking and unlocking is mostly self-explanatory, but a slightly less intuitive aspect comes into it when considering that iterating over attachments must not break as a result of attaching or detaching a -node while iteration is occuring. +node while iteration is occurring. Attaching and detaching are both quite simple. When an output bus of a node is attached to an input bus of another node, it's added to a linked list. Basically, an input bus is a linked list, where @@ -2392,37 +2474,18 @@ used. The same general process applies to detachment. See `ma_node_attach_output 8. Decoding =========== The `ma_decoder` API is used for reading audio files. Decoders are completely decoupled from -devices and can be used independently. The following formats are supported: +devices and can be used independently. Built-in support is included for the following formats: - +---------+------------------+----------+ - | Format | Decoding Backend | Built-In | - +---------+------------------+----------+ - | WAV | dr_wav | Yes | - | MP3 | dr_mp3 | Yes | - | FLAC | dr_flac | Yes | - | Vorbis | stb_vorbis | No | - +---------+------------------+----------+ + +---------+ + | Format | + +---------+ + | WAV | + | MP3 | + | FLAC | + +---------+ -Vorbis is supported via stb_vorbis which can be enabled by including the header section before the -implementation of miniaudio, like the following: - - ```c - #define STB_VORBIS_HEADER_ONLY - #include "extras/stb_vorbis.c" // Enables Vorbis decoding. - - #define MINIAUDIO_IMPLEMENTATION - #include "miniaudio.h" - - // The stb_vorbis implementation must come after the implementation of miniaudio. - #undef STB_VORBIS_HEADER_ONLY - #include "extras/stb_vorbis.c" - ``` - -A copy of stb_vorbis is included in the "extras" folder in the miniaudio repository (https://github.com/mackron/miniaudio). - -Built-in decoders are amalgamated into the implementation section of miniaudio. You can disable the -built-in decoders by specifying one or more of the following options before the miniaudio -implementation: +You can disable the built-in decoders by specifying one or more of the following options before the +miniaudio implementation: ```c #define MA_NO_WAV @@ -2430,8 +2493,8 @@ implementation: #define MA_NO_FLAC ``` -Disabling built-in decoding libraries is useful if you use these libraries independantly of the -`ma_decoder` API. +miniaudio supports the ability to plug in custom decoders. See the section below for details on how +to use custom decoders. A decoder can be initialized from a file with `ma_decoder_init_file()`, a block of memory with `ma_decoder_init_memory()`, or from data delivered via callbacks with `ma_decoder_init()`. Here is @@ -2532,7 +2595,7 @@ The `ma_decoding_backend_vtable` vtable has the following functions: ``` onInit - onInitFile + onInitFile onInitFileW onInitMemory onUninit @@ -2544,11 +2607,11 @@ these are not specified, miniaudio will deal with it for you via a generic imple When you initialize a custom data source (by implementing the `onInit` function in the vtable) you will need to output a pointer to a `ma_data_source` which implements your custom decoder. See the -section about data sources for details on how to implemen this. Alternatively, see the +section about data sources for details on how to implement this. Alternatively, see the "custom_decoders" example in the miniaudio repository. The `onInit` function takes a pointer to some callbacks for the purpose of reading raw audio data -from some abitrary source. You'll use these functions to read from the raw data and perform the +from some arbitrary source. You'll use these functions to read from the raw data and perform the decoding. When you call them, you will pass in the `pReadSeekTellUserData` pointer to the relevant parameter. @@ -2572,8 +2635,7 @@ opportunity to clean up and internal data. 9. Encoding =========== -The `ma_encoding` API is used for writing audio files. The only supported output format is WAV -which is achieved via dr_wav which is amalgamated into the implementation section of miniaudio. +The `ma_encoding` API is used for writing audio files. The only supported output format is WAV. This can be disabled by specifying the following option before the implementation of miniaudio: ```c @@ -2613,9 +2675,16 @@ outputting any audio data. To output audio data, use `ma_encoder_write_pcm_frame example below: ```c - framesWritten = ma_encoder_write_pcm_frames(&encoder, pPCMFramesToWrite, framesToWrite); + ma_uint64 framesWritten; + result = ma_encoder_write_pcm_frames(&encoder, pPCMFramesToWrite, framesToWrite, &framesWritten); + if (result != MA_SUCCESS) { + ... handle error ... + } ``` +The `framesWritten` variable will contain the number of PCM frames that were actually written. This +is optionally and you can pass in `NULL` if you need this. + Encoders must be uninitialized with `ma_encoder_uninit()`. @@ -2699,7 +2768,7 @@ To perform the conversion simply call `ma_channel_converter_process_pcm_frames() } ``` -It is up to the caller to ensure the output buffer is large enough to accomodate the new PCM +It is up to the caller to ensure the output buffer is large enough to accommodate the new PCM frames. Input and output PCM frames are always interleaved. Deinterleaved layouts are not supported. @@ -3145,7 +3214,7 @@ you can chain first and second order filters together. If you need to change the configuration of the filter, but need to maintain the state of internal registers you can do so with `ma_lpf_reinit()`. This may be useful if you need to change the sample -rate and/or cutoff frequency dynamically while maintaing smooth transitions. Note that changing the +rate and/or cutoff frequency dynamically while maintaining smooth transitions. Note that changing the format or channel count after initialization is invalid and will result in an error. The `ma_lpf` object supports a configurable order, but if you only need a first order filter you @@ -3318,8 +3387,8 @@ The noise API uses simple LCG random number generation. It supports a custom see for things like automated testing requiring reproducibility. Setting the seed to zero will default to `MA_DEFAULT_LCG_SEED`. -The amplitude, seed, and type can be changed dynamically with `ma_noise_set_amplitude()`, -`ma_noise_set_seed()`, and `ma_noise_set_type()` respectively. +The amplitude and seed can be changed dynamically with `ma_noise_set_amplitude()` and +`ma_noise_set_seed()` respectively. By default, the noise API will use different values for different channels. So, for example, the left side in a stereo stream will be different to the right side. To instead have each channel use @@ -3347,7 +3416,7 @@ miniaudio supports reading from a buffer of raw audio data via the `ma_audio_buf read from memory that's managed by the application, but can also handle the memory management for you internally. Memory management is flexible and should support most use cases. -Audio buffers are initialised using the standard configuration system used everywhere in miniaudio: +Audio buffers are initialized using the standard configuration system used everywhere in miniaudio: ```c ma_audio_buffer_config config = ma_audio_buffer_config_init( @@ -3467,7 +3536,7 @@ you will want to use. To initialize a ring buffer, do something like the followi ``` The `ma_pcm_rb_init()` function takes the sample format and channel count as parameters because -it's the PCM varient of the ring buffer API. For the regular ring buffer that operates on bytes you +it's the PCM variant of the ring buffer API. For the regular ring buffer that operates on bytes you would call `ma_rb_init()` which leaves these out and just takes the size of the buffer in bytes instead of frames. The fourth parameter is an optional pre-allocated buffer and the fifth parameter is a pointer to a `ma_allocation_callbacks` structure for custom memory allocation routines. @@ -3514,21 +3583,26 @@ producer thread. 15. Backends ============ -The following backends are supported by miniaudio. +The following backends are supported by miniaudio. These are listed in order of default priority. +When no backend is specified when initializing a context or device, miniaudio will attempt to use +each of these backends in the order listed in the table below. + +Note that backends that are not usable by the build target will not be included in the build. For +example, ALSA, which is specific to Linux, will not be included in the Windows build. +-------------+-----------------------+--------------------------------------------------------+ | Name | Enum Name | Supported Operating Systems | +-------------+-----------------------+--------------------------------------------------------+ | WASAPI | ma_backend_wasapi | Windows Vista+ | | DirectSound | ma_backend_dsound | Windows XP+ | - | WinMM | ma_backend_winmm | Windows XP+ (may work on older versions, but untested) | + | WinMM | ma_backend_winmm | Windows 95+ | | Core Audio | ma_backend_coreaudio | macOS, iOS | - | ALSA | ma_backend_alsa | Linux | - | PulseAudio | ma_backend_pulseaudio | Cross Platform (disabled on Windows, BSD and Android) | - | JACK | ma_backend_jack | Cross Platform (disabled on BSD and Android) | | sndio | ma_backend_sndio | OpenBSD | | audio(4) | ma_backend_audio4 | NetBSD, OpenBSD | | OSS | ma_backend_oss | FreeBSD | + | PulseAudio | ma_backend_pulseaudio | Cross Platform (disabled on Windows, BSD and Android) | + | ALSA | ma_backend_alsa | Linux | + | JACK | ma_backend_jack | Cross Platform (disabled on BSD and Android) | | AAudio | ma_backend_aaudio | Android 8+ | | OpenSL ES | ma_backend_opensl | Android (API level 16+) | | Web Audio | ma_backend_webaudio | Web (via Emscripten) | @@ -3567,6 +3641,12 @@ Some backends have some nuance details you may want to be aware of. miniaudio's built-in resampler is to take advantage of any potential device-specific optimizations the driver may implement. +BSD +--- +- The sndio backend is currently only enabled on OpenBSD builds. +- The audio(4) backend is supported on OpenBSD, but you may need to disable sndiod before you can + use it. + 15.4. UWP --------- - UWP only supports default playback and capture devices. @@ -3597,14 +3677,28 @@ Some backends have some nuance details you may want to be aware of. 16. Optimization Tips ===================== +See below for some tips on improving performance. -16.1. High Level API +16.1. Low Level API +------------------- +- In the data callback, if your data is already clipped prior to copying it into the output buffer, + set the `noClip` config option in the device config to true. This will disable miniaudio's built + in clipping function. +- By default, miniaudio will pre-silence the data callback's output buffer. If you know that you + will always write valid data to the output buffer you can disable pre-silencing by setting the + `noPreSilence` config option in the device config to true. + +16.2. High Level API -------------------- - If a sound does not require doppler or pitch shifting, consider disabling pitching by initializing the sound with the `MA_SOUND_FLAG_NO_PITCH` flag. -- If a sound does not require spatialization, disable it by initialzing the sound with the - `MA_SOUND_FLAG_NO_SPATIALIZATION` flag. It can be renabled again post-initialization with +- If a sound does not require spatialization, disable it by initializing the sound with the + `MA_SOUND_FLAG_NO_SPATIALIZATION` flag. It can be re-enabled again post-initialization with `ma_sound_set_spatialization_enabled()`. +- If you know all of your sounds will always be the same sample rate, set the engine's sample + rate to match that of the sounds. Likewise, if you're using a self-managed resource manager, + consider setting the decoded sample rate to match your sounds. By configuring everything to + use a consistent sample rate, sample rate conversion can be avoided. @@ -3613,17 +3707,6 @@ Some backends have some nuance details you may want to be aware of. - Automatic stream routing is enabled on a per-backend basis. Support is explicitly enabled for WASAPI and Core Audio, however other backends such as PulseAudio may naturally support it, though not all have been tested. -- The contents of the output buffer passed into the data callback will always be pre-initialized to - silence unless the `noPreSilencedOutputBuffer` config variable in `ma_device_config` is set to - true, in which case it'll be undefined which will require you to write something to the entire - buffer. -- By default miniaudio will automatically clip samples. This only applies when the playback sample - format is configured as `ma_format_f32`. If you are doing clipping yourself, you can disable this - overhead by setting `noClip` to true in the device config. -- Note that GCC and Clang requires `-msse2`, `-mavx2`, etc. for SIMD optimizations. -- The sndio backend is currently only enabled on OpenBSD builds. -- The audio(4) backend is supported on OpenBSD, but you may need to disable sndiod before you can - use it. - When compiling with VC6 and earlier, decoding is restricted to files less than 2GB in size. This is due to 64-bit file APIs not being available. */ @@ -3640,7 +3723,7 @@ extern "C" { #define MA_VERSION_MAJOR 0 #define MA_VERSION_MINOR 11 -#define MA_VERSION_REVISION 9 +#define MA_VERSION_REVISION 21 #define MA_VERSION_STRING MA_XSTRINGIFY(MA_VERSION_MAJOR) "." MA_XSTRINGIFY(MA_VERSION_MINOR) "." MA_XSTRINGIFY(MA_VERSION_REVISION) #if defined(_MSC_VER) && !defined(__clang__) @@ -3655,7 +3738,7 @@ extern "C" { #pragma GCC diagnostic ignored "-Wc11-extensions" /* anonymous unions are a C11 extension */ #endif #endif - + #if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__)) || defined(_M_X64) || defined(__ia64) || defined(_M_IA64) || defined(__aarch64__) || defined(_M_ARM64) || defined(__powerpc64__) @@ -3714,9 +3797,24 @@ typedef ma_uint32 ma_bool32; #define MA_TRUE 1 #define MA_FALSE 0 +/* These float types are not used universally by miniaudio. It's to simplify some macro expansion for atomic types. */ +typedef float ma_float; +typedef double ma_double; + typedef void* ma_handle; typedef void* ma_ptr; -typedef void (* ma_proc)(void); + +/* +ma_proc is annoying because when compiling with GCC we get pendantic warnings about converting +between `void*` and `void (*)()`. We can't use `void (*)()` with MSVC however, because we'll get +warning C4191 about "type cast between incompatible function types". To work around this I'm going +to use a different data type depending on the compiler. +*/ +#if defined(__GNUC__) +typedef void (*ma_proc)(void); +#else +typedef void* ma_proc; +#endif #if defined(_MSC_VER) && !defined(_WCHAR_T_DEFINED) typedef ma_uint16 wchar_t; @@ -3735,16 +3833,17 @@ typedef ma_uint16 wchar_t; /* Platform/backend detection. */ -#ifdef _WIN32 +#if defined(_WIN32) || defined(__COSMOPOLITAN__) #define MA_WIN32 - #if defined(WINAPI_FAMILY) && ((defined(WINAPI_FAMILY_PC_APP) && WINAPI_FAMILY == WINAPI_FAMILY_PC_APP) || (defined(WINAPI_FAMILY_PHONE_APP) && WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP)) + #if defined(MA_FORCE_UWP) || (defined(WINAPI_FAMILY) && ((defined(WINAPI_FAMILY_PC_APP) && WINAPI_FAMILY == WINAPI_FAMILY_PC_APP) || (defined(WINAPI_FAMILY_PHONE_APP) && WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP))) #define MA_WIN32_UWP #elif defined(WINAPI_FAMILY) && (defined(WINAPI_FAMILY_GAMES) && WINAPI_FAMILY == WINAPI_FAMILY_GAMES) #define MA_WIN32_GDK #else #define MA_WIN32_DESKTOP #endif -#else +#endif +#if !defined(_WIN32) /* If it's not Win32, assume POSIX. */ #define MA_POSIX /* @@ -3765,29 +3864,64 @@ typedef ma_uint16 wchar_t; typedef union ma_pthread_cond_t { char __data[48]; ma_uint64 __alignment; } ma_pthread_cond_t; #endif - #ifdef __unix__ + #if defined(__unix__) #define MA_UNIX - #if defined(__DragonFly__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) - #define MA_BSD - #endif #endif - #ifdef __linux__ + #if defined(__linux__) #define MA_LINUX #endif - #ifdef __APPLE__ + #if defined(__APPLE__) #define MA_APPLE #endif - #ifdef __ANDROID__ + #if defined(__DragonFly__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) + #define MA_BSD + #endif + #if defined(__ANDROID__) #define MA_ANDROID #endif - #ifdef __EMSCRIPTEN__ + #if defined(__EMSCRIPTEN__) #define MA_EMSCRIPTEN #endif + #if defined(__ORBIS__) + #define MA_ORBIS + #endif + #if defined(__PROSPERO__) + #define MA_PROSPERO + #endif + #if defined(__NX__) + #define MA_NX + #endif + #if defined(__BEOS__) || defined(__HAIKU__) + #define MA_BEOS + #endif + #if defined(__HAIKU__) + #define MA_HAIKU + #endif #endif +#if defined(__has_c_attribute) + #if __has_c_attribute(fallthrough) + #define MA_FALLTHROUGH [[fallthrough]] + #endif +#endif +#if !defined(MA_FALLTHROUGH) && defined(__has_attribute) && (defined(__clang__) || defined(__GNUC__)) + #if __has_attribute(fallthrough) + #define MA_FALLTHROUGH __attribute__((fallthrough)) + #endif +#endif +#if !defined(MA_FALLTHROUGH) + #define MA_FALLTHROUGH ((void)0) +#endif #ifdef _MSC_VER #define MA_INLINE __forceinline + + /* noinline was introduced in Visual Studio 2005. */ + #if _MSC_VER >= 1400 + #define MA_NO_INLINE __declspec(noinline) + #else + #define MA_NO_INLINE + #endif #elif defined(__GNUC__) /* I've had a bug report where GCC is emitting warnings about functions possibly not being inlineable. This warning happens when @@ -3804,48 +3938,77 @@ typedef ma_uint16 wchar_t; #if (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)) || defined(__clang__) #define MA_INLINE MA_GNUC_INLINE_HINT __attribute__((always_inline)) + #define MA_NO_INLINE __attribute__((noinline)) #else #define MA_INLINE MA_GNUC_INLINE_HINT + #define MA_NO_INLINE __attribute__((noinline)) #endif #elif defined(__WATCOMC__) #define MA_INLINE __inline + #define MA_NO_INLINE #else #define MA_INLINE + #define MA_NO_INLINE +#endif + +/* MA_DLL is not officially supported. You're on your own if you want to use this. */ +#if defined(MA_DLL) + #if defined(_WIN32) + #define MA_DLL_IMPORT __declspec(dllimport) + #define MA_DLL_EXPORT __declspec(dllexport) + #define MA_DLL_PRIVATE static + #else + #if defined(__GNUC__) && __GNUC__ >= 4 + #define MA_DLL_IMPORT __attribute__((visibility("default"))) + #define MA_DLL_EXPORT __attribute__((visibility("default"))) + #define MA_DLL_PRIVATE __attribute__((visibility("hidden"))) + #else + #define MA_DLL_IMPORT + #define MA_DLL_EXPORT + #define MA_DLL_PRIVATE static + #endif + #endif #endif #if !defined(MA_API) #if defined(MA_DLL) - #if defined(_WIN32) - #define MA_DLL_IMPORT __declspec(dllimport) - #define MA_DLL_EXPORT __declspec(dllexport) - #define MA_DLL_PRIVATE static - #else - #if defined(__GNUC__) && __GNUC__ >= 4 - #define MA_DLL_IMPORT __attribute__((visibility("default"))) - #define MA_DLL_EXPORT __attribute__((visibility("default"))) - #define MA_DLL_PRIVATE __attribute__((visibility("hidden"))) - #else - #define MA_DLL_IMPORT - #define MA_DLL_EXPORT - #define MA_DLL_PRIVATE static - #endif - #endif - #if defined(MINIAUDIO_IMPLEMENTATION) || defined(MA_IMPLEMENTATION) #define MA_API MA_DLL_EXPORT #else #define MA_API MA_DLL_IMPORT #endif - #define MA_PRIVATE MA_DLL_PRIVATE #else #define MA_API extern + #endif +#endif + +#if !defined(MA_STATIC) + #if defined(MA_DLL) + #define MA_PRIVATE MA_DLL_PRIVATE + #else #define MA_PRIVATE static #endif #endif + /* SIMD alignment in bytes. Currently set to 32 bytes in preparation for future AVX optimizations. */ #define MA_SIMD_ALIGNMENT 32 +/* +Special wchar_t type to ensure any structures in the public sections that reference it have a +consistent size across all platforms. + +On Windows, wchar_t is 2 bytes, whereas everywhere else it's 4 bytes. Since Windows likes to use +wchar_t for it's IDs, we need a special explicitly sized wchar type that is always 2 bytes on all +platforms. +*/ +#if !defined(MA_POSIX) && defined(MA_WIN32) +typedef wchar_t ma_wchar_win32; +#else +typedef ma_uint16 ma_wchar_win32; +#endif + + /* Logging Levels @@ -3890,9 +4053,9 @@ implications. Where supported by the compiler, alignment will be used, but other architecture does not require it, it will simply leave it unaligned. This is the case with old versions of Visual Studio, which I've confirmed with at least VC6. */ -#if defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) +#if !defined(_MSC_VER) && defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) #include - #define MA_ATOMIC(alignment, type) alignas(alignment) type + #define MA_ATOMIC(alignment, type) _Alignas(alignment) type #else #if defined(__GNUC__) /* GCC-style compilers. */ @@ -4025,32 +4188,36 @@ typedef enum MA_CANCELLED = -51, MA_MEMORY_ALREADY_MAPPED = -52, + /* General non-standard errors. */ + MA_CRC_MISMATCH = -100, + /* General miniaudio-specific errors. */ - MA_FORMAT_NOT_SUPPORTED = -100, - MA_DEVICE_TYPE_NOT_SUPPORTED = -101, - MA_SHARE_MODE_NOT_SUPPORTED = -102, - MA_NO_BACKEND = -103, - MA_NO_DEVICE = -104, - MA_API_NOT_FOUND = -105, - MA_INVALID_DEVICE_CONFIG = -106, - MA_LOOP = -107, + MA_FORMAT_NOT_SUPPORTED = -200, + MA_DEVICE_TYPE_NOT_SUPPORTED = -201, + MA_SHARE_MODE_NOT_SUPPORTED = -202, + MA_NO_BACKEND = -203, + MA_NO_DEVICE = -204, + MA_API_NOT_FOUND = -205, + MA_INVALID_DEVICE_CONFIG = -206, + MA_LOOP = -207, + MA_BACKEND_NOT_ENABLED = -208, /* State errors. */ - MA_DEVICE_NOT_INITIALIZED = -200, - MA_DEVICE_ALREADY_INITIALIZED = -201, - MA_DEVICE_NOT_STARTED = -202, - MA_DEVICE_NOT_STOPPED = -203, + MA_DEVICE_NOT_INITIALIZED = -300, + MA_DEVICE_ALREADY_INITIALIZED = -301, + MA_DEVICE_NOT_STARTED = -302, + MA_DEVICE_NOT_STOPPED = -303, /* Operation errors. */ - MA_FAILED_TO_INIT_BACKEND = -300, - MA_FAILED_TO_OPEN_BACKEND_DEVICE = -301, - MA_FAILED_TO_START_BACKEND_DEVICE = -302, - MA_FAILED_TO_STOP_BACKEND_DEVICE = -303 + MA_FAILED_TO_INIT_BACKEND = -400, + MA_FAILED_TO_OPEN_BACKEND_DEVICE = -401, + MA_FAILED_TO_START_BACKEND_DEVICE = -402, + MA_FAILED_TO_STOP_BACKEND_DEVICE = -403 } ma_result; #define MA_MIN_CHANNELS 1 -#ifndef MA_MAX_CHANNELS +#ifndef MA_MAX_CHANNELS #define MA_MAX_CHANNELS 254 #endif @@ -4107,7 +4274,7 @@ typedef enum ma_standard_sample_rate_192000 = 192000, ma_standard_sample_rate_16000 = 16000, /* Extreme lows */ - ma_standard_sample_rate_11025 = 11250, + ma_standard_sample_rate_11025 = 11025, ma_standard_sample_rate_8000 = 8000, ma_standard_sample_rate_352800 = 352800, /* Extreme highs */ @@ -4123,7 +4290,7 @@ typedef enum { ma_channel_mix_mode_rectangular = 0, /* Simple averaging based on the plane(s) the channel is sitting on. */ ma_channel_mix_mode_simple, /* Drop excess channels; zeroed out extra channels. */ - ma_channel_mix_mode_custom_weights, /* Use custom weights specified in ma_channel_router_config. */ + ma_channel_mix_mode_custom_weights, /* Use custom weights specified in ma_channel_converter_config. */ ma_channel_mix_mode_default = ma_channel_mix_mode_rectangular } ma_channel_mix_mode; @@ -4161,65 +4328,118 @@ typedef struct } ma_lcg; +/* +Atomics. + +These are typesafe structures to prevent errors as a result of forgetting to reference variables atomically. It's too +easy to introduce subtle bugs where you accidentally do a regular assignment instead of an atomic load/store, etc. By +using a struct we can enforce the use of atomics at compile time. + +These types are declared in the header section because we need to reference them in structs below, but functions for +using them are only exposed in the implementation section. I do not want these to be part of the public API. + +There's a few downsides to this system. The first is that you need to declare a new struct for each type. Below are +some macros to help with the declarations. They will be named like so: + + ma_atomic_uint32 - atomic ma_uint32 + ma_atomic_int32 - atomic ma_int32 + ma_atomic_uint64 - atomic ma_uint64 + ma_atomic_float - atomic float + ma_atomic_bool32 - atomic ma_bool32 + +The other downside is that atomic pointers are extremely messy. You need to declare a new struct for each specific +type of pointer you need to make atomic. For example, an atomic ma_node* will look like this: + + MA_ATOMIC_SAFE_TYPE_IMPL_PTR(node) + +Which will declare a type struct that's named like so: + + ma_atomic_ptr_node + +Functions to use the atomic types are declared in the implementation section. All atomic functions are prefixed with +the name of the struct. For example: + + ma_atomic_uint32_set() - Atomic store of ma_uint32 + ma_atomic_uint32_get() - Atomic load of ma_uint32 + etc. + +For pointer types it's the same, which makes them a bit messy to use due to the length of each function name, but in +return you get type safety and enforcement of atomic operations. +*/ +#define MA_ATOMIC_SAFE_TYPE_DECL(c89TypeExtension, typeSize, type) \ + typedef struct \ + { \ + MA_ATOMIC(typeSize, ma_##type) value; \ + } ma_atomic_##type; \ + +#define MA_ATOMIC_SAFE_TYPE_DECL_PTR(type) \ + typedef struct \ + { \ + MA_ATOMIC(MA_SIZEOF_PTR, ma_##type*) value; \ + } ma_atomic_ptr_##type; \ + +MA_ATOMIC_SAFE_TYPE_DECL(32, 4, uint32) +MA_ATOMIC_SAFE_TYPE_DECL(i32, 4, int32) +MA_ATOMIC_SAFE_TYPE_DECL(64, 8, uint64) +MA_ATOMIC_SAFE_TYPE_DECL(f32, 4, float) +MA_ATOMIC_SAFE_TYPE_DECL(32, 4, bool32) + + /* Spinlocks are 32-bit for compatibility reasons. */ typedef ma_uint32 ma_spinlock; #ifndef MA_NO_THREADING -/* Thread priorities should be ordered such that the default priority of the worker thread is 0. */ -typedef enum -{ - ma_thread_priority_idle = -5, - ma_thread_priority_lowest = -4, - ma_thread_priority_low = -3, - ma_thread_priority_normal = -2, - ma_thread_priority_high = -1, - ma_thread_priority_highest = 0, - ma_thread_priority_realtime = 1, - ma_thread_priority_default = 0 -} ma_thread_priority; + /* Thread priorities should be ordered such that the default priority of the worker thread is 0. */ + typedef enum + { + ma_thread_priority_idle = -5, + ma_thread_priority_lowest = -4, + ma_thread_priority_low = -3, + ma_thread_priority_normal = -2, + ma_thread_priority_high = -1, + ma_thread_priority_highest = 0, + ma_thread_priority_realtime = 1, + ma_thread_priority_default = 0 + } ma_thread_priority; -#if defined(MA_WIN32) -typedef ma_handle ma_thread; -#endif -#if defined(MA_POSIX) -typedef ma_pthread_t ma_thread; -#endif + #if defined(MA_POSIX) + typedef ma_pthread_t ma_thread; + #elif defined(MA_WIN32) + typedef ma_handle ma_thread; + #endif -#if defined(MA_WIN32) -typedef ma_handle ma_mutex; -#endif -#if defined(MA_POSIX) -typedef ma_pthread_mutex_t ma_mutex; -#endif + #if defined(MA_POSIX) + typedef ma_pthread_mutex_t ma_mutex; + #elif defined(MA_WIN32) + typedef ma_handle ma_mutex; + #endif -#if defined(MA_WIN32) -typedef ma_handle ma_event; -#endif -#if defined(MA_POSIX) -typedef struct -{ - ma_uint32 value; - ma_pthread_mutex_t lock; - ma_pthread_cond_t cond; -} ma_event; -#endif /* MA_POSIX */ + #if defined(MA_POSIX) + typedef struct + { + ma_uint32 value; + ma_pthread_mutex_t lock; + ma_pthread_cond_t cond; + } ma_event; + #elif defined(MA_WIN32) + typedef ma_handle ma_event; + #endif -#if defined(MA_WIN32) -typedef ma_handle ma_semaphore; -#endif -#if defined(MA_POSIX) -typedef struct -{ - int value; - ma_pthread_mutex_t lock; - ma_pthread_cond_t cond; -} ma_semaphore; -#endif /* MA_POSIX */ + #if defined(MA_POSIX) + typedef struct + { + int value; + ma_pthread_mutex_t lock; + ma_pthread_cond_t cond; + } ma_semaphore; + #elif defined(MA_WIN32) + typedef ma_handle ma_semaphore; + #endif #else -/* MA_NO_THREADING is set which means threading is disabled. Threading is required by some API families. If any of these are enabled we need to throw an error. */ -#ifndef MA_NO_DEVICE_IO -#error "MA_NO_THREADING cannot be used without MA_NO_DEVICE_IO"; -#endif + /* MA_NO_THREADING is set which means threading is disabled. Threading is required by some API families. If any of these are enabled we need to throw an error. */ + #ifndef MA_NO_DEVICE_IO + #error "MA_NO_THREADING cannot be used without MA_NO_DEVICE_IO"; + #endif #endif /* MA_NO_THREADING */ @@ -4247,7 +4467,7 @@ Logging #endif #endif #ifndef MA_ATTRIBUTE_FORMAT -#define MA_ATTRIBUTE_FORMAT(fmt,va) +#define MA_ATTRIBUTE_FORMAT(fmt, va) #endif #ifndef MA_MAX_LOG_CALLBACKS @@ -4278,11 +4498,6 @@ logLevel (in) pMessage (in) The log message. - - -Remarks -------- -Do not modify the state of the device from inside the callback. */ typedef void (* ma_log_callback_proc)(void* pUserData, ma_uint32 level, const char* pMessage); @@ -4748,7 +4963,7 @@ typedef struct { ma_delay_config config; ma_uint32 cursor; /* Feedback is written to this cursor. Always equal or in front of the read cursor. */ - ma_uint32 bufferSizeInFrames; /* The maximum of config.startDelayInFrames and config.feedbackDelayInFrames. */ + ma_uint32 bufferSizeInFrames; float* pBuffer; } ma_delay; @@ -4777,6 +4992,7 @@ typedef struct { ma_gainer_config config; ma_uint32 t; + float masterVolume; float* pOldGains; float* pNewGains; @@ -4792,6 +5008,8 @@ MA_API void ma_gainer_uninit(ma_gainer* pGainer, const ma_allocation_callbacks* MA_API ma_result ma_gainer_process_pcm_frames(ma_gainer* pGainer, void* pFramesOut, const void* pFramesIn, ma_uint64 frameCount); MA_API ma_result ma_gainer_set_gain(ma_gainer* pGainer, float newGain); MA_API ma_result ma_gainer_set_gains(ma_gainer* pGainer, float* pNewGains); +MA_API ma_result ma_gainer_set_master_volume(ma_gainer* pGainer, float volume); +MA_API ma_result ma_gainer_get_master_volume(const ma_gainer* pGainer, float* pVolume); @@ -4846,14 +5064,15 @@ typedef struct float volumeBeg; /* If volumeBeg and volumeEnd is equal to 1, no fading happens (ma_fader_process_pcm_frames() will run as a passthrough). */ float volumeEnd; ma_uint64 lengthInFrames; /* The total length of the fade. */ - ma_uint64 cursorInFrames; /* The current time in frames. Incremented by ma_fader_process_pcm_frames(). */ + ma_int64 cursorInFrames; /* The current time in frames. Incremented by ma_fader_process_pcm_frames(). Signed because it'll be offset by startOffsetInFrames in set_fade_ex(). */ } ma_fader; MA_API ma_result ma_fader_init(const ma_fader_config* pConfig, ma_fader* pFader); MA_API ma_result ma_fader_process_pcm_frames(ma_fader* pFader, void* pFramesOut, const void* pFramesIn, ma_uint64 frameCount); MA_API void ma_fader_get_data_format(const ma_fader* pFader, ma_format* pFormat, ma_uint32* pChannels, ma_uint32* pSampleRate); MA_API void ma_fader_set_fade(ma_fader* pFader, float volumeBeg, float volumeEnd, ma_uint64 lengthInFrames); -MA_API float ma_fader_get_current_volume(ma_fader* pFader); +MA_API void ma_fader_set_fade_ex(ma_fader* pFader, float volumeBeg, float volumeEnd, ma_uint64 lengthInFrames, ma_int64 startOffsetInFrames); +MA_API float ma_fader_get_current_volume(const ma_fader* pFader); @@ -4865,6 +5084,12 @@ typedef struct float z; } ma_vec3f; +typedef struct +{ + ma_vec3f v; + ma_spinlock lock; +} ma_atomic_vec3f; + typedef enum { ma_attenuation_model_none, /* No distance attenuation and no spatialization. */ @@ -4904,9 +5129,9 @@ MA_API ma_spatializer_listener_config ma_spatializer_listener_config_init(ma_uin typedef struct { ma_spatializer_listener_config config; - ma_vec3f position; /* The absolute position of the listener. */ - ma_vec3f direction; /* The direction the listener is facing. The world up vector is config.worldUp. */ - ma_vec3f velocity; + ma_atomic_vec3f position; /* The absolute position of the listener. */ + ma_atomic_vec3f direction; /* The direction the listener is facing. The world up vector is config.worldUp. */ + ma_atomic_vec3f velocity; ma_bool32 isEnabled; /* Memory management. */ @@ -4953,6 +5178,7 @@ typedef struct float coneOuterGain; float dopplerFactor; /* Set to 0 to disable doppler effect. */ float directionalAttenuationFactor; /* Set to 0 to disable directional attenuation. */ + float minSpatializationChannelGain; /* The minimal scaling factor to apply to channel gains when accounting for the direction of the sound relative to the listener. Must be in the range of 0..1. Smaller values means more aggressive directional panning, larger values means more subtle directional panning. */ ma_uint32 gainSmoothTimeInFrames; /* When the gain of a channel changes during spatialization, the transition will be linearly interpolated over this number of frames. */ } ma_spatializer_config; @@ -4978,10 +5204,11 @@ typedef struct float dopplerFactor; /* Set to 0 to disable doppler effect. */ float directionalAttenuationFactor; /* Set to 0 to disable directional attenuation. */ ma_uint32 gainSmoothTimeInFrames; /* When the gain of a channel changes during spatialization, the transition will be linearly interpolated over this number of frames. */ - ma_vec3f position; - ma_vec3f direction; - ma_vec3f velocity; /* For doppler effect. */ + ma_atomic_vec3f position; + ma_atomic_vec3f direction; + ma_atomic_vec3f velocity; /* For doppler effect. */ float dopplerPitch; /* Will be updated by ma_spatializer_process_pcm_frames() and can be used by higher level functions to apply a pitch shift for doppler effect. */ + float minSpatializationChannelGain; ma_gainer gainer; /* For smooth gain transitions. */ float* pNewChannelGainsOut; /* An offset of _pHeap. Used by ma_spatializer_process_pcm_frames() to store new channel gains. The number of elements in this array is equal to config.channelsOut. */ @@ -4995,6 +5222,8 @@ MA_API ma_result ma_spatializer_init_preallocated(const ma_spatializer_config* p MA_API ma_result ma_spatializer_init(const ma_spatializer_config* pConfig, const ma_allocation_callbacks* pAllocationCallbacks, ma_spatializer* pSpatializer); MA_API void ma_spatializer_uninit(ma_spatializer* pSpatializer, const ma_allocation_callbacks* pAllocationCallbacks); MA_API ma_result ma_spatializer_process_pcm_frames(ma_spatializer* pSpatializer, ma_spatializer_listener* pListener, void* pFramesOut, const void* pFramesIn, ma_uint64 frameCount); +MA_API ma_result ma_spatializer_set_master_volume(ma_spatializer* pSpatializer, float volume); +MA_API ma_result ma_spatializer_get_master_volume(const ma_spatializer* pSpatializer, float* pVolume); MA_API ma_uint32 ma_spatializer_get_input_channels(const ma_spatializer* pSpatializer); MA_API ma_uint32 ma_spatializer_get_output_channels(const ma_spatializer* pSpatializer); MA_API void ma_spatializer_set_attenuation_model(ma_spatializer* pSpatializer, ma_attenuation_model attenuationModel); @@ -5168,7 +5397,7 @@ MA_API void ma_resampler_uninit(ma_resampler* pResampler, const ma_allocation_ca /* Converts the given input data. -Both the input and output frames must be in the format specified in the config when the resampler was initilized. +Both the input and output frames must be in the format specified in the config when the resampler was initialized. On input, [pFrameCountOut] contains the number of output frames to process. On output it contains the number of output frames that were actually processed, which may be less than the requested amount which will happen if there's not enough input data. You can use @@ -5191,7 +5420,7 @@ MA_API ma_result ma_resampler_process_pcm_frames(ma_resampler* pResampler, const /* -Sets the input and output sample sample rate. +Sets the input and output sample rate. */ MA_API ma_result ma_resampler_set_rate(ma_resampler* pResampler, ma_uint32 sampleRateIn, ma_uint32 sampleRateOut); @@ -5264,6 +5493,7 @@ typedef struct const ma_channel* pChannelMapIn; const ma_channel* pChannelMapOut; ma_channel_mix_mode mixingMode; + ma_bool32 calculateLFEFromSpatialChannels; /* When an output LFE channel is present, but no input LFE, set to true to set the output LFE to the average of all spatial channels (LR, FR, etc.). Ignored when an input LFE is present. */ float** ppWeights; /* [in][out]. Only used when mixingMode is set to ma_channel_mix_mode_custom_weights. */ } ma_channel_converter_config; @@ -5316,6 +5546,7 @@ typedef struct ma_channel* pChannelMapOut; ma_dither_mode ditherMode; ma_channel_mix_mode channelMixMode; + ma_bool32 calculateLFEFromSpatialChannels; /* When an output LFE channel is present, but no input LFE, set to true to set the output LFE to the average of all spatial channels (LR, FR, etc.). Ignored when an input LFE is present. */ float** ppChannelWeights; /* [in][out]. Only used when mixingMode is set to ma_channel_mix_mode_custom_weights. */ ma_bool32 allowDynamicSampleRate; ma_resampler_config resampling; @@ -5496,6 +5727,28 @@ The channel map buffer must have a capacity of at least `channels`. */ MA_API ma_bool32 ma_channel_map_contains_channel_position(ma_uint32 channels, const ma_channel* pChannelMap, ma_channel channelPosition); +/* +Find a channel position in the given channel map. Returns MA_TRUE if the channel is found; MA_FALSE otherwise. The +index of the channel is output to `pChannelIndex`. + +The channel map buffer must have a capacity of at least `channels`. +*/ +MA_API ma_bool32 ma_channel_map_find_channel_position(ma_uint32 channels, const ma_channel* pChannelMap, ma_channel channelPosition, ma_uint32* pChannelIndex); + +/* +Generates a string representing the given channel map. + +This is for printing and debugging purposes, not serialization/deserialization. + +Returns the length of the string, not including the null terminator. +*/ +MA_API size_t ma_channel_map_to_string(const ma_channel* pChannelMap, ma_uint32 channels, char* pBufferOut, size_t bufferCap); + +/* +Retrieves a human readable version of a channel position. +*/ +MA_API const char* ma_channel_position_to_string(ma_channel channel); + /************************************************************************************************************************************************************ @@ -5516,6 +5769,197 @@ MA_API ma_uint64 ma_convert_frames(void* pOut, ma_uint64 frameCountOut, ma_forma MA_API ma_uint64 ma_convert_frames_ex(void* pOut, ma_uint64 frameCountOut, const void* pIn, ma_uint64 frameCountIn, const ma_data_converter_config* pConfig); +/************************************************************************************************************************************************************ + +Data Source + +************************************************************************************************************************************************************/ +typedef void ma_data_source; + +#define MA_DATA_SOURCE_SELF_MANAGED_RANGE_AND_LOOP_POINT 0x00000001 + +typedef struct +{ + ma_result (* onRead)(ma_data_source* pDataSource, void* pFramesOut, ma_uint64 frameCount, ma_uint64* pFramesRead); + ma_result (* onSeek)(ma_data_source* pDataSource, ma_uint64 frameIndex); + ma_result (* onGetDataFormat)(ma_data_source* pDataSource, ma_format* pFormat, ma_uint32* pChannels, ma_uint32* pSampleRate, ma_channel* pChannelMap, size_t channelMapCap); + ma_result (* onGetCursor)(ma_data_source* pDataSource, ma_uint64* pCursor); + ma_result (* onGetLength)(ma_data_source* pDataSource, ma_uint64* pLength); + ma_result (* onSetLooping)(ma_data_source* pDataSource, ma_bool32 isLooping); + ma_uint32 flags; +} ma_data_source_vtable; + +typedef ma_data_source* (* ma_data_source_get_next_proc)(ma_data_source* pDataSource); + +typedef struct +{ + const ma_data_source_vtable* vtable; +} ma_data_source_config; + +MA_API ma_data_source_config ma_data_source_config_init(void); + + +typedef struct +{ + const ma_data_source_vtable* vtable; + ma_uint64 rangeBegInFrames; + ma_uint64 rangeEndInFrames; /* Set to -1 for unranged (default). */ + ma_uint64 loopBegInFrames; /* Relative to rangeBegInFrames. */ + ma_uint64 loopEndInFrames; /* Relative to rangeBegInFrames. Set to -1 for the end of the range. */ + ma_data_source* pCurrent; /* When non-NULL, the data source being initialized will act as a proxy and will route all operations to pCurrent. Used in conjunction with pNext/onGetNext for seamless chaining. */ + ma_data_source* pNext; /* When set to NULL, onGetNext will be used. */ + ma_data_source_get_next_proc onGetNext; /* Will be used when pNext is NULL. If both are NULL, no next will be used. */ + MA_ATOMIC(4, ma_bool32) isLooping; +} ma_data_source_base; + +MA_API ma_result ma_data_source_init(const ma_data_source_config* pConfig, ma_data_source* pDataSource); +MA_API void ma_data_source_uninit(ma_data_source* pDataSource); +MA_API ma_result ma_data_source_read_pcm_frames(ma_data_source* pDataSource, void* pFramesOut, ma_uint64 frameCount, ma_uint64* pFramesRead); /* Must support pFramesOut = NULL in which case a forward seek should be performed. */ +MA_API ma_result ma_data_source_seek_pcm_frames(ma_data_source* pDataSource, ma_uint64 frameCount, ma_uint64* pFramesSeeked); /* Can only seek forward. Equivalent to ma_data_source_read_pcm_frames(pDataSource, NULL, frameCount, &framesRead); */ +MA_API ma_result ma_data_source_seek_to_pcm_frame(ma_data_source* pDataSource, ma_uint64 frameIndex); +MA_API ma_result ma_data_source_get_data_format(ma_data_source* pDataSource, ma_format* pFormat, ma_uint32* pChannels, ma_uint32* pSampleRate, ma_channel* pChannelMap, size_t channelMapCap); +MA_API ma_result ma_data_source_get_cursor_in_pcm_frames(ma_data_source* pDataSource, ma_uint64* pCursor); +MA_API ma_result ma_data_source_get_length_in_pcm_frames(ma_data_source* pDataSource, ma_uint64* pLength); /* Returns MA_NOT_IMPLEMENTED if the length is unknown or cannot be determined. Decoders can return this. */ +MA_API ma_result ma_data_source_get_cursor_in_seconds(ma_data_source* pDataSource, float* pCursor); +MA_API ma_result ma_data_source_get_length_in_seconds(ma_data_source* pDataSource, float* pLength); +MA_API ma_result ma_data_source_set_looping(ma_data_source* pDataSource, ma_bool32 isLooping); +MA_API ma_bool32 ma_data_source_is_looping(const ma_data_source* pDataSource); +MA_API ma_result ma_data_source_set_range_in_pcm_frames(ma_data_source* pDataSource, ma_uint64 rangeBegInFrames, ma_uint64 rangeEndInFrames); +MA_API void ma_data_source_get_range_in_pcm_frames(const ma_data_source* pDataSource, ma_uint64* pRangeBegInFrames, ma_uint64* pRangeEndInFrames); +MA_API ma_result ma_data_source_set_loop_point_in_pcm_frames(ma_data_source* pDataSource, ma_uint64 loopBegInFrames, ma_uint64 loopEndInFrames); +MA_API void ma_data_source_get_loop_point_in_pcm_frames(const ma_data_source* pDataSource, ma_uint64* pLoopBegInFrames, ma_uint64* pLoopEndInFrames); +MA_API ma_result ma_data_source_set_current(ma_data_source* pDataSource, ma_data_source* pCurrentDataSource); +MA_API ma_data_source* ma_data_source_get_current(const ma_data_source* pDataSource); +MA_API ma_result ma_data_source_set_next(ma_data_source* pDataSource, ma_data_source* pNextDataSource); +MA_API ma_data_source* ma_data_source_get_next(const ma_data_source* pDataSource); +MA_API ma_result ma_data_source_set_next_callback(ma_data_source* pDataSource, ma_data_source_get_next_proc onGetNext); +MA_API ma_data_source_get_next_proc ma_data_source_get_next_callback(const ma_data_source* pDataSource); + + +typedef struct +{ + ma_data_source_base ds; + ma_format format; + ma_uint32 channels; + ma_uint32 sampleRate; + ma_uint64 cursor; + ma_uint64 sizeInFrames; + const void* pData; +} ma_audio_buffer_ref; + +MA_API ma_result ma_audio_buffer_ref_init(ma_format format, ma_uint32 channels, const void* pData, ma_uint64 sizeInFrames, ma_audio_buffer_ref* pAudioBufferRef); +MA_API void ma_audio_buffer_ref_uninit(ma_audio_buffer_ref* pAudioBufferRef); +MA_API ma_result ma_audio_buffer_ref_set_data(ma_audio_buffer_ref* pAudioBufferRef, const void* pData, ma_uint64 sizeInFrames); +MA_API ma_uint64 ma_audio_buffer_ref_read_pcm_frames(ma_audio_buffer_ref* pAudioBufferRef, void* pFramesOut, ma_uint64 frameCount, ma_bool32 loop); +MA_API ma_result ma_audio_buffer_ref_seek_to_pcm_frame(ma_audio_buffer_ref* pAudioBufferRef, ma_uint64 frameIndex); +MA_API ma_result ma_audio_buffer_ref_map(ma_audio_buffer_ref* pAudioBufferRef, void** ppFramesOut, ma_uint64* pFrameCount); +MA_API ma_result ma_audio_buffer_ref_unmap(ma_audio_buffer_ref* pAudioBufferRef, ma_uint64 frameCount); /* Returns MA_AT_END if the end has been reached. This should be considered successful. */ +MA_API ma_bool32 ma_audio_buffer_ref_at_end(const ma_audio_buffer_ref* pAudioBufferRef); +MA_API ma_result ma_audio_buffer_ref_get_cursor_in_pcm_frames(const ma_audio_buffer_ref* pAudioBufferRef, ma_uint64* pCursor); +MA_API ma_result ma_audio_buffer_ref_get_length_in_pcm_frames(const ma_audio_buffer_ref* pAudioBufferRef, ma_uint64* pLength); +MA_API ma_result ma_audio_buffer_ref_get_available_frames(const ma_audio_buffer_ref* pAudioBufferRef, ma_uint64* pAvailableFrames); + + + +typedef struct +{ + ma_format format; + ma_uint32 channels; + ma_uint32 sampleRate; + ma_uint64 sizeInFrames; + const void* pData; /* If set to NULL, will allocate a block of memory for you. */ + ma_allocation_callbacks allocationCallbacks; +} ma_audio_buffer_config; + +MA_API ma_audio_buffer_config ma_audio_buffer_config_init(ma_format format, ma_uint32 channels, ma_uint64 sizeInFrames, const void* pData, const ma_allocation_callbacks* pAllocationCallbacks); + +typedef struct +{ + ma_audio_buffer_ref ref; + ma_allocation_callbacks allocationCallbacks; + ma_bool32 ownsData; /* Used to control whether or not miniaudio owns the data buffer. If set to true, pData will be freed in ma_audio_buffer_uninit(). */ + ma_uint8 _pExtraData[1]; /* For allocating a buffer with the memory located directly after the other memory of the structure. */ +} ma_audio_buffer; + +MA_API ma_result ma_audio_buffer_init(const ma_audio_buffer_config* pConfig, ma_audio_buffer* pAudioBuffer); +MA_API ma_result ma_audio_buffer_init_copy(const ma_audio_buffer_config* pConfig, ma_audio_buffer* pAudioBuffer); +MA_API ma_result ma_audio_buffer_alloc_and_init(const ma_audio_buffer_config* pConfig, ma_audio_buffer** ppAudioBuffer); /* Always copies the data. Doesn't make sense to use this otherwise. Use ma_audio_buffer_uninit_and_free() to uninit. */ +MA_API void ma_audio_buffer_uninit(ma_audio_buffer* pAudioBuffer); +MA_API void ma_audio_buffer_uninit_and_free(ma_audio_buffer* pAudioBuffer); +MA_API ma_uint64 ma_audio_buffer_read_pcm_frames(ma_audio_buffer* pAudioBuffer, void* pFramesOut, ma_uint64 frameCount, ma_bool32 loop); +MA_API ma_result ma_audio_buffer_seek_to_pcm_frame(ma_audio_buffer* pAudioBuffer, ma_uint64 frameIndex); +MA_API ma_result ma_audio_buffer_map(ma_audio_buffer* pAudioBuffer, void** ppFramesOut, ma_uint64* pFrameCount); +MA_API ma_result ma_audio_buffer_unmap(ma_audio_buffer* pAudioBuffer, ma_uint64 frameCount); /* Returns MA_AT_END if the end has been reached. This should be considered successful. */ +MA_API ma_bool32 ma_audio_buffer_at_end(const ma_audio_buffer* pAudioBuffer); +MA_API ma_result ma_audio_buffer_get_cursor_in_pcm_frames(const ma_audio_buffer* pAudioBuffer, ma_uint64* pCursor); +MA_API ma_result ma_audio_buffer_get_length_in_pcm_frames(const ma_audio_buffer* pAudioBuffer, ma_uint64* pLength); +MA_API ma_result ma_audio_buffer_get_available_frames(const ma_audio_buffer* pAudioBuffer, ma_uint64* pAvailableFrames); + + +/* +Paged Audio Buffer +================== +A paged audio buffer is made up of a linked list of pages. It's expandable, but not shrinkable. It +can be used for cases where audio data is streamed in asynchronously while allowing data to be read +at the same time. + +This is lock-free, but not 100% thread safe. You can append a page and read from the buffer across +simultaneously across different threads, however only one thread at a time can append, and only one +thread at a time can read and seek. +*/ +typedef struct ma_paged_audio_buffer_page ma_paged_audio_buffer_page; +struct ma_paged_audio_buffer_page +{ + MA_ATOMIC(MA_SIZEOF_PTR, ma_paged_audio_buffer_page*) pNext; + ma_uint64 sizeInFrames; + ma_uint8 pAudioData[1]; +}; + +typedef struct +{ + ma_format format; + ma_uint32 channels; + ma_paged_audio_buffer_page head; /* Dummy head for the lock-free algorithm. Always has a size of 0. */ + MA_ATOMIC(MA_SIZEOF_PTR, ma_paged_audio_buffer_page*) pTail; /* Never null. Initially set to &head. */ +} ma_paged_audio_buffer_data; + +MA_API ma_result ma_paged_audio_buffer_data_init(ma_format format, ma_uint32 channels, ma_paged_audio_buffer_data* pData); +MA_API void ma_paged_audio_buffer_data_uninit(ma_paged_audio_buffer_data* pData, const ma_allocation_callbacks* pAllocationCallbacks); +MA_API ma_paged_audio_buffer_page* ma_paged_audio_buffer_data_get_head(ma_paged_audio_buffer_data* pData); +MA_API ma_paged_audio_buffer_page* ma_paged_audio_buffer_data_get_tail(ma_paged_audio_buffer_data* pData); +MA_API ma_result ma_paged_audio_buffer_data_get_length_in_pcm_frames(ma_paged_audio_buffer_data* pData, ma_uint64* pLength); +MA_API ma_result ma_paged_audio_buffer_data_allocate_page(ma_paged_audio_buffer_data* pData, ma_uint64 pageSizeInFrames, const void* pInitialData, const ma_allocation_callbacks* pAllocationCallbacks, ma_paged_audio_buffer_page** ppPage); +MA_API ma_result ma_paged_audio_buffer_data_free_page(ma_paged_audio_buffer_data* pData, ma_paged_audio_buffer_page* pPage, const ma_allocation_callbacks* pAllocationCallbacks); +MA_API ma_result ma_paged_audio_buffer_data_append_page(ma_paged_audio_buffer_data* pData, ma_paged_audio_buffer_page* pPage); +MA_API ma_result ma_paged_audio_buffer_data_allocate_and_append_page(ma_paged_audio_buffer_data* pData, ma_uint32 pageSizeInFrames, const void* pInitialData, const ma_allocation_callbacks* pAllocationCallbacks); + + +typedef struct +{ + ma_paged_audio_buffer_data* pData; /* Must not be null. */ +} ma_paged_audio_buffer_config; + +MA_API ma_paged_audio_buffer_config ma_paged_audio_buffer_config_init(ma_paged_audio_buffer_data* pData); + + +typedef struct +{ + ma_data_source_base ds; + ma_paged_audio_buffer_data* pData; /* Audio data is read from here. Cannot be null. */ + ma_paged_audio_buffer_page* pCurrent; + ma_uint64 relativeCursor; /* Relative to the current page. */ + ma_uint64 absoluteCursor; +} ma_paged_audio_buffer; + +MA_API ma_result ma_paged_audio_buffer_init(const ma_paged_audio_buffer_config* pConfig, ma_paged_audio_buffer* pPagedAudioBuffer); +MA_API void ma_paged_audio_buffer_uninit(ma_paged_audio_buffer* pPagedAudioBuffer); +MA_API ma_result ma_paged_audio_buffer_read_pcm_frames(ma_paged_audio_buffer* pPagedAudioBuffer, void* pFramesOut, ma_uint64 frameCount, ma_uint64* pFramesRead); /* Returns MA_AT_END if no more pages available. */ +MA_API ma_result ma_paged_audio_buffer_seek_to_pcm_frame(ma_paged_audio_buffer* pPagedAudioBuffer, ma_uint64 frameIndex); +MA_API ma_result ma_paged_audio_buffer_get_cursor_in_pcm_frames(ma_paged_audio_buffer* pPagedAudioBuffer, ma_uint64* pCursor); +MA_API ma_result ma_paged_audio_buffer_get_length_in_pcm_frames(ma_paged_audio_buffer* pPagedAudioBuffer, ma_uint64* pLength); + + + /************************************************************************************************************************************************************ Ring Buffer @@ -5555,9 +5999,11 @@ MA_API void* ma_rb_get_subbuffer_ptr(ma_rb* pRB, size_t subbufferIndex, void* pB typedef struct { + ma_data_source_base ds; ma_rb rb; ma_format format; ma_uint32 channels; + ma_uint32 sampleRate; /* Not required for the ring buffer itself, but useful for associating the data with some sample rate, particularly for data sources. */ } ma_pcm_rb; MA_API ma_result ma_pcm_rb_init_ex(ma_format format, ma_uint32 channels, ma_uint32 subbufferSizeInFrames, ma_uint32 subbufferCount, ma_uint32 subbufferStrideInFrames, void* pOptionalPreallocatedBuffer, const ma_allocation_callbacks* pAllocationCallbacks, ma_pcm_rb* pRB); @@ -5577,6 +6023,10 @@ MA_API ma_uint32 ma_pcm_rb_get_subbuffer_size(ma_pcm_rb* pRB); MA_API ma_uint32 ma_pcm_rb_get_subbuffer_stride(ma_pcm_rb* pRB); MA_API ma_uint32 ma_pcm_rb_get_subbuffer_offset(ma_pcm_rb* pRB, ma_uint32 subbufferIndex); MA_API void* ma_pcm_rb_get_subbuffer_ptr(ma_pcm_rb* pRB, ma_uint32 subbufferIndex, void* pBuffer); +MA_API ma_format ma_pcm_rb_get_format(const ma_pcm_rb* pRB); +MA_API ma_uint32 ma_pcm_rb_get_channels(const ma_pcm_rb* pRB); +MA_API ma_uint32 ma_pcm_rb_get_sample_rate(const ma_pcm_rb* pRB); +MA_API void ma_pcm_rb_set_sample_rate(ma_pcm_rb* pRB, ma_uint32 sampleRate); /* @@ -6087,15 +6537,20 @@ This section contains the APIs for device playback and capture. Here is where yo /* Some backends are only supported on certain platforms. */ #if defined(MA_WIN32) #define MA_SUPPORT_WASAPI - #if defined(MA_WIN32_DESKTOP) /* DirectSound and WinMM backends are only supported on desktops. */ + + #if defined(MA_WIN32_DESKTOP) /* DirectSound and WinMM backends are only supported on desktops. */ #define MA_SUPPORT_DSOUND #define MA_SUPPORT_WINMM - #define MA_SUPPORT_JACK /* JACK is technically supported on Windows, but I don't know how many people use it in practice... */ + + /* Don't enable JACK here if compiling with Cosmopolitan. It'll be enabled in the Linux section below. */ + #if !defined(__COSMOPOLITAN__) + #define MA_SUPPORT_JACK /* JACK is technically supported on Windows, but I don't know how many people use it in practice... */ + #endif #endif #endif -#if defined(MA_UNIX) +#if defined(MA_UNIX) && !defined(MA_ORBIS) && !defined(MA_PROSPERO) #if defined(MA_LINUX) - #if !defined(MA_ANDROID) /* ALSA is not supported on Android. */ + #if !defined(MA_ANDROID) && !defined(__COSMOPOLITAN__) /* ALSA is not supported on Android. */ #define MA_SUPPORT_ALSA #endif #endif @@ -6103,10 +6558,6 @@ This section contains the APIs for device playback and capture. Here is where yo #define MA_SUPPORT_PULSEAUDIO #define MA_SUPPORT_JACK #endif - #if defined(MA_ANDROID) - #define MA_SUPPORT_AAUDIO - #define MA_SUPPORT_OPENSL - #endif #if defined(__OpenBSD__) /* <-- Change this to "#if defined(MA_BSD)" to enable sndio on all BSD flavors. */ #define MA_SUPPORT_SNDIO /* sndio is only supported on OpenBSD for now. May be expanded later if there's demand. */ #endif @@ -6117,6 +6568,10 @@ This section contains the APIs for device playback and capture. Here is where yo #define MA_SUPPORT_OSS /* Only support OSS on specific platforms with known support. */ #endif #endif +#if defined(MA_ANDROID) + #define MA_SUPPORT_AAUDIO + #define MA_SUPPORT_OPENSL +#endif #if defined(MA_APPLE) #define MA_SUPPORT_COREAUDIO #endif @@ -6188,6 +6643,9 @@ typedef enum ma_device_state_stopping = 4 /* Transitioning from a started state to stopped. */ } ma_device_state; +MA_ATOMIC_SAFE_TYPE_DECL(i32, 4, device_state) + + #ifdef MA_SUPPORT_WASAPI /* We need a IMMNotificationClient object for WASAPI. */ typedef struct @@ -6258,7 +6716,8 @@ typedef enum ma_device_notification_type_stopped, ma_device_notification_type_rerouted, ma_device_notification_type_interruption_began, - ma_device_notification_type_interruption_ended + ma_device_notification_type_interruption_ended, + ma_device_notification_type_unlocked } ma_device_notification_type; typedef struct @@ -6380,7 +6839,7 @@ DEPRECATED. Use ma_device_notification_proc instead. The callback for when the device has been stopped. This will be called when the device is stopped explicitly with `ma_device_stop()` and also called implicitly when the device is stopped through external forces -such as being unplugged or an internal error occuring. +such as being unplugged or an internal error occurring. Parameters @@ -6412,7 +6871,7 @@ typedef enum /* iOS/tvOS/watchOS session categories. */ typedef enum { - ma_ios_session_category_default = 0, /* AVAudioSessionCategoryPlayAndRecord with AVAudioSessionCategoryOptionDefaultToSpeaker. */ + ma_ios_session_category_default = 0, /* AVAudioSessionCategoryPlayAndRecord. */ ma_ios_session_category_none, /* Leave the session category unchanged. */ ma_ios_session_category_ambient, /* AVAudioSessionCategoryAmbient */ ma_ios_session_category_solo_ambient, /* AVAudioSessionCategorySoloAmbient */ @@ -6457,36 +6916,44 @@ typedef enum ma_opensl_recording_preset_voice_unprocessed /* SL_ANDROID_RECORDING_PRESET_UNPROCESSED */ } ma_opensl_recording_preset; +/* WASAPI audio thread priority characteristics. */ +typedef enum +{ + ma_wasapi_usage_default = 0, + ma_wasapi_usage_games, + ma_wasapi_usage_pro_audio, +} ma_wasapi_usage; + /* AAudio usage types. */ typedef enum { ma_aaudio_usage_default = 0, /* Leaves the usage type unset. */ - ma_aaudio_usage_announcement, /* AAUDIO_SYSTEM_USAGE_ANNOUNCEMENT */ - ma_aaudio_usage_emergency, /* AAUDIO_SYSTEM_USAGE_EMERGENCY */ - ma_aaudio_usage_safety, /* AAUDIO_SYSTEM_USAGE_SAFETY */ - ma_aaudio_usage_vehicle_status, /* AAUDIO_SYSTEM_USAGE_VEHICLE_STATUS */ + ma_aaudio_usage_media, /* AAUDIO_USAGE_MEDIA */ + ma_aaudio_usage_voice_communication, /* AAUDIO_USAGE_VOICE_COMMUNICATION */ + ma_aaudio_usage_voice_communication_signalling, /* AAUDIO_USAGE_VOICE_COMMUNICATION_SIGNALLING */ ma_aaudio_usage_alarm, /* AAUDIO_USAGE_ALARM */ + ma_aaudio_usage_notification, /* AAUDIO_USAGE_NOTIFICATION */ + ma_aaudio_usage_notification_ringtone, /* AAUDIO_USAGE_NOTIFICATION_RINGTONE */ + ma_aaudio_usage_notification_event, /* AAUDIO_USAGE_NOTIFICATION_EVENT */ ma_aaudio_usage_assistance_accessibility, /* AAUDIO_USAGE_ASSISTANCE_ACCESSIBILITY */ ma_aaudio_usage_assistance_navigation_guidance, /* AAUDIO_USAGE_ASSISTANCE_NAVIGATION_GUIDANCE */ ma_aaudio_usage_assistance_sonification, /* AAUDIO_USAGE_ASSISTANCE_SONIFICATION */ - ma_aaudio_usage_assitant, /* AAUDIO_USAGE_ASSISTANT */ ma_aaudio_usage_game, /* AAUDIO_USAGE_GAME */ - ma_aaudio_usage_media, /* AAUDIO_USAGE_MEDIA */ - ma_aaudio_usage_notification, /* AAUDIO_USAGE_NOTIFICATION */ - ma_aaudio_usage_notification_event, /* AAUDIO_USAGE_NOTIFICATION_EVENT */ - ma_aaudio_usage_notification_ringtone, /* AAUDIO_USAGE_NOTIFICATION_RINGTONE */ - ma_aaudio_usage_voice_communication, /* AAUDIO_USAGE_VOICE_COMMUNICATION */ - ma_aaudio_usage_voice_communication_signalling /* AAUDIO_USAGE_VOICE_COMMUNICATION_SIGNALLING */ + ma_aaudio_usage_assitant, /* AAUDIO_USAGE_ASSISTANT */ + ma_aaudio_usage_emergency, /* AAUDIO_SYSTEM_USAGE_EMERGENCY */ + ma_aaudio_usage_safety, /* AAUDIO_SYSTEM_USAGE_SAFETY */ + ma_aaudio_usage_vehicle_status, /* AAUDIO_SYSTEM_USAGE_VEHICLE_STATUS */ + ma_aaudio_usage_announcement /* AAUDIO_SYSTEM_USAGE_ANNOUNCEMENT */ } ma_aaudio_usage; /* AAudio content types. */ typedef enum { ma_aaudio_content_type_default = 0, /* Leaves the content type unset. */ - ma_aaudio_content_type_movie, /* AAUDIO_CONTENT_TYPE_MOVIE */ + ma_aaudio_content_type_speech, /* AAUDIO_CONTENT_TYPE_SPEECH */ ma_aaudio_content_type_music, /* AAUDIO_CONTENT_TYPE_MUSIC */ - ma_aaudio_content_type_sonification, /* AAUDIO_CONTENT_TYPE_SONIFICATION */ - ma_aaudio_content_type_speech /* AAUDIO_CONTENT_TYPE_SPEECH */ + ma_aaudio_content_type_movie, /* AAUDIO_CONTENT_TYPE_MOVIE */ + ma_aaudio_content_type_sonification /* AAUDIO_CONTENT_TYPE_SONIFICATION */ } ma_aaudio_content_type; /* AAudio input presets. */ @@ -6495,12 +6962,19 @@ typedef enum ma_aaudio_input_preset_default = 0, /* Leaves the input preset unset. */ ma_aaudio_input_preset_generic, /* AAUDIO_INPUT_PRESET_GENERIC */ ma_aaudio_input_preset_camcorder, /* AAUDIO_INPUT_PRESET_CAMCORDER */ - ma_aaudio_input_preset_unprocessed, /* AAUDIO_INPUT_PRESET_UNPROCESSED */ ma_aaudio_input_preset_voice_recognition, /* AAUDIO_INPUT_PRESET_VOICE_RECOGNITION */ ma_aaudio_input_preset_voice_communication, /* AAUDIO_INPUT_PRESET_VOICE_COMMUNICATION */ + ma_aaudio_input_preset_unprocessed, /* AAUDIO_INPUT_PRESET_UNPROCESSED */ ma_aaudio_input_preset_voice_performance /* AAUDIO_INPUT_PRESET_VOICE_PERFORMANCE */ } ma_aaudio_input_preset; +typedef enum +{ + ma_aaudio_allow_capture_default = 0, /* Leaves the allowed capture policy unset. */ + ma_aaudio_allow_capture_by_all, /* AAUDIO_ALLOW_CAPTURE_BY_ALL */ + ma_aaudio_allow_capture_by_system, /* AAUDIO_ALLOW_CAPTURE_BY_SYSTEM */ + ma_aaudio_allow_capture_by_none /* AAUDIO_ALLOW_CAPTURE_BY_NONE */ +} ma_aaudio_allowed_capture_policy; typedef union { @@ -6510,7 +6984,7 @@ typedef union typedef union { - wchar_t wasapi[64]; /* WASAPI uses a wchar_t string for identification. */ + ma_wchar_win32 wasapi[64]; /* WASAPI uses a wchar_t string for identification. */ ma_uint8 dsound[16]; /* DirectSound uses a GUID for identification. */ /*UINT_PTR*/ ma_uint32 winmm; /* When creating a device, WinMM expects a Win32 UINT_PTR for device identification. In practice it's actually just a UINT. */ char alsa[256]; /* ALSA uses a name string for identification. */ @@ -6569,7 +7043,7 @@ struct ma_device_config ma_uint32 periods; ma_performance_profile performanceProfile; ma_bool8 noPreSilencedOutputBuffer; /* When set to true, the contents of the output buffer passed into the data callback will be left undefined rather than initialized to silence. */ - ma_bool8 noClip; /* When set to true, the contents of the output buffer passed into the data callback will be clipped after returning. Only applies when the playback sample format is f32. */ + ma_bool8 noClip; /* When set to true, the contents of the output buffer passed into the data callback will not be clipped after returning. Only applies when the playback sample format is f32. */ ma_bool8 noDisableDenormals; /* Do not disable denormals when firing the data callback. */ ma_bool8 noFixedSizedCallback; /* Disables strict fixed-sized data callbacks. Setting this to true will result in the period size being treated only as a hint to the backend. This is an optimization for those who don't need fixed sized callbacks. */ ma_device_data_proc dataCallback; @@ -6584,6 +7058,7 @@ struct ma_device_config ma_uint32 channels; ma_channel* pChannelMap; ma_channel_mix_mode channelMixMode; + ma_bool32 calculateLFEFromSpatialChannels; /* When an output LFE channel is present, but no input LFE, set to true to set the output LFE to the average of all spatial channels (LR, FR, etc.). Ignored when an input LFE is present. */ ma_share_mode shareMode; } playback; struct @@ -6593,15 +7068,19 @@ struct ma_device_config ma_uint32 channels; ma_channel* pChannelMap; ma_channel_mix_mode channelMixMode; + ma_bool32 calculateLFEFromSpatialChannels; /* When an output LFE channel is present, but no input LFE, set to true to set the output LFE to the average of all spatial channels (LR, FR, etc.). Ignored when an input LFE is present. */ ma_share_mode shareMode; } capture; struct { - ma_bool8 noAutoConvertSRC; /* When set to true, disables the use of AUDCLNT_STREAMFLAGS_AUTOCONVERTPCM. */ - ma_bool8 noDefaultQualitySRC; /* When set to true, disables the use of AUDCLNT_STREAMFLAGS_SRC_DEFAULT_QUALITY. */ - ma_bool8 noAutoStreamRouting; /* Disables automatic stream routing. */ - ma_bool8 noHardwareOffloading; /* Disables WASAPI's hardware offloading feature. */ + ma_wasapi_usage usage; /* When configured, uses Avrt APIs to set the thread characteristics. */ + ma_bool8 noAutoConvertSRC; /* When set to true, disables the use of AUDCLNT_STREAMFLAGS_AUTOCONVERTPCM. */ + ma_bool8 noDefaultQualitySRC; /* When set to true, disables the use of AUDCLNT_STREAMFLAGS_SRC_DEFAULT_QUALITY. */ + ma_bool8 noAutoStreamRouting; /* Disables automatic stream routing. */ + ma_bool8 noHardwareOffloading; /* Disables WASAPI's hardware offloading feature. */ + ma_uint32 loopbackProcessID; /* The process ID to include or exclude for loopback mode. Set to 0 to capture audio from all processes. Ignored when an explicit device ID is specified. */ + ma_bool8 loopbackProcessExclude; /* When set to true, excludes the process specified by loopbackProcessID. By default, the process will be included. */ } wasapi; struct { @@ -6623,19 +7102,22 @@ struct ma_device_config { ma_opensl_stream_type streamType; ma_opensl_recording_preset recordingPreset; + ma_bool32 enableCompatibilityWorkarounds; } opensl; struct { ma_aaudio_usage usage; ma_aaudio_content_type contentType; ma_aaudio_input_preset inputPreset; + ma_aaudio_allowed_capture_policy allowedCapturePolicy; ma_bool32 noAutoStartAfterReroute; + ma_bool32 enableCompatibilityWorkarounds; } aaudio; }; /* -The callback for handling device enumeration. This is fired from `ma_context_enumerated_devices()`. +The callback for handling device enumeration. This is fired from `ma_context_enumerate_devices()`. Parameters @@ -6714,7 +7196,7 @@ sample rate. For the channel map, the default should be used when `ma_channel_ma `MA_CHANNEL_NONE`). On input, the `periodSizeInFrames` or `periodSizeInMilliseconds` option should always be set. The backend should inspect both of these variables. If `periodSizeInFrames` is set, it should take priority, otherwise it needs to be derived from the period size in milliseconds (`periodSizeInMilliseconds`) and the sample rate, keeping in mind that the sample rate may be 0, in which case the -sample rate will need to be determined before calculating the period size in frames. On output, all members of the `ma_device_data_format` +sample rate will need to be determined before calculating the period size in frames. On output, all members of the `ma_device_descriptor` object should be set to a valid value, except for `periodSizeInMilliseconds` which is optional (`periodSizeInFrames` *must* be set). Starting and stopping of the device is done with `onDeviceStart()` and `onDeviceStop()` and should be self-explanatory. If the backend uses @@ -6730,7 +7212,7 @@ If the backend requires absolute flexibility with it's data delivery, it can opt which will allow it to implement the logic that will run on the audio thread. This is much more advanced and is completely optional. The audio thread should run data delivery logic in a loop while `ma_device_get_state() == ma_device_state_started` and no errors have been -encounted. Do not start or stop the device here. That will be handled from outside the `onDeviceDataLoop()` callback. +encountered. Do not start or stop the device here. That will be handled from outside the `onDeviceDataLoop()` callback. The invocation of the `onDeviceDataLoop()` callback will be handled by miniaudio. When you start the device, miniaudio will fire this callback. When the device is stopped, the `ma_device_get_state() == ma_device_state_started` condition will fail and the loop will be terminated @@ -6844,6 +7326,11 @@ struct ma_context ma_uint32 commandIndex; ma_uint32 commandCount; ma_context_command__wasapi commands[4]; + ma_handle hAvrt; + ma_proc AvSetMmThreadCharacteristicsA; + ma_proc AvRevertMmThreadcharacteristics; + ma_handle hMMDevapi; + ma_proc ActivateAudioInterfaceAsync; } wasapi; #endif #ifdef MA_SUPPORT_DSOUND @@ -7138,6 +7625,7 @@ struct ma_context ma_proc AAudioStreamBuilder_setUsage; ma_proc AAudioStreamBuilder_setContentType; ma_proc AAudioStreamBuilder_setInputPreset; + ma_proc AAudioStreamBuilder_setAllowedCapturePolicy; ma_proc AAudioStreamBuilder_openStream; ma_proc AAudioStream_close; ma_proc AAudioStream_getState; @@ -7183,10 +7671,11 @@ struct ma_context union { -#ifdef MA_WIN32 +#if defined(MA_WIN32) struct { /*HMODULE*/ ma_handle hOle32DLL; + ma_proc CoInitialize; ma_proc CoInitializeEx; ma_proc CoUninitialize; ma_proc CoCreateInstance; @@ -7202,27 +7691,14 @@ struct ma_context ma_proc RegOpenKeyExA; ma_proc RegCloseKey; ma_proc RegQueryValueExA; + + /*HRESULT*/ long CoInitializeResult; } win32; #endif #ifdef MA_POSIX struct { - ma_handle pthreadSO; - ma_proc pthread_create; - ma_proc pthread_join; - ma_proc pthread_mutex_init; - ma_proc pthread_mutex_destroy; - ma_proc pthread_mutex_lock; - ma_proc pthread_mutex_unlock; - ma_proc pthread_cond_init; - ma_proc pthread_cond_destroy; - ma_proc pthread_cond_wait; - ma_proc pthread_cond_signal; - ma_proc pthread_attr_init; - ma_proc pthread_attr_destroy; - ma_proc pthread_attr_setschedpolicy; - ma_proc pthread_attr_getschedparam; - ma_proc pthread_attr_setschedparam; + int _unused; } posix; #endif int _unused; @@ -7234,7 +7710,7 @@ struct ma_device ma_context* pContext; ma_device_type type; ma_uint32 sampleRate; - MA_ATOMIC(4, ma_device_state) state; /* The state of the device is variable and can change at any time on any thread. Must be used atomically. */ + ma_atomic_device_state state; /* The state of the device is variable and can change at any time on any thread. Must be used atomically. */ ma_device_data_proc onData; /* Set once at initialization time and should not be changed after. */ ma_device_notification_proc onNotification; /* Set once at initialization time and should not be changed after. */ ma_stop_proc onStop; /* DEPRECATED. Use the notification callback instead. Set once at initialization time and should not be changed after. */ @@ -7250,7 +7726,7 @@ struct ma_device ma_bool8 noClip; ma_bool8 noDisableDenormals; ma_bool8 noFixedSizedCallback; - MA_ATOMIC(4, float) masterVolumeFactor; /* Linear 0..1. Can be read and written simultaneously by different threads. Must be used atomically. */ + ma_atomic_float masterVolumeFactor; /* Linear 0..1. Can be read and written simultaneously by different threads. Must be used atomically. */ ma_duplex_rb duplexRB; /* Intermediary buffer for duplex device on asynchronous backends. */ struct { @@ -7278,6 +7754,7 @@ struct ma_device ma_uint32 internalPeriodSizeInFrames; ma_uint32 internalPeriods; ma_channel_mix_mode channelMixMode; + ma_bool32 calculateLFEFromSpatialChannels; ma_data_converter converter; void* pIntermediaryBuffer; /* For implementing fixed sized buffer callbacks. Will be null if using variable sized callbacks. */ ma_uint32 intermediaryBufferCap; @@ -7303,6 +7780,7 @@ struct ma_device ma_uint32 internalPeriodSizeInFrames; ma_uint32 internalPeriods; ma_channel_mix_mode channelMixMode; + ma_bool32 calculateLFEFromSpatialChannels; ma_data_converter converter; void* pIntermediaryBuffer; /* For implementing fixed sized buffer callbacks. Will be null if using variable sized callbacks. */ ma_uint32 intermediaryBufferCap; @@ -7336,8 +7814,10 @@ struct ma_device void* pMappedBufferPlayback; ma_uint32 mappedBufferPlaybackCap; ma_uint32 mappedBufferPlaybackLen; - MA_ATOMIC(4, ma_bool32) isStartedCapture; /* Can be read and written simultaneously across different threads. Must be used atomically, and must be 32-bit. */ - MA_ATOMIC(4, ma_bool32) isStartedPlayback; /* Can be read and written simultaneously across different threads. Must be used atomically, and must be 32-bit. */ + ma_atomic_bool32 isStartedCapture; /* Can be read and written simultaneously across different threads. Must be used atomically, and must be 32-bit. */ + ma_atomic_bool32 isStartedPlayback; /* Can be read and written simultaneously across different threads. Must be used atomically, and must be 32-bit. */ + ma_uint32 loopbackProcessID; + ma_bool8 loopbackProcessExclude; ma_bool8 noAutoConvertSRC; /* When set to true, disables the use of AUDCLNT_STREAMFLAGS_AUTOCONVERTPCM. */ ma_bool8 noDefaultQualitySRC; /* When set to true, disables the use of AUDCLNT_STREAMFLAGS_SRC_DEFAULT_QUALITY. */ ma_bool8 noHardwareOffloading; @@ -7345,6 +7825,9 @@ struct ma_device ma_bool8 allowPlaybackAutoStreamRouting; ma_bool8 isDetachedPlayback; ma_bool8 isDetachedCapture; + ma_wasapi_usage usage; + void* hAvrtHandle; + ma_mutex rerouteLock; } wasapi; #endif #ifdef MA_SUPPORT_DSOUND @@ -7462,6 +7945,7 @@ struct ma_device ma_aaudio_usage usage; ma_aaudio_content_type contentType; ma_aaudio_input_preset inputPreset; + ma_aaudio_allowed_capture_policy allowedCapturePolicy; ma_bool32 noAutoStartAfterReroute; } aaudio; #endif @@ -7487,8 +7971,13 @@ struct ma_device #ifdef MA_SUPPORT_WEBAUDIO struct { - int indexPlayback; /* We use a factory on the JavaScript side to manage devices and use an index for JS/C interop. */ - int indexCapture; + /* AudioWorklets path. */ + /* EMSCRIPTEN_WEBAUDIO_T */ int audioContext; + /* EMSCRIPTEN_WEBAUDIO_T */ int audioWorklet; + float* pIntermediaryBuffer; + void* pStackBuffer; + ma_result initResult; /* Set to MA_BUSY while initialization is in progress. */ + int deviceIndex; /* We store the device in a list on the JavaScript side. This is used to map our C object to the JS object. */ } webaudio; #endif #ifdef MA_SUPPORT_NULL @@ -7506,7 +7995,7 @@ struct ma_device ma_uint32 currentPeriodFramesRemainingCapture; ma_uint64 lastProcessedFramePlayback; ma_uint64 lastProcessedFrameCapture; - MA_ATOMIC(4, ma_bool32) isStarted; /* Read and written by multiple threads. Must be used atomically, and must be 32-bit for compiler compatibility. */ + ma_atomic_bool32 isStarted; /* Read and written by multiple threads. Must be used atomically, and must be 32-bit for compiler compatibility. */ } null_device; #endif }; @@ -8138,17 +8627,17 @@ then be set directly on the structure. Below are the members of the `ma_device_c callback will write to every sample in the output buffer, or if you are doing your own clearing. noClip - When set to true, the contents of the output buffer passed into the data callback will be clipped after returning. When set to false (default), the - contents of the output buffer are left alone after returning and it will be left up to the backend itself to decide whether or not the clip. This only + When set to true, the contents of the output buffer are left alone after returning and it will be left up to the backend itself to decide whether or + not to clip. When set to false (default), the contents of the output buffer passed into the data callback will be clipped after returning. This only applies when the playback sample format is f32. noDisableDenormals By default, miniaudio will disable denormals when the data callback is called. Setting this to true will prevent the disabling of denormals. noFixedSizedCallback - Allows miniaudio to fire the data callback with any frame count. When this is set to true, the data callback will be fired with a consistent frame - count as specified by `periodSizeInFrames` or `periodSizeInMilliseconds`. When set to false, miniaudio will fire the callback with whatever the - backend requests, which could be anything. + Allows miniaudio to fire the data callback with any frame count. When this is set to false (the default), the data callback will be fired with a + consistent frame count as specified by `periodSizeInFrames` or `periodSizeInMilliseconds`. When set to true, miniaudio will fire the callback with + whatever the backend requests, which could be anything. dataCallback The callback to fire whenever data is ready to be delivered to or from the device. @@ -8170,7 +8659,7 @@ then be set directly on the structure. Below are the members of the `ma_device_c A pointer that will passed to callbacks in pBackendVTable. resampling.linear.lpfOrder - The linear resampler applies a low-pass filter as part of it's procesing for anti-aliasing. This setting controls the order of the filter. The higher + The linear resampler applies a low-pass filter as part of it's processing for anti-aliasing. This setting controls the order of the filter. The higher the value, the better the quality, in general. Setting this to 0 will disable low-pass filtering altogether. The maximum value is `MA_MAX_FILTER_ORDER`. The default value is `min(4, MA_MAX_FILTER_ORDER)`. @@ -8652,8 +9141,6 @@ speakers or received from the microphone which can in turn result in de-syncs. Do not call this in any callback. -This will be called implicitly by `ma_device_uninit()`. - See Also -------- @@ -9088,6 +9575,11 @@ Retrieves a friendly name for a backend. */ MA_API const char* ma_get_backend_name(ma_backend backend); +/* +Retrieves the backend enum from the given name. +*/ +MA_API ma_result ma_get_backend_from_name(const char* pBackendName, ma_backend* pBackend); + /* Determines whether or not the given backend is available by the compilation environment. */ @@ -9177,7 +9669,7 @@ MA_API ma_bool32 ma_is_loopback_supported(ma_backend backend); /************************************************************************************************************************************************************ -Utiltities +Utilities ************************************************************************************************************************************************************/ @@ -9279,196 +9771,13 @@ Helper for converting gain in decibels to a linear factor. MA_API float ma_volume_db_to_linear(float gain); - - -/************************************************************************************************** - -Data Source - -**************************************************************************************************/ -typedef void ma_data_source; - -#define MA_DATA_SOURCE_SELF_MANAGED_RANGE_AND_LOOP_POINT 0x00000001 - -typedef struct -{ - ma_result (* onRead)(ma_data_source* pDataSource, void* pFramesOut, ma_uint64 frameCount, ma_uint64* pFramesRead); - ma_result (* onSeek)(ma_data_source* pDataSource, ma_uint64 frameIndex); - ma_result (* onGetDataFormat)(ma_data_source* pDataSource, ma_format* pFormat, ma_uint32* pChannels, ma_uint32* pSampleRate, ma_channel* pChannelMap, size_t channelMapCap); - ma_result (* onGetCursor)(ma_data_source* pDataSource, ma_uint64* pCursor); - ma_result (* onGetLength)(ma_data_source* pDataSource, ma_uint64* pLength); - ma_result (* onSetLooping)(ma_data_source* pDataSource, ma_bool32 isLooping); - ma_uint32 flags; -} ma_data_source_vtable; - -typedef ma_data_source* (* ma_data_source_get_next_proc)(ma_data_source* pDataSource); - -typedef struct -{ - const ma_data_source_vtable* vtable; -} ma_data_source_config; - -MA_API ma_data_source_config ma_data_source_config_init(void); - - -typedef struct -{ - const ma_data_source_vtable* vtable; - ma_uint64 rangeBegInFrames; - ma_uint64 rangeEndInFrames; /* Set to -1 for unranged (default). */ - ma_uint64 loopBegInFrames; /* Relative to rangeBegInFrames. */ - ma_uint64 loopEndInFrames; /* Relative to rangeBegInFrames. Set to -1 for the end of the range. */ - ma_data_source* pCurrent; /* When non-NULL, the data source being initialized will act as a proxy and will route all operations to pCurrent. Used in conjunction with pNext/onGetNext for seamless chaining. */ - ma_data_source* pNext; /* When set to NULL, onGetNext will be used. */ - ma_data_source_get_next_proc onGetNext; /* Will be used when pNext is NULL. If both are NULL, no next will be used. */ - MA_ATOMIC(4, ma_bool32) isLooping; -} ma_data_source_base; - -MA_API ma_result ma_data_source_init(const ma_data_source_config* pConfig, ma_data_source* pDataSource); -MA_API void ma_data_source_uninit(ma_data_source* pDataSource); -MA_API ma_result ma_data_source_read_pcm_frames(ma_data_source* pDataSource, void* pFramesOut, ma_uint64 frameCount, ma_uint64* pFramesRead); /* Must support pFramesOut = NULL in which case a forward seek should be performed. */ -MA_API ma_result ma_data_source_seek_pcm_frames(ma_data_source* pDataSource, ma_uint64 frameCount, ma_uint64* pFramesSeeked); /* Can only seek forward. Equivalent to ma_data_source_read_pcm_frames(pDataSource, NULL, frameCount, &framesRead); */ -MA_API ma_result ma_data_source_seek_to_pcm_frame(ma_data_source* pDataSource, ma_uint64 frameIndex); -MA_API ma_result ma_data_source_get_data_format(ma_data_source* pDataSource, ma_format* pFormat, ma_uint32* pChannels, ma_uint32* pSampleRate, ma_channel* pChannelMap, size_t channelMapCap); -MA_API ma_result ma_data_source_get_cursor_in_pcm_frames(ma_data_source* pDataSource, ma_uint64* pCursor); -MA_API ma_result ma_data_source_get_length_in_pcm_frames(ma_data_source* pDataSource, ma_uint64* pLength); /* Returns MA_NOT_IMPLEMENTED if the length is unknown or cannot be determined. Decoders can return this. */ -MA_API ma_result ma_data_source_get_cursor_in_seconds(ma_data_source* pDataSource, float* pCursor); -MA_API ma_result ma_data_source_get_length_in_seconds(ma_data_source* pDataSource, float* pLength); -MA_API ma_result ma_data_source_set_looping(ma_data_source* pDataSource, ma_bool32 isLooping); -MA_API ma_bool32 ma_data_source_is_looping(const ma_data_source* pDataSource); -MA_API ma_result ma_data_source_set_range_in_pcm_frames(ma_data_source* pDataSource, ma_uint64 rangeBegInFrames, ma_uint64 rangeEndInFrames); -MA_API void ma_data_source_get_range_in_pcm_frames(const ma_data_source* pDataSource, ma_uint64* pRangeBegInFrames, ma_uint64* pRangeEndInFrames); -MA_API ma_result ma_data_source_set_loop_point_in_pcm_frames(ma_data_source* pDataSource, ma_uint64 loopBegInFrames, ma_uint64 loopEndInFrames); -MA_API void ma_data_source_get_loop_point_in_pcm_frames(const ma_data_source* pDataSource, ma_uint64* pLoopBegInFrames, ma_uint64* pLoopEndInFrames); -MA_API ma_result ma_data_source_set_current(ma_data_source* pDataSource, ma_data_source* pCurrentDataSource); -MA_API ma_data_source* ma_data_source_get_current(const ma_data_source* pDataSource); -MA_API ma_result ma_data_source_set_next(ma_data_source* pDataSource, ma_data_source* pNextDataSource); -MA_API ma_data_source* ma_data_source_get_next(const ma_data_source* pDataSource); -MA_API ma_result ma_data_source_set_next_callback(ma_data_source* pDataSource, ma_data_source_get_next_proc onGetNext); -MA_API ma_data_source_get_next_proc ma_data_source_get_next_callback(const ma_data_source* pDataSource); - - -typedef struct -{ - ma_data_source_base ds; - ma_format format; - ma_uint32 channels; - ma_uint32 sampleRate; - ma_uint64 cursor; - ma_uint64 sizeInFrames; - const void* pData; -} ma_audio_buffer_ref; - -MA_API ma_result ma_audio_buffer_ref_init(ma_format format, ma_uint32 channels, const void* pData, ma_uint64 sizeInFrames, ma_audio_buffer_ref* pAudioBufferRef); -MA_API void ma_audio_buffer_ref_uninit(ma_audio_buffer_ref* pAudioBufferRef); -MA_API ma_result ma_audio_buffer_ref_set_data(ma_audio_buffer_ref* pAudioBufferRef, const void* pData, ma_uint64 sizeInFrames); -MA_API ma_uint64 ma_audio_buffer_ref_read_pcm_frames(ma_audio_buffer_ref* pAudioBufferRef, void* pFramesOut, ma_uint64 frameCount, ma_bool32 loop); -MA_API ma_result ma_audio_buffer_ref_seek_to_pcm_frame(ma_audio_buffer_ref* pAudioBufferRef, ma_uint64 frameIndex); -MA_API ma_result ma_audio_buffer_ref_map(ma_audio_buffer_ref* pAudioBufferRef, void** ppFramesOut, ma_uint64* pFrameCount); -MA_API ma_result ma_audio_buffer_ref_unmap(ma_audio_buffer_ref* pAudioBufferRef, ma_uint64 frameCount); /* Returns MA_AT_END if the end has been reached. This should be considered successful. */ -MA_API ma_bool32 ma_audio_buffer_ref_at_end(const ma_audio_buffer_ref* pAudioBufferRef); -MA_API ma_result ma_audio_buffer_ref_get_cursor_in_pcm_frames(const ma_audio_buffer_ref* pAudioBufferRef, ma_uint64* pCursor); -MA_API ma_result ma_audio_buffer_ref_get_length_in_pcm_frames(const ma_audio_buffer_ref* pAudioBufferRef, ma_uint64* pLength); -MA_API ma_result ma_audio_buffer_ref_get_available_frames(const ma_audio_buffer_ref* pAudioBufferRef, ma_uint64* pAvailableFrames); - - - -typedef struct -{ - ma_format format; - ma_uint32 channels; - ma_uint32 sampleRate; - ma_uint64 sizeInFrames; - const void* pData; /* If set to NULL, will allocate a block of memory for you. */ - ma_allocation_callbacks allocationCallbacks; -} ma_audio_buffer_config; - -MA_API ma_audio_buffer_config ma_audio_buffer_config_init(ma_format format, ma_uint32 channels, ma_uint64 sizeInFrames, const void* pData, const ma_allocation_callbacks* pAllocationCallbacks); - -typedef struct -{ - ma_audio_buffer_ref ref; - ma_allocation_callbacks allocationCallbacks; - ma_bool32 ownsData; /* Used to control whether or not miniaudio owns the data buffer. If set to true, pData will be freed in ma_audio_buffer_uninit(). */ - ma_uint8 _pExtraData[1]; /* For allocating a buffer with the memory located directly after the other memory of the structure. */ -} ma_audio_buffer; - -MA_API ma_result ma_audio_buffer_init(const ma_audio_buffer_config* pConfig, ma_audio_buffer* pAudioBuffer); -MA_API ma_result ma_audio_buffer_init_copy(const ma_audio_buffer_config* pConfig, ma_audio_buffer* pAudioBuffer); -MA_API ma_result ma_audio_buffer_alloc_and_init(const ma_audio_buffer_config* pConfig, ma_audio_buffer** ppAudioBuffer); /* Always copies the data. Doesn't make sense to use this otherwise. Use ma_audio_buffer_uninit_and_free() to uninit. */ -MA_API void ma_audio_buffer_uninit(ma_audio_buffer* pAudioBuffer); -MA_API void ma_audio_buffer_uninit_and_free(ma_audio_buffer* pAudioBuffer); -MA_API ma_uint64 ma_audio_buffer_read_pcm_frames(ma_audio_buffer* pAudioBuffer, void* pFramesOut, ma_uint64 frameCount, ma_bool32 loop); -MA_API ma_result ma_audio_buffer_seek_to_pcm_frame(ma_audio_buffer* pAudioBuffer, ma_uint64 frameIndex); -MA_API ma_result ma_audio_buffer_map(ma_audio_buffer* pAudioBuffer, void** ppFramesOut, ma_uint64* pFrameCount); -MA_API ma_result ma_audio_buffer_unmap(ma_audio_buffer* pAudioBuffer, ma_uint64 frameCount); /* Returns MA_AT_END if the end has been reached. This should be considered successful. */ -MA_API ma_bool32 ma_audio_buffer_at_end(const ma_audio_buffer* pAudioBuffer); -MA_API ma_result ma_audio_buffer_get_cursor_in_pcm_frames(const ma_audio_buffer* pAudioBuffer, ma_uint64* pCursor); -MA_API ma_result ma_audio_buffer_get_length_in_pcm_frames(const ma_audio_buffer* pAudioBuffer, ma_uint64* pLength); -MA_API ma_result ma_audio_buffer_get_available_frames(const ma_audio_buffer* pAudioBuffer, ma_uint64* pAvailableFrames); - - /* -Paged Audio Buffer -================== -A paged audio buffer is made up of a linked list of pages. It's expandable, but not shrinkable. It -can be used for cases where audio data is streamed in asynchronously while allowing data to be read -at the same time. +Mixes the specified number of frames in floating point format with a volume factor. -This is lock-free, but not 100% thread safe. You can append a page and read from the buffer across -simultaneously across different threads, however only one thread at a time can append, and only one -thread at a time can read and seek. +This will run on an optimized path when the volume is equal to 1. */ -typedef struct ma_paged_audio_buffer_page ma_paged_audio_buffer_page; -struct ma_paged_audio_buffer_page -{ - MA_ATOMIC(MA_SIZEOF_PTR, ma_paged_audio_buffer_page*) pNext; - ma_uint64 sizeInFrames; - ma_uint8 pAudioData[1]; -}; +MA_API ma_result ma_mix_pcm_frames_f32(float* pDst, const float* pSrc, ma_uint64 frameCount, ma_uint32 channels, float volume); -typedef struct -{ - ma_format format; - ma_uint32 channels; - ma_paged_audio_buffer_page head; /* Dummy head for the lock-free algorithm. Always has a size of 0. */ - MA_ATOMIC(MA_SIZEOF_PTR, ma_paged_audio_buffer_page*) pTail; /* Never null. Initially set to &head. */ -} ma_paged_audio_buffer_data; - -MA_API ma_result ma_paged_audio_buffer_data_init(ma_format format, ma_uint32 channels, ma_paged_audio_buffer_data* pData); -MA_API void ma_paged_audio_buffer_data_uninit(ma_paged_audio_buffer_data* pData, const ma_allocation_callbacks* pAllocationCallbacks); -MA_API ma_paged_audio_buffer_page* ma_paged_audio_buffer_data_get_head(ma_paged_audio_buffer_data* pData); -MA_API ma_paged_audio_buffer_page* ma_paged_audio_buffer_data_get_tail(ma_paged_audio_buffer_data* pData); -MA_API ma_result ma_paged_audio_buffer_data_get_length_in_pcm_frames(ma_paged_audio_buffer_data* pData, ma_uint64* pLength); -MA_API ma_result ma_paged_audio_buffer_data_allocate_page(ma_paged_audio_buffer_data* pData, ma_uint64 pageSizeInFrames, const void* pInitialData, const ma_allocation_callbacks* pAllocationCallbacks, ma_paged_audio_buffer_page** ppPage); -MA_API ma_result ma_paged_audio_buffer_data_free_page(ma_paged_audio_buffer_data* pData, ma_paged_audio_buffer_page* pPage, const ma_allocation_callbacks* pAllocationCallbacks); -MA_API ma_result ma_paged_audio_buffer_data_append_page(ma_paged_audio_buffer_data* pData, ma_paged_audio_buffer_page* pPage); -MA_API ma_result ma_paged_audio_buffer_data_allocate_and_append_page(ma_paged_audio_buffer_data* pData, ma_uint32 pageSizeInFrames, const void* pInitialData, const ma_allocation_callbacks* pAllocationCallbacks); - - -typedef struct -{ - ma_paged_audio_buffer_data* pData; /* Must not be null. */ -} ma_paged_audio_buffer_config; - -MA_API ma_paged_audio_buffer_config ma_paged_audio_buffer_config_init(ma_paged_audio_buffer_data* pData); - - -typedef struct -{ - ma_data_source_base ds; - ma_paged_audio_buffer_data* pData; /* Audio data is read from here. Cannot be null. */ - ma_paged_audio_buffer_page* pCurrent; - ma_uint64 relativeCursor; /* Relative to the current page. */ - ma_uint64 absoluteCursor; -} ma_paged_audio_buffer; - -MA_API ma_result ma_paged_audio_buffer_init(const ma_paged_audio_buffer_config* pConfig, ma_paged_audio_buffer* pPagedAudioBuffer); -MA_API void ma_paged_audio_buffer_uninit(ma_paged_audio_buffer* pPagedAudioBuffer); -MA_API ma_result ma_paged_audio_buffer_read_pcm_frames(ma_paged_audio_buffer* pPagedAudioBuffer, void* pFramesOut, ma_uint64 frameCount, ma_uint64* pFramesRead); /* Returns MA_AT_END if no more pages available. */ -MA_API ma_result ma_paged_audio_buffer_seek_to_pcm_frame(ma_paged_audio_buffer* pPagedAudioBuffer, ma_uint64 frameIndex); -MA_API ma_result ma_paged_audio_buffer_get_cursor_in_pcm_frames(ma_paged_audio_buffer* pPagedAudioBuffer, ma_uint64* pCursor); -MA_API ma_result ma_paged_audio_buffer_get_length_in_pcm_frames(ma_paged_audio_buffer* pPagedAudioBuffer, ma_uint64* pLength); @@ -9754,7 +10063,7 @@ struct ma_encoder ma_encoder_uninit_proc onUninit; ma_encoder_write_pcm_frames_proc onWritePCMFrames; void* pUserData; - void* pInternalEncoder; /* <-- The drwav/drflac/stb_vorbis/etc. objects. */ + void* pInternalEncoder; union { struct @@ -9819,6 +10128,33 @@ MA_API ma_result ma_waveform_set_frequency(ma_waveform* pWaveform, double freque MA_API ma_result ma_waveform_set_type(ma_waveform* pWaveform, ma_waveform_type type); MA_API ma_result ma_waveform_set_sample_rate(ma_waveform* pWaveform, ma_uint32 sampleRate); +typedef struct +{ + ma_format format; + ma_uint32 channels; + ma_uint32 sampleRate; + double dutyCycle; + double amplitude; + double frequency; +} ma_pulsewave_config; + +MA_API ma_pulsewave_config ma_pulsewave_config_init(ma_format format, ma_uint32 channels, ma_uint32 sampleRate, double dutyCycle, double amplitude, double frequency); + +typedef struct +{ + ma_waveform waveform; + ma_pulsewave_config config; +} ma_pulsewave; + +MA_API ma_result ma_pulsewave_init(const ma_pulsewave_config* pConfig, ma_pulsewave* pWaveform); +MA_API void ma_pulsewave_uninit(ma_pulsewave* pWaveform); +MA_API ma_result ma_pulsewave_read_pcm_frames(ma_pulsewave* pWaveform, void* pFramesOut, ma_uint64 frameCount, ma_uint64* pFramesRead); +MA_API ma_result ma_pulsewave_seek_to_pcm_frame(ma_pulsewave* pWaveform, ma_uint64 frameIndex); +MA_API ma_result ma_pulsewave_set_amplitude(ma_pulsewave* pWaveform, double amplitude); +MA_API ma_result ma_pulsewave_set_frequency(ma_pulsewave* pWaveform, double frequency); +MA_API ma_result ma_pulsewave_set_sample_rate(ma_pulsewave* pWaveform, ma_uint32 sampleRate); +MA_API ma_result ma_pulsewave_set_duty_cycle(ma_pulsewave* pWaveform, double dutyCycle); + typedef enum { ma_noise_type_white, @@ -9841,7 +10177,7 @@ MA_API ma_noise_config ma_noise_config_init(ma_format format, ma_uint32 channels typedef struct { - ma_data_source_vtable ds; + ma_data_source_base ds; ma_noise_config config; ma_lcg lcg; union @@ -10036,7 +10372,7 @@ struct ma_resource_manager_data_buffer ma_bool32 seekToCursorOnNextRead; /* On the next read we need to seek to the frame cursor. */ MA_ATOMIC(4, ma_result) result; /* Keeps track of a result of decoding. Set to MA_BUSY while the buffer is still loading. Set to MA_SUCCESS when loading is finished successfully. Otherwise set to some other code. */ MA_ATOMIC(4, ma_bool32) isLooping; /* Can be read and written by different threads at the same time. Must be used atomically. */ - ma_bool32 isConnectorInitialized; /* Used for asynchronous loading to ensure we don't try to initialize the connector multiple times while waiting for the node to fully load. */ + ma_atomic_bool32 isConnectorInitialized; /* Used for asynchronous loading to ensure we don't try to initialize the connector multiple times while waiting for the node to fully load. */ union { ma_decoder decoder; /* Supply type is ma_resource_manager_data_supply_type_encoded */ @@ -10094,6 +10430,7 @@ typedef struct ma_uint32 decodedChannels; /* The decoded channel count to use. Set to 0 (default) to use the file's native channel count. */ ma_uint32 decodedSampleRate; /* the decoded sample rate to use. Set to 0 (default) to use the file's native sample rate. */ ma_uint32 jobThreadCount; /* Set to 0 if you want to self-manage your job threads. Defaults to 1. */ + size_t jobThreadStackSize; ma_uint32 jobQueueCapacity; /* The maximum number of jobs that can fit in the queue at a time. Defaults to MA_JOB_TYPE_RESOURCE_MANAGER_QUEUE_CAPACITY. Cannot be zero. */ ma_uint32 flags; ma_vfs* pVFS; /* Can be NULL in which case defaults will be used. */ @@ -10238,7 +10575,7 @@ typedef struct /* Extended processing callback. This callback is used for effects that process input and output at different rates (i.e. they perform resampling). This is similar to the simple version, only - they take two seperate frame counts: one for input, and one for output. + they take two separate frame counts: one for input, and one for output. On input, `pFrameCountOut` is equal to the capacity of the output buffer for each bus, whereas `pFrameCountIn` will be equal to the number of PCM frames in each of the buffers in `ppFramesIn`. @@ -10302,7 +10639,7 @@ struct ma_node_output_bus ma_uint8 channels; /* The number of channels in the audio stream for this bus. */ /* Mutable via multiple threads. Must be used atomically. The weird ordering here is for packing reasons. */ - MA_ATOMIC(1, ma_uint8) inputNodeInputBusIndex; /* The index of the input bus on the input. Required for detaching. */ + ma_uint8 inputNodeInputBusIndex; /* The index of the input bus on the input. Required for detaching. Will only be used within the spinlock so does not need to be atomic. */ MA_ATOMIC(4, ma_uint32) flags; /* Some state flags for tracking the read state of the output buffer. A combination of MA_NODE_OUTPUT_BUS_FLAG_*. */ MA_ATOMIC(4, ma_uint32) refCount; /* Reference count for some thread-safety when detaching. */ MA_ATOMIC(4, ma_bool32) isAttached; /* This is used to prevent iteration of nodes that are in the middle of being detached. Used for thread safety. */ @@ -10326,7 +10663,7 @@ struct ma_node_input_bus MA_ATOMIC(4, ma_spinlock) lock; /* Unfortunate lock, but significantly simplifies the implementation. Required for thread-safe attaching and detaching. */ /* Set once at startup. */ - ma_uint8 channels; /* The number of channels in the audio stream for this bus. */ + ma_uint8 channels; /* The number of channels in the audio stream for this bus. */ }; @@ -10334,7 +10671,7 @@ typedef struct ma_node_base ma_node_base; struct ma_node_base { /* These variables are set once at startup. */ - ma_node_graph* pNodeGraph; /* The graph this node belongs to. */ + ma_node_graph* pNodeGraph; /* The graph this node belongs to. */ const ma_node_vtable* vtable; float* pCachedData; /* Allocated on the heap. Fixed size. Needs to be stored on the heap because reading from output buses is done in separate function calls. */ ma_uint16 cachedDataCapInFramesPerBus; /* The capacity of the input data cache in frames, per bus. */ @@ -10436,11 +10773,12 @@ MA_API ma_result ma_data_source_node_set_looping(ma_data_source_node* pDataSourc MA_API ma_bool32 ma_data_source_node_is_looping(ma_data_source_node* pDataSourceNode); -/* Splitter Node. 1 input, 2 outputs. Used for splitting/copying a stream so it can be as input into two separate output nodes. */ +/* Splitter Node. 1 input, many outputs. Used for splitting/copying a stream so it can be as input into two separate output nodes. */ typedef struct { ma_node_config nodeConfig; ma_uint32 channels; + ma_uint32 outputBusCount; } ma_splitter_node_config; MA_API ma_splitter_node_config ma_splitter_node_config_init(ma_uint32 channels); @@ -10665,6 +11003,7 @@ MA_API float ma_delay_node_get_decay(const ma_delay_node* pDelayNode); #endif /* MA_NO_NODE_GRAPH */ +/* SECTION: miniaudio_engine.h */ /************************************************************************************************************************************************************ Engine @@ -10678,13 +11017,17 @@ typedef struct ma_sound ma_sound; /* Sound flags. */ typedef enum { + /* Resource manager flags. */ MA_SOUND_FLAG_STREAM = 0x00000001, /* MA_RESOURCE_MANAGER_DATA_SOURCE_FLAG_STREAM */ MA_SOUND_FLAG_DECODE = 0x00000002, /* MA_RESOURCE_MANAGER_DATA_SOURCE_FLAG_DECODE */ MA_SOUND_FLAG_ASYNC = 0x00000004, /* MA_RESOURCE_MANAGER_DATA_SOURCE_FLAG_ASYNC */ MA_SOUND_FLAG_WAIT_INIT = 0x00000008, /* MA_RESOURCE_MANAGER_DATA_SOURCE_FLAG_WAIT_INIT */ - MA_SOUND_FLAG_NO_DEFAULT_ATTACHMENT = 0x00000010, /* Do not attach to the endpoint by default. Useful for when setting up nodes in a complex graph system. */ - MA_SOUND_FLAG_NO_PITCH = 0x00000020, /* Disable pitch shifting with ma_sound_set_pitch() and ma_sound_group_set_pitch(). This is an optimization. */ - MA_SOUND_FLAG_NO_SPATIALIZATION = 0x00000040 /* Disable spatialization. */ + MA_SOUND_FLAG_UNKNOWN_LENGTH = 0x00000010, /* MA_RESOURCE_MANAGER_DATA_SOURCE_FLAG_UNKNOWN_LENGTH */ + + /* ma_sound specific flags. */ + MA_SOUND_FLAG_NO_DEFAULT_ATTACHMENT = 0x00001000, /* Do not attach to the endpoint by default. Useful for when setting up nodes in a complex graph system. */ + MA_SOUND_FLAG_NO_PITCH = 0x00002000, /* Disable pitch shifting with ma_sound_set_pitch() and ma_sound_group_set_pitch(). This is an optimization. */ + MA_SOUND_FLAG_NO_SPATIALIZATION = 0x00004000 /* Disable spatialization. */ } ma_sound_flags; #ifndef MA_ENGINE_MAX_LISTENERS @@ -10706,7 +11049,9 @@ typedef struct ma_uint32 channelsIn; ma_uint32 channelsOut; ma_uint32 sampleRate; /* Only used when the type is set to ma_engine_node_type_sound. */ - ma_bool8 isPitchDisabled; /* Pitching can be explicitly disable with MA_SOUND_FLAG_NO_PITCH to optimize processing. */ + ma_uint32 volumeSmoothTimeInPCMFrames; /* The number of frames to smooth over volume changes. Defaults to 0 in which case no smoothing is used. */ + ma_mono_expansion_mode monoExpansionMode; + ma_bool8 isPitchDisabled; /* Pitching can be explicitly disabled with MA_SOUND_FLAG_NO_PITCH to optimize processing. */ ma_bool8 isSpatializationDisabled; /* Spatialization can be explicitly disabled with MA_SOUND_FLAG_NO_SPATIALIZATION. */ ma_uint8 pinnedListenerIndex; /* The index of the listener this node should always use for spatialization. If set to MA_LISTENER_INDEX_CLOSEST the engine will use the closest listener. */ } ma_engine_node_config; @@ -10720,10 +11065,14 @@ typedef struct ma_node_base baseNode; /* Must be the first member for compatiblity with the ma_node API. */ ma_engine* pEngine; /* A pointer to the engine. Set based on the value from the config. */ ma_uint32 sampleRate; /* The sample rate of the input data. For sounds backed by a data source, this will be the data source's sample rate. Otherwise it'll be the engine's sample rate. */ + ma_uint32 volumeSmoothTimeInPCMFrames; + ma_mono_expansion_mode monoExpansionMode; ma_fader fader; ma_linear_resampler resampler; /* For pitch shift. */ ma_spatializer spatializer; ma_panner panner; + ma_gainer volumeGainer; /* This will only be used if volumeSmoothTimeInPCMFrames is > 0. */ + ma_atomic_float volume; /* Defaults to 1. */ MA_ATOMIC(4, float) pitch; float oldPitch; /* For determining whether or not the resampler needs to be updated to reflect the new pitch. The resampler will be updated on the mixing thread. */ float oldDopplerPitch; /* For determining whether or not the resampler needs to be updated to take a new doppler pitch into account. */ @@ -10731,6 +11080,15 @@ typedef struct MA_ATOMIC(4, ma_bool32) isSpatializationDisabled; /* Set to false by default. When set to false, will not have spatialisation applied. */ MA_ATOMIC(4, ma_uint32) pinnedListenerIndex; /* The index of the listener this node should always use for spatialization. If set to MA_LISTENER_INDEX_CLOSEST the engine will use the closest listener. */ + /* When setting a fade, it's not done immediately in ma_sound_set_fade(). It's deferred to the audio thread which means we need to store the settings here. */ + struct + { + ma_atomic_float volumeBeg; + ma_atomic_float volumeEnd; + ma_atomic_uint64 fadeLengthInFrames; /* <-- Defaults to (~(ma_uint64)0) which is used to indicate that no fade should be applied. */ + ma_atomic_uint64 absoluteGlobalTimeInFrames; /* <-- The time to start the fade. */ + } fadeSettings; + /* Memory management. */ ma_bool8 _ownsHeap; void* _pHeap; @@ -10744,6 +11102,9 @@ MA_API void ma_engine_node_uninit(ma_engine_node* pEngineNode, const ma_allocati #define MA_SOUND_SOURCE_CHANNEL_COUNT 0xFFFFFFFF +/* Callback for when a sound reaches the end. */ +typedef void (* ma_sound_end_proc)(void* pUserData, ma_sound* pSound); + typedef struct { const char* pFilePath; /* Set this to load from the resource manager. */ @@ -10753,17 +11114,25 @@ typedef struct ma_uint32 initialAttachmentInputBusIndex; /* The index of the input bus of pInitialAttachment to attach the sound to. */ ma_uint32 channelsIn; /* Ignored if using a data source as input (the data source's channel count will be used always). Otherwise, setting to 0 will cause the engine's channel count to be used. */ ma_uint32 channelsOut; /* Set this to 0 (default) to use the engine's channel count. Set to MA_SOUND_SOURCE_CHANNEL_COUNT to use the data source's channel count (only used if using a data source as input). */ + ma_mono_expansion_mode monoExpansionMode; /* Controls how the mono channel should be expanded to other channels when spatialization is disabled on a sound. */ ma_uint32 flags; /* A combination of MA_SOUND_FLAG_* flags. */ + ma_uint32 volumeSmoothTimeInPCMFrames; /* The number of frames to smooth over volume changes. Defaults to 0 in which case no smoothing is used. */ ma_uint64 initialSeekPointInPCMFrames; /* Initializes the sound such that it's seeked to this location by default. */ ma_uint64 rangeBegInPCMFrames; ma_uint64 rangeEndInPCMFrames; ma_uint64 loopPointBegInPCMFrames; ma_uint64 loopPointEndInPCMFrames; ma_bool32 isLooping; - ma_fence* pDoneFence; /* Released when the resource manager has finished decoding the entire sound. Not used with streams. */ + ma_sound_end_proc endCallback; /* Fired when the sound reaches the end. Will be fired from the audio thread. Do not restart, uninitialize or otherwise change the state of the sound from here. Instead fire an event or set a variable to indicate to a different thread to change the start of the sound. Will not be fired in response to a scheduled stop with ma_sound_set_stop_time_*(). */ + void* pEndCallbackUserData; +#ifndef MA_NO_RESOURCE_MANAGER + ma_resource_manager_pipeline_notifications initNotifications; +#endif + ma_fence* pDoneFence; /* Deprecated. Use initNotifications instead. Released when the resource manager has finished decoding the entire sound. Not used with streams. */ } ma_sound_config; -MA_API ma_sound_config ma_sound_config_init(void); +MA_API ma_sound_config ma_sound_config_init(void); /* Deprecated. Will be removed in version 0.12. Use ma_sound_config_2() instead. */ +MA_API ma_sound_config ma_sound_config_init_2(ma_engine* pEngine); /* Will be renamed to ma_sound_config_init() in version 0.12. */ struct ma_sound { @@ -10771,6 +11140,8 @@ struct ma_sound ma_data_source* pDataSource; MA_ATOMIC(8, ma_uint64) seekTarget; /* The PCM frame index to seek to in the mixing thread. Set to (~(ma_uint64)0) to not perform any seeking. */ MA_ATOMIC(4, ma_bool32) atEnd; + ma_sound_end_proc endCallback; + void* pEndCallbackUserData; ma_bool8 ownsDataSource; /* @@ -10795,32 +11166,39 @@ struct ma_sound_inlined typedef ma_sound_config ma_sound_group_config; typedef ma_sound ma_sound_group; -MA_API ma_sound_group_config ma_sound_group_config_init(void); +MA_API ma_sound_group_config ma_sound_group_config_init(void); /* Deprecated. Will be removed in version 0.12. Use ma_sound_config_2() instead. */ +MA_API ma_sound_group_config ma_sound_group_config_init_2(ma_engine* pEngine); /* Will be renamed to ma_sound_config_init() in version 0.12. */ +typedef void (* ma_engine_process_proc)(void* pUserData, float* pFramesOut, ma_uint64 frameCount); typedef struct { #if !defined(MA_NO_RESOURCE_MANAGER) - ma_resource_manager* pResourceManager; /* Can be null in which case a resource manager will be created for you. */ + ma_resource_manager* pResourceManager; /* Can be null in which case a resource manager will be created for you. */ #endif #if !defined(MA_NO_DEVICE_IO) ma_context* pContext; - ma_device* pDevice; /* If set, the caller is responsible for calling ma_engine_data_callback() in the device's data callback. */ - ma_device_id* pPlaybackDeviceID; /* The ID of the playback device to use with the default listener. */ + ma_device* pDevice; /* If set, the caller is responsible for calling ma_engine_data_callback() in the device's data callback. */ + ma_device_id* pPlaybackDeviceID; /* The ID of the playback device to use with the default listener. */ + ma_device_data_proc dataCallback; /* Can be null. Can be used to provide a custom device data callback. */ + ma_device_notification_proc notificationCallback; #endif - ma_log* pLog; /* When set to NULL, will use the context's log. */ - ma_uint32 listenerCount; /* Must be between 1 and MA_ENGINE_MAX_LISTENERS. */ - ma_uint32 channels; /* The number of channels to use when mixing and spatializing. When set to 0, will use the native channel count of the device. */ - ma_uint32 sampleRate; /* The sample rate. When set to 0 will use the native channel count of the device. */ - ma_uint32 periodSizeInFrames; /* If set to something other than 0, updates will always be exactly this size. The underlying device may be a different size, but from the perspective of the mixer that won't matter.*/ - ma_uint32 periodSizeInMilliseconds; /* Used if periodSizeInFrames is unset. */ - ma_uint32 gainSmoothTimeInFrames; /* The number of frames to interpolate the gain of spatialized sounds across. If set to 0, will use gainSmoothTimeInMilliseconds. */ - ma_uint32 gainSmoothTimeInMilliseconds; /* When set to 0, gainSmoothTimeInFrames will be used. If both are set to 0, a default value will be used. */ + ma_log* pLog; /* When set to NULL, will use the context's log. */ + ma_uint32 listenerCount; /* Must be between 1 and MA_ENGINE_MAX_LISTENERS. */ + ma_uint32 channels; /* The number of channels to use when mixing and spatializing. When set to 0, will use the native channel count of the device. */ + ma_uint32 sampleRate; /* The sample rate. When set to 0 will use the native channel count of the device. */ + ma_uint32 periodSizeInFrames; /* If set to something other than 0, updates will always be exactly this size. The underlying device may be a different size, but from the perspective of the mixer that won't matter.*/ + ma_uint32 periodSizeInMilliseconds; /* Used if periodSizeInFrames is unset. */ + ma_uint32 gainSmoothTimeInFrames; /* The number of frames to interpolate the gain of spatialized sounds across. If set to 0, will use gainSmoothTimeInMilliseconds. */ + ma_uint32 gainSmoothTimeInMilliseconds; /* When set to 0, gainSmoothTimeInFrames will be used. If both are set to 0, a default value will be used. */ + ma_uint32 defaultVolumeSmoothTimeInPCMFrames; /* Defaults to 0. Controls the default amount of smoothing to apply to volume changes to sounds. High values means more smoothing at the expense of high latency (will take longer to reach the new volume). */ ma_allocation_callbacks allocationCallbacks; - ma_bool32 noAutoStart; /* When set to true, requires an explicit call to ma_engine_start(). This is false by default, meaning the engine will be started automatically in ma_engine_init(). */ - ma_bool32 noDevice; /* When set to true, don't create a default device. ma_engine_read_pcm_frames() can be called manually to read data. */ - ma_mono_expansion_mode monoExpansionMode; /* Controls how the mono channel should be expanded to other channels when spatialization is disabled on a sound. */ - ma_vfs* pResourceManagerVFS; /* A pointer to a pre-allocated VFS object to use with the resource manager. This is ignored if pResourceManager is not NULL. */ + ma_bool32 noAutoStart; /* When set to true, requires an explicit call to ma_engine_start(). This is false by default, meaning the engine will be started automatically in ma_engine_init(). */ + ma_bool32 noDevice; /* When set to true, don't create a default device. ma_engine_read_pcm_frames() can be called manually to read data. */ + ma_mono_expansion_mode monoExpansionMode; /* Controls how the mono channel should be expanded to other channels when spatialization is disabled on a sound. */ + ma_vfs* pResourceManagerVFS; /* A pointer to a pre-allocated VFS object to use with the resource manager. This is ignored if pResourceManager is not NULL. */ + ma_engine_process_proc onProcess; /* Fired at the end of each call to ma_engine_read_pcm_frames(). For engine's that manage their own internal device (the default configuration), this will be fired from the audio thread, and you do not need to call ma_engine_read_pcm_frames() manually in order to trigger this. */ + void* pProcessUserData; /* User data that's passed into onProcess. */ } ma_engine_config; MA_API ma_engine_config ma_engine_config_init(void); @@ -10846,7 +11224,10 @@ struct ma_engine ma_sound_inlined* pInlinedSoundHead; /* The first inlined sound. Inlined sounds are tracked in a linked list. */ MA_ATOMIC(4, ma_uint32) inlinedSoundCount; /* The total number of allocated inlined sound objects. Used for debugging. */ ma_uint32 gainSmoothTimeInFrames; /* The number of frames to interpolate the gain of spatialized sounds across. */ + ma_uint32 defaultVolumeSmoothTimeInPCMFrames; ma_mono_expansion_mode monoExpansionMode; + ma_engine_process_proc onProcess; + void* pProcessUserData; }; MA_API ma_result ma_engine_init(const ma_engine_config* pConfig, ma_engine* pEngine); @@ -10859,15 +11240,21 @@ MA_API ma_resource_manager* ma_engine_get_resource_manager(ma_engine* pEngine); MA_API ma_device* ma_engine_get_device(ma_engine* pEngine); MA_API ma_log* ma_engine_get_log(ma_engine* pEngine); MA_API ma_node* ma_engine_get_endpoint(ma_engine* pEngine); -MA_API ma_uint64 ma_engine_get_time(const ma_engine* pEngine); -MA_API ma_result ma_engine_set_time(ma_engine* pEngine, ma_uint64 globalTime); +MA_API ma_uint64 ma_engine_get_time_in_pcm_frames(const ma_engine* pEngine); +MA_API ma_uint64 ma_engine_get_time_in_milliseconds(const ma_engine* pEngine); +MA_API ma_result ma_engine_set_time_in_pcm_frames(ma_engine* pEngine, ma_uint64 globalTime); +MA_API ma_result ma_engine_set_time_in_milliseconds(ma_engine* pEngine, ma_uint64 globalTime); +MA_API ma_uint64 ma_engine_get_time(const ma_engine* pEngine); /* Deprecated. Use ma_engine_get_time_in_pcm_frames(). Will be removed in version 0.12. */ +MA_API ma_result ma_engine_set_time(ma_engine* pEngine, ma_uint64 globalTime); /* Deprecated. Use ma_engine_set_time_in_pcm_frames(). Will be removed in version 0.12. */ MA_API ma_uint32 ma_engine_get_channels(const ma_engine* pEngine); MA_API ma_uint32 ma_engine_get_sample_rate(const ma_engine* pEngine); MA_API ma_result ma_engine_start(ma_engine* pEngine); MA_API ma_result ma_engine_stop(ma_engine* pEngine); MA_API ma_result ma_engine_set_volume(ma_engine* pEngine, float volume); +MA_API float ma_engine_get_volume(ma_engine* pEngine); MA_API ma_result ma_engine_set_gain_db(ma_engine* pEngine, float gainDB); +MA_API float ma_engine_get_gain_db(ma_engine* pEngine); MA_API ma_uint32 ma_engine_get_listener_count(const ma_engine* pEngine); MA_API ma_uint32 ma_engine_find_closest_listener(const ma_engine* pEngine, float absolutePosX, float absolutePosY, float absolutePosZ); @@ -10901,6 +11288,8 @@ MA_API ma_engine* ma_sound_get_engine(const ma_sound* pSound); MA_API ma_data_source* ma_sound_get_data_source(const ma_sound* pSound); MA_API ma_result ma_sound_start(ma_sound* pSound); MA_API ma_result ma_sound_stop(ma_sound* pSound); +MA_API ma_result ma_sound_stop_with_fade_in_pcm_frames(ma_sound* pSound, ma_uint64 fadeLengthInFrames); /* Will overwrite any scheduled stop and fade. */ +MA_API ma_result ma_sound_stop_with_fade_in_milliseconds(ma_sound* pSound, ma_uint64 fadeLengthInFrames); /* Will overwrite any scheduled stop and fade. */ MA_API void ma_sound_set_volume(ma_sound* pSound, float volume); MA_API float ma_sound_get_volume(const ma_sound* pSound); MA_API void ma_sound_set_pan(ma_sound* pSound, float pan); @@ -10943,13 +11332,18 @@ MA_API void ma_sound_set_directional_attenuation_factor(ma_sound* pSound, float MA_API float ma_sound_get_directional_attenuation_factor(const ma_sound* pSound); MA_API void ma_sound_set_fade_in_pcm_frames(ma_sound* pSound, float volumeBeg, float volumeEnd, ma_uint64 fadeLengthInFrames); MA_API void ma_sound_set_fade_in_milliseconds(ma_sound* pSound, float volumeBeg, float volumeEnd, ma_uint64 fadeLengthInMilliseconds); -MA_API float ma_sound_get_current_fade_volume(ma_sound* pSound); +MA_API void ma_sound_set_fade_start_in_pcm_frames(ma_sound* pSound, float volumeBeg, float volumeEnd, ma_uint64 fadeLengthInFrames, ma_uint64 absoluteGlobalTimeInFrames); +MA_API void ma_sound_set_fade_start_in_milliseconds(ma_sound* pSound, float volumeBeg, float volumeEnd, ma_uint64 fadeLengthInMilliseconds, ma_uint64 absoluteGlobalTimeInMilliseconds); +MA_API float ma_sound_get_current_fade_volume(const ma_sound* pSound); MA_API void ma_sound_set_start_time_in_pcm_frames(ma_sound* pSound, ma_uint64 absoluteGlobalTimeInFrames); MA_API void ma_sound_set_start_time_in_milliseconds(ma_sound* pSound, ma_uint64 absoluteGlobalTimeInMilliseconds); MA_API void ma_sound_set_stop_time_in_pcm_frames(ma_sound* pSound, ma_uint64 absoluteGlobalTimeInFrames); MA_API void ma_sound_set_stop_time_in_milliseconds(ma_sound* pSound, ma_uint64 absoluteGlobalTimeInMilliseconds); +MA_API void ma_sound_set_stop_time_with_fade_in_pcm_frames(ma_sound* pSound, ma_uint64 stopAbsoluteGlobalTimeInFrames, ma_uint64 fadeLengthInFrames); +MA_API void ma_sound_set_stop_time_with_fade_in_milliseconds(ma_sound* pSound, ma_uint64 stopAbsoluteGlobalTimeInMilliseconds, ma_uint64 fadeLengthInMilliseconds); MA_API ma_bool32 ma_sound_is_playing(const ma_sound* pSound); MA_API ma_uint64 ma_sound_get_time_in_pcm_frames(const ma_sound* pSound); +MA_API ma_uint64 ma_sound_get_time_in_milliseconds(const ma_sound* pSound); MA_API void ma_sound_set_looping(ma_sound* pSound, ma_bool32 isLooping); MA_API ma_bool32 ma_sound_is_looping(const ma_sound* pSound); MA_API ma_bool32 ma_sound_at_end(const ma_sound* pSound); @@ -10959,6 +11353,7 @@ MA_API ma_result ma_sound_get_cursor_in_pcm_frames(ma_sound* pSound, ma_uint64* MA_API ma_result ma_sound_get_length_in_pcm_frames(ma_sound* pSound, ma_uint64* pLength); MA_API ma_result ma_sound_get_cursor_in_seconds(ma_sound* pSound, float* pCursor); MA_API ma_result ma_sound_get_length_in_seconds(ma_sound* pSound, float* pLength); +MA_API ma_result ma_sound_set_end_callback(ma_sound* pSound, ma_sound_end_proc callback, void* pUserData); MA_API ma_result ma_sound_group_init(ma_engine* pEngine, ma_uint32 flags, ma_sound_group* pParentGroup, ma_sound_group* pGroup); MA_API ma_result ma_sound_group_init_ex(ma_engine* pEngine, const ma_sound_group_config* pConfig, ma_sound_group* pGroup); @@ -11016,6 +11411,7 @@ MA_API void ma_sound_group_set_stop_time_in_milliseconds(ma_sound_group* pGroup, MA_API ma_bool32 ma_sound_group_is_playing(const ma_sound_group* pGroup); MA_API ma_uint64 ma_sound_group_get_time_in_pcm_frames(const ma_sound_group* pGroup); #endif /* MA_NO_ENGINE */ +/* END SECTION: miniaudio_engine.h */ #ifdef __cplusplus } @@ -11042,8 +11438,10 @@ IMPLEMENTATION #define miniaudio_c #include -#include /* For INT_MAX */ -#include /* sin(), etc. */ +#include /* For INT_MAX */ +#include /* sin(), etc. */ +#include /* For malloc(), free(), wcstombs(). */ +#include /* For memset() */ #include #include @@ -11055,22 +11453,43 @@ IMPLEMENTATION #include /* For _controlfp_s constants */ #endif -#ifdef MA_WIN32 -#include -#else -#include /* For malloc(), free(), wcstombs(). */ -#include /* For memset() */ +#if defined(MA_WIN32) + #include + + /* + There's a possibility that WIN32_LEAN_AND_MEAN has been defined which will exclude some symbols + such as STGM_READ and CLSCTL_ALL. We need to check these and define them ourselves if they're + unavailable. + */ + #ifndef STGM_READ + #define STGM_READ 0x00000000L + #endif + #ifndef CLSCTX_ALL + #define CLSCTX_ALL 23 + #endif + + /* IUnknown is used by both the WASAPI and DirectSound backends. It easier to just declare our version here. */ + typedef struct ma_IUnknown ma_IUnknown; +#endif + +#if !defined(MA_WIN32) #include #include /* select() (used for ma_sleep()). */ #include #endif +#ifdef MA_NX +#include /* For nanosleep() */ +#endif + #include /* For fstat(), etc. */ #ifdef MA_EMSCRIPTEN #include #endif + +/* Architecture Detection */ #if !defined(MA_64BIT) && !defined(MA_32BIT) #ifdef _WIN32 #ifdef _WIN64 @@ -11100,17 +11519,23 @@ IMPLEMENTATION #endif #endif -/* Architecture Detection */ +#if defined(__arm__) || defined(_M_ARM) +#define MA_ARM32 +#endif +#if defined(__arm64) || defined(__arm64__) || defined(__aarch64__) || defined(_M_ARM64) +#define MA_ARM64 +#endif + #if defined(__x86_64__) || defined(_M_X64) #define MA_X64 #elif defined(__i386) || defined(_M_IX86) #define MA_X86 -#elif defined(__arm__) || defined(_M_ARM) || defined(__arm64) || defined(__arm64__) || defined(__aarch64__) || defined(_M_ARM64) +#elif defined(MA_ARM32) || defined(MA_ARM64) #define MA_ARM #endif /* Intrinsics Support */ -#if defined(MA_X64) || defined(MA_X86) +#if (defined(MA_X64) || defined(MA_X86)) && !defined(__COSMOPOLITAN__) #if defined(_MSC_VER) && !defined(__clang__) /* MSVC. */ #if _MSC_VER >= 1400 && !defined(MA_NO_SSE2) /* 2005 */ @@ -11199,7 +11624,7 @@ IMPLEMENTATION What's basically happening is that we're saving and restoring the ebx register manually. */ - #if defined(DRFLAC_X86) && defined(__PIC__) + #if defined(MA_X86) && defined(__PIC__) __asm__ __volatile__ ( "xchg{l} {%%}ebx, %k1;" "cpuid;" @@ -11346,23 +11771,6 @@ static MA_INLINE ma_bool32 ma_has_neon(void) #endif } -#define MA_SIMD_NONE 0 -#define MA_SIMD_SSE2 1 -#define MA_SIMD_AVX2 2 -#define MA_SIMD_NEON 3 - -#ifndef MA_PREFERRED_SIMD - # if defined(MA_SUPPORT_SSE2) && defined(MA_PREFER_SSE2) - #define MA_PREFERRED_SIMD MA_SIMD_SSE2 - #elif defined(MA_SUPPORT_AVX2) && defined(MA_PREFER_AVX2) - #define MA_PREFERRED_SIMD MA_SIMD_AVX2 - #elif defined(MA_SUPPORT_NEON) && defined(MA_PREFER_NEON) - #define MA_PREFERRED_SIMD MA_SIMD_NEON - #else - #define MA_PREFERRED_SIMD MA_SIMD_NONE - #endif -#endif - #if defined(__has_builtin) #define MA_COMPILER_HAS_BUILTIN(x) __has_builtin(x) #else @@ -11476,7 +11884,7 @@ static void ma_sleep__posix(ma_uint32 milliseconds) (void)milliseconds; MA_ASSERT(MA_FALSE); /* The Emscripten build should never sleep. */ #else - #if defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE >= 199309L + #if (defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE >= 199309L) || defined(MA_NX) struct timespec ts; ts.tv_sec = milliseconds / 1000; ts.tv_nsec = milliseconds % 1000 * 1000000; @@ -11502,7 +11910,7 @@ static MA_INLINE void ma_sleep(ma_uint32 milliseconds) } #endif -static MA_INLINE void ma_yield() +static MA_INLINE void ma_yield(void) { #if defined(__i386) || defined(_M_IX86) || defined(__x86_64__) || defined(_M_X64) /* x86/x64 */ @@ -11537,7 +11945,7 @@ static MA_INLINE void ma_yield() #define MA_MM_DENORMALS_ZERO_MASK 0x0040 #define MA_MM_FLUSH_ZERO_MASK 0x8000 -static MA_INLINE unsigned int ma_disable_denormals() +static MA_INLINE unsigned int ma_disable_denormals(void) { unsigned int prevState; @@ -11564,7 +11972,7 @@ static MA_INLINE unsigned int ma_disable_denormals() } #elif defined(MA_X86) || defined(MA_X64) { - #if defined(__SSE2__) && !(defined(__TINYC__) || defined(__WATCOMC__)) /* <-- Add compilers that lack support for _mm_getcsr() and _mm_setcsr() to this list. */ + #if defined(__SSE2__) && !(defined(__TINYC__) || defined(__WATCOMC__) || defined(__COSMOPOLITAN__)) /* <-- Add compilers that lack support for _mm_getcsr() and _mm_setcsr() to this list. */ { prevState = _mm_getcsr(); _mm_setcsr(prevState | MA_MM_DENORMALS_ZERO_MASK | MA_MM_FLUSH_ZERO_MASK); @@ -11604,7 +12012,7 @@ static MA_INLINE void ma_restore_denormals(unsigned int prevState) } #elif defined(MA_X86) || defined(MA_X64) { - #if defined(__SSE2__) && !(defined(__TINYC__) || defined(__WATCOMC__)) /* <-- Add compilers that lack support for _mm_getcsr() and _mm_setcsr() to this list. */ + #if defined(__SSE2__) && !(defined(__TINYC__) || defined(__WATCOMC__) || defined(__COSMOPOLITAN__)) /* <-- Add compilers that lack support for _mm_getcsr() and _mm_setcsr() to this list. */ { _mm_setcsr(prevState); } @@ -11624,6 +12032,20 @@ static MA_INLINE void ma_restore_denormals(unsigned int prevState) } +#ifdef MA_ANDROID +#include + +int ma_android_sdk_version() +{ + char sdkVersion[PROP_VALUE_MAX + 1] = {0, }; + if (__system_property_get("ro.build.version.sdk", sdkVersion)) { + return atoi(sdkVersion); + } + + return 0; +} +#endif + #ifndef MA_COINIT_VALUE #define MA_COINIT_VALUE 0 /* 0 = COINIT_MULTITHREADED */ @@ -11777,72 +12199,53 @@ MA_API const char* ma_version_string(void) Standard Library Stuff ******************************************************************************/ +#ifndef MA_ASSERT +#define MA_ASSERT(condition) assert(condition) +#endif + #ifndef MA_MALLOC -#ifdef MA_WIN32 -#define MA_MALLOC(sz) HeapAlloc(GetProcessHeap(), 0, (sz)) -#else -#define MA_MALLOC(sz) malloc((sz)) +#define MA_MALLOC(sz) malloc((sz)) #endif -#endif - #ifndef MA_REALLOC -#ifdef MA_WIN32 -#define MA_REALLOC(p, sz) (((sz) > 0) ? ((p) ? HeapReAlloc(GetProcessHeap(), 0, (p), (sz)) : HeapAlloc(GetProcessHeap(), 0, (sz))) : ((VOID*)(size_t)(HeapFree(GetProcessHeap(), 0, (p)) & 0))) -#else -#define MA_REALLOC(p, sz) realloc((p), (sz)) +#define MA_REALLOC(p, sz) realloc((p), (sz)) #endif +#ifndef MA_FREE +#define MA_FREE(p) free((p)) #endif -#ifndef MA_FREE -#ifdef MA_WIN32 -#define MA_FREE(p) HeapFree(GetProcessHeap(), 0, (p)) -#else -#define MA_FREE(p) free((p)) -#endif -#endif +static MA_INLINE void ma_zero_memory_default(void* p, size_t sz) +{ + if (p == NULL) { + MA_ASSERT(sz == 0); /* If this is triggered there's an error with the calling code. */ + return; + } + + if (sz > 0) { + memset(p, 0, sz); + } +} + #ifndef MA_ZERO_MEMORY -#ifdef MA_WIN32 -#define MA_ZERO_MEMORY(p, sz) ZeroMemory((p), (sz)) -#else -#define MA_ZERO_MEMORY(p, sz) memset((p), 0, (sz)) +#define MA_ZERO_MEMORY(p, sz) ma_zero_memory_default((p), (sz)) #endif -#endif - #ifndef MA_COPY_MEMORY -#ifdef MA_WIN32 -#define MA_COPY_MEMORY(dst, src, sz) CopyMemory((dst), (src), (sz)) -#else -#define MA_COPY_MEMORY(dst, src, sz) memcpy((dst), (src), (sz)) +#define MA_COPY_MEMORY(dst, src, sz) memcpy((dst), (src), (sz)) #endif -#endif - #ifndef MA_MOVE_MEMORY -#ifdef MA_WIN32 -#define MA_MOVE_MEMORY(dst, src, sz) MoveMemory((dst), (src), (sz)) -#else -#define MA_MOVE_MEMORY(dst, src, sz) memmove((dst), (src), (sz)) -#endif +#define MA_MOVE_MEMORY(dst, src, sz) memmove((dst), (src), (sz)) #endif -#ifndef MA_ASSERT -#ifdef MA_WIN32 -#define MA_ASSERT(condition) assert(condition) -#else -#define MA_ASSERT(condition) assert(condition) -#endif -#endif +#define MA_ZERO_OBJECT(p) MA_ZERO_MEMORY((p), sizeof(*(p))) -#define MA_ZERO_OBJECT(p) MA_ZERO_MEMORY((p), sizeof(*(p))) - -#define ma_countof(x) (sizeof(x) / sizeof(x[0])) -#define ma_max(x, y) (((x) > (y)) ? (x) : (y)) -#define ma_min(x, y) (((x) < (y)) ? (x) : (y)) -#define ma_abs(x) (((x) > 0) ? (x) : -(x)) -#define ma_clamp(x, lo, hi) (ma_max(lo, ma_min(x, hi))) -#define ma_offset_ptr(p, offset) (((ma_uint8*)(p)) + (offset)) -#define ma_align(x, a) ((x + (a-1)) & ~(a-1)) -#define ma_align_64(x) ma_align(x, 8) +#define ma_countof(x) (sizeof(x) / sizeof(x[0])) +#define ma_max(x, y) (((x) > (y)) ? (x) : (y)) +#define ma_min(x, y) (((x) < (y)) ? (x) : (y)) +#define ma_abs(x) (((x) > 0) ? (x) : -(x)) +#define ma_clamp(x, lo, hi) (ma_max(lo, ma_min(x, hi))) +#define ma_offset_ptr(p, offset) (((ma_uint8*)(p)) + (offset)) +#define ma_align(x, a) (((x) + ((a)-1)) & ~((a)-1)) +#define ma_align_64(x) ma_align(x, 8) #define ma_buffer_frame_capacity(buffer, channels, format) (sizeof(buffer) / ma_get_bytes_per_sample(format) / (channels)) @@ -11877,6 +12280,40 @@ static MA_INLINE double ma_sqrtd(double x) } +static MA_INLINE float ma_rsqrtf(float x) +{ + #if defined(MA_SUPPORT_SSE2) && !defined(MA_NO_SSE2) && (defined(MA_X64) || (defined(_M_IX86_FP) && _M_IX86_FP == 2) || defined(__SSE2__)) + { + /* + For SSE we can use RSQRTSS. + + This Stack Overflow post suggests that compilers don't necessarily generate optimal code + when using intrinsics: + + https://web.archive.org/web/20221211012522/https://stackoverflow.com/questions/32687079/getting-fewest-instructions-for-rsqrtss-wrapper + + I'm going to do something similar here, but a bit simpler. + */ + #if defined(__GNUC__) || defined(__clang__) + { + float result; + __asm__ __volatile__("rsqrtss %1, %0" : "=x"(result) : "x"(x)); + return result; + } + #else + { + return _mm_cvtss_f32(_mm_rsqrt_ss(_mm_set_ps1(x))); + } + #endif + } + #else + { + return 1 / (float)ma_sqrtd(x); + } + #endif +} + + static MA_INLINE float ma_sinf(float x) { return (float)ma_sind((float)x); @@ -11936,8 +12373,11 @@ Return Values: 34: ERANGE Not using symbolic constants for errors because I want to avoid #including errno.h + +These are marked as no-inline because of some bad code generation by Clang. None of these functions +are used in any performance-critical code within miniaudio. */ -MA_API int ma_strcpy_s(char* dst, size_t dstSizeInBytes, const char* src) +MA_API MA_NO_INLINE int ma_strcpy_s(char* dst, size_t dstSizeInBytes, const char* src) { size_t i; @@ -11965,7 +12405,7 @@ MA_API int ma_strcpy_s(char* dst, size_t dstSizeInBytes, const char* src) return 34; } -MA_API int ma_wcscpy_s(wchar_t* dst, size_t dstCap, const wchar_t* src) +MA_API MA_NO_INLINE int ma_wcscpy_s(wchar_t* dst, size_t dstCap, const wchar_t* src) { size_t i; @@ -11994,7 +12434,7 @@ MA_API int ma_wcscpy_s(wchar_t* dst, size_t dstCap, const wchar_t* src) } -MA_API int ma_strncpy_s(char* dst, size_t dstSizeInBytes, const char* src, size_t count) +MA_API MA_NO_INLINE int ma_strncpy_s(char* dst, size_t dstSizeInBytes, const char* src, size_t count) { size_t maxcount; size_t i; @@ -12028,7 +12468,7 @@ MA_API int ma_strncpy_s(char* dst, size_t dstSizeInBytes, const char* src, size_ return 34; } -MA_API int ma_strcat_s(char* dst, size_t dstSizeInBytes, const char* src) +MA_API MA_NO_INLINE int ma_strcat_s(char* dst, size_t dstSizeInBytes, const char* src) { char* dstorig; @@ -12070,7 +12510,7 @@ MA_API int ma_strcat_s(char* dst, size_t dstSizeInBytes, const char* src) return 0; } -MA_API int ma_strncat_s(char* dst, size_t dstSizeInBytes, const char* src, size_t count) +MA_API MA_NO_INLINE int ma_strncat_s(char* dst, size_t dstSizeInBytes, const char* src, size_t count) { char* dstorig; @@ -12116,7 +12556,7 @@ MA_API int ma_strncat_s(char* dst, size_t dstSizeInBytes, const char* src, size_ return 0; } -MA_API int ma_itoa_s(int value, char* dst, size_t dstSizeInBytes, int radix) +MA_API MA_NO_INLINE int ma_itoa_s(int value, char* dst, size_t dstSizeInBytes, int radix) { int sign; unsigned int valueU; @@ -12185,7 +12625,7 @@ MA_API int ma_itoa_s(int value, char* dst, size_t dstSizeInBytes, int radix) return 0; } -MA_API int ma_strcmp(const char* str1, const char* str2) +MA_API MA_NO_INLINE int ma_strcmp(const char* str1, const char* str2) { if (str1 == str2) return 0; @@ -12208,7 +12648,7 @@ MA_API int ma_strcmp(const char* str1, const char* str2) return ((unsigned char*)str1)[0] - ((unsigned char*)str2)[0]; } -MA_API int ma_strappend(char* dst, size_t dstSize, const char* srcA, const char* srcB) +MA_API MA_NO_INLINE int ma_strappend(char* dst, size_t dstSize, const char* srcA, const char* srcB) { int result; @@ -12225,14 +12665,17 @@ MA_API int ma_strappend(char* dst, size_t dstSize, const char* srcA, const char* return result; } -MA_API char* ma_copy_string(const char* src, const ma_allocation_callbacks* pAllocationCallbacks) +MA_API MA_NO_INLINE char* ma_copy_string(const char* src, const ma_allocation_callbacks* pAllocationCallbacks) { + size_t sz; + char* dst; + if (src == NULL) { return NULL; } - size_t sz = strlen(src)+1; - char* dst = (char*)ma_malloc(sz, pAllocationCallbacks); + sz = strlen(src)+1; + dst = (char*)ma_malloc(sz, pAllocationCallbacks); if (dst == NULL) { return NULL; } @@ -12242,7 +12685,7 @@ MA_API char* ma_copy_string(const char* src, const ma_allocation_callbacks* pAll return dst; } -MA_API wchar_t* ma_copy_string_w(const wchar_t* src, const ma_allocation_callbacks* pAllocationCallbacks) +MA_API MA_NO_INLINE wchar_t* ma_copy_string_w(const wchar_t* src, const ma_allocation_callbacks* pAllocationCallbacks) { size_t sz = wcslen(src)+1; wchar_t* dst = (wchar_t*)ma_malloc(sz * sizeof(*dst), pAllocationCallbacks); @@ -12256,406 +12699,408 @@ MA_API wchar_t* ma_copy_string_w(const wchar_t* src, const ma_allocation_callbac } + #include static ma_result ma_result_from_errno(int e) { - switch (e) - { - case 0: return MA_SUCCESS; - #ifdef EPERM - case EPERM: return MA_INVALID_OPERATION; - #endif - #ifdef ENOENT - case ENOENT: return MA_DOES_NOT_EXIST; - #endif - #ifdef ESRCH - case ESRCH: return MA_DOES_NOT_EXIST; - #endif - #ifdef EINTR - case EINTR: return MA_INTERRUPT; - #endif - #ifdef EIO - case EIO: return MA_IO_ERROR; - #endif - #ifdef ENXIO - case ENXIO: return MA_DOES_NOT_EXIST; - #endif - #ifdef E2BIG - case E2BIG: return MA_INVALID_ARGS; - #endif - #ifdef ENOEXEC - case ENOEXEC: return MA_INVALID_FILE; - #endif - #ifdef EBADF - case EBADF: return MA_INVALID_FILE; - #endif - #ifdef ECHILD - case ECHILD: return MA_ERROR; - #endif - #ifdef EAGAIN - case EAGAIN: return MA_UNAVAILABLE; - #endif - #ifdef ENOMEM - case ENOMEM: return MA_OUT_OF_MEMORY; - #endif - #ifdef EACCES - case EACCES: return MA_ACCESS_DENIED; - #endif - #ifdef EFAULT - case EFAULT: return MA_BAD_ADDRESS; - #endif - #ifdef ENOTBLK - case ENOTBLK: return MA_ERROR; - #endif - #ifdef EBUSY - case EBUSY: return MA_BUSY; - #endif - #ifdef EEXIST - case EEXIST: return MA_ALREADY_EXISTS; - #endif - #ifdef EXDEV - case EXDEV: return MA_ERROR; - #endif - #ifdef ENODEV - case ENODEV: return MA_DOES_NOT_EXIST; - #endif - #ifdef ENOTDIR - case ENOTDIR: return MA_NOT_DIRECTORY; - #endif - #ifdef EISDIR - case EISDIR: return MA_IS_DIRECTORY; - #endif - #ifdef EINVAL - case EINVAL: return MA_INVALID_ARGS; - #endif - #ifdef ENFILE - case ENFILE: return MA_TOO_MANY_OPEN_FILES; - #endif - #ifdef EMFILE - case EMFILE: return MA_TOO_MANY_OPEN_FILES; - #endif - #ifdef ENOTTY - case ENOTTY: return MA_INVALID_OPERATION; - #endif - #ifdef ETXTBSY - case ETXTBSY: return MA_BUSY; - #endif - #ifdef EFBIG - case EFBIG: return MA_TOO_BIG; - #endif - #ifdef ENOSPC - case ENOSPC: return MA_NO_SPACE; - #endif - #ifdef ESPIPE - case ESPIPE: return MA_BAD_SEEK; - #endif - #ifdef EROFS - case EROFS: return MA_ACCESS_DENIED; - #endif - #ifdef EMLINK - case EMLINK: return MA_TOO_MANY_LINKS; - #endif - #ifdef EPIPE - case EPIPE: return MA_BAD_PIPE; - #endif - #ifdef EDOM - case EDOM: return MA_OUT_OF_RANGE; - #endif - #ifdef ERANGE - case ERANGE: return MA_OUT_OF_RANGE; - #endif - #ifdef EDEADLK - case EDEADLK: return MA_DEADLOCK; - #endif - #ifdef ENAMETOOLONG - case ENAMETOOLONG: return MA_PATH_TOO_LONG; - #endif - #ifdef ENOLCK - case ENOLCK: return MA_ERROR; - #endif - #ifdef ENOSYS - case ENOSYS: return MA_NOT_IMPLEMENTED; - #endif - #ifdef ENOTEMPTY - case ENOTEMPTY: return MA_DIRECTORY_NOT_EMPTY; - #endif - #ifdef ELOOP - case ELOOP: return MA_TOO_MANY_LINKS; - #endif - #ifdef ENOMSG - case ENOMSG: return MA_NO_MESSAGE; - #endif - #ifdef EIDRM - case EIDRM: return MA_ERROR; - #endif - #ifdef ECHRNG - case ECHRNG: return MA_ERROR; - #endif - #ifdef EL2NSYNC - case EL2NSYNC: return MA_ERROR; - #endif - #ifdef EL3HLT - case EL3HLT: return MA_ERROR; - #endif - #ifdef EL3RST - case EL3RST: return MA_ERROR; - #endif - #ifdef ELNRNG - case ELNRNG: return MA_OUT_OF_RANGE; - #endif - #ifdef EUNATCH - case EUNATCH: return MA_ERROR; - #endif - #ifdef ENOCSI - case ENOCSI: return MA_ERROR; - #endif - #ifdef EL2HLT - case EL2HLT: return MA_ERROR; - #endif - #ifdef EBADE - case EBADE: return MA_ERROR; - #endif - #ifdef EBADR - case EBADR: return MA_ERROR; - #endif - #ifdef EXFULL - case EXFULL: return MA_ERROR; - #endif - #ifdef ENOANO - case ENOANO: return MA_ERROR; - #endif - #ifdef EBADRQC - case EBADRQC: return MA_ERROR; - #endif - #ifdef EBADSLT - case EBADSLT: return MA_ERROR; - #endif - #ifdef EBFONT - case EBFONT: return MA_INVALID_FILE; - #endif - #ifdef ENOSTR - case ENOSTR: return MA_ERROR; - #endif - #ifdef ENODATA - case ENODATA: return MA_NO_DATA_AVAILABLE; - #endif - #ifdef ETIME - case ETIME: return MA_TIMEOUT; - #endif - #ifdef ENOSR - case ENOSR: return MA_NO_DATA_AVAILABLE; - #endif - #ifdef ENONET - case ENONET: return MA_NO_NETWORK; - #endif - #ifdef ENOPKG - case ENOPKG: return MA_ERROR; - #endif - #ifdef EREMOTE - case EREMOTE: return MA_ERROR; - #endif - #ifdef ENOLINK - case ENOLINK: return MA_ERROR; - #endif - #ifdef EADV - case EADV: return MA_ERROR; - #endif - #ifdef ESRMNT - case ESRMNT: return MA_ERROR; - #endif - #ifdef ECOMM - case ECOMM: return MA_ERROR; - #endif - #ifdef EPROTO - case EPROTO: return MA_ERROR; - #endif - #ifdef EMULTIHOP - case EMULTIHOP: return MA_ERROR; - #endif - #ifdef EDOTDOT - case EDOTDOT: return MA_ERROR; - #endif - #ifdef EBADMSG - case EBADMSG: return MA_BAD_MESSAGE; - #endif - #ifdef EOVERFLOW - case EOVERFLOW: return MA_TOO_BIG; - #endif - #ifdef ENOTUNIQ - case ENOTUNIQ: return MA_NOT_UNIQUE; - #endif - #ifdef EBADFD - case EBADFD: return MA_ERROR; - #endif - #ifdef EREMCHG - case EREMCHG: return MA_ERROR; - #endif - #ifdef ELIBACC - case ELIBACC: return MA_ACCESS_DENIED; - #endif - #ifdef ELIBBAD - case ELIBBAD: return MA_INVALID_FILE; - #endif - #ifdef ELIBSCN - case ELIBSCN: return MA_INVALID_FILE; - #endif - #ifdef ELIBMAX - case ELIBMAX: return MA_ERROR; - #endif - #ifdef ELIBEXEC - case ELIBEXEC: return MA_ERROR; - #endif - #ifdef EILSEQ - case EILSEQ: return MA_INVALID_DATA; - #endif - #ifdef ERESTART - case ERESTART: return MA_ERROR; - #endif - #ifdef ESTRPIPE - case ESTRPIPE: return MA_ERROR; - #endif - #ifdef EUSERS - case EUSERS: return MA_ERROR; - #endif - #ifdef ENOTSOCK - case ENOTSOCK: return MA_NOT_SOCKET; - #endif - #ifdef EDESTADDRREQ - case EDESTADDRREQ: return MA_NO_ADDRESS; - #endif - #ifdef EMSGSIZE - case EMSGSIZE: return MA_TOO_BIG; - #endif - #ifdef EPROTOTYPE - case EPROTOTYPE: return MA_BAD_PROTOCOL; - #endif - #ifdef ENOPROTOOPT - case ENOPROTOOPT: return MA_PROTOCOL_UNAVAILABLE; - #endif - #ifdef EPROTONOSUPPORT - case EPROTONOSUPPORT: return MA_PROTOCOL_NOT_SUPPORTED; - #endif - #ifdef ESOCKTNOSUPPORT - case ESOCKTNOSUPPORT: return MA_SOCKET_NOT_SUPPORTED; - #endif - #ifdef EOPNOTSUPP - case EOPNOTSUPP: return MA_INVALID_OPERATION; - #endif - #ifdef EPFNOSUPPORT - case EPFNOSUPPORT: return MA_PROTOCOL_FAMILY_NOT_SUPPORTED; - #endif - #ifdef EAFNOSUPPORT - case EAFNOSUPPORT: return MA_ADDRESS_FAMILY_NOT_SUPPORTED; - #endif - #ifdef EADDRINUSE - case EADDRINUSE: return MA_ALREADY_IN_USE; - #endif - #ifdef EADDRNOTAVAIL - case EADDRNOTAVAIL: return MA_ERROR; - #endif - #ifdef ENETDOWN - case ENETDOWN: return MA_NO_NETWORK; - #endif - #ifdef ENETUNREACH - case ENETUNREACH: return MA_NO_NETWORK; - #endif - #ifdef ENETRESET - case ENETRESET: return MA_NO_NETWORK; - #endif - #ifdef ECONNABORTED - case ECONNABORTED: return MA_NO_NETWORK; - #endif - #ifdef ECONNRESET - case ECONNRESET: return MA_CONNECTION_RESET; - #endif - #ifdef ENOBUFS - case ENOBUFS: return MA_NO_SPACE; - #endif - #ifdef EISCONN - case EISCONN: return MA_ALREADY_CONNECTED; - #endif - #ifdef ENOTCONN - case ENOTCONN: return MA_NOT_CONNECTED; - #endif - #ifdef ESHUTDOWN - case ESHUTDOWN: return MA_ERROR; - #endif - #ifdef ETOOMANYREFS - case ETOOMANYREFS: return MA_ERROR; - #endif - #ifdef ETIMEDOUT - case ETIMEDOUT: return MA_TIMEOUT; - #endif - #ifdef ECONNREFUSED - case ECONNREFUSED: return MA_CONNECTION_REFUSED; - #endif - #ifdef EHOSTDOWN - case EHOSTDOWN: return MA_NO_HOST; - #endif - #ifdef EHOSTUNREACH - case EHOSTUNREACH: return MA_NO_HOST; - #endif - #ifdef EALREADY - case EALREADY: return MA_IN_PROGRESS; - #endif - #ifdef EINPROGRESS - case EINPROGRESS: return MA_IN_PROGRESS; - #endif - #ifdef ESTALE - case ESTALE: return MA_INVALID_FILE; - #endif - #ifdef EUCLEAN - case EUCLEAN: return MA_ERROR; - #endif - #ifdef ENOTNAM - case ENOTNAM: return MA_ERROR; - #endif - #ifdef ENAVAIL - case ENAVAIL: return MA_ERROR; - #endif - #ifdef EISNAM - case EISNAM: return MA_ERROR; - #endif - #ifdef EREMOTEIO - case EREMOTEIO: return MA_IO_ERROR; - #endif - #ifdef EDQUOT - case EDQUOT: return MA_NO_SPACE; - #endif - #ifdef ENOMEDIUM - case ENOMEDIUM: return MA_DOES_NOT_EXIST; - #endif - #ifdef EMEDIUMTYPE - case EMEDIUMTYPE: return MA_ERROR; - #endif - #ifdef ECANCELED - case ECANCELED: return MA_CANCELLED; - #endif - #ifdef ENOKEY - case ENOKEY: return MA_ERROR; - #endif - #ifdef EKEYEXPIRED - case EKEYEXPIRED: return MA_ERROR; - #endif - #ifdef EKEYREVOKED - case EKEYREVOKED: return MA_ERROR; - #endif - #ifdef EKEYREJECTED - case EKEYREJECTED: return MA_ERROR; - #endif - #ifdef EOWNERDEAD - case EOWNERDEAD: return MA_ERROR; - #endif - #ifdef ENOTRECOVERABLE - case ENOTRECOVERABLE: return MA_ERROR; - #endif - #ifdef ERFKILL - case ERFKILL: return MA_ERROR; - #endif - #ifdef EHWPOISON - case EHWPOISON: return MA_ERROR; - #endif - default: return MA_ERROR; + if (e == 0) { + return MA_SUCCESS; + } +#ifdef EPERM + else if (e == EPERM) { return MA_INVALID_OPERATION; } +#endif +#ifdef ENOENT + else if (e == ENOENT) { return MA_DOES_NOT_EXIST; } +#endif +#ifdef ESRCH + else if (e == ESRCH) { return MA_DOES_NOT_EXIST; } +#endif +#ifdef EINTR + else if (e == EINTR) { return MA_INTERRUPT; } +#endif +#ifdef EIO + else if (e == EIO) { return MA_IO_ERROR; } +#endif +#ifdef ENXIO + else if (e == ENXIO) { return MA_DOES_NOT_EXIST; } +#endif +#ifdef E2BIG + else if (e == E2BIG) { return MA_INVALID_ARGS; } +#endif +#ifdef ENOEXEC + else if (e == ENOEXEC) { return MA_INVALID_FILE; } +#endif +#ifdef EBADF + else if (e == EBADF) { return MA_INVALID_FILE; } +#endif +#ifdef ECHILD + else if (e == ECHILD) { return MA_ERROR; } +#endif +#ifdef EAGAIN + else if (e == EAGAIN) { return MA_UNAVAILABLE; } +#endif +#ifdef ENOMEM + else if (e == ENOMEM) { return MA_OUT_OF_MEMORY; } +#endif +#ifdef EACCES + else if (e == EACCES) { return MA_ACCESS_DENIED; } +#endif +#ifdef EFAULT + else if (e == EFAULT) { return MA_BAD_ADDRESS; } +#endif +#ifdef ENOTBLK + else if (e == ENOTBLK) { return MA_ERROR; } +#endif +#ifdef EBUSY + else if (e == EBUSY) { return MA_BUSY; } +#endif +#ifdef EEXIST + else if (e == EEXIST) { return MA_ALREADY_EXISTS; } +#endif +#ifdef EXDEV + else if (e == EXDEV) { return MA_ERROR; } +#endif +#ifdef ENODEV + else if (e == ENODEV) { return MA_DOES_NOT_EXIST; } +#endif +#ifdef ENOTDIR + else if (e == ENOTDIR) { return MA_NOT_DIRECTORY; } +#endif +#ifdef EISDIR + else if (e == EISDIR) { return MA_IS_DIRECTORY; } +#endif +#ifdef EINVAL + else if (e == EINVAL) { return MA_INVALID_ARGS; } +#endif +#ifdef ENFILE + else if (e == ENFILE) { return MA_TOO_MANY_OPEN_FILES; } +#endif +#ifdef EMFILE + else if (e == EMFILE) { return MA_TOO_MANY_OPEN_FILES; } +#endif +#ifdef ENOTTY + else if (e == ENOTTY) { return MA_INVALID_OPERATION; } +#endif +#ifdef ETXTBSY + else if (e == ETXTBSY) { return MA_BUSY; } +#endif +#ifdef EFBIG + else if (e == EFBIG) { return MA_TOO_BIG; } +#endif +#ifdef ENOSPC + else if (e == ENOSPC) { return MA_NO_SPACE; } +#endif +#ifdef ESPIPE + else if (e == ESPIPE) { return MA_BAD_SEEK; } +#endif +#ifdef EROFS + else if (e == EROFS) { return MA_ACCESS_DENIED; } +#endif +#ifdef EMLINK + else if (e == EMLINK) { return MA_TOO_MANY_LINKS; } +#endif +#ifdef EPIPE + else if (e == EPIPE) { return MA_BAD_PIPE; } +#endif +#ifdef EDOM + else if (e == EDOM) { return MA_OUT_OF_RANGE; } +#endif +#ifdef ERANGE + else if (e == ERANGE) { return MA_OUT_OF_RANGE; } +#endif +#ifdef EDEADLK + else if (e == EDEADLK) { return MA_DEADLOCK; } +#endif +#ifdef ENAMETOOLONG + else if (e == ENAMETOOLONG) { return MA_PATH_TOO_LONG; } +#endif +#ifdef ENOLCK + else if (e == ENOLCK) { return MA_ERROR; } +#endif +#ifdef ENOSYS + else if (e == ENOSYS) { return MA_NOT_IMPLEMENTED; } +#endif +#ifdef ENOTEMPTY + else if (e == ENOTEMPTY) { return MA_DIRECTORY_NOT_EMPTY; } +#endif +#ifdef ELOOP + else if (e == ELOOP) { return MA_TOO_MANY_LINKS; } +#endif +#ifdef ENOMSG + else if (e == ENOMSG) { return MA_NO_MESSAGE; } +#endif +#ifdef EIDRM + else if (e == EIDRM) { return MA_ERROR; } +#endif +#ifdef ECHRNG + else if (e == ECHRNG) { return MA_ERROR; } +#endif +#ifdef EL2NSYNC + else if (e == EL2NSYNC) { return MA_ERROR; } +#endif +#ifdef EL3HLT + else if (e == EL3HLT) { return MA_ERROR; } +#endif +#ifdef EL3RST + else if (e == EL3RST) { return MA_ERROR; } +#endif +#ifdef ELNRNG + else if (e == ELNRNG) { return MA_OUT_OF_RANGE; } +#endif +#ifdef EUNATCH + else if (e == EUNATCH) { return MA_ERROR; } +#endif +#ifdef ENOCSI + else if (e == ENOCSI) { return MA_ERROR; } +#endif +#ifdef EL2HLT + else if (e == EL2HLT) { return MA_ERROR; } +#endif +#ifdef EBADE + else if (e == EBADE) { return MA_ERROR; } +#endif +#ifdef EBADR + else if (e == EBADR) { return MA_ERROR; } +#endif +#ifdef EXFULL + else if (e == EXFULL) { return MA_ERROR; } +#endif +#ifdef ENOANO + else if (e == ENOANO) { return MA_ERROR; } +#endif +#ifdef EBADRQC + else if (e == EBADRQC) { return MA_ERROR; } +#endif +#ifdef EBADSLT + else if (e == EBADSLT) { return MA_ERROR; } +#endif +#ifdef EBFONT + else if (e == EBFONT) { return MA_INVALID_FILE; } +#endif +#ifdef ENOSTR + else if (e == ENOSTR) { return MA_ERROR; } +#endif +#ifdef ENODATA + else if (e == ENODATA) { return MA_NO_DATA_AVAILABLE; } +#endif +#ifdef ETIME + else if (e == ETIME) { return MA_TIMEOUT; } +#endif +#ifdef ENOSR + else if (e == ENOSR) { return MA_NO_DATA_AVAILABLE; } +#endif +#ifdef ENONET + else if (e == ENONET) { return MA_NO_NETWORK; } +#endif +#ifdef ENOPKG + else if (e == ENOPKG) { return MA_ERROR; } +#endif +#ifdef EREMOTE + else if (e == EREMOTE) { return MA_ERROR; } +#endif +#ifdef ENOLINK + else if (e == ENOLINK) { return MA_ERROR; } +#endif +#ifdef EADV + else if (e == EADV) { return MA_ERROR; } +#endif +#ifdef ESRMNT + else if (e == ESRMNT) { return MA_ERROR; } +#endif +#ifdef ECOMM + else if (e == ECOMM) { return MA_ERROR; } +#endif +#ifdef EPROTO + else if (e == EPROTO) { return MA_ERROR; } +#endif +#ifdef EMULTIHOP + else if (e == EMULTIHOP) { return MA_ERROR; } +#endif +#ifdef EDOTDOT + else if (e == EDOTDOT) { return MA_ERROR; } +#endif +#ifdef EBADMSG + else if (e == EBADMSG) { return MA_BAD_MESSAGE; } +#endif +#ifdef EOVERFLOW + else if (e == EOVERFLOW) { return MA_TOO_BIG; } +#endif +#ifdef ENOTUNIQ + else if (e == ENOTUNIQ) { return MA_NOT_UNIQUE; } +#endif +#ifdef EBADFD + else if (e == EBADFD) { return MA_ERROR; } +#endif +#ifdef EREMCHG + else if (e == EREMCHG) { return MA_ERROR; } +#endif +#ifdef ELIBACC + else if (e == ELIBACC) { return MA_ACCESS_DENIED; } +#endif +#ifdef ELIBBAD + else if (e == ELIBBAD) { return MA_INVALID_FILE; } +#endif +#ifdef ELIBSCN + else if (e == ELIBSCN) { return MA_INVALID_FILE; } +#endif +#ifdef ELIBMAX + else if (e == ELIBMAX) { return MA_ERROR; } +#endif +#ifdef ELIBEXEC + else if (e == ELIBEXEC) { return MA_ERROR; } +#endif +#ifdef EILSEQ + else if (e == EILSEQ) { return MA_INVALID_DATA; } +#endif +#ifdef ERESTART + else if (e == ERESTART) { return MA_ERROR; } +#endif +#ifdef ESTRPIPE + else if (e == ESTRPIPE) { return MA_ERROR; } +#endif +#ifdef EUSERS + else if (e == EUSERS) { return MA_ERROR; } +#endif +#ifdef ENOTSOCK + else if (e == ENOTSOCK) { return MA_NOT_SOCKET; } +#endif +#ifdef EDESTADDRREQ + else if (e == EDESTADDRREQ) { return MA_NO_ADDRESS; } +#endif +#ifdef EMSGSIZE + else if (e == EMSGSIZE) { return MA_TOO_BIG; } +#endif +#ifdef EPROTOTYPE + else if (e == EPROTOTYPE) { return MA_BAD_PROTOCOL; } +#endif +#ifdef ENOPROTOOPT + else if (e == ENOPROTOOPT) { return MA_PROTOCOL_UNAVAILABLE; } +#endif +#ifdef EPROTONOSUPPORT + else if (e == EPROTONOSUPPORT) { return MA_PROTOCOL_NOT_SUPPORTED; } +#endif +#ifdef ESOCKTNOSUPPORT + else if (e == ESOCKTNOSUPPORT) { return MA_SOCKET_NOT_SUPPORTED; } +#endif +#ifdef EOPNOTSUPP + else if (e == EOPNOTSUPP) { return MA_INVALID_OPERATION; } +#endif +#ifdef EPFNOSUPPORT + else if (e == EPFNOSUPPORT) { return MA_PROTOCOL_FAMILY_NOT_SUPPORTED; } +#endif +#ifdef EAFNOSUPPORT + else if (e == EAFNOSUPPORT) { return MA_ADDRESS_FAMILY_NOT_SUPPORTED; } +#endif +#ifdef EADDRINUSE + else if (e == EADDRINUSE) { return MA_ALREADY_IN_USE; } +#endif +#ifdef EADDRNOTAVAIL + else if (e == EADDRNOTAVAIL) { return MA_ERROR; } +#endif +#ifdef ENETDOWN + else if (e == ENETDOWN) { return MA_NO_NETWORK; } +#endif +#ifdef ENETUNREACH + else if (e == ENETUNREACH) { return MA_NO_NETWORK; } +#endif +#ifdef ENETRESET + else if (e == ENETRESET) { return MA_NO_NETWORK; } +#endif +#ifdef ECONNABORTED + else if (e == ECONNABORTED) { return MA_NO_NETWORK; } +#endif +#ifdef ECONNRESET + else if (e == ECONNRESET) { return MA_CONNECTION_RESET; } +#endif +#ifdef ENOBUFS + else if (e == ENOBUFS) { return MA_NO_SPACE; } +#endif +#ifdef EISCONN + else if (e == EISCONN) { return MA_ALREADY_CONNECTED; } +#endif +#ifdef ENOTCONN + else if (e == ENOTCONN) { return MA_NOT_CONNECTED; } +#endif +#ifdef ESHUTDOWN + else if (e == ESHUTDOWN) { return MA_ERROR; } +#endif +#ifdef ETOOMANYREFS + else if (e == ETOOMANYREFS) { return MA_ERROR; } +#endif +#ifdef ETIMEDOUT + else if (e == ETIMEDOUT) { return MA_TIMEOUT; } +#endif +#ifdef ECONNREFUSED + else if (e == ECONNREFUSED) { return MA_CONNECTION_REFUSED; } +#endif +#ifdef EHOSTDOWN + else if (e == EHOSTDOWN) { return MA_NO_HOST; } +#endif +#ifdef EHOSTUNREACH + else if (e == EHOSTUNREACH) { return MA_NO_HOST; } +#endif +#ifdef EALREADY + else if (e == EALREADY) { return MA_IN_PROGRESS; } +#endif +#ifdef EINPROGRESS + else if (e == EINPROGRESS) { return MA_IN_PROGRESS; } +#endif +#ifdef ESTALE + else if (e == ESTALE) { return MA_INVALID_FILE; } +#endif +#ifdef EUCLEAN + else if (e == EUCLEAN) { return MA_ERROR; } +#endif +#ifdef ENOTNAM + else if (e == ENOTNAM) { return MA_ERROR; } +#endif +#ifdef ENAVAIL + else if (e == ENAVAIL) { return MA_ERROR; } +#endif +#ifdef EISNAM + else if (e == EISNAM) { return MA_ERROR; } +#endif +#ifdef EREMOTEIO + else if (e == EREMOTEIO) { return MA_IO_ERROR; } +#endif +#ifdef EDQUOT + else if (e == EDQUOT) { return MA_NO_SPACE; } +#endif +#ifdef ENOMEDIUM + else if (e == ENOMEDIUM) { return MA_DOES_NOT_EXIST; } +#endif +#ifdef EMEDIUMTYPE + else if (e == EMEDIUMTYPE) { return MA_ERROR; } +#endif +#ifdef ECANCELED + else if (e == ECANCELED) { return MA_CANCELLED; } +#endif +#ifdef ENOKEY + else if (e == ENOKEY) { return MA_ERROR; } +#endif +#ifdef EKEYEXPIRED + else if (e == EKEYEXPIRED) { return MA_ERROR; } +#endif +#ifdef EKEYREVOKED + else if (e == EKEYREVOKED) { return MA_ERROR; } +#endif +#ifdef EKEYREJECTED + else if (e == EKEYREJECTED) { return MA_ERROR; } +#endif +#ifdef EOWNERDEAD + else if (e == EOWNERDEAD) { return MA_ERROR; } +#endif +#ifdef ENOTRECOVERABLE + else if (e == ENOTRECOVERABLE) { return MA_ERROR; } +#endif +#ifdef ERFKILL + else if (e == ERFKILL) { return MA_ERROR; } +#endif +#ifdef EHWPOISON + else if (e == EHWPOISON) { return MA_ERROR; } +#endif + else { + return MA_ERROR; } } @@ -12969,6 +13414,9 @@ MA_API const char* ma_log_level_to_string(ma_uint32 logLevel) } #if defined(MA_DEBUG_OUTPUT) +#if defined(MA_ANDROID) + #include +#endif /* Customize this to use a specific tag in __android_log_print() for debug output messages. */ #ifndef MA_ANDROID_LOG_TAG @@ -13187,7 +13635,7 @@ MA_API ma_result ma_log_postv(ma_log* pLog, ma_uint32 level, const char* pFormat return MA_INVALID_ARGS; } - #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || ((!defined(_MSC_VER) || _MSC_VER >= 1900) && !defined(__STRICT_ANSI__) && !defined(_NO_EXT_KEYS)) + #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || ((!defined(_MSC_VER) || _MSC_VER >= 1900) && !defined(__STRICT_ANSI__) && !defined(_NO_EXT_KEYS)) || (defined(__cplusplus) && __cplusplus >= 201103L) { ma_result result; int length; @@ -13197,7 +13645,7 @@ MA_API ma_result ma_log_postv(ma_log* pLog, ma_uint32 level, const char* pFormat /* First try formatting into our fixed sized stack allocated buffer. If this is too small we'll fallback to a heap allocation. */ length = vsnprintf(pFormattedMessageStack, sizeof(pFormattedMessageStack), pFormat, args); if (length < 0) { - return MA_INVALID_OPERATION; /* An error occured when trying to convert the buffer. */ + return MA_INVALID_OPERATION; /* An error occurred when trying to convert the buffer. */ } if ((size_t)length < sizeof(pFormattedMessageStack)) { @@ -13576,109 +14024,95 @@ static MA_INLINE ma_int32 ma_dither_s32(ma_dither_mode ditherMode, ma_int32 dith Atomics **************************************************************************************************************************************************************/ -/* c89atomic.h begin */ -#ifndef c89atomic_h -#define c89atomic_h +/* ma_atomic.h begin */ +#ifndef ma_atomic_h #if defined(__cplusplus) extern "C" { #endif -typedef signed char c89atomic_int8; -typedef unsigned char c89atomic_uint8; -typedef signed short c89atomic_int16; -typedef unsigned short c89atomic_uint16; -typedef signed int c89atomic_int32; -typedef unsigned int c89atomic_uint32; -#if defined(_MSC_VER) && !defined(__clang__) - typedef signed __int64 c89atomic_int64; - typedef unsigned __int64 c89atomic_uint64; -#else - #if defined(__clang__) || (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))) - #pragma GCC diagnostic push - #pragma GCC diagnostic ignored "-Wlong-long" - #if defined(__clang__) - #pragma GCC diagnostic ignored "-Wc++11-long-long" - #endif - #endif - typedef signed long long c89atomic_int64; - typedef unsigned long long c89atomic_uint64; - #if defined(__clang__) || (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))) - #pragma GCC diagnostic pop +#if defined(__clang__) || (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))) + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wlong-long" + #if defined(__clang__) + #pragma GCC diagnostic ignored "-Wc++11-long-long" #endif #endif -typedef int c89atomic_memory_order; -typedef unsigned char c89atomic_bool; -#if !defined(C89ATOMIC_64BIT) && !defined(C89ATOMIC_32BIT) -#ifdef _WIN32 -#ifdef _WIN64 -#define C89ATOMIC_64BIT -#else -#define C89ATOMIC_32BIT -#endif -#endif -#endif -#if !defined(C89ATOMIC_64BIT) && !defined(C89ATOMIC_32BIT) -#ifdef __GNUC__ -#ifdef __LP64__ -#define C89ATOMIC_64BIT -#else -#define C89ATOMIC_32BIT -#endif -#endif -#endif -#if !defined(C89ATOMIC_64BIT) && !defined(C89ATOMIC_32BIT) -#include -#if INTPTR_MAX == INT64_MAX -#define C89ATOMIC_64BIT -#else -#define C89ATOMIC_32BIT -#endif -#endif -#if defined(__x86_64__) || defined(_M_X64) -#define C89ATOMIC_X64 -#elif defined(__i386) || defined(_M_IX86) -#define C89ATOMIC_X86 -#elif defined(__arm__) || defined(_M_ARM) || defined(__arm64) || defined(__arm64__) || defined(__aarch64__) || defined(_M_ARM64) -#define C89ATOMIC_ARM -#endif -#if defined(_MSC_VER) - #define C89ATOMIC_INLINE __forceinline -#elif defined(__GNUC__) - #if defined(__STRICT_ANSI__) - #define C89ATOMIC_INLINE __inline__ __attribute__((always_inline)) - #else - #define C89ATOMIC_INLINE inline __attribute__((always_inline)) - #endif -#elif defined(__WATCOMC__) || defined(__DMC__) - #define C89ATOMIC_INLINE __inline -#else - #define C89ATOMIC_INLINE -#endif -#define C89ATOMIC_HAS_8 -#define C89ATOMIC_HAS_16 -#define C89ATOMIC_HAS_32 -#define C89ATOMIC_HAS_64 +typedef int ma_atomic_memory_order; +#define MA_ATOMIC_HAS_8 +#define MA_ATOMIC_HAS_16 +#define MA_ATOMIC_HAS_32 +#define MA_ATOMIC_HAS_64 #if (defined(_MSC_VER) ) || defined(__WATCOMC__) || defined(__DMC__) - #define c89atomic_memory_order_relaxed 0 - #define c89atomic_memory_order_consume 1 - #define c89atomic_memory_order_acquire 2 - #define c89atomic_memory_order_release 3 - #define c89atomic_memory_order_acq_rel 4 - #define c89atomic_memory_order_seq_cst 5 - #if _MSC_VER < 1600 && defined(C89ATOMIC_X86) - #define C89ATOMIC_MSVC_USE_INLINED_ASSEMBLY + #define MA_ATOMIC_MSVC_ARM_INTRINSIC(dst, src, order, intrin, ma_atomicType, msvcType) \ + ma_atomicType result; \ + switch (order) \ + { \ + case ma_atomic_memory_order_relaxed: \ + { \ + result = (ma_atomicType)intrin##_nf((volatile msvcType*)dst, (msvcType)src); \ + } break; \ + case ma_atomic_memory_order_consume: \ + case ma_atomic_memory_order_acquire: \ + { \ + result = (ma_atomicType)intrin##_acq((volatile msvcType*)dst, (msvcType)src); \ + } break; \ + case ma_atomic_memory_order_release: \ + { \ + result = (ma_atomicType)intrin##_rel((volatile msvcType*)dst, (msvcType)src); \ + } break; \ + case ma_atomic_memory_order_acq_rel: \ + case ma_atomic_memory_order_seq_cst: \ + default: \ + { \ + result = (ma_atomicType)intrin((volatile msvcType*)dst, (msvcType)src); \ + } break; \ + } \ + return result; + #define MA_ATOMIC_MSVC_ARM_INTRINSIC_COMPARE_EXCHANGE(ptr, expected, desired, order, intrin, ma_atomicType, msvcType) \ + ma_atomicType result; \ + switch (order) \ + { \ + case ma_atomic_memory_order_relaxed: \ + { \ + result = (ma_atomicType)intrin##_nf((volatile msvcType*)ptr, (msvcType)expected, (msvcType)desired); \ + } break; \ + case ma_atomic_memory_order_consume: \ + case ma_atomic_memory_order_acquire: \ + { \ + result = (ma_atomicType)intrin##_acq((volatile msvcType*)ptr, (msvcType)expected, (msvcType)desired); \ + } break; \ + case ma_atomic_memory_order_release: \ + { \ + result = (ma_atomicType)intrin##_rel((volatile msvcType*)ptr, (msvcType)expected, (msvcType)desired); \ + } break; \ + case ma_atomic_memory_order_acq_rel: \ + case ma_atomic_memory_order_seq_cst: \ + default: \ + { \ + result = (ma_atomicType)intrin((volatile msvcType*)ptr, (msvcType)expected, (msvcType)desired); \ + } break; \ + } \ + return result; + #define ma_atomic_memory_order_relaxed 0 + #define ma_atomic_memory_order_consume 1 + #define ma_atomic_memory_order_acquire 2 + #define ma_atomic_memory_order_release 3 + #define ma_atomic_memory_order_acq_rel 4 + #define ma_atomic_memory_order_seq_cst 5 + #if _MSC_VER < 1600 && defined(MA_X86) + #define MA_ATOMIC_MSVC_USE_INLINED_ASSEMBLY #endif #if _MSC_VER < 1600 - #undef C89ATOMIC_HAS_8 - #undef C89ATOMIC_HAS_16 + #undef MA_ATOMIC_HAS_8 + #undef MA_ATOMIC_HAS_16 #endif - #if !defined(C89ATOMIC_MSVC_USE_INLINED_ASSEMBLY) + #if !defined(MA_ATOMIC_MSVC_USE_INLINED_ASSEMBLY) #include #endif - #if defined(C89ATOMIC_MSVC_USE_INLINED_ASSEMBLY) - #if defined(C89ATOMIC_HAS_8) - static C89ATOMIC_INLINE c89atomic_uint8 __stdcall c89atomic_compare_and_swap_8(volatile c89atomic_uint8* dst, c89atomic_uint8 expected, c89atomic_uint8 desired) + #if defined(MA_ATOMIC_MSVC_USE_INLINED_ASSEMBLY) + #if defined(MA_ATOMIC_HAS_8) + static MA_INLINE ma_uint8 __stdcall ma_atomic_compare_and_swap_8(volatile ma_uint8* dst, ma_uint8 expected, ma_uint8 desired) { - c89atomic_uint8 result = 0; + ma_uint8 result = 0; __asm { mov ecx, dst mov al, expected @@ -13689,10 +14123,10 @@ typedef unsigned char c89atomic_bool; return result; } #endif - #if defined(C89ATOMIC_HAS_16) - static C89ATOMIC_INLINE c89atomic_uint16 __stdcall c89atomic_compare_and_swap_16(volatile c89atomic_uint16* dst, c89atomic_uint16 expected, c89atomic_uint16 desired) + #if defined(MA_ATOMIC_HAS_16) + static MA_INLINE ma_uint16 __stdcall ma_atomic_compare_and_swap_16(volatile ma_uint16* dst, ma_uint16 expected, ma_uint16 desired) { - c89atomic_uint16 result = 0; + ma_uint16 result = 0; __asm { mov ecx, dst mov ax, expected @@ -13703,10 +14137,10 @@ typedef unsigned char c89atomic_bool; return result; } #endif - #if defined(C89ATOMIC_HAS_32) - static C89ATOMIC_INLINE c89atomic_uint32 __stdcall c89atomic_compare_and_swap_32(volatile c89atomic_uint32* dst, c89atomic_uint32 expected, c89atomic_uint32 desired) + #if defined(MA_ATOMIC_HAS_32) + static MA_INLINE ma_uint32 __stdcall ma_atomic_compare_and_swap_32(volatile ma_uint32* dst, ma_uint32 expected, ma_uint32 desired) { - c89atomic_uint32 result = 0; + ma_uint32 result = 0; __asm { mov ecx, dst mov eax, expected @@ -13717,11 +14151,11 @@ typedef unsigned char c89atomic_bool; return result; } #endif - #if defined(C89ATOMIC_HAS_64) - static C89ATOMIC_INLINE c89atomic_uint64 __stdcall c89atomic_compare_and_swap_64(volatile c89atomic_uint64* dst, c89atomic_uint64 expected, c89atomic_uint64 desired) + #if defined(MA_ATOMIC_HAS_64) + static MA_INLINE ma_uint64 __stdcall ma_atomic_compare_and_swap_64(volatile ma_uint64* dst, ma_uint64 expected, ma_uint64 desired) { - c89atomic_uint32 resultEAX = 0; - c89atomic_uint32 resultEDX = 0; + ma_uint32 resultEAX = 0; + ma_uint32 resultEDX = 0; __asm { mov esi, dst mov eax, dword ptr expected @@ -13732,28 +14166,28 @@ typedef unsigned char c89atomic_bool; mov resultEAX, eax mov resultEDX, edx } - return ((c89atomic_uint64)resultEDX << 32) | resultEAX; + return ((ma_uint64)resultEDX << 32) | resultEAX; } #endif #else - #if defined(C89ATOMIC_HAS_8) - #define c89atomic_compare_and_swap_8( dst, expected, desired) (c89atomic_uint8 )_InterlockedCompareExchange8((volatile char*)dst, (char)desired, (char)expected) + #if defined(MA_ATOMIC_HAS_8) + #define ma_atomic_compare_and_swap_8( dst, expected, desired) (ma_uint8 )_InterlockedCompareExchange8((volatile char*)dst, (char)desired, (char)expected) #endif - #if defined(C89ATOMIC_HAS_16) - #define c89atomic_compare_and_swap_16(dst, expected, desired) (c89atomic_uint16)_InterlockedCompareExchange16((volatile short*)dst, (short)desired, (short)expected) + #if defined(MA_ATOMIC_HAS_16) + #define ma_atomic_compare_and_swap_16(dst, expected, desired) (ma_uint16)_InterlockedCompareExchange16((volatile short*)dst, (short)desired, (short)expected) #endif - #if defined(C89ATOMIC_HAS_32) - #define c89atomic_compare_and_swap_32(dst, expected, desired) (c89atomic_uint32)_InterlockedCompareExchange((volatile long*)dst, (long)desired, (long)expected) + #if defined(MA_ATOMIC_HAS_32) + #define ma_atomic_compare_and_swap_32(dst, expected, desired) (ma_uint32)_InterlockedCompareExchange((volatile long*)dst, (long)desired, (long)expected) #endif - #if defined(C89ATOMIC_HAS_64) - #define c89atomic_compare_and_swap_64(dst, expected, desired) (c89atomic_uint64)_InterlockedCompareExchange64((volatile c89atomic_int64*)dst, (c89atomic_int64)desired, (c89atomic_int64)expected) + #if defined(MA_ATOMIC_HAS_64) + #define ma_atomic_compare_and_swap_64(dst, expected, desired) (ma_uint64)_InterlockedCompareExchange64((volatile ma_int64*)dst, (ma_int64)desired, (ma_int64)expected) #endif #endif - #if defined(C89ATOMIC_MSVC_USE_INLINED_ASSEMBLY) - #if defined(C89ATOMIC_HAS_8) - static C89ATOMIC_INLINE c89atomic_uint8 __stdcall c89atomic_exchange_explicit_8(volatile c89atomic_uint8* dst, c89atomic_uint8 src, c89atomic_memory_order order) + #if defined(MA_ATOMIC_MSVC_USE_INLINED_ASSEMBLY) + #if defined(MA_ATOMIC_HAS_8) + static MA_INLINE ma_uint8 __stdcall ma_atomic_exchange_explicit_8(volatile ma_uint8* dst, ma_uint8 src, ma_atomic_memory_order order) { - c89atomic_uint8 result = 0; + ma_uint8 result = 0; (void)order; __asm { mov ecx, dst @@ -13764,10 +14198,10 @@ typedef unsigned char c89atomic_bool; return result; } #endif - #if defined(C89ATOMIC_HAS_16) - static C89ATOMIC_INLINE c89atomic_uint16 __stdcall c89atomic_exchange_explicit_16(volatile c89atomic_uint16* dst, c89atomic_uint16 src, c89atomic_memory_order order) + #if defined(MA_ATOMIC_HAS_16) + static MA_INLINE ma_uint16 __stdcall ma_atomic_exchange_explicit_16(volatile ma_uint16* dst, ma_uint16 src, ma_atomic_memory_order order) { - c89atomic_uint16 result = 0; + ma_uint16 result = 0; (void)order; __asm { mov ecx, dst @@ -13778,10 +14212,10 @@ typedef unsigned char c89atomic_bool; return result; } #endif - #if defined(C89ATOMIC_HAS_32) - static C89ATOMIC_INLINE c89atomic_uint32 __stdcall c89atomic_exchange_explicit_32(volatile c89atomic_uint32* dst, c89atomic_uint32 src, c89atomic_memory_order order) + #if defined(MA_ATOMIC_HAS_32) + static MA_INLINE ma_uint32 __stdcall ma_atomic_exchange_explicit_32(volatile ma_uint32* dst, ma_uint32 src, ma_atomic_memory_order order) { - c89atomic_uint32 result = 0; + ma_uint32 result = 0; (void)order; __asm { mov ecx, dst @@ -13793,52 +14227,68 @@ typedef unsigned char c89atomic_bool; } #endif #else - #if defined(C89ATOMIC_HAS_8) - static C89ATOMIC_INLINE c89atomic_uint8 __stdcall c89atomic_exchange_explicit_8(volatile c89atomic_uint8* dst, c89atomic_uint8 src, c89atomic_memory_order order) + #if defined(MA_ATOMIC_HAS_8) + static MA_INLINE ma_uint8 __stdcall ma_atomic_exchange_explicit_8(volatile ma_uint8* dst, ma_uint8 src, ma_atomic_memory_order order) { + #if defined(MA_ARM) + MA_ATOMIC_MSVC_ARM_INTRINSIC(dst, src, order, _InterlockedExchange8, ma_uint8, char); + #else (void)order; - return (c89atomic_uint8)_InterlockedExchange8((volatile char*)dst, (char)src); + return (ma_uint8)_InterlockedExchange8((volatile char*)dst, (char)src); + #endif } #endif - #if defined(C89ATOMIC_HAS_16) - static C89ATOMIC_INLINE c89atomic_uint16 __stdcall c89atomic_exchange_explicit_16(volatile c89atomic_uint16* dst, c89atomic_uint16 src, c89atomic_memory_order order) + #if defined(MA_ATOMIC_HAS_16) + static MA_INLINE ma_uint16 __stdcall ma_atomic_exchange_explicit_16(volatile ma_uint16* dst, ma_uint16 src, ma_atomic_memory_order order) { + #if defined(MA_ARM) + MA_ATOMIC_MSVC_ARM_INTRINSIC(dst, src, order, _InterlockedExchange16, ma_uint16, short); + #else (void)order; - return (c89atomic_uint16)_InterlockedExchange16((volatile short*)dst, (short)src); + return (ma_uint16)_InterlockedExchange16((volatile short*)dst, (short)src); + #endif } #endif - #if defined(C89ATOMIC_HAS_32) - static C89ATOMIC_INLINE c89atomic_uint32 __stdcall c89atomic_exchange_explicit_32(volatile c89atomic_uint32* dst, c89atomic_uint32 src, c89atomic_memory_order order) + #if defined(MA_ATOMIC_HAS_32) + static MA_INLINE ma_uint32 __stdcall ma_atomic_exchange_explicit_32(volatile ma_uint32* dst, ma_uint32 src, ma_atomic_memory_order order) { + #if defined(MA_ARM) + MA_ATOMIC_MSVC_ARM_INTRINSIC(dst, src, order, _InterlockedExchange, ma_uint32, long); + #else (void)order; - return (c89atomic_uint32)_InterlockedExchange((volatile long*)dst, (long)src); + return (ma_uint32)_InterlockedExchange((volatile long*)dst, (long)src); + #endif } #endif - #if defined(C89ATOMIC_HAS_64) && defined(C89ATOMIC_64BIT) - static C89ATOMIC_INLINE c89atomic_uint64 __stdcall c89atomic_exchange_explicit_64(volatile c89atomic_uint64* dst, c89atomic_uint64 src, c89atomic_memory_order order) + #if defined(MA_ATOMIC_HAS_64) && defined(MA_64BIT) + static MA_INLINE ma_uint64 __stdcall ma_atomic_exchange_explicit_64(volatile ma_uint64* dst, ma_uint64 src, ma_atomic_memory_order order) { + #if defined(MA_ARM) + MA_ATOMIC_MSVC_ARM_INTRINSIC(dst, src, order, _InterlockedExchange64, ma_uint64, long long); + #else (void)order; - return (c89atomic_uint64)_InterlockedExchange64((volatile long long*)dst, (long long)src); + return (ma_uint64)_InterlockedExchange64((volatile long long*)dst, (long long)src); + #endif } #else #endif #endif - #if defined(C89ATOMIC_HAS_64) && !defined(C89ATOMIC_64BIT) - static C89ATOMIC_INLINE c89atomic_uint64 __stdcall c89atomic_exchange_explicit_64(volatile c89atomic_uint64* dst, c89atomic_uint64 src, c89atomic_memory_order order) + #if defined(MA_ATOMIC_HAS_64) && !defined(MA_64BIT) + static MA_INLINE ma_uint64 __stdcall ma_atomic_exchange_explicit_64(volatile ma_uint64* dst, ma_uint64 src, ma_atomic_memory_order order) { - c89atomic_uint64 oldValue; + ma_uint64 oldValue; do { oldValue = *dst; - } while (c89atomic_compare_and_swap_64(dst, oldValue, src) != oldValue); + } while (ma_atomic_compare_and_swap_64(dst, oldValue, src) != oldValue); (void)order; return oldValue; } #endif - #if defined(C89ATOMIC_MSVC_USE_INLINED_ASSEMBLY) - #if defined(C89ATOMIC_HAS_8) - static C89ATOMIC_INLINE c89atomic_uint8 __stdcall c89atomic_fetch_add_explicit_8(volatile c89atomic_uint8* dst, c89atomic_uint8 src, c89atomic_memory_order order) + #if defined(MA_ATOMIC_MSVC_USE_INLINED_ASSEMBLY) + #if defined(MA_ATOMIC_HAS_8) + static MA_INLINE ma_uint8 __stdcall ma_atomic_fetch_add_explicit_8(volatile ma_uint8* dst, ma_uint8 src, ma_atomic_memory_order order) { - c89atomic_uint8 result = 0; + ma_uint8 result = 0; (void)order; __asm { mov ecx, dst @@ -13849,10 +14299,10 @@ typedef unsigned char c89atomic_bool; return result; } #endif - #if defined(C89ATOMIC_HAS_16) - static C89ATOMIC_INLINE c89atomic_uint16 __stdcall c89atomic_fetch_add_explicit_16(volatile c89atomic_uint16* dst, c89atomic_uint16 src, c89atomic_memory_order order) + #if defined(MA_ATOMIC_HAS_16) + static MA_INLINE ma_uint16 __stdcall ma_atomic_fetch_add_explicit_16(volatile ma_uint16* dst, ma_uint16 src, ma_atomic_memory_order order) { - c89atomic_uint16 result = 0; + ma_uint16 result = 0; (void)order; __asm { mov ecx, dst @@ -13863,10 +14313,10 @@ typedef unsigned char c89atomic_bool; return result; } #endif - #if defined(C89ATOMIC_HAS_32) - static C89ATOMIC_INLINE c89atomic_uint32 __stdcall c89atomic_fetch_add_explicit_32(volatile c89atomic_uint32* dst, c89atomic_uint32 src, c89atomic_memory_order order) + #if defined(MA_ATOMIC_HAS_32) + static MA_INLINE ma_uint32 __stdcall ma_atomic_fetch_add_explicit_32(volatile ma_uint32* dst, ma_uint32 src, ma_atomic_memory_order order) { - c89atomic_uint32 result = 0; + ma_uint32 result = 0; (void)order; __asm { mov ecx, dst @@ -13878,51 +14328,67 @@ typedef unsigned char c89atomic_bool; } #endif #else - #if defined(C89ATOMIC_HAS_8) - static C89ATOMIC_INLINE c89atomic_uint8 __stdcall c89atomic_fetch_add_explicit_8(volatile c89atomic_uint8* dst, c89atomic_uint8 src, c89atomic_memory_order order) + #if defined(MA_ATOMIC_HAS_8) + static MA_INLINE ma_uint8 __stdcall ma_atomic_fetch_add_explicit_8(volatile ma_uint8* dst, ma_uint8 src, ma_atomic_memory_order order) { + #if defined(MA_ARM) + MA_ATOMIC_MSVC_ARM_INTRINSIC(dst, src, order, _InterlockedExchangeAdd8, ma_uint8, char); + #else (void)order; - return (c89atomic_uint8)_InterlockedExchangeAdd8((volatile char*)dst, (char)src); + return (ma_uint8)_InterlockedExchangeAdd8((volatile char*)dst, (char)src); + #endif } #endif - #if defined(C89ATOMIC_HAS_16) - static C89ATOMIC_INLINE c89atomic_uint16 __stdcall c89atomic_fetch_add_explicit_16(volatile c89atomic_uint16* dst, c89atomic_uint16 src, c89atomic_memory_order order) + #if defined(MA_ATOMIC_HAS_16) + static MA_INLINE ma_uint16 __stdcall ma_atomic_fetch_add_explicit_16(volatile ma_uint16* dst, ma_uint16 src, ma_atomic_memory_order order) { + #if defined(MA_ARM) + MA_ATOMIC_MSVC_ARM_INTRINSIC(dst, src, order, _InterlockedExchangeAdd16, ma_uint16, short); + #else (void)order; - return (c89atomic_uint16)_InterlockedExchangeAdd16((volatile short*)dst, (short)src); + return (ma_uint16)_InterlockedExchangeAdd16((volatile short*)dst, (short)src); + #endif } #endif - #if defined(C89ATOMIC_HAS_32) - static C89ATOMIC_INLINE c89atomic_uint32 __stdcall c89atomic_fetch_add_explicit_32(volatile c89atomic_uint32* dst, c89atomic_uint32 src, c89atomic_memory_order order) + #if defined(MA_ATOMIC_HAS_32) + static MA_INLINE ma_uint32 __stdcall ma_atomic_fetch_add_explicit_32(volatile ma_uint32* dst, ma_uint32 src, ma_atomic_memory_order order) { + #if defined(MA_ARM) + MA_ATOMIC_MSVC_ARM_INTRINSIC(dst, src, order, _InterlockedExchangeAdd, ma_uint32, long); + #else (void)order; - return (c89atomic_uint32)_InterlockedExchangeAdd((volatile long*)dst, (long)src); + return (ma_uint32)_InterlockedExchangeAdd((volatile long*)dst, (long)src); + #endif } #endif - #if defined(C89ATOMIC_HAS_64) && defined(C89ATOMIC_64BIT) - static C89ATOMIC_INLINE c89atomic_uint64 __stdcall c89atomic_fetch_add_explicit_64(volatile c89atomic_uint64* dst, c89atomic_uint64 src, c89atomic_memory_order order) + #if defined(MA_ATOMIC_HAS_64) && defined(MA_64BIT) + static MA_INLINE ma_uint64 __stdcall ma_atomic_fetch_add_explicit_64(volatile ma_uint64* dst, ma_uint64 src, ma_atomic_memory_order order) { + #if defined(MA_ARM) + MA_ATOMIC_MSVC_ARM_INTRINSIC(dst, src, order, _InterlockedExchangeAdd64, ma_uint64, long long); + #else (void)order; - return (c89atomic_uint64)_InterlockedExchangeAdd64((volatile long long*)dst, (long long)src); + return (ma_uint64)_InterlockedExchangeAdd64((volatile long long*)dst, (long long)src); + #endif } #else #endif #endif - #if defined(C89ATOMIC_HAS_64) && !defined(C89ATOMIC_64BIT) - static C89ATOMIC_INLINE c89atomic_uint64 __stdcall c89atomic_fetch_add_explicit_64(volatile c89atomic_uint64* dst, c89atomic_uint64 src, c89atomic_memory_order order) + #if defined(MA_ATOMIC_HAS_64) && !defined(MA_64BIT) + static MA_INLINE ma_uint64 __stdcall ma_atomic_fetch_add_explicit_64(volatile ma_uint64* dst, ma_uint64 src, ma_atomic_memory_order order) { - c89atomic_uint64 oldValue; - c89atomic_uint64 newValue; + ma_uint64 oldValue; + ma_uint64 newValue; do { oldValue = *dst; newValue = oldValue + src; - } while (c89atomic_compare_and_swap_64(dst, oldValue, newValue) != oldValue); + } while (ma_atomic_compare_and_swap_64(dst, oldValue, newValue) != oldValue); (void)order; return oldValue; } #endif - #if defined(C89ATOMIC_MSVC_USE_INLINED_ASSEMBLY) - static C89ATOMIC_INLINE void __stdcall c89atomic_thread_fence(c89atomic_memory_order order) + #if defined(MA_ATOMIC_MSVC_USE_INLINED_ASSEMBLY) + static MA_INLINE void __stdcall ma_atomic_thread_fence(ma_atomic_memory_order order) { (void)order; __asm { @@ -13930,985 +14396,1067 @@ typedef unsigned char c89atomic_bool; } } #else - #if defined(C89ATOMIC_X64) - #define c89atomic_thread_fence(order) __faststorefence(), (void)order + #if defined(MA_X64) + #define ma_atomic_thread_fence(order) __faststorefence(), (void)order + #elif defined(MA_ARM64) + #define ma_atomic_thread_fence(order) __dmb(_ARM64_BARRIER_ISH), (void)order #else - static C89ATOMIC_INLINE void c89atomic_thread_fence(c89atomic_memory_order order) + static MA_INLINE void ma_atomic_thread_fence(ma_atomic_memory_order order) { - volatile c89atomic_uint32 barrier = 0; - c89atomic_fetch_add_explicit_32(&barrier, 0, order); + volatile ma_uint32 barrier = 0; + ma_atomic_fetch_add_explicit_32(&barrier, 0, order); } #endif #endif - #define c89atomic_compiler_fence() c89atomic_thread_fence(c89atomic_memory_order_seq_cst) - #define c89atomic_signal_fence(order) c89atomic_thread_fence(order) - #if defined(C89ATOMIC_HAS_8) - static C89ATOMIC_INLINE c89atomic_uint8 c89atomic_load_explicit_8(volatile const c89atomic_uint8* ptr, c89atomic_memory_order order) + #define ma_atomic_compiler_fence() ma_atomic_thread_fence(ma_atomic_memory_order_seq_cst) + #define ma_atomic_signal_fence(order) ma_atomic_thread_fence(order) + #if defined(MA_ATOMIC_HAS_8) + static MA_INLINE ma_uint8 ma_atomic_load_explicit_8(volatile const ma_uint8* ptr, ma_atomic_memory_order order) { + #if defined(MA_ARM) + MA_ATOMIC_MSVC_ARM_INTRINSIC_COMPARE_EXCHANGE(ptr, 0, 0, order, _InterlockedCompareExchange8, ma_uint8, char); + #else (void)order; - return c89atomic_compare_and_swap_8((volatile c89atomic_uint8*)ptr, 0, 0); + return ma_atomic_compare_and_swap_8((volatile ma_uint8*)ptr, 0, 0); + #endif } #endif - #if defined(C89ATOMIC_HAS_16) - static C89ATOMIC_INLINE c89atomic_uint16 c89atomic_load_explicit_16(volatile const c89atomic_uint16* ptr, c89atomic_memory_order order) + #if defined(MA_ATOMIC_HAS_16) + static MA_INLINE ma_uint16 ma_atomic_load_explicit_16(volatile const ma_uint16* ptr, ma_atomic_memory_order order) { + #if defined(MA_ARM) + MA_ATOMIC_MSVC_ARM_INTRINSIC_COMPARE_EXCHANGE(ptr, 0, 0, order, _InterlockedCompareExchange16, ma_uint16, short); + #else (void)order; - return c89atomic_compare_and_swap_16((volatile c89atomic_uint16*)ptr, 0, 0); + return ma_atomic_compare_and_swap_16((volatile ma_uint16*)ptr, 0, 0); + #endif } #endif - #if defined(C89ATOMIC_HAS_32) - static C89ATOMIC_INLINE c89atomic_uint32 c89atomic_load_explicit_32(volatile const c89atomic_uint32* ptr, c89atomic_memory_order order) + #if defined(MA_ATOMIC_HAS_32) + static MA_INLINE ma_uint32 ma_atomic_load_explicit_32(volatile const ma_uint32* ptr, ma_atomic_memory_order order) { + #if defined(MA_ARM) + MA_ATOMIC_MSVC_ARM_INTRINSIC_COMPARE_EXCHANGE(ptr, 0, 0, order, _InterlockedCompareExchange, ma_uint32, long); + #else (void)order; - return c89atomic_compare_and_swap_32((volatile c89atomic_uint32*)ptr, 0, 0); + return ma_atomic_compare_and_swap_32((volatile ma_uint32*)ptr, 0, 0); + #endif } #endif - #if defined(C89ATOMIC_HAS_64) - static C89ATOMIC_INLINE c89atomic_uint64 c89atomic_load_explicit_64(volatile const c89atomic_uint64* ptr, c89atomic_memory_order order) + #if defined(MA_ATOMIC_HAS_64) + static MA_INLINE ma_uint64 ma_atomic_load_explicit_64(volatile const ma_uint64* ptr, ma_atomic_memory_order order) { + #if defined(MA_ARM) + MA_ATOMIC_MSVC_ARM_INTRINSIC_COMPARE_EXCHANGE(ptr, 0, 0, order, _InterlockedCompareExchange64, ma_uint64, long long); + #else (void)order; - return c89atomic_compare_and_swap_64((volatile c89atomic_uint64*)ptr, 0, 0); + return ma_atomic_compare_and_swap_64((volatile ma_uint64*)ptr, 0, 0); + #endif } #endif - #if defined(C89ATOMIC_HAS_8) - #define c89atomic_store_explicit_8( dst, src, order) (void)c89atomic_exchange_explicit_8 (dst, src, order) + #if defined(MA_ATOMIC_HAS_8) + #define ma_atomic_store_explicit_8( dst, src, order) (void)ma_atomic_exchange_explicit_8 (dst, src, order) #endif - #if defined(C89ATOMIC_HAS_16) - #define c89atomic_store_explicit_16(dst, src, order) (void)c89atomic_exchange_explicit_16(dst, src, order) + #if defined(MA_ATOMIC_HAS_16) + #define ma_atomic_store_explicit_16(dst, src, order) (void)ma_atomic_exchange_explicit_16(dst, src, order) #endif - #if defined(C89ATOMIC_HAS_32) - #define c89atomic_store_explicit_32(dst, src, order) (void)c89atomic_exchange_explicit_32(dst, src, order) + #if defined(MA_ATOMIC_HAS_32) + #define ma_atomic_store_explicit_32(dst, src, order) (void)ma_atomic_exchange_explicit_32(dst, src, order) #endif - #if defined(C89ATOMIC_HAS_64) - #define c89atomic_store_explicit_64(dst, src, order) (void)c89atomic_exchange_explicit_64(dst, src, order) + #if defined(MA_ATOMIC_HAS_64) + #define ma_atomic_store_explicit_64(dst, src, order) (void)ma_atomic_exchange_explicit_64(dst, src, order) #endif - #if defined(C89ATOMIC_HAS_8) - static C89ATOMIC_INLINE c89atomic_uint8 __stdcall c89atomic_fetch_sub_explicit_8(volatile c89atomic_uint8* dst, c89atomic_uint8 src, c89atomic_memory_order order) + #if defined(MA_ATOMIC_HAS_8) + static MA_INLINE ma_uint8 __stdcall ma_atomic_fetch_sub_explicit_8(volatile ma_uint8* dst, ma_uint8 src, ma_atomic_memory_order order) { - c89atomic_uint8 oldValue; - c89atomic_uint8 newValue; + ma_uint8 oldValue; + ma_uint8 newValue; do { oldValue = *dst; - newValue = (c89atomic_uint8)(oldValue - src); - } while (c89atomic_compare_and_swap_8(dst, oldValue, newValue) != oldValue); + newValue = (ma_uint8)(oldValue - src); + } while (ma_atomic_compare_and_swap_8(dst, oldValue, newValue) != oldValue); (void)order; return oldValue; } #endif - #if defined(C89ATOMIC_HAS_16) - static C89ATOMIC_INLINE c89atomic_uint16 __stdcall c89atomic_fetch_sub_explicit_16(volatile c89atomic_uint16* dst, c89atomic_uint16 src, c89atomic_memory_order order) + #if defined(MA_ATOMIC_HAS_16) + static MA_INLINE ma_uint16 __stdcall ma_atomic_fetch_sub_explicit_16(volatile ma_uint16* dst, ma_uint16 src, ma_atomic_memory_order order) { - c89atomic_uint16 oldValue; - c89atomic_uint16 newValue; + ma_uint16 oldValue; + ma_uint16 newValue; do { oldValue = *dst; - newValue = (c89atomic_uint16)(oldValue - src); - } while (c89atomic_compare_and_swap_16(dst, oldValue, newValue) != oldValue); + newValue = (ma_uint16)(oldValue - src); + } while (ma_atomic_compare_and_swap_16(dst, oldValue, newValue) != oldValue); (void)order; return oldValue; } #endif - #if defined(C89ATOMIC_HAS_32) - static C89ATOMIC_INLINE c89atomic_uint32 __stdcall c89atomic_fetch_sub_explicit_32(volatile c89atomic_uint32* dst, c89atomic_uint32 src, c89atomic_memory_order order) + #if defined(MA_ATOMIC_HAS_32) + static MA_INLINE ma_uint32 __stdcall ma_atomic_fetch_sub_explicit_32(volatile ma_uint32* dst, ma_uint32 src, ma_atomic_memory_order order) { - c89atomic_uint32 oldValue; - c89atomic_uint32 newValue; + ma_uint32 oldValue; + ma_uint32 newValue; do { oldValue = *dst; newValue = oldValue - src; - } while (c89atomic_compare_and_swap_32(dst, oldValue, newValue) != oldValue); + } while (ma_atomic_compare_and_swap_32(dst, oldValue, newValue) != oldValue); (void)order; return oldValue; } #endif - #if defined(C89ATOMIC_HAS_64) - static C89ATOMIC_INLINE c89atomic_uint64 __stdcall c89atomic_fetch_sub_explicit_64(volatile c89atomic_uint64* dst, c89atomic_uint64 src, c89atomic_memory_order order) + #if defined(MA_ATOMIC_HAS_64) + static MA_INLINE ma_uint64 __stdcall ma_atomic_fetch_sub_explicit_64(volatile ma_uint64* dst, ma_uint64 src, ma_atomic_memory_order order) { - c89atomic_uint64 oldValue; - c89atomic_uint64 newValue; + ma_uint64 oldValue; + ma_uint64 newValue; do { oldValue = *dst; newValue = oldValue - src; - } while (c89atomic_compare_and_swap_64(dst, oldValue, newValue) != oldValue); + } while (ma_atomic_compare_and_swap_64(dst, oldValue, newValue) != oldValue); (void)order; return oldValue; } #endif - #if defined(C89ATOMIC_HAS_8) - static C89ATOMIC_INLINE c89atomic_uint8 __stdcall c89atomic_fetch_and_explicit_8(volatile c89atomic_uint8* dst, c89atomic_uint8 src, c89atomic_memory_order order) + #if defined(MA_ATOMIC_HAS_8) + static MA_INLINE ma_uint8 __stdcall ma_atomic_fetch_and_explicit_8(volatile ma_uint8* dst, ma_uint8 src, ma_atomic_memory_order order) { - c89atomic_uint8 oldValue; - c89atomic_uint8 newValue; + #if defined(MA_ARM) + MA_ATOMIC_MSVC_ARM_INTRINSIC(dst, src, order, _InterlockedAnd8, ma_uint8, char); + #else + ma_uint8 oldValue; + ma_uint8 newValue; do { oldValue = *dst; - newValue = (c89atomic_uint8)(oldValue & src); - } while (c89atomic_compare_and_swap_8(dst, oldValue, newValue) != oldValue); + newValue = (ma_uint8)(oldValue & src); + } while (ma_atomic_compare_and_swap_8(dst, oldValue, newValue) != oldValue); (void)order; return oldValue; + #endif } #endif - #if defined(C89ATOMIC_HAS_16) - static C89ATOMIC_INLINE c89atomic_uint16 __stdcall c89atomic_fetch_and_explicit_16(volatile c89atomic_uint16* dst, c89atomic_uint16 src, c89atomic_memory_order order) + #if defined(MA_ATOMIC_HAS_16) + static MA_INLINE ma_uint16 __stdcall ma_atomic_fetch_and_explicit_16(volatile ma_uint16* dst, ma_uint16 src, ma_atomic_memory_order order) { - c89atomic_uint16 oldValue; - c89atomic_uint16 newValue; + #if defined(MA_ARM) + MA_ATOMIC_MSVC_ARM_INTRINSIC(dst, src, order, _InterlockedAnd16, ma_uint16, short); + #else + ma_uint16 oldValue; + ma_uint16 newValue; do { oldValue = *dst; - newValue = (c89atomic_uint16)(oldValue & src); - } while (c89atomic_compare_and_swap_16(dst, oldValue, newValue) != oldValue); + newValue = (ma_uint16)(oldValue & src); + } while (ma_atomic_compare_and_swap_16(dst, oldValue, newValue) != oldValue); (void)order; return oldValue; + #endif } #endif - #if defined(C89ATOMIC_HAS_32) - static C89ATOMIC_INLINE c89atomic_uint32 __stdcall c89atomic_fetch_and_explicit_32(volatile c89atomic_uint32* dst, c89atomic_uint32 src, c89atomic_memory_order order) + #if defined(MA_ATOMIC_HAS_32) + static MA_INLINE ma_uint32 __stdcall ma_atomic_fetch_and_explicit_32(volatile ma_uint32* dst, ma_uint32 src, ma_atomic_memory_order order) { - c89atomic_uint32 oldValue; - c89atomic_uint32 newValue; + #if defined(MA_ARM) + MA_ATOMIC_MSVC_ARM_INTRINSIC(dst, src, order, _InterlockedAnd, ma_uint32, long); + #else + ma_uint32 oldValue; + ma_uint32 newValue; do { oldValue = *dst; newValue = oldValue & src; - } while (c89atomic_compare_and_swap_32(dst, oldValue, newValue) != oldValue); + } while (ma_atomic_compare_and_swap_32(dst, oldValue, newValue) != oldValue); (void)order; return oldValue; + #endif } #endif - #if defined(C89ATOMIC_HAS_64) - static C89ATOMIC_INLINE c89atomic_uint64 __stdcall c89atomic_fetch_and_explicit_64(volatile c89atomic_uint64* dst, c89atomic_uint64 src, c89atomic_memory_order order) + #if defined(MA_ATOMIC_HAS_64) + static MA_INLINE ma_uint64 __stdcall ma_atomic_fetch_and_explicit_64(volatile ma_uint64* dst, ma_uint64 src, ma_atomic_memory_order order) { - c89atomic_uint64 oldValue; - c89atomic_uint64 newValue; + #if defined(MA_ARM) + MA_ATOMIC_MSVC_ARM_INTRINSIC(dst, src, order, _InterlockedAnd64, ma_uint64, long long); + #else + ma_uint64 oldValue; + ma_uint64 newValue; do { oldValue = *dst; newValue = oldValue & src; - } while (c89atomic_compare_and_swap_64(dst, oldValue, newValue) != oldValue); + } while (ma_atomic_compare_and_swap_64(dst, oldValue, newValue) != oldValue); (void)order; return oldValue; + #endif } #endif - #if defined(C89ATOMIC_HAS_8) - static C89ATOMIC_INLINE c89atomic_uint8 __stdcall c89atomic_fetch_xor_explicit_8(volatile c89atomic_uint8* dst, c89atomic_uint8 src, c89atomic_memory_order order) + #if defined(MA_ATOMIC_HAS_8) + static MA_INLINE ma_uint8 __stdcall ma_atomic_fetch_xor_explicit_8(volatile ma_uint8* dst, ma_uint8 src, ma_atomic_memory_order order) { - c89atomic_uint8 oldValue; - c89atomic_uint8 newValue; + #if defined(MA_ARM) + MA_ATOMIC_MSVC_ARM_INTRINSIC(dst, src, order, _InterlockedXor8, ma_uint8, char); + #else + ma_uint8 oldValue; + ma_uint8 newValue; do { oldValue = *dst; - newValue = (c89atomic_uint8)(oldValue ^ src); - } while (c89atomic_compare_and_swap_8(dst, oldValue, newValue) != oldValue); + newValue = (ma_uint8)(oldValue ^ src); + } while (ma_atomic_compare_and_swap_8(dst, oldValue, newValue) != oldValue); (void)order; return oldValue; + #endif } #endif - #if defined(C89ATOMIC_HAS_16) - static C89ATOMIC_INLINE c89atomic_uint16 __stdcall c89atomic_fetch_xor_explicit_16(volatile c89atomic_uint16* dst, c89atomic_uint16 src, c89atomic_memory_order order) + #if defined(MA_ATOMIC_HAS_16) + static MA_INLINE ma_uint16 __stdcall ma_atomic_fetch_xor_explicit_16(volatile ma_uint16* dst, ma_uint16 src, ma_atomic_memory_order order) { - c89atomic_uint16 oldValue; - c89atomic_uint16 newValue; + #if defined(MA_ARM) + MA_ATOMIC_MSVC_ARM_INTRINSIC(dst, src, order, _InterlockedXor16, ma_uint16, short); + #else + ma_uint16 oldValue; + ma_uint16 newValue; do { oldValue = *dst; - newValue = (c89atomic_uint16)(oldValue ^ src); - } while (c89atomic_compare_and_swap_16(dst, oldValue, newValue) != oldValue); + newValue = (ma_uint16)(oldValue ^ src); + } while (ma_atomic_compare_and_swap_16(dst, oldValue, newValue) != oldValue); (void)order; return oldValue; + #endif } #endif - #if defined(C89ATOMIC_HAS_32) - static C89ATOMIC_INLINE c89atomic_uint32 __stdcall c89atomic_fetch_xor_explicit_32(volatile c89atomic_uint32* dst, c89atomic_uint32 src, c89atomic_memory_order order) + #if defined(MA_ATOMIC_HAS_32) + static MA_INLINE ma_uint32 __stdcall ma_atomic_fetch_xor_explicit_32(volatile ma_uint32* dst, ma_uint32 src, ma_atomic_memory_order order) { - c89atomic_uint32 oldValue; - c89atomic_uint32 newValue; + #if defined(MA_ARM) + MA_ATOMIC_MSVC_ARM_INTRINSIC(dst, src, order, _InterlockedXor, ma_uint32, long); + #else + ma_uint32 oldValue; + ma_uint32 newValue; do { oldValue = *dst; newValue = oldValue ^ src; - } while (c89atomic_compare_and_swap_32(dst, oldValue, newValue) != oldValue); + } while (ma_atomic_compare_and_swap_32(dst, oldValue, newValue) != oldValue); (void)order; return oldValue; + #endif } #endif - #if defined(C89ATOMIC_HAS_64) - static C89ATOMIC_INLINE c89atomic_uint64 __stdcall c89atomic_fetch_xor_explicit_64(volatile c89atomic_uint64* dst, c89atomic_uint64 src, c89atomic_memory_order order) + #if defined(MA_ATOMIC_HAS_64) + static MA_INLINE ma_uint64 __stdcall ma_atomic_fetch_xor_explicit_64(volatile ma_uint64* dst, ma_uint64 src, ma_atomic_memory_order order) { - c89atomic_uint64 oldValue; - c89atomic_uint64 newValue; + #if defined(MA_ARM) + MA_ATOMIC_MSVC_ARM_INTRINSIC(dst, src, order, _InterlockedXor64, ma_uint64, long long); + #else + ma_uint64 oldValue; + ma_uint64 newValue; do { oldValue = *dst; newValue = oldValue ^ src; - } while (c89atomic_compare_and_swap_64(dst, oldValue, newValue) != oldValue); + } while (ma_atomic_compare_and_swap_64(dst, oldValue, newValue) != oldValue); (void)order; return oldValue; + #endif } #endif - #if defined(C89ATOMIC_HAS_8) - static C89ATOMIC_INLINE c89atomic_uint8 __stdcall c89atomic_fetch_or_explicit_8(volatile c89atomic_uint8* dst, c89atomic_uint8 src, c89atomic_memory_order order) + #if defined(MA_ATOMIC_HAS_8) + static MA_INLINE ma_uint8 __stdcall ma_atomic_fetch_or_explicit_8(volatile ma_uint8* dst, ma_uint8 src, ma_atomic_memory_order order) { - c89atomic_uint8 oldValue; - c89atomic_uint8 newValue; + #if defined(MA_ARM) + MA_ATOMIC_MSVC_ARM_INTRINSIC(dst, src, order, _InterlockedOr8, ma_uint8, char); + #else + ma_uint8 oldValue; + ma_uint8 newValue; do { oldValue = *dst; - newValue = (c89atomic_uint8)(oldValue | src); - } while (c89atomic_compare_and_swap_8(dst, oldValue, newValue) != oldValue); + newValue = (ma_uint8)(oldValue | src); + } while (ma_atomic_compare_and_swap_8(dst, oldValue, newValue) != oldValue); (void)order; return oldValue; + #endif } #endif - #if defined(C89ATOMIC_HAS_16) - static C89ATOMIC_INLINE c89atomic_uint16 __stdcall c89atomic_fetch_or_explicit_16(volatile c89atomic_uint16* dst, c89atomic_uint16 src, c89atomic_memory_order order) + #if defined(MA_ATOMIC_HAS_16) + static MA_INLINE ma_uint16 __stdcall ma_atomic_fetch_or_explicit_16(volatile ma_uint16* dst, ma_uint16 src, ma_atomic_memory_order order) { - c89atomic_uint16 oldValue; - c89atomic_uint16 newValue; + #if defined(MA_ARM) + MA_ATOMIC_MSVC_ARM_INTRINSIC(dst, src, order, _InterlockedOr16, ma_uint16, short); + #else + ma_uint16 oldValue; + ma_uint16 newValue; do { oldValue = *dst; - newValue = (c89atomic_uint16)(oldValue | src); - } while (c89atomic_compare_and_swap_16(dst, oldValue, newValue) != oldValue); + newValue = (ma_uint16)(oldValue | src); + } while (ma_atomic_compare_and_swap_16(dst, oldValue, newValue) != oldValue); (void)order; return oldValue; + #endif } #endif - #if defined(C89ATOMIC_HAS_32) - static C89ATOMIC_INLINE c89atomic_uint32 __stdcall c89atomic_fetch_or_explicit_32(volatile c89atomic_uint32* dst, c89atomic_uint32 src, c89atomic_memory_order order) + #if defined(MA_ATOMIC_HAS_32) + static MA_INLINE ma_uint32 __stdcall ma_atomic_fetch_or_explicit_32(volatile ma_uint32* dst, ma_uint32 src, ma_atomic_memory_order order) { - c89atomic_uint32 oldValue; - c89atomic_uint32 newValue; + #if defined(MA_ARM) + MA_ATOMIC_MSVC_ARM_INTRINSIC(dst, src, order, _InterlockedOr, ma_uint32, long); + #else + ma_uint32 oldValue; + ma_uint32 newValue; do { oldValue = *dst; newValue = oldValue | src; - } while (c89atomic_compare_and_swap_32(dst, oldValue, newValue) != oldValue); + } while (ma_atomic_compare_and_swap_32(dst, oldValue, newValue) != oldValue); (void)order; return oldValue; + #endif } #endif - #if defined(C89ATOMIC_HAS_64) - static C89ATOMIC_INLINE c89atomic_uint64 __stdcall c89atomic_fetch_or_explicit_64(volatile c89atomic_uint64* dst, c89atomic_uint64 src, c89atomic_memory_order order) + #if defined(MA_ATOMIC_HAS_64) + static MA_INLINE ma_uint64 __stdcall ma_atomic_fetch_or_explicit_64(volatile ma_uint64* dst, ma_uint64 src, ma_atomic_memory_order order) { - c89atomic_uint64 oldValue; - c89atomic_uint64 newValue; + #if defined(MA_ARM) + MA_ATOMIC_MSVC_ARM_INTRINSIC(dst, src, order, _InterlockedOr64, ma_uint64, long long); + #else + ma_uint64 oldValue; + ma_uint64 newValue; do { oldValue = *dst; newValue = oldValue | src; - } while (c89atomic_compare_and_swap_64(dst, oldValue, newValue) != oldValue); + } while (ma_atomic_compare_and_swap_64(dst, oldValue, newValue) != oldValue); (void)order; return oldValue; + #endif } #endif - #if defined(C89ATOMIC_HAS_8) - #define c89atomic_test_and_set_explicit_8( dst, order) c89atomic_exchange_explicit_8 (dst, 1, order) + #if defined(MA_ATOMIC_HAS_8) + #define ma_atomic_test_and_set_explicit_8( dst, order) ma_atomic_exchange_explicit_8 (dst, 1, order) #endif - #if defined(C89ATOMIC_HAS_16) - #define c89atomic_test_and_set_explicit_16(dst, order) c89atomic_exchange_explicit_16(dst, 1, order) + #if defined(MA_ATOMIC_HAS_16) + #define ma_atomic_test_and_set_explicit_16(dst, order) ma_atomic_exchange_explicit_16(dst, 1, order) #endif - #if defined(C89ATOMIC_HAS_32) - #define c89atomic_test_and_set_explicit_32(dst, order) c89atomic_exchange_explicit_32(dst, 1, order) + #if defined(MA_ATOMIC_HAS_32) + #define ma_atomic_test_and_set_explicit_32(dst, order) ma_atomic_exchange_explicit_32(dst, 1, order) #endif - #if defined(C89ATOMIC_HAS_64) - #define c89atomic_test_and_set_explicit_64(dst, order) c89atomic_exchange_explicit_64(dst, 1, order) + #if defined(MA_ATOMIC_HAS_64) + #define ma_atomic_test_and_set_explicit_64(dst, order) ma_atomic_exchange_explicit_64(dst, 1, order) #endif - #if defined(C89ATOMIC_HAS_8) - #define c89atomic_clear_explicit_8( dst, order) c89atomic_store_explicit_8 (dst, 0, order) + #if defined(MA_ATOMIC_HAS_8) + #define ma_atomic_clear_explicit_8( dst, order) ma_atomic_store_explicit_8 (dst, 0, order) #endif - #if defined(C89ATOMIC_HAS_16) - #define c89atomic_clear_explicit_16(dst, order) c89atomic_store_explicit_16(dst, 0, order) + #if defined(MA_ATOMIC_HAS_16) + #define ma_atomic_clear_explicit_16(dst, order) ma_atomic_store_explicit_16(dst, 0, order) #endif - #if defined(C89ATOMIC_HAS_32) - #define c89atomic_clear_explicit_32(dst, order) c89atomic_store_explicit_32(dst, 0, order) + #if defined(MA_ATOMIC_HAS_32) + #define ma_atomic_clear_explicit_32(dst, order) ma_atomic_store_explicit_32(dst, 0, order) #endif - #if defined(C89ATOMIC_HAS_64) - #define c89atomic_clear_explicit_64(dst, order) c89atomic_store_explicit_64(dst, 0, order) + #if defined(MA_ATOMIC_HAS_64) + #define ma_atomic_clear_explicit_64(dst, order) ma_atomic_store_explicit_64(dst, 0, order) #endif - #if defined(C89ATOMIC_HAS_8) - typedef c89atomic_uint8 c89atomic_flag; - #define c89atomic_flag_test_and_set_explicit(ptr, order) (c89atomic_bool)c89atomic_test_and_set_explicit_8(ptr, order) - #define c89atomic_flag_clear_explicit(ptr, order) c89atomic_clear_explicit_8(ptr, order) - #define c89atoimc_flag_load_explicit(ptr, order) c89atomic_load_explicit_8(ptr, order) + #if defined(MA_ATOMIC_HAS_8) + typedef ma_uint8 ma_atomic_flag; + #define ma_atomic_flag_test_and_set_explicit(ptr, order) (ma_bool32)ma_atomic_test_and_set_explicit_8(ptr, order) + #define ma_atomic_flag_clear_explicit(ptr, order) ma_atomic_clear_explicit_8(ptr, order) + #define c89atoimc_flag_load_explicit(ptr, order) ma_atomic_load_explicit_8(ptr, order) #else - typedef c89atomic_uint32 c89atomic_flag; - #define c89atomic_flag_test_and_set_explicit(ptr, order) (c89atomic_bool)c89atomic_test_and_set_explicit_32(ptr, order) - #define c89atomic_flag_clear_explicit(ptr, order) c89atomic_clear_explicit_32(ptr, order) - #define c89atoimc_flag_load_explicit(ptr, order) c89atomic_load_explicit_32(ptr, order) + typedef ma_uint32 ma_atomic_flag; + #define ma_atomic_flag_test_and_set_explicit(ptr, order) (ma_bool32)ma_atomic_test_and_set_explicit_32(ptr, order) + #define ma_atomic_flag_clear_explicit(ptr, order) ma_atomic_clear_explicit_32(ptr, order) + #define c89atoimc_flag_load_explicit(ptr, order) ma_atomic_load_explicit_32(ptr, order) #endif #elif defined(__clang__) || (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7))) - #define C89ATOMIC_HAS_NATIVE_COMPARE_EXCHANGE - #define C89ATOMIC_HAS_NATIVE_IS_LOCK_FREE - #define c89atomic_memory_order_relaxed __ATOMIC_RELAXED - #define c89atomic_memory_order_consume __ATOMIC_CONSUME - #define c89atomic_memory_order_acquire __ATOMIC_ACQUIRE - #define c89atomic_memory_order_release __ATOMIC_RELEASE - #define c89atomic_memory_order_acq_rel __ATOMIC_ACQ_REL - #define c89atomic_memory_order_seq_cst __ATOMIC_SEQ_CST - #define c89atomic_compiler_fence() __asm__ __volatile__("":::"memory") - #define c89atomic_thread_fence(order) __atomic_thread_fence(order) - #define c89atomic_signal_fence(order) __atomic_signal_fence(order) - #define c89atomic_is_lock_free_8(ptr) __atomic_is_lock_free(1, ptr) - #define c89atomic_is_lock_free_16(ptr) __atomic_is_lock_free(2, ptr) - #define c89atomic_is_lock_free_32(ptr) __atomic_is_lock_free(4, ptr) - #define c89atomic_is_lock_free_64(ptr) __atomic_is_lock_free(8, ptr) - #define c89atomic_test_and_set_explicit_8( dst, order) __atomic_exchange_n(dst, 1, order) - #define c89atomic_test_and_set_explicit_16(dst, order) __atomic_exchange_n(dst, 1, order) - #define c89atomic_test_and_set_explicit_32(dst, order) __atomic_exchange_n(dst, 1, order) - #define c89atomic_test_and_set_explicit_64(dst, order) __atomic_exchange_n(dst, 1, order) - #define c89atomic_clear_explicit_8( dst, order) __atomic_store_n(dst, 0, order) - #define c89atomic_clear_explicit_16(dst, order) __atomic_store_n(dst, 0, order) - #define c89atomic_clear_explicit_32(dst, order) __atomic_store_n(dst, 0, order) - #define c89atomic_clear_explicit_64(dst, order) __atomic_store_n(dst, 0, order) - #define c89atomic_store_explicit_8( dst, src, order) __atomic_store_n(dst, src, order) - #define c89atomic_store_explicit_16(dst, src, order) __atomic_store_n(dst, src, order) - #define c89atomic_store_explicit_32(dst, src, order) __atomic_store_n(dst, src, order) - #define c89atomic_store_explicit_64(dst, src, order) __atomic_store_n(dst, src, order) - #define c89atomic_load_explicit_8( dst, order) __atomic_load_n(dst, order) - #define c89atomic_load_explicit_16(dst, order) __atomic_load_n(dst, order) - #define c89atomic_load_explicit_32(dst, order) __atomic_load_n(dst, order) - #define c89atomic_load_explicit_64(dst, order) __atomic_load_n(dst, order) - #define c89atomic_exchange_explicit_8( dst, src, order) __atomic_exchange_n(dst, src, order) - #define c89atomic_exchange_explicit_16(dst, src, order) __atomic_exchange_n(dst, src, order) - #define c89atomic_exchange_explicit_32(dst, src, order) __atomic_exchange_n(dst, src, order) - #define c89atomic_exchange_explicit_64(dst, src, order) __atomic_exchange_n(dst, src, order) - #define c89atomic_compare_exchange_strong_explicit_8( dst, expected, desired, successOrder, failureOrder) __atomic_compare_exchange_n(dst, expected, desired, 0, successOrder, failureOrder) - #define c89atomic_compare_exchange_strong_explicit_16(dst, expected, desired, successOrder, failureOrder) __atomic_compare_exchange_n(dst, expected, desired, 0, successOrder, failureOrder) - #define c89atomic_compare_exchange_strong_explicit_32(dst, expected, desired, successOrder, failureOrder) __atomic_compare_exchange_n(dst, expected, desired, 0, successOrder, failureOrder) - #define c89atomic_compare_exchange_strong_explicit_64(dst, expected, desired, successOrder, failureOrder) __atomic_compare_exchange_n(dst, expected, desired, 0, successOrder, failureOrder) - #define c89atomic_compare_exchange_weak_explicit_8( dst, expected, desired, successOrder, failureOrder) __atomic_compare_exchange_n(dst, expected, desired, 1, successOrder, failureOrder) - #define c89atomic_compare_exchange_weak_explicit_16(dst, expected, desired, successOrder, failureOrder) __atomic_compare_exchange_n(dst, expected, desired, 1, successOrder, failureOrder) - #define c89atomic_compare_exchange_weak_explicit_32(dst, expected, desired, successOrder, failureOrder) __atomic_compare_exchange_n(dst, expected, desired, 1, successOrder, failureOrder) - #define c89atomic_compare_exchange_weak_explicit_64(dst, expected, desired, successOrder, failureOrder) __atomic_compare_exchange_n(dst, expected, desired, 1, successOrder, failureOrder) - #define c89atomic_fetch_add_explicit_8( dst, src, order) __atomic_fetch_add(dst, src, order) - #define c89atomic_fetch_add_explicit_16(dst, src, order) __atomic_fetch_add(dst, src, order) - #define c89atomic_fetch_add_explicit_32(dst, src, order) __atomic_fetch_add(dst, src, order) - #define c89atomic_fetch_add_explicit_64(dst, src, order) __atomic_fetch_add(dst, src, order) - #define c89atomic_fetch_sub_explicit_8( dst, src, order) __atomic_fetch_sub(dst, src, order) - #define c89atomic_fetch_sub_explicit_16(dst, src, order) __atomic_fetch_sub(dst, src, order) - #define c89atomic_fetch_sub_explicit_32(dst, src, order) __atomic_fetch_sub(dst, src, order) - #define c89atomic_fetch_sub_explicit_64(dst, src, order) __atomic_fetch_sub(dst, src, order) - #define c89atomic_fetch_or_explicit_8( dst, src, order) __atomic_fetch_or(dst, src, order) - #define c89atomic_fetch_or_explicit_16(dst, src, order) __atomic_fetch_or(dst, src, order) - #define c89atomic_fetch_or_explicit_32(dst, src, order) __atomic_fetch_or(dst, src, order) - #define c89atomic_fetch_or_explicit_64(dst, src, order) __atomic_fetch_or(dst, src, order) - #define c89atomic_fetch_xor_explicit_8( dst, src, order) __atomic_fetch_xor(dst, src, order) - #define c89atomic_fetch_xor_explicit_16(dst, src, order) __atomic_fetch_xor(dst, src, order) - #define c89atomic_fetch_xor_explicit_32(dst, src, order) __atomic_fetch_xor(dst, src, order) - #define c89atomic_fetch_xor_explicit_64(dst, src, order) __atomic_fetch_xor(dst, src, order) - #define c89atomic_fetch_and_explicit_8( dst, src, order) __atomic_fetch_and(dst, src, order) - #define c89atomic_fetch_and_explicit_16(dst, src, order) __atomic_fetch_and(dst, src, order) - #define c89atomic_fetch_and_explicit_32(dst, src, order) __atomic_fetch_and(dst, src, order) - #define c89atomic_fetch_and_explicit_64(dst, src, order) __atomic_fetch_and(dst, src, order) - #define c89atomic_compare_and_swap_8 (dst, expected, desired) __sync_val_compare_and_swap(dst, expected, desired) - #define c89atomic_compare_and_swap_16(dst, expected, desired) __sync_val_compare_and_swap(dst, expected, desired) - #define c89atomic_compare_and_swap_32(dst, expected, desired) __sync_val_compare_and_swap(dst, expected, desired) - #define c89atomic_compare_and_swap_64(dst, expected, desired) __sync_val_compare_and_swap(dst, expected, desired) - typedef c89atomic_uint8 c89atomic_flag; - #define c89atomic_flag_test_and_set_explicit(dst, order) (c89atomic_bool)__atomic_test_and_set(dst, order) - #define c89atomic_flag_clear_explicit(dst, order) __atomic_clear(dst, order) - #define c89atoimc_flag_load_explicit(ptr, order) c89atomic_load_explicit_8(ptr, order) + #define MA_ATOMIC_HAS_NATIVE_COMPARE_EXCHANGE + #define MA_ATOMIC_HAS_NATIVE_IS_LOCK_FREE + #define ma_atomic_memory_order_relaxed __ATOMIC_RELAXED + #define ma_atomic_memory_order_consume __ATOMIC_CONSUME + #define ma_atomic_memory_order_acquire __ATOMIC_ACQUIRE + #define ma_atomic_memory_order_release __ATOMIC_RELEASE + #define ma_atomic_memory_order_acq_rel __ATOMIC_ACQ_REL + #define ma_atomic_memory_order_seq_cst __ATOMIC_SEQ_CST + #define ma_atomic_compiler_fence() __asm__ __volatile__("":::"memory") + #define ma_atomic_thread_fence(order) __atomic_thread_fence(order) + #define ma_atomic_signal_fence(order) __atomic_signal_fence(order) + #define ma_atomic_is_lock_free_8(ptr) __atomic_is_lock_free(1, ptr) + #define ma_atomic_is_lock_free_16(ptr) __atomic_is_lock_free(2, ptr) + #define ma_atomic_is_lock_free_32(ptr) __atomic_is_lock_free(4, ptr) + #define ma_atomic_is_lock_free_64(ptr) __atomic_is_lock_free(8, ptr) + #define ma_atomic_test_and_set_explicit_8( dst, order) __atomic_exchange_n(dst, 1, order) + #define ma_atomic_test_and_set_explicit_16(dst, order) __atomic_exchange_n(dst, 1, order) + #define ma_atomic_test_and_set_explicit_32(dst, order) __atomic_exchange_n(dst, 1, order) + #define ma_atomic_test_and_set_explicit_64(dst, order) __atomic_exchange_n(dst, 1, order) + #define ma_atomic_clear_explicit_8( dst, order) __atomic_store_n(dst, 0, order) + #define ma_atomic_clear_explicit_16(dst, order) __atomic_store_n(dst, 0, order) + #define ma_atomic_clear_explicit_32(dst, order) __atomic_store_n(dst, 0, order) + #define ma_atomic_clear_explicit_64(dst, order) __atomic_store_n(dst, 0, order) + #define ma_atomic_store_explicit_8( dst, src, order) __atomic_store_n(dst, src, order) + #define ma_atomic_store_explicit_16(dst, src, order) __atomic_store_n(dst, src, order) + #define ma_atomic_store_explicit_32(dst, src, order) __atomic_store_n(dst, src, order) + #define ma_atomic_store_explicit_64(dst, src, order) __atomic_store_n(dst, src, order) + #define ma_atomic_load_explicit_8( dst, order) __atomic_load_n(dst, order) + #define ma_atomic_load_explicit_16(dst, order) __atomic_load_n(dst, order) + #define ma_atomic_load_explicit_32(dst, order) __atomic_load_n(dst, order) + #define ma_atomic_load_explicit_64(dst, order) __atomic_load_n(dst, order) + #define ma_atomic_exchange_explicit_8( dst, src, order) __atomic_exchange_n(dst, src, order) + #define ma_atomic_exchange_explicit_16(dst, src, order) __atomic_exchange_n(dst, src, order) + #define ma_atomic_exchange_explicit_32(dst, src, order) __atomic_exchange_n(dst, src, order) + #define ma_atomic_exchange_explicit_64(dst, src, order) __atomic_exchange_n(dst, src, order) + #define ma_atomic_compare_exchange_strong_explicit_8( dst, expected, desired, successOrder, failureOrder) __atomic_compare_exchange_n(dst, expected, desired, 0, successOrder, failureOrder) + #define ma_atomic_compare_exchange_strong_explicit_16(dst, expected, desired, successOrder, failureOrder) __atomic_compare_exchange_n(dst, expected, desired, 0, successOrder, failureOrder) + #define ma_atomic_compare_exchange_strong_explicit_32(dst, expected, desired, successOrder, failureOrder) __atomic_compare_exchange_n(dst, expected, desired, 0, successOrder, failureOrder) + #define ma_atomic_compare_exchange_strong_explicit_64(dst, expected, desired, successOrder, failureOrder) __atomic_compare_exchange_n(dst, expected, desired, 0, successOrder, failureOrder) + #define ma_atomic_compare_exchange_weak_explicit_8( dst, expected, desired, successOrder, failureOrder) __atomic_compare_exchange_n(dst, expected, desired, 1, successOrder, failureOrder) + #define ma_atomic_compare_exchange_weak_explicit_16(dst, expected, desired, successOrder, failureOrder) __atomic_compare_exchange_n(dst, expected, desired, 1, successOrder, failureOrder) + #define ma_atomic_compare_exchange_weak_explicit_32(dst, expected, desired, successOrder, failureOrder) __atomic_compare_exchange_n(dst, expected, desired, 1, successOrder, failureOrder) + #define ma_atomic_compare_exchange_weak_explicit_64(dst, expected, desired, successOrder, failureOrder) __atomic_compare_exchange_n(dst, expected, desired, 1, successOrder, failureOrder) + #define ma_atomic_fetch_add_explicit_8( dst, src, order) __atomic_fetch_add(dst, src, order) + #define ma_atomic_fetch_add_explicit_16(dst, src, order) __atomic_fetch_add(dst, src, order) + #define ma_atomic_fetch_add_explicit_32(dst, src, order) __atomic_fetch_add(dst, src, order) + #define ma_atomic_fetch_add_explicit_64(dst, src, order) __atomic_fetch_add(dst, src, order) + #define ma_atomic_fetch_sub_explicit_8( dst, src, order) __atomic_fetch_sub(dst, src, order) + #define ma_atomic_fetch_sub_explicit_16(dst, src, order) __atomic_fetch_sub(dst, src, order) + #define ma_atomic_fetch_sub_explicit_32(dst, src, order) __atomic_fetch_sub(dst, src, order) + #define ma_atomic_fetch_sub_explicit_64(dst, src, order) __atomic_fetch_sub(dst, src, order) + #define ma_atomic_fetch_or_explicit_8( dst, src, order) __atomic_fetch_or(dst, src, order) + #define ma_atomic_fetch_or_explicit_16(dst, src, order) __atomic_fetch_or(dst, src, order) + #define ma_atomic_fetch_or_explicit_32(dst, src, order) __atomic_fetch_or(dst, src, order) + #define ma_atomic_fetch_or_explicit_64(dst, src, order) __atomic_fetch_or(dst, src, order) + #define ma_atomic_fetch_xor_explicit_8( dst, src, order) __atomic_fetch_xor(dst, src, order) + #define ma_atomic_fetch_xor_explicit_16(dst, src, order) __atomic_fetch_xor(dst, src, order) + #define ma_atomic_fetch_xor_explicit_32(dst, src, order) __atomic_fetch_xor(dst, src, order) + #define ma_atomic_fetch_xor_explicit_64(dst, src, order) __atomic_fetch_xor(dst, src, order) + #define ma_atomic_fetch_and_explicit_8( dst, src, order) __atomic_fetch_and(dst, src, order) + #define ma_atomic_fetch_and_explicit_16(dst, src, order) __atomic_fetch_and(dst, src, order) + #define ma_atomic_fetch_and_explicit_32(dst, src, order) __atomic_fetch_and(dst, src, order) + #define ma_atomic_fetch_and_explicit_64(dst, src, order) __atomic_fetch_and(dst, src, order) + static MA_INLINE ma_uint8 ma_atomic_compare_and_swap_8(volatile ma_uint8* dst, ma_uint8 expected, ma_uint8 desired) + { + __atomic_compare_exchange_n(dst, &expected, desired, 0, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); + return expected; + } + static MA_INLINE ma_uint16 ma_atomic_compare_and_swap_16(volatile ma_uint16* dst, ma_uint16 expected, ma_uint16 desired) + { + __atomic_compare_exchange_n(dst, &expected, desired, 0, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); + return expected; + } + static MA_INLINE ma_uint32 ma_atomic_compare_and_swap_32(volatile ma_uint32* dst, ma_uint32 expected, ma_uint32 desired) + { + __atomic_compare_exchange_n(dst, &expected, desired, 0, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); + return expected; + } + static MA_INLINE ma_uint64 ma_atomic_compare_and_swap_64(volatile ma_uint64* dst, ma_uint64 expected, ma_uint64 desired) + { + __atomic_compare_exchange_n(dst, &expected, desired, 0, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST); + return expected; + } + typedef ma_uint8 ma_atomic_flag; + #define ma_atomic_flag_test_and_set_explicit(dst, order) (ma_bool32)__atomic_test_and_set(dst, order) + #define ma_atomic_flag_clear_explicit(dst, order) __atomic_clear(dst, order) + #define c89atoimc_flag_load_explicit(ptr, order) ma_atomic_load_explicit_8(ptr, order) #else - #define c89atomic_memory_order_relaxed 1 - #define c89atomic_memory_order_consume 2 - #define c89atomic_memory_order_acquire 3 - #define c89atomic_memory_order_release 4 - #define c89atomic_memory_order_acq_rel 5 - #define c89atomic_memory_order_seq_cst 6 - #define c89atomic_compiler_fence() __asm__ __volatile__("":::"memory") + #define ma_atomic_memory_order_relaxed 1 + #define ma_atomic_memory_order_consume 2 + #define ma_atomic_memory_order_acquire 3 + #define ma_atomic_memory_order_release 4 + #define ma_atomic_memory_order_acq_rel 5 + #define ma_atomic_memory_order_seq_cst 6 + #define ma_atomic_compiler_fence() __asm__ __volatile__("":::"memory") #if defined(__GNUC__) - #define c89atomic_thread_fence(order) __sync_synchronize(), (void)order - static C89ATOMIC_INLINE c89atomic_uint8 c89atomic_exchange_explicit_8(volatile c89atomic_uint8* dst, c89atomic_uint8 src, c89atomic_memory_order order) + #define ma_atomic_thread_fence(order) __sync_synchronize(), (void)order + static MA_INLINE ma_uint8 ma_atomic_exchange_explicit_8(volatile ma_uint8* dst, ma_uint8 src, ma_atomic_memory_order order) { - if (order > c89atomic_memory_order_acquire) { + if (order > ma_atomic_memory_order_acquire) { __sync_synchronize(); } return __sync_lock_test_and_set(dst, src); } - static C89ATOMIC_INLINE c89atomic_uint16 c89atomic_exchange_explicit_16(volatile c89atomic_uint16* dst, c89atomic_uint16 src, c89atomic_memory_order order) + static MA_INLINE ma_uint16 ma_atomic_exchange_explicit_16(volatile ma_uint16* dst, ma_uint16 src, ma_atomic_memory_order order) { - c89atomic_uint16 oldValue; + ma_uint16 oldValue; do { oldValue = *dst; } while (__sync_val_compare_and_swap(dst, oldValue, src) != oldValue); (void)order; return oldValue; } - static C89ATOMIC_INLINE c89atomic_uint32 c89atomic_exchange_explicit_32(volatile c89atomic_uint32* dst, c89atomic_uint32 src, c89atomic_memory_order order) + static MA_INLINE ma_uint32 ma_atomic_exchange_explicit_32(volatile ma_uint32* dst, ma_uint32 src, ma_atomic_memory_order order) { - c89atomic_uint32 oldValue; + ma_uint32 oldValue; do { oldValue = *dst; } while (__sync_val_compare_and_swap(dst, oldValue, src) != oldValue); (void)order; return oldValue; } - static C89ATOMIC_INLINE c89atomic_uint64 c89atomic_exchange_explicit_64(volatile c89atomic_uint64* dst, c89atomic_uint64 src, c89atomic_memory_order order) + static MA_INLINE ma_uint64 ma_atomic_exchange_explicit_64(volatile ma_uint64* dst, ma_uint64 src, ma_atomic_memory_order order) { - c89atomic_uint64 oldValue; + ma_uint64 oldValue; do { oldValue = *dst; } while (__sync_val_compare_and_swap(dst, oldValue, src) != oldValue); (void)order; return oldValue; } - static C89ATOMIC_INLINE c89atomic_uint8 c89atomic_fetch_add_explicit_8(volatile c89atomic_uint8* dst, c89atomic_uint8 src, c89atomic_memory_order order) + static MA_INLINE ma_uint8 ma_atomic_fetch_add_explicit_8(volatile ma_uint8* dst, ma_uint8 src, ma_atomic_memory_order order) { (void)order; return __sync_fetch_and_add(dst, src); } - static C89ATOMIC_INLINE c89atomic_uint16 c89atomic_fetch_add_explicit_16(volatile c89atomic_uint16* dst, c89atomic_uint16 src, c89atomic_memory_order order) + static MA_INLINE ma_uint16 ma_atomic_fetch_add_explicit_16(volatile ma_uint16* dst, ma_uint16 src, ma_atomic_memory_order order) { (void)order; return __sync_fetch_and_add(dst, src); } - static C89ATOMIC_INLINE c89atomic_uint32 c89atomic_fetch_add_explicit_32(volatile c89atomic_uint32* dst, c89atomic_uint32 src, c89atomic_memory_order order) + static MA_INLINE ma_uint32 ma_atomic_fetch_add_explicit_32(volatile ma_uint32* dst, ma_uint32 src, ma_atomic_memory_order order) { (void)order; return __sync_fetch_and_add(dst, src); } - static C89ATOMIC_INLINE c89atomic_uint64 c89atomic_fetch_add_explicit_64(volatile c89atomic_uint64* dst, c89atomic_uint64 src, c89atomic_memory_order order) + static MA_INLINE ma_uint64 ma_atomic_fetch_add_explicit_64(volatile ma_uint64* dst, ma_uint64 src, ma_atomic_memory_order order) { (void)order; return __sync_fetch_and_add(dst, src); } - static C89ATOMIC_INLINE c89atomic_uint8 c89atomic_fetch_sub_explicit_8(volatile c89atomic_uint8* dst, c89atomic_uint8 src, c89atomic_memory_order order) + static MA_INLINE ma_uint8 ma_atomic_fetch_sub_explicit_8(volatile ma_uint8* dst, ma_uint8 src, ma_atomic_memory_order order) { (void)order; return __sync_fetch_and_sub(dst, src); } - static C89ATOMIC_INLINE c89atomic_uint16 c89atomic_fetch_sub_explicit_16(volatile c89atomic_uint16* dst, c89atomic_uint16 src, c89atomic_memory_order order) + static MA_INLINE ma_uint16 ma_atomic_fetch_sub_explicit_16(volatile ma_uint16* dst, ma_uint16 src, ma_atomic_memory_order order) { (void)order; return __sync_fetch_and_sub(dst, src); } - static C89ATOMIC_INLINE c89atomic_uint32 c89atomic_fetch_sub_explicit_32(volatile c89atomic_uint32* dst, c89atomic_uint32 src, c89atomic_memory_order order) + static MA_INLINE ma_uint32 ma_atomic_fetch_sub_explicit_32(volatile ma_uint32* dst, ma_uint32 src, ma_atomic_memory_order order) { (void)order; return __sync_fetch_and_sub(dst, src); } - static C89ATOMIC_INLINE c89atomic_uint64 c89atomic_fetch_sub_explicit_64(volatile c89atomic_uint64* dst, c89atomic_uint64 src, c89atomic_memory_order order) + static MA_INLINE ma_uint64 ma_atomic_fetch_sub_explicit_64(volatile ma_uint64* dst, ma_uint64 src, ma_atomic_memory_order order) { (void)order; return __sync_fetch_and_sub(dst, src); } - static C89ATOMIC_INLINE c89atomic_uint8 c89atomic_fetch_or_explicit_8(volatile c89atomic_uint8* dst, c89atomic_uint8 src, c89atomic_memory_order order) + static MA_INLINE ma_uint8 ma_atomic_fetch_or_explicit_8(volatile ma_uint8* dst, ma_uint8 src, ma_atomic_memory_order order) { (void)order; return __sync_fetch_and_or(dst, src); } - static C89ATOMIC_INLINE c89atomic_uint16 c89atomic_fetch_or_explicit_16(volatile c89atomic_uint16* dst, c89atomic_uint16 src, c89atomic_memory_order order) + static MA_INLINE ma_uint16 ma_atomic_fetch_or_explicit_16(volatile ma_uint16* dst, ma_uint16 src, ma_atomic_memory_order order) { (void)order; return __sync_fetch_and_or(dst, src); } - static C89ATOMIC_INLINE c89atomic_uint32 c89atomic_fetch_or_explicit_32(volatile c89atomic_uint32* dst, c89atomic_uint32 src, c89atomic_memory_order order) + static MA_INLINE ma_uint32 ma_atomic_fetch_or_explicit_32(volatile ma_uint32* dst, ma_uint32 src, ma_atomic_memory_order order) { (void)order; return __sync_fetch_and_or(dst, src); } - static C89ATOMIC_INLINE c89atomic_uint64 c89atomic_fetch_or_explicit_64(volatile c89atomic_uint64* dst, c89atomic_uint64 src, c89atomic_memory_order order) + static MA_INLINE ma_uint64 ma_atomic_fetch_or_explicit_64(volatile ma_uint64* dst, ma_uint64 src, ma_atomic_memory_order order) { (void)order; return __sync_fetch_and_or(dst, src); } - static C89ATOMIC_INLINE c89atomic_uint8 c89atomic_fetch_xor_explicit_8(volatile c89atomic_uint8* dst, c89atomic_uint8 src, c89atomic_memory_order order) + static MA_INLINE ma_uint8 ma_atomic_fetch_xor_explicit_8(volatile ma_uint8* dst, ma_uint8 src, ma_atomic_memory_order order) { (void)order; return __sync_fetch_and_xor(dst, src); } - static C89ATOMIC_INLINE c89atomic_uint16 c89atomic_fetch_xor_explicit_16(volatile c89atomic_uint16* dst, c89atomic_uint16 src, c89atomic_memory_order order) + static MA_INLINE ma_uint16 ma_atomic_fetch_xor_explicit_16(volatile ma_uint16* dst, ma_uint16 src, ma_atomic_memory_order order) { (void)order; return __sync_fetch_and_xor(dst, src); } - static C89ATOMIC_INLINE c89atomic_uint32 c89atomic_fetch_xor_explicit_32(volatile c89atomic_uint32* dst, c89atomic_uint32 src, c89atomic_memory_order order) + static MA_INLINE ma_uint32 ma_atomic_fetch_xor_explicit_32(volatile ma_uint32* dst, ma_uint32 src, ma_atomic_memory_order order) { (void)order; return __sync_fetch_and_xor(dst, src); } - static C89ATOMIC_INLINE c89atomic_uint64 c89atomic_fetch_xor_explicit_64(volatile c89atomic_uint64* dst, c89atomic_uint64 src, c89atomic_memory_order order) + static MA_INLINE ma_uint64 ma_atomic_fetch_xor_explicit_64(volatile ma_uint64* dst, ma_uint64 src, ma_atomic_memory_order order) { (void)order; return __sync_fetch_and_xor(dst, src); } - static C89ATOMIC_INLINE c89atomic_uint8 c89atomic_fetch_and_explicit_8(volatile c89atomic_uint8* dst, c89atomic_uint8 src, c89atomic_memory_order order) + static MA_INLINE ma_uint8 ma_atomic_fetch_and_explicit_8(volatile ma_uint8* dst, ma_uint8 src, ma_atomic_memory_order order) { (void)order; return __sync_fetch_and_and(dst, src); } - static C89ATOMIC_INLINE c89atomic_uint16 c89atomic_fetch_and_explicit_16(volatile c89atomic_uint16* dst, c89atomic_uint16 src, c89atomic_memory_order order) + static MA_INLINE ma_uint16 ma_atomic_fetch_and_explicit_16(volatile ma_uint16* dst, ma_uint16 src, ma_atomic_memory_order order) { (void)order; return __sync_fetch_and_and(dst, src); } - static C89ATOMIC_INLINE c89atomic_uint32 c89atomic_fetch_and_explicit_32(volatile c89atomic_uint32* dst, c89atomic_uint32 src, c89atomic_memory_order order) + static MA_INLINE ma_uint32 ma_atomic_fetch_and_explicit_32(volatile ma_uint32* dst, ma_uint32 src, ma_atomic_memory_order order) { (void)order; return __sync_fetch_and_and(dst, src); } - static C89ATOMIC_INLINE c89atomic_uint64 c89atomic_fetch_and_explicit_64(volatile c89atomic_uint64* dst, c89atomic_uint64 src, c89atomic_memory_order order) + static MA_INLINE ma_uint64 ma_atomic_fetch_and_explicit_64(volatile ma_uint64* dst, ma_uint64 src, ma_atomic_memory_order order) { (void)order; return __sync_fetch_and_and(dst, src); } - #define c89atomic_compare_and_swap_8( dst, expected, desired) __sync_val_compare_and_swap(dst, expected, desired) - #define c89atomic_compare_and_swap_16(dst, expected, desired) __sync_val_compare_and_swap(dst, expected, desired) - #define c89atomic_compare_and_swap_32(dst, expected, desired) __sync_val_compare_and_swap(dst, expected, desired) - #define c89atomic_compare_and_swap_64(dst, expected, desired) __sync_val_compare_and_swap(dst, expected, desired) + #define ma_atomic_compare_and_swap_8( dst, expected, desired) __sync_val_compare_and_swap(dst, expected, desired) + #define ma_atomic_compare_and_swap_16(dst, expected, desired) __sync_val_compare_and_swap(dst, expected, desired) + #define ma_atomic_compare_and_swap_32(dst, expected, desired) __sync_val_compare_and_swap(dst, expected, desired) + #define ma_atomic_compare_and_swap_64(dst, expected, desired) __sync_val_compare_and_swap(dst, expected, desired) #else - #if defined(C89ATOMIC_X86) - #define c89atomic_thread_fence(order) __asm__ __volatile__("lock; addl $0, (%%esp)" ::: "memory", "cc") - #elif defined(C89ATOMIC_X64) - #define c89atomic_thread_fence(order) __asm__ __volatile__("lock; addq $0, (%%rsp)" ::: "memory", "cc") + #if defined(MA_X86) + #define ma_atomic_thread_fence(order) __asm__ __volatile__("lock; addl $0, (%%esp)" ::: "memory", "cc") + #elif defined(MA_X64) + #define ma_atomic_thread_fence(order) __asm__ __volatile__("lock; addq $0, (%%rsp)" ::: "memory", "cc") #else #error Unsupported architecture. Please submit a feature request. #endif - static C89ATOMIC_INLINE c89atomic_uint8 c89atomic_compare_and_swap_8(volatile c89atomic_uint8* dst, c89atomic_uint8 expected, c89atomic_uint8 desired) + static MA_INLINE ma_uint8 ma_atomic_compare_and_swap_8(volatile ma_uint8* dst, ma_uint8 expected, ma_uint8 desired) { - c89atomic_uint8 result; - #if defined(C89ATOMIC_X86) || defined(C89ATOMIC_X64) + ma_uint8 result; + #if defined(MA_X86) || defined(MA_X64) __asm__ __volatile__("lock; cmpxchg %3, %0" : "+m"(*dst), "=a"(result) : "a"(expected), "d"(desired) : "cc"); #else #error Unsupported architecture. Please submit a feature request. #endif return result; } - static C89ATOMIC_INLINE c89atomic_uint16 c89atomic_compare_and_swap_16(volatile c89atomic_uint16* dst, c89atomic_uint16 expected, c89atomic_uint16 desired) + static MA_INLINE ma_uint16 ma_atomic_compare_and_swap_16(volatile ma_uint16* dst, ma_uint16 expected, ma_uint16 desired) { - c89atomic_uint16 result; - #if defined(C89ATOMIC_X86) || defined(C89ATOMIC_X64) + ma_uint16 result; + #if defined(MA_X86) || defined(MA_X64) __asm__ __volatile__("lock; cmpxchg %3, %0" : "+m"(*dst), "=a"(result) : "a"(expected), "d"(desired) : "cc"); #else #error Unsupported architecture. Please submit a feature request. #endif return result; } - static C89ATOMIC_INLINE c89atomic_uint32 c89atomic_compare_and_swap_32(volatile c89atomic_uint32* dst, c89atomic_uint32 expected, c89atomic_uint32 desired) + static MA_INLINE ma_uint32 ma_atomic_compare_and_swap_32(volatile ma_uint32* dst, ma_uint32 expected, ma_uint32 desired) { - c89atomic_uint32 result; - #if defined(C89ATOMIC_X86) || defined(C89ATOMIC_X64) + ma_uint32 result; + #if defined(MA_X86) || defined(MA_X64) __asm__ __volatile__("lock; cmpxchg %3, %0" : "+m"(*dst), "=a"(result) : "a"(expected), "d"(desired) : "cc"); #else #error Unsupported architecture. Please submit a feature request. #endif return result; } - static C89ATOMIC_INLINE c89atomic_uint64 c89atomic_compare_and_swap_64(volatile c89atomic_uint64* dst, c89atomic_uint64 expected, c89atomic_uint64 desired) + static MA_INLINE ma_uint64 ma_atomic_compare_and_swap_64(volatile ma_uint64* dst, ma_uint64 expected, ma_uint64 desired) { - volatile c89atomic_uint64 result; - #if defined(C89ATOMIC_X86) - c89atomic_uint32 resultEAX; - c89atomic_uint32 resultEDX; + volatile ma_uint64 result; + #if defined(MA_X86) + ma_uint32 resultEAX; + ma_uint32 resultEDX; __asm__ __volatile__("push %%ebx; xchg %5, %%ebx; lock; cmpxchg8b %0; pop %%ebx" : "+m"(*dst), "=a"(resultEAX), "=d"(resultEDX) : "a"(expected & 0xFFFFFFFF), "d"(expected >> 32), "r"(desired & 0xFFFFFFFF), "c"(desired >> 32) : "cc"); - result = ((c89atomic_uint64)resultEDX << 32) | resultEAX; - #elif defined(C89ATOMIC_X64) + result = ((ma_uint64)resultEDX << 32) | resultEAX; + #elif defined(MA_X64) __asm__ __volatile__("lock; cmpxchg %3, %0" : "+m"(*dst), "=a"(result) : "a"(expected), "d"(desired) : "cc"); #else #error Unsupported architecture. Please submit a feature request. #endif return result; } - static C89ATOMIC_INLINE c89atomic_uint8 c89atomic_exchange_explicit_8(volatile c89atomic_uint8* dst, c89atomic_uint8 src, c89atomic_memory_order order) + static MA_INLINE ma_uint8 ma_atomic_exchange_explicit_8(volatile ma_uint8* dst, ma_uint8 src, ma_atomic_memory_order order) { - c89atomic_uint8 result = 0; + ma_uint8 result = 0; (void)order; - #if defined(C89ATOMIC_X86) || defined(C89ATOMIC_X64) + #if defined(MA_X86) || defined(MA_X64) __asm__ __volatile__("lock; xchg %1, %0" : "+m"(*dst), "=a"(result) : "a"(src)); #else #error Unsupported architecture. Please submit a feature request. #endif return result; } - static C89ATOMIC_INLINE c89atomic_uint16 c89atomic_exchange_explicit_16(volatile c89atomic_uint16* dst, c89atomic_uint16 src, c89atomic_memory_order order) + static MA_INLINE ma_uint16 ma_atomic_exchange_explicit_16(volatile ma_uint16* dst, ma_uint16 src, ma_atomic_memory_order order) { - c89atomic_uint16 result = 0; + ma_uint16 result = 0; (void)order; - #if defined(C89ATOMIC_X86) || defined(C89ATOMIC_X64) + #if defined(MA_X86) || defined(MA_X64) __asm__ __volatile__("lock; xchg %1, %0" : "+m"(*dst), "=a"(result) : "a"(src)); #else #error Unsupported architecture. Please submit a feature request. #endif return result; } - static C89ATOMIC_INLINE c89atomic_uint32 c89atomic_exchange_explicit_32(volatile c89atomic_uint32* dst, c89atomic_uint32 src, c89atomic_memory_order order) + static MA_INLINE ma_uint32 ma_atomic_exchange_explicit_32(volatile ma_uint32* dst, ma_uint32 src, ma_atomic_memory_order order) { - c89atomic_uint32 result; + ma_uint32 result; (void)order; - #if defined(C89ATOMIC_X86) || defined(C89ATOMIC_X64) + #if defined(MA_X86) || defined(MA_X64) __asm__ __volatile__("lock; xchg %1, %0" : "+m"(*dst), "=a"(result) : "a"(src)); #else #error Unsupported architecture. Please submit a feature request. #endif return result; } - static C89ATOMIC_INLINE c89atomic_uint64 c89atomic_exchange_explicit_64(volatile c89atomic_uint64* dst, c89atomic_uint64 src, c89atomic_memory_order order) + static MA_INLINE ma_uint64 ma_atomic_exchange_explicit_64(volatile ma_uint64* dst, ma_uint64 src, ma_atomic_memory_order order) { - c89atomic_uint64 result; + ma_uint64 result; (void)order; - #if defined(C89ATOMIC_X86) + #if defined(MA_X86) do { result = *dst; - } while (c89atomic_compare_and_swap_64(dst, result, src) != result); - #elif defined(C89ATOMIC_X64) + } while (ma_atomic_compare_and_swap_64(dst, result, src) != result); + #elif defined(MA_X64) __asm__ __volatile__("lock; xchg %1, %0" : "+m"(*dst), "=a"(result) : "a"(src)); #else #error Unsupported architecture. Please submit a feature request. #endif return result; } - static C89ATOMIC_INLINE c89atomic_uint8 c89atomic_fetch_add_explicit_8(volatile c89atomic_uint8* dst, c89atomic_uint8 src, c89atomic_memory_order order) + static MA_INLINE ma_uint8 ma_atomic_fetch_add_explicit_8(volatile ma_uint8* dst, ma_uint8 src, ma_atomic_memory_order order) { - c89atomic_uint8 result; + ma_uint8 result; (void)order; - #if defined(C89ATOMIC_X86) || defined(C89ATOMIC_X64) + #if defined(MA_X86) || defined(MA_X64) __asm__ __volatile__("lock; xadd %1, %0" : "+m"(*dst), "=a"(result) : "a"(src) : "cc"); #else #error Unsupported architecture. Please submit a feature request. #endif return result; } - static C89ATOMIC_INLINE c89atomic_uint16 c89atomic_fetch_add_explicit_16(volatile c89atomic_uint16* dst, c89atomic_uint16 src, c89atomic_memory_order order) + static MA_INLINE ma_uint16 ma_atomic_fetch_add_explicit_16(volatile ma_uint16* dst, ma_uint16 src, ma_atomic_memory_order order) { - c89atomic_uint16 result; + ma_uint16 result; (void)order; - #if defined(C89ATOMIC_X86) || defined(C89ATOMIC_X64) + #if defined(MA_X86) || defined(MA_X64) __asm__ __volatile__("lock; xadd %1, %0" : "+m"(*dst), "=a"(result) : "a"(src) : "cc"); #else #error Unsupported architecture. Please submit a feature request. #endif return result; } - static C89ATOMIC_INLINE c89atomic_uint32 c89atomic_fetch_add_explicit_32(volatile c89atomic_uint32* dst, c89atomic_uint32 src, c89atomic_memory_order order) + static MA_INLINE ma_uint32 ma_atomic_fetch_add_explicit_32(volatile ma_uint32* dst, ma_uint32 src, ma_atomic_memory_order order) { - c89atomic_uint32 result; + ma_uint32 result; (void)order; - #if defined(C89ATOMIC_X86) || defined(C89ATOMIC_X64) + #if defined(MA_X86) || defined(MA_X64) __asm__ __volatile__("lock; xadd %1, %0" : "+m"(*dst), "=a"(result) : "a"(src) : "cc"); #else #error Unsupported architecture. Please submit a feature request. #endif return result; } - static C89ATOMIC_INLINE c89atomic_uint64 c89atomic_fetch_add_explicit_64(volatile c89atomic_uint64* dst, c89atomic_uint64 src, c89atomic_memory_order order) + static MA_INLINE ma_uint64 ma_atomic_fetch_add_explicit_64(volatile ma_uint64* dst, ma_uint64 src, ma_atomic_memory_order order) { - #if defined(C89ATOMIC_X86) - c89atomic_uint64 oldValue; - c89atomic_uint64 newValue; + #if defined(MA_X86) + ma_uint64 oldValue; + ma_uint64 newValue; (void)order; do { oldValue = *dst; newValue = oldValue + src; - } while (c89atomic_compare_and_swap_64(dst, oldValue, newValue) != oldValue); + } while (ma_atomic_compare_and_swap_64(dst, oldValue, newValue) != oldValue); return oldValue; - #elif defined(C89ATOMIC_X64) - c89atomic_uint64 result; + #elif defined(MA_X64) + ma_uint64 result; (void)order; __asm__ __volatile__("lock; xadd %1, %0" : "+m"(*dst), "=a"(result) : "a"(src) : "cc"); return result; #endif } - static C89ATOMIC_INLINE c89atomic_uint8 c89atomic_fetch_sub_explicit_8(volatile c89atomic_uint8* dst, c89atomic_uint8 src, c89atomic_memory_order order) + static MA_INLINE ma_uint8 ma_atomic_fetch_sub_explicit_8(volatile ma_uint8* dst, ma_uint8 src, ma_atomic_memory_order order) { - c89atomic_uint8 oldValue; - c89atomic_uint8 newValue; + ma_uint8 oldValue; + ma_uint8 newValue; do { oldValue = *dst; - newValue = (c89atomic_uint8)(oldValue - src); - } while (c89atomic_compare_and_swap_8(dst, oldValue, newValue) != oldValue); + newValue = (ma_uint8)(oldValue - src); + } while (ma_atomic_compare_and_swap_8(dst, oldValue, newValue) != oldValue); (void)order; return oldValue; } - static C89ATOMIC_INLINE c89atomic_uint16 c89atomic_fetch_sub_explicit_16(volatile c89atomic_uint16* dst, c89atomic_uint16 src, c89atomic_memory_order order) + static MA_INLINE ma_uint16 ma_atomic_fetch_sub_explicit_16(volatile ma_uint16* dst, ma_uint16 src, ma_atomic_memory_order order) { - c89atomic_uint16 oldValue; - c89atomic_uint16 newValue; + ma_uint16 oldValue; + ma_uint16 newValue; do { oldValue = *dst; - newValue = (c89atomic_uint16)(oldValue - src); - } while (c89atomic_compare_and_swap_16(dst, oldValue, newValue) != oldValue); + newValue = (ma_uint16)(oldValue - src); + } while (ma_atomic_compare_and_swap_16(dst, oldValue, newValue) != oldValue); (void)order; return oldValue; } - static C89ATOMIC_INLINE c89atomic_uint32 c89atomic_fetch_sub_explicit_32(volatile c89atomic_uint32* dst, c89atomic_uint32 src, c89atomic_memory_order order) + static MA_INLINE ma_uint32 ma_atomic_fetch_sub_explicit_32(volatile ma_uint32* dst, ma_uint32 src, ma_atomic_memory_order order) { - c89atomic_uint32 oldValue; - c89atomic_uint32 newValue; + ma_uint32 oldValue; + ma_uint32 newValue; do { oldValue = *dst; newValue = oldValue - src; - } while (c89atomic_compare_and_swap_32(dst, oldValue, newValue) != oldValue); + } while (ma_atomic_compare_and_swap_32(dst, oldValue, newValue) != oldValue); (void)order; return oldValue; } - static C89ATOMIC_INLINE c89atomic_uint64 c89atomic_fetch_sub_explicit_64(volatile c89atomic_uint64* dst, c89atomic_uint64 src, c89atomic_memory_order order) + static MA_INLINE ma_uint64 ma_atomic_fetch_sub_explicit_64(volatile ma_uint64* dst, ma_uint64 src, ma_atomic_memory_order order) { - c89atomic_uint64 oldValue; - c89atomic_uint64 newValue; + ma_uint64 oldValue; + ma_uint64 newValue; do { oldValue = *dst; newValue = oldValue - src; - } while (c89atomic_compare_and_swap_64(dst, oldValue, newValue) != oldValue); + } while (ma_atomic_compare_and_swap_64(dst, oldValue, newValue) != oldValue); (void)order; return oldValue; } - static C89ATOMIC_INLINE c89atomic_uint8 c89atomic_fetch_and_explicit_8(volatile c89atomic_uint8* dst, c89atomic_uint8 src, c89atomic_memory_order order) + static MA_INLINE ma_uint8 ma_atomic_fetch_and_explicit_8(volatile ma_uint8* dst, ma_uint8 src, ma_atomic_memory_order order) { - c89atomic_uint8 oldValue; - c89atomic_uint8 newValue; + ma_uint8 oldValue; + ma_uint8 newValue; do { oldValue = *dst; - newValue = (c89atomic_uint8)(oldValue & src); - } while (c89atomic_compare_and_swap_8(dst, oldValue, newValue) != oldValue); + newValue = (ma_uint8)(oldValue & src); + } while (ma_atomic_compare_and_swap_8(dst, oldValue, newValue) != oldValue); (void)order; return oldValue; } - static C89ATOMIC_INLINE c89atomic_uint16 c89atomic_fetch_and_explicit_16(volatile c89atomic_uint16* dst, c89atomic_uint16 src, c89atomic_memory_order order) + static MA_INLINE ma_uint16 ma_atomic_fetch_and_explicit_16(volatile ma_uint16* dst, ma_uint16 src, ma_atomic_memory_order order) { - c89atomic_uint16 oldValue; - c89atomic_uint16 newValue; + ma_uint16 oldValue; + ma_uint16 newValue; do { oldValue = *dst; - newValue = (c89atomic_uint16)(oldValue & src); - } while (c89atomic_compare_and_swap_16(dst, oldValue, newValue) != oldValue); + newValue = (ma_uint16)(oldValue & src); + } while (ma_atomic_compare_and_swap_16(dst, oldValue, newValue) != oldValue); (void)order; return oldValue; } - static C89ATOMIC_INLINE c89atomic_uint32 c89atomic_fetch_and_explicit_32(volatile c89atomic_uint32* dst, c89atomic_uint32 src, c89atomic_memory_order order) + static MA_INLINE ma_uint32 ma_atomic_fetch_and_explicit_32(volatile ma_uint32* dst, ma_uint32 src, ma_atomic_memory_order order) { - c89atomic_uint32 oldValue; - c89atomic_uint32 newValue; + ma_uint32 oldValue; + ma_uint32 newValue; do { oldValue = *dst; newValue = oldValue & src; - } while (c89atomic_compare_and_swap_32(dst, oldValue, newValue) != oldValue); + } while (ma_atomic_compare_and_swap_32(dst, oldValue, newValue) != oldValue); (void)order; return oldValue; } - static C89ATOMIC_INLINE c89atomic_uint64 c89atomic_fetch_and_explicit_64(volatile c89atomic_uint64* dst, c89atomic_uint64 src, c89atomic_memory_order order) + static MA_INLINE ma_uint64 ma_atomic_fetch_and_explicit_64(volatile ma_uint64* dst, ma_uint64 src, ma_atomic_memory_order order) { - c89atomic_uint64 oldValue; - c89atomic_uint64 newValue; + ma_uint64 oldValue; + ma_uint64 newValue; do { oldValue = *dst; newValue = oldValue & src; - } while (c89atomic_compare_and_swap_64(dst, oldValue, newValue) != oldValue); + } while (ma_atomic_compare_and_swap_64(dst, oldValue, newValue) != oldValue); (void)order; return oldValue; } - static C89ATOMIC_INLINE c89atomic_uint8 c89atomic_fetch_xor_explicit_8(volatile c89atomic_uint8* dst, c89atomic_uint8 src, c89atomic_memory_order order) + static MA_INLINE ma_uint8 ma_atomic_fetch_xor_explicit_8(volatile ma_uint8* dst, ma_uint8 src, ma_atomic_memory_order order) { - c89atomic_uint8 oldValue; - c89atomic_uint8 newValue; + ma_uint8 oldValue; + ma_uint8 newValue; do { oldValue = *dst; - newValue = (c89atomic_uint8)(oldValue ^ src); - } while (c89atomic_compare_and_swap_8(dst, oldValue, newValue) != oldValue); + newValue = (ma_uint8)(oldValue ^ src); + } while (ma_atomic_compare_and_swap_8(dst, oldValue, newValue) != oldValue); (void)order; return oldValue; } - static C89ATOMIC_INLINE c89atomic_uint16 c89atomic_fetch_xor_explicit_16(volatile c89atomic_uint16* dst, c89atomic_uint16 src, c89atomic_memory_order order) + static MA_INLINE ma_uint16 ma_atomic_fetch_xor_explicit_16(volatile ma_uint16* dst, ma_uint16 src, ma_atomic_memory_order order) { - c89atomic_uint16 oldValue; - c89atomic_uint16 newValue; + ma_uint16 oldValue; + ma_uint16 newValue; do { oldValue = *dst; - newValue = (c89atomic_uint16)(oldValue ^ src); - } while (c89atomic_compare_and_swap_16(dst, oldValue, newValue) != oldValue); + newValue = (ma_uint16)(oldValue ^ src); + } while (ma_atomic_compare_and_swap_16(dst, oldValue, newValue) != oldValue); (void)order; return oldValue; } - static C89ATOMIC_INLINE c89atomic_uint32 c89atomic_fetch_xor_explicit_32(volatile c89atomic_uint32* dst, c89atomic_uint32 src, c89atomic_memory_order order) + static MA_INLINE ma_uint32 ma_atomic_fetch_xor_explicit_32(volatile ma_uint32* dst, ma_uint32 src, ma_atomic_memory_order order) { - c89atomic_uint32 oldValue; - c89atomic_uint32 newValue; + ma_uint32 oldValue; + ma_uint32 newValue; do { oldValue = *dst; newValue = oldValue ^ src; - } while (c89atomic_compare_and_swap_32(dst, oldValue, newValue) != oldValue); + } while (ma_atomic_compare_and_swap_32(dst, oldValue, newValue) != oldValue); (void)order; return oldValue; } - static C89ATOMIC_INLINE c89atomic_uint64 c89atomic_fetch_xor_explicit_64(volatile c89atomic_uint64* dst, c89atomic_uint64 src, c89atomic_memory_order order) + static MA_INLINE ma_uint64 ma_atomic_fetch_xor_explicit_64(volatile ma_uint64* dst, ma_uint64 src, ma_atomic_memory_order order) { - c89atomic_uint64 oldValue; - c89atomic_uint64 newValue; + ma_uint64 oldValue; + ma_uint64 newValue; do { oldValue = *dst; newValue = oldValue ^ src; - } while (c89atomic_compare_and_swap_64(dst, oldValue, newValue) != oldValue); + } while (ma_atomic_compare_and_swap_64(dst, oldValue, newValue) != oldValue); (void)order; return oldValue; } - static C89ATOMIC_INLINE c89atomic_uint8 c89atomic_fetch_or_explicit_8(volatile c89atomic_uint8* dst, c89atomic_uint8 src, c89atomic_memory_order order) + static MA_INLINE ma_uint8 ma_atomic_fetch_or_explicit_8(volatile ma_uint8* dst, ma_uint8 src, ma_atomic_memory_order order) { - c89atomic_uint8 oldValue; - c89atomic_uint8 newValue; + ma_uint8 oldValue; + ma_uint8 newValue; do { oldValue = *dst; - newValue = (c89atomic_uint8)(oldValue | src); - } while (c89atomic_compare_and_swap_8(dst, oldValue, newValue) != oldValue); + newValue = (ma_uint8)(oldValue | src); + } while (ma_atomic_compare_and_swap_8(dst, oldValue, newValue) != oldValue); (void)order; return oldValue; } - static C89ATOMIC_INLINE c89atomic_uint16 c89atomic_fetch_or_explicit_16(volatile c89atomic_uint16* dst, c89atomic_uint16 src, c89atomic_memory_order order) + static MA_INLINE ma_uint16 ma_atomic_fetch_or_explicit_16(volatile ma_uint16* dst, ma_uint16 src, ma_atomic_memory_order order) { - c89atomic_uint16 oldValue; - c89atomic_uint16 newValue; + ma_uint16 oldValue; + ma_uint16 newValue; do { oldValue = *dst; - newValue = (c89atomic_uint16)(oldValue | src); - } while (c89atomic_compare_and_swap_16(dst, oldValue, newValue) != oldValue); + newValue = (ma_uint16)(oldValue | src); + } while (ma_atomic_compare_and_swap_16(dst, oldValue, newValue) != oldValue); (void)order; return oldValue; } - static C89ATOMIC_INLINE c89atomic_uint32 c89atomic_fetch_or_explicit_32(volatile c89atomic_uint32* dst, c89atomic_uint32 src, c89atomic_memory_order order) + static MA_INLINE ma_uint32 ma_atomic_fetch_or_explicit_32(volatile ma_uint32* dst, ma_uint32 src, ma_atomic_memory_order order) { - c89atomic_uint32 oldValue; - c89atomic_uint32 newValue; + ma_uint32 oldValue; + ma_uint32 newValue; do { oldValue = *dst; newValue = oldValue | src; - } while (c89atomic_compare_and_swap_32(dst, oldValue, newValue) != oldValue); + } while (ma_atomic_compare_and_swap_32(dst, oldValue, newValue) != oldValue); (void)order; return oldValue; } - static C89ATOMIC_INLINE c89atomic_uint64 c89atomic_fetch_or_explicit_64(volatile c89atomic_uint64* dst, c89atomic_uint64 src, c89atomic_memory_order order) + static MA_INLINE ma_uint64 ma_atomic_fetch_or_explicit_64(volatile ma_uint64* dst, ma_uint64 src, ma_atomic_memory_order order) { - c89atomic_uint64 oldValue; - c89atomic_uint64 newValue; + ma_uint64 oldValue; + ma_uint64 newValue; do { oldValue = *dst; newValue = oldValue | src; - } while (c89atomic_compare_and_swap_64(dst, oldValue, newValue) != oldValue); + } while (ma_atomic_compare_and_swap_64(dst, oldValue, newValue) != oldValue); (void)order; return oldValue; } #endif - #define c89atomic_signal_fence(order) c89atomic_thread_fence(order) - static C89ATOMIC_INLINE c89atomic_uint8 c89atomic_load_explicit_8(volatile const c89atomic_uint8* ptr, c89atomic_memory_order order) + #define ma_atomic_signal_fence(order) ma_atomic_thread_fence(order) + static MA_INLINE ma_uint8 ma_atomic_load_explicit_8(volatile const ma_uint8* ptr, ma_atomic_memory_order order) { (void)order; - return c89atomic_compare_and_swap_8((c89atomic_uint8*)ptr, 0, 0); + return ma_atomic_compare_and_swap_8((ma_uint8*)ptr, 0, 0); } - static C89ATOMIC_INLINE c89atomic_uint16 c89atomic_load_explicit_16(volatile const c89atomic_uint16* ptr, c89atomic_memory_order order) + static MA_INLINE ma_uint16 ma_atomic_load_explicit_16(volatile const ma_uint16* ptr, ma_atomic_memory_order order) { (void)order; - return c89atomic_compare_and_swap_16((c89atomic_uint16*)ptr, 0, 0); + return ma_atomic_compare_and_swap_16((ma_uint16*)ptr, 0, 0); } - static C89ATOMIC_INLINE c89atomic_uint32 c89atomic_load_explicit_32(volatile const c89atomic_uint32* ptr, c89atomic_memory_order order) + static MA_INLINE ma_uint32 ma_atomic_load_explicit_32(volatile const ma_uint32* ptr, ma_atomic_memory_order order) { (void)order; - return c89atomic_compare_and_swap_32((c89atomic_uint32*)ptr, 0, 0); + return ma_atomic_compare_and_swap_32((ma_uint32*)ptr, 0, 0); } - static C89ATOMIC_INLINE c89atomic_uint64 c89atomic_load_explicit_64(volatile const c89atomic_uint64* ptr, c89atomic_memory_order order) + static MA_INLINE ma_uint64 ma_atomic_load_explicit_64(volatile const ma_uint64* ptr, ma_atomic_memory_order order) { (void)order; - return c89atomic_compare_and_swap_64((c89atomic_uint64*)ptr, 0, 0); + return ma_atomic_compare_and_swap_64((ma_uint64*)ptr, 0, 0); } - #define c89atomic_store_explicit_8( dst, src, order) (void)c89atomic_exchange_explicit_8 (dst, src, order) - #define c89atomic_store_explicit_16(dst, src, order) (void)c89atomic_exchange_explicit_16(dst, src, order) - #define c89atomic_store_explicit_32(dst, src, order) (void)c89atomic_exchange_explicit_32(dst, src, order) - #define c89atomic_store_explicit_64(dst, src, order) (void)c89atomic_exchange_explicit_64(dst, src, order) - #define c89atomic_test_and_set_explicit_8( dst, order) c89atomic_exchange_explicit_8 (dst, 1, order) - #define c89atomic_test_and_set_explicit_16(dst, order) c89atomic_exchange_explicit_16(dst, 1, order) - #define c89atomic_test_and_set_explicit_32(dst, order) c89atomic_exchange_explicit_32(dst, 1, order) - #define c89atomic_test_and_set_explicit_64(dst, order) c89atomic_exchange_explicit_64(dst, 1, order) - #define c89atomic_clear_explicit_8( dst, order) c89atomic_store_explicit_8 (dst, 0, order) - #define c89atomic_clear_explicit_16(dst, order) c89atomic_store_explicit_16(dst, 0, order) - #define c89atomic_clear_explicit_32(dst, order) c89atomic_store_explicit_32(dst, 0, order) - #define c89atomic_clear_explicit_64(dst, order) c89atomic_store_explicit_64(dst, 0, order) - typedef c89atomic_uint8 c89atomic_flag; - #define c89atomic_flag_test_and_set_explicit(ptr, order) (c89atomic_bool)c89atomic_test_and_set_explicit_8(ptr, order) - #define c89atomic_flag_clear_explicit(ptr, order) c89atomic_clear_explicit_8(ptr, order) - #define c89atoimc_flag_load_explicit(ptr, order) c89atomic_load_explicit_8(ptr, order) + #define ma_atomic_store_explicit_8( dst, src, order) (void)ma_atomic_exchange_explicit_8 (dst, src, order) + #define ma_atomic_store_explicit_16(dst, src, order) (void)ma_atomic_exchange_explicit_16(dst, src, order) + #define ma_atomic_store_explicit_32(dst, src, order) (void)ma_atomic_exchange_explicit_32(dst, src, order) + #define ma_atomic_store_explicit_64(dst, src, order) (void)ma_atomic_exchange_explicit_64(dst, src, order) + #define ma_atomic_test_and_set_explicit_8( dst, order) ma_atomic_exchange_explicit_8 (dst, 1, order) + #define ma_atomic_test_and_set_explicit_16(dst, order) ma_atomic_exchange_explicit_16(dst, 1, order) + #define ma_atomic_test_and_set_explicit_32(dst, order) ma_atomic_exchange_explicit_32(dst, 1, order) + #define ma_atomic_test_and_set_explicit_64(dst, order) ma_atomic_exchange_explicit_64(dst, 1, order) + #define ma_atomic_clear_explicit_8( dst, order) ma_atomic_store_explicit_8 (dst, 0, order) + #define ma_atomic_clear_explicit_16(dst, order) ma_atomic_store_explicit_16(dst, 0, order) + #define ma_atomic_clear_explicit_32(dst, order) ma_atomic_store_explicit_32(dst, 0, order) + #define ma_atomic_clear_explicit_64(dst, order) ma_atomic_store_explicit_64(dst, 0, order) + typedef ma_uint8 ma_atomic_flag; + #define ma_atomic_flag_test_and_set_explicit(ptr, order) (ma_bool32)ma_atomic_test_and_set_explicit_8(ptr, order) + #define ma_atomic_flag_clear_explicit(ptr, order) ma_atomic_clear_explicit_8(ptr, order) + #define c89atoimc_flag_load_explicit(ptr, order) ma_atomic_load_explicit_8(ptr, order) #endif -#if !defined(C89ATOMIC_HAS_NATIVE_COMPARE_EXCHANGE) - #if defined(C89ATOMIC_HAS_8) - c89atomic_bool c89atomic_compare_exchange_strong_explicit_8(volatile c89atomic_uint8* dst, c89atomic_uint8* expected, c89atomic_uint8 desired, c89atomic_memory_order successOrder, c89atomic_memory_order failureOrder) +#if !defined(MA_ATOMIC_HAS_NATIVE_COMPARE_EXCHANGE) + #if defined(MA_ATOMIC_HAS_8) + static MA_INLINE ma_bool32 ma_atomic_compare_exchange_strong_explicit_8(volatile ma_uint8* dst, ma_uint8* expected, ma_uint8 desired, ma_atomic_memory_order successOrder, ma_atomic_memory_order failureOrder) { - c89atomic_uint8 expectedValue; - c89atomic_uint8 result; + ma_uint8 expectedValue; + ma_uint8 result; (void)successOrder; (void)failureOrder; - expectedValue = c89atomic_load_explicit_8(expected, c89atomic_memory_order_seq_cst); - result = c89atomic_compare_and_swap_8(dst, expectedValue, desired); + expectedValue = ma_atomic_load_explicit_8(expected, ma_atomic_memory_order_seq_cst); + result = ma_atomic_compare_and_swap_8(dst, expectedValue, desired); if (result == expectedValue) { return 1; } else { - c89atomic_store_explicit_8(expected, result, failureOrder); + ma_atomic_store_explicit_8(expected, result, failureOrder); return 0; } } #endif - #if defined(C89ATOMIC_HAS_16) - c89atomic_bool c89atomic_compare_exchange_strong_explicit_16(volatile c89atomic_uint16* dst, c89atomic_uint16* expected, c89atomic_uint16 desired, c89atomic_memory_order successOrder, c89atomic_memory_order failureOrder) + #if defined(MA_ATOMIC_HAS_16) + static MA_INLINE ma_bool32 ma_atomic_compare_exchange_strong_explicit_16(volatile ma_uint16* dst, ma_uint16* expected, ma_uint16 desired, ma_atomic_memory_order successOrder, ma_atomic_memory_order failureOrder) { - c89atomic_uint16 expectedValue; - c89atomic_uint16 result; + ma_uint16 expectedValue; + ma_uint16 result; (void)successOrder; (void)failureOrder; - expectedValue = c89atomic_load_explicit_16(expected, c89atomic_memory_order_seq_cst); - result = c89atomic_compare_and_swap_16(dst, expectedValue, desired); + expectedValue = ma_atomic_load_explicit_16(expected, ma_atomic_memory_order_seq_cst); + result = ma_atomic_compare_and_swap_16(dst, expectedValue, desired); if (result == expectedValue) { return 1; } else { - c89atomic_store_explicit_16(expected, result, failureOrder); + ma_atomic_store_explicit_16(expected, result, failureOrder); return 0; } } #endif - #if defined(C89ATOMIC_HAS_32) - c89atomic_bool c89atomic_compare_exchange_strong_explicit_32(volatile c89atomic_uint32* dst, c89atomic_uint32* expected, c89atomic_uint32 desired, c89atomic_memory_order successOrder, c89atomic_memory_order failureOrder) + #if defined(MA_ATOMIC_HAS_32) + static MA_INLINE ma_bool32 ma_atomic_compare_exchange_strong_explicit_32(volatile ma_uint32* dst, ma_uint32* expected, ma_uint32 desired, ma_atomic_memory_order successOrder, ma_atomic_memory_order failureOrder) { - c89atomic_uint32 expectedValue; - c89atomic_uint32 result; + ma_uint32 expectedValue; + ma_uint32 result; (void)successOrder; (void)failureOrder; - expectedValue = c89atomic_load_explicit_32(expected, c89atomic_memory_order_seq_cst); - result = c89atomic_compare_and_swap_32(dst, expectedValue, desired); + expectedValue = ma_atomic_load_explicit_32(expected, ma_atomic_memory_order_seq_cst); + result = ma_atomic_compare_and_swap_32(dst, expectedValue, desired); if (result == expectedValue) { return 1; } else { - c89atomic_store_explicit_32(expected, result, failureOrder); + ma_atomic_store_explicit_32(expected, result, failureOrder); return 0; } } #endif - #if defined(C89ATOMIC_HAS_64) - c89atomic_bool c89atomic_compare_exchange_strong_explicit_64(volatile c89atomic_uint64* dst, volatile c89atomic_uint64* expected, c89atomic_uint64 desired, c89atomic_memory_order successOrder, c89atomic_memory_order failureOrder) + #if defined(MA_ATOMIC_HAS_64) + static MA_INLINE ma_bool32 ma_atomic_compare_exchange_strong_explicit_64(volatile ma_uint64* dst, volatile ma_uint64* expected, ma_uint64 desired, ma_atomic_memory_order successOrder, ma_atomic_memory_order failureOrder) { - c89atomic_uint64 expectedValue; - c89atomic_uint64 result; + ma_uint64 expectedValue; + ma_uint64 result; (void)successOrder; (void)failureOrder; - expectedValue = c89atomic_load_explicit_64(expected, c89atomic_memory_order_seq_cst); - result = c89atomic_compare_and_swap_64(dst, expectedValue, desired); + expectedValue = ma_atomic_load_explicit_64(expected, ma_atomic_memory_order_seq_cst); + result = ma_atomic_compare_and_swap_64(dst, expectedValue, desired); if (result == expectedValue) { return 1; } else { - c89atomic_store_explicit_64(expected, result, failureOrder); + ma_atomic_store_explicit_64(expected, result, failureOrder); return 0; } } #endif - #define c89atomic_compare_exchange_weak_explicit_8( dst, expected, desired, successOrder, failureOrder) c89atomic_compare_exchange_strong_explicit_8 (dst, expected, desired, successOrder, failureOrder) - #define c89atomic_compare_exchange_weak_explicit_16(dst, expected, desired, successOrder, failureOrder) c89atomic_compare_exchange_strong_explicit_16(dst, expected, desired, successOrder, failureOrder) - #define c89atomic_compare_exchange_weak_explicit_32(dst, expected, desired, successOrder, failureOrder) c89atomic_compare_exchange_strong_explicit_32(dst, expected, desired, successOrder, failureOrder) - #define c89atomic_compare_exchange_weak_explicit_64(dst, expected, desired, successOrder, failureOrder) c89atomic_compare_exchange_strong_explicit_64(dst, expected, desired, successOrder, failureOrder) + #define ma_atomic_compare_exchange_weak_explicit_8( dst, expected, desired, successOrder, failureOrder) ma_atomic_compare_exchange_strong_explicit_8 (dst, expected, desired, successOrder, failureOrder) + #define ma_atomic_compare_exchange_weak_explicit_16(dst, expected, desired, successOrder, failureOrder) ma_atomic_compare_exchange_strong_explicit_16(dst, expected, desired, successOrder, failureOrder) + #define ma_atomic_compare_exchange_weak_explicit_32(dst, expected, desired, successOrder, failureOrder) ma_atomic_compare_exchange_strong_explicit_32(dst, expected, desired, successOrder, failureOrder) + #define ma_atomic_compare_exchange_weak_explicit_64(dst, expected, desired, successOrder, failureOrder) ma_atomic_compare_exchange_strong_explicit_64(dst, expected, desired, successOrder, failureOrder) #endif -#if !defined(C89ATOMIC_HAS_NATIVE_IS_LOCK_FREE) - static C89ATOMIC_INLINE c89atomic_bool c89atomic_is_lock_free_8(volatile void* ptr) +#if !defined(MA_ATOMIC_HAS_NATIVE_IS_LOCK_FREE) + static MA_INLINE ma_bool32 ma_atomic_is_lock_free_8(volatile void* ptr) { (void)ptr; return 1; } - static C89ATOMIC_INLINE c89atomic_bool c89atomic_is_lock_free_16(volatile void* ptr) + static MA_INLINE ma_bool32 ma_atomic_is_lock_free_16(volatile void* ptr) { (void)ptr; return 1; } - static C89ATOMIC_INLINE c89atomic_bool c89atomic_is_lock_free_32(volatile void* ptr) + static MA_INLINE ma_bool32 ma_atomic_is_lock_free_32(volatile void* ptr) { (void)ptr; return 1; } - static C89ATOMIC_INLINE c89atomic_bool c89atomic_is_lock_free_64(volatile void* ptr) + static MA_INLINE ma_bool32 ma_atomic_is_lock_free_64(volatile void* ptr) { (void)ptr; - #if defined(C89ATOMIC_64BIT) + #if defined(MA_64BIT) return 1; #else - #if defined(C89ATOMIC_X86) || defined(C89ATOMIC_X64) + #if defined(MA_X86) || defined(MA_X64) return 1; #else return 0; @@ -14916,303 +15464,515 @@ typedef unsigned char c89atomic_bool; #endif } #endif -#if defined(C89ATOMIC_64BIT) - static C89ATOMIC_INLINE c89atomic_bool c89atomic_is_lock_free_ptr(volatile void** ptr) +#if defined(MA_64BIT) + static MA_INLINE ma_bool32 ma_atomic_is_lock_free_ptr(volatile void** ptr) { - return c89atomic_is_lock_free_64((volatile c89atomic_uint64*)ptr); + return ma_atomic_is_lock_free_64((volatile ma_uint64*)ptr); } - static C89ATOMIC_INLINE void* c89atomic_load_explicit_ptr(volatile void** ptr, c89atomic_memory_order order) + static MA_INLINE void* ma_atomic_load_explicit_ptr(volatile void** ptr, ma_atomic_memory_order order) { - return (void*)c89atomic_load_explicit_64((volatile c89atomic_uint64*)ptr, order); + return (void*)ma_atomic_load_explicit_64((volatile ma_uint64*)ptr, order); } - static C89ATOMIC_INLINE void c89atomic_store_explicit_ptr(volatile void** dst, void* src, c89atomic_memory_order order) + static MA_INLINE void ma_atomic_store_explicit_ptr(volatile void** dst, void* src, ma_atomic_memory_order order) { - c89atomic_store_explicit_64((volatile c89atomic_uint64*)dst, (c89atomic_uint64)src, order); + ma_atomic_store_explicit_64((volatile ma_uint64*)dst, (ma_uint64)src, order); } - static C89ATOMIC_INLINE void* c89atomic_exchange_explicit_ptr(volatile void** dst, void* src, c89atomic_memory_order order) + static MA_INLINE void* ma_atomic_exchange_explicit_ptr(volatile void** dst, void* src, ma_atomic_memory_order order) { - return (void*)c89atomic_exchange_explicit_64((volatile c89atomic_uint64*)dst, (c89atomic_uint64)src, order); + return (void*)ma_atomic_exchange_explicit_64((volatile ma_uint64*)dst, (ma_uint64)src, order); } - static C89ATOMIC_INLINE c89atomic_bool c89atomic_compare_exchange_strong_explicit_ptr(volatile void** dst, void** expected, void* desired, c89atomic_memory_order successOrder, c89atomic_memory_order failureOrder) + static MA_INLINE ma_bool32 ma_atomic_compare_exchange_strong_explicit_ptr(volatile void** dst, void** expected, void* desired, ma_atomic_memory_order successOrder, ma_atomic_memory_order failureOrder) { - return c89atomic_compare_exchange_strong_explicit_64((volatile c89atomic_uint64*)dst, (c89atomic_uint64*)expected, (c89atomic_uint64)desired, successOrder, failureOrder); + return ma_atomic_compare_exchange_strong_explicit_64((volatile ma_uint64*)dst, (ma_uint64*)expected, (ma_uint64)desired, successOrder, failureOrder); } - static C89ATOMIC_INLINE c89atomic_bool c89atomic_compare_exchange_weak_explicit_ptr(volatile void** dst, void** expected, void* desired, c89atomic_memory_order successOrder, c89atomic_memory_order failureOrder) + static MA_INLINE ma_bool32 ma_atomic_compare_exchange_weak_explicit_ptr(volatile void** dst, void** expected, void* desired, ma_atomic_memory_order successOrder, ma_atomic_memory_order failureOrder) { - return c89atomic_compare_exchange_weak_explicit_64((volatile c89atomic_uint64*)dst, (c89atomic_uint64*)expected, (c89atomic_uint64)desired, successOrder, failureOrder); + return ma_atomic_compare_exchange_weak_explicit_64((volatile ma_uint64*)dst, (ma_uint64*)expected, (ma_uint64)desired, successOrder, failureOrder); } - static C89ATOMIC_INLINE void* c89atomic_compare_and_swap_ptr(volatile void** dst, void* expected, void* desired) + static MA_INLINE void* ma_atomic_compare_and_swap_ptr(volatile void** dst, void* expected, void* desired) { - return (void*)c89atomic_compare_and_swap_64((volatile c89atomic_uint64*)dst, (c89atomic_uint64)expected, (c89atomic_uint64)desired); + return (void*)ma_atomic_compare_and_swap_64((volatile ma_uint64*)dst, (ma_uint64)expected, (ma_uint64)desired); } -#elif defined(C89ATOMIC_32BIT) - static C89ATOMIC_INLINE c89atomic_bool c89atomic_is_lock_free_ptr(volatile void** ptr) +#elif defined(MA_32BIT) + static MA_INLINE ma_bool32 ma_atomic_is_lock_free_ptr(volatile void** ptr) { - return c89atomic_is_lock_free_32((volatile c89atomic_uint32*)ptr); + return ma_atomic_is_lock_free_32((volatile ma_uint32*)ptr); } - static C89ATOMIC_INLINE void* c89atomic_load_explicit_ptr(volatile void** ptr, c89atomic_memory_order order) + static MA_INLINE void* ma_atomic_load_explicit_ptr(volatile void** ptr, ma_atomic_memory_order order) { - return (void*)c89atomic_load_explicit_32((volatile c89atomic_uint32*)ptr, order); + return (void*)ma_atomic_load_explicit_32((volatile ma_uint32*)ptr, order); } - static C89ATOMIC_INLINE void c89atomic_store_explicit_ptr(volatile void** dst, void* src, c89atomic_memory_order order) + static MA_INLINE void ma_atomic_store_explicit_ptr(volatile void** dst, void* src, ma_atomic_memory_order order) { - c89atomic_store_explicit_32((volatile c89atomic_uint32*)dst, (c89atomic_uint32)src, order); + ma_atomic_store_explicit_32((volatile ma_uint32*)dst, (ma_uint32)src, order); } - static C89ATOMIC_INLINE void* c89atomic_exchange_explicit_ptr(volatile void** dst, void* src, c89atomic_memory_order order) + static MA_INLINE void* ma_atomic_exchange_explicit_ptr(volatile void** dst, void* src, ma_atomic_memory_order order) { - return (void*)c89atomic_exchange_explicit_32((volatile c89atomic_uint32*)dst, (c89atomic_uint32)src, order); + return (void*)ma_atomic_exchange_explicit_32((volatile ma_uint32*)dst, (ma_uint32)src, order); } - static C89ATOMIC_INLINE c89atomic_bool c89atomic_compare_exchange_strong_explicit_ptr(volatile void** dst, void** expected, void* desired, c89atomic_memory_order successOrder, c89atomic_memory_order failureOrder) + static MA_INLINE ma_bool32 ma_atomic_compare_exchange_strong_explicit_ptr(volatile void** dst, void** expected, void* desired, ma_atomic_memory_order successOrder, ma_atomic_memory_order failureOrder) { - return c89atomic_compare_exchange_strong_explicit_32((volatile c89atomic_uint32*)dst, (c89atomic_uint32*)expected, (c89atomic_uint32)desired, successOrder, failureOrder); + return ma_atomic_compare_exchange_strong_explicit_32((volatile ma_uint32*)dst, (ma_uint32*)expected, (ma_uint32)desired, successOrder, failureOrder); } - static C89ATOMIC_INLINE c89atomic_bool c89atomic_compare_exchange_weak_explicit_ptr(volatile void** dst, void** expected, void* desired, c89atomic_memory_order successOrder, c89atomic_memory_order failureOrder) + static MA_INLINE ma_bool32 ma_atomic_compare_exchange_weak_explicit_ptr(volatile void** dst, void** expected, void* desired, ma_atomic_memory_order successOrder, ma_atomic_memory_order failureOrder) { - return c89atomic_compare_exchange_weak_explicit_32((volatile c89atomic_uint32*)dst, (c89atomic_uint32*)expected, (c89atomic_uint32)desired, successOrder, failureOrder); + return ma_atomic_compare_exchange_weak_explicit_32((volatile ma_uint32*)dst, (ma_uint32*)expected, (ma_uint32)desired, successOrder, failureOrder); } - static C89ATOMIC_INLINE void* c89atomic_compare_and_swap_ptr(volatile void** dst, void* expected, void* desired) + static MA_INLINE void* ma_atomic_compare_and_swap_ptr(volatile void** dst, void* expected, void* desired) { - return (void*)c89atomic_compare_and_swap_32((volatile c89atomic_uint32*)dst, (c89atomic_uint32)expected, (c89atomic_uint32)desired); + return (void*)ma_atomic_compare_and_swap_32((volatile ma_uint32*)dst, (ma_uint32)expected, (ma_uint32)desired); } #else #error Unsupported architecture. #endif -#define c89atomic_flag_test_and_set(ptr) c89atomic_flag_test_and_set_explicit(ptr, c89atomic_memory_order_seq_cst) -#define c89atomic_flag_clear(ptr) c89atomic_flag_clear_explicit(ptr, c89atomic_memory_order_seq_cst) -#define c89atomic_store_ptr(dst, src) c89atomic_store_explicit_ptr((volatile void**)dst, (void*)src, c89atomic_memory_order_seq_cst) -#define c89atomic_load_ptr(ptr) c89atomic_load_explicit_ptr((volatile void**)ptr, c89atomic_memory_order_seq_cst) -#define c89atomic_exchange_ptr(dst, src) c89atomic_exchange_explicit_ptr((volatile void**)dst, (void*)src, c89atomic_memory_order_seq_cst) -#define c89atomic_compare_exchange_strong_ptr(dst, expected, desired) c89atomic_compare_exchange_strong_explicit_ptr((volatile void**)dst, (void**)expected, (void*)desired, c89atomic_memory_order_seq_cst, c89atomic_memory_order_seq_cst) -#define c89atomic_compare_exchange_weak_ptr(dst, expected, desired) c89atomic_compare_exchange_weak_explicit_ptr((volatile void**)dst, (void**)expected, (void*)desired, c89atomic_memory_order_seq_cst, c89atomic_memory_order_seq_cst) -#define c89atomic_test_and_set_8( ptr) c89atomic_test_and_set_explicit_8( ptr, c89atomic_memory_order_seq_cst) -#define c89atomic_test_and_set_16(ptr) c89atomic_test_and_set_explicit_16(ptr, c89atomic_memory_order_seq_cst) -#define c89atomic_test_and_set_32(ptr) c89atomic_test_and_set_explicit_32(ptr, c89atomic_memory_order_seq_cst) -#define c89atomic_test_and_set_64(ptr) c89atomic_test_and_set_explicit_64(ptr, c89atomic_memory_order_seq_cst) -#define c89atomic_clear_8( ptr) c89atomic_clear_explicit_8( ptr, c89atomic_memory_order_seq_cst) -#define c89atomic_clear_16(ptr) c89atomic_clear_explicit_16(ptr, c89atomic_memory_order_seq_cst) -#define c89atomic_clear_32(ptr) c89atomic_clear_explicit_32(ptr, c89atomic_memory_order_seq_cst) -#define c89atomic_clear_64(ptr) c89atomic_clear_explicit_64(ptr, c89atomic_memory_order_seq_cst) -#define c89atomic_store_8( dst, src) c89atomic_store_explicit_8( dst, src, c89atomic_memory_order_seq_cst) -#define c89atomic_store_16(dst, src) c89atomic_store_explicit_16(dst, src, c89atomic_memory_order_seq_cst) -#define c89atomic_store_32(dst, src) c89atomic_store_explicit_32(dst, src, c89atomic_memory_order_seq_cst) -#define c89atomic_store_64(dst, src) c89atomic_store_explicit_64(dst, src, c89atomic_memory_order_seq_cst) -#define c89atomic_load_8( ptr) c89atomic_load_explicit_8( ptr, c89atomic_memory_order_seq_cst) -#define c89atomic_load_16(ptr) c89atomic_load_explicit_16(ptr, c89atomic_memory_order_seq_cst) -#define c89atomic_load_32(ptr) c89atomic_load_explicit_32(ptr, c89atomic_memory_order_seq_cst) -#define c89atomic_load_64(ptr) c89atomic_load_explicit_64(ptr, c89atomic_memory_order_seq_cst) -#define c89atomic_exchange_8( dst, src) c89atomic_exchange_explicit_8( dst, src, c89atomic_memory_order_seq_cst) -#define c89atomic_exchange_16(dst, src) c89atomic_exchange_explicit_16(dst, src, c89atomic_memory_order_seq_cst) -#define c89atomic_exchange_32(dst, src) c89atomic_exchange_explicit_32(dst, src, c89atomic_memory_order_seq_cst) -#define c89atomic_exchange_64(dst, src) c89atomic_exchange_explicit_64(dst, src, c89atomic_memory_order_seq_cst) -#define c89atomic_compare_exchange_strong_8( dst, expected, desired) c89atomic_compare_exchange_strong_explicit_8( dst, expected, desired, c89atomic_memory_order_seq_cst, c89atomic_memory_order_seq_cst) -#define c89atomic_compare_exchange_strong_16(dst, expected, desired) c89atomic_compare_exchange_strong_explicit_16(dst, expected, desired, c89atomic_memory_order_seq_cst, c89atomic_memory_order_seq_cst) -#define c89atomic_compare_exchange_strong_32(dst, expected, desired) c89atomic_compare_exchange_strong_explicit_32(dst, expected, desired, c89atomic_memory_order_seq_cst, c89atomic_memory_order_seq_cst) -#define c89atomic_compare_exchange_strong_64(dst, expected, desired) c89atomic_compare_exchange_strong_explicit_64(dst, expected, desired, c89atomic_memory_order_seq_cst, c89atomic_memory_order_seq_cst) -#define c89atomic_compare_exchange_weak_8( dst, expected, desired) c89atomic_compare_exchange_weak_explicit_8( dst, expected, desired, c89atomic_memory_order_seq_cst, c89atomic_memory_order_seq_cst) -#define c89atomic_compare_exchange_weak_16( dst, expected, desired) c89atomic_compare_exchange_weak_explicit_16(dst, expected, desired, c89atomic_memory_order_seq_cst, c89atomic_memory_order_seq_cst) -#define c89atomic_compare_exchange_weak_32( dst, expected, desired) c89atomic_compare_exchange_weak_explicit_32(dst, expected, desired, c89atomic_memory_order_seq_cst, c89atomic_memory_order_seq_cst) -#define c89atomic_compare_exchange_weak_64( dst, expected, desired) c89atomic_compare_exchange_weak_explicit_64(dst, expected, desired, c89atomic_memory_order_seq_cst, c89atomic_memory_order_seq_cst) -#define c89atomic_fetch_add_8( dst, src) c89atomic_fetch_add_explicit_8( dst, src, c89atomic_memory_order_seq_cst) -#define c89atomic_fetch_add_16(dst, src) c89atomic_fetch_add_explicit_16(dst, src, c89atomic_memory_order_seq_cst) -#define c89atomic_fetch_add_32(dst, src) c89atomic_fetch_add_explicit_32(dst, src, c89atomic_memory_order_seq_cst) -#define c89atomic_fetch_add_64(dst, src) c89atomic_fetch_add_explicit_64(dst, src, c89atomic_memory_order_seq_cst) -#define c89atomic_fetch_sub_8( dst, src) c89atomic_fetch_sub_explicit_8( dst, src, c89atomic_memory_order_seq_cst) -#define c89atomic_fetch_sub_16(dst, src) c89atomic_fetch_sub_explicit_16(dst, src, c89atomic_memory_order_seq_cst) -#define c89atomic_fetch_sub_32(dst, src) c89atomic_fetch_sub_explicit_32(dst, src, c89atomic_memory_order_seq_cst) -#define c89atomic_fetch_sub_64(dst, src) c89atomic_fetch_sub_explicit_64(dst, src, c89atomic_memory_order_seq_cst) -#define c89atomic_fetch_or_8( dst, src) c89atomic_fetch_or_explicit_8( dst, src, c89atomic_memory_order_seq_cst) -#define c89atomic_fetch_or_16(dst, src) c89atomic_fetch_or_explicit_16(dst, src, c89atomic_memory_order_seq_cst) -#define c89atomic_fetch_or_32(dst, src) c89atomic_fetch_or_explicit_32(dst, src, c89atomic_memory_order_seq_cst) -#define c89atomic_fetch_or_64(dst, src) c89atomic_fetch_or_explicit_64(dst, src, c89atomic_memory_order_seq_cst) -#define c89atomic_fetch_xor_8( dst, src) c89atomic_fetch_xor_explicit_8( dst, src, c89atomic_memory_order_seq_cst) -#define c89atomic_fetch_xor_16(dst, src) c89atomic_fetch_xor_explicit_16(dst, src, c89atomic_memory_order_seq_cst) -#define c89atomic_fetch_xor_32(dst, src) c89atomic_fetch_xor_explicit_32(dst, src, c89atomic_memory_order_seq_cst) -#define c89atomic_fetch_xor_64(dst, src) c89atomic_fetch_xor_explicit_64(dst, src, c89atomic_memory_order_seq_cst) -#define c89atomic_fetch_and_8( dst, src) c89atomic_fetch_and_explicit_8 (dst, src, c89atomic_memory_order_seq_cst) -#define c89atomic_fetch_and_16(dst, src) c89atomic_fetch_and_explicit_16(dst, src, c89atomic_memory_order_seq_cst) -#define c89atomic_fetch_and_32(dst, src) c89atomic_fetch_and_explicit_32(dst, src, c89atomic_memory_order_seq_cst) -#define c89atomic_fetch_and_64(dst, src) c89atomic_fetch_and_explicit_64(dst, src, c89atomic_memory_order_seq_cst) -#define c89atomic_test_and_set_explicit_i8( ptr, order) (c89atomic_int8 )c89atomic_test_and_set_explicit_8( (c89atomic_uint8* )ptr, order) -#define c89atomic_test_and_set_explicit_i16(ptr, order) (c89atomic_int16)c89atomic_test_and_set_explicit_16((c89atomic_uint16*)ptr, order) -#define c89atomic_test_and_set_explicit_i32(ptr, order) (c89atomic_int32)c89atomic_test_and_set_explicit_32((c89atomic_uint32*)ptr, order) -#define c89atomic_test_and_set_explicit_i64(ptr, order) (c89atomic_int64)c89atomic_test_and_set_explicit_64((c89atomic_uint64*)ptr, order) -#define c89atomic_clear_explicit_i8( ptr, order) c89atomic_clear_explicit_8( (c89atomic_uint8* )ptr, order) -#define c89atomic_clear_explicit_i16(ptr, order) c89atomic_clear_explicit_16((c89atomic_uint16*)ptr, order) -#define c89atomic_clear_explicit_i32(ptr, order) c89atomic_clear_explicit_32((c89atomic_uint32*)ptr, order) -#define c89atomic_clear_explicit_i64(ptr, order) c89atomic_clear_explicit_64((c89atomic_uint64*)ptr, order) -#define c89atomic_store_explicit_i8( dst, src, order) (c89atomic_int8 )c89atomic_store_explicit_8( (c89atomic_uint8* )dst, (c89atomic_uint8 )src, order) -#define c89atomic_store_explicit_i16(dst, src, order) (c89atomic_int16)c89atomic_store_explicit_16((c89atomic_uint16*)dst, (c89atomic_uint16)src, order) -#define c89atomic_store_explicit_i32(dst, src, order) (c89atomic_int32)c89atomic_store_explicit_32((c89atomic_uint32*)dst, (c89atomic_uint32)src, order) -#define c89atomic_store_explicit_i64(dst, src, order) (c89atomic_int64)c89atomic_store_explicit_64((c89atomic_uint64*)dst, (c89atomic_uint64)src, order) -#define c89atomic_load_explicit_i8( ptr, order) (c89atomic_int8 )c89atomic_load_explicit_8( (c89atomic_uint8* )ptr, order) -#define c89atomic_load_explicit_i16(ptr, order) (c89atomic_int16)c89atomic_load_explicit_16((c89atomic_uint16*)ptr, order) -#define c89atomic_load_explicit_i32(ptr, order) (c89atomic_int32)c89atomic_load_explicit_32((c89atomic_uint32*)ptr, order) -#define c89atomic_load_explicit_i64(ptr, order) (c89atomic_int64)c89atomic_load_explicit_64((c89atomic_uint64*)ptr, order) -#define c89atomic_exchange_explicit_i8( dst, src, order) (c89atomic_int8 )c89atomic_exchange_explicit_8 ((c89atomic_uint8* )dst, (c89atomic_uint8 )src, order) -#define c89atomic_exchange_explicit_i16(dst, src, order) (c89atomic_int16)c89atomic_exchange_explicit_16((c89atomic_uint16*)dst, (c89atomic_uint16)src, order) -#define c89atomic_exchange_explicit_i32(dst, src, order) (c89atomic_int32)c89atomic_exchange_explicit_32((c89atomic_uint32*)dst, (c89atomic_uint32)src, order) -#define c89atomic_exchange_explicit_i64(dst, src, order) (c89atomic_int64)c89atomic_exchange_explicit_64((c89atomic_uint64*)dst, (c89atomic_uint64)src, order) -#define c89atomic_compare_exchange_strong_explicit_i8( dst, expected, desired, successOrder, failureOrder) c89atomic_compare_exchange_strong_explicit_8( (c89atomic_uint8* )dst, (c89atomic_uint8* )expected, (c89atomic_uint8 )desired, successOrder, failureOrder) -#define c89atomic_compare_exchange_strong_explicit_i16(dst, expected, desired, successOrder, failureOrder) c89atomic_compare_exchange_strong_explicit_16((c89atomic_uint16*)dst, (c89atomic_uint16*)expected, (c89atomic_uint16)desired, successOrder, failureOrder) -#define c89atomic_compare_exchange_strong_explicit_i32(dst, expected, desired, successOrder, failureOrder) c89atomic_compare_exchange_strong_explicit_32((c89atomic_uint32*)dst, (c89atomic_uint32*)expected, (c89atomic_uint32)desired, successOrder, failureOrder) -#define c89atomic_compare_exchange_strong_explicit_i64(dst, expected, desired, successOrder, failureOrder) c89atomic_compare_exchange_strong_explicit_64((c89atomic_uint64*)dst, (c89atomic_uint64*)expected, (c89atomic_uint64)desired, successOrder, failureOrder) -#define c89atomic_compare_exchange_weak_explicit_i8( dst, expected, desired, successOrder, failureOrder) c89atomic_compare_exchange_weak_explicit_8( (c89atomic_uint8* )dst, (c89atomic_uint8* )expected, (c89atomic_uint8 )desired, successOrder, failureOrder) -#define c89atomic_compare_exchange_weak_explicit_i16(dst, expected, desired, successOrder, failureOrder) c89atomic_compare_exchange_weak_explicit_16((c89atomic_uint16*)dst, (c89atomic_uint16*)expected, (c89atomic_uint16)desired, successOrder, failureOrder) -#define c89atomic_compare_exchange_weak_explicit_i32(dst, expected, desired, successOrder, failureOrder) c89atomic_compare_exchange_weak_explicit_32((c89atomic_uint32*)dst, (c89atomic_uint32*)expected, (c89atomic_uint32)desired, successOrder, failureOrder) -#define c89atomic_compare_exchange_weak_explicit_i64(dst, expected, desired, successOrder, failureOrder) c89atomic_compare_exchange_weak_explicit_64((c89atomic_uint64*)dst, (c89atomic_uint64*)expected, (c89atomic_uint64)desired, successOrder, failureOrder) -#define c89atomic_fetch_add_explicit_i8( dst, src, order) (c89atomic_int8 )c89atomic_fetch_add_explicit_8( (c89atomic_uint8* )dst, (c89atomic_uint8 )src, order) -#define c89atomic_fetch_add_explicit_i16(dst, src, order) (c89atomic_int16)c89atomic_fetch_add_explicit_16((c89atomic_uint16*)dst, (c89atomic_uint16)src, order) -#define c89atomic_fetch_add_explicit_i32(dst, src, order) (c89atomic_int32)c89atomic_fetch_add_explicit_32((c89atomic_uint32*)dst, (c89atomic_uint32)src, order) -#define c89atomic_fetch_add_explicit_i64(dst, src, order) (c89atomic_int64)c89atomic_fetch_add_explicit_64((c89atomic_uint64*)dst, (c89atomic_uint64)src, order) -#define c89atomic_fetch_sub_explicit_i8( dst, src, order) (c89atomic_int8 )c89atomic_fetch_sub_explicit_8( (c89atomic_uint8* )dst, (c89atomic_uint8 )src, order) -#define c89atomic_fetch_sub_explicit_i16(dst, src, order) (c89atomic_int16)c89atomic_fetch_sub_explicit_16((c89atomic_uint16*)dst, (c89atomic_uint16)src, order) -#define c89atomic_fetch_sub_explicit_i32(dst, src, order) (c89atomic_int32)c89atomic_fetch_sub_explicit_32((c89atomic_uint32*)dst, (c89atomic_uint32)src, order) -#define c89atomic_fetch_sub_explicit_i64(dst, src, order) (c89atomic_int64)c89atomic_fetch_sub_explicit_64((c89atomic_uint64*)dst, (c89atomic_uint64)src, order) -#define c89atomic_fetch_or_explicit_i8( dst, src, order) (c89atomic_int8 )c89atomic_fetch_or_explicit_8( (c89atomic_uint8* )dst, (c89atomic_uint8 )src, order) -#define c89atomic_fetch_or_explicit_i16(dst, src, order) (c89atomic_int16)c89atomic_fetch_or_explicit_16((c89atomic_uint16*)dst, (c89atomic_uint16)src, order) -#define c89atomic_fetch_or_explicit_i32(dst, src, order) (c89atomic_int32)c89atomic_fetch_or_explicit_32((c89atomic_uint32*)dst, (c89atomic_uint32)src, order) -#define c89atomic_fetch_or_explicit_i64(dst, src, order) (c89atomic_int64)c89atomic_fetch_or_explicit_64((c89atomic_uint64*)dst, (c89atomic_uint64)src, order) -#define c89atomic_fetch_xor_explicit_i8( dst, src, order) (c89atomic_int8 )c89atomic_fetch_xor_explicit_8( (c89atomic_uint8* )dst, (c89atomic_uint8 )src, order) -#define c89atomic_fetch_xor_explicit_i16(dst, src, order) (c89atomic_int16)c89atomic_fetch_xor_explicit_16((c89atomic_uint16*)dst, (c89atomic_uint16)src, order) -#define c89atomic_fetch_xor_explicit_i32(dst, src, order) (c89atomic_int32)c89atomic_fetch_xor_explicit_32((c89atomic_uint32*)dst, (c89atomic_uint32)src, order) -#define c89atomic_fetch_xor_explicit_i64(dst, src, order) (c89atomic_int64)c89atomic_fetch_xor_explicit_64((c89atomic_uint64*)dst, (c89atomic_uint64)src, order) -#define c89atomic_fetch_and_explicit_i8( dst, src, order) (c89atomic_int8 )c89atomic_fetch_and_explicit_8( (c89atomic_uint8* )dst, (c89atomic_uint8 )src, order) -#define c89atomic_fetch_and_explicit_i16(dst, src, order) (c89atomic_int16)c89atomic_fetch_and_explicit_16((c89atomic_uint16*)dst, (c89atomic_uint16)src, order) -#define c89atomic_fetch_and_explicit_i32(dst, src, order) (c89atomic_int32)c89atomic_fetch_and_explicit_32((c89atomic_uint32*)dst, (c89atomic_uint32)src, order) -#define c89atomic_fetch_and_explicit_i64(dst, src, order) (c89atomic_int64)c89atomic_fetch_and_explicit_64((c89atomic_uint64*)dst, (c89atomic_uint64)src, order) -#define c89atomic_test_and_set_i8( ptr) c89atomic_test_and_set_explicit_i8( ptr, c89atomic_memory_order_seq_cst) -#define c89atomic_test_and_set_i16(ptr) c89atomic_test_and_set_explicit_i16(ptr, c89atomic_memory_order_seq_cst) -#define c89atomic_test_and_set_i32(ptr) c89atomic_test_and_set_explicit_i32(ptr, c89atomic_memory_order_seq_cst) -#define c89atomic_test_and_set_i64(ptr) c89atomic_test_and_set_explicit_i64(ptr, c89atomic_memory_order_seq_cst) -#define c89atomic_clear_i8( ptr) c89atomic_clear_explicit_i8( ptr, c89atomic_memory_order_seq_cst) -#define c89atomic_clear_i16(ptr) c89atomic_clear_explicit_i16(ptr, c89atomic_memory_order_seq_cst) -#define c89atomic_clear_i32(ptr) c89atomic_clear_explicit_i32(ptr, c89atomic_memory_order_seq_cst) -#define c89atomic_clear_i64(ptr) c89atomic_clear_explicit_i64(ptr, c89atomic_memory_order_seq_cst) -#define c89atomic_store_i8( dst, src) c89atomic_store_explicit_i8( dst, src, c89atomic_memory_order_seq_cst) -#define c89atomic_store_i16(dst, src) c89atomic_store_explicit_i16(dst, src, c89atomic_memory_order_seq_cst) -#define c89atomic_store_i32(dst, src) c89atomic_store_explicit_i32(dst, src, c89atomic_memory_order_seq_cst) -#define c89atomic_store_i64(dst, src) c89atomic_store_explicit_i64(dst, src, c89atomic_memory_order_seq_cst) -#define c89atomic_load_i8( ptr) c89atomic_load_explicit_i8( ptr, c89atomic_memory_order_seq_cst) -#define c89atomic_load_i16(ptr) c89atomic_load_explicit_i16(ptr, c89atomic_memory_order_seq_cst) -#define c89atomic_load_i32(ptr) c89atomic_load_explicit_i32(ptr, c89atomic_memory_order_seq_cst) -#define c89atomic_load_i64(ptr) c89atomic_load_explicit_i64(ptr, c89atomic_memory_order_seq_cst) -#define c89atomic_exchange_i8( dst, src) c89atomic_exchange_explicit_i8( dst, src, c89atomic_memory_order_seq_cst) -#define c89atomic_exchange_i16(dst, src) c89atomic_exchange_explicit_i16(dst, src, c89atomic_memory_order_seq_cst) -#define c89atomic_exchange_i32(dst, src) c89atomic_exchange_explicit_i32(dst, src, c89atomic_memory_order_seq_cst) -#define c89atomic_exchange_i64(dst, src) c89atomic_exchange_explicit_i64(dst, src, c89atomic_memory_order_seq_cst) -#define c89atomic_compare_exchange_strong_i8( dst, expected, desired) c89atomic_compare_exchange_strong_explicit_i8( dst, expected, desired, c89atomic_memory_order_seq_cst, c89atomic_memory_order_seq_cst) -#define c89atomic_compare_exchange_strong_i16(dst, expected, desired) c89atomic_compare_exchange_strong_explicit_i16(dst, expected, desired, c89atomic_memory_order_seq_cst, c89atomic_memory_order_seq_cst) -#define c89atomic_compare_exchange_strong_i32(dst, expected, desired) c89atomic_compare_exchange_strong_explicit_i32(dst, expected, desired, c89atomic_memory_order_seq_cst, c89atomic_memory_order_seq_cst) -#define c89atomic_compare_exchange_strong_i64(dst, expected, desired) c89atomic_compare_exchange_strong_explicit_i64(dst, expected, desired, c89atomic_memory_order_seq_cst, c89atomic_memory_order_seq_cst) -#define c89atomic_compare_exchange_weak_i8( dst, expected, desired) c89atomic_compare_exchange_weak_explicit_i8( dst, expected, desired, c89atomic_memory_order_seq_cst, c89atomic_memory_order_seq_cst) -#define c89atomic_compare_exchange_weak_i16(dst, expected, desired) c89atomic_compare_exchange_weak_explicit_i16(dst, expected, desired, c89atomic_memory_order_seq_cst, c89atomic_memory_order_seq_cst) -#define c89atomic_compare_exchange_weak_i32(dst, expected, desired) c89atomic_compare_exchange_weak_explicit_i32(dst, expected, desired, c89atomic_memory_order_seq_cst, c89atomic_memory_order_seq_cst) -#define c89atomic_compare_exchange_weak_i64(dst, expected, desired) c89atomic_compare_exchange_weak_explicit_i64(dst, expected, desired, c89atomic_memory_order_seq_cst, c89atomic_memory_order_seq_cst) -#define c89atomic_fetch_add_i8( dst, src) c89atomic_fetch_add_explicit_i8( dst, src, c89atomic_memory_order_seq_cst) -#define c89atomic_fetch_add_i16(dst, src) c89atomic_fetch_add_explicit_i16(dst, src, c89atomic_memory_order_seq_cst) -#define c89atomic_fetch_add_i32(dst, src) c89atomic_fetch_add_explicit_i32(dst, src, c89atomic_memory_order_seq_cst) -#define c89atomic_fetch_add_i64(dst, src) c89atomic_fetch_add_explicit_i64(dst, src, c89atomic_memory_order_seq_cst) -#define c89atomic_fetch_sub_i8( dst, src) c89atomic_fetch_sub_explicit_i8( dst, src, c89atomic_memory_order_seq_cst) -#define c89atomic_fetch_sub_i16(dst, src) c89atomic_fetch_sub_explicit_i16(dst, src, c89atomic_memory_order_seq_cst) -#define c89atomic_fetch_sub_i32(dst, src) c89atomic_fetch_sub_explicit_i32(dst, src, c89atomic_memory_order_seq_cst) -#define c89atomic_fetch_sub_i64(dst, src) c89atomic_fetch_sub_explicit_i64(dst, src, c89atomic_memory_order_seq_cst) -#define c89atomic_fetch_or_i8( dst, src) c89atomic_fetch_or_explicit_i8( dst, src, c89atomic_memory_order_seq_cst) -#define c89atomic_fetch_or_i16(dst, src) c89atomic_fetch_or_explicit_i16(dst, src, c89atomic_memory_order_seq_cst) -#define c89atomic_fetch_or_i32(dst, src) c89atomic_fetch_or_explicit_i32(dst, src, c89atomic_memory_order_seq_cst) -#define c89atomic_fetch_or_i64(dst, src) c89atomic_fetch_or_explicit_i64(dst, src, c89atomic_memory_order_seq_cst) -#define c89atomic_fetch_xor_i8( dst, src) c89atomic_fetch_xor_explicit_i8( dst, src, c89atomic_memory_order_seq_cst) -#define c89atomic_fetch_xor_i16(dst, src) c89atomic_fetch_xor_explicit_i16(dst, src, c89atomic_memory_order_seq_cst) -#define c89atomic_fetch_xor_i32(dst, src) c89atomic_fetch_xor_explicit_i32(dst, src, c89atomic_memory_order_seq_cst) -#define c89atomic_fetch_xor_i64(dst, src) c89atomic_fetch_xor_explicit_i64(dst, src, c89atomic_memory_order_seq_cst) -#define c89atomic_fetch_and_i8( dst, src) c89atomic_fetch_and_explicit_i8( dst, src, c89atomic_memory_order_seq_cst) -#define c89atomic_fetch_and_i16(dst, src) c89atomic_fetch_and_explicit_i16(dst, src, c89atomic_memory_order_seq_cst) -#define c89atomic_fetch_and_i32(dst, src) c89atomic_fetch_and_explicit_i32(dst, src, c89atomic_memory_order_seq_cst) -#define c89atomic_fetch_and_i64(dst, src) c89atomic_fetch_and_explicit_i64(dst, src, c89atomic_memory_order_seq_cst) -#define c89atomic_compare_and_swap_i8( dst, expected, dedsired) (c89atomic_int8 )c89atomic_compare_and_swap_8( (c89atomic_uint8* )dst, (c89atomic_uint8 )expected, (c89atomic_uint8 )dedsired) -#define c89atomic_compare_and_swap_i16(dst, expected, dedsired) (c89atomic_int16)c89atomic_compare_and_swap_16((c89atomic_uint16*)dst, (c89atomic_uint16)expected, (c89atomic_uint16)dedsired) -#define c89atomic_compare_and_swap_i32(dst, expected, dedsired) (c89atomic_int32)c89atomic_compare_and_swap_32((c89atomic_uint32*)dst, (c89atomic_uint32)expected, (c89atomic_uint32)dedsired) -#define c89atomic_compare_and_swap_i64(dst, expected, dedsired) (c89atomic_int64)c89atomic_compare_and_swap_64((c89atomic_uint64*)dst, (c89atomic_uint64)expected, (c89atomic_uint64)dedsired) +#define ma_atomic_flag_test_and_set(ptr) ma_atomic_flag_test_and_set_explicit(ptr, ma_atomic_memory_order_seq_cst) +#define ma_atomic_flag_clear(ptr) ma_atomic_flag_clear_explicit(ptr, ma_atomic_memory_order_seq_cst) +#define ma_atomic_store_ptr(dst, src) ma_atomic_store_explicit_ptr((volatile void**)dst, (void*)src, ma_atomic_memory_order_seq_cst) +#define ma_atomic_load_ptr(ptr) ma_atomic_load_explicit_ptr((volatile void**)ptr, ma_atomic_memory_order_seq_cst) +#define ma_atomic_exchange_ptr(dst, src) ma_atomic_exchange_explicit_ptr((volatile void**)dst, (void*)src, ma_atomic_memory_order_seq_cst) +#define ma_atomic_compare_exchange_strong_ptr(dst, expected, desired) ma_atomic_compare_exchange_strong_explicit_ptr((volatile void**)dst, (void**)expected, (void*)desired, ma_atomic_memory_order_seq_cst, ma_atomic_memory_order_seq_cst) +#define ma_atomic_compare_exchange_weak_ptr(dst, expected, desired) ma_atomic_compare_exchange_weak_explicit_ptr((volatile void**)dst, (void**)expected, (void*)desired, ma_atomic_memory_order_seq_cst, ma_atomic_memory_order_seq_cst) +#define ma_atomic_test_and_set_8( ptr) ma_atomic_test_and_set_explicit_8( ptr, ma_atomic_memory_order_seq_cst) +#define ma_atomic_test_and_set_16(ptr) ma_atomic_test_and_set_explicit_16(ptr, ma_atomic_memory_order_seq_cst) +#define ma_atomic_test_and_set_32(ptr) ma_atomic_test_and_set_explicit_32(ptr, ma_atomic_memory_order_seq_cst) +#define ma_atomic_test_and_set_64(ptr) ma_atomic_test_and_set_explicit_64(ptr, ma_atomic_memory_order_seq_cst) +#define ma_atomic_clear_8( ptr) ma_atomic_clear_explicit_8( ptr, ma_atomic_memory_order_seq_cst) +#define ma_atomic_clear_16(ptr) ma_atomic_clear_explicit_16(ptr, ma_atomic_memory_order_seq_cst) +#define ma_atomic_clear_32(ptr) ma_atomic_clear_explicit_32(ptr, ma_atomic_memory_order_seq_cst) +#define ma_atomic_clear_64(ptr) ma_atomic_clear_explicit_64(ptr, ma_atomic_memory_order_seq_cst) +#define ma_atomic_store_8( dst, src) ma_atomic_store_explicit_8( dst, src, ma_atomic_memory_order_seq_cst) +#define ma_atomic_store_16(dst, src) ma_atomic_store_explicit_16(dst, src, ma_atomic_memory_order_seq_cst) +#define ma_atomic_store_32(dst, src) ma_atomic_store_explicit_32(dst, src, ma_atomic_memory_order_seq_cst) +#define ma_atomic_store_64(dst, src) ma_atomic_store_explicit_64(dst, src, ma_atomic_memory_order_seq_cst) +#define ma_atomic_load_8( ptr) ma_atomic_load_explicit_8( ptr, ma_atomic_memory_order_seq_cst) +#define ma_atomic_load_16(ptr) ma_atomic_load_explicit_16(ptr, ma_atomic_memory_order_seq_cst) +#define ma_atomic_load_32(ptr) ma_atomic_load_explicit_32(ptr, ma_atomic_memory_order_seq_cst) +#define ma_atomic_load_64(ptr) ma_atomic_load_explicit_64(ptr, ma_atomic_memory_order_seq_cst) +#define ma_atomic_exchange_8( dst, src) ma_atomic_exchange_explicit_8( dst, src, ma_atomic_memory_order_seq_cst) +#define ma_atomic_exchange_16(dst, src) ma_atomic_exchange_explicit_16(dst, src, ma_atomic_memory_order_seq_cst) +#define ma_atomic_exchange_32(dst, src) ma_atomic_exchange_explicit_32(dst, src, ma_atomic_memory_order_seq_cst) +#define ma_atomic_exchange_64(dst, src) ma_atomic_exchange_explicit_64(dst, src, ma_atomic_memory_order_seq_cst) +#define ma_atomic_compare_exchange_strong_8( dst, expected, desired) ma_atomic_compare_exchange_strong_explicit_8( dst, expected, desired, ma_atomic_memory_order_seq_cst, ma_atomic_memory_order_seq_cst) +#define ma_atomic_compare_exchange_strong_16(dst, expected, desired) ma_atomic_compare_exchange_strong_explicit_16(dst, expected, desired, ma_atomic_memory_order_seq_cst, ma_atomic_memory_order_seq_cst) +#define ma_atomic_compare_exchange_strong_32(dst, expected, desired) ma_atomic_compare_exchange_strong_explicit_32(dst, expected, desired, ma_atomic_memory_order_seq_cst, ma_atomic_memory_order_seq_cst) +#define ma_atomic_compare_exchange_strong_64(dst, expected, desired) ma_atomic_compare_exchange_strong_explicit_64(dst, expected, desired, ma_atomic_memory_order_seq_cst, ma_atomic_memory_order_seq_cst) +#define ma_atomic_compare_exchange_weak_8( dst, expected, desired) ma_atomic_compare_exchange_weak_explicit_8( dst, expected, desired, ma_atomic_memory_order_seq_cst, ma_atomic_memory_order_seq_cst) +#define ma_atomic_compare_exchange_weak_16( dst, expected, desired) ma_atomic_compare_exchange_weak_explicit_16(dst, expected, desired, ma_atomic_memory_order_seq_cst, ma_atomic_memory_order_seq_cst) +#define ma_atomic_compare_exchange_weak_32( dst, expected, desired) ma_atomic_compare_exchange_weak_explicit_32(dst, expected, desired, ma_atomic_memory_order_seq_cst, ma_atomic_memory_order_seq_cst) +#define ma_atomic_compare_exchange_weak_64( dst, expected, desired) ma_atomic_compare_exchange_weak_explicit_64(dst, expected, desired, ma_atomic_memory_order_seq_cst, ma_atomic_memory_order_seq_cst) +#define ma_atomic_fetch_add_8( dst, src) ma_atomic_fetch_add_explicit_8( dst, src, ma_atomic_memory_order_seq_cst) +#define ma_atomic_fetch_add_16(dst, src) ma_atomic_fetch_add_explicit_16(dst, src, ma_atomic_memory_order_seq_cst) +#define ma_atomic_fetch_add_32(dst, src) ma_atomic_fetch_add_explicit_32(dst, src, ma_atomic_memory_order_seq_cst) +#define ma_atomic_fetch_add_64(dst, src) ma_atomic_fetch_add_explicit_64(dst, src, ma_atomic_memory_order_seq_cst) +#define ma_atomic_fetch_sub_8( dst, src) ma_atomic_fetch_sub_explicit_8( dst, src, ma_atomic_memory_order_seq_cst) +#define ma_atomic_fetch_sub_16(dst, src) ma_atomic_fetch_sub_explicit_16(dst, src, ma_atomic_memory_order_seq_cst) +#define ma_atomic_fetch_sub_32(dst, src) ma_atomic_fetch_sub_explicit_32(dst, src, ma_atomic_memory_order_seq_cst) +#define ma_atomic_fetch_sub_64(dst, src) ma_atomic_fetch_sub_explicit_64(dst, src, ma_atomic_memory_order_seq_cst) +#define ma_atomic_fetch_or_8( dst, src) ma_atomic_fetch_or_explicit_8( dst, src, ma_atomic_memory_order_seq_cst) +#define ma_atomic_fetch_or_16(dst, src) ma_atomic_fetch_or_explicit_16(dst, src, ma_atomic_memory_order_seq_cst) +#define ma_atomic_fetch_or_32(dst, src) ma_atomic_fetch_or_explicit_32(dst, src, ma_atomic_memory_order_seq_cst) +#define ma_atomic_fetch_or_64(dst, src) ma_atomic_fetch_or_explicit_64(dst, src, ma_atomic_memory_order_seq_cst) +#define ma_atomic_fetch_xor_8( dst, src) ma_atomic_fetch_xor_explicit_8( dst, src, ma_atomic_memory_order_seq_cst) +#define ma_atomic_fetch_xor_16(dst, src) ma_atomic_fetch_xor_explicit_16(dst, src, ma_atomic_memory_order_seq_cst) +#define ma_atomic_fetch_xor_32(dst, src) ma_atomic_fetch_xor_explicit_32(dst, src, ma_atomic_memory_order_seq_cst) +#define ma_atomic_fetch_xor_64(dst, src) ma_atomic_fetch_xor_explicit_64(dst, src, ma_atomic_memory_order_seq_cst) +#define ma_atomic_fetch_and_8( dst, src) ma_atomic_fetch_and_explicit_8 (dst, src, ma_atomic_memory_order_seq_cst) +#define ma_atomic_fetch_and_16(dst, src) ma_atomic_fetch_and_explicit_16(dst, src, ma_atomic_memory_order_seq_cst) +#define ma_atomic_fetch_and_32(dst, src) ma_atomic_fetch_and_explicit_32(dst, src, ma_atomic_memory_order_seq_cst) +#define ma_atomic_fetch_and_64(dst, src) ma_atomic_fetch_and_explicit_64(dst, src, ma_atomic_memory_order_seq_cst) +#define ma_atomic_test_and_set_explicit_i8( ptr, order) (ma_int8 )ma_atomic_test_and_set_explicit_8( (ma_uint8* )ptr, order) +#define ma_atomic_test_and_set_explicit_i16(ptr, order) (ma_int16)ma_atomic_test_and_set_explicit_16((ma_uint16*)ptr, order) +#define ma_atomic_test_and_set_explicit_i32(ptr, order) (ma_int32)ma_atomic_test_and_set_explicit_32((ma_uint32*)ptr, order) +#define ma_atomic_test_and_set_explicit_i64(ptr, order) (ma_int64)ma_atomic_test_and_set_explicit_64((ma_uint64*)ptr, order) +#define ma_atomic_clear_explicit_i8( ptr, order) ma_atomic_clear_explicit_8( (ma_uint8* )ptr, order) +#define ma_atomic_clear_explicit_i16(ptr, order) ma_atomic_clear_explicit_16((ma_uint16*)ptr, order) +#define ma_atomic_clear_explicit_i32(ptr, order) ma_atomic_clear_explicit_32((ma_uint32*)ptr, order) +#define ma_atomic_clear_explicit_i64(ptr, order) ma_atomic_clear_explicit_64((ma_uint64*)ptr, order) +#define ma_atomic_store_explicit_i8( dst, src, order) ma_atomic_store_explicit_8( (ma_uint8* )dst, (ma_uint8 )src, order) +#define ma_atomic_store_explicit_i16(dst, src, order) ma_atomic_store_explicit_16((ma_uint16*)dst, (ma_uint16)src, order) +#define ma_atomic_store_explicit_i32(dst, src, order) ma_atomic_store_explicit_32((ma_uint32*)dst, (ma_uint32)src, order) +#define ma_atomic_store_explicit_i64(dst, src, order) ma_atomic_store_explicit_64((ma_uint64*)dst, (ma_uint64)src, order) +#define ma_atomic_load_explicit_i8( ptr, order) (ma_int8 )ma_atomic_load_explicit_8( (ma_uint8* )ptr, order) +#define ma_atomic_load_explicit_i16(ptr, order) (ma_int16)ma_atomic_load_explicit_16((ma_uint16*)ptr, order) +#define ma_atomic_load_explicit_i32(ptr, order) (ma_int32)ma_atomic_load_explicit_32((ma_uint32*)ptr, order) +#define ma_atomic_load_explicit_i64(ptr, order) (ma_int64)ma_atomic_load_explicit_64((ma_uint64*)ptr, order) +#define ma_atomic_exchange_explicit_i8( dst, src, order) (ma_int8 )ma_atomic_exchange_explicit_8 ((ma_uint8* )dst, (ma_uint8 )src, order) +#define ma_atomic_exchange_explicit_i16(dst, src, order) (ma_int16)ma_atomic_exchange_explicit_16((ma_uint16*)dst, (ma_uint16)src, order) +#define ma_atomic_exchange_explicit_i32(dst, src, order) (ma_int32)ma_atomic_exchange_explicit_32((ma_uint32*)dst, (ma_uint32)src, order) +#define ma_atomic_exchange_explicit_i64(dst, src, order) (ma_int64)ma_atomic_exchange_explicit_64((ma_uint64*)dst, (ma_uint64)src, order) +#define ma_atomic_compare_exchange_strong_explicit_i8( dst, expected, desired, successOrder, failureOrder) ma_atomic_compare_exchange_strong_explicit_8( (ma_uint8* )dst, (ma_uint8* )expected, (ma_uint8 )desired, successOrder, failureOrder) +#define ma_atomic_compare_exchange_strong_explicit_i16(dst, expected, desired, successOrder, failureOrder) ma_atomic_compare_exchange_strong_explicit_16((ma_uint16*)dst, (ma_uint16*)expected, (ma_uint16)desired, successOrder, failureOrder) +#define ma_atomic_compare_exchange_strong_explicit_i32(dst, expected, desired, successOrder, failureOrder) ma_atomic_compare_exchange_strong_explicit_32((ma_uint32*)dst, (ma_uint32*)expected, (ma_uint32)desired, successOrder, failureOrder) +#define ma_atomic_compare_exchange_strong_explicit_i64(dst, expected, desired, successOrder, failureOrder) ma_atomic_compare_exchange_strong_explicit_64((ma_uint64*)dst, (ma_uint64*)expected, (ma_uint64)desired, successOrder, failureOrder) +#define ma_atomic_compare_exchange_weak_explicit_i8( dst, expected, desired, successOrder, failureOrder) ma_atomic_compare_exchange_weak_explicit_8( (ma_uint8* )dst, (ma_uint8* )expected, (ma_uint8 )desired, successOrder, failureOrder) +#define ma_atomic_compare_exchange_weak_explicit_i16(dst, expected, desired, successOrder, failureOrder) ma_atomic_compare_exchange_weak_explicit_16((ma_uint16*)dst, (ma_uint16*)expected, (ma_uint16)desired, successOrder, failureOrder) +#define ma_atomic_compare_exchange_weak_explicit_i32(dst, expected, desired, successOrder, failureOrder) ma_atomic_compare_exchange_weak_explicit_32((ma_uint32*)dst, (ma_uint32*)expected, (ma_uint32)desired, successOrder, failureOrder) +#define ma_atomic_compare_exchange_weak_explicit_i64(dst, expected, desired, successOrder, failureOrder) ma_atomic_compare_exchange_weak_explicit_64((ma_uint64*)dst, (ma_uint64*)expected, (ma_uint64)desired, successOrder, failureOrder) +#define ma_atomic_fetch_add_explicit_i8( dst, src, order) (ma_int8 )ma_atomic_fetch_add_explicit_8( (ma_uint8* )dst, (ma_uint8 )src, order) +#define ma_atomic_fetch_add_explicit_i16(dst, src, order) (ma_int16)ma_atomic_fetch_add_explicit_16((ma_uint16*)dst, (ma_uint16)src, order) +#define ma_atomic_fetch_add_explicit_i32(dst, src, order) (ma_int32)ma_atomic_fetch_add_explicit_32((ma_uint32*)dst, (ma_uint32)src, order) +#define ma_atomic_fetch_add_explicit_i64(dst, src, order) (ma_int64)ma_atomic_fetch_add_explicit_64((ma_uint64*)dst, (ma_uint64)src, order) +#define ma_atomic_fetch_sub_explicit_i8( dst, src, order) (ma_int8 )ma_atomic_fetch_sub_explicit_8( (ma_uint8* )dst, (ma_uint8 )src, order) +#define ma_atomic_fetch_sub_explicit_i16(dst, src, order) (ma_int16)ma_atomic_fetch_sub_explicit_16((ma_uint16*)dst, (ma_uint16)src, order) +#define ma_atomic_fetch_sub_explicit_i32(dst, src, order) (ma_int32)ma_atomic_fetch_sub_explicit_32((ma_uint32*)dst, (ma_uint32)src, order) +#define ma_atomic_fetch_sub_explicit_i64(dst, src, order) (ma_int64)ma_atomic_fetch_sub_explicit_64((ma_uint64*)dst, (ma_uint64)src, order) +#define ma_atomic_fetch_or_explicit_i8( dst, src, order) (ma_int8 )ma_atomic_fetch_or_explicit_8( (ma_uint8* )dst, (ma_uint8 )src, order) +#define ma_atomic_fetch_or_explicit_i16(dst, src, order) (ma_int16)ma_atomic_fetch_or_explicit_16((ma_uint16*)dst, (ma_uint16)src, order) +#define ma_atomic_fetch_or_explicit_i32(dst, src, order) (ma_int32)ma_atomic_fetch_or_explicit_32((ma_uint32*)dst, (ma_uint32)src, order) +#define ma_atomic_fetch_or_explicit_i64(dst, src, order) (ma_int64)ma_atomic_fetch_or_explicit_64((ma_uint64*)dst, (ma_uint64)src, order) +#define ma_atomic_fetch_xor_explicit_i8( dst, src, order) (ma_int8 )ma_atomic_fetch_xor_explicit_8( (ma_uint8* )dst, (ma_uint8 )src, order) +#define ma_atomic_fetch_xor_explicit_i16(dst, src, order) (ma_int16)ma_atomic_fetch_xor_explicit_16((ma_uint16*)dst, (ma_uint16)src, order) +#define ma_atomic_fetch_xor_explicit_i32(dst, src, order) (ma_int32)ma_atomic_fetch_xor_explicit_32((ma_uint32*)dst, (ma_uint32)src, order) +#define ma_atomic_fetch_xor_explicit_i64(dst, src, order) (ma_int64)ma_atomic_fetch_xor_explicit_64((ma_uint64*)dst, (ma_uint64)src, order) +#define ma_atomic_fetch_and_explicit_i8( dst, src, order) (ma_int8 )ma_atomic_fetch_and_explicit_8( (ma_uint8* )dst, (ma_uint8 )src, order) +#define ma_atomic_fetch_and_explicit_i16(dst, src, order) (ma_int16)ma_atomic_fetch_and_explicit_16((ma_uint16*)dst, (ma_uint16)src, order) +#define ma_atomic_fetch_and_explicit_i32(dst, src, order) (ma_int32)ma_atomic_fetch_and_explicit_32((ma_uint32*)dst, (ma_uint32)src, order) +#define ma_atomic_fetch_and_explicit_i64(dst, src, order) (ma_int64)ma_atomic_fetch_and_explicit_64((ma_uint64*)dst, (ma_uint64)src, order) +#define ma_atomic_test_and_set_i8( ptr) ma_atomic_test_and_set_explicit_i8( ptr, ma_atomic_memory_order_seq_cst) +#define ma_atomic_test_and_set_i16(ptr) ma_atomic_test_and_set_explicit_i16(ptr, ma_atomic_memory_order_seq_cst) +#define ma_atomic_test_and_set_i32(ptr) ma_atomic_test_and_set_explicit_i32(ptr, ma_atomic_memory_order_seq_cst) +#define ma_atomic_test_and_set_i64(ptr) ma_atomic_test_and_set_explicit_i64(ptr, ma_atomic_memory_order_seq_cst) +#define ma_atomic_clear_i8( ptr) ma_atomic_clear_explicit_i8( ptr, ma_atomic_memory_order_seq_cst) +#define ma_atomic_clear_i16(ptr) ma_atomic_clear_explicit_i16(ptr, ma_atomic_memory_order_seq_cst) +#define ma_atomic_clear_i32(ptr) ma_atomic_clear_explicit_i32(ptr, ma_atomic_memory_order_seq_cst) +#define ma_atomic_clear_i64(ptr) ma_atomic_clear_explicit_i64(ptr, ma_atomic_memory_order_seq_cst) +#define ma_atomic_store_i8( dst, src) ma_atomic_store_explicit_i8( dst, src, ma_atomic_memory_order_seq_cst) +#define ma_atomic_store_i16(dst, src) ma_atomic_store_explicit_i16(dst, src, ma_atomic_memory_order_seq_cst) +#define ma_atomic_store_i32(dst, src) ma_atomic_store_explicit_i32(dst, src, ma_atomic_memory_order_seq_cst) +#define ma_atomic_store_i64(dst, src) ma_atomic_store_explicit_i64(dst, src, ma_atomic_memory_order_seq_cst) +#define ma_atomic_load_i8( ptr) ma_atomic_load_explicit_i8( ptr, ma_atomic_memory_order_seq_cst) +#define ma_atomic_load_i16(ptr) ma_atomic_load_explicit_i16(ptr, ma_atomic_memory_order_seq_cst) +#define ma_atomic_load_i32(ptr) ma_atomic_load_explicit_i32(ptr, ma_atomic_memory_order_seq_cst) +#define ma_atomic_load_i64(ptr) ma_atomic_load_explicit_i64(ptr, ma_atomic_memory_order_seq_cst) +#define ma_atomic_exchange_i8( dst, src) ma_atomic_exchange_explicit_i8( dst, src, ma_atomic_memory_order_seq_cst) +#define ma_atomic_exchange_i16(dst, src) ma_atomic_exchange_explicit_i16(dst, src, ma_atomic_memory_order_seq_cst) +#define ma_atomic_exchange_i32(dst, src) ma_atomic_exchange_explicit_i32(dst, src, ma_atomic_memory_order_seq_cst) +#define ma_atomic_exchange_i64(dst, src) ma_atomic_exchange_explicit_i64(dst, src, ma_atomic_memory_order_seq_cst) +#define ma_atomic_compare_exchange_strong_i8( dst, expected, desired) ma_atomic_compare_exchange_strong_explicit_i8( dst, expected, desired, ma_atomic_memory_order_seq_cst, ma_atomic_memory_order_seq_cst) +#define ma_atomic_compare_exchange_strong_i16(dst, expected, desired) ma_atomic_compare_exchange_strong_explicit_i16(dst, expected, desired, ma_atomic_memory_order_seq_cst, ma_atomic_memory_order_seq_cst) +#define ma_atomic_compare_exchange_strong_i32(dst, expected, desired) ma_atomic_compare_exchange_strong_explicit_i32(dst, expected, desired, ma_atomic_memory_order_seq_cst, ma_atomic_memory_order_seq_cst) +#define ma_atomic_compare_exchange_strong_i64(dst, expected, desired) ma_atomic_compare_exchange_strong_explicit_i64(dst, expected, desired, ma_atomic_memory_order_seq_cst, ma_atomic_memory_order_seq_cst) +#define ma_atomic_compare_exchange_weak_i8( dst, expected, desired) ma_atomic_compare_exchange_weak_explicit_i8( dst, expected, desired, ma_atomic_memory_order_seq_cst, ma_atomic_memory_order_seq_cst) +#define ma_atomic_compare_exchange_weak_i16(dst, expected, desired) ma_atomic_compare_exchange_weak_explicit_i16(dst, expected, desired, ma_atomic_memory_order_seq_cst, ma_atomic_memory_order_seq_cst) +#define ma_atomic_compare_exchange_weak_i32(dst, expected, desired) ma_atomic_compare_exchange_weak_explicit_i32(dst, expected, desired, ma_atomic_memory_order_seq_cst, ma_atomic_memory_order_seq_cst) +#define ma_atomic_compare_exchange_weak_i64(dst, expected, desired) ma_atomic_compare_exchange_weak_explicit_i64(dst, expected, desired, ma_atomic_memory_order_seq_cst, ma_atomic_memory_order_seq_cst) +#define ma_atomic_fetch_add_i8( dst, src) ma_atomic_fetch_add_explicit_i8( dst, src, ma_atomic_memory_order_seq_cst) +#define ma_atomic_fetch_add_i16(dst, src) ma_atomic_fetch_add_explicit_i16(dst, src, ma_atomic_memory_order_seq_cst) +#define ma_atomic_fetch_add_i32(dst, src) ma_atomic_fetch_add_explicit_i32(dst, src, ma_atomic_memory_order_seq_cst) +#define ma_atomic_fetch_add_i64(dst, src) ma_atomic_fetch_add_explicit_i64(dst, src, ma_atomic_memory_order_seq_cst) +#define ma_atomic_fetch_sub_i8( dst, src) ma_atomic_fetch_sub_explicit_i8( dst, src, ma_atomic_memory_order_seq_cst) +#define ma_atomic_fetch_sub_i16(dst, src) ma_atomic_fetch_sub_explicit_i16(dst, src, ma_atomic_memory_order_seq_cst) +#define ma_atomic_fetch_sub_i32(dst, src) ma_atomic_fetch_sub_explicit_i32(dst, src, ma_atomic_memory_order_seq_cst) +#define ma_atomic_fetch_sub_i64(dst, src) ma_atomic_fetch_sub_explicit_i64(dst, src, ma_atomic_memory_order_seq_cst) +#define ma_atomic_fetch_or_i8( dst, src) ma_atomic_fetch_or_explicit_i8( dst, src, ma_atomic_memory_order_seq_cst) +#define ma_atomic_fetch_or_i16(dst, src) ma_atomic_fetch_or_explicit_i16(dst, src, ma_atomic_memory_order_seq_cst) +#define ma_atomic_fetch_or_i32(dst, src) ma_atomic_fetch_or_explicit_i32(dst, src, ma_atomic_memory_order_seq_cst) +#define ma_atomic_fetch_or_i64(dst, src) ma_atomic_fetch_or_explicit_i64(dst, src, ma_atomic_memory_order_seq_cst) +#define ma_atomic_fetch_xor_i8( dst, src) ma_atomic_fetch_xor_explicit_i8( dst, src, ma_atomic_memory_order_seq_cst) +#define ma_atomic_fetch_xor_i16(dst, src) ma_atomic_fetch_xor_explicit_i16(dst, src, ma_atomic_memory_order_seq_cst) +#define ma_atomic_fetch_xor_i32(dst, src) ma_atomic_fetch_xor_explicit_i32(dst, src, ma_atomic_memory_order_seq_cst) +#define ma_atomic_fetch_xor_i64(dst, src) ma_atomic_fetch_xor_explicit_i64(dst, src, ma_atomic_memory_order_seq_cst) +#define ma_atomic_fetch_and_i8( dst, src) ma_atomic_fetch_and_explicit_i8( dst, src, ma_atomic_memory_order_seq_cst) +#define ma_atomic_fetch_and_i16(dst, src) ma_atomic_fetch_and_explicit_i16(dst, src, ma_atomic_memory_order_seq_cst) +#define ma_atomic_fetch_and_i32(dst, src) ma_atomic_fetch_and_explicit_i32(dst, src, ma_atomic_memory_order_seq_cst) +#define ma_atomic_fetch_and_i64(dst, src) ma_atomic_fetch_and_explicit_i64(dst, src, ma_atomic_memory_order_seq_cst) +#define ma_atomic_compare_and_swap_i8( dst, expected, dedsired) (ma_int8 )ma_atomic_compare_and_swap_8( (ma_uint8* )dst, (ma_uint8 )expected, (ma_uint8 )dedsired) +#define ma_atomic_compare_and_swap_i16(dst, expected, dedsired) (ma_int16)ma_atomic_compare_and_swap_16((ma_uint16*)dst, (ma_uint16)expected, (ma_uint16)dedsired) +#define ma_atomic_compare_and_swap_i32(dst, expected, dedsired) (ma_int32)ma_atomic_compare_and_swap_32((ma_uint32*)dst, (ma_uint32)expected, (ma_uint32)dedsired) +#define ma_atomic_compare_and_swap_i64(dst, expected, dedsired) (ma_int64)ma_atomic_compare_and_swap_64((ma_uint64*)dst, (ma_uint64)expected, (ma_uint64)dedsired) typedef union { - c89atomic_uint32 i; + ma_uint32 i; float f; -} c89atomic_if32; +} ma_atomic_if32; typedef union { - c89atomic_uint64 i; + ma_uint64 i; double f; -} c89atomic_if64; -#define c89atomic_clear_explicit_f32(ptr, order) c89atomic_clear_explicit_32((c89atomic_uint32*)ptr, order) -#define c89atomic_clear_explicit_f64(ptr, order) c89atomic_clear_explicit_64((c89atomic_uint64*)ptr, order) -static C89ATOMIC_INLINE void c89atomic_store_explicit_f32(volatile float* dst, float src, c89atomic_memory_order order) +} ma_atomic_if64; +#define ma_atomic_clear_explicit_f32(ptr, order) ma_atomic_clear_explicit_32((ma_uint32*)ptr, order) +#define ma_atomic_clear_explicit_f64(ptr, order) ma_atomic_clear_explicit_64((ma_uint64*)ptr, order) +static MA_INLINE void ma_atomic_store_explicit_f32(volatile float* dst, float src, ma_atomic_memory_order order) { - c89atomic_if32 x; + ma_atomic_if32 x; x.f = src; - c89atomic_store_explicit_32((volatile c89atomic_uint32*)dst, x.i, order); + ma_atomic_store_explicit_32((volatile ma_uint32*)dst, x.i, order); } -static C89ATOMIC_INLINE void c89atomic_store_explicit_f64(volatile double* dst, double src, c89atomic_memory_order order) +static MA_INLINE void ma_atomic_store_explicit_f64(volatile double* dst, double src, ma_atomic_memory_order order) { - c89atomic_if64 x; + ma_atomic_if64 x; x.f = src; - c89atomic_store_explicit_64((volatile c89atomic_uint64*)dst, x.i, order); + ma_atomic_store_explicit_64((volatile ma_uint64*)dst, x.i, order); } -static C89ATOMIC_INLINE float c89atomic_load_explicit_f32(volatile const float* ptr, c89atomic_memory_order order) +static MA_INLINE float ma_atomic_load_explicit_f32(volatile const float* ptr, ma_atomic_memory_order order) { - c89atomic_if32 r; - r.i = c89atomic_load_explicit_32((volatile const c89atomic_uint32*)ptr, order); + ma_atomic_if32 r; + r.i = ma_atomic_load_explicit_32((volatile const ma_uint32*)ptr, order); return r.f; } -static C89ATOMIC_INLINE double c89atomic_load_explicit_f64(volatile const double* ptr, c89atomic_memory_order order) +static MA_INLINE double ma_atomic_load_explicit_f64(volatile const double* ptr, ma_atomic_memory_order order) { - c89atomic_if64 r; - r.i = c89atomic_load_explicit_64((volatile const c89atomic_uint64*)ptr, order); + ma_atomic_if64 r; + r.i = ma_atomic_load_explicit_64((volatile const ma_uint64*)ptr, order); return r.f; } -static C89ATOMIC_INLINE float c89atomic_exchange_explicit_f32(volatile float* dst, float src, c89atomic_memory_order order) +static MA_INLINE float ma_atomic_exchange_explicit_f32(volatile float* dst, float src, ma_atomic_memory_order order) { - c89atomic_if32 r; - c89atomic_if32 x; + ma_atomic_if32 r; + ma_atomic_if32 x; x.f = src; - r.i = c89atomic_exchange_explicit_32((volatile c89atomic_uint32*)dst, x.i, order); + r.i = ma_atomic_exchange_explicit_32((volatile ma_uint32*)dst, x.i, order); return r.f; } -static C89ATOMIC_INLINE double c89atomic_exchange_explicit_f64(volatile double* dst, double src, c89atomic_memory_order order) +static MA_INLINE double ma_atomic_exchange_explicit_f64(volatile double* dst, double src, ma_atomic_memory_order order) { - c89atomic_if64 r; - c89atomic_if64 x; + ma_atomic_if64 r; + ma_atomic_if64 x; x.f = src; - r.i = c89atomic_exchange_explicit_64((volatile c89atomic_uint64*)dst, x.i, order); + r.i = ma_atomic_exchange_explicit_64((volatile ma_uint64*)dst, x.i, order); return r.f; } -#define c89atomic_clear_f32(ptr) (float )c89atomic_clear_explicit_f32(ptr, c89atomic_memory_order_seq_cst) -#define c89atomic_clear_f64(ptr) (double)c89atomic_clear_explicit_f64(ptr, c89atomic_memory_order_seq_cst) -#define c89atomic_store_f32(dst, src) c89atomic_store_explicit_f32(dst, src, c89atomic_memory_order_seq_cst) -#define c89atomic_store_f64(dst, src) c89atomic_store_explicit_f64(dst, src, c89atomic_memory_order_seq_cst) -#define c89atomic_load_f32(ptr) (float )c89atomic_load_explicit_f32(ptr, c89atomic_memory_order_seq_cst) -#define c89atomic_load_f64(ptr) (double)c89atomic_load_explicit_f64(ptr, c89atomic_memory_order_seq_cst) -#define c89atomic_exchange_f32(dst, src) (float )c89atomic_exchange_explicit_f32(dst, src, c89atomic_memory_order_seq_cst) -#define c89atomic_exchange_f64(dst, src) (double)c89atomic_exchange_explicit_f64(dst, src, c89atomic_memory_order_seq_cst) -typedef c89atomic_flag c89atomic_spinlock; -static C89ATOMIC_INLINE void c89atomic_spinlock_lock(volatile c89atomic_spinlock* pSpinlock) +static MA_INLINE ma_bool32 ma_atomic_compare_exchange_strong_explicit_f32(volatile float* dst, float* expected, float desired, ma_atomic_memory_order successOrder, ma_atomic_memory_order failureOrder) +{ + ma_atomic_if32 d; + d.f = desired; + return ma_atomic_compare_exchange_strong_explicit_32((volatile ma_uint32*)dst, (ma_uint32*)expected, d.i, successOrder, failureOrder); +} +static MA_INLINE ma_bool32 ma_atomic_compare_exchange_strong_explicit_f64(volatile double* dst, double* expected, double desired, ma_atomic_memory_order successOrder, ma_atomic_memory_order failureOrder) +{ + ma_atomic_if64 d; + d.f = desired; + return ma_atomic_compare_exchange_strong_explicit_64((volatile ma_uint64*)dst, (ma_uint64*)expected, d.i, successOrder, failureOrder); +} +static MA_INLINE ma_bool32 ma_atomic_compare_exchange_weak_explicit_f32(volatile float* dst, float* expected, float desired, ma_atomic_memory_order successOrder, ma_atomic_memory_order failureOrder) +{ + ma_atomic_if32 d; + d.f = desired; + return ma_atomic_compare_exchange_weak_explicit_32((volatile ma_uint32*)dst, (ma_uint32*)expected, d.i, successOrder, failureOrder); +} +static MA_INLINE ma_bool32 ma_atomic_compare_exchange_weak_explicit_f64(volatile double* dst, double* expected, double desired, ma_atomic_memory_order successOrder, ma_atomic_memory_order failureOrder) +{ + ma_atomic_if64 d; + d.f = desired; + return ma_atomic_compare_exchange_weak_explicit_64((volatile ma_uint64*)dst, (ma_uint64*)expected, d.i, successOrder, failureOrder); +} +static MA_INLINE float ma_atomic_fetch_add_explicit_f32(volatile float* dst, float src, ma_atomic_memory_order order) +{ + ma_atomic_if32 r; + ma_atomic_if32 x; + x.f = src; + r.i = ma_atomic_fetch_add_explicit_32((volatile ma_uint32*)dst, x.i, order); + return r.f; +} +static MA_INLINE double ma_atomic_fetch_add_explicit_f64(volatile double* dst, double src, ma_atomic_memory_order order) +{ + ma_atomic_if64 r; + ma_atomic_if64 x; + x.f = src; + r.i = ma_atomic_fetch_add_explicit_64((volatile ma_uint64*)dst, x.i, order); + return r.f; +} +static MA_INLINE float ma_atomic_fetch_sub_explicit_f32(volatile float* dst, float src, ma_atomic_memory_order order) +{ + ma_atomic_if32 r; + ma_atomic_if32 x; + x.f = src; + r.i = ma_atomic_fetch_sub_explicit_32((volatile ma_uint32*)dst, x.i, order); + return r.f; +} +static MA_INLINE double ma_atomic_fetch_sub_explicit_f64(volatile double* dst, double src, ma_atomic_memory_order order) +{ + ma_atomic_if64 r; + ma_atomic_if64 x; + x.f = src; + r.i = ma_atomic_fetch_sub_explicit_64((volatile ma_uint64*)dst, x.i, order); + return r.f; +} +static MA_INLINE float ma_atomic_fetch_or_explicit_f32(volatile float* dst, float src, ma_atomic_memory_order order) +{ + ma_atomic_if32 r; + ma_atomic_if32 x; + x.f = src; + r.i = ma_atomic_fetch_or_explicit_32((volatile ma_uint32*)dst, x.i, order); + return r.f; +} +static MA_INLINE double ma_atomic_fetch_or_explicit_f64(volatile double* dst, double src, ma_atomic_memory_order order) +{ + ma_atomic_if64 r; + ma_atomic_if64 x; + x.f = src; + r.i = ma_atomic_fetch_or_explicit_64((volatile ma_uint64*)dst, x.i, order); + return r.f; +} +static MA_INLINE float ma_atomic_fetch_xor_explicit_f32(volatile float* dst, float src, ma_atomic_memory_order order) +{ + ma_atomic_if32 r; + ma_atomic_if32 x; + x.f = src; + r.i = ma_atomic_fetch_xor_explicit_32((volatile ma_uint32*)dst, x.i, order); + return r.f; +} +static MA_INLINE double ma_atomic_fetch_xor_explicit_f64(volatile double* dst, double src, ma_atomic_memory_order order) +{ + ma_atomic_if64 r; + ma_atomic_if64 x; + x.f = src; + r.i = ma_atomic_fetch_xor_explicit_64((volatile ma_uint64*)dst, x.i, order); + return r.f; +} +static MA_INLINE float ma_atomic_fetch_and_explicit_f32(volatile float* dst, float src, ma_atomic_memory_order order) +{ + ma_atomic_if32 r; + ma_atomic_if32 x; + x.f = src; + r.i = ma_atomic_fetch_and_explicit_32((volatile ma_uint32*)dst, x.i, order); + return r.f; +} +static MA_INLINE double ma_atomic_fetch_and_explicit_f64(volatile double* dst, double src, ma_atomic_memory_order order) +{ + ma_atomic_if64 r; + ma_atomic_if64 x; + x.f = src; + r.i = ma_atomic_fetch_and_explicit_64((volatile ma_uint64*)dst, x.i, order); + return r.f; +} +#define ma_atomic_clear_f32(ptr) (float )ma_atomic_clear_explicit_f32(ptr, ma_atomic_memory_order_seq_cst) +#define ma_atomic_clear_f64(ptr) (double)ma_atomic_clear_explicit_f64(ptr, ma_atomic_memory_order_seq_cst) +#define ma_atomic_store_f32(dst, src) ma_atomic_store_explicit_f32(dst, src, ma_atomic_memory_order_seq_cst) +#define ma_atomic_store_f64(dst, src) ma_atomic_store_explicit_f64(dst, src, ma_atomic_memory_order_seq_cst) +#define ma_atomic_load_f32(ptr) (float )ma_atomic_load_explicit_f32(ptr, ma_atomic_memory_order_seq_cst) +#define ma_atomic_load_f64(ptr) (double)ma_atomic_load_explicit_f64(ptr, ma_atomic_memory_order_seq_cst) +#define ma_atomic_exchange_f32(dst, src) (float )ma_atomic_exchange_explicit_f32(dst, src, ma_atomic_memory_order_seq_cst) +#define ma_atomic_exchange_f64(dst, src) (double)ma_atomic_exchange_explicit_f64(dst, src, ma_atomic_memory_order_seq_cst) +#define ma_atomic_compare_exchange_strong_f32(dst, expected, desired) ma_atomic_compare_exchange_strong_explicit_f32(dst, expected, desired, ma_atomic_memory_order_seq_cst, ma_atomic_memory_order_seq_cst) +#define ma_atomic_compare_exchange_strong_f64(dst, expected, desired) ma_atomic_compare_exchange_strong_explicit_f64(dst, expected, desired, ma_atomic_memory_order_seq_cst, ma_atomic_memory_order_seq_cst) +#define ma_atomic_compare_exchange_weak_f32(dst, expected, desired) ma_atomic_compare_exchange_weak_explicit_f32(dst, expected, desired, ma_atomic_memory_order_seq_cst, ma_atomic_memory_order_seq_cst) +#define ma_atomic_compare_exchange_weak_f64(dst, expected, desired) ma_atomic_compare_exchange_weak_explicit_f64(dst, expected, desired, ma_atomic_memory_order_seq_cst, ma_atomic_memory_order_seq_cst) +#define ma_atomic_fetch_add_f32(dst, src) ma_atomic_fetch_add_explicit_f32(dst, src, ma_atomic_memory_order_seq_cst) +#define ma_atomic_fetch_add_f64(dst, src) ma_atomic_fetch_add_explicit_f64(dst, src, ma_atomic_memory_order_seq_cst) +#define ma_atomic_fetch_sub_f32(dst, src) ma_atomic_fetch_sub_explicit_f32(dst, src, ma_atomic_memory_order_seq_cst) +#define ma_atomic_fetch_sub_f64(dst, src) ma_atomic_fetch_sub_explicit_f64(dst, src, ma_atomic_memory_order_seq_cst) +#define ma_atomic_fetch_or_f32(dst, src) ma_atomic_fetch_or_explicit_f32(dst, src, ma_atomic_memory_order_seq_cst) +#define ma_atomic_fetch_or_f64(dst, src) ma_atomic_fetch_or_explicit_f64(dst, src, ma_atomic_memory_order_seq_cst) +#define ma_atomic_fetch_xor_f32(dst, src) ma_atomic_fetch_xor_explicit_f32(dst, src, ma_atomic_memory_order_seq_cst) +#define ma_atomic_fetch_xor_f64(dst, src) ma_atomic_fetch_xor_explicit_f64(dst, src, ma_atomic_memory_order_seq_cst) +#define ma_atomic_fetch_and_f32(dst, src) ma_atomic_fetch_and_explicit_f32(dst, src, ma_atomic_memory_order_seq_cst) +#define ma_atomic_fetch_and_f64(dst, src) ma_atomic_fetch_and_explicit_f64(dst, src, ma_atomic_memory_order_seq_cst) +static MA_INLINE float ma_atomic_compare_and_swap_f32(volatile float* dst, float expected, float desired) +{ + ma_atomic_if32 r; + ma_atomic_if32 e, d; + e.f = expected; + d.f = desired; + r.i = ma_atomic_compare_and_swap_32((volatile ma_uint32*)dst, e.i, d.i); + return r.f; +} +static MA_INLINE double ma_atomic_compare_and_swap_f64(volatile double* dst, double expected, double desired) +{ + ma_atomic_if64 r; + ma_atomic_if64 e, d; + e.f = expected; + d.f = desired; + r.i = ma_atomic_compare_and_swap_64((volatile ma_uint64*)dst, e.i, d.i); + return r.f; +} +typedef ma_atomic_flag ma_atomic_spinlock; +static MA_INLINE void ma_atomic_spinlock_lock(volatile ma_atomic_spinlock* pSpinlock) { for (;;) { - if (c89atomic_flag_test_and_set_explicit(pSpinlock, c89atomic_memory_order_acquire) == 0) { + if (ma_atomic_flag_test_and_set_explicit(pSpinlock, ma_atomic_memory_order_acquire) == 0) { break; } - while (c89atoimc_flag_load_explicit(pSpinlock, c89atomic_memory_order_relaxed) == 1) { + while (c89atoimc_flag_load_explicit(pSpinlock, ma_atomic_memory_order_relaxed) == 1) { } } } -static C89ATOMIC_INLINE void c89atomic_spinlock_unlock(volatile c89atomic_spinlock* pSpinlock) +static MA_INLINE void ma_atomic_spinlock_unlock(volatile ma_atomic_spinlock* pSpinlock) { - c89atomic_flag_clear_explicit(pSpinlock, c89atomic_memory_order_release); + ma_atomic_flag_clear_explicit(pSpinlock, ma_atomic_memory_order_release); } +#if defined(__clang__) || (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))) + #pragma GCC diagnostic pop +#endif #if defined(__cplusplus) } #endif #endif -/* c89atomic.h end */ +/* ma_atomic.h end */ +#define MA_ATOMIC_SAFE_TYPE_IMPL(c89TypeExtension, type) \ + static MA_INLINE ma_##type ma_atomic_##type##_get(ma_atomic_##type* x) \ + { \ + return (ma_##type)ma_atomic_load_##c89TypeExtension(&x->value); \ + } \ + static MA_INLINE void ma_atomic_##type##_set(ma_atomic_##type* x, ma_##type value) \ + { \ + ma_atomic_store_##c89TypeExtension(&x->value, value); \ + } \ + static MA_INLINE ma_##type ma_atomic_##type##_exchange(ma_atomic_##type* x, ma_##type value) \ + { \ + return (ma_##type)ma_atomic_exchange_##c89TypeExtension(&x->value, value); \ + } \ + static MA_INLINE ma_bool32 ma_atomic_##type##_compare_exchange(ma_atomic_##type* x, ma_##type* expected, ma_##type desired) \ + { \ + return ma_atomic_compare_exchange_weak_##c89TypeExtension(&x->value, expected, desired); \ + } \ + static MA_INLINE ma_##type ma_atomic_##type##_fetch_add(ma_atomic_##type* x, ma_##type y) \ + { \ + return (ma_##type)ma_atomic_fetch_add_##c89TypeExtension(&x->value, y); \ + } \ + static MA_INLINE ma_##type ma_atomic_##type##_fetch_sub(ma_atomic_##type* x, ma_##type y) \ + { \ + return (ma_##type)ma_atomic_fetch_sub_##c89TypeExtension(&x->value, y); \ + } \ + static MA_INLINE ma_##type ma_atomic_##type##_fetch_or(ma_atomic_##type* x, ma_##type y) \ + { \ + return (ma_##type)ma_atomic_fetch_or_##c89TypeExtension(&x->value, y); \ + } \ + static MA_INLINE ma_##type ma_atomic_##type##_fetch_xor(ma_atomic_##type* x, ma_##type y) \ + { \ + return (ma_##type)ma_atomic_fetch_xor_##c89TypeExtension(&x->value, y); \ + } \ + static MA_INLINE ma_##type ma_atomic_##type##_fetch_and(ma_atomic_##type* x, ma_##type y) \ + { \ + return (ma_##type)ma_atomic_fetch_and_##c89TypeExtension(&x->value, y); \ + } \ + static MA_INLINE ma_##type ma_atomic_##type##_compare_and_swap(ma_atomic_##type* x, ma_##type expected, ma_##type desired) \ + { \ + return (ma_##type)ma_atomic_compare_and_swap_##c89TypeExtension(&x->value, expected, desired); \ + } \ + +#define MA_ATOMIC_SAFE_TYPE_IMPL_PTR(type) \ + static MA_INLINE ma_##type* ma_atomic_ptr_##type##_get(ma_atomic_ptr_##type* x) \ + { \ + return ma_atomic_load_ptr((void**)&x->value); \ + } \ + static MA_INLINE void ma_atomic_ptr_##type##_set(ma_atomic_ptr_##type* x, ma_##type* value) \ + { \ + ma_atomic_store_ptr((void**)&x->value, (void*)value); \ + } \ + static MA_INLINE ma_##type* ma_atomic_ptr_##type##_exchange(ma_atomic_ptr_##type* x, ma_##type* value) \ + { \ + return ma_atomic_exchange_ptr((void**)&x->value, (void*)value); \ + } \ + static MA_INLINE ma_bool32 ma_atomic_ptr_##type##_compare_exchange(ma_atomic_ptr_##type* x, ma_##type** expected, ma_##type* desired) \ + { \ + return ma_atomic_compare_exchange_weak_ptr((void**)&x->value, (void*)expected, (void*)desired); \ + } \ + static MA_INLINE ma_##type* ma_atomic_ptr_##type##_compare_and_swap(ma_atomic_ptr_##type* x, ma_##type* expected, ma_##type* desired) \ + { \ + return (ma_##type*)ma_atomic_compare_and_swap_ptr((void**)&x->value, (void*)expected, (void*)desired); \ + } \ + +MA_ATOMIC_SAFE_TYPE_IMPL(32, uint32) +MA_ATOMIC_SAFE_TYPE_IMPL(i32, int32) +MA_ATOMIC_SAFE_TYPE_IMPL(64, uint64) +MA_ATOMIC_SAFE_TYPE_IMPL(f32, float) +MA_ATOMIC_SAFE_TYPE_IMPL(32, bool32) + +#if !defined(MA_NO_DEVICE_IO) +MA_ATOMIC_SAFE_TYPE_IMPL(i32, device_state) +#endif MA_API ma_uint64 ma_calculate_frame_count_after_resampling(ma_uint32 sampleRateOut, ma_uint32 sampleRateIn, ma_uint64 frameCountIn) @@ -15284,11 +16044,11 @@ static MA_INLINE ma_result ma_spinlock_lock_ex(volatile ma_spinlock* pSpinlock, } for (;;) { - if (c89atomic_exchange_explicit_32(pSpinlock, 1, c89atomic_memory_order_acquire) == 0) { + if (ma_atomic_exchange_explicit_32(pSpinlock, 1, ma_atomic_memory_order_acquire) == 0) { break; } - while (c89atomic_load_explicit_32(pSpinlock, c89atomic_memory_order_relaxed) == 1) { + while (ma_atomic_load_explicit_32(pSpinlock, ma_atomic_memory_order_relaxed) == 1) { if (yield) { ma_yield(); } @@ -15314,162 +16074,22 @@ MA_API ma_result ma_spinlock_unlock(volatile ma_spinlock* pSpinlock) return MA_INVALID_ARGS; } - c89atomic_store_explicit_32(pSpinlock, 0, c89atomic_memory_order_release); + ma_atomic_store_explicit_32(pSpinlock, 0, ma_atomic_memory_order_release); return MA_SUCCESS; } #ifndef MA_NO_THREADING -#ifdef MA_WIN32 - #define MA_THREADCALL WINAPI - typedef unsigned long ma_thread_result; -#else +#if defined(MA_POSIX) #define MA_THREADCALL typedef void* ma_thread_result; +#elif defined(MA_WIN32) + #define MA_THREADCALL WINAPI + typedef unsigned long ma_thread_result; #endif + typedef ma_thread_result (MA_THREADCALL * ma_thread_entry_proc)(void* pData); -#ifdef MA_WIN32 -static int ma_thread_priority_to_win32(ma_thread_priority priority) -{ - switch (priority) { - case ma_thread_priority_idle: return THREAD_PRIORITY_IDLE; - case ma_thread_priority_lowest: return THREAD_PRIORITY_LOWEST; - case ma_thread_priority_low: return THREAD_PRIORITY_BELOW_NORMAL; - case ma_thread_priority_normal: return THREAD_PRIORITY_NORMAL; - case ma_thread_priority_high: return THREAD_PRIORITY_ABOVE_NORMAL; - case ma_thread_priority_highest: return THREAD_PRIORITY_HIGHEST; - case ma_thread_priority_realtime: return THREAD_PRIORITY_TIME_CRITICAL; - default: return THREAD_PRIORITY_NORMAL; - } -} - -static ma_result ma_thread_create__win32(ma_thread* pThread, ma_thread_priority priority, size_t stackSize, ma_thread_entry_proc entryProc, void* pData) -{ - *pThread = CreateThread(NULL, stackSize, entryProc, pData, 0, NULL); - if (*pThread == NULL) { - return ma_result_from_GetLastError(GetLastError()); - } - - SetThreadPriority((HANDLE)*pThread, ma_thread_priority_to_win32(priority)); - - return MA_SUCCESS; -} - -static void ma_thread_wait__win32(ma_thread* pThread) -{ - WaitForSingleObject((HANDLE)*pThread, INFINITE); - CloseHandle((HANDLE)*pThread); -} - - -static ma_result ma_mutex_init__win32(ma_mutex* pMutex) -{ - *pMutex = CreateEventW(NULL, FALSE, TRUE, NULL); - if (*pMutex == NULL) { - return ma_result_from_GetLastError(GetLastError()); - } - - return MA_SUCCESS; -} - -static void ma_mutex_uninit__win32(ma_mutex* pMutex) -{ - CloseHandle((HANDLE)*pMutex); -} - -static void ma_mutex_lock__win32(ma_mutex* pMutex) -{ - WaitForSingleObject((HANDLE)*pMutex, INFINITE); -} - -static void ma_mutex_unlock__win32(ma_mutex* pMutex) -{ - SetEvent((HANDLE)*pMutex); -} - - -static ma_result ma_event_init__win32(ma_event* pEvent) -{ - *pEvent = CreateEventW(NULL, FALSE, FALSE, NULL); - if (*pEvent == NULL) { - return ma_result_from_GetLastError(GetLastError()); - } - - return MA_SUCCESS; -} - -static void ma_event_uninit__win32(ma_event* pEvent) -{ - CloseHandle((HANDLE)*pEvent); -} - -static ma_result ma_event_wait__win32(ma_event* pEvent) -{ - DWORD result = WaitForSingleObject((HANDLE)*pEvent, INFINITE); - if (result == WAIT_OBJECT_0) { - return MA_SUCCESS; - } - - if (result == WAIT_TIMEOUT) { - return MA_TIMEOUT; - } - - return ma_result_from_GetLastError(GetLastError()); -} - -static ma_result ma_event_signal__win32(ma_event* pEvent) -{ - BOOL result = SetEvent((HANDLE)*pEvent); - if (result == 0) { - return ma_result_from_GetLastError(GetLastError()); - } - - return MA_SUCCESS; -} - - -static ma_result ma_semaphore_init__win32(int initialValue, ma_semaphore* pSemaphore) -{ - *pSemaphore = CreateSemaphoreW(NULL, (LONG)initialValue, LONG_MAX, NULL); - if (*pSemaphore == NULL) { - return ma_result_from_GetLastError(GetLastError()); - } - - return MA_SUCCESS; -} - -static void ma_semaphore_uninit__win32(ma_semaphore* pSemaphore) -{ - CloseHandle((HANDLE)*pSemaphore); -} - -static ma_result ma_semaphore_wait__win32(ma_semaphore* pSemaphore) -{ - DWORD result = WaitForSingleObject((HANDLE)*pSemaphore, INFINITE); - if (result == WAIT_OBJECT_0) { - return MA_SUCCESS; - } - - if (result == WAIT_TIMEOUT) { - return MA_TIMEOUT; - } - - return ma_result_from_GetLastError(GetLastError()); -} - -static ma_result ma_semaphore_release__win32(ma_semaphore* pSemaphore) -{ - BOOL result = ReleaseSemaphore((HANDLE)*pSemaphore, 1, NULL); - if (result == 0) { - return ma_result_from_GetLastError(GetLastError()); - } - - return MA_SUCCESS; -} -#endif - - #ifdef MA_POSIX static ma_result ma_thread_create__posix(ma_thread* pThread, ma_thread_priority priority, size_t stackSize, ma_thread_entry_proc entryProc, void* pData) { @@ -15481,23 +16101,32 @@ static ma_result ma_thread_create__posix(ma_thread* pThread, ma_thread_priority pthread_attr_t attr; if (pthread_attr_init(&attr) == 0) { int scheduler = -1; - if (priority == ma_thread_priority_idle) { -#ifdef SCHED_IDLE - if (pthread_attr_setschedpolicy(&attr, SCHED_IDLE) == 0) { - scheduler = SCHED_IDLE; + + /* We successfully initialized our attributes object so we can assign the pointer so it's passed into pthread_create(). */ + pAttr = &attr; + + /* We need to set the scheduler policy. Only do this if the OS supports pthread_attr_setschedpolicy() */ + #if !defined(MA_BEOS) + { + if (priority == ma_thread_priority_idle) { + #ifdef SCHED_IDLE + if (pthread_attr_setschedpolicy(&attr, SCHED_IDLE) == 0) { + scheduler = SCHED_IDLE; + } + #endif + } else if (priority == ma_thread_priority_realtime) { + #ifdef SCHED_FIFO + if (pthread_attr_setschedpolicy(&attr, SCHED_FIFO) == 0) { + scheduler = SCHED_FIFO; + } + #endif + #ifdef MA_LINUX + } else { + scheduler = sched_getscheduler(0); + #endif } -#endif - } else if (priority == ma_thread_priority_realtime) { -#ifdef SCHED_FIFO - if (pthread_attr_setschedpolicy(&attr, SCHED_FIFO) == 0) { - scheduler = SCHED_FIFO; - } -#endif -#ifdef MA_LINUX - } else { - scheduler = sched_getscheduler(0); -#endif } + #endif if (stackSize > 0) { pthread_attr_setstacksize(&attr, stackSize); @@ -15524,9 +16153,8 @@ static ma_result ma_thread_create__posix(ma_thread* pThread, ma_thread_priority } } - if (pthread_attr_setschedparam(&attr, &sched) == 0) { - pAttr = &attr; - } + /* I'm not treating a failure of setting the priority as a critical error so not checking the return value here. */ + pthread_attr_setschedparam(&attr, &sched); } } } @@ -15558,7 +16186,15 @@ static void ma_thread_wait__posix(ma_thread* pThread) static ma_result ma_mutex_init__posix(ma_mutex* pMutex) { - int result = pthread_mutex_init((pthread_mutex_t*)pMutex, NULL); + int result; + + if (pMutex == NULL) { + return MA_INVALID_ARGS; + } + + MA_ZERO_OBJECT(pMutex); + + result = pthread_mutex_init((pthread_mutex_t*)pMutex, NULL); if (result != 0) { return ma_result_from_errno(result); } @@ -15703,6 +16339,146 @@ static ma_result ma_semaphore_release__posix(ma_semaphore* pSemaphore) return MA_SUCCESS; } +#elif defined(MA_WIN32) +static int ma_thread_priority_to_win32(ma_thread_priority priority) +{ + switch (priority) { + case ma_thread_priority_idle: return THREAD_PRIORITY_IDLE; + case ma_thread_priority_lowest: return THREAD_PRIORITY_LOWEST; + case ma_thread_priority_low: return THREAD_PRIORITY_BELOW_NORMAL; + case ma_thread_priority_normal: return THREAD_PRIORITY_NORMAL; + case ma_thread_priority_high: return THREAD_PRIORITY_ABOVE_NORMAL; + case ma_thread_priority_highest: return THREAD_PRIORITY_HIGHEST; + case ma_thread_priority_realtime: return THREAD_PRIORITY_TIME_CRITICAL; + default: return THREAD_PRIORITY_NORMAL; + } +} + +static ma_result ma_thread_create__win32(ma_thread* pThread, ma_thread_priority priority, size_t stackSize, ma_thread_entry_proc entryProc, void* pData) +{ + DWORD threadID; /* Not used. Only used for passing into CreateThread() so it doesn't fail on Windows 98. */ + + *pThread = CreateThread(NULL, stackSize, entryProc, pData, 0, &threadID); + if (*pThread == NULL) { + return ma_result_from_GetLastError(GetLastError()); + } + + SetThreadPriority((HANDLE)*pThread, ma_thread_priority_to_win32(priority)); + + return MA_SUCCESS; +} + +static void ma_thread_wait__win32(ma_thread* pThread) +{ + WaitForSingleObject((HANDLE)*pThread, INFINITE); + CloseHandle((HANDLE)*pThread); +} + + +static ma_result ma_mutex_init__win32(ma_mutex* pMutex) +{ + *pMutex = CreateEventA(NULL, FALSE, TRUE, NULL); + if (*pMutex == NULL) { + return ma_result_from_GetLastError(GetLastError()); + } + + return MA_SUCCESS; +} + +static void ma_mutex_uninit__win32(ma_mutex* pMutex) +{ + CloseHandle((HANDLE)*pMutex); +} + +static void ma_mutex_lock__win32(ma_mutex* pMutex) +{ + WaitForSingleObject((HANDLE)*pMutex, INFINITE); +} + +static void ma_mutex_unlock__win32(ma_mutex* pMutex) +{ + SetEvent((HANDLE)*pMutex); +} + + +static ma_result ma_event_init__win32(ma_event* pEvent) +{ + *pEvent = CreateEventA(NULL, FALSE, FALSE, NULL); + if (*pEvent == NULL) { + return ma_result_from_GetLastError(GetLastError()); + } + + return MA_SUCCESS; +} + +static void ma_event_uninit__win32(ma_event* pEvent) +{ + CloseHandle((HANDLE)*pEvent); +} + +static ma_result ma_event_wait__win32(ma_event* pEvent) +{ + DWORD result = WaitForSingleObject((HANDLE)*pEvent, INFINITE); + if (result == WAIT_OBJECT_0) { + return MA_SUCCESS; + } + + if (result == WAIT_TIMEOUT) { + return MA_TIMEOUT; + } + + return ma_result_from_GetLastError(GetLastError()); +} + +static ma_result ma_event_signal__win32(ma_event* pEvent) +{ + BOOL result = SetEvent((HANDLE)*pEvent); + if (result == 0) { + return ma_result_from_GetLastError(GetLastError()); + } + + return MA_SUCCESS; +} + + +static ma_result ma_semaphore_init__win32(int initialValue, ma_semaphore* pSemaphore) +{ + *pSemaphore = CreateSemaphoreW(NULL, (LONG)initialValue, LONG_MAX, NULL); + if (*pSemaphore == NULL) { + return ma_result_from_GetLastError(GetLastError()); + } + + return MA_SUCCESS; +} + +static void ma_semaphore_uninit__win32(ma_semaphore* pSemaphore) +{ + CloseHandle((HANDLE)*pSemaphore); +} + +static ma_result ma_semaphore_wait__win32(ma_semaphore* pSemaphore) +{ + DWORD result = WaitForSingleObject((HANDLE)*pSemaphore, INFINITE); + if (result == WAIT_OBJECT_0) { + return MA_SUCCESS; + } + + if (result == WAIT_TIMEOUT) { + return MA_TIMEOUT; + } + + return ma_result_from_GetLastError(GetLastError()); +} + +static ma_result ma_semaphore_release__win32(ma_semaphore* pSemaphore) +{ + BOOL result = ReleaseSemaphore((HANDLE)*pSemaphore, 1, NULL); + if (result == 0) { + return ma_result_from_GetLastError(GetLastError()); + } + + return MA_SUCCESS; +} #endif typedef struct @@ -15752,15 +16528,20 @@ static ma_result ma_thread_create(ma_thread* pThread, ma_thread_priority priorit return MA_OUT_OF_MEMORY; } +#if defined(MA_THREAD_DEFAULT_STACK_SIZE) + if (stackSize == 0) { + stackSize = MA_THREAD_DEFAULT_STACK_SIZE; + } +#endif + pProxyData->entryProc = entryProc; pProxyData->pData = pData; ma_allocation_callbacks_init_copy(&pProxyData->allocationCallbacks, pAllocationCallbacks); -#ifdef MA_WIN32 - result = ma_thread_create__win32(pThread, priority, stackSize, ma_thread_entry_proxy, pProxyData); -#endif -#ifdef MA_POSIX +#if defined(MA_POSIX) result = ma_thread_create__posix(pThread, priority, stackSize, ma_thread_entry_proxy, pProxyData); +#elif defined(MA_WIN32) + result = ma_thread_create__win32(pThread, priority, stackSize, ma_thread_entry_proxy, pProxyData); #endif if (result != MA_SUCCESS) { @@ -15777,11 +16558,10 @@ static void ma_thread_wait(ma_thread* pThread) return; } -#ifdef MA_WIN32 - ma_thread_wait__win32(pThread); -#endif -#ifdef MA_POSIX +#if defined(MA_POSIX) ma_thread_wait__posix(pThread); +#elif defined(MA_WIN32) + ma_thread_wait__win32(pThread); #endif } @@ -15793,11 +16573,10 @@ MA_API ma_result ma_mutex_init(ma_mutex* pMutex) return MA_INVALID_ARGS; } -#ifdef MA_WIN32 - return ma_mutex_init__win32(pMutex); -#endif -#ifdef MA_POSIX +#if defined(MA_POSIX) return ma_mutex_init__posix(pMutex); +#elif defined(MA_WIN32) + return ma_mutex_init__win32(pMutex); #endif } @@ -15807,11 +16586,10 @@ MA_API void ma_mutex_uninit(ma_mutex* pMutex) return; } -#ifdef MA_WIN32 - ma_mutex_uninit__win32(pMutex); -#endif -#ifdef MA_POSIX +#if defined(MA_POSIX) ma_mutex_uninit__posix(pMutex); +#elif defined(MA_WIN32) + ma_mutex_uninit__win32(pMutex); #endif } @@ -15822,11 +16600,10 @@ MA_API void ma_mutex_lock(ma_mutex* pMutex) return; } -#ifdef MA_WIN32 - ma_mutex_lock__win32(pMutex); -#endif -#ifdef MA_POSIX +#if defined(MA_POSIX) ma_mutex_lock__posix(pMutex); +#elif defined(MA_WIN32) + ma_mutex_lock__win32(pMutex); #endif } @@ -15835,13 +16612,12 @@ MA_API void ma_mutex_unlock(ma_mutex* pMutex) if (pMutex == NULL) { MA_ASSERT(MA_FALSE); /* Fire an assert so the caller is aware of this bug. */ return; -} + } -#ifdef MA_WIN32 - ma_mutex_unlock__win32(pMutex); -#endif -#ifdef MA_POSIX +#if defined(MA_POSIX) ma_mutex_unlock__posix(pMutex); +#elif defined(MA_WIN32) + ma_mutex_unlock__win32(pMutex); #endif } @@ -15853,11 +16629,10 @@ MA_API ma_result ma_event_init(ma_event* pEvent) return MA_INVALID_ARGS; } -#ifdef MA_WIN32 - return ma_event_init__win32(pEvent); -#endif -#ifdef MA_POSIX +#if defined(MA_POSIX) return ma_event_init__posix(pEvent); +#elif defined(MA_WIN32) + return ma_event_init__win32(pEvent); #endif } @@ -15895,11 +16670,10 @@ MA_API void ma_event_uninit(ma_event* pEvent) return; } -#ifdef MA_WIN32 - ma_event_uninit__win32(pEvent); -#endif -#ifdef MA_POSIX +#if defined(MA_POSIX) ma_event_uninit__posix(pEvent); +#elif defined(MA_WIN32) + ma_event_uninit__win32(pEvent); #endif } @@ -15922,11 +16696,10 @@ MA_API ma_result ma_event_wait(ma_event* pEvent) return MA_INVALID_ARGS; } -#ifdef MA_WIN32 - return ma_event_wait__win32(pEvent); -#endif -#ifdef MA_POSIX +#if defined(MA_POSIX) return ma_event_wait__posix(pEvent); +#elif defined(MA_WIN32) + return ma_event_wait__win32(pEvent); #endif } @@ -15937,11 +16710,10 @@ MA_API ma_result ma_event_signal(ma_event* pEvent) return MA_INVALID_ARGS; } -#ifdef MA_WIN32 - return ma_event_signal__win32(pEvent); -#endif -#ifdef MA_POSIX +#if defined(MA_POSIX) return ma_event_signal__posix(pEvent); +#elif defined(MA_WIN32) + return ma_event_signal__win32(pEvent); #endif } @@ -15953,11 +16725,10 @@ MA_API ma_result ma_semaphore_init(int initialValue, ma_semaphore* pSemaphore) return MA_INVALID_ARGS; } -#ifdef MA_WIN32 - return ma_semaphore_init__win32(initialValue, pSemaphore); -#endif -#ifdef MA_POSIX +#if defined(MA_POSIX) return ma_semaphore_init__posix(initialValue, pSemaphore); +#elif defined(MA_WIN32) + return ma_semaphore_init__win32(initialValue, pSemaphore); #endif } @@ -15968,11 +16739,10 @@ MA_API void ma_semaphore_uninit(ma_semaphore* pSemaphore) return; } -#ifdef MA_WIN32 - ma_semaphore_uninit__win32(pSemaphore); -#endif -#ifdef MA_POSIX +#if defined(MA_POSIX) ma_semaphore_uninit__posix(pSemaphore); +#elif defined(MA_WIN32) + ma_semaphore_uninit__win32(pSemaphore); #endif } @@ -15983,11 +16753,10 @@ MA_API ma_result ma_semaphore_wait(ma_semaphore* pSemaphore) return MA_INVALID_ARGS; } -#ifdef MA_WIN32 - return ma_semaphore_wait__win32(pSemaphore); -#endif -#ifdef MA_POSIX +#if defined(MA_POSIX) return ma_semaphore_wait__posix(pSemaphore); +#elif defined(MA_WIN32) + return ma_semaphore_wait__win32(pSemaphore); #endif } @@ -15998,11 +16767,10 @@ MA_API ma_result ma_semaphore_release(ma_semaphore* pSemaphore) return MA_INVALID_ARGS; } -#ifdef MA_WIN32 - return ma_semaphore_release__win32(pSemaphore); -#endif -#ifdef MA_POSIX +#if defined(MA_POSIX) return ma_semaphore_release__posix(pSemaphore); +#elif defined(MA_WIN32) + return ma_semaphore_release__win32(pSemaphore); #endif } #else @@ -16061,7 +16829,7 @@ MA_API ma_result ma_fence_acquire(ma_fence* pFence) } for (;;) { - ma_uint32 oldCounter = c89atomic_load_32(&pFence->counter); + ma_uint32 oldCounter = ma_atomic_load_32(&pFence->counter); ma_uint32 newCounter = oldCounter + 1; /* Make sure we're not about to exceed our maximum value. */ @@ -16070,7 +16838,7 @@ MA_API ma_result ma_fence_acquire(ma_fence* pFence) return MA_OUT_OF_RANGE; } - if (c89atomic_compare_exchange_weak_32(&pFence->counter, &oldCounter, newCounter)) { + if (ma_atomic_compare_exchange_weak_32(&pFence->counter, &oldCounter, newCounter)) { return MA_SUCCESS; } else { if (oldCounter == MA_FENCE_COUNTER_MAX) { @@ -16091,7 +16859,7 @@ MA_API ma_result ma_fence_release(ma_fence* pFence) } for (;;) { - ma_uint32 oldCounter = c89atomic_load_32(&pFence->counter); + ma_uint32 oldCounter = ma_atomic_load_32(&pFence->counter); ma_uint32 newCounter = oldCounter - 1; if (oldCounter == 0) { @@ -16099,7 +16867,7 @@ MA_API ma_result ma_fence_release(ma_fence* pFence) return MA_INVALID_OPERATION; /* Acquire/release mismatch. */ } - if (c89atomic_compare_exchange_weak_32(&pFence->counter, &oldCounter, newCounter)) { + if (ma_atomic_compare_exchange_weak_32(&pFence->counter, &oldCounter, newCounter)) { #ifndef MA_NO_THREADING { if (newCounter == 0) { @@ -16130,7 +16898,7 @@ MA_API ma_result ma_fence_wait(ma_fence* pFence) for (;;) { ma_uint32 counter; - counter = c89atomic_load_32(&pFence->counter); + counter = ma_atomic_load_32(&pFence->counter); if (counter == 0) { /* Counter has hit zero. By the time we get here some other thread may have acquired the @@ -16463,7 +17231,7 @@ MA_API ma_result ma_slot_allocator_alloc(ma_slot_allocator* pAllocator, ma_uint6 ma_uint32 newBitfield; ma_uint32 bitOffset; - oldBitfield = c89atomic_load_32(&pAllocator->pGroups[iGroup].bitfield); /* <-- This copy must happen. The compiler must not optimize this away. */ + oldBitfield = ma_atomic_load_32(&pAllocator->pGroups[iGroup].bitfield); /* <-- This copy must happen. The compiler must not optimize this away. */ /* Fast check to see if anything is available. */ if (oldBitfield == 0xFFFFFFFF) { @@ -16475,11 +17243,11 @@ MA_API ma_result ma_slot_allocator_alloc(ma_slot_allocator* pAllocator, ma_uint6 newBitfield = oldBitfield | (1 << bitOffset); - if (c89atomic_compare_and_swap_32(&pAllocator->pGroups[iGroup].bitfield, oldBitfield, newBitfield) == oldBitfield) { + if (ma_atomic_compare_and_swap_32(&pAllocator->pGroups[iGroup].bitfield, oldBitfield, newBitfield) == oldBitfield) { ma_uint32 slotIndex; /* Increment the counter as soon as possible to have other threads report out-of-memory sooner than later. */ - c89atomic_fetch_add_32(&pAllocator->count, 1); + ma_atomic_fetch_add_32(&pAllocator->count, 1); /* The slot index is required for constructing the output value. */ slotIndex = (iGroup << 5) + bitOffset; /* iGroup << 5 = iGroup * 32 */ @@ -16528,12 +17296,12 @@ MA_API ma_result ma_slot_allocator_free(ma_slot_allocator* pAllocator, ma_uint64 MA_ASSERT(iBit < 32); /* This must be true due to the logic we used to actually calculate it. */ - while (c89atomic_load_32(&pAllocator->count) > 0) { + while (ma_atomic_load_32(&pAllocator->count) > 0) { /* CAS */ ma_uint32 oldBitfield; ma_uint32 newBitfield; - oldBitfield = c89atomic_load_32(&pAllocator->pGroups[iGroup].bitfield); /* <-- This copy must happen. The compiler must not optimize this away. */ + oldBitfield = ma_atomic_load_32(&pAllocator->pGroups[iGroup].bitfield); /* <-- This copy must happen. The compiler must not optimize this away. */ newBitfield = oldBitfield & ~(1 << iBit); /* Debugging for checking for double-frees. */ @@ -16545,8 +17313,8 @@ MA_API ma_result ma_slot_allocator_free(ma_slot_allocator* pAllocator, ma_uint64 } #endif - if (c89atomic_compare_and_swap_32(&pAllocator->pGroups[iGroup].bitfield, oldBitfield, newBitfield) == oldBitfield) { - c89atomic_fetch_sub_32(&pAllocator->count, 1); + if (ma_atomic_compare_and_swap_32(&pAllocator->pGroups[iGroup].bitfield, oldBitfield, newBitfield) == oldBitfield) { + ma_atomic_fetch_sub_32(&pAllocator->count, 1); return MA_SUCCESS; } } @@ -16648,7 +17416,7 @@ MA_API ma_result ma_job_process(ma_job* pJob) return MA_INVALID_ARGS; } - if (pJob->toc.breakup.code > MA_JOB_TYPE_COUNT) { + if (pJob->toc.breakup.code >= MA_JOB_TYPE_COUNT) { return MA_INVALID_OPERATION; } @@ -16877,7 +17645,7 @@ MA_API void ma_job_queue_uninit(ma_job_queue* pQueue, const ma_allocation_callba static ma_bool32 ma_job_queue_cas(volatile ma_uint64* dst, ma_uint64 expected, ma_uint64 desired) { /* The new counter is taken from the expected value. */ - return c89atomic_compare_and_swap_64(dst, expected, ma_job_set_refcount(desired, ma_job_extract_refcount(expected) + 1)) == expected; + return ma_atomic_compare_and_swap_64(dst, expected, ma_job_set_refcount(desired, ma_job_extract_refcount(expected) + 1)) == expected; } MA_API ma_result ma_job_queue_post(ma_job_queue* pQueue, const ma_job* pJob) @@ -16915,10 +17683,10 @@ MA_API ma_result ma_job_queue_post(ma_job_queue* pQueue, const ma_job* pJob) { /* The job is stored in memory so now we need to add it to our linked list. We only ever add items to the end of the list. */ for (;;) { - tail = c89atomic_load_64(&pQueue->tail); - next = c89atomic_load_64(&pQueue->pJobs[ma_job_extract_slot(tail)].next); + tail = ma_atomic_load_64(&pQueue->tail); + next = ma_atomic_load_64(&pQueue->pJobs[ma_job_extract_slot(tail)].next); - if (ma_job_toc_to_allocation(tail) == ma_job_toc_to_allocation(c89atomic_load_64(&pQueue->tail))) { + if (ma_job_toc_to_allocation(tail) == ma_job_toc_to_allocation(ma_atomic_load_64(&pQueue->tail))) { if (ma_job_extract_slot(next) == 0xFFFF) { if (ma_job_queue_cas(&pQueue->pJobs[ma_job_extract_slot(tail)].next, next, slot)) { break; @@ -16989,11 +17757,11 @@ MA_API ma_result ma_job_queue_next(ma_job_queue* pQueue, ma_job* pJob) /* Now we need to remove the root item from the list. */ for (;;) { - head = c89atomic_load_64(&pQueue->head); - tail = c89atomic_load_64(&pQueue->tail); - next = c89atomic_load_64(&pQueue->pJobs[ma_job_extract_slot(head)].next); + head = ma_atomic_load_64(&pQueue->head); + tail = ma_atomic_load_64(&pQueue->tail); + next = ma_atomic_load_64(&pQueue->pJobs[ma_job_extract_slot(head)].next); - if (ma_job_toc_to_allocation(head) == ma_job_toc_to_allocation(c89atomic_load_64(&pQueue->head))) { + if (ma_job_toc_to_allocation(head) == ma_job_toc_to_allocation(ma_atomic_load_64(&pQueue->head))) { if (ma_job_extract_slot(head) == ma_job_extract_slot(tail)) { if (ma_job_extract_slot(next) == 0xFFFF) { #ifndef MA_USE_EXPERIMENTAL_LOCK_FREE_JOB_QUEUE @@ -17032,6 +17800,112 @@ MA_API ma_result ma_job_queue_next(ma_job_queue* pQueue, ma_job* pJob) +/******************************************************************************* + +Dynamic Linking + +*******************************************************************************/ +#ifdef MA_POSIX + /* No need for dlfcn.h if we're not using runtime linking. */ + #ifndef MA_NO_RUNTIME_LINKING + #include + #endif +#endif + +MA_API ma_handle ma_dlopen(ma_log* pLog, const char* filename) +{ +#ifndef MA_NO_RUNTIME_LINKING + ma_handle handle; + + ma_log_postf(pLog, MA_LOG_LEVEL_DEBUG, "Loading library: %s\n", filename); + + #ifdef MA_WIN32 + /* From MSDN: Desktop applications cannot use LoadPackagedLibrary; if a desktop application calls this function it fails with APPMODEL_ERROR_NO_PACKAGE.*/ + #if !defined(MA_WIN32_UWP) || !(defined(WINAPI_FAMILY) && ((defined(WINAPI_FAMILY_PHONE_APP) && WINAPI_FAMILY == WINAPI_FAMILY_PHONE_APP))) + handle = (ma_handle)LoadLibraryA(filename); + #else + /* *sigh* It appears there is no ANSI version of LoadPackagedLibrary()... */ + WCHAR filenameW[4096]; + if (MultiByteToWideChar(CP_UTF8, 0, filename, -1, filenameW, sizeof(filenameW)) == 0) { + handle = NULL; + } else { + handle = (ma_handle)LoadPackagedLibrary(filenameW, 0); + } + #endif + #else + handle = (ma_handle)dlopen(filename, RTLD_NOW); + #endif + + /* + I'm not considering failure to load a library an error nor a warning because seamlessly falling through to a lower-priority + backend is a deliberate design choice. Instead I'm logging it as an informational message. + */ + if (handle == NULL) { + ma_log_postf(pLog, MA_LOG_LEVEL_INFO, "Failed to load library: %s\n", filename); + } + + return handle; +#else + /* Runtime linking is disabled. */ + (void)pLog; + (void)filename; + return NULL; +#endif +} + +MA_API void ma_dlclose(ma_log* pLog, ma_handle handle) +{ +#ifndef MA_NO_RUNTIME_LINKING + #ifdef MA_WIN32 + FreeLibrary((HMODULE)handle); + #else + dlclose((void*)handle); + #endif + + (void)pLog; +#else + /* Runtime linking is disabled. */ + (void)pLog; + (void)handle; +#endif +} + +MA_API ma_proc ma_dlsym(ma_log* pLog, ma_handle handle, const char* symbol) +{ +#ifndef MA_NO_RUNTIME_LINKING + ma_proc proc; + + ma_log_postf(pLog, MA_LOG_LEVEL_DEBUG, "Loading symbol: %s\n", symbol); + +#ifdef _WIN32 + proc = (ma_proc)GetProcAddress((HMODULE)handle, symbol); +#else +#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8)) + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wpedantic" +#endif + proc = (ma_proc)dlsym((void*)handle, symbol); +#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8)) + #pragma GCC diagnostic pop +#endif +#endif + + if (proc == NULL) { + ma_log_postf(pLog, MA_LOG_LEVEL_WARNING, "Failed to load symbol: %s\n", symbol); + } + + (void)pLog; /* It's possible for pContext to be unused. */ + return proc; +#else + /* Runtime linking is disabled. */ + (void)pLog; + (void)handle; + (void)symbol; + return NULL; +#endif +} + + /************************************************************************************************************************************************************ ************************************************************************************************************************************************************* @@ -17041,13 +17915,16 @@ DEVICE I/O ************************************************************************************************************************************************************* ************************************************************************************************************************************************************/ -#ifndef MA_NO_DEVICE_IO -#ifdef MA_WIN32 - #include - #include - #include + +/* Disable run-time linking on certain backends and platforms. */ +#ifndef MA_NO_RUNTIME_LINKING + #if defined(MA_EMSCRIPTEN) || defined(MA_ORBIS) || defined(MA_PROSPERO) + #define MA_NO_RUNTIME_LINKING + #endif #endif +#ifndef MA_NO_DEVICE_IO + #if defined(MA_APPLE) && (__MAC_OS_X_VERSION_MIN_REQUIRED < 101200) #include /* For mach_absolute_time() */ #endif @@ -17055,26 +17932,15 @@ DEVICE I/O #ifdef MA_POSIX #include #include - #include -#endif -/* -Unfortunately using runtime linking for pthreads causes problems. This has occurred for me when testing on FreeBSD. When -using runtime linking, deadlocks can occur (for me it happens when loading data from fread()). It turns out that doing -compile-time linking fixes this. I'm not sure why this happens, but the safest way I can think of to fix this is to simply -disable runtime linking by default. To enable runtime linking, #define this before the implementation of this file. I am -not officially supporting this, but I'm leaving it here in case it's useful for somebody, somewhere. -*/ -/*#define MA_USE_RUNTIME_LINKING_FOR_PTHREAD*/ - -/* Disable run-time linking on certain backends. */ -#ifndef MA_NO_RUNTIME_LINKING - #if defined(MA_EMSCRIPTEN) - #define MA_NO_RUNTIME_LINKING + /* No need for dlfcn.h if we're not using runtime linking. */ + #ifndef MA_NO_RUNTIME_LINKING + #include #endif #endif + MA_API void ma_device_info_add_native_data_format(ma_device_info* pDeviceInfo, ma_format format, ma_uint32 channels, ma_uint32 sampleRate, ma_uint32 flags) { if (pDeviceInfo == NULL) { @@ -17091,27 +17957,60 @@ MA_API void ma_device_info_add_native_data_format(ma_device_info* pDeviceInfo, m } +typedef struct +{ + ma_backend backend; + const char* pName; +} ma_backend_info; + +static ma_backend_info gBackendInfo[] = /* Indexed by the backend enum. Must be in the order backends are declared in the ma_backend enum. */ +{ + {ma_backend_wasapi, "WASAPI"}, + {ma_backend_dsound, "DirectSound"}, + {ma_backend_winmm, "WinMM"}, + {ma_backend_coreaudio, "Core Audio"}, + {ma_backend_sndio, "sndio"}, + {ma_backend_audio4, "audio(4)"}, + {ma_backend_oss, "OSS"}, + {ma_backend_pulseaudio, "PulseAudio"}, + {ma_backend_alsa, "ALSA"}, + {ma_backend_jack, "JACK"}, + {ma_backend_aaudio, "AAudio"}, + {ma_backend_opensl, "OpenSL|ES"}, + {ma_backend_webaudio, "Web Audio"}, + {ma_backend_custom, "Custom"}, + {ma_backend_null, "Null"} +}; + MA_API const char* ma_get_backend_name(ma_backend backend) { - switch (backend) - { - case ma_backend_wasapi: return "WASAPI"; - case ma_backend_dsound: return "DirectSound"; - case ma_backend_winmm: return "WinMM"; - case ma_backend_coreaudio: return "Core Audio"; - case ma_backend_sndio: return "sndio"; - case ma_backend_audio4: return "audio(4)"; - case ma_backend_oss: return "OSS"; - case ma_backend_pulseaudio: return "PulseAudio"; - case ma_backend_alsa: return "ALSA"; - case ma_backend_jack: return "JACK"; - case ma_backend_aaudio: return "AAudio"; - case ma_backend_opensl: return "OpenSL|ES"; - case ma_backend_webaudio: return "Web Audio"; - case ma_backend_custom: return "Custom"; - case ma_backend_null: return "Null"; - default: return "Unknown"; + if (backend < 0 || backend >= (int)ma_countof(gBackendInfo)) { + return "Unknown"; } + + return gBackendInfo[backend].pName; +} + +MA_API ma_result ma_get_backend_from_name(const char* pBackendName, ma_backend* pBackend) +{ + size_t iBackend; + + if (pBackendName == NULL) { + return MA_INVALID_ARGS; + } + + for (iBackend = 0; iBackend < ma_countof(gBackendInfo); iBackend += 1) { + if (ma_strcmp(pBackendName, gBackendInfo[iBackend].pName) == 0) { + if (pBackend != NULL) { + *pBackend = gBackendInfo[iBackend].backend; + } + + return MA_SUCCESS; + } + } + + /* Getting here means the backend name is unknown. */ + return MA_INVALID_ARGS; } MA_API ma_bool32 ma_is_backend_enabled(ma_backend backend) @@ -17184,13 +18083,25 @@ MA_API ma_bool32 ma_is_backend_enabled(ma_backend backend) #endif case ma_backend_aaudio: #if defined(MA_HAS_AAUDIO) - return MA_TRUE; + #if defined(MA_ANDROID) + { + return ma_android_sdk_version() >= 26; + } + #else + return MA_FALSE; + #endif #else return MA_FALSE; #endif case ma_backend_opensl: #if defined(MA_HAS_OPENSL) - return MA_TRUE; + #if defined(MA_ANDROID) + { + return ma_android_sdk_version() >= 9; + } + #else + return MA_TRUE; + #endif #else return MA_FALSE; #endif @@ -17276,7 +18187,7 @@ MA_API ma_bool32 ma_is_loopback_supported(ma_backend backend) -#ifdef MA_WIN32 +#if defined(MA_WIN32) /* WASAPI error codes. */ #define MA_AUDCLNT_E_NOT_INITIALIZED ((HRESULT)0x88890001) #define MA_AUDCLNT_E_ALREADY_INITIALIZED ((HRESULT)0x88890002) @@ -17436,22 +18347,109 @@ static ma_result ma_result_from_HRESULT(HRESULT hr) } } -typedef HRESULT (WINAPI * MA_PFN_CoInitializeEx)(LPVOID pvReserved, DWORD dwCoInit); -typedef void (WINAPI * MA_PFN_CoUninitialize)(void); -typedef HRESULT (WINAPI * MA_PFN_CoCreateInstance)(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID riid, LPVOID *ppv); -typedef void (WINAPI * MA_PFN_CoTaskMemFree)(LPVOID pv); -typedef HRESULT (WINAPI * MA_PFN_PropVariantClear)(PROPVARIANT *pvar); -typedef int (WINAPI * MA_PFN_StringFromGUID2)(const GUID* const rguid, LPOLESTR lpsz, int cchMax); +/* PROPVARIANT */ +#define MA_VT_LPWSTR 31 +#define MA_VT_BLOB 65 -typedef HWND (WINAPI * MA_PFN_GetForegroundWindow)(void); -typedef HWND (WINAPI * MA_PFN_GetDesktopWindow)(void); +#if defined(_MSC_VER) && !defined(__clang__) + #pragma warning(push) + #pragma warning(disable:4201) /* nonstandard extension used: nameless struct/union */ +#elif defined(__clang__) || (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8))) + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wpedantic" /* For ISO C99 doesn't support unnamed structs/unions [-Wpedantic] */ + #if defined(__clang__) + #pragma GCC diagnostic ignored "-Wc11-extensions" /* anonymous unions are a C11 extension */ + #endif +#endif +typedef struct +{ + WORD vt; + WORD wReserved1; + WORD wReserved2; + WORD wReserved3; + union + { + struct + { + ULONG cbSize; + BYTE* pBlobData; + } blob; + WCHAR* pwszVal; + char pad[16]; /* Just to ensure the size of the struct matches the official version. */ + }; +} MA_PROPVARIANT; +#if defined(_MSC_VER) && !defined(__clang__) + #pragma warning(pop) +#elif defined(__clang__) || (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8))) + #pragma GCC diagnostic pop +#endif + +typedef HRESULT (WINAPI * MA_PFN_CoInitialize)(void* pvReserved); +typedef HRESULT (WINAPI * MA_PFN_CoInitializeEx)(void* pvReserved, DWORD dwCoInit); +typedef void (WINAPI * MA_PFN_CoUninitialize)(void); +typedef HRESULT (WINAPI * MA_PFN_CoCreateInstance)(const IID* rclsid, void* pUnkOuter, DWORD dwClsContext, const IID* riid, void* ppv); +typedef void (WINAPI * MA_PFN_CoTaskMemFree)(void* pv); +typedef HRESULT (WINAPI * MA_PFN_PropVariantClear)(MA_PROPVARIANT *pvar); +typedef int (WINAPI * MA_PFN_StringFromGUID2)(const GUID* const rguid, WCHAR* lpsz, int cchMax); + +typedef HWND (WINAPI * MA_PFN_GetForegroundWindow)(void); +typedef HWND (WINAPI * MA_PFN_GetDesktopWindow)(void); #if defined(MA_WIN32_DESKTOP) /* Microsoft documents these APIs as returning LSTATUS, but the Win32 API shipping with some compilers do not define it. It's just a LONG. */ -typedef LONG (WINAPI * MA_PFN_RegOpenKeyExA)(HKEY hKey, LPCSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult); -typedef LONG (WINAPI * MA_PFN_RegCloseKey)(HKEY hKey); -typedef LONG (WINAPI * MA_PFN_RegQueryValueExA)(HKEY hKey, LPCSTR lpValueName, LPDWORD lpReserved, LPDWORD lpType, LPBYTE lpData, LPDWORD lpcbData); +typedef LONG (WINAPI * MA_PFN_RegOpenKeyExA)(HKEY hKey, const char* lpSubKey, DWORD ulOptions, DWORD samDesired, HKEY* phkResult); +typedef LONG (WINAPI * MA_PFN_RegCloseKey)(HKEY hKey); +typedef LONG (WINAPI * MA_PFN_RegQueryValueExA)(HKEY hKey, const char* lpValueName, DWORD* lpReserved, DWORD* lpType, BYTE* lpData, DWORD* lpcbData); #endif /* MA_WIN32_DESKTOP */ + + +MA_API size_t ma_strlen_WCHAR(const WCHAR* str) +{ + size_t len = 0; + while (str[len] != '\0') { + len += 1; + } + + return len; +} + +MA_API int ma_strcmp_WCHAR(const WCHAR *s1, const WCHAR *s2) +{ + while (*s1 != '\0' && *s1 == *s2) { + s1 += 1; + s2 += 1; + } + + return *s1 - *s2; +} + +MA_API int ma_strcpy_s_WCHAR(WCHAR* dst, size_t dstCap, const WCHAR* src) +{ + size_t i; + + if (dst == 0) { + return 22; + } + if (dstCap == 0) { + return 34; + } + if (src == 0) { + dst[0] = '\0'; + return 22; + } + + for (i = 0; i < dstCap && src[i] != '\0'; ++i) { + dst[i] = src[i]; + } + + if (i < dstCap) { + dst[i] = '\0'; + return 0; + } + + dst[0] = '\0'; + return 34; +} #endif /* MA_WIN32 */ @@ -17466,9 +18464,9 @@ typedef LONG (WINAPI * MA_PFN_RegQueryValueExA)(HKEY hKey, LPCSTR lpValueName, L Timing *******************************************************************************/ -#ifdef MA_WIN32 +#if defined(MA_WIN32) && !defined(MA_POSIX) static LARGE_INTEGER g_ma_TimerFrequency; /* <-- Initialized to zero since it's static. */ - void ma_timer_init(ma_timer* pTimer) + static void ma_timer_init(ma_timer* pTimer) { LARGE_INTEGER counter; @@ -17480,7 +18478,7 @@ Timing pTimer->counter = counter.QuadPart; } - double ma_timer_get_time_in_seconds(ma_timer* pTimer) + static double ma_timer_get_time_in_seconds(ma_timer* pTimer) { LARGE_INTEGER counter; if (!QueryPerformanceCounter(&counter)) { @@ -17572,83 +18570,6 @@ Timing #endif -/******************************************************************************* - -Dynamic Linking - -*******************************************************************************/ -MA_API ma_handle ma_dlopen(ma_context* pContext, const char* filename) -{ - ma_handle handle; - - ma_log_postf(ma_context_get_log(pContext), MA_LOG_LEVEL_DEBUG, "Loading library: %s\n", filename); - -#ifdef _WIN32 -#ifdef MA_WIN32_DESKTOP - handle = (ma_handle)LoadLibraryA(filename); -#else - /* *sigh* It appears there is no ANSI version of LoadPackagedLibrary()... */ - WCHAR filenameW[4096]; - if (MultiByteToWideChar(CP_UTF8, 0, filename, -1, filenameW, sizeof(filenameW)) == 0) { - handle = NULL; - } else { - handle = (ma_handle)LoadPackagedLibrary(filenameW, 0); - } -#endif -#else - handle = (ma_handle)dlopen(filename, RTLD_NOW); -#endif - - /* - I'm not considering failure to load a library an error nor a warning because seamlessly falling through to a lower-priority - backend is a deliberate design choice. Instead I'm logging it as an informational message. - */ - if (handle == NULL) { - ma_log_postf(ma_context_get_log(pContext), MA_LOG_LEVEL_INFO, "Failed to load library: %s\n", filename); - } - - (void)pContext; /* It's possible for pContext to be unused. */ - return handle; -} - -MA_API void ma_dlclose(ma_context* pContext, ma_handle handle) -{ -#ifdef _WIN32 - FreeLibrary((HMODULE)handle); -#else - dlclose((void*)handle); -#endif - - (void)pContext; -} - -MA_API ma_proc ma_dlsym(ma_context* pContext, ma_handle handle, const char* symbol) -{ - ma_proc proc; - - ma_log_postf(ma_context_get_log(pContext), MA_LOG_LEVEL_DEBUG, "Loading symbol: %s\n", symbol); - -#ifdef _WIN32 - proc = (ma_proc)GetProcAddress((HMODULE)handle, symbol); -#else -#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8)) - #pragma GCC diagnostic push - #pragma GCC diagnostic ignored "-Wpedantic" -#endif - proc = (ma_proc)dlsym((void*)handle, symbol); -#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8)) - #pragma GCC diagnostic pop -#endif -#endif - - if (proc == NULL) { - ma_log_postf(ma_context_get_log(pContext), MA_LOG_LEVEL_WARNING, "Failed to load symbol: %s\n", symbol); - } - - (void)pContext; /* It's possible for pContext to be unused. */ - return proc; -} - #if 0 static ma_uint32 ma_get_closest_standard_sample_rate(ma_uint32 sampleRateIn) @@ -17730,30 +18651,31 @@ static void ma_device__on_notification(ma_device_notification notification) } } -void ma_device__on_notification_started(ma_device* pDevice) +static void ma_device__on_notification_started(ma_device* pDevice) { ma_device__on_notification(ma_device_notification_init(pDevice, ma_device_notification_type_started)); } -void ma_device__on_notification_stopped(ma_device* pDevice) +static void ma_device__on_notification_stopped(ma_device* pDevice) { ma_device__on_notification(ma_device_notification_init(pDevice, ma_device_notification_type_stopped)); } -void ma_device__on_notification_rerouted(ma_device* pDevice) +/* Not all platforms support reroute notifications. */ +#if !defined(MA_EMSCRIPTEN) +static void ma_device__on_notification_rerouted(ma_device* pDevice) { ma_device__on_notification(ma_device_notification_init(pDevice, ma_device_notification_type_rerouted)); } +#endif -void ma_device__on_notification_interruption_began(ma_device* pDevice) +#if defined(MA_EMSCRIPTEN) +EMSCRIPTEN_KEEPALIVE +void ma_device__on_notification_unlocked(ma_device* pDevice) { - ma_device__on_notification(ma_device_notification_init(pDevice, ma_device_notification_type_interruption_began)); -} - -void ma_device__on_notification_interruption_ended(ma_device* pDevice) -{ - ma_device__on_notification(ma_device_notification_init(pDevice, ma_device_notification_type_interruption_ended)); + ma_device__on_notification(ma_device_notification_init(pDevice, ma_device_notification_type_unlocked)); } +#endif static void ma_device__on_data_inner(ma_device* pDevice, void* pFramesOut, const void* pFramesIn, ma_uint32 frameCount) @@ -17772,6 +18694,11 @@ static void ma_device__on_data(ma_device* pDevice, void* pFramesOut, const void* { MA_ASSERT(pDevice != NULL); + /* Don't read more data from the client if we're in the process of stopping. */ + if (ma_device_get_state(pDevice) == ma_device_state_stopping) { + return; + } + if (pDevice->noFixedSizedCallback) { /* Fast path. Not using a fixed sized callback. Process directly from the specified buffers. */ ma_device__on_data_inner(pDevice, pFramesOut, pFramesIn, frameCount); @@ -17846,7 +18773,7 @@ static void ma_device__on_data(ma_device* pDevice, void* pFramesOut, const void* /* The intermediary buffer has just been filled. */ pDevice->playback.intermediaryBufferLen = pDevice->playback.intermediaryBufferCap; } - } + } } /* If we're in duplex mode we might need to do a refill of the data. */ @@ -18059,6 +18986,9 @@ static void ma_device__send_frames_to_client(ma_device* pDevice, ma_uint32 frame totalDeviceFramesProcessed += deviceFramesProcessedThisIteration; totalClientFramesProcessed += clientFramesProcessedThisIteration; + /* This is just to silence a warning. I might want to use this variable later so leaving in place for now. */ + (void)totalClientFramesProcessed; + if (deviceFramesProcessedThisIteration == 0 && clientFramesProcessedThisIteration == 0) { break; /* We're done. */ } @@ -18195,15 +19125,15 @@ static ma_result ma_device__handle_duplex_callback_playback(ma_device* pDevice, /* A helper for changing the state of the device. */ static MA_INLINE void ma_device__set_state(ma_device* pDevice, ma_device_state newState) { - c89atomic_exchange_i32((ma_int32*)&pDevice->state, (ma_int32)newState); + ma_atomic_device_state_set(&pDevice->state, newState); } -#ifdef MA_WIN32 - GUID MA_GUID_KSDATAFORMAT_SUBTYPE_PCM = {0x00000001, 0x0000, 0x0010, {0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}}; - GUID MA_GUID_KSDATAFORMAT_SUBTYPE_IEEE_FLOAT = {0x00000003, 0x0000, 0x0010, {0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}}; - /*GUID MA_GUID_KSDATAFORMAT_SUBTYPE_ALAW = {0x00000006, 0x0000, 0x0010, {0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}};*/ - /*GUID MA_GUID_KSDATAFORMAT_SUBTYPE_MULAW = {0x00000007, 0x0000, 0x0010, {0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}};*/ +#if defined(MA_WIN32) + static GUID MA_GUID_KSDATAFORMAT_SUBTYPE_PCM = {0x00000001, 0x0000, 0x0010, {0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}}; + static GUID MA_GUID_KSDATAFORMAT_SUBTYPE_IEEE_FLOAT = {0x00000003, 0x0000, 0x0010, {0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}}; + /*static GUID MA_GUID_KSDATAFORMAT_SUBTYPE_ALAW = {0x00000006, 0x0000, 0x0010, {0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}};*/ + /*static GUID MA_GUID_KSDATAFORMAT_SUBTYPE_MULAW = {0x00000007, 0x0000, 0x0010, {0x80, 0x00, 0x00, 0xaa, 0x00, 0x38, 0x9b, 0x71}};*/ #endif @@ -18706,7 +19636,7 @@ static ma_result ma_device_start__null(ma_device* pDevice) ma_device_do_operation__null(pDevice, MA_DEVICE_OP_START__NULL); - c89atomic_exchange_32(&pDevice->null_device.isStarted, MA_TRUE); + ma_atomic_bool32_set(&pDevice->null_device.isStarted, MA_TRUE); return MA_SUCCESS; } @@ -18716,10 +19646,17 @@ static ma_result ma_device_stop__null(ma_device* pDevice) ma_device_do_operation__null(pDevice, MA_DEVICE_OP_SUSPEND__NULL); - c89atomic_exchange_32(&pDevice->null_device.isStarted, MA_FALSE); + ma_atomic_bool32_set(&pDevice->null_device.isStarted, MA_FALSE); return MA_SUCCESS; } +static ma_bool32 ma_device_is_started__null(ma_device* pDevice) +{ + MA_ASSERT(pDevice != NULL); + + return ma_atomic_bool32_get(&pDevice->null_device.isStarted); +} + static ma_result ma_device_write__null(ma_device* pDevice, const void* pPCMFrames, ma_uint32 frameCount, ma_uint32* pFramesWritten) { ma_result result = MA_SUCCESS; @@ -18730,7 +19667,7 @@ static ma_result ma_device_write__null(ma_device* pDevice, const void* pPCMFrame *pFramesWritten = 0; } - wasStartedOnEntry = c89atomic_load_32(&pDevice->null_device.isStarted); + wasStartedOnEntry = ma_device_is_started__null(pDevice); /* Keep going until everything has been read. */ totalPCMFramesProcessed = 0; @@ -18756,7 +19693,7 @@ static ma_result ma_device_write__null(ma_device* pDevice, const void* pPCMFrame if (pDevice->null_device.currentPeriodFramesRemainingPlayback == 0) { pDevice->null_device.currentPeriodFramesRemainingPlayback = 0; - if (!c89atomic_load_32(&pDevice->null_device.isStarted) && !wasStartedOnEntry) { + if (!ma_device_is_started__null(pDevice) && !wasStartedOnEntry) { result = ma_device_start__null(pDevice); if (result != MA_SUCCESS) { break; @@ -18776,7 +19713,7 @@ static ma_result ma_device_write__null(ma_device* pDevice, const void* pPCMFrame ma_uint64 currentFrame; /* Stop waiting if the device has been stopped. */ - if (!c89atomic_load_32(&pDevice->null_device.isStarted)) { + if (!ma_device_is_started__null(pDevice)) { break; } @@ -18847,7 +19784,7 @@ static ma_result ma_device_read__null(ma_device* pDevice, void* pPCMFrames, ma_u ma_uint64 currentFrame; /* Stop waiting if the device has been stopped. */ - if (!c89atomic_load_32(&pDevice->null_device.isStarted)) { + if (!ma_device_is_started__null(pDevice)) { break; } @@ -18912,8 +19849,8 @@ WIN32 COMMON *******************************************************************************/ #if defined(MA_WIN32) -#if defined(MA_WIN32_DESKTOP) - #define ma_CoInitializeEx(pContext, pvReserved, dwCoInit) ((MA_PFN_CoInitializeEx)pContext->win32.CoInitializeEx)(pvReserved, dwCoInit) +#if defined(MA_WIN32_DESKTOP) || defined(MA_WIN32_GDK) + #define ma_CoInitializeEx(pContext, pvReserved, dwCoInit) ((pContext->win32.CoInitializeEx) ? ((MA_PFN_CoInitializeEx)pContext->win32.CoInitializeEx)(pvReserved, dwCoInit) : ((MA_PFN_CoInitialize)pContext->win32.CoInitialize)(pvReserved)) #define ma_CoUninitialize(pContext) ((MA_PFN_CoUninitialize)pContext->win32.CoUninitialize)() #define ma_CoCreateInstance(pContext, rclsid, pUnkOuter, dwClsContext, riid, ppv) ((MA_PFN_CoCreateInstance)pContext->win32.CoCreateInstance)(rclsid, pUnkOuter, dwClsContext, riid, ppv) #define ma_CoTaskMemFree(pContext, pv) ((MA_PFN_CoTaskMemFree)pContext->win32.CoTaskMemFree)(pv) @@ -18930,19 +19867,34 @@ WIN32 COMMON typedef size_t DWORD_PTR; #endif +#if !defined(WAVE_FORMAT_1M08) +#define WAVE_FORMAT_1M08 0x00000001 +#define WAVE_FORMAT_1S08 0x00000002 +#define WAVE_FORMAT_1M16 0x00000004 +#define WAVE_FORMAT_1S16 0x00000008 +#define WAVE_FORMAT_2M08 0x00000010 +#define WAVE_FORMAT_2S08 0x00000020 +#define WAVE_FORMAT_2M16 0x00000040 +#define WAVE_FORMAT_2S16 0x00000080 +#define WAVE_FORMAT_4M08 0x00000100 +#define WAVE_FORMAT_4S08 0x00000200 +#define WAVE_FORMAT_4M16 0x00000400 +#define WAVE_FORMAT_4S16 0x00000800 +#endif + #if !defined(WAVE_FORMAT_44M08) -#define WAVE_FORMAT_44M08 0x00000100 -#define WAVE_FORMAT_44S08 0x00000200 -#define WAVE_FORMAT_44M16 0x00000400 -#define WAVE_FORMAT_44S16 0x00000800 -#define WAVE_FORMAT_48M08 0x00001000 -#define WAVE_FORMAT_48S08 0x00002000 -#define WAVE_FORMAT_48M16 0x00004000 -#define WAVE_FORMAT_48S16 0x00008000 -#define WAVE_FORMAT_96M08 0x00010000 -#define WAVE_FORMAT_96S08 0x00020000 -#define WAVE_FORMAT_96M16 0x00040000 -#define WAVE_FORMAT_96S16 0x00080000 +#define WAVE_FORMAT_44M08 0x00000100 +#define WAVE_FORMAT_44S08 0x00000200 +#define WAVE_FORMAT_44M16 0x00000400 +#define WAVE_FORMAT_44S16 0x00000800 +#define WAVE_FORMAT_48M08 0x00001000 +#define WAVE_FORMAT_48S08 0x00002000 +#define WAVE_FORMAT_48M16 0x00004000 +#define WAVE_FORMAT_48S16 0x00008000 +#define WAVE_FORMAT_96M08 0x00010000 +#define WAVE_FORMAT_96S08 0x00020000 +#define WAVE_FORMAT_96M16 0x00040000 +#define WAVE_FORMAT_96S16 0x00080000 #endif #ifndef SPEAKER_FRONT_LEFT @@ -18967,13 +19919,30 @@ typedef size_t DWORD_PTR; #endif /* -The SDK that comes with old versions of MSVC (VC6, for example) does not appear to define WAVEFORMATEXTENSIBLE. We -define our own implementation in this case. +Implement our own version of MA_WAVEFORMATEXTENSIBLE so we can avoid a header. Be careful with this +because MA_WAVEFORMATEX has an extra two bytes over standard WAVEFORMATEX due to padding. The +standard version uses tight packing, but for compiler compatibility we're not doing that with ours. */ -#if (defined(_MSC_VER) && !defined(_WAVEFORMATEXTENSIBLE_)) || defined(__DMC__) typedef struct { - WAVEFORMATEX Format; + WORD wFormatTag; + WORD nChannels; + DWORD nSamplesPerSec; + DWORD nAvgBytesPerSec; + WORD nBlockAlign; + WORD wBitsPerSample; + WORD cbSize; +} MA_WAVEFORMATEX; + +typedef struct +{ + WORD wFormatTag; + WORD nChannels; + DWORD nSamplesPerSec; + DWORD nAvgBytesPerSec; + WORD nBlockAlign; + WORD wBitsPerSample; + WORD cbSize; union { WORD wValidBitsPerSample; @@ -18982,13 +19951,18 @@ typedef struct } Samples; DWORD dwChannelMask; GUID SubFormat; -} WAVEFORMATEXTENSIBLE; -#endif +} MA_WAVEFORMATEXTENSIBLE; + + #ifndef WAVE_FORMAT_EXTENSIBLE #define WAVE_FORMAT_EXTENSIBLE 0xFFFE #endif +#ifndef WAVE_FORMAT_PCM +#define WAVE_FORMAT_PCM 1 +#endif + #ifndef WAVE_FORMAT_IEEE_FLOAT #define WAVE_FORMAT_IEEE_FLOAT 0x0003 #endif @@ -19064,11 +20038,9 @@ static DWORD ma_channel_map_to_channel_mask__win32(const ma_channel* pChannelMap /* Converts a Win32-style channel mask to a miniaudio channel map. */ static void ma_channel_mask_to_channel_map__win32(DWORD dwChannelMask, ma_uint32 channels, ma_channel* pChannelMap) { - if (channels == 1 && dwChannelMask == 0) { - pChannelMap[0] = MA_CHANNEL_MONO; - } else if (channels == 2 && dwChannelMask == 0) { - pChannelMap[0] = MA_CHANNEL_FRONT_LEFT; - pChannelMap[1] = MA_CHANNEL_FRONT_RIGHT; + /* If the channel mask is set to 0, just assume a default Win32 channel map. */ + if (dwChannelMask == 0) { + ma_channel_map_init_standard(ma_standard_channel_map_microsoft, pChannelMap, channels, channels); } else { if (channels == 1 && (dwChannelMask & SPEAKER_FRONT_CENTER) != 0) { pChannelMap[0] = MA_CHANNEL_MONO; @@ -19104,21 +20076,21 @@ static MA_INLINE ma_bool32 ma_is_guid_null(const void* guid) return ma_is_guid_equal(guid, &nullguid); } -static ma_format ma_format_from_WAVEFORMATEX(const WAVEFORMATEX* pWF) +static ma_format ma_format_from_WAVEFORMATEX(const MA_WAVEFORMATEX* pWF) { MA_ASSERT(pWF != NULL); if (pWF->wFormatTag == WAVE_FORMAT_EXTENSIBLE) { - const WAVEFORMATEXTENSIBLE* pWFEX = (const WAVEFORMATEXTENSIBLE*)pWF; + const MA_WAVEFORMATEXTENSIBLE* pWFEX = (const MA_WAVEFORMATEXTENSIBLE*)pWF; if (ma_is_guid_equal(&pWFEX->SubFormat, &MA_GUID_KSDATAFORMAT_SUBTYPE_PCM)) { if (pWFEX->Samples.wValidBitsPerSample == 32) { return ma_format_s32; } if (pWFEX->Samples.wValidBitsPerSample == 24) { - if (pWFEX->Format.wBitsPerSample == 32) { - /*return ma_format_s24_32;*/ + if (pWFEX->wBitsPerSample == 32) { + return ma_format_s32; } - if (pWFEX->Format.wBitsPerSample == 24) { + if (pWFEX->wBitsPerSample == 24) { return ma_format_s24; } } @@ -19226,7 +20198,7 @@ typedef struct #endif /* Some compilers don't define PropVariantInit(). We just do this ourselves since it's just a memset(). */ -static MA_INLINE void ma_PropVariantInit(PROPVARIANT* pProp) +static MA_INLINE void ma_PropVariantInit(MA_PROPVARIANT* pProp) { MA_ZERO_OBJECT(pProp); } @@ -19252,17 +20224,9 @@ static const IID MA_IID_DEVINTERFACE_AUDIO_CAPTURE = {0x2EEF81BE, static const IID MA_IID_IActivateAudioInterfaceCompletionHandler = {0x41D949AB, 0x9862, 0x444A, {0x80, 0xF6, 0xC2, 0x61, 0x33, 0x4D, 0xA5, 0xEB}}; /* 41D949AB-9862-444A-80F6-C261334DA5EB */ #endif -static const IID MA_CLSID_MMDeviceEnumerator_Instance = {0xBCDE0395, 0xE52F, 0x467C, {0x8E, 0x3D, 0xC4, 0x57, 0x92, 0x91, 0x69, 0x2E}}; /* BCDE0395-E52F-467C-8E3D-C4579291692E = __uuidof(MMDeviceEnumerator) */ -static const IID MA_IID_IMMDeviceEnumerator_Instance = {0xA95664D2, 0x9614, 0x4F35, {0xA7, 0x46, 0xDE, 0x8D, 0xB6, 0x36, 0x17, 0xE6}}; /* A95664D2-9614-4F35-A746-DE8DB63617E6 = __uuidof(IMMDeviceEnumerator) */ -#ifdef __cplusplus -#define MA_CLSID_MMDeviceEnumerator MA_CLSID_MMDeviceEnumerator_Instance -#define MA_IID_IMMDeviceEnumerator MA_IID_IMMDeviceEnumerator_Instance -#else -#define MA_CLSID_MMDeviceEnumerator &MA_CLSID_MMDeviceEnumerator_Instance -#define MA_IID_IMMDeviceEnumerator &MA_IID_IMMDeviceEnumerator_Instance -#endif +static const IID MA_CLSID_MMDeviceEnumerator = {0xBCDE0395, 0xE52F, 0x467C, {0x8E, 0x3D, 0xC4, 0x57, 0x92, 0x91, 0x69, 0x2E}}; /* BCDE0395-E52F-467C-8E3D-C4579291692E = __uuidof(MMDeviceEnumerator) */ +static const IID MA_IID_IMMDeviceEnumerator = {0xA95664D2, 0x9614, 0x4F35, {0xA7, 0x46, 0xDE, 0x8D, 0xB6, 0x36, 0x17, 0xE6}}; /* A95664D2-9614-4F35-A746-DE8DB63617E6 = __uuidof(IMMDeviceEnumerator) */ -typedef struct ma_IUnknown ma_IUnknown; #if defined(MA_WIN32_DESKTOP) || defined(MA_WIN32_GDK) #define MA_MM_DEVICE_STATE_ACTIVE 1 #define MA_MM_DEVICE_STATE_DISABLED 2 @@ -19359,11 +20323,11 @@ static MA_INLINE ULONG ma_IUnknown_Release(ma_IUnknown* pThis) ULONG (STDMETHODCALLTYPE * Release) (ma_IMMNotificationClient* pThis); /* IMMNotificationClient */ - HRESULT (STDMETHODCALLTYPE * OnDeviceStateChanged) (ma_IMMNotificationClient* pThis, LPCWSTR pDeviceID, DWORD dwNewState); - HRESULT (STDMETHODCALLTYPE * OnDeviceAdded) (ma_IMMNotificationClient* pThis, LPCWSTR pDeviceID); - HRESULT (STDMETHODCALLTYPE * OnDeviceRemoved) (ma_IMMNotificationClient* pThis, LPCWSTR pDeviceID); - HRESULT (STDMETHODCALLTYPE * OnDefaultDeviceChanged)(ma_IMMNotificationClient* pThis, ma_EDataFlow dataFlow, ma_ERole role, LPCWSTR pDefaultDeviceID); - HRESULT (STDMETHODCALLTYPE * OnPropertyValueChanged)(ma_IMMNotificationClient* pThis, LPCWSTR pDeviceID, const PROPERTYKEY key); + HRESULT (STDMETHODCALLTYPE * OnDeviceStateChanged) (ma_IMMNotificationClient* pThis, const WCHAR* pDeviceID, DWORD dwNewState); + HRESULT (STDMETHODCALLTYPE * OnDeviceAdded) (ma_IMMNotificationClient* pThis, const WCHAR* pDeviceID); + HRESULT (STDMETHODCALLTYPE * OnDeviceRemoved) (ma_IMMNotificationClient* pThis, const WCHAR* pDeviceID); + HRESULT (STDMETHODCALLTYPE * OnDefaultDeviceChanged)(ma_IMMNotificationClient* pThis, ma_EDataFlow dataFlow, ma_ERole role, const WCHAR* pDefaultDeviceID); + HRESULT (STDMETHODCALLTYPE * OnPropertyValueChanged)(ma_IMMNotificationClient* pThis, const WCHAR* pDeviceID, const PROPERTYKEY key); } ma_IMMNotificationClientVtbl; /* IMMDeviceEnumerator */ @@ -19377,7 +20341,7 @@ static MA_INLINE ULONG ma_IUnknown_Release(ma_IUnknown* pThis) /* IMMDeviceEnumerator */ HRESULT (STDMETHODCALLTYPE * EnumAudioEndpoints) (ma_IMMDeviceEnumerator* pThis, ma_EDataFlow dataFlow, DWORD dwStateMask, ma_IMMDeviceCollection** ppDevices); HRESULT (STDMETHODCALLTYPE * GetDefaultAudioEndpoint) (ma_IMMDeviceEnumerator* pThis, ma_EDataFlow dataFlow, ma_ERole role, ma_IMMDevice** ppEndpoint); - HRESULT (STDMETHODCALLTYPE * GetDevice) (ma_IMMDeviceEnumerator* pThis, LPCWSTR pID, ma_IMMDevice** ppDevice); + HRESULT (STDMETHODCALLTYPE * GetDevice) (ma_IMMDeviceEnumerator* pThis, const WCHAR* pID, ma_IMMDevice** ppDevice); HRESULT (STDMETHODCALLTYPE * RegisterEndpointNotificationCallback) (ma_IMMDeviceEnumerator* pThis, ma_IMMNotificationClient* pClient); HRESULT (STDMETHODCALLTYPE * UnregisterEndpointNotificationCallback)(ma_IMMDeviceEnumerator* pThis, ma_IMMNotificationClient* pClient); } ma_IMMDeviceEnumeratorVtbl; @@ -19390,7 +20354,7 @@ static MA_INLINE ULONG ma_IUnknown_Release(ma_IUnknown* pThis) static MA_INLINE ULONG ma_IMMDeviceEnumerator_Release(ma_IMMDeviceEnumerator* pThis) { return pThis->lpVtbl->Release(pThis); } static MA_INLINE HRESULT ma_IMMDeviceEnumerator_EnumAudioEndpoints(ma_IMMDeviceEnumerator* pThis, ma_EDataFlow dataFlow, DWORD dwStateMask, ma_IMMDeviceCollection** ppDevices) { return pThis->lpVtbl->EnumAudioEndpoints(pThis, dataFlow, dwStateMask, ppDevices); } static MA_INLINE HRESULT ma_IMMDeviceEnumerator_GetDefaultAudioEndpoint(ma_IMMDeviceEnumerator* pThis, ma_EDataFlow dataFlow, ma_ERole role, ma_IMMDevice** ppEndpoint) { return pThis->lpVtbl->GetDefaultAudioEndpoint(pThis, dataFlow, role, ppEndpoint); } - static MA_INLINE HRESULT ma_IMMDeviceEnumerator_GetDevice(ma_IMMDeviceEnumerator* pThis, LPCWSTR pID, ma_IMMDevice** ppDevice) { return pThis->lpVtbl->GetDevice(pThis, pID, ppDevice); } + static MA_INLINE HRESULT ma_IMMDeviceEnumerator_GetDevice(ma_IMMDeviceEnumerator* pThis, const WCHAR* pID, ma_IMMDevice** ppDevice) { return pThis->lpVtbl->GetDevice(pThis, pID, ppDevice); } static MA_INLINE HRESULT ma_IMMDeviceEnumerator_RegisterEndpointNotificationCallback(ma_IMMDeviceEnumerator* pThis, ma_IMMNotificationClient* pClient) { return pThis->lpVtbl->RegisterEndpointNotificationCallback(pThis, pClient); } static MA_INLINE HRESULT ma_IMMDeviceEnumerator_UnregisterEndpointNotificationCallback(ma_IMMDeviceEnumerator* pThis, ma_IMMNotificationClient* pClient) { return pThis->lpVtbl->UnregisterEndpointNotificationCallback(pThis, pClient); } @@ -19427,9 +20391,9 @@ static MA_INLINE ULONG ma_IUnknown_Release(ma_IUnknown* pThis) ULONG (STDMETHODCALLTYPE * Release) (ma_IMMDevice* pThis); /* IMMDevice */ - HRESULT (STDMETHODCALLTYPE * Activate) (ma_IMMDevice* pThis, const IID* const iid, DWORD dwClsCtx, PROPVARIANT* pActivationParams, void** ppInterface); + HRESULT (STDMETHODCALLTYPE * Activate) (ma_IMMDevice* pThis, const IID* const iid, DWORD dwClsCtx, MA_PROPVARIANT* pActivationParams, void** ppInterface); HRESULT (STDMETHODCALLTYPE * OpenPropertyStore)(ma_IMMDevice* pThis, DWORD stgmAccess, ma_IPropertyStore** ppProperties); - HRESULT (STDMETHODCALLTYPE * GetId) (ma_IMMDevice* pThis, LPWSTR *pID); + HRESULT (STDMETHODCALLTYPE * GetId) (ma_IMMDevice* pThis, WCHAR** pID); HRESULT (STDMETHODCALLTYPE * GetState) (ma_IMMDevice* pThis, DWORD *pState); } ma_IMMDeviceVtbl; struct ma_IMMDevice @@ -19439,9 +20403,9 @@ static MA_INLINE ULONG ma_IUnknown_Release(ma_IUnknown* pThis) static MA_INLINE HRESULT ma_IMMDevice_QueryInterface(ma_IMMDevice* pThis, const IID* const riid, void** ppObject) { return pThis->lpVtbl->QueryInterface(pThis, riid, ppObject); } static MA_INLINE ULONG ma_IMMDevice_AddRef(ma_IMMDevice* pThis) { return pThis->lpVtbl->AddRef(pThis); } static MA_INLINE ULONG ma_IMMDevice_Release(ma_IMMDevice* pThis) { return pThis->lpVtbl->Release(pThis); } - static MA_INLINE HRESULT ma_IMMDevice_Activate(ma_IMMDevice* pThis, const IID* const iid, DWORD dwClsCtx, PROPVARIANT* pActivationParams, void** ppInterface) { return pThis->lpVtbl->Activate(pThis, iid, dwClsCtx, pActivationParams, ppInterface); } + static MA_INLINE HRESULT ma_IMMDevice_Activate(ma_IMMDevice* pThis, const IID* const iid, DWORD dwClsCtx, MA_PROPVARIANT* pActivationParams, void** ppInterface) { return pThis->lpVtbl->Activate(pThis, iid, dwClsCtx, pActivationParams, ppInterface); } static MA_INLINE HRESULT ma_IMMDevice_OpenPropertyStore(ma_IMMDevice* pThis, DWORD stgmAccess, ma_IPropertyStore** ppProperties) { return pThis->lpVtbl->OpenPropertyStore(pThis, stgmAccess, ppProperties); } - static MA_INLINE HRESULT ma_IMMDevice_GetId(ma_IMMDevice* pThis, LPWSTR *pID) { return pThis->lpVtbl->GetId(pThis, pID); } + static MA_INLINE HRESULT ma_IMMDevice_GetId(ma_IMMDevice* pThis, WCHAR** pID) { return pThis->lpVtbl->GetId(pThis, pID); } static MA_INLINE HRESULT ma_IMMDevice_GetState(ma_IMMDevice* pThis, DWORD *pState) { return pThis->lpVtbl->GetState(pThis, pState); } #else /* IActivateAudioInterfaceAsyncOperation */ @@ -19476,8 +20440,8 @@ typedef struct /* IPropertyStore */ HRESULT (STDMETHODCALLTYPE * GetCount)(ma_IPropertyStore* pThis, DWORD* pPropCount); HRESULT (STDMETHODCALLTYPE * GetAt) (ma_IPropertyStore* pThis, DWORD propIndex, PROPERTYKEY* pPropKey); - HRESULT (STDMETHODCALLTYPE * GetValue)(ma_IPropertyStore* pThis, const PROPERTYKEY* const pKey, PROPVARIANT* pPropVar); - HRESULT (STDMETHODCALLTYPE * SetValue)(ma_IPropertyStore* pThis, const PROPERTYKEY* const pKey, const PROPVARIANT* const pPropVar); + HRESULT (STDMETHODCALLTYPE * GetValue)(ma_IPropertyStore* pThis, const PROPERTYKEY* const pKey, MA_PROPVARIANT* pPropVar); + HRESULT (STDMETHODCALLTYPE * SetValue)(ma_IPropertyStore* pThis, const PROPERTYKEY* const pKey, const MA_PROPVARIANT* const pPropVar); HRESULT (STDMETHODCALLTYPE * Commit) (ma_IPropertyStore* pThis); } ma_IPropertyStoreVtbl; struct ma_IPropertyStore @@ -19489,8 +20453,8 @@ static MA_INLINE ULONG ma_IPropertyStore_AddRef(ma_IPropertyStore* pThis) static MA_INLINE ULONG ma_IPropertyStore_Release(ma_IPropertyStore* pThis) { return pThis->lpVtbl->Release(pThis); } static MA_INLINE HRESULT ma_IPropertyStore_GetCount(ma_IPropertyStore* pThis, DWORD* pPropCount) { return pThis->lpVtbl->GetCount(pThis, pPropCount); } static MA_INLINE HRESULT ma_IPropertyStore_GetAt(ma_IPropertyStore* pThis, DWORD propIndex, PROPERTYKEY* pPropKey) { return pThis->lpVtbl->GetAt(pThis, propIndex, pPropKey); } -static MA_INLINE HRESULT ma_IPropertyStore_GetValue(ma_IPropertyStore* pThis, const PROPERTYKEY* const pKey, PROPVARIANT* pPropVar) { return pThis->lpVtbl->GetValue(pThis, pKey, pPropVar); } -static MA_INLINE HRESULT ma_IPropertyStore_SetValue(ma_IPropertyStore* pThis, const PROPERTYKEY* const pKey, const PROPVARIANT* const pPropVar) { return pThis->lpVtbl->SetValue(pThis, pKey, pPropVar); } +static MA_INLINE HRESULT ma_IPropertyStore_GetValue(ma_IPropertyStore* pThis, const PROPERTYKEY* const pKey, MA_PROPVARIANT* pPropVar) { return pThis->lpVtbl->GetValue(pThis, pKey, pPropVar); } +static MA_INLINE HRESULT ma_IPropertyStore_SetValue(ma_IPropertyStore* pThis, const PROPERTYKEY* const pKey, const MA_PROPVARIANT* const pPropVar) { return pThis->lpVtbl->SetValue(pThis, pKey, pPropVar); } static MA_INLINE HRESULT ma_IPropertyStore_Commit(ma_IPropertyStore* pThis) { return pThis->lpVtbl->Commit(pThis); } @@ -19503,12 +20467,12 @@ typedef struct ULONG (STDMETHODCALLTYPE * Release) (ma_IAudioClient* pThis); /* IAudioClient */ - HRESULT (STDMETHODCALLTYPE * Initialize) (ma_IAudioClient* pThis, MA_AUDCLNT_SHAREMODE shareMode, DWORD streamFlags, MA_REFERENCE_TIME bufferDuration, MA_REFERENCE_TIME periodicity, const WAVEFORMATEX* pFormat, const GUID* pAudioSessionGuid); + HRESULT (STDMETHODCALLTYPE * Initialize) (ma_IAudioClient* pThis, MA_AUDCLNT_SHAREMODE shareMode, DWORD streamFlags, MA_REFERENCE_TIME bufferDuration, MA_REFERENCE_TIME periodicity, const MA_WAVEFORMATEX* pFormat, const GUID* pAudioSessionGuid); HRESULT (STDMETHODCALLTYPE * GetBufferSize) (ma_IAudioClient* pThis, ma_uint32* pNumBufferFrames); HRESULT (STDMETHODCALLTYPE * GetStreamLatency) (ma_IAudioClient* pThis, MA_REFERENCE_TIME* pLatency); HRESULT (STDMETHODCALLTYPE * GetCurrentPadding)(ma_IAudioClient* pThis, ma_uint32* pNumPaddingFrames); - HRESULT (STDMETHODCALLTYPE * IsFormatSupported)(ma_IAudioClient* pThis, MA_AUDCLNT_SHAREMODE shareMode, const WAVEFORMATEX* pFormat, WAVEFORMATEX** ppClosestMatch); - HRESULT (STDMETHODCALLTYPE * GetMixFormat) (ma_IAudioClient* pThis, WAVEFORMATEX** ppDeviceFormat); + HRESULT (STDMETHODCALLTYPE * IsFormatSupported)(ma_IAudioClient* pThis, MA_AUDCLNT_SHAREMODE shareMode, const MA_WAVEFORMATEX* pFormat, MA_WAVEFORMATEX** ppClosestMatch); + HRESULT (STDMETHODCALLTYPE * GetMixFormat) (ma_IAudioClient* pThis, MA_WAVEFORMATEX** ppDeviceFormat); HRESULT (STDMETHODCALLTYPE * GetDevicePeriod) (ma_IAudioClient* pThis, MA_REFERENCE_TIME* pDefaultDevicePeriod, MA_REFERENCE_TIME* pMinimumDevicePeriod); HRESULT (STDMETHODCALLTYPE * Start) (ma_IAudioClient* pThis); HRESULT (STDMETHODCALLTYPE * Stop) (ma_IAudioClient* pThis); @@ -19523,12 +20487,12 @@ struct ma_IAudioClient static MA_INLINE HRESULT ma_IAudioClient_QueryInterface(ma_IAudioClient* pThis, const IID* const riid, void** ppObject) { return pThis->lpVtbl->QueryInterface(pThis, riid, ppObject); } static MA_INLINE ULONG ma_IAudioClient_AddRef(ma_IAudioClient* pThis) { return pThis->lpVtbl->AddRef(pThis); } static MA_INLINE ULONG ma_IAudioClient_Release(ma_IAudioClient* pThis) { return pThis->lpVtbl->Release(pThis); } -static MA_INLINE HRESULT ma_IAudioClient_Initialize(ma_IAudioClient* pThis, MA_AUDCLNT_SHAREMODE shareMode, DWORD streamFlags, MA_REFERENCE_TIME bufferDuration, MA_REFERENCE_TIME periodicity, const WAVEFORMATEX* pFormat, const GUID* pAudioSessionGuid) { return pThis->lpVtbl->Initialize(pThis, shareMode, streamFlags, bufferDuration, periodicity, pFormat, pAudioSessionGuid); } +static MA_INLINE HRESULT ma_IAudioClient_Initialize(ma_IAudioClient* pThis, MA_AUDCLNT_SHAREMODE shareMode, DWORD streamFlags, MA_REFERENCE_TIME bufferDuration, MA_REFERENCE_TIME periodicity, const MA_WAVEFORMATEX* pFormat, const GUID* pAudioSessionGuid) { return pThis->lpVtbl->Initialize(pThis, shareMode, streamFlags, bufferDuration, periodicity, pFormat, pAudioSessionGuid); } static MA_INLINE HRESULT ma_IAudioClient_GetBufferSize(ma_IAudioClient* pThis, ma_uint32* pNumBufferFrames) { return pThis->lpVtbl->GetBufferSize(pThis, pNumBufferFrames); } static MA_INLINE HRESULT ma_IAudioClient_GetStreamLatency(ma_IAudioClient* pThis, MA_REFERENCE_TIME* pLatency) { return pThis->lpVtbl->GetStreamLatency(pThis, pLatency); } static MA_INLINE HRESULT ma_IAudioClient_GetCurrentPadding(ma_IAudioClient* pThis, ma_uint32* pNumPaddingFrames) { return pThis->lpVtbl->GetCurrentPadding(pThis, pNumPaddingFrames); } -static MA_INLINE HRESULT ma_IAudioClient_IsFormatSupported(ma_IAudioClient* pThis, MA_AUDCLNT_SHAREMODE shareMode, const WAVEFORMATEX* pFormat, WAVEFORMATEX** ppClosestMatch) { return pThis->lpVtbl->IsFormatSupported(pThis, shareMode, pFormat, ppClosestMatch); } -static MA_INLINE HRESULT ma_IAudioClient_GetMixFormat(ma_IAudioClient* pThis, WAVEFORMATEX** ppDeviceFormat) { return pThis->lpVtbl->GetMixFormat(pThis, ppDeviceFormat); } +static MA_INLINE HRESULT ma_IAudioClient_IsFormatSupported(ma_IAudioClient* pThis, MA_AUDCLNT_SHAREMODE shareMode, const MA_WAVEFORMATEX* pFormat, MA_WAVEFORMATEX** ppClosestMatch) { return pThis->lpVtbl->IsFormatSupported(pThis, shareMode, pFormat, ppClosestMatch); } +static MA_INLINE HRESULT ma_IAudioClient_GetMixFormat(ma_IAudioClient* pThis, MA_WAVEFORMATEX** ppDeviceFormat) { return pThis->lpVtbl->GetMixFormat(pThis, ppDeviceFormat); } static MA_INLINE HRESULT ma_IAudioClient_GetDevicePeriod(ma_IAudioClient* pThis, MA_REFERENCE_TIME* pDefaultDevicePeriod, MA_REFERENCE_TIME* pMinimumDevicePeriod) { return pThis->lpVtbl->GetDevicePeriod(pThis, pDefaultDevicePeriod, pMinimumDevicePeriod); } static MA_INLINE HRESULT ma_IAudioClient_Start(ma_IAudioClient* pThis) { return pThis->lpVtbl->Start(pThis); } static MA_INLINE HRESULT ma_IAudioClient_Stop(ma_IAudioClient* pThis) { return pThis->lpVtbl->Stop(pThis); } @@ -19545,12 +20509,12 @@ typedef struct ULONG (STDMETHODCALLTYPE * Release) (ma_IAudioClient2* pThis); /* IAudioClient */ - HRESULT (STDMETHODCALLTYPE * Initialize) (ma_IAudioClient2* pThis, MA_AUDCLNT_SHAREMODE shareMode, DWORD streamFlags, MA_REFERENCE_TIME bufferDuration, MA_REFERENCE_TIME periodicity, const WAVEFORMATEX* pFormat, const GUID* pAudioSessionGuid); + HRESULT (STDMETHODCALLTYPE * Initialize) (ma_IAudioClient2* pThis, MA_AUDCLNT_SHAREMODE shareMode, DWORD streamFlags, MA_REFERENCE_TIME bufferDuration, MA_REFERENCE_TIME periodicity, const MA_WAVEFORMATEX* pFormat, const GUID* pAudioSessionGuid); HRESULT (STDMETHODCALLTYPE * GetBufferSize) (ma_IAudioClient2* pThis, ma_uint32* pNumBufferFrames); HRESULT (STDMETHODCALLTYPE * GetStreamLatency) (ma_IAudioClient2* pThis, MA_REFERENCE_TIME* pLatency); HRESULT (STDMETHODCALLTYPE * GetCurrentPadding)(ma_IAudioClient2* pThis, ma_uint32* pNumPaddingFrames); - HRESULT (STDMETHODCALLTYPE * IsFormatSupported)(ma_IAudioClient2* pThis, MA_AUDCLNT_SHAREMODE shareMode, const WAVEFORMATEX* pFormat, WAVEFORMATEX** ppClosestMatch); - HRESULT (STDMETHODCALLTYPE * GetMixFormat) (ma_IAudioClient2* pThis, WAVEFORMATEX** ppDeviceFormat); + HRESULT (STDMETHODCALLTYPE * IsFormatSupported)(ma_IAudioClient2* pThis, MA_AUDCLNT_SHAREMODE shareMode, const MA_WAVEFORMATEX* pFormat, MA_WAVEFORMATEX** ppClosestMatch); + HRESULT (STDMETHODCALLTYPE * GetMixFormat) (ma_IAudioClient2* pThis, MA_WAVEFORMATEX** ppDeviceFormat); HRESULT (STDMETHODCALLTYPE * GetDevicePeriod) (ma_IAudioClient2* pThis, MA_REFERENCE_TIME* pDefaultDevicePeriod, MA_REFERENCE_TIME* pMinimumDevicePeriod); HRESULT (STDMETHODCALLTYPE * Start) (ma_IAudioClient2* pThis); HRESULT (STDMETHODCALLTYPE * Stop) (ma_IAudioClient2* pThis); @@ -19561,7 +20525,7 @@ typedef struct /* IAudioClient2 */ HRESULT (STDMETHODCALLTYPE * IsOffloadCapable) (ma_IAudioClient2* pThis, MA_AUDIO_STREAM_CATEGORY category, BOOL* pOffloadCapable); HRESULT (STDMETHODCALLTYPE * SetClientProperties)(ma_IAudioClient2* pThis, const ma_AudioClientProperties* pProperties); - HRESULT (STDMETHODCALLTYPE * GetBufferSizeLimits)(ma_IAudioClient2* pThis, const WAVEFORMATEX* pFormat, BOOL eventDriven, MA_REFERENCE_TIME* pMinBufferDuration, MA_REFERENCE_TIME* pMaxBufferDuration); + HRESULT (STDMETHODCALLTYPE * GetBufferSizeLimits)(ma_IAudioClient2* pThis, const MA_WAVEFORMATEX* pFormat, BOOL eventDriven, MA_REFERENCE_TIME* pMinBufferDuration, MA_REFERENCE_TIME* pMaxBufferDuration); } ma_IAudioClient2Vtbl; struct ma_IAudioClient2 { @@ -19570,12 +20534,12 @@ struct ma_IAudioClient2 static MA_INLINE HRESULT ma_IAudioClient2_QueryInterface(ma_IAudioClient2* pThis, const IID* const riid, void** ppObject) { return pThis->lpVtbl->QueryInterface(pThis, riid, ppObject); } static MA_INLINE ULONG ma_IAudioClient2_AddRef(ma_IAudioClient2* pThis) { return pThis->lpVtbl->AddRef(pThis); } static MA_INLINE ULONG ma_IAudioClient2_Release(ma_IAudioClient2* pThis) { return pThis->lpVtbl->Release(pThis); } -static MA_INLINE HRESULT ma_IAudioClient2_Initialize(ma_IAudioClient2* pThis, MA_AUDCLNT_SHAREMODE shareMode, DWORD streamFlags, MA_REFERENCE_TIME bufferDuration, MA_REFERENCE_TIME periodicity, const WAVEFORMATEX* pFormat, const GUID* pAudioSessionGuid) { return pThis->lpVtbl->Initialize(pThis, shareMode, streamFlags, bufferDuration, periodicity, pFormat, pAudioSessionGuid); } +static MA_INLINE HRESULT ma_IAudioClient2_Initialize(ma_IAudioClient2* pThis, MA_AUDCLNT_SHAREMODE shareMode, DWORD streamFlags, MA_REFERENCE_TIME bufferDuration, MA_REFERENCE_TIME periodicity, const MA_WAVEFORMATEX* pFormat, const GUID* pAudioSessionGuid) { return pThis->lpVtbl->Initialize(pThis, shareMode, streamFlags, bufferDuration, periodicity, pFormat, pAudioSessionGuid); } static MA_INLINE HRESULT ma_IAudioClient2_GetBufferSize(ma_IAudioClient2* pThis, ma_uint32* pNumBufferFrames) { return pThis->lpVtbl->GetBufferSize(pThis, pNumBufferFrames); } static MA_INLINE HRESULT ma_IAudioClient2_GetStreamLatency(ma_IAudioClient2* pThis, MA_REFERENCE_TIME* pLatency) { return pThis->lpVtbl->GetStreamLatency(pThis, pLatency); } static MA_INLINE HRESULT ma_IAudioClient2_GetCurrentPadding(ma_IAudioClient2* pThis, ma_uint32* pNumPaddingFrames) { return pThis->lpVtbl->GetCurrentPadding(pThis, pNumPaddingFrames); } -static MA_INLINE HRESULT ma_IAudioClient2_IsFormatSupported(ma_IAudioClient2* pThis, MA_AUDCLNT_SHAREMODE shareMode, const WAVEFORMATEX* pFormat, WAVEFORMATEX** ppClosestMatch) { return pThis->lpVtbl->IsFormatSupported(pThis, shareMode, pFormat, ppClosestMatch); } -static MA_INLINE HRESULT ma_IAudioClient2_GetMixFormat(ma_IAudioClient2* pThis, WAVEFORMATEX** ppDeviceFormat) { return pThis->lpVtbl->GetMixFormat(pThis, ppDeviceFormat); } +static MA_INLINE HRESULT ma_IAudioClient2_IsFormatSupported(ma_IAudioClient2* pThis, MA_AUDCLNT_SHAREMODE shareMode, const MA_WAVEFORMATEX* pFormat, MA_WAVEFORMATEX** ppClosestMatch) { return pThis->lpVtbl->IsFormatSupported(pThis, shareMode, pFormat, ppClosestMatch); } +static MA_INLINE HRESULT ma_IAudioClient2_GetMixFormat(ma_IAudioClient2* pThis, MA_WAVEFORMATEX** ppDeviceFormat) { return pThis->lpVtbl->GetMixFormat(pThis, ppDeviceFormat); } static MA_INLINE HRESULT ma_IAudioClient2_GetDevicePeriod(ma_IAudioClient2* pThis, MA_REFERENCE_TIME* pDefaultDevicePeriod, MA_REFERENCE_TIME* pMinimumDevicePeriod) { return pThis->lpVtbl->GetDevicePeriod(pThis, pDefaultDevicePeriod, pMinimumDevicePeriod); } static MA_INLINE HRESULT ma_IAudioClient2_Start(ma_IAudioClient2* pThis) { return pThis->lpVtbl->Start(pThis); } static MA_INLINE HRESULT ma_IAudioClient2_Stop(ma_IAudioClient2* pThis) { return pThis->lpVtbl->Stop(pThis); } @@ -19584,7 +20548,7 @@ static MA_INLINE HRESULT ma_IAudioClient2_SetEventHandle(ma_IAudioClient2* pThis static MA_INLINE HRESULT ma_IAudioClient2_GetService(ma_IAudioClient2* pThis, const IID* const riid, void** pp) { return pThis->lpVtbl->GetService(pThis, riid, pp); } static MA_INLINE HRESULT ma_IAudioClient2_IsOffloadCapable(ma_IAudioClient2* pThis, MA_AUDIO_STREAM_CATEGORY category, BOOL* pOffloadCapable) { return pThis->lpVtbl->IsOffloadCapable(pThis, category, pOffloadCapable); } static MA_INLINE HRESULT ma_IAudioClient2_SetClientProperties(ma_IAudioClient2* pThis, const ma_AudioClientProperties* pProperties) { return pThis->lpVtbl->SetClientProperties(pThis, pProperties); } -static MA_INLINE HRESULT ma_IAudioClient2_GetBufferSizeLimits(ma_IAudioClient2* pThis, const WAVEFORMATEX* pFormat, BOOL eventDriven, MA_REFERENCE_TIME* pMinBufferDuration, MA_REFERENCE_TIME* pMaxBufferDuration) { return pThis->lpVtbl->GetBufferSizeLimits(pThis, pFormat, eventDriven, pMinBufferDuration, pMaxBufferDuration); } +static MA_INLINE HRESULT ma_IAudioClient2_GetBufferSizeLimits(ma_IAudioClient2* pThis, const MA_WAVEFORMATEX* pFormat, BOOL eventDriven, MA_REFERENCE_TIME* pMinBufferDuration, MA_REFERENCE_TIME* pMaxBufferDuration) { return pThis->lpVtbl->GetBufferSizeLimits(pThis, pFormat, eventDriven, pMinBufferDuration, pMaxBufferDuration); } /* IAudioClient3 */ @@ -19596,12 +20560,12 @@ typedef struct ULONG (STDMETHODCALLTYPE * Release) (ma_IAudioClient3* pThis); /* IAudioClient */ - HRESULT (STDMETHODCALLTYPE * Initialize) (ma_IAudioClient3* pThis, MA_AUDCLNT_SHAREMODE shareMode, DWORD streamFlags, MA_REFERENCE_TIME bufferDuration, MA_REFERENCE_TIME periodicity, const WAVEFORMATEX* pFormat, const GUID* pAudioSessionGuid); + HRESULT (STDMETHODCALLTYPE * Initialize) (ma_IAudioClient3* pThis, MA_AUDCLNT_SHAREMODE shareMode, DWORD streamFlags, MA_REFERENCE_TIME bufferDuration, MA_REFERENCE_TIME periodicity, const MA_WAVEFORMATEX* pFormat, const GUID* pAudioSessionGuid); HRESULT (STDMETHODCALLTYPE * GetBufferSize) (ma_IAudioClient3* pThis, ma_uint32* pNumBufferFrames); HRESULT (STDMETHODCALLTYPE * GetStreamLatency) (ma_IAudioClient3* pThis, MA_REFERENCE_TIME* pLatency); HRESULT (STDMETHODCALLTYPE * GetCurrentPadding)(ma_IAudioClient3* pThis, ma_uint32* pNumPaddingFrames); - HRESULT (STDMETHODCALLTYPE * IsFormatSupported)(ma_IAudioClient3* pThis, MA_AUDCLNT_SHAREMODE shareMode, const WAVEFORMATEX* pFormat, WAVEFORMATEX** ppClosestMatch); - HRESULT (STDMETHODCALLTYPE * GetMixFormat) (ma_IAudioClient3* pThis, WAVEFORMATEX** ppDeviceFormat); + HRESULT (STDMETHODCALLTYPE * IsFormatSupported)(ma_IAudioClient3* pThis, MA_AUDCLNT_SHAREMODE shareMode, const MA_WAVEFORMATEX* pFormat, MA_WAVEFORMATEX** ppClosestMatch); + HRESULT (STDMETHODCALLTYPE * GetMixFormat) (ma_IAudioClient3* pThis, MA_WAVEFORMATEX** ppDeviceFormat); HRESULT (STDMETHODCALLTYPE * GetDevicePeriod) (ma_IAudioClient3* pThis, MA_REFERENCE_TIME* pDefaultDevicePeriod, MA_REFERENCE_TIME* pMinimumDevicePeriod); HRESULT (STDMETHODCALLTYPE * Start) (ma_IAudioClient3* pThis); HRESULT (STDMETHODCALLTYPE * Stop) (ma_IAudioClient3* pThis); @@ -19612,12 +20576,12 @@ typedef struct /* IAudioClient2 */ HRESULT (STDMETHODCALLTYPE * IsOffloadCapable) (ma_IAudioClient3* pThis, MA_AUDIO_STREAM_CATEGORY category, BOOL* pOffloadCapable); HRESULT (STDMETHODCALLTYPE * SetClientProperties)(ma_IAudioClient3* pThis, const ma_AudioClientProperties* pProperties); - HRESULT (STDMETHODCALLTYPE * GetBufferSizeLimits)(ma_IAudioClient3* pThis, const WAVEFORMATEX* pFormat, BOOL eventDriven, MA_REFERENCE_TIME* pMinBufferDuration, MA_REFERENCE_TIME* pMaxBufferDuration); + HRESULT (STDMETHODCALLTYPE * GetBufferSizeLimits)(ma_IAudioClient3* pThis, const MA_WAVEFORMATEX* pFormat, BOOL eventDriven, MA_REFERENCE_TIME* pMinBufferDuration, MA_REFERENCE_TIME* pMaxBufferDuration); /* IAudioClient3 */ - HRESULT (STDMETHODCALLTYPE * GetSharedModeEnginePeriod) (ma_IAudioClient3* pThis, const WAVEFORMATEX* pFormat, ma_uint32* pDefaultPeriodInFrames, ma_uint32* pFundamentalPeriodInFrames, ma_uint32* pMinPeriodInFrames, ma_uint32* pMaxPeriodInFrames); - HRESULT (STDMETHODCALLTYPE * GetCurrentSharedModeEnginePeriod)(ma_IAudioClient3* pThis, WAVEFORMATEX** ppFormat, ma_uint32* pCurrentPeriodInFrames); - HRESULT (STDMETHODCALLTYPE * InitializeSharedAudioStream) (ma_IAudioClient3* pThis, DWORD streamFlags, ma_uint32 periodInFrames, const WAVEFORMATEX* pFormat, const GUID* pAudioSessionGuid); + HRESULT (STDMETHODCALLTYPE * GetSharedModeEnginePeriod) (ma_IAudioClient3* pThis, const MA_WAVEFORMATEX* pFormat, ma_uint32* pDefaultPeriodInFrames, ma_uint32* pFundamentalPeriodInFrames, ma_uint32* pMinPeriodInFrames, ma_uint32* pMaxPeriodInFrames); + HRESULT (STDMETHODCALLTYPE * GetCurrentSharedModeEnginePeriod)(ma_IAudioClient3* pThis, MA_WAVEFORMATEX** ppFormat, ma_uint32* pCurrentPeriodInFrames); + HRESULT (STDMETHODCALLTYPE * InitializeSharedAudioStream) (ma_IAudioClient3* pThis, DWORD streamFlags, ma_uint32 periodInFrames, const MA_WAVEFORMATEX* pFormat, const GUID* pAudioSessionGuid); } ma_IAudioClient3Vtbl; struct ma_IAudioClient3 { @@ -19626,12 +20590,12 @@ struct ma_IAudioClient3 static MA_INLINE HRESULT ma_IAudioClient3_QueryInterface(ma_IAudioClient3* pThis, const IID* const riid, void** ppObject) { return pThis->lpVtbl->QueryInterface(pThis, riid, ppObject); } static MA_INLINE ULONG ma_IAudioClient3_AddRef(ma_IAudioClient3* pThis) { return pThis->lpVtbl->AddRef(pThis); } static MA_INLINE ULONG ma_IAudioClient3_Release(ma_IAudioClient3* pThis) { return pThis->lpVtbl->Release(pThis); } -static MA_INLINE HRESULT ma_IAudioClient3_Initialize(ma_IAudioClient3* pThis, MA_AUDCLNT_SHAREMODE shareMode, DWORD streamFlags, MA_REFERENCE_TIME bufferDuration, MA_REFERENCE_TIME periodicity, const WAVEFORMATEX* pFormat, const GUID* pAudioSessionGuid) { return pThis->lpVtbl->Initialize(pThis, shareMode, streamFlags, bufferDuration, periodicity, pFormat, pAudioSessionGuid); } +static MA_INLINE HRESULT ma_IAudioClient3_Initialize(ma_IAudioClient3* pThis, MA_AUDCLNT_SHAREMODE shareMode, DWORD streamFlags, MA_REFERENCE_TIME bufferDuration, MA_REFERENCE_TIME periodicity, const MA_WAVEFORMATEX* pFormat, const GUID* pAudioSessionGuid) { return pThis->lpVtbl->Initialize(pThis, shareMode, streamFlags, bufferDuration, periodicity, pFormat, pAudioSessionGuid); } static MA_INLINE HRESULT ma_IAudioClient3_GetBufferSize(ma_IAudioClient3* pThis, ma_uint32* pNumBufferFrames) { return pThis->lpVtbl->GetBufferSize(pThis, pNumBufferFrames); } static MA_INLINE HRESULT ma_IAudioClient3_GetStreamLatency(ma_IAudioClient3* pThis, MA_REFERENCE_TIME* pLatency) { return pThis->lpVtbl->GetStreamLatency(pThis, pLatency); } static MA_INLINE HRESULT ma_IAudioClient3_GetCurrentPadding(ma_IAudioClient3* pThis, ma_uint32* pNumPaddingFrames) { return pThis->lpVtbl->GetCurrentPadding(pThis, pNumPaddingFrames); } -static MA_INLINE HRESULT ma_IAudioClient3_IsFormatSupported(ma_IAudioClient3* pThis, MA_AUDCLNT_SHAREMODE shareMode, const WAVEFORMATEX* pFormat, WAVEFORMATEX** ppClosestMatch) { return pThis->lpVtbl->IsFormatSupported(pThis, shareMode, pFormat, ppClosestMatch); } -static MA_INLINE HRESULT ma_IAudioClient3_GetMixFormat(ma_IAudioClient3* pThis, WAVEFORMATEX** ppDeviceFormat) { return pThis->lpVtbl->GetMixFormat(pThis, ppDeviceFormat); } +static MA_INLINE HRESULT ma_IAudioClient3_IsFormatSupported(ma_IAudioClient3* pThis, MA_AUDCLNT_SHAREMODE shareMode, const MA_WAVEFORMATEX* pFormat, MA_WAVEFORMATEX** ppClosestMatch) { return pThis->lpVtbl->IsFormatSupported(pThis, shareMode, pFormat, ppClosestMatch); } +static MA_INLINE HRESULT ma_IAudioClient3_GetMixFormat(ma_IAudioClient3* pThis, MA_WAVEFORMATEX** ppDeviceFormat) { return pThis->lpVtbl->GetMixFormat(pThis, ppDeviceFormat); } static MA_INLINE HRESULT ma_IAudioClient3_GetDevicePeriod(ma_IAudioClient3* pThis, MA_REFERENCE_TIME* pDefaultDevicePeriod, MA_REFERENCE_TIME* pMinimumDevicePeriod) { return pThis->lpVtbl->GetDevicePeriod(pThis, pDefaultDevicePeriod, pMinimumDevicePeriod); } static MA_INLINE HRESULT ma_IAudioClient3_Start(ma_IAudioClient3* pThis) { return pThis->lpVtbl->Start(pThis); } static MA_INLINE HRESULT ma_IAudioClient3_Stop(ma_IAudioClient3* pThis) { return pThis->lpVtbl->Stop(pThis); } @@ -19640,10 +20604,10 @@ static MA_INLINE HRESULT ma_IAudioClient3_SetEventHandle(ma_IAudioClient3* pThis static MA_INLINE HRESULT ma_IAudioClient3_GetService(ma_IAudioClient3* pThis, const IID* const riid, void** pp) { return pThis->lpVtbl->GetService(pThis, riid, pp); } static MA_INLINE HRESULT ma_IAudioClient3_IsOffloadCapable(ma_IAudioClient3* pThis, MA_AUDIO_STREAM_CATEGORY category, BOOL* pOffloadCapable) { return pThis->lpVtbl->IsOffloadCapable(pThis, category, pOffloadCapable); } static MA_INLINE HRESULT ma_IAudioClient3_SetClientProperties(ma_IAudioClient3* pThis, const ma_AudioClientProperties* pProperties) { return pThis->lpVtbl->SetClientProperties(pThis, pProperties); } -static MA_INLINE HRESULT ma_IAudioClient3_GetBufferSizeLimits(ma_IAudioClient3* pThis, const WAVEFORMATEX* pFormat, BOOL eventDriven, MA_REFERENCE_TIME* pMinBufferDuration, MA_REFERENCE_TIME* pMaxBufferDuration) { return pThis->lpVtbl->GetBufferSizeLimits(pThis, pFormat, eventDriven, pMinBufferDuration, pMaxBufferDuration); } -static MA_INLINE HRESULT ma_IAudioClient3_GetSharedModeEnginePeriod(ma_IAudioClient3* pThis, const WAVEFORMATEX* pFormat, ma_uint32* pDefaultPeriodInFrames, ma_uint32* pFundamentalPeriodInFrames, ma_uint32* pMinPeriodInFrames, ma_uint32* pMaxPeriodInFrames) { return pThis->lpVtbl->GetSharedModeEnginePeriod(pThis, pFormat, pDefaultPeriodInFrames, pFundamentalPeriodInFrames, pMinPeriodInFrames, pMaxPeriodInFrames); } -static MA_INLINE HRESULT ma_IAudioClient3_GetCurrentSharedModeEnginePeriod(ma_IAudioClient3* pThis, WAVEFORMATEX** ppFormat, ma_uint32* pCurrentPeriodInFrames) { return pThis->lpVtbl->GetCurrentSharedModeEnginePeriod(pThis, ppFormat, pCurrentPeriodInFrames); } -static MA_INLINE HRESULT ma_IAudioClient3_InitializeSharedAudioStream(ma_IAudioClient3* pThis, DWORD streamFlags, ma_uint32 periodInFrames, const WAVEFORMATEX* pFormat, const GUID* pAudioSessionGUID) { return pThis->lpVtbl->InitializeSharedAudioStream(pThis, streamFlags, periodInFrames, pFormat, pAudioSessionGUID); } +static MA_INLINE HRESULT ma_IAudioClient3_GetBufferSizeLimits(ma_IAudioClient3* pThis, const MA_WAVEFORMATEX* pFormat, BOOL eventDriven, MA_REFERENCE_TIME* pMinBufferDuration, MA_REFERENCE_TIME* pMaxBufferDuration) { return pThis->lpVtbl->GetBufferSizeLimits(pThis, pFormat, eventDriven, pMinBufferDuration, pMaxBufferDuration); } +static MA_INLINE HRESULT ma_IAudioClient3_GetSharedModeEnginePeriod(ma_IAudioClient3* pThis, const MA_WAVEFORMATEX* pFormat, ma_uint32* pDefaultPeriodInFrames, ma_uint32* pFundamentalPeriodInFrames, ma_uint32* pMinPeriodInFrames, ma_uint32* pMaxPeriodInFrames) { return pThis->lpVtbl->GetSharedModeEnginePeriod(pThis, pFormat, pDefaultPeriodInFrames, pFundamentalPeriodInFrames, pMinPeriodInFrames, pMaxPeriodInFrames); } +static MA_INLINE HRESULT ma_IAudioClient3_GetCurrentSharedModeEnginePeriod(ma_IAudioClient3* pThis, MA_WAVEFORMATEX** ppFormat, ma_uint32* pCurrentPeriodInFrames) { return pThis->lpVtbl->GetCurrentSharedModeEnginePeriod(pThis, ppFormat, pCurrentPeriodInFrames); } +static MA_INLINE HRESULT ma_IAudioClient3_InitializeSharedAudioStream(ma_IAudioClient3* pThis, DWORD streamFlags, ma_uint32 periodInFrames, const MA_WAVEFORMATEX* pFormat, const GUID* pAudioSessionGUID) { return pThis->lpVtbl->InitializeSharedAudioStream(pThis, streamFlags, periodInFrames, pFormat, pAudioSessionGUID); } /* IAudioRenderClient */ @@ -19693,8 +20657,16 @@ static MA_INLINE HRESULT ma_IAudioCaptureClient_GetBuffer(ma_IAudioCaptureClient static MA_INLINE HRESULT ma_IAudioCaptureClient_ReleaseBuffer(ma_IAudioCaptureClient* pThis, ma_uint32 numFramesRead) { return pThis->lpVtbl->ReleaseBuffer(pThis, numFramesRead); } static MA_INLINE HRESULT ma_IAudioCaptureClient_GetNextPacketSize(ma_IAudioCaptureClient* pThis, ma_uint32* pNumFramesInNextPacket) { return pThis->lpVtbl->GetNextPacketSize(pThis, pNumFramesInNextPacket); } +#if defined(MA_WIN32_UWP) +/* mmdevapi Functions */ +typedef HRESULT (WINAPI * MA_PFN_ActivateAudioInterfaceAsync)(const wchar_t* deviceInterfacePath, const IID* riid, MA_PROPVARIANT* activationParams, ma_IActivateAudioInterfaceCompletionHandler* completionHandler, ma_IActivateAudioInterfaceAsyncOperation** activationOperation); +#endif + +/* Avrt Functions */ +typedef HANDLE (WINAPI * MA_PFN_AvSetMmThreadCharacteristicsA)(const char* TaskName, DWORD* TaskIndex); +typedef BOOL (WINAPI * MA_PFN_AvRevertMmThreadCharacteristics)(HANDLE AvrtHandle); + #if !defined(MA_WIN32_DESKTOP) && !defined(MA_WIN32_GDK) -#include typedef struct ma_completion_handler_uwp ma_completion_handler_uwp; typedef struct @@ -19733,12 +20705,12 @@ static HRESULT STDMETHODCALLTYPE ma_completion_handler_uwp_QueryInterface(ma_com static ULONG STDMETHODCALLTYPE ma_completion_handler_uwp_AddRef(ma_completion_handler_uwp* pThis) { - return (ULONG)c89atomic_fetch_add_32(&pThis->counter, 1) + 1; + return (ULONG)ma_atomic_fetch_add_32(&pThis->counter, 1) + 1; } static ULONG STDMETHODCALLTYPE ma_completion_handler_uwp_Release(ma_completion_handler_uwp* pThis) { - ma_uint32 newRefCount = c89atomic_fetch_sub_32(&pThis->counter, 1) - 1; + ma_uint32 newRefCount = ma_atomic_fetch_sub_32(&pThis->counter, 1) - 1; if (newRefCount == 0) { return 0; /* We don't free anything here because we never allocate the object on the heap. */ } @@ -19768,7 +20740,7 @@ static ma_result ma_completion_handler_uwp_init(ma_completion_handler_uwp* pHand pHandler->lpVtbl = &g_maCompletionHandlerVtblInstance; pHandler->counter = 1; - pHandler->hEvent = CreateEventW(NULL, FALSE, FALSE, NULL); + pHandler->hEvent = CreateEventA(NULL, FALSE, FALSE, NULL); if (pHandler->hEvent == NULL) { return ma_result_from_GetLastError(GetLastError()); } @@ -19785,7 +20757,7 @@ static void ma_completion_handler_uwp_uninit(ma_completion_handler_uwp* pHandler static void ma_completion_handler_uwp_wait(ma_completion_handler_uwp* pHandler) { - WaitForSingleObject(pHandler->hEvent, INFINITE); + WaitForSingleObject((HANDLE)pHandler->hEvent, INFINITE); } #endif /* !MA_WIN32_DESKTOP */ @@ -19810,12 +20782,12 @@ static HRESULT STDMETHODCALLTYPE ma_IMMNotificationClient_QueryInterface(ma_IMMN static ULONG STDMETHODCALLTYPE ma_IMMNotificationClient_AddRef(ma_IMMNotificationClient* pThis) { - return (ULONG)c89atomic_fetch_add_32(&pThis->counter, 1) + 1; + return (ULONG)ma_atomic_fetch_add_32(&pThis->counter, 1) + 1; } static ULONG STDMETHODCALLTYPE ma_IMMNotificationClient_Release(ma_IMMNotificationClient* pThis) { - ma_uint32 newRefCount = c89atomic_fetch_sub_32(&pThis->counter, 1) - 1; + ma_uint32 newRefCount = ma_atomic_fetch_sub_32(&pThis->counter, 1) - 1; if (newRefCount == 0) { return 0; /* We don't free anything here because we never allocate the object on the heap. */ } @@ -19823,7 +20795,7 @@ static ULONG STDMETHODCALLTYPE ma_IMMNotificationClient_Release(ma_IMMNotificati return (ULONG)newRefCount; } -static HRESULT STDMETHODCALLTYPE ma_IMMNotificationClient_OnDeviceStateChanged(ma_IMMNotificationClient* pThis, LPCWSTR pDeviceID, DWORD dwNewState) +static HRESULT STDMETHODCALLTYPE ma_IMMNotificationClient_OnDeviceStateChanged(ma_IMMNotificationClient* pThis, const WCHAR* pDeviceID, DWORD dwNewState) { ma_bool32 isThisDevice = MA_FALSE; ma_bool32 isCapture = MA_FALSE; @@ -19839,14 +20811,14 @@ static HRESULT STDMETHODCALLTYPE ma_IMMNotificationClient_OnDeviceStateChanged(m */ if (pThis->pDevice->wasapi.allowCaptureAutoStreamRouting && (pThis->pDevice->type == ma_device_type_capture || pThis->pDevice->type == ma_device_type_duplex || pThis->pDevice->type == ma_device_type_loopback)) { isCapture = MA_TRUE; - if (wcscmp(pThis->pDevice->capture.id.wasapi, pDeviceID) == 0) { + if (ma_strcmp_WCHAR(pThis->pDevice->capture.id.wasapi, pDeviceID) == 0) { isThisDevice = MA_TRUE; } } if (pThis->pDevice->wasapi.allowPlaybackAutoStreamRouting && (pThis->pDevice->type == ma_device_type_playback || pThis->pDevice->type == ma_device_type_duplex)) { isPlayback = MA_TRUE; - if (wcscmp(pThis->pDevice->playback.id.wasapi, pDeviceID) == 0) { + if (ma_strcmp_WCHAR(pThis->pDevice->playback.id.wasapi, pDeviceID) == 0) { isThisDevice = MA_TRUE; } } @@ -19907,7 +20879,7 @@ static HRESULT STDMETHODCALLTYPE ma_IMMNotificationClient_OnDeviceStateChanged(m return S_OK; } -static HRESULT STDMETHODCALLTYPE ma_IMMNotificationClient_OnDeviceAdded(ma_IMMNotificationClient* pThis, LPCWSTR pDeviceID) +static HRESULT STDMETHODCALLTYPE ma_IMMNotificationClient_OnDeviceAdded(ma_IMMNotificationClient* pThis, const WCHAR* pDeviceID) { #ifdef MA_DEBUG_OUTPUT /*ma_log_postf(ma_device_get_log(pThis->pDevice), MA_LOG_LEVEL_DEBUG, "IMMNotificationClient_OnDeviceAdded(pDeviceID=%S)\n", (pDeviceID != NULL) ? pDeviceID : L"(NULL)");*/ @@ -19919,7 +20891,7 @@ static HRESULT STDMETHODCALLTYPE ma_IMMNotificationClient_OnDeviceAdded(ma_IMMNo return S_OK; } -static HRESULT STDMETHODCALLTYPE ma_IMMNotificationClient_OnDeviceRemoved(ma_IMMNotificationClient* pThis, LPCWSTR pDeviceID) +static HRESULT STDMETHODCALLTYPE ma_IMMNotificationClient_OnDeviceRemoved(ma_IMMNotificationClient* pThis, const WCHAR* pDeviceID) { #ifdef MA_DEBUG_OUTPUT /*ma_log_postf(ma_device_get_log(pThis->pDevice), MA_LOG_LEVEL_DEBUG, "IMMNotificationClient_OnDeviceRemoved(pDeviceID=%S)\n", (pDeviceID != NULL) ? pDeviceID : L"(NULL)");*/ @@ -19931,23 +20903,25 @@ static HRESULT STDMETHODCALLTYPE ma_IMMNotificationClient_OnDeviceRemoved(ma_IMM return S_OK; } -static HRESULT STDMETHODCALLTYPE ma_IMMNotificationClient_OnDefaultDeviceChanged(ma_IMMNotificationClient* pThis, ma_EDataFlow dataFlow, ma_ERole role, LPCWSTR pDefaultDeviceID) +static HRESULT STDMETHODCALLTYPE ma_IMMNotificationClient_OnDefaultDeviceChanged(ma_IMMNotificationClient* pThis, ma_EDataFlow dataFlow, ma_ERole role, const WCHAR* pDefaultDeviceID) { #ifdef MA_DEBUG_OUTPUT /*ma_log_postf(ma_device_get_log(pThis->pDevice), MA_LOG_LEVEL_DEBUG, "IMMNotificationClient_OnDefaultDeviceChanged(dataFlow=%d, role=%d, pDefaultDeviceID=%S)\n", dataFlow, role, (pDefaultDeviceID != NULL) ? pDefaultDeviceID : L"(NULL)");*/ #endif - /* We only ever use the eConsole role in miniaudio. */ - if (role != ma_eConsole) { - ma_log_postf(ma_device_get_log(pThis->pDevice), MA_LOG_LEVEL_DEBUG, "[WASAPI] Stream rerouting: role != eConsole\n"); + (void)role; + + /* We only care about devices with the same data flow as the current device. */ + if ((pThis->pDevice->type == ma_device_type_playback && dataFlow != ma_eRender) || + (pThis->pDevice->type == ma_device_type_capture && dataFlow != ma_eCapture) || + (pThis->pDevice->type == ma_device_type_loopback && dataFlow != ma_eRender)) { + ma_log_postf(ma_device_get_log(pThis->pDevice), MA_LOG_LEVEL_DEBUG, "[WASAPI] Stream rerouting abandoned because dataFlow does match device type.\n"); return S_OK; } - /* We only care about devices with the same data flow and role as the current device. */ - if ((pThis->pDevice->type == ma_device_type_playback && dataFlow != ma_eRender) || - (pThis->pDevice->type == ma_device_type_capture && dataFlow != ma_eCapture)) { - ma_log_postf(ma_device_get_log(pThis->pDevice), MA_LOG_LEVEL_DEBUG, "[WASAPI] Stream rerouting abandoned because dataFlow does match device type.\n"); - return S_OK; + /* We need to consider dataFlow as ma_eCapture if device is ma_device_type_loopback */ + if (pThis->pDevice->type == ma_device_type_loopback) { + dataFlow = ma_eCapture; } /* Don't do automatic stream routing if we're not allowed. */ @@ -19970,7 +20944,6 @@ static HRESULT STDMETHODCALLTYPE ma_IMMNotificationClient_OnDefaultDeviceChanged - /* Second attempt at device rerouting. We're going to retrieve the device's state at the time of the route change. We're then going to stop the device, reinitialize the device, and then start @@ -19980,37 +20953,49 @@ static HRESULT STDMETHODCALLTYPE ma_IMMNotificationClient_OnDefaultDeviceChanged ma_uint32 previousState = ma_device_get_state(pThis->pDevice); ma_bool8 restartDevice = MA_FALSE; + if (previousState == ma_device_state_uninitialized || previousState == ma_device_state_starting) { + ma_log_postf(ma_device_get_log(pThis->pDevice), MA_LOG_LEVEL_DEBUG, "[WASAPI] Stream rerouting abandoned because the device is in the process of starting.\n"); + return S_OK; + } + if (previousState == ma_device_state_started) { ma_device_stop(pThis->pDevice); restartDevice = MA_TRUE; } if (pDefaultDeviceID != NULL) { /* <-- The input device ID will be null if there's no other device available. */ - if (dataFlow == ma_eRender) { - ma_device_reroute__wasapi(pThis->pDevice, ma_device_type_playback); + ma_mutex_lock(&pThis->pDevice->wasapi.rerouteLock); + { + if (dataFlow == ma_eRender) { + ma_device_reroute__wasapi(pThis->pDevice, ma_device_type_playback); - if (pThis->pDevice->wasapi.isDetachedPlayback) { - pThis->pDevice->wasapi.isDetachedPlayback = MA_FALSE; + if (pThis->pDevice->wasapi.isDetachedPlayback) { + pThis->pDevice->wasapi.isDetachedPlayback = MA_FALSE; - if (pThis->pDevice->type == ma_device_type_duplex && pThis->pDevice->wasapi.isDetachedCapture) { - restartDevice = MA_FALSE; /* It's a duplex device and the capture side is detached. We cannot be restarting the device just yet. */ - } else { - restartDevice = MA_TRUE; /* It's not a duplex device, or the capture side is also attached so we can go ahead and restart the device. */ + if (pThis->pDevice->type == ma_device_type_duplex && pThis->pDevice->wasapi.isDetachedCapture) { + restartDevice = MA_FALSE; /* It's a duplex device and the capture side is detached. We cannot be restarting the device just yet. */ + } + else { + restartDevice = MA_TRUE; /* It's not a duplex device, or the capture side is also attached so we can go ahead and restart the device. */ + } } } - } else { - ma_device_reroute__wasapi(pThis->pDevice, (pThis->pDevice->type == ma_device_type_loopback) ? ma_device_type_loopback : ma_device_type_capture); + else { + ma_device_reroute__wasapi(pThis->pDevice, (pThis->pDevice->type == ma_device_type_loopback) ? ma_device_type_loopback : ma_device_type_capture); - if (pThis->pDevice->wasapi.isDetachedCapture) { - pThis->pDevice->wasapi.isDetachedCapture = MA_FALSE; + if (pThis->pDevice->wasapi.isDetachedCapture) { + pThis->pDevice->wasapi.isDetachedCapture = MA_FALSE; - if (pThis->pDevice->type == ma_device_type_duplex && pThis->pDevice->wasapi.isDetachedPlayback) { - restartDevice = MA_FALSE; /* It's a duplex device and the playback side is detached. We cannot be restarting the device just yet. */ - } else { - restartDevice = MA_TRUE; /* It's not a duplex device, or the playback side is also attached so we can go ahead and restart the device. */ + if (pThis->pDevice->type == ma_device_type_duplex && pThis->pDevice->wasapi.isDetachedPlayback) { + restartDevice = MA_FALSE; /* It's a duplex device and the playback side is detached. We cannot be restarting the device just yet. */ + } + else { + restartDevice = MA_TRUE; /* It's not a duplex device, or the playback side is also attached so we can go ahead and restart the device. */ + } } } } + ma_mutex_unlock(&pThis->pDevice->wasapi.rerouteLock); if (restartDevice) { ma_device_start(pThis->pDevice); @@ -20021,7 +21006,7 @@ static HRESULT STDMETHODCALLTYPE ma_IMMNotificationClient_OnDefaultDeviceChanged return S_OK; } -static HRESULT STDMETHODCALLTYPE ma_IMMNotificationClient_OnPropertyValueChanged(ma_IMMNotificationClient* pThis, LPCWSTR pDeviceID, const PROPERTYKEY key) +static HRESULT STDMETHODCALLTYPE ma_IMMNotificationClient_OnPropertyValueChanged(ma_IMMNotificationClient* pThis, const WCHAR* pDeviceID, const PROPERTYKEY key) { #ifdef MA_DEBUG_OUTPUT /*ma_log_postf(ma_device_get_log(pThis->pDevice), MA_LOG_LEVEL_DEBUG, "IMMNotificationClient_OnPropertyValueChanged(pDeviceID=%S)\n", (pDeviceID != NULL) ? pDeviceID : L"(NULL)");*/ @@ -20045,6 +21030,19 @@ static ma_IMMNotificationClientVtbl g_maNotificationCientVtbl = { }; #endif /* MA_WIN32_DESKTOP */ +static const char* ma_to_usage_string__wasapi(ma_wasapi_usage usage) +{ + switch (usage) + { + case ma_wasapi_usage_default: return NULL; + case ma_wasapi_usage_games: return "Games"; + case ma_wasapi_usage_pro_audio: return "Pro Audio"; + default: break; + } + + return NULL; +} + #if defined(MA_WIN32_DESKTOP) || defined(MA_WIN32_GDK) typedef ma_IMMDevice ma_WASAPIDeviceInterface; #else @@ -20236,7 +21234,7 @@ static ma_result ma_device_release_IAudioClient_service__wasapi(ma_device* pDevi #endif -static void ma_add_native_data_format_to_device_info_from_WAVEFORMATEX(const WAVEFORMATEX* pWF, ma_share_mode shareMode, ma_device_info* pInfo) +static void ma_add_native_data_format_to_device_info_from_WAVEFORMATEX(const MA_WAVEFORMATEX* pWF, ma_share_mode shareMode, ma_device_info* pInfo) { MA_ASSERT(pWF != NULL); MA_ASSERT(pInfo != NULL); @@ -20255,13 +21253,13 @@ static void ma_add_native_data_format_to_device_info_from_WAVEFORMATEX(const WAV static ma_result ma_context_get_device_info_from_IAudioClient__wasapi(ma_context* pContext, /*ma_IMMDevice**/void* pMMDevice, ma_IAudioClient* pAudioClient, ma_device_info* pInfo) { HRESULT hr; - WAVEFORMATEX* pWF = NULL; + MA_WAVEFORMATEX* pWF = NULL; MA_ASSERT(pAudioClient != NULL); MA_ASSERT(pInfo != NULL); /* Shared Mode. We use GetMixFormat() here. */ - hr = ma_IAudioClient_GetMixFormat((ma_IAudioClient*)pAudioClient, (WAVEFORMATEX**)&pWF); + hr = ma_IAudioClient_GetMixFormat((ma_IAudioClient*)pAudioClient, (MA_WAVEFORMATEX**)&pWF); if (SUCCEEDED(hr)) { ma_add_native_data_format_to_device_info_from_WAVEFORMATEX(pWF, ma_share_mode_shared, pInfo); } else { @@ -20284,12 +21282,12 @@ static ma_result ma_context_get_device_info_from_IAudioClient__wasapi(ma_context */ hr = ma_IMMDevice_OpenPropertyStore((ma_IMMDevice*)pMMDevice, STGM_READ, &pProperties); if (SUCCEEDED(hr)) { - PROPVARIANT var; + MA_PROPVARIANT var; ma_PropVariantInit(&var); hr = ma_IPropertyStore_GetValue(pProperties, &MA_PKEY_AudioEngine_DeviceFormat, &var); if (SUCCEEDED(hr)) { - pWF = (WAVEFORMATEX*)var.blob.pBlobData; + pWF = (MA_WAVEFORMATEX*)var.blob.pBlobData; /* In my testing, the format returned by PKEY_AudioEngine_DeviceFormat is suitable for exclusive mode so we check this format @@ -20306,7 +21304,7 @@ static ma_result ma_context_get_device_info_from_IAudioClient__wasapi(ma_context */ ma_uint32 channels = pWF->nChannels; ma_channel defaultChannelMap[MA_MAX_CHANNELS]; - WAVEFORMATEXTENSIBLE wf; + MA_WAVEFORMATEXTENSIBLE wf; ma_bool32 found; ma_uint32 iFormat; @@ -20318,9 +21316,9 @@ static ma_result ma_context_get_device_info_from_IAudioClient__wasapi(ma_context ma_channel_map_init_standard(ma_standard_channel_map_microsoft, defaultChannelMap, ma_countof(defaultChannelMap), channels); MA_ZERO_OBJECT(&wf); - wf.Format.cbSize = sizeof(wf); - wf.Format.wFormatTag = WAVE_FORMAT_EXTENSIBLE; - wf.Format.nChannels = (WORD)channels; + wf.cbSize = sizeof(wf); + wf.wFormatTag = WAVE_FORMAT_EXTENSIBLE; + wf.nChannels = (WORD)channels; wf.dwChannelMask = ma_channel_map_to_channel_mask__win32(defaultChannelMap, channels); found = MA_FALSE; @@ -20328,10 +21326,10 @@ static ma_result ma_context_get_device_info_from_IAudioClient__wasapi(ma_context ma_format format = g_maFormatPriorities[iFormat]; ma_uint32 iSampleRate; - wf.Format.wBitsPerSample = (WORD)(ma_get_bytes_per_sample(format)*8); - wf.Format.nBlockAlign = (WORD)(wf.Format.nChannels * wf.Format.wBitsPerSample / 8); - wf.Format.nAvgBytesPerSec = wf.Format.nBlockAlign * wf.Format.nSamplesPerSec; - wf.Samples.wValidBitsPerSample = /*(format == ma_format_s24_32) ? 24 :*/ wf.Format.wBitsPerSample; + wf.wBitsPerSample = (WORD)(ma_get_bytes_per_sample(format)*8); + wf.nBlockAlign = (WORD)(wf.nChannels * wf.wBitsPerSample / 8); + wf.nAvgBytesPerSec = wf.nBlockAlign * wf.nSamplesPerSec; + wf.Samples.wValidBitsPerSample = /*(format == ma_format_s24_32) ? 24 :*/ wf.wBitsPerSample; if (format == ma_format_f32) { wf.SubFormat = MA_GUID_KSDATAFORMAT_SUBTYPE_IEEE_FLOAT; } else { @@ -20339,11 +21337,11 @@ static ma_result ma_context_get_device_info_from_IAudioClient__wasapi(ma_context } for (iSampleRate = 0; iSampleRate < ma_countof(g_maStandardSampleRatePriorities); ++iSampleRate) { - wf.Format.nSamplesPerSec = g_maStandardSampleRatePriorities[iSampleRate]; + wf.nSamplesPerSec = g_maStandardSampleRatePriorities[iSampleRate]; - hr = ma_IAudioClient_IsFormatSupported((ma_IAudioClient*)pAudioClient, MA_AUDCLNT_SHAREMODE_EXCLUSIVE, (WAVEFORMATEX*)&wf, NULL); + hr = ma_IAudioClient_IsFormatSupported((ma_IAudioClient*)pAudioClient, MA_AUDCLNT_SHAREMODE_EXCLUSIVE, (MA_WAVEFORMATEX*)&wf, NULL); if (SUCCEEDED(hr)) { - ma_add_native_data_format_to_device_info_from_WAVEFORMATEX((WAVEFORMATEX*)&wf, ma_share_mode_exclusive, pInfo); + ma_add_native_data_format_to_device_info_from_WAVEFORMATEX((MA_WAVEFORMATEX*)&wf, ma_share_mode_exclusive, pInfo); found = MA_TRUE; break; } @@ -20369,6 +21367,10 @@ static ma_result ma_context_get_device_info_from_IAudioClient__wasapi(ma_context ma_log_postf(ma_context_get_log(pContext), MA_LOG_LEVEL_WARNING, "[WASAPI] Failed to open property store for device info retrieval."); } } + #else + { + (void)pMMDevice; /* Unused. */ + } #endif return MA_SUCCESS; @@ -20397,7 +21399,7 @@ static ma_result ma_context_create_IMMDeviceEnumerator__wasapi(ma_context* pCont *ppDeviceEnumerator = NULL; /* Safety. */ - hr = ma_CoCreateInstance(pContext, MA_CLSID_MMDeviceEnumerator, NULL, CLSCTX_ALL, MA_IID_IMMDeviceEnumerator, (void**)&pDeviceEnumerator); + hr = ma_CoCreateInstance(pContext, &MA_CLSID_MMDeviceEnumerator, NULL, CLSCTX_ALL, &MA_IID_IMMDeviceEnumerator, (void**)&pDeviceEnumerator); if (FAILED(hr)) { ma_log_postf(ma_context_get_log(pContext), MA_LOG_LEVEL_ERROR, "[WASAPI] Failed to create device enumerator."); return ma_result_from_HRESULT(hr); @@ -20408,11 +21410,11 @@ static ma_result ma_context_create_IMMDeviceEnumerator__wasapi(ma_context* pCont return MA_SUCCESS; } -static LPWSTR ma_context_get_default_device_id_from_IMMDeviceEnumerator__wasapi(ma_context* pContext, ma_IMMDeviceEnumerator* pDeviceEnumerator, ma_device_type deviceType) +static WCHAR* ma_context_get_default_device_id_from_IMMDeviceEnumerator__wasapi(ma_context* pContext, ma_IMMDeviceEnumerator* pDeviceEnumerator, ma_device_type deviceType) { HRESULT hr; ma_IMMDevice* pMMDefaultDevice = NULL; - LPWSTR pDefaultDeviceID = NULL; + WCHAR* pDefaultDeviceID = NULL; ma_EDataFlow dataFlow; ma_ERole role; @@ -20444,11 +21446,11 @@ static LPWSTR ma_context_get_default_device_id_from_IMMDeviceEnumerator__wasapi( return pDefaultDeviceID; } -static LPWSTR ma_context_get_default_device_id__wasapi(ma_context* pContext, ma_device_type deviceType) /* Free the returned pointer with ma_CoTaskMemFree() */ +static WCHAR* ma_context_get_default_device_id__wasapi(ma_context* pContext, ma_device_type deviceType) /* Free the returned pointer with ma_CoTaskMemFree() */ { ma_result result; ma_IMMDeviceEnumerator* pDeviceEnumerator; - LPWSTR pDefaultDeviceID = NULL; + WCHAR* pDefaultDeviceID = NULL; MA_ASSERT(pContext != NULL); @@ -20471,9 +21473,9 @@ static ma_result ma_context_get_MMDevice__wasapi(ma_context* pContext, ma_device MA_ASSERT(pContext != NULL); MA_ASSERT(ppMMDevice != NULL); - hr = ma_CoCreateInstance(pContext, MA_CLSID_MMDeviceEnumerator, NULL, CLSCTX_ALL, MA_IID_IMMDeviceEnumerator, (void**)&pDeviceEnumerator); + hr = ma_CoCreateInstance(pContext, &MA_CLSID_MMDeviceEnumerator, NULL, CLSCTX_ALL, &MA_IID_IMMDeviceEnumerator, (void**)&pDeviceEnumerator); if (FAILED(hr)) { - ma_log_postf(ma_context_get_log(pContext), MA_LOG_LEVEL_ERROR, "[WASAPI] Failed to create IMMDeviceEnumerator."); + ma_log_postf(ma_context_get_log(pContext), MA_LOG_LEVEL_ERROR, "[WASAPI] Failed to create IMMDeviceEnumerator.\n"); return ma_result_from_HRESULT(hr); } @@ -20485,7 +21487,7 @@ static ma_result ma_context_get_MMDevice__wasapi(ma_context* pContext, ma_device ma_IMMDeviceEnumerator_Release(pDeviceEnumerator); if (FAILED(hr)) { - ma_log_postf(ma_context_get_log(pContext), MA_LOG_LEVEL_ERROR, "[WASAPI] Failed to retrieve IMMDevice."); + ma_log_postf(ma_context_get_log(pContext), MA_LOG_LEVEL_ERROR, "[WASAPI] Failed to retrieve IMMDevice.\n"); return ma_result_from_HRESULT(hr); } @@ -20494,14 +21496,14 @@ static ma_result ma_context_get_MMDevice__wasapi(ma_context* pContext, ma_device static ma_result ma_context_get_device_id_from_MMDevice__wasapi(ma_context* pContext, ma_IMMDevice* pMMDevice, ma_device_id* pDeviceID) { - LPWSTR pDeviceIDString; + WCHAR* pDeviceIDString; HRESULT hr; MA_ASSERT(pDeviceID != NULL); hr = ma_IMMDevice_GetId(pMMDevice, &pDeviceIDString); if (SUCCEEDED(hr)) { - size_t idlen = wcslen(pDeviceIDString); + size_t idlen = ma_strlen_WCHAR(pDeviceIDString); if (idlen+1 > ma_countof(pDeviceID->wasapi)) { ma_CoTaskMemFree(pContext, pDeviceIDString); MA_ASSERT(MA_FALSE); /* NOTE: If this is triggered, please report it. It means the format of the ID must haved change and is too long to fit in our fixed sized buffer. */ @@ -20519,7 +21521,7 @@ static ma_result ma_context_get_device_id_from_MMDevice__wasapi(ma_context* pCon return MA_ERROR; } -static ma_result ma_context_get_device_info_from_MMDevice__wasapi(ma_context* pContext, ma_IMMDevice* pMMDevice, LPWSTR pDefaultDeviceID, ma_bool32 onlySimpleInfo, ma_device_info* pInfo) +static ma_result ma_context_get_device_info_from_MMDevice__wasapi(ma_context* pContext, ma_IMMDevice* pMMDevice, WCHAR* pDefaultDeviceID, ma_bool32 onlySimpleInfo, ma_device_info* pInfo) { ma_result result; HRESULT hr; @@ -20532,7 +21534,7 @@ static ma_result ma_context_get_device_info_from_MMDevice__wasapi(ma_context* pC result = ma_context_get_device_id_from_MMDevice__wasapi(pContext, pMMDevice, &pInfo->id); if (result == MA_SUCCESS) { if (pDefaultDeviceID != NULL) { - if (wcscmp(pInfo->id.wasapi, pDefaultDeviceID) == 0) { + if (ma_strcmp_WCHAR(pInfo->id.wasapi, pDefaultDeviceID) == 0) { pInfo->isDefault = MA_TRUE; } } @@ -20543,7 +21545,7 @@ static ma_result ma_context_get_device_info_from_MMDevice__wasapi(ma_context* pC ma_IPropertyStore *pProperties; hr = ma_IMMDevice_OpenPropertyStore(pMMDevice, STGM_READ, &pProperties); if (SUCCEEDED(hr)) { - PROPVARIANT var; + MA_PROPVARIANT var; ma_PropVariantInit(&var); hr = ma_IPropertyStore_GetValue(pProperties, &MA_PKEY_Device_FriendlyName, &var); @@ -20580,7 +21582,7 @@ static ma_result ma_context_enumerate_devices_by_type__wasapi(ma_context* pConte UINT deviceCount; HRESULT hr; ma_uint32 iDevice; - LPWSTR pDefaultDeviceID = NULL; + WCHAR* pDefaultDeviceID = NULL; ma_IMMDeviceCollection* pDeviceCollection = NULL; MA_ASSERT(pContext != NULL); @@ -20594,7 +21596,7 @@ static ma_result ma_context_enumerate_devices_by_type__wasapi(ma_context* pConte if (SUCCEEDED(hr)) { hr = ma_IMMDeviceCollection_GetCount(pDeviceCollection, &deviceCount); if (FAILED(hr)) { - ma_log_postf(ma_context_get_log(pContext), MA_LOG_LEVEL_ERROR, "[WASAPI] Failed to get device count."); + ma_log_postf(ma_context_get_log(pContext), MA_LOG_LEVEL_ERROR, "[WASAPI] Failed to get device count.\n"); result = ma_result_from_HRESULT(hr); goto done; } @@ -20634,7 +21636,7 @@ done: return result; } -static ma_result ma_context_get_IAudioClient_Desktop__wasapi(ma_context* pContext, ma_device_type deviceType, const ma_device_id* pDeviceID, ma_IAudioClient** ppAudioClient, ma_IMMDevice** ppMMDevice) +static ma_result ma_context_get_IAudioClient_Desktop__wasapi(ma_context* pContext, ma_device_type deviceType, const ma_device_id* pDeviceID, MA_PROPVARIANT* pActivationParams, ma_IAudioClient** ppAudioClient, ma_IMMDevice** ppMMDevice) { ma_result result; HRESULT hr; @@ -20648,7 +21650,7 @@ static ma_result ma_context_get_IAudioClient_Desktop__wasapi(ma_context* pContex return result; } - hr = ma_IMMDevice_Activate(*ppMMDevice, &MA_IID_IAudioClient, CLSCTX_ALL, NULL, (void**)ppAudioClient); + hr = ma_IMMDevice_Activate(*ppMMDevice, &MA_IID_IAudioClient, CLSCTX_ALL, pActivationParams, (void**)ppAudioClient); if (FAILED(hr)) { return ma_result_from_HRESULT(hr); } @@ -20656,12 +21658,12 @@ static ma_result ma_context_get_IAudioClient_Desktop__wasapi(ma_context* pContex return MA_SUCCESS; } #else -static ma_result ma_context_get_IAudioClient_UWP__wasapi(ma_context* pContext, ma_device_type deviceType, const ma_device_id* pDeviceID, ma_IAudioClient** ppAudioClient, ma_IUnknown** ppActivatedInterface) +static ma_result ma_context_get_IAudioClient_UWP__wasapi(ma_context* pContext, ma_device_type deviceType, const ma_device_id* pDeviceID, MA_PROPVARIANT* pActivationParams, ma_IAudioClient** ppAudioClient, ma_IUnknown** ppActivatedInterface) { ma_IActivateAudioInterfaceAsyncOperation *pAsyncOp = NULL; ma_completion_handler_uwp completionHandler; IID iid; - LPOLESTR iidStr; + WCHAR* iidStr; HRESULT hr; ma_result result; HRESULT activateResult; @@ -20671,45 +21673,43 @@ static ma_result ma_context_get_IAudioClient_UWP__wasapi(ma_context* pContext, m MA_ASSERT(ppAudioClient != NULL); if (pDeviceID != NULL) { - MA_COPY_MEMORY(&iid, pDeviceID->wasapi, sizeof(iid)); + iidStr = (WCHAR*)pDeviceID->wasapi; } else { - if (deviceType == ma_device_type_playback) { - iid = MA_IID_DEVINTERFACE_AUDIO_RENDER; - } else { + if (deviceType == ma_device_type_capture) { iid = MA_IID_DEVINTERFACE_AUDIO_CAPTURE; + } else { + iid = MA_IID_DEVINTERFACE_AUDIO_RENDER; } - } -#if defined(__cplusplus) - hr = StringFromIID(iid, &iidStr); -#else - hr = StringFromIID(&iid, &iidStr); -#endif - if (FAILED(hr)) { - ma_log_postf(ma_context_get_log(pContext), MA_LOG_LEVEL_ERROR, "[WASAPI] Failed to convert device IID to string for ActivateAudioInterfaceAsync(). Out of memory."); - return ma_result_from_HRESULT(hr); + #if defined(__cplusplus) + hr = StringFromIID(iid, &iidStr); + #else + hr = StringFromIID(&iid, &iidStr); + #endif + if (FAILED(hr)) { + ma_log_postf(ma_context_get_log(pContext), MA_LOG_LEVEL_ERROR, "[WASAPI] Failed to convert device IID to string for ActivateAudioInterfaceAsync(). Out of memory.\n"); + return ma_result_from_HRESULT(hr); + } } result = ma_completion_handler_uwp_init(&completionHandler); if (result != MA_SUCCESS) { ma_CoTaskMemFree(pContext, iidStr); - ma_log_postf(ma_context_get_log(pContext), MA_LOG_LEVEL_ERROR, "[WASAPI] Failed to create event for waiting for ActivateAudioInterfaceAsync()."); + ma_log_postf(ma_context_get_log(pContext), MA_LOG_LEVEL_ERROR, "[WASAPI] Failed to create event for waiting for ActivateAudioInterfaceAsync().\n"); return result; } -#if defined(__cplusplus) - hr = ActivateAudioInterfaceAsync(iidStr, MA_IID_IAudioClient, NULL, (IActivateAudioInterfaceCompletionHandler*)&completionHandler, (IActivateAudioInterfaceAsyncOperation**)&pAsyncOp); -#else - hr = ActivateAudioInterfaceAsync(iidStr, &MA_IID_IAudioClient, NULL, (IActivateAudioInterfaceCompletionHandler*)&completionHandler, (IActivateAudioInterfaceAsyncOperation**)&pAsyncOp); -#endif + hr = ((MA_PFN_ActivateAudioInterfaceAsync)pContext->wasapi.ActivateAudioInterfaceAsync)(iidStr, &MA_IID_IAudioClient, pActivationParams, (ma_IActivateAudioInterfaceCompletionHandler*)&completionHandler, (ma_IActivateAudioInterfaceAsyncOperation**)&pAsyncOp); if (FAILED(hr)) { ma_completion_handler_uwp_uninit(&completionHandler); ma_CoTaskMemFree(pContext, iidStr); - ma_log_postf(ma_context_get_log(pContext), MA_LOG_LEVEL_ERROR, "[WASAPI] ActivateAudioInterfaceAsync() failed."); + ma_log_postf(ma_context_get_log(pContext), MA_LOG_LEVEL_ERROR, "[WASAPI] ActivateAudioInterfaceAsync() failed.\n"); return ma_result_from_HRESULT(hr); } - ma_CoTaskMemFree(pContext, iidStr); + if (pDeviceID == NULL) { + ma_CoTaskMemFree(pContext, iidStr); + } /* Wait for the async operation for finish. */ ma_completion_handler_uwp_wait(&completionHandler); @@ -20719,14 +21719,14 @@ static ma_result ma_context_get_IAudioClient_UWP__wasapi(ma_context* pContext, m ma_IActivateAudioInterfaceAsyncOperation_Release(pAsyncOp); if (FAILED(hr) || FAILED(activateResult)) { - ma_log_postf(ma_context_get_log(pContext), MA_LOG_LEVEL_ERROR, "[WASAPI] Failed to activate device."); + ma_log_postf(ma_context_get_log(pContext), MA_LOG_LEVEL_ERROR, "[WASAPI] Failed to activate device.\n"); return FAILED(hr) ? ma_result_from_HRESULT(hr) : ma_result_from_HRESULT(activateResult); } /* Here is where we grab the IAudioClient interface. */ hr = ma_IUnknown_QueryInterface(pActivatedInterface, &MA_IID_IAudioClient, (void**)ppAudioClient); if (FAILED(hr)) { - ma_log_postf(ma_context_get_log(pContext), MA_LOG_LEVEL_ERROR, "[WASAPI] Failed to query IAudioClient interface."); + ma_log_postf(ma_context_get_log(pContext), MA_LOG_LEVEL_ERROR, "[WASAPI] Failed to query IAudioClient interface.\n"); return ma_result_from_HRESULT(hr); } @@ -20740,13 +21740,106 @@ static ma_result ma_context_get_IAudioClient_UWP__wasapi(ma_context* pContext, m } #endif -static ma_result ma_context_get_IAudioClient__wasapi(ma_context* pContext, ma_device_type deviceType, const ma_device_id* pDeviceID, ma_IAudioClient** ppAudioClient, ma_WASAPIDeviceInterface** ppDeviceInterface) + +/* https://docs.microsoft.com/en-us/windows/win32/api/audioclientactivationparams/ne-audioclientactivationparams-audioclient_activation_type */ +typedef enum { -#if defined(MA_WIN32_DESKTOP) || defined(MA_WIN32_GDK) - return ma_context_get_IAudioClient_Desktop__wasapi(pContext, deviceType, pDeviceID, ppAudioClient, ppDeviceInterface); -#else - return ma_context_get_IAudioClient_UWP__wasapi(pContext, deviceType, pDeviceID, ppAudioClient, ppDeviceInterface); + MA_AUDIOCLIENT_ACTIVATION_TYPE_DEFAULT, + MA_AUDIOCLIENT_ACTIVATION_TYPE_PROCESS_LOOPBACK +} MA_AUDIOCLIENT_ACTIVATION_TYPE; + +/* https://docs.microsoft.com/en-us/windows/win32/api/audioclientactivationparams/ne-audioclientactivationparams-process_loopback_mode */ +typedef enum +{ + MA_PROCESS_LOOPBACK_MODE_INCLUDE_TARGET_PROCESS_TREE, + MA_PROCESS_LOOPBACK_MODE_EXCLUDE_TARGET_PROCESS_TREE +} MA_PROCESS_LOOPBACK_MODE; + +/* https://docs.microsoft.com/en-us/windows/win32/api/audioclientactivationparams/ns-audioclientactivationparams-audioclient_process_loopback_params */ +typedef struct +{ + DWORD TargetProcessId; + MA_PROCESS_LOOPBACK_MODE ProcessLoopbackMode; +} MA_AUDIOCLIENT_PROCESS_LOOPBACK_PARAMS; + +#if defined(_MSC_VER) && !defined(__clang__) + #pragma warning(push) + #pragma warning(disable:4201) /* nonstandard extension used: nameless struct/union */ +#elif defined(__clang__) || (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8))) + #pragma GCC diagnostic push + #pragma GCC diagnostic ignored "-Wpedantic" /* For ISO C99 doesn't support unnamed structs/unions [-Wpedantic] */ + #if defined(__clang__) + #pragma GCC diagnostic ignored "-Wc11-extensions" /* anonymous unions are a C11 extension */ + #endif #endif +/* https://docs.microsoft.com/en-us/windows/win32/api/audioclientactivationparams/ns-audioclientactivationparams-audioclient_activation_params */ +typedef struct +{ + MA_AUDIOCLIENT_ACTIVATION_TYPE ActivationType; + union + { + MA_AUDIOCLIENT_PROCESS_LOOPBACK_PARAMS ProcessLoopbackParams; + }; +} MA_AUDIOCLIENT_ACTIVATION_PARAMS; +#if defined(_MSC_VER) && !defined(__clang__) + #pragma warning(pop) +#elif defined(__clang__) || (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8))) + #pragma GCC diagnostic pop +#endif + +#define MA_VIRTUAL_AUDIO_DEVICE_PROCESS_LOOPBACK L"VAD\\Process_Loopback" + +static ma_result ma_context_get_IAudioClient__wasapi(ma_context* pContext, ma_device_type deviceType, const ma_device_id* pDeviceID, ma_uint32 loopbackProcessID, ma_bool32 loopbackProcessExclude, ma_IAudioClient** ppAudioClient, ma_WASAPIDeviceInterface** ppDeviceInterface) +{ + ma_result result; + ma_bool32 usingProcessLoopback = MA_FALSE; + MA_AUDIOCLIENT_ACTIVATION_PARAMS audioclientActivationParams; + MA_PROPVARIANT activationParams; + MA_PROPVARIANT* pActivationParams = NULL; + ma_device_id virtualDeviceID; + + /* Activation parameters specific to loopback mode. Note that process-specific loopback will only work when a default device ID is specified. */ + if (deviceType == ma_device_type_loopback && loopbackProcessID != 0 && pDeviceID == NULL) { + usingProcessLoopback = MA_TRUE; + } + + if (usingProcessLoopback) { + MA_ZERO_OBJECT(&audioclientActivationParams); + audioclientActivationParams.ActivationType = MA_AUDIOCLIENT_ACTIVATION_TYPE_PROCESS_LOOPBACK; + audioclientActivationParams.ProcessLoopbackParams.ProcessLoopbackMode = (loopbackProcessExclude) ? MA_PROCESS_LOOPBACK_MODE_EXCLUDE_TARGET_PROCESS_TREE : MA_PROCESS_LOOPBACK_MODE_INCLUDE_TARGET_PROCESS_TREE; + audioclientActivationParams.ProcessLoopbackParams.TargetProcessId = (DWORD)loopbackProcessID; + + ma_PropVariantInit(&activationParams); + activationParams.vt = MA_VT_BLOB; + activationParams.blob.cbSize = sizeof(audioclientActivationParams); + activationParams.blob.pBlobData = (BYTE*)&audioclientActivationParams; + pActivationParams = &activationParams; + + /* When requesting a specific device ID we need to use a special device ID. */ + MA_COPY_MEMORY(virtualDeviceID.wasapi, MA_VIRTUAL_AUDIO_DEVICE_PROCESS_LOOPBACK, (wcslen(MA_VIRTUAL_AUDIO_DEVICE_PROCESS_LOOPBACK) + 1) * sizeof(wchar_t)); /* +1 for the null terminator. */ + pDeviceID = &virtualDeviceID; + } else { + pActivationParams = NULL; /* No activation parameters required. */ + } + +#if defined(MA_WIN32_DESKTOP) || defined(MA_WIN32_GDK) + result = ma_context_get_IAudioClient_Desktop__wasapi(pContext, deviceType, pDeviceID, pActivationParams, ppAudioClient, ppDeviceInterface); +#else + result = ma_context_get_IAudioClient_UWP__wasapi(pContext, deviceType, pDeviceID, pActivationParams, ppAudioClient, ppDeviceInterface); +#endif + + /* + If loopback mode was requested with a process ID and initialization failed, it could be because it's + trying to run on an older version of Windows where it's not supported. We need to let the caller + know about this with a log message. + */ + if (result != MA_SUCCESS) { + if (usingProcessLoopback) { + ma_log_postf(ma_context_get_log(pContext), MA_LOG_LEVEL_ERROR, "[WASAPI] Loopback mode requested to %s process ID %u, but initialization failed. Support for this feature begins with Windows 10 Build 20348. Confirm your version of Windows or consider not using process-specific loopback.\n", (loopbackProcessExclude) ? "exclude" : "include", loopbackProcessID); + } + } + + return result; } @@ -20758,7 +21851,7 @@ static ma_result ma_context_enumerate_devices__wasapi(ma_context* pContext, ma_e HRESULT hr; ma_IMMDeviceEnumerator* pDeviceEnumerator; - hr = ma_CoCreateInstance(pContext, MA_CLSID_MMDeviceEnumerator, NULL, CLSCTX_ALL, MA_IID_IMMDeviceEnumerator, (void**)&pDeviceEnumerator); + hr = ma_CoCreateInstance(pContext, &MA_CLSID_MMDeviceEnumerator, NULL, CLSCTX_ALL, &MA_IID_IMMDeviceEnumerator, (void**)&pDeviceEnumerator); if (FAILED(hr)) { ma_log_postf(ma_context_get_log(pContext), MA_LOG_LEVEL_ERROR, "[WASAPI] Failed to create device enumerator."); return ma_result_from_HRESULT(hr); @@ -20808,7 +21901,7 @@ static ma_result ma_context_get_device_info__wasapi(ma_context* pContext, ma_dev #if defined(MA_WIN32_DESKTOP) || defined(MA_WIN32_GDK) ma_result result; ma_IMMDevice* pMMDevice = NULL; - LPWSTR pDefaultDeviceID = NULL; + WCHAR* pDefaultDeviceID = NULL; result = ma_context_get_MMDevice__wasapi(pContext, deviceType, pDeviceID, &pMMDevice); if (result != MA_SUCCESS) { @@ -20839,7 +21932,7 @@ static ma_result ma_context_get_device_info__wasapi(ma_context* pContext, ma_dev ma_strncpy_s(pDeviceInfo->name, sizeof(pDeviceInfo->name), MA_DEFAULT_CAPTURE_DEVICE_NAME, (size_t)-1); } - result = ma_context_get_IAudioClient_UWP__wasapi(pContext, deviceType, pDeviceID, &pAudioClient, NULL); + result = ma_context_get_IAudioClient_UWP__wasapi(pContext, deviceType, pDeviceID, NULL, &pAudioClient, NULL); if (result != MA_SUCCESS) { return result; } @@ -20893,10 +21986,10 @@ static ma_result ma_device_uninit__wasapi(ma_device* pDevice) } if (pDevice->wasapi.hEventPlayback) { - CloseHandle(pDevice->wasapi.hEventPlayback); + CloseHandle((HANDLE)pDevice->wasapi.hEventPlayback); } if (pDevice->wasapi.hEventCapture) { - CloseHandle(pDevice->wasapi.hEventCapture); + CloseHandle((HANDLE)pDevice->wasapi.hEventCapture); } return MA_SUCCESS; @@ -20918,6 +22011,8 @@ typedef struct ma_bool32 noAutoConvertSRC; ma_bool32 noDefaultQualitySRC; ma_bool32 noHardwareOffloading; + ma_uint32 loopbackProcessID; + ma_bool32 loopbackProcessExclude; /* Output. */ ma_IAudioClient* pAudioClient; @@ -20943,10 +22038,11 @@ static ma_result ma_device_init_internal__wasapi(ma_context* pContext, ma_device DWORD streamFlags = 0; MA_REFERENCE_TIME periodDurationInMicroseconds; ma_bool32 wasInitializedUsingIAudioClient3 = MA_FALSE; - WAVEFORMATEXTENSIBLE wf; + MA_WAVEFORMATEXTENSIBLE wf; ma_WASAPIDeviceInterface* pDeviceInterface = NULL; ma_IAudioClient2* pAudioClient2; ma_uint32 nativeSampleRate; + ma_bool32 usingProcessLoopback = MA_FALSE; MA_ASSERT(pContext != NULL); MA_ASSERT(pData != NULL); @@ -20956,6 +22052,8 @@ static ma_result ma_device_init_internal__wasapi(ma_context* pContext, ma_device return MA_INVALID_ARGS; } + usingProcessLoopback = deviceType == ma_device_type_loopback && pData->loopbackProcessID != 0 && pDeviceID == NULL; + pData->pAudioClient = NULL; pData->pRenderClient = NULL; pData->pCaptureClient = NULL; @@ -20971,7 +22069,7 @@ static ma_result ma_device_init_internal__wasapi(ma_context* pContext, ma_device streamFlags |= MA_AUDCLNT_STREAMFLAGS_LOOPBACK; } - result = ma_context_get_IAudioClient__wasapi(pContext, deviceType, pDeviceID, &pData->pAudioClient, &pDeviceInterface); + result = ma_context_get_IAudioClient__wasapi(pContext, deviceType, pDeviceID, pData->loopbackProcessID, pData->loopbackProcessExclude, &pData->pAudioClient, &pDeviceInterface); if (result != MA_SUCCESS) { goto done; } @@ -21005,14 +22103,14 @@ static ma_result ma_device_init_internal__wasapi(ma_context* pContext, ma_device ma_IPropertyStore* pStore = NULL; hr = ma_IMMDevice_OpenPropertyStore(pDeviceInterface, STGM_READ, &pStore); if (SUCCEEDED(hr)) { - PROPVARIANT prop; + MA_PROPVARIANT prop; ma_PropVariantInit(&prop); hr = ma_IPropertyStore_GetValue(pStore, &MA_PKEY_AudioEngine_DeviceFormat, &prop); if (SUCCEEDED(hr)) { - WAVEFORMATEX* pActualFormat = (WAVEFORMATEX*)prop.blob.pBlobData; + MA_WAVEFORMATEX* pActualFormat = (MA_WAVEFORMATEX*)prop.blob.pBlobData; hr = ma_IAudioClient_IsFormatSupported((ma_IAudioClient*)pData->pAudioClient, MA_AUDCLNT_SHAREMODE_EXCLUSIVE, pActualFormat, NULL); if (SUCCEEDED(hr)) { - MA_COPY_MEMORY(&wf, pActualFormat, sizeof(WAVEFORMATEXTENSIBLE)); + MA_COPY_MEMORY(&wf, pActualFormat, sizeof(MA_WAVEFORMATEXTENSIBLE)); } ma_PropVariantClear(pContext, &prop); @@ -21039,12 +22137,47 @@ static ma_result ma_device_init_internal__wasapi(ma_context* pContext, ma_device } } else { /* In shared mode we are always using the format reported by the operating system. */ - WAVEFORMATEXTENSIBLE* pNativeFormat = NULL; - hr = ma_IAudioClient_GetMixFormat((ma_IAudioClient*)pData->pAudioClient, (WAVEFORMATEX**)&pNativeFormat); + MA_WAVEFORMATEXTENSIBLE* pNativeFormat = NULL; + hr = ma_IAudioClient_GetMixFormat((ma_IAudioClient*)pData->pAudioClient, (MA_WAVEFORMATEX**)&pNativeFormat); if (hr != S_OK) { - result = MA_FORMAT_NOT_SUPPORTED; + /* When using process-specific loopback, GetMixFormat() seems to always fail. */ + if (usingProcessLoopback) { + wf.wFormatTag = WAVE_FORMAT_IEEE_FLOAT; + wf.nChannels = 2; + wf.nSamplesPerSec = 44100; + wf.wBitsPerSample = 32; + wf.nBlockAlign = wf.nChannels * wf.wBitsPerSample / 8; + wf.nAvgBytesPerSec = wf.nSamplesPerSec * wf.nBlockAlign; + wf.cbSize = sizeof(MA_WAVEFORMATEX); + + result = MA_SUCCESS; + } else { + result = MA_FORMAT_NOT_SUPPORTED; + } } else { - MA_COPY_MEMORY(&wf, pNativeFormat, sizeof(wf)); + /* + I've seen cases where cbSize will be set to sizeof(WAVEFORMATEX) even though the structure itself + is given the format tag of WAVE_FORMAT_EXTENSIBLE. If the format tag is WAVE_FORMAT_EXTENSIBLE + want to make sure we copy the whole WAVEFORMATEXTENSIBLE structure. Otherwise we'll have to be + safe and only copy the WAVEFORMATEX part. + */ + if (pNativeFormat->wFormatTag == WAVE_FORMAT_EXTENSIBLE) { + MA_COPY_MEMORY(&wf, pNativeFormat, sizeof(MA_WAVEFORMATEXTENSIBLE)); + } else { + /* I've seen a case where cbSize was set to 0. Assume sizeof(WAVEFORMATEX) in this case. */ + size_t cbSize = pNativeFormat->cbSize; + if (cbSize == 0) { + cbSize = sizeof(MA_WAVEFORMATEX); + } + + /* Make sure we don't copy more than the capacity of `wf`. */ + if (cbSize > sizeof(wf)) { + cbSize = sizeof(wf); + } + + MA_COPY_MEMORY(&wf, pNativeFormat, cbSize); + } + result = MA_SUCCESS; } @@ -21063,13 +22196,13 @@ static ma_result ma_device_init_internal__wasapi(ma_context* pContext, ma_device Override the native sample rate with the one requested by the caller, but only if we're not using the default sample rate. We'll use WASAPI to perform the sample rate conversion. */ - nativeSampleRate = wf.Format.nSamplesPerSec; + nativeSampleRate = wf.nSamplesPerSec; if (streamFlags & MA_AUDCLNT_STREAMFLAGS_AUTOCONVERTPCM) { - wf.Format.nSamplesPerSec = (pData->sampleRateIn != 0) ? pData->sampleRateIn : MA_DEFAULT_SAMPLE_RATE; - wf.Format.nAvgBytesPerSec = wf.Format.nSamplesPerSec * wf.Format.nBlockAlign; + wf.nSamplesPerSec = (pData->sampleRateIn != 0) ? pData->sampleRateIn : MA_DEFAULT_SAMPLE_RATE; + wf.nAvgBytesPerSec = wf.nSamplesPerSec * wf.nBlockAlign; } - pData->formatOut = ma_format_from_WAVEFORMATEX((WAVEFORMATEX*)&wf); + pData->formatOut = ma_format_from_WAVEFORMATEX((MA_WAVEFORMATEX*)&wf); if (pData->formatOut == ma_format_unknown) { /* The format isn't supported. This is almost certainly because the exclusive mode format isn't supported by miniaudio. We need to return MA_SHARE_MODE_NOT_SUPPORTED @@ -21086,11 +22219,19 @@ static ma_result ma_device_init_internal__wasapi(ma_context* pContext, ma_device goto done; } - pData->channelsOut = wf.Format.nChannels; - pData->sampleRateOut = wf.Format.nSamplesPerSec; + pData->channelsOut = wf.nChannels; + pData->sampleRateOut = wf.nSamplesPerSec; - /* Get the internal channel map based on the channel mask. */ - ma_channel_mask_to_channel_map__win32(wf.dwChannelMask, pData->channelsOut, pData->channelMapOut); + /* + Get the internal channel map based on the channel mask. There is a possibility that GetMixFormat() returns + a WAVEFORMATEX instead of a WAVEFORMATEXTENSIBLE, in which case the channel mask will be undefined. In this + case we'll just use the default channel map. + */ + if (wf.wFormatTag == WAVE_FORMAT_EXTENSIBLE || wf.cbSize >= sizeof(MA_WAVEFORMATEXTENSIBLE)) { + ma_channel_mask_to_channel_map__win32(wf.dwChannelMask, pData->channelsOut, pData->channelMapOut); + } else { + ma_channel_map_init_standard(ma_standard_channel_map_microsoft, pData->channelMapOut, ma_countof(pData->channelMapOut), pData->channelsOut); + } /* Period size. */ pData->periodsOut = (pData->periodsIn != 0) ? pData->periodsIn : MA_DEFAULT_PERIODS; @@ -21098,16 +22239,16 @@ static ma_result ma_device_init_internal__wasapi(ma_context* pContext, ma_device if (pData->periodSizeInFramesOut == 0) { if (pData->periodSizeInMillisecondsIn == 0) { if (pData->performanceProfile == ma_performance_profile_low_latency) { - pData->periodSizeInFramesOut = ma_calculate_buffer_size_in_frames_from_milliseconds(MA_DEFAULT_PERIOD_SIZE_IN_MILLISECONDS_LOW_LATENCY, wf.Format.nSamplesPerSec); + pData->periodSizeInFramesOut = ma_calculate_buffer_size_in_frames_from_milliseconds(MA_DEFAULT_PERIOD_SIZE_IN_MILLISECONDS_LOW_LATENCY, wf.nSamplesPerSec); } else { - pData->periodSizeInFramesOut = ma_calculate_buffer_size_in_frames_from_milliseconds(MA_DEFAULT_PERIOD_SIZE_IN_MILLISECONDS_CONSERVATIVE, wf.Format.nSamplesPerSec); + pData->periodSizeInFramesOut = ma_calculate_buffer_size_in_frames_from_milliseconds(MA_DEFAULT_PERIOD_SIZE_IN_MILLISECONDS_CONSERVATIVE, wf.nSamplesPerSec); } } else { - pData->periodSizeInFramesOut = ma_calculate_buffer_size_in_frames_from_milliseconds(pData->periodSizeInMillisecondsIn, wf.Format.nSamplesPerSec); + pData->periodSizeInFramesOut = ma_calculate_buffer_size_in_frames_from_milliseconds(pData->periodSizeInMillisecondsIn, wf.nSamplesPerSec); } } - periodDurationInMicroseconds = ((ma_uint64)pData->periodSizeInFramesOut * 1000 * 1000) / wf.Format.nSamplesPerSec; + periodDurationInMicroseconds = ((ma_uint64)pData->periodSizeInFramesOut * 1000 * 1000) / wf.nSamplesPerSec; /* Slightly different initialization for shared and exclusive modes. We try exclusive mode first, and if it fails, fall back to shared mode. */ @@ -21120,7 +22261,7 @@ static ma_result ma_device_init_internal__wasapi(ma_context* pContext, ma_device */ hr = E_FAIL; for (;;) { - hr = ma_IAudioClient_Initialize((ma_IAudioClient*)pData->pAudioClient, shareMode, streamFlags, bufferDuration, bufferDuration, (WAVEFORMATEX*)&wf, NULL); + hr = ma_IAudioClient_Initialize((ma_IAudioClient*)pData->pAudioClient, shareMode, streamFlags, bufferDuration, bufferDuration, (MA_WAVEFORMATEX*)&wf, NULL); if (hr == MA_AUDCLNT_E_INVALID_DEVICE_PERIOD) { if (bufferDuration > 500*10000) { break; @@ -21141,7 +22282,7 @@ static ma_result ma_device_init_internal__wasapi(ma_context* pContext, ma_device ma_uint32 bufferSizeInFrames; hr = ma_IAudioClient_GetBufferSize((ma_IAudioClient*)pData->pAudioClient, &bufferSizeInFrames); if (SUCCEEDED(hr)) { - bufferDuration = (MA_REFERENCE_TIME)((10000.0 * 1000 / wf.Format.nSamplesPerSec * bufferSizeInFrames) + 0.5); + bufferDuration = (MA_REFERENCE_TIME)((10000.0 * 1000 / wf.nSamplesPerSec * bufferSizeInFrames) + 0.5); /* Unfortunately we need to release and re-acquire the audio client according to MSDN. Seems silly - why not just call IAudioClient_Initialize() again?! */ ma_IAudioClient_Release((ma_IAudioClient*)pData->pAudioClient); @@ -21153,7 +22294,7 @@ static ma_result ma_device_init_internal__wasapi(ma_context* pContext, ma_device #endif if (SUCCEEDED(hr)) { - hr = ma_IAudioClient_Initialize((ma_IAudioClient*)pData->pAudioClient, shareMode, streamFlags, bufferDuration, bufferDuration, (WAVEFORMATEX*)&wf, NULL); + hr = ma_IAudioClient_Initialize((ma_IAudioClient*)pData->pAudioClient, shareMode, streamFlags, bufferDuration, bufferDuration, (MA_WAVEFORMATEX*)&wf, NULL); } } } @@ -21184,7 +22325,7 @@ static ma_result ma_device_init_internal__wasapi(ma_context* pContext, ma_device */ #ifndef MA_WASAPI_NO_LOW_LATENCY_SHARED_MODE { - if ((streamFlags & MA_AUDCLNT_STREAMFLAGS_AUTOCONVERTPCM) == 0 || nativeSampleRate == wf.Format.nSamplesPerSec) { + if ((streamFlags & MA_AUDCLNT_STREAMFLAGS_AUTOCONVERTPCM) == 0 || nativeSampleRate == wf.nSamplesPerSec) { ma_IAudioClient3* pAudioClient3 = NULL; hr = ma_IAudioClient_QueryInterface(pData->pAudioClient, &MA_IID_IAudioClient3, (void**)&pAudioClient3); if (SUCCEEDED(hr)) { @@ -21192,7 +22333,7 @@ static ma_result ma_device_init_internal__wasapi(ma_context* pContext, ma_device ma_uint32 fundamentalPeriodInFrames; ma_uint32 minPeriodInFrames; ma_uint32 maxPeriodInFrames; - hr = ma_IAudioClient3_GetSharedModeEnginePeriod(pAudioClient3, (WAVEFORMATEX*)&wf, &defaultPeriodInFrames, &fundamentalPeriodInFrames, &minPeriodInFrames, &maxPeriodInFrames); + hr = ma_IAudioClient3_GetSharedModeEnginePeriod(pAudioClient3, (MA_WAVEFORMATEX*)&wf, &defaultPeriodInFrames, &fundamentalPeriodInFrames, &minPeriodInFrames, &maxPeriodInFrames); if (SUCCEEDED(hr)) { ma_uint32 desiredPeriodInFrames = pData->periodSizeInFramesOut; ma_uint32 actualPeriodInFrames = desiredPeriodInFrames; @@ -21216,7 +22357,7 @@ static ma_result ma_device_init_internal__wasapi(ma_context* pContext, ma_device MA_AUDCLNT_STREAMFLAGS_AUTOCONVERTPCM | MA_AUDCLNT_STREAMFLAGS_SRC_DEFAULT_QUALITY must not be in the stream flags. If either of these are specified, IAudioClient3_InitializeSharedAudioStream() will fail. */ - hr = ma_IAudioClient3_InitializeSharedAudioStream(pAudioClient3, streamFlags & ~(MA_AUDCLNT_STREAMFLAGS_AUTOCONVERTPCM | MA_AUDCLNT_STREAMFLAGS_SRC_DEFAULT_QUALITY), actualPeriodInFrames, (WAVEFORMATEX*)&wf, NULL); + hr = ma_IAudioClient3_InitializeSharedAudioStream(pAudioClient3, streamFlags & ~(MA_AUDCLNT_STREAMFLAGS_AUTOCONVERTPCM | MA_AUDCLNT_STREAMFLAGS_SRC_DEFAULT_QUALITY), actualPeriodInFrames, (MA_WAVEFORMATEX*)&wf, NULL); if (SUCCEEDED(hr)) { wasInitializedUsingIAudioClient3 = MA_TRUE; pData->periodSizeInFramesOut = actualPeriodInFrames; @@ -21247,7 +22388,7 @@ static ma_result ma_device_init_internal__wasapi(ma_context* pContext, ma_device /* If we don't have an IAudioClient3 then we need to use the normal initialization routine. */ if (!wasInitializedUsingIAudioClient3) { MA_REFERENCE_TIME bufferDuration = periodDurationInMicroseconds * pData->periodsOut * 10; /* <-- Multiply by 10 for microseconds to 100-nanoseconds. */ - hr = ma_IAudioClient_Initialize((ma_IAudioClient*)pData->pAudioClient, shareMode, streamFlags, bufferDuration, 0, (WAVEFORMATEX*)&wf, NULL); + hr = ma_IAudioClient_Initialize((ma_IAudioClient*)pData->pAudioClient, shareMode, streamFlags, bufferDuration, 0, (const MA_WAVEFORMATEX*)&wf, NULL); if (FAILED(hr)) { if (hr == E_ACCESSDENIED) { errorMsg = "[WASAPI] Failed to initialize device. Access denied.", result = MA_ACCESS_DENIED; @@ -21263,13 +22404,22 @@ static ma_result ma_device_init_internal__wasapi(ma_context* pContext, ma_device } if (!wasInitializedUsingIAudioClient3) { - ma_uint32 bufferSizeInFrames; + ma_uint32 bufferSizeInFrames = 0; hr = ma_IAudioClient_GetBufferSize((ma_IAudioClient*)pData->pAudioClient, &bufferSizeInFrames); if (FAILED(hr)) { errorMsg = "[WASAPI] Failed to get audio client's actual buffer size.", result = ma_result_from_HRESULT(hr); goto done; } + /* + When using process loopback mode, retrieval of the buffer size seems to result in totally + incorrect values. In this case we'll just assume it's the same size as what we requested + when we initialized the client. + */ + if (usingProcessLoopback) { + bufferSizeInFrames = (ma_uint32)((periodDurationInMicroseconds * pData->periodsOut) * pData->sampleRateOut / 1000000); + } + pData->periodSizeInFramesOut = bufferSizeInFrames / pData->periodsOut; } @@ -21295,7 +22445,7 @@ static ma_result ma_device_init_internal__wasapi(ma_context* pContext, ma_device ma_IPropertyStore *pProperties; hr = ma_IMMDevice_OpenPropertyStore(pDeviceInterface, STGM_READ, &pProperties); if (SUCCEEDED(hr)) { - PROPVARIANT varName; + MA_PROPVARIANT varName; ma_PropVariantInit(&varName); hr = ma_IPropertyStore_GetValue(pProperties, &MA_PKEY_Device_FriendlyName, &varName); if (SUCCEEDED(hr)) { @@ -21352,7 +22502,7 @@ done: } if (errorMsg != NULL && errorMsg[0] != '\0') { - ma_log_postf(ma_context_get_log(pContext), MA_LOG_LEVEL_ERROR, "%s", errorMsg); + ma_log_postf(ma_context_get_log(pContext), MA_LOG_LEVEL_ERROR, "%s\n", errorMsg); } return result; @@ -21429,6 +22579,8 @@ static ma_result ma_device_reinit__wasapi(ma_device* pDevice, ma_device_type dev data.noAutoConvertSRC = pDevice->wasapi.noAutoConvertSRC; data.noDefaultQualitySRC = pDevice->wasapi.noDefaultQualitySRC; data.noHardwareOffloading = pDevice->wasapi.noHardwareOffloading; + data.loopbackProcessID = pDevice->wasapi.loopbackProcessID; + data.loopbackProcessExclude = pDevice->wasapi.loopbackProcessExclude; result = ma_device_init_internal__wasapi(pDevice->pContext, deviceType, NULL, &data); if (result != MA_SUCCESS) { return result; @@ -21447,13 +22599,13 @@ static ma_result ma_device_reinit__wasapi(ma_device* pDevice, ma_device_type dev pDevice->capture.internalPeriods = data.periodsOut; ma_strcpy_s(pDevice->capture.name, sizeof(pDevice->capture.name), data.deviceName); - ma_IAudioClient_SetEventHandle((ma_IAudioClient*)pDevice->wasapi.pAudioClientCapture, pDevice->wasapi.hEventCapture); + ma_IAudioClient_SetEventHandle((ma_IAudioClient*)pDevice->wasapi.pAudioClientCapture, (HANDLE)pDevice->wasapi.hEventCapture); pDevice->wasapi.periodSizeInFramesCapture = data.periodSizeInFramesOut; ma_IAudioClient_GetBufferSize((ma_IAudioClient*)pDevice->wasapi.pAudioClientCapture, &pDevice->wasapi.actualBufferSizeInFramesCapture); /* We must always have a valid ID. */ - ma_wcscpy_s(pDevice->capture.id.wasapi, sizeof(pDevice->capture.id.wasapi), data.id.wasapi); + ma_strcpy_s_WCHAR(pDevice->capture.id.wasapi, sizeof(pDevice->capture.id.wasapi), data.id.wasapi); } if (deviceType == ma_device_type_playback) { @@ -21468,13 +22620,13 @@ static ma_result ma_device_reinit__wasapi(ma_device* pDevice, ma_device_type dev pDevice->playback.internalPeriods = data.periodsOut; ma_strcpy_s(pDevice->playback.name, sizeof(pDevice->playback.name), data.deviceName); - ma_IAudioClient_SetEventHandle((ma_IAudioClient*)pDevice->wasapi.pAudioClientPlayback, pDevice->wasapi.hEventPlayback); + ma_IAudioClient_SetEventHandle((ma_IAudioClient*)pDevice->wasapi.pAudioClientPlayback, (HANDLE)pDevice->wasapi.hEventPlayback); pDevice->wasapi.periodSizeInFramesPlayback = data.periodSizeInFramesOut; ma_IAudioClient_GetBufferSize((ma_IAudioClient*)pDevice->wasapi.pAudioClientPlayback, &pDevice->wasapi.actualBufferSizeInFramesPlayback); /* We must always have a valid ID because rerouting will look at it. */ - ma_wcscpy_s(pDevice->playback.id.wasapi, sizeof(pDevice->playback.id.wasapi), data.id.wasapi); + ma_strcpy_s_WCHAR(pDevice->playback.id.wasapi, sizeof(pDevice->playback.id.wasapi), data.id.wasapi); } return MA_SUCCESS; @@ -21492,9 +22644,12 @@ static ma_result ma_device_init__wasapi(ma_device* pDevice, const ma_device_conf MA_ASSERT(pDevice != NULL); MA_ZERO_OBJECT(&pDevice->wasapi); - pDevice->wasapi.noAutoConvertSRC = pConfig->wasapi.noAutoConvertSRC; - pDevice->wasapi.noDefaultQualitySRC = pConfig->wasapi.noDefaultQualitySRC; - pDevice->wasapi.noHardwareOffloading = pConfig->wasapi.noHardwareOffloading; + pDevice->wasapi.usage = pConfig->wasapi.usage; + pDevice->wasapi.noAutoConvertSRC = pConfig->wasapi.noAutoConvertSRC; + pDevice->wasapi.noDefaultQualitySRC = pConfig->wasapi.noDefaultQualitySRC; + pDevice->wasapi.noHardwareOffloading = pConfig->wasapi.noHardwareOffloading; + pDevice->wasapi.loopbackProcessID = pConfig->wasapi.loopbackProcessID; + pDevice->wasapi.loopbackProcessExclude = pConfig->wasapi.loopbackProcessExclude; /* Exclusive mode is not allowed with loopback. */ if (pConfig->deviceType == ma_device_type_loopback && pConfig->playback.shareMode == ma_share_mode_exclusive) { @@ -21515,6 +22670,8 @@ static ma_result ma_device_init__wasapi(ma_device* pDevice, const ma_device_conf data.noAutoConvertSRC = pConfig->wasapi.noAutoConvertSRC; data.noDefaultQualitySRC = pConfig->wasapi.noDefaultQualitySRC; data.noHardwareOffloading = pConfig->wasapi.noHardwareOffloading; + data.loopbackProcessID = pConfig->wasapi.loopbackProcessID; + data.loopbackProcessExclude = pConfig->wasapi.loopbackProcessExclude; result = ma_device_init_internal__wasapi(pDevice->pContext, (pConfig->deviceType == ma_device_type_loopback) ? ma_device_type_loopback : ma_device_type_capture, pDescriptorCapture->pDeviceID, &data); if (result != MA_SUCCESS) { @@ -21532,7 +22689,7 @@ static ma_result ma_device_init__wasapi(ma_device* pDevice, const ma_device_conf The event for capture needs to be manual reset for the same reason as playback. We keep the initial state set to unsignaled, however, because we want to block until we actually have something for the first call to ma_device_read(). */ - pDevice->wasapi.hEventCapture = CreateEventW(NULL, FALSE, FALSE, NULL); /* Auto reset, unsignaled by default. */ + pDevice->wasapi.hEventCapture = (ma_handle)CreateEventA(NULL, FALSE, FALSE, NULL); /* Auto reset, unsignaled by default. */ if (pDevice->wasapi.hEventCapture == NULL) { result = ma_result_from_GetLastError(GetLastError()); @@ -21548,13 +22705,13 @@ static ma_result ma_device_init__wasapi(ma_device* pDevice, const ma_device_conf ma_log_post(ma_device_get_log(pDevice), MA_LOG_LEVEL_ERROR, "[WASAPI] Failed to create event for capture."); return result; } - ma_IAudioClient_SetEventHandle((ma_IAudioClient*)pDevice->wasapi.pAudioClientCapture, pDevice->wasapi.hEventCapture); + ma_IAudioClient_SetEventHandle((ma_IAudioClient*)pDevice->wasapi.pAudioClientCapture, (HANDLE)pDevice->wasapi.hEventCapture); pDevice->wasapi.periodSizeInFramesCapture = data.periodSizeInFramesOut; ma_IAudioClient_GetBufferSize((ma_IAudioClient*)pDevice->wasapi.pAudioClientCapture, &pDevice->wasapi.actualBufferSizeInFramesCapture); /* We must always have a valid ID. */ - ma_wcscpy_s(pDevice->capture.id.wasapi, sizeof(pDevice->capture.id.wasapi), data.id.wasapi); + ma_strcpy_s_WCHAR(pDevice->capture.id.wasapi, sizeof(pDevice->capture.id.wasapi), data.id.wasapi); /* The descriptor needs to be updated with actual values. */ pDescriptorCapture->format = data.formatOut; @@ -21579,6 +22736,8 @@ static ma_result ma_device_init__wasapi(ma_device* pDevice, const ma_device_conf data.noAutoConvertSRC = pConfig->wasapi.noAutoConvertSRC; data.noDefaultQualitySRC = pConfig->wasapi.noDefaultQualitySRC; data.noHardwareOffloading = pConfig->wasapi.noHardwareOffloading; + data.loopbackProcessID = pConfig->wasapi.loopbackProcessID; + data.loopbackProcessExclude = pConfig->wasapi.loopbackProcessExclude; result = ma_device_init_internal__wasapi(pDevice->pContext, ma_device_type_playback, pDescriptorPlayback->pDeviceID, &data); if (result != MA_SUCCESS) { @@ -21592,7 +22751,7 @@ static ma_result ma_device_init__wasapi(ma_device* pDevice, const ma_device_conf pDevice->wasapi.pAudioClientCapture = NULL; } - CloseHandle(pDevice->wasapi.hEventCapture); + CloseHandle((HANDLE)pDevice->wasapi.hEventCapture); pDevice->wasapi.hEventCapture = NULL; } return result; @@ -21612,7 +22771,7 @@ static ma_result ma_device_init__wasapi(ma_device* pDevice, const ma_device_conf The playback event also needs to be initially set to a signaled state so that the first call to ma_device_write() is able to get passed WaitForMultipleObjects(). */ - pDevice->wasapi.hEventPlayback = CreateEventW(NULL, FALSE, TRUE, NULL); /* Auto reset, signaled by default. */ + pDevice->wasapi.hEventPlayback = (ma_handle)CreateEventA(NULL, FALSE, TRUE, NULL); /* Auto reset, signaled by default. */ if (pDevice->wasapi.hEventPlayback == NULL) { result = ma_result_from_GetLastError(GetLastError()); @@ -21626,7 +22785,7 @@ static ma_result ma_device_init__wasapi(ma_device* pDevice, const ma_device_conf pDevice->wasapi.pAudioClientCapture = NULL; } - CloseHandle(pDevice->wasapi.hEventCapture); + CloseHandle((HANDLE)pDevice->wasapi.hEventCapture); pDevice->wasapi.hEventCapture = NULL; } @@ -21642,13 +22801,13 @@ static ma_result ma_device_init__wasapi(ma_device* pDevice, const ma_device_conf ma_log_post(ma_device_get_log(pDevice), MA_LOG_LEVEL_ERROR, "[WASAPI] Failed to create event for playback."); return result; } - ma_IAudioClient_SetEventHandle((ma_IAudioClient*)pDevice->wasapi.pAudioClientPlayback, pDevice->wasapi.hEventPlayback); + ma_IAudioClient_SetEventHandle((ma_IAudioClient*)pDevice->wasapi.pAudioClientPlayback, (HANDLE)pDevice->wasapi.hEventPlayback); pDevice->wasapi.periodSizeInFramesPlayback = data.periodSizeInFramesOut; ma_IAudioClient_GetBufferSize((ma_IAudioClient*)pDevice->wasapi.pAudioClientPlayback, &pDevice->wasapi.actualBufferSizeInFramesPlayback); /* We must always have a valid ID because rerouting will look at it. */ - ma_wcscpy_s(pDevice->playback.id.wasapi, sizeof(pDevice->playback.id.wasapi), data.id.wasapi); + ma_strcpy_s_WCHAR(pDevice->playback.id.wasapi, sizeof(pDevice->playback.id.wasapi), data.id.wasapi); /* The descriptor needs to be updated with actual values. */ pDescriptorPlayback->format = data.formatOut; @@ -21666,7 +22825,7 @@ static ma_result ma_device_init__wasapi(ma_device* pDevice, const ma_device_conf */ #if defined(MA_WIN32_DESKTOP) || defined(MA_WIN32_GDK) if (pConfig->wasapi.noAutoStreamRouting == MA_FALSE) { - if ((pConfig->deviceType == ma_device_type_capture || pConfig->deviceType == ma_device_type_duplex) && pConfig->capture.pDeviceID == NULL) { + if ((pConfig->deviceType == ma_device_type_capture || pConfig->deviceType == ma_device_type_duplex || pConfig->deviceType == ma_device_type_loopback) && pConfig->capture.pDeviceID == NULL) { pDevice->wasapi.allowCaptureAutoStreamRouting = MA_TRUE; } if ((pConfig->deviceType == ma_device_type_playback || pConfig->deviceType == ma_device_type_duplex) && pConfig->playback.pDeviceID == NULL) { @@ -21674,7 +22833,9 @@ static ma_result ma_device_init__wasapi(ma_device* pDevice, const ma_device_conf } } - hr = ma_CoCreateInstance(pDevice->pContext, MA_CLSID_MMDeviceEnumerator, NULL, CLSCTX_ALL, MA_IID_IMMDeviceEnumerator, (void**)&pDeviceEnumerator); + ma_mutex_init(&pDevice->wasapi.rerouteLock); + + hr = ma_CoCreateInstance(pDevice->pContext, &MA_CLSID_MMDeviceEnumerator, NULL, CLSCTX_ALL, &MA_IID_IMMDeviceEnumerator, (void**)&pDeviceEnumerator); if (FAILED(hr)) { ma_device_uninit__wasapi(pDevice); ma_log_post(ma_device_get_log(pDevice), MA_LOG_LEVEL_ERROR, "[WASAPI] Failed to create device enumerator."); @@ -21694,8 +22855,8 @@ static ma_result ma_device_init__wasapi(ma_device* pDevice, const ma_device_conf } #endif - c89atomic_exchange_32(&pDevice->wasapi.isStartedCapture, MA_FALSE); - c89atomic_exchange_32(&pDevice->wasapi.isStartedPlayback, MA_FALSE); + ma_atomic_bool32_set(&pDevice->wasapi.isStartedCapture, MA_FALSE); + ma_atomic_bool32_set(&pDevice->wasapi.isStartedPlayback, MA_FALSE); return MA_SUCCESS; } @@ -21773,48 +22934,76 @@ static ma_result ma_device_reroute__wasapi(ma_device* pDevice, ma_device_type de } ma_device__post_init_setup(pDevice, deviceType); - ma_device__on_notification_rerouted(pDevice); + ma_log_postf(ma_device_get_log(pDevice), MA_LOG_LEVEL_DEBUG, "=== DEVICE CHANGED ===\n"); + + return MA_SUCCESS; +} + +static ma_result ma_device_start__wasapi_nolock(ma_device* pDevice) +{ + HRESULT hr; + + if (pDevice->pContext->wasapi.hAvrt) { + const char* pTaskName = ma_to_usage_string__wasapi(pDevice->wasapi.usage); + if (pTaskName) { + DWORD idx = 0; + pDevice->wasapi.hAvrtHandle = (ma_handle)((MA_PFN_AvSetMmThreadCharacteristicsA)pDevice->pContext->wasapi.AvSetMmThreadCharacteristicsA)(pTaskName, &idx); + } + } + + if (pDevice->type == ma_device_type_capture || pDevice->type == ma_device_type_duplex || pDevice->type == ma_device_type_loopback) { + hr = ma_IAudioClient_Start((ma_IAudioClient*)pDevice->wasapi.pAudioClientCapture); + if (FAILED(hr)) { + ma_log_postf(ma_device_get_log(pDevice), MA_LOG_LEVEL_ERROR, "[WASAPI] Failed to start internal capture device. HRESULT = %d.", (int)hr); + return ma_result_from_HRESULT(hr); + } + + ma_atomic_bool32_set(&pDevice->wasapi.isStartedCapture, MA_TRUE); + } + + if (pDevice->type == ma_device_type_playback || pDevice->type == ma_device_type_duplex) { + hr = ma_IAudioClient_Start((ma_IAudioClient*)pDevice->wasapi.pAudioClientPlayback); + if (FAILED(hr)) { + ma_log_postf(ma_device_get_log(pDevice), MA_LOG_LEVEL_ERROR, "[WASAPI] Failed to start internal playback device. HRESULT = %d.", (int)hr); + return ma_result_from_HRESULT(hr); + } + + ma_atomic_bool32_set(&pDevice->wasapi.isStartedPlayback, MA_TRUE); + } + return MA_SUCCESS; } static ma_result ma_device_start__wasapi(ma_device* pDevice) { - HRESULT hr; + ma_result result; MA_ASSERT(pDevice != NULL); - if (pDevice->type == ma_device_type_capture || pDevice->type == ma_device_type_duplex || pDevice->type == ma_device_type_loopback) { - hr = ma_IAudioClient_Start((ma_IAudioClient*)pDevice->wasapi.pAudioClientCapture); - if (FAILED(hr)) { - ma_log_post(ma_device_get_log(pDevice), MA_LOG_LEVEL_ERROR, "[WASAPI] Failed to start internal capture device."); - return ma_result_from_HRESULT(hr); - } - - c89atomic_exchange_32(&pDevice->wasapi.isStartedCapture, MA_TRUE); + /* Wait for any rerouting to finish before attempting to start the device. */ + ma_mutex_lock(&pDevice->wasapi.rerouteLock); + { + result = ma_device_start__wasapi_nolock(pDevice); } + ma_mutex_unlock(&pDevice->wasapi.rerouteLock); - if (pDevice->type == ma_device_type_playback || pDevice->type == ma_device_type_duplex) { - hr = ma_IAudioClient_Start((ma_IAudioClient*)pDevice->wasapi.pAudioClientPlayback); - if (FAILED(hr)) { - ma_log_post(ma_device_get_log(pDevice), MA_LOG_LEVEL_ERROR, "[WASAPI] Failed to start internal playback device."); - return ma_result_from_HRESULT(hr); - } - - c89atomic_exchange_32(&pDevice->wasapi.isStartedPlayback, MA_TRUE); - } - - return MA_SUCCESS; + return result; } -static ma_result ma_device_stop__wasapi(ma_device* pDevice) +static ma_result ma_device_stop__wasapi_nolock(ma_device* pDevice) { ma_result result; HRESULT hr; MA_ASSERT(pDevice != NULL); + if (pDevice->wasapi.hAvrtHandle) { + ((MA_PFN_AvRevertMmThreadCharacteristics)pDevice->pContext->wasapi.AvRevertMmThreadcharacteristics)((HANDLE)pDevice->wasapi.hAvrtHandle); + pDevice->wasapi.hAvrtHandle = NULL; + } + if (pDevice->type == ma_device_type_capture || pDevice->type == ma_device_type_duplex || pDevice->type == ma_device_type_loopback) { hr = ma_IAudioClient_Stop((ma_IAudioClient*)pDevice->wasapi.pAudioClientCapture); if (FAILED(hr)) { @@ -21832,12 +23021,12 @@ static ma_result ma_device_stop__wasapi(ma_device* pDevice) /* If we have a mapped buffer we need to release it. */ if (pDevice->wasapi.pMappedBufferCapture != NULL) { ma_IAudioCaptureClient_ReleaseBuffer((ma_IAudioCaptureClient*)pDevice->wasapi.pCaptureClient, pDevice->wasapi.mappedBufferCaptureCap); - pDevice->wasapi.pMappedBufferCapture = NULL; + pDevice->wasapi.pMappedBufferCapture = NULL; pDevice->wasapi.mappedBufferCaptureCap = 0; pDevice->wasapi.mappedBufferCaptureLen = 0; } - c89atomic_exchange_32(&pDevice->wasapi.isStartedCapture, MA_FALSE); + ma_atomic_bool32_set(&pDevice->wasapi.isStartedCapture, MA_FALSE); } if (pDevice->type == ma_device_type_playback || pDevice->type == ma_device_type_duplex) { @@ -21845,13 +23034,14 @@ static ma_result ma_device_stop__wasapi(ma_device* pDevice) The buffer needs to be drained before stopping the device. Not doing this will result in the last few frames not getting output to the speakers. This is a problem for very short sounds because it'll result in a significant portion of it not getting played. */ - if (c89atomic_load_32(&pDevice->wasapi.isStartedPlayback)) { + if (ma_atomic_bool32_get(&pDevice->wasapi.isStartedPlayback)) { /* We need to make sure we put a timeout here or else we'll risk getting stuck in a deadlock in some cases. */ DWORD waitTime = pDevice->wasapi.actualBufferSizeInFramesPlayback / pDevice->playback.internalSampleRate; if (pDevice->playback.shareMode == ma_share_mode_exclusive) { - WaitForSingleObject(pDevice->wasapi.hEventPlayback, waitTime); - } else { + WaitForSingleObject((HANDLE)pDevice->wasapi.hEventPlayback, waitTime); + } + else { ma_uint32 prevFramesAvaialablePlayback = (ma_uint32)-1; ma_uint32 framesAvailablePlayback; for (;;) { @@ -21873,8 +23063,8 @@ static ma_result ma_device_stop__wasapi(ma_device* pDevice) } prevFramesAvaialablePlayback = framesAvailablePlayback; - WaitForSingleObject(pDevice->wasapi.hEventPlayback, waitTime); - ResetEvent(pDevice->wasapi.hEventPlayback); /* Manual reset. */ + WaitForSingleObject((HANDLE)pDevice->wasapi.hEventPlayback, waitTime * 1000); + ResetEvent((HANDLE)pDevice->wasapi.hEventPlayback); /* Manual reset. */ } } } @@ -21894,17 +23084,33 @@ static ma_result ma_device_stop__wasapi(ma_device* pDevice) if (pDevice->wasapi.pMappedBufferPlayback != NULL) { ma_IAudioRenderClient_ReleaseBuffer((ma_IAudioRenderClient*)pDevice->wasapi.pRenderClient, pDevice->wasapi.mappedBufferPlaybackCap, 0); - pDevice->wasapi.pMappedBufferPlayback = NULL; + pDevice->wasapi.pMappedBufferPlayback = NULL; pDevice->wasapi.mappedBufferPlaybackCap = 0; pDevice->wasapi.mappedBufferPlaybackLen = 0; } - c89atomic_exchange_32(&pDevice->wasapi.isStartedPlayback, MA_FALSE); + ma_atomic_bool32_set(&pDevice->wasapi.isStartedPlayback, MA_FALSE); } return MA_SUCCESS; } +static ma_result ma_device_stop__wasapi(ma_device* pDevice) +{ + ma_result result; + + MA_ASSERT(pDevice != NULL); + + /* Wait for any rerouting to finish before attempting to stop the device. */ + ma_mutex_lock(&pDevice->wasapi.rerouteLock); + { + result = ma_device_stop__wasapi_nolock(pDevice); + } + ma_mutex_unlock(&pDevice->wasapi.rerouteLock); + + return result; +} + #ifndef MA_WASAPI_WAIT_TIMEOUT_MILLISECONDS #define MA_WASAPI_WAIT_TIMEOUT_MILLISECONDS 5000 @@ -21953,50 +23159,100 @@ static ma_result ma_device_read__wasapi(ma_device* pDevice, void* pFrames, ma_ui } else { /* We don't have any cached data pointer, so grab another one. */ HRESULT hr; - DWORD flags; + DWORD flags = 0; /* First just ask WASAPI for a data buffer. If it's not available, we'll wait for more. */ hr = ma_IAudioCaptureClient_GetBuffer((ma_IAudioCaptureClient*)pDevice->wasapi.pCaptureClient, (BYTE**)&pDevice->wasapi.pMappedBufferCapture, &pDevice->wasapi.mappedBufferCaptureCap, &flags, NULL, NULL); if (hr == S_OK) { /* We got a data buffer. Continue to the next loop iteration which will then read from the mapped pointer. */ + pDevice->wasapi.mappedBufferCaptureLen = pDevice->wasapi.mappedBufferCaptureCap; + + /* + There have been reports that indicate that at times the AUDCLNT_BUFFERFLAGS_DATA_DISCONTINUITY is reported for every + call to IAudioCaptureClient_GetBuffer() above which results in spamming of the debug messages below. To partially + work around this, I'm only outputting these messages when MA_DEBUG_OUTPUT is explicitly defined. The better solution + would be to figure out why the flag is always getting reported. + */ + #if defined(MA_DEBUG_OUTPUT) + { + if (flags != 0) { + ma_log_postf(ma_device_get_log(pDevice), MA_LOG_LEVEL_DEBUG, "[WASAPI] Capture Flags: %ld\n", flags); + + if ((flags & MA_AUDCLNT_BUFFERFLAGS_DATA_DISCONTINUITY) != 0) { + ma_log_postf(ma_device_get_log(pDevice), MA_LOG_LEVEL_DEBUG, "[WASAPI] Data discontinuity (possible overrun). Attempting recovery. mappedBufferCaptureCap=%d\n", pDevice->wasapi.mappedBufferCaptureCap); + } + } + } + #endif /* Overrun detection. */ if ((flags & MA_AUDCLNT_BUFFERFLAGS_DATA_DISCONTINUITY) != 0) { /* Glitched. Probably due to an overrun. */ - ma_log_postf(ma_device_get_log(pDevice), MA_LOG_LEVEL_DEBUG, "[WASAPI] Data discontinuity (possible overrun). Attempting recovery. mappedBufferCaptureCap=%d\n", pDevice->wasapi.mappedBufferCaptureCap); /* - If we got an overrun it probably means we're straddling the end of the buffer. In order to prevent - a never-ending sequence of glitches we're going to recover by completely clearing out the capture - buffer. + If we got an overrun it probably means we're straddling the end of the buffer. In normal capture + mode this is the fault of the client application because they're responsible for ensuring data is + processed fast enough. In duplex mode, however, the processing of audio is tied to the playback + device, so this can possibly be the result of a timing de-sync. + + In capture mode we're not going to do any kind of recovery because the real fix is for the client + application to process faster. In duplex mode, we'll treat this as a desync and reset the buffers + to prevent a never-ending sequence of glitches due to straddling the end of the buffer. */ - { - ma_uint32 iterationCount = 4; /* Safety to prevent an infinite loop. */ + if (pDevice->type == ma_device_type_duplex) { + /* + Experiment: + + If we empty out the *entire* buffer we may end up putting ourselves into an underrun position + which isn't really any better than the overrun we're probably in right now. Instead we'll just + empty out about half. + */ ma_uint32 i; + ma_uint32 periodCount = (pDevice->wasapi.actualBufferSizeInFramesCapture / pDevice->wasapi.periodSizeInFramesCapture); + ma_uint32 iterationCount = periodCount / 2; + if ((periodCount % 2) > 0) { + iterationCount += 1; + } for (i = 0; i < iterationCount; i += 1) { hr = ma_IAudioCaptureClient_ReleaseBuffer((ma_IAudioCaptureClient*)pDevice->wasapi.pCaptureClient, pDevice->wasapi.mappedBufferCaptureCap); if (FAILED(hr)) { + ma_log_postf(ma_device_get_log(pDevice), MA_LOG_LEVEL_DEBUG, "[WASAPI] Data discontinuity recovery: IAudioCaptureClient_ReleaseBuffer() failed with %ld.\n", hr); break; } + flags = 0; hr = ma_IAudioCaptureClient_GetBuffer((ma_IAudioCaptureClient*)pDevice->wasapi.pCaptureClient, (BYTE**)&pDevice->wasapi.pMappedBufferCapture, &pDevice->wasapi.mappedBufferCaptureCap, &flags, NULL, NULL); if (hr == MA_AUDCLNT_S_BUFFER_EMPTY || FAILED(hr)) { + /* + The buffer has been completely emptied or an error occurred. In this case we'll need + to reset the state of the mapped buffer which will trigger the next iteration to get + a fresh buffer from WASAPI. + */ + pDevice->wasapi.pMappedBufferCapture = NULL; + pDevice->wasapi.mappedBufferCaptureCap = 0; + pDevice->wasapi.mappedBufferCaptureLen = 0; + + if (hr == MA_AUDCLNT_S_BUFFER_EMPTY) { + if ((flags & MA_AUDCLNT_BUFFERFLAGS_DATA_DISCONTINUITY) != 0) { + ma_log_postf(ma_device_get_log(pDevice), MA_LOG_LEVEL_DEBUG, "[WASAPI] Data discontinuity recovery: Buffer emptied, and data discontinuity still reported.\n"); + } else { + ma_log_postf(ma_device_get_log(pDevice), MA_LOG_LEVEL_DEBUG, "[WASAPI] Data discontinuity recovery: Buffer emptied.\n"); + } + } + + if (FAILED(hr)) { + ma_log_postf(ma_device_get_log(pDevice), MA_LOG_LEVEL_DEBUG, "[WASAPI] Data discontinuity recovery: IAudioCaptureClient_GetBuffer() failed with %ld.\n", hr); + } + break; } } - } - /* We should not have a valid buffer at this point so make sure everything is empty. */ - pDevice->wasapi.pMappedBufferCapture = NULL; - pDevice->wasapi.mappedBufferCaptureCap = 0; - pDevice->wasapi.mappedBufferCaptureLen = 0; - } else { - /* The data is clean. */ - pDevice->wasapi.mappedBufferCaptureLen = pDevice->wasapi.mappedBufferCaptureCap; - - if (flags != 0) { - ma_log_postf(ma_device_get_log(pDevice), MA_LOG_LEVEL_DEBUG, "[WASAPI] Capture Flags: %ld\n", flags); + /* If at this point we have a valid buffer mapped, make sure the buffer length is set appropriately. */ + if (pDevice->wasapi.pMappedBufferCapture != NULL) { + pDevice->wasapi.mappedBufferCaptureLen = pDevice->wasapi.mappedBufferCaptureCap; + } } } @@ -22009,9 +23265,16 @@ static ma_result ma_device_read__wasapi(ma_device* pDevice, void* pFrames, ma_ui microphone isn't delivering data for whatever reason. In this case we'll just abort the read and return whatever we were able to get. The other situations is loopback mode, in which case a timeout probably just means the nothing is playing - through the speakers. + through the speakers. */ - if (WaitForSingleObject(pDevice->wasapi.hEventCapture, MA_WASAPI_WAIT_TIMEOUT_MILLISECONDS) != WAIT_OBJECT_0) { + + /* Experiment: Use a shorter timeout for loopback mode. */ + DWORD timeoutInMilliseconds = MA_WASAPI_WAIT_TIMEOUT_MILLISECONDS; + if (pDevice->type == ma_device_type_loopback) { + timeoutInMilliseconds = 10; + } + + if (WaitForSingleObject((HANDLE)pDevice->wasapi.hEventCapture, timeoutInMilliseconds) != WAIT_OBJECT_0) { if (pDevice->type == ma_device_type_loopback) { continue; /* Keep waiting in loopback mode. */ } else { @@ -22022,7 +23285,7 @@ static ma_result ma_device_read__wasapi(ma_device* pDevice, void* pFrames, ma_ui /* At this point we should be able to loop back to the start of the loop and try retrieving a data buffer again. */ } else { - /* An error occured and we need to abort. */ + /* An error occurred and we need to abort. */ ma_log_postf(ma_device_get_log(pDevice), MA_LOG_LEVEL_ERROR, "[WASAPI] Failed to retrieve internal buffer from capture device in preparation for reading from the device. HRESULT = %d. Stopping device.\n", (int)hr); result = ma_result_from_HRESULT(hr); break; @@ -22096,7 +23359,7 @@ static ma_result ma_device_write__wasapi(ma_device* pDevice, const void* pFrames whether or not we need to wait for more data. */ if (pDevice->playback.shareMode == ma_share_mode_exclusive) { - if (WaitForSingleObject(pDevice->wasapi.hEventPlayback, MA_WASAPI_WAIT_TIMEOUT_MILLISECONDS) != WAIT_OBJECT_0) { + if (WaitForSingleObject((HANDLE)pDevice->wasapi.hEventPlayback, MA_WASAPI_WAIT_TIMEOUT_MILLISECONDS) != WAIT_OBJECT_0) { result = MA_ERROR; break; /* Wait failed. Probably timed out. */ } @@ -22122,7 +23385,7 @@ static ma_result ma_device_write__wasapi(ma_device* pDevice, const void* pFrames } else { if (hr == MA_AUDCLNT_E_BUFFER_TOO_LARGE || hr == MA_AUDCLNT_E_BUFFER_ERROR) { /* Not enough data available. We need to wait for more. */ - if (WaitForSingleObject(pDevice->wasapi.hEventPlayback, MA_WASAPI_WAIT_TIMEOUT_MILLISECONDS) != WAIT_OBJECT_0) { + if (WaitForSingleObject((HANDLE)pDevice->wasapi.hEventPlayback, MA_WASAPI_WAIT_TIMEOUT_MILLISECONDS) != WAIT_OBJECT_0) { result = MA_ERROR; break; /* Wait failed. Probably timed out. */ } @@ -22161,19 +23424,32 @@ static ma_result ma_device_data_loop_wakeup__wasapi(ma_device* pDevice) static ma_result ma_context_uninit__wasapi(ma_context* pContext) { + ma_context_command__wasapi cmd = ma_context_init_command__wasapi(MA_CONTEXT_COMMAND_QUIT__WASAPI); + MA_ASSERT(pContext != NULL); MA_ASSERT(pContext->backend == ma_backend_wasapi); - if (pContext->wasapi.commandThread != NULL) { - ma_context_command__wasapi cmd = ma_context_init_command__wasapi(MA_CONTEXT_COMMAND_QUIT__WASAPI); - ma_context_post_command__wasapi(pContext, &cmd); - ma_thread_wait(&pContext->wasapi.commandThread); + ma_context_post_command__wasapi(pContext, &cmd); + ma_thread_wait(&pContext->wasapi.commandThread); - /* Only after the thread has been terminated can we uninitialize the sync objects for the command thread. */ - ma_semaphore_uninit(&pContext->wasapi.commandSem); - ma_mutex_uninit(&pContext->wasapi.commandLock); + if (pContext->wasapi.hAvrt) { + ma_dlclose(ma_context_get_log(pContext), pContext->wasapi.hAvrt); + pContext->wasapi.hAvrt = NULL; } + #if defined(MA_WIN32_UWP) + { + if (pContext->wasapi.hMMDevapi) { + ma_dlclose(ma_context_get_log(pContext), pContext->wasapi.hMMDevapi); + pContext->wasapi.hMMDevapi = NULL; + } + } + #endif + + /* Only after the thread has been terminated can we uninitialize the sync objects for the command thread. */ + ma_semaphore_uninit(&pContext->wasapi.commandSem); + ma_mutex_uninit(&pContext->wasapi.commandLock); + return MA_SUCCESS; } @@ -22198,15 +23474,15 @@ static ma_result ma_context_init__wasapi(ma_context* pContext, const ma_context_ ma_PFNVerifyVersionInfoW _VerifyVersionInfoW; ma_PFNVerSetConditionMask _VerSetConditionMask; - kernel32DLL = ma_dlopen(pContext, "kernel32.dll"); + kernel32DLL = ma_dlopen(ma_context_get_log(pContext), "kernel32.dll"); if (kernel32DLL == NULL) { return MA_NO_BACKEND; } - _VerifyVersionInfoW = (ma_PFNVerifyVersionInfoW )ma_dlsym(pContext, kernel32DLL, "VerifyVersionInfoW"); - _VerSetConditionMask = (ma_PFNVerSetConditionMask)ma_dlsym(pContext, kernel32DLL, "VerSetConditionMask"); + _VerifyVersionInfoW = (ma_PFNVerifyVersionInfoW )ma_dlsym(ma_context_get_log(pContext), kernel32DLL, "VerifyVersionInfoW"); + _VerSetConditionMask = (ma_PFNVerSetConditionMask)ma_dlsym(ma_context_get_log(pContext), kernel32DLL, "VerSetConditionMask"); if (_VerifyVersionInfoW == NULL || _VerSetConditionMask == NULL) { - ma_dlclose(pContext, kernel32DLL); + ma_dlclose(ma_context_get_log(pContext), kernel32DLL); return MA_NO_BACKEND; } @@ -22221,7 +23497,7 @@ static ma_result ma_context_init__wasapi(ma_context* pContext, const ma_context_ result = MA_NO_BACKEND; } - ma_dlclose(pContext, kernel32DLL); + ma_dlclose(ma_context_get_log(pContext), kernel32DLL); } #endif @@ -22231,6 +23507,39 @@ static ma_result ma_context_init__wasapi(ma_context* pContext, const ma_context_ MA_ZERO_OBJECT(&pContext->wasapi); + + #if defined(MA_WIN32_UWP) + { + /* Link to mmdevapi so we can get access to ActivateAudioInterfaceAsync(). */ + pContext->wasapi.hMMDevapi = ma_dlopen(ma_context_get_log(pContext), "mmdevapi.dll"); + if (pContext->wasapi.hMMDevapi) { + pContext->wasapi.ActivateAudioInterfaceAsync = ma_dlsym(ma_context_get_log(pContext), pContext->wasapi.hMMDevapi, "ActivateAudioInterfaceAsync"); + if (pContext->wasapi.ActivateAudioInterfaceAsync == NULL) { + ma_dlclose(ma_context_get_log(pContext), pContext->wasapi.hMMDevapi); + return MA_NO_BACKEND; /* ActivateAudioInterfaceAsync() could not be loaded. */ + } + } else { + return MA_NO_BACKEND; /* Failed to load mmdevapi.dll which is required for ActivateAudioInterfaceAsync() */ + } + } + #endif + + /* Optionally use the Avrt API to specify the audio thread's latency sensitivity requirements */ + pContext->wasapi.hAvrt = ma_dlopen(ma_context_get_log(pContext), "avrt.dll"); + if (pContext->wasapi.hAvrt) { + pContext->wasapi.AvSetMmThreadCharacteristicsA = ma_dlsym(ma_context_get_log(pContext), pContext->wasapi.hAvrt, "AvSetMmThreadCharacteristicsA"); + pContext->wasapi.AvRevertMmThreadcharacteristics = ma_dlsym(ma_context_get_log(pContext), pContext->wasapi.hAvrt, "AvRevertMmThreadCharacteristics"); + + /* If either function could not be found, disable use of avrt entirely. */ + if (!pContext->wasapi.AvSetMmThreadCharacteristicsA || !pContext->wasapi.AvRevertMmThreadcharacteristics) { + pContext->wasapi.AvSetMmThreadCharacteristicsA = NULL; + pContext->wasapi.AvRevertMmThreadcharacteristics = NULL; + ma_dlclose(ma_context_get_log(pContext), pContext->wasapi.hAvrt); + pContext->wasapi.hAvrt = NULL; + } + } + + /* Annoyingly, WASAPI does not allow you to release an IAudioClient object from a different thread than the one that retrieved it with GetService(). This can result in a deadlock in two @@ -22354,7 +23663,7 @@ typedef struct DWORD dwFlags; DWORD dwBufferBytes; DWORD dwReserved; - WAVEFORMATEX* lpwfxFormat; + MA_WAVEFORMATEX* lpwfxFormat; GUID guid3DAlgorithm; } MA_DSBUFFERDESC; @@ -22364,7 +23673,7 @@ typedef struct DWORD dwFlags; DWORD dwBufferBytes; DWORD dwReserved; - WAVEFORMATEX* lpwfxFormat; + MA_WAVEFORMATEX* lpwfxFormat; DWORD dwFXCount; void* lpDSCFXDesc; /* <-- miniaudio doesn't use this, so set to void*. */ } MA_DSCBUFFERDESC; @@ -22488,7 +23797,7 @@ typedef struct /* IDirectSoundBuffer */ HRESULT (STDMETHODCALLTYPE * GetCaps) (ma_IDirectSoundBuffer* pThis, MA_DSBCAPS* pDSBufferCaps); HRESULT (STDMETHODCALLTYPE * GetCurrentPosition)(ma_IDirectSoundBuffer* pThis, DWORD* pCurrentPlayCursor, DWORD* pCurrentWriteCursor); - HRESULT (STDMETHODCALLTYPE * GetFormat) (ma_IDirectSoundBuffer* pThis, WAVEFORMATEX* pFormat, DWORD dwSizeAllocated, DWORD* pSizeWritten); + HRESULT (STDMETHODCALLTYPE * GetFormat) (ma_IDirectSoundBuffer* pThis, MA_WAVEFORMATEX* pFormat, DWORD dwSizeAllocated, DWORD* pSizeWritten); HRESULT (STDMETHODCALLTYPE * GetVolume) (ma_IDirectSoundBuffer* pThis, LONG* pVolume); HRESULT (STDMETHODCALLTYPE * GetPan) (ma_IDirectSoundBuffer* pThis, LONG* pPan); HRESULT (STDMETHODCALLTYPE * GetFrequency) (ma_IDirectSoundBuffer* pThis, DWORD* pFrequency); @@ -22497,7 +23806,7 @@ typedef struct HRESULT (STDMETHODCALLTYPE * Lock) (ma_IDirectSoundBuffer* pThis, DWORD dwOffset, DWORD dwBytes, void** ppAudioPtr1, DWORD* pAudioBytes1, void** ppAudioPtr2, DWORD* pAudioBytes2, DWORD dwFlags); HRESULT (STDMETHODCALLTYPE * Play) (ma_IDirectSoundBuffer* pThis, DWORD dwReserved1, DWORD dwPriority, DWORD dwFlags); HRESULT (STDMETHODCALLTYPE * SetCurrentPosition)(ma_IDirectSoundBuffer* pThis, DWORD dwNewPosition); - HRESULT (STDMETHODCALLTYPE * SetFormat) (ma_IDirectSoundBuffer* pThis, const WAVEFORMATEX* pFormat); + HRESULT (STDMETHODCALLTYPE * SetFormat) (ma_IDirectSoundBuffer* pThis, const MA_WAVEFORMATEX* pFormat); HRESULT (STDMETHODCALLTYPE * SetVolume) (ma_IDirectSoundBuffer* pThis, LONG volume); HRESULT (STDMETHODCALLTYPE * SetPan) (ma_IDirectSoundBuffer* pThis, LONG pan); HRESULT (STDMETHODCALLTYPE * SetFrequency) (ma_IDirectSoundBuffer* pThis, DWORD dwFrequency); @@ -22514,7 +23823,7 @@ static MA_INLINE ULONG ma_IDirectSoundBuffer_AddRef(ma_IDirectSoundBuffer* pTh static MA_INLINE ULONG ma_IDirectSoundBuffer_Release(ma_IDirectSoundBuffer* pThis) { return pThis->lpVtbl->Release(pThis); } static MA_INLINE HRESULT ma_IDirectSoundBuffer_GetCaps(ma_IDirectSoundBuffer* pThis, MA_DSBCAPS* pDSBufferCaps) { return pThis->lpVtbl->GetCaps(pThis, pDSBufferCaps); } static MA_INLINE HRESULT ma_IDirectSoundBuffer_GetCurrentPosition(ma_IDirectSoundBuffer* pThis, DWORD* pCurrentPlayCursor, DWORD* pCurrentWriteCursor) { return pThis->lpVtbl->GetCurrentPosition(pThis, pCurrentPlayCursor, pCurrentWriteCursor); } -static MA_INLINE HRESULT ma_IDirectSoundBuffer_GetFormat(ma_IDirectSoundBuffer* pThis, WAVEFORMATEX* pFormat, DWORD dwSizeAllocated, DWORD* pSizeWritten) { return pThis->lpVtbl->GetFormat(pThis, pFormat, dwSizeAllocated, pSizeWritten); } +static MA_INLINE HRESULT ma_IDirectSoundBuffer_GetFormat(ma_IDirectSoundBuffer* pThis, MA_WAVEFORMATEX* pFormat, DWORD dwSizeAllocated, DWORD* pSizeWritten) { return pThis->lpVtbl->GetFormat(pThis, pFormat, dwSizeAllocated, pSizeWritten); } static MA_INLINE HRESULT ma_IDirectSoundBuffer_GetVolume(ma_IDirectSoundBuffer* pThis, LONG* pVolume) { return pThis->lpVtbl->GetVolume(pThis, pVolume); } static MA_INLINE HRESULT ma_IDirectSoundBuffer_GetPan(ma_IDirectSoundBuffer* pThis, LONG* pPan) { return pThis->lpVtbl->GetPan(pThis, pPan); } static MA_INLINE HRESULT ma_IDirectSoundBuffer_GetFrequency(ma_IDirectSoundBuffer* pThis, DWORD* pFrequency) { return pThis->lpVtbl->GetFrequency(pThis, pFrequency); } @@ -22523,7 +23832,7 @@ static MA_INLINE HRESULT ma_IDirectSoundBuffer_Initialize(ma_IDirectSoundBuffer* static MA_INLINE HRESULT ma_IDirectSoundBuffer_Lock(ma_IDirectSoundBuffer* pThis, DWORD dwOffset, DWORD dwBytes, void** ppAudioPtr1, DWORD* pAudioBytes1, void** ppAudioPtr2, DWORD* pAudioBytes2, DWORD dwFlags) { return pThis->lpVtbl->Lock(pThis, dwOffset, dwBytes, ppAudioPtr1, pAudioBytes1, ppAudioPtr2, pAudioBytes2, dwFlags); } static MA_INLINE HRESULT ma_IDirectSoundBuffer_Play(ma_IDirectSoundBuffer* pThis, DWORD dwReserved1, DWORD dwPriority, DWORD dwFlags) { return pThis->lpVtbl->Play(pThis, dwReserved1, dwPriority, dwFlags); } static MA_INLINE HRESULT ma_IDirectSoundBuffer_SetCurrentPosition(ma_IDirectSoundBuffer* pThis, DWORD dwNewPosition) { return pThis->lpVtbl->SetCurrentPosition(pThis, dwNewPosition); } -static MA_INLINE HRESULT ma_IDirectSoundBuffer_SetFormat(ma_IDirectSoundBuffer* pThis, const WAVEFORMATEX* pFormat) { return pThis->lpVtbl->SetFormat(pThis, pFormat); } +static MA_INLINE HRESULT ma_IDirectSoundBuffer_SetFormat(ma_IDirectSoundBuffer* pThis, const MA_WAVEFORMATEX* pFormat) { return pThis->lpVtbl->SetFormat(pThis, pFormat); } static MA_INLINE HRESULT ma_IDirectSoundBuffer_SetVolume(ma_IDirectSoundBuffer* pThis, LONG volume) { return pThis->lpVtbl->SetVolume(pThis, volume); } static MA_INLINE HRESULT ma_IDirectSoundBuffer_SetPan(ma_IDirectSoundBuffer* pThis, LONG pan) { return pThis->lpVtbl->SetPan(pThis, pan); } static MA_INLINE HRESULT ma_IDirectSoundBuffer_SetFrequency(ma_IDirectSoundBuffer* pThis, DWORD dwFrequency) { return pThis->lpVtbl->SetFrequency(pThis, dwFrequency); } @@ -22568,7 +23877,7 @@ typedef struct /* IDirectSoundCaptureBuffer */ HRESULT (STDMETHODCALLTYPE * GetCaps) (ma_IDirectSoundCaptureBuffer* pThis, MA_DSCBCAPS* pDSCBCaps); HRESULT (STDMETHODCALLTYPE * GetCurrentPosition)(ma_IDirectSoundCaptureBuffer* pThis, DWORD* pCapturePosition, DWORD* pReadPosition); - HRESULT (STDMETHODCALLTYPE * GetFormat) (ma_IDirectSoundCaptureBuffer* pThis, WAVEFORMATEX* pFormat, DWORD dwSizeAllocated, DWORD* pSizeWritten); + HRESULT (STDMETHODCALLTYPE * GetFormat) (ma_IDirectSoundCaptureBuffer* pThis, MA_WAVEFORMATEX* pFormat, DWORD dwSizeAllocated, DWORD* pSizeWritten); HRESULT (STDMETHODCALLTYPE * GetStatus) (ma_IDirectSoundCaptureBuffer* pThis, DWORD* pStatus); HRESULT (STDMETHODCALLTYPE * Initialize) (ma_IDirectSoundCaptureBuffer* pThis, ma_IDirectSoundCapture* pDirectSoundCapture, const MA_DSCBUFFERDESC* pDSCBufferDesc); HRESULT (STDMETHODCALLTYPE * Lock) (ma_IDirectSoundCaptureBuffer* pThis, DWORD dwOffset, DWORD dwBytes, void** ppAudioPtr1, DWORD* pAudioBytes1, void** ppAudioPtr2, DWORD* pAudioBytes2, DWORD dwFlags); @@ -22585,7 +23894,7 @@ static MA_INLINE ULONG ma_IDirectSoundCaptureBuffer_AddRef(ma_IDirectSoundCapt static MA_INLINE ULONG ma_IDirectSoundCaptureBuffer_Release(ma_IDirectSoundCaptureBuffer* pThis) { return pThis->lpVtbl->Release(pThis); } static MA_INLINE HRESULT ma_IDirectSoundCaptureBuffer_GetCaps(ma_IDirectSoundCaptureBuffer* pThis, MA_DSCBCAPS* pDSCBCaps) { return pThis->lpVtbl->GetCaps(pThis, pDSCBCaps); } static MA_INLINE HRESULT ma_IDirectSoundCaptureBuffer_GetCurrentPosition(ma_IDirectSoundCaptureBuffer* pThis, DWORD* pCapturePosition, DWORD* pReadPosition) { return pThis->lpVtbl->GetCurrentPosition(pThis, pCapturePosition, pReadPosition); } -static MA_INLINE HRESULT ma_IDirectSoundCaptureBuffer_GetFormat(ma_IDirectSoundCaptureBuffer* pThis, WAVEFORMATEX* pFormat, DWORD dwSizeAllocated, DWORD* pSizeWritten) { return pThis->lpVtbl->GetFormat(pThis, pFormat, dwSizeAllocated, pSizeWritten); } +static MA_INLINE HRESULT ma_IDirectSoundCaptureBuffer_GetFormat(ma_IDirectSoundCaptureBuffer* pThis, MA_WAVEFORMATEX* pFormat, DWORD dwSizeAllocated, DWORD* pSizeWritten) { return pThis->lpVtbl->GetFormat(pThis, pFormat, dwSizeAllocated, pSizeWritten); } static MA_INLINE HRESULT ma_IDirectSoundCaptureBuffer_GetStatus(ma_IDirectSoundCaptureBuffer* pThis, DWORD* pStatus) { return pThis->lpVtbl->GetStatus(pThis, pStatus); } static MA_INLINE HRESULT ma_IDirectSoundCaptureBuffer_Initialize(ma_IDirectSoundCaptureBuffer* pThis, ma_IDirectSoundCapture* pDirectSoundCapture, const MA_DSCBUFFERDESC* pDSCBufferDesc) { return pThis->lpVtbl->Initialize(pThis, pDirectSoundCapture, pDSCBufferDesc); } static MA_INLINE HRESULT ma_IDirectSoundCaptureBuffer_Lock(ma_IDirectSoundCaptureBuffer* pThis, DWORD dwOffset, DWORD dwBytes, void** ppAudioPtr1, DWORD* pAudioBytes1, void** ppAudioPtr2, DWORD* pAudioBytes2, DWORD dwFlags) { return pThis->lpVtbl->Lock(pThis, dwOffset, dwBytes, ppAudioPtr1, pAudioBytes1, ppAudioPtr2, pAudioBytes2, dwFlags); } @@ -22615,11 +23924,11 @@ static MA_INLINE ULONG ma_IDirectSoundNotify_Release(ma_IDirectSoundNotify* pT static MA_INLINE HRESULT ma_IDirectSoundNotify_SetNotificationPositions(ma_IDirectSoundNotify* pThis, DWORD dwPositionNotifies, const MA_DSBPOSITIONNOTIFY* pPositionNotifies) { return pThis->lpVtbl->SetNotificationPositions(pThis, dwPositionNotifies, pPositionNotifies); } -typedef BOOL (CALLBACK * ma_DSEnumCallbackAProc) (LPGUID pDeviceGUID, LPCSTR pDeviceDescription, LPCSTR pModule, LPVOID pContext); -typedef HRESULT (WINAPI * ma_DirectSoundCreateProc) (const GUID* pcGuidDevice, ma_IDirectSound** ppDS8, LPUNKNOWN pUnkOuter); -typedef HRESULT (WINAPI * ma_DirectSoundEnumerateAProc) (ma_DSEnumCallbackAProc pDSEnumCallback, LPVOID pContext); -typedef HRESULT (WINAPI * ma_DirectSoundCaptureCreateProc) (const GUID* pcGuidDevice, ma_IDirectSoundCapture** ppDSC8, LPUNKNOWN pUnkOuter); -typedef HRESULT (WINAPI * ma_DirectSoundCaptureEnumerateAProc)(ma_DSEnumCallbackAProc pDSEnumCallback, LPVOID pContext); +typedef BOOL (CALLBACK * ma_DSEnumCallbackAProc) (GUID* pDeviceGUID, const char* pDeviceDescription, const char* pModule, void* pContext); +typedef HRESULT (WINAPI * ma_DirectSoundCreateProc) (const GUID* pcGuidDevice, ma_IDirectSound** ppDS8, ma_IUnknown* pUnkOuter); +typedef HRESULT (WINAPI * ma_DirectSoundEnumerateAProc) (ma_DSEnumCallbackAProc pDSEnumCallback, void* pContext); +typedef HRESULT (WINAPI * ma_DirectSoundCaptureCreateProc) (const GUID* pcGuidDevice, ma_IDirectSoundCapture** ppDSC8, ma_IUnknown* pUnkOuter); +typedef HRESULT (WINAPI * ma_DirectSoundCaptureEnumerateAProc)(ma_DSEnumCallbackAProc pDSEnumCallback, void* pContext); static ma_uint32 ma_get_best_sample_rate_within_range(ma_uint32 sampleRateMin, ma_uint32 sampleRateMax) { @@ -22716,7 +24025,7 @@ static ma_result ma_context_create_IDirectSound__dsound(ma_context* pContext, ma /* The cooperative level must be set before doing anything else. */ hWnd = ((MA_PFN_GetForegroundWindow)pContext->win32.GetForegroundWindow)(); - if (hWnd == NULL) { + if (hWnd == 0) { hWnd = ((MA_PFN_GetDesktopWindow)pContext->win32.GetDesktopWindow)(); } @@ -22868,7 +24177,7 @@ typedef struct ma_bool32 terminated; } ma_context_enumerate_devices_callback_data__dsound; -static BOOL CALLBACK ma_context_enumerate_devices_callback__dsound(LPGUID lpGuid, LPCSTR lpcstrDescription, LPCSTR lpcstrModule, LPVOID lpContext) +static BOOL CALLBACK ma_context_enumerate_devices_callback__dsound(GUID* lpGuid, const char* lpcstrDescription, const char* lpcstrModule, void* lpContext) { ma_context_enumerate_devices_callback_data__dsound* pData = (ma_context_enumerate_devices_callback_data__dsound*)lpContext; ma_device_info deviceInfo; @@ -22891,7 +24200,7 @@ static BOOL CALLBACK ma_context_enumerate_devices_callback__dsound(LPGUID lpGuid /* Call the callback function, but make sure we stop enumerating if the callee requested so. */ MA_ASSERT(pData != NULL); - pData->terminated = !pData->callback(pData->pContext, pData->deviceType, &deviceInfo, pData->pUserData); + pData->terminated = (pData->callback(pData->pContext, pData->deviceType, &deviceInfo, pData->pUserData) == MA_FALSE); if (pData->terminated) { return FALSE; /* Stop enumeration. */ } else { @@ -22934,7 +24243,7 @@ typedef struct ma_bool32 found; } ma_context_get_device_info_callback_data__dsound; -static BOOL CALLBACK ma_context_get_device_info_callback__dsound(LPGUID lpGuid, LPCSTR lpcstrDescription, LPCSTR lpcstrModule, LPVOID lpContext) +static BOOL CALLBACK ma_context_get_device_info_callback__dsound(GUID* lpGuid, const char* lpcstrDescription, const char* lpcstrModule, void* lpContext) { ma_context_get_device_info_callback_data__dsound* pData = (ma_context_get_device_info_callback_data__dsound*)lpContext; MA_ASSERT(pData != NULL); @@ -23139,7 +24448,7 @@ static ma_result ma_device_uninit__dsound(ma_device* pDevice) return MA_SUCCESS; } -static ma_result ma_config_to_WAVEFORMATEXTENSIBLE(ma_format format, ma_uint32 channels, ma_uint32 sampleRate, const ma_channel* pChannelMap, WAVEFORMATEXTENSIBLE* pWF) +static ma_result ma_config_to_WAVEFORMATEXTENSIBLE(ma_format format, ma_uint32 channels, ma_uint32 sampleRate, const ma_channel* pChannelMap, MA_WAVEFORMATEXTENSIBLE* pWF) { GUID subformat; @@ -23176,14 +24485,14 @@ static ma_result ma_config_to_WAVEFORMATEXTENSIBLE(ma_format format, ma_uint32 c } MA_ZERO_OBJECT(pWF); - pWF->Format.cbSize = sizeof(*pWF); - pWF->Format.wFormatTag = WAVE_FORMAT_EXTENSIBLE; - pWF->Format.nChannels = (WORD)channels; - pWF->Format.nSamplesPerSec = (DWORD)sampleRate; - pWF->Format.wBitsPerSample = (WORD)(ma_get_bytes_per_sample(format)*8); - pWF->Format.nBlockAlign = (WORD)(pWF->Format.nChannels * pWF->Format.wBitsPerSample / 8); - pWF->Format.nAvgBytesPerSec = pWF->Format.nBlockAlign * pWF->Format.nSamplesPerSec; - pWF->Samples.wValidBitsPerSample = pWF->Format.wBitsPerSample; + pWF->cbSize = sizeof(*pWF); + pWF->wFormatTag = WAVE_FORMAT_EXTENSIBLE; + pWF->nChannels = (WORD)channels; + pWF->nSamplesPerSec = (DWORD)sampleRate; + pWF->wBitsPerSample = (WORD)(ma_get_bytes_per_sample(format)*8); + pWF->nBlockAlign = (WORD)(pWF->nChannels * pWF->wBitsPerSample / 8); + pWF->nAvgBytesPerSec = pWF->nBlockAlign * pWF->nSamplesPerSec; + pWF->Samples.wValidBitsPerSample = pWF->wBitsPerSample; pWF->dwChannelMask = ma_channel_map_to_channel_mask__win32(pChannelMap, channels); pWF->SubFormat = subformat; @@ -23226,12 +24535,12 @@ static ma_result ma_device_init__dsound(ma_device* pDevice, const ma_device_conf full-duplex mode. */ if (pConfig->deviceType == ma_device_type_capture || pConfig->deviceType == ma_device_type_duplex) { - WAVEFORMATEXTENSIBLE wf; + MA_WAVEFORMATEXTENSIBLE wf; MA_DSCBUFFERDESC descDS; ma_uint32 periodSizeInFrames; ma_uint32 periodCount; char rawdata[1024]; /* <-- Ugly hack to avoid a malloc() due to a crappy DirectSound API. */ - WAVEFORMATEXTENSIBLE* pActualFormat; + MA_WAVEFORMATEXTENSIBLE* pActualFormat; result = ma_config_to_WAVEFORMATEXTENSIBLE(pDescriptorCapture->format, pDescriptorCapture->channels, pDescriptorCapture->sampleRate, pDescriptorCapture->channelMap, &wf); if (result != MA_SUCCESS) { @@ -23244,26 +24553,26 @@ static ma_result ma_device_init__dsound(ma_device* pDevice, const ma_device_conf return result; } - result = ma_context_get_format_info_for_IDirectSoundCapture__dsound(pDevice->pContext, (ma_IDirectSoundCapture*)pDevice->dsound.pCapture, &wf.Format.nChannels, &wf.Format.wBitsPerSample, &wf.Format.nSamplesPerSec); + result = ma_context_get_format_info_for_IDirectSoundCapture__dsound(pDevice->pContext, (ma_IDirectSoundCapture*)pDevice->dsound.pCapture, &wf.nChannels, &wf.wBitsPerSample, &wf.nSamplesPerSec); if (result != MA_SUCCESS) { ma_device_uninit__dsound(pDevice); return result; } - wf.Format.nBlockAlign = (WORD)(wf.Format.nChannels * wf.Format.wBitsPerSample / 8); - wf.Format.nAvgBytesPerSec = wf.Format.nBlockAlign * wf.Format.nSamplesPerSec; - wf.Samples.wValidBitsPerSample = wf.Format.wBitsPerSample; + wf.nBlockAlign = (WORD)(wf.nChannels * wf.wBitsPerSample / 8); + wf.nAvgBytesPerSec = wf.nBlockAlign * wf.nSamplesPerSec; + wf.Samples.wValidBitsPerSample = wf.wBitsPerSample; wf.SubFormat = MA_GUID_KSDATAFORMAT_SUBTYPE_PCM; /* The size of the buffer must be a clean multiple of the period count. */ - periodSizeInFrames = ma_calculate_period_size_in_frames_from_descriptor__dsound(pDescriptorCapture, wf.Format.nSamplesPerSec, pConfig->performanceProfile); + periodSizeInFrames = ma_calculate_period_size_in_frames_from_descriptor__dsound(pDescriptorCapture, wf.nSamplesPerSec, pConfig->performanceProfile); periodCount = (pDescriptorCapture->periodCount > 0) ? pDescriptorCapture->periodCount : MA_DEFAULT_PERIODS; MA_ZERO_OBJECT(&descDS); descDS.dwSize = sizeof(descDS); descDS.dwFlags = 0; - descDS.dwBufferBytes = periodSizeInFrames * periodCount * wf.Format.nBlockAlign; - descDS.lpwfxFormat = (WAVEFORMATEX*)&wf; + descDS.dwBufferBytes = periodSizeInFrames * periodCount * wf.nBlockAlign; + descDS.lpwfxFormat = (MA_WAVEFORMATEX*)&wf; hr = ma_IDirectSoundCapture_CreateCaptureBuffer((ma_IDirectSoundCapture*)pDevice->dsound.pCapture, &descDS, (ma_IDirectSoundCaptureBuffer**)&pDevice->dsound.pCaptureBuffer, NULL); if (FAILED(hr)) { ma_device_uninit__dsound(pDevice); @@ -23272,8 +24581,8 @@ static ma_result ma_device_init__dsound(ma_device* pDevice, const ma_device_conf } /* Get the _actual_ properties of the buffer. */ - pActualFormat = (WAVEFORMATEXTENSIBLE*)rawdata; - hr = ma_IDirectSoundCaptureBuffer_GetFormat((ma_IDirectSoundCaptureBuffer*)pDevice->dsound.pCaptureBuffer, (WAVEFORMATEX*)pActualFormat, sizeof(rawdata), NULL); + pActualFormat = (MA_WAVEFORMATEXTENSIBLE*)rawdata; + hr = ma_IDirectSoundCaptureBuffer_GetFormat((ma_IDirectSoundCaptureBuffer*)pDevice->dsound.pCaptureBuffer, (MA_WAVEFORMATEX*)pActualFormat, sizeof(rawdata), NULL); if (FAILED(hr)) { ma_device_uninit__dsound(pDevice); ma_log_post(ma_device_get_log(pDevice), MA_LOG_LEVEL_ERROR, "[DirectSound] Failed to retrieve the actual format of the capture device's buffer."); @@ -23281,12 +24590,12 @@ static ma_result ma_device_init__dsound(ma_device* pDevice, const ma_device_conf } /* We can now start setting the output data formats. */ - pDescriptorCapture->format = ma_format_from_WAVEFORMATEX((WAVEFORMATEX*)pActualFormat); - pDescriptorCapture->channels = pActualFormat->Format.nChannels; - pDescriptorCapture->sampleRate = pActualFormat->Format.nSamplesPerSec; + pDescriptorCapture->format = ma_format_from_WAVEFORMATEX((MA_WAVEFORMATEX*)pActualFormat); + pDescriptorCapture->channels = pActualFormat->nChannels; + pDescriptorCapture->sampleRate = pActualFormat->nSamplesPerSec; /* Get the native channel map based on the channel mask. */ - if (pActualFormat->Format.wFormatTag == WAVE_FORMAT_EXTENSIBLE) { + if (pActualFormat->wFormatTag == WAVE_FORMAT_EXTENSIBLE) { ma_channel_mask_to_channel_map__win32(pActualFormat->dwChannelMask, pDescriptorCapture->channels, pDescriptorCapture->channelMap); } else { ma_channel_mask_to_channel_map__win32(wf.dwChannelMask, pDescriptorCapture->channels, pDescriptorCapture->channelMap); @@ -23314,14 +24623,16 @@ static ma_result ma_device_init__dsound(ma_device* pDevice, const ma_device_conf } if (pConfig->deviceType == ma_device_type_playback || pConfig->deviceType == ma_device_type_duplex) { - WAVEFORMATEXTENSIBLE wf; + MA_WAVEFORMATEXTENSIBLE wf; MA_DSBUFFERDESC descDSPrimary; MA_DSCAPS caps; char rawdata[1024]; /* <-- Ugly hack to avoid a malloc() due to a crappy DirectSound API. */ - WAVEFORMATEXTENSIBLE* pActualFormat; + MA_WAVEFORMATEXTENSIBLE* pActualFormat; ma_uint32 periodSizeInFrames; ma_uint32 periodCount; MA_DSBUFFERDESC descDS; + WORD nativeChannelCount; + DWORD nativeChannelMask = 0; result = ma_config_to_WAVEFORMATEXTENSIBLE(pDescriptorPlayback->format, pDescriptorPlayback->channels, pDescriptorPlayback->sampleRate, pDescriptorPlayback->channelMap, &wf); if (result != MA_SUCCESS) { @@ -23355,34 +24666,38 @@ static ma_result ma_device_init__dsound(ma_device* pDevice, const ma_device_conf return ma_result_from_HRESULT(hr); } - if (pDescriptorPlayback->channels == 0) { - if ((caps.dwFlags & MA_DSCAPS_PRIMARYSTEREO) != 0) { - DWORD speakerConfig; + if ((caps.dwFlags & MA_DSCAPS_PRIMARYSTEREO) != 0) { + DWORD speakerConfig; - /* It supports at least stereo, but could support more. */ - wf.Format.nChannels = 2; + /* It supports at least stereo, but could support more. */ + nativeChannelCount = 2; - /* Look at the speaker configuration to get a better idea on the channel count. */ - if (SUCCEEDED(ma_IDirectSound_GetSpeakerConfig((ma_IDirectSound*)pDevice->dsound.pPlayback, &speakerConfig))) { - ma_get_channels_from_speaker_config__dsound(speakerConfig, &wf.Format.nChannels, &wf.dwChannelMask); - } - } else { - /* It does not support stereo, which means we are stuck with mono. */ - wf.Format.nChannels = 1; + /* Look at the speaker configuration to get a better idea on the channel count. */ + if (SUCCEEDED(ma_IDirectSound_GetSpeakerConfig((ma_IDirectSound*)pDevice->dsound.pPlayback, &speakerConfig))) { + ma_get_channels_from_speaker_config__dsound(speakerConfig, &nativeChannelCount, &nativeChannelMask); } + } else { + /* It does not support stereo, which means we are stuck with mono. */ + nativeChannelCount = 1; + nativeChannelMask = 0x00000001; + } + + if (pDescriptorPlayback->channels == 0) { + wf.nChannels = nativeChannelCount; + wf.dwChannelMask = nativeChannelMask; } if (pDescriptorPlayback->sampleRate == 0) { /* We base the sample rate on the values returned by GetCaps(). */ if ((caps.dwFlags & MA_DSCAPS_CONTINUOUSRATE) != 0) { - wf.Format.nSamplesPerSec = ma_get_best_sample_rate_within_range(caps.dwMinSecondarySampleRate, caps.dwMaxSecondarySampleRate); + wf.nSamplesPerSec = ma_get_best_sample_rate_within_range(caps.dwMinSecondarySampleRate, caps.dwMaxSecondarySampleRate); } else { - wf.Format.nSamplesPerSec = caps.dwMaxSecondarySampleRate; + wf.nSamplesPerSec = caps.dwMaxSecondarySampleRate; } } - wf.Format.nBlockAlign = (WORD)(wf.Format.nChannels * wf.Format.wBitsPerSample / 8); - wf.Format.nAvgBytesPerSec = wf.Format.nBlockAlign * wf.Format.nSamplesPerSec; + wf.nBlockAlign = (WORD)(wf.nChannels * wf.wBitsPerSample / 8); + wf.nAvgBytesPerSec = wf.nBlockAlign * wf.nSamplesPerSec; /* From MSDN: @@ -23391,16 +24706,33 @@ static ma_result ma_device_init__dsound(ma_device* pDevice, const ma_device_conf supported format. To determine whether this has happened, an application can call the GetFormat method for the primary buffer and compare the result with the format that was requested with the SetFormat method. */ - hr = ma_IDirectSoundBuffer_SetFormat((ma_IDirectSoundBuffer*)pDevice->dsound.pPlaybackPrimaryBuffer, (WAVEFORMATEX*)&wf); + hr = ma_IDirectSoundBuffer_SetFormat((ma_IDirectSoundBuffer*)pDevice->dsound.pPlaybackPrimaryBuffer, (MA_WAVEFORMATEX*)&wf); if (FAILED(hr)) { - ma_device_uninit__dsound(pDevice); - ma_log_post(ma_device_get_log(pDevice), MA_LOG_LEVEL_ERROR, "[DirectSound] Failed to set format of playback device's primary buffer."); - return ma_result_from_HRESULT(hr); + /* + If setting of the format failed we'll try again with some fallback settings. On Windows 98 I have + observed that IEEE_FLOAT does not work. We'll therefore enforce PCM. I also had issues where a + sample rate of 48000 did not work correctly. Not sure if it was a driver issue or not, but will + use 44100 for the sample rate. + */ + wf.cbSize = 18; /* NOTE: Don't use sizeof(MA_WAVEFORMATEX) here because it's got an extra 2 bytes due to padding. */ + wf.wFormatTag = WAVE_FORMAT_PCM; + wf.wBitsPerSample = 16; + wf.nChannels = nativeChannelCount; + wf.nSamplesPerSec = 44100; + wf.nBlockAlign = wf.nChannels * (wf.wBitsPerSample / 8); + wf.nAvgBytesPerSec = wf.nSamplesPerSec * wf.nBlockAlign; + + hr = ma_IDirectSoundBuffer_SetFormat((ma_IDirectSoundBuffer*)pDevice->dsound.pPlaybackPrimaryBuffer, (MA_WAVEFORMATEX*)&wf); + if (FAILED(hr)) { + ma_device_uninit__dsound(pDevice); + ma_log_post(ma_device_get_log(pDevice), MA_LOG_LEVEL_ERROR, "[DirectSound] Failed to set format of playback device's primary buffer."); + return ma_result_from_HRESULT(hr); + } } /* Get the _actual_ properties of the buffer. */ - pActualFormat = (WAVEFORMATEXTENSIBLE*)rawdata; - hr = ma_IDirectSoundBuffer_GetFormat((ma_IDirectSoundBuffer*)pDevice->dsound.pPlaybackPrimaryBuffer, (WAVEFORMATEX*)pActualFormat, sizeof(rawdata), NULL); + pActualFormat = (MA_WAVEFORMATEXTENSIBLE*)rawdata; + hr = ma_IDirectSoundBuffer_GetFormat((ma_IDirectSoundBuffer*)pDevice->dsound.pPlaybackPrimaryBuffer, (MA_WAVEFORMATEX*)pActualFormat, sizeof(rawdata), NULL); if (FAILED(hr)) { ma_device_uninit__dsound(pDevice); ma_log_post(ma_device_get_log(pDevice), MA_LOG_LEVEL_ERROR, "[DirectSound] Failed to retrieve the actual format of the playback device's primary buffer."); @@ -23408,12 +24740,12 @@ static ma_result ma_device_init__dsound(ma_device* pDevice, const ma_device_conf } /* We now have enough information to start setting some output properties. */ - pDescriptorPlayback->format = ma_format_from_WAVEFORMATEX((WAVEFORMATEX*)pActualFormat); - pDescriptorPlayback->channels = pActualFormat->Format.nChannels; - pDescriptorPlayback->sampleRate = pActualFormat->Format.nSamplesPerSec; + pDescriptorPlayback->format = ma_format_from_WAVEFORMATEX((MA_WAVEFORMATEX*)pActualFormat); + pDescriptorPlayback->channels = pActualFormat->nChannels; + pDescriptorPlayback->sampleRate = pActualFormat->nSamplesPerSec; /* Get the internal channel map based on the channel mask. */ - if (pActualFormat->Format.wFormatTag == WAVE_FORMAT_EXTENSIBLE) { + if (pActualFormat->wFormatTag == WAVE_FORMAT_EXTENSIBLE) { ma_channel_mask_to_channel_map__win32(pActualFormat->dwChannelMask, pDescriptorPlayback->channels, pDescriptorPlayback->channelMap); } else { ma_channel_mask_to_channel_map__win32(wf.dwChannelMask, pDescriptorPlayback->channels, pDescriptorPlayback->channelMap); @@ -23442,7 +24774,7 @@ static ma_result ma_device_init__dsound(ma_device* pDevice, const ma_device_conf descDS.dwSize = sizeof(descDS); descDS.dwFlags = MA_DSBCAPS_CTRLPOSITIONNOTIFY | MA_DSBCAPS_GLOBALFOCUS | MA_DSBCAPS_GETCURRENTPOSITION2; descDS.dwBufferBytes = periodSizeInFrames * periodCount * ma_get_bytes_per_frame(pDescriptorPlayback->format, pDescriptorPlayback->channels); - descDS.lpwfxFormat = (WAVEFORMATEX*)&wf; + descDS.lpwfxFormat = (MA_WAVEFORMATEX*)pActualFormat; hr = ma_IDirectSound_CreateSoundBuffer((ma_IDirectSound*)pDevice->dsound.pPlayback, &descDS, (ma_IDirectSoundBuffer**)&pDevice->dsound.pPlaybackBuffer, NULL); if (FAILED(hr)) { ma_device_uninit__dsound(pDevice); @@ -23978,7 +25310,7 @@ static ma_result ma_context_uninit__dsound(ma_context* pContext) MA_ASSERT(pContext != NULL); MA_ASSERT(pContext->backend == ma_backend_dsound); - ma_dlclose(pContext, pContext->dsound.hDSoundDLL); + ma_dlclose(ma_context_get_log(pContext), pContext->dsound.hDSoundDLL); return MA_SUCCESS; } @@ -23989,15 +25321,27 @@ static ma_result ma_context_init__dsound(ma_context* pContext, const ma_context_ (void)pConfig; - pContext->dsound.hDSoundDLL = ma_dlopen(pContext, "dsound.dll"); + pContext->dsound.hDSoundDLL = ma_dlopen(ma_context_get_log(pContext), "dsound.dll"); if (pContext->dsound.hDSoundDLL == NULL) { return MA_API_NOT_FOUND; } - pContext->dsound.DirectSoundCreate = ma_dlsym(pContext, pContext->dsound.hDSoundDLL, "DirectSoundCreate"); - pContext->dsound.DirectSoundEnumerateA = ma_dlsym(pContext, pContext->dsound.hDSoundDLL, "DirectSoundEnumerateA"); - pContext->dsound.DirectSoundCaptureCreate = ma_dlsym(pContext, pContext->dsound.hDSoundDLL, "DirectSoundCaptureCreate"); - pContext->dsound.DirectSoundCaptureEnumerateA = ma_dlsym(pContext, pContext->dsound.hDSoundDLL, "DirectSoundCaptureEnumerateA"); + pContext->dsound.DirectSoundCreate = ma_dlsym(ma_context_get_log(pContext), pContext->dsound.hDSoundDLL, "DirectSoundCreate"); + pContext->dsound.DirectSoundEnumerateA = ma_dlsym(ma_context_get_log(pContext), pContext->dsound.hDSoundDLL, "DirectSoundEnumerateA"); + pContext->dsound.DirectSoundCaptureCreate = ma_dlsym(ma_context_get_log(pContext), pContext->dsound.hDSoundDLL, "DirectSoundCaptureCreate"); + pContext->dsound.DirectSoundCaptureEnumerateA = ma_dlsym(ma_context_get_log(pContext), pContext->dsound.hDSoundDLL, "DirectSoundCaptureEnumerateA"); + + /* + We need to support all functions or nothing. DirectSound with Windows 95 seems to not work too + well in my testing. For example, it's missing DirectSoundCaptureEnumerateA(). This is a convenient + place to just disable the DirectSound backend for Windows 95. + */ + if (pContext->dsound.DirectSoundCreate == NULL || + pContext->dsound.DirectSoundEnumerateA == NULL || + pContext->dsound.DirectSoundCaptureCreate == NULL || + pContext->dsound.DirectSoundCaptureEnumerateA == NULL) { + return MA_API_NOT_FOUND; + } pCallbacks->onContextInit = ma_context_init__dsound; pCallbacks->onContextUninit = ma_context_uninit__dsound; @@ -24025,16 +25369,75 @@ WinMM Backend #ifdef MA_HAS_WINMM /* -Some older compilers don't have WAVEOUTCAPS2A and WAVEINCAPS2A, so we'll need to write this ourselves. These structures -are exactly the same as the older ones but they have a few GUIDs for manufacturer/product/name identification. I'm keeping -the names the same as the Win32 library for consistency, but namespaced to avoid naming conflicts with the Win32 version. +Some build configurations will exclude the WinMM API. An example is when WIN32_LEAN_AND_MEAN +is defined. We need to define the types and functions we need manually. */ +#define MA_MMSYSERR_NOERROR 0 +#define MA_MMSYSERR_ERROR 1 +#define MA_MMSYSERR_BADDEVICEID 2 +#define MA_MMSYSERR_INVALHANDLE 5 +#define MA_MMSYSERR_NOMEM 7 +#define MA_MMSYSERR_INVALFLAG 10 +#define MA_MMSYSERR_INVALPARAM 11 +#define MA_MMSYSERR_HANDLEBUSY 12 + +#define MA_CALLBACK_EVENT 0x00050000 +#define MA_WAVE_ALLOWSYNC 0x0002 + +#define MA_WHDR_DONE 0x00000001 +#define MA_WHDR_PREPARED 0x00000002 +#define MA_WHDR_BEGINLOOP 0x00000004 +#define MA_WHDR_ENDLOOP 0x00000008 +#define MA_WHDR_INQUEUE 0x00000010 + +#define MA_MAXPNAMELEN 32 + +typedef void* MA_HWAVEIN; +typedef void* MA_HWAVEOUT; +typedef UINT MA_MMRESULT; +typedef UINT MA_MMVERSION; + typedef struct { WORD wMid; WORD wPid; - MMVERSION vDriverVersion; - CHAR szPname[MAXPNAMELEN]; + MA_MMVERSION vDriverVersion; + CHAR szPname[MA_MAXPNAMELEN]; + DWORD dwFormats; + WORD wChannels; + WORD wReserved1; +} MA_WAVEINCAPSA; + +typedef struct +{ + WORD wMid; + WORD wPid; + MA_MMVERSION vDriverVersion; + CHAR szPname[MA_MAXPNAMELEN]; + DWORD dwFormats; + WORD wChannels; + WORD wReserved1; + DWORD dwSupport; +} MA_WAVEOUTCAPSA; + +typedef struct tagWAVEHDR +{ + char* lpData; + DWORD dwBufferLength; + DWORD dwBytesRecorded; + DWORD_PTR dwUser; + DWORD dwFlags; + DWORD dwLoops; + struct tagWAVEHDR* lpNext; + DWORD_PTR reserved; +} MA_WAVEHDR; + +typedef struct +{ + WORD wMid; + WORD wPid; + MA_MMVERSION vDriverVersion; + CHAR szPname[MA_MAXPNAMELEN]; DWORD dwFormats; WORD wChannels; WORD wReserved1; @@ -24043,12 +25446,13 @@ typedef struct GUID ProductGuid; GUID NameGuid; } MA_WAVEOUTCAPS2A; + typedef struct { WORD wMid; WORD wPid; - MMVERSION vDriverVersion; - CHAR szPname[MAXPNAMELEN]; + MA_MMVERSION vDriverVersion; + CHAR szPname[MA_MAXPNAMELEN]; DWORD dwFormats; WORD wChannels; WORD wReserved1; @@ -24057,36 +25461,37 @@ typedef struct GUID NameGuid; } MA_WAVEINCAPS2A; -typedef UINT (WINAPI * MA_PFN_waveOutGetNumDevs)(void); -typedef MMRESULT (WINAPI * MA_PFN_waveOutGetDevCapsA)(ma_uintptr uDeviceID, LPWAVEOUTCAPSA pwoc, UINT cbwoc); -typedef MMRESULT (WINAPI * MA_PFN_waveOutOpen)(LPHWAVEOUT phwo, UINT uDeviceID, LPCWAVEFORMATEX pwfx, DWORD_PTR dwCallback, DWORD_PTR dwInstance, DWORD fdwOpen); -typedef MMRESULT (WINAPI * MA_PFN_waveOutClose)(HWAVEOUT hwo); -typedef MMRESULT (WINAPI * MA_PFN_waveOutPrepareHeader)(HWAVEOUT hwo, LPWAVEHDR pwh, UINT cbwh); -typedef MMRESULT (WINAPI * MA_PFN_waveOutUnprepareHeader)(HWAVEOUT hwo, LPWAVEHDR pwh, UINT cbwh); -typedef MMRESULT (WINAPI * MA_PFN_waveOutWrite)(HWAVEOUT hwo, LPWAVEHDR pwh, UINT cbwh); -typedef MMRESULT (WINAPI * MA_PFN_waveOutReset)(HWAVEOUT hwo); -typedef UINT (WINAPI * MA_PFN_waveInGetNumDevs)(void); -typedef MMRESULT (WINAPI * MA_PFN_waveInGetDevCapsA)(ma_uintptr uDeviceID, LPWAVEINCAPSA pwic, UINT cbwic); -typedef MMRESULT (WINAPI * MA_PFN_waveInOpen)(LPHWAVEIN phwi, UINT uDeviceID, LPCWAVEFORMATEX pwfx, DWORD_PTR dwCallback, DWORD_PTR dwInstance, DWORD fdwOpen); -typedef MMRESULT (WINAPI * MA_PFN_waveInClose)(HWAVEIN hwi); -typedef MMRESULT (WINAPI * MA_PFN_waveInPrepareHeader)(HWAVEIN hwi, LPWAVEHDR pwh, UINT cbwh); -typedef MMRESULT (WINAPI * MA_PFN_waveInUnprepareHeader)(HWAVEIN hwi, LPWAVEHDR pwh, UINT cbwh); -typedef MMRESULT (WINAPI * MA_PFN_waveInAddBuffer)(HWAVEIN hwi, LPWAVEHDR pwh, UINT cbwh); -typedef MMRESULT (WINAPI * MA_PFN_waveInStart)(HWAVEIN hwi); -typedef MMRESULT (WINAPI * MA_PFN_waveInReset)(HWAVEIN hwi); +typedef UINT (WINAPI * MA_PFN_waveOutGetNumDevs)(void); +typedef MA_MMRESULT (WINAPI * MA_PFN_waveOutGetDevCapsA)(ma_uintptr uDeviceID, MA_WAVEOUTCAPSA* pwoc, UINT cbwoc); +typedef MA_MMRESULT (WINAPI * MA_PFN_waveOutOpen)(MA_HWAVEOUT* phwo, UINT uDeviceID, const MA_WAVEFORMATEX* pwfx, DWORD_PTR dwCallback, DWORD_PTR dwInstance, DWORD fdwOpen); +typedef MA_MMRESULT (WINAPI * MA_PFN_waveOutClose)(MA_HWAVEOUT hwo); +typedef MA_MMRESULT (WINAPI * MA_PFN_waveOutPrepareHeader)(MA_HWAVEOUT hwo, MA_WAVEHDR* pwh, UINT cbwh); +typedef MA_MMRESULT (WINAPI * MA_PFN_waveOutUnprepareHeader)(MA_HWAVEOUT hwo, MA_WAVEHDR* pwh, UINT cbwh); +typedef MA_MMRESULT (WINAPI * MA_PFN_waveOutWrite)(MA_HWAVEOUT hwo, MA_WAVEHDR* pwh, UINT cbwh); +typedef MA_MMRESULT (WINAPI * MA_PFN_waveOutReset)(MA_HWAVEOUT hwo); +typedef UINT (WINAPI * MA_PFN_waveInGetNumDevs)(void); +typedef MA_MMRESULT (WINAPI * MA_PFN_waveInGetDevCapsA)(ma_uintptr uDeviceID, MA_WAVEINCAPSA* pwic, UINT cbwic); +typedef MA_MMRESULT (WINAPI * MA_PFN_waveInOpen)(MA_HWAVEIN* phwi, UINT uDeviceID, const MA_WAVEFORMATEX* pwfx, DWORD_PTR dwCallback, DWORD_PTR dwInstance, DWORD fdwOpen); +typedef MA_MMRESULT (WINAPI * MA_PFN_waveInClose)(MA_HWAVEIN hwi); +typedef MA_MMRESULT (WINAPI * MA_PFN_waveInPrepareHeader)(MA_HWAVEIN hwi, MA_WAVEHDR* pwh, UINT cbwh); +typedef MA_MMRESULT (WINAPI * MA_PFN_waveInUnprepareHeader)(MA_HWAVEIN hwi, MA_WAVEHDR* pwh, UINT cbwh); +typedef MA_MMRESULT (WINAPI * MA_PFN_waveInAddBuffer)(MA_HWAVEIN hwi, MA_WAVEHDR* pwh, UINT cbwh); +typedef MA_MMRESULT (WINAPI * MA_PFN_waveInStart)(MA_HWAVEIN hwi); +typedef MA_MMRESULT (WINAPI * MA_PFN_waveInReset)(MA_HWAVEIN hwi); -static ma_result ma_result_from_MMRESULT(MMRESULT resultMM) +static ma_result ma_result_from_MMRESULT(MA_MMRESULT resultMM) { - switch (resultMM) { - case MMSYSERR_NOERROR: return MA_SUCCESS; - case MMSYSERR_BADDEVICEID: return MA_INVALID_ARGS; - case MMSYSERR_INVALHANDLE: return MA_INVALID_ARGS; - case MMSYSERR_NOMEM: return MA_OUT_OF_MEMORY; - case MMSYSERR_INVALFLAG: return MA_INVALID_ARGS; - case MMSYSERR_INVALPARAM: return MA_INVALID_ARGS; - case MMSYSERR_HANDLEBUSY: return MA_BUSY; - case MMSYSERR_ERROR: return MA_ERROR; - default: return MA_ERROR; + switch (resultMM) + { + case MA_MMSYSERR_NOERROR: return MA_SUCCESS; + case MA_MMSYSERR_BADDEVICEID: return MA_INVALID_ARGS; + case MA_MMSYSERR_INVALHANDLE: return MA_INVALID_ARGS; + case MA_MMSYSERR_NOMEM: return MA_OUT_OF_MEMORY; + case MA_MMSYSERR_INVALFLAG: return MA_INVALID_ARGS; + case MA_MMSYSERR_INVALPARAM: return MA_INVALID_ARGS; + case MA_MMSYSERR_HANDLEBUSY: return MA_BUSY; + case MA_MMSYSERR_ERROR: return MA_ERROR; + default: return MA_ERROR; } } @@ -24122,7 +25527,7 @@ we can do things generically and typesafely. Names are being kept the same for c */ typedef struct { - CHAR szPname[MAXPNAMELEN]; + CHAR szPname[MA_MAXPNAMELEN]; DWORD dwFormats; WORD wChannels; GUID NameGuid; @@ -24208,7 +25613,7 @@ static ma_result ma_get_best_info_from_formats_flags__winmm(DWORD dwFormats, WOR return MA_SUCCESS; } -static ma_result ma_formats_flags_to_WAVEFORMATEX__winmm(DWORD dwFormats, WORD channels, WAVEFORMATEX* pWF) +static ma_result ma_formats_flags_to_WAVEFORMATEX__winmm(DWORD dwFormats, WORD channels, MA_WAVEFORMATEX* pWF) { ma_result result; @@ -24265,7 +25670,7 @@ static ma_result ma_context_get_device_info_from_WAVECAPS(ma_context* pContext, name, and then concatenate the name from the registry. */ if (!ma_is_guid_null(&pCaps->NameGuid)) { - wchar_t guidStrW[256]; + WCHAR guidStrW[256]; if (((MA_PFN_StringFromGUID2)pContext->win32.StringFromGUID2)(&pCaps->NameGuid, guidStrW, ma_countof(guidStrW)) > 0) { char guidStr[256]; char keyStr[1024]; @@ -24279,7 +25684,7 @@ static ma_result ma_context_get_device_info_from_WAVECAPS(ma_context* pContext, if (((MA_PFN_RegOpenKeyExA)pContext->win32.RegOpenKeyExA)(HKEY_LOCAL_MACHINE, keyStr, 0, KEY_READ, &hKey) == ERROR_SUCCESS) { BYTE nameFromReg[512]; DWORD nameFromRegSize = sizeof(nameFromReg); - LONG resultWin32 = ((MA_PFN_RegQueryValueExA)pContext->win32.RegQueryValueExA)(hKey, "Name", 0, NULL, (LPBYTE)nameFromReg, (LPDWORD)&nameFromRegSize); + LONG resultWin32 = ((MA_PFN_RegQueryValueExA)pContext->win32.RegQueryValueExA)(hKey, "Name", 0, NULL, (BYTE*)nameFromReg, (DWORD*)&nameFromRegSize); ((MA_PFN_RegCloseKey)pContext->win32.RegCloseKey)(hKey); if (resultWin32 == ERROR_SUCCESS) { @@ -24373,13 +25778,13 @@ static ma_result ma_context_enumerate_devices__winmm(ma_context* pContext, ma_en /* Playback. */ playbackDeviceCount = ((MA_PFN_waveOutGetNumDevs)pContext->winmm.waveOutGetNumDevs)(); for (iPlaybackDevice = 0; iPlaybackDevice < playbackDeviceCount; ++iPlaybackDevice) { - MMRESULT result; + MA_MMRESULT result; MA_WAVEOUTCAPS2A caps; MA_ZERO_OBJECT(&caps); - result = ((MA_PFN_waveOutGetDevCapsA)pContext->winmm.waveOutGetDevCapsA)(iPlaybackDevice, (WAVEOUTCAPSA*)&caps, sizeof(caps)); - if (result == MMSYSERR_NOERROR) { + result = ((MA_PFN_waveOutGetDevCapsA)pContext->winmm.waveOutGetDevCapsA)(iPlaybackDevice, (MA_WAVEOUTCAPSA*)&caps, sizeof(caps)); + if (result == MA_MMSYSERR_NOERROR) { ma_device_info deviceInfo; MA_ZERO_OBJECT(&deviceInfo); @@ -24402,13 +25807,13 @@ static ma_result ma_context_enumerate_devices__winmm(ma_context* pContext, ma_en /* Capture. */ captureDeviceCount = ((MA_PFN_waveInGetNumDevs)pContext->winmm.waveInGetNumDevs)(); for (iCaptureDevice = 0; iCaptureDevice < captureDeviceCount; ++iCaptureDevice) { - MMRESULT result; + MA_MMRESULT result; MA_WAVEINCAPS2A caps; MA_ZERO_OBJECT(&caps); - result = ((MA_PFN_waveInGetDevCapsA)pContext->winmm.waveInGetDevCapsA)(iCaptureDevice, (WAVEINCAPSA*)&caps, sizeof(caps)); - if (result == MMSYSERR_NOERROR) { + result = ((MA_PFN_waveInGetDevCapsA)pContext->winmm.waveInGetDevCapsA)(iCaptureDevice, (MA_WAVEINCAPSA*)&caps, sizeof(caps)); + if (result == MA_MMSYSERR_NOERROR) { ma_device_info deviceInfo; MA_ZERO_OBJECT(&deviceInfo); @@ -24450,23 +25855,23 @@ static ma_result ma_context_get_device_info__winmm(ma_context* pContext, ma_devi } if (deviceType == ma_device_type_playback) { - MMRESULT result; + MA_MMRESULT result; MA_WAVEOUTCAPS2A caps; MA_ZERO_OBJECT(&caps); - result = ((MA_PFN_waveOutGetDevCapsA)pContext->winmm.waveOutGetDevCapsA)(winMMDeviceID, (WAVEOUTCAPSA*)&caps, sizeof(caps)); - if (result == MMSYSERR_NOERROR) { + result = ((MA_PFN_waveOutGetDevCapsA)pContext->winmm.waveOutGetDevCapsA)(winMMDeviceID, (MA_WAVEOUTCAPSA*)&caps, sizeof(caps)); + if (result == MA_MMSYSERR_NOERROR) { return ma_context_get_device_info_from_WAVEOUTCAPS2(pContext, &caps, pDeviceInfo); } } else { - MMRESULT result; + MA_MMRESULT result; MA_WAVEINCAPS2A caps; MA_ZERO_OBJECT(&caps); - result = ((MA_PFN_waveInGetDevCapsA)pContext->winmm.waveInGetDevCapsA)(winMMDeviceID, (WAVEINCAPSA*)&caps, sizeof(caps)); - if (result == MMSYSERR_NOERROR) { + result = ((MA_PFN_waveInGetDevCapsA)pContext->winmm.waveInGetDevCapsA)(winMMDeviceID, (MA_WAVEINCAPSA*)&caps, sizeof(caps)); + if (result == MA_MMSYSERR_NOERROR) { return ma_context_get_device_info_from_WAVEINCAPS2(pContext, &caps, pDeviceInfo); } } @@ -24480,13 +25885,13 @@ static ma_result ma_device_uninit__winmm(ma_device* pDevice) MA_ASSERT(pDevice != NULL); if (pDevice->type == ma_device_type_capture || pDevice->type == ma_device_type_duplex) { - ((MA_PFN_waveInClose)pDevice->pContext->winmm.waveInClose)((HWAVEIN)pDevice->winmm.hDeviceCapture); + ((MA_PFN_waveInClose)pDevice->pContext->winmm.waveInClose)((MA_HWAVEIN)pDevice->winmm.hDeviceCapture); CloseHandle((HANDLE)pDevice->winmm.hEventCapture); } if (pDevice->type == ma_device_type_playback || pDevice->type == ma_device_type_duplex) { - ((MA_PFN_waveOutReset)pDevice->pContext->winmm.waveOutReset)((HWAVEOUT)pDevice->winmm.hDevicePlayback); - ((MA_PFN_waveOutClose)pDevice->pContext->winmm.waveOutClose)((HWAVEOUT)pDevice->winmm.hDevicePlayback); + ((MA_PFN_waveOutReset)pDevice->pContext->winmm.waveOutReset)((MA_HWAVEOUT)pDevice->winmm.hDevicePlayback); + ((MA_PFN_waveOutClose)pDevice->pContext->winmm.waveOutClose)((MA_HWAVEOUT)pDevice->winmm.hDevicePlayback); CloseHandle((HANDLE)pDevice->winmm.hEventPlayback); } @@ -24543,19 +25948,19 @@ static ma_result ma_device_init__winmm(ma_device* pDevice, const ma_device_confi /* The capture device needs to be initialized first. */ if (pConfig->deviceType == ma_device_type_capture || pConfig->deviceType == ma_device_type_duplex) { - WAVEINCAPSA caps; - WAVEFORMATEX wf; - MMRESULT resultMM; + MA_WAVEINCAPSA caps; + MA_WAVEFORMATEX wf; + MA_MMRESULT resultMM; /* We use an event to know when a new fragment needs to be enqueued. */ - pDevice->winmm.hEventCapture = (ma_handle)CreateEventW(NULL, TRUE, TRUE, NULL); + pDevice->winmm.hEventCapture = (ma_handle)CreateEventA(NULL, TRUE, TRUE, NULL); if (pDevice->winmm.hEventCapture == NULL) { errorMsg = "[WinMM] Failed to create event for fragment enqueing for the capture device.", errorCode = ma_result_from_GetLastError(GetLastError()); goto on_error; } /* The format should be based on the device's actual format. */ - if (((MA_PFN_waveInGetDevCapsA)pDevice->pContext->winmm.waveInGetDevCapsA)(winMMDeviceIDCapture, &caps, sizeof(caps)) != MMSYSERR_NOERROR) { + if (((MA_PFN_waveInGetDevCapsA)pDevice->pContext->winmm.waveInGetDevCapsA)(winMMDeviceIDCapture, &caps, sizeof(caps)) != MA_MMSYSERR_NOERROR) { errorMsg = "[WinMM] Failed to retrieve internal device caps.", errorCode = MA_FORMAT_NOT_SUPPORTED; goto on_error; } @@ -24566,8 +25971,8 @@ static ma_result ma_device_init__winmm(ma_device* pDevice, const ma_device_confi goto on_error; } - resultMM = ((MA_PFN_waveInOpen)pDevice->pContext->winmm.waveInOpen)((LPHWAVEIN)&pDevice->winmm.hDeviceCapture, winMMDeviceIDCapture, &wf, (DWORD_PTR)pDevice->winmm.hEventCapture, (DWORD_PTR)pDevice, CALLBACK_EVENT | WAVE_ALLOWSYNC); - if (resultMM != MMSYSERR_NOERROR) { + resultMM = ((MA_PFN_waveInOpen)pDevice->pContext->winmm.waveInOpen)((MA_HWAVEIN*)&pDevice->winmm.hDeviceCapture, winMMDeviceIDCapture, &wf, (DWORD_PTR)pDevice->winmm.hEventCapture, (DWORD_PTR)pDevice, MA_CALLBACK_EVENT | MA_WAVE_ALLOWSYNC); + if (resultMM != MA_MMSYSERR_NOERROR) { errorMsg = "[WinMM] Failed to open capture device.", errorCode = MA_FAILED_TO_OPEN_BACKEND_DEVICE; goto on_error; } @@ -24581,19 +25986,19 @@ static ma_result ma_device_init__winmm(ma_device* pDevice, const ma_device_confi } if (pConfig->deviceType == ma_device_type_playback || pConfig->deviceType == ma_device_type_duplex) { - WAVEOUTCAPSA caps; - WAVEFORMATEX wf; - MMRESULT resultMM; + MA_WAVEOUTCAPSA caps; + MA_WAVEFORMATEX wf; + MA_MMRESULT resultMM; /* We use an event to know when a new fragment needs to be enqueued. */ - pDevice->winmm.hEventPlayback = (ma_handle)CreateEventW(NULL, TRUE, TRUE, NULL); + pDevice->winmm.hEventPlayback = (ma_handle)CreateEventA(NULL, TRUE, TRUE, NULL); if (pDevice->winmm.hEventPlayback == NULL) { errorMsg = "[WinMM] Failed to create event for fragment enqueing for the playback device.", errorCode = ma_result_from_GetLastError(GetLastError()); goto on_error; } /* The format should be based on the device's actual format. */ - if (((MA_PFN_waveOutGetDevCapsA)pDevice->pContext->winmm.waveOutGetDevCapsA)(winMMDeviceIDPlayback, &caps, sizeof(caps)) != MMSYSERR_NOERROR) { + if (((MA_PFN_waveOutGetDevCapsA)pDevice->pContext->winmm.waveOutGetDevCapsA)(winMMDeviceIDPlayback, &caps, sizeof(caps)) != MA_MMSYSERR_NOERROR) { errorMsg = "[WinMM] Failed to retrieve internal device caps.", errorCode = MA_FORMAT_NOT_SUPPORTED; goto on_error; } @@ -24604,8 +26009,8 @@ static ma_result ma_device_init__winmm(ma_device* pDevice, const ma_device_confi goto on_error; } - resultMM = ((MA_PFN_waveOutOpen)pDevice->pContext->winmm.waveOutOpen)((LPHWAVEOUT)&pDevice->winmm.hDevicePlayback, winMMDeviceIDPlayback, &wf, (DWORD_PTR)pDevice->winmm.hEventPlayback, (DWORD_PTR)pDevice, CALLBACK_EVENT | WAVE_ALLOWSYNC); - if (resultMM != MMSYSERR_NOERROR) { + resultMM = ((MA_PFN_waveOutOpen)pDevice->pContext->winmm.waveOutOpen)((MA_HWAVEOUT*)&pDevice->winmm.hDevicePlayback, winMMDeviceIDPlayback, &wf, (DWORD_PTR)pDevice->winmm.hEventPlayback, (DWORD_PTR)pDevice, MA_CALLBACK_EVENT | MA_WAVE_ALLOWSYNC); + if (resultMM != MA_MMSYSERR_NOERROR) { errorMsg = "[WinMM] Failed to open playback device.", errorCode = MA_FAILED_TO_OPEN_BACKEND_DEVICE; goto on_error; } @@ -24625,10 +26030,10 @@ static ma_result ma_device_init__winmm(ma_device* pDevice, const ma_device_confi */ heapSize = 0; if (pConfig->deviceType == ma_device_type_capture || pConfig->deviceType == ma_device_type_duplex) { - heapSize += sizeof(WAVEHDR)*pDescriptorCapture->periodCount + (pDescriptorCapture->periodSizeInFrames * pDescriptorCapture->periodCount * ma_get_bytes_per_frame(pDescriptorCapture->format, pDescriptorCapture->channels)); + heapSize += sizeof(MA_WAVEHDR)*pDescriptorCapture->periodCount + (pDescriptorCapture->periodSizeInFrames * pDescriptorCapture->periodCount * ma_get_bytes_per_frame(pDescriptorCapture->format, pDescriptorCapture->channels)); } if (pConfig->deviceType == ma_device_type_playback || pConfig->deviceType == ma_device_type_duplex) { - heapSize += sizeof(WAVEHDR)*pDescriptorPlayback->periodCount + (pDescriptorPlayback->periodSizeInFrames * pDescriptorPlayback->periodCount * ma_get_bytes_per_frame(pDescriptorPlayback->format, pDescriptorPlayback->channels)); + heapSize += sizeof(MA_WAVEHDR)*pDescriptorPlayback->periodCount + (pDescriptorPlayback->periodSizeInFrames * pDescriptorPlayback->periodCount * ma_get_bytes_per_frame(pDescriptorPlayback->format, pDescriptorPlayback->channels)); } pDevice->winmm._pHeapData = (ma_uint8*)ma_calloc(heapSize, &pDevice->pContext->allocationCallbacks); @@ -24644,27 +26049,27 @@ static ma_result ma_device_init__winmm(ma_device* pDevice, const ma_device_confi if (pConfig->deviceType == ma_device_type_capture) { pDevice->winmm.pWAVEHDRCapture = pDevice->winmm._pHeapData; - pDevice->winmm.pIntermediaryBufferCapture = pDevice->winmm._pHeapData + (sizeof(WAVEHDR)*(pDescriptorCapture->periodCount)); + pDevice->winmm.pIntermediaryBufferCapture = pDevice->winmm._pHeapData + (sizeof(MA_WAVEHDR)*(pDescriptorCapture->periodCount)); } else { pDevice->winmm.pWAVEHDRCapture = pDevice->winmm._pHeapData; - pDevice->winmm.pIntermediaryBufferCapture = pDevice->winmm._pHeapData + (sizeof(WAVEHDR)*(pDescriptorCapture->periodCount + pDescriptorPlayback->periodCount)); + pDevice->winmm.pIntermediaryBufferCapture = pDevice->winmm._pHeapData + (sizeof(MA_WAVEHDR)*(pDescriptorCapture->periodCount + pDescriptorPlayback->periodCount)); } /* Prepare headers. */ for (iPeriod = 0; iPeriod < pDescriptorCapture->periodCount; ++iPeriod) { ma_uint32 periodSizeInBytes = ma_get_period_size_in_bytes(pDescriptorCapture->periodSizeInFrames, pDescriptorCapture->format, pDescriptorCapture->channels); - ((WAVEHDR*)pDevice->winmm.pWAVEHDRCapture)[iPeriod].lpData = (LPSTR)(pDevice->winmm.pIntermediaryBufferCapture + (periodSizeInBytes*iPeriod)); - ((WAVEHDR*)pDevice->winmm.pWAVEHDRCapture)[iPeriod].dwBufferLength = periodSizeInBytes; - ((WAVEHDR*)pDevice->winmm.pWAVEHDRCapture)[iPeriod].dwFlags = 0L; - ((WAVEHDR*)pDevice->winmm.pWAVEHDRCapture)[iPeriod].dwLoops = 0L; - ((MA_PFN_waveInPrepareHeader)pDevice->pContext->winmm.waveInPrepareHeader)((HWAVEIN)pDevice->winmm.hDeviceCapture, &((WAVEHDR*)pDevice->winmm.pWAVEHDRCapture)[iPeriod], sizeof(WAVEHDR)); + ((MA_WAVEHDR*)pDevice->winmm.pWAVEHDRCapture)[iPeriod].lpData = (char*)(pDevice->winmm.pIntermediaryBufferCapture + (periodSizeInBytes*iPeriod)); + ((MA_WAVEHDR*)pDevice->winmm.pWAVEHDRCapture)[iPeriod].dwBufferLength = periodSizeInBytes; + ((MA_WAVEHDR*)pDevice->winmm.pWAVEHDRCapture)[iPeriod].dwFlags = 0L; + ((MA_WAVEHDR*)pDevice->winmm.pWAVEHDRCapture)[iPeriod].dwLoops = 0L; + ((MA_PFN_waveInPrepareHeader)pDevice->pContext->winmm.waveInPrepareHeader)((MA_HWAVEIN)pDevice->winmm.hDeviceCapture, &((MA_WAVEHDR*)pDevice->winmm.pWAVEHDRCapture)[iPeriod], sizeof(MA_WAVEHDR)); /* - The user data of the WAVEHDR structure is a single flag the controls whether or not it is ready for writing. Consider it to be named "isLocked". A value of 0 means + The user data of the MA_WAVEHDR structure is a single flag the controls whether or not it is ready for writing. Consider it to be named "isLocked". A value of 0 means it's unlocked and available for writing. A value of 1 means it's locked. */ - ((WAVEHDR*)pDevice->winmm.pWAVEHDRCapture)[iPeriod].dwUser = 0; + ((MA_WAVEHDR*)pDevice->winmm.pWAVEHDRCapture)[iPeriod].dwUser = 0; } } @@ -24673,27 +26078,27 @@ static ma_result ma_device_init__winmm(ma_device* pDevice, const ma_device_confi if (pConfig->deviceType == ma_device_type_playback) { pDevice->winmm.pWAVEHDRPlayback = pDevice->winmm._pHeapData; - pDevice->winmm.pIntermediaryBufferPlayback = pDevice->winmm._pHeapData + (sizeof(WAVEHDR)*pDescriptorPlayback->periodCount); + pDevice->winmm.pIntermediaryBufferPlayback = pDevice->winmm._pHeapData + (sizeof(MA_WAVEHDR)*pDescriptorPlayback->periodCount); } else { - pDevice->winmm.pWAVEHDRPlayback = pDevice->winmm._pHeapData + (sizeof(WAVEHDR)*(pDescriptorCapture->periodCount)); - pDevice->winmm.pIntermediaryBufferPlayback = pDevice->winmm._pHeapData + (sizeof(WAVEHDR)*(pDescriptorCapture->periodCount + pDescriptorPlayback->periodCount)) + (pDescriptorCapture->periodSizeInFrames*pDescriptorCapture->periodCount*ma_get_bytes_per_frame(pDescriptorCapture->format, pDescriptorCapture->channels)); + pDevice->winmm.pWAVEHDRPlayback = pDevice->winmm._pHeapData + (sizeof(MA_WAVEHDR)*(pDescriptorCapture->periodCount)); + pDevice->winmm.pIntermediaryBufferPlayback = pDevice->winmm._pHeapData + (sizeof(MA_WAVEHDR)*(pDescriptorCapture->periodCount + pDescriptorPlayback->periodCount)) + (pDescriptorCapture->periodSizeInFrames*pDescriptorCapture->periodCount*ma_get_bytes_per_frame(pDescriptorCapture->format, pDescriptorCapture->channels)); } /* Prepare headers. */ for (iPeriod = 0; iPeriod < pDescriptorPlayback->periodCount; ++iPeriod) { ma_uint32 periodSizeInBytes = ma_get_period_size_in_bytes(pDescriptorPlayback->periodSizeInFrames, pDescriptorPlayback->format, pDescriptorPlayback->channels); - ((WAVEHDR*)pDevice->winmm.pWAVEHDRPlayback)[iPeriod].lpData = (LPSTR)(pDevice->winmm.pIntermediaryBufferPlayback + (periodSizeInBytes*iPeriod)); - ((WAVEHDR*)pDevice->winmm.pWAVEHDRPlayback)[iPeriod].dwBufferLength = periodSizeInBytes; - ((WAVEHDR*)pDevice->winmm.pWAVEHDRPlayback)[iPeriod].dwFlags = 0L; - ((WAVEHDR*)pDevice->winmm.pWAVEHDRPlayback)[iPeriod].dwLoops = 0L; - ((MA_PFN_waveOutPrepareHeader)pDevice->pContext->winmm.waveOutPrepareHeader)((HWAVEOUT)pDevice->winmm.hDevicePlayback, &((WAVEHDR*)pDevice->winmm.pWAVEHDRPlayback)[iPeriod], sizeof(WAVEHDR)); + ((MA_WAVEHDR*)pDevice->winmm.pWAVEHDRPlayback)[iPeriod].lpData = (char*)(pDevice->winmm.pIntermediaryBufferPlayback + (periodSizeInBytes*iPeriod)); + ((MA_WAVEHDR*)pDevice->winmm.pWAVEHDRPlayback)[iPeriod].dwBufferLength = periodSizeInBytes; + ((MA_WAVEHDR*)pDevice->winmm.pWAVEHDRPlayback)[iPeriod].dwFlags = 0L; + ((MA_WAVEHDR*)pDevice->winmm.pWAVEHDRPlayback)[iPeriod].dwLoops = 0L; + ((MA_PFN_waveOutPrepareHeader)pDevice->pContext->winmm.waveOutPrepareHeader)((MA_HWAVEOUT)pDevice->winmm.hDevicePlayback, &((MA_WAVEHDR*)pDevice->winmm.pWAVEHDRPlayback)[iPeriod], sizeof(MA_WAVEHDR)); /* - The user data of the WAVEHDR structure is a single flag the controls whether or not it is ready for writing. Consider it to be named "isLocked". A value of 0 means + The user data of the MA_WAVEHDR structure is a single flag the controls whether or not it is ready for writing. Consider it to be named "isLocked". A value of 0 means it's unlocked and available for writing. A value of 1 means it's locked. */ - ((WAVEHDR*)pDevice->winmm.pWAVEHDRPlayback)[iPeriod].dwUser = 0; + ((MA_WAVEHDR*)pDevice->winmm.pWAVEHDRPlayback)[iPeriod].dwUser = 0; } } @@ -24704,22 +26109,22 @@ on_error: if (pDevice->winmm.pWAVEHDRCapture != NULL) { ma_uint32 iPeriod; for (iPeriod = 0; iPeriod < pDescriptorCapture->periodCount; ++iPeriod) { - ((MA_PFN_waveInUnprepareHeader)pDevice->pContext->winmm.waveInUnprepareHeader)((HWAVEIN)pDevice->winmm.hDeviceCapture, &((WAVEHDR*)pDevice->winmm.pWAVEHDRCapture)[iPeriod], sizeof(WAVEHDR)); + ((MA_PFN_waveInUnprepareHeader)pDevice->pContext->winmm.waveInUnprepareHeader)((MA_HWAVEIN)pDevice->winmm.hDeviceCapture, &((MA_WAVEHDR*)pDevice->winmm.pWAVEHDRCapture)[iPeriod], sizeof(MA_WAVEHDR)); } } - ((MA_PFN_waveInClose)pDevice->pContext->winmm.waveInClose)((HWAVEIN)pDevice->winmm.hDeviceCapture); + ((MA_PFN_waveInClose)pDevice->pContext->winmm.waveInClose)((MA_HWAVEIN)pDevice->winmm.hDeviceCapture); } if (pDevice->type == ma_device_type_playback || pDevice->type == ma_device_type_duplex) { if (pDevice->winmm.pWAVEHDRCapture != NULL) { ma_uint32 iPeriod; for (iPeriod = 0; iPeriod < pDescriptorPlayback->periodCount; ++iPeriod) { - ((MA_PFN_waveOutUnprepareHeader)pDevice->pContext->winmm.waveOutUnprepareHeader)((HWAVEOUT)pDevice->winmm.hDevicePlayback, &((WAVEHDR*)pDevice->winmm.pWAVEHDRPlayback)[iPeriod], sizeof(WAVEHDR)); + ((MA_PFN_waveOutUnprepareHeader)pDevice->pContext->winmm.waveOutUnprepareHeader)((MA_HWAVEOUT)pDevice->winmm.hDevicePlayback, &((MA_WAVEHDR*)pDevice->winmm.pWAVEHDRPlayback)[iPeriod], sizeof(MA_WAVEHDR)); } } - ((MA_PFN_waveOutClose)pDevice->pContext->winmm.waveOutClose)((HWAVEOUT)pDevice->winmm.hDevicePlayback); + ((MA_PFN_waveOutClose)pDevice->pContext->winmm.waveOutClose)((MA_HWAVEOUT)pDevice->winmm.hDevicePlayback); } ma_free(pDevice->winmm._pHeapData, &pDevice->pContext->allocationCallbacks); @@ -24736,19 +26141,19 @@ static ma_result ma_device_start__winmm(ma_device* pDevice) MA_ASSERT(pDevice != NULL); if (pDevice->type == ma_device_type_capture || pDevice->type == ma_device_type_duplex) { - MMRESULT resultMM; - WAVEHDR* pWAVEHDR; + MA_MMRESULT resultMM; + MA_WAVEHDR* pWAVEHDR; ma_uint32 iPeriod; - pWAVEHDR = (WAVEHDR*)pDevice->winmm.pWAVEHDRCapture; + pWAVEHDR = (MA_WAVEHDR*)pDevice->winmm.pWAVEHDRCapture; /* Make sure the event is reset to a non-signaled state to ensure we don't prematurely return from WaitForSingleObject(). */ ResetEvent((HANDLE)pDevice->winmm.hEventCapture); /* To start the device we attach all of the buffers and then start it. As the buffers are filled with data we will get notifications. */ for (iPeriod = 0; iPeriod < pDevice->capture.internalPeriods; ++iPeriod) { - resultMM = ((MA_PFN_waveInAddBuffer)pDevice->pContext->winmm.waveInAddBuffer)((HWAVEIN)pDevice->winmm.hDeviceCapture, &((LPWAVEHDR)pDevice->winmm.pWAVEHDRCapture)[iPeriod], sizeof(WAVEHDR)); - if (resultMM != MMSYSERR_NOERROR) { + resultMM = ((MA_PFN_waveInAddBuffer)pDevice->pContext->winmm.waveInAddBuffer)((MA_HWAVEIN)pDevice->winmm.hDeviceCapture, &((MA_WAVEHDR*)pDevice->winmm.pWAVEHDRCapture)[iPeriod], sizeof(MA_WAVEHDR)); + if (resultMM != MA_MMSYSERR_NOERROR) { ma_log_post(ma_device_get_log(pDevice), MA_LOG_LEVEL_ERROR, "[WinMM] Failed to attach input buffers to capture device in preparation for capture."); return ma_result_from_MMRESULT(resultMM); } @@ -24758,8 +26163,8 @@ static ma_result ma_device_start__winmm(ma_device* pDevice) } /* Capture devices need to be explicitly started, unlike playback devices. */ - resultMM = ((MA_PFN_waveInStart)pDevice->pContext->winmm.waveInStart)((HWAVEIN)pDevice->winmm.hDeviceCapture); - if (resultMM != MMSYSERR_NOERROR) { + resultMM = ((MA_PFN_waveInStart)pDevice->pContext->winmm.waveInStart)((MA_HWAVEIN)pDevice->winmm.hDeviceCapture); + if (resultMM != MA_MMSYSERR_NOERROR) { ma_log_post(ma_device_get_log(pDevice), MA_LOG_LEVEL_ERROR, "[WinMM] Failed to start backend device."); return ma_result_from_MMRESULT(resultMM); } @@ -24774,7 +26179,7 @@ static ma_result ma_device_start__winmm(ma_device* pDevice) static ma_result ma_device_stop__winmm(ma_device* pDevice) { - MMRESULT resultMM; + MA_MMRESULT resultMM; MA_ASSERT(pDevice != NULL); @@ -24783,22 +26188,22 @@ static ma_result ma_device_stop__winmm(ma_device* pDevice) return MA_INVALID_ARGS; } - resultMM = ((MA_PFN_waveInReset)pDevice->pContext->winmm.waveInReset)((HWAVEIN)pDevice->winmm.hDeviceCapture); - if (resultMM != MMSYSERR_NOERROR) { + resultMM = ((MA_PFN_waveInReset)pDevice->pContext->winmm.waveInReset)((MA_HWAVEIN)pDevice->winmm.hDeviceCapture); + if (resultMM != MA_MMSYSERR_NOERROR) { ma_log_post(ma_device_get_log(pDevice), MA_LOG_LEVEL_WARNING, "[WinMM] WARNING: Failed to reset capture device."); } } if (pDevice->type == ma_device_type_playback || pDevice->type == ma_device_type_duplex) { ma_uint32 iPeriod; - WAVEHDR* pWAVEHDR; + MA_WAVEHDR* pWAVEHDR; if (pDevice->winmm.hDevicePlayback == NULL) { return MA_INVALID_ARGS; } /* We need to drain the device. To do this we just loop over each header and if it's locked just wait for the event. */ - pWAVEHDR = (WAVEHDR*)pDevice->winmm.pWAVEHDRPlayback; + pWAVEHDR = (MA_WAVEHDR*)pDevice->winmm.pWAVEHDRPlayback; for (iPeriod = 0; iPeriod < pDevice->playback.internalPeriods; iPeriod += 1) { if (pWAVEHDR[iPeriod].dwUser == 1) { /* 1 = locked. */ if (WaitForSingleObject((HANDLE)pDevice->winmm.hEventPlayback, INFINITE) != WAIT_OBJECT_0) { @@ -24809,8 +26214,8 @@ static ma_result ma_device_stop__winmm(ma_device* pDevice) } } - resultMM = ((MA_PFN_waveOutReset)pDevice->pContext->winmm.waveOutReset)((HWAVEOUT)pDevice->winmm.hDevicePlayback); - if (resultMM != MMSYSERR_NOERROR) { + resultMM = ((MA_PFN_waveOutReset)pDevice->pContext->winmm.waveOutReset)((MA_HWAVEOUT)pDevice->winmm.hDevicePlayback); + if (resultMM != MA_MMSYSERR_NOERROR) { ma_log_post(ma_device_get_log(pDevice), MA_LOG_LEVEL_WARNING, "[WinMM] WARNING: Failed to reset playback device."); } } @@ -24821,9 +26226,9 @@ static ma_result ma_device_stop__winmm(ma_device* pDevice) static ma_result ma_device_write__winmm(ma_device* pDevice, const void* pPCMFrames, ma_uint32 frameCount, ma_uint32* pFramesWritten) { ma_result result = MA_SUCCESS; - MMRESULT resultMM; + MA_MMRESULT resultMM; ma_uint32 totalFramesWritten; - WAVEHDR* pWAVEHDR; + MA_WAVEHDR* pWAVEHDR; MA_ASSERT(pDevice != NULL); MA_ASSERT(pPCMFrames != NULL); @@ -24832,7 +26237,7 @@ static ma_result ma_device_write__winmm(ma_device* pDevice, const void* pPCMFram *pFramesWritten = 0; } - pWAVEHDR = (WAVEHDR*)pDevice->winmm.pWAVEHDRPlayback; + pWAVEHDR = (MA_WAVEHDR*)pDevice->winmm.pWAVEHDRPlayback; /* Keep processing as much data as possible. */ totalFramesWritten = 0; @@ -24857,14 +26262,14 @@ static ma_result ma_device_write__winmm(ma_device* pDevice, const void* pPCMFram /* If we've consumed the buffer entirely we need to write it out to the device. */ if (pDevice->winmm.headerFramesConsumedPlayback == (pWAVEHDR[pDevice->winmm.iNextHeaderPlayback].dwBufferLength/bpf)) { pWAVEHDR[pDevice->winmm.iNextHeaderPlayback].dwUser = 1; /* 1 = locked. */ - pWAVEHDR[pDevice->winmm.iNextHeaderPlayback].dwFlags &= ~WHDR_DONE; /* <-- Need to make sure the WHDR_DONE flag is unset. */ + pWAVEHDR[pDevice->winmm.iNextHeaderPlayback].dwFlags &= ~MA_WHDR_DONE; /* <-- Need to make sure the WHDR_DONE flag is unset. */ /* Make sure the event is reset to a non-signaled state to ensure we don't prematurely return from WaitForSingleObject(). */ ResetEvent((HANDLE)pDevice->winmm.hEventPlayback); /* The device will be started here. */ - resultMM = ((MA_PFN_waveOutWrite)pDevice->pContext->winmm.waveOutWrite)((HWAVEOUT)pDevice->winmm.hDevicePlayback, &pWAVEHDR[pDevice->winmm.iNextHeaderPlayback], sizeof(WAVEHDR)); - if (resultMM != MMSYSERR_NOERROR) { + resultMM = ((MA_PFN_waveOutWrite)pDevice->pContext->winmm.waveOutWrite)((MA_HWAVEOUT)pDevice->winmm.hDevicePlayback, &pWAVEHDR[pDevice->winmm.iNextHeaderPlayback], sizeof(MA_WAVEHDR)); + if (resultMM != MA_MMSYSERR_NOERROR) { result = ma_result_from_MMRESULT(resultMM); ma_log_post(ma_device_get_log(pDevice), MA_LOG_LEVEL_ERROR, "[WinMM] waveOutWrite() failed."); break; @@ -24892,7 +26297,7 @@ static ma_result ma_device_write__winmm(ma_device* pDevice, const void* pPCMFram } /* Something happened. If the next buffer has been marked as done we need to reset a bit of state. */ - if ((pWAVEHDR[pDevice->winmm.iNextHeaderPlayback].dwFlags & WHDR_DONE) != 0) { + if ((pWAVEHDR[pDevice->winmm.iNextHeaderPlayback].dwFlags & MA_WHDR_DONE) != 0) { pWAVEHDR[pDevice->winmm.iNextHeaderPlayback].dwUser = 0; /* 0 = unlocked (make it available for writing). */ pDevice->winmm.headerFramesConsumedPlayback = 0; } @@ -24913,9 +26318,9 @@ static ma_result ma_device_write__winmm(ma_device* pDevice, const void* pPCMFram static ma_result ma_device_read__winmm(ma_device* pDevice, void* pPCMFrames, ma_uint32 frameCount, ma_uint32* pFramesRead) { ma_result result = MA_SUCCESS; - MMRESULT resultMM; + MA_MMRESULT resultMM; ma_uint32 totalFramesRead; - WAVEHDR* pWAVEHDR; + MA_WAVEHDR* pWAVEHDR; MA_ASSERT(pDevice != NULL); MA_ASSERT(pPCMFrames != NULL); @@ -24924,7 +26329,7 @@ static ma_result ma_device_read__winmm(ma_device* pDevice, void* pPCMFrames, ma_ *pFramesRead = 0; } - pWAVEHDR = (WAVEHDR*)pDevice->winmm.pWAVEHDRCapture; + pWAVEHDR = (MA_WAVEHDR*)pDevice->winmm.pWAVEHDRCapture; /* Keep processing as much data as possible. */ totalFramesRead = 0; @@ -24946,14 +26351,14 @@ static ma_result ma_device_read__winmm(ma_device* pDevice, void* pPCMFrames, ma_ /* If we've consumed the buffer entirely we need to add it back to the device. */ if (pDevice->winmm.headerFramesConsumedCapture == (pWAVEHDR[pDevice->winmm.iNextHeaderCapture].dwBufferLength/bpf)) { pWAVEHDR[pDevice->winmm.iNextHeaderCapture].dwUser = 1; /* 1 = locked. */ - pWAVEHDR[pDevice->winmm.iNextHeaderCapture].dwFlags &= ~WHDR_DONE; /* <-- Need to make sure the WHDR_DONE flag is unset. */ + pWAVEHDR[pDevice->winmm.iNextHeaderCapture].dwFlags &= ~MA_WHDR_DONE; /* <-- Need to make sure the WHDR_DONE flag is unset. */ /* Make sure the event is reset to a non-signaled state to ensure we don't prematurely return from WaitForSingleObject(). */ ResetEvent((HANDLE)pDevice->winmm.hEventCapture); /* The device will be started here. */ - resultMM = ((MA_PFN_waveInAddBuffer)pDevice->pContext->winmm.waveInAddBuffer)((HWAVEIN)pDevice->winmm.hDeviceCapture, &((LPWAVEHDR)pDevice->winmm.pWAVEHDRCapture)[pDevice->winmm.iNextHeaderCapture], sizeof(WAVEHDR)); - if (resultMM != MMSYSERR_NOERROR) { + resultMM = ((MA_PFN_waveInAddBuffer)pDevice->pContext->winmm.waveInAddBuffer)((MA_HWAVEIN)pDevice->winmm.hDeviceCapture, &((MA_WAVEHDR*)pDevice->winmm.pWAVEHDRCapture)[pDevice->winmm.iNextHeaderCapture], sizeof(MA_WAVEHDR)); + if (resultMM != MA_MMSYSERR_NOERROR) { result = ma_result_from_MMRESULT(resultMM); ma_log_post(ma_device_get_log(pDevice), MA_LOG_LEVEL_ERROR, "[WinMM] waveInAddBuffer() failed."); break; @@ -24981,7 +26386,7 @@ static ma_result ma_device_read__winmm(ma_device* pDevice, void* pPCMFrames, ma_ } /* Something happened. If the next buffer has been marked as done we need to reset a bit of state. */ - if ((pWAVEHDR[pDevice->winmm.iNextHeaderCapture].dwFlags & WHDR_DONE) != 0) { + if ((pWAVEHDR[pDevice->winmm.iNextHeaderCapture].dwFlags & MA_WHDR_DONE) != 0) { pWAVEHDR[pDevice->winmm.iNextHeaderCapture].dwUser = 0; /* 0 = unlocked (make it available for reading). */ pDevice->winmm.headerFramesConsumedCapture = 0; } @@ -25004,7 +26409,7 @@ static ma_result ma_context_uninit__winmm(ma_context* pContext) MA_ASSERT(pContext != NULL); MA_ASSERT(pContext->backend == ma_backend_winmm); - ma_dlclose(pContext, pContext->winmm.hWinMM); + ma_dlclose(ma_context_get_log(pContext), pContext->winmm.hWinMM); return MA_SUCCESS; } @@ -25014,28 +26419,28 @@ static ma_result ma_context_init__winmm(ma_context* pContext, const ma_context_c (void)pConfig; - pContext->winmm.hWinMM = ma_dlopen(pContext, "winmm.dll"); + pContext->winmm.hWinMM = ma_dlopen(ma_context_get_log(pContext), "winmm.dll"); if (pContext->winmm.hWinMM == NULL) { return MA_NO_BACKEND; } - pContext->winmm.waveOutGetNumDevs = ma_dlsym(pContext, pContext->winmm.hWinMM, "waveOutGetNumDevs"); - pContext->winmm.waveOutGetDevCapsA = ma_dlsym(pContext, pContext->winmm.hWinMM, "waveOutGetDevCapsA"); - pContext->winmm.waveOutOpen = ma_dlsym(pContext, pContext->winmm.hWinMM, "waveOutOpen"); - pContext->winmm.waveOutClose = ma_dlsym(pContext, pContext->winmm.hWinMM, "waveOutClose"); - pContext->winmm.waveOutPrepareHeader = ma_dlsym(pContext, pContext->winmm.hWinMM, "waveOutPrepareHeader"); - pContext->winmm.waveOutUnprepareHeader = ma_dlsym(pContext, pContext->winmm.hWinMM, "waveOutUnprepareHeader"); - pContext->winmm.waveOutWrite = ma_dlsym(pContext, pContext->winmm.hWinMM, "waveOutWrite"); - pContext->winmm.waveOutReset = ma_dlsym(pContext, pContext->winmm.hWinMM, "waveOutReset"); - pContext->winmm.waveInGetNumDevs = ma_dlsym(pContext, pContext->winmm.hWinMM, "waveInGetNumDevs"); - pContext->winmm.waveInGetDevCapsA = ma_dlsym(pContext, pContext->winmm.hWinMM, "waveInGetDevCapsA"); - pContext->winmm.waveInOpen = ma_dlsym(pContext, pContext->winmm.hWinMM, "waveInOpen"); - pContext->winmm.waveInClose = ma_dlsym(pContext, pContext->winmm.hWinMM, "waveInClose"); - pContext->winmm.waveInPrepareHeader = ma_dlsym(pContext, pContext->winmm.hWinMM, "waveInPrepareHeader"); - pContext->winmm.waveInUnprepareHeader = ma_dlsym(pContext, pContext->winmm.hWinMM, "waveInUnprepareHeader"); - pContext->winmm.waveInAddBuffer = ma_dlsym(pContext, pContext->winmm.hWinMM, "waveInAddBuffer"); - pContext->winmm.waveInStart = ma_dlsym(pContext, pContext->winmm.hWinMM, "waveInStart"); - pContext->winmm.waveInReset = ma_dlsym(pContext, pContext->winmm.hWinMM, "waveInReset"); + pContext->winmm.waveOutGetNumDevs = ma_dlsym(ma_context_get_log(pContext), pContext->winmm.hWinMM, "waveOutGetNumDevs"); + pContext->winmm.waveOutGetDevCapsA = ma_dlsym(ma_context_get_log(pContext), pContext->winmm.hWinMM, "waveOutGetDevCapsA"); + pContext->winmm.waveOutOpen = ma_dlsym(ma_context_get_log(pContext), pContext->winmm.hWinMM, "waveOutOpen"); + pContext->winmm.waveOutClose = ma_dlsym(ma_context_get_log(pContext), pContext->winmm.hWinMM, "waveOutClose"); + pContext->winmm.waveOutPrepareHeader = ma_dlsym(ma_context_get_log(pContext), pContext->winmm.hWinMM, "waveOutPrepareHeader"); + pContext->winmm.waveOutUnprepareHeader = ma_dlsym(ma_context_get_log(pContext), pContext->winmm.hWinMM, "waveOutUnprepareHeader"); + pContext->winmm.waveOutWrite = ma_dlsym(ma_context_get_log(pContext), pContext->winmm.hWinMM, "waveOutWrite"); + pContext->winmm.waveOutReset = ma_dlsym(ma_context_get_log(pContext), pContext->winmm.hWinMM, "waveOutReset"); + pContext->winmm.waveInGetNumDevs = ma_dlsym(ma_context_get_log(pContext), pContext->winmm.hWinMM, "waveInGetNumDevs"); + pContext->winmm.waveInGetDevCapsA = ma_dlsym(ma_context_get_log(pContext), pContext->winmm.hWinMM, "waveInGetDevCapsA"); + pContext->winmm.waveInOpen = ma_dlsym(ma_context_get_log(pContext), pContext->winmm.hWinMM, "waveInOpen"); + pContext->winmm.waveInClose = ma_dlsym(ma_context_get_log(pContext), pContext->winmm.hWinMM, "waveInClose"); + pContext->winmm.waveInPrepareHeader = ma_dlsym(ma_context_get_log(pContext), pContext->winmm.hWinMM, "waveInPrepareHeader"); + pContext->winmm.waveInUnprepareHeader = ma_dlsym(ma_context_get_log(pContext), pContext->winmm.hWinMM, "waveInUnprepareHeader"); + pContext->winmm.waveInAddBuffer = ma_dlsym(ma_context_get_log(pContext), pContext->winmm.hWinMM, "waveInAddBuffer"); + pContext->winmm.waveInStart = ma_dlsym(ma_context_get_log(pContext), pContext->winmm.hWinMM, "waveInStart"); + pContext->winmm.waveInReset = ma_dlsym(ma_context_get_log(pContext), pContext->winmm.hWinMM, "waveInReset"); pCallbacks->onContextInit = ma_context_init__winmm; pCallbacks->onContextUninit = ma_context_uninit__winmm; @@ -26231,7 +27636,7 @@ static ma_result ma_device_init_by_type__alsa(ma_device* pDevice, const ma_devic isUsingMMap = MA_FALSE; #if 0 /* NOTE: MMAP mode temporarily disabled. */ if (deviceType != ma_device_type_capture) { /* <-- Disabling MMAP mode for capture devices because I apparently do not have a device that supports it which means I can't test it... Contributions welcome. */ - if (!pConfig->alsa.noMMap && ma_device__is_async(pDevice)) { + if (!pConfig->alsa.noMMap) { if (((ma_snd_pcm_hw_params_set_access_proc)pDevice->pContext->alsa.snd_pcm_hw_params_set_access)(pPCM, pHWParams, MA_SND_PCM_ACCESS_MMAP_INTERLEAVED) == 0) { pDevice->alsa.isUsingMMap = MA_TRUE; } @@ -26462,7 +27867,11 @@ static ma_result ma_device_init_by_type__alsa(ma_device* pDevice, const ma_devic /* Grab the internal channel map. For now we're not going to bother trying to change the channel map and instead just do it ourselves. */ { - ma_snd_pcm_chmap_t* pChmap = ((ma_snd_pcm_get_chmap_proc)pDevice->pContext->alsa.snd_pcm_get_chmap)(pPCM); + ma_snd_pcm_chmap_t* pChmap = NULL; + if (pDevice->pContext->alsa.snd_pcm_get_chmap != NULL) { + pChmap = ((ma_snd_pcm_get_chmap_proc)pDevice->pContext->alsa.snd_pcm_get_chmap)(pPCM); + } + if (pChmap != NULL) { ma_uint32 iChannel; @@ -26649,6 +28058,12 @@ static ma_result ma_device_start__alsa(ma_device* pDevice) static ma_result ma_device_stop__alsa(ma_device* pDevice) { + /* + The stop callback will get called on the worker thread after read/write__alsa() has returned. At this point there is + a small chance that our wakeupfd has not been cleared. We'll clear that out now if applicable. + */ + int resultPoll; + if (pDevice->type == ma_device_type_capture || pDevice->type == ma_device_type_duplex) { ma_log_postf(ma_device_get_log(pDevice), MA_LOG_LEVEL_DEBUG, "[ALSA] Dropping capture device...\n"); ((ma_snd_pcm_drop_proc)pDevice->pContext->alsa.snd_pcm_drop)((ma_snd_pcm_t*)pDevice->alsa.pPCMCapture); @@ -26661,6 +28076,13 @@ static ma_result ma_device_stop__alsa(ma_device* pDevice) } else { ma_log_postf(ma_device_get_log(pDevice), MA_LOG_LEVEL_DEBUG, "[ALSA] Preparing capture device successful.\n"); } + + /* Clear the wakeupfd. */ + resultPoll = poll((struct pollfd*)pDevice->alsa.pPollDescriptorsCapture, 1, 0); + if (resultPoll > 0) { + ma_uint64 t; + read(((struct pollfd*)pDevice->alsa.pPollDescriptorsCapture)[0].fd, &t, sizeof(t)); + } } if (pDevice->type == ma_device_type_playback || pDevice->type == ma_device_type_duplex) { @@ -26675,6 +28097,14 @@ static ma_result ma_device_stop__alsa(ma_device* pDevice) } else { ma_log_postf(ma_device_get_log(pDevice), MA_LOG_LEVEL_DEBUG, "[ALSA] Preparing playback device successful.\n"); } + + /* Clear the wakeupfd. */ + resultPoll = poll((struct pollfd*)pDevice->alsa.pPollDescriptorsPlayback, 1, 0); + if (resultPoll > 0) { + ma_uint64 t; + read(((struct pollfd*)pDevice->alsa.pPollDescriptorsPlayback)[0].fd, &t, sizeof(t)); + } + } return MA_SUCCESS; @@ -26687,7 +28117,7 @@ static ma_result ma_device_wait__alsa(ma_device* pDevice, ma_snd_pcm_t* pPCM, st int resultALSA; int resultPoll = poll(pPollDescriptors, pollDescriptorCount, -1); if (resultPoll < 0) { - ma_log_post(ma_device_get_log(pDevice), MA_LOG_LEVEL_ERROR, "[ALSA] poll() failed."); + ma_log_post(ma_device_get_log(pDevice), MA_LOG_LEVEL_ERROR, "[ALSA] poll() failed.\n"); return ma_result_from_errno(errno); } @@ -26700,7 +28130,7 @@ static ma_result ma_device_wait__alsa(ma_device* pDevice, ma_snd_pcm_t* pPCM, st ma_uint64 t; int resultRead = read(pPollDescriptors[0].fd, &t, sizeof(t)); /* <-- Important that we read here so that the next write() does not block. */ if (resultRead < 0) { - ma_log_post(ma_device_get_log(pDevice), MA_LOG_LEVEL_ERROR, "[ALSA] read() failed."); + ma_log_post(ma_device_get_log(pDevice), MA_LOG_LEVEL_ERROR, "[ALSA] read() failed.\n"); return ma_result_from_errno(errno); } @@ -26714,13 +28144,17 @@ static ma_result ma_device_wait__alsa(ma_device* pDevice, ma_snd_pcm_t* pPCM, st */ resultALSA = ((ma_snd_pcm_poll_descriptors_revents_proc)pDevice->pContext->alsa.snd_pcm_poll_descriptors_revents)(pPCM, pPollDescriptors + 1, pollDescriptorCount - 1, &revents); /* +1, -1 to ignore the wakeup descriptor. */ if (resultALSA < 0) { - ma_log_post(ma_device_get_log(pDevice), MA_LOG_LEVEL_ERROR, "[ALSA] snd_pcm_poll_descriptors_revents() failed."); + ma_log_post(ma_device_get_log(pDevice), MA_LOG_LEVEL_ERROR, "[ALSA] snd_pcm_poll_descriptors_revents() failed.\n"); return ma_result_from_errno(-resultALSA); } if ((revents & POLLERR) != 0) { - ma_log_post(ma_device_get_log(pDevice), MA_LOG_LEVEL_ERROR, "[ALSA] POLLERR detected."); - return ma_result_from_errno(errno); + ma_snd_pcm_state_t state = ((ma_snd_pcm_state_proc)pDevice->pContext->alsa.snd_pcm_state)(pPCM); + if (state == MA_SND_PCM_STATE_XRUN) { + /* The PCM is in a xrun state. This will be recovered from at a higher level. We can disregard this. */ + } else { + ma_log_postf(ma_device_get_log(pDevice), MA_LOG_LEVEL_WARNING, "[ALSA] POLLERR detected. status = %d\n", ((ma_snd_pcm_state_proc)pDevice->pContext->alsa.snd_pcm_state)(pPCM)); + } } if ((revents & requiredEvent) == requiredEvent) { @@ -26895,7 +28329,7 @@ static ma_result ma_context_uninit__alsa(ma_context* pContext) ((ma_snd_config_update_free_global_proc)pContext->alsa.snd_config_update_free_global)(); #ifndef MA_NO_RUNTIME_LINKING - ma_dlclose(pContext, pContext->alsa.asoundSO); + ma_dlclose(ma_context_get_log(pContext), pContext->alsa.asoundSO); #endif ma_mutex_uninit(&pContext->alsa.internalDeviceEnumLock); @@ -26914,7 +28348,7 @@ static ma_result ma_context_init__alsa(ma_context* pContext, const ma_context_co size_t i; for (i = 0; i < ma_countof(libasoundNames); ++i) { - pContext->alsa.asoundSO = ma_dlopen(pContext, libasoundNames[i]); + pContext->alsa.asoundSO = ma_dlopen(ma_context_get_log(pContext), libasoundNames[i]); if (pContext->alsa.asoundSO != NULL) { break; } @@ -26925,72 +28359,72 @@ static ma_result ma_context_init__alsa(ma_context* pContext, const ma_context_co return MA_NO_BACKEND; } - pContext->alsa.snd_pcm_open = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_open"); - pContext->alsa.snd_pcm_close = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_close"); - pContext->alsa.snd_pcm_hw_params_sizeof = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_sizeof"); - pContext->alsa.snd_pcm_hw_params_any = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_any"); - pContext->alsa.snd_pcm_hw_params_set_format = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_set_format"); - pContext->alsa.snd_pcm_hw_params_set_format_first = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_set_format_first"); - pContext->alsa.snd_pcm_hw_params_get_format_mask = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_get_format_mask"); - pContext->alsa.snd_pcm_hw_params_set_channels = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_set_channels"); - pContext->alsa.snd_pcm_hw_params_set_channels_near = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_set_channels_near"); - pContext->alsa.snd_pcm_hw_params_set_channels_minmax = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_set_channels_minmax"); - pContext->alsa.snd_pcm_hw_params_set_rate_resample = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_set_rate_resample"); - pContext->alsa.snd_pcm_hw_params_set_rate = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_set_rate"); - pContext->alsa.snd_pcm_hw_params_set_rate_near = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_set_rate_near"); - pContext->alsa.snd_pcm_hw_params_set_buffer_size_near = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_set_buffer_size_near"); - pContext->alsa.snd_pcm_hw_params_set_periods_near = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_set_periods_near"); - pContext->alsa.snd_pcm_hw_params_set_access = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_set_access"); - pContext->alsa.snd_pcm_hw_params_get_format = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_get_format"); - pContext->alsa.snd_pcm_hw_params_get_channels = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_get_channels"); - pContext->alsa.snd_pcm_hw_params_get_channels_min = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_get_channels_min"); - pContext->alsa.snd_pcm_hw_params_get_channels_max = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_get_channels_max"); - pContext->alsa.snd_pcm_hw_params_get_rate = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_get_rate"); - pContext->alsa.snd_pcm_hw_params_get_rate_min = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_get_rate_min"); - pContext->alsa.snd_pcm_hw_params_get_rate_max = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_get_rate_max"); - pContext->alsa.snd_pcm_hw_params_get_buffer_size = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_get_buffer_size"); - pContext->alsa.snd_pcm_hw_params_get_periods = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_get_periods"); - pContext->alsa.snd_pcm_hw_params_get_access = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_get_access"); - pContext->alsa.snd_pcm_hw_params_test_format = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_test_format"); - pContext->alsa.snd_pcm_hw_params_test_channels = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_test_channels"); - pContext->alsa.snd_pcm_hw_params_test_rate = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params_test_rate"); - pContext->alsa.snd_pcm_hw_params = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_hw_params"); - pContext->alsa.snd_pcm_sw_params_sizeof = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_sw_params_sizeof"); - pContext->alsa.snd_pcm_sw_params_current = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_sw_params_current"); - pContext->alsa.snd_pcm_sw_params_get_boundary = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_sw_params_get_boundary"); - pContext->alsa.snd_pcm_sw_params_set_avail_min = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_sw_params_set_avail_min"); - pContext->alsa.snd_pcm_sw_params_set_start_threshold = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_sw_params_set_start_threshold"); - pContext->alsa.snd_pcm_sw_params_set_stop_threshold = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_sw_params_set_stop_threshold"); - pContext->alsa.snd_pcm_sw_params = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_sw_params"); - pContext->alsa.snd_pcm_format_mask_sizeof = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_format_mask_sizeof"); - pContext->alsa.snd_pcm_format_mask_test = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_format_mask_test"); - pContext->alsa.snd_pcm_get_chmap = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_get_chmap"); - pContext->alsa.snd_pcm_state = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_state"); - pContext->alsa.snd_pcm_prepare = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_prepare"); - pContext->alsa.snd_pcm_start = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_start"); - pContext->alsa.snd_pcm_drop = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_drop"); - pContext->alsa.snd_pcm_drain = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_drain"); - pContext->alsa.snd_pcm_reset = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_reset"); - pContext->alsa.snd_device_name_hint = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_device_name_hint"); - pContext->alsa.snd_device_name_get_hint = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_device_name_get_hint"); - pContext->alsa.snd_card_get_index = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_card_get_index"); - pContext->alsa.snd_device_name_free_hint = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_device_name_free_hint"); - pContext->alsa.snd_pcm_mmap_begin = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_mmap_begin"); - pContext->alsa.snd_pcm_mmap_commit = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_mmap_commit"); - pContext->alsa.snd_pcm_recover = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_recover"); - pContext->alsa.snd_pcm_readi = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_readi"); - pContext->alsa.snd_pcm_writei = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_writei"); - pContext->alsa.snd_pcm_avail = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_avail"); - pContext->alsa.snd_pcm_avail_update = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_avail_update"); - pContext->alsa.snd_pcm_wait = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_wait"); - pContext->alsa.snd_pcm_nonblock = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_nonblock"); - pContext->alsa.snd_pcm_info = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_info"); - pContext->alsa.snd_pcm_info_sizeof = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_info_sizeof"); - pContext->alsa.snd_pcm_info_get_name = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_info_get_name"); - pContext->alsa.snd_pcm_poll_descriptors = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_poll_descriptors"); - pContext->alsa.snd_pcm_poll_descriptors_count = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_poll_descriptors_count"); - pContext->alsa.snd_pcm_poll_descriptors_revents = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_pcm_poll_descriptors_revents"); - pContext->alsa.snd_config_update_free_global = (ma_proc)ma_dlsym(pContext, pContext->alsa.asoundSO, "snd_config_update_free_global"); + pContext->alsa.snd_pcm_open = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->alsa.asoundSO, "snd_pcm_open"); + pContext->alsa.snd_pcm_close = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->alsa.asoundSO, "snd_pcm_close"); + pContext->alsa.snd_pcm_hw_params_sizeof = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->alsa.asoundSO, "snd_pcm_hw_params_sizeof"); + pContext->alsa.snd_pcm_hw_params_any = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->alsa.asoundSO, "snd_pcm_hw_params_any"); + pContext->alsa.snd_pcm_hw_params_set_format = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->alsa.asoundSO, "snd_pcm_hw_params_set_format"); + pContext->alsa.snd_pcm_hw_params_set_format_first = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->alsa.asoundSO, "snd_pcm_hw_params_set_format_first"); + pContext->alsa.snd_pcm_hw_params_get_format_mask = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->alsa.asoundSO, "snd_pcm_hw_params_get_format_mask"); + pContext->alsa.snd_pcm_hw_params_set_channels = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->alsa.asoundSO, "snd_pcm_hw_params_set_channels"); + pContext->alsa.snd_pcm_hw_params_set_channels_near = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->alsa.asoundSO, "snd_pcm_hw_params_set_channels_near"); + pContext->alsa.snd_pcm_hw_params_set_channels_minmax = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->alsa.asoundSO, "snd_pcm_hw_params_set_channels_minmax"); + pContext->alsa.snd_pcm_hw_params_set_rate_resample = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->alsa.asoundSO, "snd_pcm_hw_params_set_rate_resample"); + pContext->alsa.snd_pcm_hw_params_set_rate = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->alsa.asoundSO, "snd_pcm_hw_params_set_rate"); + pContext->alsa.snd_pcm_hw_params_set_rate_near = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->alsa.asoundSO, "snd_pcm_hw_params_set_rate_near"); + pContext->alsa.snd_pcm_hw_params_set_buffer_size_near = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->alsa.asoundSO, "snd_pcm_hw_params_set_buffer_size_near"); + pContext->alsa.snd_pcm_hw_params_set_periods_near = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->alsa.asoundSO, "snd_pcm_hw_params_set_periods_near"); + pContext->alsa.snd_pcm_hw_params_set_access = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->alsa.asoundSO, "snd_pcm_hw_params_set_access"); + pContext->alsa.snd_pcm_hw_params_get_format = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->alsa.asoundSO, "snd_pcm_hw_params_get_format"); + pContext->alsa.snd_pcm_hw_params_get_channels = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->alsa.asoundSO, "snd_pcm_hw_params_get_channels"); + pContext->alsa.snd_pcm_hw_params_get_channels_min = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->alsa.asoundSO, "snd_pcm_hw_params_get_channels_min"); + pContext->alsa.snd_pcm_hw_params_get_channels_max = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->alsa.asoundSO, "snd_pcm_hw_params_get_channels_max"); + pContext->alsa.snd_pcm_hw_params_get_rate = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->alsa.asoundSO, "snd_pcm_hw_params_get_rate"); + pContext->alsa.snd_pcm_hw_params_get_rate_min = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->alsa.asoundSO, "snd_pcm_hw_params_get_rate_min"); + pContext->alsa.snd_pcm_hw_params_get_rate_max = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->alsa.asoundSO, "snd_pcm_hw_params_get_rate_max"); + pContext->alsa.snd_pcm_hw_params_get_buffer_size = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->alsa.asoundSO, "snd_pcm_hw_params_get_buffer_size"); + pContext->alsa.snd_pcm_hw_params_get_periods = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->alsa.asoundSO, "snd_pcm_hw_params_get_periods"); + pContext->alsa.snd_pcm_hw_params_get_access = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->alsa.asoundSO, "snd_pcm_hw_params_get_access"); + pContext->alsa.snd_pcm_hw_params_test_format = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->alsa.asoundSO, "snd_pcm_hw_params_test_format"); + pContext->alsa.snd_pcm_hw_params_test_channels = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->alsa.asoundSO, "snd_pcm_hw_params_test_channels"); + pContext->alsa.snd_pcm_hw_params_test_rate = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->alsa.asoundSO, "snd_pcm_hw_params_test_rate"); + pContext->alsa.snd_pcm_hw_params = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->alsa.asoundSO, "snd_pcm_hw_params"); + pContext->alsa.snd_pcm_sw_params_sizeof = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->alsa.asoundSO, "snd_pcm_sw_params_sizeof"); + pContext->alsa.snd_pcm_sw_params_current = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->alsa.asoundSO, "snd_pcm_sw_params_current"); + pContext->alsa.snd_pcm_sw_params_get_boundary = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->alsa.asoundSO, "snd_pcm_sw_params_get_boundary"); + pContext->alsa.snd_pcm_sw_params_set_avail_min = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->alsa.asoundSO, "snd_pcm_sw_params_set_avail_min"); + pContext->alsa.snd_pcm_sw_params_set_start_threshold = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->alsa.asoundSO, "snd_pcm_sw_params_set_start_threshold"); + pContext->alsa.snd_pcm_sw_params_set_stop_threshold = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->alsa.asoundSO, "snd_pcm_sw_params_set_stop_threshold"); + pContext->alsa.snd_pcm_sw_params = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->alsa.asoundSO, "snd_pcm_sw_params"); + pContext->alsa.snd_pcm_format_mask_sizeof = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->alsa.asoundSO, "snd_pcm_format_mask_sizeof"); + pContext->alsa.snd_pcm_format_mask_test = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->alsa.asoundSO, "snd_pcm_format_mask_test"); + pContext->alsa.snd_pcm_get_chmap = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->alsa.asoundSO, "snd_pcm_get_chmap"); + pContext->alsa.snd_pcm_state = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->alsa.asoundSO, "snd_pcm_state"); + pContext->alsa.snd_pcm_prepare = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->alsa.asoundSO, "snd_pcm_prepare"); + pContext->alsa.snd_pcm_start = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->alsa.asoundSO, "snd_pcm_start"); + pContext->alsa.snd_pcm_drop = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->alsa.asoundSO, "snd_pcm_drop"); + pContext->alsa.snd_pcm_drain = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->alsa.asoundSO, "snd_pcm_drain"); + pContext->alsa.snd_pcm_reset = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->alsa.asoundSO, "snd_pcm_reset"); + pContext->alsa.snd_device_name_hint = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->alsa.asoundSO, "snd_device_name_hint"); + pContext->alsa.snd_device_name_get_hint = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->alsa.asoundSO, "snd_device_name_get_hint"); + pContext->alsa.snd_card_get_index = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->alsa.asoundSO, "snd_card_get_index"); + pContext->alsa.snd_device_name_free_hint = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->alsa.asoundSO, "snd_device_name_free_hint"); + pContext->alsa.snd_pcm_mmap_begin = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->alsa.asoundSO, "snd_pcm_mmap_begin"); + pContext->alsa.snd_pcm_mmap_commit = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->alsa.asoundSO, "snd_pcm_mmap_commit"); + pContext->alsa.snd_pcm_recover = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->alsa.asoundSO, "snd_pcm_recover"); + pContext->alsa.snd_pcm_readi = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->alsa.asoundSO, "snd_pcm_readi"); + pContext->alsa.snd_pcm_writei = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->alsa.asoundSO, "snd_pcm_writei"); + pContext->alsa.snd_pcm_avail = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->alsa.asoundSO, "snd_pcm_avail"); + pContext->alsa.snd_pcm_avail_update = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->alsa.asoundSO, "snd_pcm_avail_update"); + pContext->alsa.snd_pcm_wait = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->alsa.asoundSO, "snd_pcm_wait"); + pContext->alsa.snd_pcm_nonblock = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->alsa.asoundSO, "snd_pcm_nonblock"); + pContext->alsa.snd_pcm_info = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->alsa.asoundSO, "snd_pcm_info"); + pContext->alsa.snd_pcm_info_sizeof = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->alsa.asoundSO, "snd_pcm_info_sizeof"); + pContext->alsa.snd_pcm_info_get_name = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->alsa.asoundSO, "snd_pcm_info_get_name"); + pContext->alsa.snd_pcm_poll_descriptors = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->alsa.asoundSO, "snd_pcm_poll_descriptors"); + pContext->alsa.snd_pcm_poll_descriptors_count = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->alsa.asoundSO, "snd_pcm_poll_descriptors_count"); + pContext->alsa.snd_pcm_poll_descriptors_revents = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->alsa.asoundSO, "snd_pcm_poll_descriptors_revents"); + pContext->alsa.snd_config_update_free_global = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->alsa.asoundSO, "snd_config_update_free_global"); #else /* The system below is just for type safety. */ ma_snd_pcm_open_proc _snd_pcm_open = snd_pcm_open; @@ -28169,6 +29603,14 @@ static void ma_device_sink_info_callback(ma_pa_context* pPulseContext, const ma_ return; } + /* + There has been a report that indicates that pInfo can be null which results + in a null pointer dereference below. We'll check for this for safety. + */ + if (pInfo == NULL) { + return; + } + pInfoOut = (ma_pa_sink_info*)pUserData; MA_ASSERT(pInfoOut != NULL); @@ -28185,6 +29627,14 @@ static void ma_device_source_info_callback(ma_pa_context* pPulseContext, const m return; } + /* + There has been a report that indicates that pInfo can be null which results + in a null pointer dereference below. We'll check for this for safety. + */ + if (pInfo == NULL) { + return; + } + pInfoOut = (ma_pa_source_info*)pUserData; MA_ASSERT(pInfoOut != NULL); @@ -28830,11 +30280,6 @@ static ma_result ma_device_init__pulse(ma_device* pDevice, const ma_device_confi /* Notes for PulseAudio: - - We're always using native format/channels/rate regardless of whether or not PulseAudio - supports the format directly through their own data conversion system. I'm doing this to - reduce as much variability from the PulseAudio side as possible because it's seems to be - extremely unreliable at everything it does. - - When both the period size in frames and milliseconds are 0, we default to miniaudio's default buffer sizes rather than leaving it up to PulseAudio because I don't trust PulseAudio to give us any kind of reasonable latency by default. @@ -28856,7 +30301,6 @@ static ma_result ma_device_init__pulse(ma_device* pDevice, const ma_device_confi ma_pa_channel_map cmap; ma_pa_buffer_attr attr; const ma_pa_sample_spec* pActualSS = NULL; - const ma_pa_channel_map* pActualCMap = NULL; const ma_pa_buffer_attr* pActualAttr = NULL; ma_uint32 iChannel; ma_pa_stream_flags_t streamFlags; @@ -28894,7 +30338,7 @@ static ma_result ma_device_init__pulse(ma_device* pDevice, const ma_device_confi sampleRate = pDescriptorCapture->sampleRate; } - + result = ma_init_pa_mainloop_and_pa_context__pulse(pDevice->pContext, pDevice->pContext->pulse.pApplicationName, pDevice->pContext->pulse.pServerName, MA_FALSE, &pDevice->pulse.pMainLoop, &pDevice->pulse.pPulseContext); if (result != MA_SUCCESS) { @@ -28912,20 +30356,37 @@ static ma_result ma_device_init__pulse(ma_device* pDevice, const ma_device_confi ss = sourceInfo.sample_spec; cmap = sourceInfo.channel_map; + /* Use the requested channel count if we have one. */ + if (pDescriptorCapture->channels != 0) { + ss.channels = pDescriptorCapture->channels; + } + + /* Use a default channel map. */ + ((ma_pa_channel_map_init_extend_proc)pDevice->pContext->pulse.pa_channel_map_init_extend)(&cmap, ss.channels, MA_PA_CHANNEL_MAP_DEFAULT); + + /* Use the requested sample rate if one was specified. */ + if (pDescriptorCapture->sampleRate != 0) { + ss.rate = pDescriptorCapture->sampleRate; + } + streamFlags = MA_PA_STREAM_START_CORKED | MA_PA_STREAM_ADJUST_LATENCY; + if (ma_format_from_pulse(ss.format) == ma_format_unknown) { if (ma_is_little_endian()) { ss.format = MA_PA_SAMPLE_FLOAT32LE; } else { ss.format = MA_PA_SAMPLE_FLOAT32BE; } + streamFlags |= MA_PA_STREAM_FIX_FORMAT; ma_log_postf(ma_device_get_log(pDevice), MA_LOG_LEVEL_INFO, "[PulseAudio] sample_spec.format not supported by miniaudio. Defaulting to PA_SAMPLE_FLOAT32.\n"); } if (ss.rate == 0) { ss.rate = MA_DEFAULT_SAMPLE_RATE; + streamFlags |= MA_PA_STREAM_FIX_RATE; ma_log_postf(ma_device_get_log(pDevice), MA_LOG_LEVEL_INFO, "[PulseAudio] sample_spec.rate = 0. Defaulting to %d.\n", ss.rate); } if (ss.channels == 0) { ss.channels = MA_DEFAULT_CHANNELS; + streamFlags |= MA_PA_STREAM_FIX_CHANNELS; ma_log_postf(ma_device_get_log(pDevice), MA_LOG_LEVEL_INFO, "[PulseAudio] sample_spec.channels = 0. Defaulting to %d.\n", ss.channels); } @@ -28954,7 +30415,6 @@ static ma_result ma_device_init__pulse(ma_device* pDevice, const ma_device_confi /* Connect after we've got all of our internal state set up. */ - streamFlags = MA_PA_STREAM_START_CORKED | MA_PA_STREAM_ADJUST_LATENCY | MA_PA_STREAM_FIX_FORMAT | MA_PA_STREAM_FIX_RATE | MA_PA_STREAM_FIX_CHANNELS; if (devCapture != NULL) { streamFlags |= MA_PA_STREAM_DONT_MOVE; } @@ -29001,11 +30461,6 @@ static ma_result ma_device_init__pulse(ma_device* pDevice, const ma_device_confi fixed sooner than later. I might remove this hack later. */ if (pDescriptorCapture->channels > 2) { - pActualCMap = ((ma_pa_stream_get_channel_map_proc)pDevice->pContext->pulse.pa_stream_get_channel_map)((ma_pa_stream*)pDevice->pulse.pStreamCapture); - if (pActualCMap != NULL) { - cmap = *pActualCMap; - } - for (iChannel = 0; iChannel < pDescriptorCapture->channels; ++iChannel) { pDescriptorCapture->channelMap[iChannel] = ma_channel_position_from_pulse(cmap.map[iChannel]); } @@ -29048,20 +30503,38 @@ static ma_result ma_device_init__pulse(ma_device* pDevice, const ma_device_confi ss = sinkInfo.sample_spec; cmap = sinkInfo.channel_map; + /* Use the requested channel count if we have one. */ + if (pDescriptorPlayback->channels != 0) { + ss.channels = pDescriptorPlayback->channels; + } + + /* Use a default channel map. */ + ((ma_pa_channel_map_init_extend_proc)pDevice->pContext->pulse.pa_channel_map_init_extend)(&cmap, ss.channels, MA_PA_CHANNEL_MAP_DEFAULT); + + + /* Use the requested sample rate if one was specified. */ + if (pDescriptorPlayback->sampleRate != 0) { + ss.rate = pDescriptorPlayback->sampleRate; + } + + streamFlags = MA_PA_STREAM_START_CORKED | MA_PA_STREAM_ADJUST_LATENCY; if (ma_format_from_pulse(ss.format) == ma_format_unknown) { if (ma_is_little_endian()) { ss.format = MA_PA_SAMPLE_FLOAT32LE; } else { ss.format = MA_PA_SAMPLE_FLOAT32BE; } + streamFlags |= MA_PA_STREAM_FIX_FORMAT; ma_log_postf(ma_device_get_log(pDevice), MA_LOG_LEVEL_INFO, "[PulseAudio] sample_spec.format not supported by miniaudio. Defaulting to PA_SAMPLE_FLOAT32.\n"); } if (ss.rate == 0) { ss.rate = MA_DEFAULT_SAMPLE_RATE; + streamFlags |= MA_PA_STREAM_FIX_RATE; ma_log_postf(ma_device_get_log(pDevice), MA_LOG_LEVEL_INFO, "[PulseAudio] sample_spec.rate = 0. Defaulting to %d.\n", ss.rate); } if (ss.channels == 0) { ss.channels = MA_DEFAULT_CHANNELS; + streamFlags |= MA_PA_STREAM_FIX_CHANNELS; ma_log_postf(ma_device_get_log(pDevice), MA_LOG_LEVEL_INFO, "[PulseAudio] sample_spec.channels = 0. Defaulting to %d.\n", ss.channels); } @@ -29094,7 +30567,6 @@ static ma_result ma_device_init__pulse(ma_device* pDevice, const ma_device_confi /* Connect after we've got all of our internal state set up. */ - streamFlags = MA_PA_STREAM_START_CORKED | MA_PA_STREAM_ADJUST_LATENCY | MA_PA_STREAM_FIX_FORMAT | MA_PA_STREAM_FIX_RATE | MA_PA_STREAM_FIX_CHANNELS; if (devPlayback != NULL) { streamFlags |= MA_PA_STREAM_DONT_MOVE; } @@ -29141,11 +30613,6 @@ static ma_result ma_device_init__pulse(ma_device* pDevice, const ma_device_confi fixed sooner than later. I might remove this hack later. */ if (pDescriptorPlayback->channels > 2) { - pActualCMap = ((ma_pa_stream_get_channel_map_proc)pDevice->pContext->pulse.pa_stream_get_channel_map)((ma_pa_stream*)pDevice->pulse.pStreamPlayback); - if (pActualCMap != NULL) { - cmap = *pActualCMap; - } - for (iChannel = 0; iChannel < pDescriptorPlayback->channels; ++iChannel) { pDescriptorPlayback->channelMap[iChannel] = ma_channel_position_from_pulse(cmap.map[iChannel]); } @@ -29378,7 +30845,7 @@ static ma_result ma_context_uninit__pulse(ma_context* pContext) ma_free(pContext->pulse.pApplicationName, &pContext->allocationCallbacks); #ifndef MA_NO_RUNTIME_LINKING - ma_dlclose(pContext, pContext->pulse.pulseSO); + ma_dlclose(ma_context_get_log(pContext), pContext->pulse.pulseSO); #endif return MA_SUCCESS; @@ -29395,7 +30862,7 @@ static ma_result ma_context_init__pulse(ma_context* pContext, const ma_context_c size_t i; for (i = 0; i < ma_countof(libpulseNames); ++i) { - pContext->pulse.pulseSO = ma_dlopen(pContext, libpulseNames[i]); + pContext->pulse.pulseSO = ma_dlopen(ma_context_get_log(pContext), libpulseNames[i]); if (pContext->pulse.pulseSO != NULL) { break; } @@ -29405,67 +30872,67 @@ static ma_result ma_context_init__pulse(ma_context* pContext, const ma_context_c return MA_NO_BACKEND; } - pContext->pulse.pa_mainloop_new = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_mainloop_new"); - pContext->pulse.pa_mainloop_free = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_mainloop_free"); - pContext->pulse.pa_mainloop_quit = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_mainloop_quit"); - pContext->pulse.pa_mainloop_get_api = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_mainloop_get_api"); - pContext->pulse.pa_mainloop_iterate = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_mainloop_iterate"); - pContext->pulse.pa_mainloop_wakeup = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_mainloop_wakeup"); - pContext->pulse.pa_threaded_mainloop_new = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_threaded_mainloop_new"); - pContext->pulse.pa_threaded_mainloop_free = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_threaded_mainloop_free"); - pContext->pulse.pa_threaded_mainloop_start = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_threaded_mainloop_start"); - pContext->pulse.pa_threaded_mainloop_stop = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_threaded_mainloop_stop"); - pContext->pulse.pa_threaded_mainloop_lock = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_threaded_mainloop_lock"); - pContext->pulse.pa_threaded_mainloop_unlock = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_threaded_mainloop_unlock"); - pContext->pulse.pa_threaded_mainloop_wait = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_threaded_mainloop_wait"); - pContext->pulse.pa_threaded_mainloop_signal = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_threaded_mainloop_signal"); - pContext->pulse.pa_threaded_mainloop_accept = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_threaded_mainloop_accept"); - pContext->pulse.pa_threaded_mainloop_get_retval = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_threaded_mainloop_get_retval"); - pContext->pulse.pa_threaded_mainloop_get_api = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_threaded_mainloop_get_api"); - pContext->pulse.pa_threaded_mainloop_in_thread = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_threaded_mainloop_in_thread"); - pContext->pulse.pa_threaded_mainloop_set_name = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_threaded_mainloop_set_name"); - pContext->pulse.pa_context_new = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_context_new"); - pContext->pulse.pa_context_unref = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_context_unref"); - pContext->pulse.pa_context_connect = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_context_connect"); - pContext->pulse.pa_context_disconnect = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_context_disconnect"); - pContext->pulse.pa_context_set_state_callback = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_context_set_state_callback"); - pContext->pulse.pa_context_get_state = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_context_get_state"); - pContext->pulse.pa_context_get_sink_info_list = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_context_get_sink_info_list"); - pContext->pulse.pa_context_get_source_info_list = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_context_get_source_info_list"); - pContext->pulse.pa_context_get_sink_info_by_name = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_context_get_sink_info_by_name"); - pContext->pulse.pa_context_get_source_info_by_name = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_context_get_source_info_by_name"); - pContext->pulse.pa_operation_unref = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_operation_unref"); - pContext->pulse.pa_operation_get_state = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_operation_get_state"); - pContext->pulse.pa_channel_map_init_extend = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_channel_map_init_extend"); - pContext->pulse.pa_channel_map_valid = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_channel_map_valid"); - pContext->pulse.pa_channel_map_compatible = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_channel_map_compatible"); - pContext->pulse.pa_stream_new = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_new"); - pContext->pulse.pa_stream_unref = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_unref"); - pContext->pulse.pa_stream_connect_playback = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_connect_playback"); - pContext->pulse.pa_stream_connect_record = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_connect_record"); - pContext->pulse.pa_stream_disconnect = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_disconnect"); - pContext->pulse.pa_stream_get_state = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_get_state"); - pContext->pulse.pa_stream_get_sample_spec = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_get_sample_spec"); - pContext->pulse.pa_stream_get_channel_map = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_get_channel_map"); - pContext->pulse.pa_stream_get_buffer_attr = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_get_buffer_attr"); - pContext->pulse.pa_stream_set_buffer_attr = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_set_buffer_attr"); - pContext->pulse.pa_stream_get_device_name = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_get_device_name"); - pContext->pulse.pa_stream_set_write_callback = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_set_write_callback"); - pContext->pulse.pa_stream_set_read_callback = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_set_read_callback"); - pContext->pulse.pa_stream_set_suspended_callback = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_set_suspended_callback"); - pContext->pulse.pa_stream_set_moved_callback = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_set_moved_callback"); - pContext->pulse.pa_stream_is_suspended = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_is_suspended"); - pContext->pulse.pa_stream_flush = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_flush"); - pContext->pulse.pa_stream_drain = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_drain"); - pContext->pulse.pa_stream_is_corked = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_is_corked"); - pContext->pulse.pa_stream_cork = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_cork"); - pContext->pulse.pa_stream_trigger = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_trigger"); - pContext->pulse.pa_stream_begin_write = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_begin_write"); - pContext->pulse.pa_stream_write = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_write"); - pContext->pulse.pa_stream_peek = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_peek"); - pContext->pulse.pa_stream_drop = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_drop"); - pContext->pulse.pa_stream_writable_size = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_writable_size"); - pContext->pulse.pa_stream_readable_size = (ma_proc)ma_dlsym(pContext, pContext->pulse.pulseSO, "pa_stream_readable_size"); + pContext->pulse.pa_mainloop_new = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->pulse.pulseSO, "pa_mainloop_new"); + pContext->pulse.pa_mainloop_free = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->pulse.pulseSO, "pa_mainloop_free"); + pContext->pulse.pa_mainloop_quit = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->pulse.pulseSO, "pa_mainloop_quit"); + pContext->pulse.pa_mainloop_get_api = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->pulse.pulseSO, "pa_mainloop_get_api"); + pContext->pulse.pa_mainloop_iterate = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->pulse.pulseSO, "pa_mainloop_iterate"); + pContext->pulse.pa_mainloop_wakeup = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->pulse.pulseSO, "pa_mainloop_wakeup"); + pContext->pulse.pa_threaded_mainloop_new = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->pulse.pulseSO, "pa_threaded_mainloop_new"); + pContext->pulse.pa_threaded_mainloop_free = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->pulse.pulseSO, "pa_threaded_mainloop_free"); + pContext->pulse.pa_threaded_mainloop_start = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->pulse.pulseSO, "pa_threaded_mainloop_start"); + pContext->pulse.pa_threaded_mainloop_stop = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->pulse.pulseSO, "pa_threaded_mainloop_stop"); + pContext->pulse.pa_threaded_mainloop_lock = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->pulse.pulseSO, "pa_threaded_mainloop_lock"); + pContext->pulse.pa_threaded_mainloop_unlock = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->pulse.pulseSO, "pa_threaded_mainloop_unlock"); + pContext->pulse.pa_threaded_mainloop_wait = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->pulse.pulseSO, "pa_threaded_mainloop_wait"); + pContext->pulse.pa_threaded_mainloop_signal = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->pulse.pulseSO, "pa_threaded_mainloop_signal"); + pContext->pulse.pa_threaded_mainloop_accept = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->pulse.pulseSO, "pa_threaded_mainloop_accept"); + pContext->pulse.pa_threaded_mainloop_get_retval = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->pulse.pulseSO, "pa_threaded_mainloop_get_retval"); + pContext->pulse.pa_threaded_mainloop_get_api = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->pulse.pulseSO, "pa_threaded_mainloop_get_api"); + pContext->pulse.pa_threaded_mainloop_in_thread = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->pulse.pulseSO, "pa_threaded_mainloop_in_thread"); + pContext->pulse.pa_threaded_mainloop_set_name = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->pulse.pulseSO, "pa_threaded_mainloop_set_name"); + pContext->pulse.pa_context_new = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->pulse.pulseSO, "pa_context_new"); + pContext->pulse.pa_context_unref = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->pulse.pulseSO, "pa_context_unref"); + pContext->pulse.pa_context_connect = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->pulse.pulseSO, "pa_context_connect"); + pContext->pulse.pa_context_disconnect = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->pulse.pulseSO, "pa_context_disconnect"); + pContext->pulse.pa_context_set_state_callback = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->pulse.pulseSO, "pa_context_set_state_callback"); + pContext->pulse.pa_context_get_state = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->pulse.pulseSO, "pa_context_get_state"); + pContext->pulse.pa_context_get_sink_info_list = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->pulse.pulseSO, "pa_context_get_sink_info_list"); + pContext->pulse.pa_context_get_source_info_list = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->pulse.pulseSO, "pa_context_get_source_info_list"); + pContext->pulse.pa_context_get_sink_info_by_name = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->pulse.pulseSO, "pa_context_get_sink_info_by_name"); + pContext->pulse.pa_context_get_source_info_by_name = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->pulse.pulseSO, "pa_context_get_source_info_by_name"); + pContext->pulse.pa_operation_unref = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->pulse.pulseSO, "pa_operation_unref"); + pContext->pulse.pa_operation_get_state = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->pulse.pulseSO, "pa_operation_get_state"); + pContext->pulse.pa_channel_map_init_extend = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->pulse.pulseSO, "pa_channel_map_init_extend"); + pContext->pulse.pa_channel_map_valid = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->pulse.pulseSO, "pa_channel_map_valid"); + pContext->pulse.pa_channel_map_compatible = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->pulse.pulseSO, "pa_channel_map_compatible"); + pContext->pulse.pa_stream_new = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->pulse.pulseSO, "pa_stream_new"); + pContext->pulse.pa_stream_unref = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->pulse.pulseSO, "pa_stream_unref"); + pContext->pulse.pa_stream_connect_playback = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->pulse.pulseSO, "pa_stream_connect_playback"); + pContext->pulse.pa_stream_connect_record = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->pulse.pulseSO, "pa_stream_connect_record"); + pContext->pulse.pa_stream_disconnect = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->pulse.pulseSO, "pa_stream_disconnect"); + pContext->pulse.pa_stream_get_state = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->pulse.pulseSO, "pa_stream_get_state"); + pContext->pulse.pa_stream_get_sample_spec = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->pulse.pulseSO, "pa_stream_get_sample_spec"); + pContext->pulse.pa_stream_get_channel_map = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->pulse.pulseSO, "pa_stream_get_channel_map"); + pContext->pulse.pa_stream_get_buffer_attr = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->pulse.pulseSO, "pa_stream_get_buffer_attr"); + pContext->pulse.pa_stream_set_buffer_attr = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->pulse.pulseSO, "pa_stream_set_buffer_attr"); + pContext->pulse.pa_stream_get_device_name = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->pulse.pulseSO, "pa_stream_get_device_name"); + pContext->pulse.pa_stream_set_write_callback = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->pulse.pulseSO, "pa_stream_set_write_callback"); + pContext->pulse.pa_stream_set_read_callback = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->pulse.pulseSO, "pa_stream_set_read_callback"); + pContext->pulse.pa_stream_set_suspended_callback = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->pulse.pulseSO, "pa_stream_set_suspended_callback"); + pContext->pulse.pa_stream_set_moved_callback = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->pulse.pulseSO, "pa_stream_set_moved_callback"); + pContext->pulse.pa_stream_is_suspended = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->pulse.pulseSO, "pa_stream_is_suspended"); + pContext->pulse.pa_stream_flush = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->pulse.pulseSO, "pa_stream_flush"); + pContext->pulse.pa_stream_drain = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->pulse.pulseSO, "pa_stream_drain"); + pContext->pulse.pa_stream_is_corked = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->pulse.pulseSO, "pa_stream_is_corked"); + pContext->pulse.pa_stream_cork = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->pulse.pulseSO, "pa_stream_cork"); + pContext->pulse.pa_stream_trigger = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->pulse.pulseSO, "pa_stream_trigger"); + pContext->pulse.pa_stream_begin_write = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->pulse.pulseSO, "pa_stream_begin_write"); + pContext->pulse.pa_stream_write = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->pulse.pulseSO, "pa_stream_write"); + pContext->pulse.pa_stream_peek = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->pulse.pulseSO, "pa_stream_peek"); + pContext->pulse.pa_stream_drop = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->pulse.pulseSO, "pa_stream_drop"); + pContext->pulse.pa_stream_writable_size = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->pulse.pulseSO, "pa_stream_writable_size"); + pContext->pulse.pa_stream_readable_size = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->pulse.pulseSO, "pa_stream_readable_size"); #else /* This strange assignment system is just for type safety. */ ma_pa_mainloop_new_proc _pa_mainloop_new = pa_mainloop_new; @@ -29610,7 +31077,7 @@ static ma_result ma_context_init__pulse(ma_context* pContext, const ma_context_c ma_free(pContext->pulse.pServerName, &pContext->allocationCallbacks); ma_free(pContext->pulse.pApplicationName, &pContext->allocationCallbacks); #ifndef MA_NO_RUNTIME_LINKING - ma_dlclose(pContext, pContext->pulse.pulseSO); + ma_dlclose(ma_context_get_log(pContext), pContext->pulse.pulseSO); #endif return result; } @@ -30174,7 +31641,7 @@ static ma_result ma_context_uninit__jack(ma_context* pContext) pContext->jack.pClientName = NULL; #ifndef MA_NO_RUNTIME_LINKING - ma_dlclose(pContext, pContext->jack.jackSO); + ma_dlclose(ma_context_get_log(pContext), pContext->jack.jackSO); #endif return MA_SUCCESS; @@ -30184,10 +31651,11 @@ static ma_result ma_context_init__jack(ma_context* pContext, const ma_context_co { #ifndef MA_NO_RUNTIME_LINKING const char* libjackNames[] = { -#ifdef MA_WIN32 +#if defined(MA_WIN32) "libjack.dll", "libjack64.dll" -#else +#endif +#if defined(MA_UNIX) "libjack.so", "libjack.so.0" #endif @@ -30195,7 +31663,7 @@ static ma_result ma_context_init__jack(ma_context* pContext, const ma_context_co size_t i; for (i = 0; i < ma_countof(libjackNames); ++i) { - pContext->jack.jackSO = ma_dlopen(pContext, libjackNames[i]); + pContext->jack.jackSO = ma_dlopen(ma_context_get_log(pContext), libjackNames[i]); if (pContext->jack.jackSO != NULL) { break; } @@ -30205,22 +31673,22 @@ static ma_result ma_context_init__jack(ma_context* pContext, const ma_context_co return MA_NO_BACKEND; } - pContext->jack.jack_client_open = (ma_proc)ma_dlsym(pContext, pContext->jack.jackSO, "jack_client_open"); - pContext->jack.jack_client_close = (ma_proc)ma_dlsym(pContext, pContext->jack.jackSO, "jack_client_close"); - pContext->jack.jack_client_name_size = (ma_proc)ma_dlsym(pContext, pContext->jack.jackSO, "jack_client_name_size"); - pContext->jack.jack_set_process_callback = (ma_proc)ma_dlsym(pContext, pContext->jack.jackSO, "jack_set_process_callback"); - pContext->jack.jack_set_buffer_size_callback = (ma_proc)ma_dlsym(pContext, pContext->jack.jackSO, "jack_set_buffer_size_callback"); - pContext->jack.jack_on_shutdown = (ma_proc)ma_dlsym(pContext, pContext->jack.jackSO, "jack_on_shutdown"); - pContext->jack.jack_get_sample_rate = (ma_proc)ma_dlsym(pContext, pContext->jack.jackSO, "jack_get_sample_rate"); - pContext->jack.jack_get_buffer_size = (ma_proc)ma_dlsym(pContext, pContext->jack.jackSO, "jack_get_buffer_size"); - pContext->jack.jack_get_ports = (ma_proc)ma_dlsym(pContext, pContext->jack.jackSO, "jack_get_ports"); - pContext->jack.jack_activate = (ma_proc)ma_dlsym(pContext, pContext->jack.jackSO, "jack_activate"); - pContext->jack.jack_deactivate = (ma_proc)ma_dlsym(pContext, pContext->jack.jackSO, "jack_deactivate"); - pContext->jack.jack_connect = (ma_proc)ma_dlsym(pContext, pContext->jack.jackSO, "jack_connect"); - pContext->jack.jack_port_register = (ma_proc)ma_dlsym(pContext, pContext->jack.jackSO, "jack_port_register"); - pContext->jack.jack_port_name = (ma_proc)ma_dlsym(pContext, pContext->jack.jackSO, "jack_port_name"); - pContext->jack.jack_port_get_buffer = (ma_proc)ma_dlsym(pContext, pContext->jack.jackSO, "jack_port_get_buffer"); - pContext->jack.jack_free = (ma_proc)ma_dlsym(pContext, pContext->jack.jackSO, "jack_free"); + pContext->jack.jack_client_open = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->jack.jackSO, "jack_client_open"); + pContext->jack.jack_client_close = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->jack.jackSO, "jack_client_close"); + pContext->jack.jack_client_name_size = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->jack.jackSO, "jack_client_name_size"); + pContext->jack.jack_set_process_callback = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->jack.jackSO, "jack_set_process_callback"); + pContext->jack.jack_set_buffer_size_callback = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->jack.jackSO, "jack_set_buffer_size_callback"); + pContext->jack.jack_on_shutdown = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->jack.jackSO, "jack_on_shutdown"); + pContext->jack.jack_get_sample_rate = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->jack.jackSO, "jack_get_sample_rate"); + pContext->jack.jack_get_buffer_size = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->jack.jackSO, "jack_get_buffer_size"); + pContext->jack.jack_get_ports = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->jack.jackSO, "jack_get_ports"); + pContext->jack.jack_activate = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->jack.jackSO, "jack_activate"); + pContext->jack.jack_deactivate = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->jack.jackSO, "jack_deactivate"); + pContext->jack.jack_connect = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->jack.jackSO, "jack_connect"); + pContext->jack.jack_port_register = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->jack.jackSO, "jack_port_register"); + pContext->jack.jack_port_name = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->jack.jackSO, "jack_port_name"); + pContext->jack.jack_port_get_buffer = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->jack.jackSO, "jack_port_get_buffer"); + pContext->jack.jack_free = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->jack.jackSO, "jack_free"); #else /* This strange assignment system is here just to ensure type safety of miniaudio's function pointer @@ -30276,7 +31744,7 @@ static ma_result ma_context_init__jack(ma_context* pContext, const ma_context_co if (result != MA_SUCCESS) { ma_free(pContext->jack.pClientName, &pContext->allocationCallbacks); #ifndef MA_NO_RUNTIME_LINKING - ma_dlclose(pContext, pContext->jack.jackSO); + ma_dlclose(ma_context_get_log(pContext), pContext->jack.jackSO); #endif return MA_NO_BACKEND; } @@ -30401,7 +31869,7 @@ structure with three variables and is used to identify which property you are ge which is basically the specific property that you're wanting to retrieve or set. The second is the "scope", which is typically set to kAudioObjectPropertyScopeGlobal, kAudioObjectPropertyScopeInput for input-specific properties and kAudioObjectPropertyScopeOutput for output-specific properties. The last is the "element" which is always set to -kAudioObjectPropertyElementMaster in miniaudio's case. I don't know of any cases where this would be set to anything different. +kAudioObjectPropertyElementMain in miniaudio's case. I don't know of any cases where this would be set to anything different. Back to the earlier issue of device retrieval, you first use the AudioObjectGetPropertyDataSize() API to retrieve the size of the raw data which is just a list of AudioDeviceID's. You use the kAudioObjectSystemObject AudioObjectID, and a property @@ -30410,6 +31878,18 @@ size, allocate a block of memory of that size and then call AudioObjectGetProper AudioDeviceID's so just do "dataSize/sizeof(AudioDeviceID)" to know the device count. */ +#if defined(MA_APPLE_MOBILE) +static void ma_device__on_notification_interruption_began(ma_device* pDevice) +{ + ma_device__on_notification(ma_device_notification_init(pDevice, ma_device_notification_type_interruption_began)); +} + +static void ma_device__on_notification_interruption_ended(ma_device* pDevice) +{ + ma_device__on_notification(ma_device_notification_init(pDevice, ma_device_notification_type_interruption_ended)); +} +#endif + static ma_result ma_result_from_OSStatus(OSStatus status) { switch (status) @@ -30676,15 +32156,15 @@ static ma_result ma_get_channel_map_from_AudioChannelLayout(AudioChannelLayout* { pChannelMap[7] = MA_CHANNEL_SIDE_RIGHT; pChannelMap[6] = MA_CHANNEL_SIDE_LEFT; - } /* Intentional fallthrough. */ + } MA_FALLTHROUGH; /* Intentional fallthrough. */ case kAudioChannelLayoutTag_Hexagonal: { pChannelMap[5] = MA_CHANNEL_BACK_CENTER; - } /* Intentional fallthrough. */ + } MA_FALLTHROUGH; /* Intentional fallthrough. */ case kAudioChannelLayoutTag_Pentagonal: { pChannelMap[4] = MA_CHANNEL_FRONT_CENTER; - } /* Intentional fallghrough. */ + } MA_FALLTHROUGH; /* Intentional fallthrough. */ case kAudioChannelLayoutTag_Quadraphonic: { pChannelMap[3] = MA_CHANNEL_BACK_RIGHT; @@ -30705,6 +32185,14 @@ static ma_result ma_get_channel_map_from_AudioChannelLayout(AudioChannelLayout* return MA_SUCCESS; } +#if (defined(MAC_OS_VERSION_12_0) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_VERSION_12_0) || \ + (defined(__IPHONE_15_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_15_0) +#define AUDIO_OBJECT_PROPERTY_ELEMENT kAudioObjectPropertyElementMain +#else +/* kAudioObjectPropertyElementMaster is deprecated. */ +#define AUDIO_OBJECT_PROPERTY_ELEMENT kAudioObjectPropertyElementMaster +#endif + static ma_result ma_get_device_object_ids__coreaudio(ma_context* pContext, UInt32* pDeviceCount, AudioObjectID** ppDeviceObjectIDs) /* NOTE: Free the returned buffer with ma_free(). */ { AudioObjectPropertyAddress propAddressDevices; @@ -30722,7 +32210,7 @@ static ma_result ma_get_device_object_ids__coreaudio(ma_context* pContext, UInt3 propAddressDevices.mSelector = kAudioHardwarePropertyDevices; propAddressDevices.mScope = kAudioObjectPropertyScopeGlobal; - propAddressDevices.mElement = kAudioObjectPropertyElementMaster; + propAddressDevices.mElement = AUDIO_OBJECT_PROPERTY_ELEMENT; status = ((ma_AudioObjectGetPropertyDataSize_proc)pContext->coreaudio.AudioObjectGetPropertyDataSize)(kAudioObjectSystemObject, &propAddressDevices, 0, NULL, &deviceObjectsDataSize); if (status != noErr) { @@ -30756,7 +32244,7 @@ static ma_result ma_get_AudioObject_uid_as_CFStringRef(ma_context* pContext, Aud propAddress.mSelector = kAudioDevicePropertyDeviceUID; propAddress.mScope = kAudioObjectPropertyScopeGlobal; - propAddress.mElement = kAudioObjectPropertyElementMaster; + propAddress.mElement = AUDIO_OBJECT_PROPERTY_ELEMENT; dataSize = sizeof(*pUID); status = ((ma_AudioObjectGetPropertyData_proc)pContext->coreaudio.AudioObjectGetPropertyData)(objectID, &propAddress, 0, NULL, &dataSize, pUID); @@ -30798,7 +32286,7 @@ static ma_result ma_get_AudioObject_name(ma_context* pContext, AudioObjectID obj propAddress.mSelector = kAudioDevicePropertyDeviceNameCFString; propAddress.mScope = kAudioObjectPropertyScopeGlobal; - propAddress.mElement = kAudioObjectPropertyElementMaster; + propAddress.mElement = AUDIO_OBJECT_PROPERTY_ELEMENT; dataSize = sizeof(deviceName); status = ((ma_AudioObjectGetPropertyData_proc)pContext->coreaudio.AudioObjectGetPropertyData)(objectID, &propAddress, 0, NULL, &dataSize, &deviceName); @@ -30827,7 +32315,7 @@ static ma_bool32 ma_does_AudioObject_support_scope(ma_context* pContext, AudioOb /* To know whether or not a device is an input device we need ot look at the stream configuration. If it has an output channel it's a playback device. */ propAddress.mSelector = kAudioDevicePropertyStreamConfiguration; propAddress.mScope = scope; - propAddress.mElement = kAudioObjectPropertyElementMaster; + propAddress.mElement = AUDIO_OBJECT_PROPERTY_ELEMENT; status = ((ma_AudioObjectGetPropertyDataSize_proc)pContext->coreaudio.AudioObjectGetPropertyDataSize)(deviceObjectID, &propAddress, 0, NULL, &dataSize); if (status != noErr) { @@ -30882,7 +32370,7 @@ static ma_result ma_get_AudioObject_stream_descriptions(ma_context* pContext, Au */ propAddress.mSelector = kAudioStreamPropertyAvailableVirtualFormats; /*kAudioStreamPropertyAvailablePhysicalFormats;*/ propAddress.mScope = (deviceType == ma_device_type_playback) ? kAudioObjectPropertyScopeOutput : kAudioObjectPropertyScopeInput; - propAddress.mElement = kAudioObjectPropertyElementMaster; + propAddress.mElement = AUDIO_OBJECT_PROPERTY_ELEMENT; status = ((ma_AudioObjectGetPropertyDataSize_proc)pContext->coreaudio.AudioObjectGetPropertyDataSize)(deviceObjectID, &propAddress, 0, NULL, &dataSize); if (status != noErr) { @@ -30920,7 +32408,7 @@ static ma_result ma_get_AudioObject_channel_layout(ma_context* pContext, AudioOb propAddress.mSelector = kAudioDevicePropertyPreferredChannelLayout; propAddress.mScope = (deviceType == ma_device_type_playback) ? kAudioObjectPropertyScopeOutput : kAudioObjectPropertyScopeInput; - propAddress.mElement = kAudioObjectPropertyElementMaster; + propAddress.mElement = AUDIO_OBJECT_PROPERTY_ELEMENT; status = ((ma_AudioObjectGetPropertyDataSize_proc)pContext->coreaudio.AudioObjectGetPropertyDataSize)(deviceObjectID, &propAddress, 0, NULL, &dataSize); if (status != noErr) { @@ -31010,7 +32498,7 @@ static ma_result ma_get_AudioObject_sample_rates(ma_context* pContext, AudioObje propAddress.mSelector = kAudioDevicePropertyAvailableNominalSampleRates; propAddress.mScope = (deviceType == ma_device_type_playback) ? kAudioObjectPropertyScopeOutput : kAudioObjectPropertyScopeInput; - propAddress.mElement = kAudioObjectPropertyElementMaster; + propAddress.mElement = AUDIO_OBJECT_PROPERTY_ELEMENT; status = ((ma_AudioObjectGetPropertyDataSize_proc)pContext->coreaudio.AudioObjectGetPropertyDataSize)(deviceObjectID, &propAddress, 0, NULL, &dataSize); if (status != noErr) { @@ -31132,7 +32620,7 @@ static ma_result ma_get_AudioObject_closest_buffer_size_in_frames(ma_context* pC propAddress.mSelector = kAudioDevicePropertyBufferFrameSizeRange; propAddress.mScope = (deviceType == ma_device_type_playback) ? kAudioObjectPropertyScopeOutput : kAudioObjectPropertyScopeInput; - propAddress.mElement = kAudioObjectPropertyElementMaster; + propAddress.mElement = AUDIO_OBJECT_PROPERTY_ELEMENT; dataSize = sizeof(bufferSizeRange); status = ((ma_AudioObjectGetPropertyData_proc)pContext->coreaudio.AudioObjectGetPropertyData)(deviceObjectID, &propAddress, 0, NULL, &dataSize, &bufferSizeRange); @@ -31170,7 +32658,7 @@ static ma_result ma_set_AudioObject_buffer_size_in_frames(ma_context* pContext, /* Try setting the size of the buffer... If this fails we just use whatever is currently set. */ propAddress.mSelector = kAudioDevicePropertyBufferFrameSize; propAddress.mScope = (deviceType == ma_device_type_playback) ? kAudioObjectPropertyScopeOutput : kAudioObjectPropertyScopeInput; - propAddress.mElement = kAudioObjectPropertyElementMaster; + propAddress.mElement = AUDIO_OBJECT_PROPERTY_ELEMENT; ((ma_AudioObjectSetPropertyData_proc)pContext->coreaudio.AudioObjectSetPropertyData)(deviceObjectID, &propAddress, 0, NULL, sizeof(chosenBufferSizeInFrames), &chosenBufferSizeInFrames); @@ -31199,7 +32687,7 @@ static ma_result ma_find_default_AudioObjectID(ma_context* pContext, ma_device_t *pDeviceObjectID = 0; propAddressDefaultDevice.mScope = kAudioObjectPropertyScopeGlobal; - propAddressDefaultDevice.mElement = kAudioObjectPropertyElementMaster; + propAddressDefaultDevice.mElement = AUDIO_OBJECT_PROPERTY_ELEMENT; if (deviceType == ma_device_type_playback) { propAddressDefaultDevice.mSelector = kAudioHardwarePropertyDefaultOutputDevice; } else { @@ -31318,9 +32806,9 @@ static ma_result ma_find_best_format__coreaudio(ma_context* pContext, AudioObjec hasSupportedFormat = MA_FALSE; for (iFormat = 0; iFormat < deviceFormatDescriptionCount; ++iFormat) { - ma_format format; - ma_result formatResult = ma_format_from_AudioStreamBasicDescription(&pDeviceFormatDescriptions[iFormat].mFormat, &format); - if (formatResult == MA_SUCCESS && format != ma_format_unknown) { + ma_format formatFromDescription; + ma_result formatResult = ma_format_from_AudioStreamBasicDescription(&pDeviceFormatDescriptions[iFormat].mFormat, &formatFromDescription); + if (formatResult == MA_SUCCESS && formatFromDescription != ma_format_unknown) { hasSupportedFormat = MA_TRUE; bestDeviceFormatSoFar = pDeviceFormatDescriptions[iFormat].mFormat; break; @@ -32014,7 +33502,7 @@ static OSStatus ma_on_input__coreaudio(void* pUserData, AudioUnitRenderActionFla ma_log_postf(ma_device_get_log(pDevice), MA_LOG_LEVEL_DEBUG, "Failed to allocate AudioBufferList for capture.\n"); return noErr; } - + pRenderedBufferList = (AudioBufferList*)pDevice->coreaudio.pAudioBufferList; MA_ASSERT(pRenderedBufferList); @@ -32272,7 +33760,7 @@ static ma_result ma_context__init_device_tracking__coreaudio(ma_context* pContex if (g_DeviceTrackingInitCounter_CoreAudio == 0) { AudioObjectPropertyAddress propAddress; propAddress.mScope = kAudioObjectPropertyScopeGlobal; - propAddress.mElement = kAudioObjectPropertyElementMaster; + propAddress.mElement = AUDIO_OBJECT_PROPERTY_ELEMENT; ma_mutex_init(&g_DeviceTrackingMutex_CoreAudio); @@ -32302,7 +33790,7 @@ static ma_result ma_context__uninit_device_tracking__coreaudio(ma_context* pCont if (g_DeviceTrackingInitCounter_CoreAudio == 0) { AudioObjectPropertyAddress propAddress; propAddress.mScope = kAudioObjectPropertyScopeGlobal; - propAddress.mElement = kAudioObjectPropertyElementMaster; + propAddress.mElement = AUDIO_OBJECT_PROPERTY_ELEMENT; propAddress.mSelector = kAudioHardwarePropertyDefaultInputDevice; ((ma_AudioObjectRemovePropertyListener_proc)pContext->coreaudio.AudioObjectRemovePropertyListener)(kAudioObjectSystemObject, &propAddress, &ma_default_device_changed__coreaudio, NULL); @@ -32452,7 +33940,7 @@ static ma_result ma_device__untrack__coreaudio(ma_device* pDevice) */ ma_device__on_notification_interruption_began(m_pDevice); } break; - + case AVAudioSessionInterruptionTypeEnded: { ma_log_postf(ma_device_get_log(m_pDevice), MA_LOG_LEVEL_INFO, "[Core Audio] Interruption: AVAudioSessionInterruptionTypeEnded\n"); @@ -32506,7 +33994,7 @@ static ma_result ma_device__untrack__coreaudio(ma_device* pDevice) } ma_log_postf(ma_device_get_log(m_pDevice), MA_LOG_LEVEL_DEBUG, "[Core Audio] Changing Route. inputNumberChannels=%d; outputNumberOfChannels=%d\n", (int)pSession.inputNumberOfChannels, (int)pSession.outputNumberOfChannels); - + /* Let the application know about the route change. */ ma_device__on_notification_rerouted(m_pDevice); } @@ -32753,7 +34241,7 @@ static ma_result ma_device_init_internal__coreaudio(ma_context* pContext, ma_dev propAddress.mSelector = kAudioDevicePropertyNominalSampleRate; propAddress.mScope = (deviceType == ma_device_type_playback) ? kAudioObjectPropertyScopeOutput : kAudioObjectPropertyScopeInput; - propAddress.mElement = kAudioObjectPropertyElementMaster; + propAddress.mElement = AUDIO_OBJECT_PROPERTY_ELEMENT; status = ((ma_AudioObjectSetPropertyData_proc)pContext->coreaudio.AudioObjectSetPropertyData)(deviceObjectID, &propAddress, 0, NULL, sizeof(sampleRateRange), &sampleRateRange); if (status != noErr) { @@ -32879,7 +34367,7 @@ static ma_result ma_device_init_internal__coreaudio(ma_context* pContext, ma_dev @autoreleasepool { AVAudioSession* pAudioSession = [AVAudioSession sharedInstance]; MA_ASSERT(pAudioSession != NULL); - + [pAudioSession setPreferredIOBufferDuration:((float)actualPeriodSizeInFrames / pAudioSession.sampleRate) error:nil]; actualPeriodSizeInFrames = ma_next_power_of_2((ma_uint32)(pAudioSession.IOBufferDuration * pAudioSession.sampleRate)); } @@ -33120,7 +34608,7 @@ static ma_result ma_device_init__coreaudio(ma_device* pDevice, const ma_device_c #if defined(MA_APPLE_DESKTOP) ma_get_AudioObject_uid(pDevice->pContext, pDevice->coreaudio.deviceObjectIDCapture, sizeof(pDevice->capture.id.coreaudio), pDevice->capture.id.coreaudio); - + /* If we are using the default device we'll need to listen for changes to the system's default device so we can seemlessly switch the device in the background. @@ -33184,7 +34672,7 @@ static ma_result ma_device_init__coreaudio(ma_device* pDevice, const ma_device_c #if defined(MA_APPLE_DESKTOP) ma_get_AudioObject_uid(pDevice->pContext, pDevice->coreaudio.deviceObjectIDPlayback, sizeof(pDevice->playback.id.coreaudio), pDevice->playback.id.coreaudio); - + /* If we are using the default device we'll need to listen for changes to the system's default device so we can seemlessly switch the device in the background. @@ -33280,9 +34768,9 @@ static ma_result ma_context_uninit__coreaudio(ma_context* pContext) #endif #if !defined(MA_NO_RUNTIME_LINKING) && !defined(MA_APPLE_MOBILE) - ma_dlclose(pContext, pContext->coreaudio.hAudioUnit); - ma_dlclose(pContext, pContext->coreaudio.hCoreAudio); - ma_dlclose(pContext, pContext->coreaudio.hCoreFoundation); + ma_dlclose(ma_context_get_log(pContext), pContext->coreaudio.hAudioUnit); + ma_dlclose(ma_context_get_log(pContext), pContext->coreaudio.hCoreAudio); + ma_dlclose(ma_context_get_log(pContext), pContext->coreaudio.hCoreFoundation); #endif #if !defined(MA_APPLE_MOBILE) @@ -33371,26 +34859,26 @@ static ma_result ma_context_init__coreaudio(ma_context* pContext, const ma_conte #endif #if !defined(MA_NO_RUNTIME_LINKING) && !defined(MA_APPLE_MOBILE) - pContext->coreaudio.hCoreFoundation = ma_dlopen(pContext, "CoreFoundation.framework/CoreFoundation"); + pContext->coreaudio.hCoreFoundation = ma_dlopen(ma_context_get_log(pContext), "/System/Library/Frameworks/CoreFoundation.framework/CoreFoundation"); if (pContext->coreaudio.hCoreFoundation == NULL) { return MA_API_NOT_FOUND; } - pContext->coreaudio.CFStringGetCString = ma_dlsym(pContext, pContext->coreaudio.hCoreFoundation, "CFStringGetCString"); - pContext->coreaudio.CFRelease = ma_dlsym(pContext, pContext->coreaudio.hCoreFoundation, "CFRelease"); + pContext->coreaudio.CFStringGetCString = ma_dlsym(ma_context_get_log(pContext), pContext->coreaudio.hCoreFoundation, "CFStringGetCString"); + pContext->coreaudio.CFRelease = ma_dlsym(ma_context_get_log(pContext), pContext->coreaudio.hCoreFoundation, "CFRelease"); - pContext->coreaudio.hCoreAudio = ma_dlopen(pContext, "CoreAudio.framework/CoreAudio"); + pContext->coreaudio.hCoreAudio = ma_dlopen(ma_context_get_log(pContext), "/System/Library/Frameworks/CoreAudio.framework/CoreAudio"); if (pContext->coreaudio.hCoreAudio == NULL) { - ma_dlclose(pContext, pContext->coreaudio.hCoreFoundation); + ma_dlclose(ma_context_get_log(pContext), pContext->coreaudio.hCoreFoundation); return MA_API_NOT_FOUND; } - pContext->coreaudio.AudioObjectGetPropertyData = ma_dlsym(pContext, pContext->coreaudio.hCoreAudio, "AudioObjectGetPropertyData"); - pContext->coreaudio.AudioObjectGetPropertyDataSize = ma_dlsym(pContext, pContext->coreaudio.hCoreAudio, "AudioObjectGetPropertyDataSize"); - pContext->coreaudio.AudioObjectSetPropertyData = ma_dlsym(pContext, pContext->coreaudio.hCoreAudio, "AudioObjectSetPropertyData"); - pContext->coreaudio.AudioObjectAddPropertyListener = ma_dlsym(pContext, pContext->coreaudio.hCoreAudio, "AudioObjectAddPropertyListener"); - pContext->coreaudio.AudioObjectRemovePropertyListener = ma_dlsym(pContext, pContext->coreaudio.hCoreAudio, "AudioObjectRemovePropertyListener"); + pContext->coreaudio.AudioObjectGetPropertyData = ma_dlsym(ma_context_get_log(pContext), pContext->coreaudio.hCoreAudio, "AudioObjectGetPropertyData"); + pContext->coreaudio.AudioObjectGetPropertyDataSize = ma_dlsym(ma_context_get_log(pContext), pContext->coreaudio.hCoreAudio, "AudioObjectGetPropertyDataSize"); + pContext->coreaudio.AudioObjectSetPropertyData = ma_dlsym(ma_context_get_log(pContext), pContext->coreaudio.hCoreAudio, "AudioObjectSetPropertyData"); + pContext->coreaudio.AudioObjectAddPropertyListener = ma_dlsym(ma_context_get_log(pContext), pContext->coreaudio.hCoreAudio, "AudioObjectAddPropertyListener"); + pContext->coreaudio.AudioObjectRemovePropertyListener = ma_dlsym(ma_context_get_log(pContext), pContext->coreaudio.hCoreAudio, "AudioObjectRemovePropertyListener"); /* It looks like Apple has moved some APIs from AudioUnit into AudioToolbox on more recent versions of macOS. They are still @@ -33398,35 +34886,35 @@ static ma_result ma_context_init__coreaudio(ma_context* pContext, const ma_conte The way it'll work is that it'll first try AudioUnit, and if the required symbols are not present there we'll fall back to AudioToolbox. */ - pContext->coreaudio.hAudioUnit = ma_dlopen(pContext, "AudioUnit.framework/AudioUnit"); + pContext->coreaudio.hAudioUnit = ma_dlopen(ma_context_get_log(pContext), "/System/Library/Frameworks/AudioUnit.framework/AudioUnit"); if (pContext->coreaudio.hAudioUnit == NULL) { - ma_dlclose(pContext, pContext->coreaudio.hCoreAudio); - ma_dlclose(pContext, pContext->coreaudio.hCoreFoundation); + ma_dlclose(ma_context_get_log(pContext), pContext->coreaudio.hCoreAudio); + ma_dlclose(ma_context_get_log(pContext), pContext->coreaudio.hCoreFoundation); return MA_API_NOT_FOUND; } - if (ma_dlsym(pContext, pContext->coreaudio.hAudioUnit, "AudioComponentFindNext") == NULL) { + if (ma_dlsym(ma_context_get_log(pContext), pContext->coreaudio.hAudioUnit, "AudioComponentFindNext") == NULL) { /* Couldn't find the required symbols in AudioUnit, so fall back to AudioToolbox. */ - ma_dlclose(pContext, pContext->coreaudio.hAudioUnit); - pContext->coreaudio.hAudioUnit = ma_dlopen(pContext, "AudioToolbox.framework/AudioToolbox"); + ma_dlclose(ma_context_get_log(pContext), pContext->coreaudio.hAudioUnit); + pContext->coreaudio.hAudioUnit = ma_dlopen(ma_context_get_log(pContext), "/System/Library/Frameworks/AudioToolbox.framework/AudioToolbox"); if (pContext->coreaudio.hAudioUnit == NULL) { - ma_dlclose(pContext, pContext->coreaudio.hCoreAudio); - ma_dlclose(pContext, pContext->coreaudio.hCoreFoundation); + ma_dlclose(ma_context_get_log(pContext), pContext->coreaudio.hCoreAudio); + ma_dlclose(ma_context_get_log(pContext), pContext->coreaudio.hCoreFoundation); return MA_API_NOT_FOUND; } } - pContext->coreaudio.AudioComponentFindNext = ma_dlsym(pContext, pContext->coreaudio.hAudioUnit, "AudioComponentFindNext"); - pContext->coreaudio.AudioComponentInstanceDispose = ma_dlsym(pContext, pContext->coreaudio.hAudioUnit, "AudioComponentInstanceDispose"); - pContext->coreaudio.AudioComponentInstanceNew = ma_dlsym(pContext, pContext->coreaudio.hAudioUnit, "AudioComponentInstanceNew"); - pContext->coreaudio.AudioOutputUnitStart = ma_dlsym(pContext, pContext->coreaudio.hAudioUnit, "AudioOutputUnitStart"); - pContext->coreaudio.AudioOutputUnitStop = ma_dlsym(pContext, pContext->coreaudio.hAudioUnit, "AudioOutputUnitStop"); - pContext->coreaudio.AudioUnitAddPropertyListener = ma_dlsym(pContext, pContext->coreaudio.hAudioUnit, "AudioUnitAddPropertyListener"); - pContext->coreaudio.AudioUnitGetPropertyInfo = ma_dlsym(pContext, pContext->coreaudio.hAudioUnit, "AudioUnitGetPropertyInfo"); - pContext->coreaudio.AudioUnitGetProperty = ma_dlsym(pContext, pContext->coreaudio.hAudioUnit, "AudioUnitGetProperty"); - pContext->coreaudio.AudioUnitSetProperty = ma_dlsym(pContext, pContext->coreaudio.hAudioUnit, "AudioUnitSetProperty"); - pContext->coreaudio.AudioUnitInitialize = ma_dlsym(pContext, pContext->coreaudio.hAudioUnit, "AudioUnitInitialize"); - pContext->coreaudio.AudioUnitRender = ma_dlsym(pContext, pContext->coreaudio.hAudioUnit, "AudioUnitRender"); + pContext->coreaudio.AudioComponentFindNext = ma_dlsym(ma_context_get_log(pContext), pContext->coreaudio.hAudioUnit, "AudioComponentFindNext"); + pContext->coreaudio.AudioComponentInstanceDispose = ma_dlsym(ma_context_get_log(pContext), pContext->coreaudio.hAudioUnit, "AudioComponentInstanceDispose"); + pContext->coreaudio.AudioComponentInstanceNew = ma_dlsym(ma_context_get_log(pContext), pContext->coreaudio.hAudioUnit, "AudioComponentInstanceNew"); + pContext->coreaudio.AudioOutputUnitStart = ma_dlsym(ma_context_get_log(pContext), pContext->coreaudio.hAudioUnit, "AudioOutputUnitStart"); + pContext->coreaudio.AudioOutputUnitStop = ma_dlsym(ma_context_get_log(pContext), pContext->coreaudio.hAudioUnit, "AudioOutputUnitStop"); + pContext->coreaudio.AudioUnitAddPropertyListener = ma_dlsym(ma_context_get_log(pContext), pContext->coreaudio.hAudioUnit, "AudioUnitAddPropertyListener"); + pContext->coreaudio.AudioUnitGetPropertyInfo = ma_dlsym(ma_context_get_log(pContext), pContext->coreaudio.hAudioUnit, "AudioUnitGetPropertyInfo"); + pContext->coreaudio.AudioUnitGetProperty = ma_dlsym(ma_context_get_log(pContext), pContext->coreaudio.hAudioUnit, "AudioUnitGetProperty"); + pContext->coreaudio.AudioUnitSetProperty = ma_dlsym(ma_context_get_log(pContext), pContext->coreaudio.hAudioUnit, "AudioUnitSetProperty"); + pContext->coreaudio.AudioUnitInitialize = ma_dlsym(ma_context_get_log(pContext), pContext->coreaudio.hAudioUnit, "AudioUnitInitialize"); + pContext->coreaudio.AudioUnitRender = ma_dlsym(ma_context_get_log(pContext), pContext->coreaudio.hAudioUnit, "AudioUnitRender"); #else pContext->coreaudio.CFStringGetCString = (ma_proc)CFStringGetCString; pContext->coreaudio.CFRelease = (ma_proc)CFRelease; @@ -33468,9 +34956,9 @@ static ma_result ma_context_init__coreaudio(ma_context* pContext, const ma_conte pContext->coreaudio.component = ((ma_AudioComponentFindNext_proc)pContext->coreaudio.AudioComponentFindNext)(NULL, &desc); if (pContext->coreaudio.component == NULL) { #if !defined(MA_NO_RUNTIME_LINKING) && !defined(MA_APPLE_MOBILE) - ma_dlclose(pContext, pContext->coreaudio.hAudioUnit); - ma_dlclose(pContext, pContext->coreaudio.hCoreAudio); - ma_dlclose(pContext, pContext->coreaudio.hCoreFoundation); + ma_dlclose(ma_context_get_log(pContext), pContext->coreaudio.hAudioUnit); + ma_dlclose(ma_context_get_log(pContext), pContext->coreaudio.hCoreAudio); + ma_dlclose(ma_context_get_log(pContext), pContext->coreaudio.hCoreFoundation); #endif return MA_FAILED_TO_INIT_BACKEND; } @@ -33480,9 +34968,9 @@ static ma_result ma_context_init__coreaudio(ma_context* pContext, const ma_conte result = ma_context__init_device_tracking__coreaudio(pContext); if (result != MA_SUCCESS) { #if !defined(MA_NO_RUNTIME_LINKING) && !defined(MA_APPLE_MOBILE) - ma_dlclose(pContext, pContext->coreaudio.hAudioUnit); - ma_dlclose(pContext, pContext->coreaudio.hCoreAudio); - ma_dlclose(pContext, pContext->coreaudio.hCoreFoundation); + ma_dlclose(ma_context_get_log(pContext), pContext->coreaudio.hAudioUnit); + ma_dlclose(ma_context_get_log(pContext), pContext->coreaudio.hCoreAudio); + ma_dlclose(ma_context_get_log(pContext), pContext->coreaudio.hCoreFoundation); #endif return result; } @@ -34303,7 +35791,7 @@ static ma_result ma_context_init__sndio(ma_context* pContext, const ma_context_c size_t i; for (i = 0; i < ma_countof(libsndioNames); ++i) { - pContext->sndio.sndioSO = ma_dlopen(pContext, libsndioNames[i]); + pContext->sndio.sndioSO = ma_dlopen(ma_context_get_log(pContext), libsndioNames[i]); if (pContext->sndio.sndioSO != NULL) { break; } @@ -34313,16 +35801,16 @@ static ma_result ma_context_init__sndio(ma_context* pContext, const ma_context_c return MA_NO_BACKEND; } - pContext->sndio.sio_open = (ma_proc)ma_dlsym(pContext, pContext->sndio.sndioSO, "sio_open"); - pContext->sndio.sio_close = (ma_proc)ma_dlsym(pContext, pContext->sndio.sndioSO, "sio_close"); - pContext->sndio.sio_setpar = (ma_proc)ma_dlsym(pContext, pContext->sndio.sndioSO, "sio_setpar"); - pContext->sndio.sio_getpar = (ma_proc)ma_dlsym(pContext, pContext->sndio.sndioSO, "sio_getpar"); - pContext->sndio.sio_getcap = (ma_proc)ma_dlsym(pContext, pContext->sndio.sndioSO, "sio_getcap"); - pContext->sndio.sio_write = (ma_proc)ma_dlsym(pContext, pContext->sndio.sndioSO, "sio_write"); - pContext->sndio.sio_read = (ma_proc)ma_dlsym(pContext, pContext->sndio.sndioSO, "sio_read"); - pContext->sndio.sio_start = (ma_proc)ma_dlsym(pContext, pContext->sndio.sndioSO, "sio_start"); - pContext->sndio.sio_stop = (ma_proc)ma_dlsym(pContext, pContext->sndio.sndioSO, "sio_stop"); - pContext->sndio.sio_initpar = (ma_proc)ma_dlsym(pContext, pContext->sndio.sndioSO, "sio_initpar"); + pContext->sndio.sio_open = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->sndio.sndioSO, "sio_open"); + pContext->sndio.sio_close = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->sndio.sndioSO, "sio_close"); + pContext->sndio.sio_setpar = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->sndio.sndioSO, "sio_setpar"); + pContext->sndio.sio_getpar = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->sndio.sndioSO, "sio_getpar"); + pContext->sndio.sio_getcap = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->sndio.sndioSO, "sio_getcap"); + pContext->sndio.sio_write = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->sndio.sndioSO, "sio_write"); + pContext->sndio.sio_read = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->sndio.sndioSO, "sio_read"); + pContext->sndio.sio_start = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->sndio.sndioSO, "sio_start"); + pContext->sndio.sio_stop = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->sndio.sndioSO, "sio_stop"); + pContext->sndio.sio_initpar = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->sndio.sndioSO, "sio_initpar"); #else pContext->sndio.sio_open = sio_open; pContext->sndio.sio_close = sio_close; @@ -34783,8 +36271,13 @@ static ma_result ma_device_init_fd__audio4(ma_device* pDevice, const ma_device_c "/dev/audio", "/dev/audio0" }; + const char* pDefaultDeviceCtlNames[] = { + "/dev/audioctl", + "/dev/audioctl0" + }; int fd; int fdFlags = 0; + size_t iDefaultDevice = (size_t)-1; ma_format internalFormat; ma_uint32 internalChannels; ma_uint32 internalSampleRate; @@ -34803,11 +36296,11 @@ static ma_result ma_device_init_fd__audio4(ma_device* pDevice, const ma_device_c } /*fdFlags |= O_NONBLOCK;*/ + /* Find the index of the default device as a start. We'll use this index later. Set it to (size_t)-1 otherwise. */ if (pDescriptor->pDeviceID == NULL) { /* Default device. */ - size_t iDevice; - for (iDevice = 0; iDevice < ma_countof(pDefaultDeviceNames); ++iDevice) { - fd = open(pDefaultDeviceNames[iDevice], fdFlags, 0); + for (iDefaultDevice = 0; iDefaultDevice < ma_countof(pDefaultDeviceNames); ++iDefaultDevice) { + fd = open(pDefaultDeviceNames[iDefaultDevice], fdFlags, 0); if (fd != -1) { break; } @@ -34815,6 +36308,16 @@ static ma_result ma_device_init_fd__audio4(ma_device* pDevice, const ma_device_c } else { /* Specific device. */ fd = open(pDescriptor->pDeviceID->audio4, fdFlags, 0); + + for (iDefaultDevice = 0; iDefaultDevice < ma_countof(pDefaultDeviceNames); iDefaultDevice += 1) { + if (ma_strcmp(pDefaultDeviceNames[iDefaultDevice], pDescriptor->pDeviceID->audio4) == 0) { + break; + } + } + + if (iDefaultDevice == ma_countof(pDefaultDeviceNames)) { + iDefaultDevice = (size_t)-1; + } } if (fd == -1) { @@ -34825,6 +36328,7 @@ static ma_result ma_device_init_fd__audio4(ma_device* pDevice, const ma_device_c #if !defined(MA_AUDIO4_USE_NEW_API) /* Old API */ { audio_info_t fdInfo; + int fdInfoResult = -1; /* The documentation is a little bit unclear to me as to how it handles formats. It says the @@ -34844,6 +36348,28 @@ static ma_result ma_device_init_fd__audio4(ma_device* pDevice, const ma_device_c */ AUDIO_INITINFO(&fdInfo); + /* + Get the default format from the audioctl file if we're asking for a default device. If we + retrieve it from /dev/audio it'll default to mono 8000Hz. + */ + if (iDefaultDevice != (size_t)-1) { + /* We're using a default device. Get the info from the /dev/audioctl file instead of /dev/audio. */ + int fdctl = open(pDefaultDeviceCtlNames[iDefaultDevice], fdFlags, 0); + if (fdctl != -1) { + fdInfoResult = ioctl(fdctl, AUDIO_GETINFO, &fdInfo); + close(fdctl); + } + } + + if (fdInfoResult == -1) { + /* We still don't have the default device info so just retrieve it from the main audio device. */ + if (ioctl(fd, AUDIO_GETINFO, &fdInfo) < 0) { + close(fd); + ma_log_post(ma_device_get_log(pDevice), MA_LOG_LEVEL_ERROR, "[audio4] AUDIO_GETINFO failed."); + return ma_result_from_errno(errno); + } + } + /* We get the driver to do as much of the data conversion as possible. */ if (deviceType == ma_device_type_capture) { fdInfo.mode = AUMODE_RECORD; @@ -35831,6 +37357,9 @@ static ma_result ma_context_init__oss(ma_context* pContext, const ma_context_con #endif /* OSS */ + + + /****************************************************************************** AAudio Backend @@ -35849,6 +37378,7 @@ typedef int32_t ma_aaudio_performance_mo typedef int32_t ma_aaudio_usage_t; typedef int32_t ma_aaudio_content_type_t; typedef int32_t ma_aaudio_input_preset_t; +typedef int32_t ma_aaudio_allowed_capture_policy_t; typedef int32_t ma_aaudio_data_callback_result_t; typedef struct ma_AAudioStreamBuilder_t* ma_AAudioStreamBuilder; typedef struct ma_AAudioStream_t* ma_AAudioStream; @@ -35923,6 +37453,11 @@ typedef struct ma_AAudioStream_t* ma_AAudioStream; #define MA_AAUDIO_INPUT_PRESET_UNPROCESSED 9 #define MA_AAUDIO_INPUT_PRESET_VOICE_PERFORMANCE 10 +/* Allowed Capture Policies */ +#define MA_AAUDIO_ALLOW_CAPTURE_BY_ALL 1 +#define MA_AAUDIO_ALLOW_CAPTURE_BY_SYSTEM 2 +#define MA_AAUDIO_ALLOW_CAPTURE_BY_NONE 3 + /* Callback results. */ #define MA_AAUDIO_CALLBACK_RESULT_CONTINUE 0 #define MA_AAUDIO_CALLBACK_RESULT_STOP 1 @@ -35947,6 +37482,7 @@ typedef void (* MA_PFN_AAudioStreamBuilder_setPerformanceMod typedef void (* MA_PFN_AAudioStreamBuilder_setUsage) (ma_AAudioStreamBuilder* pBuilder, ma_aaudio_usage_t contentType); typedef void (* MA_PFN_AAudioStreamBuilder_setContentType) (ma_AAudioStreamBuilder* pBuilder, ma_aaudio_content_type_t contentType); typedef void (* MA_PFN_AAudioStreamBuilder_setInputPreset) (ma_AAudioStreamBuilder* pBuilder, ma_aaudio_input_preset_t inputPreset); +typedef void (* MA_PFN_AAudioStreamBuilder_setAllowedCapturePolicy) (ma_AAudioStreamBuilder* pBuilder, ma_aaudio_allowed_capture_policy_t policy); typedef ma_aaudio_result_t (* MA_PFN_AAudioStreamBuilder_openStream) (ma_AAudioStreamBuilder* pBuilder, ma_AAudioStream** ppStream); typedef ma_aaudio_result_t (* MA_PFN_AAudioStream_close) (ma_AAudioStream* pStream); typedef ma_aaudio_stream_state_t (* MA_PFN_AAudioStream_getState) (ma_AAudioStream* pStream); @@ -35974,22 +37510,22 @@ static ma_result ma_result_from_aaudio(ma_aaudio_result_t resultAA) static ma_aaudio_usage_t ma_to_usage__aaudio(ma_aaudio_usage usage) { switch (usage) { - case ma_aaudio_usage_announcement: return MA_AAUDIO_USAGE_MEDIA; - case ma_aaudio_usage_emergency: return MA_AAUDIO_USAGE_VOICE_COMMUNICATION; - case ma_aaudio_usage_safety: return MA_AAUDIO_USAGE_VOICE_COMMUNICATION_SIGNALLING; - case ma_aaudio_usage_vehicle_status: return MA_AAUDIO_USAGE_ALARM; - case ma_aaudio_usage_alarm: return MA_AAUDIO_USAGE_NOTIFICATION; - case ma_aaudio_usage_assistance_accessibility: return MA_AAUDIO_USAGE_NOTIFICATION_RINGTONE; - case ma_aaudio_usage_assistance_navigation_guidance: return MA_AAUDIO_USAGE_NOTIFICATION_EVENT; - case ma_aaudio_usage_assistance_sonification: return MA_AAUDIO_USAGE_ASSISTANCE_ACCESSIBILITY; - case ma_aaudio_usage_assitant: return MA_AAUDIO_USAGE_ASSISTANCE_NAVIGATION_GUIDANCE; - case ma_aaudio_usage_game: return MA_AAUDIO_USAGE_ASSISTANCE_SONIFICATION; - case ma_aaudio_usage_media: return MA_AAUDIO_USAGE_GAME; - case ma_aaudio_usage_notification: return MA_AAUDIO_USAGE_ASSISTANT; - case ma_aaudio_usage_notification_event: return MA_AAUDIO_SYSTEM_USAGE_EMERGENCY; - case ma_aaudio_usage_notification_ringtone: return MA_AAUDIO_SYSTEM_USAGE_SAFETY; - case ma_aaudio_usage_voice_communication: return MA_AAUDIO_SYSTEM_USAGE_VEHICLE_STATUS; - case ma_aaudio_usage_voice_communication_signalling: return MA_AAUDIO_SYSTEM_USAGE_ANNOUNCEMENT; + case ma_aaudio_usage_media: return MA_AAUDIO_USAGE_MEDIA; + case ma_aaudio_usage_voice_communication: return MA_AAUDIO_USAGE_VOICE_COMMUNICATION; + case ma_aaudio_usage_voice_communication_signalling: return MA_AAUDIO_USAGE_VOICE_COMMUNICATION_SIGNALLING; + case ma_aaudio_usage_alarm: return MA_AAUDIO_USAGE_ALARM; + case ma_aaudio_usage_notification: return MA_AAUDIO_USAGE_NOTIFICATION; + case ma_aaudio_usage_notification_ringtone: return MA_AAUDIO_USAGE_NOTIFICATION_RINGTONE; + case ma_aaudio_usage_notification_event: return MA_AAUDIO_USAGE_NOTIFICATION_EVENT; + case ma_aaudio_usage_assistance_accessibility: return MA_AAUDIO_USAGE_ASSISTANCE_ACCESSIBILITY; + case ma_aaudio_usage_assistance_navigation_guidance: return MA_AAUDIO_USAGE_ASSISTANCE_NAVIGATION_GUIDANCE; + case ma_aaudio_usage_assistance_sonification: return MA_AAUDIO_USAGE_ASSISTANCE_SONIFICATION; + case ma_aaudio_usage_game: return MA_AAUDIO_USAGE_GAME; + case ma_aaudio_usage_assitant: return MA_AAUDIO_USAGE_ASSISTANT; + case ma_aaudio_usage_emergency: return MA_AAUDIO_SYSTEM_USAGE_EMERGENCY; + case ma_aaudio_usage_safety: return MA_AAUDIO_SYSTEM_USAGE_SAFETY; + case ma_aaudio_usage_vehicle_status: return MA_AAUDIO_SYSTEM_USAGE_VEHICLE_STATUS; + case ma_aaudio_usage_announcement: return MA_AAUDIO_SYSTEM_USAGE_ANNOUNCEMENT; default: break; } @@ -35999,10 +37535,10 @@ static ma_aaudio_usage_t ma_to_usage__aaudio(ma_aaudio_usage usage) static ma_aaudio_content_type_t ma_to_content_type__aaudio(ma_aaudio_content_type contentType) { switch (contentType) { - case ma_aaudio_content_type_movie: return MA_AAUDIO_CONTENT_TYPE_MOVIE; - case ma_aaudio_content_type_music: return MA_AAUDIO_CONTENT_TYPE_MUSIC; - case ma_aaudio_content_type_sonification: return MA_AAUDIO_CONTENT_TYPE_SONIFICATION; case ma_aaudio_content_type_speech: return MA_AAUDIO_CONTENT_TYPE_SPEECH; + case ma_aaudio_content_type_music: return MA_AAUDIO_CONTENT_TYPE_MUSIC; + case ma_aaudio_content_type_movie: return MA_AAUDIO_CONTENT_TYPE_MOVIE; + case ma_aaudio_content_type_sonification: return MA_AAUDIO_CONTENT_TYPE_SONIFICATION; default: break; } @@ -36014,9 +37550,9 @@ static ma_aaudio_input_preset_t ma_to_input_preset__aaudio(ma_aaudio_input_prese switch (inputPreset) { case ma_aaudio_input_preset_generic: return MA_AAUDIO_INPUT_PRESET_GENERIC; case ma_aaudio_input_preset_camcorder: return MA_AAUDIO_INPUT_PRESET_CAMCORDER; - case ma_aaudio_input_preset_unprocessed: return MA_AAUDIO_INPUT_PRESET_UNPROCESSED; case ma_aaudio_input_preset_voice_recognition: return MA_AAUDIO_INPUT_PRESET_VOICE_RECOGNITION; case ma_aaudio_input_preset_voice_communication: return MA_AAUDIO_INPUT_PRESET_VOICE_COMMUNICATION; + case ma_aaudio_input_preset_unprocessed: return MA_AAUDIO_INPUT_PRESET_UNPROCESSED; case ma_aaudio_input_preset_voice_performance: return MA_AAUDIO_INPUT_PRESET_VOICE_PERFORMANCE; default: break; } @@ -36024,8 +37560,22 @@ static ma_aaudio_input_preset_t ma_to_input_preset__aaudio(ma_aaudio_input_prese return MA_AAUDIO_INPUT_PRESET_GENERIC; } +static ma_aaudio_allowed_capture_policy_t ma_to_allowed_capture_policy__aaudio(ma_aaudio_allowed_capture_policy allowedCapturePolicy) +{ + switch (allowedCapturePolicy) { + case ma_aaudio_allow_capture_by_all: return MA_AAUDIO_ALLOW_CAPTURE_BY_ALL; + case ma_aaudio_allow_capture_by_system: return MA_AAUDIO_ALLOW_CAPTURE_BY_SYSTEM; + case ma_aaudio_allow_capture_by_none: return MA_AAUDIO_ALLOW_CAPTURE_BY_NONE; + default: break; + } + + return MA_AAUDIO_ALLOW_CAPTURE_BY_ALL; +} + static void ma_stream_error_callback__aaudio(ma_AAudioStream* pStream, void* pUserData, ma_aaudio_result_t error) { + ma_result result; + ma_job job; ma_device* pDevice = (ma_device*)pUserData; MA_ASSERT(pDevice != NULL); @@ -36034,26 +37584,24 @@ static void ma_stream_error_callback__aaudio(ma_AAudioStream* pStream, void* pUs ma_log_postf(ma_device_get_log(pDevice), MA_LOG_LEVEL_INFO, "[AAudio] ERROR CALLBACK: error=%d, AAudioStream_getState()=%d\n", error, ((MA_PFN_AAudioStream_getState)pDevice->pContext->aaudio.AAudioStream_getState)(pStream)); /* - From the documentation for AAudio, when a device is disconnected all we can do is stop it. However, we cannot stop it from the callback - we need - to do it from another thread. Therefore we are going to use an event thread for the AAudio backend to do this cleanly and safely. + When we get an error, we'll assume that the stream is in an erroneous state and needs to be restarted. From the documentation, + we cannot do this from the error callback. Therefore we are going to use an event thread for the AAudio backend to do this + cleanly and safely. */ - if (((MA_PFN_AAudioStream_getState)pDevice->pContext->aaudio.AAudioStream_getState)(pStream) == MA_AAUDIO_STREAM_STATE_DISCONNECTED) { - /* We need to post a job to the job thread for processing. This will reroute the device by reinitializing the stream. */ - ma_result result; - ma_job job = ma_job_init(MA_JOB_TYPE_DEVICE_AAUDIO_REROUTE); - job.data.device.aaudio.reroute.pDevice = pDevice; + job = ma_job_init(MA_JOB_TYPE_DEVICE_AAUDIO_REROUTE); + job.data.device.aaudio.reroute.pDevice = pDevice; - if (pStream == pDevice->aaudio.pStreamCapture) { - job.data.device.aaudio.reroute.deviceType = ma_device_type_capture; - } else { - job.data.device.aaudio.reroute.deviceType = ma_device_type_playback; - } + if (pStream == pDevice->aaudio.pStreamCapture) { + job.data.device.aaudio.reroute.deviceType = ma_device_type_capture; + } + else { + job.data.device.aaudio.reroute.deviceType = ma_device_type_playback; + } - result = ma_device_job_thread_post(&pDevice->pContext->aaudio.jobThread, &job); - if (result != MA_SUCCESS) { - ma_log_postf(ma_device_get_log(pDevice), MA_LOG_LEVEL_INFO, "[AAudio] Device Disconnected. Failed to post job for rerouting.\n"); - return; - } + result = ma_device_job_thread_post(&pDevice->pContext->aaudio.jobThread, &job); + if (result != MA_SUCCESS) { + ma_log_postf(ma_device_get_log(pDevice), MA_LOG_LEVEL_INFO, "[AAudio] Device Disconnected. Failed to post job for rerouting.\n"); + return; } } @@ -36083,7 +37631,6 @@ static ma_result ma_create_and_configure_AAudioStreamBuilder__aaudio(ma_context* { ma_AAudioStreamBuilder* pBuilder; ma_aaudio_result_t resultAA; - ma_uint32 bufferCapacityInFrames; /* Safety. */ *ppBuilder = NULL; @@ -36125,17 +37672,26 @@ static ma_result ma_create_and_configure_AAudioStreamBuilder__aaudio(ma_context* } } + /* - AAudio is annoying when it comes to it's buffer calculation stuff because it doesn't let you - retrieve the actual sample rate until after you've opened the stream. But you need to configure - the buffer capacity before you open the stream... :/ - - To solve, we're just going to assume MA_DEFAULT_SAMPLE_RATE (48000) and move on. + There have been reports where setting the frames per data callback results in an error + later on from Android. To address this, I'm experimenting with simply not setting it on + anything from Android 11 and earlier. Suggestions welcome on how we might be able to make + this more targetted. */ - bufferCapacityInFrames = ma_calculate_buffer_size_in_frames_from_descriptor(pDescriptor, pDescriptor->sampleRate, pConfig->performanceProfile) * pDescriptor->periodCount; + if (!pConfig->aaudio.enableCompatibilityWorkarounds || ma_android_sdk_version() > 30) { + /* + AAudio is annoying when it comes to it's buffer calculation stuff because it doesn't let you + retrieve the actual sample rate until after you've opened the stream. But you need to configure + the buffer capacity before you open the stream... :/ - ((MA_PFN_AAudioStreamBuilder_setBufferCapacityInFrames)pContext->aaudio.AAudioStreamBuilder_setBufferCapacityInFrames)(pBuilder, bufferCapacityInFrames); - ((MA_PFN_AAudioStreamBuilder_setFramesPerDataCallback)pContext->aaudio.AAudioStreamBuilder_setFramesPerDataCallback)(pBuilder, bufferCapacityInFrames / pDescriptor->periodCount); + To solve, we're just going to assume MA_DEFAULT_SAMPLE_RATE (48000) and move on. + */ + ma_uint32 bufferCapacityInFrames = ma_calculate_buffer_size_in_frames_from_descriptor(pDescriptor, pDescriptor->sampleRate, pConfig->performanceProfile) * pDescriptor->periodCount; + + ((MA_PFN_AAudioStreamBuilder_setBufferCapacityInFrames)pContext->aaudio.AAudioStreamBuilder_setBufferCapacityInFrames)(pBuilder, bufferCapacityInFrames); + ((MA_PFN_AAudioStreamBuilder_setFramesPerDataCallback)pContext->aaudio.AAudioStreamBuilder_setFramesPerDataCallback)(pBuilder, bufferCapacityInFrames / pDescriptor->periodCount); + } if (deviceType == ma_device_type_capture) { if (pConfig->aaudio.inputPreset != ma_aaudio_input_preset_default && pContext->aaudio.AAudioStreamBuilder_setInputPreset != NULL) { @@ -36152,6 +37708,10 @@ static ma_result ma_create_and_configure_AAudioStreamBuilder__aaudio(ma_context* ((MA_PFN_AAudioStreamBuilder_setContentType)pContext->aaudio.AAudioStreamBuilder_setContentType)(pBuilder, ma_to_content_type__aaudio(pConfig->aaudio.contentType)); } + if (pConfig->aaudio.allowedCapturePolicy != ma_aaudio_allow_capture_default && pContext->aaudio.AAudioStreamBuilder_setAllowedCapturePolicy != NULL) { + ((MA_PFN_AAudioStreamBuilder_setAllowedCapturePolicy)pContext->aaudio.AAudioStreamBuilder_setAllowedCapturePolicy)(pBuilder, ma_to_allowed_capture_policy__aaudio(pConfig->aaudio.allowedCapturePolicy)); + } + ((MA_PFN_AAudioStreamBuilder_setDataCallback)pContext->aaudio.AAudioStreamBuilder_setDataCallback)(pBuilder, ma_stream_data_callback_playback__aaudio, (void*)pDevice); } @@ -36419,6 +37979,7 @@ static ma_result ma_device_init__aaudio(ma_device* pDevice, const ma_device_conf pDevice->aaudio.usage = pConfig->aaudio.usage; pDevice->aaudio.contentType = pConfig->aaudio.contentType; pDevice->aaudio.inputPreset = pConfig->aaudio.inputPreset; + pDevice->aaudio.allowedCapturePolicy = pConfig->aaudio.allowedCapturePolicy; pDevice->aaudio.noAutoStartAfterReroute = pConfig->aaudio.noAutoStartAfterReroute; if (pConfig->deviceType == ma_device_type_capture || pConfig->deviceType == ma_device_type_duplex) { @@ -36595,6 +38156,7 @@ static ma_result ma_device_reinit__aaudio(ma_device* pDevice, ma_device_type dev deviceConfig.aaudio.usage = pDevice->aaudio.usage; deviceConfig.aaudio.contentType = pDevice->aaudio.contentType; deviceConfig.aaudio.inputPreset = pDevice->aaudio.inputPreset; + deviceConfig.aaudio.allowedCapturePolicy = pDevice->aaudio.allowedCapturePolicy; deviceConfig.aaudio.noAutoStartAfterReroute = pDevice->aaudio.noAutoStartAfterReroute; deviceConfig.periods = 1; @@ -36690,7 +38252,7 @@ static ma_result ma_context_uninit__aaudio(ma_context* pContext) ma_device_job_thread_uninit(&pContext->aaudio.jobThread, &pContext->allocationCallbacks); - ma_dlclose(pContext, pContext->aaudio.hAAudio); + ma_dlclose(ma_context_get_log(pContext), pContext->aaudio.hAAudio); pContext->aaudio.hAAudio = NULL; return MA_SUCCESS; @@ -36704,7 +38266,7 @@ static ma_result ma_context_init__aaudio(ma_context* pContext, const ma_context_ }; for (i = 0; i < ma_countof(libNames); ++i) { - pContext->aaudio.hAAudio = ma_dlopen(pContext, libNames[i]); + pContext->aaudio.hAAudio = ma_dlopen(ma_context_get_log(pContext), libNames[i]); if (pContext->aaudio.hAAudio != NULL) { break; } @@ -36714,34 +38276,35 @@ static ma_result ma_context_init__aaudio(ma_context* pContext, const ma_context_ return MA_FAILED_TO_INIT_BACKEND; } - pContext->aaudio.AAudio_createStreamBuilder = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudio_createStreamBuilder"); - pContext->aaudio.AAudioStreamBuilder_delete = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStreamBuilder_delete"); - pContext->aaudio.AAudioStreamBuilder_setDeviceId = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStreamBuilder_setDeviceId"); - pContext->aaudio.AAudioStreamBuilder_setDirection = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStreamBuilder_setDirection"); - pContext->aaudio.AAudioStreamBuilder_setSharingMode = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStreamBuilder_setSharingMode"); - pContext->aaudio.AAudioStreamBuilder_setFormat = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStreamBuilder_setFormat"); - pContext->aaudio.AAudioStreamBuilder_setChannelCount = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStreamBuilder_setChannelCount"); - pContext->aaudio.AAudioStreamBuilder_setSampleRate = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStreamBuilder_setSampleRate"); - pContext->aaudio.AAudioStreamBuilder_setBufferCapacityInFrames = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStreamBuilder_setBufferCapacityInFrames"); - pContext->aaudio.AAudioStreamBuilder_setFramesPerDataCallback = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStreamBuilder_setFramesPerDataCallback"); - pContext->aaudio.AAudioStreamBuilder_setDataCallback = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStreamBuilder_setDataCallback"); - pContext->aaudio.AAudioStreamBuilder_setErrorCallback = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStreamBuilder_setErrorCallback"); - pContext->aaudio.AAudioStreamBuilder_setPerformanceMode = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStreamBuilder_setPerformanceMode"); - pContext->aaudio.AAudioStreamBuilder_setUsage = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStreamBuilder_setUsage"); - pContext->aaudio.AAudioStreamBuilder_setContentType = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStreamBuilder_setContentType"); - pContext->aaudio.AAudioStreamBuilder_setInputPreset = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStreamBuilder_setInputPreset"); - pContext->aaudio.AAudioStreamBuilder_openStream = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStreamBuilder_openStream"); - pContext->aaudio.AAudioStream_close = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStream_close"); - pContext->aaudio.AAudioStream_getState = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStream_getState"); - pContext->aaudio.AAudioStream_waitForStateChange = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStream_waitForStateChange"); - pContext->aaudio.AAudioStream_getFormat = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStream_getFormat"); - pContext->aaudio.AAudioStream_getChannelCount = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStream_getChannelCount"); - pContext->aaudio.AAudioStream_getSampleRate = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStream_getSampleRate"); - pContext->aaudio.AAudioStream_getBufferCapacityInFrames = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStream_getBufferCapacityInFrames"); - pContext->aaudio.AAudioStream_getFramesPerDataCallback = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStream_getFramesPerDataCallback"); - pContext->aaudio.AAudioStream_getFramesPerBurst = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStream_getFramesPerBurst"); - pContext->aaudio.AAudioStream_requestStart = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStream_requestStart"); - pContext->aaudio.AAudioStream_requestStop = (ma_proc)ma_dlsym(pContext, pContext->aaudio.hAAudio, "AAudioStream_requestStop"); + pContext->aaudio.AAudio_createStreamBuilder = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->aaudio.hAAudio, "AAudio_createStreamBuilder"); + pContext->aaudio.AAudioStreamBuilder_delete = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->aaudio.hAAudio, "AAudioStreamBuilder_delete"); + pContext->aaudio.AAudioStreamBuilder_setDeviceId = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->aaudio.hAAudio, "AAudioStreamBuilder_setDeviceId"); + pContext->aaudio.AAudioStreamBuilder_setDirection = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->aaudio.hAAudio, "AAudioStreamBuilder_setDirection"); + pContext->aaudio.AAudioStreamBuilder_setSharingMode = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->aaudio.hAAudio, "AAudioStreamBuilder_setSharingMode"); + pContext->aaudio.AAudioStreamBuilder_setFormat = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->aaudio.hAAudio, "AAudioStreamBuilder_setFormat"); + pContext->aaudio.AAudioStreamBuilder_setChannelCount = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->aaudio.hAAudio, "AAudioStreamBuilder_setChannelCount"); + pContext->aaudio.AAudioStreamBuilder_setSampleRate = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->aaudio.hAAudio, "AAudioStreamBuilder_setSampleRate"); + pContext->aaudio.AAudioStreamBuilder_setBufferCapacityInFrames = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->aaudio.hAAudio, "AAudioStreamBuilder_setBufferCapacityInFrames"); + pContext->aaudio.AAudioStreamBuilder_setFramesPerDataCallback = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->aaudio.hAAudio, "AAudioStreamBuilder_setFramesPerDataCallback"); + pContext->aaudio.AAudioStreamBuilder_setDataCallback = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->aaudio.hAAudio, "AAudioStreamBuilder_setDataCallback"); + pContext->aaudio.AAudioStreamBuilder_setErrorCallback = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->aaudio.hAAudio, "AAudioStreamBuilder_setErrorCallback"); + pContext->aaudio.AAudioStreamBuilder_setPerformanceMode = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->aaudio.hAAudio, "AAudioStreamBuilder_setPerformanceMode"); + pContext->aaudio.AAudioStreamBuilder_setUsage = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->aaudio.hAAudio, "AAudioStreamBuilder_setUsage"); + pContext->aaudio.AAudioStreamBuilder_setContentType = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->aaudio.hAAudio, "AAudioStreamBuilder_setContentType"); + pContext->aaudio.AAudioStreamBuilder_setInputPreset = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->aaudio.hAAudio, "AAudioStreamBuilder_setInputPreset"); + pContext->aaudio.AAudioStreamBuilder_setAllowedCapturePolicy = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->aaudio.hAAudio, "AAudioStreamBuilder_setAllowedCapturePolicy"); + pContext->aaudio.AAudioStreamBuilder_openStream = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->aaudio.hAAudio, "AAudioStreamBuilder_openStream"); + pContext->aaudio.AAudioStream_close = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->aaudio.hAAudio, "AAudioStream_close"); + pContext->aaudio.AAudioStream_getState = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->aaudio.hAAudio, "AAudioStream_getState"); + pContext->aaudio.AAudioStream_waitForStateChange = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->aaudio.hAAudio, "AAudioStream_waitForStateChange"); + pContext->aaudio.AAudioStream_getFormat = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->aaudio.hAAudio, "AAudioStream_getFormat"); + pContext->aaudio.AAudioStream_getChannelCount = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->aaudio.hAAudio, "AAudioStream_getChannelCount"); + pContext->aaudio.AAudioStream_getSampleRate = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->aaudio.hAAudio, "AAudioStream_getSampleRate"); + pContext->aaudio.AAudioStream_getBufferCapacityInFrames = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->aaudio.hAAudio, "AAudioStream_getBufferCapacityInFrames"); + pContext->aaudio.AAudioStream_getFramesPerDataCallback = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->aaudio.hAAudio, "AAudioStream_getFramesPerDataCallback"); + pContext->aaudio.AAudioStream_getFramesPerBurst = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->aaudio.hAAudio, "AAudioStream_getFramesPerBurst"); + pContext->aaudio.AAudioStream_requestStart = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->aaudio.hAAudio, "AAudioStream_requestStart"); + pContext->aaudio.AAudioStream_requestStop = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->aaudio.hAAudio, "AAudioStream_requestStop"); pCallbacks->onContextInit = ma_context_init__aaudio; @@ -36767,12 +38330,12 @@ static ma_result ma_context_init__aaudio(ma_context* pContext, const ma_context_ result = ma_device_job_thread_init(&jobThreadConfig, &pContext->allocationCallbacks, &pContext->aaudio.jobThread); if (result != MA_SUCCESS) { - ma_dlclose(pContext, pContext->aaudio.hAAudio); + ma_dlclose(ma_context_get_log(pContext), pContext->aaudio.hAAudio); pContext->aaudio.hAAudio = NULL; return result; } } - + (void)pConfig; return MA_SUCCESS; @@ -37783,7 +39346,7 @@ static ma_result ma_device_start__opensl(ma_device* pDevice) return ma_result_from_OpenSL(resultSL); } - /* In playback mode (no duplex) we need to load some initial buffers. In duplex mode we need to enqueu silent buffers. */ + /* In playback mode (no duplex) we need to load some initial buffers. In duplex mode we need to enqueue silent buffers. */ if (pDevice->type == ma_device_type_duplex) { MA_ZERO_MEMORY(pDevice->opensl.pBufferPlayback, pDevice->playback.internalPeriodSizeInFrames * pDevice->playback.internalPeriods * ma_get_bytes_per_frame(pDevice->playback.internalFormat, pDevice->playback.internalChannels)); } else { @@ -37904,7 +39467,7 @@ static ma_result ma_context_uninit__opensl(ma_context* pContext) static ma_result ma_dlsym_SLInterfaceID__opensl(ma_context* pContext, const char* pName, ma_handle* pHandle) { /* We need to return an error if the symbol cannot be found. This is important because there have been reports that some symbols do not exist. */ - ma_handle* p = (ma_handle*)ma_dlsym(pContext, pContext->opensl.libOpenSLES, pName); + ma_handle* p = (ma_handle*)ma_dlsym(ma_context_get_log(pContext), pContext->opensl.libOpenSLES, pName); if (p == NULL) { ma_log_postf(ma_context_get_log(pContext), MA_LOG_LEVEL_INFO, "[OpenSL] Cannot find symbol %s", pName); return MA_NO_BACKEND; @@ -37962,7 +39525,7 @@ static ma_result ma_context_init__opensl(ma_context* pContext, const ma_context_ references to the symbols and will hopefully skip the checks. */ for (i = 0; i < ma_countof(libOpenSLESNames); i += 1) { - pContext->opensl.libOpenSLES = ma_dlopen(pContext, libOpenSLESNames[i]); + pContext->opensl.libOpenSLES = ma_dlopen(ma_context_get_log(pContext), libOpenSLESNames[i]); if (pContext->opensl.libOpenSLES != NULL) { break; } @@ -37975,49 +39538,49 @@ static ma_result ma_context_init__opensl(ma_context* pContext, const ma_context_ result = ma_dlsym_SLInterfaceID__opensl(pContext, "SL_IID_ENGINE", &pContext->opensl.SL_IID_ENGINE); if (result != MA_SUCCESS) { - ma_dlclose(pContext, pContext->opensl.libOpenSLES); + ma_dlclose(ma_context_get_log(pContext), pContext->opensl.libOpenSLES); return result; } result = ma_dlsym_SLInterfaceID__opensl(pContext, "SL_IID_AUDIOIODEVICECAPABILITIES", &pContext->opensl.SL_IID_AUDIOIODEVICECAPABILITIES); if (result != MA_SUCCESS) { - ma_dlclose(pContext, pContext->opensl.libOpenSLES); + ma_dlclose(ma_context_get_log(pContext), pContext->opensl.libOpenSLES); return result; } result = ma_dlsym_SLInterfaceID__opensl(pContext, "SL_IID_ANDROIDSIMPLEBUFFERQUEUE", &pContext->opensl.SL_IID_ANDROIDSIMPLEBUFFERQUEUE); if (result != MA_SUCCESS) { - ma_dlclose(pContext, pContext->opensl.libOpenSLES); + ma_dlclose(ma_context_get_log(pContext), pContext->opensl.libOpenSLES); return result; } result = ma_dlsym_SLInterfaceID__opensl(pContext, "SL_IID_RECORD", &pContext->opensl.SL_IID_RECORD); if (result != MA_SUCCESS) { - ma_dlclose(pContext, pContext->opensl.libOpenSLES); + ma_dlclose(ma_context_get_log(pContext), pContext->opensl.libOpenSLES); return result; } result = ma_dlsym_SLInterfaceID__opensl(pContext, "SL_IID_PLAY", &pContext->opensl.SL_IID_PLAY); if (result != MA_SUCCESS) { - ma_dlclose(pContext, pContext->opensl.libOpenSLES); + ma_dlclose(ma_context_get_log(pContext), pContext->opensl.libOpenSLES); return result; } result = ma_dlsym_SLInterfaceID__opensl(pContext, "SL_IID_OUTPUTMIX", &pContext->opensl.SL_IID_OUTPUTMIX); if (result != MA_SUCCESS) { - ma_dlclose(pContext, pContext->opensl.libOpenSLES); + ma_dlclose(ma_context_get_log(pContext), pContext->opensl.libOpenSLES); return result; } result = ma_dlsym_SLInterfaceID__opensl(pContext, "SL_IID_ANDROIDCONFIGURATION", &pContext->opensl.SL_IID_ANDROIDCONFIGURATION); if (result != MA_SUCCESS) { - ma_dlclose(pContext, pContext->opensl.libOpenSLES); + ma_dlclose(ma_context_get_log(pContext), pContext->opensl.libOpenSLES); return result; } - pContext->opensl.slCreateEngine = (ma_proc)ma_dlsym(pContext, pContext->opensl.libOpenSLES, "slCreateEngine"); + pContext->opensl.slCreateEngine = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->opensl.libOpenSLES, "slCreateEngine"); if (pContext->opensl.slCreateEngine == NULL) { - ma_dlclose(pContext, pContext->opensl.libOpenSLES); + ma_dlclose(ma_context_get_log(pContext), pContext->opensl.libOpenSLES); ma_log_post(ma_context_get_log(pContext), MA_LOG_LEVEL_INFO, "[OpenSL] Cannot find symbol slCreateEngine."); return MA_NO_BACKEND; } @@ -38041,7 +39604,7 @@ static ma_result ma_context_init__opensl(ma_context* pContext, const ma_context_ ma_spinlock_unlock(&g_maOpenSLSpinlock); if (result != MA_SUCCESS) { - ma_dlclose(pContext, pContext->opensl.libOpenSLES); + ma_dlclose(ma_context_get_log(pContext), pContext->opensl.libOpenSLES); ma_log_post(ma_context_get_log(pContext), MA_LOG_LEVEL_INFO, "[OpenSL] Failed to initialize OpenSL engine."); return result; } @@ -38071,6 +39634,29 @@ Web Audio Backend #ifdef MA_HAS_WEBAUDIO #include +#if (__EMSCRIPTEN_major__ > 3) || (__EMSCRIPTEN_major__ == 3 && (__EMSCRIPTEN_minor__ > 1 || (__EMSCRIPTEN_minor__ == 1 && __EMSCRIPTEN_tiny__ >= 32))) + #include + #define MA_SUPPORT_AUDIO_WORKLETS +#endif + +/* +TODO: Version 0.12: Swap this logic around so that AudioWorklets are used by default. Add MA_NO_AUDIO_WORKLETS. +*/ +#if defined(MA_ENABLE_AUDIO_WORKLETS) && defined(MA_SUPPORT_AUDIO_WORKLETS) + #define MA_USE_AUDIO_WORKLETS +#endif + +/* The thread stack size must be a multiple of 16. */ +#ifndef MA_AUDIO_WORKLETS_THREAD_STACK_SIZE +#define MA_AUDIO_WORKLETS_THREAD_STACK_SIZE 16384 +#endif + +#if defined(MA_USE_AUDIO_WORKLETS) +#define MA_WEBAUDIO_LATENCY_HINT_BALANCED "balanced" +#define MA_WEBAUDIO_LATENCY_HINT_INTERACTIVE "interactive" +#define MA_WEBAUDIO_LATENCY_HINT_PLAYBACK "playback" +#endif + static ma_bool32 ma_is_capture_supported__webaudio() { return EM_ASM_INT({ @@ -38081,6 +39667,16 @@ static ma_bool32 ma_is_capture_supported__webaudio() #ifdef __cplusplus extern "C" { #endif +void* EMSCRIPTEN_KEEPALIVE ma_malloc_emscripten(size_t sz, const ma_allocation_callbacks* pAllocationCallbacks) +{ + return ma_malloc(sz, pAllocationCallbacks); +} + +void EMSCRIPTEN_KEEPALIVE ma_free_emscripten(void* p, const ma_allocation_callbacks* pAllocationCallbacks) +{ + ma_free(p, pAllocationCallbacks); +} + void EMSCRIPTEN_KEEPALIVE ma_device_process_pcm_frames_capture__webaudio(ma_device* pDevice, int frameCount, float* pFrames) { ma_device_handle_backend_data_callback(pDevice, NULL, pFrames, (ma_uint32)frameCount); @@ -38171,69 +39767,76 @@ static ma_result ma_context_get_device_info__webaudio(ma_context* pContext, ma_d return MA_SUCCESS; } - -static void ma_device_uninit_by_index__webaudio(ma_device* pDevice, ma_device_type deviceType, int deviceIndex) -{ - MA_ASSERT(pDevice != NULL); - - EM_ASM({ - var device = miniaudio.get_device_by_index($0); - - /* Make sure all nodes are disconnected and marked for collection. */ - if (device.scriptNode !== undefined) { - device.scriptNode.onaudioprocess = function(e) {}; /* We want to reset the callback to ensure it doesn't get called after AudioContext.close() has returned. Shouldn't happen since we're disconnecting, but just to be safe... */ - device.scriptNode.disconnect(); - device.scriptNode = undefined; - } - if (device.streamNode !== undefined) { - device.streamNode.disconnect(); - device.streamNode = undefined; - } - - /* - Stop the device. I think there is a chance the callback could get fired after calling this, hence why we want - to clear the callback before closing. - */ - device.webaudio.close(); - device.webaudio = undefined; - - /* Can't forget to free the intermediary buffer. This is the buffer that's shared between JavaScript and C. */ - if (device.intermediaryBuffer !== undefined) { - Module._free(device.intermediaryBuffer); - device.intermediaryBuffer = undefined; - device.intermediaryBufferView = undefined; - device.intermediaryBufferSizeInBytes = undefined; - } - - /* Make sure the device is untracked so the slot can be reused later. */ - miniaudio.untrack_device_by_index($0); - }, deviceIndex, deviceType); -} - static ma_result ma_device_uninit__webaudio(ma_device* pDevice) { MA_ASSERT(pDevice != NULL); - if (pDevice->type == ma_device_type_capture || pDevice->type == ma_device_type_duplex) { - ma_device_uninit_by_index__webaudio(pDevice, ma_device_type_capture, pDevice->webaudio.indexCapture); - } + #if defined(MA_USE_AUDIO_WORKLETS) + { + EM_ASM({ + var device = miniaudio.get_device_by_index($0); - if (pDevice->type == ma_device_type_playback || pDevice->type == ma_device_type_duplex) { - ma_device_uninit_by_index__webaudio(pDevice, ma_device_type_playback, pDevice->webaudio.indexPlayback); + if (device.streamNode !== undefined) { + device.streamNode.disconnect(); + device.streamNode = undefined; + } + }, pDevice->webaudio.deviceIndex); + + emscripten_destroy_web_audio_node(pDevice->webaudio.audioWorklet); + emscripten_destroy_audio_context(pDevice->webaudio.audioContext); + ma_free(pDevice->webaudio.pStackBuffer, &pDevice->pContext->allocationCallbacks); } + #else + { + EM_ASM({ + var device = miniaudio.get_device_by_index($0); + + /* Make sure all nodes are disconnected and marked for collection. */ + if (device.scriptNode !== undefined) { + device.scriptNode.onaudioprocess = function(e) {}; /* We want to reset the callback to ensure it doesn't get called after AudioContext.close() has returned. Shouldn't happen since we're disconnecting, but just to be safe... */ + device.scriptNode.disconnect(); + device.scriptNode = undefined; + } + + if (device.streamNode !== undefined) { + device.streamNode.disconnect(); + device.streamNode = undefined; + } + + /* + Stop the device. I think there is a chance the callback could get fired after calling this, hence why we want + to clear the callback before closing. + */ + device.webaudio.close(); + device.webaudio = undefined; + device.pDevice = undefined; + }, pDevice->webaudio.deviceIndex); + } + #endif + + /* Clean up the device on the JS side. */ + EM_ASM({ + miniaudio.untrack_device_by_index($0); + }, pDevice->webaudio.deviceIndex); + + ma_free(pDevice->webaudio.pIntermediaryBuffer, &pDevice->pContext->allocationCallbacks); return MA_SUCCESS; } +#if !defined(MA_USE_AUDIO_WORKLETS) static ma_uint32 ma_calculate_period_size_in_frames_from_descriptor__webaudio(const ma_device_descriptor* pDescriptor, ma_uint32 nativeSampleRate, ma_performance_profile performanceProfile) { /* - There have been reports of the default buffer size being too small on some browsers. There have been reports of the default buffer - size being too small on some browsers. If we're using default buffer size, we'll make sure the period size is a big biffer than our - standard defaults. + There have been reports of the default buffer size being too small on some browsers. If we're using + the default buffer size, we'll make sure the period size is bigger than our standard defaults. */ ma_uint32 periodSizeInFrames; + if (nativeSampleRate == 0) { + nativeSampleRate = MA_DEFAULT_SAMPLE_RATE; + } + if (pDescriptor->periodSizeInFrames == 0) { if (pDescriptor->periodSizeInMilliseconds == 0) { if (performanceProfile == ma_performance_profile_low_latency) { @@ -38259,220 +39862,224 @@ static ma_uint32 ma_calculate_period_size_in_frames_from_descriptor__webaudio(co return periodSizeInFrames; } +#endif -static ma_result ma_device_init_by_type__webaudio(ma_device* pDevice, const ma_device_config* pConfig, ma_device_descriptor* pDescriptor, ma_device_type deviceType) + +#if defined(MA_USE_AUDIO_WORKLETS) +typedef struct { - int deviceIndex; - ma_uint32 channels; - ma_uint32 sampleRate; - ma_uint32 periodSizeInFrames; + ma_device* pDevice; + const ma_device_config* pConfig; + ma_device_descriptor* pDescriptorPlayback; + ma_device_descriptor* pDescriptorCapture; +} ma_audio_worklet_thread_initialized_data; - MA_ASSERT(pDevice != NULL); - MA_ASSERT(pConfig != NULL); - MA_ASSERT(deviceType != ma_device_type_duplex); +static EM_BOOL ma_audio_worklet_process_callback__webaudio(int inputCount, const AudioSampleFrame* pInputs, int outputCount, AudioSampleFrame* pOutputs, int paramCount, const AudioParamFrame* pParams, void* pUserData) +{ + ma_device* pDevice = (ma_device*)pUserData; + ma_uint32 frameCount; - if (deviceType == ma_device_type_capture && !ma_is_capture_supported__webaudio()) { - return MA_NO_DEVICE; + (void)paramCount; + (void)pParams; + + if (ma_device_get_state(pDevice) != ma_device_state_started) { + return EM_TRUE; } - /* We're going to calculate some stuff in C just to simplify the JS code. */ - channels = (pDescriptor->channels > 0) ? pDescriptor->channels : MA_DEFAULT_CHANNELS; - sampleRate = (pDescriptor->sampleRate > 0) ? pDescriptor->sampleRate : MA_DEFAULT_SAMPLE_RATE; - periodSizeInFrames = ma_calculate_period_size_in_frames_from_descriptor__webaudio(pDescriptor, sampleRate, pConfig->performanceProfile); + /* + The Emscripten documentation says that it'll always be 128 frames being passed in. Hard coding it like that feels + like a very bad idea to me. Even if it's hard coded in the backend, the API and documentation should always refer + to variables instead of a hard coded number. In any case, will follow along for the time being. - ma_log_postf(ma_device_get_log(pDevice), MA_LOG_LEVEL_DEBUG, "periodSizeInFrames = %d\n", (int)periodSizeInFrames); + Unfortunately the audio data is not interleaved so we'll need to convert it before we give the data to miniaudio + for further processing. + */ + frameCount = 128; - /* We create the device on the JavaScript side and reference it using an index. We use this to make it possible to reference the device between JavaScript and C. */ - deviceIndex = EM_ASM_INT({ - var channels = $0; - var sampleRate = $1; - var bufferSize = $2; /* In PCM frames. */ - var isCapture = $3; - var pDevice = $4; - - if (typeof(window.miniaudio) === 'undefined') { - return -1; /* Context not initialized. */ + if (inputCount > 0) { + /* Input data needs to be interleaved before we hand it to the client. */ + for (ma_uint32 iChannel = 0; iChannel < pDevice->capture.internalChannels; iChannel += 1) { + for (ma_uint32 iFrame = 0; iFrame < frameCount; iFrame += 1) { + pDevice->webaudio.pIntermediaryBuffer[iFrame*pDevice->capture.internalChannels + iChannel] = pInputs[0].data[frameCount*iChannel + iFrame]; + } } - var device = {}; + ma_device_process_pcm_frames_capture__webaudio(pDevice, frameCount, pDevice->webaudio.pIntermediaryBuffer); + } - /* The AudioContext must be created in a suspended state. */ - device.webaudio = new (window.AudioContext || window.webkitAudioContext)({sampleRate:sampleRate}); - device.webaudio.suspend(); - device.state = 1; /* ma_device_state_stopped */ + if (outputCount > 0) { + /* If it's a capture-only device, we'll need to output silence. */ + if (pDevice->type == ma_device_type_capture) { + MA_ZERO_MEMORY(pOutputs[0].data, frameCount * pDevice->playback.internalChannels * sizeof(float)); + } else { + ma_device_process_pcm_frames_playback__webaudio(pDevice, frameCount, pDevice->webaudio.pIntermediaryBuffer); - /* - We need an intermediary buffer which we use for JavaScript and C interop. This buffer stores interleaved f32 PCM data. Because it's passed between - JavaScript and C it needs to be allocated and freed using Module._malloc() and Module._free(). - */ - device.intermediaryBufferSizeInBytes = channels * bufferSize * 4; - device.intermediaryBuffer = Module._malloc(device.intermediaryBufferSizeInBytes); - device.intermediaryBufferView = new Float32Array(Module.HEAPF32.buffer, device.intermediaryBuffer, device.intermediaryBufferSizeInBytes); - - /* - Both playback and capture devices use a ScriptProcessorNode for performing per-sample operations. - - ScriptProcessorNode is actually deprecated so this is likely to be temporary. The way this works for playback is very simple. You just set a callback - that's periodically fired, just like a normal audio callback function. But apparently this design is "flawed" and is now deprecated in favour of - something called AudioWorklets which _forces_ you to load a _separate_ .js file at run time... nice... Hopefully ScriptProcessorNode will continue to - work for years to come, but this may need to change to use AudioSourceBufferNode instead, which I think is what Emscripten uses for it's built-in SDL - implementation. I'll be avoiding that insane AudioWorklet API like the plague... - - For capture it is a bit unintuitive. We use the ScriptProccessorNode _only_ to get the raw PCM data. It is connected to an AudioContext just like the - playback case, however we just output silence to the AudioContext instead of passing any real data. It would make more sense to me to use the - MediaRecorder API, but unfortunately you need to specify a MIME time (Opus, Vorbis, etc.) for the binary blob that's returned to the client, but I've - been unable to figure out how to get this as raw PCM. The closest I can think is to use the MIME type for WAV files and just parse it, but I don't know - how well this would work. Although ScriptProccessorNode is deprecated, in practice it seems to have pretty good browser support so I'm leaving it like - this for now. If anyone knows how I could get raw PCM data using the MediaRecorder API please let me know! - */ - device.scriptNode = device.webaudio.createScriptProcessor(bufferSize, (isCapture) ? channels : 0, (isCapture) ? 0 : channels); - - if (isCapture) { - device.scriptNode.onaudioprocess = function(e) { - if (device.intermediaryBuffer === undefined) { - return; /* This means the device has been uninitialized. */ + /* We've read the data from the client. Now we need to deinterleave the buffer and output to the output buffer. */ + for (ma_uint32 iChannel = 0; iChannel < pDevice->playback.internalChannels; iChannel += 1) { + for (ma_uint32 iFrame = 0; iFrame < frameCount; iFrame += 1) { + pOutputs[0].data[frameCount*iChannel + iFrame] = pDevice->webaudio.pIntermediaryBuffer[iFrame*pDevice->playback.internalChannels + iChannel]; } + } + } + } - if (device.intermediaryBufferView.length == 0) { - /* Recreate intermediaryBufferView when losing reference to the underlying buffer, probably due to emscripten resizing heap. */ - device.intermediaryBufferView = new Float32Array(Module.HEAPF32.buffer, device.intermediaryBuffer, device.intermediaryBufferSizeInBytes); - } + return EM_TRUE; +} - /* Make sure silence it output to the AudioContext destination. Not doing this will cause sound to come out of the speakers! */ - for (var iChannel = 0; iChannel < e.outputBuffer.numberOfChannels; ++iChannel) { - e.outputBuffer.getChannelData(iChannel).fill(0.0); - } - /* There are some situations where we may want to send silence to the client. */ - var sendSilence = false; - if (device.streamNode === undefined) { - sendSilence = true; - } +static void ma_audio_worklet_processor_created__webaudio(EMSCRIPTEN_WEBAUDIO_T audioContext, EM_BOOL success, void* pUserData) +{ + ma_audio_worklet_thread_initialized_data* pParameters = (ma_audio_worklet_thread_initialized_data*)pUserData; + EmscriptenAudioWorkletNodeCreateOptions audioWorkletOptions; + int channels = 0; + size_t intermediaryBufferSizeInFrames; + int sampleRate; - /* Sanity check. This will never happen, right? */ - if (e.inputBuffer.numberOfChannels != channels) { - console.log("Capture: Channel count mismatch. " + e.inputBufer.numberOfChannels + " != " + channels + ". Sending silence."); - sendSilence = true; - } + if (success == EM_FALSE) { + pParameters->pDevice->webaudio.initResult = MA_ERROR; + ma_free(pParameters, &pParameters->pDevice->pContext->allocationCallbacks); + return; + } - /* This looped design guards against the situation where e.inputBuffer is a different size to the original buffer size. Should never happen in practice. */ - var totalFramesProcessed = 0; - while (totalFramesProcessed < e.inputBuffer.length) { - var framesRemaining = e.inputBuffer.length - totalFramesProcessed; - var framesToProcess = framesRemaining; - if (framesToProcess > (device.intermediaryBufferSizeInBytes/channels/4)) { - framesToProcess = (device.intermediaryBufferSizeInBytes/channels/4); - } + /* The next step is to initialize the audio worklet node. */ + MA_ZERO_OBJECT(&audioWorkletOptions); - /* We need to do the reverse of the playback case. We need to interleave the input data and copy it into the intermediary buffer. Then we send it to the client. */ - if (sendSilence) { - device.intermediaryBufferView.fill(0.0); - } else { - for (var iFrame = 0; iFrame < framesToProcess; ++iFrame) { - for (var iChannel = 0; iChannel < e.inputBuffer.numberOfChannels; ++iChannel) { - device.intermediaryBufferView[iFrame*channels + iChannel] = e.inputBuffer.getChannelData(iChannel)[totalFramesProcessed + iFrame]; - } - } - } + /* + The way channel counts work with Web Audio is confusing. As far as I can tell, there's no way to know the channel + count from MediaStreamAudioSourceNode (what we use for capture)? The only way to have control is to configure an + output channel count on the capture side. This is slightly confusing for capture mode because intuitively you + wouldn't actually connect an output to an input-only node, but this is what we'll have to do in order to have + proper control over the channel count. In the capture case, we'll have to output silence to it's output node. + */ + if (pParameters->pConfig->deviceType == ma_device_type_capture) { + channels = (int)((pParameters->pDescriptorCapture->channels > 0) ? pParameters->pDescriptorCapture->channels : MA_DEFAULT_CHANNELS); + audioWorkletOptions.numberOfInputs = 1; + } else { + channels = (int)((pParameters->pDescriptorPlayback->channels > 0) ? pParameters->pDescriptorPlayback->channels : MA_DEFAULT_CHANNELS); - /* Send data to the client from our intermediary buffer. */ - ccall("ma_device_process_pcm_frames_capture__webaudio", "undefined", ["number", "number", "number"], [pDevice, framesToProcess, device.intermediaryBuffer]); + if (pParameters->pConfig->deviceType == ma_device_type_duplex) { + audioWorkletOptions.numberOfInputs = 1; + } else { + audioWorkletOptions.numberOfInputs = 0; + } + } - totalFramesProcessed += framesToProcess; - } - }; + audioWorkletOptions.numberOfOutputs = 1; + audioWorkletOptions.outputChannelCounts = &channels; + + + /* + Now that we know the channel count to use we can allocate the intermediary buffer. The + intermediary buffer is used for interleaving and deinterleaving. + */ + intermediaryBufferSizeInFrames = 128; + + pParameters->pDevice->webaudio.pIntermediaryBuffer = (float*)ma_malloc(intermediaryBufferSizeInFrames * (ma_uint32)channels * sizeof(float), &pParameters->pDevice->pContext->allocationCallbacks); + if (pParameters->pDevice->webaudio.pIntermediaryBuffer == NULL) { + pParameters->pDevice->webaudio.initResult = MA_OUT_OF_MEMORY; + ma_free(pParameters, &pParameters->pDevice->pContext->allocationCallbacks); + return; + } + + + pParameters->pDevice->webaudio.audioWorklet = emscripten_create_wasm_audio_worklet_node(audioContext, "miniaudio", &audioWorkletOptions, &ma_audio_worklet_process_callback__webaudio, pParameters->pDevice); + + /* With the audio worklet initialized we can now attach it to the graph. */ + if (pParameters->pConfig->deviceType == ma_device_type_capture || pParameters->pConfig->deviceType == ma_device_type_duplex) { + ma_result attachmentResult = (ma_result)EM_ASM_INT({ + var getUserMediaResult = 0; + var audioWorklet = emscriptenGetAudioObject($0); + var audioContext = emscriptenGetAudioObject($1); navigator.mediaDevices.getUserMedia({audio:true, video:false}) .then(function(stream) { - device.streamNode = device.webaudio.createMediaStreamSource(stream); - device.streamNode.connect(device.scriptNode); - device.scriptNode.connect(device.webaudio.destination); + audioContext.streamNode = audioContext.createMediaStreamSource(stream); + audioContext.streamNode.connect(audioWorklet); + audioWorklet.connect(audioContext.destination); + getUserMediaResult = 0; /* 0 = MA_SUCCESS */ }) .catch(function(error) { - /* I think this should output silence... */ - device.scriptNode.connect(device.webaudio.destination); + console.log("navigator.mediaDevices.getUserMedia Failed: " + error); + getUserMediaResult = -1; /* -1 = MA_ERROR */ }); - } else { - device.scriptNode.onaudioprocess = function(e) { - if (device.intermediaryBuffer === undefined) { - return; /* This means the device has been uninitialized. */ - } - if(device.intermediaryBufferView.length == 0) { - /* Recreate intermediaryBufferView when losing reference to the underlying buffer, probably due to emscripten resizing heap. */ - device.intermediaryBufferView = new Float32Array(Module.HEAPF32.buffer, device.intermediaryBuffer, device.intermediaryBufferSizeInBytes); - } + return getUserMediaResult; + }, pParameters->pDevice->webaudio.audioWorklet, audioContext); - var outputSilence = false; - - /* Sanity check. This will never happen, right? */ - if (e.outputBuffer.numberOfChannels != channels) { - console.log("Playback: Channel count mismatch. " + e.outputBufer.numberOfChannels + " != " + channels + ". Outputting silence."); - outputSilence = true; - return; - } - - /* This looped design guards against the situation where e.outputBuffer is a different size to the original buffer size. Should never happen in practice. */ - var totalFramesProcessed = 0; - while (totalFramesProcessed < e.outputBuffer.length) { - var framesRemaining = e.outputBuffer.length - totalFramesProcessed; - var framesToProcess = framesRemaining; - if (framesToProcess > (device.intermediaryBufferSizeInBytes/channels/4)) { - framesToProcess = (device.intermediaryBufferSizeInBytes/channels/4); - } - - /* Read data from the client into our intermediary buffer. */ - ccall("ma_device_process_pcm_frames_playback__webaudio", "undefined", ["number", "number", "number"], [pDevice, framesToProcess, device.intermediaryBuffer]); - - /* At this point we'll have data in our intermediary buffer which we now need to deinterleave and copy over to the output buffers. */ - if (outputSilence) { - for (var iChannel = 0; iChannel < e.outputBuffer.numberOfChannels; ++iChannel) { - e.outputBuffer.getChannelData(iChannel).fill(0.0); - } - } else { - for (var iChannel = 0; iChannel < e.outputBuffer.numberOfChannels; ++iChannel) { - var outputBuffer = e.outputBuffer.getChannelData(iChannel); - var intermediaryBuffer = device.intermediaryBufferView; - for (var iFrame = 0; iFrame < framesToProcess; ++iFrame) { - outputBuffer[totalFramesProcessed + iFrame] = intermediaryBuffer[iFrame*channels + iChannel]; - } - } - } - - totalFramesProcessed += framesToProcess; - } - }; - - device.scriptNode.connect(device.webaudio.destination); + if (attachmentResult != MA_SUCCESS) { + ma_log_postf(ma_device_get_log(pParameters->pDevice), MA_LOG_LEVEL_ERROR, "Web Audio: Failed to connect capture node."); + emscripten_destroy_web_audio_node(pParameters->pDevice->webaudio.audioWorklet); + pParameters->pDevice->webaudio.initResult = attachmentResult; + ma_free(pParameters, &pParameters->pDevice->pContext->allocationCallbacks); + return; } - - return miniaudio.track_device(device); - }, channels, sampleRate, periodSizeInFrames, deviceType == ma_device_type_capture, pDevice); - - if (deviceIndex < 0) { - return MA_FAILED_TO_OPEN_BACKEND_DEVICE; } - if (deviceType == ma_device_type_capture) { - pDevice->webaudio.indexCapture = deviceIndex; - } else { - pDevice->webaudio.indexPlayback = deviceIndex; + /* If it's playback only we can now attach the worklet node to the graph. This has already been done for the duplex case. */ + if (pParameters->pConfig->deviceType == ma_device_type_playback) { + ma_result attachmentResult = (ma_result)EM_ASM_INT({ + var audioWorklet = emscriptenGetAudioObject($0); + var audioContext = emscriptenGetAudioObject($1); + audioWorklet.connect(audioContext.destination); + return 0; /* 0 = MA_SUCCESS */ + }, pParameters->pDevice->webaudio.audioWorklet, audioContext); + + if (attachmentResult != MA_SUCCESS) { + ma_log_postf(ma_device_get_log(pParameters->pDevice), MA_LOG_LEVEL_ERROR, "Web Audio: Failed to connect playback node."); + pParameters->pDevice->webaudio.initResult = attachmentResult; + ma_free(pParameters, &pParameters->pDevice->pContext->allocationCallbacks); + return; + } } - pDescriptor->format = ma_format_f32; - pDescriptor->channels = channels; - ma_channel_map_init_standard(ma_standard_channel_map_webaudio, pDescriptor->channelMap, ma_countof(pDescriptor->channelMap), pDescriptor->channels); - pDescriptor->sampleRate = EM_ASM_INT({ return miniaudio.get_device_by_index($0).webaudio.sampleRate; }, deviceIndex); - pDescriptor->periodSizeInFrames = periodSizeInFrames; - pDescriptor->periodCount = 1; + /* We need to update the descriptors so that they reflect the internal data format. Both capture and playback should be the same. */ + sampleRate = EM_ASM_INT({ return emscriptenGetAudioObject($0).sampleRate; }, audioContext); - return MA_SUCCESS; + if (pParameters->pDescriptorCapture != NULL) { + pParameters->pDescriptorCapture->format = ma_format_f32; + pParameters->pDescriptorCapture->channels = (ma_uint32)channels; + pParameters->pDescriptorCapture->sampleRate = (ma_uint32)sampleRate; + ma_channel_map_init_standard(ma_standard_channel_map_webaudio, pParameters->pDescriptorCapture->channelMap, ma_countof(pParameters->pDescriptorCapture->channelMap), pParameters->pDescriptorCapture->channels); + pParameters->pDescriptorCapture->periodSizeInFrames = intermediaryBufferSizeInFrames; + pParameters->pDescriptorCapture->periodCount = 1; + } + + if (pParameters->pDescriptorPlayback != NULL) { + pParameters->pDescriptorPlayback->format = ma_format_f32; + pParameters->pDescriptorPlayback->channels = (ma_uint32)channels; + pParameters->pDescriptorPlayback->sampleRate = (ma_uint32)sampleRate; + ma_channel_map_init_standard(ma_standard_channel_map_webaudio, pParameters->pDescriptorPlayback->channelMap, ma_countof(pParameters->pDescriptorPlayback->channelMap), pParameters->pDescriptorPlayback->channels); + pParameters->pDescriptorPlayback->periodSizeInFrames = intermediaryBufferSizeInFrames; + pParameters->pDescriptorPlayback->periodCount = 1; + } + + /* At this point we're done and we can return. */ + ma_log_postf(ma_device_get_log(pParameters->pDevice), MA_LOG_LEVEL_DEBUG, "AudioWorklets: Created worklet node: %d\n", pParameters->pDevice->webaudio.audioWorklet); + pParameters->pDevice->webaudio.initResult = MA_SUCCESS; + ma_free(pParameters, &pParameters->pDevice->pContext->allocationCallbacks); } +static void ma_audio_worklet_thread_initialized__webaudio(EMSCRIPTEN_WEBAUDIO_T audioContext, EM_BOOL success, void* pUserData) +{ + ma_audio_worklet_thread_initialized_data* pParameters = (ma_audio_worklet_thread_initialized_data*)pUserData; + WebAudioWorkletProcessorCreateOptions workletProcessorOptions; + + MA_ASSERT(pParameters != NULL); + + if (success == EM_FALSE) { + pParameters->pDevice->webaudio.initResult = MA_ERROR; + return; + } + + MA_ZERO_OBJECT(&workletProcessorOptions); + workletProcessorOptions.name = "miniaudio"; /* I'm not entirely sure what to call this. Does this need to be globally unique, or does it need only be unique for a given AudioContext? */ + + emscripten_create_wasm_audio_worklet_processor_async(audioContext, &workletProcessorOptions, ma_audio_worklet_processor_created__webaudio, pParameters); +} +#endif + static ma_result ma_device_init__webaudio(ma_device* pDevice, const ma_device_config* pConfig, ma_device_descriptor* pDescriptorPlayback, ma_device_descriptor* pDescriptorCapture) { - ma_result result; - if (pConfig->deviceType == ma_device_type_loopback) { return MA_DEVICE_TYPE_NOT_SUPPORTED; } @@ -38483,45 +40090,271 @@ static ma_result ma_device_init__webaudio(ma_device* pDevice, const ma_device_co return MA_SHARE_MODE_NOT_SUPPORTED; } - if (pConfig->deviceType == ma_device_type_capture || pConfig->deviceType == ma_device_type_duplex) { - result = ma_device_init_by_type__webaudio(pDevice, pConfig, pDescriptorCapture, ma_device_type_capture); - if (result != MA_SUCCESS) { - return result; - } - } + /* + With AudioWorklets we'll have just a single AudioContext. I'm not sure why I'm not doing this for ScriptProcessorNode so + it might be worthwhile to look into that as well. + */ + #if defined(MA_USE_AUDIO_WORKLETS) + { + EmscriptenWebAudioCreateAttributes audioContextAttributes; + ma_audio_worklet_thread_initialized_data* pInitParameters; + void* pStackBuffer; - if (pConfig->deviceType == ma_device_type_playback || pConfig->deviceType == ma_device_type_duplex) { - result = ma_device_init_by_type__webaudio(pDevice, pConfig, pDescriptorPlayback, ma_device_type_playback); - if (result != MA_SUCCESS) { - if (pConfig->deviceType == ma_device_type_duplex) { - ma_device_uninit_by_index__webaudio(pDevice, ma_device_type_capture, pDevice->webaudio.indexCapture); + if (pConfig->performanceProfile == ma_performance_profile_conservative) { + audioContextAttributes.latencyHint = MA_WEBAUDIO_LATENCY_HINT_PLAYBACK; + } else { + audioContextAttributes.latencyHint = MA_WEBAUDIO_LATENCY_HINT_INTERACTIVE; + } + + /* + In my testing, Firefox does not seem to capture audio data properly if the sample rate is set + to anything other than 48K. This does not seem to be the case for other browsers. For this reason, + if the device type is anything other than playback, we'll leave the sample rate as-is and let the + browser pick the appropriate rate for us. + */ + if (pConfig->deviceType == ma_device_type_playback) { + audioContextAttributes.sampleRate = pDescriptorPlayback->sampleRate; + } else { + audioContextAttributes.sampleRate = 0; + } + + /* It's not clear if this can return an error. None of the tests in the Emscripten repository check for this, so neither am I for now. */ + pDevice->webaudio.audioContext = emscripten_create_audio_context(&audioContextAttributes); + + + /* + With the context created we can now create the worklet. We can only have a single worklet per audio + context which means we'll need to craft this appropriately to handle duplex devices correctly. + */ + + /* + We now need to create a worker thread. This is a bit weird because we need to allocate our + own buffer for the thread's stack. The stack needs to be aligned to 16 bytes. I'm going to + allocate this on the heap to keep it simple. + */ + pStackBuffer = ma_aligned_malloc(MA_AUDIO_WORKLETS_THREAD_STACK_SIZE, 16, &pDevice->pContext->allocationCallbacks); + if (pStackBuffer == NULL) { + emscripten_destroy_audio_context(pDevice->webaudio.audioContext); + return MA_OUT_OF_MEMORY; + } + + /* Our thread initialization parameters need to be allocated on the heap so they don't go out of scope. */ + pInitParameters = (ma_audio_worklet_thread_initialized_data*)ma_malloc(sizeof(*pInitParameters), &pDevice->pContext->allocationCallbacks); + if (pInitParameters == NULL) { + ma_free(pStackBuffer, &pDevice->pContext->allocationCallbacks); + emscripten_destroy_audio_context(pDevice->webaudio.audioContext); + return MA_OUT_OF_MEMORY; + } + + pInitParameters->pDevice = pDevice; + pInitParameters->pConfig = pConfig; + pInitParameters->pDescriptorPlayback = pDescriptorPlayback; + pInitParameters->pDescriptorCapture = pDescriptorCapture; + + /* + We need to flag the device as not yet initialized so we can wait on it later. Unfortunately all of + the Emscripten WebAudio stuff is asynchronous. + */ + pDevice->webaudio.initResult = MA_BUSY; + { + emscripten_start_wasm_audio_worklet_thread_async(pDevice->webaudio.audioContext, pStackBuffer, MA_AUDIO_WORKLETS_THREAD_STACK_SIZE, ma_audio_worklet_thread_initialized__webaudio, pInitParameters); + } + while (pDevice->webaudio.initResult == MA_BUSY) { emscripten_sleep(1); } /* We must wait for initialization to complete. We're just spinning here. The emscripten_sleep() call is why we need to build with `-sASYNCIFY`. */ + + /* Initialization is now complete. Descriptors were updated when the worklet was initialized. */ + if (pDevice->webaudio.initResult != MA_SUCCESS) { + ma_free(pStackBuffer, &pDevice->pContext->allocationCallbacks); + emscripten_destroy_audio_context(pDevice->webaudio.audioContext); + return pDevice->webaudio.initResult; + } + + /* We need to add an entry to the miniaudio.devices list on the JS side so we can do some JS/C interop. */ + pDevice->webaudio.deviceIndex = EM_ASM_INT({ + return miniaudio.track_device({ + webaudio: emscriptenGetAudioObject($0), + state: 1 /* 1 = ma_device_state_stopped */ + }); + }, pDevice->webaudio.audioContext); + + return MA_SUCCESS; + } + #else + { + /* ScriptProcessorNode. This path requires us to do almost everything in JS, but we'll do as much as we can in C. */ + ma_uint32 deviceIndex; + ma_uint32 channels; + ma_uint32 sampleRate; + ma_uint32 periodSizeInFrames; + + /* The channel count will depend on the device type. If it's a capture, use it's, otherwise use the playback side. */ + if (pConfig->deviceType == ma_device_type_capture) { + channels = (pDescriptorCapture->channels > 0) ? pDescriptorCapture->channels : MA_DEFAULT_CHANNELS; + } else { + channels = (pDescriptorPlayback->channels > 0) ? pDescriptorPlayback->channels : MA_DEFAULT_CHANNELS; + } + + /* + When testing in Firefox, I've seen it where capture mode fails if the sample rate is changed to anything other than it's + native rate. For this reason we're leaving the sample rate untouched for capture devices. + */ + if (pConfig->deviceType == ma_device_type_playback) { + sampleRate = pDescriptorPlayback->sampleRate; + } else { + sampleRate = 0; /* Let the browser decide when capturing. */ + } + + /* The period size needs to be a power of 2. */ + if (pConfig->deviceType == ma_device_type_capture) { + periodSizeInFrames = ma_calculate_period_size_in_frames_from_descriptor__webaudio(pDescriptorCapture, sampleRate, pConfig->performanceProfile); + } else { + periodSizeInFrames = ma_calculate_period_size_in_frames_from_descriptor__webaudio(pDescriptorPlayback, sampleRate, pConfig->performanceProfile); + } + + /* We need an intermediary buffer for doing interleaving and deinterleaving. */ + pDevice->webaudio.pIntermediaryBuffer = (float*)ma_malloc(periodSizeInFrames * channels * sizeof(float), &pDevice->pContext->allocationCallbacks); + if (pDevice->webaudio.pIntermediaryBuffer == NULL) { + return MA_OUT_OF_MEMORY; + } + + deviceIndex = EM_ASM_INT({ + var deviceType = $0; + var channels = $1; + var sampleRate = $2; + var bufferSize = $3; + var pIntermediaryBuffer = $4; + var pDevice = $5; + + if (typeof(window.miniaudio) === 'undefined') { + return -1; /* Context not initialized. */ } - return result; - } - } - return MA_SUCCESS; + var device = {}; + + /* First thing we need is an AudioContext. */ + var audioContextOptions = {}; + if (deviceType == window.miniaudio.device_type.playback && sampleRate != 0) { + audioContextOptions.sampleRate = sampleRate; + } + + device.webaudio = new (window.AudioContext || window.webkitAudioContext)(audioContextOptions); + device.webaudio.suspend(); /* The AudioContext must be created in a suspended state. */ + device.state = window.miniaudio.device_state.stopped; + + /* + We need to create a ScriptProcessorNode. The channel situation is the same as the AudioWorklet path in that we + need to specify an output and configure the channel count there. + */ + var channelCountIn = 0; + var channelCountOut = channels; + if (deviceType != window.miniaudio.device_type.playback) { + channelCountIn = channels; + } + + device.scriptNode = device.webaudio.createScriptProcessor(bufferSize, channelCountIn, channelCountOut); + + /* The node processing callback. */ + device.scriptNode.onaudioprocess = function(e) { + if (device.intermediaryBufferView == null || device.intermediaryBufferView.length == 0) { + device.intermediaryBufferView = new Float32Array(Module.HEAPF32.buffer, pIntermediaryBuffer, bufferSize * channels); + } + + /* Do the capture side first. */ + if (deviceType == miniaudio.device_type.capture || deviceType == miniaudio.device_type.duplex) { + /* The data must be interleaved before being processed miniaudio. */ + for (var iChannel = 0; iChannel < channels; iChannel += 1) { + var inputBuffer = e.inputBuffer.getChannelData(iChannel); + var intermediaryBuffer = device.intermediaryBufferView; + + for (var iFrame = 0; iFrame < bufferSize; iFrame += 1) { + intermediaryBuffer[iFrame*channels + iChannel] = inputBuffer[iFrame]; + } + } + + _ma_device_process_pcm_frames_capture__webaudio(pDevice, bufferSize, pIntermediaryBuffer); + } + + if (deviceType == miniaudio.device_type.playback || deviceType == miniaudio.device_type.duplex) { + _ma_device_process_pcm_frames_playback__webaudio(pDevice, bufferSize, pIntermediaryBuffer); + + for (var iChannel = 0; iChannel < e.outputBuffer.numberOfChannels; ++iChannel) { + var outputBuffer = e.outputBuffer.getChannelData(iChannel); + var intermediaryBuffer = device.intermediaryBufferView; + + for (var iFrame = 0; iFrame < bufferSize; iFrame += 1) { + outputBuffer[iFrame] = intermediaryBuffer[iFrame*channels + iChannel]; + } + } + } else { + /* It's a capture-only device. Make sure the output is silenced. */ + for (var iChannel = 0; iChannel < e.outputBuffer.numberOfChannels; ++iChannel) { + e.outputBuffer.getChannelData(iChannel).fill(0.0); + } + } + }; + + /* Now we need to connect our node to the graph. */ + if (deviceType == miniaudio.device_type.capture || deviceType == miniaudio.device_type.duplex) { + navigator.mediaDevices.getUserMedia({audio:true, video:false}) + .then(function(stream) { + device.streamNode = device.webaudio.createMediaStreamSource(stream); + device.streamNode.connect(device.scriptNode); + device.scriptNode.connect(device.webaudio.destination); + }) + .catch(function(error) { + console.log("Failed to get user media: " + error); + }); + } + + if (deviceType == miniaudio.device_type.playback) { + device.scriptNode.connect(device.webaudio.destination); + } + + device.pDevice = pDevice; + + return miniaudio.track_device(device); + }, pConfig->deviceType, channels, sampleRate, periodSizeInFrames, pDevice->webaudio.pIntermediaryBuffer, pDevice); + + if (deviceIndex < 0) { + return MA_FAILED_TO_OPEN_BACKEND_DEVICE; + } + + pDevice->webaudio.deviceIndex = deviceIndex; + + /* Grab the sample rate from the audio context directly. */ + sampleRate = (ma_uint32)EM_ASM_INT({ return miniaudio.get_device_by_index($0).webaudio.sampleRate; }, deviceIndex); + + if (pDescriptorCapture != NULL) { + pDescriptorCapture->format = ma_format_f32; + pDescriptorCapture->channels = channels; + pDescriptorCapture->sampleRate = sampleRate; + ma_channel_map_init_standard(ma_standard_channel_map_webaudio, pDescriptorCapture->channelMap, ma_countof(pDescriptorCapture->channelMap), pDescriptorCapture->channels); + pDescriptorCapture->periodSizeInFrames = periodSizeInFrames; + pDescriptorCapture->periodCount = 1; + } + + if (pDescriptorPlayback != NULL) { + pDescriptorPlayback->format = ma_format_f32; + pDescriptorPlayback->channels = channels; + pDescriptorPlayback->sampleRate = sampleRate; + ma_channel_map_init_standard(ma_standard_channel_map_webaudio, pDescriptorPlayback->channelMap, ma_countof(pDescriptorPlayback->channelMap), pDescriptorPlayback->channels); + pDescriptorPlayback->periodSizeInFrames = periodSizeInFrames; + pDescriptorPlayback->periodCount = 1; + } + + return MA_SUCCESS; + } + #endif } static ma_result ma_device_start__webaudio(ma_device* pDevice) { MA_ASSERT(pDevice != NULL); - if (pDevice->type == ma_device_type_capture || pDevice->type == ma_device_type_duplex) { - EM_ASM({ - var device = miniaudio.get_device_by_index($0); - device.webaudio.resume(); - device.state = 2; /* ma_device_state_started */ - }, pDevice->webaudio.indexCapture); - } - - if (pDevice->type == ma_device_type_playback || pDevice->type == ma_device_type_duplex) { - EM_ASM({ - var device = miniaudio.get_device_by_index($0); - device.webaudio.resume(); - device.state = 2; /* ma_device_state_started */ - }, pDevice->webaudio.indexPlayback); - } + EM_ASM({ + var device = miniaudio.get_device_by_index($0); + device.webaudio.resume(); + device.state = miniaudio.device_state.started; + }, pDevice->webaudio.deviceIndex); return MA_SUCCESS; } @@ -38539,22 +40372,11 @@ static ma_result ma_device_stop__webaudio(ma_device* pDevice) I read this to mean that "any current context processing blocks" are processed by suspend() - i.e. They they are drained. We therefore shouldn't need to do any kind of explicit draining. */ - - if (pDevice->type == ma_device_type_capture || pDevice->type == ma_device_type_duplex) { - EM_ASM({ - var device = miniaudio.get_device_by_index($0); - device.webaudio.suspend(); - device.state = 1; /* ma_device_state_stopped */ - }, pDevice->webaudio.indexCapture); - } - - if (pDevice->type == ma_device_type_playback || pDevice->type == ma_device_type_duplex) { - EM_ASM({ - var device = miniaudio.get_device_by_index($0); - device.webaudio.suspend(); - device.state = 1; /* ma_device_state_stopped */ - }, pDevice->webaudio.indexPlayback); - } + EM_ASM({ + var device = miniaudio.get_device_by_index($0); + device.webaudio.suspend(); + device.state = miniaudio.device_state.stopped; + }, pDevice->webaudio.deviceIndex); ma_device__on_notification_stopped(pDevice); @@ -38566,8 +40388,17 @@ static ma_result ma_context_uninit__webaudio(ma_context* pContext) MA_ASSERT(pContext != NULL); MA_ASSERT(pContext->backend == ma_backend_webaudio); - /* Nothing needs to be done here. */ - (void)pContext; + (void)pContext; /* Unused. */ + + /* Remove the global miniaudio object from window if there are no more references to it. */ + EM_ASM({ + if (typeof(window.miniaudio) !== 'undefined') { + window.miniaudio.referenceCount -= 1; + if (window.miniaudio.referenceCount === 0) { + delete window.miniaudio; + } + } + }); return MA_SUCCESS; } @@ -38582,13 +40413,28 @@ static ma_result ma_context_init__webaudio(ma_context* pContext, const ma_contex /* Here is where our global JavaScript object is initialized. */ resultFromJS = EM_ASM_INT({ - if ((window.AudioContext || window.webkitAudioContext) === undefined) { + if (typeof window === 'undefined' || (window.AudioContext || window.webkitAudioContext) === undefined) { return 0; /* Web Audio not supported. */ } if (typeof(window.miniaudio) === 'undefined') { - window.miniaudio = {}; - miniaudio.devices = []; /* Device cache for mapping devices to indexes for JavaScript/C interop. */ + window.miniaudio = { + referenceCount: 0 + }; + + /* Device types. */ + window.miniaudio.device_type = {}; + window.miniaudio.device_type.playback = $0; + window.miniaudio.device_type.capture = $1; + window.miniaudio.device_type.duplex = $2; + + /* Device states. */ + window.miniaudio.device_state = {}; + window.miniaudio.device_state.stopped = $3; + window.miniaudio.device_state.started = $4; + + /* Device cache for mapping devices to indexes for JavaScript/C interop. */ + miniaudio.devices = []; miniaudio.track_device = function(device) { /* Try inserting into a free slot first. */ @@ -38631,14 +40477,21 @@ static ma_result ma_context_init__webaudio(ma_context* pContext, const ma_contex }; miniaudio.unlock_event_types = (function(){ - return ['touchstart', 'touchend', 'click']; + return ['touchend', 'click']; })(); miniaudio.unlock = function() { for(var i = 0; i < miniaudio.devices.length; ++i) { var device = miniaudio.devices[i]; - if (device != null && device.webaudio != null && device.state === 2 /* ma_device_state_started */) { - device.webaudio.resume(); + if (device != null && + device.webaudio != null && + device.state === window.miniaudio.device_state.started) { + + device.webaudio.resume().then(() => { + Module._ma_device__on_notification_unlocked(device.pDevice); + }, + (error) => {console.error("Failed to resume audiocontext", error); + }); } } miniaudio.unlock_event_types.map(function(event_type) { @@ -38651,8 +40504,10 @@ static ma_result ma_context_init__webaudio(ma_context* pContext, const ma_contex }); } + window.miniaudio.referenceCount += 1; + return 1; - }, 0); /* Must pass in a dummy argument for C99 compatibility. */ + }, ma_device_type_playback, ma_device_type_capture, ma_device_type_duplex, ma_device_state_stopped, ma_device_state_started); if (resultFromJS != 1) { return MA_FAILED_TO_INIT_BACKEND; @@ -38701,6 +40556,22 @@ static ma_bool32 ma__is_channel_map_valid(const ma_channel* pChannelMap, ma_uint } +static ma_bool32 ma_context_is_backend_asynchronous(ma_context* pContext) +{ + MA_ASSERT(pContext != NULL); + + if (pContext->callbacks.onDeviceRead == NULL && pContext->callbacks.onDeviceWrite == NULL) { + if (pContext->callbacks.onDeviceDataLoop == NULL) { + return MA_TRUE; + } else { + return MA_FALSE; + } + } else { + return MA_FALSE; + } +} + + static ma_result ma_device__post_init_setup(ma_device* pDevice, ma_device_type deviceType) { ma_result result; @@ -38761,20 +40632,21 @@ static ma_result ma_device__post_init_setup(ma_device* pDevice, ma_device_type d if (deviceType == ma_device_type_capture || deviceType == ma_device_type_duplex || deviceType == ma_device_type_loopback) { /* Converting from internal device format to client format. */ ma_data_converter_config converterConfig = ma_data_converter_config_init_default(); - converterConfig.formatIn = pDevice->capture.internalFormat; - converterConfig.channelsIn = pDevice->capture.internalChannels; - converterConfig.sampleRateIn = pDevice->capture.internalSampleRate; - converterConfig.pChannelMapIn = pDevice->capture.internalChannelMap; - converterConfig.formatOut = pDevice->capture.format; - converterConfig.channelsOut = pDevice->capture.channels; - converterConfig.sampleRateOut = pDevice->sampleRate; - converterConfig.pChannelMapOut = pDevice->capture.channelMap; - converterConfig.channelMixMode = pDevice->capture.channelMixMode; - converterConfig.allowDynamicSampleRate = MA_FALSE; - converterConfig.resampling.algorithm = pDevice->resampling.algorithm; - converterConfig.resampling.linear.lpfOrder = pDevice->resampling.linear.lpfOrder; - converterConfig.resampling.pBackendVTable = pDevice->resampling.pBackendVTable; - converterConfig.resampling.pBackendUserData = pDevice->resampling.pBackendUserData; + converterConfig.formatIn = pDevice->capture.internalFormat; + converterConfig.channelsIn = pDevice->capture.internalChannels; + converterConfig.sampleRateIn = pDevice->capture.internalSampleRate; + converterConfig.pChannelMapIn = pDevice->capture.internalChannelMap; + converterConfig.formatOut = pDevice->capture.format; + converterConfig.channelsOut = pDevice->capture.channels; + converterConfig.sampleRateOut = pDevice->sampleRate; + converterConfig.pChannelMapOut = pDevice->capture.channelMap; + converterConfig.channelMixMode = pDevice->capture.channelMixMode; + converterConfig.calculateLFEFromSpatialChannels = pDevice->capture.calculateLFEFromSpatialChannels; + converterConfig.allowDynamicSampleRate = MA_FALSE; + converterConfig.resampling.algorithm = pDevice->resampling.algorithm; + converterConfig.resampling.linear.lpfOrder = pDevice->resampling.linear.lpfOrder; + converterConfig.resampling.pBackendVTable = pDevice->resampling.pBackendVTable; + converterConfig.resampling.pBackendUserData = pDevice->resampling.pBackendUserData; /* Make sure the old converter is uninitialized first. */ if (ma_device_get_state(pDevice) != ma_device_state_uninitialized) { @@ -38790,20 +40662,21 @@ static ma_result ma_device__post_init_setup(ma_device* pDevice, ma_device_type d if (deviceType == ma_device_type_playback || deviceType == ma_device_type_duplex) { /* Converting from client format to device format. */ ma_data_converter_config converterConfig = ma_data_converter_config_init_default(); - converterConfig.formatIn = pDevice->playback.format; - converterConfig.channelsIn = pDevice->playback.channels; - converterConfig.sampleRateIn = pDevice->sampleRate; - converterConfig.pChannelMapIn = pDevice->playback.channelMap; - converterConfig.formatOut = pDevice->playback.internalFormat; - converterConfig.channelsOut = pDevice->playback.internalChannels; - converterConfig.sampleRateOut = pDevice->playback.internalSampleRate; - converterConfig.pChannelMapOut = pDevice->playback.internalChannelMap; - converterConfig.channelMixMode = pDevice->playback.channelMixMode; - converterConfig.allowDynamicSampleRate = MA_FALSE; - converterConfig.resampling.algorithm = pDevice->resampling.algorithm; - converterConfig.resampling.linear.lpfOrder = pDevice->resampling.linear.lpfOrder; - converterConfig.resampling.pBackendVTable = pDevice->resampling.pBackendVTable; - converterConfig.resampling.pBackendUserData = pDevice->resampling.pBackendUserData; + converterConfig.formatIn = pDevice->playback.format; + converterConfig.channelsIn = pDevice->playback.channels; + converterConfig.sampleRateIn = pDevice->sampleRate; + converterConfig.pChannelMapIn = pDevice->playback.channelMap; + converterConfig.formatOut = pDevice->playback.internalFormat; + converterConfig.channelsOut = pDevice->playback.internalChannels; + converterConfig.sampleRateOut = pDevice->playback.internalSampleRate; + converterConfig.pChannelMapOut = pDevice->playback.internalChannelMap; + converterConfig.channelMixMode = pDevice->playback.channelMixMode; + converterConfig.calculateLFEFromSpatialChannels = pDevice->playback.calculateLFEFromSpatialChannels; + converterConfig.allowDynamicSampleRate = MA_FALSE; + converterConfig.resampling.algorithm = pDevice->resampling.algorithm; + converterConfig.resampling.linear.lpfOrder = pDevice->resampling.linear.lpfOrder; + converterConfig.resampling.pBackendVTable = pDevice->resampling.pBackendVTable; + converterConfig.resampling.pBackendUserData = pDevice->resampling.pBackendUserData; /* Make sure the old converter is uninitialized first. */ if (ma_device_get_state(pDevice) != ma_device_state_uninitialized) { @@ -38818,8 +40691,23 @@ static ma_result ma_device__post_init_setup(ma_device* pDevice, ma_device_type d /* - In playback mode, if the data converter does not support retrieval of the required number of - input frames given a number of output frames, we need to fall back to a heap-allocated cache. + If the device is doing playback (ma_device_type_playback or ma_device_type_duplex), there's + a couple of situations where we'll need a heap allocated cache. + + The first is a duplex device for backends that use a callback for data delivery. The reason + this is needed is that the input stage needs to have a buffer to place the input data while it + waits for the playback stage, after which the miniaudio data callback will get fired. This is + not needed for backends that use a blocking API because miniaudio manages temporary buffers on + the stack to achieve this. + + The other situation is when the data converter does not have the ability to query the number + of input frames that are required in order to process a given number of output frames. When + performing data conversion, it's useful if miniaudio know exactly how many frames it needs + from the client in order to generate a given number of output frames. This way, only exactly + the number of frames are needed to be read from the client which means no cache is necessary. + On the other hand, if miniaudio doesn't know how many frames to read, it is forced to read + in fixed sized chunks and then cache any residual unused input frames, those of which will be + processed at a later stage. */ if (deviceType == ma_device_type_playback || deviceType == ma_device_type_duplex) { ma_uint64 unused; @@ -38827,7 +40715,9 @@ static ma_result ma_device__post_init_setup(ma_device* pDevice, ma_device_type d pDevice->playback.inputCacheConsumed = 0; pDevice->playback.inputCacheRemaining = 0; - if (deviceType == ma_device_type_duplex || ma_data_converter_get_required_input_frame_count(&pDevice->playback.converter, 1, &unused) != MA_SUCCESS) { + if (pDevice->type == ma_device_type_duplex || /* Duplex. backend may decide to use ma_device_handle_backend_data_callback() which will require this cache. */ + ma_data_converter_get_required_input_frame_count(&pDevice->playback.converter, 1, &unused) != MA_SUCCESS) /* Data conversion required input frame calculation not supported. */ + { /* We need a heap allocated cache. We want to size this based on the period size. */ void* pNewInputCache; ma_uint64 newInputCacheCap; @@ -38843,7 +40733,7 @@ static ma_result ma_device__post_init_setup(ma_device* pDevice, ma_device_type d return MA_OUT_OF_MEMORY; /* Allocation too big. Should never hit this, but makes the cast below safer for 32-bit builds. */ } - pNewInputCache = ma_realloc(pDevice->playback.pInputCache, (size_t)newInputCacheSizeInBytes, &pDevice->pContext->allocationCallbacks); + pNewInputCache = ma_realloc(pDevice->playback.pInputCache, (size_t)newInputCacheSizeInBytes, &pDevice->pContext->allocationCallbacks); if (pNewInputCache == NULL) { ma_free(pDevice->playback.pInputCache, &pDevice->pContext->allocationCallbacks); pDevice->playback.pInputCache = NULL; @@ -38952,10 +40842,14 @@ MA_API ma_result ma_device_post_init(ma_device* pDevice, ma_device_type deviceTy static ma_thread_result MA_THREADCALL ma_worker_thread(void* pData) { ma_device* pDevice = (ma_device*)pData; +#ifdef MA_WIN32 + HRESULT CoInitializeResult; +#endif + MA_ASSERT(pDevice != NULL); #ifdef MA_WIN32 - ma_CoInitializeEx(pDevice->pContext, NULL, MA_COINIT_VALUE); + CoInitializeResult = ma_CoInitializeEx(pDevice->pContext, NULL, MA_COINIT_VALUE); #endif /* @@ -39035,13 +40929,20 @@ static ma_thread_result MA_THREADCALL ma_worker_thread(void* pData) ma_device__on_notification_stopped(pDevice); } + /* If we stopped because the device has been uninitialized, abort now. */ + if (ma_device_get_state(pDevice) == ma_device_state_uninitialized) { + break; + } + /* A function somewhere is waiting for the device to have stopped for real so we need to signal an event to allow it to continue. */ ma_device__set_state(pDevice, ma_device_state_stopped); ma_event_signal(&pDevice->stopEvent); } #ifdef MA_WIN32 - ma_CoUninitialize(pDevice->pContext); + if (CoInitializeResult == S_OK) { + ma_CoUninitialize(pDevice->pContext); + } #endif return (ma_thread_result)0; @@ -39063,11 +40964,17 @@ static ma_bool32 ma_device__is_initialized(ma_device* pDevice) static ma_result ma_context_uninit_backend_apis__win32(ma_context* pContext) { /* For some reason UWP complains when CoUninitialize() is called. I'm just not going to call it on UWP. */ -#ifdef MA_WIN32_DESKTOP - ma_CoUninitialize(pContext); - ma_dlclose(pContext, pContext->win32.hUser32DLL); - ma_dlclose(pContext, pContext->win32.hOle32DLL); - ma_dlclose(pContext, pContext->win32.hAdvapi32DLL); +#if defined(MA_WIN32_DESKTOP) || defined(MA_WIN32_GDK) + if (pContext->win32.CoInitializeResult == S_OK) { + ma_CoUninitialize(pContext); + } + + #if defined(MA_WIN32_DESKTOP) + ma_dlclose(ma_context_get_log(pContext), pContext->win32.hUser32DLL); + ma_dlclose(ma_context_get_log(pContext), pContext->win32.hAdvapi32DLL); + #endif + + ma_dlclose(ma_context_get_log(pContext), pContext->win32.hOle32DLL); #else (void)pContext; #endif @@ -39077,113 +40984,60 @@ static ma_result ma_context_uninit_backend_apis__win32(ma_context* pContext) static ma_result ma_context_init_backend_apis__win32(ma_context* pContext) { -#ifdef MA_WIN32_DESKTOP +#if defined(MA_WIN32_DESKTOP) || defined(MA_WIN32_GDK) + #if defined(MA_WIN32_DESKTOP) + /* User32.dll */ + pContext->win32.hUser32DLL = ma_dlopen(ma_context_get_log(pContext), "user32.dll"); + if (pContext->win32.hUser32DLL == NULL) { + return MA_FAILED_TO_INIT_BACKEND; + } + + pContext->win32.GetForegroundWindow = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->win32.hUser32DLL, "GetForegroundWindow"); + pContext->win32.GetDesktopWindow = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->win32.hUser32DLL, "GetDesktopWindow"); + + + /* Advapi32.dll */ + pContext->win32.hAdvapi32DLL = ma_dlopen(ma_context_get_log(pContext), "advapi32.dll"); + if (pContext->win32.hAdvapi32DLL == NULL) { + return MA_FAILED_TO_INIT_BACKEND; + } + + pContext->win32.RegOpenKeyExA = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->win32.hAdvapi32DLL, "RegOpenKeyExA"); + pContext->win32.RegCloseKey = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->win32.hAdvapi32DLL, "RegCloseKey"); + pContext->win32.RegQueryValueExA = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->win32.hAdvapi32DLL, "RegQueryValueExA"); + #endif + /* Ole32.dll */ - pContext->win32.hOle32DLL = ma_dlopen(pContext, "ole32.dll"); + pContext->win32.hOle32DLL = ma_dlopen(ma_context_get_log(pContext), "ole32.dll"); if (pContext->win32.hOle32DLL == NULL) { return MA_FAILED_TO_INIT_BACKEND; } - pContext->win32.CoInitializeEx = (ma_proc)ma_dlsym(pContext, pContext->win32.hOle32DLL, "CoInitializeEx"); - pContext->win32.CoUninitialize = (ma_proc)ma_dlsym(pContext, pContext->win32.hOle32DLL, "CoUninitialize"); - pContext->win32.CoCreateInstance = (ma_proc)ma_dlsym(pContext, pContext->win32.hOle32DLL, "CoCreateInstance"); - pContext->win32.CoTaskMemFree = (ma_proc)ma_dlsym(pContext, pContext->win32.hOle32DLL, "CoTaskMemFree"); - pContext->win32.PropVariantClear = (ma_proc)ma_dlsym(pContext, pContext->win32.hOle32DLL, "PropVariantClear"); - pContext->win32.StringFromGUID2 = (ma_proc)ma_dlsym(pContext, pContext->win32.hOle32DLL, "StringFromGUID2"); - - - /* User32.dll */ - pContext->win32.hUser32DLL = ma_dlopen(pContext, "user32.dll"); - if (pContext->win32.hUser32DLL == NULL) { - return MA_FAILED_TO_INIT_BACKEND; - } - - pContext->win32.GetForegroundWindow = (ma_proc)ma_dlsym(pContext, pContext->win32.hUser32DLL, "GetForegroundWindow"); - pContext->win32.GetDesktopWindow = (ma_proc)ma_dlsym(pContext, pContext->win32.hUser32DLL, "GetDesktopWindow"); - - - /* Advapi32.dll */ - pContext->win32.hAdvapi32DLL = ma_dlopen(pContext, "advapi32.dll"); - if (pContext->win32.hAdvapi32DLL == NULL) { - return MA_FAILED_TO_INIT_BACKEND; - } - - pContext->win32.RegOpenKeyExA = (ma_proc)ma_dlsym(pContext, pContext->win32.hAdvapi32DLL, "RegOpenKeyExA"); - pContext->win32.RegCloseKey = (ma_proc)ma_dlsym(pContext, pContext->win32.hAdvapi32DLL, "RegCloseKey"); - pContext->win32.RegQueryValueExA = (ma_proc)ma_dlsym(pContext, pContext->win32.hAdvapi32DLL, "RegQueryValueExA"); + pContext->win32.CoInitialize = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->win32.hOle32DLL, "CoInitialize"); + pContext->win32.CoInitializeEx = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->win32.hOle32DLL, "CoInitializeEx"); + pContext->win32.CoUninitialize = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->win32.hOle32DLL, "CoUninitialize"); + pContext->win32.CoCreateInstance = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->win32.hOle32DLL, "CoCreateInstance"); + pContext->win32.CoTaskMemFree = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->win32.hOle32DLL, "CoTaskMemFree"); + pContext->win32.PropVariantClear = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->win32.hOle32DLL, "PropVariantClear"); + pContext->win32.StringFromGUID2 = (ma_proc)ma_dlsym(ma_context_get_log(pContext), pContext->win32.hOle32DLL, "StringFromGUID2"); +#else + (void)pContext; /* Unused. */ #endif - ma_CoInitializeEx(pContext, NULL, MA_COINIT_VALUE); + pContext->win32.CoInitializeResult = ma_CoInitializeEx(pContext, NULL, MA_COINIT_VALUE); return MA_SUCCESS; } #else static ma_result ma_context_uninit_backend_apis__nix(ma_context* pContext) { -#if defined(MA_USE_RUNTIME_LINKING_FOR_PTHREAD) && !defined(MA_NO_RUNTIME_LINKING) - ma_dlclose(pContext, pContext->posix.pthreadSO); -#else (void)pContext; -#endif return MA_SUCCESS; } static ma_result ma_context_init_backend_apis__nix(ma_context* pContext) { - /* pthread */ -#if defined(MA_USE_RUNTIME_LINKING_FOR_PTHREAD) && !defined(MA_NO_RUNTIME_LINKING) - const char* libpthreadFileNames[] = { - "libpthread.so", - "libpthread.so.0", - "libpthread.dylib" - }; - size_t i; - - for (i = 0; i < sizeof(libpthreadFileNames) / sizeof(libpthreadFileNames[0]); ++i) { - pContext->posix.pthreadSO = ma_dlopen(pContext, libpthreadFileNames[i]); - if (pContext->posix.pthreadSO != NULL) { - break; - } - } - - if (pContext->posix.pthreadSO == NULL) { - return MA_FAILED_TO_INIT_BACKEND; - } - - pContext->posix.pthread_create = (ma_proc)ma_dlsym(pContext, pContext->posix.pthreadSO, "pthread_create"); - pContext->posix.pthread_join = (ma_proc)ma_dlsym(pContext, pContext->posix.pthreadSO, "pthread_join"); - pContext->posix.pthread_mutex_init = (ma_proc)ma_dlsym(pContext, pContext->posix.pthreadSO, "pthread_mutex_init"); - pContext->posix.pthread_mutex_destroy = (ma_proc)ma_dlsym(pContext, pContext->posix.pthreadSO, "pthread_mutex_destroy"); - pContext->posix.pthread_mutex_lock = (ma_proc)ma_dlsym(pContext, pContext->posix.pthreadSO, "pthread_mutex_lock"); - pContext->posix.pthread_mutex_unlock = (ma_proc)ma_dlsym(pContext, pContext->posix.pthreadSO, "pthread_mutex_unlock"); - pContext->posix.pthread_cond_init = (ma_proc)ma_dlsym(pContext, pContext->posix.pthreadSO, "pthread_cond_init"); - pContext->posix.pthread_cond_destroy = (ma_proc)ma_dlsym(pContext, pContext->posix.pthreadSO, "pthread_cond_destroy"); - pContext->posix.pthread_cond_wait = (ma_proc)ma_dlsym(pContext, pContext->posix.pthreadSO, "pthread_cond_wait"); - pContext->posix.pthread_cond_signal = (ma_proc)ma_dlsym(pContext, pContext->posix.pthreadSO, "pthread_cond_signal"); - pContext->posix.pthread_attr_init = (ma_proc)ma_dlsym(pContext, pContext->posix.pthreadSO, "pthread_attr_init"); - pContext->posix.pthread_attr_destroy = (ma_proc)ma_dlsym(pContext, pContext->posix.pthreadSO, "pthread_attr_destroy"); - pContext->posix.pthread_attr_setschedpolicy = (ma_proc)ma_dlsym(pContext, pContext->posix.pthreadSO, "pthread_attr_setschedpolicy"); - pContext->posix.pthread_attr_getschedparam = (ma_proc)ma_dlsym(pContext, pContext->posix.pthreadSO, "pthread_attr_getschedparam"); - pContext->posix.pthread_attr_setschedparam = (ma_proc)ma_dlsym(pContext, pContext->posix.pthreadSO, "pthread_attr_setschedparam"); -#else - pContext->posix.pthread_create = (ma_proc)pthread_create; - pContext->posix.pthread_join = (ma_proc)pthread_join; - pContext->posix.pthread_mutex_init = (ma_proc)pthread_mutex_init; - pContext->posix.pthread_mutex_destroy = (ma_proc)pthread_mutex_destroy; - pContext->posix.pthread_mutex_lock = (ma_proc)pthread_mutex_lock; - pContext->posix.pthread_mutex_unlock = (ma_proc)pthread_mutex_unlock; - pContext->posix.pthread_cond_init = (ma_proc)pthread_cond_init; - pContext->posix.pthread_cond_destroy = (ma_proc)pthread_cond_destroy; - pContext->posix.pthread_cond_wait = (ma_proc)pthread_cond_wait; - pContext->posix.pthread_cond_signal = (ma_proc)pthread_cond_signal; - pContext->posix.pthread_attr_init = (ma_proc)pthread_attr_init; - pContext->posix.pthread_attr_destroy = (ma_proc)pthread_attr_destroy; -#if !defined(__EMSCRIPTEN__) - pContext->posix.pthread_attr_setschedpolicy = (ma_proc)pthread_attr_setschedpolicy; - pContext->posix.pthread_attr_getschedparam = (ma_proc)pthread_attr_getschedparam; - pContext->posix.pthread_attr_setschedparam = (ma_proc)pthread_attr_setschedparam; -#endif -#endif + (void)pContext; return MA_SUCCESS; } @@ -39214,22 +41068,6 @@ static ma_result ma_context_uninit_backend_apis(ma_context* pContext) } -static ma_bool32 ma_context_is_backend_asynchronous(ma_context* pContext) -{ - MA_ASSERT(pContext != NULL); - - if (pContext->callbacks.onDeviceRead == NULL && pContext->callbacks.onDeviceWrite == NULL) { - if (pContext->callbacks.onDeviceDataLoop == NULL) { - return MA_TRUE; - } else { - return MA_FALSE; - } - } else { - return MA_FALSE; - } -} - - /* The default capacity doesn't need to be too big. */ #ifndef MA_DEFAULT_DEVICE_JOB_QUEUE_CAPACITY #define MA_DEFAULT_DEVICE_JOB_QUEUE_CAPACITY 32 @@ -39289,7 +41127,7 @@ MA_API ma_result ma_device_job_thread_init(const ma_device_job_thread_config* pC /* Initialize the job queue before the thread to ensure it's in a valid state. */ - jobQueueConfig = ma_job_queue_config_init(pConfig->jobQueueFlags, pConfig->jobQueueCapacity); + jobQueueConfig = ma_job_queue_config_init(pConfig->jobQueueFlags, pConfig->jobQueueCapacity); result = ma_job_queue_init(&jobQueueConfig, pAllocationCallbacks, &pJobThread->jobQueue); if (result != MA_SUCCESS) { @@ -39502,13 +41340,17 @@ MA_API ma_result ma_context_init(const ma_backend backends[], ma_uint32 backendC #ifdef MA_HAS_AAUDIO case ma_backend_aaudio: { - pContext->callbacks.onContextInit = ma_context_init__aaudio; + if (ma_is_backend_enabled(backend)) { + pContext->callbacks.onContextInit = ma_context_init__aaudio; + } } break; #endif #ifdef MA_HAS_OPENSL case ma_backend_opensl: { - pContext->callbacks.onContextInit = ma_context_init__opensl; + if (ma_is_backend_enabled(backend)) { + pContext->callbacks.onContextInit = ma_context_init__opensl; + } } break; #endif #ifdef MA_HAS_WEBAUDIO @@ -39538,7 +41380,16 @@ MA_API ma_result ma_context_init(const ma_backend backends[], ma_uint32 backendC ma_log_postf(ma_context_get_log(pContext), MA_LOG_LEVEL_DEBUG, "Attempting to initialize %s backend...\n", ma_get_backend_name(backend)); result = pContext->callbacks.onContextInit(pContext, pConfig, &pContext->callbacks); } else { - result = MA_NO_BACKEND; + /* Getting here means the onContextInit callback is not set which means the backend is not enabled. Special case for the custom backend. */ + if (backend != ma_backend_custom) { + result = MA_BACKEND_NOT_ENABLED; + } else { + #if !defined(MA_HAS_CUSTOM) + result = MA_BACKEND_NOT_ENABLED; + #else + result = MA_NO_BACKEND; + #endif + } } /* If this iteration was successful, return. */ @@ -39562,7 +41413,11 @@ MA_API ma_result ma_context_init(const ma_backend backends[], ma_uint32 backendC pContext->backend = backend; return result; } else { - ma_log_postf(ma_context_get_log(pContext), MA_LOG_LEVEL_DEBUG, "Failed to initialize %s backend.\n", ma_get_backend_name(backend)); + if (result == MA_BACKEND_NOT_ENABLED) { + ma_log_postf(ma_context_get_log(pContext), MA_LOG_LEVEL_DEBUG, "%s backend is disabled.\n", ma_get_backend_name(backend)); + } else { + ma_log_postf(ma_context_get_log(pContext), MA_LOG_LEVEL_DEBUG, "Failed to initialize %s backend.\n", ma_get_backend_name(backend)); + } } } @@ -39593,7 +41448,7 @@ MA_API ma_result ma_context_uninit(ma_context* pContext) return MA_SUCCESS; } -MA_API size_t ma_context_sizeof() +MA_API size_t ma_context_sizeof(void) { return sizeof(ma_context); } @@ -39717,7 +41572,12 @@ MA_API ma_result ma_context_get_devices(ma_context* pContext, ma_device_info** p /* Capture devices. */ if (ppCaptureDeviceInfos != NULL) { - *ppCaptureDeviceInfos = pContext->pDeviceInfos + pContext->playbackDeviceInfoCount; /* Capture devices come after playback devices. */ + *ppCaptureDeviceInfos = pContext->pDeviceInfos; + /* Capture devices come after playback devices. */ + if (pContext->playbackDeviceInfoCount > 0) { + /* Conditional, because NULL+0 is undefined behavior. */ + *ppCaptureDeviceInfos += pContext->playbackDeviceInfoCount; + } } if (pCaptureDeviceCount != NULL) { *pCaptureDeviceCount = pContext->captureDeviceInfoCount; @@ -39853,7 +41713,7 @@ MA_API ma_result ma_device_init(ma_context* pContext, const ma_device_config* pC pDevice->noClip = pConfig->noClip; pDevice->noDisableDenormals = pConfig->noDisableDenormals; pDevice->noFixedSizedCallback = pConfig->noFixedSizedCallback; - pDevice->masterVolumeFactor = 1; + ma_atomic_float_set(&pDevice->masterVolumeFactor, 1); pDevice->type = pConfig->deviceType; pDevice->sampleRate = pConfig->sampleRate; @@ -39867,13 +41727,14 @@ MA_API ma_result ma_device_init(ma_context* pContext, const ma_device_config* pC pDevice->capture.channels = pConfig->capture.channels; ma_channel_map_copy_or_default(pDevice->capture.channelMap, ma_countof(pDevice->capture.channelMap), pConfig->capture.pChannelMap, pConfig->capture.channels); pDevice->capture.channelMixMode = pConfig->capture.channelMixMode; + pDevice->capture.calculateLFEFromSpatialChannels = pConfig->capture.calculateLFEFromSpatialChannels; pDevice->playback.shareMode = pConfig->playback.shareMode; pDevice->playback.format = pConfig->playback.format; pDevice->playback.channels = pConfig->playback.channels; ma_channel_map_copy_or_default(pDevice->playback.channelMap, ma_countof(pDevice->playback.channelMap), pConfig->playback.pChannelMap, pConfig->playback.channels); pDevice->playback.channelMixMode = pConfig->playback.channelMixMode; - + pDevice->playback.calculateLFEFromSpatialChannels = pConfig->playback.calculateLFEFromSpatialChannels; result = ma_mutex_init(&pDevice->startStopLock); if (result != MA_SUCCESS) { @@ -40038,7 +41899,6 @@ MA_API ma_result ma_device_init(ma_context* pContext, const ma_device_config* pC } - /* If we're using fixed sized callbacks we'll need to make use of an intermediary buffer. Needs to be done after post_init_setup() because we'll need access to the sample rate. @@ -40074,7 +41934,7 @@ MA_API ma_result ma_device_init(ma_context* pContext, const ma_device_config* pC if (pConfig->deviceType == ma_device_type_playback || pConfig->deviceType == ma_device_type_duplex) { ma_uint64 intermediaryBufferSizeInBytes; - + pDevice->playback.intermediaryBufferLen = 0; if (pConfig->deviceType == ma_device_type_duplex) { pDevice->playback.intermediaryBufferCap = pDevice->capture.intermediaryBufferCap; /* In duplex mode, make sure the intermediary buffer is always the same size as the capture side. */ @@ -40086,7 +41946,7 @@ MA_API ma_result ma_device_init(ma_context* pContext, const ma_device_config* pC } intermediaryBufferSizeInBytes = pDevice->playback.intermediaryBufferCap * ma_get_bytes_per_frame(pDevice->playback.format, pDevice->playback.channels); - + pDevice->playback.pIntermediaryBuffer = ma_malloc((size_t)intermediaryBufferSizeInBytes, &pContext->allocationCallbacks); if (pDevice->playback.pIntermediaryBuffer == NULL) { ma_device_uninit(pDevice); @@ -40135,9 +41995,9 @@ MA_API ma_result ma_device_init(ma_context* pContext, const ma_device_config* pC /* Log device information. */ { ma_log_postf(ma_device_get_log(pDevice), MA_LOG_LEVEL_INFO, "[%s]\n", ma_get_backend_name(pDevice->pContext->backend)); - if (pDevice->type == ma_device_type_capture || pDevice->type == ma_device_type_duplex) { + if (pDevice->type == ma_device_type_capture || pDevice->type == ma_device_type_duplex || pDevice->type == ma_device_type_loopback) { char name[MA_MAX_DEVICE_NAME_LENGTH + 1]; - ma_device_get_name(pDevice, ma_device_type_capture, name, sizeof(name), NULL); + ma_device_get_name(pDevice, (pDevice->type == ma_device_type_loopback) ? ma_device_type_playback : ma_device_type_capture, name, sizeof(name), NULL); ma_log_postf(ma_device_get_log(pDevice), MA_LOG_LEVEL_INFO, " %s (%s)\n", name, "Capture"); ma_log_postf(ma_device_get_log(pDevice), MA_LOG_LEVEL_INFO, " Format: %s -> %s\n", ma_get_format_name(pDevice->capture.internalFormat), ma_get_format_name(pDevice->capture.format)); @@ -40150,6 +42010,14 @@ MA_API ma_result ma_device_init(ma_context* pContext, const ma_device_config* pC ma_log_postf(ma_device_get_log(pDevice), MA_LOG_LEVEL_INFO, " Channel Routing: %s\n", pDevice->capture.converter.hasChannelConverter ? "YES" : "NO"); ma_log_postf(ma_device_get_log(pDevice), MA_LOG_LEVEL_INFO, " Resampling: %s\n", pDevice->capture.converter.hasResampler ? "YES" : "NO"); ma_log_postf(ma_device_get_log(pDevice), MA_LOG_LEVEL_INFO, " Passthrough: %s\n", pDevice->capture.converter.isPassthrough ? "YES" : "NO"); + { + char channelMapStr[1024]; + ma_channel_map_to_string(pDevice->capture.internalChannelMap, pDevice->capture.internalChannels, channelMapStr, sizeof(channelMapStr)); + ma_log_postf(ma_device_get_log(pDevice), MA_LOG_LEVEL_INFO, " Channel Map In: {%s}\n", channelMapStr); + + ma_channel_map_to_string(pDevice->capture.channelMap, pDevice->capture.channels, channelMapStr, sizeof(channelMapStr)); + ma_log_postf(ma_device_get_log(pDevice), MA_LOG_LEVEL_INFO, " Channel Map Out: {%s}\n", channelMapStr); + } } if (pDevice->type == ma_device_type_playback || pDevice->type == ma_device_type_duplex) { char name[MA_MAX_DEVICE_NAME_LENGTH + 1]; @@ -40166,6 +42034,14 @@ MA_API ma_result ma_device_init(ma_context* pContext, const ma_device_config* pC ma_log_postf(ma_device_get_log(pDevice), MA_LOG_LEVEL_INFO, " Channel Routing: %s\n", pDevice->playback.converter.hasChannelConverter ? "YES" : "NO"); ma_log_postf(ma_device_get_log(pDevice), MA_LOG_LEVEL_INFO, " Resampling: %s\n", pDevice->playback.converter.hasResampler ? "YES" : "NO"); ma_log_postf(ma_device_get_log(pDevice), MA_LOG_LEVEL_INFO, " Passthrough: %s\n", pDevice->playback.converter.isPassthrough ? "YES" : "NO"); + { + char channelMapStr[1024]; + ma_channel_map_to_string(pDevice->playback.channelMap, pDevice->playback.channels, channelMapStr, sizeof(channelMapStr)); + ma_log_postf(ma_device_get_log(pDevice), MA_LOG_LEVEL_INFO, " Channel Map In: {%s}\n", channelMapStr); + + ma_channel_map_to_string(pDevice->playback.internalChannelMap, pDevice->playback.internalChannels, channelMapStr, sizeof(channelMapStr)); + ma_log_postf(ma_device_get_log(pDevice), MA_LOG_LEVEL_INFO, " Channel Map Out: {%s}\n", channelMapStr); + } } } @@ -40196,7 +42072,6 @@ MA_API ma_result ma_device_init_ex(const ma_backend backends[], ma_uint32 backen allocationCallbacks = ma_allocation_callbacks_init_default(); } - pContext = (ma_context*)ma_malloc(sizeof(*pContext), &allocationCallbacks); if (pContext == NULL) { return MA_OUT_OF_MEMORY; @@ -40216,6 +42091,33 @@ MA_API ma_result ma_device_init_ex(const ma_backend backends[], ma_uint32 backen result = MA_NO_BACKEND; for (iBackend = 0; iBackend < backendsToIterateCount; ++iBackend) { + /* + This is a hack for iOS. If the context config is null, there's a good chance the + `ma_device_init(NULL, &deviceConfig, pDevice);` pattern is being used. In this + case, set the session category based on the device type. + */ + #if defined(MA_APPLE_MOBILE) + ma_context_config contextConfig; + + if (pContextConfig == NULL) { + contextConfig = ma_context_config_init(); + switch (pConfig->deviceType) { + case ma_device_type_duplex: { + contextConfig.coreaudio.sessionCategory = ma_ios_session_category_play_and_record; + } break; + case ma_device_type_capture: { + contextConfig.coreaudio.sessionCategory = ma_ios_session_category_record; + } break; + case ma_device_type_playback: + default: { + contextConfig.coreaudio.sessionCategory = ma_ios_session_category_playback; + } break; + } + + pContextConfig = &contextConfig; + } + #endif + result = ma_context_init(&pBackendsToIterate[iBackend], 1, pContextConfig, pContext); if (result == MA_SUCCESS) { result = ma_device_init(pContext, pConfig, pDevice); @@ -40242,10 +42144,23 @@ MA_API void ma_device_uninit(ma_device* pDevice) return; } - /* Make sure the device is stopped first. The backends will probably handle this naturally, but I like to do it explicitly for my own sanity. */ - if (ma_device_is_started(pDevice)) { - ma_device_stop(pDevice); + /* + It's possible for the miniaudio side of the device and the backend to not be in sync due to + system-level situations such as the computer being put into sleep mode and the backend not + notifying miniaudio of the fact the device has stopped. It's possible for this to result in a + deadlock due to miniaudio thinking the device is in a running state, when in fact it's not + running at all. For this reason I am no longer explicitly stopping the device. I don't think + this should affect anyone in practice since uninitializing the backend will naturally stop the + device anyway. + */ + #if 0 + { + /* Make sure the device is stopped first. The backends will probably handle this naturally, but I like to do it explicitly for my own sanity. */ + if (ma_device_is_started(pDevice)) { + ma_device_stop(pDevice); + } } + #endif /* Putting the device into an uninitialized state will make the worker thread return. */ ma_device__set_state(pDevice, ma_device_state_uninitialized); @@ -40491,6 +42406,15 @@ MA_API ma_result ma_device_stop(ma_device* pDevice) ma_event_wait(&pDevice->stopEvent); result = MA_SUCCESS; } + + /* + This is a safety measure to ensure the internal buffer has been cleared so any leftover + does not get played the next time the device starts. Ideally this should be drained by + the backend first. + */ + pDevice->playback.intermediaryBufferLen = 0; + pDevice->playback.inputCacheConsumed = 0; + pDevice->playback.inputCacheRemaining = 0; } ma_mutex_unlock(&pDevice->startStopLock); @@ -40508,7 +42432,7 @@ MA_API ma_device_state ma_device_get_state(const ma_device* pDevice) return ma_device_state_uninitialized; } - return (ma_device_state)c89atomic_load_i32((ma_int32*)&pDevice->state); /* Naughty cast to get rid of a const warning. */ + return ma_atomic_device_state_get((ma_atomic_device_state*)&pDevice->state); /* Naughty cast to get rid of a const warning. */ } MA_API ma_result ma_device_set_master_volume(ma_device* pDevice, float volume) @@ -40521,7 +42445,7 @@ MA_API ma_result ma_device_set_master_volume(ma_device* pDevice, float volume) return MA_INVALID_ARGS; } - c89atomic_exchange_f32(&pDevice->masterVolumeFactor, volume); + ma_atomic_float_set(&pDevice->masterVolumeFactor, volume); return MA_SUCCESS; } @@ -40537,7 +42461,7 @@ MA_API ma_result ma_device_get_master_volume(ma_device* pDevice, float* pVolume) return MA_INVALID_ARGS; } - *pVolume = c89atomic_load_f32(&pDevice->masterVolumeFactor); + *pVolume = ma_atomic_float_get(&pDevice->masterVolumeFactor); return MA_SUCCESS; } @@ -41132,6 +43056,35 @@ MA_API float ma_volume_db_to_linear(float gain) } +MA_API ma_result ma_mix_pcm_frames_f32(float* pDst, const float* pSrc, ma_uint64 frameCount, ma_uint32 channels, float volume) +{ + ma_uint64 iSample; + ma_uint64 sampleCount; + + if (pDst == NULL || pSrc == NULL || channels == 0) { + return MA_INVALID_ARGS; + } + + if (volume == 0) { + return MA_SUCCESS; /* No changes if the volume is 0. */ + } + + sampleCount = frameCount * channels; + + if (volume == 1) { + for (iSample = 0; iSample < sampleCount; iSample += 1) { + pDst[iSample] += pSrc[iSample]; + } + } else { + for (iSample = 0; iSample < sampleCount; iSample += 1) { + pDst[iSample] += ma_apply_volume_unclipped_f32(pSrc[iSample], volume); + } + } + + return MA_SUCCESS; +} + + /************************************************************************************************************************************************************** @@ -41197,12 +43150,6 @@ static MA_INLINE void ma_pcm_u8_to_s16__sse2(void* dst, const void* src, ma_uint ma_pcm_u8_to_s16__optimized(dst, src, count, ditherMode); } #endif -#if defined(MA_SUPPORT_AVX2) -static MA_INLINE void ma_pcm_u8_to_s16__avx2(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) -{ - ma_pcm_u8_to_s16__optimized(dst, src, count, ditherMode); -} -#endif #if defined(MA_SUPPORT_NEON) static MA_INLINE void ma_pcm_u8_to_s16__neon(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) { @@ -41215,15 +43162,11 @@ MA_API void ma_pcm_u8_to_s16(void* dst, const void* src, ma_uint64 count, ma_dit #ifdef MA_USE_REFERENCE_CONVERSION_APIS ma_pcm_u8_to_s16__reference(dst, src, count, ditherMode); #else - # if MA_PREFERRED_SIMD == MA_SIMD_AVX2 - if (ma_has_avx2()) { - ma_pcm_u8_to_s16__avx2(dst, src, count, ditherMode); - } else - #elif MA_PREFERRED_SIMD == MA_SIMD_SSE2 + # if defined(MA_SUPPORT_SSE2) if (ma_has_sse2()) { ma_pcm_u8_to_s16__sse2(dst, src, count, ditherMode); } else - #elif MA_PREFERRED_SIMD == MA_SIMD_NEON + #elif defined(MA_SUPPORT_NEON) if (ma_has_neon()) { ma_pcm_u8_to_s16__neon(dst, src, count, ditherMode); } else @@ -41264,12 +43207,6 @@ static MA_INLINE void ma_pcm_u8_to_s24__sse2(void* dst, const void* src, ma_uint ma_pcm_u8_to_s24__optimized(dst, src, count, ditherMode); } #endif -#if defined(MA_SUPPORT_AVX2) -static MA_INLINE void ma_pcm_u8_to_s24__avx2(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) -{ - ma_pcm_u8_to_s24__optimized(dst, src, count, ditherMode); -} -#endif #if defined(MA_SUPPORT_NEON) static MA_INLINE void ma_pcm_u8_to_s24__neon(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) { @@ -41282,15 +43219,11 @@ MA_API void ma_pcm_u8_to_s24(void* dst, const void* src, ma_uint64 count, ma_dit #ifdef MA_USE_REFERENCE_CONVERSION_APIS ma_pcm_u8_to_s24__reference(dst, src, count, ditherMode); #else - # if MA_PREFERRED_SIMD == MA_SIMD_AVX2 - if (ma_has_avx2()) { - ma_pcm_u8_to_s24__avx2(dst, src, count, ditherMode); - } else - #elif MA_PREFERRED_SIMD == MA_SIMD_SSE2 + # if defined(MA_SUPPORT_SSE2) if (ma_has_sse2()) { ma_pcm_u8_to_s24__sse2(dst, src, count, ditherMode); } else - #elif MA_PREFERRED_SIMD == MA_SIMD_NEON + #elif defined(MA_SUPPORT_NEON) if (ma_has_neon()) { ma_pcm_u8_to_s24__neon(dst, src, count, ditherMode); } else @@ -41329,12 +43262,6 @@ static MA_INLINE void ma_pcm_u8_to_s32__sse2(void* dst, const void* src, ma_uint ma_pcm_u8_to_s32__optimized(dst, src, count, ditherMode); } #endif -#if defined(MA_SUPPORT_AVX2) -static MA_INLINE void ma_pcm_u8_to_s32__avx2(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) -{ - ma_pcm_u8_to_s32__optimized(dst, src, count, ditherMode); -} -#endif #if defined(MA_SUPPORT_NEON) static MA_INLINE void ma_pcm_u8_to_s32__neon(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) { @@ -41347,15 +43274,11 @@ MA_API void ma_pcm_u8_to_s32(void* dst, const void* src, ma_uint64 count, ma_dit #ifdef MA_USE_REFERENCE_CONVERSION_APIS ma_pcm_u8_to_s32__reference(dst, src, count, ditherMode); #else - # if MA_PREFERRED_SIMD == MA_SIMD_AVX2 - if (ma_has_avx2()) { - ma_pcm_u8_to_s32__avx2(dst, src, count, ditherMode); - } else - #elif MA_PREFERRED_SIMD == MA_SIMD_SSE2 + # if defined(MA_SUPPORT_SSE2) if (ma_has_sse2()) { ma_pcm_u8_to_s32__sse2(dst, src, count, ditherMode); } else - #elif MA_PREFERRED_SIMD == MA_SIMD_NEON + #elif defined(MA_SUPPORT_NEON) if (ma_has_neon()) { ma_pcm_u8_to_s32__neon(dst, src, count, ditherMode); } else @@ -41395,12 +43318,6 @@ static MA_INLINE void ma_pcm_u8_to_f32__sse2(void* dst, const void* src, ma_uint ma_pcm_u8_to_f32__optimized(dst, src, count, ditherMode); } #endif -#if defined(MA_SUPPORT_AVX2) -static MA_INLINE void ma_pcm_u8_to_f32__avx2(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) -{ - ma_pcm_u8_to_f32__optimized(dst, src, count, ditherMode); -} -#endif #if defined(MA_SUPPORT_NEON) static MA_INLINE void ma_pcm_u8_to_f32__neon(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) { @@ -41413,15 +43330,11 @@ MA_API void ma_pcm_u8_to_f32(void* dst, const void* src, ma_uint64 count, ma_dit #ifdef MA_USE_REFERENCE_CONVERSION_APIS ma_pcm_u8_to_f32__reference(dst, src, count, ditherMode); #else - # if MA_PREFERRED_SIMD == MA_SIMD_AVX2 - if (ma_has_avx2()) { - ma_pcm_u8_to_f32__avx2(dst, src, count, ditherMode); - } else - #elif MA_PREFERRED_SIMD == MA_SIMD_SSE2 + # if defined(MA_SUPPORT_SSE2) if (ma_has_sse2()) { ma_pcm_u8_to_f32__sse2(dst, src, count, ditherMode); } else - #elif MA_PREFERRED_SIMD == MA_SIMD_NEON + #elif defined(MA_SUPPORT_NEON) if (ma_has_neon()) { ma_pcm_u8_to_f32__neon(dst, src, count, ditherMode); } else @@ -41557,12 +43470,6 @@ static MA_INLINE void ma_pcm_s16_to_u8__sse2(void* dst, const void* src, ma_uint ma_pcm_s16_to_u8__optimized(dst, src, count, ditherMode); } #endif -#if defined(MA_SUPPORT_AVX2) -static MA_INLINE void ma_pcm_s16_to_u8__avx2(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) -{ - ma_pcm_s16_to_u8__optimized(dst, src, count, ditherMode); -} -#endif #if defined(MA_SUPPORT_NEON) static MA_INLINE void ma_pcm_s16_to_u8__neon(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) { @@ -41575,15 +43482,11 @@ MA_API void ma_pcm_s16_to_u8(void* dst, const void* src, ma_uint64 count, ma_dit #ifdef MA_USE_REFERENCE_CONVERSION_APIS ma_pcm_s16_to_u8__reference(dst, src, count, ditherMode); #else - # if MA_PREFERRED_SIMD == MA_SIMD_AVX2 - if (ma_has_avx2()) { - ma_pcm_s16_to_u8__avx2(dst, src, count, ditherMode); - } else - #elif MA_PREFERRED_SIMD == MA_SIMD_SSE2 + # if defined(MA_SUPPORT_SSE2) if (ma_has_sse2()) { ma_pcm_s16_to_u8__sse2(dst, src, count, ditherMode); } else - #elif MA_PREFERRED_SIMD == MA_SIMD_NEON + #elif defined(MA_SUPPORT_NEON) if (ma_has_neon()) { ma_pcm_s16_to_u8__neon(dst, src, count, ditherMode); } else @@ -41628,12 +43531,6 @@ static MA_INLINE void ma_pcm_s16_to_s24__sse2(void* dst, const void* src, ma_uin ma_pcm_s16_to_s24__optimized(dst, src, count, ditherMode); } #endif -#if defined(MA_SUPPORT_AVX2) -static MA_INLINE void ma_pcm_s16_to_s24__avx2(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) -{ - ma_pcm_s16_to_s24__optimized(dst, src, count, ditherMode); -} -#endif #if defined(MA_SUPPORT_NEON) static MA_INLINE void ma_pcm_s16_to_s24__neon(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) { @@ -41646,15 +43543,11 @@ MA_API void ma_pcm_s16_to_s24(void* dst, const void* src, ma_uint64 count, ma_di #ifdef MA_USE_REFERENCE_CONVERSION_APIS ma_pcm_s16_to_s24__reference(dst, src, count, ditherMode); #else - # if MA_PREFERRED_SIMD == MA_SIMD_AVX2 - if (ma_has_avx2()) { - ma_pcm_s16_to_s24__avx2(dst, src, count, ditherMode); - } else - #elif MA_PREFERRED_SIMD == MA_SIMD_SSE2 + # if defined(MA_SUPPORT_SSE2) if (ma_has_sse2()) { ma_pcm_s16_to_s24__sse2(dst, src, count, ditherMode); } else - #elif MA_PREFERRED_SIMD == MA_SIMD_NEON + #elif defined(MA_SUPPORT_NEON) if (ma_has_neon()) { ma_pcm_s16_to_s24__neon(dst, src, count, ditherMode); } else @@ -41690,12 +43583,6 @@ static MA_INLINE void ma_pcm_s16_to_s32__sse2(void* dst, const void* src, ma_uin ma_pcm_s16_to_s32__optimized(dst, src, count, ditherMode); } #endif -#if defined(MA_SUPPORT_AVX2) -static MA_INLINE void ma_pcm_s16_to_s32__avx2(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) -{ - ma_pcm_s16_to_s32__optimized(dst, src, count, ditherMode); -} -#endif #if defined(MA_SUPPORT_NEON) static MA_INLINE void ma_pcm_s16_to_s32__neon(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) { @@ -41708,15 +43595,11 @@ MA_API void ma_pcm_s16_to_s32(void* dst, const void* src, ma_uint64 count, ma_di #ifdef MA_USE_REFERENCE_CONVERSION_APIS ma_pcm_s16_to_s32__reference(dst, src, count, ditherMode); #else - # if MA_PREFERRED_SIMD == MA_SIMD_AVX2 - if (ma_has_avx2()) { - ma_pcm_s16_to_s32__avx2(dst, src, count, ditherMode); - } else - #elif MA_PREFERRED_SIMD == MA_SIMD_SSE2 + # if defined(MA_SUPPORT_SSE2) if (ma_has_sse2()) { ma_pcm_s16_to_s32__sse2(dst, src, count, ditherMode); } else - #elif MA_PREFERRED_SIMD == MA_SIMD_NEON + #elif defined(MA_SUPPORT_NEON) if (ma_has_neon()) { ma_pcm_s16_to_s32__neon(dst, src, count, ditherMode); } else @@ -41764,12 +43647,6 @@ static MA_INLINE void ma_pcm_s16_to_f32__sse2(void* dst, const void* src, ma_uin ma_pcm_s16_to_f32__optimized(dst, src, count, ditherMode); } #endif -#if defined(MA_SUPPORT_AVX2) -static MA_INLINE void ma_pcm_s16_to_f32__avx2(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) -{ - ma_pcm_s16_to_f32__optimized(dst, src, count, ditherMode); -} -#endif #if defined(MA_SUPPORT_NEON) static MA_INLINE void ma_pcm_s16_to_f32__neon(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) { @@ -41782,15 +43659,11 @@ MA_API void ma_pcm_s16_to_f32(void* dst, const void* src, ma_uint64 count, ma_di #ifdef MA_USE_REFERENCE_CONVERSION_APIS ma_pcm_s16_to_f32__reference(dst, src, count, ditherMode); #else - # if MA_PREFERRED_SIMD == MA_SIMD_AVX2 - if (ma_has_avx2()) { - ma_pcm_s16_to_f32__avx2(dst, src, count, ditherMode); - } else - #elif MA_PREFERRED_SIMD == MA_SIMD_SSE2 + # if defined(MA_SUPPORT_SSE2) if (ma_has_sse2()) { ma_pcm_s16_to_f32__sse2(dst, src, count, ditherMode); } else - #elif MA_PREFERRED_SIMD == MA_SIMD_NEON + #elif defined(MA_SUPPORT_NEON) if (ma_has_neon()) { ma_pcm_s16_to_f32__neon(dst, src, count, ditherMode); } else @@ -41902,12 +43775,6 @@ static MA_INLINE void ma_pcm_s24_to_u8__sse2(void* dst, const void* src, ma_uint ma_pcm_s24_to_u8__optimized(dst, src, count, ditherMode); } #endif -#if defined(MA_SUPPORT_AVX2) -static MA_INLINE void ma_pcm_s24_to_u8__avx2(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) -{ - ma_pcm_s24_to_u8__optimized(dst, src, count, ditherMode); -} -#endif #if defined(MA_SUPPORT_NEON) static MA_INLINE void ma_pcm_s24_to_u8__neon(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) { @@ -41920,15 +43787,11 @@ MA_API void ma_pcm_s24_to_u8(void* dst, const void* src, ma_uint64 count, ma_dit #ifdef MA_USE_REFERENCE_CONVERSION_APIS ma_pcm_s24_to_u8__reference(dst, src, count, ditherMode); #else - # if MA_PREFERRED_SIMD == MA_SIMD_AVX2 - if (ma_has_avx2()) { - ma_pcm_s24_to_u8__avx2(dst, src, count, ditherMode); - } else - #elif MA_PREFERRED_SIMD == MA_SIMD_SSE2 + # if defined(MA_SUPPORT_SSE2) if (ma_has_sse2()) { ma_pcm_s24_to_u8__sse2(dst, src, count, ditherMode); } else - #elif MA_PREFERRED_SIMD == MA_SIMD_NEON + #elif defined(MA_SUPPORT_NEON) if (ma_has_neon()) { ma_pcm_s24_to_u8__neon(dst, src, count, ditherMode); } else @@ -41982,12 +43845,6 @@ static MA_INLINE void ma_pcm_s24_to_s16__sse2(void* dst, const void* src, ma_uin ma_pcm_s24_to_s16__optimized(dst, src, count, ditherMode); } #endif -#if defined(MA_SUPPORT_AVX2) -static MA_INLINE void ma_pcm_s24_to_s16__avx2(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) -{ - ma_pcm_s24_to_s16__optimized(dst, src, count, ditherMode); -} -#endif #if defined(MA_SUPPORT_NEON) static MA_INLINE void ma_pcm_s24_to_s16__neon(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) { @@ -42000,15 +43857,11 @@ MA_API void ma_pcm_s24_to_s16(void* dst, const void* src, ma_uint64 count, ma_di #ifdef MA_USE_REFERENCE_CONVERSION_APIS ma_pcm_s24_to_s16__reference(dst, src, count, ditherMode); #else - # if MA_PREFERRED_SIMD == MA_SIMD_AVX2 - if (ma_has_avx2()) { - ma_pcm_s24_to_s16__avx2(dst, src, count, ditherMode); - } else - #elif MA_PREFERRED_SIMD == MA_SIMD_SSE2 + # if defined(MA_SUPPORT_SSE2) if (ma_has_sse2()) { ma_pcm_s24_to_s16__sse2(dst, src, count, ditherMode); } else - #elif MA_PREFERRED_SIMD == MA_SIMD_NEON + #elif defined(MA_SUPPORT_NEON) if (ma_has_neon()) { ma_pcm_s24_to_s16__neon(dst, src, count, ditherMode); } else @@ -42052,12 +43905,6 @@ static MA_INLINE void ma_pcm_s24_to_s32__sse2(void* dst, const void* src, ma_uin ma_pcm_s24_to_s32__optimized(dst, src, count, ditherMode); } #endif -#if defined(MA_SUPPORT_AVX2) -static MA_INLINE void ma_pcm_s24_to_s32__avx2(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) -{ - ma_pcm_s24_to_s32__optimized(dst, src, count, ditherMode); -} -#endif #if defined(MA_SUPPORT_NEON) static MA_INLINE void ma_pcm_s24_to_s32__neon(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) { @@ -42070,15 +43917,11 @@ MA_API void ma_pcm_s24_to_s32(void* dst, const void* src, ma_uint64 count, ma_di #ifdef MA_USE_REFERENCE_CONVERSION_APIS ma_pcm_s24_to_s32__reference(dst, src, count, ditherMode); #else - # if MA_PREFERRED_SIMD == MA_SIMD_AVX2 - if (ma_has_avx2()) { - ma_pcm_s24_to_s32__avx2(dst, src, count, ditherMode); - } else - #elif MA_PREFERRED_SIMD == MA_SIMD_SSE2 + # if defined(MA_SUPPORT_SSE2) if (ma_has_sse2()) { ma_pcm_s24_to_s32__sse2(dst, src, count, ditherMode); } else - #elif MA_PREFERRED_SIMD == MA_SIMD_NEON + #elif defined(MA_SUPPORT_NEON) if (ma_has_neon()) { ma_pcm_s24_to_s32__neon(dst, src, count, ditherMode); } else @@ -42126,12 +43969,6 @@ static MA_INLINE void ma_pcm_s24_to_f32__sse2(void* dst, const void* src, ma_uin ma_pcm_s24_to_f32__optimized(dst, src, count, ditherMode); } #endif -#if defined(MA_SUPPORT_AVX2) -static MA_INLINE void ma_pcm_s24_to_f32__avx2(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) -{ - ma_pcm_s24_to_f32__optimized(dst, src, count, ditherMode); -} -#endif #if defined(MA_SUPPORT_NEON) static MA_INLINE void ma_pcm_s24_to_f32__neon(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) { @@ -42144,15 +43981,11 @@ MA_API void ma_pcm_s24_to_f32(void* dst, const void* src, ma_uint64 count, ma_di #ifdef MA_USE_REFERENCE_CONVERSION_APIS ma_pcm_s24_to_f32__reference(dst, src, count, ditherMode); #else - # if MA_PREFERRED_SIMD == MA_SIMD_AVX2 - if (ma_has_avx2()) { - ma_pcm_s24_to_f32__avx2(dst, src, count, ditherMode); - } else - #elif MA_PREFERRED_SIMD == MA_SIMD_SSE2 + # if defined(MA_SUPPORT_SSE2) if (ma_has_sse2()) { ma_pcm_s24_to_f32__sse2(dst, src, count, ditherMode); } else - #elif MA_PREFERRED_SIMD == MA_SIMD_NEON + #elif defined(MA_SUPPORT_NEON) if (ma_has_neon()) { ma_pcm_s24_to_f32__neon(dst, src, count, ditherMode); } else @@ -42272,12 +44105,6 @@ static MA_INLINE void ma_pcm_s32_to_u8__sse2(void* dst, const void* src, ma_uint ma_pcm_s32_to_u8__optimized(dst, src, count, ditherMode); } #endif -#if defined(MA_SUPPORT_AVX2) -static MA_INLINE void ma_pcm_s32_to_u8__avx2(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) -{ - ma_pcm_s32_to_u8__optimized(dst, src, count, ditherMode); -} -#endif #if defined(MA_SUPPORT_NEON) static MA_INLINE void ma_pcm_s32_to_u8__neon(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) { @@ -42290,15 +44117,11 @@ MA_API void ma_pcm_s32_to_u8(void* dst, const void* src, ma_uint64 count, ma_dit #ifdef MA_USE_REFERENCE_CONVERSION_APIS ma_pcm_s32_to_u8__reference(dst, src, count, ditherMode); #else - # if MA_PREFERRED_SIMD == MA_SIMD_AVX2 - if (ma_has_avx2()) { - ma_pcm_s32_to_u8__avx2(dst, src, count, ditherMode); - } else - #elif MA_PREFERRED_SIMD == MA_SIMD_SSE2 + # if defined(MA_SUPPORT_SSE2) if (ma_has_sse2()) { ma_pcm_s32_to_u8__sse2(dst, src, count, ditherMode); } else - #elif MA_PREFERRED_SIMD == MA_SIMD_NEON + #elif defined(MA_SUPPORT_NEON) if (ma_has_neon()) { ma_pcm_s32_to_u8__neon(dst, src, count, ditherMode); } else @@ -42352,12 +44175,6 @@ static MA_INLINE void ma_pcm_s32_to_s16__sse2(void* dst, const void* src, ma_uin ma_pcm_s32_to_s16__optimized(dst, src, count, ditherMode); } #endif -#if defined(MA_SUPPORT_AVX2) -static MA_INLINE void ma_pcm_s32_to_s16__avx2(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) -{ - ma_pcm_s32_to_s16__optimized(dst, src, count, ditherMode); -} -#endif #if defined(MA_SUPPORT_NEON) static MA_INLINE void ma_pcm_s32_to_s16__neon(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) { @@ -42370,15 +44187,11 @@ MA_API void ma_pcm_s32_to_s16(void* dst, const void* src, ma_uint64 count, ma_di #ifdef MA_USE_REFERENCE_CONVERSION_APIS ma_pcm_s32_to_s16__reference(dst, src, count, ditherMode); #else - # if MA_PREFERRED_SIMD == MA_SIMD_AVX2 - if (ma_has_avx2()) { - ma_pcm_s32_to_s16__avx2(dst, src, count, ditherMode); - } else - #elif MA_PREFERRED_SIMD == MA_SIMD_SSE2 + # if defined(MA_SUPPORT_SSE2) if (ma_has_sse2()) { ma_pcm_s32_to_s16__sse2(dst, src, count, ditherMode); } else - #elif MA_PREFERRED_SIMD == MA_SIMD_NEON + #elif defined(MA_SUPPORT_NEON) if (ma_has_neon()) { ma_pcm_s32_to_s16__neon(dst, src, count, ditherMode); } else @@ -42417,12 +44230,6 @@ static MA_INLINE void ma_pcm_s32_to_s24__sse2(void* dst, const void* src, ma_uin ma_pcm_s32_to_s24__optimized(dst, src, count, ditherMode); } #endif -#if defined(MA_SUPPORT_AVX2) -static MA_INLINE void ma_pcm_s32_to_s24__avx2(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) -{ - ma_pcm_s32_to_s24__optimized(dst, src, count, ditherMode); -} -#endif #if defined(MA_SUPPORT_NEON) static MA_INLINE void ma_pcm_s32_to_s24__neon(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) { @@ -42435,15 +44242,11 @@ MA_API void ma_pcm_s32_to_s24(void* dst, const void* src, ma_uint64 count, ma_di #ifdef MA_USE_REFERENCE_CONVERSION_APIS ma_pcm_s32_to_s24__reference(dst, src, count, ditherMode); #else - # if MA_PREFERRED_SIMD == MA_SIMD_AVX2 - if (ma_has_avx2()) { - ma_pcm_s32_to_s24__avx2(dst, src, count, ditherMode); - } else - #elif MA_PREFERRED_SIMD == MA_SIMD_SSE2 + # if defined(MA_SUPPORT_SSE2) if (ma_has_sse2()) { ma_pcm_s32_to_s24__sse2(dst, src, count, ditherMode); } else - #elif MA_PREFERRED_SIMD == MA_SIMD_NEON + #elif defined(MA_SUPPORT_NEON) if (ma_has_neon()) { ma_pcm_s32_to_s24__neon(dst, src, count, ditherMode); } else @@ -42497,12 +44300,6 @@ static MA_INLINE void ma_pcm_s32_to_f32__sse2(void* dst, const void* src, ma_uin ma_pcm_s32_to_f32__optimized(dst, src, count, ditherMode); } #endif -#if defined(MA_SUPPORT_AVX2) -static MA_INLINE void ma_pcm_s32_to_f32__avx2(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) -{ - ma_pcm_s32_to_f32__optimized(dst, src, count, ditherMode); -} -#endif #if defined(MA_SUPPORT_NEON) static MA_INLINE void ma_pcm_s32_to_f32__neon(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) { @@ -42515,15 +44312,11 @@ MA_API void ma_pcm_s32_to_f32(void* dst, const void* src, ma_uint64 count, ma_di #ifdef MA_USE_REFERENCE_CONVERSION_APIS ma_pcm_s32_to_f32__reference(dst, src, count, ditherMode); #else - # if MA_PREFERRED_SIMD == MA_SIMD_AVX2 - if (ma_has_avx2()) { - ma_pcm_s32_to_f32__avx2(dst, src, count, ditherMode); - } else - #elif MA_PREFERRED_SIMD == MA_SIMD_SSE2 + # if defined(MA_SUPPORT_SSE2) if (ma_has_sse2()) { ma_pcm_s32_to_f32__sse2(dst, src, count, ditherMode); } else - #elif MA_PREFERRED_SIMD == MA_SIMD_NEON + #elif defined(MA_SUPPORT_NEON) if (ma_has_neon()) { ma_pcm_s32_to_f32__neon(dst, src, count, ditherMode); } else @@ -42630,12 +44423,6 @@ static MA_INLINE void ma_pcm_f32_to_u8__sse2(void* dst, const void* src, ma_uint ma_pcm_f32_to_u8__optimized(dst, src, count, ditherMode); } #endif -#if defined(MA_SUPPORT_AVX2) -static MA_INLINE void ma_pcm_f32_to_u8__avx2(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) -{ - ma_pcm_f32_to_u8__optimized(dst, src, count, ditherMode); -} -#endif #if defined(MA_SUPPORT_NEON) static MA_INLINE void ma_pcm_f32_to_u8__neon(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) { @@ -42648,15 +44435,11 @@ MA_API void ma_pcm_f32_to_u8(void* dst, const void* src, ma_uint64 count, ma_dit #ifdef MA_USE_REFERENCE_CONVERSION_APIS ma_pcm_f32_to_u8__reference(dst, src, count, ditherMode); #else - # if MA_PREFERRED_SIMD == MA_SIMD_AVX2 - if (ma_has_avx2()) { - ma_pcm_f32_to_u8__avx2(dst, src, count, ditherMode); - } else - #elif MA_PREFERRED_SIMD == MA_SIMD_SSE2 + # if defined(MA_SUPPORT_SSE2) if (ma_has_sse2()) { ma_pcm_f32_to_u8__sse2(dst, src, count, ditherMode); } else - #elif MA_PREFERRED_SIMD == MA_SIMD_NEON + #elif defined(MA_SUPPORT_NEON) if (ma_has_neon()) { ma_pcm_f32_to_u8__neon(dst, src, count, ditherMode); } else @@ -42860,129 +44643,6 @@ static MA_INLINE void ma_pcm_f32_to_s16__sse2(void* dst, const void* src, ma_uin } #endif /* SSE2 */ -#if defined(MA_SUPPORT_AVX2) -static MA_INLINE void ma_pcm_f32_to_s16__avx2(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) -{ - ma_uint64 i; - ma_uint64 i16; - ma_uint64 count16; - ma_int16* dst_s16; - const float* src_f32; - float ditherMin; - float ditherMax; - - /* Both the input and output buffers need to be aligned to 32 bytes. */ - if ((((ma_uintptr)dst & 31) != 0) || (((ma_uintptr)src & 31) != 0)) { - ma_pcm_f32_to_s16__optimized(dst, src, count, ditherMode); - return; - } - - dst_s16 = (ma_int16*)dst; - src_f32 = (const float*)src; - - ditherMin = 0; - ditherMax = 0; - if (ditherMode != ma_dither_mode_none) { - ditherMin = 1.0f / -32768; - ditherMax = 1.0f / 32767; - } - - i = 0; - - /* AVX2. AVX2 allows us to output 16 s16's at a time which means our loop is unrolled 16 times. */ - count16 = count >> 4; - for (i16 = 0; i16 < count16; i16 += 1) { - __m256 d0; - __m256 d1; - __m256 x0; - __m256 x1; - __m256i i0; - __m256i i1; - __m256i p0; - __m256i p1; - __m256i r; - - if (ditherMode == ma_dither_mode_none) { - d0 = _mm256_set1_ps(0); - d1 = _mm256_set1_ps(0); - } else if (ditherMode == ma_dither_mode_rectangle) { - d0 = _mm256_set_ps( - ma_dither_f32_rectangle(ditherMin, ditherMax), - ma_dither_f32_rectangle(ditherMin, ditherMax), - ma_dither_f32_rectangle(ditherMin, ditherMax), - ma_dither_f32_rectangle(ditherMin, ditherMax), - ma_dither_f32_rectangle(ditherMin, ditherMax), - ma_dither_f32_rectangle(ditherMin, ditherMax), - ma_dither_f32_rectangle(ditherMin, ditherMax), - ma_dither_f32_rectangle(ditherMin, ditherMax) - ); - d1 = _mm256_set_ps( - ma_dither_f32_rectangle(ditherMin, ditherMax), - ma_dither_f32_rectangle(ditherMin, ditherMax), - ma_dither_f32_rectangle(ditherMin, ditherMax), - ma_dither_f32_rectangle(ditherMin, ditherMax), - ma_dither_f32_rectangle(ditherMin, ditherMax), - ma_dither_f32_rectangle(ditherMin, ditherMax), - ma_dither_f32_rectangle(ditherMin, ditherMax), - ma_dither_f32_rectangle(ditherMin, ditherMax) - ); - } else { - d0 = _mm256_set_ps( - ma_dither_f32_triangle(ditherMin, ditherMax), - ma_dither_f32_triangle(ditherMin, ditherMax), - ma_dither_f32_triangle(ditherMin, ditherMax), - ma_dither_f32_triangle(ditherMin, ditherMax), - ma_dither_f32_triangle(ditherMin, ditherMax), - ma_dither_f32_triangle(ditherMin, ditherMax), - ma_dither_f32_triangle(ditherMin, ditherMax), - ma_dither_f32_triangle(ditherMin, ditherMax) - ); - d1 = _mm256_set_ps( - ma_dither_f32_triangle(ditherMin, ditherMax), - ma_dither_f32_triangle(ditherMin, ditherMax), - ma_dither_f32_triangle(ditherMin, ditherMax), - ma_dither_f32_triangle(ditherMin, ditherMax), - ma_dither_f32_triangle(ditherMin, ditherMax), - ma_dither_f32_triangle(ditherMin, ditherMax), - ma_dither_f32_triangle(ditherMin, ditherMax), - ma_dither_f32_triangle(ditherMin, ditherMax) - ); - } - - x0 = *((__m256*)(src_f32 + i) + 0); - x1 = *((__m256*)(src_f32 + i) + 1); - - x0 = _mm256_add_ps(x0, d0); - x1 = _mm256_add_ps(x1, d1); - - x0 = _mm256_mul_ps(x0, _mm256_set1_ps(32767.0f)); - x1 = _mm256_mul_ps(x1, _mm256_set1_ps(32767.0f)); - - /* Computing the final result is a little more complicated for AVX2 than SSE2. */ - i0 = _mm256_cvttps_epi32(x0); - i1 = _mm256_cvttps_epi32(x1); - p0 = _mm256_permute2x128_si256(i0, i1, 0 | 32); - p1 = _mm256_permute2x128_si256(i0, i1, 1 | 48); - r = _mm256_packs_epi32(p0, p1); - - _mm256_stream_si256(((__m256i*)(dst_s16 + i)), r); - - i += 16; - } - - - /* Leftover. */ - for (; i < count; i += 1) { - float x = src_f32[i]; - x = x + ma_dither_f32(ditherMode, ditherMin, ditherMax); - x = ((x < -1) ? -1 : ((x > 1) ? 1 : x)); /* clip */ - x = x * 32767.0f; /* -1..1 to -32767..32767 */ - - dst_s16[i] = (ma_int16)x; - } -} -#endif /* AVX2 */ - #if defined(MA_SUPPORT_NEON) static MA_INLINE void ma_pcm_f32_to_s16__neon(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) { @@ -42995,7 +44655,8 @@ static MA_INLINE void ma_pcm_f32_to_s16__neon(void* dst, const void* src, ma_uin float ditherMax; if (!ma_has_neon()) { - return ma_pcm_f32_to_s16__optimized(dst, src, count, ditherMode); + ma_pcm_f32_to_s16__optimized(dst, src, count, ditherMode); + return; } /* Both the input and output buffers need to be aligned to 16 bytes. */ @@ -43031,13 +44692,14 @@ static MA_INLINE void ma_pcm_f32_to_s16__neon(void* dst, const void* src, ma_uin d1 = vmovq_n_f32(0); } else if (ditherMode == ma_dither_mode_rectangle) { float d0v[4]; + float d1v[4]; + d0v[0] = ma_dither_f32_rectangle(ditherMin, ditherMax); d0v[1] = ma_dither_f32_rectangle(ditherMin, ditherMax); d0v[2] = ma_dither_f32_rectangle(ditherMin, ditherMax); d0v[3] = ma_dither_f32_rectangle(ditherMin, ditherMax); d0 = vld1q_f32(d0v); - float d1v[4]; d1v[0] = ma_dither_f32_rectangle(ditherMin, ditherMax); d1v[1] = ma_dither_f32_rectangle(ditherMin, ditherMax); d1v[2] = ma_dither_f32_rectangle(ditherMin, ditherMax); @@ -43045,13 +44707,14 @@ static MA_INLINE void ma_pcm_f32_to_s16__neon(void* dst, const void* src, ma_uin d1 = vld1q_f32(d1v); } else { float d0v[4]; + float d1v[4]; + d0v[0] = ma_dither_f32_triangle(ditherMin, ditherMax); d0v[1] = ma_dither_f32_triangle(ditherMin, ditherMax); d0v[2] = ma_dither_f32_triangle(ditherMin, ditherMax); d0v[3] = ma_dither_f32_triangle(ditherMin, ditherMax); d0 = vld1q_f32(d0v); - float d1v[4]; d1v[0] = ma_dither_f32_triangle(ditherMin, ditherMax); d1v[1] = ma_dither_f32_triangle(ditherMin, ditherMax); d1v[2] = ma_dither_f32_triangle(ditherMin, ditherMax); @@ -43094,15 +44757,11 @@ MA_API void ma_pcm_f32_to_s16(void* dst, const void* src, ma_uint64 count, ma_di #ifdef MA_USE_REFERENCE_CONVERSION_APIS ma_pcm_f32_to_s16__reference(dst, src, count, ditherMode); #else - # if MA_PREFERRED_SIMD == MA_SIMD_AVX2 - if (ma_has_avx2()) { - ma_pcm_f32_to_s16__avx2(dst, src, count, ditherMode); - } else - #elif MA_PREFERRED_SIMD == MA_SIMD_SSE2 + # if defined(MA_SUPPORT_SSE2) if (ma_has_sse2()) { ma_pcm_f32_to_s16__sse2(dst, src, count, ditherMode); } else - #elif MA_PREFERRED_SIMD == MA_SIMD_NEON + #elif defined(MA_SUPPORT_NEON) if (ma_has_neon()) { ma_pcm_f32_to_s16__neon(dst, src, count, ditherMode); } else @@ -43155,12 +44814,6 @@ static MA_INLINE void ma_pcm_f32_to_s24__sse2(void* dst, const void* src, ma_uin ma_pcm_f32_to_s24__optimized(dst, src, count, ditherMode); } #endif -#if defined(MA_SUPPORT_AVX2) -static MA_INLINE void ma_pcm_f32_to_s24__avx2(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) -{ - ma_pcm_f32_to_s24__optimized(dst, src, count, ditherMode); -} -#endif #if defined(MA_SUPPORT_NEON) static MA_INLINE void ma_pcm_f32_to_s24__neon(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) { @@ -43173,15 +44826,11 @@ MA_API void ma_pcm_f32_to_s24(void* dst, const void* src, ma_uint64 count, ma_di #ifdef MA_USE_REFERENCE_CONVERSION_APIS ma_pcm_f32_to_s24__reference(dst, src, count, ditherMode); #else - # if MA_PREFERRED_SIMD == MA_SIMD_AVX2 - if (ma_has_avx2()) { - ma_pcm_f32_to_s24__avx2(dst, src, count, ditherMode); - } else - #elif MA_PREFERRED_SIMD == MA_SIMD_SSE2 + # if defined(MA_SUPPORT_SSE2) if (ma_has_sse2()) { ma_pcm_f32_to_s24__sse2(dst, src, count, ditherMode); } else - #elif MA_PREFERRED_SIMD == MA_SIMD_NEON + #elif defined(MA_SUPPORT_NEON) if (ma_has_neon()) { ma_pcm_f32_to_s24__neon(dst, src, count, ditherMode); } else @@ -43230,12 +44879,6 @@ static MA_INLINE void ma_pcm_f32_to_s32__sse2(void* dst, const void* src, ma_uin ma_pcm_f32_to_s32__optimized(dst, src, count, ditherMode); } #endif -#if defined(MA_SUPPORT_AVX2) -static MA_INLINE void ma_pcm_f32_to_s32__avx2(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) -{ - ma_pcm_f32_to_s32__optimized(dst, src, count, ditherMode); -} -#endif #if defined(MA_SUPPORT_NEON) static MA_INLINE void ma_pcm_f32_to_s32__neon(void* dst, const void* src, ma_uint64 count, ma_dither_mode ditherMode) { @@ -43248,15 +44891,11 @@ MA_API void ma_pcm_f32_to_s32(void* dst, const void* src, ma_uint64 count, ma_di #ifdef MA_USE_REFERENCE_CONVERSION_APIS ma_pcm_f32_to_s32__reference(dst, src, count, ditherMode); #else - # if MA_PREFERRED_SIMD == MA_SIMD_AVX2 - if (ma_has_avx2()) { - ma_pcm_f32_to_s32__avx2(dst, src, count, ditherMode); - } else - #elif MA_PREFERRED_SIMD == MA_SIMD_SSE2 + # if defined(MA_SUPPORT_SSE2) if (ma_has_sse2()) { ma_pcm_f32_to_s32__sse2(dst, src, count, ditherMode); } else - #elif MA_PREFERRED_SIMD == MA_SIMD_NEON + #elif defined(MA_SUPPORT_NEON) if (ma_has_neon()) { ma_pcm_f32_to_s32__neon(dst, src, count, ditherMode); } else @@ -44631,7 +46270,7 @@ static MA_INLINE void ma_lpf_process_pcm_frame_f32(ma_lpf* pLPF, float* pY, cons MA_ASSERT(pLPF->format == ma_format_f32); - MA_COPY_MEMORY(pY, pX, ma_get_bytes_per_frame(pLPF->format, pLPF->channels)); + MA_MOVE_MEMORY(pY, pX, ma_get_bytes_per_frame(pLPF->format, pLPF->channels)); for (ilpf1 = 0; ilpf1 < pLPF->lpf1Count; ilpf1 += 1) { ma_lpf1_process_pcm_frame_f32(&pLPF->pLPF1[ilpf1], pY, pY); @@ -44649,7 +46288,7 @@ static MA_INLINE void ma_lpf_process_pcm_frame_s16(ma_lpf* pLPF, ma_int16* pY, c MA_ASSERT(pLPF->format == ma_format_s16); - MA_COPY_MEMORY(pY, pX, ma_get_bytes_per_frame(pLPF->format, pLPF->channels)); + MA_MOVE_MEMORY(pY, pX, ma_get_bytes_per_frame(pLPF->format, pLPF->channels)); for (ilpf1 = 0; ilpf1 < pLPF->lpf1Count; ilpf1 += 1) { ma_lpf1_process_pcm_frame_s16(&pLPF->pLPF1[ilpf1], pY, pY); @@ -46988,6 +48627,7 @@ MA_API ma_result ma_gainer_init_preallocated(const ma_gainer_config* pConfig, vo pGainer->pOldGains = (float*)ma_offset_ptr(pHeap, heapLayout.oldGainsOffset); pGainer->pNewGains = (float*)ma_offset_ptr(pHeap, heapLayout.newGainsOffset); + pGainer->masterVolume = 1; pGainer->config = *pConfig; pGainer->t = (ma_uint32)-1; /* No interpolation by default. */ @@ -47047,20 +48687,256 @@ static float ma_gainer_calculate_current_gain(const ma_gainer* pGainer, ma_uint3 return ma_mix_f32_fast(pGainer->pOldGains[channel], pGainer->pNewGains[channel], a); } -MA_API ma_result ma_gainer_process_pcm_frames(ma_gainer* pGainer, void* pFramesOut, const void* pFramesIn, ma_uint64 frameCount) +static /*__attribute__((noinline))*/ ma_result ma_gainer_process_pcm_frames_internal(ma_gainer * pGainer, void* MA_RESTRICT pFramesOut, const void* MA_RESTRICT pFramesIn, ma_uint64 frameCount) { ma_uint64 iFrame; ma_uint32 iChannel; - float* pFramesOutF32 = (float*)pFramesOut; - const float* pFramesInF32 = (const float*)pFramesIn; + ma_uint64 interpolatedFrameCount; - if (pGainer == NULL) { - return MA_INVALID_ARGS; + MA_ASSERT(pGainer != NULL); + + /* + We don't necessarily need to apply a linear interpolation for the entire frameCount frames. When + linear interpolation is not needed we can do a simple volume adjustment which will be more + efficient than a lerp with an alpha value of 1. + + To do this, all we need to do is determine how many frames need to have a lerp applied. Then we + just process that number of frames with linear interpolation. After that we run on an optimized + path which just applies the new gains without a lerp. + */ + if (pGainer->t >= pGainer->config.smoothTimeInFrames) { + interpolatedFrameCount = 0; + } else { + interpolatedFrameCount = pGainer->t - pGainer->config.smoothTimeInFrames; + if (interpolatedFrameCount > frameCount) { + interpolatedFrameCount = frameCount; + } } + /* + Start off with our interpolated frames. When we do this, we'll adjust frameCount and our pointers + so that the fast path can work naturally without consideration of the interpolated path. + */ + if (interpolatedFrameCount > 0) { + /* We can allow the input and output buffers to be null in which case we'll just update the internal timer. */ + if (pFramesOut != NULL && pFramesIn != NULL) { + /* + All we're really doing here is moving the old gains towards the new gains. We don't want to + be modifying the gains inside the ma_gainer object because that will break things. Instead + we can make a copy here on the stack. For extreme channel counts we can fall back to a slower + implementation which just uses a standard lerp. + */ + float* pFramesOutF32 = (float*)pFramesOut; + const float* pFramesInF32 = (const float*)pFramesIn; + float a = (float)pGainer->t / pGainer->config.smoothTimeInFrames; + float d = 1.0f / pGainer->config.smoothTimeInFrames; + + if (pGainer->config.channels <= 32) { + float pRunningGain[32]; + float pRunningGainDelta[32]; /* Could this be heap-allocated as part of the ma_gainer object? */ + + /* Initialize the running gain. */ + for (iChannel = 0; iChannel < pGainer->config.channels; iChannel += 1) { + float t = (pGainer->pNewGains[iChannel] - pGainer->pOldGains[iChannel]) * pGainer->masterVolume; + pRunningGainDelta[iChannel] = t * d; + pRunningGain[iChannel] = (pGainer->pOldGains[iChannel] * pGainer->masterVolume) + (t * a); + } + + iFrame = 0; + + /* Optimized paths for common channel counts. This is mostly just experimenting with some SIMD ideas. It's not necessarily final. */ + if (pGainer->config.channels == 2) { + #if defined(MA_SUPPORT_SSE2) + if (ma_has_sse2()) { + ma_uint64 unrolledLoopCount = interpolatedFrameCount >> 1; + + /* Expand some arrays so we can have a clean SIMD loop below. */ + __m128 runningGainDelta0 = _mm_set_ps(pRunningGainDelta[1], pRunningGainDelta[0], pRunningGainDelta[1], pRunningGainDelta[0]); + __m128 runningGain0 = _mm_set_ps(pRunningGain[1] + pRunningGainDelta[1], pRunningGain[0] + pRunningGainDelta[0], pRunningGain[1], pRunningGain[0]); + + for (; iFrame < unrolledLoopCount; iFrame += 1) { + _mm_storeu_ps(&pFramesOutF32[iFrame*4 + 0], _mm_mul_ps(_mm_loadu_ps(&pFramesInF32[iFrame*4 + 0]), runningGain0)); + runningGain0 = _mm_add_ps(runningGain0, runningGainDelta0); + } + + iFrame = unrolledLoopCount << 1; + } else + #endif + { + /* + Two different scalar implementations here. Clang (and I assume GCC) will vectorize + both of these, but the bottom version results in a nicer vectorization with less + instructions emitted. The problem, however, is that the bottom version runs slower + when compiled with MSVC. The top version will be partially vectorized by MSVC. + */ + #if defined(_MSC_VER) && !defined(__clang__) + ma_uint64 unrolledLoopCount = interpolatedFrameCount >> 1; + + /* Expand some arrays so we can have a clean 4x SIMD operation in the loop. */ + pRunningGainDelta[2] = pRunningGainDelta[0]; + pRunningGainDelta[3] = pRunningGainDelta[1]; + pRunningGain[2] = pRunningGain[0] + pRunningGainDelta[0]; + pRunningGain[3] = pRunningGain[1] + pRunningGainDelta[1]; + + for (; iFrame < unrolledLoopCount; iFrame += 1) { + pFramesOutF32[iFrame*4 + 0] = pFramesInF32[iFrame*4 + 0] * pRunningGain[0]; + pFramesOutF32[iFrame*4 + 1] = pFramesInF32[iFrame*4 + 1] * pRunningGain[1]; + pFramesOutF32[iFrame*4 + 2] = pFramesInF32[iFrame*4 + 2] * pRunningGain[2]; + pFramesOutF32[iFrame*4 + 3] = pFramesInF32[iFrame*4 + 3] * pRunningGain[3]; + + /* Move the running gain forward towards the new gain. */ + pRunningGain[0] += pRunningGainDelta[0]; + pRunningGain[1] += pRunningGainDelta[1]; + pRunningGain[2] += pRunningGainDelta[2]; + pRunningGain[3] += pRunningGainDelta[3]; + } + + iFrame = unrolledLoopCount << 1; + #else + for (; iFrame < interpolatedFrameCount; iFrame += 1) { + for (iChannel = 0; iChannel < 2; iChannel += 1) { + pFramesOutF32[iFrame*2 + iChannel] = pFramesInF32[iFrame*2 + iChannel] * pRunningGain[iChannel]; + } + + for (iChannel = 0; iChannel < 2; iChannel += 1) { + pRunningGain[iChannel] += pRunningGainDelta[iChannel]; + } + } + #endif + } + } else if (pGainer->config.channels == 6) { + #if defined(MA_SUPPORT_SSE2) + if (ma_has_sse2()) { + /* + For 6 channels things are a bit more complicated because 6 isn't cleanly divisible by 4. We need to do 2 frames + at a time, meaning we'll be doing 12 samples in a group. Like the stereo case we'll need to expand some arrays + so we can do clean 4x SIMD operations. + */ + ma_uint64 unrolledLoopCount = interpolatedFrameCount >> 1; + + /* Expand some arrays so we can have a clean SIMD loop below. */ + __m128 runningGainDelta0 = _mm_set_ps(pRunningGainDelta[3], pRunningGainDelta[2], pRunningGainDelta[1], pRunningGainDelta[0]); + __m128 runningGainDelta1 = _mm_set_ps(pRunningGainDelta[1], pRunningGainDelta[0], pRunningGainDelta[5], pRunningGainDelta[4]); + __m128 runningGainDelta2 = _mm_set_ps(pRunningGainDelta[5], pRunningGainDelta[4], pRunningGainDelta[3], pRunningGainDelta[2]); + + __m128 runningGain0 = _mm_set_ps(pRunningGain[3], pRunningGain[2], pRunningGain[1], pRunningGain[0]); + __m128 runningGain1 = _mm_set_ps(pRunningGain[1] + pRunningGainDelta[1], pRunningGain[0] + pRunningGainDelta[0], pRunningGain[5], pRunningGain[4]); + __m128 runningGain2 = _mm_set_ps(pRunningGain[5] + pRunningGainDelta[5], pRunningGain[4] + pRunningGainDelta[4], pRunningGain[3] + pRunningGainDelta[3], pRunningGain[2] + pRunningGainDelta[2]); + + for (; iFrame < unrolledLoopCount; iFrame += 1) { + _mm_storeu_ps(&pFramesOutF32[iFrame*12 + 0], _mm_mul_ps(_mm_loadu_ps(&pFramesInF32[iFrame*12 + 0]), runningGain0)); + _mm_storeu_ps(&pFramesOutF32[iFrame*12 + 4], _mm_mul_ps(_mm_loadu_ps(&pFramesInF32[iFrame*12 + 4]), runningGain1)); + _mm_storeu_ps(&pFramesOutF32[iFrame*12 + 8], _mm_mul_ps(_mm_loadu_ps(&pFramesInF32[iFrame*12 + 8]), runningGain2)); + + runningGain0 = _mm_add_ps(runningGain0, runningGainDelta0); + runningGain1 = _mm_add_ps(runningGain1, runningGainDelta1); + runningGain2 = _mm_add_ps(runningGain2, runningGainDelta2); + } + + iFrame = unrolledLoopCount << 1; + } else + #endif + { + for (; iFrame < interpolatedFrameCount; iFrame += 1) { + for (iChannel = 0; iChannel < 6; iChannel += 1) { + pFramesOutF32[iFrame*6 + iChannel] = pFramesInF32[iFrame*6 + iChannel] * pRunningGain[iChannel]; + } + + /* Move the running gain forward towards the new gain. */ + for (iChannel = 0; iChannel < 6; iChannel += 1) { + pRunningGain[iChannel] += pRunningGainDelta[iChannel]; + } + } + } + } else if (pGainer->config.channels == 8) { + /* For 8 channels we can just go over frame by frame and do all eight channels as 2 separate 4x SIMD operations. */ + #if defined(MA_SUPPORT_SSE2) + if (ma_has_sse2()) { + __m128 runningGainDelta0 = _mm_loadu_ps(&pRunningGainDelta[0]); + __m128 runningGainDelta1 = _mm_loadu_ps(&pRunningGainDelta[4]); + __m128 runningGain0 = _mm_loadu_ps(&pRunningGain[0]); + __m128 runningGain1 = _mm_loadu_ps(&pRunningGain[4]); + + for (; iFrame < interpolatedFrameCount; iFrame += 1) { + _mm_storeu_ps(&pFramesOutF32[iFrame*8 + 0], _mm_mul_ps(_mm_loadu_ps(&pFramesInF32[iFrame*8 + 0]), runningGain0)); + _mm_storeu_ps(&pFramesOutF32[iFrame*8 + 4], _mm_mul_ps(_mm_loadu_ps(&pFramesInF32[iFrame*8 + 4]), runningGain1)); + + runningGain0 = _mm_add_ps(runningGain0, runningGainDelta0); + runningGain1 = _mm_add_ps(runningGain1, runningGainDelta1); + } + } else + #endif + { + /* This is crafted so that it auto-vectorizes when compiled with Clang. */ + for (; iFrame < interpolatedFrameCount; iFrame += 1) { + for (iChannel = 0; iChannel < 8; iChannel += 1) { + pFramesOutF32[iFrame*8 + iChannel] = pFramesInF32[iFrame*8 + iChannel] * pRunningGain[iChannel]; + } + + /* Move the running gain forward towards the new gain. */ + for (iChannel = 0; iChannel < 8; iChannel += 1) { + pRunningGain[iChannel] += pRunningGainDelta[iChannel]; + } + } + } + } + + for (; iFrame < interpolatedFrameCount; iFrame += 1) { + for (iChannel = 0; iChannel < pGainer->config.channels; iChannel += 1) { + pFramesOutF32[iFrame*pGainer->config.channels + iChannel] = pFramesInF32[iFrame*pGainer->config.channels + iChannel] * pRunningGain[iChannel]; + pRunningGain[iChannel] += pRunningGainDelta[iChannel]; + } + } + } else { + /* Slower path for extreme channel counts where we can't fit enough on the stack. We could also move this to the heap as part of the ma_gainer object which might even be better since it'll only be updated when the gains actually change. */ + for (iFrame = 0; iFrame < interpolatedFrameCount; iFrame += 1) { + for (iChannel = 0; iChannel < pGainer->config.channels; iChannel += 1) { + pFramesOutF32[iFrame*pGainer->config.channels + iChannel] = pFramesInF32[iFrame*pGainer->config.channels + iChannel] * ma_mix_f32_fast(pGainer->pOldGains[iChannel], pGainer->pNewGains[iChannel], a) * pGainer->masterVolume; + } + + a += d; + } + } + } + + /* Make sure the timer is updated. */ + pGainer->t = (ma_uint32)ma_min(pGainer->t + interpolatedFrameCount, pGainer->config.smoothTimeInFrames); + + /* Adjust our arguments so the next part can work normally. */ + frameCount -= interpolatedFrameCount; + pFramesOut = ma_offset_ptr(pFramesOut, interpolatedFrameCount * sizeof(float)); + pFramesIn = ma_offset_ptr(pFramesIn, interpolatedFrameCount * sizeof(float)); + } + + /* All we need to do here is apply the new gains using an optimized path. */ + if (pFramesOut != NULL && pFramesIn != NULL) { + if (pGainer->config.channels <= 32) { + float gains[32]; + for (iChannel = 0; iChannel < pGainer->config.channels; iChannel += 1) { + gains[iChannel] = pGainer->pNewGains[iChannel] * pGainer->masterVolume; + } + + ma_copy_and_apply_volume_factor_per_channel_f32((float*)pFramesOut, (const float*)pFramesIn, frameCount, pGainer->config.channels, gains); + } else { + /* Slow path. Too many channels to fit on the stack. Need to apply a master volume as a separate path. */ + for (iFrame = 0; iFrame < frameCount; iFrame += 1) { + for (iChannel = 0; iChannel < pGainer->config.channels; iChannel += 1) { + ((float*)pFramesOut)[iFrame*pGainer->config.channels + iChannel] = ((const float*)pFramesIn)[iFrame*pGainer->config.channels + iChannel] * pGainer->pNewGains[iChannel] * pGainer->masterVolume; + } + } + } + } + + /* Now that some frames have been processed we need to make sure future changes to the gain are interpolated. */ + if (pGainer->t == (ma_uint32)-1) { + pGainer->t = (ma_uint32)ma_min(pGainer->config.smoothTimeInFrames, frameCount); + } + +#if 0 if (pGainer->t >= pGainer->config.smoothTimeInFrames) { /* Fast path. No gain calculation required. */ ma_copy_and_apply_volume_factor_per_channel_f32(pFramesOutF32, pFramesInF32, frameCount, pGainer->config.channels, pGainer->pNewGains); + ma_apply_volume_factor_f32(pFramesOutF32, frameCount * pGainer->config.channels, pGainer->masterVolume); /* Now that some frames have been processed we need to make sure future changes to the gain are interpolated. */ if (pGainer->t == (ma_uint32)-1) { @@ -47077,7 +48953,7 @@ MA_API ma_result ma_gainer_process_pcm_frames(ma_gainer* pGainer, void* pFramesO for (iFrame = 0; iFrame < frameCount; iFrame += 1) { for (iChannel = 0; iChannel < channelCount; iChannel += 1) { - pFramesOutF32[iChannel] = pFramesInF32[iChannel] * ma_mix_f32_fast(pGainer->pOldGains[iChannel], pGainer->pNewGains[iChannel], a); + pFramesOutF32[iChannel] = pFramesInF32[iChannel] * ma_mix_f32_fast(pGainer->pOldGains[iChannel], pGainer->pNewGains[iChannel], a) * pGainer->masterVolume; } pFramesOutF32 += channelCount; @@ -47097,7 +48973,7 @@ MA_API ma_result ma_gainer_process_pcm_frames(ma_gainer* pGainer, void* pFramesO /* We can allow the input and output buffers to be null in which case we'll just update the internal timer. */ if (pFramesOut != NULL && pFramesIn != NULL) { for (iChannel = 0; iChannel < pGainer->config.channels; iChannel += 1) { - pFramesOutF32[iFrame*pGainer->config.channels + iChannel] = pFramesInF32[iFrame*pGainer->config.channels + iChannel] * ma_gainer_calculate_current_gain(pGainer, iChannel); + pFramesOutF32[iFrame * pGainer->config.channels + iChannel] = pFramesInF32[iFrame * pGainer->config.channels + iChannel] * ma_gainer_calculate_current_gain(pGainer, iChannel) * pGainer->masterVolume; } } @@ -47106,10 +48982,24 @@ MA_API ma_result ma_gainer_process_pcm_frames(ma_gainer* pGainer, void* pFramesO } #endif } +#endif return MA_SUCCESS; } +MA_API ma_result ma_gainer_process_pcm_frames(ma_gainer* pGainer, void* pFramesOut, const void* pFramesIn, ma_uint64 frameCount) +{ + if (pGainer == NULL) { + return MA_INVALID_ARGS; + } + + /* + ma_gainer_process_pcm_frames_internal() marks pFramesOut and pFramesIn with MA_RESTRICT which + helps with auto-vectorization. + */ + return ma_gainer_process_pcm_frames_internal(pGainer, pFramesOut, pFramesIn, frameCount); +} + static void ma_gainer_set_gain_by_index(ma_gainer* pGainer, float newGain, ma_uint32 iChannel) { pGainer->pOldGains[iChannel] = ma_gainer_calculate_current_gain(pGainer, iChannel); @@ -47161,6 +49051,28 @@ MA_API ma_result ma_gainer_set_gains(ma_gainer* pGainer, float* pNewGains) return MA_SUCCESS; } +MA_API ma_result ma_gainer_set_master_volume(ma_gainer* pGainer, float volume) +{ + if (pGainer == NULL) { + return MA_INVALID_ARGS; + } + + pGainer->masterVolume = volume; + + return MA_SUCCESS; +} + +MA_API ma_result ma_gainer_get_master_volume(const ma_gainer* pGainer, float* pVolume) +{ + if (pGainer == NULL || pVolume == NULL) { + return MA_INVALID_ARGS; + } + + *pVolume = pGainer->masterVolume; + + return MA_SUCCESS; +} + MA_API ma_panner_config ma_panner_config_init(ma_format format, ma_uint32 channels) { @@ -47415,48 +49327,65 @@ MA_API ma_result ma_fader_process_pcm_frames(ma_fader* pFader, void* pFramesOut, return MA_INVALID_ARGS; } - /* - For now we need to clamp frameCount so that the cursor never overflows 32-bits. This is required for - the conversion to a float which we use for the linear interpolation. This might be changed later. - */ - if (frameCount + pFader->cursorInFrames > UINT_MAX) { - frameCount = UINT_MAX - pFader->cursorInFrames; + /* If the cursor is still negative we need to just copy the absolute number of those frames, but no more than frameCount. */ + if (pFader->cursorInFrames < 0) { + ma_uint64 absCursorInFrames = (ma_uint64)0 - pFader->cursorInFrames; + if (absCursorInFrames > frameCount) { + absCursorInFrames = frameCount; + } + + ma_copy_pcm_frames(pFramesOut, pFramesIn, absCursorInFrames, pFader->config.format, pFader->config.channels); + + pFader->cursorInFrames += absCursorInFrames; + frameCount -= absCursorInFrames; + pFramesOut = ma_offset_ptr(pFramesOut, ma_get_bytes_per_frame(pFader->config.format, pFader->config.channels)*absCursorInFrames); + pFramesIn = ma_offset_ptr(pFramesIn, ma_get_bytes_per_frame(pFader->config.format, pFader->config.channels)*absCursorInFrames); } - /* Optimized path if volumeBeg and volumeEnd are equal. */ - if (pFader->volumeBeg == pFader->volumeEnd) { - if (pFader->volumeBeg == 1) { - /* Straight copy. */ - ma_copy_pcm_frames(pFramesOut, pFramesIn, frameCount, pFader->config.format, pFader->config.channels); - } else { - /* Copy with volume. */ - ma_copy_and_apply_volume_and_clip_pcm_frames(pFramesOut, pFramesIn, frameCount, pFader->config.format, pFader->config.channels, pFader->volumeEnd); + if (pFader->cursorInFrames >= 0) { + /* + For now we need to clamp frameCount so that the cursor never overflows 32-bits. This is required for + the conversion to a float which we use for the linear interpolation. This might be changed later. + */ + if (frameCount + pFader->cursorInFrames > UINT_MAX) { + frameCount = UINT_MAX - pFader->cursorInFrames; } - } else { - /* Slower path. Volumes are different, so may need to do an interpolation. */ - if (pFader->cursorInFrames >= pFader->lengthInFrames) { - /* Fast path. We've gone past the end of the fade period so just apply the end volume to all samples. */ - ma_copy_and_apply_volume_and_clip_pcm_frames(pFramesOut, pFramesIn, frameCount, pFader->config.format, pFader->config.channels, pFader->volumeEnd); - } else { - /* Slow path. This is where we do the actual fading. */ - ma_uint64 iFrame; - ma_uint32 iChannel; - /* For now we only support f32. Support for other formats will be added later. */ - if (pFader->config.format == ma_format_f32) { - const float* pFramesInF32 = (const float*)pFramesIn; - /* */ float* pFramesOutF32 = ( float*)pFramesOut; - - for (iFrame = 0; iFrame < frameCount; iFrame += 1) { - float a = (ma_uint32)ma_min(pFader->cursorInFrames + iFrame, pFader->lengthInFrames) / (float)((ma_uint32)pFader->lengthInFrames); /* Safe cast due to the frameCount clamp at the top of this function. */ - float volume = ma_mix_f32_fast(pFader->volumeBeg, pFader->volumeEnd, a); - - for (iChannel = 0; iChannel < pFader->config.channels; iChannel += 1) { - pFramesOutF32[iFrame*pFader->config.channels + iChannel] = pFramesInF32[iFrame*pFader->config.channels + iChannel] * volume; - } - } + /* Optimized path if volumeBeg and volumeEnd are equal. */ + if (pFader->volumeBeg == pFader->volumeEnd) { + if (pFader->volumeBeg == 1) { + /* Straight copy. */ + ma_copy_pcm_frames(pFramesOut, pFramesIn, frameCount, pFader->config.format, pFader->config.channels); } else { - return MA_NOT_IMPLEMENTED; + /* Copy with volume. */ + ma_copy_and_apply_volume_and_clip_pcm_frames(pFramesOut, pFramesIn, frameCount, pFader->config.format, pFader->config.channels, pFader->volumeBeg); + } + } else { + /* Slower path. Volumes are different, so may need to do an interpolation. */ + if ((ma_uint64)pFader->cursorInFrames >= pFader->lengthInFrames) { + /* Fast path. We've gone past the end of the fade period so just apply the end volume to all samples. */ + ma_copy_and_apply_volume_and_clip_pcm_frames(pFramesOut, pFramesIn, frameCount, pFader->config.format, pFader->config.channels, pFader->volumeEnd); + } else { + /* Slow path. This is where we do the actual fading. */ + ma_uint64 iFrame; + ma_uint32 iChannel; + + /* For now we only support f32. Support for other formats might be added later. */ + if (pFader->config.format == ma_format_f32) { + const float* pFramesInF32 = (const float*)pFramesIn; + /* */ float* pFramesOutF32 = ( float*)pFramesOut; + + for (iFrame = 0; iFrame < frameCount; iFrame += 1) { + float a = (ma_uint32)ma_min(pFader->cursorInFrames + iFrame, pFader->lengthInFrames) / (float)((ma_uint32)pFader->lengthInFrames); /* Safe cast due to the frameCount clamp at the top of this function. */ + float volume = ma_mix_f32_fast(pFader->volumeBeg, pFader->volumeEnd, a); + + for (iChannel = 0; iChannel < pFader->config.channels; iChannel += 1) { + pFramesOutF32[iFrame*pFader->config.channels + iChannel] = pFramesInF32[iFrame*pFader->config.channels + iChannel] * volume; + } + } + } else { + return MA_NOT_IMPLEMENTED; + } } } } @@ -47486,6 +49415,11 @@ MA_API void ma_fader_get_data_format(const ma_fader* pFader, ma_format* pFormat, } MA_API void ma_fader_set_fade(ma_fader* pFader, float volumeBeg, float volumeEnd, ma_uint64 lengthInFrames) +{ + ma_fader_set_fade_ex(pFader, volumeBeg, volumeEnd, lengthInFrames, 0); +} + +MA_API void ma_fader_set_fade_ex(ma_fader* pFader, float volumeBeg, float volumeEnd, ma_uint64 lengthInFrames, ma_int64 startOffsetInFrames) { if (pFader == NULL) { return; @@ -47504,22 +49438,32 @@ MA_API void ma_fader_set_fade(ma_fader* pFader, float volumeBeg, float volumeEnd lengthInFrames = UINT_MAX; } + /* The start offset needs to be clamped to ensure it doesn't overflow a signed number. */ + if (startOffsetInFrames > INT_MAX) { + startOffsetInFrames = INT_MAX; + } + pFader->volumeBeg = volumeBeg; pFader->volumeEnd = volumeEnd; pFader->lengthInFrames = lengthInFrames; - pFader->cursorInFrames = 0; /* Reset cursor. */ + pFader->cursorInFrames = -startOffsetInFrames; } -MA_API float ma_fader_get_current_volume(ma_fader* pFader) +MA_API float ma_fader_get_current_volume(const ma_fader* pFader) { if (pFader == NULL) { return 0.0f; } + /* Any frames prior to the start of the fade period will be at unfaded volume. */ + if (pFader->cursorInFrames < 0) { + return 1.0f; + } + /* The current volume depends on the position of the cursor. */ if (pFader->cursorInFrames == 0) { return pFader->volumeBeg; - } else if (pFader->cursorInFrames >= pFader->lengthInFrames) { + } else if ((ma_uint64)pFader->cursorInFrames >= pFader->lengthInFrames) { /* Safe case because the < 0 case was checked above. */ return pFader->volumeEnd; } else { /* The cursor is somewhere inside the fading period. We can figure this out with a simple linear interpoluation between volumeBeg and volumeEnd based on our cursor position. */ @@ -47575,6 +49519,8 @@ MA_API float ma_vec3f_len(ma_vec3f v) return (float)ma_sqrtd(ma_vec3f_len2(v)); } + + MA_API float ma_vec3f_dist(ma_vec3f a, ma_vec3f b) { return ma_vec3f_len(ma_vec3f_sub(a, b)); @@ -47582,16 +49528,16 @@ MA_API float ma_vec3f_dist(ma_vec3f a, ma_vec3f b) MA_API ma_vec3f ma_vec3f_normalize(ma_vec3f v) { - float f; - float l = ma_vec3f_len(v); - if (l == 0) { + float invLen; + float len2 = ma_vec3f_len2(v); + if (len2 == 0) { return ma_vec3f_init_3f(0, 0, 0); } - f = 1 / l; - v.x *= f; - v.y *= f; - v.z *= f; + invLen = ma_rsqrtf(len2); + v.x *= invLen; + v.y *= invLen; + v.z *= invLen; return v; } @@ -47606,6 +49552,35 @@ MA_API ma_vec3f ma_vec3f_cross(ma_vec3f a, ma_vec3f b) } +MA_API void ma_atomic_vec3f_init(ma_atomic_vec3f* v, ma_vec3f value) +{ + v->v = value; + v->lock = 0; /* Important this is initialized to 0. */ +} + +MA_API void ma_atomic_vec3f_set(ma_atomic_vec3f* v, ma_vec3f value) +{ + ma_spinlock_lock(&v->lock); + { + v->v = value; + } + ma_spinlock_unlock(&v->lock); +} + +MA_API ma_vec3f ma_atomic_vec3f_get(ma_atomic_vec3f* v) +{ + ma_vec3f r; + + ma_spinlock_lock(&v->lock); + { + r = v->v; + } + ma_spinlock_unlock(&v->lock); + + return r; +} + + static void ma_channel_map_apply_f32(float* pFramesOut, const ma_channel* pChannelMapOut, ma_uint32 channelsOut, const float* pFramesIn, const ma_channel* pChannelMapIn, ma_uint32 channelsIn, ma_uint64 frameCount, ma_channel_mix_mode mode, ma_mono_expansion_mode monoExpansionMode); static ma_bool32 ma_is_spatial_channel_position(ma_channel channelPosition); @@ -47856,14 +49831,15 @@ MA_API ma_result ma_spatializer_listener_init_preallocated(const ma_spatializer_ MA_ZERO_MEMORY(pHeap, heapLayout.sizeInBytes); pListener->config = *pConfig; - pListener->position = ma_vec3f_init_3f(0, 0, 0); - pListener->direction = ma_vec3f_init_3f(0, 0, -1); - pListener->velocity = ma_vec3f_init_3f(0, 0, 0); + ma_atomic_vec3f_init(&pListener->position, ma_vec3f_init_3f(0, 0, 0)); + ma_atomic_vec3f_init(&pListener->direction, ma_vec3f_init_3f(0, 0, -1)); + ma_atomic_vec3f_init(&pListener->velocity, ma_vec3f_init_3f(0, 0, 0)); pListener->isEnabled = MA_TRUE; /* Swap the forward direction if we're left handed (it was initialized based on right handed). */ if (pListener->config.handedness == ma_handedness_left) { - pListener->direction = ma_vec3f_neg(pListener->direction); + ma_vec3f negDir = ma_vec3f_neg(ma_spatializer_listener_get_direction(pListener)); + ma_spatializer_listener_set_direction(pListener, negDir.x, negDir.y, negDir.z); } @@ -47966,7 +49942,7 @@ MA_API void ma_spatializer_listener_set_position(ma_spatializer_listener* pListe return; } - pListener->position = ma_vec3f_init_3f(x, y, z); + ma_atomic_vec3f_set(&pListener->position, ma_vec3f_init_3f(x, y, z)); } MA_API ma_vec3f ma_spatializer_listener_get_position(const ma_spatializer_listener* pListener) @@ -47975,7 +49951,7 @@ MA_API ma_vec3f ma_spatializer_listener_get_position(const ma_spatializer_listen return ma_vec3f_init_3f(0, 0, 0); } - return pListener->position; + return ma_atomic_vec3f_get((ma_atomic_vec3f*)&pListener->position); /* Naughty const-cast. It's just for atomically loading the vec3 which should be safe. */ } MA_API void ma_spatializer_listener_set_direction(ma_spatializer_listener* pListener, float x, float y, float z) @@ -47984,7 +49960,7 @@ MA_API void ma_spatializer_listener_set_direction(ma_spatializer_listener* pList return; } - pListener->direction = ma_vec3f_init_3f(x, y, z); + ma_atomic_vec3f_set(&pListener->direction, ma_vec3f_init_3f(x, y, z)); } MA_API ma_vec3f ma_spatializer_listener_get_direction(const ma_spatializer_listener* pListener) @@ -47993,7 +49969,7 @@ MA_API ma_vec3f ma_spatializer_listener_get_direction(const ma_spatializer_liste return ma_vec3f_init_3f(0, 0, -1); } - return pListener->direction; + return ma_atomic_vec3f_get((ma_atomic_vec3f*)&pListener->direction); /* Naughty const-cast. It's just for atomically loading the vec3 which should be safe. */ } MA_API void ma_spatializer_listener_set_velocity(ma_spatializer_listener* pListener, float x, float y, float z) @@ -48002,7 +49978,7 @@ MA_API void ma_spatializer_listener_set_velocity(ma_spatializer_listener* pListe return; } - pListener->velocity = ma_vec3f_init_3f(x, y, z); + ma_atomic_vec3f_set(&pListener->velocity, ma_vec3f_init_3f(x, y, z)); } MA_API ma_vec3f ma_spatializer_listener_get_velocity(const ma_spatializer_listener* pListener) @@ -48011,7 +49987,7 @@ MA_API ma_vec3f ma_spatializer_listener_get_velocity(const ma_spatializer_listen return ma_vec3f_init_3f(0, 0, 0); } - return pListener->velocity; + return ma_atomic_vec3f_get((ma_atomic_vec3f*)&pListener->velocity); /* Naughty const-cast. It's just for atomically loading the vec3 which should be safe. */ } MA_API void ma_spatializer_listener_set_speed_of_sound(ma_spatializer_listener* pListener, float speedOfSound) @@ -48092,6 +50068,7 @@ MA_API ma_spatializer_config ma_spatializer_config_init(ma_uint32 channelsIn, ma config.coneOuterGain = 0.0f; config.dopplerFactor = 1; config.directionalAttenuationFactor = 1; + config.minSpatializationChannelGain = 0.2f; config.gainSmoothTimeInFrames = 360; /* 7.5ms @ 48K. */ return config; @@ -48232,16 +50209,18 @@ MA_API ma_result ma_spatializer_init_preallocated(const ma_spatializer_config* p pSpatializer->coneOuterAngleInRadians = pConfig->coneOuterAngleInRadians; pSpatializer->coneOuterGain = pConfig->coneOuterGain; pSpatializer->dopplerFactor = pConfig->dopplerFactor; + pSpatializer->minSpatializationChannelGain = pConfig->minSpatializationChannelGain; pSpatializer->directionalAttenuationFactor = pConfig->directionalAttenuationFactor; pSpatializer->gainSmoothTimeInFrames = pConfig->gainSmoothTimeInFrames; - pSpatializer->position = ma_vec3f_init_3f(0, 0, 0); - pSpatializer->direction = ma_vec3f_init_3f(0, 0, -1); - pSpatializer->velocity = ma_vec3f_init_3f(0, 0, 0); + ma_atomic_vec3f_init(&pSpatializer->position, ma_vec3f_init_3f(0, 0, 0)); + ma_atomic_vec3f_init(&pSpatializer->direction, ma_vec3f_init_3f(0, 0, -1)); + ma_atomic_vec3f_init(&pSpatializer->velocity, ma_vec3f_init_3f(0, 0, 0)); pSpatializer->dopplerPitch = 1; /* Swap the forward direction if we're left handed (it was initialized based on right handed). */ if (pSpatializer->handedness == ma_handedness_left) { - pSpatializer->direction = ma_vec3f_neg(pSpatializer->direction); + ma_vec3f negDir = ma_vec3f_neg(ma_spatializer_get_direction(pSpatializer)); + ma_spatializer_set_direction(pSpatializer, negDir.x, negDir.y, negDir.z); } /* Channel map. This will be on the heap. */ @@ -48362,7 +50341,7 @@ MA_API ma_result ma_spatializer_process_pcm_frames(ma_spatializer* pSpatializer, } /* If we're not spatializing we need to run an optimized path. */ - if (c89atomic_load_i32(&pSpatializer->attenuationModel) == ma_attenuation_model_none) { + if (ma_atomic_load_i32(&pSpatializer->attenuationModel) == ma_attenuation_model_none) { if (ma_spatializer_listener_is_enabled(pListener)) { /* No attenuation is required, but we'll need to do some channel conversion. */ if (pSpatializer->channelsIn == pSpatializer->channelsOut) { @@ -48406,7 +50385,7 @@ MA_API ma_result ma_spatializer_process_pcm_frames(ma_spatializer* pSpatializer, defined by the listener, so we'll grab that here too. */ if (pListener != NULL) { - listenerVel = pListener->velocity; + listenerVel = ma_spatializer_listener_get_velocity(pListener); speedOfSound = pListener->config.speedOfSound; } else { listenerVel = ma_vec3f_init_3f(0, 0, 0); @@ -48415,8 +50394,8 @@ MA_API ma_result ma_spatializer_process_pcm_frames(ma_spatializer* pSpatializer, if (pListener == NULL || ma_spatializer_get_positioning(pSpatializer) == ma_positioning_relative) { /* There's no listener or we're using relative positioning. */ - relativePos = pSpatializer->position; - relativeDir = pSpatializer->direction; + relativePos = ma_spatializer_get_position(pSpatializer); + relativeDir = ma_spatializer_get_direction(pSpatializer); } else { /* We've found a listener and we're using absolute positioning. We need to transform the @@ -48512,6 +50491,26 @@ MA_API ma_result ma_spatializer_process_pcm_frames(ma_spatializer* pSpatializer, /* Clamp the gain. */ gain = ma_clamp(gain, ma_spatializer_get_min_gain(pSpatializer), ma_spatializer_get_max_gain(pSpatializer)); + /* + The gain needs to be applied per-channel here. The spatialization code below will be changing the per-channel + gains which will then eventually be passed into the gainer which will deal with smoothing the gain transitions + to avoid harsh changes in gain. + */ + for (iChannel = 0; iChannel < channelsOut; iChannel += 1) { + pSpatializer->pNewChannelGainsOut[iChannel] = gain; + } + + /* + Convert to our output channel count. If the listener is disabled we just output silence here. We cannot ignore + the whole section of code here because we need to update some internal spatialization state. + */ + if (ma_spatializer_listener_is_enabled(pListener)) { + ma_channel_map_apply_f32((float*)pFramesOut, pChannelMapOut, channelsOut, (const float*)pFramesIn, pChannelMapIn, channelsIn, frameCount, ma_channel_mix_mode_rectangular, ma_mono_expansion_mode_default); + } else { + ma_silence_pcm_frames(pFramesOut, frameCount, ma_format_f32, pSpatializer->channelsOut); + } + + /* Panning. This is where we'll apply the gain and convert to the output channel count. We have an optimized path for when we're converting to a mono stream. In that case we don't really need to do any panning - we just apply the @@ -48533,19 +50532,6 @@ MA_API ma_result ma_spatializer_process_pcm_frames(ma_spatializer* pSpatializer, be +1 on the X axis. A dot product is performed against the direction vector of the channel and the normalized position of the sound. */ - for (iChannel = 0; iChannel < channelsOut; iChannel += 1) { - pSpatializer->pNewChannelGainsOut[iChannel] = gain; - } - - /* - Convert to our output channel count. If the listener is disabled we just output silence here. We cannot ignore - the whole section of code here because we need to update some internal spatialization state. - */ - if (ma_spatializer_listener_is_enabled(pListener)) { - ma_channel_map_apply_f32((float*)pFramesOut, pChannelMapOut, channelsOut, (const float*)pFramesIn, pChannelMapIn, channelsIn, frameCount, ma_channel_mix_mode_rectangular, ma_mono_expansion_mode_default); - } else { - ma_silence_pcm_frames(pFramesOut, frameCount, ma_format_f32, pSpatializer->channelsOut); - } /* Calculate our per-channel gains. We do this based on the normalized relative position of the sound and it's @@ -48576,13 +50562,13 @@ MA_API ma_result ma_spatializer_process_pcm_frames(ma_spatializer* pSpatializer, 0, panning will be most extreme and any sounds that are positioned on the opposite side of the speaker will be completely silent from that speaker. Not only does this feel uncomfortable, it doesn't even remotely represent the real world at all because sounds that come from your right side - are still clearly audible from your left side. Setting "dMin" to 1 will result in no panning at + are still clearly audible from your left side. Setting "dMin" to 1 will result in no panning at all, which is also not ideal. By setting it to something greater than 0, the spatialization effect becomes much less dramatic and a lot more bearable. Summary: 0 = more extreme panning; 1 = no panning. */ - dMin = 0.2f; /* TODO: Consider making this configurable. */ + dMin = pSpatializer->minSpatializationChannelGain; /* At this point, "d" will be positive if the sound is on the same side as the channel and negative if @@ -48645,7 +50631,7 @@ MA_API ma_result ma_spatializer_process_pcm_frames(ma_spatializer* pSpatializer, source. */ if (dopplerFactor > 0) { - pSpatializer->dopplerPitch = ma_doppler_pitch(ma_vec3f_sub(pListener->position, pSpatializer->position), pSpatializer->velocity, listenerVel, speedOfSound, dopplerFactor); + pSpatializer->dopplerPitch = ma_doppler_pitch(ma_vec3f_sub(ma_spatializer_listener_get_position(pListener), ma_spatializer_get_position(pSpatializer)), ma_spatializer_get_velocity(pSpatializer), listenerVel, speedOfSound, dopplerFactor); } else { pSpatializer->dopplerPitch = 1; } @@ -48654,6 +50640,24 @@ MA_API ma_result ma_spatializer_process_pcm_frames(ma_spatializer* pSpatializer, return MA_SUCCESS; } +MA_API ma_result ma_spatializer_set_master_volume(ma_spatializer* pSpatializer, float volume) +{ + if (pSpatializer == NULL) { + return MA_INVALID_ARGS; + } + + return ma_gainer_set_master_volume(&pSpatializer->gainer, volume); +} + +MA_API ma_result ma_spatializer_get_master_volume(const ma_spatializer* pSpatializer, float* pVolume) +{ + if (pSpatializer == NULL) { + return MA_INVALID_ARGS; + } + + return ma_gainer_get_master_volume(&pSpatializer->gainer, pVolume); +} + MA_API ma_uint32 ma_spatializer_get_input_channels(const ma_spatializer* pSpatializer) { if (pSpatializer == NULL) { @@ -48678,7 +50682,7 @@ MA_API void ma_spatializer_set_attenuation_model(ma_spatializer* pSpatializer, m return; } - c89atomic_exchange_i32(&pSpatializer->attenuationModel, attenuationModel); + ma_atomic_exchange_i32(&pSpatializer->attenuationModel, attenuationModel); } MA_API ma_attenuation_model ma_spatializer_get_attenuation_model(const ma_spatializer* pSpatializer) @@ -48687,7 +50691,7 @@ MA_API ma_attenuation_model ma_spatializer_get_attenuation_model(const ma_spatia return ma_attenuation_model_none; } - return (ma_attenuation_model)c89atomic_load_i32(&pSpatializer->attenuationModel); + return (ma_attenuation_model)ma_atomic_load_i32(&pSpatializer->attenuationModel); } MA_API void ma_spatializer_set_positioning(ma_spatializer* pSpatializer, ma_positioning positioning) @@ -48696,7 +50700,7 @@ MA_API void ma_spatializer_set_positioning(ma_spatializer* pSpatializer, ma_posi return; } - c89atomic_exchange_i32(&pSpatializer->positioning, positioning); + ma_atomic_exchange_i32(&pSpatializer->positioning, positioning); } MA_API ma_positioning ma_spatializer_get_positioning(const ma_spatializer* pSpatializer) @@ -48705,7 +50709,7 @@ MA_API ma_positioning ma_spatializer_get_positioning(const ma_spatializer* pSpat return ma_positioning_absolute; } - return (ma_positioning)c89atomic_load_i32(&pSpatializer->positioning); + return (ma_positioning)ma_atomic_load_i32(&pSpatializer->positioning); } MA_API void ma_spatializer_set_rolloff(ma_spatializer* pSpatializer, float rolloff) @@ -48714,7 +50718,7 @@ MA_API void ma_spatializer_set_rolloff(ma_spatializer* pSpatializer, float rollo return; } - c89atomic_exchange_f32(&pSpatializer->rolloff, rolloff); + ma_atomic_exchange_f32(&pSpatializer->rolloff, rolloff); } MA_API float ma_spatializer_get_rolloff(const ma_spatializer* pSpatializer) @@ -48723,7 +50727,7 @@ MA_API float ma_spatializer_get_rolloff(const ma_spatializer* pSpatializer) return 0; } - return c89atomic_load_f32(&pSpatializer->rolloff); + return ma_atomic_load_f32(&pSpatializer->rolloff); } MA_API void ma_spatializer_set_min_gain(ma_spatializer* pSpatializer, float minGain) @@ -48732,7 +50736,7 @@ MA_API void ma_spatializer_set_min_gain(ma_spatializer* pSpatializer, float minG return; } - c89atomic_exchange_f32(&pSpatializer->minGain, minGain); + ma_atomic_exchange_f32(&pSpatializer->minGain, minGain); } MA_API float ma_spatializer_get_min_gain(const ma_spatializer* pSpatializer) @@ -48741,7 +50745,7 @@ MA_API float ma_spatializer_get_min_gain(const ma_spatializer* pSpatializer) return 0; } - return c89atomic_load_f32(&pSpatializer->minGain); + return ma_atomic_load_f32(&pSpatializer->minGain); } MA_API void ma_spatializer_set_max_gain(ma_spatializer* pSpatializer, float maxGain) @@ -48750,7 +50754,7 @@ MA_API void ma_spatializer_set_max_gain(ma_spatializer* pSpatializer, float maxG return; } - c89atomic_exchange_f32(&pSpatializer->maxGain, maxGain); + ma_atomic_exchange_f32(&pSpatializer->maxGain, maxGain); } MA_API float ma_spatializer_get_max_gain(const ma_spatializer* pSpatializer) @@ -48759,7 +50763,7 @@ MA_API float ma_spatializer_get_max_gain(const ma_spatializer* pSpatializer) return 0; } - return c89atomic_load_f32(&pSpatializer->maxGain); + return ma_atomic_load_f32(&pSpatializer->maxGain); } MA_API void ma_spatializer_set_min_distance(ma_spatializer* pSpatializer, float minDistance) @@ -48768,7 +50772,7 @@ MA_API void ma_spatializer_set_min_distance(ma_spatializer* pSpatializer, float return; } - c89atomic_exchange_f32(&pSpatializer->minDistance, minDistance); + ma_atomic_exchange_f32(&pSpatializer->minDistance, minDistance); } MA_API float ma_spatializer_get_min_distance(const ma_spatializer* pSpatializer) @@ -48777,7 +50781,7 @@ MA_API float ma_spatializer_get_min_distance(const ma_spatializer* pSpatializer) return 0; } - return c89atomic_load_f32(&pSpatializer->minDistance); + return ma_atomic_load_f32(&pSpatializer->minDistance); } MA_API void ma_spatializer_set_max_distance(ma_spatializer* pSpatializer, float maxDistance) @@ -48786,7 +50790,7 @@ MA_API void ma_spatializer_set_max_distance(ma_spatializer* pSpatializer, float return; } - c89atomic_exchange_f32(&pSpatializer->maxDistance, maxDistance); + ma_atomic_exchange_f32(&pSpatializer->maxDistance, maxDistance); } MA_API float ma_spatializer_get_max_distance(const ma_spatializer* pSpatializer) @@ -48795,7 +50799,7 @@ MA_API float ma_spatializer_get_max_distance(const ma_spatializer* pSpatializer) return 0; } - return c89atomic_load_f32(&pSpatializer->maxDistance); + return ma_atomic_load_f32(&pSpatializer->maxDistance); } MA_API void ma_spatializer_set_cone(ma_spatializer* pSpatializer, float innerAngleInRadians, float outerAngleInRadians, float outerGain) @@ -48804,9 +50808,9 @@ MA_API void ma_spatializer_set_cone(ma_spatializer* pSpatializer, float innerAng return; } - c89atomic_exchange_f32(&pSpatializer->coneInnerAngleInRadians, innerAngleInRadians); - c89atomic_exchange_f32(&pSpatializer->coneOuterAngleInRadians, outerAngleInRadians); - c89atomic_exchange_f32(&pSpatializer->coneOuterGain, outerGain); + ma_atomic_exchange_f32(&pSpatializer->coneInnerAngleInRadians, innerAngleInRadians); + ma_atomic_exchange_f32(&pSpatializer->coneOuterAngleInRadians, outerAngleInRadians); + ma_atomic_exchange_f32(&pSpatializer->coneOuterGain, outerGain); } MA_API void ma_spatializer_get_cone(const ma_spatializer* pSpatializer, float* pInnerAngleInRadians, float* pOuterAngleInRadians, float* pOuterGain) @@ -48816,15 +50820,15 @@ MA_API void ma_spatializer_get_cone(const ma_spatializer* pSpatializer, float* p } if (pInnerAngleInRadians != NULL) { - *pInnerAngleInRadians = c89atomic_load_f32(&pSpatializer->coneInnerAngleInRadians); + *pInnerAngleInRadians = ma_atomic_load_f32(&pSpatializer->coneInnerAngleInRadians); } if (pOuterAngleInRadians != NULL) { - *pOuterAngleInRadians = c89atomic_load_f32(&pSpatializer->coneOuterAngleInRadians); + *pOuterAngleInRadians = ma_atomic_load_f32(&pSpatializer->coneOuterAngleInRadians); } if (pOuterGain != NULL) { - *pOuterGain = c89atomic_load_f32(&pSpatializer->coneOuterGain); + *pOuterGain = ma_atomic_load_f32(&pSpatializer->coneOuterGain); } } @@ -48834,7 +50838,7 @@ MA_API void ma_spatializer_set_doppler_factor(ma_spatializer* pSpatializer, floa return; } - c89atomic_exchange_f32(&pSpatializer->dopplerFactor, dopplerFactor); + ma_atomic_exchange_f32(&pSpatializer->dopplerFactor, dopplerFactor); } MA_API float ma_spatializer_get_doppler_factor(const ma_spatializer* pSpatializer) @@ -48843,7 +50847,7 @@ MA_API float ma_spatializer_get_doppler_factor(const ma_spatializer* pSpatialize return 1; } - return c89atomic_load_f32(&pSpatializer->dopplerFactor); + return ma_atomic_load_f32(&pSpatializer->dopplerFactor); } MA_API void ma_spatializer_set_directional_attenuation_factor(ma_spatializer* pSpatializer, float directionalAttenuationFactor) @@ -48852,7 +50856,7 @@ MA_API void ma_spatializer_set_directional_attenuation_factor(ma_spatializer* pS return; } - c89atomic_exchange_f32(&pSpatializer->directionalAttenuationFactor, directionalAttenuationFactor); + ma_atomic_exchange_f32(&pSpatializer->directionalAttenuationFactor, directionalAttenuationFactor); } MA_API float ma_spatializer_get_directional_attenuation_factor(const ma_spatializer* pSpatializer) @@ -48861,7 +50865,7 @@ MA_API float ma_spatializer_get_directional_attenuation_factor(const ma_spatiali return 1; } - return c89atomic_load_f32(&pSpatializer->directionalAttenuationFactor); + return ma_atomic_load_f32(&pSpatializer->directionalAttenuationFactor); } MA_API void ma_spatializer_set_position(ma_spatializer* pSpatializer, float x, float y, float z) @@ -48870,7 +50874,7 @@ MA_API void ma_spatializer_set_position(ma_spatializer* pSpatializer, float x, f return; } - pSpatializer->position = ma_vec3f_init_3f(x, y, z); + ma_atomic_vec3f_set(&pSpatializer->position, ma_vec3f_init_3f(x, y, z)); } MA_API ma_vec3f ma_spatializer_get_position(const ma_spatializer* pSpatializer) @@ -48879,7 +50883,7 @@ MA_API ma_vec3f ma_spatializer_get_position(const ma_spatializer* pSpatializer) return ma_vec3f_init_3f(0, 0, 0); } - return pSpatializer->position; + return ma_atomic_vec3f_get((ma_atomic_vec3f*)&pSpatializer->position); /* Naughty const-cast. It's just for atomically loading the vec3 which should be safe. */ } MA_API void ma_spatializer_set_direction(ma_spatializer* pSpatializer, float x, float y, float z) @@ -48888,7 +50892,7 @@ MA_API void ma_spatializer_set_direction(ma_spatializer* pSpatializer, float x, return; } - pSpatializer->direction = ma_vec3f_init_3f(x, y, z); + ma_atomic_vec3f_set(&pSpatializer->direction, ma_vec3f_init_3f(x, y, z)); } MA_API ma_vec3f ma_spatializer_get_direction(const ma_spatializer* pSpatializer) @@ -48897,7 +50901,7 @@ MA_API ma_vec3f ma_spatializer_get_direction(const ma_spatializer* pSpatializer) return ma_vec3f_init_3f(0, 0, -1); } - return pSpatializer->direction; + return ma_atomic_vec3f_get((ma_atomic_vec3f*)&pSpatializer->direction); /* Naughty const-cast. It's just for atomically loading the vec3 which should be safe. */ } MA_API void ma_spatializer_set_velocity(ma_spatializer* pSpatializer, float x, float y, float z) @@ -48906,7 +50910,7 @@ MA_API void ma_spatializer_set_velocity(ma_spatializer* pSpatializer, float x, f return; } - pSpatializer->velocity = ma_vec3f_init_3f(x, y, z); + ma_atomic_vec3f_set(&pSpatializer->velocity, ma_vec3f_init_3f(x, y, z)); } MA_API ma_vec3f ma_spatializer_get_velocity(const ma_spatializer* pSpatializer) @@ -48915,7 +50919,7 @@ MA_API ma_vec3f ma_spatializer_get_velocity(const ma_spatializer* pSpatializer) return ma_vec3f_init_3f(0, 0, 0); } - return pSpatializer->velocity; + return ma_atomic_vec3f_get((ma_atomic_vec3f*)&pSpatializer->velocity); /* Naughty const-cast. It's just for atomically loading the vec3 which should be safe. */ } MA_API void ma_spatializer_get_relative_position_and_direction(const ma_spatializer* pSpatializer, const ma_spatializer_listener* pListener, ma_vec3f* pRelativePos, ma_vec3f* pRelativeDir) @@ -48939,23 +50943,32 @@ MA_API void ma_spatializer_get_relative_position_and_direction(const ma_spatiali if (pListener == NULL || ma_spatializer_get_positioning(pSpatializer) == ma_positioning_relative) { /* There's no listener or we're using relative positioning. */ if (pRelativePos != NULL) { - *pRelativePos = pSpatializer->position; + *pRelativePos = ma_spatializer_get_position(pSpatializer); } if (pRelativeDir != NULL) { - *pRelativeDir = pSpatializer->direction; + *pRelativeDir = ma_spatializer_get_direction(pSpatializer); } } else { + ma_vec3f spatializerPosition; + ma_vec3f spatializerDirection; + ma_vec3f listenerPosition; + ma_vec3f listenerDirection; ma_vec3f v; ma_vec3f axisX; ma_vec3f axisY; ma_vec3f axisZ; float m[4][4]; + spatializerPosition = ma_spatializer_get_position(pSpatializer); + spatializerDirection = ma_spatializer_get_direction(pSpatializer); + listenerPosition = ma_spatializer_listener_get_position(pListener); + listenerDirection = ma_spatializer_listener_get_direction(pListener); + /* We need to calcualte the right vector from our forward and up vectors. This is done with a cross product. */ - axisZ = ma_vec3f_normalize(pListener->direction); /* Normalization required here because we can't trust the caller. */ + axisZ = ma_vec3f_normalize(listenerDirection); /* Normalization required here because we can't trust the caller. */ axisX = ma_vec3f_normalize(ma_vec3f_cross(axisZ, pListener->config.worldUp)); /* Normalization required here because the world up vector may not be perpendicular with the forward vector. */ /* @@ -48980,9 +50993,9 @@ MA_API void ma_spatializer_get_relative_position_and_direction(const ma_spatiali } /* Lookat. */ - m[0][0] = axisX.x; m[1][0] = axisX.y; m[2][0] = axisX.z; m[3][0] = -ma_vec3f_dot(axisX, pListener->position); - m[0][1] = axisY.x; m[1][1] = axisY.y; m[2][1] = axisY.z; m[3][1] = -ma_vec3f_dot(axisY, pListener->position); - m[0][2] = -axisZ.x; m[1][2] = -axisZ.y; m[2][2] = -axisZ.z; m[3][2] = -ma_vec3f_dot(ma_vec3f_neg(axisZ), pListener->position); + m[0][0] = axisX.x; m[1][0] = axisX.y; m[2][0] = axisX.z; m[3][0] = -ma_vec3f_dot(axisX, listenerPosition); + m[0][1] = axisY.x; m[1][1] = axisY.y; m[2][1] = axisY.z; m[3][1] = -ma_vec3f_dot(axisY, listenerPosition); + m[0][2] = -axisZ.x; m[1][2] = -axisZ.y; m[2][2] = -axisZ.z; m[3][2] = -ma_vec3f_dot(ma_vec3f_neg(axisZ), listenerPosition); m[0][3] = 0; m[1][3] = 0; m[2][3] = 0; m[3][3] = 1; /* @@ -48991,7 +51004,7 @@ MA_API void ma_spatializer_get_relative_position_and_direction(const ma_spatiali origin which makes things simpler. */ if (pRelativePos != NULL) { - v = pSpatializer->position; + v = spatializerPosition; pRelativePos->x = m[0][0] * v.x + m[1][0] * v.y + m[2][0] * v.z + m[3][0] * 1; pRelativePos->y = m[0][1] * v.x + m[1][1] * v.y + m[2][1] * v.z + m[3][1] * 1; pRelativePos->z = m[0][2] * v.x + m[1][2] * v.y + m[2][2] * v.z + m[3][2] * 1; @@ -49002,7 +51015,7 @@ MA_API void ma_spatializer_get_relative_position_and_direction(const ma_spatiali rotation of the listener. */ if (pRelativeDir != NULL) { - v = pSpatializer->direction; + v = spatializerDirection; pRelativeDir->x = m[0][0] * v.x + m[1][0] * v.y + m[2][0] * v.z; pRelativeDir->y = m[0][1] * v.x + m[1][1] * v.y + m[2][1] * v.z; pRelativeDir->z = m[0][2] * v.x + m[1][2] * v.y + m[2][2] * v.z; @@ -49158,7 +51171,7 @@ static ma_result ma_linear_resampler_get_heap_layout(const ma_linear_resampler_c } /* LPF */ - pHeapLayout->lpfOffset = pHeapLayout->sizeInBytes; + pHeapLayout->lpfOffset = ma_align_64(pHeapLayout->sizeInBytes); { ma_result result; size_t lpfHeapSizeInBytes; @@ -49374,8 +51387,10 @@ static ma_result ma_linear_resampler_process_pcm_frames_s16_downsample(ma_linear } } - /* Filter. */ - ma_lpf_process_pcm_frame_s16(&pResampler->lpf, pResampler->x1.s16, pResampler->x1.s16); + /* Filter. Do not apply filtering if sample rates are the same or else you'll get dangerous glitching. */ + if (pResampler->config.sampleRateIn != pResampler->config.sampleRateOut) { + ma_lpf_process_pcm_frame_s16(&pResampler->lpf, pResampler->x1.s16, pResampler->x1.s16); + } framesProcessedIn += 1; pResampler->inTimeInt -= 1; @@ -49461,8 +51476,10 @@ static ma_result ma_linear_resampler_process_pcm_frames_s16_upsample(ma_linear_r MA_ASSERT(pResampler->inTimeInt == 0); ma_linear_resampler_interpolate_frame_s16(pResampler, pFramesOutS16); - /* Filter. */ - ma_lpf_process_pcm_frame_s16(&pResampler->lpf, pFramesOutS16, pFramesOutS16); + /* Filter. Do not apply filtering if sample rates are the same or else you'll get dangerous glitching. */ + if (pResampler->config.sampleRateIn != pResampler->config.sampleRateOut) { + ma_lpf_process_pcm_frame_s16(&pResampler->lpf, pFramesOutS16, pFramesOutS16); + } pFramesOutS16 += pResampler->config.channels; } @@ -49534,8 +51551,10 @@ static ma_result ma_linear_resampler_process_pcm_frames_f32_downsample(ma_linear } } - /* Filter. */ - ma_lpf_process_pcm_frame_f32(&pResampler->lpf, pResampler->x1.f32, pResampler->x1.f32); + /* Filter. Do not apply filtering if sample rates are the same or else you'll get dangerous glitching. */ + if (pResampler->config.sampleRateIn != pResampler->config.sampleRateOut) { + ma_lpf_process_pcm_frame_f32(&pResampler->lpf, pResampler->x1.f32, pResampler->x1.f32); + } framesProcessedIn += 1; pResampler->inTimeInt -= 1; @@ -49621,8 +51640,10 @@ static ma_result ma_linear_resampler_process_pcm_frames_f32_upsample(ma_linear_r MA_ASSERT(pResampler->inTimeInt == 0); ma_linear_resampler_interpolate_frame_f32(pResampler, pFramesOutF32); - /* Filter. */ - ma_lpf_process_pcm_frame_f32(&pResampler->lpf, pFramesOutF32, pFramesOutF32); + /* Filter. Do not apply filtering if sample rates are the same or else you'll get dangerous glitching. */ + if (pResampler->config.sampleRateIn != pResampler->config.sampleRateOut) { + ma_lpf_process_pcm_frame_f32(&pResampler->lpf, pFramesOutF32, pFramesOutF32); + } pFramesOutF32 += pResampler->config.channels; } @@ -49692,7 +51713,7 @@ MA_API ma_result ma_linear_resampler_set_rate_ratio(ma_linear_resampler* pResamp return MA_INVALID_ARGS; } - d = 1000; + d = 1000000; n = (ma_uint32)(ratioInOut * d); if (n == 0) { @@ -50084,6 +52105,7 @@ MA_API ma_result ma_resampler_init(const ma_resampler_config* pConfig, const ma_ result = ma_resampler_init_preallocated(pConfig, pHeap, pResampler); if (result != MA_SUCCESS) { + ma_free(pHeap, pAllocationCallbacks); return result; } @@ -50388,6 +52410,23 @@ static ma_int32 ma_channel_converter_float_to_fixed(float x) return (ma_int32)(x * (1< 0); + + for (iChannel = 0; iChannel < channels; ++iChannel) { + if (ma_is_spatial_channel_position(ma_channel_map_get_channel(pChannelMap, channels, iChannel))) { + spatialChannelCount++; + } + } + + return spatialChannelCount; +} + static ma_bool32 ma_is_spatial_channel_position(ma_channel channelPosition) { int i; @@ -50724,7 +52763,7 @@ static ma_result ma_channel_map_apply_mono_out_f32(float* pFramesOut, const floa return MA_SUCCESS; } -static ma_result ma_channel_map_apply_mono_in_f32(float* pFramesOut, const ma_channel* pChannelMapOut, ma_uint32 channelsOut, const float* pFramesIn, ma_uint64 frameCount, ma_mono_expansion_mode monoExpansionMode) +static ma_result ma_channel_map_apply_mono_in_f32(float* MA_RESTRICT pFramesOut, const ma_channel* pChannelMapOut, ma_uint32 channelsOut, const float* MA_RESTRICT pFramesIn, ma_uint64 frameCount, ma_mono_expansion_mode monoExpansionMode) { ma_uint64 iFrame; ma_uint32 iChannelOut; @@ -50829,16 +52868,123 @@ static ma_result ma_channel_map_apply_mono_in_f32(float* pFramesOut, const ma_ch { default_handler: { - for (iFrame = 0; iFrame < frameCount; iFrame += 1) { + if (channelsOut <= MA_MAX_CHANNELS) { + ma_bool32 hasEmptyChannel = MA_FALSE; + ma_channel channelPositions[MA_MAX_CHANNELS]; for (iChannelOut = 0; iChannelOut < channelsOut; iChannelOut += 1) { - ma_channel channelOut = ma_channel_map_get_channel(pChannelMapOut, channelsOut, iChannelOut); - if (channelOut != MA_CHANNEL_NONE) { - pFramesOut[iChannelOut] = pFramesIn[0]; + channelPositions[iChannelOut] = ma_channel_map_get_channel(pChannelMapOut, channelsOut, iChannelOut); + if (channelPositions[iChannelOut] == MA_CHANNEL_NONE) { + hasEmptyChannel = MA_TRUE; } } - pFramesOut += channelsOut; - pFramesIn += 1; + if (hasEmptyChannel == MA_FALSE) { + /* + Faster path when there's no MA_CHANNEL_NONE channel positions. This should hopefully + help the compiler with auto-vectorization.m + */ + if (channelsOut == 2) { + #if defined(MA_SUPPORT_SSE2) + if (ma_has_sse2()) { + /* We want to do two frames in each iteration. */ + ma_uint64 unrolledFrameCount = frameCount >> 1; + + for (iFrame = 0; iFrame < unrolledFrameCount; iFrame += 1) { + __m128 in0 = _mm_set1_ps(pFramesIn[iFrame*2 + 0]); + __m128 in1 = _mm_set1_ps(pFramesIn[iFrame*2 + 1]); + _mm_storeu_ps(&pFramesOut[iFrame*4 + 0], _mm_shuffle_ps(in0, in1, _MM_SHUFFLE(0, 0, 0, 0))); + } + + /* Tail. */ + iFrame = unrolledFrameCount << 1; + goto generic_on_fastpath; + } else + #endif + { + for (iFrame = 0; iFrame < frameCount; iFrame += 1) { + for (iChannelOut = 0; iChannelOut < 2; iChannelOut += 1) { + pFramesOut[iFrame*2 + iChannelOut] = pFramesIn[iFrame]; + } + } + } + } else if (channelsOut == 6) { + #if defined(MA_SUPPORT_SSE2) + if (ma_has_sse2()) { + /* We want to do two frames in each iteration so we can have a multiple of 4 samples. */ + ma_uint64 unrolledFrameCount = frameCount >> 1; + + for (iFrame = 0; iFrame < unrolledFrameCount; iFrame += 1) { + __m128 in0 = _mm_set1_ps(pFramesIn[iFrame*2 + 0]); + __m128 in1 = _mm_set1_ps(pFramesIn[iFrame*2 + 1]); + + _mm_storeu_ps(&pFramesOut[iFrame*12 + 0], in0); + _mm_storeu_ps(&pFramesOut[iFrame*12 + 4], _mm_shuffle_ps(in0, in1, _MM_SHUFFLE(0, 0, 0, 0))); + _mm_storeu_ps(&pFramesOut[iFrame*12 + 8], in1); + } + + /* Tail. */ + iFrame = unrolledFrameCount << 1; + goto generic_on_fastpath; + } else + #endif + { + for (iFrame = 0; iFrame < frameCount; iFrame += 1) { + for (iChannelOut = 0; iChannelOut < 6; iChannelOut += 1) { + pFramesOut[iFrame*6 + iChannelOut] = pFramesIn[iFrame]; + } + } + } + } else if (channelsOut == 8) { + #if defined(MA_SUPPORT_SSE2) + if (ma_has_sse2()) { + for (iFrame = 0; iFrame < frameCount; iFrame += 1) { + __m128 in = _mm_set1_ps(pFramesIn[iFrame]); + _mm_storeu_ps(&pFramesOut[iFrame*8 + 0], in); + _mm_storeu_ps(&pFramesOut[iFrame*8 + 4], in); + } + } else + #endif + { + for (iFrame = 0; iFrame < frameCount; iFrame += 1) { + for (iChannelOut = 0; iChannelOut < 8; iChannelOut += 1) { + pFramesOut[iFrame*8 + iChannelOut] = pFramesIn[iFrame]; + } + } + } + } else { + iFrame = 0; + + #if defined(MA_SUPPORT_SSE2) /* For silencing a warning with non-x86 builds. */ + generic_on_fastpath: + #endif + { + for (; iFrame < frameCount; iFrame += 1) { + for (iChannelOut = 0; iChannelOut < channelsOut; iChannelOut += 1) { + pFramesOut[iFrame*channelsOut + iChannelOut] = pFramesIn[iFrame]; + } + } + } + } + } else { + /* Slow path. Need to handle MA_CHANNEL_NONE. */ + for (iFrame = 0; iFrame < frameCount; iFrame += 1) { + for (iChannelOut = 0; iChannelOut < channelsOut; iChannelOut += 1) { + if (channelPositions[iChannelOut] != MA_CHANNEL_NONE) { + pFramesOut[iFrame*channelsOut + iChannelOut] = pFramesIn[iFrame]; + } + } + } + } + } else { + /* Slow path. Too many channels to store on the stack. */ + for (iFrame = 0; iFrame < frameCount; iFrame += 1) { + for (iChannelOut = 0; iChannelOut < channelsOut; iChannelOut += 1) { + ma_channel channelOut = ma_channel_map_get_channel(pChannelMapOut, channelsOut, iChannelOut); + if (channelOut != MA_CHANNEL_NONE) { + pFramesOut[iFrame*channelsOut + iChannelOut] = pFramesIn[iFrame]; + } + } + } } } } break; @@ -50905,19 +53051,105 @@ static void ma_channel_map_apply_f32(float* pFramesOut, const ma_channel* pChann } } - for (iFrame = 0; iFrame < frameCount; iFrame += 1) { + iFrame = 0; + + /* Experiment: Try an optimized unroll for some specific cases to see how it improves performance. RESULT: Good gains. */ + if (channelsOut == 8) { + /* Experiment 2: Expand the inner loop to see what kind of different it makes. RESULT: Small, but worthwhile gain. */ + if (channelsIn == 2) { + for (; iFrame < frameCount; iFrame += 1) { + float accumulation[8] = { 0, 0, 0, 0, 0, 0, 0, 0 }; + + accumulation[0] += pFramesIn[iFrame*2 + 0] * weights[0][0]; + accumulation[1] += pFramesIn[iFrame*2 + 0] * weights[1][0]; + accumulation[2] += pFramesIn[iFrame*2 + 0] * weights[2][0]; + accumulation[3] += pFramesIn[iFrame*2 + 0] * weights[3][0]; + accumulation[4] += pFramesIn[iFrame*2 + 0] * weights[4][0]; + accumulation[5] += pFramesIn[iFrame*2 + 0] * weights[5][0]; + accumulation[6] += pFramesIn[iFrame*2 + 0] * weights[6][0]; + accumulation[7] += pFramesIn[iFrame*2 + 0] * weights[7][0]; + + accumulation[0] += pFramesIn[iFrame*2 + 1] * weights[0][1]; + accumulation[1] += pFramesIn[iFrame*2 + 1] * weights[1][1]; + accumulation[2] += pFramesIn[iFrame*2 + 1] * weights[2][1]; + accumulation[3] += pFramesIn[iFrame*2 + 1] * weights[3][1]; + accumulation[4] += pFramesIn[iFrame*2 + 1] * weights[4][1]; + accumulation[5] += pFramesIn[iFrame*2 + 1] * weights[5][1]; + accumulation[6] += pFramesIn[iFrame*2 + 1] * weights[6][1]; + accumulation[7] += pFramesIn[iFrame*2 + 1] * weights[7][1]; + + pFramesOut[iFrame*8 + 0] = accumulation[0]; + pFramesOut[iFrame*8 + 1] = accumulation[1]; + pFramesOut[iFrame*8 + 2] = accumulation[2]; + pFramesOut[iFrame*8 + 3] = accumulation[3]; + pFramesOut[iFrame*8 + 4] = accumulation[4]; + pFramesOut[iFrame*8 + 5] = accumulation[5]; + pFramesOut[iFrame*8 + 6] = accumulation[6]; + pFramesOut[iFrame*8 + 7] = accumulation[7]; + } + } else { + /* When outputting to 8 channels, we can do everything in groups of two 4x SIMD operations. */ + for (; iFrame < frameCount; iFrame += 1) { + float accumulation[8] = { 0, 0, 0, 0, 0, 0, 0, 0 }; + + for (iChannelIn = 0; iChannelIn < channelsIn; iChannelIn += 1) { + accumulation[0] += pFramesIn[iFrame*channelsIn + iChannelIn] * weights[0][iChannelIn]; + accumulation[1] += pFramesIn[iFrame*channelsIn + iChannelIn] * weights[1][iChannelIn]; + accumulation[2] += pFramesIn[iFrame*channelsIn + iChannelIn] * weights[2][iChannelIn]; + accumulation[3] += pFramesIn[iFrame*channelsIn + iChannelIn] * weights[3][iChannelIn]; + accumulation[4] += pFramesIn[iFrame*channelsIn + iChannelIn] * weights[4][iChannelIn]; + accumulation[5] += pFramesIn[iFrame*channelsIn + iChannelIn] * weights[5][iChannelIn]; + accumulation[6] += pFramesIn[iFrame*channelsIn + iChannelIn] * weights[6][iChannelIn]; + accumulation[7] += pFramesIn[iFrame*channelsIn + iChannelIn] * weights[7][iChannelIn]; + } + + pFramesOut[iFrame*8 + 0] = accumulation[0]; + pFramesOut[iFrame*8 + 1] = accumulation[1]; + pFramesOut[iFrame*8 + 2] = accumulation[2]; + pFramesOut[iFrame*8 + 3] = accumulation[3]; + pFramesOut[iFrame*8 + 4] = accumulation[4]; + pFramesOut[iFrame*8 + 5] = accumulation[5]; + pFramesOut[iFrame*8 + 6] = accumulation[6]; + pFramesOut[iFrame*8 + 7] = accumulation[7]; + } + } + } else if (channelsOut == 6) { + /* + When outputting to 6 channels we unfortunately don't have a nice multiple of 4 to do 4x SIMD operations. Instead we'll + expand our weights and do two frames at a time. + */ + for (; iFrame < frameCount; iFrame += 1) { + float accumulation[12] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; + + for (iChannelIn = 0; iChannelIn < channelsIn; iChannelIn += 1) { + accumulation[0] += pFramesIn[iFrame*channelsIn + iChannelIn] * weights[0][iChannelIn]; + accumulation[1] += pFramesIn[iFrame*channelsIn + iChannelIn] * weights[1][iChannelIn]; + accumulation[2] += pFramesIn[iFrame*channelsIn + iChannelIn] * weights[2][iChannelIn]; + accumulation[3] += pFramesIn[iFrame*channelsIn + iChannelIn] * weights[3][iChannelIn]; + accumulation[4] += pFramesIn[iFrame*channelsIn + iChannelIn] * weights[4][iChannelIn]; + accumulation[5] += pFramesIn[iFrame*channelsIn + iChannelIn] * weights[5][iChannelIn]; + } + + pFramesOut[iFrame*6 + 0] = accumulation[0]; + pFramesOut[iFrame*6 + 1] = accumulation[1]; + pFramesOut[iFrame*6 + 2] = accumulation[2]; + pFramesOut[iFrame*6 + 3] = accumulation[3]; + pFramesOut[iFrame*6 + 4] = accumulation[4]; + pFramesOut[iFrame*6 + 5] = accumulation[5]; + } + } + + /* Leftover frames. */ + for (; iFrame < frameCount; iFrame += 1) { for (iChannelOut = 0; iChannelOut < channelsOut; iChannelOut += 1) { float accumulation = 0; for (iChannelIn = 0; iChannelIn < channelsIn; iChannelIn += 1) { - accumulation += pFramesIn[iChannelIn] * weights[iChannelOut][iChannelIn]; + accumulation += pFramesIn[iFrame*channelsIn + iChannelIn] * weights[iChannelOut][iChannelIn]; } - pFramesOut[iChannelOut] = accumulation; + pFramesOut[iFrame*channelsOut + iChannelOut] = accumulation; } - - pFramesOut += channelsOut; - pFramesIn += channelsIn; } } else { /* Cannot pre-compute weights because not enough room in stack-allocated buffer. */ @@ -50928,14 +53160,11 @@ static void ma_channel_map_apply_f32(float* pFramesOut, const ma_channel* pChann for (iChannelIn = 0; iChannelIn < channelsIn; iChannelIn += 1) { ma_channel channelIn = ma_channel_map_get_channel(pChannelMapIn, channelsIn, iChannelIn); - accumulation += pFramesIn[iChannelIn] * ma_calculate_channel_position_rectangular_weight(channelOut, channelIn); + accumulation += pFramesIn[iFrame*channelsIn + iChannelIn] * ma_calculate_channel_position_rectangular_weight(channelOut, channelIn); } - pFramesOut[iChannelOut] = accumulation; + pFramesOut[iFrame*channelsOut + iChannelOut] = accumulation; } - - pFramesOut += channelsOut; - pFramesIn += channelsIn; } } } @@ -51117,6 +53346,26 @@ MA_API ma_result ma_channel_converter_init_preallocated(const ma_channel_convert /* We now need to fill out our weights table. This is determined by the mixing mode. */ + + /* In all cases we need to make sure all channels that are present in both channel maps have a 1:1 mapping. */ + for (iChannelIn = 0; iChannelIn < pConverter->channelsIn; ++iChannelIn) { + ma_channel channelPosIn = ma_channel_map_get_channel(pConverter->pChannelMapIn, pConverter->channelsIn, iChannelIn); + + for (iChannelOut = 0; iChannelOut < pConverter->channelsOut; ++iChannelOut) { + ma_channel channelPosOut = ma_channel_map_get_channel(pConverter->pChannelMapOut, pConverter->channelsOut, iChannelOut); + + if (channelPosIn == channelPosOut) { + float weight = 1; + + if (pConverter->format == ma_format_f32) { + pConverter->weights.f32[iChannelIn][iChannelOut] = weight; + } else { + pConverter->weights.s16[iChannelIn][iChannelOut] = ma_channel_converter_float_to_fixed(weight); + } + } + } + } + switch (pConverter->mixingMode) { case ma_channel_mix_mode_custom_weights: @@ -51140,19 +53389,10 @@ MA_API ma_result ma_channel_converter_init_preallocated(const ma_channel_convert case ma_channel_mix_mode_simple: { - /* In simple mode, excess channels need to be silenced or dropped. */ - ma_uint32 iChannel; - for (iChannel = 0; iChannel < ma_min(pConverter->channelsIn, pConverter->channelsOut); iChannel += 1) { - if (pConverter->format == ma_format_f32) { - if (pConverter->weights.f32[iChannel][iChannel] == 0) { - pConverter->weights.f32[iChannel][iChannel] = 1; - } - } else { - if (pConverter->weights.s16[iChannel][iChannel] == 0) { - pConverter->weights.s16[iChannel][iChannel] = ma_channel_converter_float_to_fixed(1); - } - } - } + /* + In simple mode, only set weights for channels that have exactly matching types, leave the rest at + zero. The 1:1 mappings have already been covered before this switch statement. + */ } break; case ma_channel_mix_mode_rectangular: @@ -51160,12 +53400,12 @@ MA_API ma_result ma_channel_converter_init_preallocated(const ma_channel_convert { /* Unmapped input channels. */ for (iChannelIn = 0; iChannelIn < pConverter->channelsIn; ++iChannelIn) { - ma_channel channelPosIn = pConverter->pChannelMapIn[iChannelIn]; + ma_channel channelPosIn = ma_channel_map_get_channel(pConverter->pChannelMapIn, pConverter->channelsIn, iChannelIn); if (ma_is_spatial_channel_position(channelPosIn)) { if (!ma_channel_map_contains_channel_position(pConverter->channelsOut, pConverter->pChannelMapOut, channelPosIn)) { for (iChannelOut = 0; iChannelOut < pConverter->channelsOut; ++iChannelOut) { - ma_channel channelPosOut = pConverter->pChannelMapOut[iChannelOut]; + ma_channel channelPosOut = ma_channel_map_get_channel(pConverter->pChannelMapOut, pConverter->channelsOut, iChannelOut); if (ma_is_spatial_channel_position(channelPosOut)) { float weight = 0; @@ -51191,12 +53431,12 @@ MA_API ma_result ma_channel_converter_init_preallocated(const ma_channel_convert /* Unmapped output channels. */ for (iChannelOut = 0; iChannelOut < pConverter->channelsOut; ++iChannelOut) { - ma_channel channelPosOut = pConverter->pChannelMapOut[iChannelOut]; + ma_channel channelPosOut = ma_channel_map_get_channel(pConverter->pChannelMapOut, pConverter->channelsOut, iChannelOut); if (ma_is_spatial_channel_position(channelPosOut)) { if (!ma_channel_map_contains_channel_position(pConverter->channelsIn, pConverter->pChannelMapIn, channelPosOut)) { for (iChannelIn = 0; iChannelIn < pConverter->channelsIn; ++iChannelIn) { - ma_channel channelPosIn = pConverter->pChannelMapIn[iChannelIn]; + ma_channel channelPosIn = ma_channel_map_get_channel(pConverter->pChannelMapIn, pConverter->channelsIn, iChannelIn); if (ma_is_spatial_channel_position(channelPosIn)) { float weight = 0; @@ -51219,6 +53459,32 @@ MA_API ma_result ma_channel_converter_init_preallocated(const ma_channel_convert } } } + + /* If LFE is in the output channel map but was not present in the input channel map, configure its weight now */ + if (pConfig->calculateLFEFromSpatialChannels) { + if (!ma_channel_map_contains_channel_position(pConverter->channelsIn, pConverter->pChannelMapIn, MA_CHANNEL_LFE)) { + ma_uint32 spatialChannelCount = ma_channel_map_get_spatial_channel_count(pConverter->pChannelMapIn, pConverter->channelsIn); + ma_uint32 iChannelOutLFE; + + if (spatialChannelCount > 0 && ma_channel_map_find_channel_position(pConverter->channelsOut, pConverter->pChannelMapOut, MA_CHANNEL_LFE, &iChannelOutLFE)) { + const float weightForLFE = 1.0f / spatialChannelCount; + for (iChannelIn = 0; iChannelIn < pConverter->channelsIn; ++iChannelIn) { + const ma_channel channelPosIn = ma_channel_map_get_channel(pConverter->pChannelMapIn, pConverter->channelsIn, iChannelIn); + if (ma_is_spatial_channel_position(channelPosIn)) { + if (pConverter->format == ma_format_f32) { + if (pConverter->weights.f32[iChannelIn][iChannelOutLFE] == 0) { + pConverter->weights.f32[iChannelIn][iChannelOutLFE] = weightForLFE; + } + } else { + if (pConverter->weights.s16[iChannelIn][iChannelOutLFE] == 0) { + pConverter->weights.s16[iChannelIn][iChannelOutLFE] = ma_channel_converter_float_to_fixed(weightForLFE); + } + } + } + } + } + } + } } break; } } @@ -51643,7 +53909,7 @@ MA_API ma_result ma_channel_converter_get_output_channel_map(const ma_channel_co Data Conversion **************************************************************************************************************************************************************/ -MA_API ma_data_converter_config ma_data_converter_config_init_default() +MA_API ma_data_converter_config ma_data_converter_config_init_default(void) { ma_data_converter_config config; MA_ZERO_OBJECT(&config); @@ -51720,6 +53986,7 @@ static ma_channel_converter_config ma_channel_converter_config_init_from_data_co channelConverterConfig = ma_channel_converter_config_init(ma_data_converter_config_get_mid_format(pConfig), pConfig->channelsIn, pConfig->pChannelMapIn, pConfig->channelsOut, pConfig->pChannelMapOut, pConfig->channelMixMode); channelConverterConfig.ppWeights = pConfig->ppChannelWeights; + channelConverterConfig.calculateLFEFromSpatialChannels = pConfig->calculateLFEFromSpatialChannels; return channelConverterConfig; } @@ -53643,18 +55910,128 @@ MA_API ma_bool32 ma_channel_map_is_blank(const ma_channel* pChannelMap, ma_uint3 } MA_API ma_bool32 ma_channel_map_contains_channel_position(ma_uint32 channels, const ma_channel* pChannelMap, ma_channel channelPosition) +{ + return ma_channel_map_find_channel_position(channels, pChannelMap, channelPosition, NULL); +} + +MA_API ma_bool32 ma_channel_map_find_channel_position(ma_uint32 channels, const ma_channel* pChannelMap, ma_channel channelPosition, ma_uint32* pChannelIndex) { ma_uint32 iChannel; + if (pChannelIndex != NULL) { + *pChannelIndex = (ma_uint32)-1; + } + for (iChannel = 0; iChannel < channels; ++iChannel) { if (ma_channel_map_get_channel(pChannelMap, channels, iChannel) == channelPosition) { + if (pChannelIndex != NULL) { + *pChannelIndex = iChannel; + } + return MA_TRUE; } } + /* Getting here means the channel position was not found. */ return MA_FALSE; } +MA_API size_t ma_channel_map_to_string(const ma_channel* pChannelMap, ma_uint32 channels, char* pBufferOut, size_t bufferCap) +{ + size_t len; + ma_uint32 iChannel; + + len = 0; + + for (iChannel = 0; iChannel < channels; iChannel += 1) { + const char* pChannelStr = ma_channel_position_to_string(ma_channel_map_get_channel(pChannelMap, channels, iChannel)); + size_t channelStrLen = strlen(pChannelStr); + + /* Append the string if necessary. */ + if (pBufferOut != NULL && bufferCap > len + channelStrLen) { + MA_COPY_MEMORY(pBufferOut + len, pChannelStr, channelStrLen); + } + len += channelStrLen; + + /* Append a space if it's not the last item. */ + if (iChannel+1 < channels) { + if (pBufferOut != NULL && bufferCap > len + 1) { + pBufferOut[len] = ' '; + } + len += 1; + } + } + + /* Null terminate. Don't increment the length here. */ + if (pBufferOut != NULL && bufferCap > len + 1) { + pBufferOut[len] = '\0'; + } + + return len; +} + +MA_API const char* ma_channel_position_to_string(ma_channel channel) +{ + switch (channel) + { + case MA_CHANNEL_NONE : return "CHANNEL_NONE"; + case MA_CHANNEL_MONO : return "CHANNEL_MONO"; + case MA_CHANNEL_FRONT_LEFT : return "CHANNEL_FRONT_LEFT"; + case MA_CHANNEL_FRONT_RIGHT : return "CHANNEL_FRONT_RIGHT"; + case MA_CHANNEL_FRONT_CENTER : return "CHANNEL_FRONT_CENTER"; + case MA_CHANNEL_LFE : return "CHANNEL_LFE"; + case MA_CHANNEL_BACK_LEFT : return "CHANNEL_BACK_LEFT"; + case MA_CHANNEL_BACK_RIGHT : return "CHANNEL_BACK_RIGHT"; + case MA_CHANNEL_FRONT_LEFT_CENTER : return "CHANNEL_FRONT_LEFT_CENTER "; + case MA_CHANNEL_FRONT_RIGHT_CENTER: return "CHANNEL_FRONT_RIGHT_CENTER"; + case MA_CHANNEL_BACK_CENTER : return "CHANNEL_BACK_CENTER"; + case MA_CHANNEL_SIDE_LEFT : return "CHANNEL_SIDE_LEFT"; + case MA_CHANNEL_SIDE_RIGHT : return "CHANNEL_SIDE_RIGHT"; + case MA_CHANNEL_TOP_CENTER : return "CHANNEL_TOP_CENTER"; + case MA_CHANNEL_TOP_FRONT_LEFT : return "CHANNEL_TOP_FRONT_LEFT"; + case MA_CHANNEL_TOP_FRONT_CENTER : return "CHANNEL_TOP_FRONT_CENTER"; + case MA_CHANNEL_TOP_FRONT_RIGHT : return "CHANNEL_TOP_FRONT_RIGHT"; + case MA_CHANNEL_TOP_BACK_LEFT : return "CHANNEL_TOP_BACK_LEFT"; + case MA_CHANNEL_TOP_BACK_CENTER : return "CHANNEL_TOP_BACK_CENTER"; + case MA_CHANNEL_TOP_BACK_RIGHT : return "CHANNEL_TOP_BACK_RIGHT"; + case MA_CHANNEL_AUX_0 : return "CHANNEL_AUX_0"; + case MA_CHANNEL_AUX_1 : return "CHANNEL_AUX_1"; + case MA_CHANNEL_AUX_2 : return "CHANNEL_AUX_2"; + case MA_CHANNEL_AUX_3 : return "CHANNEL_AUX_3"; + case MA_CHANNEL_AUX_4 : return "CHANNEL_AUX_4"; + case MA_CHANNEL_AUX_5 : return "CHANNEL_AUX_5"; + case MA_CHANNEL_AUX_6 : return "CHANNEL_AUX_6"; + case MA_CHANNEL_AUX_7 : return "CHANNEL_AUX_7"; + case MA_CHANNEL_AUX_8 : return "CHANNEL_AUX_8"; + case MA_CHANNEL_AUX_9 : return "CHANNEL_AUX_9"; + case MA_CHANNEL_AUX_10 : return "CHANNEL_AUX_10"; + case MA_CHANNEL_AUX_11 : return "CHANNEL_AUX_11"; + case MA_CHANNEL_AUX_12 : return "CHANNEL_AUX_12"; + case MA_CHANNEL_AUX_13 : return "CHANNEL_AUX_13"; + case MA_CHANNEL_AUX_14 : return "CHANNEL_AUX_14"; + case MA_CHANNEL_AUX_15 : return "CHANNEL_AUX_15"; + case MA_CHANNEL_AUX_16 : return "CHANNEL_AUX_16"; + case MA_CHANNEL_AUX_17 : return "CHANNEL_AUX_17"; + case MA_CHANNEL_AUX_18 : return "CHANNEL_AUX_18"; + case MA_CHANNEL_AUX_19 : return "CHANNEL_AUX_19"; + case MA_CHANNEL_AUX_20 : return "CHANNEL_AUX_20"; + case MA_CHANNEL_AUX_21 : return "CHANNEL_AUX_21"; + case MA_CHANNEL_AUX_22 : return "CHANNEL_AUX_22"; + case MA_CHANNEL_AUX_23 : return "CHANNEL_AUX_23"; + case MA_CHANNEL_AUX_24 : return "CHANNEL_AUX_24"; + case MA_CHANNEL_AUX_25 : return "CHANNEL_AUX_25"; + case MA_CHANNEL_AUX_26 : return "CHANNEL_AUX_26"; + case MA_CHANNEL_AUX_27 : return "CHANNEL_AUX_27"; + case MA_CHANNEL_AUX_28 : return "CHANNEL_AUX_28"; + case MA_CHANNEL_AUX_29 : return "CHANNEL_AUX_29"; + case MA_CHANNEL_AUX_30 : return "CHANNEL_AUX_30"; + case MA_CHANNEL_AUX_31 : return "CHANNEL_AUX_31"; + default: break; + } + + return "UNKNOWN"; +} + /************************************************************************************************************************************************************** @@ -53736,13 +56113,13 @@ static MA_INLINE ma_uint32 ma_rb__extract_offset_loop_flag(ma_uint32 encodedOffs static MA_INLINE void* ma_rb__get_read_ptr(ma_rb* pRB) { MA_ASSERT(pRB != NULL); - return ma_offset_ptr(pRB->pBuffer, ma_rb__extract_offset_in_bytes(c89atomic_load_32(&pRB->encodedReadOffset))); + return ma_offset_ptr(pRB->pBuffer, ma_rb__extract_offset_in_bytes(ma_atomic_load_32(&pRB->encodedReadOffset))); } static MA_INLINE void* ma_rb__get_write_ptr(ma_rb* pRB) { MA_ASSERT(pRB != NULL); - return ma_offset_ptr(pRB->pBuffer, ma_rb__extract_offset_in_bytes(c89atomic_load_32(&pRB->encodedWriteOffset))); + return ma_offset_ptr(pRB->pBuffer, ma_rb__extract_offset_in_bytes(ma_atomic_load_32(&pRB->encodedWriteOffset))); } static MA_INLINE ma_uint32 ma_rb__construct_offset(ma_uint32 offsetInBytes, ma_uint32 offsetLoopFlag) @@ -53835,8 +56212,8 @@ MA_API void ma_rb_reset(ma_rb* pRB) return; } - c89atomic_exchange_32(&pRB->encodedReadOffset, 0); - c89atomic_exchange_32(&pRB->encodedWriteOffset, 0); + ma_atomic_exchange_32(&pRB->encodedReadOffset, 0); + ma_atomic_exchange_32(&pRB->encodedWriteOffset, 0); } MA_API ma_result ma_rb_acquire_read(ma_rb* pRB, size_t* pSizeInBytes, void** ppBufferOut) @@ -53855,10 +56232,10 @@ MA_API ma_result ma_rb_acquire_read(ma_rb* pRB, size_t* pSizeInBytes, void** ppB } /* The returned buffer should never move ahead of the write pointer. */ - writeOffset = c89atomic_load_32(&pRB->encodedWriteOffset); + writeOffset = ma_atomic_load_32(&pRB->encodedWriteOffset); ma_rb__deconstruct_offset(writeOffset, &writeOffsetInBytes, &writeOffsetLoopFlag); - readOffset = c89atomic_load_32(&pRB->encodedReadOffset); + readOffset = ma_atomic_load_32(&pRB->encodedReadOffset); ma_rb__deconstruct_offset(readOffset, &readOffsetInBytes, &readOffsetLoopFlag); /* @@ -53894,7 +56271,7 @@ MA_API ma_result ma_rb_commit_read(ma_rb* pRB, size_t sizeInBytes) return MA_INVALID_ARGS; } - readOffset = c89atomic_load_32(&pRB->encodedReadOffset); + readOffset = ma_atomic_load_32(&pRB->encodedReadOffset); ma_rb__deconstruct_offset(readOffset, &readOffsetInBytes, &readOffsetLoopFlag); /* Check that sizeInBytes is correct. It should never go beyond the end of the buffer. */ @@ -53910,7 +56287,7 @@ MA_API ma_result ma_rb_commit_read(ma_rb* pRB, size_t sizeInBytes) newReadOffsetLoopFlag ^= 0x80000000; } - c89atomic_exchange_32(&pRB->encodedReadOffset, ma_rb__construct_offset(newReadOffsetLoopFlag, newReadOffsetInBytes)); + ma_atomic_exchange_32(&pRB->encodedReadOffset, ma_rb__construct_offset(newReadOffsetLoopFlag, newReadOffsetInBytes)); if (ma_rb_pointer_distance(pRB) == 0) { return MA_AT_END; @@ -53935,10 +56312,10 @@ MA_API ma_result ma_rb_acquire_write(ma_rb* pRB, size_t* pSizeInBytes, void** pp } /* The returned buffer should never overtake the read buffer. */ - readOffset = c89atomic_load_32(&pRB->encodedReadOffset); + readOffset = ma_atomic_load_32(&pRB->encodedReadOffset); ma_rb__deconstruct_offset(readOffset, &readOffsetInBytes, &readOffsetLoopFlag); - writeOffset = c89atomic_load_32(&pRB->encodedWriteOffset); + writeOffset = ma_atomic_load_32(&pRB->encodedWriteOffset); ma_rb__deconstruct_offset(writeOffset, &writeOffsetInBytes, &writeOffsetLoopFlag); /* @@ -53980,7 +56357,7 @@ MA_API ma_result ma_rb_commit_write(ma_rb* pRB, size_t sizeInBytes) return MA_INVALID_ARGS; } - writeOffset = c89atomic_load_32(&pRB->encodedWriteOffset); + writeOffset = ma_atomic_load_32(&pRB->encodedWriteOffset); ma_rb__deconstruct_offset(writeOffset, &writeOffsetInBytes, &writeOffsetLoopFlag); /* Check that sizeInBytes is correct. It should never go beyond the end of the buffer. */ @@ -53996,7 +56373,7 @@ MA_API ma_result ma_rb_commit_write(ma_rb* pRB, size_t sizeInBytes) newWriteOffsetLoopFlag ^= 0x80000000; } - c89atomic_exchange_32(&pRB->encodedWriteOffset, ma_rb__construct_offset(newWriteOffsetLoopFlag, newWriteOffsetInBytes)); + ma_atomic_exchange_32(&pRB->encodedWriteOffset, ma_rb__construct_offset(newWriteOffsetLoopFlag, newWriteOffsetInBytes)); if (ma_rb_pointer_distance(pRB) == 0) { return MA_AT_END; @@ -54020,10 +56397,10 @@ MA_API ma_result ma_rb_seek_read(ma_rb* pRB, size_t offsetInBytes) return MA_INVALID_ARGS; } - readOffset = c89atomic_load_32(&pRB->encodedReadOffset); + readOffset = ma_atomic_load_32(&pRB->encodedReadOffset); ma_rb__deconstruct_offset(readOffset, &readOffsetInBytes, &readOffsetLoopFlag); - writeOffset = c89atomic_load_32(&pRB->encodedWriteOffset); + writeOffset = ma_atomic_load_32(&pRB->encodedWriteOffset); ma_rb__deconstruct_offset(writeOffset, &writeOffsetInBytes, &writeOffsetLoopFlag); newReadOffsetLoopFlag = readOffsetLoopFlag; @@ -54045,7 +56422,7 @@ MA_API ma_result ma_rb_seek_read(ma_rb* pRB, size_t offsetInBytes) } } - c89atomic_exchange_32(&pRB->encodedReadOffset, ma_rb__construct_offset(newReadOffsetInBytes, newReadOffsetLoopFlag)); + ma_atomic_exchange_32(&pRB->encodedReadOffset, ma_rb__construct_offset(newReadOffsetInBytes, newReadOffsetLoopFlag)); return MA_SUCCESS; } @@ -54064,10 +56441,10 @@ MA_API ma_result ma_rb_seek_write(ma_rb* pRB, size_t offsetInBytes) return MA_INVALID_ARGS; } - readOffset = c89atomic_load_32(&pRB->encodedReadOffset); + readOffset = ma_atomic_load_32(&pRB->encodedReadOffset); ma_rb__deconstruct_offset(readOffset, &readOffsetInBytes, &readOffsetLoopFlag); - writeOffset = c89atomic_load_32(&pRB->encodedWriteOffset); + writeOffset = ma_atomic_load_32(&pRB->encodedWriteOffset); ma_rb__deconstruct_offset(writeOffset, &writeOffsetInBytes, &writeOffsetLoopFlag); newWriteOffsetLoopFlag = writeOffsetLoopFlag; @@ -54089,7 +56466,7 @@ MA_API ma_result ma_rb_seek_write(ma_rb* pRB, size_t offsetInBytes) } } - c89atomic_exchange_32(&pRB->encodedWriteOffset, ma_rb__construct_offset(newWriteOffsetInBytes, newWriteOffsetLoopFlag)); + ma_atomic_exchange_32(&pRB->encodedWriteOffset, ma_rb__construct_offset(newWriteOffsetInBytes, newWriteOffsetLoopFlag)); return MA_SUCCESS; } @@ -54106,10 +56483,10 @@ MA_API ma_int32 ma_rb_pointer_distance(ma_rb* pRB) return 0; } - readOffset = c89atomic_load_32(&pRB->encodedReadOffset); + readOffset = ma_atomic_load_32(&pRB->encodedReadOffset); ma_rb__deconstruct_offset(readOffset, &readOffsetInBytes, &readOffsetLoopFlag); - writeOffset = c89atomic_load_32(&pRB->encodedWriteOffset); + writeOffset = ma_atomic_load_32(&pRB->encodedWriteOffset); ma_rb__deconstruct_offset(writeOffset, &writeOffsetInBytes, &writeOffsetLoopFlag); if (readOffsetLoopFlag == writeOffsetLoopFlag) { @@ -54186,6 +56563,85 @@ MA_API void* ma_rb_get_subbuffer_ptr(ma_rb* pRB, size_t subbufferIndex, void* pB +static ma_result ma_pcm_rb_data_source__on_read(ma_data_source* pDataSource, void* pFramesOut, ma_uint64 frameCount, ma_uint64* pFramesRead) +{ + /* Since there's no notion of an end, we don't ever want to return MA_AT_END here. But it is possible to return 0. */ + ma_pcm_rb* pRB = (ma_pcm_rb*)pDataSource; + ma_result result; + ma_uint64 totalFramesRead; + + MA_ASSERT(pRB != NULL); + + /* We need to run this in a loop since the ring buffer itself may loop. */ + totalFramesRead = 0; + while (totalFramesRead < frameCount) { + void* pMappedBuffer; + ma_uint32 mappedFrameCount; + ma_uint64 framesToRead = frameCount - totalFramesRead; + if (framesToRead > 0xFFFFFFFF) { + framesToRead = 0xFFFFFFFF; + } + + mappedFrameCount = (ma_uint32)framesToRead; + result = ma_pcm_rb_acquire_read(pRB, &mappedFrameCount, &pMappedBuffer); + if (result != MA_SUCCESS) { + break; + } + + if (mappedFrameCount == 0) { + break; /* <-- End of ring buffer. */ + } + + ma_copy_pcm_frames(ma_offset_pcm_frames_ptr(pFramesOut, totalFramesRead, pRB->format, pRB->channels), pMappedBuffer, mappedFrameCount, pRB->format, pRB->channels); + + result = ma_pcm_rb_commit_read(pRB, mappedFrameCount); + if (result != MA_SUCCESS) { + break; + } + + totalFramesRead += mappedFrameCount; + } + + *pFramesRead = totalFramesRead; + return MA_SUCCESS; +} + +static ma_result ma_pcm_rb_data_source__on_get_data_format(ma_data_source* pDataSource, ma_format* pFormat, ma_uint32* pChannels, ma_uint32* pSampleRate, ma_channel* pChannelMap, size_t channelMapCap) +{ + ma_pcm_rb* pRB = (ma_pcm_rb*)pDataSource; + MA_ASSERT(pRB != NULL); + + if (pFormat != NULL) { + *pFormat = pRB->format; + } + + if (pChannels != NULL) { + *pChannels = pRB->channels; + } + + if (pSampleRate != NULL) { + *pSampleRate = pRB->sampleRate; + } + + /* Just assume the default channel map. */ + if (pChannelMap != NULL) { + ma_channel_map_init_standard(ma_standard_channel_map_default, pChannelMap, channelMapCap, pRB->channels); + } + + return MA_SUCCESS; +} + +static ma_data_source_vtable ma_gRBDataSourceVTable = +{ + ma_pcm_rb_data_source__on_read, + NULL, /* onSeek */ + ma_pcm_rb_data_source__on_get_data_format, + NULL, /* onGetCursor */ + NULL, /* onGetLength */ + NULL, /* onSetLooping */ + 0 +}; + static MA_INLINE ma_uint32 ma_pcm_rb_get_bpf(ma_pcm_rb* pRB) { MA_ASSERT(pRB != NULL); @@ -54214,8 +56670,21 @@ MA_API ma_result ma_pcm_rb_init_ex(ma_format format, ma_uint32 channels, ma_uint return result; } - pRB->format = format; - pRB->channels = channels; + pRB->format = format; + pRB->channels = channels; + pRB->sampleRate = 0; /* The sample rate is not passed in as a parameter. */ + + /* The PCM ring buffer is a data source. We need to get that set up as well. */ + { + ma_data_source_config dataSourceConfig = ma_data_source_config_init(); + dataSourceConfig.vtable = &ma_gRBDataSourceVTable; + + result = ma_data_source_init(&dataSourceConfig, &pRB->ds); + if (result != MA_SUCCESS) { + ma_rb_uninit(&pRB->rb); + return result; + } + } return MA_SUCCESS; } @@ -54231,6 +56700,7 @@ MA_API void ma_pcm_rb_uninit(ma_pcm_rb* pRB) return; } + ma_data_source_uninit(&pRB->ds); ma_rb_uninit(&pRB->rb); } @@ -54382,6 +56852,42 @@ MA_API void* ma_pcm_rb_get_subbuffer_ptr(ma_pcm_rb* pRB, ma_uint32 subbufferInde return ma_rb_get_subbuffer_ptr(&pRB->rb, subbufferIndex, pBuffer); } +MA_API ma_format ma_pcm_rb_get_format(const ma_pcm_rb* pRB) +{ + if (pRB == NULL) { + return ma_format_unknown; + } + + return pRB->format; +} + +MA_API ma_uint32 ma_pcm_rb_get_channels(const ma_pcm_rb* pRB) +{ + if (pRB == NULL) { + return 0; + } + + return pRB->channels; +} + +MA_API ma_uint32 ma_pcm_rb_get_sample_rate(const ma_pcm_rb* pRB) +{ + if (pRB == NULL) { + return 0; + } + + return pRB->sampleRate; +} + +MA_API void ma_pcm_rb_set_sample_rate(ma_pcm_rb* pRB, ma_uint32 sampleRate) +{ + if (pRB == NULL) { + return; + } + + pRB->sampleRate = sampleRate; +} + MA_API ma_result ma_duplex_rb_init(ma_format captureFormat, ma_uint32 captureChannels, ma_uint32 sampleRate, ma_uint32 captureInternalSampleRate, ma_uint32 captureInternalPeriodSizeInFrames, const ma_allocation_callbacks* pAllocationCallbacks, ma_duplex_rb* pRB) @@ -54615,6 +57121,11 @@ MA_API ma_uint32 ma_get_bytes_per_sample(ma_format format) +#define MA_DATA_SOURCE_DEFAULT_RANGE_BEG 0 +#define MA_DATA_SOURCE_DEFAULT_RANGE_END ~((ma_uint64)0) +#define MA_DATA_SOURCE_DEFAULT_LOOP_POINT_BEG 0 +#define MA_DATA_SOURCE_DEFAULT_LOOP_POINT_END ~((ma_uint64)0) + MA_API ma_data_source_config ma_data_source_config_init(void) { ma_data_source_config config; @@ -54640,10 +57151,10 @@ MA_API ma_result ma_data_source_init(const ma_data_source_config* pConfig, ma_da } pDataSourceBase->vtable = pConfig->vtable; - pDataSourceBase->rangeBegInFrames = 0; - pDataSourceBase->rangeEndInFrames = ~((ma_uint64)0); - pDataSourceBase->loopBegInFrames = 0; - pDataSourceBase->loopEndInFrames = ~((ma_uint64)0); + pDataSourceBase->rangeBegInFrames = MA_DATA_SOURCE_DEFAULT_RANGE_BEG; + pDataSourceBase->rangeEndInFrames = MA_DATA_SOURCE_DEFAULT_RANGE_END; + pDataSourceBase->loopBegInFrames = MA_DATA_SOURCE_DEFAULT_LOOP_POINT_BEG; + pDataSourceBase->loopEndInFrames = MA_DATA_SOURCE_DEFAULT_LOOP_POINT_END; pDataSourceBase->pCurrent = pDataSource; /* Always read from ourself by default. */ pDataSourceBase->pNext = NULL; pDataSourceBase->onGetNext = NULL; @@ -54709,18 +57220,23 @@ static ma_result ma_data_source_read_pcm_frames_within_range(ma_data_source* pDa result = pDataSourceBase->vtable->onRead(pDataSourceBase, pFramesOut, frameCount, &framesRead); } else { /* Need to clamp to within the range. */ - ma_uint64 cursor; + ma_uint64 relativeCursor; + ma_uint64 absoluteCursor; - result = ma_data_source_get_cursor_in_pcm_frames(pDataSourceBase, &cursor); + result = ma_data_source_get_cursor_in_pcm_frames(pDataSourceBase, &relativeCursor); if (result != MA_SUCCESS) { /* Failed to retrieve the cursor. Cannot read within a range or loop points. Just read like normal - this may happen for things like noise data sources where it doesn't really matter. */ result = pDataSourceBase->vtable->onRead(pDataSourceBase, pFramesOut, frameCount, &framesRead); } else { + ma_uint64 rangeBeg; ma_uint64 rangeEnd; /* We have the cursor. We need to make sure we don't read beyond our range. */ + rangeBeg = pDataSourceBase->rangeBegInFrames; rangeEnd = pDataSourceBase->rangeEndInFrames; + absoluteCursor = rangeBeg + relativeCursor; + /* If looping, make sure we're within range. */ if (loop) { if (pDataSourceBase->loopEndInFrames != ~((ma_uint64)0)) { @@ -54728,8 +57244,8 @@ static ma_result ma_data_source_read_pcm_frames_within_range(ma_data_source* pDa } } - if (frameCount > (rangeEnd - cursor) && rangeEnd != ~((ma_uint64)0)) { - frameCount = (rangeEnd - cursor); + if (frameCount > (rangeEnd - absoluteCursor) && rangeEnd != ~((ma_uint64)0)) { + frameCount = (rangeEnd - absoluteCursor); } /* @@ -55067,7 +57583,8 @@ MA_API ma_result ma_data_source_get_cursor_in_seconds(ma_data_source* pDataSourc return result; } - *pCursor = cursorInPCMFrames / (float)sampleRate; + /* VC6 does not support division of unsigned 64-bit integers with floating point numbers. Need to use a signed number. This shouldn't effect anything in practice. */ + *pCursor = (ma_int64)cursorInPCMFrames / (float)sampleRate; return MA_SUCCESS; } @@ -55094,7 +57611,8 @@ MA_API ma_result ma_data_source_get_length_in_seconds(ma_data_source* pDataSourc return result; } - *pLength = lengthInPCMFrames / (float)sampleRate; + /* VC6 does not support division of unsigned 64-bit integers with floating point numbers. Need to use a signed number. This shouldn't effect anything in practice. */ + *pLength = (ma_int64)lengthInPCMFrames / (float)sampleRate; return MA_SUCCESS; } @@ -55107,7 +57625,7 @@ MA_API ma_result ma_data_source_set_looping(ma_data_source* pDataSource, ma_bool return MA_INVALID_ARGS; } - c89atomic_exchange_32(&pDataSourceBase->isLooping, isLooping); + ma_atomic_exchange_32(&pDataSourceBase->isLooping, isLooping); /* If there's no callback for this just treat it as a successful no-op. */ if (pDataSourceBase->vtable->onSetLooping == NULL) { @@ -55125,16 +57643,16 @@ MA_API ma_bool32 ma_data_source_is_looping(const ma_data_source* pDataSource) return MA_FALSE; } - return c89atomic_load_32(&pDataSourceBase->isLooping); + return ma_atomic_load_32(&pDataSourceBase->isLooping); } MA_API ma_result ma_data_source_set_range_in_pcm_frames(ma_data_source* pDataSource, ma_uint64 rangeBegInFrames, ma_uint64 rangeEndInFrames) { ma_data_source_base* pDataSourceBase = (ma_data_source_base*)pDataSource; ma_result result; - ma_uint64 cursor; - ma_uint64 loopBegAbsolute; - ma_uint64 loopEndAbsolute; + ma_uint64 relativeCursor; + ma_uint64 absoluteCursor; + ma_bool32 doSeekAdjustment = MA_FALSE; if (pDataSource == NULL) { return MA_INVALID_ARGS; @@ -55145,51 +57663,51 @@ MA_API ma_result ma_data_source_set_range_in_pcm_frames(ma_data_source* pDataSou } /* - The loop points need to be updated. We'll be storing the loop points relative to the range. We'll update - these so that they maintain their absolute positioning. The loop points will then be clamped to the range. + We may need to adjust the position of the cursor to ensure it's clamped to the range. Grab it now + so we can calculate it's absolute position before we change the range. */ - loopBegAbsolute = pDataSourceBase->loopBegInFrames + pDataSourceBase->rangeBegInFrames; - loopEndAbsolute = pDataSourceBase->loopEndInFrames + ((pDataSourceBase->loopEndInFrames != ~((ma_uint64)0)) ? pDataSourceBase->rangeBegInFrames : 0); + result = ma_data_source_get_cursor_in_pcm_frames(pDataSource, &relativeCursor); + if (result == MA_SUCCESS) { + doSeekAdjustment = MA_TRUE; + absoluteCursor = relativeCursor + pDataSourceBase->rangeBegInFrames; + } else { + /* + We couldn't get the position of the cursor. It probably means the data source has no notion + of a cursor. We'll just leave it at position 0. Don't treat this as an error. + */ + doSeekAdjustment = MA_FALSE; + relativeCursor = 0; + absoluteCursor = 0; + } pDataSourceBase->rangeBegInFrames = rangeBegInFrames; pDataSourceBase->rangeEndInFrames = rangeEndInFrames; - /* Make the loop points relative again, and make sure they're clamped to within the range. */ - if (loopBegAbsolute > pDataSourceBase->rangeBegInFrames) { - pDataSourceBase->loopBegInFrames = loopBegAbsolute - pDataSourceBase->rangeBegInFrames; - } else { - pDataSourceBase->loopBegInFrames = 0; - } + /* + The commented out logic below was intended to maintain loop points in response to a change in the + range. However, this is not useful because it results in the sound breaking when you move the range + outside of the old loop points. I'm simplifying this by simply resetting the loop points. The + caller is expected to update their loop points if they change the range. - if (pDataSourceBase->loopBegInFrames > pDataSourceBase->rangeEndInFrames) { - pDataSourceBase->loopBegInFrames = pDataSourceBase->rangeEndInFrames; - } - - /* Only need to update the loop end point if it's not -1. */ - if (loopEndAbsolute != ~((ma_uint64)0)) { - if (loopEndAbsolute > pDataSourceBase->rangeBegInFrames) { - pDataSourceBase->loopEndInFrames = loopEndAbsolute - pDataSourceBase->rangeBegInFrames; - } else { - pDataSourceBase->loopEndInFrames = 0; - } - - if (pDataSourceBase->loopEndInFrames > pDataSourceBase->rangeEndInFrames && pDataSourceBase->loopEndInFrames) { - pDataSourceBase->loopEndInFrames = pDataSourceBase->rangeEndInFrames; - } - } + In practice this should be mostly a non-issue because the majority of the time the range will be + set once right after initialization. + */ + pDataSourceBase->loopBegInFrames = 0; + pDataSourceBase->loopEndInFrames = ~((ma_uint64)0); - /* If the new range is past the current cursor position we need to seek to it. */ - result = ma_data_source_get_cursor_in_pcm_frames(pDataSource, &cursor); - if (result == MA_SUCCESS) { - /* Seek to within range. Note that our seek positions here are relative to the new range. */ - if (cursor < rangeBegInFrames) { + /* + Seek to within range. Note that our seek positions here are relative to the new range. We don't want + do do this if we failed to retrieve the cursor earlier on because it probably means the data source + has no notion of a cursor. In practice the seek would probably fail (which we silently ignore), but + I'm just not even going to attempt it. + */ + if (doSeekAdjustment) { + if (absoluteCursor < rangeBegInFrames) { ma_data_source_seek_to_pcm_frame(pDataSource, 0); - } else if (cursor > rangeEndInFrames) { + } else if (absoluteCursor > rangeEndInFrames) { ma_data_source_seek_to_pcm_frame(pDataSource, rangeEndInFrames - rangeBegInFrames); } - } else { - /* We failed to get the cursor position. Probably means the data source has no notion of a cursor such a noise data source. Just pretend the seeking worked. */ } return MA_SUCCESS; @@ -55891,9 +58409,9 @@ MA_API void ma_paged_audio_buffer_data_uninit(ma_paged_audio_buffer_data* pData, } /* All pages need to be freed. */ - pPage = (ma_paged_audio_buffer_page*)c89atomic_load_ptr(&pData->head.pNext); + pPage = (ma_paged_audio_buffer_page*)ma_atomic_load_ptr(&pData->head.pNext); while (pPage != NULL) { - ma_paged_audio_buffer_page* pNext = (ma_paged_audio_buffer_page*)c89atomic_load_ptr(&pPage->pNext); + ma_paged_audio_buffer_page* pNext = (ma_paged_audio_buffer_page*)ma_atomic_load_ptr(&pPage->pNext); ma_free(pPage, pAllocationCallbacks); pPage = pNext; @@ -55933,7 +58451,7 @@ MA_API ma_result ma_paged_audio_buffer_data_get_length_in_pcm_frames(ma_paged_au } /* Calculate the length from the linked list. */ - for (pPage = (ma_paged_audio_buffer_page*)c89atomic_load_ptr(&pData->head.pNext); pPage != NULL; pPage = (ma_paged_audio_buffer_page*)c89atomic_load_ptr(&pPage->pNext)) { + for (pPage = (ma_paged_audio_buffer_page*)ma_atomic_load_ptr(&pData->head.pNext); pPage != NULL; pPage = (ma_paged_audio_buffer_page*)ma_atomic_load_ptr(&pPage->pNext)) { *pLength += pPage->sizeInFrames; } @@ -55999,12 +58517,12 @@ MA_API ma_result ma_paged_audio_buffer_data_append_page(ma_paged_audio_buffer_da /* First thing to do is update the tail. */ for (;;) { - ma_paged_audio_buffer_page* pOldTail = (ma_paged_audio_buffer_page*)c89atomic_load_ptr(&pData->pTail); + ma_paged_audio_buffer_page* pOldTail = (ma_paged_audio_buffer_page*)ma_atomic_load_ptr(&pData->pTail); ma_paged_audio_buffer_page* pNewTail = pPage; - if (c89atomic_compare_exchange_weak_ptr((volatile void**)&pData->pTail, (void**)&pOldTail, pNewTail)) { + if (ma_atomic_compare_exchange_weak_ptr((volatile void**)&pData->pTail, (void**)&pOldTail, pNewTail)) { /* Here is where we append the page to the list. After this, the page is attached to the list and ready to be read from. */ - c89atomic_exchange_ptr(&pOldTail->pNext, pPage); + ma_atomic_exchange_ptr(&pOldTail->pNext, pPage); break; /* Done. */ } } @@ -56161,7 +58679,7 @@ MA_API ma_result ma_paged_audio_buffer_read_pcm_frames(ma_paged_audio_buffer* pP if (pPagedAudioBuffer->relativeCursor == pPagedAudioBuffer->pCurrent->sizeInFrames) { /* We reached the end of the page. Need to move to the next. If there's no more pages, we're done. */ - ma_paged_audio_buffer_page* pNext = (ma_paged_audio_buffer_page*)c89atomic_load_ptr(&pPagedAudioBuffer->pCurrent->pNext); + ma_paged_audio_buffer_page* pNext = (ma_paged_audio_buffer_page*)ma_atomic_load_ptr(&pPagedAudioBuffer->pCurrent->pNext); if (pNext == NULL) { result = MA_AT_END; break; /* We've reached the end. */ @@ -56203,12 +58721,12 @@ MA_API ma_result ma_paged_audio_buffer_seek_to_pcm_frame(ma_paged_audio_buffer* ma_paged_audio_buffer_page* pPage; ma_uint64 runningCursor = 0; - for (pPage = (ma_paged_audio_buffer_page*)c89atomic_load_ptr(&ma_paged_audio_buffer_data_get_head(pPagedAudioBuffer->pData)->pNext); pPage != NULL; pPage = (ma_paged_audio_buffer_page*)c89atomic_load_ptr(&pPage->pNext)) { + for (pPage = (ma_paged_audio_buffer_page*)ma_atomic_load_ptr(&ma_paged_audio_buffer_data_get_head(pPagedAudioBuffer->pData)->pNext); pPage != NULL; pPage = (ma_paged_audio_buffer_page*)ma_atomic_load_ptr(&pPage->pNext)) { ma_uint64 pageRangeBeg = runningCursor; ma_uint64 pageRangeEnd = pageRangeBeg + pPage->sizeInFrames; if (frameIndex >= pageRangeBeg) { - if (frameIndex < pageRangeEnd || (frameIndex == pageRangeEnd && pPage == (ma_paged_audio_buffer_page*)c89atomic_load_ptr(ma_paged_audio_buffer_data_get_tail(pPagedAudioBuffer->pData)))) { /* A small edge case - allow seeking to the very end of the buffer. */ + if (frameIndex < pageRangeEnd || (frameIndex == pageRangeEnd && pPage == (ma_paged_audio_buffer_page*)ma_atomic_load_ptr(ma_paged_audio_buffer_data_get_tail(pPagedAudioBuffer->pData)))) { /* A small edge case - allow seeking to the very end of the buffer. */ /* We found the page. */ pPagedAudioBuffer->pCurrent = pPage; pPagedAudioBuffer->absoluteCursor = frameIndex; @@ -56317,7 +58835,7 @@ MA_API ma_result ma_vfs_read(ma_vfs* pVFS, ma_vfs_file file, void* pDst, size_t { ma_vfs_callbacks* pCallbacks = (ma_vfs_callbacks*)pVFS; ma_result result; - size_t bytesRead; + size_t bytesRead = 0; if (pBytesRead != NULL) { *pBytesRead = 0; @@ -56421,81 +58939,36 @@ MA_API ma_result ma_vfs_info(ma_vfs* pVFS, ma_vfs_file file, ma_file_info* pInfo } -static ma_result ma_vfs_open_and_read_file_ex(ma_vfs* pVFS, const char* pFilePath, const wchar_t* pFilePathW, void** ppData, size_t* pSize, const ma_allocation_callbacks* pAllocationCallbacks) +#if !defined(MA_USE_WIN32_FILEIO) && (defined(MA_WIN32) && defined(MA_WIN32_DESKTOP) && !defined(MA_NO_WIN32_FILEIO) && !defined(MA_POSIX)) + #define MA_USE_WIN32_FILEIO +#endif + +#if defined(MA_USE_WIN32_FILEIO) +/* +We need to dynamically load SetFilePointer or SetFilePointerEx because older versions of Windows do +not have the Ex version. We therefore need to do some dynamic branching depending on what's available. + +We load these when we load our first file from the default VFS. It's left open for the life of the +program and is left to the OS to uninitialize when the program terminates. +*/ +typedef DWORD (__stdcall * ma_SetFilePointer_proc)(HANDLE hFile, LONG lDistanceToMove, LONG* lpDistanceToMoveHigh, DWORD dwMoveMethod); +typedef BOOL (__stdcall * ma_SetFilePointerEx_proc)(HANDLE hFile, LARGE_INTEGER liDistanceToMove, LARGE_INTEGER* lpNewFilePointer, DWORD dwMoveMethod); + +static ma_handle hKernel32DLL = NULL; +static ma_SetFilePointer_proc ma_SetFilePointer = NULL; +static ma_SetFilePointerEx_proc ma_SetFilePointerEx = NULL; + +static void ma_win32_fileio_init(void) { - ma_result result; - ma_vfs_file file; - ma_file_info info; - void* pData; - size_t bytesRead; - - if (ppData != NULL) { - *ppData = NULL; + if (hKernel32DLL == NULL) { + hKernel32DLL = ma_dlopen(NULL, "kernel32.dll"); + if (hKernel32DLL != NULL) { + ma_SetFilePointer = (ma_SetFilePointer_proc) ma_dlsym(NULL, hKernel32DLL, "SetFilePointer"); + ma_SetFilePointerEx = (ma_SetFilePointerEx_proc)ma_dlsym(NULL, hKernel32DLL, "SetFilePointerEx"); + } } - if (pSize != NULL) { - *pSize = 0; - } - - if (ppData == NULL) { - return MA_INVALID_ARGS; - } - - if (pFilePath != NULL) { - result = ma_vfs_open(pVFS, pFilePath, MA_OPEN_MODE_READ, &file); - } else { - result = ma_vfs_open_w(pVFS, pFilePathW, MA_OPEN_MODE_READ, &file); - } - if (result != MA_SUCCESS) { - return result; - } - - result = ma_vfs_info(pVFS, file, &info); - if (result != MA_SUCCESS) { - ma_vfs_close(pVFS, file); - return result; - } - - if (info.sizeInBytes > MA_SIZE_MAX) { - ma_vfs_close(pVFS, file); - return MA_TOO_BIG; - } - - pData = ma_malloc((size_t)info.sizeInBytes, pAllocationCallbacks); /* Safe cast. */ - if (pData == NULL) { - ma_vfs_close(pVFS, file); - return result; - } - - result = ma_vfs_read(pVFS, file, pData, (size_t)info.sizeInBytes, &bytesRead); /* Safe cast. */ - ma_vfs_close(pVFS, file); - - if (result != MA_SUCCESS) { - ma_free(pData, pAllocationCallbacks); - return result; - } - - if (pSize != NULL) { - *pSize = bytesRead; - } - - MA_ASSERT(ppData != NULL); - *ppData = pData; - - return MA_SUCCESS; } -MA_API ma_result ma_vfs_open_and_read_file(ma_vfs* pVFS, const char* pFilePath, void** ppData, size_t* pSize, const ma_allocation_callbacks* pAllocationCallbacks) -{ - return ma_vfs_open_and_read_file_ex(pVFS, pFilePath, NULL, ppData, pSize, pAllocationCallbacks); -} - -MA_API ma_result ma_vfs_open_and_read_file_w(ma_vfs* pVFS, const wchar_t* pFilePath, void** ppData, size_t* pSize, const ma_allocation_callbacks* pAllocationCallbacks) -{ - return ma_vfs_open_and_read_file_ex(pVFS, NULL, pFilePath, ppData, pSize, pAllocationCallbacks); -} - - -#if defined(MA_WIN32) && defined(MA_WIN32_DESKTOP) && !defined(MA_NO_WIN32_FILEIO) static void ma_default_vfs__get_open_settings_win32(ma_uint32 openMode, DWORD* pDesiredAccess, DWORD* pShareMode, DWORD* pCreationDisposition) { *pDesiredAccess = 0; @@ -56527,6 +59000,9 @@ static ma_result ma_default_vfs_open__win32(ma_vfs* pVFS, const char* pFilePath, (void)pVFS; + /* Load some Win32 symbols dynamically so we can dynamically check for the existence of SetFilePointerEx. */ + ma_win32_fileio_init(); + ma_default_vfs__get_open_settings_win32(openMode, &dwDesiredAccess, &dwShareMode, &dwCreationDisposition); hFile = CreateFileA(pFilePath, dwDesiredAccess, dwShareMode, NULL, dwCreationDisposition, FILE_ATTRIBUTE_NORMAL, NULL); @@ -56547,6 +59023,9 @@ static ma_result ma_default_vfs_open_w__win32(ma_vfs* pVFS, const wchar_t* pFile (void)pVFS; + /* Load some Win32 symbols dynamically so we can dynamically check for the existence of SetFilePointerEx. */ + ma_win32_fileio_init(); + ma_default_vfs__get_open_settings_win32(openMode, &dwDesiredAccess, &dwShareMode, &dwCreationDisposition); hFile = CreateFileW(pFilePath, dwDesiredAccess, dwShareMode, NULL, dwCreationDisposition, FILE_ATTRIBUTE_NORMAL, NULL); @@ -56672,16 +59151,19 @@ static ma_result ma_default_vfs_seek__win32(ma_vfs* pVFS, ma_vfs_file file, ma_i dwMoveMethod = FILE_BEGIN; } -#if (defined(_MSC_VER) && _MSC_VER <= 1200) || defined(__DMC__) - /* No SetFilePointerEx() so restrict to 31 bits. */ - if (origin > 0x7FFFFFFF) { - return MA_OUT_OF_RANGE; + if (ma_SetFilePointerEx != NULL) { + result = ma_SetFilePointerEx((HANDLE)file, liDistanceToMove, NULL, dwMoveMethod); + } else if (ma_SetFilePointer != NULL) { + /* No SetFilePointerEx() so restrict to 31 bits. */ + if (origin > 0x7FFFFFFF) { + return MA_OUT_OF_RANGE; + } + + result = ma_SetFilePointer((HANDLE)file, (LONG)liDistanceToMove.QuadPart, NULL, dwMoveMethod); + } else { + return MA_NOT_IMPLEMENTED; } - result = SetFilePointer((HANDLE)file, (LONG)liDistanceToMove.QuadPart, NULL, dwMoveMethod); -#else - result = SetFilePointerEx((HANDLE)file, liDistanceToMove, NULL, dwMoveMethod); -#endif if (result == 0) { return ma_result_from_GetLastError(GetLastError()); } @@ -56694,20 +59176,22 @@ static ma_result ma_default_vfs_tell__win32(ma_vfs* pVFS, ma_vfs_file file, ma_i LARGE_INTEGER liZero; LARGE_INTEGER liTell; BOOL result; -#if (defined(_MSC_VER) && _MSC_VER <= 1200) || defined(__DMC__) - LONG tell; -#endif (void)pVFS; liZero.QuadPart = 0; -#if (defined(_MSC_VER) && _MSC_VER <= 1200) || defined(__DMC__) - result = SetFilePointer((HANDLE)file, (LONG)liZero.QuadPart, &tell, FILE_CURRENT); - liTell.QuadPart = tell; -#else - result = SetFilePointerEx((HANDLE)file, liZero, &liTell, FILE_CURRENT); -#endif + if (ma_SetFilePointerEx != NULL) { + result = ma_SetFilePointerEx((HANDLE)file, liZero, &liTell, FILE_CURRENT); + } else if (ma_SetFilePointer != NULL) { + LONG tell; + + result = ma_SetFilePointer((HANDLE)file, (LONG)liZero.QuadPart, &tell, FILE_CURRENT); + liTell.QuadPart = tell; + } else { + return MA_NOT_IMPLEMENTED; + } + if (result == 0) { return ma_result_from_GetLastError(GetLastError()); } @@ -56964,7 +59448,7 @@ static ma_result ma_default_vfs_open(ma_vfs* pVFS, const char* pFilePath, ma_uin return MA_INVALID_ARGS; } -#if defined(MA_WIN32) && defined(MA_WIN32_DESKTOP) && !defined(MA_NO_WIN32_FILEIO) +#if defined(MA_USE_WIN32_FILEIO) return ma_default_vfs_open__win32(pVFS, pFilePath, openMode, pFile); #else return ma_default_vfs_open__stdio(pVFS, pFilePath, openMode, pFile); @@ -56983,7 +59467,7 @@ static ma_result ma_default_vfs_open_w(ma_vfs* pVFS, const wchar_t* pFilePath, m return MA_INVALID_ARGS; } -#if defined(MA_WIN32) && defined(MA_WIN32_DESKTOP) && !defined(MA_NO_WIN32_FILEIO) +#if defined(MA_USE_WIN32_FILEIO) return ma_default_vfs_open_w__win32(pVFS, pFilePath, openMode, pFile); #else return ma_default_vfs_open_w__stdio(pVFS, pFilePath, openMode, pFile); @@ -56996,7 +59480,7 @@ static ma_result ma_default_vfs_close(ma_vfs* pVFS, ma_vfs_file file) return MA_INVALID_ARGS; } -#if defined(MA_WIN32) && defined(MA_WIN32_DESKTOP) && !defined(MA_NO_WIN32_FILEIO) +#if defined(MA_USE_WIN32_FILEIO) return ma_default_vfs_close__win32(pVFS, file); #else return ma_default_vfs_close__stdio(pVFS, file); @@ -57013,7 +59497,7 @@ static ma_result ma_default_vfs_read(ma_vfs* pVFS, ma_vfs_file file, void* pDst, return MA_INVALID_ARGS; } -#if defined(MA_WIN32) && defined(MA_WIN32_DESKTOP) && !defined(MA_NO_WIN32_FILEIO) +#if defined(MA_USE_WIN32_FILEIO) return ma_default_vfs_read__win32(pVFS, file, pDst, sizeInBytes, pBytesRead); #else return ma_default_vfs_read__stdio(pVFS, file, pDst, sizeInBytes, pBytesRead); @@ -57030,7 +59514,7 @@ static ma_result ma_default_vfs_write(ma_vfs* pVFS, ma_vfs_file file, const void return MA_INVALID_ARGS; } -#if defined(MA_WIN32) && defined(MA_WIN32_DESKTOP) && !defined(MA_NO_WIN32_FILEIO) +#if defined(MA_USE_WIN32_FILEIO) return ma_default_vfs_write__win32(pVFS, file, pSrc, sizeInBytes, pBytesWritten); #else return ma_default_vfs_write__stdio(pVFS, file, pSrc, sizeInBytes, pBytesWritten); @@ -57043,7 +59527,7 @@ static ma_result ma_default_vfs_seek(ma_vfs* pVFS, ma_vfs_file file, ma_int64 of return MA_INVALID_ARGS; } -#if defined(MA_WIN32) && defined(MA_WIN32_DESKTOP) && !defined(MA_NO_WIN32_FILEIO) +#if defined(MA_USE_WIN32_FILEIO) return ma_default_vfs_seek__win32(pVFS, file, offset, origin); #else return ma_default_vfs_seek__stdio(pVFS, file, offset, origin); @@ -57062,7 +59546,7 @@ static ma_result ma_default_vfs_tell(ma_vfs* pVFS, ma_vfs_file file, ma_int64* p return MA_INVALID_ARGS; } -#if defined(MA_WIN32) && defined(MA_WIN32_DESKTOP) && !defined(MA_NO_WIN32_FILEIO) +#if defined(MA_USE_WIN32_FILEIO) return ma_default_vfs_tell__win32(pVFS, file, pCursor); #else return ma_default_vfs_tell__stdio(pVFS, file, pCursor); @@ -57081,7 +59565,7 @@ static ma_result ma_default_vfs_info(ma_vfs* pVFS, ma_vfs_file file, ma_file_inf return MA_INVALID_ARGS; } -#if defined(MA_WIN32) && defined(MA_WIN32_DESKTOP) && !defined(MA_NO_WIN32_FILEIO) +#if defined(MA_USE_WIN32_FILEIO) return ma_default_vfs_info__win32(pVFS, file, pInfo); #else return ma_default_vfs_info__stdio(pVFS, file, pInfo); @@ -57183,6 +59667,81 @@ MA_API ma_result ma_vfs_or_default_info(ma_vfs* pVFS, ma_vfs_file file, ma_file_ +static ma_result ma_vfs_open_and_read_file_ex(ma_vfs* pVFS, const char* pFilePath, const wchar_t* pFilePathW, void** ppData, size_t* pSize, const ma_allocation_callbacks* pAllocationCallbacks) +{ + ma_result result; + ma_vfs_file file; + ma_file_info info; + void* pData; + size_t bytesRead; + + if (ppData != NULL) { + *ppData = NULL; + } + if (pSize != NULL) { + *pSize = 0; + } + + if (ppData == NULL) { + return MA_INVALID_ARGS; + } + + if (pFilePath != NULL) { + result = ma_vfs_or_default_open(pVFS, pFilePath, MA_OPEN_MODE_READ, &file); + } else { + result = ma_vfs_or_default_open_w(pVFS, pFilePathW, MA_OPEN_MODE_READ, &file); + } + if (result != MA_SUCCESS) { + return result; + } + + result = ma_vfs_or_default_info(pVFS, file, &info); + if (result != MA_SUCCESS) { + ma_vfs_or_default_close(pVFS, file); + return result; + } + + if (info.sizeInBytes > MA_SIZE_MAX) { + ma_vfs_or_default_close(pVFS, file); + return MA_TOO_BIG; + } + + pData = ma_malloc((size_t)info.sizeInBytes, pAllocationCallbacks); /* Safe cast. */ + if (pData == NULL) { + ma_vfs_or_default_close(pVFS, file); + return result; + } + + result = ma_vfs_or_default_read(pVFS, file, pData, (size_t)info.sizeInBytes, &bytesRead); /* Safe cast. */ + ma_vfs_or_default_close(pVFS, file); + + if (result != MA_SUCCESS) { + ma_free(pData, pAllocationCallbacks); + return result; + } + + if (pSize != NULL) { + *pSize = bytesRead; + } + + MA_ASSERT(ppData != NULL); + *ppData = pData; + + return MA_SUCCESS; +} + +MA_API ma_result ma_vfs_open_and_read_file(ma_vfs* pVFS, const char* pFilePath, void** ppData, size_t* pSize, const ma_allocation_callbacks* pAllocationCallbacks) +{ + return ma_vfs_open_and_read_file_ex(pVFS, pFilePath, NULL, ppData, pSize, pAllocationCallbacks); +} + +MA_API ma_result ma_vfs_open_and_read_file_w(ma_vfs* pVFS, const wchar_t* pFilePath, void** ppData, size_t* pSize, const ma_allocation_callbacks* pAllocationCallbacks) +{ + return ma_vfs_open_and_read_file_ex(pVFS, NULL, pFilePath, ppData, pSize, pAllocationCallbacks); +} + + + /************************************************************************************************************************************************************** Decoding and Encoding Headers. These are auto-generated from a tool. @@ -57190,195 +59749,76 @@ Decoding and Encoding Headers. These are auto-generated from a tool. **************************************************************************************************************************************************************/ #if !defined(MA_NO_WAV) && (!defined(MA_NO_DECODING) || !defined(MA_NO_ENCODING)) /* dr_wav_h begin */ -#ifndef dr_wav_h -#define dr_wav_h +#ifndef ma_dr_wav_h +#define ma_dr_wav_h #ifdef __cplusplus extern "C" { #endif -#define DRWAV_STRINGIFY(x) #x -#define DRWAV_XSTRINGIFY(x) DRWAV_STRINGIFY(x) -#define DRWAV_VERSION_MAJOR 0 -#define DRWAV_VERSION_MINOR 13 -#define DRWAV_VERSION_REVISION 6 -#define DRWAV_VERSION_STRING DRWAV_XSTRINGIFY(DRWAV_VERSION_MAJOR) "." DRWAV_XSTRINGIFY(DRWAV_VERSION_MINOR) "." DRWAV_XSTRINGIFY(DRWAV_VERSION_REVISION) +#define MA_DR_WAV_STRINGIFY(x) #x +#define MA_DR_WAV_XSTRINGIFY(x) MA_DR_WAV_STRINGIFY(x) +#define MA_DR_WAV_VERSION_MAJOR 0 +#define MA_DR_WAV_VERSION_MINOR 13 +#define MA_DR_WAV_VERSION_REVISION 13 +#define MA_DR_WAV_VERSION_STRING MA_DR_WAV_XSTRINGIFY(MA_DR_WAV_VERSION_MAJOR) "." MA_DR_WAV_XSTRINGIFY(MA_DR_WAV_VERSION_MINOR) "." MA_DR_WAV_XSTRINGIFY(MA_DR_WAV_VERSION_REVISION) #include -typedef signed char drwav_int8; -typedef unsigned char drwav_uint8; -typedef signed short drwav_int16; -typedef unsigned short drwav_uint16; -typedef signed int drwav_int32; -typedef unsigned int drwav_uint32; -#if defined(_MSC_VER) && !defined(__clang__) - typedef signed __int64 drwav_int64; - typedef unsigned __int64 drwav_uint64; -#else - #if defined(__clang__) || (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))) - #pragma GCC diagnostic push - #pragma GCC diagnostic ignored "-Wlong-long" - #if defined(__clang__) - #pragma GCC diagnostic ignored "-Wc++11-long-long" - #endif - #endif - typedef signed long long drwav_int64; - typedef unsigned long long drwav_uint64; - #if defined(__clang__) || (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))) - #pragma GCC diagnostic pop - #endif -#endif -#if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__)) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(_M_ARM64) || defined(__powerpc64__) - typedef drwav_uint64 drwav_uintptr; -#else - typedef drwav_uint32 drwav_uintptr; -#endif -typedef drwav_uint8 drwav_bool8; -typedef drwav_uint32 drwav_bool32; -#define DRWAV_TRUE 1 -#define DRWAV_FALSE 0 -#if !defined(DRWAV_API) - #if defined(DRWAV_DLL) - #if defined(_WIN32) - #define DRWAV_DLL_IMPORT __declspec(dllimport) - #define DRWAV_DLL_EXPORT __declspec(dllexport) - #define DRWAV_DLL_PRIVATE static - #else - #if defined(__GNUC__) && __GNUC__ >= 4 - #define DRWAV_DLL_IMPORT __attribute__((visibility("default"))) - #define DRWAV_DLL_EXPORT __attribute__((visibility("default"))) - #define DRWAV_DLL_PRIVATE __attribute__((visibility("hidden"))) - #else - #define DRWAV_DLL_IMPORT - #define DRWAV_DLL_EXPORT - #define DRWAV_DLL_PRIVATE static - #endif - #endif - #if defined(DR_WAV_IMPLEMENTATION) || defined(DRWAV_IMPLEMENTATION) - #define DRWAV_API DRWAV_DLL_EXPORT - #else - #define DRWAV_API DRWAV_DLL_IMPORT - #endif - #define DRWAV_PRIVATE DRWAV_DLL_PRIVATE - #else - #define DRWAV_API extern - #define DRWAV_PRIVATE static - #endif -#endif -typedef drwav_int32 drwav_result; -#define DRWAV_SUCCESS 0 -#define DRWAV_ERROR -1 -#define DRWAV_INVALID_ARGS -2 -#define DRWAV_INVALID_OPERATION -3 -#define DRWAV_OUT_OF_MEMORY -4 -#define DRWAV_OUT_OF_RANGE -5 -#define DRWAV_ACCESS_DENIED -6 -#define DRWAV_DOES_NOT_EXIST -7 -#define DRWAV_ALREADY_EXISTS -8 -#define DRWAV_TOO_MANY_OPEN_FILES -9 -#define DRWAV_INVALID_FILE -10 -#define DRWAV_TOO_BIG -11 -#define DRWAV_PATH_TOO_LONG -12 -#define DRWAV_NAME_TOO_LONG -13 -#define DRWAV_NOT_DIRECTORY -14 -#define DRWAV_IS_DIRECTORY -15 -#define DRWAV_DIRECTORY_NOT_EMPTY -16 -#define DRWAV_END_OF_FILE -17 -#define DRWAV_NO_SPACE -18 -#define DRWAV_BUSY -19 -#define DRWAV_IO_ERROR -20 -#define DRWAV_INTERRUPT -21 -#define DRWAV_UNAVAILABLE -22 -#define DRWAV_ALREADY_IN_USE -23 -#define DRWAV_BAD_ADDRESS -24 -#define DRWAV_BAD_SEEK -25 -#define DRWAV_BAD_PIPE -26 -#define DRWAV_DEADLOCK -27 -#define DRWAV_TOO_MANY_LINKS -28 -#define DRWAV_NOT_IMPLEMENTED -29 -#define DRWAV_NO_MESSAGE -30 -#define DRWAV_BAD_MESSAGE -31 -#define DRWAV_NO_DATA_AVAILABLE -32 -#define DRWAV_INVALID_DATA -33 -#define DRWAV_TIMEOUT -34 -#define DRWAV_NO_NETWORK -35 -#define DRWAV_NOT_UNIQUE -36 -#define DRWAV_NOT_SOCKET -37 -#define DRWAV_NO_ADDRESS -38 -#define DRWAV_BAD_PROTOCOL -39 -#define DRWAV_PROTOCOL_UNAVAILABLE -40 -#define DRWAV_PROTOCOL_NOT_SUPPORTED -41 -#define DRWAV_PROTOCOL_FAMILY_NOT_SUPPORTED -42 -#define DRWAV_ADDRESS_FAMILY_NOT_SUPPORTED -43 -#define DRWAV_SOCKET_NOT_SUPPORTED -44 -#define DRWAV_CONNECTION_RESET -45 -#define DRWAV_ALREADY_CONNECTED -46 -#define DRWAV_NOT_CONNECTED -47 -#define DRWAV_CONNECTION_REFUSED -48 -#define DRWAV_NO_HOST -49 -#define DRWAV_IN_PROGRESS -50 -#define DRWAV_CANCELLED -51 -#define DRWAV_MEMORY_ALREADY_MAPPED -52 -#define DRWAV_AT_END -53 -#define DR_WAVE_FORMAT_PCM 0x1 -#define DR_WAVE_FORMAT_ADPCM 0x2 -#define DR_WAVE_FORMAT_IEEE_FLOAT 0x3 -#define DR_WAVE_FORMAT_ALAW 0x6 -#define DR_WAVE_FORMAT_MULAW 0x7 -#define DR_WAVE_FORMAT_DVI_ADPCM 0x11 -#define DR_WAVE_FORMAT_EXTENSIBLE 0xFFFE -#define DRWAV_SEQUENTIAL 0x00000001 -DRWAV_API void drwav_version(drwav_uint32* pMajor, drwav_uint32* pMinor, drwav_uint32* pRevision); -DRWAV_API const char* drwav_version_string(void); +#define MA_DR_WAVE_FORMAT_PCM 0x1 +#define MA_DR_WAVE_FORMAT_ADPCM 0x2 +#define MA_DR_WAVE_FORMAT_IEEE_FLOAT 0x3 +#define MA_DR_WAVE_FORMAT_ALAW 0x6 +#define MA_DR_WAVE_FORMAT_MULAW 0x7 +#define MA_DR_WAVE_FORMAT_DVI_ADPCM 0x11 +#define MA_DR_WAVE_FORMAT_EXTENSIBLE 0xFFFE +#define MA_DR_WAV_SEQUENTIAL 0x00000001 +#define MA_DR_WAV_WITH_METADATA 0x00000002 +MA_API void ma_dr_wav_version(ma_uint32* pMajor, ma_uint32* pMinor, ma_uint32* pRevision); +MA_API const char* ma_dr_wav_version_string(void); typedef enum { - drwav_seek_origin_start, - drwav_seek_origin_current -} drwav_seek_origin; + ma_dr_wav_seek_origin_start, + ma_dr_wav_seek_origin_current +} ma_dr_wav_seek_origin; typedef enum { - drwav_container_riff, - drwav_container_w64, - drwav_container_rf64 -} drwav_container; + ma_dr_wav_container_riff, + ma_dr_wav_container_rifx, + ma_dr_wav_container_w64, + ma_dr_wav_container_rf64, + ma_dr_wav_container_aiff +} ma_dr_wav_container; typedef struct { union { - drwav_uint8 fourcc[4]; - drwav_uint8 guid[16]; + ma_uint8 fourcc[4]; + ma_uint8 guid[16]; } id; - drwav_uint64 sizeInBytes; + ma_uint64 sizeInBytes; unsigned int paddingSize; -} drwav_chunk_header; +} ma_dr_wav_chunk_header; typedef struct { - drwav_uint16 formatTag; - drwav_uint16 channels; - drwav_uint32 sampleRate; - drwav_uint32 avgBytesPerSec; - drwav_uint16 blockAlign; - drwav_uint16 bitsPerSample; - drwav_uint16 extendedSize; - drwav_uint16 validBitsPerSample; - drwav_uint32 channelMask; - drwav_uint8 subFormat[16]; -} drwav_fmt; -DRWAV_API drwav_uint16 drwav_fmt_get_format(const drwav_fmt* pFMT); -typedef size_t (* drwav_read_proc)(void* pUserData, void* pBufferOut, size_t bytesToRead); -typedef size_t (* drwav_write_proc)(void* pUserData, const void* pData, size_t bytesToWrite); -typedef drwav_bool32 (* drwav_seek_proc)(void* pUserData, int offset, drwav_seek_origin origin); -typedef drwav_uint64 (* drwav_chunk_proc)(void* pChunkUserData, drwav_read_proc onRead, drwav_seek_proc onSeek, void* pReadSeekUserData, const drwav_chunk_header* pChunkHeader, drwav_container container, const drwav_fmt* pFMT); + ma_uint16 formatTag; + ma_uint16 channels; + ma_uint32 sampleRate; + ma_uint32 avgBytesPerSec; + ma_uint16 blockAlign; + ma_uint16 bitsPerSample; + ma_uint16 extendedSize; + ma_uint16 validBitsPerSample; + ma_uint32 channelMask; + ma_uint8 subFormat[16]; +} ma_dr_wav_fmt; +MA_API ma_uint16 ma_dr_wav_fmt_get_format(const ma_dr_wav_fmt* pFMT); +typedef size_t (* ma_dr_wav_read_proc)(void* pUserData, void* pBufferOut, size_t bytesToRead); +typedef size_t (* ma_dr_wav_write_proc)(void* pUserData, const void* pData, size_t bytesToWrite); +typedef ma_bool32 (* ma_dr_wav_seek_proc)(void* pUserData, int offset, ma_dr_wav_seek_origin origin); +typedef ma_uint64 (* ma_dr_wav_chunk_proc)(void* pChunkUserData, ma_dr_wav_read_proc onRead, ma_dr_wav_seek_proc onSeek, void* pReadSeekUserData, const ma_dr_wav_chunk_header* pChunkHeader, ma_dr_wav_container container, const ma_dr_wav_fmt* pFMT); typedef struct { - void* pUserData; - void* (* onMalloc)(size_t sz, void* pUserData); - void* (* onRealloc)(void* p, size_t sz, void* pUserData); - void (* onFree)(void* p, void* pUserData); -} drwav_allocation_callbacks; -typedef struct -{ - const drwav_uint8* data; + const ma_uint8* data; size_t dataSize; size_t currentReadPos; -} drwav__memory_stream; +} ma_dr_wav__memory_stream; typedef struct { void** ppData; @@ -57386,129 +59826,129 @@ typedef struct size_t dataSize; size_t dataCapacity; size_t currentWritePos; -} drwav__memory_stream_write; +} ma_dr_wav__memory_stream_write; typedef struct { - drwav_container container; - drwav_uint32 format; - drwav_uint32 channels; - drwav_uint32 sampleRate; - drwav_uint32 bitsPerSample; -} drwav_data_format; + ma_dr_wav_container container; + ma_uint32 format; + ma_uint32 channels; + ma_uint32 sampleRate; + ma_uint32 bitsPerSample; +} ma_dr_wav_data_format; typedef enum { - drwav_metadata_type_none = 0, - drwav_metadata_type_unknown = 1 << 0, - drwav_metadata_type_smpl = 1 << 1, - drwav_metadata_type_inst = 1 << 2, - drwav_metadata_type_cue = 1 << 3, - drwav_metadata_type_acid = 1 << 4, - drwav_metadata_type_bext = 1 << 5, - drwav_metadata_type_list_label = 1 << 6, - drwav_metadata_type_list_note = 1 << 7, - drwav_metadata_type_list_labelled_cue_region = 1 << 8, - drwav_metadata_type_list_info_software = 1 << 9, - drwav_metadata_type_list_info_copyright = 1 << 10, - drwav_metadata_type_list_info_title = 1 << 11, - drwav_metadata_type_list_info_artist = 1 << 12, - drwav_metadata_type_list_info_comment = 1 << 13, - drwav_metadata_type_list_info_date = 1 << 14, - drwav_metadata_type_list_info_genre = 1 << 15, - drwav_metadata_type_list_info_album = 1 << 16, - drwav_metadata_type_list_info_tracknumber = 1 << 17, - drwav_metadata_type_list_all_info_strings = drwav_metadata_type_list_info_software - | drwav_metadata_type_list_info_copyright - | drwav_metadata_type_list_info_title - | drwav_metadata_type_list_info_artist - | drwav_metadata_type_list_info_comment - | drwav_metadata_type_list_info_date - | drwav_metadata_type_list_info_genre - | drwav_metadata_type_list_info_album - | drwav_metadata_type_list_info_tracknumber, - drwav_metadata_type_list_all_adtl = drwav_metadata_type_list_label - | drwav_metadata_type_list_note - | drwav_metadata_type_list_labelled_cue_region, - drwav_metadata_type_all = -2, - drwav_metadata_type_all_including_unknown = -1 -} drwav_metadata_type; + ma_dr_wav_metadata_type_none = 0, + ma_dr_wav_metadata_type_unknown = 1 << 0, + ma_dr_wav_metadata_type_smpl = 1 << 1, + ma_dr_wav_metadata_type_inst = 1 << 2, + ma_dr_wav_metadata_type_cue = 1 << 3, + ma_dr_wav_metadata_type_acid = 1 << 4, + ma_dr_wav_metadata_type_bext = 1 << 5, + ma_dr_wav_metadata_type_list_label = 1 << 6, + ma_dr_wav_metadata_type_list_note = 1 << 7, + ma_dr_wav_metadata_type_list_labelled_cue_region = 1 << 8, + ma_dr_wav_metadata_type_list_info_software = 1 << 9, + ma_dr_wav_metadata_type_list_info_copyright = 1 << 10, + ma_dr_wav_metadata_type_list_info_title = 1 << 11, + ma_dr_wav_metadata_type_list_info_artist = 1 << 12, + ma_dr_wav_metadata_type_list_info_comment = 1 << 13, + ma_dr_wav_metadata_type_list_info_date = 1 << 14, + ma_dr_wav_metadata_type_list_info_genre = 1 << 15, + ma_dr_wav_metadata_type_list_info_album = 1 << 16, + ma_dr_wav_metadata_type_list_info_tracknumber = 1 << 17, + ma_dr_wav_metadata_type_list_all_info_strings = ma_dr_wav_metadata_type_list_info_software + | ma_dr_wav_metadata_type_list_info_copyright + | ma_dr_wav_metadata_type_list_info_title + | ma_dr_wav_metadata_type_list_info_artist + | ma_dr_wav_metadata_type_list_info_comment + | ma_dr_wav_metadata_type_list_info_date + | ma_dr_wav_metadata_type_list_info_genre + | ma_dr_wav_metadata_type_list_info_album + | ma_dr_wav_metadata_type_list_info_tracknumber, + ma_dr_wav_metadata_type_list_all_adtl = ma_dr_wav_metadata_type_list_label + | ma_dr_wav_metadata_type_list_note + | ma_dr_wav_metadata_type_list_labelled_cue_region, + ma_dr_wav_metadata_type_all = -2, + ma_dr_wav_metadata_type_all_including_unknown = -1 +} ma_dr_wav_metadata_type; typedef enum { - drwav_smpl_loop_type_forward = 0, - drwav_smpl_loop_type_pingpong = 1, - drwav_smpl_loop_type_backward = 2 -} drwav_smpl_loop_type; + ma_dr_wav_smpl_loop_type_forward = 0, + ma_dr_wav_smpl_loop_type_pingpong = 1, + ma_dr_wav_smpl_loop_type_backward = 2 +} ma_dr_wav_smpl_loop_type; typedef struct { - drwav_uint32 cuePointId; - drwav_uint32 type; - drwav_uint32 firstSampleByteOffset; - drwav_uint32 lastSampleByteOffset; - drwav_uint32 sampleFraction; - drwav_uint32 playCount; -} drwav_smpl_loop; + ma_uint32 cuePointId; + ma_uint32 type; + ma_uint32 firstSampleByteOffset; + ma_uint32 lastSampleByteOffset; + ma_uint32 sampleFraction; + ma_uint32 playCount; +} ma_dr_wav_smpl_loop; typedef struct { - drwav_uint32 manufacturerId; - drwav_uint32 productId; - drwav_uint32 samplePeriodNanoseconds; - drwav_uint32 midiUnityNote; - drwav_uint32 midiPitchFraction; - drwav_uint32 smpteFormat; - drwav_uint32 smpteOffset; - drwav_uint32 sampleLoopCount; - drwav_uint32 samplerSpecificDataSizeInBytes; - drwav_smpl_loop* pLoops; - drwav_uint8* pSamplerSpecificData; -} drwav_smpl; + ma_uint32 manufacturerId; + ma_uint32 productId; + ma_uint32 samplePeriodNanoseconds; + ma_uint32 midiUnityNote; + ma_uint32 midiPitchFraction; + ma_uint32 smpteFormat; + ma_uint32 smpteOffset; + ma_uint32 sampleLoopCount; + ma_uint32 samplerSpecificDataSizeInBytes; + ma_dr_wav_smpl_loop* pLoops; + ma_uint8* pSamplerSpecificData; +} ma_dr_wav_smpl; typedef struct { - drwav_int8 midiUnityNote; - drwav_int8 fineTuneCents; - drwav_int8 gainDecibels; - drwav_int8 lowNote; - drwav_int8 highNote; - drwav_int8 lowVelocity; - drwav_int8 highVelocity; -} drwav_inst; + ma_int8 midiUnityNote; + ma_int8 fineTuneCents; + ma_int8 gainDecibels; + ma_int8 lowNote; + ma_int8 highNote; + ma_int8 lowVelocity; + ma_int8 highVelocity; +} ma_dr_wav_inst; typedef struct { - drwav_uint32 id; - drwav_uint32 playOrderPosition; - drwav_uint8 dataChunkId[4]; - drwav_uint32 chunkStart; - drwav_uint32 blockStart; - drwav_uint32 sampleByteOffset; -} drwav_cue_point; + ma_uint32 id; + ma_uint32 playOrderPosition; + ma_uint8 dataChunkId[4]; + ma_uint32 chunkStart; + ma_uint32 blockStart; + ma_uint32 sampleByteOffset; +} ma_dr_wav_cue_point; typedef struct { - drwav_uint32 cuePointCount; - drwav_cue_point *pCuePoints; -} drwav_cue; + ma_uint32 cuePointCount; + ma_dr_wav_cue_point *pCuePoints; +} ma_dr_wav_cue; typedef enum { - drwav_acid_flag_one_shot = 1, - drwav_acid_flag_root_note_set = 2, - drwav_acid_flag_stretch = 4, - drwav_acid_flag_disk_based = 8, - drwav_acid_flag_acidizer = 16 -} drwav_acid_flag; + ma_dr_wav_acid_flag_one_shot = 1, + ma_dr_wav_acid_flag_root_note_set = 2, + ma_dr_wav_acid_flag_stretch = 4, + ma_dr_wav_acid_flag_disk_based = 8, + ma_dr_wav_acid_flag_acidizer = 16 +} ma_dr_wav_acid_flag; typedef struct { - drwav_uint32 flags; - drwav_uint16 midiUnityNote; - drwav_uint16 reserved1; + ma_uint32 flags; + ma_uint16 midiUnityNote; + ma_uint16 reserved1; float reserved2; - drwav_uint32 numBeats; - drwav_uint16 meterDenominator; - drwav_uint16 meterNumerator; + ma_uint32 numBeats; + ma_uint16 meterDenominator; + ma_uint16 meterNumerator; float tempo; -} drwav_acid; +} ma_dr_wav_acid; typedef struct { - drwav_uint32 cuePointId; - drwav_uint32 stringLength; + ma_uint32 cuePointId; + ma_uint32 stringLength; char* pString; -} drwav_list_label_or_note; +} ma_dr_wav_list_label_or_note; typedef struct { char* pDescription; @@ -57516,206 +59956,210 @@ typedef struct char* pOriginatorReference; char pOriginationDate[10]; char pOriginationTime[8]; - drwav_uint64 timeReference; - drwav_uint16 version; + ma_uint64 timeReference; + ma_uint16 version; char* pCodingHistory; - drwav_uint32 codingHistorySize; - drwav_uint8* pUMID; - drwav_uint16 loudnessValue; - drwav_uint16 loudnessRange; - drwav_uint16 maxTruePeakLevel; - drwav_uint16 maxMomentaryLoudness; - drwav_uint16 maxShortTermLoudness; -} drwav_bext; + ma_uint32 codingHistorySize; + ma_uint8* pUMID; + ma_uint16 loudnessValue; + ma_uint16 loudnessRange; + ma_uint16 maxTruePeakLevel; + ma_uint16 maxMomentaryLoudness; + ma_uint16 maxShortTermLoudness; +} ma_dr_wav_bext; typedef struct { - drwav_uint32 stringLength; + ma_uint32 stringLength; char* pString; -} drwav_list_info_text; +} ma_dr_wav_list_info_text; typedef struct { - drwav_uint32 cuePointId; - drwav_uint32 sampleLength; - drwav_uint8 purposeId[4]; - drwav_uint16 country; - drwav_uint16 language; - drwav_uint16 dialect; - drwav_uint16 codePage; - drwav_uint32 stringLength; + ma_uint32 cuePointId; + ma_uint32 sampleLength; + ma_uint8 purposeId[4]; + ma_uint16 country; + ma_uint16 language; + ma_uint16 dialect; + ma_uint16 codePage; + ma_uint32 stringLength; char* pString; -} drwav_list_labelled_cue_region; +} ma_dr_wav_list_labelled_cue_region; typedef enum { - drwav_metadata_location_invalid, - drwav_metadata_location_top_level, - drwav_metadata_location_inside_info_list, - drwav_metadata_location_inside_adtl_list -} drwav_metadata_location; + ma_dr_wav_metadata_location_invalid, + ma_dr_wav_metadata_location_top_level, + ma_dr_wav_metadata_location_inside_info_list, + ma_dr_wav_metadata_location_inside_adtl_list +} ma_dr_wav_metadata_location; typedef struct { - drwav_uint8 id[4]; - drwav_metadata_location chunkLocation; - drwav_uint32 dataSizeInBytes; - drwav_uint8* pData; -} drwav_unknown_metadata; + ma_uint8 id[4]; + ma_dr_wav_metadata_location chunkLocation; + ma_uint32 dataSizeInBytes; + ma_uint8* pData; +} ma_dr_wav_unknown_metadata; typedef struct { - drwav_metadata_type type; + ma_dr_wav_metadata_type type; union { - drwav_cue cue; - drwav_smpl smpl; - drwav_acid acid; - drwav_inst inst; - drwav_bext bext; - drwav_list_label_or_note labelOrNote; - drwav_list_labelled_cue_region labelledCueRegion; - drwav_list_info_text infoText; - drwav_unknown_metadata unknown; + ma_dr_wav_cue cue; + ma_dr_wav_smpl smpl; + ma_dr_wav_acid acid; + ma_dr_wav_inst inst; + ma_dr_wav_bext bext; + ma_dr_wav_list_label_or_note labelOrNote; + ma_dr_wav_list_labelled_cue_region labelledCueRegion; + ma_dr_wav_list_info_text infoText; + ma_dr_wav_unknown_metadata unknown; } data; -} drwav_metadata; +} ma_dr_wav_metadata; typedef struct { - drwav_read_proc onRead; - drwav_write_proc onWrite; - drwav_seek_proc onSeek; + ma_dr_wav_read_proc onRead; + ma_dr_wav_write_proc onWrite; + ma_dr_wav_seek_proc onSeek; void* pUserData; - drwav_allocation_callbacks allocationCallbacks; - drwav_container container; - drwav_fmt fmt; - drwav_uint32 sampleRate; - drwav_uint16 channels; - drwav_uint16 bitsPerSample; - drwav_uint16 translatedFormatTag; - drwav_uint64 totalPCMFrameCount; - drwav_uint64 dataChunkDataSize; - drwav_uint64 dataChunkDataPos; - drwav_uint64 bytesRemaining; - drwav_uint64 readCursorInPCMFrames; - drwav_uint64 dataChunkDataSizeTargetWrite; - drwav_bool32 isSequentialWrite; - drwav_metadata_type allowedMetadataTypes; - drwav_metadata* pMetadata; - drwav_uint32 metadataCount; - drwav__memory_stream memoryStream; - drwav__memory_stream_write memoryStreamWrite; + ma_allocation_callbacks allocationCallbacks; + ma_dr_wav_container container; + ma_dr_wav_fmt fmt; + ma_uint32 sampleRate; + ma_uint16 channels; + ma_uint16 bitsPerSample; + ma_uint16 translatedFormatTag; + ma_uint64 totalPCMFrameCount; + ma_uint64 dataChunkDataSize; + ma_uint64 dataChunkDataPos; + ma_uint64 bytesRemaining; + ma_uint64 readCursorInPCMFrames; + ma_uint64 dataChunkDataSizeTargetWrite; + ma_bool32 isSequentialWrite; + ma_dr_wav_metadata* pMetadata; + ma_uint32 metadataCount; + ma_dr_wav__memory_stream memoryStream; + ma_dr_wav__memory_stream_write memoryStreamWrite; struct { - drwav_uint32 bytesRemainingInBlock; - drwav_uint16 predictor[2]; - drwav_int32 delta[2]; - drwav_int32 cachedFrames[4]; - drwav_uint32 cachedFrameCount; - drwav_int32 prevFrames[2][2]; + ma_uint32 bytesRemainingInBlock; + ma_uint16 predictor[2]; + ma_int32 delta[2]; + ma_int32 cachedFrames[4]; + ma_uint32 cachedFrameCount; + ma_int32 prevFrames[2][2]; } msadpcm; struct { - drwav_uint32 bytesRemainingInBlock; - drwav_int32 predictor[2]; - drwav_int32 stepIndex[2]; - drwav_int32 cachedFrames[16]; - drwav_uint32 cachedFrameCount; + ma_uint32 bytesRemainingInBlock; + ma_int32 predictor[2]; + ma_int32 stepIndex[2]; + ma_int32 cachedFrames[16]; + ma_uint32 cachedFrameCount; } ima; -} drwav; -DRWAV_API drwav_bool32 drwav_init(drwav* pWav, drwav_read_proc onRead, drwav_seek_proc onSeek, void* pUserData, const drwav_allocation_callbacks* pAllocationCallbacks); -DRWAV_API drwav_bool32 drwav_init_ex(drwav* pWav, drwav_read_proc onRead, drwav_seek_proc onSeek, drwav_chunk_proc onChunk, void* pReadSeekUserData, void* pChunkUserData, drwav_uint32 flags, const drwav_allocation_callbacks* pAllocationCallbacks); -DRWAV_API drwav_bool32 drwav_init_with_metadata(drwav* pWav, drwav_read_proc onRead, drwav_seek_proc onSeek, void* pUserData, drwav_uint32 flags, const drwav_allocation_callbacks* pAllocationCallbacks); -DRWAV_API drwav_bool32 drwav_init_write(drwav* pWav, const drwav_data_format* pFormat, drwav_write_proc onWrite, drwav_seek_proc onSeek, void* pUserData, const drwav_allocation_callbacks* pAllocationCallbacks); -DRWAV_API drwav_bool32 drwav_init_write_sequential(drwav* pWav, const drwav_data_format* pFormat, drwav_uint64 totalSampleCount, drwav_write_proc onWrite, void* pUserData, const drwav_allocation_callbacks* pAllocationCallbacks); -DRWAV_API drwav_bool32 drwav_init_write_sequential_pcm_frames(drwav* pWav, const drwav_data_format* pFormat, drwav_uint64 totalPCMFrameCount, drwav_write_proc onWrite, void* pUserData, const drwav_allocation_callbacks* pAllocationCallbacks); -DRWAV_API drwav_bool32 drwav_init_write_with_metadata(drwav* pWav, const drwav_data_format* pFormat, drwav_write_proc onWrite, drwav_seek_proc onSeek, void* pUserData, const drwav_allocation_callbacks* pAllocationCallbacks, drwav_metadata* pMetadata, drwav_uint32 metadataCount); -DRWAV_API drwav_uint64 drwav_target_write_size_bytes(const drwav_data_format* pFormat, drwav_uint64 totalFrameCount, drwav_metadata* pMetadata, drwav_uint32 metadataCount); -DRWAV_API drwav_metadata* drwav_take_ownership_of_metadata(drwav* pWav); -DRWAV_API drwav_result drwav_uninit(drwav* pWav); -DRWAV_API size_t drwav_read_raw(drwav* pWav, size_t bytesToRead, void* pBufferOut); -DRWAV_API drwav_uint64 drwav_read_pcm_frames(drwav* pWav, drwav_uint64 framesToRead, void* pBufferOut); -DRWAV_API drwav_uint64 drwav_read_pcm_frames_le(drwav* pWav, drwav_uint64 framesToRead, void* pBufferOut); -DRWAV_API drwav_uint64 drwav_read_pcm_frames_be(drwav* pWav, drwav_uint64 framesToRead, void* pBufferOut); -DRWAV_API drwav_bool32 drwav_seek_to_pcm_frame(drwav* pWav, drwav_uint64 targetFrameIndex); -DRWAV_API drwav_result drwav_get_cursor_in_pcm_frames(drwav* pWav, drwav_uint64* pCursor); -DRWAV_API drwav_result drwav_get_length_in_pcm_frames(drwav* pWav, drwav_uint64* pLength); -DRWAV_API size_t drwav_write_raw(drwav* pWav, size_t bytesToWrite, const void* pData); -DRWAV_API drwav_uint64 drwav_write_pcm_frames(drwav* pWav, drwav_uint64 framesToWrite, const void* pData); -DRWAV_API drwav_uint64 drwav_write_pcm_frames_le(drwav* pWav, drwav_uint64 framesToWrite, const void* pData); -DRWAV_API drwav_uint64 drwav_write_pcm_frames_be(drwav* pWav, drwav_uint64 framesToWrite, const void* pData); -#ifndef DR_WAV_NO_CONVERSION_API -DRWAV_API drwav_uint64 drwav_read_pcm_frames_s16(drwav* pWav, drwav_uint64 framesToRead, drwav_int16* pBufferOut); -DRWAV_API drwav_uint64 drwav_read_pcm_frames_s16le(drwav* pWav, drwav_uint64 framesToRead, drwav_int16* pBufferOut); -DRWAV_API drwav_uint64 drwav_read_pcm_frames_s16be(drwav* pWav, drwav_uint64 framesToRead, drwav_int16* pBufferOut); -DRWAV_API void drwav_u8_to_s16(drwav_int16* pOut, const drwav_uint8* pIn, size_t sampleCount); -DRWAV_API void drwav_s24_to_s16(drwav_int16* pOut, const drwav_uint8* pIn, size_t sampleCount); -DRWAV_API void drwav_s32_to_s16(drwav_int16* pOut, const drwav_int32* pIn, size_t sampleCount); -DRWAV_API void drwav_f32_to_s16(drwav_int16* pOut, const float* pIn, size_t sampleCount); -DRWAV_API void drwav_f64_to_s16(drwav_int16* pOut, const double* pIn, size_t sampleCount); -DRWAV_API void drwav_alaw_to_s16(drwav_int16* pOut, const drwav_uint8* pIn, size_t sampleCount); -DRWAV_API void drwav_mulaw_to_s16(drwav_int16* pOut, const drwav_uint8* pIn, size_t sampleCount); -DRWAV_API drwav_uint64 drwav_read_pcm_frames_f32(drwav* pWav, drwav_uint64 framesToRead, float* pBufferOut); -DRWAV_API drwav_uint64 drwav_read_pcm_frames_f32le(drwav* pWav, drwav_uint64 framesToRead, float* pBufferOut); -DRWAV_API drwav_uint64 drwav_read_pcm_frames_f32be(drwav* pWav, drwav_uint64 framesToRead, float* pBufferOut); -DRWAV_API void drwav_u8_to_f32(float* pOut, const drwav_uint8* pIn, size_t sampleCount); -DRWAV_API void drwav_s16_to_f32(float* pOut, const drwav_int16* pIn, size_t sampleCount); -DRWAV_API void drwav_s24_to_f32(float* pOut, const drwav_uint8* pIn, size_t sampleCount); -DRWAV_API void drwav_s32_to_f32(float* pOut, const drwav_int32* pIn, size_t sampleCount); -DRWAV_API void drwav_f64_to_f32(float* pOut, const double* pIn, size_t sampleCount); -DRWAV_API void drwav_alaw_to_f32(float* pOut, const drwav_uint8* pIn, size_t sampleCount); -DRWAV_API void drwav_mulaw_to_f32(float* pOut, const drwav_uint8* pIn, size_t sampleCount); -DRWAV_API drwav_uint64 drwav_read_pcm_frames_s32(drwav* pWav, drwav_uint64 framesToRead, drwav_int32* pBufferOut); -DRWAV_API drwav_uint64 drwav_read_pcm_frames_s32le(drwav* pWav, drwav_uint64 framesToRead, drwav_int32* pBufferOut); -DRWAV_API drwav_uint64 drwav_read_pcm_frames_s32be(drwav* pWav, drwav_uint64 framesToRead, drwav_int32* pBufferOut); -DRWAV_API void drwav_u8_to_s32(drwav_int32* pOut, const drwav_uint8* pIn, size_t sampleCount); -DRWAV_API void drwav_s16_to_s32(drwav_int32* pOut, const drwav_int16* pIn, size_t sampleCount); -DRWAV_API void drwav_s24_to_s32(drwav_int32* pOut, const drwav_uint8* pIn, size_t sampleCount); -DRWAV_API void drwav_f32_to_s32(drwav_int32* pOut, const float* pIn, size_t sampleCount); -DRWAV_API void drwav_f64_to_s32(drwav_int32* pOut, const double* pIn, size_t sampleCount); -DRWAV_API void drwav_alaw_to_s32(drwav_int32* pOut, const drwav_uint8* pIn, size_t sampleCount); -DRWAV_API void drwav_mulaw_to_s32(drwav_int32* pOut, const drwav_uint8* pIn, size_t sampleCount); + struct + { + ma_bool8 isLE; + ma_bool8 isUnsigned; + } aiff; +} ma_dr_wav; +MA_API ma_bool32 ma_dr_wav_init(ma_dr_wav* pWav, ma_dr_wav_read_proc onRead, ma_dr_wav_seek_proc onSeek, void* pUserData, const ma_allocation_callbacks* pAllocationCallbacks); +MA_API ma_bool32 ma_dr_wav_init_ex(ma_dr_wav* pWav, ma_dr_wav_read_proc onRead, ma_dr_wav_seek_proc onSeek, ma_dr_wav_chunk_proc onChunk, void* pReadSeekUserData, void* pChunkUserData, ma_uint32 flags, const ma_allocation_callbacks* pAllocationCallbacks); +MA_API ma_bool32 ma_dr_wav_init_with_metadata(ma_dr_wav* pWav, ma_dr_wav_read_proc onRead, ma_dr_wav_seek_proc onSeek, void* pUserData, ma_uint32 flags, const ma_allocation_callbacks* pAllocationCallbacks); +MA_API ma_bool32 ma_dr_wav_init_write(ma_dr_wav* pWav, const ma_dr_wav_data_format* pFormat, ma_dr_wav_write_proc onWrite, ma_dr_wav_seek_proc onSeek, void* pUserData, const ma_allocation_callbacks* pAllocationCallbacks); +MA_API ma_bool32 ma_dr_wav_init_write_sequential(ma_dr_wav* pWav, const ma_dr_wav_data_format* pFormat, ma_uint64 totalSampleCount, ma_dr_wav_write_proc onWrite, void* pUserData, const ma_allocation_callbacks* pAllocationCallbacks); +MA_API ma_bool32 ma_dr_wav_init_write_sequential_pcm_frames(ma_dr_wav* pWav, const ma_dr_wav_data_format* pFormat, ma_uint64 totalPCMFrameCount, ma_dr_wav_write_proc onWrite, void* pUserData, const ma_allocation_callbacks* pAllocationCallbacks); +MA_API ma_bool32 ma_dr_wav_init_write_with_metadata(ma_dr_wav* pWav, const ma_dr_wav_data_format* pFormat, ma_dr_wav_write_proc onWrite, ma_dr_wav_seek_proc onSeek, void* pUserData, const ma_allocation_callbacks* pAllocationCallbacks, ma_dr_wav_metadata* pMetadata, ma_uint32 metadataCount); +MA_API ma_uint64 ma_dr_wav_target_write_size_bytes(const ma_dr_wav_data_format* pFormat, ma_uint64 totalFrameCount, ma_dr_wav_metadata* pMetadata, ma_uint32 metadataCount); +MA_API ma_dr_wav_metadata* ma_dr_wav_take_ownership_of_metadata(ma_dr_wav* pWav); +MA_API ma_result ma_dr_wav_uninit(ma_dr_wav* pWav); +MA_API size_t ma_dr_wav_read_raw(ma_dr_wav* pWav, size_t bytesToRead, void* pBufferOut); +MA_API ma_uint64 ma_dr_wav_read_pcm_frames(ma_dr_wav* pWav, ma_uint64 framesToRead, void* pBufferOut); +MA_API ma_uint64 ma_dr_wav_read_pcm_frames_le(ma_dr_wav* pWav, ma_uint64 framesToRead, void* pBufferOut); +MA_API ma_uint64 ma_dr_wav_read_pcm_frames_be(ma_dr_wav* pWav, ma_uint64 framesToRead, void* pBufferOut); +MA_API ma_bool32 ma_dr_wav_seek_to_pcm_frame(ma_dr_wav* pWav, ma_uint64 targetFrameIndex); +MA_API ma_result ma_dr_wav_get_cursor_in_pcm_frames(ma_dr_wav* pWav, ma_uint64* pCursor); +MA_API ma_result ma_dr_wav_get_length_in_pcm_frames(ma_dr_wav* pWav, ma_uint64* pLength); +MA_API size_t ma_dr_wav_write_raw(ma_dr_wav* pWav, size_t bytesToWrite, const void* pData); +MA_API ma_uint64 ma_dr_wav_write_pcm_frames(ma_dr_wav* pWav, ma_uint64 framesToWrite, const void* pData); +MA_API ma_uint64 ma_dr_wav_write_pcm_frames_le(ma_dr_wav* pWav, ma_uint64 framesToWrite, const void* pData); +MA_API ma_uint64 ma_dr_wav_write_pcm_frames_be(ma_dr_wav* pWav, ma_uint64 framesToWrite, const void* pData); +#ifndef MA_DR_WAV_NO_CONVERSION_API +MA_API ma_uint64 ma_dr_wav_read_pcm_frames_s16(ma_dr_wav* pWav, ma_uint64 framesToRead, ma_int16* pBufferOut); +MA_API ma_uint64 ma_dr_wav_read_pcm_frames_s16le(ma_dr_wav* pWav, ma_uint64 framesToRead, ma_int16* pBufferOut); +MA_API ma_uint64 ma_dr_wav_read_pcm_frames_s16be(ma_dr_wav* pWav, ma_uint64 framesToRead, ma_int16* pBufferOut); +MA_API void ma_dr_wav_u8_to_s16(ma_int16* pOut, const ma_uint8* pIn, size_t sampleCount); +MA_API void ma_dr_wav_s24_to_s16(ma_int16* pOut, const ma_uint8* pIn, size_t sampleCount); +MA_API void ma_dr_wav_s32_to_s16(ma_int16* pOut, const ma_int32* pIn, size_t sampleCount); +MA_API void ma_dr_wav_f32_to_s16(ma_int16* pOut, const float* pIn, size_t sampleCount); +MA_API void ma_dr_wav_f64_to_s16(ma_int16* pOut, const double* pIn, size_t sampleCount); +MA_API void ma_dr_wav_alaw_to_s16(ma_int16* pOut, const ma_uint8* pIn, size_t sampleCount); +MA_API void ma_dr_wav_mulaw_to_s16(ma_int16* pOut, const ma_uint8* pIn, size_t sampleCount); +MA_API ma_uint64 ma_dr_wav_read_pcm_frames_f32(ma_dr_wav* pWav, ma_uint64 framesToRead, float* pBufferOut); +MA_API ma_uint64 ma_dr_wav_read_pcm_frames_f32le(ma_dr_wav* pWav, ma_uint64 framesToRead, float* pBufferOut); +MA_API ma_uint64 ma_dr_wav_read_pcm_frames_f32be(ma_dr_wav* pWav, ma_uint64 framesToRead, float* pBufferOut); +MA_API void ma_dr_wav_u8_to_f32(float* pOut, const ma_uint8* pIn, size_t sampleCount); +MA_API void ma_dr_wav_s16_to_f32(float* pOut, const ma_int16* pIn, size_t sampleCount); +MA_API void ma_dr_wav_s24_to_f32(float* pOut, const ma_uint8* pIn, size_t sampleCount); +MA_API void ma_dr_wav_s32_to_f32(float* pOut, const ma_int32* pIn, size_t sampleCount); +MA_API void ma_dr_wav_f64_to_f32(float* pOut, const double* pIn, size_t sampleCount); +MA_API void ma_dr_wav_alaw_to_f32(float* pOut, const ma_uint8* pIn, size_t sampleCount); +MA_API void ma_dr_wav_mulaw_to_f32(float* pOut, const ma_uint8* pIn, size_t sampleCount); +MA_API ma_uint64 ma_dr_wav_read_pcm_frames_s32(ma_dr_wav* pWav, ma_uint64 framesToRead, ma_int32* pBufferOut); +MA_API ma_uint64 ma_dr_wav_read_pcm_frames_s32le(ma_dr_wav* pWav, ma_uint64 framesToRead, ma_int32* pBufferOut); +MA_API ma_uint64 ma_dr_wav_read_pcm_frames_s32be(ma_dr_wav* pWav, ma_uint64 framesToRead, ma_int32* pBufferOut); +MA_API void ma_dr_wav_u8_to_s32(ma_int32* pOut, const ma_uint8* pIn, size_t sampleCount); +MA_API void ma_dr_wav_s16_to_s32(ma_int32* pOut, const ma_int16* pIn, size_t sampleCount); +MA_API void ma_dr_wav_s24_to_s32(ma_int32* pOut, const ma_uint8* pIn, size_t sampleCount); +MA_API void ma_dr_wav_f32_to_s32(ma_int32* pOut, const float* pIn, size_t sampleCount); +MA_API void ma_dr_wav_f64_to_s32(ma_int32* pOut, const double* pIn, size_t sampleCount); +MA_API void ma_dr_wav_alaw_to_s32(ma_int32* pOut, const ma_uint8* pIn, size_t sampleCount); +MA_API void ma_dr_wav_mulaw_to_s32(ma_int32* pOut, const ma_uint8* pIn, size_t sampleCount); #endif -#ifndef DR_WAV_NO_STDIO -DRWAV_API drwav_bool32 drwav_init_file(drwav* pWav, const char* filename, const drwav_allocation_callbacks* pAllocationCallbacks); -DRWAV_API drwav_bool32 drwav_init_file_ex(drwav* pWav, const char* filename, drwav_chunk_proc onChunk, void* pChunkUserData, drwav_uint32 flags, const drwav_allocation_callbacks* pAllocationCallbacks); -DRWAV_API drwav_bool32 drwav_init_file_w(drwav* pWav, const wchar_t* filename, const drwav_allocation_callbacks* pAllocationCallbacks); -DRWAV_API drwav_bool32 drwav_init_file_ex_w(drwav* pWav, const wchar_t* filename, drwav_chunk_proc onChunk, void* pChunkUserData, drwav_uint32 flags, const drwav_allocation_callbacks* pAllocationCallbacks); -DRWAV_API drwav_bool32 drwav_init_file_with_metadata(drwav* pWav, const char* filename, drwav_uint32 flags, const drwav_allocation_callbacks* pAllocationCallbacks); -DRWAV_API drwav_bool32 drwav_init_file_with_metadata_w(drwav* pWav, const wchar_t* filename, drwav_uint32 flags, const drwav_allocation_callbacks* pAllocationCallbacks); -DRWAV_API drwav_bool32 drwav_init_file_write(drwav* pWav, const char* filename, const drwav_data_format* pFormat, const drwav_allocation_callbacks* pAllocationCallbacks); -DRWAV_API drwav_bool32 drwav_init_file_write_sequential(drwav* pWav, const char* filename, const drwav_data_format* pFormat, drwav_uint64 totalSampleCount, const drwav_allocation_callbacks* pAllocationCallbacks); -DRWAV_API drwav_bool32 drwav_init_file_write_sequential_pcm_frames(drwav* pWav, const char* filename, const drwav_data_format* pFormat, drwav_uint64 totalPCMFrameCount, const drwav_allocation_callbacks* pAllocationCallbacks); -DRWAV_API drwav_bool32 drwav_init_file_write_w(drwav* pWav, const wchar_t* filename, const drwav_data_format* pFormat, const drwav_allocation_callbacks* pAllocationCallbacks); -DRWAV_API drwav_bool32 drwav_init_file_write_sequential_w(drwav* pWav, const wchar_t* filename, const drwav_data_format* pFormat, drwav_uint64 totalSampleCount, const drwav_allocation_callbacks* pAllocationCallbacks); -DRWAV_API drwav_bool32 drwav_init_file_write_sequential_pcm_frames_w(drwav* pWav, const wchar_t* filename, const drwav_data_format* pFormat, drwav_uint64 totalPCMFrameCount, const drwav_allocation_callbacks* pAllocationCallbacks); +#ifndef MA_DR_WAV_NO_STDIO +MA_API ma_bool32 ma_dr_wav_init_file(ma_dr_wav* pWav, const char* filename, const ma_allocation_callbacks* pAllocationCallbacks); +MA_API ma_bool32 ma_dr_wav_init_file_ex(ma_dr_wav* pWav, const char* filename, ma_dr_wav_chunk_proc onChunk, void* pChunkUserData, ma_uint32 flags, const ma_allocation_callbacks* pAllocationCallbacks); +MA_API ma_bool32 ma_dr_wav_init_file_w(ma_dr_wav* pWav, const wchar_t* filename, const ma_allocation_callbacks* pAllocationCallbacks); +MA_API ma_bool32 ma_dr_wav_init_file_ex_w(ma_dr_wav* pWav, const wchar_t* filename, ma_dr_wav_chunk_proc onChunk, void* pChunkUserData, ma_uint32 flags, const ma_allocation_callbacks* pAllocationCallbacks); +MA_API ma_bool32 ma_dr_wav_init_file_with_metadata(ma_dr_wav* pWav, const char* filename, ma_uint32 flags, const ma_allocation_callbacks* pAllocationCallbacks); +MA_API ma_bool32 ma_dr_wav_init_file_with_metadata_w(ma_dr_wav* pWav, const wchar_t* filename, ma_uint32 flags, const ma_allocation_callbacks* pAllocationCallbacks); +MA_API ma_bool32 ma_dr_wav_init_file_write(ma_dr_wav* pWav, const char* filename, const ma_dr_wav_data_format* pFormat, const ma_allocation_callbacks* pAllocationCallbacks); +MA_API ma_bool32 ma_dr_wav_init_file_write_sequential(ma_dr_wav* pWav, const char* filename, const ma_dr_wav_data_format* pFormat, ma_uint64 totalSampleCount, const ma_allocation_callbacks* pAllocationCallbacks); +MA_API ma_bool32 ma_dr_wav_init_file_write_sequential_pcm_frames(ma_dr_wav* pWav, const char* filename, const ma_dr_wav_data_format* pFormat, ma_uint64 totalPCMFrameCount, const ma_allocation_callbacks* pAllocationCallbacks); +MA_API ma_bool32 ma_dr_wav_init_file_write_w(ma_dr_wav* pWav, const wchar_t* filename, const ma_dr_wav_data_format* pFormat, const ma_allocation_callbacks* pAllocationCallbacks); +MA_API ma_bool32 ma_dr_wav_init_file_write_sequential_w(ma_dr_wav* pWav, const wchar_t* filename, const ma_dr_wav_data_format* pFormat, ma_uint64 totalSampleCount, const ma_allocation_callbacks* pAllocationCallbacks); +MA_API ma_bool32 ma_dr_wav_init_file_write_sequential_pcm_frames_w(ma_dr_wav* pWav, const wchar_t* filename, const ma_dr_wav_data_format* pFormat, ma_uint64 totalPCMFrameCount, const ma_allocation_callbacks* pAllocationCallbacks); #endif -DRWAV_API drwav_bool32 drwav_init_memory(drwav* pWav, const void* data, size_t dataSize, const drwav_allocation_callbacks* pAllocationCallbacks); -DRWAV_API drwav_bool32 drwav_init_memory_ex(drwav* pWav, const void* data, size_t dataSize, drwav_chunk_proc onChunk, void* pChunkUserData, drwav_uint32 flags, const drwav_allocation_callbacks* pAllocationCallbacks); -DRWAV_API drwav_bool32 drwav_init_memory_with_metadata(drwav* pWav, const void* data, size_t dataSize, drwav_uint32 flags, const drwav_allocation_callbacks* pAllocationCallbacks); -DRWAV_API drwav_bool32 drwav_init_memory_write(drwav* pWav, void** ppData, size_t* pDataSize, const drwav_data_format* pFormat, const drwav_allocation_callbacks* pAllocationCallbacks); -DRWAV_API drwav_bool32 drwav_init_memory_write_sequential(drwav* pWav, void** ppData, size_t* pDataSize, const drwav_data_format* pFormat, drwav_uint64 totalSampleCount, const drwav_allocation_callbacks* pAllocationCallbacks); -DRWAV_API drwav_bool32 drwav_init_memory_write_sequential_pcm_frames(drwav* pWav, void** ppData, size_t* pDataSize, const drwav_data_format* pFormat, drwav_uint64 totalPCMFrameCount, const drwav_allocation_callbacks* pAllocationCallbacks); -#ifndef DR_WAV_NO_CONVERSION_API -DRWAV_API drwav_int16* drwav_open_and_read_pcm_frames_s16(drwav_read_proc onRead, drwav_seek_proc onSeek, void* pUserData, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks); -DRWAV_API float* drwav_open_and_read_pcm_frames_f32(drwav_read_proc onRead, drwav_seek_proc onSeek, void* pUserData, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks); -DRWAV_API drwav_int32* drwav_open_and_read_pcm_frames_s32(drwav_read_proc onRead, drwav_seek_proc onSeek, void* pUserData, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks); -#ifndef DR_WAV_NO_STDIO -DRWAV_API drwav_int16* drwav_open_file_and_read_pcm_frames_s16(const char* filename, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks); -DRWAV_API float* drwav_open_file_and_read_pcm_frames_f32(const char* filename, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks); -DRWAV_API drwav_int32* drwav_open_file_and_read_pcm_frames_s32(const char* filename, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks); -DRWAV_API drwav_int16* drwav_open_file_and_read_pcm_frames_s16_w(const wchar_t* filename, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks); -DRWAV_API float* drwav_open_file_and_read_pcm_frames_f32_w(const wchar_t* filename, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks); -DRWAV_API drwav_int32* drwav_open_file_and_read_pcm_frames_s32_w(const wchar_t* filename, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks); +MA_API ma_bool32 ma_dr_wav_init_memory(ma_dr_wav* pWav, const void* data, size_t dataSize, const ma_allocation_callbacks* pAllocationCallbacks); +MA_API ma_bool32 ma_dr_wav_init_memory_ex(ma_dr_wav* pWav, const void* data, size_t dataSize, ma_dr_wav_chunk_proc onChunk, void* pChunkUserData, ma_uint32 flags, const ma_allocation_callbacks* pAllocationCallbacks); +MA_API ma_bool32 ma_dr_wav_init_memory_with_metadata(ma_dr_wav* pWav, const void* data, size_t dataSize, ma_uint32 flags, const ma_allocation_callbacks* pAllocationCallbacks); +MA_API ma_bool32 ma_dr_wav_init_memory_write(ma_dr_wav* pWav, void** ppData, size_t* pDataSize, const ma_dr_wav_data_format* pFormat, const ma_allocation_callbacks* pAllocationCallbacks); +MA_API ma_bool32 ma_dr_wav_init_memory_write_sequential(ma_dr_wav* pWav, void** ppData, size_t* pDataSize, const ma_dr_wav_data_format* pFormat, ma_uint64 totalSampleCount, const ma_allocation_callbacks* pAllocationCallbacks); +MA_API ma_bool32 ma_dr_wav_init_memory_write_sequential_pcm_frames(ma_dr_wav* pWav, void** ppData, size_t* pDataSize, const ma_dr_wav_data_format* pFormat, ma_uint64 totalPCMFrameCount, const ma_allocation_callbacks* pAllocationCallbacks); +#ifndef MA_DR_WAV_NO_CONVERSION_API +MA_API ma_int16* ma_dr_wav_open_and_read_pcm_frames_s16(ma_dr_wav_read_proc onRead, ma_dr_wav_seek_proc onSeek, void* pUserData, unsigned int* channelsOut, unsigned int* sampleRateOut, ma_uint64* totalFrameCountOut, const ma_allocation_callbacks* pAllocationCallbacks); +MA_API float* ma_dr_wav_open_and_read_pcm_frames_f32(ma_dr_wav_read_proc onRead, ma_dr_wav_seek_proc onSeek, void* pUserData, unsigned int* channelsOut, unsigned int* sampleRateOut, ma_uint64* totalFrameCountOut, const ma_allocation_callbacks* pAllocationCallbacks); +MA_API ma_int32* ma_dr_wav_open_and_read_pcm_frames_s32(ma_dr_wav_read_proc onRead, ma_dr_wav_seek_proc onSeek, void* pUserData, unsigned int* channelsOut, unsigned int* sampleRateOut, ma_uint64* totalFrameCountOut, const ma_allocation_callbacks* pAllocationCallbacks); +#ifndef MA_DR_WAV_NO_STDIO +MA_API ma_int16* ma_dr_wav_open_file_and_read_pcm_frames_s16(const char* filename, unsigned int* channelsOut, unsigned int* sampleRateOut, ma_uint64* totalFrameCountOut, const ma_allocation_callbacks* pAllocationCallbacks); +MA_API float* ma_dr_wav_open_file_and_read_pcm_frames_f32(const char* filename, unsigned int* channelsOut, unsigned int* sampleRateOut, ma_uint64* totalFrameCountOut, const ma_allocation_callbacks* pAllocationCallbacks); +MA_API ma_int32* ma_dr_wav_open_file_and_read_pcm_frames_s32(const char* filename, unsigned int* channelsOut, unsigned int* sampleRateOut, ma_uint64* totalFrameCountOut, const ma_allocation_callbacks* pAllocationCallbacks); +MA_API ma_int16* ma_dr_wav_open_file_and_read_pcm_frames_s16_w(const wchar_t* filename, unsigned int* channelsOut, unsigned int* sampleRateOut, ma_uint64* totalFrameCountOut, const ma_allocation_callbacks* pAllocationCallbacks); +MA_API float* ma_dr_wav_open_file_and_read_pcm_frames_f32_w(const wchar_t* filename, unsigned int* channelsOut, unsigned int* sampleRateOut, ma_uint64* totalFrameCountOut, const ma_allocation_callbacks* pAllocationCallbacks); +MA_API ma_int32* ma_dr_wav_open_file_and_read_pcm_frames_s32_w(const wchar_t* filename, unsigned int* channelsOut, unsigned int* sampleRateOut, ma_uint64* totalFrameCountOut, const ma_allocation_callbacks* pAllocationCallbacks); #endif -DRWAV_API drwav_int16* drwav_open_memory_and_read_pcm_frames_s16(const void* data, size_t dataSize, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks); -DRWAV_API float* drwav_open_memory_and_read_pcm_frames_f32(const void* data, size_t dataSize, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks); -DRWAV_API drwav_int32* drwav_open_memory_and_read_pcm_frames_s32(const void* data, size_t dataSize, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks); +MA_API ma_int16* ma_dr_wav_open_memory_and_read_pcm_frames_s16(const void* data, size_t dataSize, unsigned int* channelsOut, unsigned int* sampleRateOut, ma_uint64* totalFrameCountOut, const ma_allocation_callbacks* pAllocationCallbacks); +MA_API float* ma_dr_wav_open_memory_and_read_pcm_frames_f32(const void* data, size_t dataSize, unsigned int* channelsOut, unsigned int* sampleRateOut, ma_uint64* totalFrameCountOut, const ma_allocation_callbacks* pAllocationCallbacks); +MA_API ma_int32* ma_dr_wav_open_memory_and_read_pcm_frames_s32(const void* data, size_t dataSize, unsigned int* channelsOut, unsigned int* sampleRateOut, ma_uint64* totalFrameCountOut, const ma_allocation_callbacks* pAllocationCallbacks); #endif -DRWAV_API void drwav_free(void* p, const drwav_allocation_callbacks* pAllocationCallbacks); -DRWAV_API drwav_uint16 drwav_bytes_to_u16(const drwav_uint8* data); -DRWAV_API drwav_int16 drwav_bytes_to_s16(const drwav_uint8* data); -DRWAV_API drwav_uint32 drwav_bytes_to_u32(const drwav_uint8* data); -DRWAV_API drwav_int32 drwav_bytes_to_s32(const drwav_uint8* data); -DRWAV_API drwav_uint64 drwav_bytes_to_u64(const drwav_uint8* data); -DRWAV_API drwav_int64 drwav_bytes_to_s64(const drwav_uint8* data); -DRWAV_API float drwav_bytes_to_f32(const drwav_uint8* data); -DRWAV_API drwav_bool32 drwav_guid_equal(const drwav_uint8 a[16], const drwav_uint8 b[16]); -DRWAV_API drwav_bool32 drwav_fourcc_equal(const drwav_uint8* a, const char* b); +MA_API void ma_dr_wav_free(void* p, const ma_allocation_callbacks* pAllocationCallbacks); +MA_API ma_uint16 ma_dr_wav_bytes_to_u16(const ma_uint8* data); +MA_API ma_int16 ma_dr_wav_bytes_to_s16(const ma_uint8* data); +MA_API ma_uint32 ma_dr_wav_bytes_to_u32(const ma_uint8* data); +MA_API ma_int32 ma_dr_wav_bytes_to_s32(const ma_uint8* data); +MA_API ma_uint64 ma_dr_wav_bytes_to_u64(const ma_uint8* data); +MA_API ma_int64 ma_dr_wav_bytes_to_s64(const ma_uint8* data); +MA_API float ma_dr_wav_bytes_to_f32(const ma_uint8* data); +MA_API ma_bool32 ma_dr_wav_guid_equal(const ma_uint8 a[16], const ma_uint8 b[16]); +MA_API ma_bool32 ma_dr_wav_fourcc_equal(const ma_uint8* a, const char* b); #ifdef __cplusplus } #endif @@ -57725,358 +60169,284 @@ DRWAV_API drwav_bool32 drwav_fourcc_equal(const drwav_uint8* a, const char* b); #if !defined(MA_NO_FLAC) && !defined(MA_NO_DECODING) /* dr_flac_h begin */ -#ifndef dr_flac_h -#define dr_flac_h +#ifndef ma_dr_flac_h +#define ma_dr_flac_h #ifdef __cplusplus extern "C" { #endif -#define DRFLAC_STRINGIFY(x) #x -#define DRFLAC_XSTRINGIFY(x) DRFLAC_STRINGIFY(x) -#define DRFLAC_VERSION_MAJOR 0 -#define DRFLAC_VERSION_MINOR 12 -#define DRFLAC_VERSION_REVISION 38 -#define DRFLAC_VERSION_STRING DRFLAC_XSTRINGIFY(DRFLAC_VERSION_MAJOR) "." DRFLAC_XSTRINGIFY(DRFLAC_VERSION_MINOR) "." DRFLAC_XSTRINGIFY(DRFLAC_VERSION_REVISION) +#define MA_DR_FLAC_STRINGIFY(x) #x +#define MA_DR_FLAC_XSTRINGIFY(x) MA_DR_FLAC_STRINGIFY(x) +#define MA_DR_FLAC_VERSION_MAJOR 0 +#define MA_DR_FLAC_VERSION_MINOR 12 +#define MA_DR_FLAC_VERSION_REVISION 42 +#define MA_DR_FLAC_VERSION_STRING MA_DR_FLAC_XSTRINGIFY(MA_DR_FLAC_VERSION_MAJOR) "." MA_DR_FLAC_XSTRINGIFY(MA_DR_FLAC_VERSION_MINOR) "." MA_DR_FLAC_XSTRINGIFY(MA_DR_FLAC_VERSION_REVISION) #include -typedef signed char drflac_int8; -typedef unsigned char drflac_uint8; -typedef signed short drflac_int16; -typedef unsigned short drflac_uint16; -typedef signed int drflac_int32; -typedef unsigned int drflac_uint32; -#if defined(_MSC_VER) && !defined(__clang__) - typedef signed __int64 drflac_int64; - typedef unsigned __int64 drflac_uint64; -#else - #if defined(__clang__) || (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))) - #pragma GCC diagnostic push - #pragma GCC diagnostic ignored "-Wlong-long" - #if defined(__clang__) - #pragma GCC diagnostic ignored "-Wc++11-long-long" - #endif - #endif - typedef signed long long drflac_int64; - typedef unsigned long long drflac_uint64; - #if defined(__clang__) || (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))) - #pragma GCC diagnostic pop - #endif -#endif -#if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__)) || defined(_M_X64) || defined(__ia64) || defined(_M_IA64) || defined(__aarch64__) || defined(_M_ARM64) || defined(__powerpc64__) - typedef drflac_uint64 drflac_uintptr; -#else - typedef drflac_uint32 drflac_uintptr; -#endif -typedef drflac_uint8 drflac_bool8; -typedef drflac_uint32 drflac_bool32; -#define DRFLAC_TRUE 1 -#define DRFLAC_FALSE 0 -#if !defined(DRFLAC_API) - #if defined(DRFLAC_DLL) - #if defined(_WIN32) - #define DRFLAC_DLL_IMPORT __declspec(dllimport) - #define DRFLAC_DLL_EXPORT __declspec(dllexport) - #define DRFLAC_DLL_PRIVATE static - #else - #if defined(__GNUC__) && __GNUC__ >= 4 - #define DRFLAC_DLL_IMPORT __attribute__((visibility("default"))) - #define DRFLAC_DLL_EXPORT __attribute__((visibility("default"))) - #define DRFLAC_DLL_PRIVATE __attribute__((visibility("hidden"))) - #else - #define DRFLAC_DLL_IMPORT - #define DRFLAC_DLL_EXPORT - #define DRFLAC_DLL_PRIVATE static - #endif - #endif - #if defined(DR_FLAC_IMPLEMENTATION) || defined(DRFLAC_IMPLEMENTATION) - #define DRFLAC_API DRFLAC_DLL_EXPORT - #else - #define DRFLAC_API DRFLAC_DLL_IMPORT - #endif - #define DRFLAC_PRIVATE DRFLAC_DLL_PRIVATE - #else - #define DRFLAC_API extern - #define DRFLAC_PRIVATE static - #endif -#endif #if defined(_MSC_VER) && _MSC_VER >= 1700 - #define DRFLAC_DEPRECATED __declspec(deprecated) + #define MA_DR_FLAC_DEPRECATED __declspec(deprecated) #elif (defined(__GNUC__) && __GNUC__ >= 4) - #define DRFLAC_DEPRECATED __attribute__((deprecated)) + #define MA_DR_FLAC_DEPRECATED __attribute__((deprecated)) #elif defined(__has_feature) #if __has_feature(attribute_deprecated) - #define DRFLAC_DEPRECATED __attribute__((deprecated)) + #define MA_DR_FLAC_DEPRECATED __attribute__((deprecated)) #else - #define DRFLAC_DEPRECATED + #define MA_DR_FLAC_DEPRECATED #endif #else - #define DRFLAC_DEPRECATED + #define MA_DR_FLAC_DEPRECATED #endif -DRFLAC_API void drflac_version(drflac_uint32* pMajor, drflac_uint32* pMinor, drflac_uint32* pRevision); -DRFLAC_API const char* drflac_version_string(void); -#ifndef DR_FLAC_BUFFER_SIZE -#define DR_FLAC_BUFFER_SIZE 4096 +MA_API void ma_dr_flac_version(ma_uint32* pMajor, ma_uint32* pMinor, ma_uint32* pRevision); +MA_API const char* ma_dr_flac_version_string(void); +#ifndef MA_DR_FLAC_BUFFER_SIZE +#define MA_DR_FLAC_BUFFER_SIZE 4096 #endif -#if defined(_WIN64) || defined(_LP64) || defined(__LP64__) -#define DRFLAC_64BIT -#endif -#ifdef DRFLAC_64BIT -typedef drflac_uint64 drflac_cache_t; +#ifdef MA_64BIT +typedef ma_uint64 ma_dr_flac_cache_t; #else -typedef drflac_uint32 drflac_cache_t; +typedef ma_uint32 ma_dr_flac_cache_t; #endif -#define DRFLAC_METADATA_BLOCK_TYPE_STREAMINFO 0 -#define DRFLAC_METADATA_BLOCK_TYPE_PADDING 1 -#define DRFLAC_METADATA_BLOCK_TYPE_APPLICATION 2 -#define DRFLAC_METADATA_BLOCK_TYPE_SEEKTABLE 3 -#define DRFLAC_METADATA_BLOCK_TYPE_VORBIS_COMMENT 4 -#define DRFLAC_METADATA_BLOCK_TYPE_CUESHEET 5 -#define DRFLAC_METADATA_BLOCK_TYPE_PICTURE 6 -#define DRFLAC_METADATA_BLOCK_TYPE_INVALID 127 -#define DRFLAC_PICTURE_TYPE_OTHER 0 -#define DRFLAC_PICTURE_TYPE_FILE_ICON 1 -#define DRFLAC_PICTURE_TYPE_OTHER_FILE_ICON 2 -#define DRFLAC_PICTURE_TYPE_COVER_FRONT 3 -#define DRFLAC_PICTURE_TYPE_COVER_BACK 4 -#define DRFLAC_PICTURE_TYPE_LEAFLET_PAGE 5 -#define DRFLAC_PICTURE_TYPE_MEDIA 6 -#define DRFLAC_PICTURE_TYPE_LEAD_ARTIST 7 -#define DRFLAC_PICTURE_TYPE_ARTIST 8 -#define DRFLAC_PICTURE_TYPE_CONDUCTOR 9 -#define DRFLAC_PICTURE_TYPE_BAND 10 -#define DRFLAC_PICTURE_TYPE_COMPOSER 11 -#define DRFLAC_PICTURE_TYPE_LYRICIST 12 -#define DRFLAC_PICTURE_TYPE_RECORDING_LOCATION 13 -#define DRFLAC_PICTURE_TYPE_DURING_RECORDING 14 -#define DRFLAC_PICTURE_TYPE_DURING_PERFORMANCE 15 -#define DRFLAC_PICTURE_TYPE_SCREEN_CAPTURE 16 -#define DRFLAC_PICTURE_TYPE_BRIGHT_COLORED_FISH 17 -#define DRFLAC_PICTURE_TYPE_ILLUSTRATION 18 -#define DRFLAC_PICTURE_TYPE_BAND_LOGOTYPE 19 -#define DRFLAC_PICTURE_TYPE_PUBLISHER_LOGOTYPE 20 +#define MA_DR_FLAC_METADATA_BLOCK_TYPE_STREAMINFO 0 +#define MA_DR_FLAC_METADATA_BLOCK_TYPE_PADDING 1 +#define MA_DR_FLAC_METADATA_BLOCK_TYPE_APPLICATION 2 +#define MA_DR_FLAC_METADATA_BLOCK_TYPE_SEEKTABLE 3 +#define MA_DR_FLAC_METADATA_BLOCK_TYPE_VORBIS_COMMENT 4 +#define MA_DR_FLAC_METADATA_BLOCK_TYPE_CUESHEET 5 +#define MA_DR_FLAC_METADATA_BLOCK_TYPE_PICTURE 6 +#define MA_DR_FLAC_METADATA_BLOCK_TYPE_INVALID 127 +#define MA_DR_FLAC_PICTURE_TYPE_OTHER 0 +#define MA_DR_FLAC_PICTURE_TYPE_FILE_ICON 1 +#define MA_DR_FLAC_PICTURE_TYPE_OTHER_FILE_ICON 2 +#define MA_DR_FLAC_PICTURE_TYPE_COVER_FRONT 3 +#define MA_DR_FLAC_PICTURE_TYPE_COVER_BACK 4 +#define MA_DR_FLAC_PICTURE_TYPE_LEAFLET_PAGE 5 +#define MA_DR_FLAC_PICTURE_TYPE_MEDIA 6 +#define MA_DR_FLAC_PICTURE_TYPE_LEAD_ARTIST 7 +#define MA_DR_FLAC_PICTURE_TYPE_ARTIST 8 +#define MA_DR_FLAC_PICTURE_TYPE_CONDUCTOR 9 +#define MA_DR_FLAC_PICTURE_TYPE_BAND 10 +#define MA_DR_FLAC_PICTURE_TYPE_COMPOSER 11 +#define MA_DR_FLAC_PICTURE_TYPE_LYRICIST 12 +#define MA_DR_FLAC_PICTURE_TYPE_RECORDING_LOCATION 13 +#define MA_DR_FLAC_PICTURE_TYPE_DURING_RECORDING 14 +#define MA_DR_FLAC_PICTURE_TYPE_DURING_PERFORMANCE 15 +#define MA_DR_FLAC_PICTURE_TYPE_SCREEN_CAPTURE 16 +#define MA_DR_FLAC_PICTURE_TYPE_BRIGHT_COLORED_FISH 17 +#define MA_DR_FLAC_PICTURE_TYPE_ILLUSTRATION 18 +#define MA_DR_FLAC_PICTURE_TYPE_BAND_LOGOTYPE 19 +#define MA_DR_FLAC_PICTURE_TYPE_PUBLISHER_LOGOTYPE 20 typedef enum { - drflac_container_native, - drflac_container_ogg, - drflac_container_unknown -} drflac_container; + ma_dr_flac_container_native, + ma_dr_flac_container_ogg, + ma_dr_flac_container_unknown +} ma_dr_flac_container; typedef enum { - drflac_seek_origin_start, - drflac_seek_origin_current -} drflac_seek_origin; -#pragma pack(2) + ma_dr_flac_seek_origin_start, + ma_dr_flac_seek_origin_current +} ma_dr_flac_seek_origin; typedef struct { - drflac_uint64 firstPCMFrame; - drflac_uint64 flacFrameOffset; - drflac_uint16 pcmFrameCount; -} drflac_seekpoint; -#pragma pack() + ma_uint64 firstPCMFrame; + ma_uint64 flacFrameOffset; + ma_uint16 pcmFrameCount; +} ma_dr_flac_seekpoint; typedef struct { - drflac_uint16 minBlockSizeInPCMFrames; - drflac_uint16 maxBlockSizeInPCMFrames; - drflac_uint32 minFrameSizeInPCMFrames; - drflac_uint32 maxFrameSizeInPCMFrames; - drflac_uint32 sampleRate; - drflac_uint8 channels; - drflac_uint8 bitsPerSample; - drflac_uint64 totalPCMFrameCount; - drflac_uint8 md5[16]; -} drflac_streaminfo; + ma_uint16 minBlockSizeInPCMFrames; + ma_uint16 maxBlockSizeInPCMFrames; + ma_uint32 minFrameSizeInPCMFrames; + ma_uint32 maxFrameSizeInPCMFrames; + ma_uint32 sampleRate; + ma_uint8 channels; + ma_uint8 bitsPerSample; + ma_uint64 totalPCMFrameCount; + ma_uint8 md5[16]; +} ma_dr_flac_streaminfo; typedef struct { - drflac_uint32 type; + ma_uint32 type; const void* pRawData; - drflac_uint32 rawDataSize; + ma_uint32 rawDataSize; union { - drflac_streaminfo streaminfo; + ma_dr_flac_streaminfo streaminfo; struct { int unused; } padding; struct { - drflac_uint32 id; + ma_uint32 id; const void* pData; - drflac_uint32 dataSize; + ma_uint32 dataSize; } application; struct { - drflac_uint32 seekpointCount; - const drflac_seekpoint* pSeekpoints; + ma_uint32 seekpointCount; + const ma_dr_flac_seekpoint* pSeekpoints; } seektable; struct { - drflac_uint32 vendorLength; + ma_uint32 vendorLength; const char* vendor; - drflac_uint32 commentCount; + ma_uint32 commentCount; const void* pComments; } vorbis_comment; struct { char catalog[128]; - drflac_uint64 leadInSampleCount; - drflac_bool32 isCD; - drflac_uint8 trackCount; + ma_uint64 leadInSampleCount; + ma_bool32 isCD; + ma_uint8 trackCount; const void* pTrackData; } cuesheet; struct { - drflac_uint32 type; - drflac_uint32 mimeLength; + ma_uint32 type; + ma_uint32 mimeLength; const char* mime; - drflac_uint32 descriptionLength; + ma_uint32 descriptionLength; const char* description; - drflac_uint32 width; - drflac_uint32 height; - drflac_uint32 colorDepth; - drflac_uint32 indexColorCount; - drflac_uint32 pictureDataSize; - const drflac_uint8* pPictureData; + ma_uint32 width; + ma_uint32 height; + ma_uint32 colorDepth; + ma_uint32 indexColorCount; + ma_uint32 pictureDataSize; + const ma_uint8* pPictureData; } picture; } data; -} drflac_metadata; -typedef size_t (* drflac_read_proc)(void* pUserData, void* pBufferOut, size_t bytesToRead); -typedef drflac_bool32 (* drflac_seek_proc)(void* pUserData, int offset, drflac_seek_origin origin); -typedef void (* drflac_meta_proc)(void* pUserData, drflac_metadata* pMetadata); +} ma_dr_flac_metadata; +typedef size_t (* ma_dr_flac_read_proc)(void* pUserData, void* pBufferOut, size_t bytesToRead); +typedef ma_bool32 (* ma_dr_flac_seek_proc)(void* pUserData, int offset, ma_dr_flac_seek_origin origin); +typedef void (* ma_dr_flac_meta_proc)(void* pUserData, ma_dr_flac_metadata* pMetadata); typedef struct { - void* pUserData; - void* (* onMalloc)(size_t sz, void* pUserData); - void* (* onRealloc)(void* p, size_t sz, void* pUserData); - void (* onFree)(void* p, void* pUserData); -} drflac_allocation_callbacks; -typedef struct -{ - const drflac_uint8* data; + const ma_uint8* data; size_t dataSize; size_t currentReadPos; -} drflac__memory_stream; +} ma_dr_flac__memory_stream; typedef struct { - drflac_read_proc onRead; - drflac_seek_proc onSeek; + ma_dr_flac_read_proc onRead; + ma_dr_flac_seek_proc onSeek; void* pUserData; size_t unalignedByteCount; - drflac_cache_t unalignedCache; - drflac_uint32 nextL2Line; - drflac_uint32 consumedBits; - drflac_cache_t cacheL2[DR_FLAC_BUFFER_SIZE/sizeof(drflac_cache_t)]; - drflac_cache_t cache; - drflac_uint16 crc16; - drflac_cache_t crc16Cache; - drflac_uint32 crc16CacheIgnoredBytes; -} drflac_bs; + ma_dr_flac_cache_t unalignedCache; + ma_uint32 nextL2Line; + ma_uint32 consumedBits; + ma_dr_flac_cache_t cacheL2[MA_DR_FLAC_BUFFER_SIZE/sizeof(ma_dr_flac_cache_t)]; + ma_dr_flac_cache_t cache; + ma_uint16 crc16; + ma_dr_flac_cache_t crc16Cache; + ma_uint32 crc16CacheIgnoredBytes; +} ma_dr_flac_bs; typedef struct { - drflac_uint8 subframeType; - drflac_uint8 wastedBitsPerSample; - drflac_uint8 lpcOrder; - drflac_int32* pSamplesS32; -} drflac_subframe; + ma_uint8 subframeType; + ma_uint8 wastedBitsPerSample; + ma_uint8 lpcOrder; + ma_int32* pSamplesS32; +} ma_dr_flac_subframe; typedef struct { - drflac_uint64 pcmFrameNumber; - drflac_uint32 flacFrameNumber; - drflac_uint32 sampleRate; - drflac_uint16 blockSizeInPCMFrames; - drflac_uint8 channelAssignment; - drflac_uint8 bitsPerSample; - drflac_uint8 crc8; -} drflac_frame_header; + ma_uint64 pcmFrameNumber; + ma_uint32 flacFrameNumber; + ma_uint32 sampleRate; + ma_uint16 blockSizeInPCMFrames; + ma_uint8 channelAssignment; + ma_uint8 bitsPerSample; + ma_uint8 crc8; +} ma_dr_flac_frame_header; typedef struct { - drflac_frame_header header; - drflac_uint32 pcmFramesRemaining; - drflac_subframe subframes[8]; -} drflac_frame; + ma_dr_flac_frame_header header; + ma_uint32 pcmFramesRemaining; + ma_dr_flac_subframe subframes[8]; +} ma_dr_flac_frame; typedef struct { - drflac_meta_proc onMeta; + ma_dr_flac_meta_proc onMeta; void* pUserDataMD; - drflac_allocation_callbacks allocationCallbacks; - drflac_uint32 sampleRate; - drflac_uint8 channels; - drflac_uint8 bitsPerSample; - drflac_uint16 maxBlockSizeInPCMFrames; - drflac_uint64 totalPCMFrameCount; - drflac_container container; - drflac_uint32 seekpointCount; - drflac_frame currentFLACFrame; - drflac_uint64 currentPCMFrame; - drflac_uint64 firstFLACFramePosInBytes; - drflac__memory_stream memoryStream; - drflac_int32* pDecodedSamples; - drflac_seekpoint* pSeekpoints; + ma_allocation_callbacks allocationCallbacks; + ma_uint32 sampleRate; + ma_uint8 channels; + ma_uint8 bitsPerSample; + ma_uint16 maxBlockSizeInPCMFrames; + ma_uint64 totalPCMFrameCount; + ma_dr_flac_container container; + ma_uint32 seekpointCount; + ma_dr_flac_frame currentFLACFrame; + ma_uint64 currentPCMFrame; + ma_uint64 firstFLACFramePosInBytes; + ma_dr_flac__memory_stream memoryStream; + ma_int32* pDecodedSamples; + ma_dr_flac_seekpoint* pSeekpoints; void* _oggbs; - drflac_bool32 _noSeekTableSeek : 1; - drflac_bool32 _noBinarySearchSeek : 1; - drflac_bool32 _noBruteForceSeek : 1; - drflac_bs bs; - drflac_uint8 pExtraData[1]; -} drflac; -DRFLAC_API drflac* drflac_open(drflac_read_proc onRead, drflac_seek_proc onSeek, void* pUserData, const drflac_allocation_callbacks* pAllocationCallbacks); -DRFLAC_API drflac* drflac_open_relaxed(drflac_read_proc onRead, drflac_seek_proc onSeek, drflac_container container, void* pUserData, const drflac_allocation_callbacks* pAllocationCallbacks); -DRFLAC_API drflac* drflac_open_with_metadata(drflac_read_proc onRead, drflac_seek_proc onSeek, drflac_meta_proc onMeta, void* pUserData, const drflac_allocation_callbacks* pAllocationCallbacks); -DRFLAC_API drflac* drflac_open_with_metadata_relaxed(drflac_read_proc onRead, drflac_seek_proc onSeek, drflac_meta_proc onMeta, drflac_container container, void* pUserData, const drflac_allocation_callbacks* pAllocationCallbacks); -DRFLAC_API void drflac_close(drflac* pFlac); -DRFLAC_API drflac_uint64 drflac_read_pcm_frames_s32(drflac* pFlac, drflac_uint64 framesToRead, drflac_int32* pBufferOut); -DRFLAC_API drflac_uint64 drflac_read_pcm_frames_s16(drflac* pFlac, drflac_uint64 framesToRead, drflac_int16* pBufferOut); -DRFLAC_API drflac_uint64 drflac_read_pcm_frames_f32(drflac* pFlac, drflac_uint64 framesToRead, float* pBufferOut); -DRFLAC_API drflac_bool32 drflac_seek_to_pcm_frame(drflac* pFlac, drflac_uint64 pcmFrameIndex); -#ifndef DR_FLAC_NO_STDIO -DRFLAC_API drflac* drflac_open_file(const char* pFileName, const drflac_allocation_callbacks* pAllocationCallbacks); -DRFLAC_API drflac* drflac_open_file_w(const wchar_t* pFileName, const drflac_allocation_callbacks* pAllocationCallbacks); -DRFLAC_API drflac* drflac_open_file_with_metadata(const char* pFileName, drflac_meta_proc onMeta, void* pUserData, const drflac_allocation_callbacks* pAllocationCallbacks); -DRFLAC_API drflac* drflac_open_file_with_metadata_w(const wchar_t* pFileName, drflac_meta_proc onMeta, void* pUserData, const drflac_allocation_callbacks* pAllocationCallbacks); + ma_bool32 _noSeekTableSeek : 1; + ma_bool32 _noBinarySearchSeek : 1; + ma_bool32 _noBruteForceSeek : 1; + ma_dr_flac_bs bs; + ma_uint8 pExtraData[1]; +} ma_dr_flac; +MA_API ma_dr_flac* ma_dr_flac_open(ma_dr_flac_read_proc onRead, ma_dr_flac_seek_proc onSeek, void* pUserData, const ma_allocation_callbacks* pAllocationCallbacks); +MA_API ma_dr_flac* ma_dr_flac_open_relaxed(ma_dr_flac_read_proc onRead, ma_dr_flac_seek_proc onSeek, ma_dr_flac_container container, void* pUserData, const ma_allocation_callbacks* pAllocationCallbacks); +MA_API ma_dr_flac* ma_dr_flac_open_with_metadata(ma_dr_flac_read_proc onRead, ma_dr_flac_seek_proc onSeek, ma_dr_flac_meta_proc onMeta, void* pUserData, const ma_allocation_callbacks* pAllocationCallbacks); +MA_API ma_dr_flac* ma_dr_flac_open_with_metadata_relaxed(ma_dr_flac_read_proc onRead, ma_dr_flac_seek_proc onSeek, ma_dr_flac_meta_proc onMeta, ma_dr_flac_container container, void* pUserData, const ma_allocation_callbacks* pAllocationCallbacks); +MA_API void ma_dr_flac_close(ma_dr_flac* pFlac); +MA_API ma_uint64 ma_dr_flac_read_pcm_frames_s32(ma_dr_flac* pFlac, ma_uint64 framesToRead, ma_int32* pBufferOut); +MA_API ma_uint64 ma_dr_flac_read_pcm_frames_s16(ma_dr_flac* pFlac, ma_uint64 framesToRead, ma_int16* pBufferOut); +MA_API ma_uint64 ma_dr_flac_read_pcm_frames_f32(ma_dr_flac* pFlac, ma_uint64 framesToRead, float* pBufferOut); +MA_API ma_bool32 ma_dr_flac_seek_to_pcm_frame(ma_dr_flac* pFlac, ma_uint64 pcmFrameIndex); +#ifndef MA_DR_FLAC_NO_STDIO +MA_API ma_dr_flac* ma_dr_flac_open_file(const char* pFileName, const ma_allocation_callbacks* pAllocationCallbacks); +MA_API ma_dr_flac* ma_dr_flac_open_file_w(const wchar_t* pFileName, const ma_allocation_callbacks* pAllocationCallbacks); +MA_API ma_dr_flac* ma_dr_flac_open_file_with_metadata(const char* pFileName, ma_dr_flac_meta_proc onMeta, void* pUserData, const ma_allocation_callbacks* pAllocationCallbacks); +MA_API ma_dr_flac* ma_dr_flac_open_file_with_metadata_w(const wchar_t* pFileName, ma_dr_flac_meta_proc onMeta, void* pUserData, const ma_allocation_callbacks* pAllocationCallbacks); #endif -DRFLAC_API drflac* drflac_open_memory(const void* pData, size_t dataSize, const drflac_allocation_callbacks* pAllocationCallbacks); -DRFLAC_API drflac* drflac_open_memory_with_metadata(const void* pData, size_t dataSize, drflac_meta_proc onMeta, void* pUserData, const drflac_allocation_callbacks* pAllocationCallbacks); -DRFLAC_API drflac_int32* drflac_open_and_read_pcm_frames_s32(drflac_read_proc onRead, drflac_seek_proc onSeek, void* pUserData, unsigned int* channels, unsigned int* sampleRate, drflac_uint64* totalPCMFrameCount, const drflac_allocation_callbacks* pAllocationCallbacks); -DRFLAC_API drflac_int16* drflac_open_and_read_pcm_frames_s16(drflac_read_proc onRead, drflac_seek_proc onSeek, void* pUserData, unsigned int* channels, unsigned int* sampleRate, drflac_uint64* totalPCMFrameCount, const drflac_allocation_callbacks* pAllocationCallbacks); -DRFLAC_API float* drflac_open_and_read_pcm_frames_f32(drflac_read_proc onRead, drflac_seek_proc onSeek, void* pUserData, unsigned int* channels, unsigned int* sampleRate, drflac_uint64* totalPCMFrameCount, const drflac_allocation_callbacks* pAllocationCallbacks); -#ifndef DR_FLAC_NO_STDIO -DRFLAC_API drflac_int32* drflac_open_file_and_read_pcm_frames_s32(const char* filename, unsigned int* channels, unsigned int* sampleRate, drflac_uint64* totalPCMFrameCount, const drflac_allocation_callbacks* pAllocationCallbacks); -DRFLAC_API drflac_int16* drflac_open_file_and_read_pcm_frames_s16(const char* filename, unsigned int* channels, unsigned int* sampleRate, drflac_uint64* totalPCMFrameCount, const drflac_allocation_callbacks* pAllocationCallbacks); -DRFLAC_API float* drflac_open_file_and_read_pcm_frames_f32(const char* filename, unsigned int* channels, unsigned int* sampleRate, drflac_uint64* totalPCMFrameCount, const drflac_allocation_callbacks* pAllocationCallbacks); +MA_API ma_dr_flac* ma_dr_flac_open_memory(const void* pData, size_t dataSize, const ma_allocation_callbacks* pAllocationCallbacks); +MA_API ma_dr_flac* ma_dr_flac_open_memory_with_metadata(const void* pData, size_t dataSize, ma_dr_flac_meta_proc onMeta, void* pUserData, const ma_allocation_callbacks* pAllocationCallbacks); +MA_API ma_int32* ma_dr_flac_open_and_read_pcm_frames_s32(ma_dr_flac_read_proc onRead, ma_dr_flac_seek_proc onSeek, void* pUserData, unsigned int* channels, unsigned int* sampleRate, ma_uint64* totalPCMFrameCount, const ma_allocation_callbacks* pAllocationCallbacks); +MA_API ma_int16* ma_dr_flac_open_and_read_pcm_frames_s16(ma_dr_flac_read_proc onRead, ma_dr_flac_seek_proc onSeek, void* pUserData, unsigned int* channels, unsigned int* sampleRate, ma_uint64* totalPCMFrameCount, const ma_allocation_callbacks* pAllocationCallbacks); +MA_API float* ma_dr_flac_open_and_read_pcm_frames_f32(ma_dr_flac_read_proc onRead, ma_dr_flac_seek_proc onSeek, void* pUserData, unsigned int* channels, unsigned int* sampleRate, ma_uint64* totalPCMFrameCount, const ma_allocation_callbacks* pAllocationCallbacks); +#ifndef MA_DR_FLAC_NO_STDIO +MA_API ma_int32* ma_dr_flac_open_file_and_read_pcm_frames_s32(const char* filename, unsigned int* channels, unsigned int* sampleRate, ma_uint64* totalPCMFrameCount, const ma_allocation_callbacks* pAllocationCallbacks); +MA_API ma_int16* ma_dr_flac_open_file_and_read_pcm_frames_s16(const char* filename, unsigned int* channels, unsigned int* sampleRate, ma_uint64* totalPCMFrameCount, const ma_allocation_callbacks* pAllocationCallbacks); +MA_API float* ma_dr_flac_open_file_and_read_pcm_frames_f32(const char* filename, unsigned int* channels, unsigned int* sampleRate, ma_uint64* totalPCMFrameCount, const ma_allocation_callbacks* pAllocationCallbacks); #endif -DRFLAC_API drflac_int32* drflac_open_memory_and_read_pcm_frames_s32(const void* data, size_t dataSize, unsigned int* channels, unsigned int* sampleRate, drflac_uint64* totalPCMFrameCount, const drflac_allocation_callbacks* pAllocationCallbacks); -DRFLAC_API drflac_int16* drflac_open_memory_and_read_pcm_frames_s16(const void* data, size_t dataSize, unsigned int* channels, unsigned int* sampleRate, drflac_uint64* totalPCMFrameCount, const drflac_allocation_callbacks* pAllocationCallbacks); -DRFLAC_API float* drflac_open_memory_and_read_pcm_frames_f32(const void* data, size_t dataSize, unsigned int* channels, unsigned int* sampleRate, drflac_uint64* totalPCMFrameCount, const drflac_allocation_callbacks* pAllocationCallbacks); -DRFLAC_API void drflac_free(void* p, const drflac_allocation_callbacks* pAllocationCallbacks); +MA_API ma_int32* ma_dr_flac_open_memory_and_read_pcm_frames_s32(const void* data, size_t dataSize, unsigned int* channels, unsigned int* sampleRate, ma_uint64* totalPCMFrameCount, const ma_allocation_callbacks* pAllocationCallbacks); +MA_API ma_int16* ma_dr_flac_open_memory_and_read_pcm_frames_s16(const void* data, size_t dataSize, unsigned int* channels, unsigned int* sampleRate, ma_uint64* totalPCMFrameCount, const ma_allocation_callbacks* pAllocationCallbacks); +MA_API float* ma_dr_flac_open_memory_and_read_pcm_frames_f32(const void* data, size_t dataSize, unsigned int* channels, unsigned int* sampleRate, ma_uint64* totalPCMFrameCount, const ma_allocation_callbacks* pAllocationCallbacks); +MA_API void ma_dr_flac_free(void* p, const ma_allocation_callbacks* pAllocationCallbacks); typedef struct { - drflac_uint32 countRemaining; + ma_uint32 countRemaining; const char* pRunningData; -} drflac_vorbis_comment_iterator; -DRFLAC_API void drflac_init_vorbis_comment_iterator(drflac_vorbis_comment_iterator* pIter, drflac_uint32 commentCount, const void* pComments); -DRFLAC_API const char* drflac_next_vorbis_comment(drflac_vorbis_comment_iterator* pIter, drflac_uint32* pCommentLengthOut); +} ma_dr_flac_vorbis_comment_iterator; +MA_API void ma_dr_flac_init_vorbis_comment_iterator(ma_dr_flac_vorbis_comment_iterator* pIter, ma_uint32 commentCount, const void* pComments); +MA_API const char* ma_dr_flac_next_vorbis_comment(ma_dr_flac_vorbis_comment_iterator* pIter, ma_uint32* pCommentLengthOut); typedef struct { - drflac_uint32 countRemaining; + ma_uint32 countRemaining; const char* pRunningData; -} drflac_cuesheet_track_iterator; -#pragma pack(4) +} ma_dr_flac_cuesheet_track_iterator; typedef struct { - drflac_uint64 offset; - drflac_uint8 index; - drflac_uint8 reserved[3]; -} drflac_cuesheet_track_index; -#pragma pack() + ma_uint64 offset; + ma_uint8 index; + ma_uint8 reserved[3]; +} ma_dr_flac_cuesheet_track_index; typedef struct { - drflac_uint64 offset; - drflac_uint8 trackNumber; + ma_uint64 offset; + ma_uint8 trackNumber; char ISRC[12]; - drflac_bool8 isAudio; - drflac_bool8 preEmphasis; - drflac_uint8 indexCount; - const drflac_cuesheet_track_index* pIndexPoints; -} drflac_cuesheet_track; -DRFLAC_API void drflac_init_cuesheet_track_iterator(drflac_cuesheet_track_iterator* pIter, drflac_uint32 trackCount, const void* pTrackData); -DRFLAC_API drflac_bool32 drflac_next_cuesheet_track(drflac_cuesheet_track_iterator* pIter, drflac_cuesheet_track* pCuesheetTrack); + ma_bool8 isAudio; + ma_bool8 preEmphasis; + ma_uint8 indexCount; + const ma_dr_flac_cuesheet_track_index* pIndexPoints; +} ma_dr_flac_cuesheet_track; +MA_API void ma_dr_flac_init_cuesheet_track_iterator(ma_dr_flac_cuesheet_track_iterator* pIter, ma_uint32 trackCount, const void* pTrackData); +MA_API ma_bool32 ma_dr_flac_next_cuesheet_track(ma_dr_flac_cuesheet_track_iterator* pIter, ma_dr_flac_cuesheet_track* pCuesheetTrack); #ifdef __cplusplus } #endif @@ -58086,250 +60456,109 @@ DRFLAC_API drflac_bool32 drflac_next_cuesheet_track(drflac_cuesheet_track_iterat #if !defined(MA_NO_MP3) && !defined(MA_NO_DECODING) /* dr_mp3_h begin */ -#ifndef dr_mp3_h -#define dr_mp3_h +#ifndef ma_dr_mp3_h +#define ma_dr_mp3_h #ifdef __cplusplus extern "C" { #endif -#define DRMP3_STRINGIFY(x) #x -#define DRMP3_XSTRINGIFY(x) DRMP3_STRINGIFY(x) -#define DRMP3_VERSION_MAJOR 0 -#define DRMP3_VERSION_MINOR 6 -#define DRMP3_VERSION_REVISION 33 -#define DRMP3_VERSION_STRING DRMP3_XSTRINGIFY(DRMP3_VERSION_MAJOR) "." DRMP3_XSTRINGIFY(DRMP3_VERSION_MINOR) "." DRMP3_XSTRINGIFY(DRMP3_VERSION_REVISION) +#define MA_DR_MP3_STRINGIFY(x) #x +#define MA_DR_MP3_XSTRINGIFY(x) MA_DR_MP3_STRINGIFY(x) +#define MA_DR_MP3_VERSION_MAJOR 0 +#define MA_DR_MP3_VERSION_MINOR 6 +#define MA_DR_MP3_VERSION_REVISION 38 +#define MA_DR_MP3_VERSION_STRING MA_DR_MP3_XSTRINGIFY(MA_DR_MP3_VERSION_MAJOR) "." MA_DR_MP3_XSTRINGIFY(MA_DR_MP3_VERSION_MINOR) "." MA_DR_MP3_XSTRINGIFY(MA_DR_MP3_VERSION_REVISION) #include -typedef signed char drmp3_int8; -typedef unsigned char drmp3_uint8; -typedef signed short drmp3_int16; -typedef unsigned short drmp3_uint16; -typedef signed int drmp3_int32; -typedef unsigned int drmp3_uint32; -#if defined(_MSC_VER) && !defined(__clang__) - typedef signed __int64 drmp3_int64; - typedef unsigned __int64 drmp3_uint64; -#else - #if defined(__clang__) || (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))) - #pragma GCC diagnostic push - #pragma GCC diagnostic ignored "-Wlong-long" - #if defined(__clang__) - #pragma GCC diagnostic ignored "-Wc++11-long-long" - #endif - #endif - typedef signed long long drmp3_int64; - typedef unsigned long long drmp3_uint64; - #if defined(__clang__) || (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))) - #pragma GCC diagnostic pop - #endif -#endif -#if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__)) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(_M_ARM64) || defined(__powerpc64__) - typedef drmp3_uint64 drmp3_uintptr; -#else - typedef drmp3_uint32 drmp3_uintptr; -#endif -typedef drmp3_uint8 drmp3_bool8; -typedef drmp3_uint32 drmp3_bool32; -#define DRMP3_TRUE 1 -#define DRMP3_FALSE 0 -#if !defined(DRMP3_API) - #if defined(DRMP3_DLL) - #if defined(_WIN32) - #define DRMP3_DLL_IMPORT __declspec(dllimport) - #define DRMP3_DLL_EXPORT __declspec(dllexport) - #define DRMP3_DLL_PRIVATE static - #else - #if defined(__GNUC__) && __GNUC__ >= 4 - #define DRMP3_DLL_IMPORT __attribute__((visibility("default"))) - #define DRMP3_DLL_EXPORT __attribute__((visibility("default"))) - #define DRMP3_DLL_PRIVATE __attribute__((visibility("hidden"))) - #else - #define DRMP3_DLL_IMPORT - #define DRMP3_DLL_EXPORT - #define DRMP3_DLL_PRIVATE static - #endif - #endif - #if defined(DR_MP3_IMPLEMENTATION) || defined(DRMP3_IMPLEMENTATION) - #define DRMP3_API DRMP3_DLL_EXPORT - #else - #define DRMP3_API DRMP3_DLL_IMPORT - #endif - #define DRMP3_PRIVATE DRMP3_DLL_PRIVATE - #else - #define DRMP3_API extern - #define DRMP3_PRIVATE static - #endif -#endif -typedef drmp3_int32 drmp3_result; -#define DRMP3_SUCCESS 0 -#define DRMP3_ERROR -1 -#define DRMP3_INVALID_ARGS -2 -#define DRMP3_INVALID_OPERATION -3 -#define DRMP3_OUT_OF_MEMORY -4 -#define DRMP3_OUT_OF_RANGE -5 -#define DRMP3_ACCESS_DENIED -6 -#define DRMP3_DOES_NOT_EXIST -7 -#define DRMP3_ALREADY_EXISTS -8 -#define DRMP3_TOO_MANY_OPEN_FILES -9 -#define DRMP3_INVALID_FILE -10 -#define DRMP3_TOO_BIG -11 -#define DRMP3_PATH_TOO_LONG -12 -#define DRMP3_NAME_TOO_LONG -13 -#define DRMP3_NOT_DIRECTORY -14 -#define DRMP3_IS_DIRECTORY -15 -#define DRMP3_DIRECTORY_NOT_EMPTY -16 -#define DRMP3_END_OF_FILE -17 -#define DRMP3_NO_SPACE -18 -#define DRMP3_BUSY -19 -#define DRMP3_IO_ERROR -20 -#define DRMP3_INTERRUPT -21 -#define DRMP3_UNAVAILABLE -22 -#define DRMP3_ALREADY_IN_USE -23 -#define DRMP3_BAD_ADDRESS -24 -#define DRMP3_BAD_SEEK -25 -#define DRMP3_BAD_PIPE -26 -#define DRMP3_DEADLOCK -27 -#define DRMP3_TOO_MANY_LINKS -28 -#define DRMP3_NOT_IMPLEMENTED -29 -#define DRMP3_NO_MESSAGE -30 -#define DRMP3_BAD_MESSAGE -31 -#define DRMP3_NO_DATA_AVAILABLE -32 -#define DRMP3_INVALID_DATA -33 -#define DRMP3_TIMEOUT -34 -#define DRMP3_NO_NETWORK -35 -#define DRMP3_NOT_UNIQUE -36 -#define DRMP3_NOT_SOCKET -37 -#define DRMP3_NO_ADDRESS -38 -#define DRMP3_BAD_PROTOCOL -39 -#define DRMP3_PROTOCOL_UNAVAILABLE -40 -#define DRMP3_PROTOCOL_NOT_SUPPORTED -41 -#define DRMP3_PROTOCOL_FAMILY_NOT_SUPPORTED -42 -#define DRMP3_ADDRESS_FAMILY_NOT_SUPPORTED -43 -#define DRMP3_SOCKET_NOT_SUPPORTED -44 -#define DRMP3_CONNECTION_RESET -45 -#define DRMP3_ALREADY_CONNECTED -46 -#define DRMP3_NOT_CONNECTED -47 -#define DRMP3_CONNECTION_REFUSED -48 -#define DRMP3_NO_HOST -49 -#define DRMP3_IN_PROGRESS -50 -#define DRMP3_CANCELLED -51 -#define DRMP3_MEMORY_ALREADY_MAPPED -52 -#define DRMP3_AT_END -53 -#define DRMP3_MAX_PCM_FRAMES_PER_MP3_FRAME 1152 -#define DRMP3_MAX_SAMPLES_PER_FRAME (DRMP3_MAX_PCM_FRAMES_PER_MP3_FRAME*2) -#ifdef _MSC_VER - #define DRMP3_INLINE __forceinline -#elif defined(__GNUC__) - #if defined(__STRICT_ANSI__) - #define DRMP3_GNUC_INLINE_HINT __inline__ - #else - #define DRMP3_GNUC_INLINE_HINT inline - #endif - #if (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)) || defined(__clang__) - #define DRMP3_INLINE DRMP3_GNUC_INLINE_HINT __attribute__((always_inline)) - #else - #define DRMP3_INLINE DRMP3_GNUC_INLINE_HINT - #endif -#elif defined(__WATCOMC__) - #define DRMP3_INLINE __inline -#else - #define DRMP3_INLINE -#endif -DRMP3_API void drmp3_version(drmp3_uint32* pMajor, drmp3_uint32* pMinor, drmp3_uint32* pRevision); -DRMP3_API const char* drmp3_version_string(void); +#define MA_DR_MP3_MAX_PCM_FRAMES_PER_MP3_FRAME 1152 +#define MA_DR_MP3_MAX_SAMPLES_PER_FRAME (MA_DR_MP3_MAX_PCM_FRAMES_PER_MP3_FRAME*2) +MA_API void ma_dr_mp3_version(ma_uint32* pMajor, ma_uint32* pMinor, ma_uint32* pRevision); +MA_API const char* ma_dr_mp3_version_string(void); typedef struct { int frame_bytes, channels, hz, layer, bitrate_kbps; -} drmp3dec_frame_info; +} ma_dr_mp3dec_frame_info; typedef struct { float mdct_overlap[2][9*32], qmf_state[15*2*32]; int reserv, free_format_bytes; - drmp3_uint8 header[4], reserv_buf[511]; -} drmp3dec; -DRMP3_API void drmp3dec_init(drmp3dec *dec); -DRMP3_API int drmp3dec_decode_frame(drmp3dec *dec, const drmp3_uint8 *mp3, int mp3_bytes, void *pcm, drmp3dec_frame_info *info); -DRMP3_API void drmp3dec_f32_to_s16(const float *in, drmp3_int16 *out, size_t num_samples); + ma_uint8 header[4], reserv_buf[511]; +} ma_dr_mp3dec; +MA_API void ma_dr_mp3dec_init(ma_dr_mp3dec *dec); +MA_API int ma_dr_mp3dec_decode_frame(ma_dr_mp3dec *dec, const ma_uint8 *mp3, int mp3_bytes, void *pcm, ma_dr_mp3dec_frame_info *info); +MA_API void ma_dr_mp3dec_f32_to_s16(const float *in, ma_int16 *out, size_t num_samples); typedef enum { - drmp3_seek_origin_start, - drmp3_seek_origin_current -} drmp3_seek_origin; + ma_dr_mp3_seek_origin_start, + ma_dr_mp3_seek_origin_current +} ma_dr_mp3_seek_origin; typedef struct { - drmp3_uint64 seekPosInBytes; - drmp3_uint64 pcmFrameIndex; - drmp3_uint16 mp3FramesToDiscard; - drmp3_uint16 pcmFramesToDiscard; -} drmp3_seek_point; -typedef size_t (* drmp3_read_proc)(void* pUserData, void* pBufferOut, size_t bytesToRead); -typedef drmp3_bool32 (* drmp3_seek_proc)(void* pUserData, int offset, drmp3_seek_origin origin); + ma_uint64 seekPosInBytes; + ma_uint64 pcmFrameIndex; + ma_uint16 mp3FramesToDiscard; + ma_uint16 pcmFramesToDiscard; +} ma_dr_mp3_seek_point; +typedef size_t (* ma_dr_mp3_read_proc)(void* pUserData, void* pBufferOut, size_t bytesToRead); +typedef ma_bool32 (* ma_dr_mp3_seek_proc)(void* pUserData, int offset, ma_dr_mp3_seek_origin origin); typedef struct { + ma_uint32 channels; + ma_uint32 sampleRate; +} ma_dr_mp3_config; +typedef struct +{ + ma_dr_mp3dec decoder; + ma_uint32 channels; + ma_uint32 sampleRate; + ma_dr_mp3_read_proc onRead; + ma_dr_mp3_seek_proc onSeek; void* pUserData; - void* (* onMalloc)(size_t sz, void* pUserData); - void* (* onRealloc)(void* p, size_t sz, void* pUserData); - void (* onFree)(void* p, void* pUserData); -} drmp3_allocation_callbacks; -typedef struct -{ - drmp3_uint32 channels; - drmp3_uint32 sampleRate; -} drmp3_config; -typedef struct -{ - drmp3dec decoder; - drmp3dec_frame_info frameInfo; - drmp3_uint32 channels; - drmp3_uint32 sampleRate; - drmp3_read_proc onRead; - drmp3_seek_proc onSeek; - void* pUserData; - drmp3_allocation_callbacks allocationCallbacks; - drmp3_uint32 mp3FrameChannels; - drmp3_uint32 mp3FrameSampleRate; - drmp3_uint32 pcmFramesConsumedInMP3Frame; - drmp3_uint32 pcmFramesRemainingInMP3Frame; - drmp3_uint8 pcmFrames[sizeof(float)*DRMP3_MAX_SAMPLES_PER_FRAME]; - drmp3_uint64 currentPCMFrame; - drmp3_uint64 streamCursor; - drmp3_seek_point* pSeekPoints; - drmp3_uint32 seekPointCount; + ma_allocation_callbacks allocationCallbacks; + ma_uint32 mp3FrameChannels; + ma_uint32 mp3FrameSampleRate; + ma_uint32 pcmFramesConsumedInMP3Frame; + ma_uint32 pcmFramesRemainingInMP3Frame; + ma_uint8 pcmFrames[sizeof(float)*MA_DR_MP3_MAX_SAMPLES_PER_FRAME]; + ma_uint64 currentPCMFrame; + ma_uint64 streamCursor; + ma_dr_mp3_seek_point* pSeekPoints; + ma_uint32 seekPointCount; size_t dataSize; size_t dataCapacity; size_t dataConsumed; - drmp3_uint8* pData; - drmp3_bool32 atEnd : 1; + ma_uint8* pData; + ma_bool32 atEnd : 1; struct { - const drmp3_uint8* pData; + const ma_uint8* pData; size_t dataSize; size_t currentReadPos; } memory; -} drmp3; -DRMP3_API drmp3_bool32 drmp3_init(drmp3* pMP3, drmp3_read_proc onRead, drmp3_seek_proc onSeek, void* pUserData, const drmp3_allocation_callbacks* pAllocationCallbacks); -DRMP3_API drmp3_bool32 drmp3_init_memory(drmp3* pMP3, const void* pData, size_t dataSize, const drmp3_allocation_callbacks* pAllocationCallbacks); -#ifndef DR_MP3_NO_STDIO -DRMP3_API drmp3_bool32 drmp3_init_file(drmp3* pMP3, const char* pFilePath, const drmp3_allocation_callbacks* pAllocationCallbacks); -DRMP3_API drmp3_bool32 drmp3_init_file_w(drmp3* pMP3, const wchar_t* pFilePath, const drmp3_allocation_callbacks* pAllocationCallbacks); +} ma_dr_mp3; +MA_API ma_bool32 ma_dr_mp3_init(ma_dr_mp3* pMP3, ma_dr_mp3_read_proc onRead, ma_dr_mp3_seek_proc onSeek, void* pUserData, const ma_allocation_callbacks* pAllocationCallbacks); +MA_API ma_bool32 ma_dr_mp3_init_memory(ma_dr_mp3* pMP3, const void* pData, size_t dataSize, const ma_allocation_callbacks* pAllocationCallbacks); +#ifndef MA_DR_MP3_NO_STDIO +MA_API ma_bool32 ma_dr_mp3_init_file(ma_dr_mp3* pMP3, const char* pFilePath, const ma_allocation_callbacks* pAllocationCallbacks); +MA_API ma_bool32 ma_dr_mp3_init_file_w(ma_dr_mp3* pMP3, const wchar_t* pFilePath, const ma_allocation_callbacks* pAllocationCallbacks); #endif -DRMP3_API void drmp3_uninit(drmp3* pMP3); -DRMP3_API drmp3_uint64 drmp3_read_pcm_frames_f32(drmp3* pMP3, drmp3_uint64 framesToRead, float* pBufferOut); -DRMP3_API drmp3_uint64 drmp3_read_pcm_frames_s16(drmp3* pMP3, drmp3_uint64 framesToRead, drmp3_int16* pBufferOut); -DRMP3_API drmp3_bool32 drmp3_seek_to_pcm_frame(drmp3* pMP3, drmp3_uint64 frameIndex); -DRMP3_API drmp3_uint64 drmp3_get_pcm_frame_count(drmp3* pMP3); -DRMP3_API drmp3_uint64 drmp3_get_mp3_frame_count(drmp3* pMP3); -DRMP3_API drmp3_bool32 drmp3_get_mp3_and_pcm_frame_count(drmp3* pMP3, drmp3_uint64* pMP3FrameCount, drmp3_uint64* pPCMFrameCount); -DRMP3_API drmp3_bool32 drmp3_calculate_seek_points(drmp3* pMP3, drmp3_uint32* pSeekPointCount, drmp3_seek_point* pSeekPoints); -DRMP3_API drmp3_bool32 drmp3_bind_seek_table(drmp3* pMP3, drmp3_uint32 seekPointCount, drmp3_seek_point* pSeekPoints); -DRMP3_API float* drmp3_open_and_read_pcm_frames_f32(drmp3_read_proc onRead, drmp3_seek_proc onSeek, void* pUserData, drmp3_config* pConfig, drmp3_uint64* pTotalFrameCount, const drmp3_allocation_callbacks* pAllocationCallbacks); -DRMP3_API drmp3_int16* drmp3_open_and_read_pcm_frames_s16(drmp3_read_proc onRead, drmp3_seek_proc onSeek, void* pUserData, drmp3_config* pConfig, drmp3_uint64* pTotalFrameCount, const drmp3_allocation_callbacks* pAllocationCallbacks); -DRMP3_API float* drmp3_open_memory_and_read_pcm_frames_f32(const void* pData, size_t dataSize, drmp3_config* pConfig, drmp3_uint64* pTotalFrameCount, const drmp3_allocation_callbacks* pAllocationCallbacks); -DRMP3_API drmp3_int16* drmp3_open_memory_and_read_pcm_frames_s16(const void* pData, size_t dataSize, drmp3_config* pConfig, drmp3_uint64* pTotalFrameCount, const drmp3_allocation_callbacks* pAllocationCallbacks); -#ifndef DR_MP3_NO_STDIO -DRMP3_API float* drmp3_open_file_and_read_pcm_frames_f32(const char* filePath, drmp3_config* pConfig, drmp3_uint64* pTotalFrameCount, const drmp3_allocation_callbacks* pAllocationCallbacks); -DRMP3_API drmp3_int16* drmp3_open_file_and_read_pcm_frames_s16(const char* filePath, drmp3_config* pConfig, drmp3_uint64* pTotalFrameCount, const drmp3_allocation_callbacks* pAllocationCallbacks); +MA_API void ma_dr_mp3_uninit(ma_dr_mp3* pMP3); +MA_API ma_uint64 ma_dr_mp3_read_pcm_frames_f32(ma_dr_mp3* pMP3, ma_uint64 framesToRead, float* pBufferOut); +MA_API ma_uint64 ma_dr_mp3_read_pcm_frames_s16(ma_dr_mp3* pMP3, ma_uint64 framesToRead, ma_int16* pBufferOut); +MA_API ma_bool32 ma_dr_mp3_seek_to_pcm_frame(ma_dr_mp3* pMP3, ma_uint64 frameIndex); +MA_API ma_uint64 ma_dr_mp3_get_pcm_frame_count(ma_dr_mp3* pMP3); +MA_API ma_uint64 ma_dr_mp3_get_mp3_frame_count(ma_dr_mp3* pMP3); +MA_API ma_bool32 ma_dr_mp3_get_mp3_and_pcm_frame_count(ma_dr_mp3* pMP3, ma_uint64* pMP3FrameCount, ma_uint64* pPCMFrameCount); +MA_API ma_bool32 ma_dr_mp3_calculate_seek_points(ma_dr_mp3* pMP3, ma_uint32* pSeekPointCount, ma_dr_mp3_seek_point* pSeekPoints); +MA_API ma_bool32 ma_dr_mp3_bind_seek_table(ma_dr_mp3* pMP3, ma_uint32 seekPointCount, ma_dr_mp3_seek_point* pSeekPoints); +MA_API float* ma_dr_mp3_open_and_read_pcm_frames_f32(ma_dr_mp3_read_proc onRead, ma_dr_mp3_seek_proc onSeek, void* pUserData, ma_dr_mp3_config* pConfig, ma_uint64* pTotalFrameCount, const ma_allocation_callbacks* pAllocationCallbacks); +MA_API ma_int16* ma_dr_mp3_open_and_read_pcm_frames_s16(ma_dr_mp3_read_proc onRead, ma_dr_mp3_seek_proc onSeek, void* pUserData, ma_dr_mp3_config* pConfig, ma_uint64* pTotalFrameCount, const ma_allocation_callbacks* pAllocationCallbacks); +MA_API float* ma_dr_mp3_open_memory_and_read_pcm_frames_f32(const void* pData, size_t dataSize, ma_dr_mp3_config* pConfig, ma_uint64* pTotalFrameCount, const ma_allocation_callbacks* pAllocationCallbacks); +MA_API ma_int16* ma_dr_mp3_open_memory_and_read_pcm_frames_s16(const void* pData, size_t dataSize, ma_dr_mp3_config* pConfig, ma_uint64* pTotalFrameCount, const ma_allocation_callbacks* pAllocationCallbacks); +#ifndef MA_DR_MP3_NO_STDIO +MA_API float* ma_dr_mp3_open_file_and_read_pcm_frames_f32(const char* filePath, ma_dr_mp3_config* pConfig, ma_uint64* pTotalFrameCount, const ma_allocation_callbacks* pAllocationCallbacks); +MA_API ma_int16* ma_dr_mp3_open_file_and_read_pcm_frames_s16(const char* filePath, ma_dr_mp3_config* pConfig, ma_uint64* pTotalFrameCount, const ma_allocation_callbacks* pAllocationCallbacks); #endif -DRMP3_API void* drmp3_malloc(size_t sz, const drmp3_allocation_callbacks* pAllocationCallbacks); -DRMP3_API void drmp3_free(void* p, const drmp3_allocation_callbacks* pAllocationCallbacks); +MA_API void* ma_dr_mp3_malloc(size_t sz, const ma_allocation_callbacks* pAllocationCallbacks); +MA_API void ma_dr_mp3_free(void* p, const ma_allocation_callbacks* pAllocationCallbacks); #ifdef __cplusplus } #endif @@ -58543,7 +60772,7 @@ static ma_result ma_decoder_internal_on_tell__custom(void* pUserData, ma_int64* } -static ma_result ma_decoder_init_from_vtable(const ma_decoding_backend_vtable* pVTable, void* pVTableUserData, const ma_decoder_config* pConfig, ma_decoder* pDecoder) +static ma_result ma_decoder_init_from_vtable__internal(const ma_decoding_backend_vtable* pVTable, void* pVTableUserData, const ma_decoder_config* pConfig, ma_decoder* pDecoder) { ma_result result; ma_decoding_backend_config backendConfig; @@ -58572,6 +60801,93 @@ static ma_result ma_decoder_init_from_vtable(const ma_decoding_backend_vtable* p return MA_SUCCESS; } +static ma_result ma_decoder_init_from_file__internal(const ma_decoding_backend_vtable* pVTable, void* pVTableUserData, const char* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder) +{ + ma_result result; + ma_decoding_backend_config backendConfig; + ma_data_source* pBackend; + + MA_ASSERT(pVTable != NULL); + MA_ASSERT(pConfig != NULL); + MA_ASSERT(pDecoder != NULL); + + if (pVTable->onInitFile == NULL) { + return MA_NOT_IMPLEMENTED; + } + + backendConfig = ma_decoding_backend_config_init(pConfig->format, pConfig->seekPointCount); + + result = pVTable->onInitFile(pVTableUserData, pFilePath, &backendConfig, &pDecoder->allocationCallbacks, &pBackend); + if (result != MA_SUCCESS) { + return result; /* Failed to initialize the backend from this vtable. */ + } + + /* Getting here means we were able to initialize the backend so we can now initialize the decoder. */ + pDecoder->pBackend = pBackend; + pDecoder->pBackendVTable = pVTable; + pDecoder->pBackendUserData = pConfig->pCustomBackendUserData; + + return MA_SUCCESS; +} + +static ma_result ma_decoder_init_from_file_w__internal(const ma_decoding_backend_vtable* pVTable, void* pVTableUserData, const wchar_t* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder) +{ + ma_result result; + ma_decoding_backend_config backendConfig; + ma_data_source* pBackend; + + MA_ASSERT(pVTable != NULL); + MA_ASSERT(pConfig != NULL); + MA_ASSERT(pDecoder != NULL); + + if (pVTable->onInitFileW == NULL) { + return MA_NOT_IMPLEMENTED; + } + + backendConfig = ma_decoding_backend_config_init(pConfig->format, pConfig->seekPointCount); + + result = pVTable->onInitFileW(pVTableUserData, pFilePath, &backendConfig, &pDecoder->allocationCallbacks, &pBackend); + if (result != MA_SUCCESS) { + return result; /* Failed to initialize the backend from this vtable. */ + } + + /* Getting here means we were able to initialize the backend so we can now initialize the decoder. */ + pDecoder->pBackend = pBackend; + pDecoder->pBackendVTable = pVTable; + pDecoder->pBackendUserData = pConfig->pCustomBackendUserData; + + return MA_SUCCESS; +} + +static ma_result ma_decoder_init_from_memory__internal(const ma_decoding_backend_vtable* pVTable, void* pVTableUserData, const void* pData, size_t dataSize, const ma_decoder_config* pConfig, ma_decoder* pDecoder) +{ + ma_result result; + ma_decoding_backend_config backendConfig; + ma_data_source* pBackend; + + MA_ASSERT(pVTable != NULL); + MA_ASSERT(pConfig != NULL); + MA_ASSERT(pDecoder != NULL); + + if (pVTable->onInitMemory == NULL) { + return MA_NOT_IMPLEMENTED; + } + + backendConfig = ma_decoding_backend_config_init(pConfig->format, pConfig->seekPointCount); + + result = pVTable->onInitMemory(pVTableUserData, pData, dataSize, &backendConfig, &pDecoder->allocationCallbacks, &pBackend); + if (result != MA_SUCCESS) { + return result; /* Failed to initialize the backend from this vtable. */ + } + + /* Getting here means we were able to initialize the backend so we can now initialize the decoder. */ + pDecoder->pBackend = pBackend; + pDecoder->pBackendVTable = pVTable; + pDecoder->pBackendUserData = pConfig->pCustomBackendUserData; + + return MA_SUCCESS; +} + static ma_result ma_decoder_init_custom__internal(const ma_decoder_config* pConfig, ma_decoder* pDecoder) @@ -58589,8 +60905,8 @@ static ma_result ma_decoder_init_custom__internal(const ma_decoder_config* pConf /* The order each backend is listed is what defines the priority. */ for (ivtable = 0; ivtable < pConfig->customBackendCount; ivtable += 1) { const ma_decoding_backend_vtable* pVTable = pConfig->ppCustomBackendVTables[ivtable]; - if (pVTable != NULL && pVTable->onInit != NULL) { - result = ma_decoder_init_from_vtable(pVTable, pConfig->pCustomBackendUserData, pConfig, pDecoder); + if (pVTable != NULL) { + result = ma_decoder_init_from_vtable__internal(pVTable, pConfig->pCustomBackendUserData, pConfig, pDecoder); if (result == MA_SUCCESS) { return MA_SUCCESS; } else { @@ -58609,9 +60925,96 @@ static ma_result ma_decoder_init_custom__internal(const ma_decoder_config* pConf return MA_NO_BACKEND; } +static ma_result ma_decoder_init_custom_from_file__internal(const char* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder) +{ + ma_result result = MA_NO_BACKEND; + size_t ivtable; + + MA_ASSERT(pConfig != NULL); + MA_ASSERT(pDecoder != NULL); + + if (pConfig->ppCustomBackendVTables == NULL) { + return MA_NO_BACKEND; + } + + /* The order each backend is listed is what defines the priority. */ + for (ivtable = 0; ivtable < pConfig->customBackendCount; ivtable += 1) { + const ma_decoding_backend_vtable* pVTable = pConfig->ppCustomBackendVTables[ivtable]; + if (pVTable != NULL) { + result = ma_decoder_init_from_file__internal(pVTable, pConfig->pCustomBackendUserData, pFilePath, pConfig, pDecoder); + if (result == MA_SUCCESS) { + return MA_SUCCESS; + } + } else { + /* No vtable. */ + } + } + + /* Getting here means we couldn't find a backend. */ + return MA_NO_BACKEND; +} + +static ma_result ma_decoder_init_custom_from_file_w__internal(const wchar_t* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder) +{ + ma_result result = MA_NO_BACKEND; + size_t ivtable; + + MA_ASSERT(pConfig != NULL); + MA_ASSERT(pDecoder != NULL); + + if (pConfig->ppCustomBackendVTables == NULL) { + return MA_NO_BACKEND; + } + + /* The order each backend is listed is what defines the priority. */ + for (ivtable = 0; ivtable < pConfig->customBackendCount; ivtable += 1) { + const ma_decoding_backend_vtable* pVTable = pConfig->ppCustomBackendVTables[ivtable]; + if (pVTable != NULL) { + result = ma_decoder_init_from_file_w__internal(pVTable, pConfig->pCustomBackendUserData, pFilePath, pConfig, pDecoder); + if (result == MA_SUCCESS) { + return MA_SUCCESS; + } + } else { + /* No vtable. */ + } + } + + /* Getting here means we couldn't find a backend. */ + return MA_NO_BACKEND; +} + +static ma_result ma_decoder_init_custom_from_memory__internal(const void* pData, size_t dataSize, const ma_decoder_config* pConfig, ma_decoder* pDecoder) +{ + ma_result result = MA_NO_BACKEND; + size_t ivtable; + + MA_ASSERT(pConfig != NULL); + MA_ASSERT(pDecoder != NULL); + + if (pConfig->ppCustomBackendVTables == NULL) { + return MA_NO_BACKEND; + } + + /* The order each backend is listed is what defines the priority. */ + for (ivtable = 0; ivtable < pConfig->customBackendCount; ivtable += 1) { + const ma_decoding_backend_vtable* pVTable = pConfig->ppCustomBackendVTables[ivtable]; + if (pVTable != NULL) { + result = ma_decoder_init_from_memory__internal(pVTable, pConfig->pCustomBackendUserData, pData, dataSize, pConfig, pDecoder); + if (result == MA_SUCCESS) { + return MA_SUCCESS; + } + } else { + /* No vtable. */ + } + } + + /* Getting here means we couldn't find a backend. */ + return MA_NO_BACKEND; +} + /* WAV */ -#ifdef dr_wav_h +#ifdef ma_dr_wav_h #define MA_HAS_WAV typedef struct @@ -58623,7 +61026,7 @@ typedef struct void* pReadSeekTellUserData; ma_format format; /* Can be f32, s16 or s32. */ #if !defined(MA_NO_WAV) - drwav dr; + ma_dr_wav dr; #endif } ma_wav; @@ -58677,25 +61080,6 @@ static ma_data_source_vtable g_ma_wav_ds_vtable = #if !defined(MA_NO_WAV) -static drwav_allocation_callbacks drwav_allocation_callbacks_from_miniaudio(const ma_allocation_callbacks* pAllocationCallbacks) -{ - drwav_allocation_callbacks callbacks; - - if (pAllocationCallbacks != NULL) { - callbacks.onMalloc = pAllocationCallbacks->onMalloc; - callbacks.onRealloc = pAllocationCallbacks->onRealloc; - callbacks.onFree = pAllocationCallbacks->onFree; - callbacks.pUserData = pAllocationCallbacks->pUserData; - } else { - callbacks.onMalloc = ma__malloc_default; - callbacks.onRealloc = ma__realloc_default; - callbacks.onFree = ma__free_default; - callbacks.pUserData = NULL; - } - - return callbacks; -} - static size_t ma_wav_dr_callback__read(void* pUserData, void* pBufferOut, size_t bytesToRead) { ma_wav* pWav = (ma_wav*)pUserData; @@ -58710,7 +61094,7 @@ static size_t ma_wav_dr_callback__read(void* pUserData, void* pBufferOut, size_t return bytesRead; } -static drwav_bool32 ma_wav_dr_callback__seek(void* pUserData, int offset, drwav_seek_origin origin) +static ma_bool32 ma_wav_dr_callback__seek(void* pUserData, int offset, ma_dr_wav_seek_origin origin) { ma_wav* pWav = (ma_wav*)pUserData; ma_result result; @@ -58719,7 +61103,7 @@ static drwav_bool32 ma_wav_dr_callback__seek(void* pUserData, int offset, drwav_ MA_ASSERT(pWav != NULL); maSeekOrigin = ma_seek_origin_start; - if (origin == drwav_seek_origin_current) { + if (origin == ma_dr_wav_seek_origin_current) { maSeekOrigin = ma_seek_origin_current; } @@ -58761,6 +61145,47 @@ static ma_result ma_wav_init_internal(const ma_decoding_backend_config* pConfig, return MA_SUCCESS; } +static ma_result ma_wav_post_init(ma_wav* pWav) +{ + /* + If an explicit format was not specified, try picking the closest match based on the internal + format. The format needs to be supported by miniaudio. + */ + if (pWav->format == ma_format_unknown) { + switch (pWav->dr.translatedFormatTag) + { + case MA_DR_WAVE_FORMAT_PCM: + { + if (pWav->dr.bitsPerSample == 8) { + pWav->format = ma_format_u8; + } else if (pWav->dr.bitsPerSample == 16) { + pWav->format = ma_format_s16; + } else if (pWav->dr.bitsPerSample == 24) { + pWav->format = ma_format_s24; + } else if (pWav->dr.bitsPerSample == 32) { + pWav->format = ma_format_s32; + } + } break; + + case MA_DR_WAVE_FORMAT_IEEE_FLOAT: + { + if (pWav->dr.bitsPerSample == 32) { + pWav->format = ma_format_f32; + } + } break; + + default: break; + } + + /* Fall back to f32 if we couldn't find anything. */ + if (pWav->format == ma_format_unknown) { + pWav->format = ma_format_f32; + } + } + + return MA_SUCCESS; +} + MA_API ma_result ma_wav_init(ma_read_proc onRead, ma_seek_proc onSeek, ma_tell_proc onTell, void* pReadSeekTellUserData, const ma_decoding_backend_config* pConfig, const ma_allocation_callbacks* pAllocationCallbacks, ma_wav* pWav) { ma_result result; @@ -58781,49 +61206,14 @@ MA_API ma_result ma_wav_init(ma_read_proc onRead, ma_seek_proc onSeek, ma_tell_p #if !defined(MA_NO_WAV) { - drwav_allocation_callbacks wavAllocationCallbacks = drwav_allocation_callbacks_from_miniaudio(pAllocationCallbacks); - drwav_bool32 wavResult; + ma_bool32 wavResult; - wavResult = drwav_init(&pWav->dr, ma_wav_dr_callback__read, ma_wav_dr_callback__seek, pWav, &wavAllocationCallbacks); + wavResult = ma_dr_wav_init(&pWav->dr, ma_wav_dr_callback__read, ma_wav_dr_callback__seek, pWav, pAllocationCallbacks); if (wavResult != MA_TRUE) { return MA_INVALID_FILE; } - /* - If an explicit format was not specified, try picking the closest match based on the internal - format. The format needs to be supported by miniaudio. - */ - if (pWav->format == ma_format_unknown) { - switch (pWav->dr.translatedFormatTag) - { - case DR_WAVE_FORMAT_PCM: - { - if (pWav->dr.bitsPerSample == 8) { - pWav->format = ma_format_u8; - } else if (pWav->dr.bitsPerSample == 16) { - pWav->format = ma_format_s16; - } else if (pWav->dr.bitsPerSample == 24) { - pWav->format = ma_format_s24; - } else if (pWav->dr.bitsPerSample == 32) { - pWav->format = ma_format_s32; - } - } break; - - case DR_WAVE_FORMAT_IEEE_FLOAT: - { - if (pWav->dr.bitsPerSample == 32) { - pWav->format = ma_format_f32; - } - } break; - - default: break; - } - - /* Fall back to f32 if we couldn't find anything. */ - if (pWav->format == ma_format_unknown) { - pWav->format = ma_format_f32; - } - } + ma_wav_post_init(pWav); return MA_SUCCESS; } @@ -58847,14 +61237,15 @@ MA_API ma_result ma_wav_init_file(const char* pFilePath, const ma_decoding_backe #if !defined(MA_NO_WAV) { - drwav_allocation_callbacks wavAllocationCallbacks = drwav_allocation_callbacks_from_miniaudio(pAllocationCallbacks); - drwav_bool32 wavResult; + ma_bool32 wavResult; - wavResult = drwav_init_file(&pWav->dr, pFilePath, &wavAllocationCallbacks); + wavResult = ma_dr_wav_init_file(&pWav->dr, pFilePath, pAllocationCallbacks); if (wavResult != MA_TRUE) { return MA_INVALID_FILE; } + ma_wav_post_init(pWav); + return MA_SUCCESS; } #else @@ -58878,14 +61269,15 @@ MA_API ma_result ma_wav_init_file_w(const wchar_t* pFilePath, const ma_decoding_ #if !defined(MA_NO_WAV) { - drwav_allocation_callbacks wavAllocationCallbacks = drwav_allocation_callbacks_from_miniaudio(pAllocationCallbacks); - drwav_bool32 wavResult; + ma_bool32 wavResult; - wavResult = drwav_init_file_w(&pWav->dr, pFilePath, &wavAllocationCallbacks); + wavResult = ma_dr_wav_init_file_w(&pWav->dr, pFilePath, pAllocationCallbacks); if (wavResult != MA_TRUE) { return MA_INVALID_FILE; } + ma_wav_post_init(pWav); + return MA_SUCCESS; } #else @@ -58909,14 +61301,15 @@ MA_API ma_result ma_wav_init_memory(const void* pData, size_t dataSize, const ma #if !defined(MA_NO_WAV) { - drwav_allocation_callbacks wavAllocationCallbacks = drwav_allocation_callbacks_from_miniaudio(pAllocationCallbacks); - drwav_bool32 wavResult; + ma_bool32 wavResult; - wavResult = drwav_init_memory(&pWav->dr, pData, dataSize, &wavAllocationCallbacks); + wavResult = ma_dr_wav_init_memory(&pWav->dr, pData, dataSize, pAllocationCallbacks); if (wavResult != MA_TRUE) { return MA_INVALID_FILE; } + ma_wav_post_init(pWav); + return MA_SUCCESS; } #else @@ -58940,7 +61333,7 @@ MA_API void ma_wav_uninit(ma_wav* pWav, const ma_allocation_callbacks* pAllocati #if !defined(MA_NO_WAV) { - drwav_uninit(&pWav->dr); + ma_dr_wav_uninit(&pWav->dr); } #else { @@ -58979,28 +61372,28 @@ MA_API ma_result ma_wav_read_pcm_frames(ma_wav* pWav, void* pFramesOut, ma_uint6 { case ma_format_f32: { - totalFramesRead = drwav_read_pcm_frames_f32(&pWav->dr, frameCount, (float*)pFramesOut); + totalFramesRead = ma_dr_wav_read_pcm_frames_f32(&pWav->dr, frameCount, (float*)pFramesOut); } break; case ma_format_s16: { - totalFramesRead = drwav_read_pcm_frames_s16(&pWav->dr, frameCount, (drwav_int16*)pFramesOut); + totalFramesRead = ma_dr_wav_read_pcm_frames_s16(&pWav->dr, frameCount, (ma_int16*)pFramesOut); } break; case ma_format_s32: { - totalFramesRead = drwav_read_pcm_frames_s32(&pWav->dr, frameCount, (drwav_int32*)pFramesOut); + totalFramesRead = ma_dr_wav_read_pcm_frames_s32(&pWav->dr, frameCount, (ma_int32*)pFramesOut); } break; /* Fallback to a raw read. */ case ma_format_unknown: return MA_INVALID_OPERATION; /* <-- this should never be hit because initialization would just fall back to a supported format. */ default: { - totalFramesRead = drwav_read_pcm_frames(&pWav->dr, frameCount, pFramesOut); + totalFramesRead = ma_dr_wav_read_pcm_frames(&pWav->dr, frameCount, pFramesOut); } break; } - /* In the future we'll update dr_wav to return MA_AT_END for us. */ + /* In the future we'll update ma_dr_wav to return MA_AT_END for us. */ if (totalFramesRead == 0) { result = MA_AT_END; } @@ -59037,10 +61430,10 @@ MA_API ma_result ma_wav_seek_to_pcm_frame(ma_wav* pWav, ma_uint64 frameIndex) #if !defined(MA_NO_WAV) { - drwav_bool32 wavResult; + ma_bool32 wavResult; - wavResult = drwav_seek_to_pcm_frame(&pWav->dr, frameIndex); - if (wavResult != DRWAV_TRUE) { + wavResult = ma_dr_wav_seek_to_pcm_frame(&pWav->dr, frameIndex); + if (wavResult != MA_TRUE) { return MA_ERROR; } @@ -59121,9 +61514,9 @@ MA_API ma_result ma_wav_get_cursor_in_pcm_frames(ma_wav* pWav, ma_uint64* pCurso #if !defined(MA_NO_WAV) { - drwav_result wavResult = drwav_get_cursor_in_pcm_frames(&pWav->dr, pCursor); - if (wavResult != DRWAV_SUCCESS) { - return (ma_result)wavResult; /* dr_wav result codes map to miniaudio's. */ + ma_result wavResult = ma_dr_wav_get_cursor_in_pcm_frames(&pWav->dr, pCursor); + if (wavResult != MA_SUCCESS) { + return (ma_result)wavResult; /* ma_dr_wav result codes map to miniaudio's. */ } return MA_SUCCESS; @@ -59151,9 +61544,9 @@ MA_API ma_result ma_wav_get_length_in_pcm_frames(ma_wav* pWav, ma_uint64* pLengt #if !defined(MA_NO_WAV) { - drwav_result wavResult = drwav_get_length_in_pcm_frames(&pWav->dr, pLength); - if (wavResult != DRWAV_SUCCESS) { - return (ma_result)wavResult; /* dr_wav result codes map to miniaudio's. */ + ma_result wavResult = ma_dr_wav_get_length_in_pcm_frames(&pWav->dr, pLength); + if (wavResult != MA_SUCCESS) { + return (ma_result)wavResult; /* ma_dr_wav result codes map to miniaudio's. */ } return MA_SUCCESS; @@ -59285,12 +61678,27 @@ static ma_decoding_backend_vtable g_ma_decoding_backend_vtable_wav = static ma_result ma_decoder_init_wav__internal(const ma_decoder_config* pConfig, ma_decoder* pDecoder) { - return ma_decoder_init_from_vtable(&g_ma_decoding_backend_vtable_wav, NULL, pConfig, pDecoder); + return ma_decoder_init_from_vtable__internal(&g_ma_decoding_backend_vtable_wav, NULL, pConfig, pDecoder); } -#endif /* dr_wav_h */ + +static ma_result ma_decoder_init_wav_from_file__internal(const char* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder) +{ + return ma_decoder_init_from_file__internal(&g_ma_decoding_backend_vtable_wav, NULL, pFilePath, pConfig, pDecoder); +} + +static ma_result ma_decoder_init_wav_from_file_w__internal(const wchar_t* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder) +{ + return ma_decoder_init_from_file_w__internal(&g_ma_decoding_backend_vtable_wav, NULL, pFilePath, pConfig, pDecoder); +} + +static ma_result ma_decoder_init_wav_from_memory__internal(const void* pData, size_t dataSize, const ma_decoder_config* pConfig, ma_decoder* pDecoder) +{ + return ma_decoder_init_from_memory__internal(&g_ma_decoding_backend_vtable_wav, NULL, pData, dataSize, pConfig, pDecoder); +} +#endif /* ma_dr_wav_h */ /* FLAC */ -#ifdef dr_flac_h +#ifdef ma_dr_flac_h #define MA_HAS_FLAC typedef struct @@ -59302,7 +61710,7 @@ typedef struct void* pReadSeekTellUserData; ma_format format; /* Can be f32, s16 or s32. */ #if !defined(MA_NO_FLAC) - drflac* dr; + ma_dr_flac* dr; #endif } ma_flac; @@ -59356,25 +61764,6 @@ static ma_data_source_vtable g_ma_flac_ds_vtable = #if !defined(MA_NO_FLAC) -static drflac_allocation_callbacks drflac_allocation_callbacks_from_miniaudio(const ma_allocation_callbacks* pAllocationCallbacks) -{ - drflac_allocation_callbacks callbacks; - - if (pAllocationCallbacks != NULL) { - callbacks.onMalloc = pAllocationCallbacks->onMalloc; - callbacks.onRealloc = pAllocationCallbacks->onRealloc; - callbacks.onFree = pAllocationCallbacks->onFree; - callbacks.pUserData = pAllocationCallbacks->pUserData; - } else { - callbacks.onMalloc = ma__malloc_default; - callbacks.onRealloc = ma__realloc_default; - callbacks.onFree = ma__free_default; - callbacks.pUserData = NULL; - } - - return callbacks; -} - static size_t ma_flac_dr_callback__read(void* pUserData, void* pBufferOut, size_t bytesToRead) { ma_flac* pFlac = (ma_flac*)pUserData; @@ -59389,7 +61778,7 @@ static size_t ma_flac_dr_callback__read(void* pUserData, void* pBufferOut, size_ return bytesRead; } -static drflac_bool32 ma_flac_dr_callback__seek(void* pUserData, int offset, drflac_seek_origin origin) +static ma_bool32 ma_flac_dr_callback__seek(void* pUserData, int offset, ma_dr_flac_seek_origin origin) { ma_flac* pFlac = (ma_flac*)pUserData; ma_result result; @@ -59398,7 +61787,7 @@ static drflac_bool32 ma_flac_dr_callback__seek(void* pUserData, int offset, drfl MA_ASSERT(pFlac != NULL); maSeekOrigin = ma_seek_origin_start; - if (origin == drflac_seek_origin_current) { + if (origin == ma_dr_flac_seek_origin_current) { maSeekOrigin = ma_seek_origin_current; } @@ -59460,9 +61849,7 @@ MA_API ma_result ma_flac_init(ma_read_proc onRead, ma_seek_proc onSeek, ma_tell_ #if !defined(MA_NO_FLAC) { - drflac_allocation_callbacks flacAllocationCallbacks = drflac_allocation_callbacks_from_miniaudio(pAllocationCallbacks); - - pFlac->dr = drflac_open(ma_flac_dr_callback__read, ma_flac_dr_callback__seek, pFlac, &flacAllocationCallbacks); + pFlac->dr = ma_dr_flac_open(ma_flac_dr_callback__read, ma_flac_dr_callback__seek, pFlac, pAllocationCallbacks); if (pFlac->dr == NULL) { return MA_INVALID_FILE; } @@ -59489,9 +61876,7 @@ MA_API ma_result ma_flac_init_file(const char* pFilePath, const ma_decoding_back #if !defined(MA_NO_FLAC) { - drflac_allocation_callbacks flacAllocationCallbacks = drflac_allocation_callbacks_from_miniaudio(pAllocationCallbacks); - - pFlac->dr = drflac_open_file(pFilePath, &flacAllocationCallbacks); + pFlac->dr = ma_dr_flac_open_file(pFilePath, pAllocationCallbacks); if (pFlac->dr == NULL) { return MA_INVALID_FILE; } @@ -59519,9 +61904,7 @@ MA_API ma_result ma_flac_init_file_w(const wchar_t* pFilePath, const ma_decoding #if !defined(MA_NO_FLAC) { - drflac_allocation_callbacks flacAllocationCallbacks = drflac_allocation_callbacks_from_miniaudio(pAllocationCallbacks); - - pFlac->dr = drflac_open_file_w(pFilePath, &flacAllocationCallbacks); + pFlac->dr = ma_dr_flac_open_file_w(pFilePath, pAllocationCallbacks); if (pFlac->dr == NULL) { return MA_INVALID_FILE; } @@ -59549,9 +61932,7 @@ MA_API ma_result ma_flac_init_memory(const void* pData, size_t dataSize, const m #if !defined(MA_NO_FLAC) { - drflac_allocation_callbacks flacAllocationCallbacks = drflac_allocation_callbacks_from_miniaudio(pAllocationCallbacks); - - pFlac->dr = drflac_open_memory(pData, dataSize, &flacAllocationCallbacks); + pFlac->dr = ma_dr_flac_open_memory(pData, dataSize, pAllocationCallbacks); if (pFlac->dr == NULL) { return MA_INVALID_FILE; } @@ -59579,7 +61960,7 @@ MA_API void ma_flac_uninit(ma_flac* pFlac, const ma_allocation_callbacks* pAlloc #if !defined(MA_NO_FLAC) { - drflac_close(pFlac->dr); + ma_dr_flac_close(pFlac->dr); } #else { @@ -59618,17 +61999,17 @@ MA_API ma_result ma_flac_read_pcm_frames(ma_flac* pFlac, void* pFramesOut, ma_ui { case ma_format_f32: { - totalFramesRead = drflac_read_pcm_frames_f32(pFlac->dr, frameCount, (float*)pFramesOut); + totalFramesRead = ma_dr_flac_read_pcm_frames_f32(pFlac->dr, frameCount, (float*)pFramesOut); } break; case ma_format_s16: { - totalFramesRead = drflac_read_pcm_frames_s16(pFlac->dr, frameCount, (drflac_int16*)pFramesOut); + totalFramesRead = ma_dr_flac_read_pcm_frames_s16(pFlac->dr, frameCount, (ma_int16*)pFramesOut); } break; case ma_format_s32: { - totalFramesRead = drflac_read_pcm_frames_s32(pFlac->dr, frameCount, (drflac_int32*)pFramesOut); + totalFramesRead = ma_dr_flac_read_pcm_frames_s32(pFlac->dr, frameCount, (ma_int32*)pFramesOut); } break; case ma_format_u8: @@ -59640,7 +62021,7 @@ MA_API ma_result ma_flac_read_pcm_frames(ma_flac* pFlac, void* pFramesOut, ma_ui }; } - /* In the future we'll update dr_flac to return MA_AT_END for us. */ + /* In the future we'll update ma_dr_flac to return MA_AT_END for us. */ if (totalFramesRead == 0) { result = MA_AT_END; } @@ -59677,10 +62058,10 @@ MA_API ma_result ma_flac_seek_to_pcm_frame(ma_flac* pFlac, ma_uint64 frameIndex) #if !defined(MA_NO_FLAC) { - drflac_bool32 flacResult; + ma_bool32 flacResult; - flacResult = drflac_seek_to_pcm_frame(pFlac->dr, frameIndex); - if (flacResult != DRFLAC_TRUE) { + flacResult = ma_dr_flac_seek_to_pcm_frame(pFlac->dr, frameIndex); + if (flacResult != MA_TRUE) { return MA_ERROR; } @@ -59919,12 +62300,27 @@ static ma_decoding_backend_vtable g_ma_decoding_backend_vtable_flac = static ma_result ma_decoder_init_flac__internal(const ma_decoder_config* pConfig, ma_decoder* pDecoder) { - return ma_decoder_init_from_vtable(&g_ma_decoding_backend_vtable_flac, NULL, pConfig, pDecoder); + return ma_decoder_init_from_vtable__internal(&g_ma_decoding_backend_vtable_flac, NULL, pConfig, pDecoder); } -#endif /* dr_flac_h */ + +static ma_result ma_decoder_init_flac_from_file__internal(const char* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder) +{ + return ma_decoder_init_from_file__internal(&g_ma_decoding_backend_vtable_flac, NULL, pFilePath, pConfig, pDecoder); +} + +static ma_result ma_decoder_init_flac_from_file_w__internal(const wchar_t* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder) +{ + return ma_decoder_init_from_file_w__internal(&g_ma_decoding_backend_vtable_flac, NULL, pFilePath, pConfig, pDecoder); +} + +static ma_result ma_decoder_init_flac_from_memory__internal(const void* pData, size_t dataSize, const ma_decoder_config* pConfig, ma_decoder* pDecoder) +{ + return ma_decoder_init_from_memory__internal(&g_ma_decoding_backend_vtable_flac, NULL, pData, dataSize, pConfig, pDecoder); +} +#endif /* ma_dr_flac_h */ /* MP3 */ -#ifdef dr_mp3_h +#ifdef ma_dr_mp3_h #define MA_HAS_MP3 typedef struct @@ -59936,9 +62332,9 @@ typedef struct void* pReadSeekTellUserData; ma_format format; /* Can be f32 or s16. */ #if !defined(MA_NO_MP3) - drmp3 dr; - drmp3_uint32 seekPointCount; - drmp3_seek_point* pSeekPoints; /* Only used if seek table generation is used. */ + ma_dr_mp3 dr; + ma_uint32 seekPointCount; + ma_dr_mp3_seek_point* pSeekPoints; /* Only used if seek table generation is used. */ #endif } ma_mp3; @@ -59992,25 +62388,6 @@ static ma_data_source_vtable g_ma_mp3_ds_vtable = #if !defined(MA_NO_MP3) -static drmp3_allocation_callbacks drmp3_allocation_callbacks_from_miniaudio(const ma_allocation_callbacks* pAllocationCallbacks) -{ - drmp3_allocation_callbacks callbacks; - - if (pAllocationCallbacks != NULL) { - callbacks.onMalloc = pAllocationCallbacks->onMalloc; - callbacks.onRealloc = pAllocationCallbacks->onRealloc; - callbacks.onFree = pAllocationCallbacks->onFree; - callbacks.pUserData = pAllocationCallbacks->pUserData; - } else { - callbacks.onMalloc = ma__malloc_default; - callbacks.onRealloc = ma__realloc_default; - callbacks.onFree = ma__free_default; - callbacks.pUserData = NULL; - } - - return callbacks; -} - static size_t ma_mp3_dr_callback__read(void* pUserData, void* pBufferOut, size_t bytesToRead) { ma_mp3* pMP3 = (ma_mp3*)pUserData; @@ -60025,7 +62402,7 @@ static size_t ma_mp3_dr_callback__read(void* pUserData, void* pBufferOut, size_t return bytesRead; } -static drmp3_bool32 ma_mp3_dr_callback__seek(void* pUserData, int offset, drmp3_seek_origin origin) +static ma_bool32 ma_mp3_dr_callback__seek(void* pUserData, int offset, ma_dr_mp3_seek_origin origin) { ma_mp3* pMP3 = (ma_mp3*)pUserData; ma_result result; @@ -60034,7 +62411,7 @@ static drmp3_bool32 ma_mp3_dr_callback__seek(void* pUserData, int offset, drmp3_ MA_ASSERT(pMP3 != NULL); maSeekOrigin = ma_seek_origin_start; - if (origin == drmp3_seek_origin_current) { + if (origin == ma_dr_mp3_seek_origin_current) { maSeekOrigin = ma_seek_origin_current; } @@ -60078,27 +62455,28 @@ static ma_result ma_mp3_init_internal(const ma_decoding_backend_config* pConfig, static ma_result ma_mp3_generate_seek_table(ma_mp3* pMP3, const ma_decoding_backend_config* pConfig, const ma_allocation_callbacks* pAllocationCallbacks) { - drmp3_bool32 mp3Result; - drmp3_uint32 seekPointCount = 0; - drmp3_seek_point* pSeekPoints = NULL; + ma_bool32 mp3Result; + ma_uint32 seekPointCount = 0; + ma_dr_mp3_seek_point* pSeekPoints = NULL; MA_ASSERT(pMP3 != NULL); MA_ASSERT(pConfig != NULL); seekPointCount = pConfig->seekPointCount; if (seekPointCount > 0) { - pSeekPoints = (drmp3_seek_point*)ma_malloc(sizeof(*pMP3->pSeekPoints) * seekPointCount, pAllocationCallbacks); + pSeekPoints = (ma_dr_mp3_seek_point*)ma_malloc(sizeof(*pMP3->pSeekPoints) * seekPointCount, pAllocationCallbacks); if (pSeekPoints == NULL) { return MA_OUT_OF_MEMORY; } } - mp3Result = drmp3_calculate_seek_points(&pMP3->dr, &seekPointCount, pSeekPoints); + mp3Result = ma_dr_mp3_calculate_seek_points(&pMP3->dr, &seekPointCount, pSeekPoints); if (mp3Result != MA_TRUE) { + ma_free(pSeekPoints, pAllocationCallbacks); return MA_ERROR; } - mp3Result = drmp3_bind_seek_table(&pMP3->dr, seekPointCount, pSeekPoints); + mp3Result = ma_dr_mp3_bind_seek_table(&pMP3->dr, seekPointCount, pSeekPoints); if (mp3Result != MA_TRUE) { ma_free(pSeekPoints, pAllocationCallbacks); return MA_ERROR; @@ -60110,6 +62488,18 @@ static ma_result ma_mp3_generate_seek_table(ma_mp3* pMP3, const ma_decoding_back return MA_SUCCESS; } +static ma_result ma_mp3_post_init(ma_mp3* pMP3, const ma_decoding_backend_config* pConfig, const ma_allocation_callbacks* pAllocationCallbacks) +{ + ma_result result; + + result = ma_mp3_generate_seek_table(pMP3, pConfig, pAllocationCallbacks); + if (result != MA_SUCCESS) { + return result; + } + + return MA_SUCCESS; +} + MA_API ma_result ma_mp3_init(ma_read_proc onRead, ma_seek_proc onSeek, ma_tell_proc onTell, void* pReadSeekTellUserData, const ma_decoding_backend_config* pConfig, const ma_allocation_callbacks* pAllocationCallbacks, ma_mp3* pMP3) { ma_result result; @@ -60130,15 +62520,14 @@ MA_API ma_result ma_mp3_init(ma_read_proc onRead, ma_seek_proc onSeek, ma_tell_p #if !defined(MA_NO_MP3) { - drmp3_allocation_callbacks mp3AllocationCallbacks = drmp3_allocation_callbacks_from_miniaudio(pAllocationCallbacks); - drmp3_bool32 mp3Result; + ma_bool32 mp3Result; - mp3Result = drmp3_init(&pMP3->dr, ma_mp3_dr_callback__read, ma_mp3_dr_callback__seek, pMP3, &mp3AllocationCallbacks); + mp3Result = ma_dr_mp3_init(&pMP3->dr, ma_mp3_dr_callback__read, ma_mp3_dr_callback__seek, pMP3, pAllocationCallbacks); if (mp3Result != MA_TRUE) { return MA_INVALID_FILE; } - ma_mp3_generate_seek_table(pMP3, pConfig, pAllocationCallbacks); + ma_mp3_post_init(pMP3, pConfig, pAllocationCallbacks); return MA_SUCCESS; } @@ -60162,15 +62551,14 @@ MA_API ma_result ma_mp3_init_file(const char* pFilePath, const ma_decoding_backe #if !defined(MA_NO_MP3) { - drmp3_allocation_callbacks mp3AllocationCallbacks = drmp3_allocation_callbacks_from_miniaudio(pAllocationCallbacks); - drmp3_bool32 mp3Result; + ma_bool32 mp3Result; - mp3Result = drmp3_init_file(&pMP3->dr, pFilePath, &mp3AllocationCallbacks); + mp3Result = ma_dr_mp3_init_file(&pMP3->dr, pFilePath, pAllocationCallbacks); if (mp3Result != MA_TRUE) { return MA_INVALID_FILE; } - ma_mp3_generate_seek_table(pMP3, pConfig, pAllocationCallbacks); + ma_mp3_post_init(pMP3, pConfig, pAllocationCallbacks); return MA_SUCCESS; } @@ -60195,15 +62583,14 @@ MA_API ma_result ma_mp3_init_file_w(const wchar_t* pFilePath, const ma_decoding_ #if !defined(MA_NO_MP3) { - drmp3_allocation_callbacks mp3AllocationCallbacks = drmp3_allocation_callbacks_from_miniaudio(pAllocationCallbacks); - drmp3_bool32 mp3Result; + ma_bool32 mp3Result; - mp3Result = drmp3_init_file_w(&pMP3->dr, pFilePath, &mp3AllocationCallbacks); + mp3Result = ma_dr_mp3_init_file_w(&pMP3->dr, pFilePath, pAllocationCallbacks); if (mp3Result != MA_TRUE) { return MA_INVALID_FILE; } - ma_mp3_generate_seek_table(pMP3, pConfig, pAllocationCallbacks); + ma_mp3_post_init(pMP3, pConfig, pAllocationCallbacks); return MA_SUCCESS; } @@ -60228,15 +62615,14 @@ MA_API ma_result ma_mp3_init_memory(const void* pData, size_t dataSize, const ma #if !defined(MA_NO_MP3) { - drmp3_allocation_callbacks mp3AllocationCallbacks = drmp3_allocation_callbacks_from_miniaudio(pAllocationCallbacks); - drmp3_bool32 mp3Result; + ma_bool32 mp3Result; - mp3Result = drmp3_init_memory(&pMP3->dr, pData, dataSize, &mp3AllocationCallbacks); + mp3Result = ma_dr_mp3_init_memory(&pMP3->dr, pData, dataSize, pAllocationCallbacks); if (mp3Result != MA_TRUE) { return MA_INVALID_FILE; } - ma_mp3_generate_seek_table(pMP3, pConfig, pAllocationCallbacks); + ma_mp3_post_init(pMP3, pConfig, pAllocationCallbacks); return MA_SUCCESS; } @@ -60259,7 +62645,7 @@ MA_API void ma_mp3_uninit(ma_mp3* pMP3, const ma_allocation_callbacks* pAllocati #if !defined(MA_NO_MP3) { - drmp3_uninit(&pMP3->dr); + ma_dr_mp3_uninit(&pMP3->dr); } #else { @@ -60301,12 +62687,12 @@ MA_API ma_result ma_mp3_read_pcm_frames(ma_mp3* pMP3, void* pFramesOut, ma_uint6 { case ma_format_f32: { - totalFramesRead = drmp3_read_pcm_frames_f32(&pMP3->dr, frameCount, (float*)pFramesOut); + totalFramesRead = ma_dr_mp3_read_pcm_frames_f32(&pMP3->dr, frameCount, (float*)pFramesOut); } break; case ma_format_s16: { - totalFramesRead = drmp3_read_pcm_frames_s16(&pMP3->dr, frameCount, (drmp3_int16*)pFramesOut); + totalFramesRead = ma_dr_mp3_read_pcm_frames_s16(&pMP3->dr, frameCount, (ma_int16*)pFramesOut); } break; case ma_format_u8: @@ -60319,7 +62705,7 @@ MA_API ma_result ma_mp3_read_pcm_frames(ma_mp3* pMP3, void* pFramesOut, ma_uint6 }; } - /* In the future we'll update dr_mp3 to return MA_AT_END for us. */ + /* In the future we'll update ma_dr_mp3 to return MA_AT_END for us. */ if (totalFramesRead == 0) { result = MA_AT_END; } @@ -60352,10 +62738,10 @@ MA_API ma_result ma_mp3_seek_to_pcm_frame(ma_mp3* pMP3, ma_uint64 frameIndex) #if !defined(MA_NO_MP3) { - drmp3_bool32 mp3Result; + ma_bool32 mp3Result; - mp3Result = drmp3_seek_to_pcm_frame(&pMP3->dr, frameIndex); - if (mp3Result != DRMP3_TRUE) { + mp3Result = ma_dr_mp3_seek_to_pcm_frame(&pMP3->dr, frameIndex); + if (mp3Result != MA_TRUE) { return MA_ERROR; } @@ -60463,7 +62849,7 @@ MA_API ma_result ma_mp3_get_length_in_pcm_frames(ma_mp3* pMP3, ma_uint64* pLengt #if !defined(MA_NO_MP3) { - *pLength = drmp3_get_pcm_frame_count(&pMP3->dr); + *pLength = ma_dr_mp3_get_pcm_frame_count(&pMP3->dr); return MA_SUCCESS; } @@ -60594,9 +62980,24 @@ static ma_decoding_backend_vtable g_ma_decoding_backend_vtable_mp3 = static ma_result ma_decoder_init_mp3__internal(const ma_decoder_config* pConfig, ma_decoder* pDecoder) { - return ma_decoder_init_from_vtable(&g_ma_decoding_backend_vtable_mp3, NULL, pConfig, pDecoder); + return ma_decoder_init_from_vtable__internal(&g_ma_decoding_backend_vtable_mp3, NULL, pConfig, pDecoder); } -#endif /* dr_mp3_h */ + +static ma_result ma_decoder_init_mp3_from_file__internal(const char* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder) +{ + return ma_decoder_init_from_file__internal(&g_ma_decoding_backend_vtable_mp3, NULL, pFilePath, pConfig, pDecoder); +} + +static ma_result ma_decoder_init_mp3_from_file_w__internal(const wchar_t* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder) +{ + return ma_decoder_init_from_file_w__internal(&g_ma_decoding_backend_vtable_mp3, NULL, pFilePath, pConfig, pDecoder); +} + +static ma_result ma_decoder_init_mp3_from_memory__internal(const void* pData, size_t dataSize, const ma_decoder_config* pConfig, ma_decoder* pDecoder) +{ + return ma_decoder_init_from_memory__internal(&g_ma_decoding_backend_vtable_mp3, NULL, pData, dataSize, pConfig, pDecoder); +} +#endif /* ma_dr_mp3_h */ /* Vorbis */ #ifdef STB_VORBIS_INCLUDE_STB_VORBIS_H @@ -60625,6 +63026,7 @@ typedef struct ma_uint8* pData; size_t dataSize; size_t dataCapacity; + size_t audioStartOffsetInBytes; ma_uint32 framesConsumed; /* The number of frames consumed in ppPacketData. */ ma_uint32 framesRemaining; /* The number of frames remaining in ppPacketData. */ float** ppPacketData; @@ -60719,6 +63121,81 @@ static ma_result ma_stbvorbis_post_init(ma_stbvorbis* pVorbis) return MA_SUCCESS; } + +static ma_result ma_stbvorbis_init_internal_decoder_push(ma_stbvorbis* pVorbis) +{ + ma_result result; + stb_vorbis* stb; + size_t dataSize = 0; + size_t dataCapacity = 0; + ma_uint8* pData = NULL; /* <-- Must be initialized to NULL. */ + + for (;;) { + int vorbisError; + int consumedDataSize; /* <-- Fill by stb_vorbis_open_pushdata(). */ + size_t bytesRead; + ma_uint8* pNewData; + + /* Allocate memory for the new chunk. */ + dataCapacity += MA_VORBIS_DATA_CHUNK_SIZE; + pNewData = (ma_uint8*)ma_realloc(pData, dataCapacity, &pVorbis->allocationCallbacks); + if (pNewData == NULL) { + ma_free(pData, &pVorbis->allocationCallbacks); + return MA_OUT_OF_MEMORY; + } + + pData = pNewData; + + /* Read in the next chunk. */ + result = pVorbis->onRead(pVorbis->pReadSeekTellUserData, ma_offset_ptr(pData, dataSize), (dataCapacity - dataSize), &bytesRead); + dataSize += bytesRead; + + if (result != MA_SUCCESS) { + ma_free(pData, &pVorbis->allocationCallbacks); + return result; + } + + /* We have a maximum of 31 bits with stb_vorbis. */ + if (dataSize > INT_MAX) { + ma_free(pData, &pVorbis->allocationCallbacks); + return MA_TOO_BIG; + } + + stb = stb_vorbis_open_pushdata(pData, (int)dataSize, &consumedDataSize, &vorbisError, NULL); + if (stb != NULL) { + /* + Successfully opened the Vorbis decoder. We might have some leftover unprocessed + data so we'll need to move that down to the front. + */ + dataSize -= (size_t)consumedDataSize; /* Consume the data. */ + MA_MOVE_MEMORY(pData, ma_offset_ptr(pData, consumedDataSize), dataSize); + + /* + We need to track the start point so we can seek back to the start of the audio + data when seeking. + */ + pVorbis->push.audioStartOffsetInBytes = consumedDataSize; + + break; + } else { + /* Failed to open the decoder. */ + if (vorbisError == VORBIS_need_more_data) { + continue; + } else { + ma_free(pData, &pVorbis->allocationCallbacks); + return MA_ERROR; /* Failed to open the stb_vorbis decoder. */ + } + } + } + + MA_ASSERT(stb != NULL); + pVorbis->stb = stb; + pVorbis->push.pData = pData; + pVorbis->push.dataSize = dataSize; + pVorbis->push.dataCapacity = dataCapacity; + + return MA_SUCCESS; +} #endif MA_API ma_result ma_stbvorbis_init(ma_read_proc onRead, ma_seek_proc onSeek, ma_tell_proc onTell, void* pReadSeekTellUserData, const ma_decoding_backend_config* pConfig, const ma_allocation_callbacks* pAllocationCallbacks, ma_stbvorbis* pVorbis) @@ -60747,74 +63224,17 @@ MA_API ma_result ma_stbvorbis_init(ma_read_proc onRead, ma_seek_proc onSeek, ma_ pushing API. In order for us to be able to successfully initialize the decoder we need to supply it with enough data. We need to keep loading data until we have enough. */ - stb_vorbis* stb; - size_t dataSize = 0; - size_t dataCapacity = 0; - ma_uint8* pData = NULL; /* <-- Must be initialized to NULL. */ - - for (;;) { - int vorbisError; - int consumedDataSize; /* <-- Fill by stb_vorbis_open_pushdata(). */ - size_t bytesRead; - ma_uint8* pNewData; - - /* Allocate memory for the new chunk. */ - dataCapacity += MA_VORBIS_DATA_CHUNK_SIZE; - pNewData = (ma_uint8*)ma_realloc(pData, dataCapacity, pAllocationCallbacks); - if (pNewData == NULL) { - ma_free(pData, pAllocationCallbacks); - return MA_OUT_OF_MEMORY; - } - - pData = pNewData; - - /* Read in the next chunk. */ - result = pVorbis->onRead(pVorbis->pReadSeekTellUserData, ma_offset_ptr(pData, dataSize), (dataCapacity - dataSize), &bytesRead); - dataSize += bytesRead; - - if (result != MA_SUCCESS) { - ma_free(pData, pAllocationCallbacks); - return result; - } - - /* We have a maximum of 31 bits with stb_vorbis. */ - if (dataSize > INT_MAX) { - ma_free(pData, pAllocationCallbacks); - return MA_TOO_BIG; - } - - stb = stb_vorbis_open_pushdata(pData, (int)dataSize, &consumedDataSize, &vorbisError, NULL); - if (stb != NULL) { - /* - Successfully opened the Vorbis decoder. We might have some leftover unprocessed - data so we'll need to move that down to the front. - */ - dataSize -= (size_t)consumedDataSize; /* Consume the data. */ - MA_MOVE_MEMORY(pData, ma_offset_ptr(pData, consumedDataSize), dataSize); - break; - } else { - /* Failed to open the decoder. */ - if (vorbisError == VORBIS_need_more_data) { - continue; - } else { - ma_free(pData, pAllocationCallbacks); - return MA_ERROR; /* Failed to open the stb_vorbis decoder. */ - } - } + result = ma_stbvorbis_init_internal_decoder_push(pVorbis); + if (result != MA_SUCCESS) { + return result; } - MA_ASSERT(stb != NULL); - pVorbis->stb = stb; - pVorbis->push.pData = pData; - pVorbis->push.dataSize = dataSize; - pVorbis->push.dataCapacity = dataCapacity; - pVorbis->usingPushMode = MA_TRUE; result = ma_stbvorbis_post_init(pVorbis); if (result != MA_SUCCESS) { stb_vorbis_close(pVorbis->stb); - ma_free(pData, pAllocationCallbacks); + ma_free(pVorbis->push.pData, pAllocationCallbacks); return result; } @@ -61116,27 +63536,39 @@ MA_API ma_result ma_stbvorbis_seek_to_pcm_frame(ma_stbvorbis* pVorbis, ma_uint64 ma_result result; float buffer[4096]; - /* - This is terribly inefficient because stb_vorbis does not have a good seeking solution with it's push API. Currently this just performs - a full decode right from the start of the stream. Later on I'll need to write a layer that goes through all of the Ogg pages until we - find the one containing the sample we need. Then we know exactly where to seek for stb_vorbis. + /* If we're seeking backwards, we need to seek back to the start and then brute-force forward. */ + if (frameIndex < pVorbis->cursor) { + if (frameIndex > 0x7FFFFFFF) { + return MA_INVALID_ARGS; /* Trying to seek beyond the 32-bit maximum of stb_vorbis. */ + } - TODO: Use seeking logic documented for stb_vorbis_flush_pushdata(). - */ + /* + This is wildly inefficient due to me having trouble getting sample exact seeking working + robustly with stb_vorbis_flush_pushdata(). The only way I can think to make this work + perfectly is to reinitialize the decoder. Note that we only enter this path when seeking + backwards. This will hopefully be removed once we get our own Vorbis decoder implemented. + */ + stb_vorbis_close(pVorbis->stb); + ma_free(pVorbis->push.pData, &pVorbis->allocationCallbacks); - /* Seek to the start of the file to begin with. */ - result = pVorbis->onSeek(pVorbis->pReadSeekTellUserData, 0, ma_seek_origin_start); - if (result != MA_SUCCESS) { - return result; + MA_ZERO_OBJECT(&pVorbis->push); + + /* Seek to the start of the file. */ + result = pVorbis->onSeek(pVorbis->pReadSeekTellUserData, 0, ma_seek_origin_start); + if (result != MA_SUCCESS) { + return result; + } + + result = ma_stbvorbis_init_internal_decoder_push(pVorbis); + if (result != MA_SUCCESS) { + return result; + } + + /* At this point we should be sitting on the first frame. */ + pVorbis->cursor = 0; } - stb_vorbis_flush_pushdata(pVorbis->stb); - pVorbis->push.framesRemaining = 0; - pVorbis->push.dataSize = 0; - - /* Move the cursor back to the start. We'll increment this in the loop below. */ - pVorbis->cursor = 0; - + /* We're just brute-forcing this for now. */ while (pVorbis->cursor < frameIndex) { ma_uint64 framesRead; ma_uint64 framesToRead = ma_countof(buffer)/pVorbis->channels; @@ -61145,8 +63577,6 @@ MA_API ma_result ma_stbvorbis_seek_to_pcm_frame(ma_stbvorbis* pVorbis, ma_uint64 } result = ma_stbvorbis_read_pcm_frames(pVorbis, buffer, framesToRead, &framesRead); - pVorbis->cursor += framesRead; - if (result != MA_SUCCESS) { return result; } @@ -61382,7 +63812,22 @@ static ma_decoding_backend_vtable g_ma_decoding_backend_vtable_stbvorbis = static ma_result ma_decoder_init_vorbis__internal(const ma_decoder_config* pConfig, ma_decoder* pDecoder) { - return ma_decoder_init_from_vtable(&g_ma_decoding_backend_vtable_stbvorbis, NULL, pConfig, pDecoder); + return ma_decoder_init_from_vtable__internal(&g_ma_decoding_backend_vtable_stbvorbis, NULL, pConfig, pDecoder); +} + +static ma_result ma_decoder_init_vorbis_from_file__internal(const char* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder) +{ + return ma_decoder_init_from_file__internal(&g_ma_decoding_backend_vtable_stbvorbis, NULL, pFilePath, pConfig, pDecoder); +} + +static ma_result ma_decoder_init_vorbis_from_file_w__internal(const wchar_t* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder) +{ + return ma_decoder_init_from_file_w__internal(&g_ma_decoding_backend_vtable_stbvorbis, NULL, pFilePath, pConfig, pDecoder); +} + +static ma_result ma_decoder_init_vorbis_from_memory__internal(const void* pData, size_t dataSize, const ma_decoder_config* pConfig, ma_decoder* pDecoder) +{ + return ma_decoder_init_from_memory__internal(&g_ma_decoding_backend_vtable_stbvorbis, NULL, pData, dataSize, pConfig, pDecoder); } #endif /* STB_VORBIS_INCLUDE_STB_VORBIS_H */ @@ -61449,10 +63894,6 @@ static ma_result ma_decoder__preinit(ma_decoder_read_proc onRead, ma_decoder_see MA_ZERO_OBJECT(pDecoder); - if (onRead == NULL || onSeek == NULL) { - return MA_INVALID_ARGS; - } - dataSourceConfig = ma_data_source_config_init(); dataSourceConfig.vtable = &g_ma_decoder_data_source_vtable; @@ -61696,7 +64137,7 @@ static ma_result ma_decoder__on_tell_memory(ma_decoder* pDecoder, ma_int64* pCur return MA_SUCCESS; } -static ma_result ma_decoder__preinit_memory(const void* pData, size_t dataSize, const ma_decoder_config* pConfig, ma_decoder* pDecoder) +static ma_result ma_decoder__preinit_memory_wrapper(const void* pData, size_t dataSize, const ma_decoder_config* pConfig, ma_decoder* pDecoder) { ma_result result = ma_decoder__preinit(ma_decoder__on_read_memory, ma_decoder__on_seek_memory, ma_decoder__on_tell_memory, NULL, pConfig, pDecoder); if (result != MA_SUCCESS) { @@ -61717,17 +64158,121 @@ static ma_result ma_decoder__preinit_memory(const void* pData, size_t dataSize, MA_API ma_result ma_decoder_init_memory(const void* pData, size_t dataSize, const ma_decoder_config* pConfig, ma_decoder* pDecoder) { - ma_decoder_config config; ma_result result; + ma_decoder_config config; - config = ma_decoder_config_init_copy(pConfig); /* Make sure the config is not NULL. */ + config = ma_decoder_config_init_copy(pConfig); - result = ma_decoder__preinit_memory(pData, dataSize, &config, pDecoder); + result = ma_decoder__preinit(NULL, NULL, NULL, NULL, &config, pDecoder); if (result != MA_SUCCESS) { return result; } - return ma_decoder_init__internal(ma_decoder__on_read_memory, ma_decoder__on_seek_memory, NULL, &config, pDecoder); + if (pData == NULL || dataSize == 0) { + return MA_INVALID_ARGS; + } + + /* If the backend has support for loading from a file path we'll want to use that. If that all fails we'll fall back to the VFS path. */ + result = MA_NO_BACKEND; + + if (config.encodingFormat != ma_encoding_format_unknown) { + #ifdef MA_HAS_WAV + if (config.encodingFormat == ma_encoding_format_wav) { + result = ma_decoder_init_wav_from_memory__internal(pData, dataSize, &config, pDecoder); + } + #endif + #ifdef MA_HAS_FLAC + if (config.encodingFormat == ma_encoding_format_flac) { + result = ma_decoder_init_flac_from_memory__internal(pData, dataSize, &config, pDecoder); + } + #endif + #ifdef MA_HAS_MP3 + if (config.encodingFormat == ma_encoding_format_mp3) { + result = ma_decoder_init_mp3_from_memory__internal(pData, dataSize, &config, pDecoder); + } + #endif + #ifdef MA_HAS_VORBIS + if (config.encodingFormat == ma_encoding_format_vorbis) { + result = ma_decoder_init_vorbis_from_memory__internal(pData, dataSize, &config, pDecoder); + } + #endif + } + + if (result != MA_SUCCESS) { + /* Getting here means we weren't able to initialize a decoder of a specific encoding format. */ + + /* + We use trial and error to open a decoder. We prioritize custom decoders so that if they + implement the same encoding format they take priority over the built-in decoders. + */ + result = ma_decoder_init_custom_from_memory__internal(pData, dataSize, &config, pDecoder); + + /* + If we get to this point and we still haven't found a decoder, and the caller has requested a + specific encoding format, there's no hope for it. Abort. + */ + if (result != MA_SUCCESS && config.encodingFormat != ma_encoding_format_unknown) { + return MA_NO_BACKEND; + } + + /* Use trial and error for stock decoders. */ + if (result != MA_SUCCESS) { + #ifdef MA_HAS_WAV + if (result != MA_SUCCESS) { + result = ma_decoder_init_wav_from_memory__internal(pData, dataSize, &config, pDecoder); + } + #endif + #ifdef MA_HAS_FLAC + if (result != MA_SUCCESS) { + result = ma_decoder_init_flac_from_memory__internal(pData, dataSize, &config, pDecoder); + } + #endif + #ifdef MA_HAS_MP3 + if (result != MA_SUCCESS) { + result = ma_decoder_init_mp3_from_memory__internal(pData, dataSize, &config, pDecoder); + } + #endif + #ifdef MA_HAS_VORBIS + if (result != MA_SUCCESS) { + result = ma_decoder_init_vorbis_from_memory__internal(pData, dataSize, &config, pDecoder); + } + #endif + } + } + + /* + If at this point we still haven't successfully initialized the decoder it most likely means + the backend doesn't have an implementation for loading from a file path. We'll try using + miniaudio's built-in file IO for loading file. + */ + if (result == MA_SUCCESS) { + /* Initialization was successful. Finish up. */ + result = ma_decoder__postinit(&config, pDecoder); + if (result != MA_SUCCESS) { + /* + The backend was initialized successfully, but for some reason post-initialization failed. This is most likely + due to an out of memory error. We're going to abort with an error here and not try to recover. + */ + if (pDecoder->pBackendVTable != NULL && pDecoder->pBackendVTable->onUninit != NULL) { + pDecoder->pBackendVTable->onUninit(pDecoder->pBackendUserData, &pDecoder->pBackend, &pDecoder->allocationCallbacks); + } + + return result; + } + } else { + /* Probably no implementation for loading from a block of memory. Use miniaudio's abstraction instead. */ + result = ma_decoder__preinit_memory_wrapper(pData, dataSize, &config, pDecoder); + if (result != MA_SUCCESS) { + return result; + } + + result = ma_decoder_init__internal(ma_decoder__on_read_memory, ma_decoder__on_seek_memory, NULL, &config, pDecoder); + if (result != MA_SUCCESS) { + return result; + } + } + + return MA_SUCCESS; } @@ -62194,14 +64739,305 @@ MA_API ma_result ma_decoder_init_vfs_w(ma_vfs* pVFS, const wchar_t* pFilePath, c return MA_SUCCESS; } + +static ma_result ma_decoder__preinit_file(const char* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder) +{ + ma_result result; + + result = ma_decoder__preinit(NULL, NULL, NULL, NULL, pConfig, pDecoder); + if (result != MA_SUCCESS) { + return result; + } + + if (pFilePath == NULL || pFilePath[0] == '\0') { + return MA_INVALID_ARGS; + } + + return MA_SUCCESS; +} + MA_API ma_result ma_decoder_init_file(const char* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder) { - return ma_decoder_init_vfs(NULL, pFilePath, pConfig, pDecoder); + ma_result result; + ma_decoder_config config; + + config = ma_decoder_config_init_copy(pConfig); + result = ma_decoder__preinit_file(pFilePath, &config, pDecoder); + if (result != MA_SUCCESS) { + return result; + } + + /* If the backend has support for loading from a file path we'll want to use that. If that all fails we'll fall back to the VFS path. */ + result = MA_NO_BACKEND; + + if (config.encodingFormat != ma_encoding_format_unknown) { + #ifdef MA_HAS_WAV + if (config.encodingFormat == ma_encoding_format_wav) { + result = ma_decoder_init_wav_from_file__internal(pFilePath, &config, pDecoder); + } + #endif + #ifdef MA_HAS_FLAC + if (config.encodingFormat == ma_encoding_format_flac) { + result = ma_decoder_init_flac_from_file__internal(pFilePath, &config, pDecoder); + } + #endif + #ifdef MA_HAS_MP3 + if (config.encodingFormat == ma_encoding_format_mp3) { + result = ma_decoder_init_mp3_from_file__internal(pFilePath, &config, pDecoder); + } + #endif + #ifdef MA_HAS_VORBIS + if (config.encodingFormat == ma_encoding_format_vorbis) { + result = ma_decoder_init_vorbis_from_file__internal(pFilePath, &config, pDecoder); + } + #endif + } + + if (result != MA_SUCCESS) { + /* Getting here means we weren't able to initialize a decoder of a specific encoding format. */ + + /* + We use trial and error to open a decoder. We prioritize custom decoders so that if they + implement the same encoding format they take priority over the built-in decoders. + */ + result = ma_decoder_init_custom_from_file__internal(pFilePath, &config, pDecoder); + + /* + If we get to this point and we still haven't found a decoder, and the caller has requested a + specific encoding format, there's no hope for it. Abort. + */ + if (result != MA_SUCCESS && config.encodingFormat != ma_encoding_format_unknown) { + return MA_NO_BACKEND; + } + + /* First try loading based on the file extension so we don't waste time opening and closing files. */ + #ifdef MA_HAS_WAV + if (result != MA_SUCCESS && ma_path_extension_equal(pFilePath, "wav")) { + result = ma_decoder_init_wav_from_file__internal(pFilePath, &config, pDecoder); + } + #endif + #ifdef MA_HAS_FLAC + if (result != MA_SUCCESS && ma_path_extension_equal(pFilePath, "flac")) { + result = ma_decoder_init_flac_from_file__internal(pFilePath, &config, pDecoder); + } + #endif + #ifdef MA_HAS_MP3 + if (result != MA_SUCCESS && ma_path_extension_equal(pFilePath, "mp3")) { + result = ma_decoder_init_mp3_from_file__internal(pFilePath, &config, pDecoder); + } + #endif + #ifdef MA_HAS_VORBIS + if (result != MA_SUCCESS && ma_path_extension_equal(pFilePath, "ogg")) { + result = ma_decoder_init_vorbis_from_file__internal(pFilePath, &config, pDecoder); + } + #endif + + /* + If we still haven't got a result just use trial and error. Custom decoders have already been attempted, so here we + need only iterate over our stock decoders. + */ + if (result != MA_SUCCESS) { + #ifdef MA_HAS_WAV + if (result != MA_SUCCESS) { + result = ma_decoder_init_wav_from_file__internal(pFilePath, &config, pDecoder); + } + #endif + #ifdef MA_HAS_FLAC + if (result != MA_SUCCESS) { + result = ma_decoder_init_flac_from_file__internal(pFilePath, &config, pDecoder); + } + #endif + #ifdef MA_HAS_MP3 + if (result != MA_SUCCESS) { + result = ma_decoder_init_mp3_from_file__internal(pFilePath, &config, pDecoder); + } + #endif + #ifdef MA_HAS_VORBIS + if (result != MA_SUCCESS) { + result = ma_decoder_init_vorbis_from_file__internal(pFilePath, &config, pDecoder); + } + #endif + } + } + + /* + If at this point we still haven't successfully initialized the decoder it most likely means + the backend doesn't have an implementation for loading from a file path. We'll try using + miniaudio's built-in file IO for loading file. + */ + if (result == MA_SUCCESS) { + /* Initialization was successful. Finish up. */ + result = ma_decoder__postinit(&config, pDecoder); + if (result != MA_SUCCESS) { + /* + The backend was initialized successfully, but for some reason post-initialization failed. This is most likely + due to an out of memory error. We're going to abort with an error here and not try to recover. + */ + if (pDecoder->pBackendVTable != NULL && pDecoder->pBackendVTable->onUninit != NULL) { + pDecoder->pBackendVTable->onUninit(pDecoder->pBackendUserData, &pDecoder->pBackend, &pDecoder->allocationCallbacks); + } + + return result; + } + } else { + /* Probably no implementation for loading from a file path. Use miniaudio's file IO instead. */ + result = ma_decoder_init_vfs(NULL, pFilePath, pConfig, pDecoder); + if (result != MA_SUCCESS) { + return result; + } + } + + return MA_SUCCESS; +} + +static ma_result ma_decoder__preinit_file_w(const wchar_t* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder) +{ + ma_result result; + + result = ma_decoder__preinit(NULL, NULL, NULL, NULL, pConfig, pDecoder); + if (result != MA_SUCCESS) { + return result; + } + + if (pFilePath == NULL || pFilePath[0] == '\0') { + return MA_INVALID_ARGS; + } + + return MA_SUCCESS; } MA_API ma_result ma_decoder_init_file_w(const wchar_t* pFilePath, const ma_decoder_config* pConfig, ma_decoder* pDecoder) { - return ma_decoder_init_vfs_w(NULL, pFilePath, pConfig, pDecoder); + ma_result result; + ma_decoder_config config; + + config = ma_decoder_config_init_copy(pConfig); + result = ma_decoder__preinit_file_w(pFilePath, &config, pDecoder); + if (result != MA_SUCCESS) { + return result; + } + + /* If the backend has support for loading from a file path we'll want to use that. If that all fails we'll fall back to the VFS path. */ + result = MA_NO_BACKEND; + + if (config.encodingFormat != ma_encoding_format_unknown) { + #ifdef MA_HAS_WAV + if (config.encodingFormat == ma_encoding_format_wav) { + result = ma_decoder_init_wav_from_file_w__internal(pFilePath, &config, pDecoder); + } + #endif + #ifdef MA_HAS_FLAC + if (config.encodingFormat == ma_encoding_format_flac) { + result = ma_decoder_init_flac_from_file_w__internal(pFilePath, &config, pDecoder); + } + #endif + #ifdef MA_HAS_MP3 + if (config.encodingFormat == ma_encoding_format_mp3) { + result = ma_decoder_init_mp3_from_file_w__internal(pFilePath, &config, pDecoder); + } + #endif + #ifdef MA_HAS_VORBIS + if (config.encodingFormat == ma_encoding_format_vorbis) { + result = ma_decoder_init_vorbis_from_file_w__internal(pFilePath, &config, pDecoder); + } + #endif + } + + if (result != MA_SUCCESS) { + /* Getting here means we weren't able to initialize a decoder of a specific encoding format. */ + + /* + We use trial and error to open a decoder. We prioritize custom decoders so that if they + implement the same encoding format they take priority over the built-in decoders. + */ + result = ma_decoder_init_custom_from_file_w__internal(pFilePath, &config, pDecoder); + + /* + If we get to this point and we still haven't found a decoder, and the caller has requested a + specific encoding format, there's no hope for it. Abort. + */ + if (result != MA_SUCCESS && config.encodingFormat != ma_encoding_format_unknown) { + return MA_NO_BACKEND; + } + + /* First try loading based on the file extension so we don't waste time opening and closing files. */ + #ifdef MA_HAS_WAV + if (result != MA_SUCCESS && ma_path_extension_equal_w(pFilePath, L"wav")) { + result = ma_decoder_init_wav_from_file_w__internal(pFilePath, &config, pDecoder); + } + #endif + #ifdef MA_HAS_FLAC + if (result != MA_SUCCESS && ma_path_extension_equal_w(pFilePath, L"flac")) { + result = ma_decoder_init_flac_from_file_w__internal(pFilePath, &config, pDecoder); + } + #endif + #ifdef MA_HAS_MP3 + if (result != MA_SUCCESS && ma_path_extension_equal_w(pFilePath, L"mp3")) { + result = ma_decoder_init_mp3_from_file_w__internal(pFilePath, &config, pDecoder); + } + #endif + #ifdef MA_HAS_VORBIS + if (result != MA_SUCCESS && ma_path_extension_equal_w(pFilePath, L"ogg")) { + result = ma_decoder_init_vorbis_from_file_w__internal(pFilePath, &config, pDecoder); + } + #endif + + /* + If we still haven't got a result just use trial and error. Custom decoders have already been attempted, so here we + need only iterate over our stock decoders. + */ + if (result != MA_SUCCESS) { + #ifdef MA_HAS_WAV + if (result != MA_SUCCESS) { + result = ma_decoder_init_wav_from_file_w__internal(pFilePath, &config, pDecoder); + } + #endif + #ifdef MA_HAS_FLAC + if (result != MA_SUCCESS) { + result = ma_decoder_init_flac_from_file_w__internal(pFilePath, &config, pDecoder); + } + #endif + #ifdef MA_HAS_MP3 + if (result != MA_SUCCESS) { + result = ma_decoder_init_mp3_from_file_w__internal(pFilePath, &config, pDecoder); + } + #endif + #ifdef MA_HAS_VORBIS + if (result != MA_SUCCESS) { + result = ma_decoder_init_vorbis_from_file_w__internal(pFilePath, &config, pDecoder); + } + #endif + } + } + + /* + If at this point we still haven't successfully initialized the decoder it most likely means + the backend doesn't have an implementation for loading from a file path. We'll try using + miniaudio's built-in file IO for loading file. + */ + if (result == MA_SUCCESS) { + /* Initialization was successful. Finish up. */ + result = ma_decoder__postinit(&config, pDecoder); + if (result != MA_SUCCESS) { + /* + The backend was initialized successfully, but for some reason post-initialization failed. This is most likely + due to an out of memory error. We're going to abort with an error here and not try to recover. + */ + if (pDecoder->pBackendVTable != NULL && pDecoder->pBackendVTable->onUninit != NULL) { + pDecoder->pBackendVTable->onUninit(pDecoder->pBackendUserData, &pDecoder->pBackend, &pDecoder->allocationCallbacks); + } + + return result; + } + } else { + /* Probably no implementation for loading from a file path. Use miniaudio's file IO instead. */ + result = ma_decoder_init_vfs_w(NULL, pFilePath, pConfig, pDecoder); + if (result != MA_SUCCESS) { + return result; + } + } + + return MA_SUCCESS; } MA_API ma_result ma_decoder_uninit(ma_decoder* pDecoder) @@ -62695,42 +65531,42 @@ static size_t ma_encoder__internal_on_write_wav(void* pUserData, const void* pDa return bytesWritten; } -static drwav_bool32 ma_encoder__internal_on_seek_wav(void* pUserData, int offset, drwav_seek_origin origin) +static ma_bool32 ma_encoder__internal_on_seek_wav(void* pUserData, int offset, ma_dr_wav_seek_origin origin) { ma_encoder* pEncoder = (ma_encoder*)pUserData; ma_result result; MA_ASSERT(pEncoder != NULL); - result = pEncoder->onSeek(pEncoder, offset, (origin == drwav_seek_origin_start) ? ma_seek_origin_start : ma_seek_origin_current); + result = pEncoder->onSeek(pEncoder, offset, (origin == ma_dr_wav_seek_origin_start) ? ma_seek_origin_start : ma_seek_origin_current); if (result != MA_SUCCESS) { - return DRWAV_FALSE; + return MA_FALSE; } else { - return DRWAV_TRUE; + return MA_TRUE; } } static ma_result ma_encoder__on_init_wav(ma_encoder* pEncoder) { - drwav_data_format wavFormat; - drwav_allocation_callbacks allocationCallbacks; - drwav* pWav; + ma_dr_wav_data_format wavFormat; + ma_allocation_callbacks allocationCallbacks; + ma_dr_wav* pWav; MA_ASSERT(pEncoder != NULL); - pWav = (drwav*)ma_malloc(sizeof(*pWav), &pEncoder->config.allocationCallbacks); + pWav = (ma_dr_wav*)ma_malloc(sizeof(*pWav), &pEncoder->config.allocationCallbacks); if (pWav == NULL) { return MA_OUT_OF_MEMORY; } - wavFormat.container = drwav_container_riff; + wavFormat.container = ma_dr_wav_container_riff; wavFormat.channels = pEncoder->config.channels; wavFormat.sampleRate = pEncoder->config.sampleRate; wavFormat.bitsPerSample = ma_get_bytes_per_sample(pEncoder->config.format) * 8; if (pEncoder->config.format == ma_format_f32) { - wavFormat.format = DR_WAVE_FORMAT_IEEE_FLOAT; + wavFormat.format = MA_DR_WAVE_FORMAT_IEEE_FLOAT; } else { - wavFormat.format = DR_WAVE_FORMAT_PCM; + wavFormat.format = MA_DR_WAVE_FORMAT_PCM; } allocationCallbacks.pUserData = pEncoder->config.allocationCallbacks.pUserData; @@ -62738,7 +65574,7 @@ static ma_result ma_encoder__on_init_wav(ma_encoder* pEncoder) allocationCallbacks.onRealloc = pEncoder->config.allocationCallbacks.onRealloc; allocationCallbacks.onFree = pEncoder->config.allocationCallbacks.onFree; - if (!drwav_init_write(pWav, &wavFormat, ma_encoder__internal_on_write_wav, ma_encoder__internal_on_seek_wav, pEncoder, &allocationCallbacks)) { + if (!ma_dr_wav_init_write(pWav, &wavFormat, ma_encoder__internal_on_write_wav, ma_encoder__internal_on_seek_wav, pEncoder, &allocationCallbacks)) { return MA_ERROR; } @@ -62749,28 +65585,28 @@ static ma_result ma_encoder__on_init_wav(ma_encoder* pEncoder) static void ma_encoder__on_uninit_wav(ma_encoder* pEncoder) { - drwav* pWav; + ma_dr_wav* pWav; MA_ASSERT(pEncoder != NULL); - pWav = (drwav*)pEncoder->pInternalEncoder; + pWav = (ma_dr_wav*)pEncoder->pInternalEncoder; MA_ASSERT(pWav != NULL); - drwav_uninit(pWav); + ma_dr_wav_uninit(pWav); ma_free(pWav, &pEncoder->config.allocationCallbacks); } static ma_result ma_encoder__on_write_pcm_frames_wav(ma_encoder* pEncoder, const void* pFramesIn, ma_uint64 frameCount, ma_uint64* pFramesWritten) { - drwav* pWav; + ma_dr_wav* pWav; ma_uint64 framesWritten; MA_ASSERT(pEncoder != NULL); - pWav = (drwav*)pEncoder->pInternalEncoder; + pWav = (ma_dr_wav*)pEncoder->pInternalEncoder; MA_ASSERT(pWav != NULL); - framesWritten = drwav_write_pcm_frames(pWav, frameCount, pFramesIn); + framesWritten = ma_dr_wav_write_pcm_frames(pWav, frameCount, pFramesIn); if (pFramesWritten != NULL) { *pFramesWritten = framesWritten; @@ -63148,12 +65984,12 @@ static ma_int16 ma_waveform_sine_s16(double time, double amplitude) return ma_pcm_sample_f32_to_s16(ma_waveform_sine_f32(time, amplitude)); } -static float ma_waveform_square_f32(double time, double amplitude) +static float ma_waveform_square_f32(double time, double dutyCycle, double amplitude) { double f = time - (ma_int64)time; double r; - if (f < 0.5) { + if (f < dutyCycle) { r = amplitude; } else { r = -amplitude; @@ -63162,9 +65998,9 @@ static float ma_waveform_square_f32(double time, double amplitude) return (float)r; } -static ma_int16 ma_waveform_square_s16(double time, double amplitude) +static ma_int16 ma_waveform_square_s16(double time, double dutyCycle, double amplitude) { - return ma_pcm_sample_f32_to_s16(ma_waveform_square_f32(time, amplitude)); + return ma_pcm_sample_f32_to_s16(ma_waveform_square_f32(time, dutyCycle, amplitude)); } static float ma_waveform_triangle_f32(double time, double amplitude) @@ -63239,7 +66075,7 @@ static void ma_waveform_read_pcm_frames__sine(ma_waveform* pWaveform, void* pFra } } -static void ma_waveform_read_pcm_frames__square(ma_waveform* pWaveform, void* pFramesOut, ma_uint64 frameCount) +static void ma_waveform_read_pcm_frames__square(ma_waveform* pWaveform, double dutyCycle, void* pFramesOut, ma_uint64 frameCount) { ma_uint64 iFrame; ma_uint64 iChannel; @@ -63252,7 +66088,7 @@ static void ma_waveform_read_pcm_frames__square(ma_waveform* pWaveform, void* pF if (pWaveform->config.format == ma_format_f32) { float* pFramesOutF32 = (float*)pFramesOut; for (iFrame = 0; iFrame < frameCount; iFrame += 1) { - float s = ma_waveform_square_f32(pWaveform->time, pWaveform->config.amplitude); + float s = ma_waveform_square_f32(pWaveform->time, dutyCycle, pWaveform->config.amplitude); pWaveform->time += pWaveform->advance; for (iChannel = 0; iChannel < pWaveform->config.channels; iChannel += 1) { @@ -63262,7 +66098,7 @@ static void ma_waveform_read_pcm_frames__square(ma_waveform* pWaveform, void* pF } else if (pWaveform->config.format == ma_format_s16) { ma_int16* pFramesOutS16 = (ma_int16*)pFramesOut; for (iFrame = 0; iFrame < frameCount; iFrame += 1) { - ma_int16 s = ma_waveform_square_s16(pWaveform->time, pWaveform->config.amplitude); + ma_int16 s = ma_waveform_square_s16(pWaveform->time, dutyCycle, pWaveform->config.amplitude); pWaveform->time += pWaveform->advance; for (iChannel = 0; iChannel < pWaveform->config.channels; iChannel += 1) { @@ -63271,7 +66107,7 @@ static void ma_waveform_read_pcm_frames__square(ma_waveform* pWaveform, void* pF } } else { for (iFrame = 0; iFrame < frameCount; iFrame += 1) { - float s = ma_waveform_square_f32(pWaveform->time, pWaveform->config.amplitude); + float s = ma_waveform_square_f32(pWaveform->time, dutyCycle, pWaveform->config.amplitude); pWaveform->time += pWaveform->advance; for (iChannel = 0; iChannel < pWaveform->config.channels; iChannel += 1) { @@ -63389,7 +66225,7 @@ MA_API ma_result ma_waveform_read_pcm_frames(ma_waveform* pWaveform, void* pFram case ma_waveform_type_square: { - ma_waveform_read_pcm_frames__square(pWaveform, pFramesOut, frameCount); + ma_waveform_read_pcm_frames__square(pWaveform, 0.5, pFramesOut, frameCount); } break; case ma_waveform_type_triangle: @@ -63426,6 +66262,142 @@ MA_API ma_result ma_waveform_seek_to_pcm_frame(ma_waveform* pWaveform, ma_uint64 return MA_SUCCESS; } +MA_API ma_pulsewave_config ma_pulsewave_config_init(ma_format format, ma_uint32 channels, ma_uint32 sampleRate, double dutyCycle, double amplitude, double frequency) +{ + ma_pulsewave_config config; + + MA_ZERO_OBJECT(&config); + config.format = format; + config.channels = channels; + config.sampleRate = sampleRate; + config.dutyCycle = dutyCycle; + config.amplitude = amplitude; + config.frequency = frequency; + + return config; +} + +MA_API ma_result ma_pulsewave_init(const ma_pulsewave_config* pConfig, ma_pulsewave* pWaveform) +{ + ma_result result; + ma_waveform_config config; + + if (pWaveform == NULL) { + return MA_INVALID_ARGS; + } + + MA_ZERO_OBJECT(pWaveform); + + config = ma_waveform_config_init( + pConfig->format, + pConfig->channels, + pConfig->sampleRate, + ma_waveform_type_square, + pConfig->amplitude, + pConfig->frequency + ); + + result = ma_waveform_init(&config, &pWaveform->waveform); + ma_pulsewave_set_duty_cycle(pWaveform, pConfig->dutyCycle); + + return result; +} + +MA_API void ma_pulsewave_uninit(ma_pulsewave* pWaveform) +{ + if (pWaveform == NULL) { + return; + } + + ma_waveform_uninit(&pWaveform->waveform); +} + +MA_API ma_result ma_pulsewave_read_pcm_frames(ma_pulsewave* pWaveform, void* pFramesOut, ma_uint64 frameCount, ma_uint64* pFramesRead) +{ + if (pFramesRead != NULL) { + *pFramesRead = 0; + } + + if (frameCount == 0) { + return MA_INVALID_ARGS; + } + + if (pWaveform == NULL) { + return MA_INVALID_ARGS; + } + + if (pFramesOut != NULL) { + ma_waveform_read_pcm_frames__square(&pWaveform->waveform, pWaveform->config.dutyCycle, pFramesOut, frameCount); + } else { + pWaveform->waveform.time += pWaveform->waveform.advance * (ma_int64)frameCount; /* Cast to int64 required for VC6. Won't affect anything in practice. */ + } + + if (pFramesRead != NULL) { + *pFramesRead = frameCount; + } + + return MA_SUCCESS; +} + +MA_API ma_result ma_pulsewave_seek_to_pcm_frame(ma_pulsewave* pWaveform, ma_uint64 frameIndex) +{ + if (pWaveform == NULL) { + return MA_INVALID_ARGS; + } + + ma_waveform_seek_to_pcm_frame(&pWaveform->waveform, frameIndex); + + return MA_SUCCESS; +} + +MA_API ma_result ma_pulsewave_set_amplitude(ma_pulsewave* pWaveform, double amplitude) +{ + if (pWaveform == NULL) { + return MA_INVALID_ARGS; + } + + pWaveform->config.amplitude = amplitude; + ma_waveform_set_amplitude(&pWaveform->waveform, amplitude); + + return MA_SUCCESS; +} + +MA_API ma_result ma_pulsewave_set_frequency(ma_pulsewave* pWaveform, double frequency) +{ + if (pWaveform == NULL) { + return MA_INVALID_ARGS; + } + + pWaveform->config.frequency = frequency; + ma_waveform_set_frequency(&pWaveform->waveform, frequency); + + return MA_SUCCESS; +} + +MA_API ma_result ma_pulsewave_set_sample_rate(ma_pulsewave* pWaveform, ma_uint32 sampleRate) +{ + if (pWaveform == NULL) { + return MA_INVALID_ARGS; + } + + pWaveform->config.sampleRate = sampleRate; + ma_waveform_set_sample_rate(&pWaveform->waveform, sampleRate); + + return MA_SUCCESS; +} + +MA_API ma_result ma_pulsewave_set_duty_cycle(ma_pulsewave* pWaveform, double dutyCycle) +{ + if (pWaveform == NULL) { + return MA_INVALID_ARGS; + } + + pWaveform->config.dutyCycle = dutyCycle; + + return MA_SUCCESS; +} + + MA_API ma_noise_config ma_noise_config_init(ma_format format, ma_uint32 channels, ma_noise_type type, ma_int32 seed, double amplitude) { @@ -63693,8 +66665,15 @@ MA_API ma_result ma_noise_set_type(ma_noise* pNoise, ma_noise_type type) return MA_INVALID_ARGS; } - pNoise->config.type = type; - return MA_SUCCESS; + /* + This function should never have been implemented in the first place. Changing the type dynamically is not + supported. Instead you need to uninitialize and reinitiailize a fresh `ma_noise` object. This function + will be removed in version 0.12. + */ + MA_ASSERT(MA_FALSE); + (void)type; + + return MA_INVALID_OPERATION; } static MA_INLINE float ma_noise_f32_white(ma_noise* pNoise) @@ -64078,10 +67057,15 @@ static MA_INLINE ma_uint32 ma_rotl32(ma_uint32 x, ma_int8 r) static MA_INLINE ma_uint32 ma_hash_getblock(const ma_uint32* blocks, int i) { + ma_uint32 block; + + /* Try silencing a sanitization warning about unaligned access by doing a memcpy() instead of assignment. */ + MA_COPY_MEMORY(&block, ma_offset_ptr(blocks, i * sizeof(block)), sizeof(block)); + if (ma_is_little_endian()) { - return blocks[i]; + return block; } else { - return ma_swap_endian_uint32(blocks[i]); + return ma_swap_endian_uint32(block); } } @@ -64450,12 +67434,12 @@ static ma_result ma_resource_manager_data_buffer_node_remove_by_key(ma_resource_ static ma_resource_manager_data_supply_type ma_resource_manager_data_buffer_node_get_data_supply_type(ma_resource_manager_data_buffer_node* pDataBufferNode) { - return (ma_resource_manager_data_supply_type)c89atomic_load_i32(&pDataBufferNode->data.type); + return (ma_resource_manager_data_supply_type)ma_atomic_load_i32(&pDataBufferNode->data.type); } static void ma_resource_manager_data_buffer_node_set_data_supply_type(ma_resource_manager_data_buffer_node* pDataBufferNode, ma_resource_manager_data_supply_type supplyType) { - c89atomic_exchange_i32(&pDataBufferNode->data.type, supplyType); + ma_atomic_exchange_i32(&pDataBufferNode->data.type, supplyType); } static ma_result ma_resource_manager_data_buffer_node_increment_ref(ma_resource_manager* pResourceManager, ma_resource_manager_data_buffer_node* pDataBufferNode, ma_uint32* pNewRefCount) @@ -64467,7 +67451,7 @@ static ma_result ma_resource_manager_data_buffer_node_increment_ref(ma_resource_ (void)pResourceManager; - refCount = c89atomic_fetch_add_32(&pDataBufferNode->refCount, 1) + 1; + refCount = ma_atomic_fetch_add_32(&pDataBufferNode->refCount, 1) + 1; if (pNewRefCount != NULL) { *pNewRefCount = refCount; @@ -64485,7 +67469,7 @@ static ma_result ma_resource_manager_data_buffer_node_decrement_ref(ma_resource_ (void)pResourceManager; - refCount = c89atomic_fetch_sub_32(&pDataBufferNode->refCount, 1) - 1; + refCount = ma_atomic_fetch_sub_32(&pDataBufferNode->refCount, 1) - 1; if (pNewRefCount != NULL) { *pNewRefCount = refCount; @@ -64524,7 +67508,7 @@ static ma_result ma_resource_manager_data_buffer_node_result(const ma_resource_m { MA_ASSERT(pDataBufferNode != NULL); - return (ma_result)c89atomic_load_i32((ma_result*)&pDataBufferNode->result); /* Need a naughty const-cast here. */ + return (ma_result)ma_atomic_load_i32((ma_result*)&pDataBufferNode->result); /* Need a naughty const-cast here. */ } @@ -64796,7 +67780,7 @@ MA_API ma_result ma_resource_manager_init(const ma_resource_manager_config* pCon /* Create the job threads last to ensure the threads has access to valid data. */ for (iJobThread = 0; iJobThread < pResourceManager->config.jobThreadCount; iJobThread += 1) { - result = ma_thread_create(&pResourceManager->jobThreads[iJobThread], ma_thread_priority_normal, 0, ma_resource_manager_job_thread, pResourceManager, &pResourceManager->config.allocationCallbacks); + result = ma_thread_create(&pResourceManager->jobThreads[iJobThread], ma_thread_priority_normal, pResourceManager->config.jobThreadStackSize, ma_resource_manager_job_thread, pResourceManager, &pResourceManager->config.allocationCallbacks); if (result != MA_SUCCESS) { ma_mutex_uninit(&pResourceManager->dataBufferBSTLock); ma_job_queue_uninit(&pResourceManager->jobQueue, &pResourceManager->config.allocationCallbacks); @@ -64901,8 +67885,11 @@ MA_API ma_resource_manager_data_source_config ma_resource_manager_data_source_co ma_resource_manager_data_source_config config; MA_ZERO_OBJECT(&config); - config.rangeEndInPCMFrames = ~((ma_uint64)0); - config.loopPointEndInPCMFrames = ~((ma_uint64)0); + config.rangeBegInPCMFrames = MA_DATA_SOURCE_DEFAULT_RANGE_BEG; + config.rangeEndInPCMFrames = MA_DATA_SOURCE_DEFAULT_RANGE_END; + config.loopPointBegInPCMFrames = MA_DATA_SOURCE_DEFAULT_LOOP_POINT_BEG; + config.loopPointEndInPCMFrames = MA_DATA_SOURCE_DEFAULT_LOOP_POINT_END; + config.isLooping = MA_FALSE; return config; } @@ -64951,8 +67938,17 @@ static ma_result ma_resource_manager__init_decoder(ma_resource_manager* pResourc return MA_SUCCESS; } +static ma_bool32 ma_resource_manager_data_buffer_has_connector(ma_resource_manager_data_buffer* pDataBuffer) +{ + return ma_atomic_bool32_get(&pDataBuffer->isConnectorInitialized); +} + static ma_data_source* ma_resource_manager_data_buffer_get_connector(ma_resource_manager_data_buffer* pDataBuffer) { + if (ma_resource_manager_data_buffer_has_connector(pDataBuffer) == MA_FALSE) { + return NULL; /* Connector not yet initialized. */ + } + switch (pDataBuffer->pNode->data.type) { case ma_resource_manager_data_supply_type_encoded: return &pDataBuffer->connector.decoder; @@ -64974,7 +67970,7 @@ static ma_result ma_resource_manager_data_buffer_init_connector(ma_resource_mana MA_ASSERT(pDataBuffer != NULL); MA_ASSERT(pConfig != NULL); - MA_ASSERT(pDataBuffer->isConnectorInitialized == MA_FALSE); + MA_ASSERT(ma_resource_manager_data_buffer_has_connector(pDataBuffer) == MA_FALSE); /* The underlying data buffer must be initialized before we'll be able to know how to initialize the backend. */ result = ma_resource_manager_data_buffer_node_result(pDataBuffer->pNode); @@ -65024,14 +68020,30 @@ static ma_result ma_resource_manager_data_buffer_init_connector(ma_resource_mana */ if (result == MA_SUCCESS) { /* - Make sure the looping state is set before returning in order to handle the case where the - loop state was set on the data buffer before the connector was initialized. - */ - ma_data_source_set_range_in_pcm_frames(pDataBuffer, pConfig->rangeBegInPCMFrames, pConfig->rangeEndInPCMFrames); - ma_data_source_set_loop_point_in_pcm_frames(pDataBuffer, pConfig->loopPointBegInPCMFrames, pConfig->loopPointEndInPCMFrames); - ma_data_source_set_looping(pDataBuffer, pConfig->isLooping); + The resource manager supports the ability to set the range and loop settings via a config at + initialization time. This results in an case where the ranges could be set explicitly via + ma_data_source_set_*() before we get to this point here. If this happens, we'll end up + hitting a case where we just override those settings which results in what feels like a bug. - pDataBuffer->isConnectorInitialized = MA_TRUE; + To address this we only change the relevant properties if they're not equal to defaults. If + they're equal to defaults there's no need to change them anyway. If they're *not* set to the + default values, we can assume the user has set the range and loop settings via the config. If + they're doing their own calls to ma_data_source_set_*() in addition to setting them via the + config, that's entirely on the caller and any synchronization issue becomes their problem. + */ + if (pConfig->rangeBegInPCMFrames != MA_DATA_SOURCE_DEFAULT_RANGE_BEG || pConfig->rangeEndInPCMFrames != MA_DATA_SOURCE_DEFAULT_RANGE_END) { + ma_data_source_set_range_in_pcm_frames(pDataBuffer, pConfig->rangeBegInPCMFrames, pConfig->rangeEndInPCMFrames); + } + + if (pConfig->loopPointBegInPCMFrames != MA_DATA_SOURCE_DEFAULT_LOOP_POINT_BEG || pConfig->loopPointEndInPCMFrames != MA_DATA_SOURCE_DEFAULT_LOOP_POINT_END) { + ma_data_source_set_loop_point_in_pcm_frames(pDataBuffer, pConfig->loopPointBegInPCMFrames, pConfig->loopPointEndInPCMFrames); + } + + if (pConfig->isLooping != MA_FALSE) { + ma_data_source_set_looping(pDataBuffer, pConfig->isLooping); + } + + ma_atomic_bool32_set(&pDataBuffer->isConnectorInitialized, MA_TRUE); if (pInitNotification != NULL) { ma_async_notification_signal(pInitNotification); @@ -65051,6 +68063,8 @@ static ma_result ma_resource_manager_data_buffer_uninit_connector(ma_resource_ma MA_ASSERT(pResourceManager != NULL); MA_ASSERT(pDataBuffer != NULL); + (void)pResourceManager; + switch (ma_resource_manager_data_buffer_node_get_data_supply_type(pDataBuffer->pNode)) { case ma_resource_manager_data_supply_type_encoded: /* Connector is a decoder. */ @@ -65082,7 +68096,7 @@ static ma_result ma_resource_manager_data_buffer_uninit_connector(ma_resource_ma static ma_uint32 ma_resource_manager_data_buffer_node_next_execution_order(ma_resource_manager_data_buffer_node* pDataBufferNode) { MA_ASSERT(pDataBufferNode != NULL); - return c89atomic_fetch_add_32(&pDataBufferNode->executionCounter, 1); + return ma_atomic_fetch_add_32(&pDataBufferNode->executionCounter, 1); } static ma_result ma_resource_manager_data_buffer_node_init_supply_encoded(ma_resource_manager* pResourceManager, ma_resource_manager_data_buffer_node* pDataBufferNode, const char* pFilePath, const wchar_t* pFilePathW) @@ -65399,7 +68413,12 @@ static ma_result ma_resource_manager_data_buffer_node_acquire_critical_section(m job.data.resourceManager.loadDataBufferNode.pInitFence = pInitFence; job.data.resourceManager.loadDataBufferNode.pDoneFence = pDoneFence; - result = ma_resource_manager_post_job(pResourceManager, &job); + if ((flags & MA_RESOURCE_MANAGER_DATA_SOURCE_FLAG_WAIT_INIT) != 0) { + result = ma_job_process(&job); + } else { + result = ma_resource_manager_post_job(pResourceManager, &job); + } + if (result != MA_SUCCESS) { /* Failed to post job. Probably ran out of memory. */ ma_log_postf(ma_resource_manager_get_log(pResourceManager), MA_LOG_LEVEL_ERROR, "Failed to post MA_JOB_TYPE_RESOURCE_MANAGER_LOAD_DATA_BUFFER_NODE job. %s.\n", ma_result_description(result)); @@ -65412,12 +68431,13 @@ static ma_result ma_resource_manager_data_buffer_node_acquire_critical_section(m if (pDoneFence != NULL) { ma_fence_release(pDoneFence); } if ((flags & MA_RESOURCE_MANAGER_DATA_SOURCE_FLAG_WAIT_INIT) != 0) { - ma_resource_manager_inline_notification_init(pResourceManager, pInitNotification); + ma_resource_manager_inline_notification_uninit(pInitNotification); + } else { + /* These will have been freed by the job thread, but with WAIT_INIT they will already have happend sinced the job has already been handled. */ + ma_free(pFilePathCopy, &pResourceManager->config.allocationCallbacks); + ma_free(pFilePathWCopy, &pResourceManager->config.allocationCallbacks); } - ma_free(pFilePathCopy, &pResourceManager->config.allocationCallbacks); - ma_free(pFilePathWCopy, &pResourceManager->config.allocationCallbacks); - ma_resource_manager_data_buffer_node_remove(pResourceManager, pDataBufferNode); ma_free(pDataBufferNode, &pResourceManager->config.allocationCallbacks); @@ -65547,7 +68567,7 @@ static ma_result ma_resource_manager_data_buffer_node_acquire(ma_resource_manage } /* Getting here means we were successful. Make sure the status of the node is updated accordingly. */ - c89atomic_exchange_i32(&pDataBufferNode->result, result); + ma_atomic_exchange_i32(&pDataBufferNode->result, result); } else { /* Loading asynchronously. We may need to wait for initialization. */ if ((flags & MA_RESOURCE_MANAGER_DATA_SOURCE_FLAG_WAIT_INIT) != 0) { @@ -65652,7 +68672,7 @@ stage2: ma_job job; /* We need to mark the node as unavailable for the sake of the resource manager worker threads. */ - c89atomic_exchange_i32(&pDataBufferNode->result, MA_UNAVAILABLE); + ma_atomic_exchange_i32(&pDataBufferNode->result, MA_UNAVAILABLE); job = ma_job_init(MA_JOB_TYPE_RESOURCE_MANAGER_FREE_DATA_BUFFER_NODE); job.order = ma_resource_manager_data_buffer_node_next_execution_order(pDataBufferNode); @@ -65691,7 +68711,7 @@ stage2: static ma_uint32 ma_resource_manager_data_buffer_next_execution_order(ma_resource_manager_data_buffer* pDataBuffer) { MA_ASSERT(pDataBuffer != NULL); - return c89atomic_fetch_add_32(&pDataBuffer->executionCounter, 1); + return ma_atomic_fetch_add_32(&pDataBuffer->executionCounter, 1); } static ma_result ma_resource_manager_data_buffer_cb__read_pcm_frames(ma_data_source* pDataSource, void* pFramesOut, ma_uint64 frameCount, ma_uint64* pFramesRead) @@ -65724,7 +68744,7 @@ static ma_result ma_resource_manager_data_buffer_cb__set_looping(ma_data_source* ma_resource_manager_data_buffer* pDataBuffer = (ma_resource_manager_data_buffer*)pDataSource; MA_ASSERT(pDataBuffer != NULL); - c89atomic_exchange_32(&pDataBuffer->isLooping, isLooping); + ma_atomic_exchange_32(&pDataBuffer->isLooping, isLooping); /* The looping state needs to be set on the connector as well or else looping won't work when we read audio data. */ ma_data_source_set_looping(ma_resource_manager_data_buffer_get_connector(pDataBuffer), isLooping); @@ -65781,7 +68801,7 @@ static ma_result ma_resource_manager_data_buffer_init_ex_internal(ma_resource_ma async = (flags & MA_RESOURCE_MANAGER_DATA_SOURCE_FLAG_ASYNC) != 0; /* - Fences need to be acquired before doing anything. These must be aquired and released outside of + Fences need to be acquired before doing anything. These must be acquired and released outside of the node to ensure there's no holes where ma_fence_wait() could prematurely return before the data buffer has completed initialization. @@ -65820,7 +68840,7 @@ static ma_result ma_resource_manager_data_buffer_init_ex_internal(ma_resource_ma if (async == MA_FALSE || ma_resource_manager_data_buffer_node_result(pDataBufferNode) == MA_SUCCESS) { /* Loading synchronously or the data has already been fully loaded. We can just initialize the connector from here without a job. */ result = ma_resource_manager_data_buffer_init_connector(pDataBuffer, pConfig, NULL, NULL); - c89atomic_exchange_i32(&pDataBuffer->result, result); + ma_atomic_exchange_i32(&pDataBuffer->result, result); ma_resource_manager_pipeline_notifications_signal_all_notifications(¬ifications); goto done; @@ -65838,7 +68858,7 @@ static ma_result ma_resource_manager_data_buffer_init_ex_internal(ma_resource_ma worker thread is aware of it's busy state. If the LOAD_DATA_BUFFER job sees a status other than MA_BUSY, it'll assume an error and fall through to an early exit. */ - c89atomic_exchange_i32(&pDataBuffer->result, MA_BUSY); + ma_atomic_exchange_i32(&pDataBuffer->result, MA_BUSY); /* Acquire fences a second time. These will be released by the async thread. */ ma_resource_manager_pipeline_notifications_acquire_all_fences(¬ifications); @@ -65856,11 +68876,17 @@ static ma_result ma_resource_manager_data_buffer_init_ex_internal(ma_resource_ma job.data.resourceManager.loadDataBuffer.loopPointEndInPCMFrames = pConfig->loopPointEndInPCMFrames; job.data.resourceManager.loadDataBuffer.isLooping = pConfig->isLooping; - result = ma_resource_manager_post_job(pResourceManager, &job); + /* If we need to wait for initialization to complete we can just process the job in place. */ + if ((flags & MA_RESOURCE_MANAGER_DATA_SOURCE_FLAG_WAIT_INIT) != 0) { + result = ma_job_process(&job); + } else { + result = ma_resource_manager_post_job(pResourceManager, &job); + } + if (result != MA_SUCCESS) { /* We failed to post the job. Most likely there isn't enough room in the queue's buffer. */ ma_log_postf(ma_resource_manager_get_log(pResourceManager), MA_LOG_LEVEL_ERROR, "Failed to post MA_JOB_TYPE_RESOURCE_MANAGER_LOAD_DATA_BUFFER job. %s.\n", ma_result_description(result)); - c89atomic_exchange_i32(&pDataBuffer->result, result); + ma_atomic_exchange_i32(&pDataBuffer->result, result); /* Release the fences after the result has been set on the data buffer. */ ma_resource_manager_pipeline_notifications_release_all_fences(¬ifications); @@ -65989,7 +69015,7 @@ MA_API ma_result ma_resource_manager_data_buffer_uninit(ma_resource_manager_data We need to mark the node as unavailable so we don't try reading from it anymore, but also to let the loading thread know that it needs to abort it's loading procedure. */ - c89atomic_exchange_i32(&pDataBuffer->result, MA_UNAVAILABLE); + ma_atomic_exchange_i32(&pDataBuffer->result, MA_UNAVAILABLE); result = ma_resource_manager_inline_notification_init(pDataBuffer->pResourceManager, ¬ification); if (result != MA_SUCCESS) { @@ -66036,15 +69062,25 @@ MA_API ma_result ma_resource_manager_data_buffer_read_pcm_frames(ma_resource_man MA_ASSERT(ma_resource_manager_data_buffer_node_result(pDataBuffer->pNode) != MA_UNAVAILABLE); /* If the node is not initialized we need to abort with a busy code. */ - if (ma_resource_manager_data_buffer_node_get_data_supply_type(pDataBuffer->pNode) == ma_resource_manager_data_supply_type_unknown) { + if (ma_resource_manager_data_buffer_has_connector(pDataBuffer) == MA_FALSE) { return MA_BUSY; /* Still loading. */ } + /* + If we've got a seek scheduled we'll want to do that before reading. However, for paged buffers, there's + a chance that the sound hasn't yet been decoded up to the seek point will result in the seek failing. If + this happens, we need to keep the seek scheduled and return MA_BUSY. + */ if (pDataBuffer->seekToCursorOnNextRead) { pDataBuffer->seekToCursorOnNextRead = MA_FALSE; result = ma_data_source_seek_to_pcm_frame(ma_resource_manager_data_buffer_get_connector(pDataBuffer), pDataBuffer->seekTargetInPCMFrames); if (result != MA_SUCCESS) { + if (result == MA_BAD_SEEK && ma_resource_manager_data_buffer_node_get_data_supply_type(pDataBuffer->pNode) == ma_resource_manager_data_supply_type_decoded_paged) { + pDataBuffer->seekToCursorOnNextRead = MA_TRUE; /* Keep the seek scheduled. We just haven't loaded enough data yet to do the seek properly. */ + return MA_BUSY; + } + return result; } } @@ -66117,7 +69153,7 @@ MA_API ma_result ma_resource_manager_data_buffer_seek_to_pcm_frame(ma_resource_m MA_ASSERT(ma_resource_manager_data_buffer_node_result(pDataBuffer->pNode) != MA_UNAVAILABLE); /* If we haven't yet got a connector we need to abort. */ - if (ma_resource_manager_data_buffer_node_get_data_supply_type(pDataBuffer->pNode) == ma_resource_manager_data_supply_type_unknown) { + if (ma_resource_manager_data_buffer_has_connector(pDataBuffer) == MA_FALSE) { pDataBuffer->seekTargetInPCMFrames = frameIndex; pDataBuffer->seekToCursorOnNextRead = MA_TRUE; return MA_BUSY; /* Still loading. */ @@ -66239,7 +69275,7 @@ MA_API ma_result ma_resource_manager_data_buffer_result(const ma_resource_manage return MA_INVALID_ARGS; } - return (ma_result)c89atomic_load_i32((ma_result*)&pDataBuffer->result); /* Need a naughty const-cast here. */ + return (ma_result)ma_atomic_load_i32((ma_result*)&pDataBuffer->result); /* Need a naughty const-cast here. */ } MA_API ma_result ma_resource_manager_data_buffer_set_looping(ma_resource_manager_data_buffer* pDataBuffer, ma_bool32 isLooping) @@ -66392,19 +69428,19 @@ MA_API ma_result ma_resource_manager_unregister_data_w(ma_resource_manager* pRes static ma_uint32 ma_resource_manager_data_stream_next_execution_order(ma_resource_manager_data_stream* pDataStream) { MA_ASSERT(pDataStream != NULL); - return c89atomic_fetch_add_32(&pDataStream->executionCounter, 1); + return ma_atomic_fetch_add_32(&pDataStream->executionCounter, 1); } static ma_bool32 ma_resource_manager_data_stream_is_decoder_at_end(const ma_resource_manager_data_stream* pDataStream) { MA_ASSERT(pDataStream != NULL); - return c89atomic_load_32((ma_bool32*)&pDataStream->isDecoderAtEnd); + return ma_atomic_load_32((ma_bool32*)&pDataStream->isDecoderAtEnd); } static ma_uint32 ma_resource_manager_data_stream_seek_counter(const ma_resource_manager_data_stream* pDataStream) { MA_ASSERT(pDataStream != NULL); - return c89atomic_load_32((ma_uint32*)&pDataStream->seekCounter); + return ma_atomic_load_32((ma_uint32*)&pDataStream->seekCounter); } @@ -66438,7 +69474,7 @@ static ma_result ma_resource_manager_data_stream_cb__set_looping(ma_data_source* ma_resource_manager_data_stream* pDataStream = (ma_resource_manager_data_stream*)pDataSource; MA_ASSERT(pDataStream != NULL); - c89atomic_exchange_32(&pDataStream->isLooping, isLooping); + ma_atomic_exchange_32(&pDataStream->isLooping, isLooping); return MA_SUCCESS; } @@ -66451,7 +69487,7 @@ static ma_data_source_vtable g_ma_resource_manager_data_stream_vtable = ma_resource_manager_data_stream_cb__get_cursor_in_pcm_frames, ma_resource_manager_data_stream_cb__get_length_in_pcm_frames, ma_resource_manager_data_stream_cb__set_looping, - MA_DATA_SOURCE_SELF_MANAGED_RANGE_AND_LOOP_POINT + 0 /*MA_DATA_SOURCE_SELF_MANAGED_RANGE_AND_LOOP_POINT*/ }; static void ma_resource_manager_data_stream_set_absolute_cursor(ma_resource_manager_data_stream* pDataStream, ma_uint64 absoluteCursor) @@ -66461,7 +69497,7 @@ static void ma_resource_manager_data_stream_set_absolute_cursor(ma_resource_mana absoluteCursor = absoluteCursor % pDataStream->totalLengthInPCMFrames; } - c89atomic_exchange_64(&pDataStream->absoluteCursor, absoluteCursor); + ma_atomic_exchange_64(&pDataStream->absoluteCursor, absoluteCursor); } MA_API ma_result ma_resource_manager_data_stream_init_ex(ma_resource_manager* pResourceManager, const ma_resource_manager_data_source_config* pConfig, ma_resource_manager_data_stream* pDataStream) @@ -66576,6 +69612,14 @@ MA_API ma_result ma_resource_manager_data_stream_init_ex(ma_resource_manager* pR ma_async_notification_signal(notifications.init.pNotification); } + /* + If there was an error during initialization make sure we return that result here. We don't want to do this + if we're not waiting because it will most likely be in a busy state. + */ + if (pDataStream->result != MA_SUCCESS) { + return pDataStream->result; + } + /* NOTE: Do not release pInitFence here. That will be done by the job. */ } @@ -66590,7 +69634,7 @@ MA_API ma_result ma_resource_manager_data_stream_init(ma_resource_manager* pReso config.pFilePath = pFilePath; config.flags = flags; config.pNotifications = pNotifications; - + return ma_resource_manager_data_stream_init_ex(pResourceManager, &config, pDataStream); } @@ -66602,7 +69646,7 @@ MA_API ma_result ma_resource_manager_data_stream_init_w(ma_resource_manager* pRe config.pFilePathW = pFilePath; config.flags = flags; config.pNotifications = pNotifications; - + return ma_resource_manager_data_stream_init_ex(pResourceManager, &config, pDataStream); } @@ -66616,7 +69660,7 @@ MA_API ma_result ma_resource_manager_data_stream_uninit(ma_resource_manager_data } /* The first thing to do is set the result to unavailable. This will prevent future page decoding. */ - c89atomic_exchange_i32(&pDataStream->result, MA_UNAVAILABLE); + ma_atomic_exchange_i32(&pDataStream->result, MA_UNAVAILABLE); /* We need to post a job to ensure we're not in the middle or decoding or anything. Because the object is owned by the caller, we'll need @@ -66683,11 +69727,11 @@ static void ma_resource_manager_data_stream_fill_page(ma_resource_manager_data_s /* Just read straight from the decoder. It will deal with ranges and looping for us. */ result = ma_data_source_read_pcm_frames(&pDataStream->decoder, pPageData, pageSizeInFrames, &totalFramesReadForThisPage); if (result == MA_AT_END || totalFramesReadForThisPage < pageSizeInFrames) { - c89atomic_exchange_32(&pDataStream->isDecoderAtEnd, MA_TRUE); + ma_atomic_exchange_32(&pDataStream->isDecoderAtEnd, MA_TRUE); } - c89atomic_exchange_32(&pDataStream->pageFrameCount[pageIndex], (ma_uint32)totalFramesReadForThisPage); - c89atomic_exchange_32(&pDataStream->isPageValid[pageIndex], MA_TRUE); + ma_atomic_exchange_32(&pDataStream->pageFrameCount[pageIndex], (ma_uint32)totalFramesReadForThisPage); + ma_atomic_exchange_32(&pDataStream->isPageValid[pageIndex], MA_TRUE); } static void ma_resource_manager_data_stream_fill_pages(ma_resource_manager_data_stream* pDataStream) @@ -66732,14 +69776,14 @@ static ma_result ma_resource_manager_data_stream_map(ma_resource_manager_data_st } /* If the page we're on is invalid it means we've caught up to the job thread. */ - if (c89atomic_load_32(&pDataStream->isPageValid[pDataStream->currentPageIndex]) == MA_FALSE) { + if (ma_atomic_load_32(&pDataStream->isPageValid[pDataStream->currentPageIndex]) == MA_FALSE) { framesAvailable = 0; } else { /* The page we're on is valid so we must have some frames available. We need to make sure that we don't overflow into the next page, even if it's valid. The reason is that the unmap process will only post an update for one page at a time. Keeping mapping tied to page boundaries makes this simpler. */ - ma_uint32 currentPageFrameCount = c89atomic_load_32(&pDataStream->pageFrameCount[pDataStream->currentPageIndex]); + ma_uint32 currentPageFrameCount = ma_atomic_load_32(&pDataStream->pageFrameCount[pDataStream->currentPageIndex]); MA_ASSERT(currentPageFrameCount >= pDataStream->relativeCursor); framesAvailable = currentPageFrameCount - pDataStream->relativeCursor; @@ -66791,7 +69835,7 @@ static ma_result ma_resource_manager_data_stream_unmap(ma_resource_manager_data_ pageSizeInFrames = ma_resource_manager_data_stream_get_page_size_in_frames(pDataStream); /* The absolute cursor needs to be updated for ma_resource_manager_data_stream_get_cursor_in_pcm_frames(). */ - ma_resource_manager_data_stream_set_absolute_cursor(pDataStream, c89atomic_load_64(&pDataStream->absoluteCursor) + frameCount); + ma_resource_manager_data_stream_set_absolute_cursor(pDataStream, ma_atomic_load_64(&pDataStream->absoluteCursor) + frameCount); /* Here is where we need to check if we need to load a new page, and if so, post a job to load it. */ newRelativeCursor = pDataStream->relativeCursor + (ma_uint32)frameCount; @@ -66807,7 +69851,7 @@ static ma_result ma_resource_manager_data_stream_unmap(ma_resource_manager_data_ job.data.resourceManager.pageDataStream.pageIndex = pDataStream->currentPageIndex; /* The page needs to be marked as invalid so that the public API doesn't try reading from it. */ - c89atomic_exchange_32(&pDataStream->isPageValid[pDataStream->currentPageIndex], MA_FALSE); + ma_atomic_exchange_32(&pDataStream->isPageValid[pDataStream->currentPageIndex], MA_FALSE); /* Before posting the job we need to make sure we set some state. */ pDataStream->relativeCursor = newRelativeCursor; @@ -66910,15 +69954,15 @@ MA_API ma_result ma_resource_manager_data_stream_seek_to_pcm_frame(ma_resource_m } /* If we're not already seeking and we're sitting on the same frame, just make this a no-op. */ - if (c89atomic_load_32(&pDataStream->seekCounter) == 0) { - if (c89atomic_load_64(&pDataStream->absoluteCursor) == frameIndex) { + if (ma_atomic_load_32(&pDataStream->seekCounter) == 0) { + if (ma_atomic_load_64(&pDataStream->absoluteCursor) == frameIndex) { return MA_SUCCESS; } } /* Increment the seek counter first to indicate to read_paged_pcm_frames() and map_paged_pcm_frames() that we are in the middle of a seek and MA_BUSY should be returned. */ - c89atomic_fetch_add_32(&pDataStream->seekCounter, 1); + ma_atomic_fetch_add_32(&pDataStream->seekCounter, 1); /* Update the absolute cursor so that ma_resource_manager_data_stream_get_cursor_in_pcm_frames() returns the new position. */ ma_resource_manager_data_stream_set_absolute_cursor(pDataStream, frameIndex); @@ -66930,11 +69974,11 @@ MA_API ma_result ma_resource_manager_data_stream_seek_to_pcm_frame(ma_resource_m */ pDataStream->relativeCursor = 0; pDataStream->currentPageIndex = 0; - c89atomic_exchange_32(&pDataStream->isPageValid[0], MA_FALSE); - c89atomic_exchange_32(&pDataStream->isPageValid[1], MA_FALSE); + ma_atomic_exchange_32(&pDataStream->isPageValid[0], MA_FALSE); + ma_atomic_exchange_32(&pDataStream->isPageValid[1], MA_FALSE); /* Make sure the data stream is not marked as at the end or else if we seek in response to hitting the end, we won't be able to read any more data. */ - c89atomic_exchange_32(&pDataStream->isDecoderAtEnd, MA_FALSE); + ma_atomic_exchange_32(&pDataStream->isDecoderAtEnd, MA_FALSE); /* The public API is not allowed to touch the internal decoder so we need to use a job to perform the seek. When seeking, the job thread will assume both pages @@ -67010,7 +70054,7 @@ MA_API ma_result ma_resource_manager_data_stream_get_cursor_in_pcm_frames(ma_res return MA_INVALID_OPERATION; } - *pCursor = c89atomic_load_64(&pDataStream->absoluteCursor); + *pCursor = ma_atomic_load_64(&pDataStream->absoluteCursor); return MA_SUCCESS; } @@ -67056,7 +70100,7 @@ MA_API ma_result ma_resource_manager_data_stream_result(const ma_resource_manage return MA_INVALID_ARGS; } - return (ma_result)c89atomic_load_i32(&pDataStream->result); + return (ma_result)ma_atomic_load_i32(&pDataStream->result); } MA_API ma_result ma_resource_manager_data_stream_set_looping(ma_resource_manager_data_stream* pDataStream, ma_bool32 isLooping) @@ -67070,7 +70114,7 @@ MA_API ma_bool32 ma_resource_manager_data_stream_is_looping(const ma_resource_ma return MA_FALSE; } - return c89atomic_load_32((ma_bool32*)&pDataStream->isLooping); /* Naughty const-cast. Value won't change from here in practice (maybe from another thread). */ + return ma_atomic_load_32((ma_bool32*)&pDataStream->isLooping); /* Naughty const-cast. Value won't change from here in practice (maybe from another thread). */ } MA_API ma_result ma_resource_manager_data_stream_get_available_frames(ma_resource_manager_data_stream* pDataStream, ma_uint64* pAvailableFrames) @@ -67095,10 +70139,10 @@ MA_API ma_result ma_resource_manager_data_stream_get_available_frames(ma_resourc relativeCursor = pDataStream->relativeCursor; availableFrames = 0; - if (c89atomic_load_32(&pDataStream->isPageValid[pageIndex0])) { - availableFrames += c89atomic_load_32(&pDataStream->pageFrameCount[pageIndex0]) - relativeCursor; - if (c89atomic_load_32(&pDataStream->isPageValid[pageIndex1])) { - availableFrames += c89atomic_load_32(&pDataStream->pageFrameCount[pageIndex1]); + if (ma_atomic_load_32(&pDataStream->isPageValid[pageIndex0])) { + availableFrames += ma_atomic_load_32(&pDataStream->pageFrameCount[pageIndex0]) - relativeCursor; + if (ma_atomic_load_32(&pDataStream->isPageValid[pageIndex1])) { + availableFrames += ma_atomic_load_32(&pDataStream->pageFrameCount[pageIndex1]); } } @@ -67404,7 +70448,7 @@ static ma_result ma_job_process__resource_manager__load_data_buffer_node(ma_job* MA_ASSERT(pDataBufferNode->isDataOwnedByResourceManager == MA_TRUE); /* The data should always be owned by the resource manager. */ /* The data buffer is not getting deleted, but we may be getting executed out of order. If so, we need to push the job back onto the queue and return. */ - if (pJob->order != c89atomic_load_32(&pDataBufferNode->executionPointer)) { + if (pJob->order != ma_atomic_load_32(&pDataBufferNode->executionPointer)) { return ma_resource_manager_post_job(pResourceManager, pJob); /* Attempting to execute out of order. Probably interleaved with a MA_JOB_TYPE_RESOURCE_MANAGER_FREE_DATA_BUFFER job. */ } @@ -67515,7 +70559,7 @@ done: immediately deletes it before we've got to this point. In this case, pDataBuffer->result will be MA_UNAVAILABLE, and setting it to MA_SUCCESS or any other error code would cause the buffer to look like it's in a state that it's not. */ - c89atomic_compare_and_swap_i32(&pDataBufferNode->result, MA_BUSY, result); + ma_atomic_compare_and_swap_i32(&pDataBufferNode->result, MA_BUSY, result); /* At this point initialization is complete and we can signal the notification if any. */ if (pJob->data.resourceManager.loadDataBufferNode.pInitNotification != NULL) { @@ -67536,7 +70580,13 @@ done: } /* Increment the node's execution pointer so that the next jobs can be processed. This is how we keep decoding of pages in-order. */ - c89atomic_fetch_add_32(&pDataBufferNode->executionPointer, 1); + ma_atomic_fetch_add_32(&pDataBufferNode->executionPointer, 1); + + /* A busy result should be considered successful from the point of view of the job system. */ + if (result == MA_BUSY) { + result = MA_SUCCESS; + } + return result; } @@ -67553,7 +70603,7 @@ static ma_result ma_job_process__resource_manager__free_data_buffer_node(ma_job* pDataBufferNode = (ma_resource_manager_data_buffer_node*)pJob->data.resourceManager.freeDataBufferNode.pDataBufferNode; MA_ASSERT(pDataBufferNode != NULL); - if (pJob->order != c89atomic_load_32(&pDataBufferNode->executionPointer)) { + if (pJob->order != ma_atomic_load_32(&pDataBufferNode->executionPointer)) { return ma_resource_manager_post_job(pResourceManager, pJob); /* Out of order. */ } @@ -67568,7 +70618,7 @@ static ma_result ma_job_process__resource_manager__free_data_buffer_node(ma_job* ma_fence_release(pJob->data.resourceManager.freeDataBufferNode.pDoneFence); } - c89atomic_fetch_add_32(&pDataBufferNode->executionPointer, 1); + ma_atomic_fetch_add_32(&pDataBufferNode->executionPointer, 1); return MA_SUCCESS; } @@ -67586,7 +70636,7 @@ static ma_result ma_job_process__resource_manager__page_data_buffer_node(ma_job* pDataBufferNode = (ma_resource_manager_data_buffer_node*)pJob->data.resourceManager.pageDataBufferNode.pDataBufferNode; MA_ASSERT(pDataBufferNode != NULL); - if (pJob->order != c89atomic_load_32(&pDataBufferNode->executionPointer)) { + if (pJob->order != ma_atomic_load_32(&pDataBufferNode->executionPointer)) { return ma_resource_manager_post_job(pResourceManager, pJob); /* Out of order. */ } @@ -67629,7 +70679,7 @@ done: } /* Make sure we set the result of node in case some error occurred. */ - c89atomic_compare_and_swap_i32(&pDataBufferNode->result, MA_BUSY, result); + ma_atomic_compare_and_swap_i32(&pDataBufferNode->result, MA_BUSY, result); /* Signal the notification after setting the result in case the notification callback wants to inspect the result code. */ if (result != MA_BUSY) { @@ -67642,7 +70692,7 @@ done: } } - c89atomic_fetch_add_32(&pDataBufferNode->executionPointer, 1); + ma_atomic_fetch_add_32(&pDataBufferNode->executionPointer, 1); return result; } @@ -67666,7 +70716,7 @@ static ma_result ma_job_process__resource_manager__load_data_buffer(ma_job* pJob pResourceManager = pDataBuffer->pResourceManager; - if (pJob->order != c89atomic_load_32(&pDataBuffer->executionPointer)) { + if (pJob->order != ma_atomic_load_32(&pDataBuffer->executionPointer)) { return ma_resource_manager_post_job(pResourceManager, pJob); /* Attempting to execute out of order. Probably interleaved with a MA_JOB_TYPE_RESOURCE_MANAGER_FREE_DATA_BUFFER job. */ } @@ -67682,7 +70732,7 @@ static ma_result ma_job_process__resource_manager__load_data_buffer(ma_job* pJob } /* Try initializing the connector if we haven't already. */ - isConnectorInitialized = pDataBuffer->isConnectorInitialized; + isConnectorInitialized = ma_resource_manager_data_buffer_has_connector(pDataBuffer); if (isConnectorInitialized == MA_FALSE) { dataSupplyType = ma_resource_manager_data_buffer_node_get_data_supply_type(pDataBuffer->pNode); @@ -67715,7 +70765,7 @@ static ma_result ma_job_process__resource_manager__load_data_buffer(ma_job* pJob There is a hole between here and the where the data connector is initialized where the data buffer node may have finished initializing. We need to check for this by checking the result of the data buffer node and whether or not we had an unknown data supply type at the time of - trying to initialize the data connector. + trying to initialize the data connector. */ result = ma_resource_manager_data_buffer_node_result(pDataBuffer->pNode); if (result == MA_BUSY || (result == MA_SUCCESS && isConnectorInitialized == MA_FALSE && dataSupplyType == ma_resource_manager_data_supply_type_unknown)) { @@ -67724,7 +70774,7 @@ static ma_result ma_job_process__resource_manager__load_data_buffer(ma_job* pJob done: /* Only move away from a busy code so that we don't trash any existing error codes. */ - c89atomic_compare_and_swap_i32(&pDataBuffer->result, MA_BUSY, result); + ma_atomic_compare_and_swap_i32(&pDataBuffer->result, MA_BUSY, result); /* Only signal the other threads after the result has been set just for cleanliness sake. */ if (pJob->data.resourceManager.loadDataBuffer.pDoneNotification != NULL) { @@ -67738,7 +70788,7 @@ done: If at this point the data buffer has not had it's connector initialized, it means the notification event was never signalled which means we need to signal it here. */ - if (pDataBuffer->isConnectorInitialized == MA_FALSE && result != MA_SUCCESS) { + if (ma_resource_manager_data_buffer_has_connector(pDataBuffer) == MA_FALSE && result != MA_SUCCESS) { if (pJob->data.resourceManager.loadDataBuffer.pInitNotification != NULL) { ma_async_notification_signal(pJob->data.resourceManager.loadDataBuffer.pInitNotification); } @@ -67747,7 +70797,7 @@ done: } } - c89atomic_fetch_add_32(&pDataBuffer->executionPointer, 1); + ma_atomic_fetch_add_32(&pDataBuffer->executionPointer, 1); return result; } @@ -67763,7 +70813,7 @@ static ma_result ma_job_process__resource_manager__free_data_buffer(ma_job* pJob pResourceManager = pDataBuffer->pResourceManager; - if (pJob->order != c89atomic_load_32(&pDataBuffer->executionPointer)) { + if (pJob->order != ma_atomic_load_32(&pDataBuffer->executionPointer)) { return ma_resource_manager_post_job(pResourceManager, pJob); /* Out of order. */ } @@ -67778,7 +70828,7 @@ static ma_result ma_job_process__resource_manager__free_data_buffer(ma_job* pJob ma_fence_release(pJob->data.resourceManager.freeDataBuffer.pDoneFence); } - c89atomic_fetch_add_32(&pDataBuffer->executionPointer, 1); + ma_atomic_fetch_add_32(&pDataBuffer->executionPointer, 1); return MA_SUCCESS; } @@ -67797,7 +70847,7 @@ static ma_result ma_job_process__resource_manager__load_data_stream(ma_job* pJob pResourceManager = pDataStream->pResourceManager; - if (pJob->order != c89atomic_load_32(&pDataStream->executionPointer)) { + if (pJob->order != ma_atomic_load_32(&pDataStream->executionPointer)) { return ma_resource_manager_post_job(pResourceManager, pJob); /* Out of order. */ } @@ -67818,7 +70868,7 @@ static ma_result ma_job_process__resource_manager__load_data_stream(ma_job* pJob goto done; } - /* Retrieve the total length of the file before marking the decoder are loaded. */ + /* Retrieve the total length of the file before marking the decoder as loaded. */ if ((pDataStream->flags & MA_RESOURCE_MANAGER_DATA_SOURCE_FLAG_UNKNOWN_LENGTH) == 0) { result = ma_decoder_get_length_in_pcm_frames(&pDataStream->decoder, &pDataStream->totalLengthInPCMFrames); if (result != MA_SUCCESS) { @@ -67858,7 +70908,7 @@ done: ma_free(pJob->data.resourceManager.loadDataStream.pFilePathW, &pResourceManager->config.allocationCallbacks); /* We can only change the status away from MA_BUSY. If it's set to anything else it means an error has occurred somewhere or the uninitialization process has started (most likely). */ - c89atomic_compare_and_swap_i32(&pDataStream->result, MA_BUSY, result); + ma_atomic_compare_and_swap_i32(&pDataStream->result, MA_BUSY, result); /* Only signal the other threads after the result has been set just for cleanliness sake. */ if (pJob->data.resourceManager.loadDataStream.pInitNotification != NULL) { @@ -67868,7 +70918,7 @@ done: ma_fence_release(pJob->data.resourceManager.loadDataStream.pInitFence); } - c89atomic_fetch_add_32(&pDataStream->executionPointer, 1); + ma_atomic_fetch_add_32(&pDataStream->executionPointer, 1); return result; } @@ -67884,7 +70934,7 @@ static ma_result ma_job_process__resource_manager__free_data_stream(ma_job* pJob pResourceManager = pDataStream->pResourceManager; - if (pJob->order != c89atomic_load_32(&pDataStream->executionPointer)) { + if (pJob->order != ma_atomic_load_32(&pDataStream->executionPointer)) { return ma_resource_manager_post_job(pResourceManager, pJob); /* Out of order. */ } @@ -67910,7 +70960,7 @@ static ma_result ma_job_process__resource_manager__free_data_stream(ma_job* pJob ma_fence_release(pJob->data.resourceManager.freeDataStream.pDoneFence); } - /*c89atomic_fetch_add_32(&pDataStream->executionPointer, 1);*/ + /*ma_atomic_fetch_add_32(&pDataStream->executionPointer, 1);*/ return MA_SUCCESS; } @@ -67927,7 +70977,7 @@ static ma_result ma_job_process__resource_manager__page_data_stream(ma_job* pJob pResourceManager = pDataStream->pResourceManager; - if (pJob->order != c89atomic_load_32(&pDataStream->executionPointer)) { + if (pJob->order != ma_atomic_load_32(&pDataStream->executionPointer)) { return ma_resource_manager_post_job(pResourceManager, pJob); /* Out of order. */ } @@ -67940,7 +70990,7 @@ static ma_result ma_job_process__resource_manager__page_data_stream(ma_job* pJob ma_resource_manager_data_stream_fill_page(pDataStream, pJob->data.resourceManager.pageDataStream.pageIndex); done: - c89atomic_fetch_add_32(&pDataStream->executionPointer, 1); + ma_atomic_fetch_add_32(&pDataStream->executionPointer, 1); return result; } @@ -67957,7 +71007,7 @@ static ma_result ma_job_process__resource_manager__seek_data_stream(ma_job* pJob pResourceManager = pDataStream->pResourceManager; - if (pJob->order != c89atomic_load_32(&pDataStream->executionPointer)) { + if (pJob->order != ma_atomic_load_32(&pDataStream->executionPointer)) { return ma_resource_manager_post_job(pResourceManager, pJob); /* Out of order. */ } @@ -67977,10 +71027,10 @@ static ma_result ma_job_process__resource_manager__seek_data_stream(ma_job* pJob ma_resource_manager_data_stream_fill_pages(pDataStream); /* We need to let the public API know that we're done seeking. */ - c89atomic_fetch_sub_32(&pDataStream->seekCounter, 1); + ma_atomic_fetch_sub_32(&pDataStream->seekCounter, 1); done: - c89atomic_fetch_add_32(&pDataStream->executionPointer, 1); + ma_atomic_fetch_add_32(&pDataStream->executionPointer, 1); return result; } @@ -68064,35 +71114,6 @@ MA_API void ma_debug_fill_pcm_frames_with_sine_wave(float* pFramesOut, ma_uint32 -static ma_result ma_mix_pcm_frames_f32(float* pDst, const float* pSrc, ma_uint64 frameCount, ma_uint32 channels, float volume) -{ - ma_uint64 iSample; - ma_uint64 sampleCount; - - if (pDst == NULL || pSrc == NULL || channels == 0) { - return MA_INVALID_ARGS; - } - - if (volume == 0) { - return MA_SUCCESS; /* No changes if the volume is 0. */ - } - - sampleCount = frameCount * channels; - - if (volume == 1) { - for (iSample = 0; iSample < sampleCount; iSample += 1) { - pDst[iSample] += pSrc[iSample]; - } - } else { - for (iSample = 0; iSample < sampleCount; iSample += 1) { - pDst[iSample] += ma_apply_volume_unclipped_f32(pSrc[iSample], volume); - } - } - - return MA_SUCCESS; -} - - MA_API ma_node_graph_config ma_node_graph_config_init(ma_uint32 channels) { ma_node_graph_config config; @@ -68108,14 +71129,14 @@ MA_API ma_node_graph_config ma_node_graph_config_init(ma_uint32 channels) static void ma_node_graph_set_is_reading(ma_node_graph* pNodeGraph, ma_bool32 isReading) { MA_ASSERT(pNodeGraph != NULL); - c89atomic_exchange_32(&pNodeGraph->isReading, isReading); + ma_atomic_exchange_32(&pNodeGraph->isReading, isReading); } #if 0 static ma_bool32 ma_node_graph_is_reading(ma_node_graph* pNodeGraph) { MA_ASSERT(pNodeGraph != NULL); - return c89atomic_load_32(&pNodeGraph->isReading); + return ma_atomic_load_32(&pNodeGraph->isReading); } #endif @@ -68365,26 +71386,26 @@ static ma_uint32 ma_node_output_bus_get_channels(const ma_node_output_bus* pOutp static void ma_node_output_bus_set_has_read(ma_node_output_bus* pOutputBus, ma_bool32 hasRead) { if (hasRead) { - c89atomic_fetch_or_32(&pOutputBus->flags, MA_NODE_OUTPUT_BUS_FLAG_HAS_READ); + ma_atomic_fetch_or_32(&pOutputBus->flags, MA_NODE_OUTPUT_BUS_FLAG_HAS_READ); } else { - c89atomic_fetch_and_32(&pOutputBus->flags, (ma_uint32)~MA_NODE_OUTPUT_BUS_FLAG_HAS_READ); + ma_atomic_fetch_and_32(&pOutputBus->flags, (ma_uint32)~MA_NODE_OUTPUT_BUS_FLAG_HAS_READ); } } static ma_bool32 ma_node_output_bus_has_read(ma_node_output_bus* pOutputBus) { - return (c89atomic_load_32(&pOutputBus->flags) & MA_NODE_OUTPUT_BUS_FLAG_HAS_READ) != 0; + return (ma_atomic_load_32(&pOutputBus->flags) & MA_NODE_OUTPUT_BUS_FLAG_HAS_READ) != 0; } static void ma_node_output_bus_set_is_attached(ma_node_output_bus* pOutputBus, ma_bool32 isAttached) { - c89atomic_exchange_32(&pOutputBus->isAttached, isAttached); + ma_atomic_exchange_32(&pOutputBus->isAttached, isAttached); } static ma_bool32 ma_node_output_bus_is_attached(ma_node_output_bus* pOutputBus) { - return c89atomic_load_32(&pOutputBus->isAttached); + return ma_atomic_load_32(&pOutputBus->isAttached); } @@ -68396,14 +71417,14 @@ static ma_result ma_node_output_bus_set_volume(ma_node_output_bus* pOutputBus, f volume = 0.0f; } - c89atomic_exchange_f32(&pOutputBus->volume, volume); + ma_atomic_exchange_f32(&pOutputBus->volume, volume); return MA_SUCCESS; } static float ma_node_output_bus_get_volume(const ma_node_output_bus* pOutputBus) { - return c89atomic_load_f32((float*)&pOutputBus->volume); + return ma_atomic_load_f32((float*)&pOutputBus->volume); } @@ -68425,28 +71446,32 @@ static ma_result ma_node_input_bus_init(ma_uint32 channels, ma_node_input_bus* p static void ma_node_input_bus_lock(ma_node_input_bus* pInputBus) { + MA_ASSERT(pInputBus != NULL); + ma_spinlock_lock(&pInputBus->lock); } static void ma_node_input_bus_unlock(ma_node_input_bus* pInputBus) { + MA_ASSERT(pInputBus != NULL); + ma_spinlock_unlock(&pInputBus->lock); } static void ma_node_input_bus_next_begin(ma_node_input_bus* pInputBus) { - c89atomic_fetch_add_32(&pInputBus->nextCounter, 1); + ma_atomic_fetch_add_32(&pInputBus->nextCounter, 1); } static void ma_node_input_bus_next_end(ma_node_input_bus* pInputBus) { - c89atomic_fetch_sub_32(&pInputBus->nextCounter, 1); + ma_atomic_fetch_sub_32(&pInputBus->nextCounter, 1); } static ma_uint32 ma_node_input_bus_get_next_counter(ma_node_input_bus* pInputBus) { - return c89atomic_load_32(&pInputBus->nextCounter); + return ma_atomic_load_32(&pInputBus->nextCounter); } @@ -68481,21 +71506,21 @@ static void ma_node_input_bus_detach__no_output_bus_lock(ma_node_input_bus* pInp */ ma_node_input_bus_lock(pInputBus); { - ma_node_output_bus* pOldPrev = (ma_node_output_bus*)c89atomic_load_ptr(&pOutputBus->pPrev); - ma_node_output_bus* pOldNext = (ma_node_output_bus*)c89atomic_load_ptr(&pOutputBus->pNext); + ma_node_output_bus* pOldPrev = (ma_node_output_bus*)ma_atomic_load_ptr(&pOutputBus->pPrev); + ma_node_output_bus* pOldNext = (ma_node_output_bus*)ma_atomic_load_ptr(&pOutputBus->pNext); if (pOldPrev != NULL) { - c89atomic_exchange_ptr(&pOldPrev->pNext, pOldNext); /* <-- This is where the output bus is detached from the list. */ + ma_atomic_exchange_ptr(&pOldPrev->pNext, pOldNext); /* <-- This is where the output bus is detached from the list. */ } if (pOldNext != NULL) { - c89atomic_exchange_ptr(&pOldNext->pPrev, pOldPrev); /* <-- This is required for detachment. */ + ma_atomic_exchange_ptr(&pOldNext->pPrev, pOldPrev); /* <-- This is required for detachment. */ } } ma_node_input_bus_unlock(pInputBus); /* At this point the output bus is detached and the linked list is completely unaware of it. Reset some data for safety. */ - c89atomic_exchange_ptr(&pOutputBus->pNext, NULL); /* Using atomic exchanges here, mainly for the benefit of analysis tools which don't always recognize spinlocks. */ - c89atomic_exchange_ptr(&pOutputBus->pPrev, NULL); /* As above. */ + ma_atomic_exchange_ptr(&pOutputBus->pNext, NULL); /* Using atomic exchanges here, mainly for the benefit of analysis tools which don't always recognize spinlocks. */ + ma_atomic_exchange_ptr(&pOutputBus->pPrev, NULL); /* As above. */ pOutputBus->pInputNode = NULL; pOutputBus->inputNodeInputBusIndex = 0; @@ -68519,7 +71544,7 @@ static void ma_node_input_bus_detach__no_output_bus_lock(ma_node_input_bus* pInp } /* Part 2: Wait for any reads to complete. */ - while (c89atomic_load_32(&pOutputBus->refCount) > 0) { + while (ma_atomic_load_32(&pOutputBus->refCount) > 0) { ma_yield(); } @@ -68550,7 +71575,7 @@ static void ma_node_input_bus_attach(ma_node_input_bus* pInputBus, ma_node_outpu ma_node_output_bus_lock(pOutputBus); { - ma_node_output_bus* pOldInputNode = (ma_node_output_bus*)c89atomic_load_ptr(&pOutputBus->pInputNode); + ma_node_output_bus* pOldInputNode = (ma_node_output_bus*)ma_atomic_load_ptr(&pOutputBus->pInputNode); /* Detach from any existing attachment first if necessary. */ if (pOldInputNode != NULL) { @@ -68562,7 +71587,7 @@ static void ma_node_input_bus_attach(ma_node_input_bus* pInputBus, ma_node_outpu old input bus has been updated so that pOutputBus will not get iterated again. */ pOutputBus->pInputNode = pNewInputNode; /* No need for an atomic assignment here because modification of this variable always happens within a lock. */ - pOutputBus->inputNodeInputBusIndex = (ma_uint8)inputNodeInputBusIndex; /* As above. */ + pOutputBus->inputNodeInputBusIndex = (ma_uint8)inputNodeInputBusIndex; /* Now we need to attach the output bus to the linked list. This involves updating two pointers on @@ -68580,18 +71605,18 @@ static void ma_node_input_bus_attach(ma_node_input_bus* pInputBus, ma_node_outpu ma_node_input_bus_lock(pInputBus); { ma_node_output_bus* pNewPrev = &pInputBus->head; - ma_node_output_bus* pNewNext = (ma_node_output_bus*)c89atomic_load_ptr(&pInputBus->head.pNext); + ma_node_output_bus* pNewNext = (ma_node_output_bus*)ma_atomic_load_ptr(&pInputBus->head.pNext); /* Update the local output bus. */ - c89atomic_exchange_ptr(&pOutputBus->pPrev, pNewPrev); - c89atomic_exchange_ptr(&pOutputBus->pNext, pNewNext); + ma_atomic_exchange_ptr(&pOutputBus->pPrev, pNewPrev); + ma_atomic_exchange_ptr(&pOutputBus->pNext, pNewNext); /* Update the other output buses to point back to the local output bus. */ - c89atomic_exchange_ptr(&pInputBus->head.pNext, pOutputBus); /* <-- This is where the output bus is actually attached to the input bus. */ + ma_atomic_exchange_ptr(&pInputBus->head.pNext, pOutputBus); /* <-- This is where the output bus is actually attached to the input bus. */ /* Do the previous pointer last. This is only used for detachment. */ if (pNewNext != NULL) { - c89atomic_exchange_ptr(&pNewNext->pPrev, pOutputBus); + ma_atomic_exchange_ptr(&pNewNext->pPrev, pOutputBus); } } ma_node_input_bus_unlock(pInputBus); @@ -68619,7 +71644,7 @@ static ma_node_output_bus* ma_node_input_bus_next(ma_node_input_bus* pInputBus, { pNext = pOutputBus; for (;;) { - pNext = (ma_node_output_bus*)c89atomic_load_ptr(&pNext->pNext); + pNext = (ma_node_output_bus*)ma_atomic_load_ptr(&pNext->pNext); if (pNext == NULL) { break; /* Reached the end. */ } @@ -68634,11 +71659,11 @@ static ma_node_output_bus* ma_node_input_bus_next(ma_node_input_bus* pInputBus, /* We need to increment the reference count of the selected node. */ if (pNext != NULL) { - c89atomic_fetch_add_32(&pNext->refCount, 1); + ma_atomic_fetch_add_32(&pNext->refCount, 1); } /* The previous node is no longer being referenced. */ - c89atomic_fetch_sub_32(&pOutputBus->refCount, 1); + ma_atomic_fetch_sub_32(&pOutputBus->refCount, 1); } ma_node_input_bus_next_end(pInputBus); @@ -68660,6 +71685,8 @@ static ma_result ma_node_input_bus_read_pcm_frames(ma_node* pInputNode, ma_node_ ma_uint32 inputChannels; ma_bool32 doesOutputBufferHaveContent = MA_FALSE; + (void)pInputNode; /* Not currently used. */ + /* This will be called from the audio thread which means we can't be doing any locking. Basically, this function will not perfom any locking, whereas attaching and detaching will, but crafted in @@ -68702,6 +71729,7 @@ static ma_result ma_node_input_bus_read_pcm_frames(ma_node* pInputNode, ma_node_ ma_bool32 isSilentOutput = MA_FALSE; MA_ASSERT(pOutputBus->pNode != NULL); + MA_ASSERT(((ma_node_base*)pOutputBus->pNode)->vtable != NULL); isSilentOutput = (((ma_node_base*)pOutputBus->pNode)->vtable->flags & MA_NODE_FLAG_SILENT_OUTPUT) != 0; @@ -68884,8 +71912,8 @@ static ma_result ma_node_translate_bus_counts(const ma_node_config* pConfig, ma_ /* Some special rules for passthrough nodes. */ if ((pConfig->vtable->flags & MA_NODE_FLAG_PASSTHROUGH) != 0) { - if (pConfig->vtable->inputBusCount != 1 || pConfig->vtable->outputBusCount != 1) { - return MA_INVALID_ARGS; /* Passthrough nodes must have exactly 1 input bus and 1 output bus. */ + if ((pConfig->vtable->inputBusCount != 0 && pConfig->vtable->inputBusCount != 1) || pConfig->vtable->outputBusCount != 1) { + return MA_INVALID_ARGS; /* Passthrough nodes must have exactly 1 output bus and either 0 or 1 input bus. */ } if (pConfig->pInputChannels[0] != pConfig->pOutputChannels[0]) { @@ -69045,7 +72073,7 @@ MA_API ma_result ma_node_init_preallocated(ma_node_graph* pNodeGraph, const ma_n } if (heapLayout.outputBusOffset != MA_SIZE_MAX) { - pNodeBase->pOutputBuses = (ma_node_output_bus*)ma_offset_ptr(pHeap, heapLayout.inputBusOffset); + pNodeBase->pOutputBuses = (ma_node_output_bus*)ma_offset_ptr(pHeap, heapLayout.outputBusOffset); } else { pNodeBase->pOutputBuses = pNodeBase->_outputBuses; } @@ -69247,7 +72275,7 @@ static ma_result ma_node_detach_full(ma_node* pNode) linked list logic. We don't need to worry about the audio thread referencing these because the step above severed the connection to the graph. */ - for (pOutputBus = (ma_node_output_bus*)c89atomic_load_ptr(&pInputBus->head.pNext); pOutputBus != NULL; pOutputBus = (ma_node_output_bus*)c89atomic_load_ptr(&pOutputBus->pNext)) { + for (pOutputBus = (ma_node_output_bus*)ma_atomic_load_ptr(&pInputBus->head.pNext); pOutputBus != NULL; pOutputBus = (ma_node_output_bus*)ma_atomic_load_ptr(&pOutputBus->pNext)) { ma_node_detach_output_bus(pOutputBus->pNode, pOutputBus->outputBusIndex); /* This won't do any waiting in practice and should be efficient. */ } } @@ -69363,7 +72391,7 @@ MA_API ma_result ma_node_set_state(ma_node* pNode, ma_node_state state) return MA_INVALID_ARGS; } - c89atomic_exchange_i32(&pNodeBase->state, state); + ma_atomic_exchange_i32(&pNodeBase->state, state); return MA_SUCCESS; } @@ -69376,7 +72404,7 @@ MA_API ma_node_state ma_node_get_state(const ma_node* pNode) return ma_node_state_stopped; } - return (ma_node_state)c89atomic_load_i32(&pNodeBase->state); + return (ma_node_state)ma_atomic_load_i32(&pNodeBase->state); } MA_API ma_result ma_node_set_state_time(ma_node* pNode, ma_node_state state, ma_uint64 globalTime) @@ -69390,7 +72418,7 @@ MA_API ma_result ma_node_set_state_time(ma_node* pNode, ma_node_state state, ma_ return MA_INVALID_ARGS; } - c89atomic_exchange_64(&((ma_node_base*)pNode)->stateTimes[state], globalTime); + ma_atomic_exchange_64(&((ma_node_base*)pNode)->stateTimes[state], globalTime); return MA_SUCCESS; } @@ -69406,7 +72434,7 @@ MA_API ma_uint64 ma_node_get_state_time(const ma_node* pNode, ma_node_state stat return 0; } - return c89atomic_load_64(&((ma_node_base*)pNode)->stateTimes[state]); + return ma_atomic_load_64(&((ma_node_base*)pNode)->stateTimes[state]); } MA_API ma_node_state ma_node_get_state_by_time(const ma_node* pNode, ma_uint64 globalTime) @@ -69456,7 +72484,7 @@ MA_API ma_uint64 ma_node_get_time(const ma_node* pNode) return 0; } - return c89atomic_load_64(&((ma_node_base*)pNode)->localTime); + return ma_atomic_load_64(&((ma_node_base*)pNode)->localTime); } MA_API ma_result ma_node_set_time(ma_node* pNode, ma_uint64 localTime) @@ -69465,7 +72493,7 @@ MA_API ma_result ma_node_set_time(ma_node* pNode, ma_uint64 localTime) return MA_INVALID_ARGS; } - c89atomic_exchange_64(&((ma_node_base*)pNode)->localTime, localTime); + ma_atomic_exchange_64(&((ma_node_base*)pNode)->localTime, localTime); return MA_SUCCESS; } @@ -69536,11 +72564,11 @@ static ma_result ma_node_read_pcm_frames(ma_node* pNode, ma_uint32 outputBusInde /* At this point we know that we are inside our start/stop times. However, we may need to adjust - our frame count and output pointer to accomodate since we could be straddling the time period + our frame count and output pointer to accommodate since we could be straddling the time period that this function is getting called for. It's possible (and likely) that the start time does not line up with the output buffer. We - therefore need to offset it by a number of frames to accomodate. The same thing applies for + therefore need to offset it by a number of frames to accommodate. The same thing applies for the stop time. */ timeOffsetBeg = (globalTimeBeg < startTime) ? (ma_uint32)(globalTimeEnd - startTime) : 0; @@ -69574,6 +72602,15 @@ static ma_result ma_node_read_pcm_frames(ma_node* pNode, ma_uint32 outputBusInde frameCountOut = frameCount; /* Just read as much as we can. The callback will return what was actually read. */ ppFramesOut[0] = pFramesOut; + + /* + If it's a passthrough we won't be expecting the callback to output anything, so we'll + need to pre-silence the output buffer. + */ + if ((pNodeBase->vtable->flags & MA_NODE_FLAG_PASSTHROUGH) != 0) { + ma_silence_pcm_frames(pFramesOut, frameCount, ma_format_f32, ma_node_get_output_channels(pNode, outputBusIndex)); + } + ma_node_process_pcm_frames_internal(pNode, NULL, &frameCountIn, ppFramesOut, &frameCountOut); totalFramesRead = frameCountOut; } else { @@ -69826,12 +72863,12 @@ static ma_result ma_node_read_pcm_frames(ma_node* pNode, ma_uint32 outputBusInde ma_node_output_bus_set_has_read(&pNodeBase->pOutputBuses[outputBusIndex], MA_TRUE); } } - + /* Apply volume, if necessary. */ ma_apply_volume_factor_f32(pFramesOut, totalFramesRead * ma_node_get_output_channels(pNodeBase, outputBusIndex), ma_node_output_bus_get_volume(&pNodeBase->pOutputBuses[outputBusIndex])); /* Advance our local time forward. */ - c89atomic_fetch_add_64(&pNodeBase->localTime, (ma_uint64)totalFramesRead); + ma_atomic_fetch_add_64(&pNodeBase->localTime, (ma_uint64)totalFramesRead); *pFramesRead = totalFramesRead + timeOffsetBeg; /* Must include the silenced section at the start of the buffer. */ return result; @@ -69980,8 +73017,9 @@ MA_API ma_splitter_node_config ma_splitter_node_config_init(ma_uint32 channels) ma_splitter_node_config config; MA_ZERO_OBJECT(&config); - config.nodeConfig = ma_node_config_init(); - config.channels = channels; + config.nodeConfig = ma_node_config_init(); + config.channels = channels; + config.outputBusCount = 2; return config; } @@ -69994,8 +73032,7 @@ static void ma_splitter_node_process_pcm_frames(ma_node* pNode, const float** pp ma_uint32 channels; MA_ASSERT(pNodeBase != NULL); - MA_ASSERT(ma_node_get_input_bus_count(pNodeBase) == 1); - MA_ASSERT(ma_node_get_output_bus_count(pNodeBase) >= 2); + MA_ASSERT(ma_node_get_input_bus_count(pNodeBase) == 1); /* We don't need to consider the input frame count - it'll be the same as the output frame count and we process everything. */ (void)pFrameCountIn; @@ -70012,9 +73049,9 @@ static void ma_splitter_node_process_pcm_frames(ma_node* pNode, const float** pp static ma_node_vtable g_ma_splitter_node_vtable = { ma_splitter_node_process_pcm_frames, - NULL, /* onGetRequiredInputFrameCount */ - 1, /* 1 input bus. */ - 2, /* 2 output buses. */ + NULL, /* onGetRequiredInputFrameCount */ + 1, /* 1 input bus. */ + MA_NODE_BUS_COUNT_UNKNOWN, /* The output bus count is specified on a per-node basis. */ 0 }; @@ -70023,7 +73060,8 @@ MA_API ma_result ma_splitter_node_init(ma_node_graph* pNodeGraph, const ma_split ma_result result; ma_node_config baseConfig; ma_uint32 pInputChannels[1]; - ma_uint32 pOutputChannels[2]; + ma_uint32 pOutputChannels[MA_MAX_NODE_BUS_COUNT]; + ma_uint32 iOutputBus; if (pSplitterNode == NULL) { return MA_INVALID_ARGS; @@ -70035,15 +73073,21 @@ MA_API ma_result ma_splitter_node_init(ma_node_graph* pNodeGraph, const ma_split return MA_INVALID_ARGS; } + if (pConfig->outputBusCount > MA_MAX_NODE_BUS_COUNT) { + return MA_INVALID_ARGS; /* Too many output buses. */ + } + /* Splitters require the same number of channels between inputs and outputs. */ pInputChannels[0] = pConfig->channels; - pOutputChannels[0] = pConfig->channels; - pOutputChannels[1] = pConfig->channels; + for (iOutputBus = 0; iOutputBus < pConfig->outputBusCount; iOutputBus += 1) { + pOutputChannels[iOutputBus] = pConfig->channels; + } baseConfig = pConfig->nodeConfig; baseConfig.vtable = &g_ma_splitter_node_vtable; baseConfig.pInputChannels = pInputChannels; baseConfig.pOutputChannels = pOutputChannels; + baseConfig.outputBusCount = pConfig->outputBusCount; result = ma_node_init(pNodeGraph, &baseConfig, pAllocationCallbacks, &pSplitterNode->base); if (result != MA_SUCCESS) { @@ -70938,6 +73982,7 @@ MA_API float ma_delay_node_get_decay(const ma_delay_node* pDelayNode) #endif /* MA_NO_NODE_GRAPH */ +/* SECTION: miniaudio_engine.c */ #if !defined(MA_NO_ENGINE) && !defined(MA_NO_NODE_GRAPH) /************************************************************************************************************************************************************** @@ -70946,6 +73991,27 @@ Engine **************************************************************************************************************************************************************/ #define MA_SEEK_TARGET_NONE (~(ma_uint64)0) + +static void ma_sound_set_at_end(ma_sound* pSound, ma_bool32 atEnd) +{ + MA_ASSERT(pSound != NULL); + ma_atomic_exchange_32(&pSound->atEnd, atEnd); + + /* Fire any callbacks or events. */ + if (atEnd) { + if (pSound->endCallback != NULL) { + pSound->endCallback(pSound->pEndCallbackUserData, pSound); + } + } +} + +static ma_bool32 ma_sound_get_at_end(const ma_sound* pSound) +{ + MA_ASSERT(pSound != NULL); + return ma_atomic_load_32(&pSound->atEnd); +} + + MA_API ma_engine_node_config ma_engine_node_config_init(ma_engine* pEngine, ma_engine_node_type type, ma_uint32 flags) { ma_engine_node_config config; @@ -70955,6 +74021,7 @@ MA_API ma_engine_node_config ma_engine_node_config_init(ma_engine* pEngine, ma_e config.type = type; config.isPitchDisabled = (flags & MA_SOUND_FLAG_NO_PITCH) != 0; config.isSpatializationDisabled = (flags & MA_SOUND_FLAG_NO_SPATIALIZATION) != 0; + config.monoExpansionMode = pEngine->monoExpansionMode; return config; } @@ -70967,7 +74034,7 @@ static void ma_engine_node_update_pitch_if_required(ma_engine_node* pEngineNode) MA_ASSERT(pEngineNode != NULL); - newPitch = c89atomic_load_explicit_f32(&pEngineNode->pitch, c89atomic_memory_order_acquire); + newPitch = ma_atomic_load_explicit_f32(&pEngineNode->pitch, ma_atomic_memory_order_acquire); if (pEngineNode->oldPitch != newPitch) { pEngineNode->oldPitch = newPitch; @@ -70990,14 +74057,14 @@ static ma_bool32 ma_engine_node_is_pitching_enabled(const ma_engine_node* pEngin MA_ASSERT(pEngineNode != NULL); /* Don't try to be clever by skiping resampling in the pitch=1 case or else you'll glitch when moving away from 1. */ - return !c89atomic_load_explicit_32(&pEngineNode->isPitchDisabled, c89atomic_memory_order_acquire); + return !ma_atomic_load_explicit_32(&pEngineNode->isPitchDisabled, ma_atomic_memory_order_acquire); } static ma_bool32 ma_engine_node_is_spatialization_enabled(const ma_engine_node* pEngineNode) { MA_ASSERT(pEngineNode != NULL); - return !c89atomic_load_explicit_32(&pEngineNode->isSpatializationDisabled, c89atomic_memory_order_acquire); + return !ma_atomic_load_explicit_32(&pEngineNode->isSpatializationDisabled, ma_atomic_memory_order_acquire); } static ma_uint64 ma_engine_node_get_required_input_frame_count(const ma_engine_node* pEngineNode, ma_uint64 outputFrameCount) @@ -71016,6 +74083,44 @@ static ma_uint64 ma_engine_node_get_required_input_frame_count(const ma_engine_n return inputFrameCount; } +static ma_result ma_engine_node_set_volume(ma_engine_node* pEngineNode, float volume) +{ + if (pEngineNode == NULL) { + return MA_INVALID_ARGS; + } + + ma_atomic_float_set(&pEngineNode->volume, volume); + + /* If we're not smoothing we should bypass the volume gainer entirely. */ + if (pEngineNode->volumeSmoothTimeInPCMFrames == 0) { + /* We should always have an active spatializer because it can be enabled and disabled dynamically. We can just use that for hodling our volume. */ + ma_spatializer_set_master_volume(&pEngineNode->spatializer, volume); + } else { + /* We're using volume smoothing, so apply the master volume to the gainer. */ + ma_gainer_set_gain(&pEngineNode->volumeGainer, volume); + } + + return MA_SUCCESS; +} + +static ma_result ma_engine_node_get_volume(const ma_engine_node* pEngineNode, float* pVolume) +{ + if (pVolume == NULL) { + return MA_INVALID_ARGS; + } + + *pVolume = 0.0f; + + if (pEngineNode == NULL) { + return MA_INVALID_ARGS; + } + + *pVolume = ma_atomic_float_get((ma_atomic_float*)&pEngineNode->volume); + + return MA_SUCCESS; +} + + static void ma_engine_node_process_pcm_frames__general(ma_engine_node* pEngineNode, const float** ppFramesIn, ma_uint32* pFrameCountIn, float** ppFramesOut, ma_uint32* pFrameCountOut) { ma_uint32 frameCountIn; @@ -71028,6 +74133,7 @@ static void ma_engine_node_process_pcm_frames__general(ma_engine_node* pEngineNo ma_bool32 isFadingEnabled; ma_bool32 isSpatializationEnabled; ma_bool32 isPanningEnabled; + ma_bool32 isVolumeSmoothingEnabled; frameCountIn = *pFrameCountIn; frameCountOut = *pFrameCountOut; @@ -71038,10 +74144,31 @@ static void ma_engine_node_process_pcm_frames__general(ma_engine_node* pEngineNo totalFramesProcessedIn = 0; totalFramesProcessedOut = 0; - isPitchingEnabled = ma_engine_node_is_pitching_enabled(pEngineNode); - isFadingEnabled = pEngineNode->fader.volumeBeg != 1 || pEngineNode->fader.volumeEnd != 1; - isSpatializationEnabled = ma_engine_node_is_spatialization_enabled(pEngineNode); - isPanningEnabled = pEngineNode->panner.pan != 0 && channelsOut != 1; + /* Update the fader if applicable. */ + { + ma_uint64 fadeLengthInFrames = ma_atomic_uint64_get(&pEngineNode->fadeSettings.fadeLengthInFrames); + if (fadeLengthInFrames != ~(ma_uint64)0) { + float fadeVolumeBeg = ma_atomic_float_get(&pEngineNode->fadeSettings.volumeBeg); + float fadeVolumeEnd = ma_atomic_float_get(&pEngineNode->fadeSettings.volumeEnd); + ma_int64 fadeStartOffsetInFrames = (ma_int64)ma_atomic_uint64_get(&pEngineNode->fadeSettings.absoluteGlobalTimeInFrames); + if (fadeStartOffsetInFrames == (ma_int64)(~(ma_uint64)0)) { + fadeStartOffsetInFrames = 0; + } else { + fadeStartOffsetInFrames -= ma_engine_get_time_in_pcm_frames(pEngineNode->pEngine); + } + + ma_fader_set_fade_ex(&pEngineNode->fader, fadeVolumeBeg, fadeVolumeEnd, fadeLengthInFrames, fadeStartOffsetInFrames); + + /* Reset the fade length so we don't erroneously apply it again. */ + ma_atomic_uint64_set(&pEngineNode->fadeSettings.fadeLengthInFrames, ~(ma_uint64)0); + } + } + + isPitchingEnabled = ma_engine_node_is_pitching_enabled(pEngineNode); + isFadingEnabled = pEngineNode->fader.volumeBeg != 1 || pEngineNode->fader.volumeEnd != 1; + isSpatializationEnabled = ma_engine_node_is_spatialization_enabled(pEngineNode); + isPanningEnabled = pEngineNode->panner.pan != 0 && channelsOut != 1; + isVolumeSmoothingEnabled = pEngineNode->volumeSmoothTimeInPCMFrames > 0; /* Keep going while we've still got data available for processing. */ while (totalFramesProcessedOut < frameCountOut) { @@ -71055,10 +74182,10 @@ static void ma_engine_node_process_pcm_frames__general(ma_engine_node* pEngineNo the output buffer and then do all effects from that point directly in the output buffer in-place. - Note that we're always running the resampler. If we try to be clever and skip resampling - when the pitch is 1, we'll get a glitch when we move away from 1, back to 1, and then - away from 1 again. We'll want to implement any pitch=1 optimizations in the resampler - itself. + Note that we're always running the resampler if pitching is enabled, even when the pitch + is 1. If we try to be clever and skip resampling when the pitch is 1, we'll get a glitch + when we move away from 1, back to 1, and then away from 1 again. We'll want to implement + any pitch=1 optimizations in the resampler itself. There's a small optimization here that we'll utilize since it might be a fairly common case. When the input and output channel counts are the same, we'll read straight into the @@ -71117,6 +74244,19 @@ static void ma_engine_node_process_pcm_frames__general(ma_engine_node* pEngineNo } } + /* + If we're using smoothing, we won't be applying volume via the spatializer, but instead from a ma_gainer. In this case + we'll want to apply our volume now. + */ + if (isVolumeSmoothingEnabled) { + if (isWorkingBufferValid) { + ma_gainer_process_pcm_frames(&pEngineNode->volumeGainer, pWorkingBuffer, pWorkingBuffer, framesJustProcessedOut); + } else { + ma_gainer_process_pcm_frames(&pEngineNode->volumeGainer, pWorkingBuffer, pRunningFramesIn, framesJustProcessedOut); + isWorkingBufferValid = MA_TRUE; + } + } + /* If at this point we still haven't actually done anything with the working buffer we need to just read straight from the input buffer. @@ -71136,18 +74276,33 @@ static void ma_engine_node_process_pcm_frames__general(ma_engine_node* pEngineNo if (pEngineNode->pinnedListenerIndex != MA_LISTENER_INDEX_CLOSEST && pEngineNode->pinnedListenerIndex < ma_engine_get_listener_count(pEngineNode->pEngine)) { iListener = pEngineNode->pinnedListenerIndex; } else { - iListener = ma_engine_find_closest_listener(pEngineNode->pEngine, pEngineNode->spatializer.position.x, pEngineNode->spatializer.position.y, pEngineNode->spatializer.position.z); + ma_vec3f spatializerPosition = ma_spatializer_get_position(&pEngineNode->spatializer); + iListener = ma_engine_find_closest_listener(pEngineNode->pEngine, spatializerPosition.x, spatializerPosition.y, spatializerPosition.z); } ma_spatializer_process_pcm_frames(&pEngineNode->spatializer, &pEngineNode->pEngine->listeners[iListener], pRunningFramesOut, pWorkingBuffer, framesJustProcessedOut); } else { - /* No spatialization, but we still need to do channel conversion. */ + /* No spatialization, but we still need to do channel conversion and master volume. */ + float volume; + ma_engine_node_get_volume(pEngineNode, &volume); /* Should never fail. */ + if (channelsIn == channelsOut) { /* No channel conversion required. Just copy straight to the output buffer. */ - ma_copy_pcm_frames(pRunningFramesOut, pWorkingBuffer, framesJustProcessedOut, ma_format_f32, channelsOut); + if (isVolumeSmoothingEnabled) { + /* Volume has already been applied. Just copy straight to the output buffer. */ + ma_copy_pcm_frames(pRunningFramesOut, pWorkingBuffer, framesJustProcessedOut * channelsOut, ma_format_f32, channelsOut); + } else { + /* Volume has not been applied yet. Copy and apply volume in the same pass. */ + ma_copy_and_apply_volume_factor_f32(pRunningFramesOut, pWorkingBuffer, framesJustProcessedOut * channelsOut, volume); + } } else { /* Channel conversion required. TODO: Add support for channel maps here. */ - ma_channel_map_apply_f32(pRunningFramesOut, NULL, channelsOut, pWorkingBuffer, NULL, channelsIn, framesJustProcessedOut, ma_channel_mix_mode_simple, pEngineNode->pEngine->monoExpansionMode); + ma_channel_map_apply_f32(pRunningFramesOut, NULL, channelsOut, pWorkingBuffer, NULL, channelsIn, framesJustProcessedOut, ma_channel_mix_mode_simple, pEngineNode->monoExpansionMode); + + /* If we're using smoothing, the volume will have already been applied. */ + if (!isVolumeSmoothingEnabled) { + ma_apply_volume_factor_f32(pRunningFramesOut, framesJustProcessedOut * channelsOut, volume); + } } } @@ -71198,14 +74353,14 @@ static void ma_engine_node_process_pcm_frames__sound(ma_node* pNode, const float } /* If we're seeking, do so now before reading. */ - seekTarget = c89atomic_load_64(&pSound->seekTarget); + seekTarget = ma_atomic_load_64(&pSound->seekTarget); if (seekTarget != MA_SEEK_TARGET_NONE) { ma_data_source_seek_to_pcm_frame(pSound->pDataSource, seekTarget); /* Any time-dependant effects need to have their times updated. */ ma_node_set_time(pSound, seekTarget); - c89atomic_exchange_64(&pSound->seekTarget, MA_SEEK_TARGET_NONE); + ma_atomic_exchange_64(&pSound->seekTarget, MA_SEEK_TARGET_NONE); } /* @@ -71250,7 +74405,7 @@ static void ma_engine_node_process_pcm_frames__sound(ma_node* pNode, const float /* If we reached the end of the sound we'll want to mark it as at the end and stop it. This should never be returned for looping sounds. */ if (result == MA_AT_END) { - c89atomic_exchange_32(&pSound->atEnd, MA_TRUE); /* This will be set to false in ma_sound_start(). */ + ma_sound_set_at_end(pSound, MA_TRUE); /* This will be set to false in ma_sound_start(). */ } pRunningFramesOut = ma_offset_pcm_frames_ptr_f32(ppFramesOut[0], totalFramesRead, ma_engine_get_channels(ma_sound_get_engine(pSound))); @@ -71371,6 +74526,7 @@ typedef struct size_t baseNodeOffset; size_t resamplerOffset; size_t spatializerOffset; + size_t gainerOffset; } ma_engine_node_heap_layout; static ma_result ma_engine_node_get_heap_layout(const ma_engine_node_config* pConfig, ma_engine_node_heap_layout* pHeapLayout) @@ -71380,8 +74536,10 @@ static ma_result ma_engine_node_get_heap_layout(const ma_engine_node_config* pCo ma_node_config baseNodeConfig; ma_linear_resampler_config resamplerConfig; ma_spatializer_config spatializerConfig; + ma_gainer_config gainerConfig; ma_uint32 channelsIn; ma_uint32 channelsOut; + ma_channel defaultStereoChannelMap[2] = {MA_CHANNEL_SIDE_LEFT, MA_CHANNEL_SIDE_RIGHT}; /* <-- Consistent with the default channel map of a stereo listener. Means channel conversion can run on a fast path. */ MA_ASSERT(pHeapLayout); @@ -71418,7 +74576,7 @@ static ma_result ma_engine_node_get_heap_layout(const ma_engine_node_config* pCo /* Resmapler. */ resamplerConfig = ma_linear_resampler_config_init(ma_format_f32, channelsIn, 1, 1); /* Input and output sample rates don't affect the calculation of the heap size. */ resamplerConfig.lpfOrder = 0; - + result = ma_linear_resampler_get_heap_size(&resamplerConfig, &tempHeapSize); if (result != MA_SUCCESS) { return result; /* Failed to retrieve the size of the heap for the resampler. */ @@ -71431,6 +74589,10 @@ static ma_result ma_engine_node_get_heap_layout(const ma_engine_node_config* pCo /* Spatializer. */ spatializerConfig = ma_engine_node_spatializer_config_init(&baseNodeConfig); + if (spatializerConfig.channelsIn == 2) { + spatializerConfig.pChannelMapIn = defaultStereoChannelMap; + } + result = ma_spatializer_get_heap_size(&spatializerConfig, &tempHeapSize); if (result != MA_SUCCESS) { return result; /* Failed to retrieve the size of the heap for the spatializer. */ @@ -71440,6 +74602,20 @@ static ma_result ma_engine_node_get_heap_layout(const ma_engine_node_config* pCo pHeapLayout->sizeInBytes += ma_align_64(tempHeapSize); + /* Gainer. Will not be used if we are not using smoothing. */ + if (pConfig->volumeSmoothTimeInPCMFrames > 0) { + gainerConfig = ma_gainer_config_init(channelsIn, pConfig->volumeSmoothTimeInPCMFrames); + + result = ma_gainer_get_heap_size(&gainerConfig, &tempHeapSize); + if (result != MA_SUCCESS) { + return result; + } + + pHeapLayout->gainerOffset = pHeapLayout->sizeInBytes; + pHeapLayout->sizeInBytes += ma_align_64(tempHeapSize); + } + + return MA_SUCCESS; } @@ -71473,8 +74649,10 @@ MA_API ma_result ma_engine_node_init_preallocated(const ma_engine_node_config* p ma_fader_config faderConfig; ma_spatializer_config spatializerConfig; ma_panner_config pannerConfig; + ma_gainer_config gainerConfig; ma_uint32 channelsIn; ma_uint32 channelsOut; + ma_channel defaultStereoChannelMap[2] = {MA_CHANNEL_SIDE_LEFT, MA_CHANNEL_SIDE_RIGHT}; /* <-- Consistent with the default channel map of a stereo listener. Means channel conversion can run on a fast path. */ if (pEngineNode == NULL) { return MA_INVALID_ARGS; @@ -71494,19 +74672,33 @@ MA_API ma_result ma_engine_node_init_preallocated(const ma_engine_node_config* p pEngineNode->_pHeap = pHeap; MA_ZERO_MEMORY(pHeap, heapLayout.sizeInBytes); - pEngineNode->pEngine = pConfig->pEngine; - pEngineNode->sampleRate = (pConfig->sampleRate > 0) ? pConfig->sampleRate : ma_engine_get_sample_rate(pEngineNode->pEngine); - pEngineNode->pitch = 1; - pEngineNode->oldPitch = 1; - pEngineNode->oldDopplerPitch = 1; - pEngineNode->isPitchDisabled = pConfig->isPitchDisabled; - pEngineNode->isSpatializationDisabled = pConfig->isSpatializationDisabled; - pEngineNode->pinnedListenerIndex = pConfig->pinnedListenerIndex; - + pEngineNode->pEngine = pConfig->pEngine; + pEngineNode->sampleRate = (pConfig->sampleRate > 0) ? pConfig->sampleRate : ma_engine_get_sample_rate(pEngineNode->pEngine); + pEngineNode->volumeSmoothTimeInPCMFrames = pConfig->volumeSmoothTimeInPCMFrames; + pEngineNode->monoExpansionMode = pConfig->monoExpansionMode; + ma_atomic_float_set(&pEngineNode->volume, 1); + pEngineNode->pitch = 1; + pEngineNode->oldPitch = 1; + pEngineNode->oldDopplerPitch = 1; + pEngineNode->isPitchDisabled = pConfig->isPitchDisabled; + pEngineNode->isSpatializationDisabled = pConfig->isSpatializationDisabled; + pEngineNode->pinnedListenerIndex = pConfig->pinnedListenerIndex; + ma_atomic_float_set(&pEngineNode->fadeSettings.volumeBeg, 1); + ma_atomic_float_set(&pEngineNode->fadeSettings.volumeEnd, 1); + ma_atomic_uint64_set(&pEngineNode->fadeSettings.fadeLengthInFrames, (~(ma_uint64)0)); + ma_atomic_uint64_set(&pEngineNode->fadeSettings.absoluteGlobalTimeInFrames, (~(ma_uint64)0)); /* <-- Indicates that the fade should start immediately. */ channelsIn = (pConfig->channelsIn != 0) ? pConfig->channelsIn : ma_engine_get_channels(pConfig->pEngine); channelsOut = (pConfig->channelsOut != 0) ? pConfig->channelsOut : ma_engine_get_channels(pConfig->pEngine); + /* + If the sample rate of the sound is different to the engine, make sure pitching is enabled so that the resampler + is activated. Not doing this will result in the sound not being resampled if MA_SOUND_FLAG_NO_PITCH is used. + */ + if (pEngineNode->sampleRate != ma_engine_get_sample_rate(pEngineNode->pEngine)) { + pEngineNode->isPitchDisabled = MA_FALSE; + } + /* Base node. */ baseNodeConfig = ma_engine_node_base_node_config_init(pConfig); @@ -71553,6 +74745,10 @@ MA_API ma_result ma_engine_node_init_preallocated(const ma_engine_node_config* p spatializerConfig = ma_engine_node_spatializer_config_init(&baseNodeConfig); spatializerConfig.gainSmoothTimeInFrames = pEngineNode->pEngine->gainSmoothTimeInFrames; + if (spatializerConfig.channelsIn == 2) { + spatializerConfig.pChannelMapIn = defaultStereoChannelMap; + } + result = ma_spatializer_init_preallocated(&spatializerConfig, ma_offset_ptr(pHeap, heapLayout.spatializerOffset), &pEngineNode->spatializer); if (result != MA_SUCCESS) { goto error2; @@ -71570,6 +74766,18 @@ MA_API ma_result ma_engine_node_init_preallocated(const ma_engine_node_config* p goto error3; } + + /* We'll need a gainer for smoothing out volume changes if we have a non-zero smooth time. We apply this before converting to the output channel count. */ + if (pConfig->volumeSmoothTimeInPCMFrames > 0) { + gainerConfig = ma_gainer_config_init(channelsIn, pConfig->volumeSmoothTimeInPCMFrames); + + result = ma_gainer_init_preallocated(&gainerConfig, ma_offset_ptr(pHeap, heapLayout.gainerOffset), &pEngineNode->volumeGainer); + if (result != MA_SUCCESS) { + goto error3; + } + } + + return MA_SUCCESS; /* No need for allocation callbacks here because we use a preallocated heap. */ @@ -71618,6 +74826,10 @@ MA_API void ma_engine_node_uninit(ma_engine_node* pEngineNode, const ma_allocati ma_node_uninit(&pEngineNode->baseNode, pAllocationCallbacks); /* Now that the node has been uninitialized we can safely uninitialize the rest. */ + if (pEngineNode->volumeSmoothTimeInPCMFrames > 0) { + ma_gainer_uninit(&pEngineNode->volumeGainer, pAllocationCallbacks); + } + ma_spatializer_uninit(&pEngineNode->spatializer, pAllocationCallbacks); ma_linear_resampler_uninit(&pEngineNode->resampler, pAllocationCallbacks); @@ -71629,10 +74841,22 @@ MA_API void ma_engine_node_uninit(ma_engine_node* pEngineNode, const ma_allocati MA_API ma_sound_config ma_sound_config_init(void) +{ + return ma_sound_config_init_2(NULL); +} + +MA_API ma_sound_config ma_sound_config_init_2(ma_engine* pEngine) { ma_sound_config config; MA_ZERO_OBJECT(&config); + + if (pEngine != NULL) { + config.monoExpansionMode = pEngine->monoExpansionMode; + } else { + config.monoExpansionMode = ma_mono_expansion_mode_default; + } + config.rangeEndInPCMFrames = ~((ma_uint64)0); config.loopPointEndInPCMFrames = ~((ma_uint64)0); @@ -71640,11 +74864,22 @@ MA_API ma_sound_config ma_sound_config_init(void) } MA_API ma_sound_group_config ma_sound_group_config_init(void) +{ + return ma_sound_group_config_init_2(NULL); +} + +MA_API ma_sound_group_config ma_sound_group_config_init_2(ma_engine* pEngine) { ma_sound_group_config config; MA_ZERO_OBJECT(&config); + if (pEngine != NULL) { + config.monoExpansionMode = pEngine->monoExpansionMode; + } else { + config.monoExpansionMode = ma_mono_expansion_mode_default; + } + return config; } @@ -71718,6 +74953,9 @@ MA_API ma_result ma_engine_init(const ma_engine_config* pConfig, ma_engine* pEng } pEngine->monoExpansionMode = engineConfig.monoExpansionMode; + pEngine->defaultVolumeSmoothTimeInPCMFrames = engineConfig.defaultVolumeSmoothTimeInPCMFrames; + pEngine->onProcess = engineConfig.onProcess; + pEngine->pProcessUserData = engineConfig.pProcessUserData; ma_allocation_callbacks_init_copy(&pEngine->allocationCallbacks, &engineConfig.allocationCallbacks); #if !defined(MA_NO_RESOURCE_MANAGER) @@ -71729,7 +74967,7 @@ MA_API ma_result ma_engine_init(const ma_engine_config* pConfig, ma_engine* pEng #if !defined(MA_NO_DEVICE_IO) { pEngine->pDevice = engineConfig.pDevice; - + /* If we don't have a device, we need one. */ if (pEngine->pDevice == NULL && engineConfig.noDevice == MA_FALSE) { ma_device_config deviceConfig; @@ -71744,8 +74982,9 @@ MA_API ma_result ma_engine_init(const ma_engine_config* pConfig, ma_engine* pEng deviceConfig.playback.format = ma_format_f32; deviceConfig.playback.channels = engineConfig.channels; deviceConfig.sampleRate = engineConfig.sampleRate; - deviceConfig.dataCallback = ma_engine_data_callback_internal; + deviceConfig.dataCallback = (engineConfig.dataCallback != NULL) ? engineConfig.dataCallback : ma_engine_data_callback_internal; deviceConfig.pUserData = pEngine; + deviceConfig.notificationCallback = engineConfig.notificationCallback; deviceConfig.periodSizeInFrames = engineConfig.periodSizeInFrames; deviceConfig.periodSizeInMilliseconds = engineConfig.periodSizeInMilliseconds; deviceConfig.noPreSilencedOutputBuffer = MA_TRUE; /* We'll always be outputting to every frame in the callback so there's no need for a pre-silenced buffer. */ @@ -71843,7 +75082,7 @@ MA_API ma_result ma_engine_init(const ma_engine_config* pConfig, ma_engine* pEng Temporarily disabled. There is a subtle bug here where front-left and front-right will be used by the device's channel map, but this is not what we want to use for spatialization. Instead we want to use side-left and side-right. I need to figure - out a better solution for this. For now, disabling the user of device channel maps. + out a better solution for this. For now, disabling the use of device channel maps. */ /*listenerConfig.pChannelMapOut = pEngine->pDevice->playback.channelMap;*/ } @@ -72015,7 +75254,27 @@ MA_API void ma_engine_uninit(ma_engine* pEngine) MA_API ma_result ma_engine_read_pcm_frames(ma_engine* pEngine, void* pFramesOut, ma_uint64 frameCount, ma_uint64* pFramesRead) { - return ma_node_graph_read_pcm_frames(&pEngine->nodeGraph, pFramesOut, frameCount, pFramesRead); + ma_result result; + ma_uint64 framesRead = 0; + + if (pFramesRead != NULL) { + *pFramesRead = 0; + } + + result = ma_node_graph_read_pcm_frames(&pEngine->nodeGraph, pFramesOut, frameCount, &framesRead); + if (result != MA_SUCCESS) { + return result; + } + + if (pFramesRead != NULL) { + *pFramesRead = framesRead; + } + + if (pEngine->onProcess) { + pEngine->onProcess(pEngine->pProcessUserData, (float*)pFramesOut, framesRead); /* Safe cast to float* because the engine always works on floating point samples. */ + } + + return MA_SUCCESS; } MA_API ma_node_graph* ma_engine_get_node_graph(ma_engine* pEngine) @@ -72089,16 +75348,36 @@ MA_API ma_node* ma_engine_get_endpoint(ma_engine* pEngine) return ma_node_graph_get_endpoint(&pEngine->nodeGraph); } -MA_API ma_uint64 ma_engine_get_time(const ma_engine* pEngine) +MA_API ma_uint64 ma_engine_get_time_in_pcm_frames(const ma_engine* pEngine) { return ma_node_graph_get_time(&pEngine->nodeGraph); } -MA_API ma_result ma_engine_set_time(ma_engine* pEngine, ma_uint64 globalTime) +MA_API ma_uint64 ma_engine_get_time_in_milliseconds(const ma_engine* pEngine) +{ + return ma_engine_get_time_in_pcm_frames(pEngine) * 1000 / ma_engine_get_sample_rate(pEngine); +} + +MA_API ma_result ma_engine_set_time_in_pcm_frames(ma_engine* pEngine, ma_uint64 globalTime) { return ma_node_graph_set_time(&pEngine->nodeGraph, globalTime); } +MA_API ma_result ma_engine_set_time_in_milliseconds(ma_engine* pEngine, ma_uint64 globalTime) +{ + return ma_engine_set_time_in_pcm_frames(pEngine, globalTime * ma_engine_get_sample_rate(pEngine) / 1000); +} + +MA_API ma_uint64 ma_engine_get_time(const ma_engine* pEngine) +{ + return ma_engine_get_time_in_pcm_frames(pEngine); +} + +MA_API ma_result ma_engine_set_time(ma_engine* pEngine, ma_uint64 globalTime) +{ + return ma_engine_set_time_in_pcm_frames(pEngine, globalTime); +} + MA_API ma_uint32 ma_engine_get_channels(const ma_engine* pEngine) { return ma_node_graph_get_channels(&pEngine->nodeGraph); @@ -72181,13 +75460,23 @@ MA_API ma_result ma_engine_set_volume(ma_engine* pEngine, float volume) return ma_node_set_output_bus_volume(ma_node_graph_get_endpoint(&pEngine->nodeGraph), 0, volume); } -MA_API ma_result ma_engine_set_gain_db(ma_engine* pEngine, float gainDB) +MA_API float ma_engine_get_volume(ma_engine* pEngine) { if (pEngine == NULL) { - return MA_INVALID_ARGS; + return 0; } - return ma_node_set_output_bus_volume(ma_node_graph_get_endpoint(&pEngine->nodeGraph), 0, ma_volume_db_to_linear(gainDB)); + return ma_node_get_output_bus_volume(ma_node_graph_get_endpoint(&pEngine->nodeGraph), 0); +} + +MA_API ma_result ma_engine_set_gain_db(ma_engine* pEngine, float gainDB) +{ + return ma_engine_set_volume(pEngine, ma_volume_db_to_linear(gainDB)); +} + +MA_API float ma_engine_get_gain_db(ma_engine* pEngine) +{ + return ma_volume_linear_to_db(ma_engine_get_volume(pEngine)); } @@ -72213,7 +75502,7 @@ MA_API ma_uint32 ma_engine_find_closest_listener(const ma_engine* pEngine, float iListenerClosest = 0; for (iListener = 0; iListener < pEngine->listenerCount; iListener += 1) { if (ma_engine_listener_is_enabled(pEngine, iListener)) { - float len2 = ma_vec3f_len2(ma_vec3f_sub(pEngine->listeners[iListener].position, ma_vec3f_init_3f(absolutePosX, absolutePosY, absolutePosZ))); + float len2 = ma_vec3f_len2(ma_vec3f_sub(ma_spatializer_listener_get_position(&pEngine->listeners[iListener]), ma_vec3f_init_3f(absolutePosX, absolutePosY, absolutePosZ))); if (closestLen2 > len2) { closestLen2 = len2; iListenerClosest = iListener; @@ -72302,6 +75591,10 @@ MA_API void ma_engine_listener_get_cone(const ma_engine* pEngine, ma_uint32 list *pOuterGain = 0; } + if (pEngine == NULL || listenerIndex >= pEngine->listenerCount) { + return; + } + ma_spatializer_listener_get_cone(&pEngine->listeners[listenerIndex], pInnerAngleInRadians, pOuterAngleInRadians, pOuterGain); } @@ -72382,7 +75675,7 @@ MA_API ma_result ma_engine_play_sound_ex(ma_engine* pEngine, const char* pFilePa is uninitialize it and reinitialize it. All we're doing is recycling memory. */ pSound = pNextSound; - c89atomic_fetch_sub_32(&pEngine->inlinedSoundCount, 1); + ma_atomic_fetch_sub_32(&pEngine->inlinedSoundCount, 1); break; } } @@ -72453,11 +75746,11 @@ MA_API ma_result ma_engine_play_sound_ex(ma_engine* pEngine, const char* pFilePa result = ma_sound_start(&pSound->sound); if (result != MA_SUCCESS) { /* Failed to start the sound. We need to mark it for recycling and return an error. */ - c89atomic_exchange_32(&pSound->sound.atEnd, MA_TRUE); + ma_atomic_exchange_32(&pSound->sound.atEnd, MA_TRUE); return result; } - c89atomic_fetch_add_32(&pEngine->inlinedSoundCount, 1); + ma_atomic_fetch_add_32(&pEngine->inlinedSoundCount, 1); return result; } @@ -72512,8 +75805,14 @@ static ma_result ma_sound_init_from_data_source_internal(ma_engine* pEngine, con source that provides this information upfront. */ engineNodeConfig = ma_engine_node_config_init(pEngine, type, pConfig->flags); - engineNodeConfig.channelsIn = pConfig->channelsIn; - engineNodeConfig.channelsOut = pConfig->channelsOut; + engineNodeConfig.channelsIn = pConfig->channelsIn; + engineNodeConfig.channelsOut = pConfig->channelsOut; + engineNodeConfig.volumeSmoothTimeInPCMFrames = pConfig->volumeSmoothTimeInPCMFrames; + engineNodeConfig.monoExpansionMode = pConfig->monoExpansionMode; + + if (engineNodeConfig.volumeSmoothTimeInPCMFrames == 0) { + engineNodeConfig.volumeSmoothTimeInPCMFrames = pEngine->defaultVolumeSmoothTimeInPCMFrames; + } /* If we're loading from a data source the input channel count needs to be the data source's native channel count. */ if (pConfig->pDataSource != NULL) { @@ -72540,7 +75839,7 @@ static ma_result ma_sound_init_from_data_source_internal(ma_engine* pEngine, con /* If no attachment is specified, attach the sound straight to the endpoint. */ if (pConfig->pInitialAttachment == NULL) { - /* No group. Attach straight to the endpoint by default, unless the caller has requested that do not. */ + /* No group. Attach straight to the endpoint by default, unless the caller has requested that it not. */ if ((pConfig->flags & MA_SOUND_FLAG_NO_DEFAULT_ATTACHMENT) == 0) { result = ma_node_attach_output_bus(pSound, 0, ma_node_graph_get_endpoint(&pEngine->nodeGraph), 0); } @@ -72594,8 +75893,11 @@ MA_API ma_result ma_sound_init_from_file_internal(ma_engine* pEngine, const ma_s return MA_OUT_OF_MEMORY; } - notifications = ma_resource_manager_pipeline_notifications_init(); - notifications.done.pFence = pConfig->pDoneFence; + /* Removed in 0.12. Set pDoneFence on the notifications. */ + notifications = pConfig->initNotifications; + if (pConfig->pDoneFence != NULL && notifications.done.pFence == NULL) { + notifications.done.pFence = pConfig->pDoneFence; + } /* We must wrap everything around the fence if one was specified. This ensures ma_fence_wait() does @@ -72643,21 +75945,35 @@ done: MA_API ma_result ma_sound_init_from_file(ma_engine* pEngine, const char* pFilePath, ma_uint32 flags, ma_sound_group* pGroup, ma_fence* pDoneFence, ma_sound* pSound) { - ma_sound_config config = ma_sound_config_init(); + ma_sound_config config; + + if (pFilePath == NULL) { + return MA_INVALID_ARGS; + } + + config = ma_sound_config_init_2(pEngine); config.pFilePath = pFilePath; config.flags = flags; config.pInitialAttachment = pGroup; config.pDoneFence = pDoneFence; + return ma_sound_init_ex(pEngine, &config, pSound); } MA_API ma_result ma_sound_init_from_file_w(ma_engine* pEngine, const wchar_t* pFilePath, ma_uint32 flags, ma_sound_group* pGroup, ma_fence* pDoneFence, ma_sound* pSound) { - ma_sound_config config = ma_sound_config_init(); + ma_sound_config config; + + if (pFilePath == NULL) { + return MA_INVALID_ARGS; + } + + config = ma_sound_config_init_2(pEngine); config.pFilePathW = pFilePath; config.flags = flags; config.pInitialAttachment = pGroup; config.pDoneFence = pDoneFence; + return ma_sound_init_ex(pEngine, &config, pSound); } @@ -72682,7 +75998,7 @@ MA_API ma_result ma_sound_init_copy(ma_engine* pEngine, const ma_sound* pExistin /* We need to make a clone of the data source. If the data source is not a data buffer (i.e. a stream) - the this will fail. + this will fail. */ pSound->pResourceManagerDataSource = (ma_resource_manager_data_source*)ma_malloc(sizeof(*pSound->pResourceManagerDataSource), &pEngine->allocationCallbacks); if (pSound->pResourceManagerDataSource == NULL) { @@ -72695,10 +76011,12 @@ MA_API ma_result ma_sound_init_copy(ma_engine* pEngine, const ma_sound* pExistin return result; } - config = ma_sound_config_init(); - config.pDataSource = pSound->pResourceManagerDataSource; - config.flags = flags; - config.pInitialAttachment = pGroup; + config = ma_sound_config_init_2(pEngine); + config.pDataSource = pSound->pResourceManagerDataSource; + config.flags = flags; + config.pInitialAttachment = pGroup; + config.monoExpansionMode = pExistingSound->engineNode.monoExpansionMode; + config.volumeSmoothTimeInPCMFrames = pExistingSound->engineNode.volumeSmoothTimeInPCMFrames; result = ma_sound_init_from_data_source_internal(pEngine, &config, pSound); if (result != MA_SUCCESS) { @@ -72708,13 +76026,16 @@ MA_API ma_result ma_sound_init_copy(ma_engine* pEngine, const ma_sound* pExistin return result; } + /* Make sure the sound is marked as the owner of the data source or else it will never get uninitialized. */ + pSound->ownsDataSource = MA_TRUE; + return MA_SUCCESS; } #endif MA_API ma_result ma_sound_init_from_data_source(ma_engine* pEngine, ma_data_source* pDataSource, ma_uint32 flags, ma_sound_group* pGroup, ma_sound* pSound) { - ma_sound_config config = ma_sound_config_init(); + ma_sound_config config = ma_sound_config_init_2(pEngine); config.pDataSource = pDataSource; config.flags = flags; config.pInitialAttachment = pGroup; @@ -72734,6 +76055,9 @@ MA_API ma_result ma_sound_init_ex(ma_engine* pEngine, const ma_sound_config* pCo return MA_INVALID_ARGS; } + pSound->endCallback = pConfig->endCallback; + pSound->pEndCallbackUserData = pConfig->pEndCallbackUserData; + /* We need to load the sound differently depending on whether or not we're loading from a file. */ #ifndef MA_NO_RESOURCE_MANAGER if (pConfig->pFilePath != NULL || pConfig->pFilePathW != NULL) { @@ -72812,7 +76136,7 @@ MA_API ma_result ma_sound_start(ma_sound* pSound) } /* Make sure we clear the end indicator. */ - c89atomic_exchange_32(&pSound->atEnd, MA_FALSE); + ma_atomic_exchange_32(&pSound->atEnd, MA_FALSE); } /* Make sure the sound is started. If there's a start delay, the sound won't actually start until the start time is reached. */ @@ -72833,23 +76157,51 @@ MA_API ma_result ma_sound_stop(ma_sound* pSound) return MA_SUCCESS; } +MA_API ma_result ma_sound_stop_with_fade_in_pcm_frames(ma_sound* pSound, ma_uint64 fadeLengthInFrames) +{ + if (pSound == NULL) { + return MA_INVALID_ARGS; + } + + /* Stopping with a fade out requires us to schedule the stop into the future by the fade length. */ + ma_sound_set_stop_time_with_fade_in_pcm_frames(pSound, ma_engine_get_time_in_pcm_frames(ma_sound_get_engine(pSound)) + fadeLengthInFrames, fadeLengthInFrames); + + return MA_SUCCESS; +} + +MA_API ma_result ma_sound_stop_with_fade_in_milliseconds(ma_sound* pSound, ma_uint64 fadeLengthInMilliseconds) +{ + ma_uint64 sampleRate; + + if (pSound == NULL) { + return MA_INVALID_ARGS; + } + + sampleRate = ma_engine_get_sample_rate(ma_sound_get_engine(pSound)); + + return ma_sound_stop_with_fade_in_pcm_frames(pSound, (fadeLengthInMilliseconds * sampleRate) / 1000); +} + MA_API void ma_sound_set_volume(ma_sound* pSound, float volume) { if (pSound == NULL) { return; } - /* The volume is controlled via the output bus. */ - ma_node_set_output_bus_volume(pSound, 0, volume); + ma_engine_node_set_volume(&pSound->engineNode, volume); } MA_API float ma_sound_get_volume(const ma_sound* pSound) { + float volume = 0; + if (pSound == NULL) { return 0; } - return ma_node_get_output_bus_volume(pSound, 0); + ma_engine_node_get_volume(&pSound->engineNode, &volume); + + return volume; } MA_API void ma_sound_set_pan(ma_sound* pSound, float pan) @@ -72898,7 +76250,7 @@ MA_API void ma_sound_set_pitch(ma_sound* pSound, float pitch) return; } - c89atomic_exchange_explicit_f32(&pSound->engineNode.pitch, pitch, c89atomic_memory_order_release); + ma_atomic_exchange_explicit_f32(&pSound->engineNode.pitch, pitch, ma_atomic_memory_order_release); } MA_API float ma_sound_get_pitch(const ma_sound* pSound) @@ -72907,7 +76259,7 @@ MA_API float ma_sound_get_pitch(const ma_sound* pSound) return 0; } - return c89atomic_load_f32(&pSound->engineNode.pitch); /* Naughty const-cast for this. */ + return ma_atomic_load_f32(&pSound->engineNode.pitch); /* Naughty const-cast for this. */ } MA_API void ma_sound_set_spatialization_enabled(ma_sound* pSound, ma_bool32 enabled) @@ -72916,7 +76268,7 @@ MA_API void ma_sound_set_spatialization_enabled(ma_sound* pSound, ma_bool32 enab return; } - c89atomic_exchange_explicit_32(&pSound->engineNode.isSpatializationDisabled, !enabled, c89atomic_memory_order_release); + ma_atomic_exchange_explicit_32(&pSound->engineNode.isSpatializationDisabled, !enabled, ma_atomic_memory_order_release); } MA_API ma_bool32 ma_sound_is_spatialization_enabled(const ma_sound* pSound) @@ -72934,7 +76286,7 @@ MA_API void ma_sound_set_pinned_listener_index(ma_sound* pSound, ma_uint32 liste return; } - c89atomic_exchange_explicit_32(&pSound->engineNode.pinnedListenerIndex, listenerIndex, c89atomic_memory_order_release); + ma_atomic_exchange_explicit_32(&pSound->engineNode.pinnedListenerIndex, listenerIndex, ma_atomic_memory_order_release); } MA_API ma_uint32 ma_sound_get_pinned_listener_index(const ma_sound* pSound) @@ -72943,7 +76295,7 @@ MA_API ma_uint32 ma_sound_get_pinned_listener_index(const ma_sound* pSound) return MA_LISTENER_INDEX_CLOSEST; } - return c89atomic_load_explicit_32(&pSound->engineNode.pinnedListenerIndex, c89atomic_memory_order_acquire); + return ma_atomic_load_explicit_32(&pSound->engineNode.pinnedListenerIndex, ma_atomic_memory_order_acquire); } MA_API ma_uint32 ma_sound_get_listener_index(const ma_sound* pSound) @@ -73185,6 +76537,10 @@ MA_API void ma_sound_get_cone(const ma_sound* pSound, float* pInnerAngleInRadian *pOuterGain = 0; } + if (pSound == NULL) { + return; + } + ma_spatializer_get_cone(&pSound->engineNode.spatializer, pInnerAngleInRadians, pOuterAngleInRadians, pOuterGain); } @@ -73231,7 +76587,7 @@ MA_API void ma_sound_set_fade_in_pcm_frames(ma_sound* pSound, float volumeBeg, f return; } - ma_fader_set_fade(&pSound->engineNode.fader, volumeBeg, volumeEnd, fadeLengthInFrames); + ma_sound_set_fade_start_in_pcm_frames(pSound, volumeBeg, volumeEnd, fadeLengthInFrames, (~(ma_uint64)0)); } MA_API void ma_sound_set_fade_in_milliseconds(ma_sound* pSound, float volumeBeg, float volumeEnd, ma_uint64 fadeLengthInMilliseconds) @@ -73243,7 +76599,37 @@ MA_API void ma_sound_set_fade_in_milliseconds(ma_sound* pSound, float volumeBeg, ma_sound_set_fade_in_pcm_frames(pSound, volumeBeg, volumeEnd, (fadeLengthInMilliseconds * pSound->engineNode.fader.config.sampleRate) / 1000); } -MA_API float ma_sound_get_current_fade_volume(ma_sound* pSound) +MA_API void ma_sound_set_fade_start_in_pcm_frames(ma_sound* pSound, float volumeBeg, float volumeEnd, ma_uint64 fadeLengthInFrames, ma_uint64 absoluteGlobalTimeInFrames) +{ + if (pSound == NULL) { + return; + } + + /* + We don't want to update the fader at this point because we need to use the engine's current time + to derive the fader's start offset. The timer is being updated on the audio thread so in order to + do this as accurately as possible we'll need to defer this to the audio thread. + */ + ma_atomic_float_set(&pSound->engineNode.fadeSettings.volumeBeg, volumeBeg); + ma_atomic_float_set(&pSound->engineNode.fadeSettings.volumeEnd, volumeEnd); + ma_atomic_uint64_set(&pSound->engineNode.fadeSettings.fadeLengthInFrames, fadeLengthInFrames); + ma_atomic_uint64_set(&pSound->engineNode.fadeSettings.absoluteGlobalTimeInFrames, absoluteGlobalTimeInFrames); +} + +MA_API void ma_sound_set_fade_start_in_milliseconds(ma_sound* pSound, float volumeBeg, float volumeEnd, ma_uint64 fadeLengthInMilliseconds, ma_uint64 absoluteGlobalTimeInMilliseconds) +{ + ma_uint32 sampleRate; + + if (pSound == NULL) { + return; + } + + sampleRate = ma_engine_get_sample_rate(ma_sound_get_engine(pSound)); + + ma_sound_set_fade_start_in_pcm_frames(pSound, volumeBeg, volumeEnd, (fadeLengthInMilliseconds * sampleRate) / 1000, (absoluteGlobalTimeInMilliseconds * sampleRate) / 1000); +} + +MA_API float ma_sound_get_current_fade_volume(const ma_sound* pSound) { if (pSound == NULL) { return MA_INVALID_ARGS; @@ -73276,7 +76662,7 @@ MA_API void ma_sound_set_stop_time_in_pcm_frames(ma_sound* pSound, ma_uint64 abs return; } - ma_node_set_state_time(pSound, ma_node_state_stopped, absoluteGlobalTimeInFrames); + ma_sound_set_stop_time_with_fade_in_pcm_frames(pSound, absoluteGlobalTimeInFrames, 0); } MA_API void ma_sound_set_stop_time_in_milliseconds(ma_sound* pSound, ma_uint64 absoluteGlobalTimeInMilliseconds) @@ -73288,13 +76674,43 @@ MA_API void ma_sound_set_stop_time_in_milliseconds(ma_sound* pSound, ma_uint64 a ma_sound_set_stop_time_in_pcm_frames(pSound, absoluteGlobalTimeInMilliseconds * ma_engine_get_sample_rate(ma_sound_get_engine(pSound)) / 1000); } +MA_API void ma_sound_set_stop_time_with_fade_in_pcm_frames(ma_sound* pSound, ma_uint64 stopAbsoluteGlobalTimeInFrames, ma_uint64 fadeLengthInFrames) +{ + if (pSound == NULL) { + return; + } + + if (fadeLengthInFrames > 0) { + if (fadeLengthInFrames > stopAbsoluteGlobalTimeInFrames) { + fadeLengthInFrames = stopAbsoluteGlobalTimeInFrames; + } + + ma_sound_set_fade_start_in_pcm_frames(pSound, -1, 0, fadeLengthInFrames, stopAbsoluteGlobalTimeInFrames - fadeLengthInFrames); + } + + ma_node_set_state_time(pSound, ma_node_state_stopped, stopAbsoluteGlobalTimeInFrames); +} + +MA_API void ma_sound_set_stop_time_with_fade_in_milliseconds(ma_sound* pSound, ma_uint64 stopAbsoluteGlobalTimeInMilliseconds, ma_uint64 fadeLengthInMilliseconds) +{ + ma_uint32 sampleRate; + + if (pSound == NULL) { + return; + } + + sampleRate = ma_engine_get_sample_rate(ma_sound_get_engine(pSound)); + + ma_sound_set_stop_time_with_fade_in_pcm_frames(pSound, (stopAbsoluteGlobalTimeInMilliseconds * sampleRate) / 1000, (fadeLengthInMilliseconds * sampleRate) / 1000); +} + MA_API ma_bool32 ma_sound_is_playing(const ma_sound* pSound) { if (pSound == NULL) { return MA_FALSE; } - return ma_node_get_state_by_time(pSound, ma_engine_get_time(ma_sound_get_engine(pSound))) == ma_node_state_started; + return ma_node_get_state_by_time(pSound, ma_engine_get_time_in_pcm_frames(ma_sound_get_engine(pSound))) == ma_node_state_started; } MA_API ma_uint64 ma_sound_get_time_in_pcm_frames(const ma_sound* pSound) @@ -73306,6 +76722,11 @@ MA_API ma_uint64 ma_sound_get_time_in_pcm_frames(const ma_sound* pSound) return ma_node_get_time(pSound); } +MA_API ma_uint64 ma_sound_get_time_in_milliseconds(const ma_sound* pSound) +{ + return ma_sound_get_time_in_pcm_frames(pSound) * 1000 / ma_engine_get_sample_rate(ma_sound_get_engine(pSound)); +} + MA_API void ma_sound_set_looping(ma_sound* pSound, ma_bool32 isLooping) { if (pSound == NULL) { @@ -73346,7 +76767,7 @@ MA_API ma_bool32 ma_sound_at_end(const ma_sound* pSound) return MA_FALSE; } - return c89atomic_load_32(&pSound->atEnd); + return ma_sound_get_at_end(pSound); } MA_API ma_result ma_sound_seek_to_pcm_frame(ma_sound* pSound, ma_uint64 frameIndex) @@ -73361,7 +76782,7 @@ MA_API ma_result ma_sound_seek_to_pcm_frame(ma_sound* pSound, ma_uint64 frameInd } /* We can't be seeking while reading at the same time. We just set the seek target and get the mixing thread to do the actual seek. */ - c89atomic_exchange_64(&pSound->seekTarget, frameIndex); + ma_atomic_exchange_64(&pSound->seekTarget, frameIndex); return MA_SUCCESS; } @@ -73401,6 +76822,8 @@ MA_API ma_result ma_sound_get_data_format(ma_sound* pSound, ma_format* pFormat, MA_API ma_result ma_sound_get_cursor_in_pcm_frames(ma_sound* pSound, ma_uint64* pCursor) { + ma_uint64 seekTarget; + if (pSound == NULL) { return MA_INVALID_ARGS; } @@ -73410,7 +76833,13 @@ MA_API ma_result ma_sound_get_cursor_in_pcm_frames(ma_sound* pSound, ma_uint64* return MA_INVALID_OPERATION; } - return ma_data_source_get_cursor_in_pcm_frames(pSound->pDataSource, pCursor); + seekTarget = ma_atomic_load_64(&pSound->seekTarget); + if (seekTarget != MA_SEEK_TARGET_NONE) { + *pCursor = seekTarget; + return MA_SUCCESS; + } else { + return ma_data_source_get_cursor_in_pcm_frames(pSound->pDataSource, pCursor); + } } MA_API ma_result ma_sound_get_length_in_pcm_frames(ma_sound* pSound, ma_uint64* pLength) @@ -73429,16 +76858,28 @@ MA_API ma_result ma_sound_get_length_in_pcm_frames(ma_sound* pSound, ma_uint64* MA_API ma_result ma_sound_get_cursor_in_seconds(ma_sound* pSound, float* pCursor) { - if (pSound == NULL) { - return MA_INVALID_ARGS; + ma_result result; + ma_uint64 cursorInPCMFrames; + ma_uint32 sampleRate; + + if (pCursor != NULL) { + *pCursor = 0; } - /* The notion of a cursor is only valid for sounds that are backed by a data source. */ - if (pSound->pDataSource == NULL) { - return MA_INVALID_OPERATION; + result = ma_sound_get_cursor_in_pcm_frames(pSound, &cursorInPCMFrames); + if (result != MA_SUCCESS) { + return result; } - return ma_data_source_get_cursor_in_seconds(pSound->pDataSource, pCursor); + result = ma_sound_get_data_format(pSound, NULL, NULL, &sampleRate, NULL, 0); + if (result != MA_SUCCESS) { + return result; + } + + /* VC6 does not support division of unsigned 64-bit integers with floating point numbers. Need to use a signed number. This shouldn't effect anything in practice. */ + *pCursor = (ma_int64)cursorInPCMFrames / (float)sampleRate; + + return MA_SUCCESS; } MA_API ma_result ma_sound_get_length_in_seconds(ma_sound* pSound, float* pLength) @@ -73455,10 +76896,27 @@ MA_API ma_result ma_sound_get_length_in_seconds(ma_sound* pSound, float* pLength return ma_data_source_get_length_in_seconds(pSound->pDataSource, pLength); } +MA_API ma_result ma_sound_set_end_callback(ma_sound* pSound, ma_sound_end_proc callback, void* pUserData) +{ + if (pSound == NULL) { + return MA_INVALID_ARGS; + } + + /* The notion of an end is only valid for sounds that are backed by a data source. */ + if (pSound->pDataSource == NULL) { + return MA_INVALID_OPERATION; + } + + pSound->endCallback = callback; + pSound->pEndCallbackUserData = pUserData; + + return MA_SUCCESS; +} + MA_API ma_result ma_sound_group_init(ma_engine* pEngine, ma_uint32 flags, ma_sound_group* pParentGroup, ma_sound_group* pGroup) { - ma_sound_group_config config = ma_sound_group_config_init(); + ma_sound_group_config config = ma_sound_group_config_init_2(pEngine); config.flags = flags; config.pInitialAttachment = pParentGroup; return ma_sound_group_init_ex(pEngine, &config, pGroup); @@ -73760,6 +77218,7 @@ MA_API ma_uint64 ma_sound_group_get_time_in_pcm_frames(const ma_sound_group* pGr return ma_sound_get_time_in_pcm_frames(pGroup); } #endif /* MA_NO_ENGINE */ +/* END SECTION: miniaudio_engine.c */ @@ -73768,162 +77227,135 @@ MA_API ma_uint64 ma_sound_group_get_time_in_pcm_frames(const ma_sound_group* pGr Auto Generated ============== -All code below is auto-generated from a tool. This mostly consists of decoding backend implementations such as dr_wav, dr_flac, etc. If you find a bug in the +All code below is auto-generated from a tool. This mostly consists of decoding backend implementations such as ma_dr_wav, ma_dr_flac, etc. If you find a bug in the code below please report the bug to the respective repository for the relevant project (probably dr_libs). *************************************************************************************************************************************************************** **************************************************************************************************************************************************************/ #if !defined(MA_NO_WAV) && (!defined(MA_NO_DECODING) || !defined(MA_NO_ENCODING)) -#if !defined(DR_WAV_IMPLEMENTATION) && !defined(DRWAV_IMPLEMENTATION) /* For backwards compatibility. Will be removed in version 0.11 for cleanliness. */ +#if !defined(MA_DR_WAV_IMPLEMENTATION) && !defined(MA_DR_WAV_IMPLEMENTATION) /* For backwards compatibility. Will be removed in version 0.11 for cleanliness. */ /* dr_wav_c begin */ -#ifndef dr_wav_c -#define dr_wav_c +#ifndef ma_dr_wav_c +#define ma_dr_wav_c +#ifdef __MRC__ +#pragma options opt off +#endif #include #include #include -#ifndef DR_WAV_NO_STDIO +#ifndef MA_DR_WAV_NO_STDIO #include +#ifndef MA_DR_WAV_NO_WCHAR #include #endif -#ifndef DRWAV_ASSERT +#endif +#ifndef MA_DR_WAV_ASSERT #include -#define DRWAV_ASSERT(expression) assert(expression) +#define MA_DR_WAV_ASSERT(expression) assert(expression) #endif -#ifndef DRWAV_MALLOC -#define DRWAV_MALLOC(sz) malloc((sz)) +#ifndef MA_DR_WAV_MALLOC +#define MA_DR_WAV_MALLOC(sz) malloc((sz)) #endif -#ifndef DRWAV_REALLOC -#define DRWAV_REALLOC(p, sz) realloc((p), (sz)) +#ifndef MA_DR_WAV_REALLOC +#define MA_DR_WAV_REALLOC(p, sz) realloc((p), (sz)) #endif -#ifndef DRWAV_FREE -#define DRWAV_FREE(p) free((p)) +#ifndef MA_DR_WAV_FREE +#define MA_DR_WAV_FREE(p) free((p)) #endif -#ifndef DRWAV_COPY_MEMORY -#define DRWAV_COPY_MEMORY(dst, src, sz) memcpy((dst), (src), (sz)) +#ifndef MA_DR_WAV_COPY_MEMORY +#define MA_DR_WAV_COPY_MEMORY(dst, src, sz) memcpy((dst), (src), (sz)) #endif -#ifndef DRWAV_ZERO_MEMORY -#define DRWAV_ZERO_MEMORY(p, sz) memset((p), 0, (sz)) +#ifndef MA_DR_WAV_ZERO_MEMORY +#define MA_DR_WAV_ZERO_MEMORY(p, sz) memset((p), 0, (sz)) #endif -#ifndef DRWAV_ZERO_OBJECT -#define DRWAV_ZERO_OBJECT(p) DRWAV_ZERO_MEMORY((p), sizeof(*p)) -#endif -#define drwav_countof(x) (sizeof(x) / sizeof(x[0])) -#define drwav_align(x, a) ((((x) + (a) - 1) / (a)) * (a)) -#define drwav_min(a, b) (((a) < (b)) ? (a) : (b)) -#define drwav_max(a, b) (((a) > (b)) ? (a) : (b)) -#define drwav_clamp(x, lo, hi) (drwav_max((lo), drwav_min((hi), (x)))) -#define drwav_offset_ptr(p, offset) (((drwav_uint8*)(p)) + (offset)) -#define DRWAV_MAX_SIMD_VECTOR_SIZE 64 -#if defined(__x86_64__) || defined(_M_X64) - #define DRWAV_X64 -#elif defined(__i386) || defined(_M_IX86) - #define DRWAV_X86 -#elif defined(__arm__) || defined(_M_ARM) - #define DRWAV_ARM -#endif -#ifdef _MSC_VER - #define DRWAV_INLINE __forceinline -#elif defined(__GNUC__) - #if defined(__STRICT_ANSI__) - #define DRWAV_GNUC_INLINE_HINT __inline__ - #else - #define DRWAV_GNUC_INLINE_HINT inline - #endif - #if (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)) || defined(__clang__) - #define DRWAV_INLINE DRWAV_GNUC_INLINE_HINT __attribute__((always_inline)) - #else - #define DRWAV_INLINE DRWAV_GNUC_INLINE_HINT - #endif -#elif defined(__WATCOMC__) - #define DRWAV_INLINE __inline -#else - #define DRWAV_INLINE -#endif -#if defined(SIZE_MAX) - #define DRWAV_SIZE_MAX SIZE_MAX -#else - #if defined(_WIN64) || defined(_LP64) || defined(__LP64__) - #define DRWAV_SIZE_MAX ((drwav_uint64)0xFFFFFFFFFFFFFFFF) - #else - #define DRWAV_SIZE_MAX 0xFFFFFFFF - #endif +#ifndef MA_DR_WAV_ZERO_OBJECT +#define MA_DR_WAV_ZERO_OBJECT(p) MA_DR_WAV_ZERO_MEMORY((p), sizeof(*p)) #endif +#define ma_dr_wav_countof(x) (sizeof(x) / sizeof(x[0])) +#define ma_dr_wav_align(x, a) ((((x) + (a) - 1) / (a)) * (a)) +#define ma_dr_wav_min(a, b) (((a) < (b)) ? (a) : (b)) +#define ma_dr_wav_max(a, b) (((a) > (b)) ? (a) : (b)) +#define ma_dr_wav_clamp(x, lo, hi) (ma_dr_wav_max((lo), ma_dr_wav_min((hi), (x)))) +#define ma_dr_wav_offset_ptr(p, offset) (((ma_uint8*)(p)) + (offset)) +#define MA_DR_WAV_MAX_SIMD_VECTOR_SIZE 32 +#define MA_DR_WAV_INT64_MIN ((ma_int64) ((ma_uint64)0x80000000 << 32)) +#define MA_DR_WAV_INT64_MAX ((ma_int64)(((ma_uint64)0x7FFFFFFF << 32) | 0xFFFFFFFF)) #if defined(_MSC_VER) && _MSC_VER >= 1400 - #define DRWAV_HAS_BYTESWAP16_INTRINSIC - #define DRWAV_HAS_BYTESWAP32_INTRINSIC - #define DRWAV_HAS_BYTESWAP64_INTRINSIC + #define MA_DR_WAV_HAS_BYTESWAP16_INTRINSIC + #define MA_DR_WAV_HAS_BYTESWAP32_INTRINSIC + #define MA_DR_WAV_HAS_BYTESWAP64_INTRINSIC #elif defined(__clang__) #if defined(__has_builtin) #if __has_builtin(__builtin_bswap16) - #define DRWAV_HAS_BYTESWAP16_INTRINSIC + #define MA_DR_WAV_HAS_BYTESWAP16_INTRINSIC #endif #if __has_builtin(__builtin_bswap32) - #define DRWAV_HAS_BYTESWAP32_INTRINSIC + #define MA_DR_WAV_HAS_BYTESWAP32_INTRINSIC #endif #if __has_builtin(__builtin_bswap64) - #define DRWAV_HAS_BYTESWAP64_INTRINSIC + #define MA_DR_WAV_HAS_BYTESWAP64_INTRINSIC #endif #endif #elif defined(__GNUC__) #if ((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) - #define DRWAV_HAS_BYTESWAP32_INTRINSIC - #define DRWAV_HAS_BYTESWAP64_INTRINSIC + #define MA_DR_WAV_HAS_BYTESWAP32_INTRINSIC + #define MA_DR_WAV_HAS_BYTESWAP64_INTRINSIC #endif #if ((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8)) - #define DRWAV_HAS_BYTESWAP16_INTRINSIC + #define MA_DR_WAV_HAS_BYTESWAP16_INTRINSIC #endif #endif -DRWAV_API void drwav_version(drwav_uint32* pMajor, drwav_uint32* pMinor, drwav_uint32* pRevision) +MA_API void ma_dr_wav_version(ma_uint32* pMajor, ma_uint32* pMinor, ma_uint32* pRevision) { if (pMajor) { - *pMajor = DRWAV_VERSION_MAJOR; + *pMajor = MA_DR_WAV_VERSION_MAJOR; } if (pMinor) { - *pMinor = DRWAV_VERSION_MINOR; + *pMinor = MA_DR_WAV_VERSION_MINOR; } if (pRevision) { - *pRevision = DRWAV_VERSION_REVISION; + *pRevision = MA_DR_WAV_VERSION_REVISION; } } -DRWAV_API const char* drwav_version_string(void) +MA_API const char* ma_dr_wav_version_string(void) { - return DRWAV_VERSION_STRING; + return MA_DR_WAV_VERSION_STRING; } -#ifndef DRWAV_MAX_SAMPLE_RATE -#define DRWAV_MAX_SAMPLE_RATE 384000 +#ifndef MA_DR_WAV_MAX_SAMPLE_RATE +#define MA_DR_WAV_MAX_SAMPLE_RATE 384000 #endif -#ifndef DRWAV_MAX_CHANNELS -#define DRWAV_MAX_CHANNELS 256 +#ifndef MA_DR_WAV_MAX_CHANNELS +#define MA_DR_WAV_MAX_CHANNELS 256 #endif -#ifndef DRWAV_MAX_BITS_PER_SAMPLE -#define DRWAV_MAX_BITS_PER_SAMPLE 64 +#ifndef MA_DR_WAV_MAX_BITS_PER_SAMPLE +#define MA_DR_WAV_MAX_BITS_PER_SAMPLE 64 #endif -static const drwav_uint8 drwavGUID_W64_RIFF[16] = {0x72,0x69,0x66,0x66, 0x2E,0x91, 0xCF,0x11, 0xA5,0xD6, 0x28,0xDB,0x04,0xC1,0x00,0x00}; -static const drwav_uint8 drwavGUID_W64_WAVE[16] = {0x77,0x61,0x76,0x65, 0xF3,0xAC, 0xD3,0x11, 0x8C,0xD1, 0x00,0xC0,0x4F,0x8E,0xDB,0x8A}; -static const drwav_uint8 drwavGUID_W64_FMT [16] = {0x66,0x6D,0x74,0x20, 0xF3,0xAC, 0xD3,0x11, 0x8C,0xD1, 0x00,0xC0,0x4F,0x8E,0xDB,0x8A}; -static const drwav_uint8 drwavGUID_W64_FACT[16] = {0x66,0x61,0x63,0x74, 0xF3,0xAC, 0xD3,0x11, 0x8C,0xD1, 0x00,0xC0,0x4F,0x8E,0xDB,0x8A}; -static const drwav_uint8 drwavGUID_W64_DATA[16] = {0x64,0x61,0x74,0x61, 0xF3,0xAC, 0xD3,0x11, 0x8C,0xD1, 0x00,0xC0,0x4F,0x8E,0xDB,0x8A}; -static DRWAV_INLINE int drwav__is_little_endian(void) +static const ma_uint8 ma_dr_wavGUID_W64_RIFF[16] = {0x72,0x69,0x66,0x66, 0x2E,0x91, 0xCF,0x11, 0xA5,0xD6, 0x28,0xDB,0x04,0xC1,0x00,0x00}; +static const ma_uint8 ma_dr_wavGUID_W64_WAVE[16] = {0x77,0x61,0x76,0x65, 0xF3,0xAC, 0xD3,0x11, 0x8C,0xD1, 0x00,0xC0,0x4F,0x8E,0xDB,0x8A}; +static const ma_uint8 ma_dr_wavGUID_W64_FMT [16] = {0x66,0x6D,0x74,0x20, 0xF3,0xAC, 0xD3,0x11, 0x8C,0xD1, 0x00,0xC0,0x4F,0x8E,0xDB,0x8A}; +static const ma_uint8 ma_dr_wavGUID_W64_FACT[16] = {0x66,0x61,0x63,0x74, 0xF3,0xAC, 0xD3,0x11, 0x8C,0xD1, 0x00,0xC0,0x4F,0x8E,0xDB,0x8A}; +static const ma_uint8 ma_dr_wavGUID_W64_DATA[16] = {0x64,0x61,0x74,0x61, 0xF3,0xAC, 0xD3,0x11, 0x8C,0xD1, 0x00,0xC0,0x4F,0x8E,0xDB,0x8A}; +static MA_INLINE int ma_dr_wav__is_little_endian(void) { -#if defined(DRWAV_X86) || defined(DRWAV_X64) - return DRWAV_TRUE; +#if defined(MA_X86) || defined(MA_X64) + return MA_TRUE; #elif defined(__BYTE_ORDER) && defined(__LITTLE_ENDIAN) && __BYTE_ORDER == __LITTLE_ENDIAN - return DRWAV_TRUE; + return MA_TRUE; #else int n = 1; return (*(char*)&n) == 1; #endif } -static DRWAV_INLINE void drwav_bytes_to_guid(const drwav_uint8* data, drwav_uint8* guid) +static MA_INLINE void ma_dr_wav_bytes_to_guid(const ma_uint8* data, ma_uint8* guid) { int i; for (i = 0; i < 16; ++i) { guid[i] = data[i]; } } -static DRWAV_INLINE drwav_uint16 drwav__bswap16(drwav_uint16 n) +static MA_INLINE ma_uint16 ma_dr_wav__bswap16(ma_uint16 n) { -#ifdef DRWAV_HAS_BYTESWAP16_INTRINSIC +#ifdef MA_DR_WAV_HAS_BYTESWAP16_INTRINSIC #if defined(_MSC_VER) return _byteswap_ushort(n); #elif defined(__GNUC__) || defined(__clang__) @@ -73936,16 +77368,16 @@ static DRWAV_INLINE drwav_uint16 drwav__bswap16(drwav_uint16 n) ((n & 0x00FF) << 8); #endif } -static DRWAV_INLINE drwav_uint32 drwav__bswap32(drwav_uint32 n) +static MA_INLINE ma_uint32 ma_dr_wav__bswap32(ma_uint32 n) { -#ifdef DRWAV_HAS_BYTESWAP32_INTRINSIC +#ifdef MA_DR_WAV_HAS_BYTESWAP32_INTRINSIC #if defined(_MSC_VER) return _byteswap_ulong(n); #elif defined(__GNUC__) || defined(__clang__) - #if defined(DRWAV_ARM) && (defined(__ARM_ARCH) && __ARM_ARCH >= 6) && !defined(DRWAV_64BIT) - drwav_uint32 r; + #if defined(MA_ARM) && (defined(__ARM_ARCH) && __ARM_ARCH >= 6) && !defined(MA_64BIT) + ma_uint32 r; __asm__ __volatile__ ( - #if defined(DRWAV_64BIT) + #if defined(MA_64BIT) "rev %w[out], %w[in]" : [out]"=r"(r) : [in]"r"(n) #else "rev %[out], %[in]" : [out]"=r"(r) : [in]"r"(n) @@ -73965,9 +77397,9 @@ static DRWAV_INLINE drwav_uint32 drwav__bswap32(drwav_uint32 n) ((n & 0x000000FF) << 24); #endif } -static DRWAV_INLINE drwav_uint64 drwav__bswap64(drwav_uint64 n) +static MA_INLINE ma_uint64 ma_dr_wav__bswap64(ma_uint64 n) { -#ifdef DRWAV_HAS_BYTESWAP64_INTRINSIC +#ifdef MA_DR_WAV_HAS_BYTESWAP64_INTRINSIC #if defined(_MSC_VER) return _byteswap_uint64(n); #elif defined(__GNUC__) || defined(__clang__) @@ -73976,88 +77408,82 @@ static DRWAV_INLINE drwav_uint64 drwav__bswap64(drwav_uint64 n) #error "This compiler does not support the byte swap intrinsic." #endif #else - return ((n & ((drwav_uint64)0xFF000000 << 32)) >> 56) | - ((n & ((drwav_uint64)0x00FF0000 << 32)) >> 40) | - ((n & ((drwav_uint64)0x0000FF00 << 32)) >> 24) | - ((n & ((drwav_uint64)0x000000FF << 32)) >> 8) | - ((n & ((drwav_uint64)0xFF000000 )) << 8) | - ((n & ((drwav_uint64)0x00FF0000 )) << 24) | - ((n & ((drwav_uint64)0x0000FF00 )) << 40) | - ((n & ((drwav_uint64)0x000000FF )) << 56); + return ((n & ((ma_uint64)0xFF000000 << 32)) >> 56) | + ((n & ((ma_uint64)0x00FF0000 << 32)) >> 40) | + ((n & ((ma_uint64)0x0000FF00 << 32)) >> 24) | + ((n & ((ma_uint64)0x000000FF << 32)) >> 8) | + ((n & ((ma_uint64)0xFF000000 )) << 8) | + ((n & ((ma_uint64)0x00FF0000 )) << 24) | + ((n & ((ma_uint64)0x0000FF00 )) << 40) | + ((n & ((ma_uint64)0x000000FF )) << 56); #endif } -static DRWAV_INLINE drwav_int16 drwav__bswap_s16(drwav_int16 n) +static MA_INLINE ma_int16 ma_dr_wav__bswap_s16(ma_int16 n) { - return (drwav_int16)drwav__bswap16((drwav_uint16)n); + return (ma_int16)ma_dr_wav__bswap16((ma_uint16)n); } -static DRWAV_INLINE void drwav__bswap_samples_s16(drwav_int16* pSamples, drwav_uint64 sampleCount) +static MA_INLINE void ma_dr_wav__bswap_samples_s16(ma_int16* pSamples, ma_uint64 sampleCount) { - drwav_uint64 iSample; + ma_uint64 iSample; for (iSample = 0; iSample < sampleCount; iSample += 1) { - pSamples[iSample] = drwav__bswap_s16(pSamples[iSample]); + pSamples[iSample] = ma_dr_wav__bswap_s16(pSamples[iSample]); } } -static DRWAV_INLINE void drwav__bswap_s24(drwav_uint8* p) +static MA_INLINE void ma_dr_wav__bswap_s24(ma_uint8* p) { - drwav_uint8 t; + ma_uint8 t; t = p[0]; p[0] = p[2]; p[2] = t; } -static DRWAV_INLINE void drwav__bswap_samples_s24(drwav_uint8* pSamples, drwav_uint64 sampleCount) +static MA_INLINE void ma_dr_wav__bswap_samples_s24(ma_uint8* pSamples, ma_uint64 sampleCount) { - drwav_uint64 iSample; + ma_uint64 iSample; for (iSample = 0; iSample < sampleCount; iSample += 1) { - drwav_uint8* pSample = pSamples + (iSample*3); - drwav__bswap_s24(pSample); + ma_uint8* pSample = pSamples + (iSample*3); + ma_dr_wav__bswap_s24(pSample); } } -static DRWAV_INLINE drwav_int32 drwav__bswap_s32(drwav_int32 n) +static MA_INLINE ma_int32 ma_dr_wav__bswap_s32(ma_int32 n) { - return (drwav_int32)drwav__bswap32((drwav_uint32)n); + return (ma_int32)ma_dr_wav__bswap32((ma_uint32)n); } -static DRWAV_INLINE void drwav__bswap_samples_s32(drwav_int32* pSamples, drwav_uint64 sampleCount) +static MA_INLINE void ma_dr_wav__bswap_samples_s32(ma_int32* pSamples, ma_uint64 sampleCount) { - drwav_uint64 iSample; + ma_uint64 iSample; for (iSample = 0; iSample < sampleCount; iSample += 1) { - pSamples[iSample] = drwav__bswap_s32(pSamples[iSample]); + pSamples[iSample] = ma_dr_wav__bswap_s32(pSamples[iSample]); } } -static DRWAV_INLINE float drwav__bswap_f32(float n) +static MA_INLINE ma_int64 ma_dr_wav__bswap_s64(ma_int64 n) +{ + return (ma_int64)ma_dr_wav__bswap64((ma_uint64)n); +} +static MA_INLINE void ma_dr_wav__bswap_samples_s64(ma_int64* pSamples, ma_uint64 sampleCount) +{ + ma_uint64 iSample; + for (iSample = 0; iSample < sampleCount; iSample += 1) { + pSamples[iSample] = ma_dr_wav__bswap_s64(pSamples[iSample]); + } +} +static MA_INLINE float ma_dr_wav__bswap_f32(float n) { union { - drwav_uint32 i; + ma_uint32 i; float f; } x; x.f = n; - x.i = drwav__bswap32(x.i); + x.i = ma_dr_wav__bswap32(x.i); return x.f; } -static DRWAV_INLINE void drwav__bswap_samples_f32(float* pSamples, drwav_uint64 sampleCount) +static MA_INLINE void ma_dr_wav__bswap_samples_f32(float* pSamples, ma_uint64 sampleCount) { - drwav_uint64 iSample; + ma_uint64 iSample; for (iSample = 0; iSample < sampleCount; iSample += 1) { - pSamples[iSample] = drwav__bswap_f32(pSamples[iSample]); + pSamples[iSample] = ma_dr_wav__bswap_f32(pSamples[iSample]); } } -static DRWAV_INLINE double drwav__bswap_f64(double n) -{ - union { - drwav_uint64 i; - double f; - } x; - x.f = n; - x.i = drwav__bswap64(x.i); - return x.f; -} -static DRWAV_INLINE void drwav__bswap_samples_f64(double* pSamples, drwav_uint64 sampleCount) -{ - drwav_uint64 iSample; - for (iSample = 0; iSample < sampleCount; iSample += 1) { - pSamples[iSample] = drwav__bswap_f64(pSamples[iSample]); - } -} -static DRWAV_INLINE void drwav__bswap_samples_pcm(void* pSamples, drwav_uint64 sampleCount, drwav_uint32 bytesPerSample) +static MA_INLINE void ma_dr_wav__bswap_samples(void* pSamples, ma_uint64 sampleCount, ma_uint32 bytesPerSample) { switch (bytesPerSample) { @@ -74066,87 +77492,108 @@ static DRWAV_INLINE void drwav__bswap_samples_pcm(void* pSamples, drwav_uint64 s } break; case 2: { - drwav__bswap_samples_s16((drwav_int16*)pSamples, sampleCount); + ma_dr_wav__bswap_samples_s16((ma_int16*)pSamples, sampleCount); } break; case 3: { - drwav__bswap_samples_s24((drwav_uint8*)pSamples, sampleCount); + ma_dr_wav__bswap_samples_s24((ma_uint8*)pSamples, sampleCount); } break; case 4: { - drwav__bswap_samples_s32((drwav_int32*)pSamples, sampleCount); - } break; - default: - { - DRWAV_ASSERT(DRWAV_FALSE); - } break; - } -} -static DRWAV_INLINE void drwav__bswap_samples_ieee(void* pSamples, drwav_uint64 sampleCount, drwav_uint32 bytesPerSample) -{ - switch (bytesPerSample) - { - #if 0 - case 2: - { - drwav__bswap_samples_f16((drwav_float16*)pSamples, sampleCount); - } break; - #endif - case 4: - { - drwav__bswap_samples_f32((float*)pSamples, sampleCount); + ma_dr_wav__bswap_samples_s32((ma_int32*)pSamples, sampleCount); } break; case 8: { - drwav__bswap_samples_f64((double*)pSamples, sampleCount); + ma_dr_wav__bswap_samples_s64((ma_int64*)pSamples, sampleCount); } break; default: { - DRWAV_ASSERT(DRWAV_FALSE); + MA_DR_WAV_ASSERT(MA_FALSE); } break; } } -static DRWAV_INLINE void drwav__bswap_samples(void* pSamples, drwav_uint64 sampleCount, drwav_uint32 bytesPerSample, drwav_uint16 format) +MA_PRIVATE MA_INLINE ma_bool32 ma_dr_wav_is_container_be(ma_dr_wav_container container) { - switch (format) - { - case DR_WAVE_FORMAT_PCM: - { - drwav__bswap_samples_pcm(pSamples, sampleCount, bytesPerSample); - } break; - case DR_WAVE_FORMAT_IEEE_FLOAT: - { - drwav__bswap_samples_ieee(pSamples, sampleCount, bytesPerSample); - } break; - case DR_WAVE_FORMAT_ALAW: - case DR_WAVE_FORMAT_MULAW: - { - drwav__bswap_samples_s16((drwav_int16*)pSamples, sampleCount); - } break; - case DR_WAVE_FORMAT_ADPCM: - case DR_WAVE_FORMAT_DVI_ADPCM: - default: - { - DRWAV_ASSERT(DRWAV_FALSE); - } break; + if (container == ma_dr_wav_container_rifx || container == ma_dr_wav_container_aiff) { + return MA_TRUE; + } else { + return MA_FALSE; } } -DRWAV_PRIVATE void* drwav__malloc_default(size_t sz, void* pUserData) +MA_PRIVATE MA_INLINE ma_uint16 ma_dr_wav_bytes_to_u16_le(const ma_uint8* data) +{ + return ((ma_uint16)data[0] << 0) | ((ma_uint16)data[1] << 8); +} +MA_PRIVATE MA_INLINE ma_uint16 ma_dr_wav_bytes_to_u16_be(const ma_uint8* data) +{ + return ((ma_uint16)data[1] << 0) | ((ma_uint16)data[0] << 8); +} +MA_PRIVATE MA_INLINE ma_uint16 ma_dr_wav_bytes_to_u16_ex(const ma_uint8* data, ma_dr_wav_container container) +{ + if (ma_dr_wav_is_container_be(container)) { + return ma_dr_wav_bytes_to_u16_be(data); + } else { + return ma_dr_wav_bytes_to_u16_le(data); + } +} +MA_PRIVATE MA_INLINE ma_uint32 ma_dr_wav_bytes_to_u32_le(const ma_uint8* data) +{ + return ((ma_uint32)data[0] << 0) | ((ma_uint32)data[1] << 8) | ((ma_uint32)data[2] << 16) | ((ma_uint32)data[3] << 24); +} +MA_PRIVATE MA_INLINE ma_uint32 ma_dr_wav_bytes_to_u32_be(const ma_uint8* data) +{ + return ((ma_uint32)data[3] << 0) | ((ma_uint32)data[2] << 8) | ((ma_uint32)data[1] << 16) | ((ma_uint32)data[0] << 24); +} +MA_PRIVATE MA_INLINE ma_uint32 ma_dr_wav_bytes_to_u32_ex(const ma_uint8* data, ma_dr_wav_container container) +{ + if (ma_dr_wav_is_container_be(container)) { + return ma_dr_wav_bytes_to_u32_be(data); + } else { + return ma_dr_wav_bytes_to_u32_le(data); + } +} +MA_PRIVATE ma_int64 ma_dr_wav_aiff_extented_to_s64(const ma_uint8* data) +{ + ma_uint32 exponent = ((ma_uint32)data[0] << 8) | data[1]; + ma_uint64 hi = ((ma_uint64)data[2] << 24) | ((ma_uint64)data[3] << 16) | ((ma_uint64)data[4] << 8) | ((ma_uint64)data[5] << 0); + ma_uint64 lo = ((ma_uint64)data[6] << 24) | ((ma_uint64)data[7] << 16) | ((ma_uint64)data[8] << 8) | ((ma_uint64)data[9] << 0); + ma_uint64 significand = (hi << 32) | lo; + int sign = exponent >> 15; + exponent &= 0x7FFF; + if (exponent == 0 && significand == 0) { + return 0; + } else if (exponent == 0x7FFF) { + return sign ? MA_DR_WAV_INT64_MIN : MA_DR_WAV_INT64_MAX; + } + exponent -= 16383; + if (exponent > 63) { + return sign ? MA_DR_WAV_INT64_MIN : MA_DR_WAV_INT64_MAX; + } else if (exponent < 1) { + return 0; + } + significand >>= (63 - exponent); + if (sign) { + return -(ma_int64)significand; + } else { + return (ma_int64)significand; + } +} +MA_PRIVATE void* ma_dr_wav__malloc_default(size_t sz, void* pUserData) { (void)pUserData; - return DRWAV_MALLOC(sz); + return MA_DR_WAV_MALLOC(sz); } -DRWAV_PRIVATE void* drwav__realloc_default(void* p, size_t sz, void* pUserData) +MA_PRIVATE void* ma_dr_wav__realloc_default(void* p, size_t sz, void* pUserData) { (void)pUserData; - return DRWAV_REALLOC(p, sz); + return MA_DR_WAV_REALLOC(p, sz); } -DRWAV_PRIVATE void drwav__free_default(void* p, void* pUserData) +MA_PRIVATE void ma_dr_wav__free_default(void* p, void* pUserData) { (void)pUserData; - DRWAV_FREE(p); + MA_DR_WAV_FREE(p); } -DRWAV_PRIVATE void* drwav__malloc_from_callbacks(size_t sz, const drwav_allocation_callbacks* pAllocationCallbacks) +MA_PRIVATE void* ma_dr_wav__malloc_from_callbacks(size_t sz, const ma_allocation_callbacks* pAllocationCallbacks) { if (pAllocationCallbacks == NULL) { return NULL; @@ -74159,7 +77606,7 @@ DRWAV_PRIVATE void* drwav__malloc_from_callbacks(size_t sz, const drwav_allocati } return NULL; } -DRWAV_PRIVATE void* drwav__realloc_from_callbacks(void* p, size_t szNew, size_t szOld, const drwav_allocation_callbacks* pAllocationCallbacks) +MA_PRIVATE void* ma_dr_wav__realloc_from_callbacks(void* p, size_t szNew, size_t szOld, const ma_allocation_callbacks* pAllocationCallbacks) { if (pAllocationCallbacks == NULL) { return NULL; @@ -74174,14 +77621,14 @@ DRWAV_PRIVATE void* drwav__realloc_from_callbacks(void* p, size_t szNew, size_t return NULL; } if (p != NULL) { - DRWAV_COPY_MEMORY(p2, p, szOld); + MA_DR_WAV_COPY_MEMORY(p2, p, szOld); pAllocationCallbacks->onFree(p, pAllocationCallbacks->pUserData); } return p2; } return NULL; } -DRWAV_PRIVATE void drwav__free_from_callbacks(void* p, const drwav_allocation_callbacks* pAllocationCallbacks) +MA_PRIVATE void ma_dr_wav__free_from_callbacks(void* p, const ma_allocation_callbacks* pAllocationCallbacks) { if (p == NULL || pAllocationCallbacks == NULL) { return; @@ -74190,361 +77637,288 @@ DRWAV_PRIVATE void drwav__free_from_callbacks(void* p, const drwav_allocation_ca pAllocationCallbacks->onFree(p, pAllocationCallbacks->pUserData); } } -DRWAV_PRIVATE drwav_allocation_callbacks drwav_copy_allocation_callbacks_or_defaults(const drwav_allocation_callbacks* pAllocationCallbacks) +MA_PRIVATE ma_allocation_callbacks ma_dr_wav_copy_allocation_callbacks_or_defaults(const ma_allocation_callbacks* pAllocationCallbacks) { if (pAllocationCallbacks != NULL) { return *pAllocationCallbacks; } else { - drwav_allocation_callbacks allocationCallbacks; + ma_allocation_callbacks allocationCallbacks; allocationCallbacks.pUserData = NULL; - allocationCallbacks.onMalloc = drwav__malloc_default; - allocationCallbacks.onRealloc = drwav__realloc_default; - allocationCallbacks.onFree = drwav__free_default; + allocationCallbacks.onMalloc = ma_dr_wav__malloc_default; + allocationCallbacks.onRealloc = ma_dr_wav__realloc_default; + allocationCallbacks.onFree = ma_dr_wav__free_default; return allocationCallbacks; } } -static DRWAV_INLINE drwav_bool32 drwav__is_compressed_format_tag(drwav_uint16 formatTag) +static MA_INLINE ma_bool32 ma_dr_wav__is_compressed_format_tag(ma_uint16 formatTag) { return - formatTag == DR_WAVE_FORMAT_ADPCM || - formatTag == DR_WAVE_FORMAT_DVI_ADPCM; + formatTag == MA_DR_WAVE_FORMAT_ADPCM || + formatTag == MA_DR_WAVE_FORMAT_DVI_ADPCM; } -DRWAV_PRIVATE unsigned int drwav__chunk_padding_size_riff(drwav_uint64 chunkSize) +MA_PRIVATE unsigned int ma_dr_wav__chunk_padding_size_riff(ma_uint64 chunkSize) { return (unsigned int)(chunkSize % 2); } -DRWAV_PRIVATE unsigned int drwav__chunk_padding_size_w64(drwav_uint64 chunkSize) +MA_PRIVATE unsigned int ma_dr_wav__chunk_padding_size_w64(ma_uint64 chunkSize) { return (unsigned int)(chunkSize % 8); } -DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_s16__msadpcm(drwav* pWav, drwav_uint64 samplesToRead, drwav_int16* pBufferOut); -DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_s16__ima(drwav* pWav, drwav_uint64 samplesToRead, drwav_int16* pBufferOut); -DRWAV_PRIVATE drwav_bool32 drwav_init_write__internal(drwav* pWav, const drwav_data_format* pFormat, drwav_uint64 totalSampleCount); -DRWAV_PRIVATE drwav_result drwav__read_chunk_header(drwav_read_proc onRead, void* pUserData, drwav_container container, drwav_uint64* pRunningBytesReadOut, drwav_chunk_header* pHeaderOut) +MA_PRIVATE ma_uint64 ma_dr_wav_read_pcm_frames_s16__msadpcm(ma_dr_wav* pWav, ma_uint64 samplesToRead, ma_int16* pBufferOut); +MA_PRIVATE ma_uint64 ma_dr_wav_read_pcm_frames_s16__ima(ma_dr_wav* pWav, ma_uint64 samplesToRead, ma_int16* pBufferOut); +MA_PRIVATE ma_bool32 ma_dr_wav_init_write__internal(ma_dr_wav* pWav, const ma_dr_wav_data_format* pFormat, ma_uint64 totalSampleCount); +MA_PRIVATE ma_result ma_dr_wav__read_chunk_header(ma_dr_wav_read_proc onRead, void* pUserData, ma_dr_wav_container container, ma_uint64* pRunningBytesReadOut, ma_dr_wav_chunk_header* pHeaderOut) { - if (container == drwav_container_riff || container == drwav_container_rf64) { - drwav_uint8 sizeInBytes[4]; + if (container == ma_dr_wav_container_riff || container == ma_dr_wav_container_rifx || container == ma_dr_wav_container_rf64 || container == ma_dr_wav_container_aiff) { + ma_uint8 sizeInBytes[4]; if (onRead(pUserData, pHeaderOut->id.fourcc, 4) != 4) { - return DRWAV_AT_END; + return MA_AT_END; } if (onRead(pUserData, sizeInBytes, 4) != 4) { - return DRWAV_INVALID_FILE; + return MA_INVALID_FILE; } - pHeaderOut->sizeInBytes = drwav_bytes_to_u32(sizeInBytes); - pHeaderOut->paddingSize = drwav__chunk_padding_size_riff(pHeaderOut->sizeInBytes); + pHeaderOut->sizeInBytes = ma_dr_wav_bytes_to_u32_ex(sizeInBytes, container); + pHeaderOut->paddingSize = ma_dr_wav__chunk_padding_size_riff(pHeaderOut->sizeInBytes); *pRunningBytesReadOut += 8; - } else { - drwav_uint8 sizeInBytes[8]; + } else if (container == ma_dr_wav_container_w64) { + ma_uint8 sizeInBytes[8]; if (onRead(pUserData, pHeaderOut->id.guid, 16) != 16) { - return DRWAV_AT_END; + return MA_AT_END; } if (onRead(pUserData, sizeInBytes, 8) != 8) { - return DRWAV_INVALID_FILE; + return MA_INVALID_FILE; } - pHeaderOut->sizeInBytes = drwav_bytes_to_u64(sizeInBytes) - 24; - pHeaderOut->paddingSize = drwav__chunk_padding_size_w64(pHeaderOut->sizeInBytes); + pHeaderOut->sizeInBytes = ma_dr_wav_bytes_to_u64(sizeInBytes) - 24; + pHeaderOut->paddingSize = ma_dr_wav__chunk_padding_size_w64(pHeaderOut->sizeInBytes); *pRunningBytesReadOut += 24; + } else { + return MA_INVALID_FILE; } - return DRWAV_SUCCESS; + return MA_SUCCESS; } -DRWAV_PRIVATE drwav_bool32 drwav__seek_forward(drwav_seek_proc onSeek, drwav_uint64 offset, void* pUserData) +MA_PRIVATE ma_bool32 ma_dr_wav__seek_forward(ma_dr_wav_seek_proc onSeek, ma_uint64 offset, void* pUserData) { - drwav_uint64 bytesRemainingToSeek = offset; + ma_uint64 bytesRemainingToSeek = offset; while (bytesRemainingToSeek > 0) { if (bytesRemainingToSeek > 0x7FFFFFFF) { - if (!onSeek(pUserData, 0x7FFFFFFF, drwav_seek_origin_current)) { - return DRWAV_FALSE; + if (!onSeek(pUserData, 0x7FFFFFFF, ma_dr_wav_seek_origin_current)) { + return MA_FALSE; } bytesRemainingToSeek -= 0x7FFFFFFF; } else { - if (!onSeek(pUserData, (int)bytesRemainingToSeek, drwav_seek_origin_current)) { - return DRWAV_FALSE; + if (!onSeek(pUserData, (int)bytesRemainingToSeek, ma_dr_wav_seek_origin_current)) { + return MA_FALSE; } bytesRemainingToSeek = 0; } } - return DRWAV_TRUE; + return MA_TRUE; } -DRWAV_PRIVATE drwav_bool32 drwav__seek_from_start(drwav_seek_proc onSeek, drwav_uint64 offset, void* pUserData) +MA_PRIVATE ma_bool32 ma_dr_wav__seek_from_start(ma_dr_wav_seek_proc onSeek, ma_uint64 offset, void* pUserData) { if (offset <= 0x7FFFFFFF) { - return onSeek(pUserData, (int)offset, drwav_seek_origin_start); + return onSeek(pUserData, (int)offset, ma_dr_wav_seek_origin_start); } - if (!onSeek(pUserData, 0x7FFFFFFF, drwav_seek_origin_start)) { - return DRWAV_FALSE; + if (!onSeek(pUserData, 0x7FFFFFFF, ma_dr_wav_seek_origin_start)) { + return MA_FALSE; } offset -= 0x7FFFFFFF; for (;;) { if (offset <= 0x7FFFFFFF) { - return onSeek(pUserData, (int)offset, drwav_seek_origin_current); + return onSeek(pUserData, (int)offset, ma_dr_wav_seek_origin_current); } - if (!onSeek(pUserData, 0x7FFFFFFF, drwav_seek_origin_current)) { - return DRWAV_FALSE; + if (!onSeek(pUserData, 0x7FFFFFFF, ma_dr_wav_seek_origin_current)) { + return MA_FALSE; } offset -= 0x7FFFFFFF; } } -DRWAV_PRIVATE drwav_bool32 drwav__read_fmt(drwav_read_proc onRead, drwav_seek_proc onSeek, void* pUserData, drwav_container container, drwav_uint64* pRunningBytesReadOut, drwav_fmt* fmtOut) -{ - drwav_chunk_header header; - drwav_uint8 fmt[16]; - if (drwav__read_chunk_header(onRead, pUserData, container, pRunningBytesReadOut, &header) != DRWAV_SUCCESS) { - return DRWAV_FALSE; - } - while (((container == drwav_container_riff || container == drwav_container_rf64) && !drwav_fourcc_equal(header.id.fourcc, "fmt ")) || (container == drwav_container_w64 && !drwav_guid_equal(header.id.guid, drwavGUID_W64_FMT))) { - if (!drwav__seek_forward(onSeek, header.sizeInBytes + header.paddingSize, pUserData)) { - return DRWAV_FALSE; - } - *pRunningBytesReadOut += header.sizeInBytes + header.paddingSize; - if (drwav__read_chunk_header(onRead, pUserData, container, pRunningBytesReadOut, &header) != DRWAV_SUCCESS) { - return DRWAV_FALSE; - } - } - if (container == drwav_container_riff || container == drwav_container_rf64) { - if (!drwav_fourcc_equal(header.id.fourcc, "fmt ")) { - return DRWAV_FALSE; - } - } else { - if (!drwav_guid_equal(header.id.guid, drwavGUID_W64_FMT)) { - return DRWAV_FALSE; - } - } - if (onRead(pUserData, fmt, sizeof(fmt)) != sizeof(fmt)) { - return DRWAV_FALSE; - } - *pRunningBytesReadOut += sizeof(fmt); - fmtOut->formatTag = drwav_bytes_to_u16(fmt + 0); - fmtOut->channels = drwav_bytes_to_u16(fmt + 2); - fmtOut->sampleRate = drwav_bytes_to_u32(fmt + 4); - fmtOut->avgBytesPerSec = drwav_bytes_to_u32(fmt + 8); - fmtOut->blockAlign = drwav_bytes_to_u16(fmt + 12); - fmtOut->bitsPerSample = drwav_bytes_to_u16(fmt + 14); - fmtOut->extendedSize = 0; - fmtOut->validBitsPerSample = 0; - fmtOut->channelMask = 0; - DRWAV_ZERO_MEMORY(fmtOut->subFormat, sizeof(fmtOut->subFormat)); - if (header.sizeInBytes > 16) { - drwav_uint8 fmt_cbSize[2]; - int bytesReadSoFar = 0; - if (onRead(pUserData, fmt_cbSize, sizeof(fmt_cbSize)) != sizeof(fmt_cbSize)) { - return DRWAV_FALSE; - } - *pRunningBytesReadOut += sizeof(fmt_cbSize); - bytesReadSoFar = 18; - fmtOut->extendedSize = drwav_bytes_to_u16(fmt_cbSize); - if (fmtOut->extendedSize > 0) { - if (fmtOut->formatTag == DR_WAVE_FORMAT_EXTENSIBLE) { - if (fmtOut->extendedSize != 22) { - return DRWAV_FALSE; - } - } - if (fmtOut->formatTag == DR_WAVE_FORMAT_EXTENSIBLE) { - drwav_uint8 fmtext[22]; - if (onRead(pUserData, fmtext, fmtOut->extendedSize) != fmtOut->extendedSize) { - return DRWAV_FALSE; - } - fmtOut->validBitsPerSample = drwav_bytes_to_u16(fmtext + 0); - fmtOut->channelMask = drwav_bytes_to_u32(fmtext + 2); - drwav_bytes_to_guid(fmtext + 6, fmtOut->subFormat); - } else { - if (!onSeek(pUserData, fmtOut->extendedSize, drwav_seek_origin_current)) { - return DRWAV_FALSE; - } - } - *pRunningBytesReadOut += fmtOut->extendedSize; - bytesReadSoFar += fmtOut->extendedSize; - } - if (!onSeek(pUserData, (int)(header.sizeInBytes - bytesReadSoFar), drwav_seek_origin_current)) { - return DRWAV_FALSE; - } - *pRunningBytesReadOut += (header.sizeInBytes - bytesReadSoFar); - } - if (header.paddingSize > 0) { - if (!onSeek(pUserData, header.paddingSize, drwav_seek_origin_current)) { - return DRWAV_FALSE; - } - *pRunningBytesReadOut += header.paddingSize; - } - return DRWAV_TRUE; -} -DRWAV_PRIVATE size_t drwav__on_read(drwav_read_proc onRead, void* pUserData, void* pBufferOut, size_t bytesToRead, drwav_uint64* pCursor) +MA_PRIVATE size_t ma_dr_wav__on_read(ma_dr_wav_read_proc onRead, void* pUserData, void* pBufferOut, size_t bytesToRead, ma_uint64* pCursor) { size_t bytesRead; - DRWAV_ASSERT(onRead != NULL); - DRWAV_ASSERT(pCursor != NULL); + MA_DR_WAV_ASSERT(onRead != NULL); + MA_DR_WAV_ASSERT(pCursor != NULL); bytesRead = onRead(pUserData, pBufferOut, bytesToRead); *pCursor += bytesRead; return bytesRead; } #if 0 -DRWAV_PRIVATE drwav_bool32 drwav__on_seek(drwav_seek_proc onSeek, void* pUserData, int offset, drwav_seek_origin origin, drwav_uint64* pCursor) +MA_PRIVATE ma_bool32 ma_dr_wav__on_seek(ma_dr_wav_seek_proc onSeek, void* pUserData, int offset, ma_dr_wav_seek_origin origin, ma_uint64* pCursor) { - DRWAV_ASSERT(onSeek != NULL); - DRWAV_ASSERT(pCursor != NULL); + MA_DR_WAV_ASSERT(onSeek != NULL); + MA_DR_WAV_ASSERT(pCursor != NULL); if (!onSeek(pUserData, offset, origin)) { - return DRWAV_FALSE; + return MA_FALSE; } - if (origin == drwav_seek_origin_start) { + if (origin == ma_dr_wav_seek_origin_start) { *pCursor = offset; } else { *pCursor += offset; } - return DRWAV_TRUE; + return MA_TRUE; } #endif -#define DRWAV_SMPL_BYTES 36 -#define DRWAV_SMPL_LOOP_BYTES 24 -#define DRWAV_INST_BYTES 7 -#define DRWAV_ACID_BYTES 24 -#define DRWAV_CUE_BYTES 4 -#define DRWAV_BEXT_BYTES 602 -#define DRWAV_BEXT_DESCRIPTION_BYTES 256 -#define DRWAV_BEXT_ORIGINATOR_NAME_BYTES 32 -#define DRWAV_BEXT_ORIGINATOR_REF_BYTES 32 -#define DRWAV_BEXT_RESERVED_BYTES 180 -#define DRWAV_BEXT_UMID_BYTES 64 -#define DRWAV_CUE_POINT_BYTES 24 -#define DRWAV_LIST_LABEL_OR_NOTE_BYTES 4 -#define DRWAV_LIST_LABELLED_TEXT_BYTES 20 -#define DRWAV_METADATA_ALIGNMENT 8 +#define MA_DR_WAV_SMPL_BYTES 36 +#define MA_DR_WAV_SMPL_LOOP_BYTES 24 +#define MA_DR_WAV_INST_BYTES 7 +#define MA_DR_WAV_ACID_BYTES 24 +#define MA_DR_WAV_CUE_BYTES 4 +#define MA_DR_WAV_BEXT_BYTES 602 +#define MA_DR_WAV_BEXT_DESCRIPTION_BYTES 256 +#define MA_DR_WAV_BEXT_ORIGINATOR_NAME_BYTES 32 +#define MA_DR_WAV_BEXT_ORIGINATOR_REF_BYTES 32 +#define MA_DR_WAV_BEXT_RESERVED_BYTES 180 +#define MA_DR_WAV_BEXT_UMID_BYTES 64 +#define MA_DR_WAV_CUE_POINT_BYTES 24 +#define MA_DR_WAV_LIST_LABEL_OR_NOTE_BYTES 4 +#define MA_DR_WAV_LIST_LABELLED_TEXT_BYTES 20 +#define MA_DR_WAV_METADATA_ALIGNMENT 8 typedef enum { - drwav__metadata_parser_stage_count, - drwav__metadata_parser_stage_read -} drwav__metadata_parser_stage; + ma_dr_wav__metadata_parser_stage_count, + ma_dr_wav__metadata_parser_stage_read +} ma_dr_wav__metadata_parser_stage; typedef struct { - drwav_read_proc onRead; - drwav_seek_proc onSeek; + ma_dr_wav_read_proc onRead; + ma_dr_wav_seek_proc onSeek; void *pReadSeekUserData; - drwav__metadata_parser_stage stage; - drwav_metadata *pMetadata; - drwav_uint32 metadataCount; - drwav_uint8 *pData; - drwav_uint8 *pDataCursor; - drwav_uint64 metadataCursor; - drwav_uint64 extraCapacity; -} drwav__metadata_parser; -DRWAV_PRIVATE size_t drwav__metadata_memory_capacity(drwav__metadata_parser* pParser) + ma_dr_wav__metadata_parser_stage stage; + ma_dr_wav_metadata *pMetadata; + ma_uint32 metadataCount; + ma_uint8 *pData; + ma_uint8 *pDataCursor; + ma_uint64 metadataCursor; + ma_uint64 extraCapacity; +} ma_dr_wav__metadata_parser; +MA_PRIVATE size_t ma_dr_wav__metadata_memory_capacity(ma_dr_wav__metadata_parser* pParser) { - drwav_uint64 cap = sizeof(drwav_metadata) * (drwav_uint64)pParser->metadataCount + pParser->extraCapacity; - if (cap > DRWAV_SIZE_MAX) { + ma_uint64 cap = sizeof(ma_dr_wav_metadata) * (ma_uint64)pParser->metadataCount + pParser->extraCapacity; + if (cap > MA_SIZE_MAX) { return 0; } return (size_t)cap; } -DRWAV_PRIVATE drwav_uint8* drwav__metadata_get_memory(drwav__metadata_parser* pParser, size_t size, size_t align) +MA_PRIVATE ma_uint8* ma_dr_wav__metadata_get_memory(ma_dr_wav__metadata_parser* pParser, size_t size, size_t align) { - drwav_uint8* pResult; + ma_uint8* pResult; if (align) { - drwav_uintptr modulo = (drwav_uintptr)pParser->pDataCursor % align; + ma_uintptr modulo = (ma_uintptr)pParser->pDataCursor % align; if (modulo != 0) { pParser->pDataCursor += align - modulo; } } pResult = pParser->pDataCursor; - DRWAV_ASSERT((pResult + size) <= (pParser->pData + drwav__metadata_memory_capacity(pParser))); + MA_DR_WAV_ASSERT((pResult + size) <= (pParser->pData + ma_dr_wav__metadata_memory_capacity(pParser))); pParser->pDataCursor += size; return pResult; } -DRWAV_PRIVATE void drwav__metadata_request_extra_memory_for_stage_2(drwav__metadata_parser* pParser, size_t bytes, size_t align) +MA_PRIVATE void ma_dr_wav__metadata_request_extra_memory_for_stage_2(ma_dr_wav__metadata_parser* pParser, size_t bytes, size_t align) { size_t extra = bytes + (align ? (align - 1) : 0); pParser->extraCapacity += extra; } -DRWAV_PRIVATE drwav_result drwav__metadata_alloc(drwav__metadata_parser* pParser, drwav_allocation_callbacks* pAllocationCallbacks) +MA_PRIVATE ma_result ma_dr_wav__metadata_alloc(ma_dr_wav__metadata_parser* pParser, ma_allocation_callbacks* pAllocationCallbacks) { if (pParser->extraCapacity != 0 || pParser->metadataCount != 0) { pAllocationCallbacks->onFree(pParser->pData, pAllocationCallbacks->pUserData); - pParser->pData = (drwav_uint8*)pAllocationCallbacks->onMalloc(drwav__metadata_memory_capacity(pParser), pAllocationCallbacks->pUserData); + pParser->pData = (ma_uint8*)pAllocationCallbacks->onMalloc(ma_dr_wav__metadata_memory_capacity(pParser), pAllocationCallbacks->pUserData); pParser->pDataCursor = pParser->pData; if (pParser->pData == NULL) { - return DRWAV_OUT_OF_MEMORY; + return MA_OUT_OF_MEMORY; } - pParser->pMetadata = (drwav_metadata*)drwav__metadata_get_memory(pParser, sizeof(drwav_metadata) * pParser->metadataCount, 1); + pParser->pMetadata = (ma_dr_wav_metadata*)ma_dr_wav__metadata_get_memory(pParser, sizeof(ma_dr_wav_metadata) * pParser->metadataCount, 1); pParser->metadataCursor = 0; } - return DRWAV_SUCCESS; + return MA_SUCCESS; } -DRWAV_PRIVATE size_t drwav__metadata_parser_read(drwav__metadata_parser* pParser, void* pBufferOut, size_t bytesToRead, drwav_uint64* pCursor) +MA_PRIVATE size_t ma_dr_wav__metadata_parser_read(ma_dr_wav__metadata_parser* pParser, void* pBufferOut, size_t bytesToRead, ma_uint64* pCursor) { if (pCursor != NULL) { - return drwav__on_read(pParser->onRead, pParser->pReadSeekUserData, pBufferOut, bytesToRead, pCursor); + return ma_dr_wav__on_read(pParser->onRead, pParser->pReadSeekUserData, pBufferOut, bytesToRead, pCursor); } else { return pParser->onRead(pParser->pReadSeekUserData, pBufferOut, bytesToRead); } } -DRWAV_PRIVATE drwav_uint64 drwav__read_smpl_to_metadata_obj(drwav__metadata_parser* pParser, const drwav_chunk_header* pChunkHeader, drwav_metadata* pMetadata) +MA_PRIVATE ma_uint64 ma_dr_wav__read_smpl_to_metadata_obj(ma_dr_wav__metadata_parser* pParser, const ma_dr_wav_chunk_header* pChunkHeader, ma_dr_wav_metadata* pMetadata) { - drwav_uint8 smplHeaderData[DRWAV_SMPL_BYTES]; - drwav_uint64 totalBytesRead = 0; - size_t bytesJustRead = drwav__metadata_parser_read(pParser, smplHeaderData, sizeof(smplHeaderData), &totalBytesRead); - DRWAV_ASSERT(pParser->stage == drwav__metadata_parser_stage_read); - DRWAV_ASSERT(pChunkHeader != NULL); - if (bytesJustRead == sizeof(smplHeaderData)) { - drwav_uint32 iSampleLoop; - pMetadata->type = drwav_metadata_type_smpl; - pMetadata->data.smpl.manufacturerId = drwav_bytes_to_u32(smplHeaderData + 0); - pMetadata->data.smpl.productId = drwav_bytes_to_u32(smplHeaderData + 4); - pMetadata->data.smpl.samplePeriodNanoseconds = drwav_bytes_to_u32(smplHeaderData + 8); - pMetadata->data.smpl.midiUnityNote = drwav_bytes_to_u32(smplHeaderData + 12); - pMetadata->data.smpl.midiPitchFraction = drwav_bytes_to_u32(smplHeaderData + 16); - pMetadata->data.smpl.smpteFormat = drwav_bytes_to_u32(smplHeaderData + 20); - pMetadata->data.smpl.smpteOffset = drwav_bytes_to_u32(smplHeaderData + 24); - pMetadata->data.smpl.sampleLoopCount = drwav_bytes_to_u32(smplHeaderData + 28); - pMetadata->data.smpl.samplerSpecificDataSizeInBytes = drwav_bytes_to_u32(smplHeaderData + 32); - if (pMetadata->data.smpl.sampleLoopCount == (pChunkHeader->sizeInBytes - DRWAV_SMPL_BYTES) / DRWAV_SMPL_LOOP_BYTES) { - pMetadata->data.smpl.pLoops = (drwav_smpl_loop*)drwav__metadata_get_memory(pParser, sizeof(drwav_smpl_loop) * pMetadata->data.smpl.sampleLoopCount, DRWAV_METADATA_ALIGNMENT); + ma_uint8 smplHeaderData[MA_DR_WAV_SMPL_BYTES]; + ma_uint64 totalBytesRead = 0; + size_t bytesJustRead; + if (pMetadata == NULL) { + return 0; + } + bytesJustRead = ma_dr_wav__metadata_parser_read(pParser, smplHeaderData, sizeof(smplHeaderData), &totalBytesRead); + MA_DR_WAV_ASSERT(pParser->stage == ma_dr_wav__metadata_parser_stage_read); + MA_DR_WAV_ASSERT(pChunkHeader != NULL); + if (pMetadata != NULL && bytesJustRead == sizeof(smplHeaderData)) { + ma_uint32 iSampleLoop; + pMetadata->type = ma_dr_wav_metadata_type_smpl; + pMetadata->data.smpl.manufacturerId = ma_dr_wav_bytes_to_u32(smplHeaderData + 0); + pMetadata->data.smpl.productId = ma_dr_wav_bytes_to_u32(smplHeaderData + 4); + pMetadata->data.smpl.samplePeriodNanoseconds = ma_dr_wav_bytes_to_u32(smplHeaderData + 8); + pMetadata->data.smpl.midiUnityNote = ma_dr_wav_bytes_to_u32(smplHeaderData + 12); + pMetadata->data.smpl.midiPitchFraction = ma_dr_wav_bytes_to_u32(smplHeaderData + 16); + pMetadata->data.smpl.smpteFormat = ma_dr_wav_bytes_to_u32(smplHeaderData + 20); + pMetadata->data.smpl.smpteOffset = ma_dr_wav_bytes_to_u32(smplHeaderData + 24); + pMetadata->data.smpl.sampleLoopCount = ma_dr_wav_bytes_to_u32(smplHeaderData + 28); + pMetadata->data.smpl.samplerSpecificDataSizeInBytes = ma_dr_wav_bytes_to_u32(smplHeaderData + 32); + if (pMetadata->data.smpl.sampleLoopCount == (pChunkHeader->sizeInBytes - MA_DR_WAV_SMPL_BYTES) / MA_DR_WAV_SMPL_LOOP_BYTES) { + pMetadata->data.smpl.pLoops = (ma_dr_wav_smpl_loop*)ma_dr_wav__metadata_get_memory(pParser, sizeof(ma_dr_wav_smpl_loop) * pMetadata->data.smpl.sampleLoopCount, MA_DR_WAV_METADATA_ALIGNMENT); for (iSampleLoop = 0; iSampleLoop < pMetadata->data.smpl.sampleLoopCount; ++iSampleLoop) { - drwav_uint8 smplLoopData[DRWAV_SMPL_LOOP_BYTES]; - bytesJustRead = drwav__metadata_parser_read(pParser, smplLoopData, sizeof(smplLoopData), &totalBytesRead); + ma_uint8 smplLoopData[MA_DR_WAV_SMPL_LOOP_BYTES]; + bytesJustRead = ma_dr_wav__metadata_parser_read(pParser, smplLoopData, sizeof(smplLoopData), &totalBytesRead); if (bytesJustRead == sizeof(smplLoopData)) { - pMetadata->data.smpl.pLoops[iSampleLoop].cuePointId = drwav_bytes_to_u32(smplLoopData + 0); - pMetadata->data.smpl.pLoops[iSampleLoop].type = drwav_bytes_to_u32(smplLoopData + 4); - pMetadata->data.smpl.pLoops[iSampleLoop].firstSampleByteOffset = drwav_bytes_to_u32(smplLoopData + 8); - pMetadata->data.smpl.pLoops[iSampleLoop].lastSampleByteOffset = drwav_bytes_to_u32(smplLoopData + 12); - pMetadata->data.smpl.pLoops[iSampleLoop].sampleFraction = drwav_bytes_to_u32(smplLoopData + 16); - pMetadata->data.smpl.pLoops[iSampleLoop].playCount = drwav_bytes_to_u32(smplLoopData + 20); + pMetadata->data.smpl.pLoops[iSampleLoop].cuePointId = ma_dr_wav_bytes_to_u32(smplLoopData + 0); + pMetadata->data.smpl.pLoops[iSampleLoop].type = ma_dr_wav_bytes_to_u32(smplLoopData + 4); + pMetadata->data.smpl.pLoops[iSampleLoop].firstSampleByteOffset = ma_dr_wav_bytes_to_u32(smplLoopData + 8); + pMetadata->data.smpl.pLoops[iSampleLoop].lastSampleByteOffset = ma_dr_wav_bytes_to_u32(smplLoopData + 12); + pMetadata->data.smpl.pLoops[iSampleLoop].sampleFraction = ma_dr_wav_bytes_to_u32(smplLoopData + 16); + pMetadata->data.smpl.pLoops[iSampleLoop].playCount = ma_dr_wav_bytes_to_u32(smplLoopData + 20); } else { break; } } if (pMetadata->data.smpl.samplerSpecificDataSizeInBytes > 0) { - pMetadata->data.smpl.pSamplerSpecificData = drwav__metadata_get_memory(pParser, pMetadata->data.smpl.samplerSpecificDataSizeInBytes, 1); - DRWAV_ASSERT(pMetadata->data.smpl.pSamplerSpecificData != NULL); - drwav__metadata_parser_read(pParser, pMetadata->data.smpl.pSamplerSpecificData, pMetadata->data.smpl.samplerSpecificDataSizeInBytes, &totalBytesRead); + pMetadata->data.smpl.pSamplerSpecificData = ma_dr_wav__metadata_get_memory(pParser, pMetadata->data.smpl.samplerSpecificDataSizeInBytes, 1); + MA_DR_WAV_ASSERT(pMetadata->data.smpl.pSamplerSpecificData != NULL); + ma_dr_wav__metadata_parser_read(pParser, pMetadata->data.smpl.pSamplerSpecificData, pMetadata->data.smpl.samplerSpecificDataSizeInBytes, &totalBytesRead); } } } return totalBytesRead; } -DRWAV_PRIVATE drwav_uint64 drwav__read_cue_to_metadata_obj(drwav__metadata_parser* pParser, const drwav_chunk_header* pChunkHeader, drwav_metadata* pMetadata) +MA_PRIVATE ma_uint64 ma_dr_wav__read_cue_to_metadata_obj(ma_dr_wav__metadata_parser* pParser, const ma_dr_wav_chunk_header* pChunkHeader, ma_dr_wav_metadata* pMetadata) { - drwav_uint8 cueHeaderSectionData[DRWAV_CUE_BYTES]; - drwav_uint64 totalBytesRead = 0; - size_t bytesJustRead = drwav__metadata_parser_read(pParser, cueHeaderSectionData, sizeof(cueHeaderSectionData), &totalBytesRead); - DRWAV_ASSERT(pParser->stage == drwav__metadata_parser_stage_read); + ma_uint8 cueHeaderSectionData[MA_DR_WAV_CUE_BYTES]; + ma_uint64 totalBytesRead = 0; + size_t bytesJustRead; + if (pMetadata == NULL) { + return 0; + } + bytesJustRead = ma_dr_wav__metadata_parser_read(pParser, cueHeaderSectionData, sizeof(cueHeaderSectionData), &totalBytesRead); + MA_DR_WAV_ASSERT(pParser->stage == ma_dr_wav__metadata_parser_stage_read); if (bytesJustRead == sizeof(cueHeaderSectionData)) { - pMetadata->type = drwav_metadata_type_cue; - pMetadata->data.cue.cuePointCount = drwav_bytes_to_u32(cueHeaderSectionData); - if (pMetadata->data.cue.cuePointCount == (pChunkHeader->sizeInBytes - DRWAV_CUE_BYTES) / DRWAV_CUE_POINT_BYTES) { - pMetadata->data.cue.pCuePoints = (drwav_cue_point*)drwav__metadata_get_memory(pParser, sizeof(drwav_cue_point) * pMetadata->data.cue.cuePointCount, DRWAV_METADATA_ALIGNMENT); - DRWAV_ASSERT(pMetadata->data.cue.pCuePoints != NULL); + pMetadata->type = ma_dr_wav_metadata_type_cue; + pMetadata->data.cue.cuePointCount = ma_dr_wav_bytes_to_u32(cueHeaderSectionData); + if (pMetadata->data.cue.cuePointCount == (pChunkHeader->sizeInBytes - MA_DR_WAV_CUE_BYTES) / MA_DR_WAV_CUE_POINT_BYTES) { + pMetadata->data.cue.pCuePoints = (ma_dr_wav_cue_point*)ma_dr_wav__metadata_get_memory(pParser, sizeof(ma_dr_wav_cue_point) * pMetadata->data.cue.cuePointCount, MA_DR_WAV_METADATA_ALIGNMENT); + MA_DR_WAV_ASSERT(pMetadata->data.cue.pCuePoints != NULL); if (pMetadata->data.cue.cuePointCount > 0) { - drwav_uint32 iCuePoint; + ma_uint32 iCuePoint; for (iCuePoint = 0; iCuePoint < pMetadata->data.cue.cuePointCount; ++iCuePoint) { - drwav_uint8 cuePointData[DRWAV_CUE_POINT_BYTES]; - bytesJustRead = drwav__metadata_parser_read(pParser, cuePointData, sizeof(cuePointData), &totalBytesRead); + ma_uint8 cuePointData[MA_DR_WAV_CUE_POINT_BYTES]; + bytesJustRead = ma_dr_wav__metadata_parser_read(pParser, cuePointData, sizeof(cuePointData), &totalBytesRead); if (bytesJustRead == sizeof(cuePointData)) { - pMetadata->data.cue.pCuePoints[iCuePoint].id = drwav_bytes_to_u32(cuePointData + 0); - pMetadata->data.cue.pCuePoints[iCuePoint].playOrderPosition = drwav_bytes_to_u32(cuePointData + 4); + pMetadata->data.cue.pCuePoints[iCuePoint].id = ma_dr_wav_bytes_to_u32(cuePointData + 0); + pMetadata->data.cue.pCuePoints[iCuePoint].playOrderPosition = ma_dr_wav_bytes_to_u32(cuePointData + 4); pMetadata->data.cue.pCuePoints[iCuePoint].dataChunkId[0] = cuePointData[8]; pMetadata->data.cue.pCuePoints[iCuePoint].dataChunkId[1] = cuePointData[9]; pMetadata->data.cue.pCuePoints[iCuePoint].dataChunkId[2] = cuePointData[10]; pMetadata->data.cue.pCuePoints[iCuePoint].dataChunkId[3] = cuePointData[11]; - pMetadata->data.cue.pCuePoints[iCuePoint].chunkStart = drwav_bytes_to_u32(cuePointData + 12); - pMetadata->data.cue.pCuePoints[iCuePoint].blockStart = drwav_bytes_to_u32(cuePointData + 16); - pMetadata->data.cue.pCuePoints[iCuePoint].sampleByteOffset = drwav_bytes_to_u32(cuePointData + 20); + pMetadata->data.cue.pCuePoints[iCuePoint].chunkStart = ma_dr_wav_bytes_to_u32(cuePointData + 12); + pMetadata->data.cue.pCuePoints[iCuePoint].blockStart = ma_dr_wav_bytes_to_u32(cuePointData + 16); + pMetadata->data.cue.pCuePoints[iCuePoint].sampleByteOffset = ma_dr_wav_bytes_to_u32(cuePointData + 20); } else { break; } @@ -74554,42 +77928,50 @@ DRWAV_PRIVATE drwav_uint64 drwav__read_cue_to_metadata_obj(drwav__metadata_parse } return totalBytesRead; } -DRWAV_PRIVATE drwav_uint64 drwav__read_inst_to_metadata_obj(drwav__metadata_parser* pParser, drwav_metadata* pMetadata) +MA_PRIVATE ma_uint64 ma_dr_wav__read_inst_to_metadata_obj(ma_dr_wav__metadata_parser* pParser, ma_dr_wav_metadata* pMetadata) { - drwav_uint8 instData[DRWAV_INST_BYTES]; - drwav_uint64 bytesRead = drwav__metadata_parser_read(pParser, instData, sizeof(instData), NULL); - DRWAV_ASSERT(pParser->stage == drwav__metadata_parser_stage_read); + ma_uint8 instData[MA_DR_WAV_INST_BYTES]; + ma_uint64 bytesRead; + if (pMetadata == NULL) { + return 0; + } + bytesRead = ma_dr_wav__metadata_parser_read(pParser, instData, sizeof(instData), NULL); + MA_DR_WAV_ASSERT(pParser->stage == ma_dr_wav__metadata_parser_stage_read); if (bytesRead == sizeof(instData)) { - pMetadata->type = drwav_metadata_type_inst; - pMetadata->data.inst.midiUnityNote = (drwav_int8)instData[0]; - pMetadata->data.inst.fineTuneCents = (drwav_int8)instData[1]; - pMetadata->data.inst.gainDecibels = (drwav_int8)instData[2]; - pMetadata->data.inst.lowNote = (drwav_int8)instData[3]; - pMetadata->data.inst.highNote = (drwav_int8)instData[4]; - pMetadata->data.inst.lowVelocity = (drwav_int8)instData[5]; - pMetadata->data.inst.highVelocity = (drwav_int8)instData[6]; + pMetadata->type = ma_dr_wav_metadata_type_inst; + pMetadata->data.inst.midiUnityNote = (ma_int8)instData[0]; + pMetadata->data.inst.fineTuneCents = (ma_int8)instData[1]; + pMetadata->data.inst.gainDecibels = (ma_int8)instData[2]; + pMetadata->data.inst.lowNote = (ma_int8)instData[3]; + pMetadata->data.inst.highNote = (ma_int8)instData[4]; + pMetadata->data.inst.lowVelocity = (ma_int8)instData[5]; + pMetadata->data.inst.highVelocity = (ma_int8)instData[6]; } return bytesRead; } -DRWAV_PRIVATE drwav_uint64 drwav__read_acid_to_metadata_obj(drwav__metadata_parser* pParser, drwav_metadata* pMetadata) +MA_PRIVATE ma_uint64 ma_dr_wav__read_acid_to_metadata_obj(ma_dr_wav__metadata_parser* pParser, ma_dr_wav_metadata* pMetadata) { - drwav_uint8 acidData[DRWAV_ACID_BYTES]; - drwav_uint64 bytesRead = drwav__metadata_parser_read(pParser, acidData, sizeof(acidData), NULL); - DRWAV_ASSERT(pParser->stage == drwav__metadata_parser_stage_read); + ma_uint8 acidData[MA_DR_WAV_ACID_BYTES]; + ma_uint64 bytesRead; + if (pMetadata == NULL) { + return 0; + } + bytesRead = ma_dr_wav__metadata_parser_read(pParser, acidData, sizeof(acidData), NULL); + MA_DR_WAV_ASSERT(pParser->stage == ma_dr_wav__metadata_parser_stage_read); if (bytesRead == sizeof(acidData)) { - pMetadata->type = drwav_metadata_type_acid; - pMetadata->data.acid.flags = drwav_bytes_to_u32(acidData + 0); - pMetadata->data.acid.midiUnityNote = drwav_bytes_to_u16(acidData + 4); - pMetadata->data.acid.reserved1 = drwav_bytes_to_u16(acidData + 6); - pMetadata->data.acid.reserved2 = drwav_bytes_to_f32(acidData + 8); - pMetadata->data.acid.numBeats = drwav_bytes_to_u32(acidData + 12); - pMetadata->data.acid.meterDenominator = drwav_bytes_to_u16(acidData + 16); - pMetadata->data.acid.meterNumerator = drwav_bytes_to_u16(acidData + 18); - pMetadata->data.acid.tempo = drwav_bytes_to_f32(acidData + 20); + pMetadata->type = ma_dr_wav_metadata_type_acid; + pMetadata->data.acid.flags = ma_dr_wav_bytes_to_u32(acidData + 0); + pMetadata->data.acid.midiUnityNote = ma_dr_wav_bytes_to_u16(acidData + 4); + pMetadata->data.acid.reserved1 = ma_dr_wav_bytes_to_u16(acidData + 6); + pMetadata->data.acid.reserved2 = ma_dr_wav_bytes_to_f32(acidData + 8); + pMetadata->data.acid.numBeats = ma_dr_wav_bytes_to_u32(acidData + 12); + pMetadata->data.acid.meterDenominator = ma_dr_wav_bytes_to_u16(acidData + 16); + pMetadata->data.acid.meterNumerator = ma_dr_wav_bytes_to_u16(acidData + 18); + pMetadata->data.acid.tempo = ma_dr_wav_bytes_to_f32(acidData + 20); } return bytesRead; } -DRWAV_PRIVATE size_t drwav__strlen(const char* str) +MA_PRIVATE size_t ma_dr_wav__strlen(const char* str) { size_t result = 0; while (*str++) { @@ -74597,7 +77979,7 @@ DRWAV_PRIVATE size_t drwav__strlen(const char* str) } return result; } -DRWAV_PRIVATE size_t drwav__strlen_clamped(const char* str, size_t maxToRead) +MA_PRIVATE size_t ma_dr_wav__strlen_clamped(const char* str, size_t maxToRead) { size_t result = 0; while (*str++ && result < maxToRead) { @@ -74605,13 +77987,13 @@ DRWAV_PRIVATE size_t drwav__strlen_clamped(const char* str, size_t maxToRead) } return result; } -DRWAV_PRIVATE char* drwav__metadata_copy_string(drwav__metadata_parser* pParser, const char* str, size_t maxToRead) +MA_PRIVATE char* ma_dr_wav__metadata_copy_string(ma_dr_wav__metadata_parser* pParser, const char* str, size_t maxToRead) { - size_t len = drwav__strlen_clamped(str, maxToRead); + size_t len = ma_dr_wav__strlen_clamped(str, maxToRead); if (len) { - char* result = (char*)drwav__metadata_get_memory(pParser, len + 1, 1); - DRWAV_ASSERT(result != NULL); - DRWAV_COPY_MEMORY(result, str, len); + char* result = (char*)ma_dr_wav__metadata_get_memory(pParser, len + 1, 1); + MA_DR_WAV_ASSERT(result != NULL); + MA_DR_WAV_COPY_MEMORY(result, str, len); result[len] = '\0'; return result; } else { @@ -74623,36 +78005,36 @@ typedef struct const void* pBuffer; size_t sizeInBytes; size_t cursor; -} drwav_buffer_reader; -DRWAV_PRIVATE drwav_result drwav_buffer_reader_init(const void* pBuffer, size_t sizeInBytes, drwav_buffer_reader* pReader) +} ma_dr_wav_buffer_reader; +MA_PRIVATE ma_result ma_dr_wav_buffer_reader_init(const void* pBuffer, size_t sizeInBytes, ma_dr_wav_buffer_reader* pReader) { - DRWAV_ASSERT(pBuffer != NULL); - DRWAV_ASSERT(pReader != NULL); - DRWAV_ZERO_OBJECT(pReader); + MA_DR_WAV_ASSERT(pBuffer != NULL); + MA_DR_WAV_ASSERT(pReader != NULL); + MA_DR_WAV_ZERO_OBJECT(pReader); pReader->pBuffer = pBuffer; pReader->sizeInBytes = sizeInBytes; pReader->cursor = 0; - return DRWAV_SUCCESS; + return MA_SUCCESS; } -DRWAV_PRIVATE const void* drwav_buffer_reader_ptr(const drwav_buffer_reader* pReader) +MA_PRIVATE const void* ma_dr_wav_buffer_reader_ptr(const ma_dr_wav_buffer_reader* pReader) { - DRWAV_ASSERT(pReader != NULL); - return drwav_offset_ptr(pReader->pBuffer, pReader->cursor); + MA_DR_WAV_ASSERT(pReader != NULL); + return ma_dr_wav_offset_ptr(pReader->pBuffer, pReader->cursor); } -DRWAV_PRIVATE drwav_result drwav_buffer_reader_seek(drwav_buffer_reader* pReader, size_t bytesToSeek) +MA_PRIVATE ma_result ma_dr_wav_buffer_reader_seek(ma_dr_wav_buffer_reader* pReader, size_t bytesToSeek) { - DRWAV_ASSERT(pReader != NULL); + MA_DR_WAV_ASSERT(pReader != NULL); if (pReader->cursor + bytesToSeek > pReader->sizeInBytes) { - return DRWAV_BAD_SEEK; + return MA_BAD_SEEK; } pReader->cursor += bytesToSeek; - return DRWAV_SUCCESS; + return MA_SUCCESS; } -DRWAV_PRIVATE drwav_result drwav_buffer_reader_read(drwav_buffer_reader* pReader, void* pDst, size_t bytesToRead, size_t* pBytesRead) +MA_PRIVATE ma_result ma_dr_wav_buffer_reader_read(ma_dr_wav_buffer_reader* pReader, void* pDst, size_t bytesToRead, size_t* pBytesRead) { - drwav_result result = DRWAV_SUCCESS; + ma_result result = MA_SUCCESS; size_t bytesRemaining; - DRWAV_ASSERT(pReader != NULL); + MA_DR_WAV_ASSERT(pReader != NULL); if (pBytesRead != NULL) { *pBytesRead = 0; } @@ -74661,87 +78043,87 @@ DRWAV_PRIVATE drwav_result drwav_buffer_reader_read(drwav_buffer_reader* pReader bytesToRead = bytesRemaining; } if (pDst == NULL) { - result = drwav_buffer_reader_seek(pReader, bytesToRead); + result = ma_dr_wav_buffer_reader_seek(pReader, bytesToRead); } else { - DRWAV_COPY_MEMORY(pDst, drwav_buffer_reader_ptr(pReader), bytesToRead); + MA_DR_WAV_COPY_MEMORY(pDst, ma_dr_wav_buffer_reader_ptr(pReader), bytesToRead); pReader->cursor += bytesToRead; } - DRWAV_ASSERT(pReader->cursor <= pReader->sizeInBytes); - if (result == DRWAV_SUCCESS) { + MA_DR_WAV_ASSERT(pReader->cursor <= pReader->sizeInBytes); + if (result == MA_SUCCESS) { if (pBytesRead != NULL) { *pBytesRead = bytesToRead; } } - return DRWAV_SUCCESS; + return MA_SUCCESS; } -DRWAV_PRIVATE drwav_result drwav_buffer_reader_read_u16(drwav_buffer_reader* pReader, drwav_uint16* pDst) +MA_PRIVATE ma_result ma_dr_wav_buffer_reader_read_u16(ma_dr_wav_buffer_reader* pReader, ma_uint16* pDst) { - drwav_result result; + ma_result result; size_t bytesRead; - drwav_uint8 data[2]; - DRWAV_ASSERT(pReader != NULL); - DRWAV_ASSERT(pDst != NULL); + ma_uint8 data[2]; + MA_DR_WAV_ASSERT(pReader != NULL); + MA_DR_WAV_ASSERT(pDst != NULL); *pDst = 0; - result = drwav_buffer_reader_read(pReader, data, sizeof(*pDst), &bytesRead); - if (result != DRWAV_SUCCESS || bytesRead != sizeof(*pDst)) { + result = ma_dr_wav_buffer_reader_read(pReader, data, sizeof(*pDst), &bytesRead); + if (result != MA_SUCCESS || bytesRead != sizeof(*pDst)) { return result; } - *pDst = drwav_bytes_to_u16(data); - return DRWAV_SUCCESS; + *pDst = ma_dr_wav_bytes_to_u16(data); + return MA_SUCCESS; } -DRWAV_PRIVATE drwav_result drwav_buffer_reader_read_u32(drwav_buffer_reader* pReader, drwav_uint32* pDst) +MA_PRIVATE ma_result ma_dr_wav_buffer_reader_read_u32(ma_dr_wav_buffer_reader* pReader, ma_uint32* pDst) { - drwav_result result; + ma_result result; size_t bytesRead; - drwav_uint8 data[4]; - DRWAV_ASSERT(pReader != NULL); - DRWAV_ASSERT(pDst != NULL); + ma_uint8 data[4]; + MA_DR_WAV_ASSERT(pReader != NULL); + MA_DR_WAV_ASSERT(pDst != NULL); *pDst = 0; - result = drwav_buffer_reader_read(pReader, data, sizeof(*pDst), &bytesRead); - if (result != DRWAV_SUCCESS || bytesRead != sizeof(*pDst)) { + result = ma_dr_wav_buffer_reader_read(pReader, data, sizeof(*pDst), &bytesRead); + if (result != MA_SUCCESS || bytesRead != sizeof(*pDst)) { return result; } - *pDst = drwav_bytes_to_u32(data); - return DRWAV_SUCCESS; + *pDst = ma_dr_wav_bytes_to_u32(data); + return MA_SUCCESS; } -DRWAV_PRIVATE drwav_uint64 drwav__read_bext_to_metadata_obj(drwav__metadata_parser* pParser, drwav_metadata* pMetadata, drwav_uint64 chunkSize) +MA_PRIVATE ma_uint64 ma_dr_wav__read_bext_to_metadata_obj(ma_dr_wav__metadata_parser* pParser, ma_dr_wav_metadata* pMetadata, ma_uint64 chunkSize) { - drwav_uint8 bextData[DRWAV_BEXT_BYTES]; - size_t bytesRead = drwav__metadata_parser_read(pParser, bextData, sizeof(bextData), NULL); - DRWAV_ASSERT(pParser->stage == drwav__metadata_parser_stage_read); + ma_uint8 bextData[MA_DR_WAV_BEXT_BYTES]; + size_t bytesRead = ma_dr_wav__metadata_parser_read(pParser, bextData, sizeof(bextData), NULL); + MA_DR_WAV_ASSERT(pParser->stage == ma_dr_wav__metadata_parser_stage_read); if (bytesRead == sizeof(bextData)) { - drwav_buffer_reader reader; - drwav_uint32 timeReferenceLow; - drwav_uint32 timeReferenceHigh; + ma_dr_wav_buffer_reader reader; + ma_uint32 timeReferenceLow; + ma_uint32 timeReferenceHigh; size_t extraBytes; - pMetadata->type = drwav_metadata_type_bext; - if (drwav_buffer_reader_init(bextData, bytesRead, &reader) == DRWAV_SUCCESS) { - pMetadata->data.bext.pDescription = drwav__metadata_copy_string(pParser, (const char*)drwav_buffer_reader_ptr(&reader), DRWAV_BEXT_DESCRIPTION_BYTES); - drwav_buffer_reader_seek(&reader, DRWAV_BEXT_DESCRIPTION_BYTES); - pMetadata->data.bext.pOriginatorName = drwav__metadata_copy_string(pParser, (const char*)drwav_buffer_reader_ptr(&reader), DRWAV_BEXT_ORIGINATOR_NAME_BYTES); - drwav_buffer_reader_seek(&reader, DRWAV_BEXT_ORIGINATOR_NAME_BYTES); - pMetadata->data.bext.pOriginatorReference = drwav__metadata_copy_string(pParser, (const char*)drwav_buffer_reader_ptr(&reader), DRWAV_BEXT_ORIGINATOR_REF_BYTES); - drwav_buffer_reader_seek(&reader, DRWAV_BEXT_ORIGINATOR_REF_BYTES); - drwav_buffer_reader_read(&reader, pMetadata->data.bext.pOriginationDate, sizeof(pMetadata->data.bext.pOriginationDate), NULL); - drwav_buffer_reader_read(&reader, pMetadata->data.bext.pOriginationTime, sizeof(pMetadata->data.bext.pOriginationTime), NULL); - drwav_buffer_reader_read_u32(&reader, &timeReferenceLow); - drwav_buffer_reader_read_u32(&reader, &timeReferenceHigh); - pMetadata->data.bext.timeReference = ((drwav_uint64)timeReferenceHigh << 32) + timeReferenceLow; - drwav_buffer_reader_read_u16(&reader, &pMetadata->data.bext.version); - pMetadata->data.bext.pUMID = drwav__metadata_get_memory(pParser, DRWAV_BEXT_UMID_BYTES, 1); - drwav_buffer_reader_read(&reader, pMetadata->data.bext.pUMID, DRWAV_BEXT_UMID_BYTES, NULL); - drwav_buffer_reader_read_u16(&reader, &pMetadata->data.bext.loudnessValue); - drwav_buffer_reader_read_u16(&reader, &pMetadata->data.bext.loudnessRange); - drwav_buffer_reader_read_u16(&reader, &pMetadata->data.bext.maxTruePeakLevel); - drwav_buffer_reader_read_u16(&reader, &pMetadata->data.bext.maxMomentaryLoudness); - drwav_buffer_reader_read_u16(&reader, &pMetadata->data.bext.maxShortTermLoudness); - DRWAV_ASSERT((drwav_offset_ptr(drwav_buffer_reader_ptr(&reader), DRWAV_BEXT_RESERVED_BYTES)) == (bextData + DRWAV_BEXT_BYTES)); - extraBytes = (size_t)(chunkSize - DRWAV_BEXT_BYTES); + pMetadata->type = ma_dr_wav_metadata_type_bext; + if (ma_dr_wav_buffer_reader_init(bextData, bytesRead, &reader) == MA_SUCCESS) { + pMetadata->data.bext.pDescription = ma_dr_wav__metadata_copy_string(pParser, (const char*)ma_dr_wav_buffer_reader_ptr(&reader), MA_DR_WAV_BEXT_DESCRIPTION_BYTES); + ma_dr_wav_buffer_reader_seek(&reader, MA_DR_WAV_BEXT_DESCRIPTION_BYTES); + pMetadata->data.bext.pOriginatorName = ma_dr_wav__metadata_copy_string(pParser, (const char*)ma_dr_wav_buffer_reader_ptr(&reader), MA_DR_WAV_BEXT_ORIGINATOR_NAME_BYTES); + ma_dr_wav_buffer_reader_seek(&reader, MA_DR_WAV_BEXT_ORIGINATOR_NAME_BYTES); + pMetadata->data.bext.pOriginatorReference = ma_dr_wav__metadata_copy_string(pParser, (const char*)ma_dr_wav_buffer_reader_ptr(&reader), MA_DR_WAV_BEXT_ORIGINATOR_REF_BYTES); + ma_dr_wav_buffer_reader_seek(&reader, MA_DR_WAV_BEXT_ORIGINATOR_REF_BYTES); + ma_dr_wav_buffer_reader_read(&reader, pMetadata->data.bext.pOriginationDate, sizeof(pMetadata->data.bext.pOriginationDate), NULL); + ma_dr_wav_buffer_reader_read(&reader, pMetadata->data.bext.pOriginationTime, sizeof(pMetadata->data.bext.pOriginationTime), NULL); + ma_dr_wav_buffer_reader_read_u32(&reader, &timeReferenceLow); + ma_dr_wav_buffer_reader_read_u32(&reader, &timeReferenceHigh); + pMetadata->data.bext.timeReference = ((ma_uint64)timeReferenceHigh << 32) + timeReferenceLow; + ma_dr_wav_buffer_reader_read_u16(&reader, &pMetadata->data.bext.version); + pMetadata->data.bext.pUMID = ma_dr_wav__metadata_get_memory(pParser, MA_DR_WAV_BEXT_UMID_BYTES, 1); + ma_dr_wav_buffer_reader_read(&reader, pMetadata->data.bext.pUMID, MA_DR_WAV_BEXT_UMID_BYTES, NULL); + ma_dr_wav_buffer_reader_read_u16(&reader, &pMetadata->data.bext.loudnessValue); + ma_dr_wav_buffer_reader_read_u16(&reader, &pMetadata->data.bext.loudnessRange); + ma_dr_wav_buffer_reader_read_u16(&reader, &pMetadata->data.bext.maxTruePeakLevel); + ma_dr_wav_buffer_reader_read_u16(&reader, &pMetadata->data.bext.maxMomentaryLoudness); + ma_dr_wav_buffer_reader_read_u16(&reader, &pMetadata->data.bext.maxShortTermLoudness); + MA_DR_WAV_ASSERT((ma_dr_wav_offset_ptr(ma_dr_wav_buffer_reader_ptr(&reader), MA_DR_WAV_BEXT_RESERVED_BYTES)) == (bextData + MA_DR_WAV_BEXT_BYTES)); + extraBytes = (size_t)(chunkSize - MA_DR_WAV_BEXT_BYTES); if (extraBytes > 0) { - pMetadata->data.bext.pCodingHistory = (char*)drwav__metadata_get_memory(pParser, extraBytes + 1, 1); - DRWAV_ASSERT(pMetadata->data.bext.pCodingHistory != NULL); - bytesRead += drwav__metadata_parser_read(pParser, pMetadata->data.bext.pCodingHistory, extraBytes, NULL); - pMetadata->data.bext.codingHistorySize = (drwav_uint32)drwav__strlen(pMetadata->data.bext.pCodingHistory); + pMetadata->data.bext.pCodingHistory = (char*)ma_dr_wav__metadata_get_memory(pParser, extraBytes + 1, 1); + MA_DR_WAV_ASSERT(pMetadata->data.bext.pCodingHistory != NULL); + bytesRead += ma_dr_wav__metadata_parser_read(pParser, pMetadata->data.bext.pCodingHistory, extraBytes, NULL); + pMetadata->data.bext.codingHistorySize = (ma_uint32)ma_dr_wav__strlen(pMetadata->data.bext.pCodingHistory); } else { pMetadata->data.bext.pCodingHistory = NULL; pMetadata->data.bext.codingHistorySize = 0; @@ -74750,22 +78132,22 @@ DRWAV_PRIVATE drwav_uint64 drwav__read_bext_to_metadata_obj(drwav__metadata_pars } return bytesRead; } -DRWAV_PRIVATE drwav_uint64 drwav__read_list_label_or_note_to_metadata_obj(drwav__metadata_parser* pParser, drwav_metadata* pMetadata, drwav_uint64 chunkSize, drwav_metadata_type type) +MA_PRIVATE ma_uint64 ma_dr_wav__read_list_label_or_note_to_metadata_obj(ma_dr_wav__metadata_parser* pParser, ma_dr_wav_metadata* pMetadata, ma_uint64 chunkSize, ma_dr_wav_metadata_type type) { - drwav_uint8 cueIDBuffer[DRWAV_LIST_LABEL_OR_NOTE_BYTES]; - drwav_uint64 totalBytesRead = 0; - size_t bytesJustRead = drwav__metadata_parser_read(pParser, cueIDBuffer, sizeof(cueIDBuffer), &totalBytesRead); - DRWAV_ASSERT(pParser->stage == drwav__metadata_parser_stage_read); + ma_uint8 cueIDBuffer[MA_DR_WAV_LIST_LABEL_OR_NOTE_BYTES]; + ma_uint64 totalBytesRead = 0; + size_t bytesJustRead = ma_dr_wav__metadata_parser_read(pParser, cueIDBuffer, sizeof(cueIDBuffer), &totalBytesRead); + MA_DR_WAV_ASSERT(pParser->stage == ma_dr_wav__metadata_parser_stage_read); if (bytesJustRead == sizeof(cueIDBuffer)) { - drwav_uint32 sizeIncludingNullTerminator; + ma_uint32 sizeIncludingNullTerminator; pMetadata->type = type; - pMetadata->data.labelOrNote.cuePointId = drwav_bytes_to_u32(cueIDBuffer); - sizeIncludingNullTerminator = (drwav_uint32)chunkSize - DRWAV_LIST_LABEL_OR_NOTE_BYTES; + pMetadata->data.labelOrNote.cuePointId = ma_dr_wav_bytes_to_u32(cueIDBuffer); + sizeIncludingNullTerminator = (ma_uint32)chunkSize - MA_DR_WAV_LIST_LABEL_OR_NOTE_BYTES; if (sizeIncludingNullTerminator > 0) { pMetadata->data.labelOrNote.stringLength = sizeIncludingNullTerminator - 1; - pMetadata->data.labelOrNote.pString = (char*)drwav__metadata_get_memory(pParser, sizeIncludingNullTerminator, 1); - DRWAV_ASSERT(pMetadata->data.labelOrNote.pString != NULL); - drwav__metadata_parser_read(pParser, pMetadata->data.labelOrNote.pString, sizeIncludingNullTerminator, &totalBytesRead); + pMetadata->data.labelOrNote.pString = (char*)ma_dr_wav__metadata_get_memory(pParser, sizeIncludingNullTerminator, 1); + MA_DR_WAV_ASSERT(pMetadata->data.labelOrNote.pString != NULL); + ma_dr_wav__metadata_parser_read(pParser, pMetadata->data.labelOrNote.pString, sizeIncludingNullTerminator, &totalBytesRead); } else { pMetadata->data.labelOrNote.stringLength = 0; pMetadata->data.labelOrNote.pString = NULL; @@ -74773,31 +78155,31 @@ DRWAV_PRIVATE drwav_uint64 drwav__read_list_label_or_note_to_metadata_obj(drwav_ } return totalBytesRead; } -DRWAV_PRIVATE drwav_uint64 drwav__read_list_labelled_cue_region_to_metadata_obj(drwav__metadata_parser* pParser, drwav_metadata* pMetadata, drwav_uint64 chunkSize) +MA_PRIVATE ma_uint64 ma_dr_wav__read_list_labelled_cue_region_to_metadata_obj(ma_dr_wav__metadata_parser* pParser, ma_dr_wav_metadata* pMetadata, ma_uint64 chunkSize) { - drwav_uint8 buffer[DRWAV_LIST_LABELLED_TEXT_BYTES]; - drwav_uint64 totalBytesRead = 0; - size_t bytesJustRead = drwav__metadata_parser_read(pParser, buffer, sizeof(buffer), &totalBytesRead); - DRWAV_ASSERT(pParser->stage == drwav__metadata_parser_stage_read); + ma_uint8 buffer[MA_DR_WAV_LIST_LABELLED_TEXT_BYTES]; + ma_uint64 totalBytesRead = 0; + size_t bytesJustRead = ma_dr_wav__metadata_parser_read(pParser, buffer, sizeof(buffer), &totalBytesRead); + MA_DR_WAV_ASSERT(pParser->stage == ma_dr_wav__metadata_parser_stage_read); if (bytesJustRead == sizeof(buffer)) { - drwav_uint32 sizeIncludingNullTerminator; - pMetadata->type = drwav_metadata_type_list_labelled_cue_region; - pMetadata->data.labelledCueRegion.cuePointId = drwav_bytes_to_u32(buffer + 0); - pMetadata->data.labelledCueRegion.sampleLength = drwav_bytes_to_u32(buffer + 4); + ma_uint32 sizeIncludingNullTerminator; + pMetadata->type = ma_dr_wav_metadata_type_list_labelled_cue_region; + pMetadata->data.labelledCueRegion.cuePointId = ma_dr_wav_bytes_to_u32(buffer + 0); + pMetadata->data.labelledCueRegion.sampleLength = ma_dr_wav_bytes_to_u32(buffer + 4); pMetadata->data.labelledCueRegion.purposeId[0] = buffer[8]; pMetadata->data.labelledCueRegion.purposeId[1] = buffer[9]; pMetadata->data.labelledCueRegion.purposeId[2] = buffer[10]; pMetadata->data.labelledCueRegion.purposeId[3] = buffer[11]; - pMetadata->data.labelledCueRegion.country = drwav_bytes_to_u16(buffer + 12); - pMetadata->data.labelledCueRegion.language = drwav_bytes_to_u16(buffer + 14); - pMetadata->data.labelledCueRegion.dialect = drwav_bytes_to_u16(buffer + 16); - pMetadata->data.labelledCueRegion.codePage = drwav_bytes_to_u16(buffer + 18); - sizeIncludingNullTerminator = (drwav_uint32)chunkSize - DRWAV_LIST_LABELLED_TEXT_BYTES; + pMetadata->data.labelledCueRegion.country = ma_dr_wav_bytes_to_u16(buffer + 12); + pMetadata->data.labelledCueRegion.language = ma_dr_wav_bytes_to_u16(buffer + 14); + pMetadata->data.labelledCueRegion.dialect = ma_dr_wav_bytes_to_u16(buffer + 16); + pMetadata->data.labelledCueRegion.codePage = ma_dr_wav_bytes_to_u16(buffer + 18); + sizeIncludingNullTerminator = (ma_uint32)chunkSize - MA_DR_WAV_LIST_LABELLED_TEXT_BYTES; if (sizeIncludingNullTerminator > 0) { pMetadata->data.labelledCueRegion.stringLength = sizeIncludingNullTerminator - 1; - pMetadata->data.labelledCueRegion.pString = (char*)drwav__metadata_get_memory(pParser, sizeIncludingNullTerminator, 1); - DRWAV_ASSERT(pMetadata->data.labelledCueRegion.pString != NULL); - drwav__metadata_parser_read(pParser, pMetadata->data.labelledCueRegion.pString, sizeIncludingNullTerminator, &totalBytesRead); + pMetadata->data.labelledCueRegion.pString = (char*)ma_dr_wav__metadata_get_memory(pParser, sizeIncludingNullTerminator, 1); + MA_DR_WAV_ASSERT(pMetadata->data.labelledCueRegion.pString != NULL); + ma_dr_wav__metadata_parser_read(pParser, pMetadata->data.labelledCueRegion.pString, sizeIncludingNullTerminator, &totalBytesRead); } else { pMetadata->data.labelledCueRegion.stringLength = 0; pMetadata->data.labelledCueRegion.pString = NULL; @@ -74805,21 +78187,21 @@ DRWAV_PRIVATE drwav_uint64 drwav__read_list_labelled_cue_region_to_metadata_obj( } return totalBytesRead; } -DRWAV_PRIVATE drwav_uint64 drwav__metadata_process_info_text_chunk(drwav__metadata_parser* pParser, drwav_uint64 chunkSize, drwav_metadata_type type) +MA_PRIVATE ma_uint64 ma_dr_wav__metadata_process_info_text_chunk(ma_dr_wav__metadata_parser* pParser, ma_uint64 chunkSize, ma_dr_wav_metadata_type type) { - drwav_uint64 bytesRead = 0; - drwav_uint32 stringSizeWithNullTerminator = (drwav_uint32)chunkSize; - if (pParser->stage == drwav__metadata_parser_stage_count) { + ma_uint64 bytesRead = 0; + ma_uint32 stringSizeWithNullTerminator = (ma_uint32)chunkSize; + if (pParser->stage == ma_dr_wav__metadata_parser_stage_count) { pParser->metadataCount += 1; - drwav__metadata_request_extra_memory_for_stage_2(pParser, stringSizeWithNullTerminator, 1); + ma_dr_wav__metadata_request_extra_memory_for_stage_2(pParser, stringSizeWithNullTerminator, 1); } else { - drwav_metadata* pMetadata = &pParser->pMetadata[pParser->metadataCursor]; + ma_dr_wav_metadata* pMetadata = &pParser->pMetadata[pParser->metadataCursor]; pMetadata->type = type; if (stringSizeWithNullTerminator > 0) { pMetadata->data.infoText.stringLength = stringSizeWithNullTerminator - 1; - pMetadata->data.infoText.pString = (char*)drwav__metadata_get_memory(pParser, stringSizeWithNullTerminator, 1); - DRWAV_ASSERT(pMetadata->data.infoText.pString != NULL); - bytesRead = drwav__metadata_parser_read(pParser, pMetadata->data.infoText.pString, (size_t)stringSizeWithNullTerminator, NULL); + pMetadata->data.infoText.pString = (char*)ma_dr_wav__metadata_get_memory(pParser, stringSizeWithNullTerminator, 1); + MA_DR_WAV_ASSERT(pMetadata->data.infoText.pString != NULL); + bytesRead = ma_dr_wav__metadata_parser_read(pParser, pMetadata->data.infoText.pString, (size_t)stringSizeWithNullTerminator, NULL); if (bytesRead == chunkSize) { pParser->metadataCursor += 1; } else { @@ -74832,30 +78214,30 @@ DRWAV_PRIVATE drwav_uint64 drwav__metadata_process_info_text_chunk(drwav__metada } return bytesRead; } -DRWAV_PRIVATE drwav_uint64 drwav__metadata_process_unknown_chunk(drwav__metadata_parser* pParser, const drwav_uint8* pChunkId, drwav_uint64 chunkSize, drwav_metadata_location location) +MA_PRIVATE ma_uint64 ma_dr_wav__metadata_process_unknown_chunk(ma_dr_wav__metadata_parser* pParser, const ma_uint8* pChunkId, ma_uint64 chunkSize, ma_dr_wav_metadata_location location) { - drwav_uint64 bytesRead = 0; - if (location == drwav_metadata_location_invalid) { + ma_uint64 bytesRead = 0; + if (location == ma_dr_wav_metadata_location_invalid) { return 0; } - if (drwav_fourcc_equal(pChunkId, "data") || drwav_fourcc_equal(pChunkId, "fmt") || drwav_fourcc_equal(pChunkId, "fact")) { + if (ma_dr_wav_fourcc_equal(pChunkId, "data") || ma_dr_wav_fourcc_equal(pChunkId, "fmt ") || ma_dr_wav_fourcc_equal(pChunkId, "fact")) { return 0; } - if (pParser->stage == drwav__metadata_parser_stage_count) { + if (pParser->stage == ma_dr_wav__metadata_parser_stage_count) { pParser->metadataCount += 1; - drwav__metadata_request_extra_memory_for_stage_2(pParser, (size_t)chunkSize, 1); + ma_dr_wav__metadata_request_extra_memory_for_stage_2(pParser, (size_t)chunkSize, 1); } else { - drwav_metadata* pMetadata = &pParser->pMetadata[pParser->metadataCursor]; - pMetadata->type = drwav_metadata_type_unknown; + ma_dr_wav_metadata* pMetadata = &pParser->pMetadata[pParser->metadataCursor]; + pMetadata->type = ma_dr_wav_metadata_type_unknown; pMetadata->data.unknown.chunkLocation = location; pMetadata->data.unknown.id[0] = pChunkId[0]; pMetadata->data.unknown.id[1] = pChunkId[1]; pMetadata->data.unknown.id[2] = pChunkId[2]; pMetadata->data.unknown.id[3] = pChunkId[3]; - pMetadata->data.unknown.dataSizeInBytes = (drwav_uint32)chunkSize; - pMetadata->data.unknown.pData = (drwav_uint8 *)drwav__metadata_get_memory(pParser, (size_t)chunkSize, 1); - DRWAV_ASSERT(pMetadata->data.unknown.pData != NULL); - bytesRead = drwav__metadata_parser_read(pParser, pMetadata->data.unknown.pData, pMetadata->data.unknown.dataSizeInBytes, NULL); + pMetadata->data.unknown.dataSizeInBytes = (ma_uint32)chunkSize; + pMetadata->data.unknown.pData = (ma_uint8 *)ma_dr_wav__metadata_get_memory(pParser, (size_t)chunkSize, 1); + MA_DR_WAV_ASSERT(pMetadata->data.unknown.pData != NULL); + bytesRead = ma_dr_wav__metadata_parser_read(pParser, pMetadata->data.unknown.pData, pMetadata->data.unknown.dataSizeInBytes, NULL); if (bytesRead == pMetadata->data.unknown.dataSizeInBytes) { pParser->metadataCursor += 1; } else { @@ -74863,41 +78245,41 @@ DRWAV_PRIVATE drwav_uint64 drwav__metadata_process_unknown_chunk(drwav__metadata } return bytesRead; } -DRWAV_PRIVATE drwav_bool32 drwav__chunk_matches(drwav_metadata_type allowedMetadataTypes, const drwav_uint8* pChunkID, drwav_metadata_type type, const char* pID) +MA_PRIVATE ma_bool32 ma_dr_wav__chunk_matches(ma_dr_wav_metadata_type allowedMetadataTypes, const ma_uint8* pChunkID, ma_dr_wav_metadata_type type, const char* pID) { - return (allowedMetadataTypes & type) && drwav_fourcc_equal(pChunkID, pID); + return (allowedMetadataTypes & type) && ma_dr_wav_fourcc_equal(pChunkID, pID); } -DRWAV_PRIVATE drwav_uint64 drwav__metadata_process_chunk(drwav__metadata_parser* pParser, const drwav_chunk_header* pChunkHeader, drwav_metadata_type allowedMetadataTypes) +MA_PRIVATE ma_uint64 ma_dr_wav__metadata_process_chunk(ma_dr_wav__metadata_parser* pParser, const ma_dr_wav_chunk_header* pChunkHeader, ma_dr_wav_metadata_type allowedMetadataTypes) { - const drwav_uint8 *pChunkID = pChunkHeader->id.fourcc; - drwav_uint64 bytesRead = 0; - if (drwav__chunk_matches(allowedMetadataTypes, pChunkID, drwav_metadata_type_smpl, "smpl")) { - if (pChunkHeader->sizeInBytes >= DRWAV_SMPL_BYTES) { - if (pParser->stage == drwav__metadata_parser_stage_count) { - drwav_uint8 buffer[4]; + const ma_uint8 *pChunkID = pChunkHeader->id.fourcc; + ma_uint64 bytesRead = 0; + if (ma_dr_wav__chunk_matches(allowedMetadataTypes, pChunkID, ma_dr_wav_metadata_type_smpl, "smpl")) { + if (pChunkHeader->sizeInBytes >= MA_DR_WAV_SMPL_BYTES) { + if (pParser->stage == ma_dr_wav__metadata_parser_stage_count) { + ma_uint8 buffer[4]; size_t bytesJustRead; - if (!pParser->onSeek(pParser->pReadSeekUserData, 28, drwav_seek_origin_current)) { + if (!pParser->onSeek(pParser->pReadSeekUserData, 28, ma_dr_wav_seek_origin_current)) { return bytesRead; } bytesRead += 28; - bytesJustRead = drwav__metadata_parser_read(pParser, buffer, sizeof(buffer), &bytesRead); + bytesJustRead = ma_dr_wav__metadata_parser_read(pParser, buffer, sizeof(buffer), &bytesRead); if (bytesJustRead == sizeof(buffer)) { - drwav_uint32 loopCount = drwav_bytes_to_u32(buffer); - drwav_uint64 calculatedLoopCount; - calculatedLoopCount = (pChunkHeader->sizeInBytes - DRWAV_SMPL_BYTES) / DRWAV_SMPL_LOOP_BYTES; + ma_uint32 loopCount = ma_dr_wav_bytes_to_u32(buffer); + ma_uint64 calculatedLoopCount; + calculatedLoopCount = (pChunkHeader->sizeInBytes - MA_DR_WAV_SMPL_BYTES) / MA_DR_WAV_SMPL_LOOP_BYTES; if (calculatedLoopCount == loopCount) { - bytesJustRead = drwav__metadata_parser_read(pParser, buffer, sizeof(buffer), &bytesRead); + bytesJustRead = ma_dr_wav__metadata_parser_read(pParser, buffer, sizeof(buffer), &bytesRead); if (bytesJustRead == sizeof(buffer)) { - drwav_uint32 samplerSpecificDataSizeInBytes = drwav_bytes_to_u32(buffer); + ma_uint32 samplerSpecificDataSizeInBytes = ma_dr_wav_bytes_to_u32(buffer); pParser->metadataCount += 1; - drwav__metadata_request_extra_memory_for_stage_2(pParser, sizeof(drwav_smpl_loop) * loopCount, DRWAV_METADATA_ALIGNMENT); - drwav__metadata_request_extra_memory_for_stage_2(pParser, samplerSpecificDataSizeInBytes, 1); + ma_dr_wav__metadata_request_extra_memory_for_stage_2(pParser, sizeof(ma_dr_wav_smpl_loop) * loopCount, MA_DR_WAV_METADATA_ALIGNMENT); + ma_dr_wav__metadata_request_extra_memory_for_stage_2(pParser, samplerSpecificDataSizeInBytes, 1); } } else { } } } else { - bytesRead = drwav__read_smpl_to_metadata_obj(pParser, pChunkHeader, &pParser->pMetadata[pParser->metadataCursor]); + bytesRead = ma_dr_wav__read_smpl_to_metadata_obj(pParser, pChunkHeader, &pParser->pMetadata[pParser->metadataCursor]); if (bytesRead == pChunkHeader->sizeInBytes) { pParser->metadataCursor += 1; } else { @@ -74905,12 +78287,12 @@ DRWAV_PRIVATE drwav_uint64 drwav__metadata_process_chunk(drwav__metadata_parser* } } else { } - } else if (drwav__chunk_matches(allowedMetadataTypes, pChunkID, drwav_metadata_type_inst, "inst")) { - if (pChunkHeader->sizeInBytes == DRWAV_INST_BYTES) { - if (pParser->stage == drwav__metadata_parser_stage_count) { + } else if (ma_dr_wav__chunk_matches(allowedMetadataTypes, pChunkID, ma_dr_wav_metadata_type_inst, "inst")) { + if (pChunkHeader->sizeInBytes == MA_DR_WAV_INST_BYTES) { + if (pParser->stage == ma_dr_wav__metadata_parser_stage_count) { pParser->metadataCount += 1; } else { - bytesRead = drwav__read_inst_to_metadata_obj(pParser, &pParser->pMetadata[pParser->metadataCursor]); + bytesRead = ma_dr_wav__read_inst_to_metadata_obj(pParser, &pParser->pMetadata[pParser->metadataCursor]); if (bytesRead == pChunkHeader->sizeInBytes) { pParser->metadataCursor += 1; } else { @@ -74918,12 +78300,12 @@ DRWAV_PRIVATE drwav_uint64 drwav__metadata_process_chunk(drwav__metadata_parser* } } else { } - } else if (drwav__chunk_matches(allowedMetadataTypes, pChunkID, drwav_metadata_type_acid, "acid")) { - if (pChunkHeader->sizeInBytes == DRWAV_ACID_BYTES) { - if (pParser->stage == drwav__metadata_parser_stage_count) { + } else if (ma_dr_wav__chunk_matches(allowedMetadataTypes, pChunkID, ma_dr_wav_metadata_type_acid, "acid")) { + if (pChunkHeader->sizeInBytes == MA_DR_WAV_ACID_BYTES) { + if (pParser->stage == ma_dr_wav__metadata_parser_stage_count) { pParser->metadataCount += 1; } else { - bytesRead = drwav__read_acid_to_metadata_obj(pParser, &pParser->pMetadata[pParser->metadataCursor]); + bytesRead = ma_dr_wav__read_acid_to_metadata_obj(pParser, &pParser->pMetadata[pParser->metadataCursor]); if (bytesRead == pChunkHeader->sizeInBytes) { pParser->metadataCursor += 1; } else { @@ -74931,15 +78313,15 @@ DRWAV_PRIVATE drwav_uint64 drwav__metadata_process_chunk(drwav__metadata_parser* } } else { } - } else if (drwav__chunk_matches(allowedMetadataTypes, pChunkID, drwav_metadata_type_cue, "cue ")) { - if (pChunkHeader->sizeInBytes >= DRWAV_CUE_BYTES) { - if (pParser->stage == drwav__metadata_parser_stage_count) { + } else if (ma_dr_wav__chunk_matches(allowedMetadataTypes, pChunkID, ma_dr_wav_metadata_type_cue, "cue ")) { + if (pChunkHeader->sizeInBytes >= MA_DR_WAV_CUE_BYTES) { + if (pParser->stage == ma_dr_wav__metadata_parser_stage_count) { size_t cueCount; pParser->metadataCount += 1; - cueCount = (size_t)(pChunkHeader->sizeInBytes - DRWAV_CUE_BYTES) / DRWAV_CUE_POINT_BYTES; - drwav__metadata_request_extra_memory_for_stage_2(pParser, sizeof(drwav_cue_point) * cueCount, DRWAV_METADATA_ALIGNMENT); + cueCount = (size_t)(pChunkHeader->sizeInBytes - MA_DR_WAV_CUE_BYTES) / MA_DR_WAV_CUE_POINT_BYTES; + ma_dr_wav__metadata_request_extra_memory_for_stage_2(pParser, sizeof(ma_dr_wav_cue_point) * cueCount, MA_DR_WAV_METADATA_ALIGNMENT); } else { - bytesRead = drwav__read_cue_to_metadata_obj(pParser, pChunkHeader, &pParser->pMetadata[pParser->metadataCursor]); + bytesRead = ma_dr_wav__read_cue_to_metadata_obj(pParser, pChunkHeader, &pParser->pMetadata[pParser->metadataCursor]); if (bytesRead == pChunkHeader->sizeInBytes) { pParser->metadataCursor += 1; } else { @@ -74947,35 +78329,35 @@ DRWAV_PRIVATE drwav_uint64 drwav__metadata_process_chunk(drwav__metadata_parser* } } else { } - } else if (drwav__chunk_matches(allowedMetadataTypes, pChunkID, drwav_metadata_type_bext, "bext")) { - if (pChunkHeader->sizeInBytes >= DRWAV_BEXT_BYTES) { - if (pParser->stage == drwav__metadata_parser_stage_count) { - char buffer[DRWAV_BEXT_DESCRIPTION_BYTES + 1]; - size_t allocSizeNeeded = DRWAV_BEXT_UMID_BYTES; + } else if (ma_dr_wav__chunk_matches(allowedMetadataTypes, pChunkID, ma_dr_wav_metadata_type_bext, "bext")) { + if (pChunkHeader->sizeInBytes >= MA_DR_WAV_BEXT_BYTES) { + if (pParser->stage == ma_dr_wav__metadata_parser_stage_count) { + char buffer[MA_DR_WAV_BEXT_DESCRIPTION_BYTES + 1]; + size_t allocSizeNeeded = MA_DR_WAV_BEXT_UMID_BYTES; size_t bytesJustRead; - buffer[DRWAV_BEXT_DESCRIPTION_BYTES] = '\0'; - bytesJustRead = drwav__metadata_parser_read(pParser, buffer, DRWAV_BEXT_DESCRIPTION_BYTES, &bytesRead); - if (bytesJustRead != DRWAV_BEXT_DESCRIPTION_BYTES) { + buffer[MA_DR_WAV_BEXT_DESCRIPTION_BYTES] = '\0'; + bytesJustRead = ma_dr_wav__metadata_parser_read(pParser, buffer, MA_DR_WAV_BEXT_DESCRIPTION_BYTES, &bytesRead); + if (bytesJustRead != MA_DR_WAV_BEXT_DESCRIPTION_BYTES) { return bytesRead; } - allocSizeNeeded += drwav__strlen(buffer) + 1; - buffer[DRWAV_BEXT_ORIGINATOR_NAME_BYTES] = '\0'; - bytesJustRead = drwav__metadata_parser_read(pParser, buffer, DRWAV_BEXT_ORIGINATOR_NAME_BYTES, &bytesRead); - if (bytesJustRead != DRWAV_BEXT_ORIGINATOR_NAME_BYTES) { + allocSizeNeeded += ma_dr_wav__strlen(buffer) + 1; + buffer[MA_DR_WAV_BEXT_ORIGINATOR_NAME_BYTES] = '\0'; + bytesJustRead = ma_dr_wav__metadata_parser_read(pParser, buffer, MA_DR_WAV_BEXT_ORIGINATOR_NAME_BYTES, &bytesRead); + if (bytesJustRead != MA_DR_WAV_BEXT_ORIGINATOR_NAME_BYTES) { return bytesRead; } - allocSizeNeeded += drwav__strlen(buffer) + 1; - buffer[DRWAV_BEXT_ORIGINATOR_REF_BYTES] = '\0'; - bytesJustRead = drwav__metadata_parser_read(pParser, buffer, DRWAV_BEXT_ORIGINATOR_REF_BYTES, &bytesRead); - if (bytesJustRead != DRWAV_BEXT_ORIGINATOR_REF_BYTES) { + allocSizeNeeded += ma_dr_wav__strlen(buffer) + 1; + buffer[MA_DR_WAV_BEXT_ORIGINATOR_REF_BYTES] = '\0'; + bytesJustRead = ma_dr_wav__metadata_parser_read(pParser, buffer, MA_DR_WAV_BEXT_ORIGINATOR_REF_BYTES, &bytesRead); + if (bytesJustRead != MA_DR_WAV_BEXT_ORIGINATOR_REF_BYTES) { return bytesRead; } - allocSizeNeeded += drwav__strlen(buffer) + 1; - allocSizeNeeded += (size_t)pChunkHeader->sizeInBytes - DRWAV_BEXT_BYTES; - drwav__metadata_request_extra_memory_for_stage_2(pParser, allocSizeNeeded, 1); + allocSizeNeeded += ma_dr_wav__strlen(buffer) + 1; + allocSizeNeeded += (size_t)pChunkHeader->sizeInBytes - MA_DR_WAV_BEXT_BYTES; + ma_dr_wav__metadata_request_extra_memory_for_stage_2(pParser, allocSizeNeeded, 1); pParser->metadataCount += 1; } else { - bytesRead = drwav__read_bext_to_metadata_obj(pParser, &pParser->pMetadata[pParser->metadataCursor], pChunkHeader->sizeInBytes); + bytesRead = ma_dr_wav__read_bext_to_metadata_obj(pParser, &pParser->pMetadata[pParser->metadataCursor], pChunkHeader->sizeInBytes); if (bytesRead == pChunkHeader->sizeInBytes) { pParser->metadataCursor += 1; } else { @@ -74983,37 +78365,37 @@ DRWAV_PRIVATE drwav_uint64 drwav__metadata_process_chunk(drwav__metadata_parser* } } else { } - } else if (drwav_fourcc_equal(pChunkID, "LIST") || drwav_fourcc_equal(pChunkID, "list")) { - drwav_metadata_location listType = drwav_metadata_location_invalid; + } else if (ma_dr_wav_fourcc_equal(pChunkID, "LIST") || ma_dr_wav_fourcc_equal(pChunkID, "list")) { + ma_dr_wav_metadata_location listType = ma_dr_wav_metadata_location_invalid; while (bytesRead < pChunkHeader->sizeInBytes) { - drwav_uint8 subchunkId[4]; - drwav_uint8 subchunkSizeBuffer[4]; - drwav_uint64 subchunkDataSize; - drwav_uint64 subchunkBytesRead = 0; - drwav_uint64 bytesJustRead = drwav__metadata_parser_read(pParser, subchunkId, sizeof(subchunkId), &bytesRead); + ma_uint8 subchunkId[4]; + ma_uint8 subchunkSizeBuffer[4]; + ma_uint64 subchunkDataSize; + ma_uint64 subchunkBytesRead = 0; + ma_uint64 bytesJustRead = ma_dr_wav__metadata_parser_read(pParser, subchunkId, sizeof(subchunkId), &bytesRead); if (bytesJustRead != sizeof(subchunkId)) { break; } - if (drwav_fourcc_equal(subchunkId, "adtl")) { - listType = drwav_metadata_location_inside_adtl_list; + if (ma_dr_wav_fourcc_equal(subchunkId, "adtl")) { + listType = ma_dr_wav_metadata_location_inside_adtl_list; continue; - } else if (drwav_fourcc_equal(subchunkId, "INFO")) { - listType = drwav_metadata_location_inside_info_list; + } else if (ma_dr_wav_fourcc_equal(subchunkId, "INFO")) { + listType = ma_dr_wav_metadata_location_inside_info_list; continue; } - bytesJustRead = drwav__metadata_parser_read(pParser, subchunkSizeBuffer, sizeof(subchunkSizeBuffer), &bytesRead); + bytesJustRead = ma_dr_wav__metadata_parser_read(pParser, subchunkSizeBuffer, sizeof(subchunkSizeBuffer), &bytesRead); if (bytesJustRead != sizeof(subchunkSizeBuffer)) { break; } - subchunkDataSize = drwav_bytes_to_u32(subchunkSizeBuffer); - if (drwav__chunk_matches(allowedMetadataTypes, subchunkId, drwav_metadata_type_list_label, "labl") || drwav__chunk_matches(allowedMetadataTypes, subchunkId, drwav_metadata_type_list_note, "note")) { - if (subchunkDataSize >= DRWAV_LIST_LABEL_OR_NOTE_BYTES) { - drwav_uint64 stringSizeWithNullTerm = subchunkDataSize - DRWAV_LIST_LABEL_OR_NOTE_BYTES; - if (pParser->stage == drwav__metadata_parser_stage_count) { + subchunkDataSize = ma_dr_wav_bytes_to_u32(subchunkSizeBuffer); + if (ma_dr_wav__chunk_matches(allowedMetadataTypes, subchunkId, ma_dr_wav_metadata_type_list_label, "labl") || ma_dr_wav__chunk_matches(allowedMetadataTypes, subchunkId, ma_dr_wav_metadata_type_list_note, "note")) { + if (subchunkDataSize >= MA_DR_WAV_LIST_LABEL_OR_NOTE_BYTES) { + ma_uint64 stringSizeWithNullTerm = subchunkDataSize - MA_DR_WAV_LIST_LABEL_OR_NOTE_BYTES; + if (pParser->stage == ma_dr_wav__metadata_parser_stage_count) { pParser->metadataCount += 1; - drwav__metadata_request_extra_memory_for_stage_2(pParser, (size_t)stringSizeWithNullTerm, 1); + ma_dr_wav__metadata_request_extra_memory_for_stage_2(pParser, (size_t)stringSizeWithNullTerm, 1); } else { - subchunkBytesRead = drwav__read_list_label_or_note_to_metadata_obj(pParser, &pParser->pMetadata[pParser->metadataCursor], subchunkDataSize, drwav_fourcc_equal(subchunkId, "labl") ? drwav_metadata_type_list_label : drwav_metadata_type_list_note); + subchunkBytesRead = ma_dr_wav__read_list_label_or_note_to_metadata_obj(pParser, &pParser->pMetadata[pParser->metadataCursor], subchunkDataSize, ma_dr_wav_fourcc_equal(subchunkId, "labl") ? ma_dr_wav_metadata_type_list_label : ma_dr_wav_metadata_type_list_note); if (subchunkBytesRead == subchunkDataSize) { pParser->metadataCursor += 1; } else { @@ -75021,14 +78403,14 @@ DRWAV_PRIVATE drwav_uint64 drwav__metadata_process_chunk(drwav__metadata_parser* } } else { } - } else if (drwav__chunk_matches(allowedMetadataTypes, subchunkId, drwav_metadata_type_list_labelled_cue_region, "ltxt")) { - if (subchunkDataSize >= DRWAV_LIST_LABELLED_TEXT_BYTES) { - drwav_uint64 stringSizeWithNullTerminator = subchunkDataSize - DRWAV_LIST_LABELLED_TEXT_BYTES; - if (pParser->stage == drwav__metadata_parser_stage_count) { + } else if (ma_dr_wav__chunk_matches(allowedMetadataTypes, subchunkId, ma_dr_wav_metadata_type_list_labelled_cue_region, "ltxt")) { + if (subchunkDataSize >= MA_DR_WAV_LIST_LABELLED_TEXT_BYTES) { + ma_uint64 stringSizeWithNullTerminator = subchunkDataSize - MA_DR_WAV_LIST_LABELLED_TEXT_BYTES; + if (pParser->stage == ma_dr_wav__metadata_parser_stage_count) { pParser->metadataCount += 1; - drwav__metadata_request_extra_memory_for_stage_2(pParser, (size_t)stringSizeWithNullTerminator, 1); + ma_dr_wav__metadata_request_extra_memory_for_stage_2(pParser, (size_t)stringSizeWithNullTerminator, 1); } else { - subchunkBytesRead = drwav__read_list_labelled_cue_region_to_metadata_obj(pParser, &pParser->pMetadata[pParser->metadataCursor], subchunkDataSize); + subchunkBytesRead = ma_dr_wav__read_list_labelled_cue_region_to_metadata_obj(pParser, &pParser->pMetadata[pParser->metadataCursor], subchunkDataSize); if (subchunkBytesRead == subchunkDataSize) { pParser->metadataCursor += 1; } else { @@ -75036,332 +78418,542 @@ DRWAV_PRIVATE drwav_uint64 drwav__metadata_process_chunk(drwav__metadata_parser* } } else { } - } else if (drwav__chunk_matches(allowedMetadataTypes, subchunkId, drwav_metadata_type_list_info_software, "ISFT")) { - subchunkBytesRead = drwav__metadata_process_info_text_chunk(pParser, subchunkDataSize, drwav_metadata_type_list_info_software); - } else if (drwav__chunk_matches(allowedMetadataTypes, subchunkId, drwav_metadata_type_list_info_copyright, "ICOP")) { - subchunkBytesRead = drwav__metadata_process_info_text_chunk(pParser, subchunkDataSize, drwav_metadata_type_list_info_copyright); - } else if (drwav__chunk_matches(allowedMetadataTypes, subchunkId, drwav_metadata_type_list_info_title, "INAM")) { - subchunkBytesRead = drwav__metadata_process_info_text_chunk(pParser, subchunkDataSize, drwav_metadata_type_list_info_title); - } else if (drwav__chunk_matches(allowedMetadataTypes, subchunkId, drwav_metadata_type_list_info_artist, "IART")) { - subchunkBytesRead = drwav__metadata_process_info_text_chunk(pParser, subchunkDataSize, drwav_metadata_type_list_info_artist); - } else if (drwav__chunk_matches(allowedMetadataTypes, subchunkId, drwav_metadata_type_list_info_comment, "ICMT")) { - subchunkBytesRead = drwav__metadata_process_info_text_chunk(pParser, subchunkDataSize, drwav_metadata_type_list_info_comment); - } else if (drwav__chunk_matches(allowedMetadataTypes, subchunkId, drwav_metadata_type_list_info_date, "ICRD")) { - subchunkBytesRead = drwav__metadata_process_info_text_chunk(pParser, subchunkDataSize, drwav_metadata_type_list_info_date); - } else if (drwav__chunk_matches(allowedMetadataTypes, subchunkId, drwav_metadata_type_list_info_genre, "IGNR")) { - subchunkBytesRead = drwav__metadata_process_info_text_chunk(pParser, subchunkDataSize, drwav_metadata_type_list_info_genre); - } else if (drwav__chunk_matches(allowedMetadataTypes, subchunkId, drwav_metadata_type_list_info_album, "IPRD")) { - subchunkBytesRead = drwav__metadata_process_info_text_chunk(pParser, subchunkDataSize, drwav_metadata_type_list_info_album); - } else if (drwav__chunk_matches(allowedMetadataTypes, subchunkId, drwav_metadata_type_list_info_tracknumber, "ITRK")) { - subchunkBytesRead = drwav__metadata_process_info_text_chunk(pParser, subchunkDataSize, drwav_metadata_type_list_info_tracknumber); - } else if ((allowedMetadataTypes & drwav_metadata_type_unknown) != 0) { - subchunkBytesRead = drwav__metadata_process_unknown_chunk(pParser, subchunkId, subchunkDataSize, listType); + } else if (ma_dr_wav__chunk_matches(allowedMetadataTypes, subchunkId, ma_dr_wav_metadata_type_list_info_software, "ISFT")) { + subchunkBytesRead = ma_dr_wav__metadata_process_info_text_chunk(pParser, subchunkDataSize, ma_dr_wav_metadata_type_list_info_software); + } else if (ma_dr_wav__chunk_matches(allowedMetadataTypes, subchunkId, ma_dr_wav_metadata_type_list_info_copyright, "ICOP")) { + subchunkBytesRead = ma_dr_wav__metadata_process_info_text_chunk(pParser, subchunkDataSize, ma_dr_wav_metadata_type_list_info_copyright); + } else if (ma_dr_wav__chunk_matches(allowedMetadataTypes, subchunkId, ma_dr_wav_metadata_type_list_info_title, "INAM")) { + subchunkBytesRead = ma_dr_wav__metadata_process_info_text_chunk(pParser, subchunkDataSize, ma_dr_wav_metadata_type_list_info_title); + } else if (ma_dr_wav__chunk_matches(allowedMetadataTypes, subchunkId, ma_dr_wav_metadata_type_list_info_artist, "IART")) { + subchunkBytesRead = ma_dr_wav__metadata_process_info_text_chunk(pParser, subchunkDataSize, ma_dr_wav_metadata_type_list_info_artist); + } else if (ma_dr_wav__chunk_matches(allowedMetadataTypes, subchunkId, ma_dr_wav_metadata_type_list_info_comment, "ICMT")) { + subchunkBytesRead = ma_dr_wav__metadata_process_info_text_chunk(pParser, subchunkDataSize, ma_dr_wav_metadata_type_list_info_comment); + } else if (ma_dr_wav__chunk_matches(allowedMetadataTypes, subchunkId, ma_dr_wav_metadata_type_list_info_date, "ICRD")) { + subchunkBytesRead = ma_dr_wav__metadata_process_info_text_chunk(pParser, subchunkDataSize, ma_dr_wav_metadata_type_list_info_date); + } else if (ma_dr_wav__chunk_matches(allowedMetadataTypes, subchunkId, ma_dr_wav_metadata_type_list_info_genre, "IGNR")) { + subchunkBytesRead = ma_dr_wav__metadata_process_info_text_chunk(pParser, subchunkDataSize, ma_dr_wav_metadata_type_list_info_genre); + } else if (ma_dr_wav__chunk_matches(allowedMetadataTypes, subchunkId, ma_dr_wav_metadata_type_list_info_album, "IPRD")) { + subchunkBytesRead = ma_dr_wav__metadata_process_info_text_chunk(pParser, subchunkDataSize, ma_dr_wav_metadata_type_list_info_album); + } else if (ma_dr_wav__chunk_matches(allowedMetadataTypes, subchunkId, ma_dr_wav_metadata_type_list_info_tracknumber, "ITRK")) { + subchunkBytesRead = ma_dr_wav__metadata_process_info_text_chunk(pParser, subchunkDataSize, ma_dr_wav_metadata_type_list_info_tracknumber); + } else if ((allowedMetadataTypes & ma_dr_wav_metadata_type_unknown) != 0) { + subchunkBytesRead = ma_dr_wav__metadata_process_unknown_chunk(pParser, subchunkId, subchunkDataSize, listType); } bytesRead += subchunkBytesRead; - DRWAV_ASSERT(subchunkBytesRead <= subchunkDataSize); + MA_DR_WAV_ASSERT(subchunkBytesRead <= subchunkDataSize); if (subchunkBytesRead < subchunkDataSize) { - drwav_uint64 bytesToSeek = subchunkDataSize - subchunkBytesRead; - if (!pParser->onSeek(pParser->pReadSeekUserData, (int)bytesToSeek, drwav_seek_origin_current)) { + ma_uint64 bytesToSeek = subchunkDataSize - subchunkBytesRead; + if (!pParser->onSeek(pParser->pReadSeekUserData, (int)bytesToSeek, ma_dr_wav_seek_origin_current)) { break; } bytesRead += bytesToSeek; } if ((subchunkDataSize % 2) == 1) { - if (!pParser->onSeek(pParser->pReadSeekUserData, 1, drwav_seek_origin_current)) { + if (!pParser->onSeek(pParser->pReadSeekUserData, 1, ma_dr_wav_seek_origin_current)) { break; } bytesRead += 1; } } - } else if ((allowedMetadataTypes & drwav_metadata_type_unknown) != 0) { - bytesRead = drwav__metadata_process_unknown_chunk(pParser, pChunkID, pChunkHeader->sizeInBytes, drwav_metadata_location_top_level); + } else if ((allowedMetadataTypes & ma_dr_wav_metadata_type_unknown) != 0) { + bytesRead = ma_dr_wav__metadata_process_unknown_chunk(pParser, pChunkID, pChunkHeader->sizeInBytes, ma_dr_wav_metadata_location_top_level); } return bytesRead; } -DRWAV_PRIVATE drwav_uint32 drwav_get_bytes_per_pcm_frame(drwav* pWav) +MA_PRIVATE ma_uint32 ma_dr_wav_get_bytes_per_pcm_frame(ma_dr_wav* pWav) { - drwav_uint32 bytesPerFrame; + ma_uint32 bytesPerFrame; if ((pWav->bitsPerSample & 0x7) == 0) { bytesPerFrame = (pWav->bitsPerSample * pWav->fmt.channels) >> 3; } else { bytesPerFrame = pWav->fmt.blockAlign; } - if (pWav->translatedFormatTag == DR_WAVE_FORMAT_ALAW || pWav->translatedFormatTag == DR_WAVE_FORMAT_MULAW) { + if (pWav->translatedFormatTag == MA_DR_WAVE_FORMAT_ALAW || pWav->translatedFormatTag == MA_DR_WAVE_FORMAT_MULAW) { if (bytesPerFrame != pWav->fmt.channels) { return 0; } } return bytesPerFrame; } -DRWAV_API drwav_uint16 drwav_fmt_get_format(const drwav_fmt* pFMT) +MA_API ma_uint16 ma_dr_wav_fmt_get_format(const ma_dr_wav_fmt* pFMT) { if (pFMT == NULL) { return 0; } - if (pFMT->formatTag != DR_WAVE_FORMAT_EXTENSIBLE) { + if (pFMT->formatTag != MA_DR_WAVE_FORMAT_EXTENSIBLE) { return pFMT->formatTag; } else { - return drwav_bytes_to_u16(pFMT->subFormat); + return ma_dr_wav_bytes_to_u16(pFMT->subFormat); } } -DRWAV_PRIVATE drwav_bool32 drwav_preinit(drwav* pWav, drwav_read_proc onRead, drwav_seek_proc onSeek, void* pReadSeekUserData, const drwav_allocation_callbacks* pAllocationCallbacks) +MA_PRIVATE ma_bool32 ma_dr_wav_preinit(ma_dr_wav* pWav, ma_dr_wav_read_proc onRead, ma_dr_wav_seek_proc onSeek, void* pReadSeekUserData, const ma_allocation_callbacks* pAllocationCallbacks) { if (pWav == NULL || onRead == NULL || onSeek == NULL) { - return DRWAV_FALSE; + return MA_FALSE; } - DRWAV_ZERO_MEMORY(pWav, sizeof(*pWav)); + MA_DR_WAV_ZERO_MEMORY(pWav, sizeof(*pWav)); pWav->onRead = onRead; pWav->onSeek = onSeek; pWav->pUserData = pReadSeekUserData; - pWav->allocationCallbacks = drwav_copy_allocation_callbacks_or_defaults(pAllocationCallbacks); + pWav->allocationCallbacks = ma_dr_wav_copy_allocation_callbacks_or_defaults(pAllocationCallbacks); if (pWav->allocationCallbacks.onFree == NULL || (pWav->allocationCallbacks.onMalloc == NULL && pWav->allocationCallbacks.onRealloc == NULL)) { - return DRWAV_FALSE; + return MA_FALSE; } - return DRWAV_TRUE; + return MA_TRUE; } -DRWAV_PRIVATE drwav_bool32 drwav_init__internal(drwav* pWav, drwav_chunk_proc onChunk, void* pChunkUserData, drwav_uint32 flags) +MA_PRIVATE ma_bool32 ma_dr_wav_init__internal(ma_dr_wav* pWav, ma_dr_wav_chunk_proc onChunk, void* pChunkUserData, ma_uint32 flags) { - drwav_uint64 cursor; - drwav_bool32 sequential; - drwav_uint8 riff[4]; - drwav_fmt fmt; + ma_result result; + ma_uint64 cursor; + ma_bool32 sequential; + ma_uint8 riff[4]; + ma_dr_wav_fmt fmt; unsigned short translatedFormatTag; - drwav_bool32 foundDataChunk; - drwav_uint64 dataChunkSize = 0; - drwav_uint64 sampleCountFromFactChunk = 0; - drwav_uint64 chunkSize; - drwav__metadata_parser metadataParser; + ma_uint64 dataChunkSize = 0; + ma_uint64 sampleCountFromFactChunk = 0; + ma_uint64 metadataStartPos; + ma_dr_wav__metadata_parser metadataParser; + ma_bool8 isProcessingMetadata = MA_FALSE; + ma_bool8 foundChunk_fmt = MA_FALSE; + ma_bool8 foundChunk_data = MA_FALSE; + ma_bool8 isAIFCFormType = MA_FALSE; + ma_uint64 aiffFrameCount = 0; cursor = 0; - sequential = (flags & DRWAV_SEQUENTIAL) != 0; - if (drwav__on_read(pWav->onRead, pWav->pUserData, riff, sizeof(riff), &cursor) != sizeof(riff)) { - return DRWAV_FALSE; + sequential = (flags & MA_DR_WAV_SEQUENTIAL) != 0; + MA_DR_WAV_ZERO_OBJECT(&fmt); + if (ma_dr_wav__on_read(pWav->onRead, pWav->pUserData, riff, sizeof(riff), &cursor) != sizeof(riff)) { + return MA_FALSE; } - if (drwav_fourcc_equal(riff, "RIFF")) { - pWav->container = drwav_container_riff; - } else if (drwav_fourcc_equal(riff, "riff")) { + if (ma_dr_wav_fourcc_equal(riff, "RIFF")) { + pWav->container = ma_dr_wav_container_riff; + } else if (ma_dr_wav_fourcc_equal(riff, "RIFX")) { + pWav->container = ma_dr_wav_container_rifx; + } else if (ma_dr_wav_fourcc_equal(riff, "riff")) { int i; - drwav_uint8 riff2[12]; - pWav->container = drwav_container_w64; - if (drwav__on_read(pWav->onRead, pWav->pUserData, riff2, sizeof(riff2), &cursor) != sizeof(riff2)) { - return DRWAV_FALSE; + ma_uint8 riff2[12]; + pWav->container = ma_dr_wav_container_w64; + if (ma_dr_wav__on_read(pWav->onRead, pWav->pUserData, riff2, sizeof(riff2), &cursor) != sizeof(riff2)) { + return MA_FALSE; } for (i = 0; i < 12; ++i) { - if (riff2[i] != drwavGUID_W64_RIFF[i+4]) { - return DRWAV_FALSE; + if (riff2[i] != ma_dr_wavGUID_W64_RIFF[i+4]) { + return MA_FALSE; } } - } else if (drwav_fourcc_equal(riff, "RF64")) { - pWav->container = drwav_container_rf64; + } else if (ma_dr_wav_fourcc_equal(riff, "RF64")) { + pWav->container = ma_dr_wav_container_rf64; + } else if (ma_dr_wav_fourcc_equal(riff, "FORM")) { + pWav->container = ma_dr_wav_container_aiff; } else { - return DRWAV_FALSE; + return MA_FALSE; } - if (pWav->container == drwav_container_riff || pWav->container == drwav_container_rf64) { - drwav_uint8 chunkSizeBytes[4]; - drwav_uint8 wave[4]; - if (drwav__on_read(pWav->onRead, pWav->pUserData, chunkSizeBytes, sizeof(chunkSizeBytes), &cursor) != sizeof(chunkSizeBytes)) { - return DRWAV_FALSE; + if (pWav->container == ma_dr_wav_container_riff || pWav->container == ma_dr_wav_container_rifx || pWav->container == ma_dr_wav_container_rf64) { + ma_uint8 chunkSizeBytes[4]; + ma_uint8 wave[4]; + if (ma_dr_wav__on_read(pWav->onRead, pWav->pUserData, chunkSizeBytes, sizeof(chunkSizeBytes), &cursor) != sizeof(chunkSizeBytes)) { + return MA_FALSE; } - if (pWav->container == drwav_container_riff) { - if (drwav_bytes_to_u32(chunkSizeBytes) < 36) { - return DRWAV_FALSE; + if (pWav->container == ma_dr_wav_container_riff || pWav->container == ma_dr_wav_container_rifx) { + if (ma_dr_wav_bytes_to_u32_ex(chunkSizeBytes, pWav->container) < 36) { + return MA_FALSE; + } + } else if (pWav->container == ma_dr_wav_container_rf64) { + if (ma_dr_wav_bytes_to_u32_le(chunkSizeBytes) != 0xFFFFFFFF) { + return MA_FALSE; } } else { - if (drwav_bytes_to_u32(chunkSizeBytes) != 0xFFFFFFFF) { - return DRWAV_FALSE; - } + return MA_FALSE; } - if (drwav__on_read(pWav->onRead, pWav->pUserData, wave, sizeof(wave), &cursor) != sizeof(wave)) { - return DRWAV_FALSE; + if (ma_dr_wav__on_read(pWav->onRead, pWav->pUserData, wave, sizeof(wave), &cursor) != sizeof(wave)) { + return MA_FALSE; } - if (!drwav_fourcc_equal(wave, "WAVE")) { - return DRWAV_FALSE; + if (!ma_dr_wav_fourcc_equal(wave, "WAVE")) { + return MA_FALSE; + } + } else if (pWav->container == ma_dr_wav_container_w64) { + ma_uint8 chunkSizeBytes[8]; + ma_uint8 wave[16]; + if (ma_dr_wav__on_read(pWav->onRead, pWav->pUserData, chunkSizeBytes, sizeof(chunkSizeBytes), &cursor) != sizeof(chunkSizeBytes)) { + return MA_FALSE; + } + if (ma_dr_wav_bytes_to_u64(chunkSizeBytes) < 80) { + return MA_FALSE; + } + if (ma_dr_wav__on_read(pWav->onRead, pWav->pUserData, wave, sizeof(wave), &cursor) != sizeof(wave)) { + return MA_FALSE; + } + if (!ma_dr_wav_guid_equal(wave, ma_dr_wavGUID_W64_WAVE)) { + return MA_FALSE; + } + } else if (pWav->container == ma_dr_wav_container_aiff) { + ma_uint8 chunkSizeBytes[4]; + ma_uint8 aiff[4]; + if (ma_dr_wav__on_read(pWav->onRead, pWav->pUserData, chunkSizeBytes, sizeof(chunkSizeBytes), &cursor) != sizeof(chunkSizeBytes)) { + return MA_FALSE; + } + if (ma_dr_wav_bytes_to_u32_be(chunkSizeBytes) < 18) { + return MA_FALSE; + } + if (ma_dr_wav__on_read(pWav->onRead, pWav->pUserData, aiff, sizeof(aiff), &cursor) != sizeof(aiff)) { + return MA_FALSE; + } + if (ma_dr_wav_fourcc_equal(aiff, "AIFF")) { + isAIFCFormType = MA_FALSE; + } else if (ma_dr_wav_fourcc_equal(aiff, "AIFC")) { + isAIFCFormType = MA_TRUE; + } else { + return MA_FALSE; } } else { - drwav_uint8 chunkSizeBytes[8]; - drwav_uint8 wave[16]; - if (drwav__on_read(pWav->onRead, pWav->pUserData, chunkSizeBytes, sizeof(chunkSizeBytes), &cursor) != sizeof(chunkSizeBytes)) { - return DRWAV_FALSE; - } - if (drwav_bytes_to_u64(chunkSizeBytes) < 80) { - return DRWAV_FALSE; - } - if (drwav__on_read(pWav->onRead, pWav->pUserData, wave, sizeof(wave), &cursor) != sizeof(wave)) { - return DRWAV_FALSE; - } - if (!drwav_guid_equal(wave, drwavGUID_W64_WAVE)) { - return DRWAV_FALSE; - } + return MA_FALSE; } - if (pWav->container == drwav_container_rf64) { - drwav_uint8 sizeBytes[8]; - drwav_uint64 bytesRemainingInChunk; - drwav_chunk_header header; - drwav_result result = drwav__read_chunk_header(pWav->onRead, pWav->pUserData, pWav->container, &cursor, &header); - if (result != DRWAV_SUCCESS) { - return DRWAV_FALSE; + if (pWav->container == ma_dr_wav_container_rf64) { + ma_uint8 sizeBytes[8]; + ma_uint64 bytesRemainingInChunk; + ma_dr_wav_chunk_header header; + result = ma_dr_wav__read_chunk_header(pWav->onRead, pWav->pUserData, pWav->container, &cursor, &header); + if (result != MA_SUCCESS) { + return MA_FALSE; } - if (!drwav_fourcc_equal(header.id.fourcc, "ds64")) { - return DRWAV_FALSE; + if (!ma_dr_wav_fourcc_equal(header.id.fourcc, "ds64")) { + return MA_FALSE; } bytesRemainingInChunk = header.sizeInBytes + header.paddingSize; - if (!drwav__seek_forward(pWav->onSeek, 8, pWav->pUserData)) { - return DRWAV_FALSE; + if (!ma_dr_wav__seek_forward(pWav->onSeek, 8, pWav->pUserData)) { + return MA_FALSE; } bytesRemainingInChunk -= 8; cursor += 8; - if (drwav__on_read(pWav->onRead, pWav->pUserData, sizeBytes, sizeof(sizeBytes), &cursor) != sizeof(sizeBytes)) { - return DRWAV_FALSE; + if (ma_dr_wav__on_read(pWav->onRead, pWav->pUserData, sizeBytes, sizeof(sizeBytes), &cursor) != sizeof(sizeBytes)) { + return MA_FALSE; } bytesRemainingInChunk -= 8; - dataChunkSize = drwav_bytes_to_u64(sizeBytes); - if (drwav__on_read(pWav->onRead, pWav->pUserData, sizeBytes, sizeof(sizeBytes), &cursor) != sizeof(sizeBytes)) { - return DRWAV_FALSE; + dataChunkSize = ma_dr_wav_bytes_to_u64(sizeBytes); + if (ma_dr_wav__on_read(pWav->onRead, pWav->pUserData, sizeBytes, sizeof(sizeBytes), &cursor) != sizeof(sizeBytes)) { + return MA_FALSE; } bytesRemainingInChunk -= 8; - sampleCountFromFactChunk = drwav_bytes_to_u64(sizeBytes); - if (!drwav__seek_forward(pWav->onSeek, bytesRemainingInChunk, pWav->pUserData)) { - return DRWAV_FALSE; + sampleCountFromFactChunk = ma_dr_wav_bytes_to_u64(sizeBytes); + if (!ma_dr_wav__seek_forward(pWav->onSeek, bytesRemainingInChunk, pWav->pUserData)) { + return MA_FALSE; } cursor += bytesRemainingInChunk; } - if (!drwav__read_fmt(pWav->onRead, pWav->onSeek, pWav->pUserData, pWav->container, &cursor, &fmt)) { - return DRWAV_FALSE; + metadataStartPos = cursor; + isProcessingMetadata = !sequential && ((flags & MA_DR_WAV_WITH_METADATA) != 0); + if (pWav->container != ma_dr_wav_container_riff && pWav->container != ma_dr_wav_container_rf64) { + isProcessingMetadata = MA_FALSE; } - if ((fmt.sampleRate == 0 || fmt.sampleRate > DRWAV_MAX_SAMPLE_RATE) || - (fmt.channels == 0 || fmt.channels > DRWAV_MAX_CHANNELS) || - (fmt.bitsPerSample == 0 || fmt.bitsPerSample > DRWAV_MAX_BITS_PER_SAMPLE) || - fmt.blockAlign == 0) { - return DRWAV_FALSE; - } - translatedFormatTag = fmt.formatTag; - if (translatedFormatTag == DR_WAVE_FORMAT_EXTENSIBLE) { - translatedFormatTag = drwav_bytes_to_u16(fmt.subFormat + 0); - } - DRWAV_ZERO_MEMORY(&metadataParser, sizeof(metadataParser)); - if (!sequential && pWav->allowedMetadataTypes != drwav_metadata_type_none && (pWav->container == drwav_container_riff || pWav->container == drwav_container_rf64)) { - drwav_uint64 cursorForMetadata = cursor; + MA_DR_WAV_ZERO_MEMORY(&metadataParser, sizeof(metadataParser)); + if (isProcessingMetadata) { metadataParser.onRead = pWav->onRead; metadataParser.onSeek = pWav->onSeek; metadataParser.pReadSeekUserData = pWav->pUserData; - metadataParser.stage = drwav__metadata_parser_stage_count; - for (;;) { - drwav_result result; - drwav_uint64 bytesRead; - drwav_uint64 remainingBytes; - drwav_chunk_header header; - result = drwav__read_chunk_header(pWav->onRead, pWav->pUserData, pWav->container, &cursorForMetadata, &header); - if (result != DRWAV_SUCCESS) { - break; - } - bytesRead = drwav__metadata_process_chunk(&metadataParser, &header, pWav->allowedMetadataTypes); - DRWAV_ASSERT(bytesRead <= header.sizeInBytes); - remainingBytes = header.sizeInBytes - bytesRead + header.paddingSize; - if (!drwav__seek_forward(pWav->onSeek, remainingBytes, pWav->pUserData)) { - break; - } - cursorForMetadata += remainingBytes; - } - if (!drwav__seek_from_start(pWav->onSeek, cursor, pWav->pUserData)) { - return DRWAV_FALSE; - } - drwav__metadata_alloc(&metadataParser, &pWav->allocationCallbacks); - metadataParser.stage = drwav__metadata_parser_stage_read; + metadataParser.stage = ma_dr_wav__metadata_parser_stage_count; } - foundDataChunk = DRWAV_FALSE; for (;;) { - drwav_chunk_header header; - drwav_result result = drwav__read_chunk_header(pWav->onRead, pWav->pUserData, pWav->container, &cursor, &header); - if (result != DRWAV_SUCCESS) { - if (!foundDataChunk) { - return DRWAV_FALSE; - } else { - break; - } - } - if (!sequential && onChunk != NULL) { - drwav_uint64 callbackBytesRead = onChunk(pChunkUserData, pWav->onRead, pWav->onSeek, pWav->pUserData, &header, pWav->container, &fmt); - if (callbackBytesRead > 0) { - if (!drwav__seek_from_start(pWav->onSeek, cursor, pWav->pUserData)) { - return DRWAV_FALSE; - } - } - } - if (!sequential && pWav->allowedMetadataTypes != drwav_metadata_type_none && (pWav->container == drwav_container_riff || pWav->container == drwav_container_rf64)) { - drwav_uint64 bytesRead = drwav__metadata_process_chunk(&metadataParser, &header, pWav->allowedMetadataTypes); - if (bytesRead > 0) { - if (!drwav__seek_from_start(pWav->onSeek, cursor, pWav->pUserData)) { - return DRWAV_FALSE; - } - } - } - if (!foundDataChunk) { - pWav->dataChunkDataPos = cursor; - } - chunkSize = header.sizeInBytes; - if (pWav->container == drwav_container_riff || pWav->container == drwav_container_rf64) { - if (drwav_fourcc_equal(header.id.fourcc, "data")) { - foundDataChunk = DRWAV_TRUE; - if (pWav->container != drwav_container_rf64) { - dataChunkSize = chunkSize; - } - } - } else { - if (drwav_guid_equal(header.id.guid, drwavGUID_W64_DATA)) { - foundDataChunk = DRWAV_TRUE; - dataChunkSize = chunkSize; - } - } - if (foundDataChunk && sequential) { + ma_dr_wav_chunk_header header; + ma_uint64 chunkSize; + result = ma_dr_wav__read_chunk_header(pWav->onRead, pWav->pUserData, pWav->container, &cursor, &header); + if (result != MA_SUCCESS) { break; } - if (pWav->container == drwav_container_riff) { - if (drwav_fourcc_equal(header.id.fourcc, "fact")) { - drwav_uint32 sampleCount; - if (drwav__on_read(pWav->onRead, pWav->pUserData, &sampleCount, 4, &cursor) != 4) { - return DRWAV_FALSE; + chunkSize = header.sizeInBytes; + if (!sequential && onChunk != NULL) { + ma_uint64 callbackBytesRead = onChunk(pChunkUserData, pWav->onRead, pWav->onSeek, pWav->pUserData, &header, pWav->container, &fmt); + if (callbackBytesRead > 0) { + if (ma_dr_wav__seek_from_start(pWav->onSeek, cursor, pWav->pUserData) == MA_FALSE) { + return MA_FALSE; + } + } + } + if (((pWav->container == ma_dr_wav_container_riff || pWav->container == ma_dr_wav_container_rifx || pWav->container == ma_dr_wav_container_rf64) && ma_dr_wav_fourcc_equal(header.id.fourcc, "fmt ")) || + ((pWav->container == ma_dr_wav_container_w64) && ma_dr_wav_guid_equal(header.id.guid, ma_dr_wavGUID_W64_FMT))) { + ma_uint8 fmtData[16]; + foundChunk_fmt = MA_TRUE; + if (pWav->onRead(pWav->pUserData, fmtData, sizeof(fmtData)) != sizeof(fmtData)) { + return MA_FALSE; + } + cursor += sizeof(fmtData); + fmt.formatTag = ma_dr_wav_bytes_to_u16_ex(fmtData + 0, pWav->container); + fmt.channels = ma_dr_wav_bytes_to_u16_ex(fmtData + 2, pWav->container); + fmt.sampleRate = ma_dr_wav_bytes_to_u32_ex(fmtData + 4, pWav->container); + fmt.avgBytesPerSec = ma_dr_wav_bytes_to_u32_ex(fmtData + 8, pWav->container); + fmt.blockAlign = ma_dr_wav_bytes_to_u16_ex(fmtData + 12, pWav->container); + fmt.bitsPerSample = ma_dr_wav_bytes_to_u16_ex(fmtData + 14, pWav->container); + fmt.extendedSize = 0; + fmt.validBitsPerSample = 0; + fmt.channelMask = 0; + MA_DR_WAV_ZERO_MEMORY(fmt.subFormat, sizeof(fmt.subFormat)); + if (header.sizeInBytes > 16) { + ma_uint8 fmt_cbSize[2]; + int bytesReadSoFar = 0; + if (pWav->onRead(pWav->pUserData, fmt_cbSize, sizeof(fmt_cbSize)) != sizeof(fmt_cbSize)) { + return MA_FALSE; + } + cursor += sizeof(fmt_cbSize); + bytesReadSoFar = 18; + fmt.extendedSize = ma_dr_wav_bytes_to_u16_ex(fmt_cbSize, pWav->container); + if (fmt.extendedSize > 0) { + if (fmt.formatTag == MA_DR_WAVE_FORMAT_EXTENSIBLE) { + if (fmt.extendedSize != 22) { + return MA_FALSE; + } + } + if (fmt.formatTag == MA_DR_WAVE_FORMAT_EXTENSIBLE) { + ma_uint8 fmtext[22]; + if (pWav->onRead(pWav->pUserData, fmtext, fmt.extendedSize) != fmt.extendedSize) { + return MA_FALSE; + } + fmt.validBitsPerSample = ma_dr_wav_bytes_to_u16_ex(fmtext + 0, pWav->container); + fmt.channelMask = ma_dr_wav_bytes_to_u32_ex(fmtext + 2, pWav->container); + ma_dr_wav_bytes_to_guid(fmtext + 6, fmt.subFormat); + } else { + if (pWav->onSeek(pWav->pUserData, fmt.extendedSize, ma_dr_wav_seek_origin_current) == MA_FALSE) { + return MA_FALSE; + } + } + cursor += fmt.extendedSize; + bytesReadSoFar += fmt.extendedSize; + } + if (pWav->onSeek(pWav->pUserData, (int)(header.sizeInBytes - bytesReadSoFar), ma_dr_wav_seek_origin_current) == MA_FALSE) { + return MA_FALSE; + } + cursor += (header.sizeInBytes - bytesReadSoFar); + } + if (header.paddingSize > 0) { + if (ma_dr_wav__seek_forward(pWav->onSeek, header.paddingSize, pWav->pUserData) == MA_FALSE) { + break; + } + cursor += header.paddingSize; + } + continue; + } + if (((pWav->container == ma_dr_wav_container_riff || pWav->container == ma_dr_wav_container_rifx || pWav->container == ma_dr_wav_container_rf64) && ma_dr_wav_fourcc_equal(header.id.fourcc, "data")) || + ((pWav->container == ma_dr_wav_container_w64) && ma_dr_wav_guid_equal(header.id.guid, ma_dr_wavGUID_W64_DATA))) { + foundChunk_data = MA_TRUE; + pWav->dataChunkDataPos = cursor; + if (pWav->container != ma_dr_wav_container_rf64) { + dataChunkSize = chunkSize; + } + if (sequential || !isProcessingMetadata) { + break; + } else { + chunkSize += header.paddingSize; + if (ma_dr_wav__seek_forward(pWav->onSeek, chunkSize, pWav->pUserData) == MA_FALSE) { + break; + } + cursor += chunkSize; + continue; + } + } + if (((pWav->container == ma_dr_wav_container_riff || pWav->container == ma_dr_wav_container_rifx || pWav->container == ma_dr_wav_container_rf64) && ma_dr_wav_fourcc_equal(header.id.fourcc, "fact")) || + ((pWav->container == ma_dr_wav_container_w64) && ma_dr_wav_guid_equal(header.id.guid, ma_dr_wavGUID_W64_FACT))) { + if (pWav->container == ma_dr_wav_container_riff || pWav->container == ma_dr_wav_container_rifx) { + ma_uint8 sampleCount[4]; + if (ma_dr_wav__on_read(pWav->onRead, pWav->pUserData, &sampleCount, 4, &cursor) != 4) { + return MA_FALSE; } chunkSize -= 4; - if (!foundDataChunk) { - pWav->dataChunkDataPos = cursor; - } - if (pWav->translatedFormatTag == DR_WAVE_FORMAT_ADPCM) { - sampleCountFromFactChunk = sampleCount; + if (pWav->translatedFormatTag == MA_DR_WAVE_FORMAT_ADPCM) { + sampleCountFromFactChunk = ma_dr_wav_bytes_to_u32_ex(sampleCount, pWav->container); } else { sampleCountFromFactChunk = 0; } - } - } else if (pWav->container == drwav_container_w64) { - if (drwav_guid_equal(header.id.guid, drwavGUID_W64_FACT)) { - if (drwav__on_read(pWav->onRead, pWav->pUserData, &sampleCountFromFactChunk, 8, &cursor) != 8) { - return DRWAV_FALSE; + } else if (pWav->container == ma_dr_wav_container_w64) { + if (ma_dr_wav__on_read(pWav->onRead, pWav->pUserData, &sampleCountFromFactChunk, 8, &cursor) != 8) { + return MA_FALSE; } chunkSize -= 8; - if (!foundDataChunk) { - pWav->dataChunkDataPos = cursor; + } else if (pWav->container == ma_dr_wav_container_rf64) { + } + chunkSize += header.paddingSize; + if (ma_dr_wav__seek_forward(pWav->onSeek, chunkSize, pWav->pUserData) == MA_FALSE) { + break; + } + cursor += chunkSize; + continue; + } + if (pWav->container == ma_dr_wav_container_aiff && ma_dr_wav_fourcc_equal(header.id.fourcc, "COMM")) { + ma_uint8 commData[24]; + ma_uint32 commDataBytesToRead; + ma_uint16 channels; + ma_uint32 frameCount; + ma_uint16 sampleSizeInBits; + ma_int64 sampleRate; + ma_uint16 compressionFormat; + foundChunk_fmt = MA_TRUE; + if (isAIFCFormType) { + commDataBytesToRead = 24; + if (header.sizeInBytes < commDataBytesToRead) { + return MA_FALSE; + } + } else { + commDataBytesToRead = 18; + if (header.sizeInBytes != commDataBytesToRead) { + return MA_FALSE; } } - } else if (pWav->container == drwav_container_rf64) { + if (ma_dr_wav__on_read(pWav->onRead, pWav->pUserData, commData, commDataBytesToRead, &cursor) != commDataBytesToRead) { + return MA_FALSE; + } + channels = ma_dr_wav_bytes_to_u16_ex (commData + 0, pWav->container); + frameCount = ma_dr_wav_bytes_to_u32_ex (commData + 2, pWav->container); + sampleSizeInBits = ma_dr_wav_bytes_to_u16_ex (commData + 6, pWav->container); + sampleRate = ma_dr_wav_aiff_extented_to_s64(commData + 8); + if (sampleRate < 0 || sampleRate > 0xFFFFFFFF) { + return MA_FALSE; + } + if (isAIFCFormType) { + const ma_uint8* type = commData + 18; + if (ma_dr_wav_fourcc_equal(type, "NONE")) { + compressionFormat = MA_DR_WAVE_FORMAT_PCM; + } else if (ma_dr_wav_fourcc_equal(type, "raw ")) { + compressionFormat = MA_DR_WAVE_FORMAT_PCM; + if (sampleSizeInBits == 8) { + pWav->aiff.isUnsigned = MA_TRUE; + } + } else if (ma_dr_wav_fourcc_equal(type, "sowt")) { + compressionFormat = MA_DR_WAVE_FORMAT_PCM; + pWav->aiff.isLE = MA_TRUE; + } else if (ma_dr_wav_fourcc_equal(type, "fl32") || ma_dr_wav_fourcc_equal(type, "fl64") || ma_dr_wav_fourcc_equal(type, "FL32") || ma_dr_wav_fourcc_equal(type, "FL64")) { + compressionFormat = MA_DR_WAVE_FORMAT_IEEE_FLOAT; + } else if (ma_dr_wav_fourcc_equal(type, "alaw") || ma_dr_wav_fourcc_equal(type, "ALAW")) { + compressionFormat = MA_DR_WAVE_FORMAT_ALAW; + } else if (ma_dr_wav_fourcc_equal(type, "ulaw") || ma_dr_wav_fourcc_equal(type, "ULAW")) { + compressionFormat = MA_DR_WAVE_FORMAT_MULAW; + } else if (ma_dr_wav_fourcc_equal(type, "ima4")) { + compressionFormat = MA_DR_WAVE_FORMAT_DVI_ADPCM; + sampleSizeInBits = 4; + return MA_FALSE; + } else { + return MA_FALSE; + } + } else { + compressionFormat = MA_DR_WAVE_FORMAT_PCM; + } + aiffFrameCount = frameCount; + fmt.formatTag = compressionFormat; + fmt.channels = channels; + fmt.sampleRate = (ma_uint32)sampleRate; + fmt.bitsPerSample = sampleSizeInBits; + fmt.blockAlign = (ma_uint16)(fmt.channels * fmt.bitsPerSample / 8); + fmt.avgBytesPerSec = fmt.blockAlign * fmt.sampleRate; + if (fmt.blockAlign == 0 && compressionFormat == MA_DR_WAVE_FORMAT_DVI_ADPCM) { + fmt.blockAlign = 34 * fmt.channels; + } + if (compressionFormat == MA_DR_WAVE_FORMAT_ALAW || compressionFormat == MA_DR_WAVE_FORMAT_MULAW) { + if (fmt.bitsPerSample > 8) { + fmt.bitsPerSample = 8; + fmt.blockAlign = fmt.channels; + } + } + fmt.bitsPerSample += (fmt.bitsPerSample & 7); + if (isAIFCFormType) { + if (ma_dr_wav__seek_forward(pWav->onSeek, (chunkSize - commDataBytesToRead), pWav->pUserData) == MA_FALSE) { + return MA_FALSE; + } + cursor += (chunkSize - commDataBytesToRead); + } + continue; + } + if (pWav->container == ma_dr_wav_container_aiff && ma_dr_wav_fourcc_equal(header.id.fourcc, "SSND")) { + ma_uint8 offsetAndBlockSizeData[8]; + ma_uint32 offset; + foundChunk_data = MA_TRUE; + if (ma_dr_wav__on_read(pWav->onRead, pWav->pUserData, offsetAndBlockSizeData, sizeof(offsetAndBlockSizeData), &cursor) != sizeof(offsetAndBlockSizeData)) { + return MA_FALSE; + } + offset = ma_dr_wav_bytes_to_u32_ex(offsetAndBlockSizeData + 0, pWav->container); + if (ma_dr_wav__seek_forward(pWav->onSeek, offset, pWav->pUserData) == MA_FALSE) { + return MA_FALSE; + } + cursor += offset; + pWav->dataChunkDataPos = cursor; + dataChunkSize = chunkSize; + if (sequential || !isProcessingMetadata) { + break; + } else { + if (ma_dr_wav__seek_forward(pWav->onSeek, chunkSize, pWav->pUserData) == MA_FALSE) { + break; + } + cursor += chunkSize; + continue; + } + } + if (isProcessingMetadata) { + ma_uint64 metadataBytesRead; + metadataBytesRead = ma_dr_wav__metadata_process_chunk(&metadataParser, &header, ma_dr_wav_metadata_type_all_including_unknown); + MA_DR_WAV_ASSERT(metadataBytesRead <= header.sizeInBytes); + if (ma_dr_wav__seek_from_start(pWav->onSeek, cursor, pWav->pUserData) == MA_FALSE) { + break; + } } chunkSize += header.paddingSize; - if (!drwav__seek_forward(pWav->onSeek, chunkSize, pWav->pUserData)) { + if (ma_dr_wav__seek_forward(pWav->onSeek, chunkSize, pWav->pUserData) == MA_FALSE) { break; } cursor += chunkSize; - if (!foundDataChunk) { - pWav->dataChunkDataPos = cursor; - } } - pWav->pMetadata = metadataParser.pMetadata; - pWav->metadataCount = metadataParser.metadataCount; - if (!foundDataChunk) { - return DRWAV_FALSE; + if (!foundChunk_fmt || !foundChunk_data) { + return MA_FALSE; + } + if ((fmt.sampleRate == 0 || fmt.sampleRate > MA_DR_WAV_MAX_SAMPLE_RATE ) || + (fmt.channels == 0 || fmt.channels > MA_DR_WAV_MAX_CHANNELS ) || + (fmt.bitsPerSample == 0 || fmt.bitsPerSample > MA_DR_WAV_MAX_BITS_PER_SAMPLE) || + fmt.blockAlign == 0) { + return MA_FALSE; + } + translatedFormatTag = fmt.formatTag; + if (translatedFormatTag == MA_DR_WAVE_FORMAT_EXTENSIBLE) { + translatedFormatTag = ma_dr_wav_bytes_to_u16_ex(fmt.subFormat + 0, pWav->container); } if (!sequential) { - if (!drwav__seek_from_start(pWav->onSeek, pWav->dataChunkDataPos, pWav->pUserData)) { - return DRWAV_FALSE; + if (!ma_dr_wav__seek_from_start(pWav->onSeek, pWav->dataChunkDataPos, pWav->pUserData)) { + return MA_FALSE; } cursor = pWav->dataChunkDataPos; } + if (isProcessingMetadata && metadataParser.metadataCount > 0) { + if (ma_dr_wav__seek_from_start(pWav->onSeek, metadataStartPos, pWav->pUserData) == MA_FALSE) { + return MA_FALSE; + } + result = ma_dr_wav__metadata_alloc(&metadataParser, &pWav->allocationCallbacks); + if (result != MA_SUCCESS) { + return MA_FALSE; + } + metadataParser.stage = ma_dr_wav__metadata_parser_stage_read; + for (;;) { + ma_dr_wav_chunk_header header; + ma_uint64 metadataBytesRead; + result = ma_dr_wav__read_chunk_header(pWav->onRead, pWav->pUserData, pWav->container, &cursor, &header); + if (result != MA_SUCCESS) { + break; + } + metadataBytesRead = ma_dr_wav__metadata_process_chunk(&metadataParser, &header, ma_dr_wav_metadata_type_all_including_unknown); + if (ma_dr_wav__seek_forward(pWav->onSeek, (header.sizeInBytes + header.paddingSize) - metadataBytesRead, pWav->pUserData) == MA_FALSE) { + ma_dr_wav_free(metadataParser.pMetadata, &pWav->allocationCallbacks); + return MA_FALSE; + } + } + pWav->pMetadata = metadataParser.pMetadata; + pWav->metadataCount = metadataParser.metadataCount; + } + if (dataChunkSize == 0xFFFFFFFF && (pWav->container == ma_dr_wav_container_riff || pWav->container == ma_dr_wav_container_rifx) && pWav->isSequentialWrite == MA_FALSE) { + dataChunkSize = 0; + for (;;) { + ma_uint8 temp[4096]; + size_t bytesRead = pWav->onRead(pWav->pUserData, temp, sizeof(temp)); + dataChunkSize += bytesRead; + if (bytesRead < sizeof(temp)) { + break; + } + } + } + if (ma_dr_wav__seek_from_start(pWav->onSeek, pWav->dataChunkDataPos, pWav->pUserData) == MA_FALSE) { + ma_dr_wav_free(pWav->pMetadata, &pWav->allocationCallbacks); + return MA_FALSE; + } pWav->fmt = fmt; pWav->sampleRate = fmt.sampleRate; pWav->channels = fmt.channels; @@ -75371,24 +78963,27 @@ DRWAV_PRIVATE drwav_bool32 drwav_init__internal(drwav* pWav, drwav_chunk_proc on pWav->dataChunkDataSize = dataChunkSize; if (sampleCountFromFactChunk != 0) { pWav->totalPCMFrameCount = sampleCountFromFactChunk; + } else if (aiffFrameCount != 0) { + pWav->totalPCMFrameCount = aiffFrameCount; } else { - drwav_uint32 bytesPerFrame = drwav_get_bytes_per_pcm_frame(pWav); + ma_uint32 bytesPerFrame = ma_dr_wav_get_bytes_per_pcm_frame(pWav); if (bytesPerFrame == 0) { - return DRWAV_FALSE; + ma_dr_wav_free(pWav->pMetadata, &pWav->allocationCallbacks); + return MA_FALSE; } pWav->totalPCMFrameCount = dataChunkSize / bytesPerFrame; - if (pWav->translatedFormatTag == DR_WAVE_FORMAT_ADPCM) { - drwav_uint64 totalBlockHeaderSizeInBytes; - drwav_uint64 blockCount = dataChunkSize / fmt.blockAlign; + if (pWav->translatedFormatTag == MA_DR_WAVE_FORMAT_ADPCM) { + ma_uint64 totalBlockHeaderSizeInBytes; + ma_uint64 blockCount = dataChunkSize / fmt.blockAlign; if ((blockCount * fmt.blockAlign) < dataChunkSize) { blockCount += 1; } totalBlockHeaderSizeInBytes = blockCount * (6*fmt.channels); pWav->totalPCMFrameCount = ((dataChunkSize - totalBlockHeaderSizeInBytes) * 2) / fmt.channels; } - if (pWav->translatedFormatTag == DR_WAVE_FORMAT_DVI_ADPCM) { - drwav_uint64 totalBlockHeaderSizeInBytes; - drwav_uint64 blockCount = dataChunkSize / fmt.blockAlign; + if (pWav->translatedFormatTag == MA_DR_WAVE_FORMAT_DVI_ADPCM) { + ma_uint64 totalBlockHeaderSizeInBytes; + ma_uint64 blockCount = dataChunkSize / fmt.blockAlign; if ((blockCount * fmt.blockAlign) < dataChunkSize) { blockCount += 1; } @@ -75397,307 +78992,308 @@ DRWAV_PRIVATE drwav_bool32 drwav_init__internal(drwav* pWav, drwav_chunk_proc on pWav->totalPCMFrameCount += blockCount; } } - if (pWav->translatedFormatTag == DR_WAVE_FORMAT_ADPCM || pWav->translatedFormatTag == DR_WAVE_FORMAT_DVI_ADPCM) { + if (pWav->translatedFormatTag == MA_DR_WAVE_FORMAT_ADPCM || pWav->translatedFormatTag == MA_DR_WAVE_FORMAT_DVI_ADPCM) { if (pWav->channels > 2) { - return DRWAV_FALSE; + ma_dr_wav_free(pWav->pMetadata, &pWav->allocationCallbacks); + return MA_FALSE; } } - if (drwav_get_bytes_per_pcm_frame(pWav) == 0) { - return DRWAV_FALSE; + if (ma_dr_wav_get_bytes_per_pcm_frame(pWav) == 0) { + ma_dr_wav_free(pWav->pMetadata, &pWav->allocationCallbacks); + return MA_FALSE; } -#ifdef DR_WAV_LIBSNDFILE_COMPAT - if (pWav->translatedFormatTag == DR_WAVE_FORMAT_ADPCM) { - drwav_uint64 blockCount = dataChunkSize / fmt.blockAlign; +#ifdef MA_DR_WAV_LIBSNDFILE_COMPAT + if (pWav->translatedFormatTag == MA_DR_WAVE_FORMAT_ADPCM) { + ma_uint64 blockCount = dataChunkSize / fmt.blockAlign; pWav->totalPCMFrameCount = (((blockCount * (fmt.blockAlign - (6*pWav->channels))) * 2)) / fmt.channels; } - if (pWav->translatedFormatTag == DR_WAVE_FORMAT_DVI_ADPCM) { - drwav_uint64 blockCount = dataChunkSize / fmt.blockAlign; + if (pWav->translatedFormatTag == MA_DR_WAVE_FORMAT_DVI_ADPCM) { + ma_uint64 blockCount = dataChunkSize / fmt.blockAlign; pWav->totalPCMFrameCount = (((blockCount * (fmt.blockAlign - (4*pWav->channels))) * 2) + (blockCount * pWav->channels)) / fmt.channels; } #endif - return DRWAV_TRUE; + return MA_TRUE; } -DRWAV_API drwav_bool32 drwav_init(drwav* pWav, drwav_read_proc onRead, drwav_seek_proc onSeek, void* pUserData, const drwav_allocation_callbacks* pAllocationCallbacks) +MA_API ma_bool32 ma_dr_wav_init(ma_dr_wav* pWav, ma_dr_wav_read_proc onRead, ma_dr_wav_seek_proc onSeek, void* pUserData, const ma_allocation_callbacks* pAllocationCallbacks) { - return drwav_init_ex(pWav, onRead, onSeek, NULL, pUserData, NULL, 0, pAllocationCallbacks); + return ma_dr_wav_init_ex(pWav, onRead, onSeek, NULL, pUserData, NULL, 0, pAllocationCallbacks); } -DRWAV_API drwav_bool32 drwav_init_ex(drwav* pWav, drwav_read_proc onRead, drwav_seek_proc onSeek, drwav_chunk_proc onChunk, void* pReadSeekUserData, void* pChunkUserData, drwav_uint32 flags, const drwav_allocation_callbacks* pAllocationCallbacks) +MA_API ma_bool32 ma_dr_wav_init_ex(ma_dr_wav* pWav, ma_dr_wav_read_proc onRead, ma_dr_wav_seek_proc onSeek, ma_dr_wav_chunk_proc onChunk, void* pReadSeekUserData, void* pChunkUserData, ma_uint32 flags, const ma_allocation_callbacks* pAllocationCallbacks) { - if (!drwav_preinit(pWav, onRead, onSeek, pReadSeekUserData, pAllocationCallbacks)) { - return DRWAV_FALSE; + if (!ma_dr_wav_preinit(pWav, onRead, onSeek, pReadSeekUserData, pAllocationCallbacks)) { + return MA_FALSE; } - return drwav_init__internal(pWav, onChunk, pChunkUserData, flags); + return ma_dr_wav_init__internal(pWav, onChunk, pChunkUserData, flags); } -DRWAV_API drwav_bool32 drwav_init_with_metadata(drwav* pWav, drwav_read_proc onRead, drwav_seek_proc onSeek, void* pUserData, drwav_uint32 flags, const drwav_allocation_callbacks* pAllocationCallbacks) +MA_API ma_bool32 ma_dr_wav_init_with_metadata(ma_dr_wav* pWav, ma_dr_wav_read_proc onRead, ma_dr_wav_seek_proc onSeek, void* pUserData, ma_uint32 flags, const ma_allocation_callbacks* pAllocationCallbacks) { - if (!drwav_preinit(pWav, onRead, onSeek, pUserData, pAllocationCallbacks)) { - return DRWAV_FALSE; + if (!ma_dr_wav_preinit(pWav, onRead, onSeek, pUserData, pAllocationCallbacks)) { + return MA_FALSE; } - pWav->allowedMetadataTypes = drwav_metadata_type_all_including_unknown; - return drwav_init__internal(pWav, NULL, NULL, flags); + return ma_dr_wav_init__internal(pWav, NULL, NULL, flags | MA_DR_WAV_WITH_METADATA); } -DRWAV_API drwav_metadata* drwav_take_ownership_of_metadata(drwav* pWav) +MA_API ma_dr_wav_metadata* ma_dr_wav_take_ownership_of_metadata(ma_dr_wav* pWav) { - drwav_metadata *result = pWav->pMetadata; + ma_dr_wav_metadata *result = pWav->pMetadata; pWav->pMetadata = NULL; pWav->metadataCount = 0; return result; } -DRWAV_PRIVATE size_t drwav__write(drwav* pWav, const void* pData, size_t dataSize) +MA_PRIVATE size_t ma_dr_wav__write(ma_dr_wav* pWav, const void* pData, size_t dataSize) { - DRWAV_ASSERT(pWav != NULL); - DRWAV_ASSERT(pWav->onWrite != NULL); + MA_DR_WAV_ASSERT(pWav != NULL); + MA_DR_WAV_ASSERT(pWav->onWrite != NULL); return pWav->onWrite(pWav->pUserData, pData, dataSize); } -DRWAV_PRIVATE size_t drwav__write_byte(drwav* pWav, drwav_uint8 byte) +MA_PRIVATE size_t ma_dr_wav__write_byte(ma_dr_wav* pWav, ma_uint8 byte) { - DRWAV_ASSERT(pWav != NULL); - DRWAV_ASSERT(pWav->onWrite != NULL); + MA_DR_WAV_ASSERT(pWav != NULL); + MA_DR_WAV_ASSERT(pWav->onWrite != NULL); return pWav->onWrite(pWav->pUserData, &byte, 1); } -DRWAV_PRIVATE size_t drwav__write_u16ne_to_le(drwav* pWav, drwav_uint16 value) +MA_PRIVATE size_t ma_dr_wav__write_u16ne_to_le(ma_dr_wav* pWav, ma_uint16 value) { - DRWAV_ASSERT(pWav != NULL); - DRWAV_ASSERT(pWav->onWrite != NULL); - if (!drwav__is_little_endian()) { - value = drwav__bswap16(value); + MA_DR_WAV_ASSERT(pWav != NULL); + MA_DR_WAV_ASSERT(pWav->onWrite != NULL); + if (!ma_dr_wav__is_little_endian()) { + value = ma_dr_wav__bswap16(value); } - return drwav__write(pWav, &value, 2); + return ma_dr_wav__write(pWav, &value, 2); } -DRWAV_PRIVATE size_t drwav__write_u32ne_to_le(drwav* pWav, drwav_uint32 value) +MA_PRIVATE size_t ma_dr_wav__write_u32ne_to_le(ma_dr_wav* pWav, ma_uint32 value) { - DRWAV_ASSERT(pWav != NULL); - DRWAV_ASSERT(pWav->onWrite != NULL); - if (!drwav__is_little_endian()) { - value = drwav__bswap32(value); + MA_DR_WAV_ASSERT(pWav != NULL); + MA_DR_WAV_ASSERT(pWav->onWrite != NULL); + if (!ma_dr_wav__is_little_endian()) { + value = ma_dr_wav__bswap32(value); } - return drwav__write(pWav, &value, 4); + return ma_dr_wav__write(pWav, &value, 4); } -DRWAV_PRIVATE size_t drwav__write_u64ne_to_le(drwav* pWav, drwav_uint64 value) +MA_PRIVATE size_t ma_dr_wav__write_u64ne_to_le(ma_dr_wav* pWav, ma_uint64 value) { - DRWAV_ASSERT(pWav != NULL); - DRWAV_ASSERT(pWav->onWrite != NULL); - if (!drwav__is_little_endian()) { - value = drwav__bswap64(value); + MA_DR_WAV_ASSERT(pWav != NULL); + MA_DR_WAV_ASSERT(pWav->onWrite != NULL); + if (!ma_dr_wav__is_little_endian()) { + value = ma_dr_wav__bswap64(value); } - return drwav__write(pWav, &value, 8); + return ma_dr_wav__write(pWav, &value, 8); } -DRWAV_PRIVATE size_t drwav__write_f32ne_to_le(drwav* pWav, float value) +MA_PRIVATE size_t ma_dr_wav__write_f32ne_to_le(ma_dr_wav* pWav, float value) { union { - drwav_uint32 u32; + ma_uint32 u32; float f32; } u; - DRWAV_ASSERT(pWav != NULL); - DRWAV_ASSERT(pWav->onWrite != NULL); + MA_DR_WAV_ASSERT(pWav != NULL); + MA_DR_WAV_ASSERT(pWav->onWrite != NULL); u.f32 = value; - if (!drwav__is_little_endian()) { - u.u32 = drwav__bswap32(u.u32); + if (!ma_dr_wav__is_little_endian()) { + u.u32 = ma_dr_wav__bswap32(u.u32); } - return drwav__write(pWav, &u.u32, 4); + return ma_dr_wav__write(pWav, &u.u32, 4); } -DRWAV_PRIVATE size_t drwav__write_or_count(drwav* pWav, const void* pData, size_t dataSize) +MA_PRIVATE size_t ma_dr_wav__write_or_count(ma_dr_wav* pWav, const void* pData, size_t dataSize) { if (pWav == NULL) { return dataSize; } - return drwav__write(pWav, pData, dataSize); + return ma_dr_wav__write(pWav, pData, dataSize); } -DRWAV_PRIVATE size_t drwav__write_or_count_byte(drwav* pWav, drwav_uint8 byte) +MA_PRIVATE size_t ma_dr_wav__write_or_count_byte(ma_dr_wav* pWav, ma_uint8 byte) { if (pWav == NULL) { return 1; } - return drwav__write_byte(pWav, byte); + return ma_dr_wav__write_byte(pWav, byte); } -DRWAV_PRIVATE size_t drwav__write_or_count_u16ne_to_le(drwav* pWav, drwav_uint16 value) +MA_PRIVATE size_t ma_dr_wav__write_or_count_u16ne_to_le(ma_dr_wav* pWav, ma_uint16 value) { if (pWav == NULL) { return 2; } - return drwav__write_u16ne_to_le(pWav, value); + return ma_dr_wav__write_u16ne_to_le(pWav, value); } -DRWAV_PRIVATE size_t drwav__write_or_count_u32ne_to_le(drwav* pWav, drwav_uint32 value) +MA_PRIVATE size_t ma_dr_wav__write_or_count_u32ne_to_le(ma_dr_wav* pWav, ma_uint32 value) { if (pWav == NULL) { return 4; } - return drwav__write_u32ne_to_le(pWav, value); + return ma_dr_wav__write_u32ne_to_le(pWav, value); } #if 0 -DRWAV_PRIVATE size_t drwav__write_or_count_u64ne_to_le(drwav* pWav, drwav_uint64 value) +MA_PRIVATE size_t ma_dr_wav__write_or_count_u64ne_to_le(ma_dr_wav* pWav, ma_uint64 value) { if (pWav == NULL) { return 8; } - return drwav__write_u64ne_to_le(pWav, value); + return ma_dr_wav__write_u64ne_to_le(pWav, value); } #endif -DRWAV_PRIVATE size_t drwav__write_or_count_f32ne_to_le(drwav* pWav, float value) +MA_PRIVATE size_t ma_dr_wav__write_or_count_f32ne_to_le(ma_dr_wav* pWav, float value) { if (pWav == NULL) { return 4; } - return drwav__write_f32ne_to_le(pWav, value); + return ma_dr_wav__write_f32ne_to_le(pWav, value); } -DRWAV_PRIVATE size_t drwav__write_or_count_string_to_fixed_size_buf(drwav* pWav, char* str, size_t bufFixedSize) +MA_PRIVATE size_t ma_dr_wav__write_or_count_string_to_fixed_size_buf(ma_dr_wav* pWav, char* str, size_t bufFixedSize) { size_t len; if (pWav == NULL) { return bufFixedSize; } - len = drwav__strlen_clamped(str, bufFixedSize); - drwav__write_or_count(pWav, str, len); + len = ma_dr_wav__strlen_clamped(str, bufFixedSize); + ma_dr_wav__write_or_count(pWav, str, len); if (len < bufFixedSize) { size_t i; for (i = 0; i < bufFixedSize - len; ++i) { - drwav__write_byte(pWav, 0); + ma_dr_wav__write_byte(pWav, 0); } } return bufFixedSize; } -DRWAV_PRIVATE size_t drwav__write_or_count_metadata(drwav* pWav, drwav_metadata* pMetadatas, drwav_uint32 metadataCount) +MA_PRIVATE size_t ma_dr_wav__write_or_count_metadata(ma_dr_wav* pWav, ma_dr_wav_metadata* pMetadatas, ma_uint32 metadataCount) { size_t bytesWritten = 0; - drwav_bool32 hasListAdtl = DRWAV_FALSE; - drwav_bool32 hasListInfo = DRWAV_FALSE; - drwav_uint32 iMetadata; + ma_bool32 hasListAdtl = MA_FALSE; + ma_bool32 hasListInfo = MA_FALSE; + ma_uint32 iMetadata; if (pMetadatas == NULL || metadataCount == 0) { return 0; } for (iMetadata = 0; iMetadata < metadataCount; ++iMetadata) { - drwav_metadata* pMetadata = &pMetadatas[iMetadata]; - drwav_uint32 chunkSize = 0; - if ((pMetadata->type & drwav_metadata_type_list_all_info_strings) || (pMetadata->type == drwav_metadata_type_unknown && pMetadata->data.unknown.chunkLocation == drwav_metadata_location_inside_info_list)) { - hasListInfo = DRWAV_TRUE; + ma_dr_wav_metadata* pMetadata = &pMetadatas[iMetadata]; + ma_uint32 chunkSize = 0; + if ((pMetadata->type & ma_dr_wav_metadata_type_list_all_info_strings) || (pMetadata->type == ma_dr_wav_metadata_type_unknown && pMetadata->data.unknown.chunkLocation == ma_dr_wav_metadata_location_inside_info_list)) { + hasListInfo = MA_TRUE; } - if ((pMetadata->type & drwav_metadata_type_list_all_adtl) || (pMetadata->type == drwav_metadata_type_unknown && pMetadata->data.unknown.chunkLocation == drwav_metadata_location_inside_adtl_list)) { - hasListAdtl = DRWAV_TRUE; + if ((pMetadata->type & ma_dr_wav_metadata_type_list_all_adtl) || (pMetadata->type == ma_dr_wav_metadata_type_unknown && pMetadata->data.unknown.chunkLocation == ma_dr_wav_metadata_location_inside_adtl_list)) { + hasListAdtl = MA_TRUE; } switch (pMetadata->type) { - case drwav_metadata_type_smpl: + case ma_dr_wav_metadata_type_smpl: { - drwav_uint32 iLoop; - chunkSize = DRWAV_SMPL_BYTES + DRWAV_SMPL_LOOP_BYTES * pMetadata->data.smpl.sampleLoopCount + pMetadata->data.smpl.samplerSpecificDataSizeInBytes; - bytesWritten += drwav__write_or_count(pWav, "smpl", 4); - bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, chunkSize); - bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, pMetadata->data.smpl.manufacturerId); - bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, pMetadata->data.smpl.productId); - bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, pMetadata->data.smpl.samplePeriodNanoseconds); - bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, pMetadata->data.smpl.midiUnityNote); - bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, pMetadata->data.smpl.midiPitchFraction); - bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, pMetadata->data.smpl.smpteFormat); - bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, pMetadata->data.smpl.smpteOffset); - bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, pMetadata->data.smpl.sampleLoopCount); - bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, pMetadata->data.smpl.samplerSpecificDataSizeInBytes); + ma_uint32 iLoop; + chunkSize = MA_DR_WAV_SMPL_BYTES + MA_DR_WAV_SMPL_LOOP_BYTES * pMetadata->data.smpl.sampleLoopCount + pMetadata->data.smpl.samplerSpecificDataSizeInBytes; + bytesWritten += ma_dr_wav__write_or_count(pWav, "smpl", 4); + bytesWritten += ma_dr_wav__write_or_count_u32ne_to_le(pWav, chunkSize); + bytesWritten += ma_dr_wav__write_or_count_u32ne_to_le(pWav, pMetadata->data.smpl.manufacturerId); + bytesWritten += ma_dr_wav__write_or_count_u32ne_to_le(pWav, pMetadata->data.smpl.productId); + bytesWritten += ma_dr_wav__write_or_count_u32ne_to_le(pWav, pMetadata->data.smpl.samplePeriodNanoseconds); + bytesWritten += ma_dr_wav__write_or_count_u32ne_to_le(pWav, pMetadata->data.smpl.midiUnityNote); + bytesWritten += ma_dr_wav__write_or_count_u32ne_to_le(pWav, pMetadata->data.smpl.midiPitchFraction); + bytesWritten += ma_dr_wav__write_or_count_u32ne_to_le(pWav, pMetadata->data.smpl.smpteFormat); + bytesWritten += ma_dr_wav__write_or_count_u32ne_to_le(pWav, pMetadata->data.smpl.smpteOffset); + bytesWritten += ma_dr_wav__write_or_count_u32ne_to_le(pWav, pMetadata->data.smpl.sampleLoopCount); + bytesWritten += ma_dr_wav__write_or_count_u32ne_to_le(pWav, pMetadata->data.smpl.samplerSpecificDataSizeInBytes); for (iLoop = 0; iLoop < pMetadata->data.smpl.sampleLoopCount; ++iLoop) { - bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, pMetadata->data.smpl.pLoops[iLoop].cuePointId); - bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, pMetadata->data.smpl.pLoops[iLoop].type); - bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, pMetadata->data.smpl.pLoops[iLoop].firstSampleByteOffset); - bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, pMetadata->data.smpl.pLoops[iLoop].lastSampleByteOffset); - bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, pMetadata->data.smpl.pLoops[iLoop].sampleFraction); - bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, pMetadata->data.smpl.pLoops[iLoop].playCount); + bytesWritten += ma_dr_wav__write_or_count_u32ne_to_le(pWav, pMetadata->data.smpl.pLoops[iLoop].cuePointId); + bytesWritten += ma_dr_wav__write_or_count_u32ne_to_le(pWav, pMetadata->data.smpl.pLoops[iLoop].type); + bytesWritten += ma_dr_wav__write_or_count_u32ne_to_le(pWav, pMetadata->data.smpl.pLoops[iLoop].firstSampleByteOffset); + bytesWritten += ma_dr_wav__write_or_count_u32ne_to_le(pWav, pMetadata->data.smpl.pLoops[iLoop].lastSampleByteOffset); + bytesWritten += ma_dr_wav__write_or_count_u32ne_to_le(pWav, pMetadata->data.smpl.pLoops[iLoop].sampleFraction); + bytesWritten += ma_dr_wav__write_or_count_u32ne_to_le(pWav, pMetadata->data.smpl.pLoops[iLoop].playCount); } if (pMetadata->data.smpl.samplerSpecificDataSizeInBytes > 0) { - bytesWritten += drwav__write(pWav, pMetadata->data.smpl.pSamplerSpecificData, pMetadata->data.smpl.samplerSpecificDataSizeInBytes); + bytesWritten += ma_dr_wav__write_or_count(pWav, pMetadata->data.smpl.pSamplerSpecificData, pMetadata->data.smpl.samplerSpecificDataSizeInBytes); } } break; - case drwav_metadata_type_inst: + case ma_dr_wav_metadata_type_inst: { - chunkSize = DRWAV_INST_BYTES; - bytesWritten += drwav__write_or_count(pWav, "inst", 4); - bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, chunkSize); - bytesWritten += drwav__write_or_count(pWav, &pMetadata->data.inst.midiUnityNote, 1); - bytesWritten += drwav__write_or_count(pWav, &pMetadata->data.inst.fineTuneCents, 1); - bytesWritten += drwav__write_or_count(pWav, &pMetadata->data.inst.gainDecibels, 1); - bytesWritten += drwav__write_or_count(pWav, &pMetadata->data.inst.lowNote, 1); - bytesWritten += drwav__write_or_count(pWav, &pMetadata->data.inst.highNote, 1); - bytesWritten += drwav__write_or_count(pWav, &pMetadata->data.inst.lowVelocity, 1); - bytesWritten += drwav__write_or_count(pWav, &pMetadata->data.inst.highVelocity, 1); + chunkSize = MA_DR_WAV_INST_BYTES; + bytesWritten += ma_dr_wav__write_or_count(pWav, "inst", 4); + bytesWritten += ma_dr_wav__write_or_count_u32ne_to_le(pWav, chunkSize); + bytesWritten += ma_dr_wav__write_or_count(pWav, &pMetadata->data.inst.midiUnityNote, 1); + bytesWritten += ma_dr_wav__write_or_count(pWav, &pMetadata->data.inst.fineTuneCents, 1); + bytesWritten += ma_dr_wav__write_or_count(pWav, &pMetadata->data.inst.gainDecibels, 1); + bytesWritten += ma_dr_wav__write_or_count(pWav, &pMetadata->data.inst.lowNote, 1); + bytesWritten += ma_dr_wav__write_or_count(pWav, &pMetadata->data.inst.highNote, 1); + bytesWritten += ma_dr_wav__write_or_count(pWav, &pMetadata->data.inst.lowVelocity, 1); + bytesWritten += ma_dr_wav__write_or_count(pWav, &pMetadata->data.inst.highVelocity, 1); } break; - case drwav_metadata_type_cue: + case ma_dr_wav_metadata_type_cue: { - drwav_uint32 iCuePoint; - chunkSize = DRWAV_CUE_BYTES + DRWAV_CUE_POINT_BYTES * pMetadata->data.cue.cuePointCount; - bytesWritten += drwav__write_or_count(pWav, "cue ", 4); - bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, chunkSize); - bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, pMetadata->data.cue.cuePointCount); + ma_uint32 iCuePoint; + chunkSize = MA_DR_WAV_CUE_BYTES + MA_DR_WAV_CUE_POINT_BYTES * pMetadata->data.cue.cuePointCount; + bytesWritten += ma_dr_wav__write_or_count(pWav, "cue ", 4); + bytesWritten += ma_dr_wav__write_or_count_u32ne_to_le(pWav, chunkSize); + bytesWritten += ma_dr_wav__write_or_count_u32ne_to_le(pWav, pMetadata->data.cue.cuePointCount); for (iCuePoint = 0; iCuePoint < pMetadata->data.cue.cuePointCount; ++iCuePoint) { - bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, pMetadata->data.cue.pCuePoints[iCuePoint].id); - bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, pMetadata->data.cue.pCuePoints[iCuePoint].playOrderPosition); - bytesWritten += drwav__write_or_count(pWav, pMetadata->data.cue.pCuePoints[iCuePoint].dataChunkId, 4); - bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, pMetadata->data.cue.pCuePoints[iCuePoint].chunkStart); - bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, pMetadata->data.cue.pCuePoints[iCuePoint].blockStart); - bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, pMetadata->data.cue.pCuePoints[iCuePoint].sampleByteOffset); + bytesWritten += ma_dr_wav__write_or_count_u32ne_to_le(pWav, pMetadata->data.cue.pCuePoints[iCuePoint].id); + bytesWritten += ma_dr_wav__write_or_count_u32ne_to_le(pWav, pMetadata->data.cue.pCuePoints[iCuePoint].playOrderPosition); + bytesWritten += ma_dr_wav__write_or_count(pWav, pMetadata->data.cue.pCuePoints[iCuePoint].dataChunkId, 4); + bytesWritten += ma_dr_wav__write_or_count_u32ne_to_le(pWav, pMetadata->data.cue.pCuePoints[iCuePoint].chunkStart); + bytesWritten += ma_dr_wav__write_or_count_u32ne_to_le(pWav, pMetadata->data.cue.pCuePoints[iCuePoint].blockStart); + bytesWritten += ma_dr_wav__write_or_count_u32ne_to_le(pWav, pMetadata->data.cue.pCuePoints[iCuePoint].sampleByteOffset); } } break; - case drwav_metadata_type_acid: + case ma_dr_wav_metadata_type_acid: { - chunkSize = DRWAV_ACID_BYTES; - bytesWritten += drwav__write_or_count(pWav, "acid", 4); - bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, chunkSize); - bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, pMetadata->data.acid.flags); - bytesWritten += drwav__write_or_count_u16ne_to_le(pWav, pMetadata->data.acid.midiUnityNote); - bytesWritten += drwav__write_or_count_u16ne_to_le(pWav, pMetadata->data.acid.reserved1); - bytesWritten += drwav__write_or_count_f32ne_to_le(pWav, pMetadata->data.acid.reserved2); - bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, pMetadata->data.acid.numBeats); - bytesWritten += drwav__write_or_count_u16ne_to_le(pWav, pMetadata->data.acid.meterDenominator); - bytesWritten += drwav__write_or_count_u16ne_to_le(pWav, pMetadata->data.acid.meterNumerator); - bytesWritten += drwav__write_or_count_f32ne_to_le(pWav, pMetadata->data.acid.tempo); + chunkSize = MA_DR_WAV_ACID_BYTES; + bytesWritten += ma_dr_wav__write_or_count(pWav, "acid", 4); + bytesWritten += ma_dr_wav__write_or_count_u32ne_to_le(pWav, chunkSize); + bytesWritten += ma_dr_wav__write_or_count_u32ne_to_le(pWav, pMetadata->data.acid.flags); + bytesWritten += ma_dr_wav__write_or_count_u16ne_to_le(pWav, pMetadata->data.acid.midiUnityNote); + bytesWritten += ma_dr_wav__write_or_count_u16ne_to_le(pWav, pMetadata->data.acid.reserved1); + bytesWritten += ma_dr_wav__write_or_count_f32ne_to_le(pWav, pMetadata->data.acid.reserved2); + bytesWritten += ma_dr_wav__write_or_count_u32ne_to_le(pWav, pMetadata->data.acid.numBeats); + bytesWritten += ma_dr_wav__write_or_count_u16ne_to_le(pWav, pMetadata->data.acid.meterDenominator); + bytesWritten += ma_dr_wav__write_or_count_u16ne_to_le(pWav, pMetadata->data.acid.meterNumerator); + bytesWritten += ma_dr_wav__write_or_count_f32ne_to_le(pWav, pMetadata->data.acid.tempo); } break; - case drwav_metadata_type_bext: + case ma_dr_wav_metadata_type_bext: { - char reservedBuf[DRWAV_BEXT_RESERVED_BYTES]; - drwav_uint32 timeReferenceLow; - drwav_uint32 timeReferenceHigh; - chunkSize = DRWAV_BEXT_BYTES + pMetadata->data.bext.codingHistorySize; - bytesWritten += drwav__write_or_count(pWav, "bext", 4); - bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, chunkSize); - bytesWritten += drwav__write_or_count_string_to_fixed_size_buf(pWav, pMetadata->data.bext.pDescription, DRWAV_BEXT_DESCRIPTION_BYTES); - bytesWritten += drwav__write_or_count_string_to_fixed_size_buf(pWav, pMetadata->data.bext.pOriginatorName, DRWAV_BEXT_ORIGINATOR_NAME_BYTES); - bytesWritten += drwav__write_or_count_string_to_fixed_size_buf(pWav, pMetadata->data.bext.pOriginatorReference, DRWAV_BEXT_ORIGINATOR_REF_BYTES); - bytesWritten += drwav__write_or_count(pWav, pMetadata->data.bext.pOriginationDate, sizeof(pMetadata->data.bext.pOriginationDate)); - bytesWritten += drwav__write_or_count(pWav, pMetadata->data.bext.pOriginationTime, sizeof(pMetadata->data.bext.pOriginationTime)); - timeReferenceLow = (drwav_uint32)(pMetadata->data.bext.timeReference & 0xFFFFFFFF); - timeReferenceHigh = (drwav_uint32)(pMetadata->data.bext.timeReference >> 32); - bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, timeReferenceLow); - bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, timeReferenceHigh); - bytesWritten += drwav__write_or_count_u16ne_to_le(pWav, pMetadata->data.bext.version); - bytesWritten += drwav__write_or_count(pWav, pMetadata->data.bext.pUMID, DRWAV_BEXT_UMID_BYTES); - bytesWritten += drwav__write_or_count_u16ne_to_le(pWav, pMetadata->data.bext.loudnessValue); - bytesWritten += drwav__write_or_count_u16ne_to_le(pWav, pMetadata->data.bext.loudnessRange); - bytesWritten += drwav__write_or_count_u16ne_to_le(pWav, pMetadata->data.bext.maxTruePeakLevel); - bytesWritten += drwav__write_or_count_u16ne_to_le(pWav, pMetadata->data.bext.maxMomentaryLoudness); - bytesWritten += drwav__write_or_count_u16ne_to_le(pWav, pMetadata->data.bext.maxShortTermLoudness); - DRWAV_ZERO_MEMORY(reservedBuf, sizeof(reservedBuf)); - bytesWritten += drwav__write_or_count(pWav, reservedBuf, sizeof(reservedBuf)); + char reservedBuf[MA_DR_WAV_BEXT_RESERVED_BYTES]; + ma_uint32 timeReferenceLow; + ma_uint32 timeReferenceHigh; + chunkSize = MA_DR_WAV_BEXT_BYTES + pMetadata->data.bext.codingHistorySize; + bytesWritten += ma_dr_wav__write_or_count(pWav, "bext", 4); + bytesWritten += ma_dr_wav__write_or_count_u32ne_to_le(pWav, chunkSize); + bytesWritten += ma_dr_wav__write_or_count_string_to_fixed_size_buf(pWav, pMetadata->data.bext.pDescription, MA_DR_WAV_BEXT_DESCRIPTION_BYTES); + bytesWritten += ma_dr_wav__write_or_count_string_to_fixed_size_buf(pWav, pMetadata->data.bext.pOriginatorName, MA_DR_WAV_BEXT_ORIGINATOR_NAME_BYTES); + bytesWritten += ma_dr_wav__write_or_count_string_to_fixed_size_buf(pWav, pMetadata->data.bext.pOriginatorReference, MA_DR_WAV_BEXT_ORIGINATOR_REF_BYTES); + bytesWritten += ma_dr_wav__write_or_count(pWav, pMetadata->data.bext.pOriginationDate, sizeof(pMetadata->data.bext.pOriginationDate)); + bytesWritten += ma_dr_wav__write_or_count(pWav, pMetadata->data.bext.pOriginationTime, sizeof(pMetadata->data.bext.pOriginationTime)); + timeReferenceLow = (ma_uint32)(pMetadata->data.bext.timeReference & 0xFFFFFFFF); + timeReferenceHigh = (ma_uint32)(pMetadata->data.bext.timeReference >> 32); + bytesWritten += ma_dr_wav__write_or_count_u32ne_to_le(pWav, timeReferenceLow); + bytesWritten += ma_dr_wav__write_or_count_u32ne_to_le(pWav, timeReferenceHigh); + bytesWritten += ma_dr_wav__write_or_count_u16ne_to_le(pWav, pMetadata->data.bext.version); + bytesWritten += ma_dr_wav__write_or_count(pWav, pMetadata->data.bext.pUMID, MA_DR_WAV_BEXT_UMID_BYTES); + bytesWritten += ma_dr_wav__write_or_count_u16ne_to_le(pWav, pMetadata->data.bext.loudnessValue); + bytesWritten += ma_dr_wav__write_or_count_u16ne_to_le(pWav, pMetadata->data.bext.loudnessRange); + bytesWritten += ma_dr_wav__write_or_count_u16ne_to_le(pWav, pMetadata->data.bext.maxTruePeakLevel); + bytesWritten += ma_dr_wav__write_or_count_u16ne_to_le(pWav, pMetadata->data.bext.maxMomentaryLoudness); + bytesWritten += ma_dr_wav__write_or_count_u16ne_to_le(pWav, pMetadata->data.bext.maxShortTermLoudness); + MA_DR_WAV_ZERO_MEMORY(reservedBuf, sizeof(reservedBuf)); + bytesWritten += ma_dr_wav__write_or_count(pWav, reservedBuf, sizeof(reservedBuf)); if (pMetadata->data.bext.codingHistorySize > 0) { - bytesWritten += drwav__write_or_count(pWav, pMetadata->data.bext.pCodingHistory, pMetadata->data.bext.codingHistorySize); + bytesWritten += ma_dr_wav__write_or_count(pWav, pMetadata->data.bext.pCodingHistory, pMetadata->data.bext.codingHistorySize); } } break; - case drwav_metadata_type_unknown: + case ma_dr_wav_metadata_type_unknown: { - if (pMetadata->data.unknown.chunkLocation == drwav_metadata_location_top_level) { + if (pMetadata->data.unknown.chunkLocation == ma_dr_wav_metadata_location_top_level) { chunkSize = pMetadata->data.unknown.dataSizeInBytes; - bytesWritten += drwav__write_or_count(pWav, pMetadata->data.unknown.id, 4); - bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, chunkSize); - bytesWritten += drwav__write_or_count(pWav, pMetadata->data.unknown.pData, pMetadata->data.unknown.dataSizeInBytes); + bytesWritten += ma_dr_wav__write_or_count(pWav, pMetadata->data.unknown.id, 4); + bytesWritten += ma_dr_wav__write_or_count_u32ne_to_le(pWav, chunkSize); + bytesWritten += ma_dr_wav__write_or_count(pWav, pMetadata->data.unknown.pData, pMetadata->data.unknown.dataSizeInBytes); } } break; default: break; } if ((chunkSize % 2) != 0) { - bytesWritten += drwav__write_or_count_byte(pWav, 0); + bytesWritten += ma_dr_wav__write_or_count_byte(pWav, 0); } } if (hasListInfo) { - drwav_uint32 chunkSize = 4; + ma_uint32 chunkSize = 4; for (iMetadata = 0; iMetadata < metadataCount; ++iMetadata) { - drwav_metadata* pMetadata = &pMetadatas[iMetadata]; - if ((pMetadata->type & drwav_metadata_type_list_all_info_strings)) { + ma_dr_wav_metadata* pMetadata = &pMetadatas[iMetadata]; + if ((pMetadata->type & ma_dr_wav_metadata_type_list_all_info_strings)) { chunkSize += 8; chunkSize += pMetadata->data.infoText.stringLength + 1; - } else if (pMetadata->type == drwav_metadata_type_unknown && pMetadata->data.unknown.chunkLocation == drwav_metadata_location_inside_info_list) { + } else if (pMetadata->type == ma_dr_wav_metadata_type_unknown && pMetadata->data.unknown.chunkLocation == ma_dr_wav_metadata_location_inside_info_list) { chunkSize += 8; chunkSize += pMetadata->data.unknown.dataSizeInBytes; } @@ -75705,73 +79301,73 @@ DRWAV_PRIVATE size_t drwav__write_or_count_metadata(drwav* pWav, drwav_metadata* chunkSize += 1; } } - bytesWritten += drwav__write_or_count(pWav, "LIST", 4); - bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, chunkSize); - bytesWritten += drwav__write_or_count(pWav, "INFO", 4); + bytesWritten += ma_dr_wav__write_or_count(pWav, "LIST", 4); + bytesWritten += ma_dr_wav__write_or_count_u32ne_to_le(pWav, chunkSize); + bytesWritten += ma_dr_wav__write_or_count(pWav, "INFO", 4); for (iMetadata = 0; iMetadata < metadataCount; ++iMetadata) { - drwav_metadata* pMetadata = &pMetadatas[iMetadata]; - drwav_uint32 subchunkSize = 0; - if (pMetadata->type & drwav_metadata_type_list_all_info_strings) { + ma_dr_wav_metadata* pMetadata = &pMetadatas[iMetadata]; + ma_uint32 subchunkSize = 0; + if (pMetadata->type & ma_dr_wav_metadata_type_list_all_info_strings) { const char* pID = NULL; switch (pMetadata->type) { - case drwav_metadata_type_list_info_software: pID = "ISFT"; break; - case drwav_metadata_type_list_info_copyright: pID = "ICOP"; break; - case drwav_metadata_type_list_info_title: pID = "INAM"; break; - case drwav_metadata_type_list_info_artist: pID = "IART"; break; - case drwav_metadata_type_list_info_comment: pID = "ICMT"; break; - case drwav_metadata_type_list_info_date: pID = "ICRD"; break; - case drwav_metadata_type_list_info_genre: pID = "IGNR"; break; - case drwav_metadata_type_list_info_album: pID = "IPRD"; break; - case drwav_metadata_type_list_info_tracknumber: pID = "ITRK"; break; + case ma_dr_wav_metadata_type_list_info_software: pID = "ISFT"; break; + case ma_dr_wav_metadata_type_list_info_copyright: pID = "ICOP"; break; + case ma_dr_wav_metadata_type_list_info_title: pID = "INAM"; break; + case ma_dr_wav_metadata_type_list_info_artist: pID = "IART"; break; + case ma_dr_wav_metadata_type_list_info_comment: pID = "ICMT"; break; + case ma_dr_wav_metadata_type_list_info_date: pID = "ICRD"; break; + case ma_dr_wav_metadata_type_list_info_genre: pID = "IGNR"; break; + case ma_dr_wav_metadata_type_list_info_album: pID = "IPRD"; break; + case ma_dr_wav_metadata_type_list_info_tracknumber: pID = "ITRK"; break; default: break; } - DRWAV_ASSERT(pID != NULL); + MA_DR_WAV_ASSERT(pID != NULL); if (pMetadata->data.infoText.stringLength) { subchunkSize = pMetadata->data.infoText.stringLength + 1; - bytesWritten += drwav__write_or_count(pWav, pID, 4); - bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, subchunkSize); - bytesWritten += drwav__write_or_count(pWav, pMetadata->data.infoText.pString, pMetadata->data.infoText.stringLength); - bytesWritten += drwav__write_or_count_byte(pWav, '\0'); + bytesWritten += ma_dr_wav__write_or_count(pWav, pID, 4); + bytesWritten += ma_dr_wav__write_or_count_u32ne_to_le(pWav, subchunkSize); + bytesWritten += ma_dr_wav__write_or_count(pWav, pMetadata->data.infoText.pString, pMetadata->data.infoText.stringLength); + bytesWritten += ma_dr_wav__write_or_count_byte(pWav, '\0'); } - } else if (pMetadata->type == drwav_metadata_type_unknown && pMetadata->data.unknown.chunkLocation == drwav_metadata_location_inside_info_list) { + } else if (pMetadata->type == ma_dr_wav_metadata_type_unknown && pMetadata->data.unknown.chunkLocation == ma_dr_wav_metadata_location_inside_info_list) { if (pMetadata->data.unknown.dataSizeInBytes) { subchunkSize = pMetadata->data.unknown.dataSizeInBytes; - bytesWritten += drwav__write_or_count(pWav, pMetadata->data.unknown.id, 4); - bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, pMetadata->data.unknown.dataSizeInBytes); - bytesWritten += drwav__write_or_count(pWav, pMetadata->data.unknown.pData, subchunkSize); + bytesWritten += ma_dr_wav__write_or_count(pWav, pMetadata->data.unknown.id, 4); + bytesWritten += ma_dr_wav__write_or_count_u32ne_to_le(pWav, pMetadata->data.unknown.dataSizeInBytes); + bytesWritten += ma_dr_wav__write_or_count(pWav, pMetadata->data.unknown.pData, subchunkSize); } } if ((subchunkSize % 2) != 0) { - bytesWritten += drwav__write_or_count_byte(pWav, 0); + bytesWritten += ma_dr_wav__write_or_count_byte(pWav, 0); } } } if (hasListAdtl) { - drwav_uint32 chunkSize = 4; + ma_uint32 chunkSize = 4; for (iMetadata = 0; iMetadata < metadataCount; ++iMetadata) { - drwav_metadata* pMetadata = &pMetadatas[iMetadata]; + ma_dr_wav_metadata* pMetadata = &pMetadatas[iMetadata]; switch (pMetadata->type) { - case drwav_metadata_type_list_label: - case drwav_metadata_type_list_note: + case ma_dr_wav_metadata_type_list_label: + case ma_dr_wav_metadata_type_list_note: { chunkSize += 8; - chunkSize += DRWAV_LIST_LABEL_OR_NOTE_BYTES; + chunkSize += MA_DR_WAV_LIST_LABEL_OR_NOTE_BYTES; if (pMetadata->data.labelOrNote.stringLength > 0) { chunkSize += pMetadata->data.labelOrNote.stringLength + 1; } } break; - case drwav_metadata_type_list_labelled_cue_region: + case ma_dr_wav_metadata_type_list_labelled_cue_region: { chunkSize += 8; - chunkSize += DRWAV_LIST_LABELLED_TEXT_BYTES; + chunkSize += MA_DR_WAV_LIST_LABELLED_TEXT_BYTES; if (pMetadata->data.labelledCueRegion.stringLength > 0) { chunkSize += pMetadata->data.labelledCueRegion.stringLength + 1; } } break; - case drwav_metadata_type_unknown: + case ma_dr_wav_metadata_type_unknown: { - if (pMetadata->data.unknown.chunkLocation == drwav_metadata_location_inside_adtl_list) { + if (pMetadata->data.unknown.chunkLocation == ma_dr_wav_metadata_location_inside_adtl_list) { chunkSize += 8; chunkSize += pMetadata->data.unknown.dataSizeInBytes; } @@ -75782,953 +79378,457 @@ DRWAV_PRIVATE size_t drwav__write_or_count_metadata(drwav* pWav, drwav_metadata* chunkSize += 1; } } - bytesWritten += drwav__write_or_count(pWav, "LIST", 4); - bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, chunkSize); - bytesWritten += drwav__write_or_count(pWav, "adtl", 4); + bytesWritten += ma_dr_wav__write_or_count(pWav, "LIST", 4); + bytesWritten += ma_dr_wav__write_or_count_u32ne_to_le(pWav, chunkSize); + bytesWritten += ma_dr_wav__write_or_count(pWav, "adtl", 4); for (iMetadata = 0; iMetadata < metadataCount; ++iMetadata) { - drwav_metadata* pMetadata = &pMetadatas[iMetadata]; - drwav_uint32 subchunkSize = 0; + ma_dr_wav_metadata* pMetadata = &pMetadatas[iMetadata]; + ma_uint32 subchunkSize = 0; switch (pMetadata->type) { - case drwav_metadata_type_list_label: - case drwav_metadata_type_list_note: + case ma_dr_wav_metadata_type_list_label: + case ma_dr_wav_metadata_type_list_note: { if (pMetadata->data.labelOrNote.stringLength > 0) { const char *pID = NULL; - if (pMetadata->type == drwav_metadata_type_list_label) { + if (pMetadata->type == ma_dr_wav_metadata_type_list_label) { pID = "labl"; } - else if (pMetadata->type == drwav_metadata_type_list_note) { + else if (pMetadata->type == ma_dr_wav_metadata_type_list_note) { pID = "note"; } - DRWAV_ASSERT(pID != NULL); - DRWAV_ASSERT(pMetadata->data.labelOrNote.pString != NULL); - subchunkSize = DRWAV_LIST_LABEL_OR_NOTE_BYTES; - bytesWritten += drwav__write_or_count(pWav, pID, 4); + MA_DR_WAV_ASSERT(pID != NULL); + MA_DR_WAV_ASSERT(pMetadata->data.labelOrNote.pString != NULL); + subchunkSize = MA_DR_WAV_LIST_LABEL_OR_NOTE_BYTES; + bytesWritten += ma_dr_wav__write_or_count(pWav, pID, 4); subchunkSize += pMetadata->data.labelOrNote.stringLength + 1; - bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, subchunkSize); - bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, pMetadata->data.labelOrNote.cuePointId); - bytesWritten += drwav__write_or_count(pWav, pMetadata->data.labelOrNote.pString, pMetadata->data.labelOrNote.stringLength); - bytesWritten += drwav__write_or_count_byte(pWav, '\0'); + bytesWritten += ma_dr_wav__write_or_count_u32ne_to_le(pWav, subchunkSize); + bytesWritten += ma_dr_wav__write_or_count_u32ne_to_le(pWav, pMetadata->data.labelOrNote.cuePointId); + bytesWritten += ma_dr_wav__write_or_count(pWav, pMetadata->data.labelOrNote.pString, pMetadata->data.labelOrNote.stringLength); + bytesWritten += ma_dr_wav__write_or_count_byte(pWav, '\0'); } } break; - case drwav_metadata_type_list_labelled_cue_region: + case ma_dr_wav_metadata_type_list_labelled_cue_region: { - subchunkSize = DRWAV_LIST_LABELLED_TEXT_BYTES; - bytesWritten += drwav__write_or_count(pWav, "ltxt", 4); + subchunkSize = MA_DR_WAV_LIST_LABELLED_TEXT_BYTES; + bytesWritten += ma_dr_wav__write_or_count(pWav, "ltxt", 4); if (pMetadata->data.labelledCueRegion.stringLength > 0) { subchunkSize += pMetadata->data.labelledCueRegion.stringLength + 1; } - bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, subchunkSize); - bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, pMetadata->data.labelledCueRegion.cuePointId); - bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, pMetadata->data.labelledCueRegion.sampleLength); - bytesWritten += drwav__write_or_count(pWav, pMetadata->data.labelledCueRegion.purposeId, 4); - bytesWritten += drwav__write_or_count_u16ne_to_le(pWav, pMetadata->data.labelledCueRegion.country); - bytesWritten += drwav__write_or_count_u16ne_to_le(pWav, pMetadata->data.labelledCueRegion.language); - bytesWritten += drwav__write_or_count_u16ne_to_le(pWav, pMetadata->data.labelledCueRegion.dialect); - bytesWritten += drwav__write_or_count_u16ne_to_le(pWav, pMetadata->data.labelledCueRegion.codePage); + bytesWritten += ma_dr_wav__write_or_count_u32ne_to_le(pWav, subchunkSize); + bytesWritten += ma_dr_wav__write_or_count_u32ne_to_le(pWav, pMetadata->data.labelledCueRegion.cuePointId); + bytesWritten += ma_dr_wav__write_or_count_u32ne_to_le(pWav, pMetadata->data.labelledCueRegion.sampleLength); + bytesWritten += ma_dr_wav__write_or_count(pWav, pMetadata->data.labelledCueRegion.purposeId, 4); + bytesWritten += ma_dr_wav__write_or_count_u16ne_to_le(pWav, pMetadata->data.labelledCueRegion.country); + bytesWritten += ma_dr_wav__write_or_count_u16ne_to_le(pWav, pMetadata->data.labelledCueRegion.language); + bytesWritten += ma_dr_wav__write_or_count_u16ne_to_le(pWav, pMetadata->data.labelledCueRegion.dialect); + bytesWritten += ma_dr_wav__write_or_count_u16ne_to_le(pWav, pMetadata->data.labelledCueRegion.codePage); if (pMetadata->data.labelledCueRegion.stringLength > 0) { - DRWAV_ASSERT(pMetadata->data.labelledCueRegion.pString != NULL); - bytesWritten += drwav__write_or_count(pWav, pMetadata->data.labelledCueRegion.pString, pMetadata->data.labelledCueRegion.stringLength); - bytesWritten += drwav__write_or_count_byte(pWav, '\0'); + MA_DR_WAV_ASSERT(pMetadata->data.labelledCueRegion.pString != NULL); + bytesWritten += ma_dr_wav__write_or_count(pWav, pMetadata->data.labelledCueRegion.pString, pMetadata->data.labelledCueRegion.stringLength); + bytesWritten += ma_dr_wav__write_or_count_byte(pWav, '\0'); } } break; - case drwav_metadata_type_unknown: + case ma_dr_wav_metadata_type_unknown: { - if (pMetadata->data.unknown.chunkLocation == drwav_metadata_location_inside_adtl_list) { + if (pMetadata->data.unknown.chunkLocation == ma_dr_wav_metadata_location_inside_adtl_list) { subchunkSize = pMetadata->data.unknown.dataSizeInBytes; - DRWAV_ASSERT(pMetadata->data.unknown.pData != NULL); - bytesWritten += drwav__write_or_count(pWav, pMetadata->data.unknown.id, 4); - bytesWritten += drwav__write_or_count_u32ne_to_le(pWav, subchunkSize); - bytesWritten += drwav__write_or_count(pWav, pMetadata->data.unknown.pData, subchunkSize); + MA_DR_WAV_ASSERT(pMetadata->data.unknown.pData != NULL); + bytesWritten += ma_dr_wav__write_or_count(pWav, pMetadata->data.unknown.id, 4); + bytesWritten += ma_dr_wav__write_or_count_u32ne_to_le(pWav, subchunkSize); + bytesWritten += ma_dr_wav__write_or_count(pWav, pMetadata->data.unknown.pData, subchunkSize); } } break; default: break; } if ((subchunkSize % 2) != 0) { - bytesWritten += drwav__write_or_count_byte(pWav, 0); + bytesWritten += ma_dr_wav__write_or_count_byte(pWav, 0); } } } - DRWAV_ASSERT((bytesWritten % 2) == 0); + MA_DR_WAV_ASSERT((bytesWritten % 2) == 0); return bytesWritten; } -DRWAV_PRIVATE drwav_uint32 drwav__riff_chunk_size_riff(drwav_uint64 dataChunkSize, drwav_metadata* pMetadata, drwav_uint32 metadataCount) +MA_PRIVATE ma_uint32 ma_dr_wav__riff_chunk_size_riff(ma_uint64 dataChunkSize, ma_dr_wav_metadata* pMetadata, ma_uint32 metadataCount) { - drwav_uint64 chunkSize = 4 + 24 + (drwav_uint64)drwav__write_or_count_metadata(NULL, pMetadata, metadataCount) + 8 + dataChunkSize + drwav__chunk_padding_size_riff(dataChunkSize); + ma_uint64 chunkSize = 4 + 24 + (ma_uint64)ma_dr_wav__write_or_count_metadata(NULL, pMetadata, metadataCount) + 8 + dataChunkSize + ma_dr_wav__chunk_padding_size_riff(dataChunkSize); if (chunkSize > 0xFFFFFFFFUL) { chunkSize = 0xFFFFFFFFUL; } - return (drwav_uint32)chunkSize; + return (ma_uint32)chunkSize; } -DRWAV_PRIVATE drwav_uint32 drwav__data_chunk_size_riff(drwav_uint64 dataChunkSize) +MA_PRIVATE ma_uint32 ma_dr_wav__data_chunk_size_riff(ma_uint64 dataChunkSize) { if (dataChunkSize <= 0xFFFFFFFFUL) { - return (drwav_uint32)dataChunkSize; + return (ma_uint32)dataChunkSize; } else { return 0xFFFFFFFFUL; } } -DRWAV_PRIVATE drwav_uint64 drwav__riff_chunk_size_w64(drwav_uint64 dataChunkSize) +MA_PRIVATE ma_uint64 ma_dr_wav__riff_chunk_size_w64(ma_uint64 dataChunkSize) { - drwav_uint64 dataSubchunkPaddingSize = drwav__chunk_padding_size_w64(dataChunkSize); + ma_uint64 dataSubchunkPaddingSize = ma_dr_wav__chunk_padding_size_w64(dataChunkSize); return 80 + 24 + dataChunkSize + dataSubchunkPaddingSize; } -DRWAV_PRIVATE drwav_uint64 drwav__data_chunk_size_w64(drwav_uint64 dataChunkSize) +MA_PRIVATE ma_uint64 ma_dr_wav__data_chunk_size_w64(ma_uint64 dataChunkSize) { return 24 + dataChunkSize; } -DRWAV_PRIVATE drwav_uint64 drwav__riff_chunk_size_rf64(drwav_uint64 dataChunkSize, drwav_metadata *metadata, drwav_uint32 numMetadata) +MA_PRIVATE ma_uint64 ma_dr_wav__riff_chunk_size_rf64(ma_uint64 dataChunkSize, ma_dr_wav_metadata *metadata, ma_uint32 numMetadata) { - drwav_uint64 chunkSize = 4 + 36 + 24 + (drwav_uint64)drwav__write_or_count_metadata(NULL, metadata, numMetadata) + 8 + dataChunkSize + drwav__chunk_padding_size_riff(dataChunkSize); + ma_uint64 chunkSize = 4 + 36 + 24 + (ma_uint64)ma_dr_wav__write_or_count_metadata(NULL, metadata, numMetadata) + 8 + dataChunkSize + ma_dr_wav__chunk_padding_size_riff(dataChunkSize); if (chunkSize > 0xFFFFFFFFUL) { chunkSize = 0xFFFFFFFFUL; } return chunkSize; } -DRWAV_PRIVATE drwav_uint64 drwav__data_chunk_size_rf64(drwav_uint64 dataChunkSize) +MA_PRIVATE ma_uint64 ma_dr_wav__data_chunk_size_rf64(ma_uint64 dataChunkSize) { return dataChunkSize; } -DRWAV_PRIVATE drwav_bool32 drwav_preinit_write(drwav* pWav, const drwav_data_format* pFormat, drwav_bool32 isSequential, drwav_write_proc onWrite, drwav_seek_proc onSeek, void* pUserData, const drwav_allocation_callbacks* pAllocationCallbacks) +MA_PRIVATE ma_bool32 ma_dr_wav_preinit_write(ma_dr_wav* pWav, const ma_dr_wav_data_format* pFormat, ma_bool32 isSequential, ma_dr_wav_write_proc onWrite, ma_dr_wav_seek_proc onSeek, void* pUserData, const ma_allocation_callbacks* pAllocationCallbacks) { if (pWav == NULL || onWrite == NULL) { - return DRWAV_FALSE; + return MA_FALSE; } if (!isSequential && onSeek == NULL) { - return DRWAV_FALSE; + return MA_FALSE; } - if (pFormat->format == DR_WAVE_FORMAT_EXTENSIBLE) { - return DRWAV_FALSE; + if (pFormat->format == MA_DR_WAVE_FORMAT_EXTENSIBLE) { + return MA_FALSE; } - if (pFormat->format == DR_WAVE_FORMAT_ADPCM || pFormat->format == DR_WAVE_FORMAT_DVI_ADPCM) { - return DRWAV_FALSE; + if (pFormat->format == MA_DR_WAVE_FORMAT_ADPCM || pFormat->format == MA_DR_WAVE_FORMAT_DVI_ADPCM) { + return MA_FALSE; } - DRWAV_ZERO_MEMORY(pWav, sizeof(*pWav)); + MA_DR_WAV_ZERO_MEMORY(pWav, sizeof(*pWav)); pWav->onWrite = onWrite; pWav->onSeek = onSeek; pWav->pUserData = pUserData; - pWav->allocationCallbacks = drwav_copy_allocation_callbacks_or_defaults(pAllocationCallbacks); + pWav->allocationCallbacks = ma_dr_wav_copy_allocation_callbacks_or_defaults(pAllocationCallbacks); if (pWav->allocationCallbacks.onFree == NULL || (pWav->allocationCallbacks.onMalloc == NULL && pWav->allocationCallbacks.onRealloc == NULL)) { - return DRWAV_FALSE; + return MA_FALSE; } - pWav->fmt.formatTag = (drwav_uint16)pFormat->format; - pWav->fmt.channels = (drwav_uint16)pFormat->channels; + pWav->fmt.formatTag = (ma_uint16)pFormat->format; + pWav->fmt.channels = (ma_uint16)pFormat->channels; pWav->fmt.sampleRate = pFormat->sampleRate; - pWav->fmt.avgBytesPerSec = (drwav_uint32)((pFormat->bitsPerSample * pFormat->sampleRate * pFormat->channels) / 8); - pWav->fmt.blockAlign = (drwav_uint16)((pFormat->channels * pFormat->bitsPerSample) / 8); - pWav->fmt.bitsPerSample = (drwav_uint16)pFormat->bitsPerSample; + pWav->fmt.avgBytesPerSec = (ma_uint32)((pFormat->bitsPerSample * pFormat->sampleRate * pFormat->channels) / 8); + pWav->fmt.blockAlign = (ma_uint16)((pFormat->channels * pFormat->bitsPerSample) / 8); + pWav->fmt.bitsPerSample = (ma_uint16)pFormat->bitsPerSample; pWav->fmt.extendedSize = 0; pWav->isSequentialWrite = isSequential; - return DRWAV_TRUE; + return MA_TRUE; } -DRWAV_PRIVATE drwav_bool32 drwav_init_write__internal(drwav* pWav, const drwav_data_format* pFormat, drwav_uint64 totalSampleCount) +MA_PRIVATE ma_bool32 ma_dr_wav_init_write__internal(ma_dr_wav* pWav, const ma_dr_wav_data_format* pFormat, ma_uint64 totalSampleCount) { size_t runningPos = 0; - drwav_uint64 initialDataChunkSize = 0; - drwav_uint64 chunkSizeFMT; + ma_uint64 initialDataChunkSize = 0; + ma_uint64 chunkSizeFMT; if (pWav->isSequentialWrite) { initialDataChunkSize = (totalSampleCount * pWav->fmt.bitsPerSample) / 8; - if (pFormat->container == drwav_container_riff) { + if (pFormat->container == ma_dr_wav_container_riff) { if (initialDataChunkSize > (0xFFFFFFFFUL - 36)) { - return DRWAV_FALSE; + return MA_FALSE; } } } pWav->dataChunkDataSizeTargetWrite = initialDataChunkSize; - if (pFormat->container == drwav_container_riff) { - drwav_uint32 chunkSizeRIFF = 28 + (drwav_uint32)initialDataChunkSize; - runningPos += drwav__write(pWav, "RIFF", 4); - runningPos += drwav__write_u32ne_to_le(pWav, chunkSizeRIFF); - runningPos += drwav__write(pWav, "WAVE", 4); - } else if (pFormat->container == drwav_container_w64) { - drwav_uint64 chunkSizeRIFF = 80 + 24 + initialDataChunkSize; - runningPos += drwav__write(pWav, drwavGUID_W64_RIFF, 16); - runningPos += drwav__write_u64ne_to_le(pWav, chunkSizeRIFF); - runningPos += drwav__write(pWav, drwavGUID_W64_WAVE, 16); - } else if (pFormat->container == drwav_container_rf64) { - runningPos += drwav__write(pWav, "RF64", 4); - runningPos += drwav__write_u32ne_to_le(pWav, 0xFFFFFFFF); - runningPos += drwav__write(pWav, "WAVE", 4); + if (pFormat->container == ma_dr_wav_container_riff) { + ma_uint32 chunkSizeRIFF = 28 + (ma_uint32)initialDataChunkSize; + runningPos += ma_dr_wav__write(pWav, "RIFF", 4); + runningPos += ma_dr_wav__write_u32ne_to_le(pWav, chunkSizeRIFF); + runningPos += ma_dr_wav__write(pWav, "WAVE", 4); + } else if (pFormat->container == ma_dr_wav_container_w64) { + ma_uint64 chunkSizeRIFF = 80 + 24 + initialDataChunkSize; + runningPos += ma_dr_wav__write(pWav, ma_dr_wavGUID_W64_RIFF, 16); + runningPos += ma_dr_wav__write_u64ne_to_le(pWav, chunkSizeRIFF); + runningPos += ma_dr_wav__write(pWav, ma_dr_wavGUID_W64_WAVE, 16); + } else if (pFormat->container == ma_dr_wav_container_rf64) { + runningPos += ma_dr_wav__write(pWav, "RF64", 4); + runningPos += ma_dr_wav__write_u32ne_to_le(pWav, 0xFFFFFFFF); + runningPos += ma_dr_wav__write(pWav, "WAVE", 4); + } else { + return MA_FALSE; } - if (pFormat->container == drwav_container_rf64) { - drwav_uint32 initialds64ChunkSize = 28; - drwav_uint64 initialRiffChunkSize = 8 + initialds64ChunkSize + initialDataChunkSize; - runningPos += drwav__write(pWav, "ds64", 4); - runningPos += drwav__write_u32ne_to_le(pWav, initialds64ChunkSize); - runningPos += drwav__write_u64ne_to_le(pWav, initialRiffChunkSize); - runningPos += drwav__write_u64ne_to_le(pWav, initialDataChunkSize); - runningPos += drwav__write_u64ne_to_le(pWav, totalSampleCount); - runningPos += drwav__write_u32ne_to_le(pWav, 0); + if (pFormat->container == ma_dr_wav_container_rf64) { + ma_uint32 initialds64ChunkSize = 28; + ma_uint64 initialRiffChunkSize = 8 + initialds64ChunkSize + initialDataChunkSize; + runningPos += ma_dr_wav__write(pWav, "ds64", 4); + runningPos += ma_dr_wav__write_u32ne_to_le(pWav, initialds64ChunkSize); + runningPos += ma_dr_wav__write_u64ne_to_le(pWav, initialRiffChunkSize); + runningPos += ma_dr_wav__write_u64ne_to_le(pWav, initialDataChunkSize); + runningPos += ma_dr_wav__write_u64ne_to_le(pWav, totalSampleCount); + runningPos += ma_dr_wav__write_u32ne_to_le(pWav, 0); } - if (pFormat->container == drwav_container_riff || pFormat->container == drwav_container_rf64) { + if (pFormat->container == ma_dr_wav_container_riff || pFormat->container == ma_dr_wav_container_rf64) { chunkSizeFMT = 16; - runningPos += drwav__write(pWav, "fmt ", 4); - runningPos += drwav__write_u32ne_to_le(pWav, (drwav_uint32)chunkSizeFMT); - } else if (pFormat->container == drwav_container_w64) { + runningPos += ma_dr_wav__write(pWav, "fmt ", 4); + runningPos += ma_dr_wav__write_u32ne_to_le(pWav, (ma_uint32)chunkSizeFMT); + } else if (pFormat->container == ma_dr_wav_container_w64) { chunkSizeFMT = 40; - runningPos += drwav__write(pWav, drwavGUID_W64_FMT, 16); - runningPos += drwav__write_u64ne_to_le(pWav, chunkSizeFMT); + runningPos += ma_dr_wav__write(pWav, ma_dr_wavGUID_W64_FMT, 16); + runningPos += ma_dr_wav__write_u64ne_to_le(pWav, chunkSizeFMT); } - runningPos += drwav__write_u16ne_to_le(pWav, pWav->fmt.formatTag); - runningPos += drwav__write_u16ne_to_le(pWav, pWav->fmt.channels); - runningPos += drwav__write_u32ne_to_le(pWav, pWav->fmt.sampleRate); - runningPos += drwav__write_u32ne_to_le(pWav, pWav->fmt.avgBytesPerSec); - runningPos += drwav__write_u16ne_to_le(pWav, pWav->fmt.blockAlign); - runningPos += drwav__write_u16ne_to_le(pWav, pWav->fmt.bitsPerSample); - if (!pWav->isSequentialWrite && pWav->pMetadata != NULL && pWav->metadataCount > 0 && (pFormat->container == drwav_container_riff || pFormat->container == drwav_container_rf64)) { - runningPos += drwav__write_or_count_metadata(pWav, pWav->pMetadata, pWav->metadataCount); + runningPos += ma_dr_wav__write_u16ne_to_le(pWav, pWav->fmt.formatTag); + runningPos += ma_dr_wav__write_u16ne_to_le(pWav, pWav->fmt.channels); + runningPos += ma_dr_wav__write_u32ne_to_le(pWav, pWav->fmt.sampleRate); + runningPos += ma_dr_wav__write_u32ne_to_le(pWav, pWav->fmt.avgBytesPerSec); + runningPos += ma_dr_wav__write_u16ne_to_le(pWav, pWav->fmt.blockAlign); + runningPos += ma_dr_wav__write_u16ne_to_le(pWav, pWav->fmt.bitsPerSample); + if (!pWav->isSequentialWrite && pWav->pMetadata != NULL && pWav->metadataCount > 0 && (pFormat->container == ma_dr_wav_container_riff || pFormat->container == ma_dr_wav_container_rf64)) { + runningPos += ma_dr_wav__write_or_count_metadata(pWav, pWav->pMetadata, pWav->metadataCount); } pWav->dataChunkDataPos = runningPos; - if (pFormat->container == drwav_container_riff) { - drwav_uint32 chunkSizeDATA = (drwav_uint32)initialDataChunkSize; - runningPos += drwav__write(pWav, "data", 4); - runningPos += drwav__write_u32ne_to_le(pWav, chunkSizeDATA); - } else if (pFormat->container == drwav_container_w64) { - drwav_uint64 chunkSizeDATA = 24 + initialDataChunkSize; - runningPos += drwav__write(pWav, drwavGUID_W64_DATA, 16); - runningPos += drwav__write_u64ne_to_le(pWav, chunkSizeDATA); - } else if (pFormat->container == drwav_container_rf64) { - runningPos += drwav__write(pWav, "data", 4); - runningPos += drwav__write_u32ne_to_le(pWav, 0xFFFFFFFF); + if (pFormat->container == ma_dr_wav_container_riff) { + ma_uint32 chunkSizeDATA = (ma_uint32)initialDataChunkSize; + runningPos += ma_dr_wav__write(pWav, "data", 4); + runningPos += ma_dr_wav__write_u32ne_to_le(pWav, chunkSizeDATA); + } else if (pFormat->container == ma_dr_wav_container_w64) { + ma_uint64 chunkSizeDATA = 24 + initialDataChunkSize; + runningPos += ma_dr_wav__write(pWav, ma_dr_wavGUID_W64_DATA, 16); + runningPos += ma_dr_wav__write_u64ne_to_le(pWav, chunkSizeDATA); + } else if (pFormat->container == ma_dr_wav_container_rf64) { + runningPos += ma_dr_wav__write(pWav, "data", 4); + runningPos += ma_dr_wav__write_u32ne_to_le(pWav, 0xFFFFFFFF); } pWav->container = pFormat->container; - pWav->channels = (drwav_uint16)pFormat->channels; + pWav->channels = (ma_uint16)pFormat->channels; pWav->sampleRate = pFormat->sampleRate; - pWav->bitsPerSample = (drwav_uint16)pFormat->bitsPerSample; - pWav->translatedFormatTag = (drwav_uint16)pFormat->format; + pWav->bitsPerSample = (ma_uint16)pFormat->bitsPerSample; + pWav->translatedFormatTag = (ma_uint16)pFormat->format; pWav->dataChunkDataPos = runningPos; - return DRWAV_TRUE; + return MA_TRUE; } -DRWAV_API drwav_bool32 drwav_init_write(drwav* pWav, const drwav_data_format* pFormat, drwav_write_proc onWrite, drwav_seek_proc onSeek, void* pUserData, const drwav_allocation_callbacks* pAllocationCallbacks) +MA_API ma_bool32 ma_dr_wav_init_write(ma_dr_wav* pWav, const ma_dr_wav_data_format* pFormat, ma_dr_wav_write_proc onWrite, ma_dr_wav_seek_proc onSeek, void* pUserData, const ma_allocation_callbacks* pAllocationCallbacks) { - if (!drwav_preinit_write(pWav, pFormat, DRWAV_FALSE, onWrite, onSeek, pUserData, pAllocationCallbacks)) { - return DRWAV_FALSE; + if (!ma_dr_wav_preinit_write(pWav, pFormat, MA_FALSE, onWrite, onSeek, pUserData, pAllocationCallbacks)) { + return MA_FALSE; } - return drwav_init_write__internal(pWav, pFormat, 0); + return ma_dr_wav_init_write__internal(pWav, pFormat, 0); } -DRWAV_API drwav_bool32 drwav_init_write_sequential(drwav* pWav, const drwav_data_format* pFormat, drwav_uint64 totalSampleCount, drwav_write_proc onWrite, void* pUserData, const drwav_allocation_callbacks* pAllocationCallbacks) +MA_API ma_bool32 ma_dr_wav_init_write_sequential(ma_dr_wav* pWav, const ma_dr_wav_data_format* pFormat, ma_uint64 totalSampleCount, ma_dr_wav_write_proc onWrite, void* pUserData, const ma_allocation_callbacks* pAllocationCallbacks) { - if (!drwav_preinit_write(pWav, pFormat, DRWAV_TRUE, onWrite, NULL, pUserData, pAllocationCallbacks)) { - return DRWAV_FALSE; + if (!ma_dr_wav_preinit_write(pWav, pFormat, MA_TRUE, onWrite, NULL, pUserData, pAllocationCallbacks)) { + return MA_FALSE; } - return drwav_init_write__internal(pWav, pFormat, totalSampleCount); + return ma_dr_wav_init_write__internal(pWav, pFormat, totalSampleCount); } -DRWAV_API drwav_bool32 drwav_init_write_sequential_pcm_frames(drwav* pWav, const drwav_data_format* pFormat, drwav_uint64 totalPCMFrameCount, drwav_write_proc onWrite, void* pUserData, const drwav_allocation_callbacks* pAllocationCallbacks) +MA_API ma_bool32 ma_dr_wav_init_write_sequential_pcm_frames(ma_dr_wav* pWav, const ma_dr_wav_data_format* pFormat, ma_uint64 totalPCMFrameCount, ma_dr_wav_write_proc onWrite, void* pUserData, const ma_allocation_callbacks* pAllocationCallbacks) { if (pFormat == NULL) { - return DRWAV_FALSE; + return MA_FALSE; } - return drwav_init_write_sequential(pWav, pFormat, totalPCMFrameCount*pFormat->channels, onWrite, pUserData, pAllocationCallbacks); + return ma_dr_wav_init_write_sequential(pWav, pFormat, totalPCMFrameCount*pFormat->channels, onWrite, pUserData, pAllocationCallbacks); } -DRWAV_API drwav_bool32 drwav_init_write_with_metadata(drwav* pWav, const drwav_data_format* pFormat, drwav_write_proc onWrite, drwav_seek_proc onSeek, void* pUserData, const drwav_allocation_callbacks* pAllocationCallbacks, drwav_metadata* pMetadata, drwav_uint32 metadataCount) +MA_API ma_bool32 ma_dr_wav_init_write_with_metadata(ma_dr_wav* pWav, const ma_dr_wav_data_format* pFormat, ma_dr_wav_write_proc onWrite, ma_dr_wav_seek_proc onSeek, void* pUserData, const ma_allocation_callbacks* pAllocationCallbacks, ma_dr_wav_metadata* pMetadata, ma_uint32 metadataCount) { - if (!drwav_preinit_write(pWav, pFormat, DRWAV_FALSE, onWrite, onSeek, pUserData, pAllocationCallbacks)) { - return DRWAV_FALSE; + if (!ma_dr_wav_preinit_write(pWav, pFormat, MA_FALSE, onWrite, onSeek, pUserData, pAllocationCallbacks)) { + return MA_FALSE; } pWav->pMetadata = pMetadata; pWav->metadataCount = metadataCount; - return drwav_init_write__internal(pWav, pFormat, 0); + return ma_dr_wav_init_write__internal(pWav, pFormat, 0); } -DRWAV_API drwav_uint64 drwav_target_write_size_bytes(const drwav_data_format* pFormat, drwav_uint64 totalFrameCount, drwav_metadata* pMetadata, drwav_uint32 metadataCount) +MA_API ma_uint64 ma_dr_wav_target_write_size_bytes(const ma_dr_wav_data_format* pFormat, ma_uint64 totalFrameCount, ma_dr_wav_metadata* pMetadata, ma_uint32 metadataCount) { - drwav_uint64 targetDataSizeBytes = (drwav_uint64)((drwav_int64)totalFrameCount * pFormat->channels * pFormat->bitsPerSample/8.0); - drwav_uint64 riffChunkSizeBytes; - drwav_uint64 fileSizeBytes = 0; - if (pFormat->container == drwav_container_riff) { - riffChunkSizeBytes = drwav__riff_chunk_size_riff(targetDataSizeBytes, pMetadata, metadataCount); + ma_uint64 targetDataSizeBytes = (ma_uint64)((ma_int64)totalFrameCount * pFormat->channels * pFormat->bitsPerSample/8.0); + ma_uint64 riffChunkSizeBytes; + ma_uint64 fileSizeBytes = 0; + if (pFormat->container == ma_dr_wav_container_riff) { + riffChunkSizeBytes = ma_dr_wav__riff_chunk_size_riff(targetDataSizeBytes, pMetadata, metadataCount); fileSizeBytes = (8 + riffChunkSizeBytes); - } else if (pFormat->container == drwav_container_w64) { - riffChunkSizeBytes = drwav__riff_chunk_size_w64(targetDataSizeBytes); + } else if (pFormat->container == ma_dr_wav_container_w64) { + riffChunkSizeBytes = ma_dr_wav__riff_chunk_size_w64(targetDataSizeBytes); fileSizeBytes = riffChunkSizeBytes; - } else if (pFormat->container == drwav_container_rf64) { - riffChunkSizeBytes = drwav__riff_chunk_size_rf64(targetDataSizeBytes, pMetadata, metadataCount); + } else if (pFormat->container == ma_dr_wav_container_rf64) { + riffChunkSizeBytes = ma_dr_wav__riff_chunk_size_rf64(targetDataSizeBytes, pMetadata, metadataCount); fileSizeBytes = (8 + riffChunkSizeBytes); } return fileSizeBytes; } -#ifndef DR_WAV_NO_STDIO -#include -DRWAV_PRIVATE drwav_result drwav_result_from_errno(int e) -{ - switch (e) - { - case 0: return DRWAV_SUCCESS; - #ifdef EPERM - case EPERM: return DRWAV_INVALID_OPERATION; - #endif - #ifdef ENOENT - case ENOENT: return DRWAV_DOES_NOT_EXIST; - #endif - #ifdef ESRCH - case ESRCH: return DRWAV_DOES_NOT_EXIST; - #endif - #ifdef EINTR - case EINTR: return DRWAV_INTERRUPT; - #endif - #ifdef EIO - case EIO: return DRWAV_IO_ERROR; - #endif - #ifdef ENXIO - case ENXIO: return DRWAV_DOES_NOT_EXIST; - #endif - #ifdef E2BIG - case E2BIG: return DRWAV_INVALID_ARGS; - #endif - #ifdef ENOEXEC - case ENOEXEC: return DRWAV_INVALID_FILE; - #endif - #ifdef EBADF - case EBADF: return DRWAV_INVALID_FILE; - #endif - #ifdef ECHILD - case ECHILD: return DRWAV_ERROR; - #endif - #ifdef EAGAIN - case EAGAIN: return DRWAV_UNAVAILABLE; - #endif - #ifdef ENOMEM - case ENOMEM: return DRWAV_OUT_OF_MEMORY; - #endif - #ifdef EACCES - case EACCES: return DRWAV_ACCESS_DENIED; - #endif - #ifdef EFAULT - case EFAULT: return DRWAV_BAD_ADDRESS; - #endif - #ifdef ENOTBLK - case ENOTBLK: return DRWAV_ERROR; - #endif - #ifdef EBUSY - case EBUSY: return DRWAV_BUSY; - #endif - #ifdef EEXIST - case EEXIST: return DRWAV_ALREADY_EXISTS; - #endif - #ifdef EXDEV - case EXDEV: return DRWAV_ERROR; - #endif - #ifdef ENODEV - case ENODEV: return DRWAV_DOES_NOT_EXIST; - #endif - #ifdef ENOTDIR - case ENOTDIR: return DRWAV_NOT_DIRECTORY; - #endif - #ifdef EISDIR - case EISDIR: return DRWAV_IS_DIRECTORY; - #endif - #ifdef EINVAL - case EINVAL: return DRWAV_INVALID_ARGS; - #endif - #ifdef ENFILE - case ENFILE: return DRWAV_TOO_MANY_OPEN_FILES; - #endif - #ifdef EMFILE - case EMFILE: return DRWAV_TOO_MANY_OPEN_FILES; - #endif - #ifdef ENOTTY - case ENOTTY: return DRWAV_INVALID_OPERATION; - #endif - #ifdef ETXTBSY - case ETXTBSY: return DRWAV_BUSY; - #endif - #ifdef EFBIG - case EFBIG: return DRWAV_TOO_BIG; - #endif - #ifdef ENOSPC - case ENOSPC: return DRWAV_NO_SPACE; - #endif - #ifdef ESPIPE - case ESPIPE: return DRWAV_BAD_SEEK; - #endif - #ifdef EROFS - case EROFS: return DRWAV_ACCESS_DENIED; - #endif - #ifdef EMLINK - case EMLINK: return DRWAV_TOO_MANY_LINKS; - #endif - #ifdef EPIPE - case EPIPE: return DRWAV_BAD_PIPE; - #endif - #ifdef EDOM - case EDOM: return DRWAV_OUT_OF_RANGE; - #endif - #ifdef ERANGE - case ERANGE: return DRWAV_OUT_OF_RANGE; - #endif - #ifdef EDEADLK - case EDEADLK: return DRWAV_DEADLOCK; - #endif - #ifdef ENAMETOOLONG - case ENAMETOOLONG: return DRWAV_PATH_TOO_LONG; - #endif - #ifdef ENOLCK - case ENOLCK: return DRWAV_ERROR; - #endif - #ifdef ENOSYS - case ENOSYS: return DRWAV_NOT_IMPLEMENTED; - #endif - #ifdef ENOTEMPTY - case ENOTEMPTY: return DRWAV_DIRECTORY_NOT_EMPTY; - #endif - #ifdef ELOOP - case ELOOP: return DRWAV_TOO_MANY_LINKS; - #endif - #ifdef ENOMSG - case ENOMSG: return DRWAV_NO_MESSAGE; - #endif - #ifdef EIDRM - case EIDRM: return DRWAV_ERROR; - #endif - #ifdef ECHRNG - case ECHRNG: return DRWAV_ERROR; - #endif - #ifdef EL2NSYNC - case EL2NSYNC: return DRWAV_ERROR; - #endif - #ifdef EL3HLT - case EL3HLT: return DRWAV_ERROR; - #endif - #ifdef EL3RST - case EL3RST: return DRWAV_ERROR; - #endif - #ifdef ELNRNG - case ELNRNG: return DRWAV_OUT_OF_RANGE; - #endif - #ifdef EUNATCH - case EUNATCH: return DRWAV_ERROR; - #endif - #ifdef ENOCSI - case ENOCSI: return DRWAV_ERROR; - #endif - #ifdef EL2HLT - case EL2HLT: return DRWAV_ERROR; - #endif - #ifdef EBADE - case EBADE: return DRWAV_ERROR; - #endif - #ifdef EBADR - case EBADR: return DRWAV_ERROR; - #endif - #ifdef EXFULL - case EXFULL: return DRWAV_ERROR; - #endif - #ifdef ENOANO - case ENOANO: return DRWAV_ERROR; - #endif - #ifdef EBADRQC - case EBADRQC: return DRWAV_ERROR; - #endif - #ifdef EBADSLT - case EBADSLT: return DRWAV_ERROR; - #endif - #ifdef EBFONT - case EBFONT: return DRWAV_INVALID_FILE; - #endif - #ifdef ENOSTR - case ENOSTR: return DRWAV_ERROR; - #endif - #ifdef ENODATA - case ENODATA: return DRWAV_NO_DATA_AVAILABLE; - #endif - #ifdef ETIME - case ETIME: return DRWAV_TIMEOUT; - #endif - #ifdef ENOSR - case ENOSR: return DRWAV_NO_DATA_AVAILABLE; - #endif - #ifdef ENONET - case ENONET: return DRWAV_NO_NETWORK; - #endif - #ifdef ENOPKG - case ENOPKG: return DRWAV_ERROR; - #endif - #ifdef EREMOTE - case EREMOTE: return DRWAV_ERROR; - #endif - #ifdef ENOLINK - case ENOLINK: return DRWAV_ERROR; - #endif - #ifdef EADV - case EADV: return DRWAV_ERROR; - #endif - #ifdef ESRMNT - case ESRMNT: return DRWAV_ERROR; - #endif - #ifdef ECOMM - case ECOMM: return DRWAV_ERROR; - #endif - #ifdef EPROTO - case EPROTO: return DRWAV_ERROR; - #endif - #ifdef EMULTIHOP - case EMULTIHOP: return DRWAV_ERROR; - #endif - #ifdef EDOTDOT - case EDOTDOT: return DRWAV_ERROR; - #endif - #ifdef EBADMSG - case EBADMSG: return DRWAV_BAD_MESSAGE; - #endif - #ifdef EOVERFLOW - case EOVERFLOW: return DRWAV_TOO_BIG; - #endif - #ifdef ENOTUNIQ - case ENOTUNIQ: return DRWAV_NOT_UNIQUE; - #endif - #ifdef EBADFD - case EBADFD: return DRWAV_ERROR; - #endif - #ifdef EREMCHG - case EREMCHG: return DRWAV_ERROR; - #endif - #ifdef ELIBACC - case ELIBACC: return DRWAV_ACCESS_DENIED; - #endif - #ifdef ELIBBAD - case ELIBBAD: return DRWAV_INVALID_FILE; - #endif - #ifdef ELIBSCN - case ELIBSCN: return DRWAV_INVALID_FILE; - #endif - #ifdef ELIBMAX - case ELIBMAX: return DRWAV_ERROR; - #endif - #ifdef ELIBEXEC - case ELIBEXEC: return DRWAV_ERROR; - #endif - #ifdef EILSEQ - case EILSEQ: return DRWAV_INVALID_DATA; - #endif - #ifdef ERESTART - case ERESTART: return DRWAV_ERROR; - #endif - #ifdef ESTRPIPE - case ESTRPIPE: return DRWAV_ERROR; - #endif - #ifdef EUSERS - case EUSERS: return DRWAV_ERROR; - #endif - #ifdef ENOTSOCK - case ENOTSOCK: return DRWAV_NOT_SOCKET; - #endif - #ifdef EDESTADDRREQ - case EDESTADDRREQ: return DRWAV_NO_ADDRESS; - #endif - #ifdef EMSGSIZE - case EMSGSIZE: return DRWAV_TOO_BIG; - #endif - #ifdef EPROTOTYPE - case EPROTOTYPE: return DRWAV_BAD_PROTOCOL; - #endif - #ifdef ENOPROTOOPT - case ENOPROTOOPT: return DRWAV_PROTOCOL_UNAVAILABLE; - #endif - #ifdef EPROTONOSUPPORT - case EPROTONOSUPPORT: return DRWAV_PROTOCOL_NOT_SUPPORTED; - #endif - #ifdef ESOCKTNOSUPPORT - case ESOCKTNOSUPPORT: return DRWAV_SOCKET_NOT_SUPPORTED; - #endif - #ifdef EOPNOTSUPP - case EOPNOTSUPP: return DRWAV_INVALID_OPERATION; - #endif - #ifdef EPFNOSUPPORT - case EPFNOSUPPORT: return DRWAV_PROTOCOL_FAMILY_NOT_SUPPORTED; - #endif - #ifdef EAFNOSUPPORT - case EAFNOSUPPORT: return DRWAV_ADDRESS_FAMILY_NOT_SUPPORTED; - #endif - #ifdef EADDRINUSE - case EADDRINUSE: return DRWAV_ALREADY_IN_USE; - #endif - #ifdef EADDRNOTAVAIL - case EADDRNOTAVAIL: return DRWAV_ERROR; - #endif - #ifdef ENETDOWN - case ENETDOWN: return DRWAV_NO_NETWORK; - #endif - #ifdef ENETUNREACH - case ENETUNREACH: return DRWAV_NO_NETWORK; - #endif - #ifdef ENETRESET - case ENETRESET: return DRWAV_NO_NETWORK; - #endif - #ifdef ECONNABORTED - case ECONNABORTED: return DRWAV_NO_NETWORK; - #endif - #ifdef ECONNRESET - case ECONNRESET: return DRWAV_CONNECTION_RESET; - #endif - #ifdef ENOBUFS - case ENOBUFS: return DRWAV_NO_SPACE; - #endif - #ifdef EISCONN - case EISCONN: return DRWAV_ALREADY_CONNECTED; - #endif - #ifdef ENOTCONN - case ENOTCONN: return DRWAV_NOT_CONNECTED; - #endif - #ifdef ESHUTDOWN - case ESHUTDOWN: return DRWAV_ERROR; - #endif - #ifdef ETOOMANYREFS - case ETOOMANYREFS: return DRWAV_ERROR; - #endif - #ifdef ETIMEDOUT - case ETIMEDOUT: return DRWAV_TIMEOUT; - #endif - #ifdef ECONNREFUSED - case ECONNREFUSED: return DRWAV_CONNECTION_REFUSED; - #endif - #ifdef EHOSTDOWN - case EHOSTDOWN: return DRWAV_NO_HOST; - #endif - #ifdef EHOSTUNREACH - case EHOSTUNREACH: return DRWAV_NO_HOST; - #endif - #ifdef EALREADY - case EALREADY: return DRWAV_IN_PROGRESS; - #endif - #ifdef EINPROGRESS - case EINPROGRESS: return DRWAV_IN_PROGRESS; - #endif - #ifdef ESTALE - case ESTALE: return DRWAV_INVALID_FILE; - #endif - #ifdef EUCLEAN - case EUCLEAN: return DRWAV_ERROR; - #endif - #ifdef ENOTNAM - case ENOTNAM: return DRWAV_ERROR; - #endif - #ifdef ENAVAIL - case ENAVAIL: return DRWAV_ERROR; - #endif - #ifdef EISNAM - case EISNAM: return DRWAV_ERROR; - #endif - #ifdef EREMOTEIO - case EREMOTEIO: return DRWAV_IO_ERROR; - #endif - #ifdef EDQUOT - case EDQUOT: return DRWAV_NO_SPACE; - #endif - #ifdef ENOMEDIUM - case ENOMEDIUM: return DRWAV_DOES_NOT_EXIST; - #endif - #ifdef EMEDIUMTYPE - case EMEDIUMTYPE: return DRWAV_ERROR; - #endif - #ifdef ECANCELED - case ECANCELED: return DRWAV_CANCELLED; - #endif - #ifdef ENOKEY - case ENOKEY: return DRWAV_ERROR; - #endif - #ifdef EKEYEXPIRED - case EKEYEXPIRED: return DRWAV_ERROR; - #endif - #ifdef EKEYREVOKED - case EKEYREVOKED: return DRWAV_ERROR; - #endif - #ifdef EKEYREJECTED - case EKEYREJECTED: return DRWAV_ERROR; - #endif - #ifdef EOWNERDEAD - case EOWNERDEAD: return DRWAV_ERROR; - #endif - #ifdef ENOTRECOVERABLE - case ENOTRECOVERABLE: return DRWAV_ERROR; - #endif - #ifdef ERFKILL - case ERFKILL: return DRWAV_ERROR; - #endif - #ifdef EHWPOISON - case EHWPOISON: return DRWAV_ERROR; - #endif - default: return DRWAV_ERROR; - } -} -DRWAV_PRIVATE drwav_result drwav_fopen(FILE** ppFile, const char* pFilePath, const char* pOpenMode) -{ -#if defined(_MSC_VER) && _MSC_VER >= 1400 - errno_t err; -#endif - if (ppFile != NULL) { - *ppFile = NULL; - } - if (pFilePath == NULL || pOpenMode == NULL || ppFile == NULL) { - return DRWAV_INVALID_ARGS; - } -#if defined(_MSC_VER) && _MSC_VER >= 1400 - err = fopen_s(ppFile, pFilePath, pOpenMode); - if (err != 0) { - return drwav_result_from_errno(err); - } -#else -#if defined(_WIN32) || defined(__APPLE__) - *ppFile = fopen(pFilePath, pOpenMode); -#else - #if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64 && defined(_LARGEFILE64_SOURCE) - *ppFile = fopen64(pFilePath, pOpenMode); - #else - *ppFile = fopen(pFilePath, pOpenMode); - #endif -#endif - if (*ppFile == NULL) { - drwav_result result = drwav_result_from_errno(errno); - if (result == DRWAV_SUCCESS) { - result = DRWAV_ERROR; - } - return result; - } -#endif - return DRWAV_SUCCESS; -} -#if defined(_WIN32) - #if defined(_MSC_VER) || defined(__MINGW64__) || (!defined(__STRICT_ANSI__) && !defined(_NO_EXT_KEYS)) - #define DRWAV_HAS_WFOPEN - #endif -#endif -DRWAV_PRIVATE drwav_result drwav_wfopen(FILE** ppFile, const wchar_t* pFilePath, const wchar_t* pOpenMode, const drwav_allocation_callbacks* pAllocationCallbacks) -{ - if (ppFile != NULL) { - *ppFile = NULL; - } - if (pFilePath == NULL || pOpenMode == NULL || ppFile == NULL) { - return DRWAV_INVALID_ARGS; - } -#if defined(DRWAV_HAS_WFOPEN) - { - #if defined(_MSC_VER) && _MSC_VER >= 1400 - errno_t err = _wfopen_s(ppFile, pFilePath, pOpenMode); - if (err != 0) { - return drwav_result_from_errno(err); - } - #else - *ppFile = _wfopen(pFilePath, pOpenMode); - if (*ppFile == NULL) { - return drwav_result_from_errno(errno); - } - #endif - (void)pAllocationCallbacks; - } -#else - { - mbstate_t mbs; - size_t lenMB; - const wchar_t* pFilePathTemp = pFilePath; - char* pFilePathMB = NULL; - char pOpenModeMB[32] = {0}; - DRWAV_ZERO_OBJECT(&mbs); - lenMB = wcsrtombs(NULL, &pFilePathTemp, 0, &mbs); - if (lenMB == (size_t)-1) { - return drwav_result_from_errno(errno); - } - pFilePathMB = (char*)drwav__malloc_from_callbacks(lenMB + 1, pAllocationCallbacks); - if (pFilePathMB == NULL) { - return DRWAV_OUT_OF_MEMORY; - } - pFilePathTemp = pFilePath; - DRWAV_ZERO_OBJECT(&mbs); - wcsrtombs(pFilePathMB, &pFilePathTemp, lenMB + 1, &mbs); - { - size_t i = 0; - for (;;) { - if (pOpenMode[i] == 0) { - pOpenModeMB[i] = '\0'; - break; - } - pOpenModeMB[i] = (char)pOpenMode[i]; - i += 1; - } - } - *ppFile = fopen(pFilePathMB, pOpenModeMB); - drwav__free_from_callbacks(pFilePathMB, pAllocationCallbacks); - } - if (*ppFile == NULL) { - return DRWAV_ERROR; - } -#endif - return DRWAV_SUCCESS; -} -DRWAV_PRIVATE size_t drwav__on_read_stdio(void* pUserData, void* pBufferOut, size_t bytesToRead) +#ifndef MA_DR_WAV_NO_STDIO +MA_PRIVATE size_t ma_dr_wav__on_read_stdio(void* pUserData, void* pBufferOut, size_t bytesToRead) { return fread(pBufferOut, 1, bytesToRead, (FILE*)pUserData); } -DRWAV_PRIVATE size_t drwav__on_write_stdio(void* pUserData, const void* pData, size_t bytesToWrite) +MA_PRIVATE size_t ma_dr_wav__on_write_stdio(void* pUserData, const void* pData, size_t bytesToWrite) { return fwrite(pData, 1, bytesToWrite, (FILE*)pUserData); } -DRWAV_PRIVATE drwav_bool32 drwav__on_seek_stdio(void* pUserData, int offset, drwav_seek_origin origin) +MA_PRIVATE ma_bool32 ma_dr_wav__on_seek_stdio(void* pUserData, int offset, ma_dr_wav_seek_origin origin) { - return fseek((FILE*)pUserData, offset, (origin == drwav_seek_origin_current) ? SEEK_CUR : SEEK_SET) == 0; + return fseek((FILE*)pUserData, offset, (origin == ma_dr_wav_seek_origin_current) ? SEEK_CUR : SEEK_SET) == 0; } -DRWAV_API drwav_bool32 drwav_init_file(drwav* pWav, const char* filename, const drwav_allocation_callbacks* pAllocationCallbacks) +MA_API ma_bool32 ma_dr_wav_init_file(ma_dr_wav* pWav, const char* filename, const ma_allocation_callbacks* pAllocationCallbacks) { - return drwav_init_file_ex(pWav, filename, NULL, NULL, 0, pAllocationCallbacks); + return ma_dr_wav_init_file_ex(pWav, filename, NULL, NULL, 0, pAllocationCallbacks); } -DRWAV_PRIVATE drwav_bool32 drwav_init_file__internal_FILE(drwav* pWav, FILE* pFile, drwav_chunk_proc onChunk, void* pChunkUserData, drwav_uint32 flags, drwav_metadata_type allowedMetadataTypes, const drwav_allocation_callbacks* pAllocationCallbacks) +MA_PRIVATE ma_bool32 ma_dr_wav_init_file__internal_FILE(ma_dr_wav* pWav, FILE* pFile, ma_dr_wav_chunk_proc onChunk, void* pChunkUserData, ma_uint32 flags, const ma_allocation_callbacks* pAllocationCallbacks) { - drwav_bool32 result; - result = drwav_preinit(pWav, drwav__on_read_stdio, drwav__on_seek_stdio, (void*)pFile, pAllocationCallbacks); - if (result != DRWAV_TRUE) { + ma_bool32 result; + result = ma_dr_wav_preinit(pWav, ma_dr_wav__on_read_stdio, ma_dr_wav__on_seek_stdio, (void*)pFile, pAllocationCallbacks); + if (result != MA_TRUE) { fclose(pFile); return result; } - pWav->allowedMetadataTypes = allowedMetadataTypes; - result = drwav_init__internal(pWav, onChunk, pChunkUserData, flags); - if (result != DRWAV_TRUE) { + result = ma_dr_wav_init__internal(pWav, onChunk, pChunkUserData, flags); + if (result != MA_TRUE) { fclose(pFile); return result; } - return DRWAV_TRUE; + return MA_TRUE; } -DRWAV_API drwav_bool32 drwav_init_file_ex(drwav* pWav, const char* filename, drwav_chunk_proc onChunk, void* pChunkUserData, drwav_uint32 flags, const drwav_allocation_callbacks* pAllocationCallbacks) +MA_API ma_bool32 ma_dr_wav_init_file_ex(ma_dr_wav* pWav, const char* filename, ma_dr_wav_chunk_proc onChunk, void* pChunkUserData, ma_uint32 flags, const ma_allocation_callbacks* pAllocationCallbacks) { FILE* pFile; - if (drwav_fopen(&pFile, filename, "rb") != DRWAV_SUCCESS) { - return DRWAV_FALSE; + if (ma_fopen(&pFile, filename, "rb") != MA_SUCCESS) { + return MA_FALSE; } - return drwav_init_file__internal_FILE(pWav, pFile, onChunk, pChunkUserData, flags, drwav_metadata_type_none, pAllocationCallbacks); + return ma_dr_wav_init_file__internal_FILE(pWav, pFile, onChunk, pChunkUserData, flags, pAllocationCallbacks); } -DRWAV_API drwav_bool32 drwav_init_file_w(drwav* pWav, const wchar_t* filename, const drwav_allocation_callbacks* pAllocationCallbacks) +#ifndef MA_DR_WAV_NO_WCHAR +MA_API ma_bool32 ma_dr_wav_init_file_w(ma_dr_wav* pWav, const wchar_t* filename, const ma_allocation_callbacks* pAllocationCallbacks) { - return drwav_init_file_ex_w(pWav, filename, NULL, NULL, 0, pAllocationCallbacks); + return ma_dr_wav_init_file_ex_w(pWav, filename, NULL, NULL, 0, pAllocationCallbacks); } -DRWAV_API drwav_bool32 drwav_init_file_ex_w(drwav* pWav, const wchar_t* filename, drwav_chunk_proc onChunk, void* pChunkUserData, drwav_uint32 flags, const drwav_allocation_callbacks* pAllocationCallbacks) +MA_API ma_bool32 ma_dr_wav_init_file_ex_w(ma_dr_wav* pWav, const wchar_t* filename, ma_dr_wav_chunk_proc onChunk, void* pChunkUserData, ma_uint32 flags, const ma_allocation_callbacks* pAllocationCallbacks) { FILE* pFile; - if (drwav_wfopen(&pFile, filename, L"rb", pAllocationCallbacks) != DRWAV_SUCCESS) { - return DRWAV_FALSE; + if (ma_wfopen(&pFile, filename, L"rb", pAllocationCallbacks) != MA_SUCCESS) { + return MA_FALSE; } - return drwav_init_file__internal_FILE(pWav, pFile, onChunk, pChunkUserData, flags, drwav_metadata_type_none, pAllocationCallbacks); -} -DRWAV_API drwav_bool32 drwav_init_file_with_metadata(drwav* pWav, const char* filename, drwav_uint32 flags, const drwav_allocation_callbacks* pAllocationCallbacks) -{ - FILE* pFile; - if (drwav_fopen(&pFile, filename, "rb") != DRWAV_SUCCESS) { - return DRWAV_FALSE; - } - return drwav_init_file__internal_FILE(pWav, pFile, NULL, NULL, flags, drwav_metadata_type_all_including_unknown, pAllocationCallbacks); -} -DRWAV_API drwav_bool32 drwav_init_file_with_metadata_w(drwav* pWav, const wchar_t* filename, drwav_uint32 flags, const drwav_allocation_callbacks* pAllocationCallbacks) -{ - FILE* pFile; - if (drwav_wfopen(&pFile, filename, L"rb", pAllocationCallbacks) != DRWAV_SUCCESS) { - return DRWAV_FALSE; - } - return drwav_init_file__internal_FILE(pWav, pFile, NULL, NULL, flags, drwav_metadata_type_all_including_unknown, pAllocationCallbacks); -} -DRWAV_PRIVATE drwav_bool32 drwav_init_file_write__internal_FILE(drwav* pWav, FILE* pFile, const drwav_data_format* pFormat, drwav_uint64 totalSampleCount, drwav_bool32 isSequential, const drwav_allocation_callbacks* pAllocationCallbacks) -{ - drwav_bool32 result; - result = drwav_preinit_write(pWav, pFormat, isSequential, drwav__on_write_stdio, drwav__on_seek_stdio, (void*)pFile, pAllocationCallbacks); - if (result != DRWAV_TRUE) { - fclose(pFile); - return result; - } - result = drwav_init_write__internal(pWav, pFormat, totalSampleCount); - if (result != DRWAV_TRUE) { - fclose(pFile); - return result; - } - return DRWAV_TRUE; -} -DRWAV_PRIVATE drwav_bool32 drwav_init_file_write__internal(drwav* pWav, const char* filename, const drwav_data_format* pFormat, drwav_uint64 totalSampleCount, drwav_bool32 isSequential, const drwav_allocation_callbacks* pAllocationCallbacks) -{ - FILE* pFile; - if (drwav_fopen(&pFile, filename, "wb") != DRWAV_SUCCESS) { - return DRWAV_FALSE; - } - return drwav_init_file_write__internal_FILE(pWav, pFile, pFormat, totalSampleCount, isSequential, pAllocationCallbacks); -} -DRWAV_PRIVATE drwav_bool32 drwav_init_file_write_w__internal(drwav* pWav, const wchar_t* filename, const drwav_data_format* pFormat, drwav_uint64 totalSampleCount, drwav_bool32 isSequential, const drwav_allocation_callbacks* pAllocationCallbacks) -{ - FILE* pFile; - if (drwav_wfopen(&pFile, filename, L"wb", pAllocationCallbacks) != DRWAV_SUCCESS) { - return DRWAV_FALSE; - } - return drwav_init_file_write__internal_FILE(pWav, pFile, pFormat, totalSampleCount, isSequential, pAllocationCallbacks); -} -DRWAV_API drwav_bool32 drwav_init_file_write(drwav* pWav, const char* filename, const drwav_data_format* pFormat, const drwav_allocation_callbacks* pAllocationCallbacks) -{ - return drwav_init_file_write__internal(pWav, filename, pFormat, 0, DRWAV_FALSE, pAllocationCallbacks); -} -DRWAV_API drwav_bool32 drwav_init_file_write_sequential(drwav* pWav, const char* filename, const drwav_data_format* pFormat, drwav_uint64 totalSampleCount, const drwav_allocation_callbacks* pAllocationCallbacks) -{ - return drwav_init_file_write__internal(pWav, filename, pFormat, totalSampleCount, DRWAV_TRUE, pAllocationCallbacks); -} -DRWAV_API drwav_bool32 drwav_init_file_write_sequential_pcm_frames(drwav* pWav, const char* filename, const drwav_data_format* pFormat, drwav_uint64 totalPCMFrameCount, const drwav_allocation_callbacks* pAllocationCallbacks) -{ - if (pFormat == NULL) { - return DRWAV_FALSE; - } - return drwav_init_file_write_sequential(pWav, filename, pFormat, totalPCMFrameCount*pFormat->channels, pAllocationCallbacks); -} -DRWAV_API drwav_bool32 drwav_init_file_write_w(drwav* pWav, const wchar_t* filename, const drwav_data_format* pFormat, const drwav_allocation_callbacks* pAllocationCallbacks) -{ - return drwav_init_file_write_w__internal(pWav, filename, pFormat, 0, DRWAV_FALSE, pAllocationCallbacks); -} -DRWAV_API drwav_bool32 drwav_init_file_write_sequential_w(drwav* pWav, const wchar_t* filename, const drwav_data_format* pFormat, drwav_uint64 totalSampleCount, const drwav_allocation_callbacks* pAllocationCallbacks) -{ - return drwav_init_file_write_w__internal(pWav, filename, pFormat, totalSampleCount, DRWAV_TRUE, pAllocationCallbacks); -} -DRWAV_API drwav_bool32 drwav_init_file_write_sequential_pcm_frames_w(drwav* pWav, const wchar_t* filename, const drwav_data_format* pFormat, drwav_uint64 totalPCMFrameCount, const drwav_allocation_callbacks* pAllocationCallbacks) -{ - if (pFormat == NULL) { - return DRWAV_FALSE; - } - return drwav_init_file_write_sequential_w(pWav, filename, pFormat, totalPCMFrameCount*pFormat->channels, pAllocationCallbacks); + return ma_dr_wav_init_file__internal_FILE(pWav, pFile, onChunk, pChunkUserData, flags, pAllocationCallbacks); } #endif -DRWAV_PRIVATE size_t drwav__on_read_memory(void* pUserData, void* pBufferOut, size_t bytesToRead) +MA_API ma_bool32 ma_dr_wav_init_file_with_metadata(ma_dr_wav* pWav, const char* filename, ma_uint32 flags, const ma_allocation_callbacks* pAllocationCallbacks) { - drwav* pWav = (drwav*)pUserData; + FILE* pFile; + if (ma_fopen(&pFile, filename, "rb") != MA_SUCCESS) { + return MA_FALSE; + } + return ma_dr_wav_init_file__internal_FILE(pWav, pFile, NULL, NULL, flags | MA_DR_WAV_WITH_METADATA, pAllocationCallbacks); +} +#ifndef MA_DR_WAV_NO_WCHAR +MA_API ma_bool32 ma_dr_wav_init_file_with_metadata_w(ma_dr_wav* pWav, const wchar_t* filename, ma_uint32 flags, const ma_allocation_callbacks* pAllocationCallbacks) +{ + FILE* pFile; + if (ma_wfopen(&pFile, filename, L"rb", pAllocationCallbacks) != MA_SUCCESS) { + return MA_FALSE; + } + return ma_dr_wav_init_file__internal_FILE(pWav, pFile, NULL, NULL, flags | MA_DR_WAV_WITH_METADATA, pAllocationCallbacks); +} +#endif +MA_PRIVATE ma_bool32 ma_dr_wav_init_file_write__internal_FILE(ma_dr_wav* pWav, FILE* pFile, const ma_dr_wav_data_format* pFormat, ma_uint64 totalSampleCount, ma_bool32 isSequential, const ma_allocation_callbacks* pAllocationCallbacks) +{ + ma_bool32 result; + result = ma_dr_wav_preinit_write(pWav, pFormat, isSequential, ma_dr_wav__on_write_stdio, ma_dr_wav__on_seek_stdio, (void*)pFile, pAllocationCallbacks); + if (result != MA_TRUE) { + fclose(pFile); + return result; + } + result = ma_dr_wav_init_write__internal(pWav, pFormat, totalSampleCount); + if (result != MA_TRUE) { + fclose(pFile); + return result; + } + return MA_TRUE; +} +MA_PRIVATE ma_bool32 ma_dr_wav_init_file_write__internal(ma_dr_wav* pWav, const char* filename, const ma_dr_wav_data_format* pFormat, ma_uint64 totalSampleCount, ma_bool32 isSequential, const ma_allocation_callbacks* pAllocationCallbacks) +{ + FILE* pFile; + if (ma_fopen(&pFile, filename, "wb") != MA_SUCCESS) { + return MA_FALSE; + } + return ma_dr_wav_init_file_write__internal_FILE(pWav, pFile, pFormat, totalSampleCount, isSequential, pAllocationCallbacks); +} +#ifndef MA_DR_WAV_NO_WCHAR +MA_PRIVATE ma_bool32 ma_dr_wav_init_file_write_w__internal(ma_dr_wav* pWav, const wchar_t* filename, const ma_dr_wav_data_format* pFormat, ma_uint64 totalSampleCount, ma_bool32 isSequential, const ma_allocation_callbacks* pAllocationCallbacks) +{ + FILE* pFile; + if (ma_wfopen(&pFile, filename, L"wb", pAllocationCallbacks) != MA_SUCCESS) { + return MA_FALSE; + } + return ma_dr_wav_init_file_write__internal_FILE(pWav, pFile, pFormat, totalSampleCount, isSequential, pAllocationCallbacks); +} +#endif +MA_API ma_bool32 ma_dr_wav_init_file_write(ma_dr_wav* pWav, const char* filename, const ma_dr_wav_data_format* pFormat, const ma_allocation_callbacks* pAllocationCallbacks) +{ + return ma_dr_wav_init_file_write__internal(pWav, filename, pFormat, 0, MA_FALSE, pAllocationCallbacks); +} +MA_API ma_bool32 ma_dr_wav_init_file_write_sequential(ma_dr_wav* pWav, const char* filename, const ma_dr_wav_data_format* pFormat, ma_uint64 totalSampleCount, const ma_allocation_callbacks* pAllocationCallbacks) +{ + return ma_dr_wav_init_file_write__internal(pWav, filename, pFormat, totalSampleCount, MA_TRUE, pAllocationCallbacks); +} +MA_API ma_bool32 ma_dr_wav_init_file_write_sequential_pcm_frames(ma_dr_wav* pWav, const char* filename, const ma_dr_wav_data_format* pFormat, ma_uint64 totalPCMFrameCount, const ma_allocation_callbacks* pAllocationCallbacks) +{ + if (pFormat == NULL) { + return MA_FALSE; + } + return ma_dr_wav_init_file_write_sequential(pWav, filename, pFormat, totalPCMFrameCount*pFormat->channels, pAllocationCallbacks); +} +#ifndef MA_DR_WAV_NO_WCHAR +MA_API ma_bool32 ma_dr_wav_init_file_write_w(ma_dr_wav* pWav, const wchar_t* filename, const ma_dr_wav_data_format* pFormat, const ma_allocation_callbacks* pAllocationCallbacks) +{ + return ma_dr_wav_init_file_write_w__internal(pWav, filename, pFormat, 0, MA_FALSE, pAllocationCallbacks); +} +MA_API ma_bool32 ma_dr_wav_init_file_write_sequential_w(ma_dr_wav* pWav, const wchar_t* filename, const ma_dr_wav_data_format* pFormat, ma_uint64 totalSampleCount, const ma_allocation_callbacks* pAllocationCallbacks) +{ + return ma_dr_wav_init_file_write_w__internal(pWav, filename, pFormat, totalSampleCount, MA_TRUE, pAllocationCallbacks); +} +MA_API ma_bool32 ma_dr_wav_init_file_write_sequential_pcm_frames_w(ma_dr_wav* pWav, const wchar_t* filename, const ma_dr_wav_data_format* pFormat, ma_uint64 totalPCMFrameCount, const ma_allocation_callbacks* pAllocationCallbacks) +{ + if (pFormat == NULL) { + return MA_FALSE; + } + return ma_dr_wav_init_file_write_sequential_w(pWav, filename, pFormat, totalPCMFrameCount*pFormat->channels, pAllocationCallbacks); +} +#endif +#endif +MA_PRIVATE size_t ma_dr_wav__on_read_memory(void* pUserData, void* pBufferOut, size_t bytesToRead) +{ + ma_dr_wav* pWav = (ma_dr_wav*)pUserData; size_t bytesRemaining; - DRWAV_ASSERT(pWav != NULL); - DRWAV_ASSERT(pWav->memoryStream.dataSize >= pWav->memoryStream.currentReadPos); + MA_DR_WAV_ASSERT(pWav != NULL); + MA_DR_WAV_ASSERT(pWav->memoryStream.dataSize >= pWav->memoryStream.currentReadPos); bytesRemaining = pWav->memoryStream.dataSize - pWav->memoryStream.currentReadPos; if (bytesToRead > bytesRemaining) { bytesToRead = bytesRemaining; } if (bytesToRead > 0) { - DRWAV_COPY_MEMORY(pBufferOut, pWav->memoryStream.data + pWav->memoryStream.currentReadPos, bytesToRead); + MA_DR_WAV_COPY_MEMORY(pBufferOut, pWav->memoryStream.data + pWav->memoryStream.currentReadPos, bytesToRead); pWav->memoryStream.currentReadPos += bytesToRead; } return bytesToRead; } -DRWAV_PRIVATE drwav_bool32 drwav__on_seek_memory(void* pUserData, int offset, drwav_seek_origin origin) +MA_PRIVATE ma_bool32 ma_dr_wav__on_seek_memory(void* pUserData, int offset, ma_dr_wav_seek_origin origin) { - drwav* pWav = (drwav*)pUserData; - DRWAV_ASSERT(pWav != NULL); - if (origin == drwav_seek_origin_current) { + ma_dr_wav* pWav = (ma_dr_wav*)pUserData; + MA_DR_WAV_ASSERT(pWav != NULL); + if (origin == ma_dr_wav_seek_origin_current) { if (offset > 0) { if (pWav->memoryStream.currentReadPos + offset > pWav->memoryStream.dataSize) { - return DRWAV_FALSE; + return MA_FALSE; } } else { if (pWav->memoryStream.currentReadPos < (size_t)-offset) { - return DRWAV_FALSE; + return MA_FALSE; } } pWav->memoryStream.currentReadPos += offset; } else { - if ((drwav_uint32)offset <= pWav->memoryStream.dataSize) { + if ((ma_uint32)offset <= pWav->memoryStream.dataSize) { pWav->memoryStream.currentReadPos = offset; } else { - return DRWAV_FALSE; + return MA_FALSE; } } - return DRWAV_TRUE; + return MA_TRUE; } -DRWAV_PRIVATE size_t drwav__on_write_memory(void* pUserData, const void* pDataIn, size_t bytesToWrite) +MA_PRIVATE size_t ma_dr_wav__on_write_memory(void* pUserData, const void* pDataIn, size_t bytesToWrite) { - drwav* pWav = (drwav*)pUserData; + ma_dr_wav* pWav = (ma_dr_wav*)pUserData; size_t bytesRemaining; - DRWAV_ASSERT(pWav != NULL); - DRWAV_ASSERT(pWav->memoryStreamWrite.dataCapacity >= pWav->memoryStreamWrite.currentWritePos); + MA_DR_WAV_ASSERT(pWav != NULL); + MA_DR_WAV_ASSERT(pWav->memoryStreamWrite.dataCapacity >= pWav->memoryStreamWrite.currentWritePos); bytesRemaining = pWav->memoryStreamWrite.dataCapacity - pWav->memoryStreamWrite.currentWritePos; if (bytesRemaining < bytesToWrite) { void* pNewData; @@ -76736,14 +79836,14 @@ DRWAV_PRIVATE size_t drwav__on_write_memory(void* pUserData, const void* pDataIn if ((newDataCapacity - pWav->memoryStreamWrite.currentWritePos) < bytesToWrite) { newDataCapacity = pWav->memoryStreamWrite.currentWritePos + bytesToWrite; } - pNewData = drwav__realloc_from_callbacks(*pWav->memoryStreamWrite.ppData, newDataCapacity, pWav->memoryStreamWrite.dataCapacity, &pWav->allocationCallbacks); + pNewData = ma_dr_wav__realloc_from_callbacks(*pWav->memoryStreamWrite.ppData, newDataCapacity, pWav->memoryStreamWrite.dataCapacity, &pWav->allocationCallbacks); if (pNewData == NULL) { return 0; } *pWav->memoryStreamWrite.ppData = pNewData; pWav->memoryStreamWrite.dataCapacity = newDataCapacity; } - DRWAV_COPY_MEMORY(((drwav_uint8*)(*pWav->memoryStreamWrite.ppData)) + pWav->memoryStreamWrite.currentWritePos, pDataIn, bytesToWrite); + MA_DR_WAV_COPY_MEMORY(((ma_uint8*)(*pWav->memoryStreamWrite.ppData)) + pWav->memoryStreamWrite.currentWritePos, pDataIn, bytesToWrite); pWav->memoryStreamWrite.currentWritePos += bytesToWrite; if (pWav->memoryStreamWrite.dataSize < pWav->memoryStreamWrite.currentWritePos) { pWav->memoryStreamWrite.dataSize = pWav->memoryStreamWrite.currentWritePos; @@ -76751,11 +79851,11 @@ DRWAV_PRIVATE size_t drwav__on_write_memory(void* pUserData, const void* pDataIn *pWav->memoryStreamWrite.pDataSize = pWav->memoryStreamWrite.dataSize; return bytesToWrite; } -DRWAV_PRIVATE drwav_bool32 drwav__on_seek_memory_write(void* pUserData, int offset, drwav_seek_origin origin) +MA_PRIVATE ma_bool32 ma_dr_wav__on_seek_memory_write(void* pUserData, int offset, ma_dr_wav_seek_origin origin) { - drwav* pWav = (drwav*)pUserData; - DRWAV_ASSERT(pWav != NULL); - if (origin == drwav_seek_origin_current) { + ma_dr_wav* pWav = (ma_dr_wav*)pUserData; + MA_DR_WAV_ASSERT(pWav != NULL); + if (origin == ma_dr_wav_seek_origin_current) { if (offset > 0) { if (pWav->memoryStreamWrite.currentWritePos + offset > pWav->memoryStreamWrite.dataSize) { offset = (int)(pWav->memoryStreamWrite.dataSize - pWav->memoryStreamWrite.currentWritePos); @@ -76767,146 +79867,143 @@ DRWAV_PRIVATE drwav_bool32 drwav__on_seek_memory_write(void* pUserData, int offs } pWav->memoryStreamWrite.currentWritePos += offset; } else { - if ((drwav_uint32)offset <= pWav->memoryStreamWrite.dataSize) { + if ((ma_uint32)offset <= pWav->memoryStreamWrite.dataSize) { pWav->memoryStreamWrite.currentWritePos = offset; } else { pWav->memoryStreamWrite.currentWritePos = pWav->memoryStreamWrite.dataSize; } } - return DRWAV_TRUE; + return MA_TRUE; } -DRWAV_API drwav_bool32 drwav_init_memory(drwav* pWav, const void* data, size_t dataSize, const drwav_allocation_callbacks* pAllocationCallbacks) +MA_API ma_bool32 ma_dr_wav_init_memory(ma_dr_wav* pWav, const void* data, size_t dataSize, const ma_allocation_callbacks* pAllocationCallbacks) { - return drwav_init_memory_ex(pWav, data, dataSize, NULL, NULL, 0, pAllocationCallbacks); + return ma_dr_wav_init_memory_ex(pWav, data, dataSize, NULL, NULL, 0, pAllocationCallbacks); } -DRWAV_API drwav_bool32 drwav_init_memory_ex(drwav* pWav, const void* data, size_t dataSize, drwav_chunk_proc onChunk, void* pChunkUserData, drwav_uint32 flags, const drwav_allocation_callbacks* pAllocationCallbacks) +MA_API ma_bool32 ma_dr_wav_init_memory_ex(ma_dr_wav* pWav, const void* data, size_t dataSize, ma_dr_wav_chunk_proc onChunk, void* pChunkUserData, ma_uint32 flags, const ma_allocation_callbacks* pAllocationCallbacks) { if (data == NULL || dataSize == 0) { - return DRWAV_FALSE; + return MA_FALSE; } - if (!drwav_preinit(pWav, drwav__on_read_memory, drwav__on_seek_memory, pWav, pAllocationCallbacks)) { - return DRWAV_FALSE; + if (!ma_dr_wav_preinit(pWav, ma_dr_wav__on_read_memory, ma_dr_wav__on_seek_memory, pWav, pAllocationCallbacks)) { + return MA_FALSE; } - pWav->memoryStream.data = (const drwav_uint8*)data; + pWav->memoryStream.data = (const ma_uint8*)data; pWav->memoryStream.dataSize = dataSize; pWav->memoryStream.currentReadPos = 0; - return drwav_init__internal(pWav, onChunk, pChunkUserData, flags); + return ma_dr_wav_init__internal(pWav, onChunk, pChunkUserData, flags); } -DRWAV_API drwav_bool32 drwav_init_memory_with_metadata(drwav* pWav, const void* data, size_t dataSize, drwav_uint32 flags, const drwav_allocation_callbacks* pAllocationCallbacks) +MA_API ma_bool32 ma_dr_wav_init_memory_with_metadata(ma_dr_wav* pWav, const void* data, size_t dataSize, ma_uint32 flags, const ma_allocation_callbacks* pAllocationCallbacks) { if (data == NULL || dataSize == 0) { - return DRWAV_FALSE; + return MA_FALSE; } - if (!drwav_preinit(pWav, drwav__on_read_memory, drwav__on_seek_memory, pWav, pAllocationCallbacks)) { - return DRWAV_FALSE; + if (!ma_dr_wav_preinit(pWav, ma_dr_wav__on_read_memory, ma_dr_wav__on_seek_memory, pWav, pAllocationCallbacks)) { + return MA_FALSE; } - pWav->memoryStream.data = (const drwav_uint8*)data; + pWav->memoryStream.data = (const ma_uint8*)data; pWav->memoryStream.dataSize = dataSize; pWav->memoryStream.currentReadPos = 0; - pWav->allowedMetadataTypes = drwav_metadata_type_all_including_unknown; - return drwav_init__internal(pWav, NULL, NULL, flags); + return ma_dr_wav_init__internal(pWav, NULL, NULL, flags | MA_DR_WAV_WITH_METADATA); } -DRWAV_PRIVATE drwav_bool32 drwav_init_memory_write__internal(drwav* pWav, void** ppData, size_t* pDataSize, const drwav_data_format* pFormat, drwav_uint64 totalSampleCount, drwav_bool32 isSequential, const drwav_allocation_callbacks* pAllocationCallbacks) +MA_PRIVATE ma_bool32 ma_dr_wav_init_memory_write__internal(ma_dr_wav* pWav, void** ppData, size_t* pDataSize, const ma_dr_wav_data_format* pFormat, ma_uint64 totalSampleCount, ma_bool32 isSequential, const ma_allocation_callbacks* pAllocationCallbacks) { if (ppData == NULL || pDataSize == NULL) { - return DRWAV_FALSE; + return MA_FALSE; } *ppData = NULL; *pDataSize = 0; - if (!drwav_preinit_write(pWav, pFormat, isSequential, drwav__on_write_memory, drwav__on_seek_memory_write, pWav, pAllocationCallbacks)) { - return DRWAV_FALSE; + if (!ma_dr_wav_preinit_write(pWav, pFormat, isSequential, ma_dr_wav__on_write_memory, ma_dr_wav__on_seek_memory_write, pWav, pAllocationCallbacks)) { + return MA_FALSE; } pWav->memoryStreamWrite.ppData = ppData; pWav->memoryStreamWrite.pDataSize = pDataSize; pWav->memoryStreamWrite.dataSize = 0; pWav->memoryStreamWrite.dataCapacity = 0; pWav->memoryStreamWrite.currentWritePos = 0; - return drwav_init_write__internal(pWav, pFormat, totalSampleCount); + return ma_dr_wav_init_write__internal(pWav, pFormat, totalSampleCount); } -DRWAV_API drwav_bool32 drwav_init_memory_write(drwav* pWav, void** ppData, size_t* pDataSize, const drwav_data_format* pFormat, const drwav_allocation_callbacks* pAllocationCallbacks) +MA_API ma_bool32 ma_dr_wav_init_memory_write(ma_dr_wav* pWav, void** ppData, size_t* pDataSize, const ma_dr_wav_data_format* pFormat, const ma_allocation_callbacks* pAllocationCallbacks) { - return drwav_init_memory_write__internal(pWav, ppData, pDataSize, pFormat, 0, DRWAV_FALSE, pAllocationCallbacks); + return ma_dr_wav_init_memory_write__internal(pWav, ppData, pDataSize, pFormat, 0, MA_FALSE, pAllocationCallbacks); } -DRWAV_API drwav_bool32 drwav_init_memory_write_sequential(drwav* pWav, void** ppData, size_t* pDataSize, const drwav_data_format* pFormat, drwav_uint64 totalSampleCount, const drwav_allocation_callbacks* pAllocationCallbacks) +MA_API ma_bool32 ma_dr_wav_init_memory_write_sequential(ma_dr_wav* pWav, void** ppData, size_t* pDataSize, const ma_dr_wav_data_format* pFormat, ma_uint64 totalSampleCount, const ma_allocation_callbacks* pAllocationCallbacks) { - return drwav_init_memory_write__internal(pWav, ppData, pDataSize, pFormat, totalSampleCount, DRWAV_TRUE, pAllocationCallbacks); + return ma_dr_wav_init_memory_write__internal(pWav, ppData, pDataSize, pFormat, totalSampleCount, MA_TRUE, pAllocationCallbacks); } -DRWAV_API drwav_bool32 drwav_init_memory_write_sequential_pcm_frames(drwav* pWav, void** ppData, size_t* pDataSize, const drwav_data_format* pFormat, drwav_uint64 totalPCMFrameCount, const drwav_allocation_callbacks* pAllocationCallbacks) +MA_API ma_bool32 ma_dr_wav_init_memory_write_sequential_pcm_frames(ma_dr_wav* pWav, void** ppData, size_t* pDataSize, const ma_dr_wav_data_format* pFormat, ma_uint64 totalPCMFrameCount, const ma_allocation_callbacks* pAllocationCallbacks) { if (pFormat == NULL) { - return DRWAV_FALSE; + return MA_FALSE; } - return drwav_init_memory_write_sequential(pWav, ppData, pDataSize, pFormat, totalPCMFrameCount*pFormat->channels, pAllocationCallbacks); + return ma_dr_wav_init_memory_write_sequential(pWav, ppData, pDataSize, pFormat, totalPCMFrameCount*pFormat->channels, pAllocationCallbacks); } -DRWAV_API drwav_result drwav_uninit(drwav* pWav) +MA_API ma_result ma_dr_wav_uninit(ma_dr_wav* pWav) { - drwav_result result = DRWAV_SUCCESS; + ma_result result = MA_SUCCESS; if (pWav == NULL) { - return DRWAV_INVALID_ARGS; + return MA_INVALID_ARGS; } if (pWav->onWrite != NULL) { - drwav_uint32 paddingSize = 0; - if (pWav->container == drwav_container_riff || pWav->container == drwav_container_rf64) { - paddingSize = drwav__chunk_padding_size_riff(pWav->dataChunkDataSize); + ma_uint32 paddingSize = 0; + if (pWav->container == ma_dr_wav_container_riff || pWav->container == ma_dr_wav_container_rf64) { + paddingSize = ma_dr_wav__chunk_padding_size_riff(pWav->dataChunkDataSize); } else { - paddingSize = drwav__chunk_padding_size_w64(pWav->dataChunkDataSize); + paddingSize = ma_dr_wav__chunk_padding_size_w64(pWav->dataChunkDataSize); } if (paddingSize > 0) { - drwav_uint64 paddingData = 0; - drwav__write(pWav, &paddingData, paddingSize); + ma_uint64 paddingData = 0; + ma_dr_wav__write(pWav, &paddingData, paddingSize); } if (pWav->onSeek && !pWav->isSequentialWrite) { - if (pWav->container == drwav_container_riff) { - if (pWav->onSeek(pWav->pUserData, 4, drwav_seek_origin_start)) { - drwav_uint32 riffChunkSize = drwav__riff_chunk_size_riff(pWav->dataChunkDataSize, pWav->pMetadata, pWav->metadataCount); - drwav__write_u32ne_to_le(pWav, riffChunkSize); + if (pWav->container == ma_dr_wav_container_riff) { + if (pWav->onSeek(pWav->pUserData, 4, ma_dr_wav_seek_origin_start)) { + ma_uint32 riffChunkSize = ma_dr_wav__riff_chunk_size_riff(pWav->dataChunkDataSize, pWav->pMetadata, pWav->metadataCount); + ma_dr_wav__write_u32ne_to_le(pWav, riffChunkSize); } - if (pWav->onSeek(pWav->pUserData, (int)pWav->dataChunkDataPos - 4, drwav_seek_origin_start)) { - drwav_uint32 dataChunkSize = drwav__data_chunk_size_riff(pWav->dataChunkDataSize); - drwav__write_u32ne_to_le(pWav, dataChunkSize); + if (pWav->onSeek(pWav->pUserData, (int)pWav->dataChunkDataPos - 4, ma_dr_wav_seek_origin_start)) { + ma_uint32 dataChunkSize = ma_dr_wav__data_chunk_size_riff(pWav->dataChunkDataSize); + ma_dr_wav__write_u32ne_to_le(pWav, dataChunkSize); } - } else if (pWav->container == drwav_container_w64) { - if (pWav->onSeek(pWav->pUserData, 16, drwav_seek_origin_start)) { - drwav_uint64 riffChunkSize = drwav__riff_chunk_size_w64(pWav->dataChunkDataSize); - drwav__write_u64ne_to_le(pWav, riffChunkSize); + } else if (pWav->container == ma_dr_wav_container_w64) { + if (pWav->onSeek(pWav->pUserData, 16, ma_dr_wav_seek_origin_start)) { + ma_uint64 riffChunkSize = ma_dr_wav__riff_chunk_size_w64(pWav->dataChunkDataSize); + ma_dr_wav__write_u64ne_to_le(pWav, riffChunkSize); } - if (pWav->onSeek(pWav->pUserData, (int)pWav->dataChunkDataPos - 8, drwav_seek_origin_start)) { - drwav_uint64 dataChunkSize = drwav__data_chunk_size_w64(pWav->dataChunkDataSize); - drwav__write_u64ne_to_le(pWav, dataChunkSize); + if (pWav->onSeek(pWav->pUserData, (int)pWav->dataChunkDataPos - 8, ma_dr_wav_seek_origin_start)) { + ma_uint64 dataChunkSize = ma_dr_wav__data_chunk_size_w64(pWav->dataChunkDataSize); + ma_dr_wav__write_u64ne_to_le(pWav, dataChunkSize); } - } else if (pWav->container == drwav_container_rf64) { + } else if (pWav->container == ma_dr_wav_container_rf64) { int ds64BodyPos = 12 + 8; - if (pWav->onSeek(pWav->pUserData, ds64BodyPos + 0, drwav_seek_origin_start)) { - drwav_uint64 riffChunkSize = drwav__riff_chunk_size_rf64(pWav->dataChunkDataSize, pWav->pMetadata, pWav->metadataCount); - drwav__write_u64ne_to_le(pWav, riffChunkSize); + if (pWav->onSeek(pWav->pUserData, ds64BodyPos + 0, ma_dr_wav_seek_origin_start)) { + ma_uint64 riffChunkSize = ma_dr_wav__riff_chunk_size_rf64(pWav->dataChunkDataSize, pWav->pMetadata, pWav->metadataCount); + ma_dr_wav__write_u64ne_to_le(pWav, riffChunkSize); } - if (pWav->onSeek(pWav->pUserData, ds64BodyPos + 8, drwav_seek_origin_start)) { - drwav_uint64 dataChunkSize = drwav__data_chunk_size_rf64(pWav->dataChunkDataSize); - drwav__write_u64ne_to_le(pWav, dataChunkSize); + if (pWav->onSeek(pWav->pUserData, ds64BodyPos + 8, ma_dr_wav_seek_origin_start)) { + ma_uint64 dataChunkSize = ma_dr_wav__data_chunk_size_rf64(pWav->dataChunkDataSize); + ma_dr_wav__write_u64ne_to_le(pWav, dataChunkSize); } } } if (pWav->isSequentialWrite) { if (pWav->dataChunkDataSize != pWav->dataChunkDataSizeTargetWrite) { - result = DRWAV_INVALID_FILE; + result = MA_INVALID_FILE; } } } else { - if (pWav->pMetadata != NULL) { - pWav->allocationCallbacks.onFree(pWav->pMetadata, pWav->allocationCallbacks.pUserData); - } + ma_dr_wav_free(pWav->pMetadata, &pWav->allocationCallbacks); } -#ifndef DR_WAV_NO_STDIO - if (pWav->onRead == drwav__on_read_stdio || pWav->onWrite == drwav__on_write_stdio) { +#ifndef MA_DR_WAV_NO_STDIO + if (pWav->onRead == ma_dr_wav__on_read_stdio || pWav->onWrite == ma_dr_wav__on_write_stdio) { fclose((FILE*)pWav->pUserData); } #endif return result; } -DRWAV_API size_t drwav_read_raw(drwav* pWav, size_t bytesToRead, void* pBufferOut) +MA_API size_t ma_dr_wav_read_raw(ma_dr_wav* pWav, size_t bytesToRead, void* pBufferOut) { size_t bytesRead; - drwav_uint32 bytesPerFrame; + ma_uint32 bytesPerFrame; if (pWav == NULL || bytesToRead == 0) { return 0; } @@ -76916,7 +80013,7 @@ DRWAV_API size_t drwav_read_raw(drwav* pWav, size_t bytesToRead, void* pBufferOu if (bytesToRead == 0) { return 0; } - bytesPerFrame = drwav_get_bytes_per_pcm_frame(pWav); + bytesPerFrame = ma_dr_wav_get_bytes_per_pcm_frame(pWav); if (bytesPerFrame == 0) { return 0; } @@ -76929,13 +80026,13 @@ DRWAV_API size_t drwav_read_raw(drwav* pWav, size_t bytesToRead, void* pBufferOu if (bytesToSeek > 0x7FFFFFFF) { bytesToSeek = 0x7FFFFFFF; } - if (pWav->onSeek(pWav->pUserData, (int)bytesToSeek, drwav_seek_origin_current) == DRWAV_FALSE) { + if (pWav->onSeek(pWav->pUserData, (int)bytesToSeek, ma_dr_wav_seek_origin_current) == MA_FALSE) { break; } bytesRead += bytesToSeek; } while (bytesRead < bytesToRead) { - drwav_uint8 buffer[4096]; + ma_uint8 buffer[4096]; size_t bytesSeeked; size_t bytesToSeek = (bytesToRead - bytesRead); if (bytesToSeek > sizeof(buffer)) { @@ -76952,171 +80049,198 @@ DRWAV_API size_t drwav_read_raw(drwav* pWav, size_t bytesToRead, void* pBufferOu pWav->bytesRemaining -= bytesRead; return bytesRead; } -DRWAV_API drwav_uint64 drwav_read_pcm_frames_le(drwav* pWav, drwav_uint64 framesToRead, void* pBufferOut) +MA_API ma_uint64 ma_dr_wav_read_pcm_frames_le(ma_dr_wav* pWav, ma_uint64 framesToRead, void* pBufferOut) { - drwav_uint32 bytesPerFrame; - drwav_uint64 bytesToRead; + ma_uint32 bytesPerFrame; + ma_uint64 bytesToRead; + ma_uint64 framesRemainingInFile; if (pWav == NULL || framesToRead == 0) { return 0; } - if (drwav__is_compressed_format_tag(pWav->translatedFormatTag)) { + if (ma_dr_wav__is_compressed_format_tag(pWav->translatedFormatTag)) { return 0; } - bytesPerFrame = drwav_get_bytes_per_pcm_frame(pWav); + framesRemainingInFile = pWav->totalPCMFrameCount - pWav->readCursorInPCMFrames; + if (framesToRead > framesRemainingInFile) { + framesToRead = framesRemainingInFile; + } + bytesPerFrame = ma_dr_wav_get_bytes_per_pcm_frame(pWav); if (bytesPerFrame == 0) { return 0; } bytesToRead = framesToRead * bytesPerFrame; - if (bytesToRead > DRWAV_SIZE_MAX) { - bytesToRead = (DRWAV_SIZE_MAX / bytesPerFrame) * bytesPerFrame; + if (bytesToRead > MA_SIZE_MAX) { + bytesToRead = (MA_SIZE_MAX / bytesPerFrame) * bytesPerFrame; } if (bytesToRead == 0) { return 0; } - return drwav_read_raw(pWav, (size_t)bytesToRead, pBufferOut) / bytesPerFrame; + return ma_dr_wav_read_raw(pWav, (size_t)bytesToRead, pBufferOut) / bytesPerFrame; } -DRWAV_API drwav_uint64 drwav_read_pcm_frames_be(drwav* pWav, drwav_uint64 framesToRead, void* pBufferOut) +MA_API ma_uint64 ma_dr_wav_read_pcm_frames_be(ma_dr_wav* pWav, ma_uint64 framesToRead, void* pBufferOut) { - drwav_uint64 framesRead = drwav_read_pcm_frames_le(pWav, framesToRead, pBufferOut); + ma_uint64 framesRead = ma_dr_wav_read_pcm_frames_le(pWav, framesToRead, pBufferOut); if (pBufferOut != NULL) { - drwav_uint32 bytesPerFrame = drwav_get_bytes_per_pcm_frame(pWav); + ma_uint32 bytesPerFrame = ma_dr_wav_get_bytes_per_pcm_frame(pWav); if (bytesPerFrame == 0) { return 0; } - drwav__bswap_samples(pBufferOut, framesRead*pWav->channels, bytesPerFrame/pWav->channels, pWav->translatedFormatTag); + ma_dr_wav__bswap_samples(pBufferOut, framesRead*pWav->channels, bytesPerFrame/pWav->channels); } return framesRead; } -DRWAV_API drwav_uint64 drwav_read_pcm_frames(drwav* pWav, drwav_uint64 framesToRead, void* pBufferOut) +MA_API ma_uint64 ma_dr_wav_read_pcm_frames(ma_dr_wav* pWav, ma_uint64 framesToRead, void* pBufferOut) { - if (drwav__is_little_endian()) { - return drwav_read_pcm_frames_le(pWav, framesToRead, pBufferOut); - } else { - return drwav_read_pcm_frames_be(pWav, framesToRead, pBufferOut); + ma_uint64 framesRead = 0; + if (ma_dr_wav_is_container_be(pWav->container)) { + if (pWav->container != ma_dr_wav_container_aiff || pWav->aiff.isLE == MA_FALSE) { + if (ma_dr_wav__is_little_endian()) { + framesRead = ma_dr_wav_read_pcm_frames_be(pWav, framesToRead, pBufferOut); + } else { + framesRead = ma_dr_wav_read_pcm_frames_le(pWav, framesToRead, pBufferOut); + } + goto post_process; + } } + if (ma_dr_wav__is_little_endian()) { + framesRead = ma_dr_wav_read_pcm_frames_le(pWav, framesToRead, pBufferOut); + } else { + framesRead = ma_dr_wav_read_pcm_frames_be(pWav, framesToRead, pBufferOut); + } + post_process: + { + if (pWav->container == ma_dr_wav_container_aiff && pWav->bitsPerSample == 8 && pWav->aiff.isUnsigned == MA_FALSE) { + if (pBufferOut != NULL) { + ma_uint64 iSample; + for (iSample = 0; iSample < framesRead * pWav->channels; iSample += 1) { + ((ma_uint8*)pBufferOut)[iSample] += 128; + } + } + } + } + return framesRead; } -DRWAV_PRIVATE drwav_bool32 drwav_seek_to_first_pcm_frame(drwav* pWav) +MA_PRIVATE ma_bool32 ma_dr_wav_seek_to_first_pcm_frame(ma_dr_wav* pWav) { if (pWav->onWrite != NULL) { - return DRWAV_FALSE; + return MA_FALSE; } - if (!pWav->onSeek(pWav->pUserData, (int)pWav->dataChunkDataPos, drwav_seek_origin_start)) { - return DRWAV_FALSE; + if (!pWav->onSeek(pWav->pUserData, (int)pWav->dataChunkDataPos, ma_dr_wav_seek_origin_start)) { + return MA_FALSE; } - if (drwav__is_compressed_format_tag(pWav->translatedFormatTag)) { - if (pWav->translatedFormatTag == DR_WAVE_FORMAT_ADPCM) { - DRWAV_ZERO_OBJECT(&pWav->msadpcm); - } else if (pWav->translatedFormatTag == DR_WAVE_FORMAT_DVI_ADPCM) { - DRWAV_ZERO_OBJECT(&pWav->ima); + if (ma_dr_wav__is_compressed_format_tag(pWav->translatedFormatTag)) { + if (pWav->translatedFormatTag == MA_DR_WAVE_FORMAT_ADPCM) { + MA_DR_WAV_ZERO_OBJECT(&pWav->msadpcm); + } else if (pWav->translatedFormatTag == MA_DR_WAVE_FORMAT_DVI_ADPCM) { + MA_DR_WAV_ZERO_OBJECT(&pWav->ima); } else { - DRWAV_ASSERT(DRWAV_FALSE); + MA_DR_WAV_ASSERT(MA_FALSE); } } pWav->readCursorInPCMFrames = 0; pWav->bytesRemaining = pWav->dataChunkDataSize; - return DRWAV_TRUE; + return MA_TRUE; } -DRWAV_API drwav_bool32 drwav_seek_to_pcm_frame(drwav* pWav, drwav_uint64 targetFrameIndex) +MA_API ma_bool32 ma_dr_wav_seek_to_pcm_frame(ma_dr_wav* pWav, ma_uint64 targetFrameIndex) { if (pWav == NULL || pWav->onSeek == NULL) { - return DRWAV_FALSE; + return MA_FALSE; } if (pWav->onWrite != NULL) { - return DRWAV_FALSE; + return MA_FALSE; } if (pWav->totalPCMFrameCount == 0) { - return DRWAV_TRUE; + return MA_TRUE; } if (targetFrameIndex > pWav->totalPCMFrameCount) { targetFrameIndex = pWav->totalPCMFrameCount; } - if (drwav__is_compressed_format_tag(pWav->translatedFormatTag)) { + if (ma_dr_wav__is_compressed_format_tag(pWav->translatedFormatTag)) { if (targetFrameIndex < pWav->readCursorInPCMFrames) { - if (!drwav_seek_to_first_pcm_frame(pWav)) { - return DRWAV_FALSE; + if (!ma_dr_wav_seek_to_first_pcm_frame(pWav)) { + return MA_FALSE; } } if (targetFrameIndex > pWav->readCursorInPCMFrames) { - drwav_uint64 offsetInFrames = targetFrameIndex - pWav->readCursorInPCMFrames; - drwav_int16 devnull[2048]; + ma_uint64 offsetInFrames = targetFrameIndex - pWav->readCursorInPCMFrames; + ma_int16 devnull[2048]; while (offsetInFrames > 0) { - drwav_uint64 framesRead = 0; - drwav_uint64 framesToRead = offsetInFrames; - if (framesToRead > drwav_countof(devnull)/pWav->channels) { - framesToRead = drwav_countof(devnull)/pWav->channels; + ma_uint64 framesRead = 0; + ma_uint64 framesToRead = offsetInFrames; + if (framesToRead > ma_dr_wav_countof(devnull)/pWav->channels) { + framesToRead = ma_dr_wav_countof(devnull)/pWav->channels; } - if (pWav->translatedFormatTag == DR_WAVE_FORMAT_ADPCM) { - framesRead = drwav_read_pcm_frames_s16__msadpcm(pWav, framesToRead, devnull); - } else if (pWav->translatedFormatTag == DR_WAVE_FORMAT_DVI_ADPCM) { - framesRead = drwav_read_pcm_frames_s16__ima(pWav, framesToRead, devnull); + if (pWav->translatedFormatTag == MA_DR_WAVE_FORMAT_ADPCM) { + framesRead = ma_dr_wav_read_pcm_frames_s16__msadpcm(pWav, framesToRead, devnull); + } else if (pWav->translatedFormatTag == MA_DR_WAVE_FORMAT_DVI_ADPCM) { + framesRead = ma_dr_wav_read_pcm_frames_s16__ima(pWav, framesToRead, devnull); } else { - DRWAV_ASSERT(DRWAV_FALSE); + MA_DR_WAV_ASSERT(MA_FALSE); } if (framesRead != framesToRead) { - return DRWAV_FALSE; + return MA_FALSE; } offsetInFrames -= framesRead; } } } else { - drwav_uint64 totalSizeInBytes; - drwav_uint64 currentBytePos; - drwav_uint64 targetBytePos; - drwav_uint64 offset; - drwav_uint32 bytesPerFrame; - bytesPerFrame = drwav_get_bytes_per_pcm_frame(pWav); + ma_uint64 totalSizeInBytes; + ma_uint64 currentBytePos; + ma_uint64 targetBytePos; + ma_uint64 offset; + ma_uint32 bytesPerFrame; + bytesPerFrame = ma_dr_wav_get_bytes_per_pcm_frame(pWav); if (bytesPerFrame == 0) { - return DRWAV_FALSE; + return MA_FALSE; } totalSizeInBytes = pWav->totalPCMFrameCount * bytesPerFrame; - DRWAV_ASSERT(totalSizeInBytes >= pWav->bytesRemaining); currentBytePos = totalSizeInBytes - pWav->bytesRemaining; targetBytePos = targetFrameIndex * bytesPerFrame; if (currentBytePos < targetBytePos) { offset = (targetBytePos - currentBytePos); } else { - if (!drwav_seek_to_first_pcm_frame(pWav)) { - return DRWAV_FALSE; + if (!ma_dr_wav_seek_to_first_pcm_frame(pWav)) { + return MA_FALSE; } offset = targetBytePos; } while (offset > 0) { int offset32 = ((offset > INT_MAX) ? INT_MAX : (int)offset); - if (!pWav->onSeek(pWav->pUserData, offset32, drwav_seek_origin_current)) { - return DRWAV_FALSE; + if (!pWav->onSeek(pWav->pUserData, offset32, ma_dr_wav_seek_origin_current)) { + return MA_FALSE; } pWav->readCursorInPCMFrames += offset32 / bytesPerFrame; pWav->bytesRemaining -= offset32; offset -= offset32; } } - return DRWAV_TRUE; + return MA_TRUE; } -DRWAV_API drwav_result drwav_get_cursor_in_pcm_frames(drwav* pWav, drwav_uint64* pCursor) +MA_API ma_result ma_dr_wav_get_cursor_in_pcm_frames(ma_dr_wav* pWav, ma_uint64* pCursor) { if (pCursor == NULL) { - return DRWAV_INVALID_ARGS; + return MA_INVALID_ARGS; } *pCursor = 0; if (pWav == NULL) { - return DRWAV_INVALID_ARGS; + return MA_INVALID_ARGS; } *pCursor = pWav->readCursorInPCMFrames; - return DRWAV_SUCCESS; + return MA_SUCCESS; } -DRWAV_API drwav_result drwav_get_length_in_pcm_frames(drwav* pWav, drwav_uint64* pLength) +MA_API ma_result ma_dr_wav_get_length_in_pcm_frames(ma_dr_wav* pWav, ma_uint64* pLength) { if (pLength == NULL) { - return DRWAV_INVALID_ARGS; + return MA_INVALID_ARGS; } *pLength = 0; if (pWav == NULL) { - return DRWAV_INVALID_ARGS; + return MA_INVALID_ARGS; } *pLength = pWav->totalPCMFrameCount; - return DRWAV_SUCCESS; + return MA_SUCCESS; } -DRWAV_API size_t drwav_write_raw(drwav* pWav, size_t bytesToWrite, const void* pData) +MA_API size_t ma_dr_wav_write_raw(ma_dr_wav* pWav, size_t bytesToWrite, const void* pData) { size_t bytesWritten; if (pWav == NULL || bytesToWrite == 0 || pData == NULL) { @@ -77126,26 +80250,26 @@ DRWAV_API size_t drwav_write_raw(drwav* pWav, size_t bytesToWrite, const void* p pWav->dataChunkDataSize += bytesWritten; return bytesWritten; } -DRWAV_API drwav_uint64 drwav_write_pcm_frames_le(drwav* pWav, drwav_uint64 framesToWrite, const void* pData) +MA_API ma_uint64 ma_dr_wav_write_pcm_frames_le(ma_dr_wav* pWav, ma_uint64 framesToWrite, const void* pData) { - drwav_uint64 bytesToWrite; - drwav_uint64 bytesWritten; - const drwav_uint8* pRunningData; + ma_uint64 bytesToWrite; + ma_uint64 bytesWritten; + const ma_uint8* pRunningData; if (pWav == NULL || framesToWrite == 0 || pData == NULL) { return 0; } bytesToWrite = ((framesToWrite * pWav->channels * pWav->bitsPerSample) / 8); - if (bytesToWrite > DRWAV_SIZE_MAX) { + if (bytesToWrite > MA_SIZE_MAX) { return 0; } bytesWritten = 0; - pRunningData = (const drwav_uint8*)pData; + pRunningData = (const ma_uint8*)pData; while (bytesToWrite > 0) { size_t bytesJustWritten; - drwav_uint64 bytesToWriteThisIteration; + ma_uint64 bytesToWriteThisIteration; bytesToWriteThisIteration = bytesToWrite; - DRWAV_ASSERT(bytesToWriteThisIteration <= DRWAV_SIZE_MAX); - bytesJustWritten = drwav_write_raw(pWav, (size_t)bytesToWriteThisIteration, pRunningData); + MA_DR_WAV_ASSERT(bytesToWriteThisIteration <= MA_SIZE_MAX); + bytesJustWritten = ma_dr_wav_write_raw(pWav, (size_t)bytesToWriteThisIteration, pRunningData); if (bytesJustWritten == 0) { break; } @@ -77155,39 +80279,39 @@ DRWAV_API drwav_uint64 drwav_write_pcm_frames_le(drwav* pWav, drwav_uint64 frame } return (bytesWritten * 8) / pWav->bitsPerSample / pWav->channels; } -DRWAV_API drwav_uint64 drwav_write_pcm_frames_be(drwav* pWav, drwav_uint64 framesToWrite, const void* pData) +MA_API ma_uint64 ma_dr_wav_write_pcm_frames_be(ma_dr_wav* pWav, ma_uint64 framesToWrite, const void* pData) { - drwav_uint64 bytesToWrite; - drwav_uint64 bytesWritten; - drwav_uint32 bytesPerSample; - const drwav_uint8* pRunningData; + ma_uint64 bytesToWrite; + ma_uint64 bytesWritten; + ma_uint32 bytesPerSample; + const ma_uint8* pRunningData; if (pWav == NULL || framesToWrite == 0 || pData == NULL) { return 0; } bytesToWrite = ((framesToWrite * pWav->channels * pWav->bitsPerSample) / 8); - if (bytesToWrite > DRWAV_SIZE_MAX) { + if (bytesToWrite > MA_SIZE_MAX) { return 0; } bytesWritten = 0; - pRunningData = (const drwav_uint8*)pData; - bytesPerSample = drwav_get_bytes_per_pcm_frame(pWav) / pWav->channels; + pRunningData = (const ma_uint8*)pData; + bytesPerSample = ma_dr_wav_get_bytes_per_pcm_frame(pWav) / pWav->channels; if (bytesPerSample == 0) { return 0; } while (bytesToWrite > 0) { - drwav_uint8 temp[4096]; - drwav_uint32 sampleCount; + ma_uint8 temp[4096]; + ma_uint32 sampleCount; size_t bytesJustWritten; - drwav_uint64 bytesToWriteThisIteration; + ma_uint64 bytesToWriteThisIteration; bytesToWriteThisIteration = bytesToWrite; - DRWAV_ASSERT(bytesToWriteThisIteration <= DRWAV_SIZE_MAX); + MA_DR_WAV_ASSERT(bytesToWriteThisIteration <= MA_SIZE_MAX); sampleCount = sizeof(temp)/bytesPerSample; - if (bytesToWriteThisIteration > ((drwav_uint64)sampleCount)*bytesPerSample) { - bytesToWriteThisIteration = ((drwav_uint64)sampleCount)*bytesPerSample; + if (bytesToWriteThisIteration > ((ma_uint64)sampleCount)*bytesPerSample) { + bytesToWriteThisIteration = ((ma_uint64)sampleCount)*bytesPerSample; } - DRWAV_COPY_MEMORY(temp, pRunningData, (size_t)bytesToWriteThisIteration); - drwav__bswap_samples(temp, sampleCount, bytesPerSample, pWav->translatedFormatTag); - bytesJustWritten = drwav_write_raw(pWav, (size_t)bytesToWriteThisIteration, temp); + MA_DR_WAV_COPY_MEMORY(temp, pRunningData, (size_t)bytesToWriteThisIteration); + ma_dr_wav__bswap_samples(temp, sampleCount, bytesPerSample); + bytesJustWritten = ma_dr_wav_write_raw(pWav, (size_t)bytesToWriteThisIteration, temp); if (bytesJustWritten == 0) { break; } @@ -77197,49 +80321,49 @@ DRWAV_API drwav_uint64 drwav_write_pcm_frames_be(drwav* pWav, drwav_uint64 frame } return (bytesWritten * 8) / pWav->bitsPerSample / pWav->channels; } -DRWAV_API drwav_uint64 drwav_write_pcm_frames(drwav* pWav, drwav_uint64 framesToWrite, const void* pData) +MA_API ma_uint64 ma_dr_wav_write_pcm_frames(ma_dr_wav* pWav, ma_uint64 framesToWrite, const void* pData) { - if (drwav__is_little_endian()) { - return drwav_write_pcm_frames_le(pWav, framesToWrite, pData); + if (ma_dr_wav__is_little_endian()) { + return ma_dr_wav_write_pcm_frames_le(pWav, framesToWrite, pData); } else { - return drwav_write_pcm_frames_be(pWav, framesToWrite, pData); + return ma_dr_wav_write_pcm_frames_be(pWav, framesToWrite, pData); } } -DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_s16__msadpcm(drwav* pWav, drwav_uint64 framesToRead, drwav_int16* pBufferOut) +MA_PRIVATE ma_uint64 ma_dr_wav_read_pcm_frames_s16__msadpcm(ma_dr_wav* pWav, ma_uint64 framesToRead, ma_int16* pBufferOut) { - drwav_uint64 totalFramesRead = 0; - DRWAV_ASSERT(pWav != NULL); - DRWAV_ASSERT(framesToRead > 0); + ma_uint64 totalFramesRead = 0; + MA_DR_WAV_ASSERT(pWav != NULL); + MA_DR_WAV_ASSERT(framesToRead > 0); while (pWav->readCursorInPCMFrames < pWav->totalPCMFrameCount) { - DRWAV_ASSERT(framesToRead > 0); + MA_DR_WAV_ASSERT(framesToRead > 0); if (pWav->msadpcm.cachedFrameCount == 0 && pWav->msadpcm.bytesRemainingInBlock == 0) { if (pWav->channels == 1) { - drwav_uint8 header[7]; + ma_uint8 header[7]; if (pWav->onRead(pWav->pUserData, header, sizeof(header)) != sizeof(header)) { return totalFramesRead; } pWav->msadpcm.bytesRemainingInBlock = pWav->fmt.blockAlign - sizeof(header); pWav->msadpcm.predictor[0] = header[0]; - pWav->msadpcm.delta[0] = drwav_bytes_to_s16(header + 1); - pWav->msadpcm.prevFrames[0][1] = (drwav_int32)drwav_bytes_to_s16(header + 3); - pWav->msadpcm.prevFrames[0][0] = (drwav_int32)drwav_bytes_to_s16(header + 5); + pWav->msadpcm.delta[0] = ma_dr_wav_bytes_to_s16(header + 1); + pWav->msadpcm.prevFrames[0][1] = (ma_int32)ma_dr_wav_bytes_to_s16(header + 3); + pWav->msadpcm.prevFrames[0][0] = (ma_int32)ma_dr_wav_bytes_to_s16(header + 5); pWav->msadpcm.cachedFrames[2] = pWav->msadpcm.prevFrames[0][0]; pWav->msadpcm.cachedFrames[3] = pWav->msadpcm.prevFrames[0][1]; pWav->msadpcm.cachedFrameCount = 2; } else { - drwav_uint8 header[14]; + ma_uint8 header[14]; if (pWav->onRead(pWav->pUserData, header, sizeof(header)) != sizeof(header)) { return totalFramesRead; } pWav->msadpcm.bytesRemainingInBlock = pWav->fmt.blockAlign - sizeof(header); pWav->msadpcm.predictor[0] = header[0]; pWav->msadpcm.predictor[1] = header[1]; - pWav->msadpcm.delta[0] = drwav_bytes_to_s16(header + 2); - pWav->msadpcm.delta[1] = drwav_bytes_to_s16(header + 4); - pWav->msadpcm.prevFrames[0][1] = (drwav_int32)drwav_bytes_to_s16(header + 6); - pWav->msadpcm.prevFrames[1][1] = (drwav_int32)drwav_bytes_to_s16(header + 8); - pWav->msadpcm.prevFrames[0][0] = (drwav_int32)drwav_bytes_to_s16(header + 10); - pWav->msadpcm.prevFrames[1][0] = (drwav_int32)drwav_bytes_to_s16(header + 12); + pWav->msadpcm.delta[0] = ma_dr_wav_bytes_to_s16(header + 2); + pWav->msadpcm.delta[1] = ma_dr_wav_bytes_to_s16(header + 4); + pWav->msadpcm.prevFrames[0][1] = (ma_int32)ma_dr_wav_bytes_to_s16(header + 6); + pWav->msadpcm.prevFrames[1][1] = (ma_int32)ma_dr_wav_bytes_to_s16(header + 8); + pWav->msadpcm.prevFrames[0][0] = (ma_int32)ma_dr_wav_bytes_to_s16(header + 10); + pWav->msadpcm.prevFrames[1][0] = (ma_int32)ma_dr_wav_bytes_to_s16(header + 12); pWav->msadpcm.cachedFrames[0] = pWav->msadpcm.prevFrames[0][0]; pWav->msadpcm.cachedFrames[1] = pWav->msadpcm.prevFrames[1][0]; pWav->msadpcm.cachedFrames[2] = pWav->msadpcm.prevFrames[0][1]; @@ -77249,9 +80373,9 @@ DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_s16__msadpcm(drwav* pWav, drwav } while (framesToRead > 0 && pWav->msadpcm.cachedFrameCount > 0 && pWav->readCursorInPCMFrames < pWav->totalPCMFrameCount) { if (pBufferOut != NULL) { - drwav_uint32 iSample = 0; + ma_uint32 iSample = 0; for (iSample = 0; iSample < pWav->channels; iSample += 1) { - pBufferOut[iSample] = (drwav_int16)pWav->msadpcm.cachedFrames[(drwav_countof(pWav->msadpcm.cachedFrames) - (pWav->msadpcm.cachedFrameCount*pWav->channels)) + iSample]; + pBufferOut[iSample] = (ma_int16)pWav->msadpcm.cachedFrames[(ma_dr_wav_countof(pWav->msadpcm.cachedFrames) - (pWav->msadpcm.cachedFrameCount*pWav->channels)) + iSample]; } pBufferOut += pWav->channels; } @@ -77267,15 +80391,15 @@ DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_s16__msadpcm(drwav* pWav, drwav if (pWav->msadpcm.bytesRemainingInBlock == 0) { continue; } else { - static drwav_int32 adaptationTable[] = { + static ma_int32 adaptationTable[] = { 230, 230, 230, 230, 307, 409, 512, 614, 768, 614, 512, 409, 307, 230, 230, 230 }; - static drwav_int32 coeff1Table[] = { 256, 512, 0, 192, 240, 460, 392 }; - static drwav_int32 coeff2Table[] = { 0, -256, 0, 64, 0, -208, -232 }; - drwav_uint8 nibbles; - drwav_int32 nibble0; - drwav_int32 nibble1; + static ma_int32 coeff1Table[] = { 256, 512, 0, 192, 240, 460, 392 }; + static ma_int32 coeff2Table[] = { 0, -256, 0, 64, 0, -208, -232 }; + ma_uint8 nibbles; + ma_int32 nibble0; + ma_int32 nibble1; if (pWav->onRead(pWav->pUserData, &nibbles, 1) != 1) { return totalFramesRead; } @@ -77283,11 +80407,11 @@ DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_s16__msadpcm(drwav* pWav, drwav nibble0 = ((nibbles & 0xF0) >> 4); if ((nibbles & 0x80)) { nibble0 |= 0xFFFFFFF0UL; } nibble1 = ((nibbles & 0x0F) >> 0); if ((nibbles & 0x08)) { nibble1 |= 0xFFFFFFF0UL; } if (pWav->channels == 1) { - drwav_int32 newSample0; - drwav_int32 newSample1; + ma_int32 newSample0; + ma_int32 newSample1; newSample0 = ((pWav->msadpcm.prevFrames[0][1] * coeff1Table[pWav->msadpcm.predictor[0]]) + (pWav->msadpcm.prevFrames[0][0] * coeff2Table[pWav->msadpcm.predictor[0]])) >> 8; newSample0 += nibble0 * pWav->msadpcm.delta[0]; - newSample0 = drwav_clamp(newSample0, -32768, 32767); + newSample0 = ma_dr_wav_clamp(newSample0, -32768, 32767); pWav->msadpcm.delta[0] = (adaptationTable[((nibbles & 0xF0) >> 4)] * pWav->msadpcm.delta[0]) >> 8; if (pWav->msadpcm.delta[0] < 16) { pWav->msadpcm.delta[0] = 16; @@ -77296,7 +80420,7 @@ DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_s16__msadpcm(drwav* pWav, drwav pWav->msadpcm.prevFrames[0][1] = newSample0; newSample1 = ((pWav->msadpcm.prevFrames[0][1] * coeff1Table[pWav->msadpcm.predictor[0]]) + (pWav->msadpcm.prevFrames[0][0] * coeff2Table[pWav->msadpcm.predictor[0]])) >> 8; newSample1 += nibble1 * pWav->msadpcm.delta[0]; - newSample1 = drwav_clamp(newSample1, -32768, 32767); + newSample1 = ma_dr_wav_clamp(newSample1, -32768, 32767); pWav->msadpcm.delta[0] = (adaptationTable[((nibbles & 0x0F) >> 0)] * pWav->msadpcm.delta[0]) >> 8; if (pWav->msadpcm.delta[0] < 16) { pWav->msadpcm.delta[0] = 16; @@ -77307,11 +80431,11 @@ DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_s16__msadpcm(drwav* pWav, drwav pWav->msadpcm.cachedFrames[3] = newSample1; pWav->msadpcm.cachedFrameCount = 2; } else { - drwav_int32 newSample0; - drwav_int32 newSample1; + ma_int32 newSample0; + ma_int32 newSample1; newSample0 = ((pWav->msadpcm.prevFrames[0][1] * coeff1Table[pWav->msadpcm.predictor[0]]) + (pWav->msadpcm.prevFrames[0][0] * coeff2Table[pWav->msadpcm.predictor[0]])) >> 8; newSample0 += nibble0 * pWav->msadpcm.delta[0]; - newSample0 = drwav_clamp(newSample0, -32768, 32767); + newSample0 = ma_dr_wav_clamp(newSample0, -32768, 32767); pWav->msadpcm.delta[0] = (adaptationTable[((nibbles & 0xF0) >> 4)] * pWav->msadpcm.delta[0]) >> 8; if (pWav->msadpcm.delta[0] < 16) { pWav->msadpcm.delta[0] = 16; @@ -77320,7 +80444,7 @@ DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_s16__msadpcm(drwav* pWav, drwav pWav->msadpcm.prevFrames[0][1] = newSample0; newSample1 = ((pWav->msadpcm.prevFrames[1][1] * coeff1Table[pWav->msadpcm.predictor[1]]) + (pWav->msadpcm.prevFrames[1][0] * coeff2Table[pWav->msadpcm.predictor[1]])) >> 8; newSample1 += nibble1 * pWav->msadpcm.delta[1]; - newSample1 = drwav_clamp(newSample1, -32768, 32767); + newSample1 = ma_dr_wav_clamp(newSample1, -32768, 32767); pWav->msadpcm.delta[1] = (adaptationTable[((nibbles & 0x0F) >> 0)] * pWav->msadpcm.delta[1]) >> 8; if (pWav->msadpcm.delta[1] < 16) { pWav->msadpcm.delta[1] = 16; @@ -77336,15 +80460,15 @@ DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_s16__msadpcm(drwav* pWav, drwav } return totalFramesRead; } -DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_s16__ima(drwav* pWav, drwav_uint64 framesToRead, drwav_int16* pBufferOut) +MA_PRIVATE ma_uint64 ma_dr_wav_read_pcm_frames_s16__ima(ma_dr_wav* pWav, ma_uint64 framesToRead, ma_int16* pBufferOut) { - drwav_uint64 totalFramesRead = 0; - drwav_uint32 iChannel; - static drwav_int32 indexTable[16] = { + ma_uint64 totalFramesRead = 0; + ma_uint32 iChannel; + static ma_int32 indexTable[16] = { -1, -1, -1, -1, 2, 4, 6, 8, -1, -1, -1, -1, 2, 4, 6, 8 }; - static drwav_int32 stepTable[89] = { + static ma_int32 stepTable[89] = { 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 19, 21, 23, 25, 28, 31, 34, 37, 41, 45, 50, 55, 60, 66, 73, 80, 88, 97, 107, 118, @@ -77355,51 +80479,51 @@ DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_s16__ima(drwav* pWav, drwav_uin 5894, 6484, 7132, 7845, 8630, 9493, 10442, 11487, 12635, 13899, 15289, 16818, 18500, 20350, 22385, 24623, 27086, 29794, 32767 }; - DRWAV_ASSERT(pWav != NULL); - DRWAV_ASSERT(framesToRead > 0); + MA_DR_WAV_ASSERT(pWav != NULL); + MA_DR_WAV_ASSERT(framesToRead > 0); while (pWav->readCursorInPCMFrames < pWav->totalPCMFrameCount) { - DRWAV_ASSERT(framesToRead > 0); + MA_DR_WAV_ASSERT(framesToRead > 0); if (pWav->ima.cachedFrameCount == 0 && pWav->ima.bytesRemainingInBlock == 0) { if (pWav->channels == 1) { - drwav_uint8 header[4]; + ma_uint8 header[4]; if (pWav->onRead(pWav->pUserData, header, sizeof(header)) != sizeof(header)) { return totalFramesRead; } pWav->ima.bytesRemainingInBlock = pWav->fmt.blockAlign - sizeof(header); - if (header[2] >= drwav_countof(stepTable)) { - pWav->onSeek(pWav->pUserData, pWav->ima.bytesRemainingInBlock, drwav_seek_origin_current); + if (header[2] >= ma_dr_wav_countof(stepTable)) { + pWav->onSeek(pWav->pUserData, pWav->ima.bytesRemainingInBlock, ma_dr_wav_seek_origin_current); pWav->ima.bytesRemainingInBlock = 0; return totalFramesRead; } - pWav->ima.predictor[0] = drwav_bytes_to_s16(header + 0); - pWav->ima.stepIndex[0] = drwav_clamp(header[2], 0, (drwav_int32)drwav_countof(stepTable)-1); - pWav->ima.cachedFrames[drwav_countof(pWav->ima.cachedFrames) - 1] = pWav->ima.predictor[0]; + pWav->ima.predictor[0] = (ma_int16)ma_dr_wav_bytes_to_u16(header + 0); + pWav->ima.stepIndex[0] = ma_dr_wav_clamp(header[2], 0, (ma_int32)ma_dr_wav_countof(stepTable)-1); + pWav->ima.cachedFrames[ma_dr_wav_countof(pWav->ima.cachedFrames) - 1] = pWav->ima.predictor[0]; pWav->ima.cachedFrameCount = 1; } else { - drwav_uint8 header[8]; + ma_uint8 header[8]; if (pWav->onRead(pWav->pUserData, header, sizeof(header)) != sizeof(header)) { return totalFramesRead; } pWav->ima.bytesRemainingInBlock = pWav->fmt.blockAlign - sizeof(header); - if (header[2] >= drwav_countof(stepTable) || header[6] >= drwav_countof(stepTable)) { - pWav->onSeek(pWav->pUserData, pWav->ima.bytesRemainingInBlock, drwav_seek_origin_current); + if (header[2] >= ma_dr_wav_countof(stepTable) || header[6] >= ma_dr_wav_countof(stepTable)) { + pWav->onSeek(pWav->pUserData, pWav->ima.bytesRemainingInBlock, ma_dr_wav_seek_origin_current); pWav->ima.bytesRemainingInBlock = 0; return totalFramesRead; } - pWav->ima.predictor[0] = drwav_bytes_to_s16(header + 0); - pWav->ima.stepIndex[0] = drwav_clamp(header[2], 0, (drwav_int32)drwav_countof(stepTable)-1); - pWav->ima.predictor[1] = drwav_bytes_to_s16(header + 4); - pWav->ima.stepIndex[1] = drwav_clamp(header[6], 0, (drwav_int32)drwav_countof(stepTable)-1); - pWav->ima.cachedFrames[drwav_countof(pWav->ima.cachedFrames) - 2] = pWav->ima.predictor[0]; - pWav->ima.cachedFrames[drwav_countof(pWav->ima.cachedFrames) - 1] = pWav->ima.predictor[1]; + pWav->ima.predictor[0] = ma_dr_wav_bytes_to_s16(header + 0); + pWav->ima.stepIndex[0] = ma_dr_wav_clamp(header[2], 0, (ma_int32)ma_dr_wav_countof(stepTable)-1); + pWav->ima.predictor[1] = ma_dr_wav_bytes_to_s16(header + 4); + pWav->ima.stepIndex[1] = ma_dr_wav_clamp(header[6], 0, (ma_int32)ma_dr_wav_countof(stepTable)-1); + pWav->ima.cachedFrames[ma_dr_wav_countof(pWav->ima.cachedFrames) - 2] = pWav->ima.predictor[0]; + pWav->ima.cachedFrames[ma_dr_wav_countof(pWav->ima.cachedFrames) - 1] = pWav->ima.predictor[1]; pWav->ima.cachedFrameCount = 1; } } while (framesToRead > 0 && pWav->ima.cachedFrameCount > 0 && pWav->readCursorInPCMFrames < pWav->totalPCMFrameCount) { if (pBufferOut != NULL) { - drwav_uint32 iSample; + ma_uint32 iSample; for (iSample = 0; iSample < pWav->channels; iSample += 1) { - pBufferOut[iSample] = (drwav_int16)pWav->ima.cachedFrames[(drwav_countof(pWav->ima.cachedFrames) - (pWav->ima.cachedFrameCount*pWav->channels)) + iSample]; + pBufferOut[iSample] = (ma_int16)pWav->ima.cachedFrames[(ma_dr_wav_countof(pWav->ima.cachedFrames) - (pWav->ima.cachedFrameCount*pWav->channels)) + iSample]; } pBufferOut += pWav->channels; } @@ -77417,27 +80541,27 @@ DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_s16__ima(drwav* pWav, drwav_uin } else { pWav->ima.cachedFrameCount = 8; for (iChannel = 0; iChannel < pWav->channels; ++iChannel) { - drwav_uint32 iByte; - drwav_uint8 nibbles[4]; + ma_uint32 iByte; + ma_uint8 nibbles[4]; if (pWav->onRead(pWav->pUserData, &nibbles, 4) != 4) { pWav->ima.cachedFrameCount = 0; return totalFramesRead; } pWav->ima.bytesRemainingInBlock -= 4; for (iByte = 0; iByte < 4; ++iByte) { - drwav_uint8 nibble0 = ((nibbles[iByte] & 0x0F) >> 0); - drwav_uint8 nibble1 = ((nibbles[iByte] & 0xF0) >> 4); - drwav_int32 step = stepTable[pWav->ima.stepIndex[iChannel]]; - drwav_int32 predictor = pWav->ima.predictor[iChannel]; - drwav_int32 diff = step >> 3; + ma_uint8 nibble0 = ((nibbles[iByte] & 0x0F) >> 0); + ma_uint8 nibble1 = ((nibbles[iByte] & 0xF0) >> 4); + ma_int32 step = stepTable[pWav->ima.stepIndex[iChannel]]; + ma_int32 predictor = pWav->ima.predictor[iChannel]; + ma_int32 diff = step >> 3; if (nibble0 & 1) diff += step >> 2; if (nibble0 & 2) diff += step >> 1; if (nibble0 & 4) diff += step; if (nibble0 & 8) diff = -diff; - predictor = drwav_clamp(predictor + diff, -32768, 32767); + predictor = ma_dr_wav_clamp(predictor + diff, -32768, 32767); pWav->ima.predictor[iChannel] = predictor; - pWav->ima.stepIndex[iChannel] = drwav_clamp(pWav->ima.stepIndex[iChannel] + indexTable[nibble0], 0, (drwav_int32)drwav_countof(stepTable)-1); - pWav->ima.cachedFrames[(drwav_countof(pWav->ima.cachedFrames) - (pWav->ima.cachedFrameCount*pWav->channels)) + (iByte*2+0)*pWav->channels + iChannel] = predictor; + pWav->ima.stepIndex[iChannel] = ma_dr_wav_clamp(pWav->ima.stepIndex[iChannel] + indexTable[nibble0], 0, (ma_int32)ma_dr_wav_countof(stepTable)-1); + pWav->ima.cachedFrames[(ma_dr_wav_countof(pWav->ima.cachedFrames) - (pWav->ima.cachedFrameCount*pWav->channels)) + (iByte*2+0)*pWav->channels + iChannel] = predictor; step = stepTable[pWav->ima.stepIndex[iChannel]]; predictor = pWav->ima.predictor[iChannel]; diff = step >> 3; @@ -77445,10 +80569,10 @@ DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_s16__ima(drwav* pWav, drwav_uin if (nibble1 & 2) diff += step >> 1; if (nibble1 & 4) diff += step; if (nibble1 & 8) diff = -diff; - predictor = drwav_clamp(predictor + diff, -32768, 32767); + predictor = ma_dr_wav_clamp(predictor + diff, -32768, 32767); pWav->ima.predictor[iChannel] = predictor; - pWav->ima.stepIndex[iChannel] = drwav_clamp(pWav->ima.stepIndex[iChannel] + indexTable[nibble1], 0, (drwav_int32)drwav_countof(stepTable)-1); - pWav->ima.cachedFrames[(drwav_countof(pWav->ima.cachedFrames) - (pWav->ima.cachedFrameCount*pWav->channels)) + (iByte*2+1)*pWav->channels + iChannel] = predictor; + pWav->ima.stepIndex[iChannel] = ma_dr_wav_clamp(pWav->ima.stepIndex[iChannel] + indexTable[nibble1], 0, (ma_int32)ma_dr_wav_countof(stepTable)-1); + pWav->ima.cachedFrames[(ma_dr_wav_countof(pWav->ima.cachedFrames) - (pWav->ima.cachedFrameCount*pWav->channels)) + (iByte*2+1)*pWav->channels + iChannel] = predictor; } } } @@ -77456,8 +80580,8 @@ DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_s16__ima(drwav* pWav, drwav_uin } return totalFramesRead; } -#ifndef DR_WAV_NO_CONVERSION_API -static unsigned short g_drwavAlawTable[256] = { +#ifndef MA_DR_WAV_NO_CONVERSION_API +static unsigned short g_ma_dr_wavAlawTable[256] = { 0xEA80, 0xEB80, 0xE880, 0xE980, 0xEE80, 0xEF80, 0xEC80, 0xED80, 0xE280, 0xE380, 0xE080, 0xE180, 0xE680, 0xE780, 0xE480, 0xE580, 0xF540, 0xF5C0, 0xF440, 0xF4C0, 0xF740, 0xF7C0, 0xF640, 0xF6C0, 0xF140, 0xF1C0, 0xF040, 0xF0C0, 0xF340, 0xF3C0, 0xF240, 0xF2C0, 0xAA00, 0xAE00, 0xA200, 0xA600, 0xBA00, 0xBE00, 0xB200, 0xB600, 0x8A00, 0x8E00, 0x8200, 0x8600, 0x9A00, 0x9E00, 0x9200, 0x9600, @@ -77475,7 +80599,7 @@ static unsigned short g_drwavAlawTable[256] = { 0x0560, 0x0520, 0x05E0, 0x05A0, 0x0460, 0x0420, 0x04E0, 0x04A0, 0x0760, 0x0720, 0x07E0, 0x07A0, 0x0660, 0x0620, 0x06E0, 0x06A0, 0x02B0, 0x0290, 0x02F0, 0x02D0, 0x0230, 0x0210, 0x0270, 0x0250, 0x03B0, 0x0390, 0x03F0, 0x03D0, 0x0330, 0x0310, 0x0370, 0x0350 }; -static unsigned short g_drwavMulawTable[256] = { +static unsigned short g_ma_dr_wavMulawTable[256] = { 0x8284, 0x8684, 0x8A84, 0x8E84, 0x9284, 0x9684, 0x9A84, 0x9E84, 0xA284, 0xA684, 0xAA84, 0xAE84, 0xB284, 0xB684, 0xBA84, 0xBE84, 0xC184, 0xC384, 0xC584, 0xC784, 0xC984, 0xCB84, 0xCD84, 0xCF84, 0xD184, 0xD384, 0xD584, 0xD784, 0xD984, 0xDB84, 0xDD84, 0xDF84, 0xE104, 0xE204, 0xE304, 0xE404, 0xE504, 0xE604, 0xE704, 0xE804, 0xE904, 0xEA04, 0xEB04, 0xEC04, 0xED04, 0xEE04, 0xEF04, 0xF004, @@ -77493,76 +80617,76 @@ static unsigned short g_drwavMulawTable[256] = { 0x0174, 0x0164, 0x0154, 0x0144, 0x0134, 0x0124, 0x0114, 0x0104, 0x00F4, 0x00E4, 0x00D4, 0x00C4, 0x00B4, 0x00A4, 0x0094, 0x0084, 0x0078, 0x0070, 0x0068, 0x0060, 0x0058, 0x0050, 0x0048, 0x0040, 0x0038, 0x0030, 0x0028, 0x0020, 0x0018, 0x0010, 0x0008, 0x0000 }; -static DRWAV_INLINE drwav_int16 drwav__alaw_to_s16(drwav_uint8 sampleIn) +static MA_INLINE ma_int16 ma_dr_wav__alaw_to_s16(ma_uint8 sampleIn) { - return (short)g_drwavAlawTable[sampleIn]; + return (short)g_ma_dr_wavAlawTable[sampleIn]; } -static DRWAV_INLINE drwav_int16 drwav__mulaw_to_s16(drwav_uint8 sampleIn) +static MA_INLINE ma_int16 ma_dr_wav__mulaw_to_s16(ma_uint8 sampleIn) { - return (short)g_drwavMulawTable[sampleIn]; + return (short)g_ma_dr_wavMulawTable[sampleIn]; } -DRWAV_PRIVATE void drwav__pcm_to_s16(drwav_int16* pOut, const drwav_uint8* pIn, size_t totalSampleCount, unsigned int bytesPerSample) +MA_PRIVATE void ma_dr_wav__pcm_to_s16(ma_int16* pOut, const ma_uint8* pIn, size_t totalSampleCount, unsigned int bytesPerSample) { size_t i; if (bytesPerSample == 1) { - drwav_u8_to_s16(pOut, pIn, totalSampleCount); + ma_dr_wav_u8_to_s16(pOut, pIn, totalSampleCount); return; } if (bytesPerSample == 2) { for (i = 0; i < totalSampleCount; ++i) { - *pOut++ = ((const drwav_int16*)pIn)[i]; + *pOut++ = ((const ma_int16*)pIn)[i]; } return; } if (bytesPerSample == 3) { - drwav_s24_to_s16(pOut, pIn, totalSampleCount); + ma_dr_wav_s24_to_s16(pOut, pIn, totalSampleCount); return; } if (bytesPerSample == 4) { - drwav_s32_to_s16(pOut, (const drwav_int32*)pIn, totalSampleCount); + ma_dr_wav_s32_to_s16(pOut, (const ma_int32*)pIn, totalSampleCount); return; } if (bytesPerSample > 8) { - DRWAV_ZERO_MEMORY(pOut, totalSampleCount * sizeof(*pOut)); + MA_DR_WAV_ZERO_MEMORY(pOut, totalSampleCount * sizeof(*pOut)); return; } for (i = 0; i < totalSampleCount; ++i) { - drwav_uint64 sample = 0; + ma_uint64 sample = 0; unsigned int shift = (8 - bytesPerSample) * 8; unsigned int j; for (j = 0; j < bytesPerSample; j += 1) { - DRWAV_ASSERT(j < 8); - sample |= (drwav_uint64)(pIn[j]) << shift; + MA_DR_WAV_ASSERT(j < 8); + sample |= (ma_uint64)(pIn[j]) << shift; shift += 8; } pIn += j; - *pOut++ = (drwav_int16)((drwav_int64)sample >> 48); + *pOut++ = (ma_int16)((ma_int64)sample >> 48); } } -DRWAV_PRIVATE void drwav__ieee_to_s16(drwav_int16* pOut, const drwav_uint8* pIn, size_t totalSampleCount, unsigned int bytesPerSample) +MA_PRIVATE void ma_dr_wav__ieee_to_s16(ma_int16* pOut, const ma_uint8* pIn, size_t totalSampleCount, unsigned int bytesPerSample) { if (bytesPerSample == 4) { - drwav_f32_to_s16(pOut, (const float*)pIn, totalSampleCount); + ma_dr_wav_f32_to_s16(pOut, (const float*)pIn, totalSampleCount); return; } else if (bytesPerSample == 8) { - drwav_f64_to_s16(pOut, (const double*)pIn, totalSampleCount); + ma_dr_wav_f64_to_s16(pOut, (const double*)pIn, totalSampleCount); return; } else { - DRWAV_ZERO_MEMORY(pOut, totalSampleCount * sizeof(*pOut)); + MA_DR_WAV_ZERO_MEMORY(pOut, totalSampleCount * sizeof(*pOut)); return; } } -DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_s16__pcm(drwav* pWav, drwav_uint64 framesToRead, drwav_int16* pBufferOut) +MA_PRIVATE ma_uint64 ma_dr_wav_read_pcm_frames_s16__pcm(ma_dr_wav* pWav, ma_uint64 framesToRead, ma_int16* pBufferOut) { - drwav_uint64 totalFramesRead; - drwav_uint8 sampleData[4096] = {0}; - drwav_uint32 bytesPerFrame; - drwav_uint32 bytesPerSample; - drwav_uint64 samplesRead; - if ((pWav->translatedFormatTag == DR_WAVE_FORMAT_PCM && pWav->bitsPerSample == 16) || pBufferOut == NULL) { - return drwav_read_pcm_frames(pWav, framesToRead, pBufferOut); + ma_uint64 totalFramesRead; + ma_uint8 sampleData[4096] = {0}; + ma_uint32 bytesPerFrame; + ma_uint32 bytesPerSample; + ma_uint64 samplesRead; + if ((pWav->translatedFormatTag == MA_DR_WAVE_FORMAT_PCM && pWav->bitsPerSample == 16) || pBufferOut == NULL) { + return ma_dr_wav_read_pcm_frames(pWav, framesToRead, pBufferOut); } - bytesPerFrame = drwav_get_bytes_per_pcm_frame(pWav); + bytesPerFrame = ma_dr_wav_get_bytes_per_pcm_frame(pWav); if (bytesPerFrame == 0) { return 0; } @@ -77572,35 +80696,35 @@ DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_s16__pcm(drwav* pWav, drwav_uin } totalFramesRead = 0; while (framesToRead > 0) { - drwav_uint64 framesToReadThisIteration = drwav_min(framesToRead, sizeof(sampleData)/bytesPerFrame); - drwav_uint64 framesRead = drwav_read_pcm_frames(pWav, framesToReadThisIteration, sampleData); + ma_uint64 framesToReadThisIteration = ma_dr_wav_min(framesToRead, sizeof(sampleData)/bytesPerFrame); + ma_uint64 framesRead = ma_dr_wav_read_pcm_frames(pWav, framesToReadThisIteration, sampleData); if (framesRead == 0) { break; } - DRWAV_ASSERT(framesRead <= framesToReadThisIteration); + MA_DR_WAV_ASSERT(framesRead <= framesToReadThisIteration); samplesRead = framesRead * pWav->channels; if ((samplesRead * bytesPerSample) > sizeof(sampleData)) { - DRWAV_ASSERT(DRWAV_FALSE); + MA_DR_WAV_ASSERT(MA_FALSE); break; } - drwav__pcm_to_s16(pBufferOut, sampleData, (size_t)samplesRead, bytesPerSample); + ma_dr_wav__pcm_to_s16(pBufferOut, sampleData, (size_t)samplesRead, bytesPerSample); pBufferOut += samplesRead; framesToRead -= framesRead; totalFramesRead += framesRead; } return totalFramesRead; } -DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_s16__ieee(drwav* pWav, drwav_uint64 framesToRead, drwav_int16* pBufferOut) +MA_PRIVATE ma_uint64 ma_dr_wav_read_pcm_frames_s16__ieee(ma_dr_wav* pWav, ma_uint64 framesToRead, ma_int16* pBufferOut) { - drwav_uint64 totalFramesRead; - drwav_uint8 sampleData[4096] = {0}; - drwav_uint32 bytesPerFrame; - drwav_uint32 bytesPerSample; - drwav_uint64 samplesRead; + ma_uint64 totalFramesRead; + ma_uint8 sampleData[4096] = {0}; + ma_uint32 bytesPerFrame; + ma_uint32 bytesPerSample; + ma_uint64 samplesRead; if (pBufferOut == NULL) { - return drwav_read_pcm_frames(pWav, framesToRead, NULL); + return ma_dr_wav_read_pcm_frames(pWav, framesToRead, NULL); } - bytesPerFrame = drwav_get_bytes_per_pcm_frame(pWav); + bytesPerFrame = ma_dr_wav_get_bytes_per_pcm_frame(pWav); if (bytesPerFrame == 0) { return 0; } @@ -77610,35 +80734,35 @@ DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_s16__ieee(drwav* pWav, drwav_ui } totalFramesRead = 0; while (framesToRead > 0) { - drwav_uint64 framesToReadThisIteration = drwav_min(framesToRead, sizeof(sampleData)/bytesPerFrame); - drwav_uint64 framesRead = drwav_read_pcm_frames(pWav, framesToReadThisIteration, sampleData); + ma_uint64 framesToReadThisIteration = ma_dr_wav_min(framesToRead, sizeof(sampleData)/bytesPerFrame); + ma_uint64 framesRead = ma_dr_wav_read_pcm_frames(pWav, framesToReadThisIteration, sampleData); if (framesRead == 0) { break; } - DRWAV_ASSERT(framesRead <= framesToReadThisIteration); + MA_DR_WAV_ASSERT(framesRead <= framesToReadThisIteration); samplesRead = framesRead * pWav->channels; if ((samplesRead * bytesPerSample) > sizeof(sampleData)) { - DRWAV_ASSERT(DRWAV_FALSE); + MA_DR_WAV_ASSERT(MA_FALSE); break; } - drwav__ieee_to_s16(pBufferOut, sampleData, (size_t)samplesRead, bytesPerSample); + ma_dr_wav__ieee_to_s16(pBufferOut, sampleData, (size_t)samplesRead, bytesPerSample); pBufferOut += samplesRead; framesToRead -= framesRead; totalFramesRead += framesRead; } return totalFramesRead; } -DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_s16__alaw(drwav* pWav, drwav_uint64 framesToRead, drwav_int16* pBufferOut) +MA_PRIVATE ma_uint64 ma_dr_wav_read_pcm_frames_s16__alaw(ma_dr_wav* pWav, ma_uint64 framesToRead, ma_int16* pBufferOut) { - drwav_uint64 totalFramesRead; - drwav_uint8 sampleData[4096] = {0}; - drwav_uint32 bytesPerFrame; - drwav_uint32 bytesPerSample; - drwav_uint64 samplesRead; + ma_uint64 totalFramesRead; + ma_uint8 sampleData[4096] = {0}; + ma_uint32 bytesPerFrame; + ma_uint32 bytesPerSample; + ma_uint64 samplesRead; if (pBufferOut == NULL) { - return drwav_read_pcm_frames(pWav, framesToRead, NULL); + return ma_dr_wav_read_pcm_frames(pWav, framesToRead, NULL); } - bytesPerFrame = drwav_get_bytes_per_pcm_frame(pWav); + bytesPerFrame = ma_dr_wav_get_bytes_per_pcm_frame(pWav); if (bytesPerFrame == 0) { return 0; } @@ -77648,35 +80772,45 @@ DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_s16__alaw(drwav* pWav, drwav_ui } totalFramesRead = 0; while (framesToRead > 0) { - drwav_uint64 framesToReadThisIteration = drwav_min(framesToRead, sizeof(sampleData)/bytesPerFrame); - drwav_uint64 framesRead = drwav_read_pcm_frames(pWav, framesToReadThisIteration, sampleData); + ma_uint64 framesToReadThisIteration = ma_dr_wav_min(framesToRead, sizeof(sampleData)/bytesPerFrame); + ma_uint64 framesRead = ma_dr_wav_read_pcm_frames(pWav, framesToReadThisIteration, sampleData); if (framesRead == 0) { break; } - DRWAV_ASSERT(framesRead <= framesToReadThisIteration); + MA_DR_WAV_ASSERT(framesRead <= framesToReadThisIteration); samplesRead = framesRead * pWav->channels; if ((samplesRead * bytesPerSample) > sizeof(sampleData)) { - DRWAV_ASSERT(DRWAV_FALSE); + MA_DR_WAV_ASSERT(MA_FALSE); break; } - drwav_alaw_to_s16(pBufferOut, sampleData, (size_t)samplesRead); + ma_dr_wav_alaw_to_s16(pBufferOut, sampleData, (size_t)samplesRead); + #ifdef MA_DR_WAV_LIBSNDFILE_COMPAT + { + if (pWav->container == ma_dr_wav_container_aiff) { + ma_uint64 iSample; + for (iSample = 0; iSample < samplesRead; iSample += 1) { + pBufferOut[iSample] = -pBufferOut[iSample]; + } + } + } + #endif pBufferOut += samplesRead; framesToRead -= framesRead; totalFramesRead += framesRead; } return totalFramesRead; } -DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_s16__mulaw(drwav* pWav, drwav_uint64 framesToRead, drwav_int16* pBufferOut) +MA_PRIVATE ma_uint64 ma_dr_wav_read_pcm_frames_s16__mulaw(ma_dr_wav* pWav, ma_uint64 framesToRead, ma_int16* pBufferOut) { - drwav_uint64 totalFramesRead; - drwav_uint8 sampleData[4096] = {0}; - drwav_uint32 bytesPerFrame; - drwav_uint32 bytesPerSample; - drwav_uint64 samplesRead; + ma_uint64 totalFramesRead; + ma_uint8 sampleData[4096] = {0}; + ma_uint32 bytesPerFrame; + ma_uint32 bytesPerSample; + ma_uint64 samplesRead; if (pBufferOut == NULL) { - return drwav_read_pcm_frames(pWav, framesToRead, NULL); + return ma_dr_wav_read_pcm_frames(pWav, framesToRead, NULL); } - bytesPerFrame = drwav_get_bytes_per_pcm_frame(pWav); + bytesPerFrame = ma_dr_wav_get_bytes_per_pcm_frame(pWav); if (bytesPerFrame == 0) { return 0; } @@ -77686,72 +80820,82 @@ DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_s16__mulaw(drwav* pWav, drwav_u } totalFramesRead = 0; while (framesToRead > 0) { - drwav_uint64 framesToReadThisIteration = drwav_min(framesToRead, sizeof(sampleData)/bytesPerFrame); - drwav_uint64 framesRead = drwav_read_pcm_frames(pWav, framesToReadThisIteration, sampleData); + ma_uint64 framesToReadThisIteration = ma_dr_wav_min(framesToRead, sizeof(sampleData)/bytesPerFrame); + ma_uint64 framesRead = ma_dr_wav_read_pcm_frames(pWav, framesToReadThisIteration, sampleData); if (framesRead == 0) { break; } - DRWAV_ASSERT(framesRead <= framesToReadThisIteration); + MA_DR_WAV_ASSERT(framesRead <= framesToReadThisIteration); samplesRead = framesRead * pWav->channels; if ((samplesRead * bytesPerSample) > sizeof(sampleData)) { - DRWAV_ASSERT(DRWAV_FALSE); + MA_DR_WAV_ASSERT(MA_FALSE); break; } - drwav_mulaw_to_s16(pBufferOut, sampleData, (size_t)samplesRead); + ma_dr_wav_mulaw_to_s16(pBufferOut, sampleData, (size_t)samplesRead); + #ifdef MA_DR_WAV_LIBSNDFILE_COMPAT + { + if (pWav->container == ma_dr_wav_container_aiff) { + ma_uint64 iSample; + for (iSample = 0; iSample < samplesRead; iSample += 1) { + pBufferOut[iSample] = -pBufferOut[iSample]; + } + } + } + #endif pBufferOut += samplesRead; framesToRead -= framesRead; totalFramesRead += framesRead; } return totalFramesRead; } -DRWAV_API drwav_uint64 drwav_read_pcm_frames_s16(drwav* pWav, drwav_uint64 framesToRead, drwav_int16* pBufferOut) +MA_API ma_uint64 ma_dr_wav_read_pcm_frames_s16(ma_dr_wav* pWav, ma_uint64 framesToRead, ma_int16* pBufferOut) { if (pWav == NULL || framesToRead == 0) { return 0; } if (pBufferOut == NULL) { - return drwav_read_pcm_frames(pWav, framesToRead, NULL); + return ma_dr_wav_read_pcm_frames(pWav, framesToRead, NULL); } - if (framesToRead * pWav->channels * sizeof(drwav_int16) > DRWAV_SIZE_MAX) { - framesToRead = DRWAV_SIZE_MAX / sizeof(drwav_int16) / pWav->channels; + if (framesToRead * pWav->channels * sizeof(ma_int16) > MA_SIZE_MAX) { + framesToRead = MA_SIZE_MAX / sizeof(ma_int16) / pWav->channels; } - if (pWav->translatedFormatTag == DR_WAVE_FORMAT_PCM) { - return drwav_read_pcm_frames_s16__pcm(pWav, framesToRead, pBufferOut); + if (pWav->translatedFormatTag == MA_DR_WAVE_FORMAT_PCM) { + return ma_dr_wav_read_pcm_frames_s16__pcm(pWav, framesToRead, pBufferOut); } - if (pWav->translatedFormatTag == DR_WAVE_FORMAT_IEEE_FLOAT) { - return drwav_read_pcm_frames_s16__ieee(pWav, framesToRead, pBufferOut); + if (pWav->translatedFormatTag == MA_DR_WAVE_FORMAT_IEEE_FLOAT) { + return ma_dr_wav_read_pcm_frames_s16__ieee(pWav, framesToRead, pBufferOut); } - if (pWav->translatedFormatTag == DR_WAVE_FORMAT_ALAW) { - return drwav_read_pcm_frames_s16__alaw(pWav, framesToRead, pBufferOut); + if (pWav->translatedFormatTag == MA_DR_WAVE_FORMAT_ALAW) { + return ma_dr_wav_read_pcm_frames_s16__alaw(pWav, framesToRead, pBufferOut); } - if (pWav->translatedFormatTag == DR_WAVE_FORMAT_MULAW) { - return drwav_read_pcm_frames_s16__mulaw(pWav, framesToRead, pBufferOut); + if (pWav->translatedFormatTag == MA_DR_WAVE_FORMAT_MULAW) { + return ma_dr_wav_read_pcm_frames_s16__mulaw(pWav, framesToRead, pBufferOut); } - if (pWav->translatedFormatTag == DR_WAVE_FORMAT_ADPCM) { - return drwav_read_pcm_frames_s16__msadpcm(pWav, framesToRead, pBufferOut); + if (pWav->translatedFormatTag == MA_DR_WAVE_FORMAT_ADPCM) { + return ma_dr_wav_read_pcm_frames_s16__msadpcm(pWav, framesToRead, pBufferOut); } - if (pWav->translatedFormatTag == DR_WAVE_FORMAT_DVI_ADPCM) { - return drwav_read_pcm_frames_s16__ima(pWav, framesToRead, pBufferOut); + if (pWav->translatedFormatTag == MA_DR_WAVE_FORMAT_DVI_ADPCM) { + return ma_dr_wav_read_pcm_frames_s16__ima(pWav, framesToRead, pBufferOut); } return 0; } -DRWAV_API drwav_uint64 drwav_read_pcm_frames_s16le(drwav* pWav, drwav_uint64 framesToRead, drwav_int16* pBufferOut) +MA_API ma_uint64 ma_dr_wav_read_pcm_frames_s16le(ma_dr_wav* pWav, ma_uint64 framesToRead, ma_int16* pBufferOut) { - drwav_uint64 framesRead = drwav_read_pcm_frames_s16(pWav, framesToRead, pBufferOut); - if (pBufferOut != NULL && drwav__is_little_endian() == DRWAV_FALSE) { - drwav__bswap_samples_s16(pBufferOut, framesRead*pWav->channels); + ma_uint64 framesRead = ma_dr_wav_read_pcm_frames_s16(pWav, framesToRead, pBufferOut); + if (pBufferOut != NULL && ma_dr_wav__is_little_endian() == MA_FALSE) { + ma_dr_wav__bswap_samples_s16(pBufferOut, framesRead*pWav->channels); } return framesRead; } -DRWAV_API drwav_uint64 drwav_read_pcm_frames_s16be(drwav* pWav, drwav_uint64 framesToRead, drwav_int16* pBufferOut) +MA_API ma_uint64 ma_dr_wav_read_pcm_frames_s16be(ma_dr_wav* pWav, ma_uint64 framesToRead, ma_int16* pBufferOut) { - drwav_uint64 framesRead = drwav_read_pcm_frames_s16(pWav, framesToRead, pBufferOut); - if (pBufferOut != NULL && drwav__is_little_endian() == DRWAV_TRUE) { - drwav__bswap_samples_s16(pBufferOut, framesRead*pWav->channels); + ma_uint64 framesRead = ma_dr_wav_read_pcm_frames_s16(pWav, framesToRead, pBufferOut); + if (pBufferOut != NULL && ma_dr_wav__is_little_endian() == MA_TRUE) { + ma_dr_wav__bswap_samples_s16(pBufferOut, framesRead*pWav->channels); } return framesRead; } -DRWAV_API void drwav_u8_to_s16(drwav_int16* pOut, const drwav_uint8* pIn, size_t sampleCount) +MA_API void ma_dr_wav_u8_to_s16(ma_int16* pOut, const ma_uint8* pIn, size_t sampleCount) { int r; size_t i; @@ -77762,17 +80906,17 @@ DRWAV_API void drwav_u8_to_s16(drwav_int16* pOut, const drwav_uint8* pIn, size_t pOut[i] = (short)r; } } -DRWAV_API void drwav_s24_to_s16(drwav_int16* pOut, const drwav_uint8* pIn, size_t sampleCount) +MA_API void ma_dr_wav_s24_to_s16(ma_int16* pOut, const ma_uint8* pIn, size_t sampleCount) { int r; size_t i; for (i = 0; i < sampleCount; ++i) { - int x = ((int)(((unsigned int)(((const drwav_uint8*)pIn)[i*3+0]) << 8) | ((unsigned int)(((const drwav_uint8*)pIn)[i*3+1]) << 16) | ((unsigned int)(((const drwav_uint8*)pIn)[i*3+2])) << 24)) >> 8; + int x = ((int)(((unsigned int)(((const ma_uint8*)pIn)[i*3+0]) << 8) | ((unsigned int)(((const ma_uint8*)pIn)[i*3+1]) << 16) | ((unsigned int)(((const ma_uint8*)pIn)[i*3+2])) << 24)) >> 8; r = x >> 8; pOut[i] = (short)r; } } -DRWAV_API void drwav_s32_to_s16(drwav_int16* pOut, const drwav_int32* pIn, size_t sampleCount) +MA_API void ma_dr_wav_s32_to_s16(ma_int16* pOut, const ma_int32* pIn, size_t sampleCount) { int r; size_t i; @@ -77782,7 +80926,7 @@ DRWAV_API void drwav_s32_to_s16(drwav_int16* pOut, const drwav_int32* pIn, size_ pOut[i] = (short)r; } } -DRWAV_API void drwav_f32_to_s16(drwav_int16* pOut, const float* pIn, size_t sampleCount) +MA_API void ma_dr_wav_f32_to_s16(ma_int16* pOut, const float* pIn, size_t sampleCount) { int r; size_t i; @@ -77796,7 +80940,7 @@ DRWAV_API void drwav_f32_to_s16(drwav_int16* pOut, const float* pIn, size_t samp pOut[i] = (short)r; } } -DRWAV_API void drwav_f64_to_s16(drwav_int16* pOut, const double* pIn, size_t sampleCount) +MA_API void ma_dr_wav_f64_to_s16(ma_int16* pOut, const double* pIn, size_t sampleCount) { int r; size_t i; @@ -77810,57 +80954,57 @@ DRWAV_API void drwav_f64_to_s16(drwav_int16* pOut, const double* pIn, size_t sam pOut[i] = (short)r; } } -DRWAV_API void drwav_alaw_to_s16(drwav_int16* pOut, const drwav_uint8* pIn, size_t sampleCount) +MA_API void ma_dr_wav_alaw_to_s16(ma_int16* pOut, const ma_uint8* pIn, size_t sampleCount) { size_t i; for (i = 0; i < sampleCount; ++i) { - pOut[i] = drwav__alaw_to_s16(pIn[i]); + pOut[i] = ma_dr_wav__alaw_to_s16(pIn[i]); } } -DRWAV_API void drwav_mulaw_to_s16(drwav_int16* pOut, const drwav_uint8* pIn, size_t sampleCount) +MA_API void ma_dr_wav_mulaw_to_s16(ma_int16* pOut, const ma_uint8* pIn, size_t sampleCount) { size_t i; for (i = 0; i < sampleCount; ++i) { - pOut[i] = drwav__mulaw_to_s16(pIn[i]); + pOut[i] = ma_dr_wav__mulaw_to_s16(pIn[i]); } } -DRWAV_PRIVATE void drwav__pcm_to_f32(float* pOut, const drwav_uint8* pIn, size_t sampleCount, unsigned int bytesPerSample) +MA_PRIVATE void ma_dr_wav__pcm_to_f32(float* pOut, const ma_uint8* pIn, size_t sampleCount, unsigned int bytesPerSample) { unsigned int i; if (bytesPerSample == 1) { - drwav_u8_to_f32(pOut, pIn, sampleCount); + ma_dr_wav_u8_to_f32(pOut, pIn, sampleCount); return; } if (bytesPerSample == 2) { - drwav_s16_to_f32(pOut, (const drwav_int16*)pIn, sampleCount); + ma_dr_wav_s16_to_f32(pOut, (const ma_int16*)pIn, sampleCount); return; } if (bytesPerSample == 3) { - drwav_s24_to_f32(pOut, pIn, sampleCount); + ma_dr_wav_s24_to_f32(pOut, pIn, sampleCount); return; } if (bytesPerSample == 4) { - drwav_s32_to_f32(pOut, (const drwav_int32*)pIn, sampleCount); + ma_dr_wav_s32_to_f32(pOut, (const ma_int32*)pIn, sampleCount); return; } if (bytesPerSample > 8) { - DRWAV_ZERO_MEMORY(pOut, sampleCount * sizeof(*pOut)); + MA_DR_WAV_ZERO_MEMORY(pOut, sampleCount * sizeof(*pOut)); return; } for (i = 0; i < sampleCount; ++i) { - drwav_uint64 sample = 0; + ma_uint64 sample = 0; unsigned int shift = (8 - bytesPerSample) * 8; unsigned int j; for (j = 0; j < bytesPerSample; j += 1) { - DRWAV_ASSERT(j < 8); - sample |= (drwav_uint64)(pIn[j]) << shift; + MA_DR_WAV_ASSERT(j < 8); + sample |= (ma_uint64)(pIn[j]) << shift; shift += 8; } pIn += j; - *pOut++ = (float)((drwav_int64)sample / 9223372036854775807.0); + *pOut++ = (float)((ma_int64)sample / 9223372036854775807.0); } } -DRWAV_PRIVATE void drwav__ieee_to_f32(float* pOut, const drwav_uint8* pIn, size_t sampleCount, unsigned int bytesPerSample) +MA_PRIVATE void ma_dr_wav__ieee_to_f32(float* pOut, const ma_uint8* pIn, size_t sampleCount, unsigned int bytesPerSample) { if (bytesPerSample == 4) { unsigned int i; @@ -77869,21 +81013,21 @@ DRWAV_PRIVATE void drwav__ieee_to_f32(float* pOut, const drwav_uint8* pIn, size_ } return; } else if (bytesPerSample == 8) { - drwav_f64_to_f32(pOut, (const double*)pIn, sampleCount); + ma_dr_wav_f64_to_f32(pOut, (const double*)pIn, sampleCount); return; } else { - DRWAV_ZERO_MEMORY(pOut, sampleCount * sizeof(*pOut)); + MA_DR_WAV_ZERO_MEMORY(pOut, sampleCount * sizeof(*pOut)); return; } } -DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_f32__pcm(drwav* pWav, drwav_uint64 framesToRead, float* pBufferOut) +MA_PRIVATE ma_uint64 ma_dr_wav_read_pcm_frames_f32__pcm(ma_dr_wav* pWav, ma_uint64 framesToRead, float* pBufferOut) { - drwav_uint64 totalFramesRead; - drwav_uint8 sampleData[4096] = {0}; - drwav_uint32 bytesPerFrame; - drwav_uint32 bytesPerSample; - drwav_uint64 samplesRead; - bytesPerFrame = drwav_get_bytes_per_pcm_frame(pWav); + ma_uint64 totalFramesRead; + ma_uint8 sampleData[4096] = {0}; + ma_uint32 bytesPerFrame; + ma_uint32 bytesPerSample; + ma_uint64 samplesRead; + bytesPerFrame = ma_dr_wav_get_bytes_per_pcm_frame(pWav); if (bytesPerFrame == 0) { return 0; } @@ -77893,54 +81037,54 @@ DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_f32__pcm(drwav* pWav, drwav_uin } totalFramesRead = 0; while (framesToRead > 0) { - drwav_uint64 framesToReadThisIteration = drwav_min(framesToRead, sizeof(sampleData)/bytesPerFrame); - drwav_uint64 framesRead = drwav_read_pcm_frames(pWav, framesToReadThisIteration, sampleData); + ma_uint64 framesToReadThisIteration = ma_dr_wav_min(framesToRead, sizeof(sampleData)/bytesPerFrame); + ma_uint64 framesRead = ma_dr_wav_read_pcm_frames(pWav, framesToReadThisIteration, sampleData); if (framesRead == 0) { break; } - DRWAV_ASSERT(framesRead <= framesToReadThisIteration); + MA_DR_WAV_ASSERT(framesRead <= framesToReadThisIteration); samplesRead = framesRead * pWav->channels; if ((samplesRead * bytesPerSample) > sizeof(sampleData)) { - DRWAV_ASSERT(DRWAV_FALSE); + MA_DR_WAV_ASSERT(MA_FALSE); break; } - drwav__pcm_to_f32(pBufferOut, sampleData, (size_t)samplesRead, bytesPerSample); + ma_dr_wav__pcm_to_f32(pBufferOut, sampleData, (size_t)samplesRead, bytesPerSample); pBufferOut += samplesRead; framesToRead -= framesRead; totalFramesRead += framesRead; } return totalFramesRead; } -DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_f32__msadpcm_ima(drwav* pWav, drwav_uint64 framesToRead, float* pBufferOut) +MA_PRIVATE ma_uint64 ma_dr_wav_read_pcm_frames_f32__msadpcm_ima(ma_dr_wav* pWav, ma_uint64 framesToRead, float* pBufferOut) { - drwav_uint64 totalFramesRead; - drwav_int16 samples16[2048]; + ma_uint64 totalFramesRead; + ma_int16 samples16[2048]; totalFramesRead = 0; while (framesToRead > 0) { - drwav_uint64 framesToReadThisIteration = drwav_min(framesToRead, drwav_countof(samples16)/pWav->channels); - drwav_uint64 framesRead = drwav_read_pcm_frames_s16(pWav, framesToReadThisIteration, samples16); + ma_uint64 framesToReadThisIteration = ma_dr_wav_min(framesToRead, ma_dr_wav_countof(samples16)/pWav->channels); + ma_uint64 framesRead = ma_dr_wav_read_pcm_frames_s16(pWav, framesToReadThisIteration, samples16); if (framesRead == 0) { break; } - DRWAV_ASSERT(framesRead <= framesToReadThisIteration); - drwav_s16_to_f32(pBufferOut, samples16, (size_t)(framesRead*pWav->channels)); + MA_DR_WAV_ASSERT(framesRead <= framesToReadThisIteration); + ma_dr_wav_s16_to_f32(pBufferOut, samples16, (size_t)(framesRead*pWav->channels)); pBufferOut += framesRead*pWav->channels; framesToRead -= framesRead; totalFramesRead += framesRead; } return totalFramesRead; } -DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_f32__ieee(drwav* pWav, drwav_uint64 framesToRead, float* pBufferOut) +MA_PRIVATE ma_uint64 ma_dr_wav_read_pcm_frames_f32__ieee(ma_dr_wav* pWav, ma_uint64 framesToRead, float* pBufferOut) { - drwav_uint64 totalFramesRead; - drwav_uint8 sampleData[4096] = {0}; - drwav_uint32 bytesPerFrame; - drwav_uint32 bytesPerSample; - drwav_uint64 samplesRead; - if (pWav->translatedFormatTag == DR_WAVE_FORMAT_IEEE_FLOAT && pWav->bitsPerSample == 32) { - return drwav_read_pcm_frames(pWav, framesToRead, pBufferOut); + ma_uint64 totalFramesRead; + ma_uint8 sampleData[4096] = {0}; + ma_uint32 bytesPerFrame; + ma_uint32 bytesPerSample; + ma_uint64 samplesRead; + if (pWav->translatedFormatTag == MA_DR_WAVE_FORMAT_IEEE_FLOAT && pWav->bitsPerSample == 32) { + return ma_dr_wav_read_pcm_frames(pWav, framesToRead, pBufferOut); } - bytesPerFrame = drwav_get_bytes_per_pcm_frame(pWav); + bytesPerFrame = ma_dr_wav_get_bytes_per_pcm_frame(pWav); if (bytesPerFrame == 0) { return 0; } @@ -77950,32 +81094,32 @@ DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_f32__ieee(drwav* pWav, drwav_ui } totalFramesRead = 0; while (framesToRead > 0) { - drwav_uint64 framesToReadThisIteration = drwav_min(framesToRead, sizeof(sampleData)/bytesPerFrame); - drwav_uint64 framesRead = drwav_read_pcm_frames(pWav, framesToReadThisIteration, sampleData); + ma_uint64 framesToReadThisIteration = ma_dr_wav_min(framesToRead, sizeof(sampleData)/bytesPerFrame); + ma_uint64 framesRead = ma_dr_wav_read_pcm_frames(pWav, framesToReadThisIteration, sampleData); if (framesRead == 0) { break; } - DRWAV_ASSERT(framesRead <= framesToReadThisIteration); + MA_DR_WAV_ASSERT(framesRead <= framesToReadThisIteration); samplesRead = framesRead * pWav->channels; if ((samplesRead * bytesPerSample) > sizeof(sampleData)) { - DRWAV_ASSERT(DRWAV_FALSE); + MA_DR_WAV_ASSERT(MA_FALSE); break; } - drwav__ieee_to_f32(pBufferOut, sampleData, (size_t)samplesRead, bytesPerSample); + ma_dr_wav__ieee_to_f32(pBufferOut, sampleData, (size_t)samplesRead, bytesPerSample); pBufferOut += samplesRead; framesToRead -= framesRead; totalFramesRead += framesRead; } return totalFramesRead; } -DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_f32__alaw(drwav* pWav, drwav_uint64 framesToRead, float* pBufferOut) +MA_PRIVATE ma_uint64 ma_dr_wav_read_pcm_frames_f32__alaw(ma_dr_wav* pWav, ma_uint64 framesToRead, float* pBufferOut) { - drwav_uint64 totalFramesRead; - drwav_uint8 sampleData[4096] = {0}; - drwav_uint32 bytesPerFrame; - drwav_uint32 bytesPerSample; - drwav_uint64 samplesRead; - bytesPerFrame = drwav_get_bytes_per_pcm_frame(pWav); + ma_uint64 totalFramesRead; + ma_uint8 sampleData[4096] = {0}; + ma_uint32 bytesPerFrame; + ma_uint32 bytesPerSample; + ma_uint64 samplesRead; + bytesPerFrame = ma_dr_wav_get_bytes_per_pcm_frame(pWav); if (bytesPerFrame == 0) { return 0; } @@ -77985,32 +81129,42 @@ DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_f32__alaw(drwav* pWav, drwav_ui } totalFramesRead = 0; while (framesToRead > 0) { - drwav_uint64 framesToReadThisIteration = drwav_min(framesToRead, sizeof(sampleData)/bytesPerFrame); - drwav_uint64 framesRead = drwav_read_pcm_frames(pWav, framesToReadThisIteration, sampleData); + ma_uint64 framesToReadThisIteration = ma_dr_wav_min(framesToRead, sizeof(sampleData)/bytesPerFrame); + ma_uint64 framesRead = ma_dr_wav_read_pcm_frames(pWav, framesToReadThisIteration, sampleData); if (framesRead == 0) { break; } - DRWAV_ASSERT(framesRead <= framesToReadThisIteration); + MA_DR_WAV_ASSERT(framesRead <= framesToReadThisIteration); samplesRead = framesRead * pWav->channels; if ((samplesRead * bytesPerSample) > sizeof(sampleData)) { - DRWAV_ASSERT(DRWAV_FALSE); + MA_DR_WAV_ASSERT(MA_FALSE); break; } - drwav_alaw_to_f32(pBufferOut, sampleData, (size_t)samplesRead); + ma_dr_wav_alaw_to_f32(pBufferOut, sampleData, (size_t)samplesRead); + #ifdef MA_DR_WAV_LIBSNDFILE_COMPAT + { + if (pWav->container == ma_dr_wav_container_aiff) { + ma_uint64 iSample; + for (iSample = 0; iSample < samplesRead; iSample += 1) { + pBufferOut[iSample] = -pBufferOut[iSample]; + } + } + } + #endif pBufferOut += samplesRead; framesToRead -= framesRead; totalFramesRead += framesRead; } return totalFramesRead; } -DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_f32__mulaw(drwav* pWav, drwav_uint64 framesToRead, float* pBufferOut) +MA_PRIVATE ma_uint64 ma_dr_wav_read_pcm_frames_f32__mulaw(ma_dr_wav* pWav, ma_uint64 framesToRead, float* pBufferOut) { - drwav_uint64 totalFramesRead; - drwav_uint8 sampleData[4096] = {0}; - drwav_uint32 bytesPerFrame; - drwav_uint32 bytesPerSample; - drwav_uint64 samplesRead; - bytesPerFrame = drwav_get_bytes_per_pcm_frame(pWav); + ma_uint64 totalFramesRead; + ma_uint8 sampleData[4096] = {0}; + ma_uint32 bytesPerFrame; + ma_uint32 bytesPerSample; + ma_uint64 samplesRead; + bytesPerFrame = ma_dr_wav_get_bytes_per_pcm_frame(pWav); if (bytesPerFrame == 0) { return 0; } @@ -78020,75 +81174,85 @@ DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_f32__mulaw(drwav* pWav, drwav_u } totalFramesRead = 0; while (framesToRead > 0) { - drwav_uint64 framesToReadThisIteration = drwav_min(framesToRead, sizeof(sampleData)/bytesPerFrame); - drwav_uint64 framesRead = drwav_read_pcm_frames(pWav, framesToReadThisIteration, sampleData); + ma_uint64 framesToReadThisIteration = ma_dr_wav_min(framesToRead, sizeof(sampleData)/bytesPerFrame); + ma_uint64 framesRead = ma_dr_wav_read_pcm_frames(pWav, framesToReadThisIteration, sampleData); if (framesRead == 0) { break; } - DRWAV_ASSERT(framesRead <= framesToReadThisIteration); + MA_DR_WAV_ASSERT(framesRead <= framesToReadThisIteration); samplesRead = framesRead * pWav->channels; if ((samplesRead * bytesPerSample) > sizeof(sampleData)) { - DRWAV_ASSERT(DRWAV_FALSE); + MA_DR_WAV_ASSERT(MA_FALSE); break; } - drwav_mulaw_to_f32(pBufferOut, sampleData, (size_t)samplesRead); + ma_dr_wav_mulaw_to_f32(pBufferOut, sampleData, (size_t)samplesRead); + #ifdef MA_DR_WAV_LIBSNDFILE_COMPAT + { + if (pWav->container == ma_dr_wav_container_aiff) { + ma_uint64 iSample; + for (iSample = 0; iSample < samplesRead; iSample += 1) { + pBufferOut[iSample] = -pBufferOut[iSample]; + } + } + } + #endif pBufferOut += samplesRead; framesToRead -= framesRead; totalFramesRead += framesRead; } return totalFramesRead; } -DRWAV_API drwav_uint64 drwav_read_pcm_frames_f32(drwav* pWav, drwav_uint64 framesToRead, float* pBufferOut) +MA_API ma_uint64 ma_dr_wav_read_pcm_frames_f32(ma_dr_wav* pWav, ma_uint64 framesToRead, float* pBufferOut) { if (pWav == NULL || framesToRead == 0) { return 0; } if (pBufferOut == NULL) { - return drwav_read_pcm_frames(pWav, framesToRead, NULL); + return ma_dr_wav_read_pcm_frames(pWav, framesToRead, NULL); } - if (framesToRead * pWav->channels * sizeof(float) > DRWAV_SIZE_MAX) { - framesToRead = DRWAV_SIZE_MAX / sizeof(float) / pWav->channels; + if (framesToRead * pWav->channels * sizeof(float) > MA_SIZE_MAX) { + framesToRead = MA_SIZE_MAX / sizeof(float) / pWav->channels; } - if (pWav->translatedFormatTag == DR_WAVE_FORMAT_PCM) { - return drwav_read_pcm_frames_f32__pcm(pWav, framesToRead, pBufferOut); + if (pWav->translatedFormatTag == MA_DR_WAVE_FORMAT_PCM) { + return ma_dr_wav_read_pcm_frames_f32__pcm(pWav, framesToRead, pBufferOut); } - if (pWav->translatedFormatTag == DR_WAVE_FORMAT_ADPCM || pWav->translatedFormatTag == DR_WAVE_FORMAT_DVI_ADPCM) { - return drwav_read_pcm_frames_f32__msadpcm_ima(pWav, framesToRead, pBufferOut); + if (pWav->translatedFormatTag == MA_DR_WAVE_FORMAT_ADPCM || pWav->translatedFormatTag == MA_DR_WAVE_FORMAT_DVI_ADPCM) { + return ma_dr_wav_read_pcm_frames_f32__msadpcm_ima(pWav, framesToRead, pBufferOut); } - if (pWav->translatedFormatTag == DR_WAVE_FORMAT_IEEE_FLOAT) { - return drwav_read_pcm_frames_f32__ieee(pWav, framesToRead, pBufferOut); + if (pWav->translatedFormatTag == MA_DR_WAVE_FORMAT_IEEE_FLOAT) { + return ma_dr_wav_read_pcm_frames_f32__ieee(pWav, framesToRead, pBufferOut); } - if (pWav->translatedFormatTag == DR_WAVE_FORMAT_ALAW) { - return drwav_read_pcm_frames_f32__alaw(pWav, framesToRead, pBufferOut); + if (pWav->translatedFormatTag == MA_DR_WAVE_FORMAT_ALAW) { + return ma_dr_wav_read_pcm_frames_f32__alaw(pWav, framesToRead, pBufferOut); } - if (pWav->translatedFormatTag == DR_WAVE_FORMAT_MULAW) { - return drwav_read_pcm_frames_f32__mulaw(pWav, framesToRead, pBufferOut); + if (pWav->translatedFormatTag == MA_DR_WAVE_FORMAT_MULAW) { + return ma_dr_wav_read_pcm_frames_f32__mulaw(pWav, framesToRead, pBufferOut); } return 0; } -DRWAV_API drwav_uint64 drwav_read_pcm_frames_f32le(drwav* pWav, drwav_uint64 framesToRead, float* pBufferOut) +MA_API ma_uint64 ma_dr_wav_read_pcm_frames_f32le(ma_dr_wav* pWav, ma_uint64 framesToRead, float* pBufferOut) { - drwav_uint64 framesRead = drwav_read_pcm_frames_f32(pWav, framesToRead, pBufferOut); - if (pBufferOut != NULL && drwav__is_little_endian() == DRWAV_FALSE) { - drwav__bswap_samples_f32(pBufferOut, framesRead*pWav->channels); + ma_uint64 framesRead = ma_dr_wav_read_pcm_frames_f32(pWav, framesToRead, pBufferOut); + if (pBufferOut != NULL && ma_dr_wav__is_little_endian() == MA_FALSE) { + ma_dr_wav__bswap_samples_f32(pBufferOut, framesRead*pWav->channels); } return framesRead; } -DRWAV_API drwav_uint64 drwav_read_pcm_frames_f32be(drwav* pWav, drwav_uint64 framesToRead, float* pBufferOut) +MA_API ma_uint64 ma_dr_wav_read_pcm_frames_f32be(ma_dr_wav* pWav, ma_uint64 framesToRead, float* pBufferOut) { - drwav_uint64 framesRead = drwav_read_pcm_frames_f32(pWav, framesToRead, pBufferOut); - if (pBufferOut != NULL && drwav__is_little_endian() == DRWAV_TRUE) { - drwav__bswap_samples_f32(pBufferOut, framesRead*pWav->channels); + ma_uint64 framesRead = ma_dr_wav_read_pcm_frames_f32(pWav, framesToRead, pBufferOut); + if (pBufferOut != NULL && ma_dr_wav__is_little_endian() == MA_TRUE) { + ma_dr_wav__bswap_samples_f32(pBufferOut, framesRead*pWav->channels); } return framesRead; } -DRWAV_API void drwav_u8_to_f32(float* pOut, const drwav_uint8* pIn, size_t sampleCount) +MA_API void ma_dr_wav_u8_to_f32(float* pOut, const ma_uint8* pIn, size_t sampleCount) { size_t i; if (pOut == NULL || pIn == NULL) { return; } -#ifdef DR_WAV_LIBSNDFILE_COMPAT +#ifdef MA_DR_WAV_LIBSNDFILE_COMPAT for (i = 0; i < sampleCount; ++i) { *pOut++ = (pIn[i] / 256.0f) * 2 - 1; } @@ -78101,7 +81265,7 @@ DRWAV_API void drwav_u8_to_f32(float* pOut, const drwav_uint8* pIn, size_t sampl } #endif } -DRWAV_API void drwav_s16_to_f32(float* pOut, const drwav_int16* pIn, size_t sampleCount) +MA_API void ma_dr_wav_s16_to_f32(float* pOut, const ma_int16* pIn, size_t sampleCount) { size_t i; if (pOut == NULL || pIn == NULL) { @@ -78111,7 +81275,7 @@ DRWAV_API void drwav_s16_to_f32(float* pOut, const drwav_int16* pIn, size_t samp *pOut++ = pIn[i] * 0.000030517578125f; } } -DRWAV_API void drwav_s24_to_f32(float* pOut, const drwav_uint8* pIn, size_t sampleCount) +MA_API void ma_dr_wav_s24_to_f32(float* pOut, const ma_uint8* pIn, size_t sampleCount) { size_t i; if (pOut == NULL || pIn == NULL) { @@ -78119,14 +81283,14 @@ DRWAV_API void drwav_s24_to_f32(float* pOut, const drwav_uint8* pIn, size_t samp } for (i = 0; i < sampleCount; ++i) { double x; - drwav_uint32 a = ((drwav_uint32)(pIn[i*3+0]) << 8); - drwav_uint32 b = ((drwav_uint32)(pIn[i*3+1]) << 16); - drwav_uint32 c = ((drwav_uint32)(pIn[i*3+2]) << 24); - x = (double)((drwav_int32)(a | b | c) >> 8); + ma_uint32 a = ((ma_uint32)(pIn[i*3+0]) << 8); + ma_uint32 b = ((ma_uint32)(pIn[i*3+1]) << 16); + ma_uint32 c = ((ma_uint32)(pIn[i*3+2]) << 24); + x = (double)((ma_int32)(a | b | c) >> 8); *pOut++ = (float)(x * 0.00000011920928955078125); } } -DRWAV_API void drwav_s32_to_f32(float* pOut, const drwav_int32* pIn, size_t sampleCount) +MA_API void ma_dr_wav_s32_to_f32(float* pOut, const ma_int32* pIn, size_t sampleCount) { size_t i; if (pOut == NULL || pIn == NULL) { @@ -78136,7 +81300,7 @@ DRWAV_API void drwav_s32_to_f32(float* pOut, const drwav_int32* pIn, size_t samp *pOut++ = (float)(pIn[i] / 2147483648.0); } } -DRWAV_API void drwav_f64_to_f32(float* pOut, const double* pIn, size_t sampleCount) +MA_API void ma_dr_wav_f64_to_f32(float* pOut, const double* pIn, size_t sampleCount) { size_t i; if (pOut == NULL || pIn == NULL) { @@ -78146,88 +81310,88 @@ DRWAV_API void drwav_f64_to_f32(float* pOut, const double* pIn, size_t sampleCou *pOut++ = (float)pIn[i]; } } -DRWAV_API void drwav_alaw_to_f32(float* pOut, const drwav_uint8* pIn, size_t sampleCount) +MA_API void ma_dr_wav_alaw_to_f32(float* pOut, const ma_uint8* pIn, size_t sampleCount) { size_t i; if (pOut == NULL || pIn == NULL) { return; } for (i = 0; i < sampleCount; ++i) { - *pOut++ = drwav__alaw_to_s16(pIn[i]) / 32768.0f; + *pOut++ = ma_dr_wav__alaw_to_s16(pIn[i]) / 32768.0f; } } -DRWAV_API void drwav_mulaw_to_f32(float* pOut, const drwav_uint8* pIn, size_t sampleCount) +MA_API void ma_dr_wav_mulaw_to_f32(float* pOut, const ma_uint8* pIn, size_t sampleCount) { size_t i; if (pOut == NULL || pIn == NULL) { return; } for (i = 0; i < sampleCount; ++i) { - *pOut++ = drwav__mulaw_to_s16(pIn[i]) / 32768.0f; + *pOut++ = ma_dr_wav__mulaw_to_s16(pIn[i]) / 32768.0f; } } -DRWAV_PRIVATE void drwav__pcm_to_s32(drwav_int32* pOut, const drwav_uint8* pIn, size_t totalSampleCount, unsigned int bytesPerSample) +MA_PRIVATE void ma_dr_wav__pcm_to_s32(ma_int32* pOut, const ma_uint8* pIn, size_t totalSampleCount, unsigned int bytesPerSample) { unsigned int i; if (bytesPerSample == 1) { - drwav_u8_to_s32(pOut, pIn, totalSampleCount); + ma_dr_wav_u8_to_s32(pOut, pIn, totalSampleCount); return; } if (bytesPerSample == 2) { - drwav_s16_to_s32(pOut, (const drwav_int16*)pIn, totalSampleCount); + ma_dr_wav_s16_to_s32(pOut, (const ma_int16*)pIn, totalSampleCount); return; } if (bytesPerSample == 3) { - drwav_s24_to_s32(pOut, pIn, totalSampleCount); + ma_dr_wav_s24_to_s32(pOut, pIn, totalSampleCount); return; } if (bytesPerSample == 4) { for (i = 0; i < totalSampleCount; ++i) { - *pOut++ = ((const drwav_int32*)pIn)[i]; + *pOut++ = ((const ma_int32*)pIn)[i]; } return; } if (bytesPerSample > 8) { - DRWAV_ZERO_MEMORY(pOut, totalSampleCount * sizeof(*pOut)); + MA_DR_WAV_ZERO_MEMORY(pOut, totalSampleCount * sizeof(*pOut)); return; } for (i = 0; i < totalSampleCount; ++i) { - drwav_uint64 sample = 0; + ma_uint64 sample = 0; unsigned int shift = (8 - bytesPerSample) * 8; unsigned int j; for (j = 0; j < bytesPerSample; j += 1) { - DRWAV_ASSERT(j < 8); - sample |= (drwav_uint64)(pIn[j]) << shift; + MA_DR_WAV_ASSERT(j < 8); + sample |= (ma_uint64)(pIn[j]) << shift; shift += 8; } pIn += j; - *pOut++ = (drwav_int32)((drwav_int64)sample >> 32); + *pOut++ = (ma_int32)((ma_int64)sample >> 32); } } -DRWAV_PRIVATE void drwav__ieee_to_s32(drwav_int32* pOut, const drwav_uint8* pIn, size_t totalSampleCount, unsigned int bytesPerSample) +MA_PRIVATE void ma_dr_wav__ieee_to_s32(ma_int32* pOut, const ma_uint8* pIn, size_t totalSampleCount, unsigned int bytesPerSample) { if (bytesPerSample == 4) { - drwav_f32_to_s32(pOut, (const float*)pIn, totalSampleCount); + ma_dr_wav_f32_to_s32(pOut, (const float*)pIn, totalSampleCount); return; } else if (bytesPerSample == 8) { - drwav_f64_to_s32(pOut, (const double*)pIn, totalSampleCount); + ma_dr_wav_f64_to_s32(pOut, (const double*)pIn, totalSampleCount); return; } else { - DRWAV_ZERO_MEMORY(pOut, totalSampleCount * sizeof(*pOut)); + MA_DR_WAV_ZERO_MEMORY(pOut, totalSampleCount * sizeof(*pOut)); return; } } -DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_s32__pcm(drwav* pWav, drwav_uint64 framesToRead, drwav_int32* pBufferOut) +MA_PRIVATE ma_uint64 ma_dr_wav_read_pcm_frames_s32__pcm(ma_dr_wav* pWav, ma_uint64 framesToRead, ma_int32* pBufferOut) { - drwav_uint64 totalFramesRead; - drwav_uint8 sampleData[4096] = {0}; - drwav_uint32 bytesPerFrame; - drwav_uint32 bytesPerSample; - drwav_uint64 samplesRead; - if (pWav->translatedFormatTag == DR_WAVE_FORMAT_PCM && pWav->bitsPerSample == 32) { - return drwav_read_pcm_frames(pWav, framesToRead, pBufferOut); + ma_uint64 totalFramesRead; + ma_uint8 sampleData[4096] = {0}; + ma_uint32 bytesPerFrame; + ma_uint32 bytesPerSample; + ma_uint64 samplesRead; + if (pWav->translatedFormatTag == MA_DR_WAVE_FORMAT_PCM && pWav->bitsPerSample == 32) { + return ma_dr_wav_read_pcm_frames(pWav, framesToRead, pBufferOut); } - bytesPerFrame = drwav_get_bytes_per_pcm_frame(pWav); + bytesPerFrame = ma_dr_wav_get_bytes_per_pcm_frame(pWav); if (bytesPerFrame == 0) { return 0; } @@ -78237,50 +81401,50 @@ DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_s32__pcm(drwav* pWav, drwav_uin } totalFramesRead = 0; while (framesToRead > 0) { - drwav_uint64 framesToReadThisIteration = drwav_min(framesToRead, sizeof(sampleData)/bytesPerFrame); - drwav_uint64 framesRead = drwav_read_pcm_frames(pWav, framesToReadThisIteration, sampleData); + ma_uint64 framesToReadThisIteration = ma_dr_wav_min(framesToRead, sizeof(sampleData)/bytesPerFrame); + ma_uint64 framesRead = ma_dr_wav_read_pcm_frames(pWav, framesToReadThisIteration, sampleData); if (framesRead == 0) { break; } - DRWAV_ASSERT(framesRead <= framesToReadThisIteration); + MA_DR_WAV_ASSERT(framesRead <= framesToReadThisIteration); samplesRead = framesRead * pWav->channels; if ((samplesRead * bytesPerSample) > sizeof(sampleData)) { - DRWAV_ASSERT(DRWAV_FALSE); + MA_DR_WAV_ASSERT(MA_FALSE); break; } - drwav__pcm_to_s32(pBufferOut, sampleData, (size_t)samplesRead, bytesPerSample); + ma_dr_wav__pcm_to_s32(pBufferOut, sampleData, (size_t)samplesRead, bytesPerSample); pBufferOut += samplesRead; framesToRead -= framesRead; totalFramesRead += framesRead; } return totalFramesRead; } -DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_s32__msadpcm_ima(drwav* pWav, drwav_uint64 framesToRead, drwav_int32* pBufferOut) +MA_PRIVATE ma_uint64 ma_dr_wav_read_pcm_frames_s32__msadpcm_ima(ma_dr_wav* pWav, ma_uint64 framesToRead, ma_int32* pBufferOut) { - drwav_uint64 totalFramesRead = 0; - drwav_int16 samples16[2048]; + ma_uint64 totalFramesRead = 0; + ma_int16 samples16[2048]; while (framesToRead > 0) { - drwav_uint64 framesToReadThisIteration = drwav_min(framesToRead, drwav_countof(samples16)/pWav->channels); - drwav_uint64 framesRead = drwav_read_pcm_frames_s16(pWav, framesToReadThisIteration, samples16); + ma_uint64 framesToReadThisIteration = ma_dr_wav_min(framesToRead, ma_dr_wav_countof(samples16)/pWav->channels); + ma_uint64 framesRead = ma_dr_wav_read_pcm_frames_s16(pWav, framesToReadThisIteration, samples16); if (framesRead == 0) { break; } - DRWAV_ASSERT(framesRead <= framesToReadThisIteration); - drwav_s16_to_s32(pBufferOut, samples16, (size_t)(framesRead*pWav->channels)); + MA_DR_WAV_ASSERT(framesRead <= framesToReadThisIteration); + ma_dr_wav_s16_to_s32(pBufferOut, samples16, (size_t)(framesRead*pWav->channels)); pBufferOut += framesRead*pWav->channels; framesToRead -= framesRead; totalFramesRead += framesRead; } return totalFramesRead; } -DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_s32__ieee(drwav* pWav, drwav_uint64 framesToRead, drwav_int32* pBufferOut) +MA_PRIVATE ma_uint64 ma_dr_wav_read_pcm_frames_s32__ieee(ma_dr_wav* pWav, ma_uint64 framesToRead, ma_int32* pBufferOut) { - drwav_uint64 totalFramesRead; - drwav_uint8 sampleData[4096] = {0}; - drwav_uint32 bytesPerFrame; - drwav_uint32 bytesPerSample; - drwav_uint64 samplesRead; - bytesPerFrame = drwav_get_bytes_per_pcm_frame(pWav); + ma_uint64 totalFramesRead; + ma_uint8 sampleData[4096] = {0}; + ma_uint32 bytesPerFrame; + ma_uint32 bytesPerSample; + ma_uint64 samplesRead; + bytesPerFrame = ma_dr_wav_get_bytes_per_pcm_frame(pWav); if (bytesPerFrame == 0) { return 0; } @@ -78290,32 +81454,32 @@ DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_s32__ieee(drwav* pWav, drwav_ui } totalFramesRead = 0; while (framesToRead > 0) { - drwav_uint64 framesToReadThisIteration = drwav_min(framesToRead, sizeof(sampleData)/bytesPerFrame); - drwav_uint64 framesRead = drwav_read_pcm_frames(pWav, framesToReadThisIteration, sampleData); + ma_uint64 framesToReadThisIteration = ma_dr_wav_min(framesToRead, sizeof(sampleData)/bytesPerFrame); + ma_uint64 framesRead = ma_dr_wav_read_pcm_frames(pWav, framesToReadThisIteration, sampleData); if (framesRead == 0) { break; } - DRWAV_ASSERT(framesRead <= framesToReadThisIteration); + MA_DR_WAV_ASSERT(framesRead <= framesToReadThisIteration); samplesRead = framesRead * pWav->channels; if ((samplesRead * bytesPerSample) > sizeof(sampleData)) { - DRWAV_ASSERT(DRWAV_FALSE); + MA_DR_WAV_ASSERT(MA_FALSE); break; } - drwav__ieee_to_s32(pBufferOut, sampleData, (size_t)samplesRead, bytesPerSample); + ma_dr_wav__ieee_to_s32(pBufferOut, sampleData, (size_t)samplesRead, bytesPerSample); pBufferOut += samplesRead; framesToRead -= framesRead; totalFramesRead += framesRead; } return totalFramesRead; } -DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_s32__alaw(drwav* pWav, drwav_uint64 framesToRead, drwav_int32* pBufferOut) +MA_PRIVATE ma_uint64 ma_dr_wav_read_pcm_frames_s32__alaw(ma_dr_wav* pWav, ma_uint64 framesToRead, ma_int32* pBufferOut) { - drwav_uint64 totalFramesRead; - drwav_uint8 sampleData[4096] = {0}; - drwav_uint32 bytesPerFrame; - drwav_uint32 bytesPerSample; - drwav_uint64 samplesRead; - bytesPerFrame = drwav_get_bytes_per_pcm_frame(pWav); + ma_uint64 totalFramesRead; + ma_uint8 sampleData[4096] = {0}; + ma_uint32 bytesPerFrame; + ma_uint32 bytesPerSample; + ma_uint64 samplesRead; + bytesPerFrame = ma_dr_wav_get_bytes_per_pcm_frame(pWav); if (bytesPerFrame == 0) { return 0; } @@ -78325,32 +81489,42 @@ DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_s32__alaw(drwav* pWav, drwav_ui } totalFramesRead = 0; while (framesToRead > 0) { - drwav_uint64 framesToReadThisIteration = drwav_min(framesToRead, sizeof(sampleData)/bytesPerFrame); - drwav_uint64 framesRead = drwav_read_pcm_frames(pWav, framesToReadThisIteration, sampleData); + ma_uint64 framesToReadThisIteration = ma_dr_wav_min(framesToRead, sizeof(sampleData)/bytesPerFrame); + ma_uint64 framesRead = ma_dr_wav_read_pcm_frames(pWav, framesToReadThisIteration, sampleData); if (framesRead == 0) { break; } - DRWAV_ASSERT(framesRead <= framesToReadThisIteration); + MA_DR_WAV_ASSERT(framesRead <= framesToReadThisIteration); samplesRead = framesRead * pWav->channels; if ((samplesRead * bytesPerSample) > sizeof(sampleData)) { - DRWAV_ASSERT(DRWAV_FALSE); + MA_DR_WAV_ASSERT(MA_FALSE); break; } - drwav_alaw_to_s32(pBufferOut, sampleData, (size_t)samplesRead); + ma_dr_wav_alaw_to_s32(pBufferOut, sampleData, (size_t)samplesRead); + #ifdef MA_DR_WAV_LIBSNDFILE_COMPAT + { + if (pWav->container == ma_dr_wav_container_aiff) { + ma_uint64 iSample; + for (iSample = 0; iSample < samplesRead; iSample += 1) { + pBufferOut[iSample] = -pBufferOut[iSample]; + } + } + } + #endif pBufferOut += samplesRead; framesToRead -= framesRead; totalFramesRead += framesRead; } return totalFramesRead; } -DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_s32__mulaw(drwav* pWav, drwav_uint64 framesToRead, drwav_int32* pBufferOut) +MA_PRIVATE ma_uint64 ma_dr_wav_read_pcm_frames_s32__mulaw(ma_dr_wav* pWav, ma_uint64 framesToRead, ma_int32* pBufferOut) { - drwav_uint64 totalFramesRead; - drwav_uint8 sampleData[4096] = {0}; - drwav_uint32 bytesPerFrame; - drwav_uint32 bytesPerSample; - drwav_uint64 samplesRead; - bytesPerFrame = drwav_get_bytes_per_pcm_frame(pWav); + ma_uint64 totalFramesRead; + ma_uint8 sampleData[4096] = {0}; + ma_uint32 bytesPerFrame; + ma_uint32 bytesPerSample; + ma_uint64 samplesRead; + bytesPerFrame = ma_dr_wav_get_bytes_per_pcm_frame(pWav); if (bytesPerFrame == 0) { return 0; } @@ -78360,69 +81534,79 @@ DRWAV_PRIVATE drwav_uint64 drwav_read_pcm_frames_s32__mulaw(drwav* pWav, drwav_u } totalFramesRead = 0; while (framesToRead > 0) { - drwav_uint64 framesToReadThisIteration = drwav_min(framesToRead, sizeof(sampleData)/bytesPerFrame); - drwav_uint64 framesRead = drwav_read_pcm_frames(pWav, framesToReadThisIteration, sampleData); + ma_uint64 framesToReadThisIteration = ma_dr_wav_min(framesToRead, sizeof(sampleData)/bytesPerFrame); + ma_uint64 framesRead = ma_dr_wav_read_pcm_frames(pWav, framesToReadThisIteration, sampleData); if (framesRead == 0) { break; } - DRWAV_ASSERT(framesRead <= framesToReadThisIteration); + MA_DR_WAV_ASSERT(framesRead <= framesToReadThisIteration); samplesRead = framesRead * pWav->channels; if ((samplesRead * bytesPerSample) > sizeof(sampleData)) { - DRWAV_ASSERT(DRWAV_FALSE); + MA_DR_WAV_ASSERT(MA_FALSE); break; } - drwav_mulaw_to_s32(pBufferOut, sampleData, (size_t)samplesRead); + ma_dr_wav_mulaw_to_s32(pBufferOut, sampleData, (size_t)samplesRead); + #ifdef MA_DR_WAV_LIBSNDFILE_COMPAT + { + if (pWav->container == ma_dr_wav_container_aiff) { + ma_uint64 iSample; + for (iSample = 0; iSample < samplesRead; iSample += 1) { + pBufferOut[iSample] = -pBufferOut[iSample]; + } + } + } + #endif pBufferOut += samplesRead; framesToRead -= framesRead; totalFramesRead += framesRead; } return totalFramesRead; } -DRWAV_API drwav_uint64 drwav_read_pcm_frames_s32(drwav* pWav, drwav_uint64 framesToRead, drwav_int32* pBufferOut) +MA_API ma_uint64 ma_dr_wav_read_pcm_frames_s32(ma_dr_wav* pWav, ma_uint64 framesToRead, ma_int32* pBufferOut) { if (pWav == NULL || framesToRead == 0) { return 0; } if (pBufferOut == NULL) { - return drwav_read_pcm_frames(pWav, framesToRead, NULL); + return ma_dr_wav_read_pcm_frames(pWav, framesToRead, NULL); } - if (framesToRead * pWav->channels * sizeof(drwav_int32) > DRWAV_SIZE_MAX) { - framesToRead = DRWAV_SIZE_MAX / sizeof(drwav_int32) / pWav->channels; + if (framesToRead * pWav->channels * sizeof(ma_int32) > MA_SIZE_MAX) { + framesToRead = MA_SIZE_MAX / sizeof(ma_int32) / pWav->channels; } - if (pWav->translatedFormatTag == DR_WAVE_FORMAT_PCM) { - return drwav_read_pcm_frames_s32__pcm(pWav, framesToRead, pBufferOut); + if (pWav->translatedFormatTag == MA_DR_WAVE_FORMAT_PCM) { + return ma_dr_wav_read_pcm_frames_s32__pcm(pWav, framesToRead, pBufferOut); } - if (pWav->translatedFormatTag == DR_WAVE_FORMAT_ADPCM || pWav->translatedFormatTag == DR_WAVE_FORMAT_DVI_ADPCM) { - return drwav_read_pcm_frames_s32__msadpcm_ima(pWav, framesToRead, pBufferOut); + if (pWav->translatedFormatTag == MA_DR_WAVE_FORMAT_ADPCM || pWav->translatedFormatTag == MA_DR_WAVE_FORMAT_DVI_ADPCM) { + return ma_dr_wav_read_pcm_frames_s32__msadpcm_ima(pWav, framesToRead, pBufferOut); } - if (pWav->translatedFormatTag == DR_WAVE_FORMAT_IEEE_FLOAT) { - return drwav_read_pcm_frames_s32__ieee(pWav, framesToRead, pBufferOut); + if (pWav->translatedFormatTag == MA_DR_WAVE_FORMAT_IEEE_FLOAT) { + return ma_dr_wav_read_pcm_frames_s32__ieee(pWav, framesToRead, pBufferOut); } - if (pWav->translatedFormatTag == DR_WAVE_FORMAT_ALAW) { - return drwav_read_pcm_frames_s32__alaw(pWav, framesToRead, pBufferOut); + if (pWav->translatedFormatTag == MA_DR_WAVE_FORMAT_ALAW) { + return ma_dr_wav_read_pcm_frames_s32__alaw(pWav, framesToRead, pBufferOut); } - if (pWav->translatedFormatTag == DR_WAVE_FORMAT_MULAW) { - return drwav_read_pcm_frames_s32__mulaw(pWav, framesToRead, pBufferOut); + if (pWav->translatedFormatTag == MA_DR_WAVE_FORMAT_MULAW) { + return ma_dr_wav_read_pcm_frames_s32__mulaw(pWav, framesToRead, pBufferOut); } return 0; } -DRWAV_API drwav_uint64 drwav_read_pcm_frames_s32le(drwav* pWav, drwav_uint64 framesToRead, drwav_int32* pBufferOut) +MA_API ma_uint64 ma_dr_wav_read_pcm_frames_s32le(ma_dr_wav* pWav, ma_uint64 framesToRead, ma_int32* pBufferOut) { - drwav_uint64 framesRead = drwav_read_pcm_frames_s32(pWav, framesToRead, pBufferOut); - if (pBufferOut != NULL && drwav__is_little_endian() == DRWAV_FALSE) { - drwav__bswap_samples_s32(pBufferOut, framesRead*pWav->channels); + ma_uint64 framesRead = ma_dr_wav_read_pcm_frames_s32(pWav, framesToRead, pBufferOut); + if (pBufferOut != NULL && ma_dr_wav__is_little_endian() == MA_FALSE) { + ma_dr_wav__bswap_samples_s32(pBufferOut, framesRead*pWav->channels); } return framesRead; } -DRWAV_API drwav_uint64 drwav_read_pcm_frames_s32be(drwav* pWav, drwav_uint64 framesToRead, drwav_int32* pBufferOut) +MA_API ma_uint64 ma_dr_wav_read_pcm_frames_s32be(ma_dr_wav* pWav, ma_uint64 framesToRead, ma_int32* pBufferOut) { - drwav_uint64 framesRead = drwav_read_pcm_frames_s32(pWav, framesToRead, pBufferOut); - if (pBufferOut != NULL && drwav__is_little_endian() == DRWAV_TRUE) { - drwav__bswap_samples_s32(pBufferOut, framesRead*pWav->channels); + ma_uint64 framesRead = ma_dr_wav_read_pcm_frames_s32(pWav, framesToRead, pBufferOut); + if (pBufferOut != NULL && ma_dr_wav__is_little_endian() == MA_TRUE) { + ma_dr_wav__bswap_samples_s32(pBufferOut, framesRead*pWav->channels); } return framesRead; } -DRWAV_API void drwav_u8_to_s32(drwav_int32* pOut, const drwav_uint8* pIn, size_t sampleCount) +MA_API void ma_dr_wav_u8_to_s32(ma_int32* pOut, const ma_uint8* pIn, size_t sampleCount) { size_t i; if (pOut == NULL || pIn == NULL) { @@ -78432,7 +81616,7 @@ DRWAV_API void drwav_u8_to_s32(drwav_int32* pOut, const drwav_uint8* pIn, size_t *pOut++ = ((int)pIn[i] - 128) << 24; } } -DRWAV_API void drwav_s16_to_s32(drwav_int32* pOut, const drwav_int16* pIn, size_t sampleCount) +MA_API void ma_dr_wav_s16_to_s32(ma_int32* pOut, const ma_int16* pIn, size_t sampleCount) { size_t i; if (pOut == NULL || pIn == NULL) { @@ -78442,7 +81626,7 @@ DRWAV_API void drwav_s16_to_s32(drwav_int32* pOut, const drwav_int16* pIn, size_ *pOut++ = pIn[i] << 16; } } -DRWAV_API void drwav_s24_to_s32(drwav_int32* pOut, const drwav_uint8* pIn, size_t sampleCount) +MA_API void ma_dr_wav_s24_to_s32(ma_int32* pOut, const ma_uint8* pIn, size_t sampleCount) { size_t i; if (pOut == NULL || pIn == NULL) { @@ -78452,73 +81636,73 @@ DRWAV_API void drwav_s24_to_s32(drwav_int32* pOut, const drwav_uint8* pIn, size_ unsigned int s0 = pIn[i*3 + 0]; unsigned int s1 = pIn[i*3 + 1]; unsigned int s2 = pIn[i*3 + 2]; - drwav_int32 sample32 = (drwav_int32)((s0 << 8) | (s1 << 16) | (s2 << 24)); + ma_int32 sample32 = (ma_int32)((s0 << 8) | (s1 << 16) | (s2 << 24)); *pOut++ = sample32; } } -DRWAV_API void drwav_f32_to_s32(drwav_int32* pOut, const float* pIn, size_t sampleCount) +MA_API void ma_dr_wav_f32_to_s32(ma_int32* pOut, const float* pIn, size_t sampleCount) { size_t i; if (pOut == NULL || pIn == NULL) { return; } for (i = 0; i < sampleCount; ++i) { - *pOut++ = (drwav_int32)(2147483648.0 * pIn[i]); + *pOut++ = (ma_int32)(2147483648.0 * pIn[i]); } } -DRWAV_API void drwav_f64_to_s32(drwav_int32* pOut, const double* pIn, size_t sampleCount) +MA_API void ma_dr_wav_f64_to_s32(ma_int32* pOut, const double* pIn, size_t sampleCount) { size_t i; if (pOut == NULL || pIn == NULL) { return; } for (i = 0; i < sampleCount; ++i) { - *pOut++ = (drwav_int32)(2147483648.0 * pIn[i]); + *pOut++ = (ma_int32)(2147483648.0 * pIn[i]); } } -DRWAV_API void drwav_alaw_to_s32(drwav_int32* pOut, const drwav_uint8* pIn, size_t sampleCount) +MA_API void ma_dr_wav_alaw_to_s32(ma_int32* pOut, const ma_uint8* pIn, size_t sampleCount) { size_t i; if (pOut == NULL || pIn == NULL) { return; } for (i = 0; i < sampleCount; ++i) { - *pOut++ = ((drwav_int32)drwav__alaw_to_s16(pIn[i])) << 16; + *pOut++ = ((ma_int32)ma_dr_wav__alaw_to_s16(pIn[i])) << 16; } } -DRWAV_API void drwav_mulaw_to_s32(drwav_int32* pOut, const drwav_uint8* pIn, size_t sampleCount) +MA_API void ma_dr_wav_mulaw_to_s32(ma_int32* pOut, const ma_uint8* pIn, size_t sampleCount) { size_t i; if (pOut == NULL || pIn == NULL) { return; } for (i= 0; i < sampleCount; ++i) { - *pOut++ = ((drwav_int32)drwav__mulaw_to_s16(pIn[i])) << 16; + *pOut++ = ((ma_int32)ma_dr_wav__mulaw_to_s16(pIn[i])) << 16; } } -DRWAV_PRIVATE drwav_int16* drwav__read_pcm_frames_and_close_s16(drwav* pWav, unsigned int* channels, unsigned int* sampleRate, drwav_uint64* totalFrameCount) +MA_PRIVATE ma_int16* ma_dr_wav__read_pcm_frames_and_close_s16(ma_dr_wav* pWav, unsigned int* channels, unsigned int* sampleRate, ma_uint64* totalFrameCount) { - drwav_uint64 sampleDataSize; - drwav_int16* pSampleData; - drwav_uint64 framesRead; - DRWAV_ASSERT(pWav != NULL); - sampleDataSize = pWav->totalPCMFrameCount * pWav->channels * sizeof(drwav_int16); - if (sampleDataSize > DRWAV_SIZE_MAX) { - drwav_uninit(pWav); + ma_uint64 sampleDataSize; + ma_int16* pSampleData; + ma_uint64 framesRead; + MA_DR_WAV_ASSERT(pWav != NULL); + sampleDataSize = pWav->totalPCMFrameCount * pWav->channels * sizeof(ma_int16); + if (sampleDataSize > MA_SIZE_MAX) { + ma_dr_wav_uninit(pWav); return NULL; } - pSampleData = (drwav_int16*)drwav__malloc_from_callbacks((size_t)sampleDataSize, &pWav->allocationCallbacks); + pSampleData = (ma_int16*)ma_dr_wav__malloc_from_callbacks((size_t)sampleDataSize, &pWav->allocationCallbacks); if (pSampleData == NULL) { - drwav_uninit(pWav); + ma_dr_wav_uninit(pWav); return NULL; } - framesRead = drwav_read_pcm_frames_s16(pWav, (size_t)pWav->totalPCMFrameCount, pSampleData); + framesRead = ma_dr_wav_read_pcm_frames_s16(pWav, (size_t)pWav->totalPCMFrameCount, pSampleData); if (framesRead != pWav->totalPCMFrameCount) { - drwav__free_from_callbacks(pSampleData, &pWav->allocationCallbacks); - drwav_uninit(pWav); + ma_dr_wav__free_from_callbacks(pSampleData, &pWav->allocationCallbacks); + ma_dr_wav_uninit(pWav); return NULL; } - drwav_uninit(pWav); + ma_dr_wav_uninit(pWav); if (sampleRate) { *sampleRate = pWav->sampleRate; } @@ -78530,29 +81714,29 @@ DRWAV_PRIVATE drwav_int16* drwav__read_pcm_frames_and_close_s16(drwav* pWav, uns } return pSampleData; } -DRWAV_PRIVATE float* drwav__read_pcm_frames_and_close_f32(drwav* pWav, unsigned int* channels, unsigned int* sampleRate, drwav_uint64* totalFrameCount) +MA_PRIVATE float* ma_dr_wav__read_pcm_frames_and_close_f32(ma_dr_wav* pWav, unsigned int* channels, unsigned int* sampleRate, ma_uint64* totalFrameCount) { - drwav_uint64 sampleDataSize; + ma_uint64 sampleDataSize; float* pSampleData; - drwav_uint64 framesRead; - DRWAV_ASSERT(pWav != NULL); + ma_uint64 framesRead; + MA_DR_WAV_ASSERT(pWav != NULL); sampleDataSize = pWav->totalPCMFrameCount * pWav->channels * sizeof(float); - if (sampleDataSize > DRWAV_SIZE_MAX) { - drwav_uninit(pWav); + if (sampleDataSize > MA_SIZE_MAX) { + ma_dr_wav_uninit(pWav); return NULL; } - pSampleData = (float*)drwav__malloc_from_callbacks((size_t)sampleDataSize, &pWav->allocationCallbacks); + pSampleData = (float*)ma_dr_wav__malloc_from_callbacks((size_t)sampleDataSize, &pWav->allocationCallbacks); if (pSampleData == NULL) { - drwav_uninit(pWav); + ma_dr_wav_uninit(pWav); return NULL; } - framesRead = drwav_read_pcm_frames_f32(pWav, (size_t)pWav->totalPCMFrameCount, pSampleData); + framesRead = ma_dr_wav_read_pcm_frames_f32(pWav, (size_t)pWav->totalPCMFrameCount, pSampleData); if (framesRead != pWav->totalPCMFrameCount) { - drwav__free_from_callbacks(pSampleData, &pWav->allocationCallbacks); - drwav_uninit(pWav); + ma_dr_wav__free_from_callbacks(pSampleData, &pWav->allocationCallbacks); + ma_dr_wav_uninit(pWav); return NULL; } - drwav_uninit(pWav); + ma_dr_wav_uninit(pWav); if (sampleRate) { *sampleRate = pWav->sampleRate; } @@ -78564,29 +81748,29 @@ DRWAV_PRIVATE float* drwav__read_pcm_frames_and_close_f32(drwav* pWav, unsigned } return pSampleData; } -DRWAV_PRIVATE drwav_int32* drwav__read_pcm_frames_and_close_s32(drwav* pWav, unsigned int* channels, unsigned int* sampleRate, drwav_uint64* totalFrameCount) +MA_PRIVATE ma_int32* ma_dr_wav__read_pcm_frames_and_close_s32(ma_dr_wav* pWav, unsigned int* channels, unsigned int* sampleRate, ma_uint64* totalFrameCount) { - drwav_uint64 sampleDataSize; - drwav_int32* pSampleData; - drwav_uint64 framesRead; - DRWAV_ASSERT(pWav != NULL); - sampleDataSize = pWav->totalPCMFrameCount * pWav->channels * sizeof(drwav_int32); - if (sampleDataSize > DRWAV_SIZE_MAX) { - drwav_uninit(pWav); + ma_uint64 sampleDataSize; + ma_int32* pSampleData; + ma_uint64 framesRead; + MA_DR_WAV_ASSERT(pWav != NULL); + sampleDataSize = pWav->totalPCMFrameCount * pWav->channels * sizeof(ma_int32); + if (sampleDataSize > MA_SIZE_MAX) { + ma_dr_wav_uninit(pWav); return NULL; } - pSampleData = (drwav_int32*)drwav__malloc_from_callbacks((size_t)sampleDataSize, &pWav->allocationCallbacks); + pSampleData = (ma_int32*)ma_dr_wav__malloc_from_callbacks((size_t)sampleDataSize, &pWav->allocationCallbacks); if (pSampleData == NULL) { - drwav_uninit(pWav); + ma_dr_wav_uninit(pWav); return NULL; } - framesRead = drwav_read_pcm_frames_s32(pWav, (size_t)pWav->totalPCMFrameCount, pSampleData); + framesRead = ma_dr_wav_read_pcm_frames_s32(pWav, (size_t)pWav->totalPCMFrameCount, pSampleData); if (framesRead != pWav->totalPCMFrameCount) { - drwav__free_from_callbacks(pSampleData, &pWav->allocationCallbacks); - drwav_uninit(pWav); + ma_dr_wav__free_from_callbacks(pSampleData, &pWav->allocationCallbacks); + ma_dr_wav_uninit(pWav); return NULL; } - drwav_uninit(pWav); + ma_dr_wav_uninit(pWav); if (sampleRate) { *sampleRate = pWav->sampleRate; } @@ -78598,9 +81782,9 @@ DRWAV_PRIVATE drwav_int32* drwav__read_pcm_frames_and_close_s32(drwav* pWav, uns } return pSampleData; } -DRWAV_API drwav_int16* drwav_open_and_read_pcm_frames_s16(drwav_read_proc onRead, drwav_seek_proc onSeek, void* pUserData, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks) +MA_API ma_int16* ma_dr_wav_open_and_read_pcm_frames_s16(ma_dr_wav_read_proc onRead, ma_dr_wav_seek_proc onSeek, void* pUserData, unsigned int* channelsOut, unsigned int* sampleRateOut, ma_uint64* totalFrameCountOut, const ma_allocation_callbacks* pAllocationCallbacks) { - drwav wav; + ma_dr_wav wav; if (channelsOut) { *channelsOut = 0; } @@ -78610,14 +81794,14 @@ DRWAV_API drwav_int16* drwav_open_and_read_pcm_frames_s16(drwav_read_proc onRead if (totalFrameCountOut) { *totalFrameCountOut = 0; } - if (!drwav_init(&wav, onRead, onSeek, pUserData, pAllocationCallbacks)) { + if (!ma_dr_wav_init(&wav, onRead, onSeek, pUserData, pAllocationCallbacks)) { return NULL; } - return drwav__read_pcm_frames_and_close_s16(&wav, channelsOut, sampleRateOut, totalFrameCountOut); + return ma_dr_wav__read_pcm_frames_and_close_s16(&wav, channelsOut, sampleRateOut, totalFrameCountOut); } -DRWAV_API float* drwav_open_and_read_pcm_frames_f32(drwav_read_proc onRead, drwav_seek_proc onSeek, void* pUserData, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks) +MA_API float* ma_dr_wav_open_and_read_pcm_frames_f32(ma_dr_wav_read_proc onRead, ma_dr_wav_seek_proc onSeek, void* pUserData, unsigned int* channelsOut, unsigned int* sampleRateOut, ma_uint64* totalFrameCountOut, const ma_allocation_callbacks* pAllocationCallbacks) { - drwav wav; + ma_dr_wav wav; if (channelsOut) { *channelsOut = 0; } @@ -78627,14 +81811,14 @@ DRWAV_API float* drwav_open_and_read_pcm_frames_f32(drwav_read_proc onRead, drwa if (totalFrameCountOut) { *totalFrameCountOut = 0; } - if (!drwav_init(&wav, onRead, onSeek, pUserData, pAllocationCallbacks)) { + if (!ma_dr_wav_init(&wav, onRead, onSeek, pUserData, pAllocationCallbacks)) { return NULL; } - return drwav__read_pcm_frames_and_close_f32(&wav, channelsOut, sampleRateOut, totalFrameCountOut); + return ma_dr_wav__read_pcm_frames_and_close_f32(&wav, channelsOut, sampleRateOut, totalFrameCountOut); } -DRWAV_API drwav_int32* drwav_open_and_read_pcm_frames_s32(drwav_read_proc onRead, drwav_seek_proc onSeek, void* pUserData, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks) +MA_API ma_int32* ma_dr_wav_open_and_read_pcm_frames_s32(ma_dr_wav_read_proc onRead, ma_dr_wav_seek_proc onSeek, void* pUserData, unsigned int* channelsOut, unsigned int* sampleRateOut, ma_uint64* totalFrameCountOut, const ma_allocation_callbacks* pAllocationCallbacks) { - drwav wav; + ma_dr_wav wav; if (channelsOut) { *channelsOut = 0; } @@ -78644,15 +81828,15 @@ DRWAV_API drwav_int32* drwav_open_and_read_pcm_frames_s32(drwav_read_proc onRead if (totalFrameCountOut) { *totalFrameCountOut = 0; } - if (!drwav_init(&wav, onRead, onSeek, pUserData, pAllocationCallbacks)) { + if (!ma_dr_wav_init(&wav, onRead, onSeek, pUserData, pAllocationCallbacks)) { return NULL; } - return drwav__read_pcm_frames_and_close_s32(&wav, channelsOut, sampleRateOut, totalFrameCountOut); + return ma_dr_wav__read_pcm_frames_and_close_s32(&wav, channelsOut, sampleRateOut, totalFrameCountOut); } -#ifndef DR_WAV_NO_STDIO -DRWAV_API drwav_int16* drwav_open_file_and_read_pcm_frames_s16(const char* filename, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks) +#ifndef MA_DR_WAV_NO_STDIO +MA_API ma_int16* ma_dr_wav_open_file_and_read_pcm_frames_s16(const char* filename, unsigned int* channelsOut, unsigned int* sampleRateOut, ma_uint64* totalFrameCountOut, const ma_allocation_callbacks* pAllocationCallbacks) { - drwav wav; + ma_dr_wav wav; if (channelsOut) { *channelsOut = 0; } @@ -78662,14 +81846,14 @@ DRWAV_API drwav_int16* drwav_open_file_and_read_pcm_frames_s16(const char* filen if (totalFrameCountOut) { *totalFrameCountOut = 0; } - if (!drwav_init_file(&wav, filename, pAllocationCallbacks)) { + if (!ma_dr_wav_init_file(&wav, filename, pAllocationCallbacks)) { return NULL; } - return drwav__read_pcm_frames_and_close_s16(&wav, channelsOut, sampleRateOut, totalFrameCountOut); + return ma_dr_wav__read_pcm_frames_and_close_s16(&wav, channelsOut, sampleRateOut, totalFrameCountOut); } -DRWAV_API float* drwav_open_file_and_read_pcm_frames_f32(const char* filename, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks) +MA_API float* ma_dr_wav_open_file_and_read_pcm_frames_f32(const char* filename, unsigned int* channelsOut, unsigned int* sampleRateOut, ma_uint64* totalFrameCountOut, const ma_allocation_callbacks* pAllocationCallbacks) { - drwav wav; + ma_dr_wav wav; if (channelsOut) { *channelsOut = 0; } @@ -78679,14 +81863,14 @@ DRWAV_API float* drwav_open_file_and_read_pcm_frames_f32(const char* filename, u if (totalFrameCountOut) { *totalFrameCountOut = 0; } - if (!drwav_init_file(&wav, filename, pAllocationCallbacks)) { + if (!ma_dr_wav_init_file(&wav, filename, pAllocationCallbacks)) { return NULL; } - return drwav__read_pcm_frames_and_close_f32(&wav, channelsOut, sampleRateOut, totalFrameCountOut); + return ma_dr_wav__read_pcm_frames_and_close_f32(&wav, channelsOut, sampleRateOut, totalFrameCountOut); } -DRWAV_API drwav_int32* drwav_open_file_and_read_pcm_frames_s32(const char* filename, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks) +MA_API ma_int32* ma_dr_wav_open_file_and_read_pcm_frames_s32(const char* filename, unsigned int* channelsOut, unsigned int* sampleRateOut, ma_uint64* totalFrameCountOut, const ma_allocation_callbacks* pAllocationCallbacks) { - drwav wav; + ma_dr_wav wav; if (channelsOut) { *channelsOut = 0; } @@ -78696,14 +81880,15 @@ DRWAV_API drwav_int32* drwav_open_file_and_read_pcm_frames_s32(const char* filen if (totalFrameCountOut) { *totalFrameCountOut = 0; } - if (!drwav_init_file(&wav, filename, pAllocationCallbacks)) { + if (!ma_dr_wav_init_file(&wav, filename, pAllocationCallbacks)) { return NULL; } - return drwav__read_pcm_frames_and_close_s32(&wav, channelsOut, sampleRateOut, totalFrameCountOut); + return ma_dr_wav__read_pcm_frames_and_close_s32(&wav, channelsOut, sampleRateOut, totalFrameCountOut); } -DRWAV_API drwav_int16* drwav_open_file_and_read_pcm_frames_s16_w(const wchar_t* filename, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks) +#ifndef MA_DR_WAV_NO_WCHAR +MA_API ma_int16* ma_dr_wav_open_file_and_read_pcm_frames_s16_w(const wchar_t* filename, unsigned int* channelsOut, unsigned int* sampleRateOut, ma_uint64* totalFrameCountOut, const ma_allocation_callbacks* pAllocationCallbacks) { - drwav wav; + ma_dr_wav wav; if (sampleRateOut) { *sampleRateOut = 0; } @@ -78713,14 +81898,14 @@ DRWAV_API drwav_int16* drwav_open_file_and_read_pcm_frames_s16_w(const wchar_t* if (totalFrameCountOut) { *totalFrameCountOut = 0; } - if (!drwav_init_file_w(&wav, filename, pAllocationCallbacks)) { + if (!ma_dr_wav_init_file_w(&wav, filename, pAllocationCallbacks)) { return NULL; } - return drwav__read_pcm_frames_and_close_s16(&wav, channelsOut, sampleRateOut, totalFrameCountOut); + return ma_dr_wav__read_pcm_frames_and_close_s16(&wav, channelsOut, sampleRateOut, totalFrameCountOut); } -DRWAV_API float* drwav_open_file_and_read_pcm_frames_f32_w(const wchar_t* filename, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks) +MA_API float* ma_dr_wav_open_file_and_read_pcm_frames_f32_w(const wchar_t* filename, unsigned int* channelsOut, unsigned int* sampleRateOut, ma_uint64* totalFrameCountOut, const ma_allocation_callbacks* pAllocationCallbacks) { - drwav wav; + ma_dr_wav wav; if (sampleRateOut) { *sampleRateOut = 0; } @@ -78730,14 +81915,14 @@ DRWAV_API float* drwav_open_file_and_read_pcm_frames_f32_w(const wchar_t* filena if (totalFrameCountOut) { *totalFrameCountOut = 0; } - if (!drwav_init_file_w(&wav, filename, pAllocationCallbacks)) { + if (!ma_dr_wav_init_file_w(&wav, filename, pAllocationCallbacks)) { return NULL; } - return drwav__read_pcm_frames_and_close_f32(&wav, channelsOut, sampleRateOut, totalFrameCountOut); + return ma_dr_wav__read_pcm_frames_and_close_f32(&wav, channelsOut, sampleRateOut, totalFrameCountOut); } -DRWAV_API drwav_int32* drwav_open_file_and_read_pcm_frames_s32_w(const wchar_t* filename, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks) +MA_API ma_int32* ma_dr_wav_open_file_and_read_pcm_frames_s32_w(const wchar_t* filename, unsigned int* channelsOut, unsigned int* sampleRateOut, ma_uint64* totalFrameCountOut, const ma_allocation_callbacks* pAllocationCallbacks) { - drwav wav; + ma_dr_wav wav; if (sampleRateOut) { *sampleRateOut = 0; } @@ -78747,15 +81932,16 @@ DRWAV_API drwav_int32* drwav_open_file_and_read_pcm_frames_s32_w(const wchar_t* if (totalFrameCountOut) { *totalFrameCountOut = 0; } - if (!drwav_init_file_w(&wav, filename, pAllocationCallbacks)) { + if (!ma_dr_wav_init_file_w(&wav, filename, pAllocationCallbacks)) { return NULL; } - return drwav__read_pcm_frames_and_close_s32(&wav, channelsOut, sampleRateOut, totalFrameCountOut); + return ma_dr_wav__read_pcm_frames_and_close_s32(&wav, channelsOut, sampleRateOut, totalFrameCountOut); } #endif -DRWAV_API drwav_int16* drwav_open_memory_and_read_pcm_frames_s16(const void* data, size_t dataSize, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks) +#endif +MA_API ma_int16* ma_dr_wav_open_memory_and_read_pcm_frames_s16(const void* data, size_t dataSize, unsigned int* channelsOut, unsigned int* sampleRateOut, ma_uint64* totalFrameCountOut, const ma_allocation_callbacks* pAllocationCallbacks) { - drwav wav; + ma_dr_wav wav; if (channelsOut) { *channelsOut = 0; } @@ -78765,14 +81951,14 @@ DRWAV_API drwav_int16* drwav_open_memory_and_read_pcm_frames_s16(const void* dat if (totalFrameCountOut) { *totalFrameCountOut = 0; } - if (!drwav_init_memory(&wav, data, dataSize, pAllocationCallbacks)) { + if (!ma_dr_wav_init_memory(&wav, data, dataSize, pAllocationCallbacks)) { return NULL; } - return drwav__read_pcm_frames_and_close_s16(&wav, channelsOut, sampleRateOut, totalFrameCountOut); + return ma_dr_wav__read_pcm_frames_and_close_s16(&wav, channelsOut, sampleRateOut, totalFrameCountOut); } -DRWAV_API float* drwav_open_memory_and_read_pcm_frames_f32(const void* data, size_t dataSize, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks) +MA_API float* ma_dr_wav_open_memory_and_read_pcm_frames_f32(const void* data, size_t dataSize, unsigned int* channelsOut, unsigned int* sampleRateOut, ma_uint64* totalFrameCountOut, const ma_allocation_callbacks* pAllocationCallbacks) { - drwav wav; + ma_dr_wav wav; if (channelsOut) { *channelsOut = 0; } @@ -78782,14 +81968,14 @@ DRWAV_API float* drwav_open_memory_and_read_pcm_frames_f32(const void* data, siz if (totalFrameCountOut) { *totalFrameCountOut = 0; } - if (!drwav_init_memory(&wav, data, dataSize, pAllocationCallbacks)) { + if (!ma_dr_wav_init_memory(&wav, data, dataSize, pAllocationCallbacks)) { return NULL; } - return drwav__read_pcm_frames_and_close_f32(&wav, channelsOut, sampleRateOut, totalFrameCountOut); + return ma_dr_wav__read_pcm_frames_and_close_f32(&wav, channelsOut, sampleRateOut, totalFrameCountOut); } -DRWAV_API drwav_int32* drwav_open_memory_and_read_pcm_frames_s32(const void* data, size_t dataSize, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks) +MA_API ma_int32* ma_dr_wav_open_memory_and_read_pcm_frames_s32(const void* data, size_t dataSize, unsigned int* channelsOut, unsigned int* sampleRateOut, ma_uint64* totalFrameCountOut, const ma_allocation_callbacks* pAllocationCallbacks) { - drwav wav; + ma_dr_wav wav; if (channelsOut) { *channelsOut = 0; } @@ -78799,66 +81985,66 @@ DRWAV_API drwav_int32* drwav_open_memory_and_read_pcm_frames_s32(const void* dat if (totalFrameCountOut) { *totalFrameCountOut = 0; } - if (!drwav_init_memory(&wav, data, dataSize, pAllocationCallbacks)) { + if (!ma_dr_wav_init_memory(&wav, data, dataSize, pAllocationCallbacks)) { return NULL; } - return drwav__read_pcm_frames_and_close_s32(&wav, channelsOut, sampleRateOut, totalFrameCountOut); + return ma_dr_wav__read_pcm_frames_and_close_s32(&wav, channelsOut, sampleRateOut, totalFrameCountOut); } #endif -DRWAV_API void drwav_free(void* p, const drwav_allocation_callbacks* pAllocationCallbacks) +MA_API void ma_dr_wav_free(void* p, const ma_allocation_callbacks* pAllocationCallbacks) { if (pAllocationCallbacks != NULL) { - drwav__free_from_callbacks(p, pAllocationCallbacks); + ma_dr_wav__free_from_callbacks(p, pAllocationCallbacks); } else { - drwav__free_default(p, NULL); + ma_dr_wav__free_default(p, NULL); } } -DRWAV_API drwav_uint16 drwav_bytes_to_u16(const drwav_uint8* data) +MA_API ma_uint16 ma_dr_wav_bytes_to_u16(const ma_uint8* data) { - return ((drwav_uint16)data[0] << 0) | ((drwav_uint16)data[1] << 8); + return ((ma_uint16)data[0] << 0) | ((ma_uint16)data[1] << 8); } -DRWAV_API drwav_int16 drwav_bytes_to_s16(const drwav_uint8* data) +MA_API ma_int16 ma_dr_wav_bytes_to_s16(const ma_uint8* data) { - return (drwav_int16)drwav_bytes_to_u16(data); + return (ma_int16)ma_dr_wav_bytes_to_u16(data); } -DRWAV_API drwav_uint32 drwav_bytes_to_u32(const drwav_uint8* data) +MA_API ma_uint32 ma_dr_wav_bytes_to_u32(const ma_uint8* data) { - return ((drwav_uint32)data[0] << 0) | ((drwav_uint32)data[1] << 8) | ((drwav_uint32)data[2] << 16) | ((drwav_uint32)data[3] << 24); + return ma_dr_wav_bytes_to_u32_le(data); } -DRWAV_API float drwav_bytes_to_f32(const drwav_uint8* data) +MA_API float ma_dr_wav_bytes_to_f32(const ma_uint8* data) { union { - drwav_uint32 u32; + ma_uint32 u32; float f32; } value; - value.u32 = drwav_bytes_to_u32(data); + value.u32 = ma_dr_wav_bytes_to_u32(data); return value.f32; } -DRWAV_API drwav_int32 drwav_bytes_to_s32(const drwav_uint8* data) +MA_API ma_int32 ma_dr_wav_bytes_to_s32(const ma_uint8* data) { - return (drwav_int32)drwav_bytes_to_u32(data); + return (ma_int32)ma_dr_wav_bytes_to_u32(data); } -DRWAV_API drwav_uint64 drwav_bytes_to_u64(const drwav_uint8* data) +MA_API ma_uint64 ma_dr_wav_bytes_to_u64(const ma_uint8* data) { return - ((drwav_uint64)data[0] << 0) | ((drwav_uint64)data[1] << 8) | ((drwav_uint64)data[2] << 16) | ((drwav_uint64)data[3] << 24) | - ((drwav_uint64)data[4] << 32) | ((drwav_uint64)data[5] << 40) | ((drwav_uint64)data[6] << 48) | ((drwav_uint64)data[7] << 56); + ((ma_uint64)data[0] << 0) | ((ma_uint64)data[1] << 8) | ((ma_uint64)data[2] << 16) | ((ma_uint64)data[3] << 24) | + ((ma_uint64)data[4] << 32) | ((ma_uint64)data[5] << 40) | ((ma_uint64)data[6] << 48) | ((ma_uint64)data[7] << 56); } -DRWAV_API drwav_int64 drwav_bytes_to_s64(const drwav_uint8* data) +MA_API ma_int64 ma_dr_wav_bytes_to_s64(const ma_uint8* data) { - return (drwav_int64)drwav_bytes_to_u64(data); + return (ma_int64)ma_dr_wav_bytes_to_u64(data); } -DRWAV_API drwav_bool32 drwav_guid_equal(const drwav_uint8 a[16], const drwav_uint8 b[16]) +MA_API ma_bool32 ma_dr_wav_guid_equal(const ma_uint8 a[16], const ma_uint8 b[16]) { int i; for (i = 0; i < 16; i += 1) { if (a[i] != b[i]) { - return DRWAV_FALSE; + return MA_FALSE; } } - return DRWAV_TRUE; + return MA_TRUE; } -DRWAV_API drwav_bool32 drwav_fourcc_equal(const drwav_uint8* a, const char* b) +MA_API ma_bool32 ma_dr_wav_fourcc_equal(const ma_uint8* a, const char* b) { return a[0] == b[0] && @@ -78866,16 +82052,19 @@ DRWAV_API drwav_bool32 drwav_fourcc_equal(const drwav_uint8* a, const char* b) a[2] == b[2] && a[3] == b[3]; } +#ifdef __MRC__ +#pragma options opt reset +#endif #endif /* dr_wav_c end */ -#endif /* DRWAV_IMPLEMENTATION */ +#endif /* MA_DR_WAV_IMPLEMENTATION */ #endif /* MA_NO_WAV */ #if !defined(MA_NO_FLAC) && !defined(MA_NO_DECODING) -#if !defined(DR_FLAC_IMPLEMENTATION) && !defined(DRFLAC_IMPLEMENTATION) /* For backwards compatibility. Will be removed in version 0.11 for cleanliness. */ +#if !defined(MA_DR_FLAC_IMPLEMENTATION) && !defined(MA_DR_FLAC_IMPLEMENTATION) /* For backwards compatibility. Will be removed in version 0.11 for cleanliness. */ /* dr_flac_c begin */ -#ifndef dr_flac_c -#define dr_flac_c +#ifndef ma_dr_flac_c +#define ma_dr_flac_c #if defined(__clang__) || (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))) #pragma GCC diagnostic push #if __GNUC__ >= 7 @@ -78896,85 +82085,60 @@ DRWAV_API drwav_bool32 drwav_fourcc_equal(const drwav_uint8* a, const char* b) #endif #include #include -#ifdef _MSC_VER - #define DRFLAC_INLINE __forceinline -#elif defined(__GNUC__) - #if defined(__STRICT_ANSI__) - #define DRFLAC_GNUC_INLINE_HINT __inline__ - #else - #define DRFLAC_GNUC_INLINE_HINT inline - #endif - #if (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 2)) || defined(__clang__) - #define DRFLAC_INLINE DRFLAC_GNUC_INLINE_HINT __attribute__((always_inline)) - #else - #define DRFLAC_INLINE DRFLAC_GNUC_INLINE_HINT - #endif -#elif defined(__WATCOMC__) - #define DRFLAC_INLINE __inline -#else - #define DRFLAC_INLINE -#endif -#if defined(__x86_64__) || defined(_M_X64) - #define DRFLAC_X64 -#elif defined(__i386) || defined(_M_IX86) - #define DRFLAC_X86 -#elif defined(__arm__) || defined(_M_ARM) || defined(__arm64) || defined(__arm64__) || defined(__aarch64__) || defined(_M_ARM64) - #define DRFLAC_ARM -#endif -#if !defined(DR_FLAC_NO_SIMD) - #if defined(DRFLAC_X64) || defined(DRFLAC_X86) +#if !defined(MA_DR_FLAC_NO_SIMD) + #if defined(MA_X64) || defined(MA_X86) #if defined(_MSC_VER) && !defined(__clang__) - #if _MSC_VER >= 1400 && !defined(DRFLAC_NO_SSE2) - #define DRFLAC_SUPPORT_SSE2 + #if _MSC_VER >= 1400 && !defined(MA_DR_FLAC_NO_SSE2) + #define MA_DR_FLAC_SUPPORT_SSE2 #endif - #if _MSC_VER >= 1600 && !defined(DRFLAC_NO_SSE41) - #define DRFLAC_SUPPORT_SSE41 + #if _MSC_VER >= 1600 && !defined(MA_DR_FLAC_NO_SSE41) + #define MA_DR_FLAC_SUPPORT_SSE41 #endif #elif defined(__clang__) || (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3))) - #if defined(__SSE2__) && !defined(DRFLAC_NO_SSE2) - #define DRFLAC_SUPPORT_SSE2 + #if defined(__SSE2__) && !defined(MA_DR_FLAC_NO_SSE2) + #define MA_DR_FLAC_SUPPORT_SSE2 #endif - #if defined(__SSE4_1__) && !defined(DRFLAC_NO_SSE41) - #define DRFLAC_SUPPORT_SSE41 + #if defined(__SSE4_1__) && !defined(MA_DR_FLAC_NO_SSE41) + #define MA_DR_FLAC_SUPPORT_SSE41 #endif #endif #if !defined(__GNUC__) && !defined(__clang__) && defined(__has_include) - #if !defined(DRFLAC_SUPPORT_SSE2) && !defined(DRFLAC_NO_SSE2) && __has_include() - #define DRFLAC_SUPPORT_SSE2 + #if !defined(MA_DR_FLAC_SUPPORT_SSE2) && !defined(MA_DR_FLAC_NO_SSE2) && __has_include() + #define MA_DR_FLAC_SUPPORT_SSE2 #endif - #if !defined(DRFLAC_SUPPORT_SSE41) && !defined(DRFLAC_NO_SSE41) && __has_include() - #define DRFLAC_SUPPORT_SSE41 + #if !defined(MA_DR_FLAC_SUPPORT_SSE41) && !defined(MA_DR_FLAC_NO_SSE41) && __has_include() + #define MA_DR_FLAC_SUPPORT_SSE41 #endif #endif - #if defined(DRFLAC_SUPPORT_SSE41) + #if defined(MA_DR_FLAC_SUPPORT_SSE41) #include - #elif defined(DRFLAC_SUPPORT_SSE2) + #elif defined(MA_DR_FLAC_SUPPORT_SSE2) #include #endif #endif - #if defined(DRFLAC_ARM) - #if !defined(DRFLAC_NO_NEON) && (defined(__ARM_NEON) || defined(__aarch64__) || defined(_M_ARM64)) - #define DRFLAC_SUPPORT_NEON + #if defined(MA_ARM) + #if !defined(MA_DR_FLAC_NO_NEON) && (defined(__ARM_NEON) || defined(__aarch64__) || defined(_M_ARM64)) + #define MA_DR_FLAC_SUPPORT_NEON #include #endif #endif #endif -#if !defined(DR_FLAC_NO_SIMD) && (defined(DRFLAC_X86) || defined(DRFLAC_X64)) +#if !defined(MA_DR_FLAC_NO_SIMD) && (defined(MA_X86) || defined(MA_X64)) #if defined(_MSC_VER) && !defined(__clang__) #if _MSC_VER >= 1400 #include - static void drflac__cpuid(int info[4], int fid) + static void ma_dr_flac__cpuid(int info[4], int fid) { __cpuid(info, fid); } #else - #define DRFLAC_NO_CPUID + #define MA_DR_FLAC_NO_CPUID #endif #else #if defined(__GNUC__) || defined(__clang__) - static void drflac__cpuid(int info[4], int fid) + static void ma_dr_flac__cpuid(int info[4], int fid) { - #if defined(DRFLAC_X86) && defined(__PIC__) + #if defined(MA_X86) && defined(__PIC__) __asm__ __volatile__ ( "xchg{l} {%%}ebx, %k1;" "cpuid;" @@ -78988,293 +82152,241 @@ DRWAV_API drwav_bool32 drwav_fourcc_equal(const drwav_uint8* a, const char* b) #endif } #else - #define DRFLAC_NO_CPUID + #define MA_DR_FLAC_NO_CPUID #endif #endif #else - #define DRFLAC_NO_CPUID + #define MA_DR_FLAC_NO_CPUID #endif -static DRFLAC_INLINE drflac_bool32 drflac_has_sse2(void) +static MA_INLINE ma_bool32 ma_dr_flac_has_sse2(void) { -#if defined(DRFLAC_SUPPORT_SSE2) - #if (defined(DRFLAC_X64) || defined(DRFLAC_X86)) && !defined(DRFLAC_NO_SSE2) - #if defined(DRFLAC_X64) - return DRFLAC_TRUE; +#if defined(MA_DR_FLAC_SUPPORT_SSE2) + #if (defined(MA_X64) || defined(MA_X86)) && !defined(MA_DR_FLAC_NO_SSE2) + #if defined(MA_X64) + return MA_TRUE; #elif (defined(_M_IX86_FP) && _M_IX86_FP == 2) || defined(__SSE2__) - return DRFLAC_TRUE; + return MA_TRUE; #else - #if defined(DRFLAC_NO_CPUID) - return DRFLAC_FALSE; + #if defined(MA_DR_FLAC_NO_CPUID) + return MA_FALSE; #else int info[4]; - drflac__cpuid(info, 1); + ma_dr_flac__cpuid(info, 1); return (info[3] & (1 << 26)) != 0; #endif #endif #else - return DRFLAC_FALSE; + return MA_FALSE; #endif #else - return DRFLAC_FALSE; + return MA_FALSE; #endif } -static DRFLAC_INLINE drflac_bool32 drflac_has_sse41(void) +static MA_INLINE ma_bool32 ma_dr_flac_has_sse41(void) { -#if defined(DRFLAC_SUPPORT_SSE41) - #if (defined(DRFLAC_X64) || defined(DRFLAC_X86)) && !defined(DRFLAC_NO_SSE41) - #if defined(DRFLAC_X64) - return DRFLAC_TRUE; - #elif (defined(_M_IX86_FP) && _M_IX86_FP == 2) || defined(__SSE4_1__) - return DRFLAC_TRUE; +#if defined(MA_DR_FLAC_SUPPORT_SSE41) + #if (defined(MA_X64) || defined(MA_X86)) && !defined(MA_DR_FLAC_NO_SSE41) + #if defined(__SSE4_1__) || defined(__AVX__) + return MA_TRUE; #else - #if defined(DRFLAC_NO_CPUID) - return DRFLAC_FALSE; + #if defined(MA_DR_FLAC_NO_CPUID) + return MA_FALSE; #else int info[4]; - drflac__cpuid(info, 1); + ma_dr_flac__cpuid(info, 1); return (info[2] & (1 << 19)) != 0; #endif #endif #else - return DRFLAC_FALSE; + return MA_FALSE; #endif #else - return DRFLAC_FALSE; + return MA_FALSE; #endif } -#if defined(_MSC_VER) && _MSC_VER >= 1500 && (defined(DRFLAC_X86) || defined(DRFLAC_X64)) && !defined(__clang__) - #define DRFLAC_HAS_LZCNT_INTRINSIC +#if defined(_MSC_VER) && _MSC_VER >= 1500 && (defined(MA_X86) || defined(MA_X64)) && !defined(__clang__) + #define MA_DR_FLAC_HAS_LZCNT_INTRINSIC #elif (defined(__GNUC__) && ((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 7))) - #define DRFLAC_HAS_LZCNT_INTRINSIC + #define MA_DR_FLAC_HAS_LZCNT_INTRINSIC #elif defined(__clang__) #if defined(__has_builtin) #if __has_builtin(__builtin_clzll) || __has_builtin(__builtin_clzl) - #define DRFLAC_HAS_LZCNT_INTRINSIC + #define MA_DR_FLAC_HAS_LZCNT_INTRINSIC #endif #endif #endif #if defined(_MSC_VER) && _MSC_VER >= 1400 && !defined(__clang__) - #define DRFLAC_HAS_BYTESWAP16_INTRINSIC - #define DRFLAC_HAS_BYTESWAP32_INTRINSIC - #define DRFLAC_HAS_BYTESWAP64_INTRINSIC + #define MA_DR_FLAC_HAS_BYTESWAP16_INTRINSIC + #define MA_DR_FLAC_HAS_BYTESWAP32_INTRINSIC + #define MA_DR_FLAC_HAS_BYTESWAP64_INTRINSIC #elif defined(__clang__) #if defined(__has_builtin) #if __has_builtin(__builtin_bswap16) - #define DRFLAC_HAS_BYTESWAP16_INTRINSIC + #define MA_DR_FLAC_HAS_BYTESWAP16_INTRINSIC #endif #if __has_builtin(__builtin_bswap32) - #define DRFLAC_HAS_BYTESWAP32_INTRINSIC + #define MA_DR_FLAC_HAS_BYTESWAP32_INTRINSIC #endif #if __has_builtin(__builtin_bswap64) - #define DRFLAC_HAS_BYTESWAP64_INTRINSIC + #define MA_DR_FLAC_HAS_BYTESWAP64_INTRINSIC #endif #endif #elif defined(__GNUC__) #if ((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) - #define DRFLAC_HAS_BYTESWAP32_INTRINSIC - #define DRFLAC_HAS_BYTESWAP64_INTRINSIC + #define MA_DR_FLAC_HAS_BYTESWAP32_INTRINSIC + #define MA_DR_FLAC_HAS_BYTESWAP64_INTRINSIC #endif #if ((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8)) - #define DRFLAC_HAS_BYTESWAP16_INTRINSIC + #define MA_DR_FLAC_HAS_BYTESWAP16_INTRINSIC #endif #elif defined(__WATCOMC__) && defined(__386__) - #define DRFLAC_HAS_BYTESWAP16_INTRINSIC - #define DRFLAC_HAS_BYTESWAP32_INTRINSIC - #define DRFLAC_HAS_BYTESWAP64_INTRINSIC - extern __inline drflac_uint16 _watcom_bswap16(drflac_uint16); - extern __inline drflac_uint32 _watcom_bswap32(drflac_uint32); - extern __inline drflac_uint64 _watcom_bswap64(drflac_uint64); + #define MA_DR_FLAC_HAS_BYTESWAP16_INTRINSIC + #define MA_DR_FLAC_HAS_BYTESWAP32_INTRINSIC + #define MA_DR_FLAC_HAS_BYTESWAP64_INTRINSIC + extern __inline ma_uint16 _watcom_bswap16(ma_uint16); + extern __inline ma_uint32 _watcom_bswap32(ma_uint32); + extern __inline ma_uint64 _watcom_bswap64(ma_uint64); #pragma aux _watcom_bswap16 = \ "xchg al, ah" \ - parm [ax] \ - modify [ax]; + parm [ax] \ + value [ax] \ + modify nomemory; #pragma aux _watcom_bswap32 = \ - "bswap eax" \ - parm [eax] \ - modify [eax]; + "bswap eax" \ + parm [eax] \ + value [eax] \ + modify nomemory; #pragma aux _watcom_bswap64 = \ "bswap eax" \ "bswap edx" \ "xchg eax,edx" \ parm [eax edx] \ - modify [eax edx]; + value [eax edx] \ + modify nomemory; #endif -#ifndef DRFLAC_ASSERT +#ifndef MA_DR_FLAC_ASSERT #include -#define DRFLAC_ASSERT(expression) assert(expression) +#define MA_DR_FLAC_ASSERT(expression) assert(expression) #endif -#ifndef DRFLAC_MALLOC -#define DRFLAC_MALLOC(sz) malloc((sz)) +#ifndef MA_DR_FLAC_MALLOC +#define MA_DR_FLAC_MALLOC(sz) malloc((sz)) #endif -#ifndef DRFLAC_REALLOC -#define DRFLAC_REALLOC(p, sz) realloc((p), (sz)) +#ifndef MA_DR_FLAC_REALLOC +#define MA_DR_FLAC_REALLOC(p, sz) realloc((p), (sz)) #endif -#ifndef DRFLAC_FREE -#define DRFLAC_FREE(p) free((p)) +#ifndef MA_DR_FLAC_FREE +#define MA_DR_FLAC_FREE(p) free((p)) #endif -#ifndef DRFLAC_COPY_MEMORY -#define DRFLAC_COPY_MEMORY(dst, src, sz) memcpy((dst), (src), (sz)) +#ifndef MA_DR_FLAC_COPY_MEMORY +#define MA_DR_FLAC_COPY_MEMORY(dst, src, sz) memcpy((dst), (src), (sz)) #endif -#ifndef DRFLAC_ZERO_MEMORY -#define DRFLAC_ZERO_MEMORY(p, sz) memset((p), 0, (sz)) +#ifndef MA_DR_FLAC_ZERO_MEMORY +#define MA_DR_FLAC_ZERO_MEMORY(p, sz) memset((p), 0, (sz)) #endif -#ifndef DRFLAC_ZERO_OBJECT -#define DRFLAC_ZERO_OBJECT(p) DRFLAC_ZERO_MEMORY((p), sizeof(*(p))) +#ifndef MA_DR_FLAC_ZERO_OBJECT +#define MA_DR_FLAC_ZERO_OBJECT(p) MA_DR_FLAC_ZERO_MEMORY((p), sizeof(*(p))) #endif -#define DRFLAC_MAX_SIMD_VECTOR_SIZE 64 -typedef drflac_int32 drflac_result; -#define DRFLAC_SUCCESS 0 -#define DRFLAC_ERROR -1 -#define DRFLAC_INVALID_ARGS -2 -#define DRFLAC_INVALID_OPERATION -3 -#define DRFLAC_OUT_OF_MEMORY -4 -#define DRFLAC_OUT_OF_RANGE -5 -#define DRFLAC_ACCESS_DENIED -6 -#define DRFLAC_DOES_NOT_EXIST -7 -#define DRFLAC_ALREADY_EXISTS -8 -#define DRFLAC_TOO_MANY_OPEN_FILES -9 -#define DRFLAC_INVALID_FILE -10 -#define DRFLAC_TOO_BIG -11 -#define DRFLAC_PATH_TOO_LONG -12 -#define DRFLAC_NAME_TOO_LONG -13 -#define DRFLAC_NOT_DIRECTORY -14 -#define DRFLAC_IS_DIRECTORY -15 -#define DRFLAC_DIRECTORY_NOT_EMPTY -16 -#define DRFLAC_END_OF_FILE -17 -#define DRFLAC_NO_SPACE -18 -#define DRFLAC_BUSY -19 -#define DRFLAC_IO_ERROR -20 -#define DRFLAC_INTERRUPT -21 -#define DRFLAC_UNAVAILABLE -22 -#define DRFLAC_ALREADY_IN_USE -23 -#define DRFLAC_BAD_ADDRESS -24 -#define DRFLAC_BAD_SEEK -25 -#define DRFLAC_BAD_PIPE -26 -#define DRFLAC_DEADLOCK -27 -#define DRFLAC_TOO_MANY_LINKS -28 -#define DRFLAC_NOT_IMPLEMENTED -29 -#define DRFLAC_NO_MESSAGE -30 -#define DRFLAC_BAD_MESSAGE -31 -#define DRFLAC_NO_DATA_AVAILABLE -32 -#define DRFLAC_INVALID_DATA -33 -#define DRFLAC_TIMEOUT -34 -#define DRFLAC_NO_NETWORK -35 -#define DRFLAC_NOT_UNIQUE -36 -#define DRFLAC_NOT_SOCKET -37 -#define DRFLAC_NO_ADDRESS -38 -#define DRFLAC_BAD_PROTOCOL -39 -#define DRFLAC_PROTOCOL_UNAVAILABLE -40 -#define DRFLAC_PROTOCOL_NOT_SUPPORTED -41 -#define DRFLAC_PROTOCOL_FAMILY_NOT_SUPPORTED -42 -#define DRFLAC_ADDRESS_FAMILY_NOT_SUPPORTED -43 -#define DRFLAC_SOCKET_NOT_SUPPORTED -44 -#define DRFLAC_CONNECTION_RESET -45 -#define DRFLAC_ALREADY_CONNECTED -46 -#define DRFLAC_NOT_CONNECTED -47 -#define DRFLAC_CONNECTION_REFUSED -48 -#define DRFLAC_NO_HOST -49 -#define DRFLAC_IN_PROGRESS -50 -#define DRFLAC_CANCELLED -51 -#define DRFLAC_MEMORY_ALREADY_MAPPED -52 -#define DRFLAC_AT_END -53 -#define DRFLAC_CRC_MISMATCH -128 -#define DRFLAC_SUBFRAME_CONSTANT 0 -#define DRFLAC_SUBFRAME_VERBATIM 1 -#define DRFLAC_SUBFRAME_FIXED 8 -#define DRFLAC_SUBFRAME_LPC 32 -#define DRFLAC_SUBFRAME_RESERVED 255 -#define DRFLAC_RESIDUAL_CODING_METHOD_PARTITIONED_RICE 0 -#define DRFLAC_RESIDUAL_CODING_METHOD_PARTITIONED_RICE2 1 -#define DRFLAC_CHANNEL_ASSIGNMENT_INDEPENDENT 0 -#define DRFLAC_CHANNEL_ASSIGNMENT_LEFT_SIDE 8 -#define DRFLAC_CHANNEL_ASSIGNMENT_RIGHT_SIDE 9 -#define DRFLAC_CHANNEL_ASSIGNMENT_MID_SIDE 10 -#define drflac_align(x, a) ((((x) + (a) - 1) / (a)) * (a)) -DRFLAC_API void drflac_version(drflac_uint32* pMajor, drflac_uint32* pMinor, drflac_uint32* pRevision) +#define MA_DR_FLAC_MAX_SIMD_VECTOR_SIZE 64 +#define MA_DR_FLAC_SUBFRAME_CONSTANT 0 +#define MA_DR_FLAC_SUBFRAME_VERBATIM 1 +#define MA_DR_FLAC_SUBFRAME_FIXED 8 +#define MA_DR_FLAC_SUBFRAME_LPC 32 +#define MA_DR_FLAC_SUBFRAME_RESERVED 255 +#define MA_DR_FLAC_RESIDUAL_CODING_METHOD_PARTITIONED_RICE 0 +#define MA_DR_FLAC_RESIDUAL_CODING_METHOD_PARTITIONED_RICE2 1 +#define MA_DR_FLAC_CHANNEL_ASSIGNMENT_INDEPENDENT 0 +#define MA_DR_FLAC_CHANNEL_ASSIGNMENT_LEFT_SIDE 8 +#define MA_DR_FLAC_CHANNEL_ASSIGNMENT_RIGHT_SIDE 9 +#define MA_DR_FLAC_CHANNEL_ASSIGNMENT_MID_SIDE 10 +#define MA_DR_FLAC_SEEKPOINT_SIZE_IN_BYTES 18 +#define MA_DR_FLAC_CUESHEET_TRACK_SIZE_IN_BYTES 36 +#define MA_DR_FLAC_CUESHEET_TRACK_INDEX_SIZE_IN_BYTES 12 +#define ma_dr_flac_align(x, a) ((((x) + (a) - 1) / (a)) * (a)) +MA_API void ma_dr_flac_version(ma_uint32* pMajor, ma_uint32* pMinor, ma_uint32* pRevision) { if (pMajor) { - *pMajor = DRFLAC_VERSION_MAJOR; + *pMajor = MA_DR_FLAC_VERSION_MAJOR; } if (pMinor) { - *pMinor = DRFLAC_VERSION_MINOR; + *pMinor = MA_DR_FLAC_VERSION_MINOR; } if (pRevision) { - *pRevision = DRFLAC_VERSION_REVISION; + *pRevision = MA_DR_FLAC_VERSION_REVISION; } } -DRFLAC_API const char* drflac_version_string(void) +MA_API const char* ma_dr_flac_version_string(void) { - return DRFLAC_VERSION_STRING; + return MA_DR_FLAC_VERSION_STRING; } #if defined(__has_feature) #if __has_feature(thread_sanitizer) - #define DRFLAC_NO_THREAD_SANITIZE __attribute__((no_sanitize("thread"))) + #define MA_DR_FLAC_NO_THREAD_SANITIZE __attribute__((no_sanitize("thread"))) #else - #define DRFLAC_NO_THREAD_SANITIZE + #define MA_DR_FLAC_NO_THREAD_SANITIZE #endif #else - #define DRFLAC_NO_THREAD_SANITIZE + #define MA_DR_FLAC_NO_THREAD_SANITIZE #endif -#if defined(DRFLAC_HAS_LZCNT_INTRINSIC) -static drflac_bool32 drflac__gIsLZCNTSupported = DRFLAC_FALSE; +#if defined(MA_DR_FLAC_HAS_LZCNT_INTRINSIC) +static ma_bool32 ma_dr_flac__gIsLZCNTSupported = MA_FALSE; #endif -#ifndef DRFLAC_NO_CPUID -static drflac_bool32 drflac__gIsSSE2Supported = DRFLAC_FALSE; -static drflac_bool32 drflac__gIsSSE41Supported = DRFLAC_FALSE; -DRFLAC_NO_THREAD_SANITIZE static void drflac__init_cpu_caps(void) +#ifndef MA_DR_FLAC_NO_CPUID +static ma_bool32 ma_dr_flac__gIsSSE2Supported = MA_FALSE; +static ma_bool32 ma_dr_flac__gIsSSE41Supported = MA_FALSE; +MA_DR_FLAC_NO_THREAD_SANITIZE static void ma_dr_flac__init_cpu_caps(void) { - static drflac_bool32 isCPUCapsInitialized = DRFLAC_FALSE; + static ma_bool32 isCPUCapsInitialized = MA_FALSE; if (!isCPUCapsInitialized) { -#if defined(DRFLAC_HAS_LZCNT_INTRINSIC) +#if defined(MA_DR_FLAC_HAS_LZCNT_INTRINSIC) int info[4] = {0}; - drflac__cpuid(info, 0x80000001); - drflac__gIsLZCNTSupported = (info[2] & (1 << 5)) != 0; + ma_dr_flac__cpuid(info, 0x80000001); + ma_dr_flac__gIsLZCNTSupported = (info[2] & (1 << 5)) != 0; #endif - drflac__gIsSSE2Supported = drflac_has_sse2(); - drflac__gIsSSE41Supported = drflac_has_sse41(); - isCPUCapsInitialized = DRFLAC_TRUE; + ma_dr_flac__gIsSSE2Supported = ma_dr_flac_has_sse2(); + ma_dr_flac__gIsSSE41Supported = ma_dr_flac_has_sse41(); + isCPUCapsInitialized = MA_TRUE; } } #else -static drflac_bool32 drflac__gIsNEONSupported = DRFLAC_FALSE; -static DRFLAC_INLINE drflac_bool32 drflac__has_neon(void) +static ma_bool32 ma_dr_flac__gIsNEONSupported = MA_FALSE; +static MA_INLINE ma_bool32 ma_dr_flac__has_neon(void) { -#if defined(DRFLAC_SUPPORT_NEON) - #if defined(DRFLAC_ARM) && !defined(DRFLAC_NO_NEON) +#if defined(MA_DR_FLAC_SUPPORT_NEON) + #if defined(MA_ARM) && !defined(MA_DR_FLAC_NO_NEON) #if (defined(__ARM_NEON) || defined(__aarch64__) || defined(_M_ARM64)) - return DRFLAC_TRUE; + return MA_TRUE; #else - return DRFLAC_FALSE; + return MA_FALSE; #endif #else - return DRFLAC_FALSE; + return MA_FALSE; #endif #else - return DRFLAC_FALSE; + return MA_FALSE; #endif } -DRFLAC_NO_THREAD_SANITIZE static void drflac__init_cpu_caps(void) +MA_DR_FLAC_NO_THREAD_SANITIZE static void ma_dr_flac__init_cpu_caps(void) { - drflac__gIsNEONSupported = drflac__has_neon(); -#if defined(DRFLAC_HAS_LZCNT_INTRINSIC) && defined(DRFLAC_ARM) && (defined(__ARM_ARCH) && __ARM_ARCH >= 5) - drflac__gIsLZCNTSupported = DRFLAC_TRUE; + ma_dr_flac__gIsNEONSupported = ma_dr_flac__has_neon(); +#if defined(MA_DR_FLAC_HAS_LZCNT_INTRINSIC) && defined(MA_ARM) && (defined(__ARM_ARCH) && __ARM_ARCH >= 5) + ma_dr_flac__gIsLZCNTSupported = MA_TRUE; #endif } #endif -static DRFLAC_INLINE drflac_bool32 drflac__is_little_endian(void) +static MA_INLINE ma_bool32 ma_dr_flac__is_little_endian(void) { -#if defined(DRFLAC_X86) || defined(DRFLAC_X64) - return DRFLAC_TRUE; +#if defined(MA_X86) || defined(MA_X64) + return MA_TRUE; #elif defined(__BYTE_ORDER) && defined(__LITTLE_ENDIAN) && __BYTE_ORDER == __LITTLE_ENDIAN - return DRFLAC_TRUE; + return MA_TRUE; #else int n = 1; return (*(char*)&n) == 1; #endif } -static DRFLAC_INLINE drflac_uint16 drflac__swap_endian_uint16(drflac_uint16 n) +static MA_INLINE ma_uint16 ma_dr_flac__swap_endian_uint16(ma_uint16 n) { -#ifdef DRFLAC_HAS_BYTESWAP16_INTRINSIC +#ifdef MA_DR_FLAC_HAS_BYTESWAP16_INTRINSIC #if defined(_MSC_VER) && !defined(__clang__) return _byteswap_ushort(n); #elif defined(__GNUC__) || defined(__clang__) @@ -79289,16 +82401,16 @@ static DRFLAC_INLINE drflac_uint16 drflac__swap_endian_uint16(drflac_uint16 n) ((n & 0x00FF) << 8); #endif } -static DRFLAC_INLINE drflac_uint32 drflac__swap_endian_uint32(drflac_uint32 n) +static MA_INLINE ma_uint32 ma_dr_flac__swap_endian_uint32(ma_uint32 n) { -#ifdef DRFLAC_HAS_BYTESWAP32_INTRINSIC +#ifdef MA_DR_FLAC_HAS_BYTESWAP32_INTRINSIC #if defined(_MSC_VER) && !defined(__clang__) return _byteswap_ulong(n); #elif defined(__GNUC__) || defined(__clang__) - #if defined(DRFLAC_ARM) && (defined(__ARM_ARCH) && __ARM_ARCH >= 6) && !defined(DRFLAC_64BIT) - drflac_uint32 r; + #if defined(MA_ARM) && (defined(__ARM_ARCH) && __ARM_ARCH >= 6) && !defined(__ARM_ARCH_6M__) && !defined(MA_64BIT) + ma_uint32 r; __asm__ __volatile__ ( - #if defined(DRFLAC_64BIT) + #if defined(MA_64BIT) "rev %w[out], %w[in]" : [out]"=r"(r) : [in]"r"(n) #else "rev %[out], %[in]" : [out]"=r"(r) : [in]"r"(n) @@ -79320,9 +82432,9 @@ static DRFLAC_INLINE drflac_uint32 drflac__swap_endian_uint32(drflac_uint32 n) ((n & 0x000000FF) << 24); #endif } -static DRFLAC_INLINE drflac_uint64 drflac__swap_endian_uint64(drflac_uint64 n) +static MA_INLINE ma_uint64 ma_dr_flac__swap_endian_uint64(ma_uint64 n) { -#ifdef DRFLAC_HAS_BYTESWAP64_INTRINSIC +#ifdef MA_DR_FLAC_HAS_BYTESWAP64_INTRINSIC #if defined(_MSC_VER) && !defined(__clang__) return _byteswap_uint64(n); #elif defined(__GNUC__) || defined(__clang__) @@ -79333,64 +82445,64 @@ static DRFLAC_INLINE drflac_uint64 drflac__swap_endian_uint64(drflac_uint64 n) #error "This compiler does not support the byte swap intrinsic." #endif #else - return ((n & ((drflac_uint64)0xFF000000 << 32)) >> 56) | - ((n & ((drflac_uint64)0x00FF0000 << 32)) >> 40) | - ((n & ((drflac_uint64)0x0000FF00 << 32)) >> 24) | - ((n & ((drflac_uint64)0x000000FF << 32)) >> 8) | - ((n & ((drflac_uint64)0xFF000000 )) << 8) | - ((n & ((drflac_uint64)0x00FF0000 )) << 24) | - ((n & ((drflac_uint64)0x0000FF00 )) << 40) | - ((n & ((drflac_uint64)0x000000FF )) << 56); + return ((n & ((ma_uint64)0xFF000000 << 32)) >> 56) | + ((n & ((ma_uint64)0x00FF0000 << 32)) >> 40) | + ((n & ((ma_uint64)0x0000FF00 << 32)) >> 24) | + ((n & ((ma_uint64)0x000000FF << 32)) >> 8) | + ((n & ((ma_uint64)0xFF000000 )) << 8) | + ((n & ((ma_uint64)0x00FF0000 )) << 24) | + ((n & ((ma_uint64)0x0000FF00 )) << 40) | + ((n & ((ma_uint64)0x000000FF )) << 56); #endif } -static DRFLAC_INLINE drflac_uint16 drflac__be2host_16(drflac_uint16 n) +static MA_INLINE ma_uint16 ma_dr_flac__be2host_16(ma_uint16 n) { - if (drflac__is_little_endian()) { - return drflac__swap_endian_uint16(n); + if (ma_dr_flac__is_little_endian()) { + return ma_dr_flac__swap_endian_uint16(n); } return n; } -static DRFLAC_INLINE drflac_uint32 drflac__be2host_32(drflac_uint32 n) +static MA_INLINE ma_uint32 ma_dr_flac__be2host_32(ma_uint32 n) { - if (drflac__is_little_endian()) { - return drflac__swap_endian_uint32(n); + if (ma_dr_flac__is_little_endian()) { + return ma_dr_flac__swap_endian_uint32(n); } return n; } -static DRFLAC_INLINE drflac_uint32 drflac__be2host_32_ptr_unaligned(const void* pData) +static MA_INLINE ma_uint32 ma_dr_flac__be2host_32_ptr_unaligned(const void* pData) { - const drflac_uint8* pNum = (drflac_uint8*)pData; + const ma_uint8* pNum = (ma_uint8*)pData; return *(pNum) << 24 | *(pNum+1) << 16 | *(pNum+2) << 8 | *(pNum+3); } -static DRFLAC_INLINE drflac_uint64 drflac__be2host_64(drflac_uint64 n) +static MA_INLINE ma_uint64 ma_dr_flac__be2host_64(ma_uint64 n) { - if (drflac__is_little_endian()) { - return drflac__swap_endian_uint64(n); + if (ma_dr_flac__is_little_endian()) { + return ma_dr_flac__swap_endian_uint64(n); } return n; } -static DRFLAC_INLINE drflac_uint32 drflac__le2host_32(drflac_uint32 n) +static MA_INLINE ma_uint32 ma_dr_flac__le2host_32(ma_uint32 n) { - if (!drflac__is_little_endian()) { - return drflac__swap_endian_uint32(n); + if (!ma_dr_flac__is_little_endian()) { + return ma_dr_flac__swap_endian_uint32(n); } return n; } -static DRFLAC_INLINE drflac_uint32 drflac__le2host_32_ptr_unaligned(const void* pData) +static MA_INLINE ma_uint32 ma_dr_flac__le2host_32_ptr_unaligned(const void* pData) { - const drflac_uint8* pNum = (drflac_uint8*)pData; + const ma_uint8* pNum = (ma_uint8*)pData; return *pNum | *(pNum+1) << 8 | *(pNum+2) << 16 | *(pNum+3) << 24; } -static DRFLAC_INLINE drflac_uint32 drflac__unsynchsafe_32(drflac_uint32 n) +static MA_INLINE ma_uint32 ma_dr_flac__unsynchsafe_32(ma_uint32 n) { - drflac_uint32 result = 0; + ma_uint32 result = 0; result |= (n & 0x7F000000) >> 3; result |= (n & 0x007F0000) >> 2; result |= (n & 0x00007F00) >> 1; result |= (n & 0x0000007F) >> 0; return result; } -static drflac_uint8 drflac__crc8_table[] = { +static ma_uint8 ma_dr_flac__crc8_table[] = { 0x00, 0x07, 0x0E, 0x09, 0x1C, 0x1B, 0x12, 0x15, 0x38, 0x3F, 0x36, 0x31, 0x24, 0x23, 0x2A, 0x2D, 0x70, 0x77, 0x7E, 0x79, 0x6C, 0x6B, 0x62, 0x65, 0x48, 0x4F, 0x46, 0x41, 0x54, 0x53, 0x5A, 0x5D, 0xE0, 0xE7, 0xEE, 0xE9, 0xFC, 0xFB, 0xF2, 0xF5, 0xD8, 0xDF, 0xD6, 0xD1, 0xC4, 0xC3, 0xCA, 0xCD, @@ -79408,7 +82520,7 @@ static drflac_uint8 drflac__crc8_table[] = { 0xAE, 0xA9, 0xA0, 0xA7, 0xB2, 0xB5, 0xBC, 0xBB, 0x96, 0x91, 0x98, 0x9F, 0x8A, 0x8D, 0x84, 0x83, 0xDE, 0xD9, 0xD0, 0xD7, 0xC2, 0xC5, 0xCC, 0xCB, 0xE6, 0xE1, 0xE8, 0xEF, 0xFA, 0xFD, 0xF4, 0xF3 }; -static drflac_uint16 drflac__crc16_table[] = { +static ma_uint16 ma_dr_flac__crc16_table[] = { 0x0000, 0x8005, 0x800F, 0x000A, 0x801B, 0x001E, 0x0014, 0x8011, 0x8033, 0x0036, 0x003C, 0x8039, 0x0028, 0x802D, 0x8027, 0x0022, 0x8063, 0x0066, 0x006C, 0x8069, 0x0078, 0x807D, 0x8077, 0x0072, @@ -79442,22 +82554,22 @@ static drflac_uint16 drflac__crc16_table[] = { 0x0220, 0x8225, 0x822F, 0x022A, 0x823B, 0x023E, 0x0234, 0x8231, 0x8213, 0x0216, 0x021C, 0x8219, 0x0208, 0x820D, 0x8207, 0x0202 }; -static DRFLAC_INLINE drflac_uint8 drflac_crc8_byte(drflac_uint8 crc, drflac_uint8 data) +static MA_INLINE ma_uint8 ma_dr_flac_crc8_byte(ma_uint8 crc, ma_uint8 data) { - return drflac__crc8_table[crc ^ data]; + return ma_dr_flac__crc8_table[crc ^ data]; } -static DRFLAC_INLINE drflac_uint8 drflac_crc8(drflac_uint8 crc, drflac_uint32 data, drflac_uint32 count) +static MA_INLINE ma_uint8 ma_dr_flac_crc8(ma_uint8 crc, ma_uint32 data, ma_uint32 count) { -#ifdef DR_FLAC_NO_CRC +#ifdef MA_DR_FLAC_NO_CRC (void)crc; (void)data; (void)count; return 0; #else #if 0 - drflac_uint8 p = 0x07; + ma_uint8 p = 0x07; for (int i = count-1; i >= 0; --i) { - drflac_uint8 bit = (data & (1 << i)) >> i; + ma_uint8 bit = (data & (1 << i)) >> i; if (crc & 0x80) { crc = ((crc << 1) | bit) ^ p; } else { @@ -79466,75 +82578,75 @@ static DRFLAC_INLINE drflac_uint8 drflac_crc8(drflac_uint8 crc, drflac_uint32 da } return crc; #else - drflac_uint32 wholeBytes; - drflac_uint32 leftoverBits; - drflac_uint64 leftoverDataMask; - static drflac_uint64 leftoverDataMaskTable[8] = { + ma_uint32 wholeBytes; + ma_uint32 leftoverBits; + ma_uint64 leftoverDataMask; + static ma_uint64 leftoverDataMaskTable[8] = { 0x00, 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x7F }; - DRFLAC_ASSERT(count <= 32); + MA_DR_FLAC_ASSERT(count <= 32); wholeBytes = count >> 3; leftoverBits = count - (wholeBytes*8); leftoverDataMask = leftoverDataMaskTable[leftoverBits]; switch (wholeBytes) { - case 4: crc = drflac_crc8_byte(crc, (drflac_uint8)((data & (0xFF000000UL << leftoverBits)) >> (24 + leftoverBits))); - case 3: crc = drflac_crc8_byte(crc, (drflac_uint8)((data & (0x00FF0000UL << leftoverBits)) >> (16 + leftoverBits))); - case 2: crc = drflac_crc8_byte(crc, (drflac_uint8)((data & (0x0000FF00UL << leftoverBits)) >> ( 8 + leftoverBits))); - case 1: crc = drflac_crc8_byte(crc, (drflac_uint8)((data & (0x000000FFUL << leftoverBits)) >> ( 0 + leftoverBits))); - case 0: if (leftoverBits > 0) crc = (drflac_uint8)((crc << leftoverBits) ^ drflac__crc8_table[(crc >> (8 - leftoverBits)) ^ (data & leftoverDataMask)]); + case 4: crc = ma_dr_flac_crc8_byte(crc, (ma_uint8)((data & (0xFF000000UL << leftoverBits)) >> (24 + leftoverBits))); + case 3: crc = ma_dr_flac_crc8_byte(crc, (ma_uint8)((data & (0x00FF0000UL << leftoverBits)) >> (16 + leftoverBits))); + case 2: crc = ma_dr_flac_crc8_byte(crc, (ma_uint8)((data & (0x0000FF00UL << leftoverBits)) >> ( 8 + leftoverBits))); + case 1: crc = ma_dr_flac_crc8_byte(crc, (ma_uint8)((data & (0x000000FFUL << leftoverBits)) >> ( 0 + leftoverBits))); + case 0: if (leftoverBits > 0) crc = (ma_uint8)((crc << leftoverBits) ^ ma_dr_flac__crc8_table[(crc >> (8 - leftoverBits)) ^ (data & leftoverDataMask)]); } return crc; #endif #endif } -static DRFLAC_INLINE drflac_uint16 drflac_crc16_byte(drflac_uint16 crc, drflac_uint8 data) +static MA_INLINE ma_uint16 ma_dr_flac_crc16_byte(ma_uint16 crc, ma_uint8 data) { - return (crc << 8) ^ drflac__crc16_table[(drflac_uint8)(crc >> 8) ^ data]; + return (crc << 8) ^ ma_dr_flac__crc16_table[(ma_uint8)(crc >> 8) ^ data]; } -static DRFLAC_INLINE drflac_uint16 drflac_crc16_cache(drflac_uint16 crc, drflac_cache_t data) +static MA_INLINE ma_uint16 ma_dr_flac_crc16_cache(ma_uint16 crc, ma_dr_flac_cache_t data) { -#ifdef DRFLAC_64BIT - crc = drflac_crc16_byte(crc, (drflac_uint8)((data >> 56) & 0xFF)); - crc = drflac_crc16_byte(crc, (drflac_uint8)((data >> 48) & 0xFF)); - crc = drflac_crc16_byte(crc, (drflac_uint8)((data >> 40) & 0xFF)); - crc = drflac_crc16_byte(crc, (drflac_uint8)((data >> 32) & 0xFF)); +#ifdef MA_64BIT + crc = ma_dr_flac_crc16_byte(crc, (ma_uint8)((data >> 56) & 0xFF)); + crc = ma_dr_flac_crc16_byte(crc, (ma_uint8)((data >> 48) & 0xFF)); + crc = ma_dr_flac_crc16_byte(crc, (ma_uint8)((data >> 40) & 0xFF)); + crc = ma_dr_flac_crc16_byte(crc, (ma_uint8)((data >> 32) & 0xFF)); #endif - crc = drflac_crc16_byte(crc, (drflac_uint8)((data >> 24) & 0xFF)); - crc = drflac_crc16_byte(crc, (drflac_uint8)((data >> 16) & 0xFF)); - crc = drflac_crc16_byte(crc, (drflac_uint8)((data >> 8) & 0xFF)); - crc = drflac_crc16_byte(crc, (drflac_uint8)((data >> 0) & 0xFF)); + crc = ma_dr_flac_crc16_byte(crc, (ma_uint8)((data >> 24) & 0xFF)); + crc = ma_dr_flac_crc16_byte(crc, (ma_uint8)((data >> 16) & 0xFF)); + crc = ma_dr_flac_crc16_byte(crc, (ma_uint8)((data >> 8) & 0xFF)); + crc = ma_dr_flac_crc16_byte(crc, (ma_uint8)((data >> 0) & 0xFF)); return crc; } -static DRFLAC_INLINE drflac_uint16 drflac_crc16_bytes(drflac_uint16 crc, drflac_cache_t data, drflac_uint32 byteCount) +static MA_INLINE ma_uint16 ma_dr_flac_crc16_bytes(ma_uint16 crc, ma_dr_flac_cache_t data, ma_uint32 byteCount) { switch (byteCount) { -#ifdef DRFLAC_64BIT - case 8: crc = drflac_crc16_byte(crc, (drflac_uint8)((data >> 56) & 0xFF)); - case 7: crc = drflac_crc16_byte(crc, (drflac_uint8)((data >> 48) & 0xFF)); - case 6: crc = drflac_crc16_byte(crc, (drflac_uint8)((data >> 40) & 0xFF)); - case 5: crc = drflac_crc16_byte(crc, (drflac_uint8)((data >> 32) & 0xFF)); +#ifdef MA_64BIT + case 8: crc = ma_dr_flac_crc16_byte(crc, (ma_uint8)((data >> 56) & 0xFF)); + case 7: crc = ma_dr_flac_crc16_byte(crc, (ma_uint8)((data >> 48) & 0xFF)); + case 6: crc = ma_dr_flac_crc16_byte(crc, (ma_uint8)((data >> 40) & 0xFF)); + case 5: crc = ma_dr_flac_crc16_byte(crc, (ma_uint8)((data >> 32) & 0xFF)); #endif - case 4: crc = drflac_crc16_byte(crc, (drflac_uint8)((data >> 24) & 0xFF)); - case 3: crc = drflac_crc16_byte(crc, (drflac_uint8)((data >> 16) & 0xFF)); - case 2: crc = drflac_crc16_byte(crc, (drflac_uint8)((data >> 8) & 0xFF)); - case 1: crc = drflac_crc16_byte(crc, (drflac_uint8)((data >> 0) & 0xFF)); + case 4: crc = ma_dr_flac_crc16_byte(crc, (ma_uint8)((data >> 24) & 0xFF)); + case 3: crc = ma_dr_flac_crc16_byte(crc, (ma_uint8)((data >> 16) & 0xFF)); + case 2: crc = ma_dr_flac_crc16_byte(crc, (ma_uint8)((data >> 8) & 0xFF)); + case 1: crc = ma_dr_flac_crc16_byte(crc, (ma_uint8)((data >> 0) & 0xFF)); } return crc; } #if 0 -static DRFLAC_INLINE drflac_uint16 drflac_crc16__32bit(drflac_uint16 crc, drflac_uint32 data, drflac_uint32 count) +static MA_INLINE ma_uint16 ma_dr_flac_crc16__32bit(ma_uint16 crc, ma_uint32 data, ma_uint32 count) { -#ifdef DR_FLAC_NO_CRC +#ifdef MA_DR_FLAC_NO_CRC (void)crc; (void)data; (void)count; return 0; #else #if 0 - drflac_uint16 p = 0x8005; + ma_uint16 p = 0x8005; for (int i = count-1; i >= 0; --i) { - drflac_uint16 bit = (data & (1ULL << i)) >> i; + ma_uint16 bit = (data & (1ULL << i)) >> i; if (r & 0x8000) { r = ((r << 1) | bit) ^ p; } else { @@ -79543,429 +82655,433 @@ static DRFLAC_INLINE drflac_uint16 drflac_crc16__32bit(drflac_uint16 crc, drflac } return crc; #else - drflac_uint32 wholeBytes; - drflac_uint32 leftoverBits; - drflac_uint64 leftoverDataMask; - static drflac_uint64 leftoverDataMaskTable[8] = { + ma_uint32 wholeBytes; + ma_uint32 leftoverBits; + ma_uint64 leftoverDataMask; + static ma_uint64 leftoverDataMaskTable[8] = { 0x00, 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x7F }; - DRFLAC_ASSERT(count <= 64); + MA_DR_FLAC_ASSERT(count <= 64); wholeBytes = count >> 3; leftoverBits = count & 7; leftoverDataMask = leftoverDataMaskTable[leftoverBits]; switch (wholeBytes) { default: - case 4: crc = drflac_crc16_byte(crc, (drflac_uint8)((data & (0xFF000000UL << leftoverBits)) >> (24 + leftoverBits))); - case 3: crc = drflac_crc16_byte(crc, (drflac_uint8)((data & (0x00FF0000UL << leftoverBits)) >> (16 + leftoverBits))); - case 2: crc = drflac_crc16_byte(crc, (drflac_uint8)((data & (0x0000FF00UL << leftoverBits)) >> ( 8 + leftoverBits))); - case 1: crc = drflac_crc16_byte(crc, (drflac_uint8)((data & (0x000000FFUL << leftoverBits)) >> ( 0 + leftoverBits))); - case 0: if (leftoverBits > 0) crc = (crc << leftoverBits) ^ drflac__crc16_table[(crc >> (16 - leftoverBits)) ^ (data & leftoverDataMask)]; + case 4: crc = ma_dr_flac_crc16_byte(crc, (ma_uint8)((data & (0xFF000000UL << leftoverBits)) >> (24 + leftoverBits))); + case 3: crc = ma_dr_flac_crc16_byte(crc, (ma_uint8)((data & (0x00FF0000UL << leftoverBits)) >> (16 + leftoverBits))); + case 2: crc = ma_dr_flac_crc16_byte(crc, (ma_uint8)((data & (0x0000FF00UL << leftoverBits)) >> ( 8 + leftoverBits))); + case 1: crc = ma_dr_flac_crc16_byte(crc, (ma_uint8)((data & (0x000000FFUL << leftoverBits)) >> ( 0 + leftoverBits))); + case 0: if (leftoverBits > 0) crc = (crc << leftoverBits) ^ ma_dr_flac__crc16_table[(crc >> (16 - leftoverBits)) ^ (data & leftoverDataMask)]; } return crc; #endif #endif } -static DRFLAC_INLINE drflac_uint16 drflac_crc16__64bit(drflac_uint16 crc, drflac_uint64 data, drflac_uint32 count) +static MA_INLINE ma_uint16 ma_dr_flac_crc16__64bit(ma_uint16 crc, ma_uint64 data, ma_uint32 count) { -#ifdef DR_FLAC_NO_CRC +#ifdef MA_DR_FLAC_NO_CRC (void)crc; (void)data; (void)count; return 0; #else - drflac_uint32 wholeBytes; - drflac_uint32 leftoverBits; - drflac_uint64 leftoverDataMask; - static drflac_uint64 leftoverDataMaskTable[8] = { + ma_uint32 wholeBytes; + ma_uint32 leftoverBits; + ma_uint64 leftoverDataMask; + static ma_uint64 leftoverDataMaskTable[8] = { 0x00, 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x7F }; - DRFLAC_ASSERT(count <= 64); + MA_DR_FLAC_ASSERT(count <= 64); wholeBytes = count >> 3; leftoverBits = count & 7; leftoverDataMask = leftoverDataMaskTable[leftoverBits]; switch (wholeBytes) { default: - case 8: crc = drflac_crc16_byte(crc, (drflac_uint8)((data & (((drflac_uint64)0xFF000000 << 32) << leftoverBits)) >> (56 + leftoverBits))); - case 7: crc = drflac_crc16_byte(crc, (drflac_uint8)((data & (((drflac_uint64)0x00FF0000 << 32) << leftoverBits)) >> (48 + leftoverBits))); - case 6: crc = drflac_crc16_byte(crc, (drflac_uint8)((data & (((drflac_uint64)0x0000FF00 << 32) << leftoverBits)) >> (40 + leftoverBits))); - case 5: crc = drflac_crc16_byte(crc, (drflac_uint8)((data & (((drflac_uint64)0x000000FF << 32) << leftoverBits)) >> (32 + leftoverBits))); - case 4: crc = drflac_crc16_byte(crc, (drflac_uint8)((data & (((drflac_uint64)0xFF000000 ) << leftoverBits)) >> (24 + leftoverBits))); - case 3: crc = drflac_crc16_byte(crc, (drflac_uint8)((data & (((drflac_uint64)0x00FF0000 ) << leftoverBits)) >> (16 + leftoverBits))); - case 2: crc = drflac_crc16_byte(crc, (drflac_uint8)((data & (((drflac_uint64)0x0000FF00 ) << leftoverBits)) >> ( 8 + leftoverBits))); - case 1: crc = drflac_crc16_byte(crc, (drflac_uint8)((data & (((drflac_uint64)0x000000FF ) << leftoverBits)) >> ( 0 + leftoverBits))); - case 0: if (leftoverBits > 0) crc = (crc << leftoverBits) ^ drflac__crc16_table[(crc >> (16 - leftoverBits)) ^ (data & leftoverDataMask)]; + case 8: crc = ma_dr_flac_crc16_byte(crc, (ma_uint8)((data & (((ma_uint64)0xFF000000 << 32) << leftoverBits)) >> (56 + leftoverBits))); + case 7: crc = ma_dr_flac_crc16_byte(crc, (ma_uint8)((data & (((ma_uint64)0x00FF0000 << 32) << leftoverBits)) >> (48 + leftoverBits))); + case 6: crc = ma_dr_flac_crc16_byte(crc, (ma_uint8)((data & (((ma_uint64)0x0000FF00 << 32) << leftoverBits)) >> (40 + leftoverBits))); + case 5: crc = ma_dr_flac_crc16_byte(crc, (ma_uint8)((data & (((ma_uint64)0x000000FF << 32) << leftoverBits)) >> (32 + leftoverBits))); + case 4: crc = ma_dr_flac_crc16_byte(crc, (ma_uint8)((data & (((ma_uint64)0xFF000000 ) << leftoverBits)) >> (24 + leftoverBits))); + case 3: crc = ma_dr_flac_crc16_byte(crc, (ma_uint8)((data & (((ma_uint64)0x00FF0000 ) << leftoverBits)) >> (16 + leftoverBits))); + case 2: crc = ma_dr_flac_crc16_byte(crc, (ma_uint8)((data & (((ma_uint64)0x0000FF00 ) << leftoverBits)) >> ( 8 + leftoverBits))); + case 1: crc = ma_dr_flac_crc16_byte(crc, (ma_uint8)((data & (((ma_uint64)0x000000FF ) << leftoverBits)) >> ( 0 + leftoverBits))); + case 0: if (leftoverBits > 0) crc = (crc << leftoverBits) ^ ma_dr_flac__crc16_table[(crc >> (16 - leftoverBits)) ^ (data & leftoverDataMask)]; } return crc; #endif } -static DRFLAC_INLINE drflac_uint16 drflac_crc16(drflac_uint16 crc, drflac_cache_t data, drflac_uint32 count) +static MA_INLINE ma_uint16 ma_dr_flac_crc16(ma_uint16 crc, ma_dr_flac_cache_t data, ma_uint32 count) { -#ifdef DRFLAC_64BIT - return drflac_crc16__64bit(crc, data, count); +#ifdef MA_64BIT + return ma_dr_flac_crc16__64bit(crc, data, count); #else - return drflac_crc16__32bit(crc, data, count); + return ma_dr_flac_crc16__32bit(crc, data, count); #endif } #endif -#ifdef DRFLAC_64BIT -#define drflac__be2host__cache_line drflac__be2host_64 +#ifdef MA_64BIT +#define ma_dr_flac__be2host__cache_line ma_dr_flac__be2host_64 #else -#define drflac__be2host__cache_line drflac__be2host_32 +#define ma_dr_flac__be2host__cache_line ma_dr_flac__be2host_32 #endif -#define DRFLAC_CACHE_L1_SIZE_BYTES(bs) (sizeof((bs)->cache)) -#define DRFLAC_CACHE_L1_SIZE_BITS(bs) (sizeof((bs)->cache)*8) -#define DRFLAC_CACHE_L1_BITS_REMAINING(bs) (DRFLAC_CACHE_L1_SIZE_BITS(bs) - (bs)->consumedBits) -#define DRFLAC_CACHE_L1_SELECTION_MASK(_bitCount) (~((~(drflac_cache_t)0) >> (_bitCount))) -#define DRFLAC_CACHE_L1_SELECTION_SHIFT(bs, _bitCount) (DRFLAC_CACHE_L1_SIZE_BITS(bs) - (_bitCount)) -#define DRFLAC_CACHE_L1_SELECT(bs, _bitCount) (((bs)->cache) & DRFLAC_CACHE_L1_SELECTION_MASK(_bitCount)) -#define DRFLAC_CACHE_L1_SELECT_AND_SHIFT(bs, _bitCount) (DRFLAC_CACHE_L1_SELECT((bs), (_bitCount)) >> DRFLAC_CACHE_L1_SELECTION_SHIFT((bs), (_bitCount))) -#define DRFLAC_CACHE_L1_SELECT_AND_SHIFT_SAFE(bs, _bitCount)(DRFLAC_CACHE_L1_SELECT((bs), (_bitCount)) >> (DRFLAC_CACHE_L1_SELECTION_SHIFT((bs), (_bitCount)) & (DRFLAC_CACHE_L1_SIZE_BITS(bs)-1))) -#define DRFLAC_CACHE_L2_SIZE_BYTES(bs) (sizeof((bs)->cacheL2)) -#define DRFLAC_CACHE_L2_LINE_COUNT(bs) (DRFLAC_CACHE_L2_SIZE_BYTES(bs) / sizeof((bs)->cacheL2[0])) -#define DRFLAC_CACHE_L2_LINES_REMAINING(bs) (DRFLAC_CACHE_L2_LINE_COUNT(bs) - (bs)->nextL2Line) -#ifndef DR_FLAC_NO_CRC -static DRFLAC_INLINE void drflac__reset_crc16(drflac_bs* bs) +#define MA_DR_FLAC_CACHE_L1_SIZE_BYTES(bs) (sizeof((bs)->cache)) +#define MA_DR_FLAC_CACHE_L1_SIZE_BITS(bs) (sizeof((bs)->cache)*8) +#define MA_DR_FLAC_CACHE_L1_BITS_REMAINING(bs) (MA_DR_FLAC_CACHE_L1_SIZE_BITS(bs) - (bs)->consumedBits) +#define MA_DR_FLAC_CACHE_L1_SELECTION_MASK(_bitCount) (~((~(ma_dr_flac_cache_t)0) >> (_bitCount))) +#define MA_DR_FLAC_CACHE_L1_SELECTION_SHIFT(bs, _bitCount) (MA_DR_FLAC_CACHE_L1_SIZE_BITS(bs) - (_bitCount)) +#define MA_DR_FLAC_CACHE_L1_SELECT(bs, _bitCount) (((bs)->cache) & MA_DR_FLAC_CACHE_L1_SELECTION_MASK(_bitCount)) +#define MA_DR_FLAC_CACHE_L1_SELECT_AND_SHIFT(bs, _bitCount) (MA_DR_FLAC_CACHE_L1_SELECT((bs), (_bitCount)) >> MA_DR_FLAC_CACHE_L1_SELECTION_SHIFT((bs), (_bitCount))) +#define MA_DR_FLAC_CACHE_L1_SELECT_AND_SHIFT_SAFE(bs, _bitCount)(MA_DR_FLAC_CACHE_L1_SELECT((bs), (_bitCount)) >> (MA_DR_FLAC_CACHE_L1_SELECTION_SHIFT((bs), (_bitCount)) & (MA_DR_FLAC_CACHE_L1_SIZE_BITS(bs)-1))) +#define MA_DR_FLAC_CACHE_L2_SIZE_BYTES(bs) (sizeof((bs)->cacheL2)) +#define MA_DR_FLAC_CACHE_L2_LINE_COUNT(bs) (MA_DR_FLAC_CACHE_L2_SIZE_BYTES(bs) / sizeof((bs)->cacheL2[0])) +#define MA_DR_FLAC_CACHE_L2_LINES_REMAINING(bs) (MA_DR_FLAC_CACHE_L2_LINE_COUNT(bs) - (bs)->nextL2Line) +#ifndef MA_DR_FLAC_NO_CRC +static MA_INLINE void ma_dr_flac__reset_crc16(ma_dr_flac_bs* bs) { bs->crc16 = 0; bs->crc16CacheIgnoredBytes = bs->consumedBits >> 3; } -static DRFLAC_INLINE void drflac__update_crc16(drflac_bs* bs) +static MA_INLINE void ma_dr_flac__update_crc16(ma_dr_flac_bs* bs) { if (bs->crc16CacheIgnoredBytes == 0) { - bs->crc16 = drflac_crc16_cache(bs->crc16, bs->crc16Cache); + bs->crc16 = ma_dr_flac_crc16_cache(bs->crc16, bs->crc16Cache); } else { - bs->crc16 = drflac_crc16_bytes(bs->crc16, bs->crc16Cache, DRFLAC_CACHE_L1_SIZE_BYTES(bs) - bs->crc16CacheIgnoredBytes); + bs->crc16 = ma_dr_flac_crc16_bytes(bs->crc16, bs->crc16Cache, MA_DR_FLAC_CACHE_L1_SIZE_BYTES(bs) - bs->crc16CacheIgnoredBytes); bs->crc16CacheIgnoredBytes = 0; } } -static DRFLAC_INLINE drflac_uint16 drflac__flush_crc16(drflac_bs* bs) +static MA_INLINE ma_uint16 ma_dr_flac__flush_crc16(ma_dr_flac_bs* bs) { - DRFLAC_ASSERT((DRFLAC_CACHE_L1_BITS_REMAINING(bs) & 7) == 0); - if (DRFLAC_CACHE_L1_BITS_REMAINING(bs) == 0) { - drflac__update_crc16(bs); + MA_DR_FLAC_ASSERT((MA_DR_FLAC_CACHE_L1_BITS_REMAINING(bs) & 7) == 0); + if (MA_DR_FLAC_CACHE_L1_BITS_REMAINING(bs) == 0) { + ma_dr_flac__update_crc16(bs); } else { - bs->crc16 = drflac_crc16_bytes(bs->crc16, bs->crc16Cache >> DRFLAC_CACHE_L1_BITS_REMAINING(bs), (bs->consumedBits >> 3) - bs->crc16CacheIgnoredBytes); + bs->crc16 = ma_dr_flac_crc16_bytes(bs->crc16, bs->crc16Cache >> MA_DR_FLAC_CACHE_L1_BITS_REMAINING(bs), (bs->consumedBits >> 3) - bs->crc16CacheIgnoredBytes); bs->crc16CacheIgnoredBytes = bs->consumedBits >> 3; } return bs->crc16; } #endif -static DRFLAC_INLINE drflac_bool32 drflac__reload_l1_cache_from_l2(drflac_bs* bs) +static MA_INLINE ma_bool32 ma_dr_flac__reload_l1_cache_from_l2(ma_dr_flac_bs* bs) { size_t bytesRead; size_t alignedL1LineCount; - if (bs->nextL2Line < DRFLAC_CACHE_L2_LINE_COUNT(bs)) { + if (bs->nextL2Line < MA_DR_FLAC_CACHE_L2_LINE_COUNT(bs)) { bs->cache = bs->cacheL2[bs->nextL2Line++]; - return DRFLAC_TRUE; + return MA_TRUE; } if (bs->unalignedByteCount > 0) { - return DRFLAC_FALSE; + return MA_FALSE; } - bytesRead = bs->onRead(bs->pUserData, bs->cacheL2, DRFLAC_CACHE_L2_SIZE_BYTES(bs)); + bytesRead = bs->onRead(bs->pUserData, bs->cacheL2, MA_DR_FLAC_CACHE_L2_SIZE_BYTES(bs)); bs->nextL2Line = 0; - if (bytesRead == DRFLAC_CACHE_L2_SIZE_BYTES(bs)) { + if (bytesRead == MA_DR_FLAC_CACHE_L2_SIZE_BYTES(bs)) { bs->cache = bs->cacheL2[bs->nextL2Line++]; - return DRFLAC_TRUE; + return MA_TRUE; } - alignedL1LineCount = bytesRead / DRFLAC_CACHE_L1_SIZE_BYTES(bs); - bs->unalignedByteCount = bytesRead - (alignedL1LineCount * DRFLAC_CACHE_L1_SIZE_BYTES(bs)); + alignedL1LineCount = bytesRead / MA_DR_FLAC_CACHE_L1_SIZE_BYTES(bs); + bs->unalignedByteCount = bytesRead - (alignedL1LineCount * MA_DR_FLAC_CACHE_L1_SIZE_BYTES(bs)); if (bs->unalignedByteCount > 0) { bs->unalignedCache = bs->cacheL2[alignedL1LineCount]; } if (alignedL1LineCount > 0) { - size_t offset = DRFLAC_CACHE_L2_LINE_COUNT(bs) - alignedL1LineCount; + size_t offset = MA_DR_FLAC_CACHE_L2_LINE_COUNT(bs) - alignedL1LineCount; size_t i; for (i = alignedL1LineCount; i > 0; --i) { bs->cacheL2[i-1 + offset] = bs->cacheL2[i-1]; } - bs->nextL2Line = (drflac_uint32)offset; + bs->nextL2Line = (ma_uint32)offset; bs->cache = bs->cacheL2[bs->nextL2Line++]; - return DRFLAC_TRUE; + return MA_TRUE; } else { - bs->nextL2Line = DRFLAC_CACHE_L2_LINE_COUNT(bs); - return DRFLAC_FALSE; + bs->nextL2Line = MA_DR_FLAC_CACHE_L2_LINE_COUNT(bs); + return MA_FALSE; } } -static drflac_bool32 drflac__reload_cache(drflac_bs* bs) +static ma_bool32 ma_dr_flac__reload_cache(ma_dr_flac_bs* bs) { size_t bytesRead; -#ifndef DR_FLAC_NO_CRC - drflac__update_crc16(bs); +#ifndef MA_DR_FLAC_NO_CRC + ma_dr_flac__update_crc16(bs); #endif - if (drflac__reload_l1_cache_from_l2(bs)) { - bs->cache = drflac__be2host__cache_line(bs->cache); + if (ma_dr_flac__reload_l1_cache_from_l2(bs)) { + bs->cache = ma_dr_flac__be2host__cache_line(bs->cache); bs->consumedBits = 0; -#ifndef DR_FLAC_NO_CRC +#ifndef MA_DR_FLAC_NO_CRC bs->crc16Cache = bs->cache; #endif - return DRFLAC_TRUE; + return MA_TRUE; } bytesRead = bs->unalignedByteCount; if (bytesRead == 0) { - bs->consumedBits = DRFLAC_CACHE_L1_SIZE_BITS(bs); - return DRFLAC_FALSE; + bs->consumedBits = MA_DR_FLAC_CACHE_L1_SIZE_BITS(bs); + return MA_FALSE; } - DRFLAC_ASSERT(bytesRead < DRFLAC_CACHE_L1_SIZE_BYTES(bs)); - bs->consumedBits = (drflac_uint32)(DRFLAC_CACHE_L1_SIZE_BYTES(bs) - bytesRead) * 8; - bs->cache = drflac__be2host__cache_line(bs->unalignedCache); - bs->cache &= DRFLAC_CACHE_L1_SELECTION_MASK(DRFLAC_CACHE_L1_BITS_REMAINING(bs)); + MA_DR_FLAC_ASSERT(bytesRead < MA_DR_FLAC_CACHE_L1_SIZE_BYTES(bs)); + bs->consumedBits = (ma_uint32)(MA_DR_FLAC_CACHE_L1_SIZE_BYTES(bs) - bytesRead) * 8; + bs->cache = ma_dr_flac__be2host__cache_line(bs->unalignedCache); + bs->cache &= MA_DR_FLAC_CACHE_L1_SELECTION_MASK(MA_DR_FLAC_CACHE_L1_BITS_REMAINING(bs)); bs->unalignedByteCount = 0; -#ifndef DR_FLAC_NO_CRC +#ifndef MA_DR_FLAC_NO_CRC bs->crc16Cache = bs->cache >> bs->consumedBits; bs->crc16CacheIgnoredBytes = bs->consumedBits >> 3; #endif - return DRFLAC_TRUE; + return MA_TRUE; } -static void drflac__reset_cache(drflac_bs* bs) +static void ma_dr_flac__reset_cache(ma_dr_flac_bs* bs) { - bs->nextL2Line = DRFLAC_CACHE_L2_LINE_COUNT(bs); - bs->consumedBits = DRFLAC_CACHE_L1_SIZE_BITS(bs); + bs->nextL2Line = MA_DR_FLAC_CACHE_L2_LINE_COUNT(bs); + bs->consumedBits = MA_DR_FLAC_CACHE_L1_SIZE_BITS(bs); bs->cache = 0; bs->unalignedByteCount = 0; bs->unalignedCache = 0; -#ifndef DR_FLAC_NO_CRC +#ifndef MA_DR_FLAC_NO_CRC bs->crc16Cache = 0; bs->crc16CacheIgnoredBytes = 0; #endif } -static DRFLAC_INLINE drflac_bool32 drflac__read_uint32(drflac_bs* bs, unsigned int bitCount, drflac_uint32* pResultOut) +static MA_INLINE ma_bool32 ma_dr_flac__read_uint32(ma_dr_flac_bs* bs, unsigned int bitCount, ma_uint32* pResultOut) { - DRFLAC_ASSERT(bs != NULL); - DRFLAC_ASSERT(pResultOut != NULL); - DRFLAC_ASSERT(bitCount > 0); - DRFLAC_ASSERT(bitCount <= 32); - if (bs->consumedBits == DRFLAC_CACHE_L1_SIZE_BITS(bs)) { - if (!drflac__reload_cache(bs)) { - return DRFLAC_FALSE; + MA_DR_FLAC_ASSERT(bs != NULL); + MA_DR_FLAC_ASSERT(pResultOut != NULL); + MA_DR_FLAC_ASSERT(bitCount > 0); + MA_DR_FLAC_ASSERT(bitCount <= 32); + if (bs->consumedBits == MA_DR_FLAC_CACHE_L1_SIZE_BITS(bs)) { + if (!ma_dr_flac__reload_cache(bs)) { + return MA_FALSE; } } - if (bitCount <= DRFLAC_CACHE_L1_BITS_REMAINING(bs)) { -#ifdef DRFLAC_64BIT - *pResultOut = (drflac_uint32)DRFLAC_CACHE_L1_SELECT_AND_SHIFT(bs, bitCount); + if (bitCount <= MA_DR_FLAC_CACHE_L1_BITS_REMAINING(bs)) { +#ifdef MA_64BIT + *pResultOut = (ma_uint32)MA_DR_FLAC_CACHE_L1_SELECT_AND_SHIFT(bs, bitCount); bs->consumedBits += bitCount; bs->cache <<= bitCount; #else - if (bitCount < DRFLAC_CACHE_L1_SIZE_BITS(bs)) { - *pResultOut = (drflac_uint32)DRFLAC_CACHE_L1_SELECT_AND_SHIFT(bs, bitCount); + if (bitCount < MA_DR_FLAC_CACHE_L1_SIZE_BITS(bs)) { + *pResultOut = (ma_uint32)MA_DR_FLAC_CACHE_L1_SELECT_AND_SHIFT(bs, bitCount); bs->consumedBits += bitCount; bs->cache <<= bitCount; } else { - *pResultOut = (drflac_uint32)bs->cache; - bs->consumedBits = DRFLAC_CACHE_L1_SIZE_BITS(bs); + *pResultOut = (ma_uint32)bs->cache; + bs->consumedBits = MA_DR_FLAC_CACHE_L1_SIZE_BITS(bs); bs->cache = 0; } #endif - return DRFLAC_TRUE; + return MA_TRUE; } else { - drflac_uint32 bitCountHi = DRFLAC_CACHE_L1_BITS_REMAINING(bs); - drflac_uint32 bitCountLo = bitCount - bitCountHi; - drflac_uint32 resultHi; - DRFLAC_ASSERT(bitCountHi > 0); - DRFLAC_ASSERT(bitCountHi < 32); - resultHi = (drflac_uint32)DRFLAC_CACHE_L1_SELECT_AND_SHIFT(bs, bitCountHi); - if (!drflac__reload_cache(bs)) { - return DRFLAC_FALSE; + ma_uint32 bitCountHi = MA_DR_FLAC_CACHE_L1_BITS_REMAINING(bs); + ma_uint32 bitCountLo = bitCount - bitCountHi; + ma_uint32 resultHi; + MA_DR_FLAC_ASSERT(bitCountHi > 0); + MA_DR_FLAC_ASSERT(bitCountHi < 32); + resultHi = (ma_uint32)MA_DR_FLAC_CACHE_L1_SELECT_AND_SHIFT(bs, bitCountHi); + if (!ma_dr_flac__reload_cache(bs)) { + return MA_FALSE; } - if (bitCountLo > DRFLAC_CACHE_L1_BITS_REMAINING(bs)) { - return DRFLAC_FALSE; + if (bitCountLo > MA_DR_FLAC_CACHE_L1_BITS_REMAINING(bs)) { + return MA_FALSE; } - *pResultOut = (resultHi << bitCountLo) | (drflac_uint32)DRFLAC_CACHE_L1_SELECT_AND_SHIFT(bs, bitCountLo); + *pResultOut = (resultHi << bitCountLo) | (ma_uint32)MA_DR_FLAC_CACHE_L1_SELECT_AND_SHIFT(bs, bitCountLo); bs->consumedBits += bitCountLo; bs->cache <<= bitCountLo; - return DRFLAC_TRUE; + return MA_TRUE; } } -static drflac_bool32 drflac__read_int32(drflac_bs* bs, unsigned int bitCount, drflac_int32* pResult) +static ma_bool32 ma_dr_flac__read_int32(ma_dr_flac_bs* bs, unsigned int bitCount, ma_int32* pResult) { - drflac_uint32 result; - DRFLAC_ASSERT(bs != NULL); - DRFLAC_ASSERT(pResult != NULL); - DRFLAC_ASSERT(bitCount > 0); - DRFLAC_ASSERT(bitCount <= 32); - if (!drflac__read_uint32(bs, bitCount, &result)) { - return DRFLAC_FALSE; + ma_uint32 result; + MA_DR_FLAC_ASSERT(bs != NULL); + MA_DR_FLAC_ASSERT(pResult != NULL); + MA_DR_FLAC_ASSERT(bitCount > 0); + MA_DR_FLAC_ASSERT(bitCount <= 32); + if (!ma_dr_flac__read_uint32(bs, bitCount, &result)) { + return MA_FALSE; } if (bitCount < 32) { - drflac_uint32 signbit; + ma_uint32 signbit; signbit = ((result >> (bitCount-1)) & 0x01); result |= (~signbit + 1) << bitCount; } - *pResult = (drflac_int32)result; - return DRFLAC_TRUE; + *pResult = (ma_int32)result; + return MA_TRUE; } -#ifdef DRFLAC_64BIT -static drflac_bool32 drflac__read_uint64(drflac_bs* bs, unsigned int bitCount, drflac_uint64* pResultOut) +#ifdef MA_64BIT +static ma_bool32 ma_dr_flac__read_uint64(ma_dr_flac_bs* bs, unsigned int bitCount, ma_uint64* pResultOut) { - drflac_uint32 resultHi; - drflac_uint32 resultLo; - DRFLAC_ASSERT(bitCount <= 64); - DRFLAC_ASSERT(bitCount > 32); - if (!drflac__read_uint32(bs, bitCount - 32, &resultHi)) { - return DRFLAC_FALSE; + ma_uint32 resultHi; + ma_uint32 resultLo; + MA_DR_FLAC_ASSERT(bitCount <= 64); + MA_DR_FLAC_ASSERT(bitCount > 32); + if (!ma_dr_flac__read_uint32(bs, bitCount - 32, &resultHi)) { + return MA_FALSE; } - if (!drflac__read_uint32(bs, 32, &resultLo)) { - return DRFLAC_FALSE; + if (!ma_dr_flac__read_uint32(bs, 32, &resultLo)) { + return MA_FALSE; } - *pResultOut = (((drflac_uint64)resultHi) << 32) | ((drflac_uint64)resultLo); - return DRFLAC_TRUE; + *pResultOut = (((ma_uint64)resultHi) << 32) | ((ma_uint64)resultLo); + return MA_TRUE; } #endif #if 0 -static drflac_bool32 drflac__read_int64(drflac_bs* bs, unsigned int bitCount, drflac_int64* pResultOut) +static ma_bool32 ma_dr_flac__read_int64(ma_dr_flac_bs* bs, unsigned int bitCount, ma_int64* pResultOut) { - drflac_uint64 result; - drflac_uint64 signbit; - DRFLAC_ASSERT(bitCount <= 64); - if (!drflac__read_uint64(bs, bitCount, &result)) { - return DRFLAC_FALSE; + ma_uint64 result; + ma_uint64 signbit; + MA_DR_FLAC_ASSERT(bitCount <= 64); + if (!ma_dr_flac__read_uint64(bs, bitCount, &result)) { + return MA_FALSE; } signbit = ((result >> (bitCount-1)) & 0x01); result |= (~signbit + 1) << bitCount; - *pResultOut = (drflac_int64)result; - return DRFLAC_TRUE; + *pResultOut = (ma_int64)result; + return MA_TRUE; } #endif -static drflac_bool32 drflac__read_uint16(drflac_bs* bs, unsigned int bitCount, drflac_uint16* pResult) +static ma_bool32 ma_dr_flac__read_uint16(ma_dr_flac_bs* bs, unsigned int bitCount, ma_uint16* pResult) { - drflac_uint32 result; - DRFLAC_ASSERT(bs != NULL); - DRFLAC_ASSERT(pResult != NULL); - DRFLAC_ASSERT(bitCount > 0); - DRFLAC_ASSERT(bitCount <= 16); - if (!drflac__read_uint32(bs, bitCount, &result)) { - return DRFLAC_FALSE; + ma_uint32 result; + MA_DR_FLAC_ASSERT(bs != NULL); + MA_DR_FLAC_ASSERT(pResult != NULL); + MA_DR_FLAC_ASSERT(bitCount > 0); + MA_DR_FLAC_ASSERT(bitCount <= 16); + if (!ma_dr_flac__read_uint32(bs, bitCount, &result)) { + return MA_FALSE; } - *pResult = (drflac_uint16)result; - return DRFLAC_TRUE; + *pResult = (ma_uint16)result; + return MA_TRUE; } #if 0 -static drflac_bool32 drflac__read_int16(drflac_bs* bs, unsigned int bitCount, drflac_int16* pResult) +static ma_bool32 ma_dr_flac__read_int16(ma_dr_flac_bs* bs, unsigned int bitCount, ma_int16* pResult) { - drflac_int32 result; - DRFLAC_ASSERT(bs != NULL); - DRFLAC_ASSERT(pResult != NULL); - DRFLAC_ASSERT(bitCount > 0); - DRFLAC_ASSERT(bitCount <= 16); - if (!drflac__read_int32(bs, bitCount, &result)) { - return DRFLAC_FALSE; + ma_int32 result; + MA_DR_FLAC_ASSERT(bs != NULL); + MA_DR_FLAC_ASSERT(pResult != NULL); + MA_DR_FLAC_ASSERT(bitCount > 0); + MA_DR_FLAC_ASSERT(bitCount <= 16); + if (!ma_dr_flac__read_int32(bs, bitCount, &result)) { + return MA_FALSE; } - *pResult = (drflac_int16)result; - return DRFLAC_TRUE; + *pResult = (ma_int16)result; + return MA_TRUE; } #endif -static drflac_bool32 drflac__read_uint8(drflac_bs* bs, unsigned int bitCount, drflac_uint8* pResult) +static ma_bool32 ma_dr_flac__read_uint8(ma_dr_flac_bs* bs, unsigned int bitCount, ma_uint8* pResult) { - drflac_uint32 result; - DRFLAC_ASSERT(bs != NULL); - DRFLAC_ASSERT(pResult != NULL); - DRFLAC_ASSERT(bitCount > 0); - DRFLAC_ASSERT(bitCount <= 8); - if (!drflac__read_uint32(bs, bitCount, &result)) { - return DRFLAC_FALSE; + ma_uint32 result; + MA_DR_FLAC_ASSERT(bs != NULL); + MA_DR_FLAC_ASSERT(pResult != NULL); + MA_DR_FLAC_ASSERT(bitCount > 0); + MA_DR_FLAC_ASSERT(bitCount <= 8); + if (!ma_dr_flac__read_uint32(bs, bitCount, &result)) { + return MA_FALSE; } - *pResult = (drflac_uint8)result; - return DRFLAC_TRUE; + *pResult = (ma_uint8)result; + return MA_TRUE; } -static drflac_bool32 drflac__read_int8(drflac_bs* bs, unsigned int bitCount, drflac_int8* pResult) +static ma_bool32 ma_dr_flac__read_int8(ma_dr_flac_bs* bs, unsigned int bitCount, ma_int8* pResult) { - drflac_int32 result; - DRFLAC_ASSERT(bs != NULL); - DRFLAC_ASSERT(pResult != NULL); - DRFLAC_ASSERT(bitCount > 0); - DRFLAC_ASSERT(bitCount <= 8); - if (!drflac__read_int32(bs, bitCount, &result)) { - return DRFLAC_FALSE; + ma_int32 result; + MA_DR_FLAC_ASSERT(bs != NULL); + MA_DR_FLAC_ASSERT(pResult != NULL); + MA_DR_FLAC_ASSERT(bitCount > 0); + MA_DR_FLAC_ASSERT(bitCount <= 8); + if (!ma_dr_flac__read_int32(bs, bitCount, &result)) { + return MA_FALSE; } - *pResult = (drflac_int8)result; - return DRFLAC_TRUE; + *pResult = (ma_int8)result; + return MA_TRUE; } -static drflac_bool32 drflac__seek_bits(drflac_bs* bs, size_t bitsToSeek) +static ma_bool32 ma_dr_flac__seek_bits(ma_dr_flac_bs* bs, size_t bitsToSeek) { - if (bitsToSeek <= DRFLAC_CACHE_L1_BITS_REMAINING(bs)) { - bs->consumedBits += (drflac_uint32)bitsToSeek; + if (bitsToSeek <= MA_DR_FLAC_CACHE_L1_BITS_REMAINING(bs)) { + bs->consumedBits += (ma_uint32)bitsToSeek; bs->cache <<= bitsToSeek; - return DRFLAC_TRUE; + return MA_TRUE; } else { - bitsToSeek -= DRFLAC_CACHE_L1_BITS_REMAINING(bs); - bs->consumedBits += DRFLAC_CACHE_L1_BITS_REMAINING(bs); + bitsToSeek -= MA_DR_FLAC_CACHE_L1_BITS_REMAINING(bs); + bs->consumedBits += MA_DR_FLAC_CACHE_L1_BITS_REMAINING(bs); bs->cache = 0; -#ifdef DRFLAC_64BIT - while (bitsToSeek >= DRFLAC_CACHE_L1_SIZE_BITS(bs)) { - drflac_uint64 bin; - if (!drflac__read_uint64(bs, DRFLAC_CACHE_L1_SIZE_BITS(bs), &bin)) { - return DRFLAC_FALSE; +#ifdef MA_64BIT + while (bitsToSeek >= MA_DR_FLAC_CACHE_L1_SIZE_BITS(bs)) { + ma_uint64 bin; + if (!ma_dr_flac__read_uint64(bs, MA_DR_FLAC_CACHE_L1_SIZE_BITS(bs), &bin)) { + return MA_FALSE; } - bitsToSeek -= DRFLAC_CACHE_L1_SIZE_BITS(bs); + bitsToSeek -= MA_DR_FLAC_CACHE_L1_SIZE_BITS(bs); } #else - while (bitsToSeek >= DRFLAC_CACHE_L1_SIZE_BITS(bs)) { - drflac_uint32 bin; - if (!drflac__read_uint32(bs, DRFLAC_CACHE_L1_SIZE_BITS(bs), &bin)) { - return DRFLAC_FALSE; + while (bitsToSeek >= MA_DR_FLAC_CACHE_L1_SIZE_BITS(bs)) { + ma_uint32 bin; + if (!ma_dr_flac__read_uint32(bs, MA_DR_FLAC_CACHE_L1_SIZE_BITS(bs), &bin)) { + return MA_FALSE; } - bitsToSeek -= DRFLAC_CACHE_L1_SIZE_BITS(bs); + bitsToSeek -= MA_DR_FLAC_CACHE_L1_SIZE_BITS(bs); } #endif while (bitsToSeek >= 8) { - drflac_uint8 bin; - if (!drflac__read_uint8(bs, 8, &bin)) { - return DRFLAC_FALSE; + ma_uint8 bin; + if (!ma_dr_flac__read_uint8(bs, 8, &bin)) { + return MA_FALSE; } bitsToSeek -= 8; } if (bitsToSeek > 0) { - drflac_uint8 bin; - if (!drflac__read_uint8(bs, (drflac_uint32)bitsToSeek, &bin)) { - return DRFLAC_FALSE; + ma_uint8 bin; + if (!ma_dr_flac__read_uint8(bs, (ma_uint32)bitsToSeek, &bin)) { + return MA_FALSE; } bitsToSeek = 0; } - DRFLAC_ASSERT(bitsToSeek == 0); - return DRFLAC_TRUE; + MA_DR_FLAC_ASSERT(bitsToSeek == 0); + return MA_TRUE; } } -static drflac_bool32 drflac__find_and_seek_to_next_sync_code(drflac_bs* bs) +static ma_bool32 ma_dr_flac__find_and_seek_to_next_sync_code(ma_dr_flac_bs* bs) { - DRFLAC_ASSERT(bs != NULL); - if (!drflac__seek_bits(bs, DRFLAC_CACHE_L1_BITS_REMAINING(bs) & 7)) { - return DRFLAC_FALSE; + MA_DR_FLAC_ASSERT(bs != NULL); + if (!ma_dr_flac__seek_bits(bs, MA_DR_FLAC_CACHE_L1_BITS_REMAINING(bs) & 7)) { + return MA_FALSE; } for (;;) { - drflac_uint8 hi; -#ifndef DR_FLAC_NO_CRC - drflac__reset_crc16(bs); + ma_uint8 hi; +#ifndef MA_DR_FLAC_NO_CRC + ma_dr_flac__reset_crc16(bs); #endif - if (!drflac__read_uint8(bs, 8, &hi)) { - return DRFLAC_FALSE; + if (!ma_dr_flac__read_uint8(bs, 8, &hi)) { + return MA_FALSE; } if (hi == 0xFF) { - drflac_uint8 lo; - if (!drflac__read_uint8(bs, 6, &lo)) { - return DRFLAC_FALSE; + ma_uint8 lo; + if (!ma_dr_flac__read_uint8(bs, 6, &lo)) { + return MA_FALSE; } if (lo == 0x3E) { - return DRFLAC_TRUE; + return MA_TRUE; } else { - if (!drflac__seek_bits(bs, DRFLAC_CACHE_L1_BITS_REMAINING(bs) & 7)) { - return DRFLAC_FALSE; + if (!ma_dr_flac__seek_bits(bs, MA_DR_FLAC_CACHE_L1_BITS_REMAINING(bs) & 7)) { + return MA_FALSE; } } } } } -#if defined(DRFLAC_HAS_LZCNT_INTRINSIC) -#define DRFLAC_IMPLEMENT_CLZ_LZCNT +#if defined(MA_DR_FLAC_HAS_LZCNT_INTRINSIC) +#define MA_DR_FLAC_IMPLEMENT_CLZ_LZCNT #endif -#if defined(_MSC_VER) && _MSC_VER >= 1400 && (defined(DRFLAC_X64) || defined(DRFLAC_X86)) && !defined(__clang__) -#define DRFLAC_IMPLEMENT_CLZ_MSVC +#if defined(_MSC_VER) && _MSC_VER >= 1400 && (defined(MA_X64) || defined(MA_X86)) && !defined(__clang__) +#define MA_DR_FLAC_IMPLEMENT_CLZ_MSVC #endif #if defined(__WATCOMC__) && defined(__386__) -#define DRFLAC_IMPLEMENT_CLZ_WATCOM +#define MA_DR_FLAC_IMPLEMENT_CLZ_WATCOM #endif -static DRFLAC_INLINE drflac_uint32 drflac__clz_software(drflac_cache_t x) +#ifdef __MRC__ +#include +#define MA_DR_FLAC_IMPLEMENT_CLZ_MRC +#endif +static MA_INLINE ma_uint32 ma_dr_flac__clz_software(ma_dr_flac_cache_t x) { - drflac_uint32 n; - static drflac_uint32 clz_table_4[] = { + ma_uint32 n; + static ma_uint32 clz_table_4[] = { 0, 4, 3, 3, @@ -79977,11 +83093,11 @@ static DRFLAC_INLINE drflac_uint32 drflac__clz_software(drflac_cache_t x) } n = clz_table_4[x >> (sizeof(x)*8 - 4)]; if (n == 0) { -#ifdef DRFLAC_64BIT - if ((x & ((drflac_uint64)0xFFFFFFFF << 32)) == 0) { n = 32; x <<= 32; } - if ((x & ((drflac_uint64)0xFFFF0000 << 32)) == 0) { n += 16; x <<= 16; } - if ((x & ((drflac_uint64)0xFF000000 << 32)) == 0) { n += 8; x <<= 8; } - if ((x & ((drflac_uint64)0xF0000000 << 32)) == 0) { n += 4; x <<= 4; } +#ifdef MA_64BIT + if ((x & ((ma_uint64)0xFFFFFFFF << 32)) == 0) { n = 32; x <<= 32; } + if ((x & ((ma_uint64)0xFFFF0000 << 32)) == 0) { n += 16; x <<= 16; } + if ((x & ((ma_uint64)0xFF000000 << 32)) == 0) { n += 8; x <<= 8; } + if ((x & ((ma_uint64)0xF0000000 << 32)) == 0) { n += 4; x <<= 4; } #else if ((x & 0xFFFF0000) == 0) { n = 16; x <<= 16; } if ((x & 0xFF000000) == 0) { n += 8; x <<= 8; } @@ -79991,50 +83107,52 @@ static DRFLAC_INLINE drflac_uint32 drflac__clz_software(drflac_cache_t x) } return n - 1; } -#ifdef DRFLAC_IMPLEMENT_CLZ_LZCNT -static DRFLAC_INLINE drflac_bool32 drflac__is_lzcnt_supported(void) +#ifdef MA_DR_FLAC_IMPLEMENT_CLZ_LZCNT +static MA_INLINE ma_bool32 ma_dr_flac__is_lzcnt_supported(void) { -#if defined(DRFLAC_HAS_LZCNT_INTRINSIC) && defined(DRFLAC_ARM) && (defined(__ARM_ARCH) && __ARM_ARCH >= 5) - return DRFLAC_TRUE; +#if defined(MA_DR_FLAC_HAS_LZCNT_INTRINSIC) && defined(MA_ARM) && (defined(__ARM_ARCH) && __ARM_ARCH >= 5) + return MA_TRUE; +#elif defined(__MRC__) + return MA_TRUE; #else - #ifdef DRFLAC_HAS_LZCNT_INTRINSIC - return drflac__gIsLZCNTSupported; + #ifdef MA_DR_FLAC_HAS_LZCNT_INTRINSIC + return ma_dr_flac__gIsLZCNTSupported; #else - return DRFLAC_FALSE; + return MA_FALSE; #endif #endif } -static DRFLAC_INLINE drflac_uint32 drflac__clz_lzcnt(drflac_cache_t x) +static MA_INLINE ma_uint32 ma_dr_flac__clz_lzcnt(ma_dr_flac_cache_t x) { #if defined(_MSC_VER) - #ifdef DRFLAC_64BIT - return (drflac_uint32)__lzcnt64(x); + #ifdef MA_64BIT + return (ma_uint32)__lzcnt64(x); #else - return (drflac_uint32)__lzcnt(x); + return (ma_uint32)__lzcnt(x); #endif #else #if defined(__GNUC__) || defined(__clang__) - #if defined(DRFLAC_X64) + #if defined(MA_X64) { - drflac_uint64 r; + ma_uint64 r; __asm__ __volatile__ ( "lzcnt{ %1, %0| %0, %1}" : "=r"(r) : "r"(x) : "cc" ); - return (drflac_uint32)r; + return (ma_uint32)r; } - #elif defined(DRFLAC_X86) + #elif defined(MA_X86) { - drflac_uint32 r; + ma_uint32 r; __asm__ __volatile__ ( "lzcnt{l %1, %0| %0, %1}" : "=r"(r) : "r"(x) : "cc" ); return r; } - #elif defined(DRFLAC_ARM) && (defined(__ARM_ARCH) && __ARM_ARCH >= 5) && !defined(DRFLAC_64BIT) + #elif defined(MA_ARM) && (defined(__ARM_ARCH) && __ARM_ARCH >= 5) && !defined(__ARM_ARCH_6M__) && !defined(MA_64BIT) { unsigned int r; __asm__ __volatile__ ( - #if defined(DRFLAC_64BIT) + #if defined(MA_64BIT) "clz %w[out], %w[in]" : [out]"=r"(r) : [in]"r"(x) #else "clz %[out], %[in]" : [out]"=r"(r) : [in]"r"(x) @@ -80046,10 +83164,10 @@ static DRFLAC_INLINE drflac_uint32 drflac__clz_lzcnt(drflac_cache_t x) if (x == 0) { return sizeof(x)*8; } - #ifdef DRFLAC_64BIT - return (drflac_uint32)__builtin_clzll((drflac_uint64)x); + #ifdef MA_64BIT + return (ma_uint32)__builtin_clzll((ma_uint64)x); #else - return (drflac_uint32)__builtin_clzl((drflac_uint32)x); + return (ma_uint32)__builtin_clzl((ma_uint32)x); #endif #endif #else @@ -80058,15 +83176,15 @@ static DRFLAC_INLINE drflac_uint32 drflac__clz_lzcnt(drflac_cache_t x) #endif } #endif -#ifdef DRFLAC_IMPLEMENT_CLZ_MSVC +#ifdef MA_DR_FLAC_IMPLEMENT_CLZ_MSVC #include -static DRFLAC_INLINE drflac_uint32 drflac__clz_msvc(drflac_cache_t x) +static MA_INLINE ma_uint32 ma_dr_flac__clz_msvc(ma_dr_flac_cache_t x) { - drflac_uint32 n; + ma_uint32 n; if (x == 0) { return sizeof(x)*8; } -#ifdef DRFLAC_64BIT +#ifdef MA_64BIT _BitScanReverse64((unsigned long*)&n, x); #else _BitScanReverse((unsigned long*)&n, x); @@ -80074,108 +83192,120 @@ static DRFLAC_INLINE drflac_uint32 drflac__clz_msvc(drflac_cache_t x) return sizeof(x)*8 - n - 1; } #endif -#ifdef DRFLAC_IMPLEMENT_CLZ_WATCOM -static __inline drflac_uint32 drflac__clz_watcom (drflac_uint32); -#pragma aux drflac__clz_watcom = \ +#ifdef MA_DR_FLAC_IMPLEMENT_CLZ_WATCOM +static __inline ma_uint32 ma_dr_flac__clz_watcom (ma_uint32); +#ifdef MA_DR_FLAC_IMPLEMENT_CLZ_WATCOM_LZCNT +#pragma aux ma_dr_flac__clz_watcom_lzcnt = \ + "db 0F3h, 0Fh, 0BDh, 0C0h" \ + parm [eax] \ + value [eax] \ + modify nomemory; +#else +#pragma aux ma_dr_flac__clz_watcom = \ "bsr eax, eax" \ "xor eax, 31" \ parm [eax] nomemory \ value [eax] \ modify exact [eax] nomemory; #endif -static DRFLAC_INLINE drflac_uint32 drflac__clz(drflac_cache_t x) +#endif +static MA_INLINE ma_uint32 ma_dr_flac__clz(ma_dr_flac_cache_t x) { -#ifdef DRFLAC_IMPLEMENT_CLZ_LZCNT - if (drflac__is_lzcnt_supported()) { - return drflac__clz_lzcnt(x); +#ifdef MA_DR_FLAC_IMPLEMENT_CLZ_LZCNT + if (ma_dr_flac__is_lzcnt_supported()) { + return ma_dr_flac__clz_lzcnt(x); } else #endif { -#ifdef DRFLAC_IMPLEMENT_CLZ_MSVC - return drflac__clz_msvc(x); -#elif defined(DRFLAC_IMPLEMENT_CLZ_WATCOM) - return (x == 0) ? sizeof(x)*8 : drflac__clz_watcom(x); +#ifdef MA_DR_FLAC_IMPLEMENT_CLZ_MSVC + return ma_dr_flac__clz_msvc(x); +#elif defined(MA_DR_FLAC_IMPLEMENT_CLZ_WATCOM_LZCNT) + return ma_dr_flac__clz_watcom_lzcnt(x); +#elif defined(MA_DR_FLAC_IMPLEMENT_CLZ_WATCOM) + return (x == 0) ? sizeof(x)*8 : ma_dr_flac__clz_watcom(x); +#elif defined(__MRC__) + return __cntlzw(x); #else - return drflac__clz_software(x); + return ma_dr_flac__clz_software(x); #endif } } -static DRFLAC_INLINE drflac_bool32 drflac__seek_past_next_set_bit(drflac_bs* bs, unsigned int* pOffsetOut) +static MA_INLINE ma_bool32 ma_dr_flac__seek_past_next_set_bit(ma_dr_flac_bs* bs, unsigned int* pOffsetOut) { - drflac_uint32 zeroCounter = 0; - drflac_uint32 setBitOffsetPlus1; + ma_uint32 zeroCounter = 0; + ma_uint32 setBitOffsetPlus1; while (bs->cache == 0) { - zeroCounter += (drflac_uint32)DRFLAC_CACHE_L1_BITS_REMAINING(bs); - if (!drflac__reload_cache(bs)) { - return DRFLAC_FALSE; + zeroCounter += (ma_uint32)MA_DR_FLAC_CACHE_L1_BITS_REMAINING(bs); + if (!ma_dr_flac__reload_cache(bs)) { + return MA_FALSE; } } if (bs->cache == 1) { - *pOffsetOut = zeroCounter + (drflac_uint32)DRFLAC_CACHE_L1_BITS_REMAINING(bs) - 1; - if (!drflac__reload_cache(bs)) { - return DRFLAC_FALSE; + *pOffsetOut = zeroCounter + (ma_uint32)MA_DR_FLAC_CACHE_L1_BITS_REMAINING(bs) - 1; + if (!ma_dr_flac__reload_cache(bs)) { + return MA_FALSE; } - return DRFLAC_TRUE; + return MA_TRUE; } - setBitOffsetPlus1 = drflac__clz(bs->cache); + setBitOffsetPlus1 = ma_dr_flac__clz(bs->cache); setBitOffsetPlus1 += 1; - if (setBitOffsetPlus1 > DRFLAC_CACHE_L1_BITS_REMAINING(bs)) { - return DRFLAC_FALSE; + if (setBitOffsetPlus1 > MA_DR_FLAC_CACHE_L1_BITS_REMAINING(bs)) { + return MA_FALSE; } bs->consumedBits += setBitOffsetPlus1; bs->cache <<= setBitOffsetPlus1; *pOffsetOut = zeroCounter + setBitOffsetPlus1 - 1; - return DRFLAC_TRUE; + return MA_TRUE; } -static drflac_bool32 drflac__seek_to_byte(drflac_bs* bs, drflac_uint64 offsetFromStart) +static ma_bool32 ma_dr_flac__seek_to_byte(ma_dr_flac_bs* bs, ma_uint64 offsetFromStart) { - DRFLAC_ASSERT(bs != NULL); - DRFLAC_ASSERT(offsetFromStart > 0); + MA_DR_FLAC_ASSERT(bs != NULL); + MA_DR_FLAC_ASSERT(offsetFromStart > 0); if (offsetFromStart > 0x7FFFFFFF) { - drflac_uint64 bytesRemaining = offsetFromStart; - if (!bs->onSeek(bs->pUserData, 0x7FFFFFFF, drflac_seek_origin_start)) { - return DRFLAC_FALSE; + ma_uint64 bytesRemaining = offsetFromStart; + if (!bs->onSeek(bs->pUserData, 0x7FFFFFFF, ma_dr_flac_seek_origin_start)) { + return MA_FALSE; } bytesRemaining -= 0x7FFFFFFF; while (bytesRemaining > 0x7FFFFFFF) { - if (!bs->onSeek(bs->pUserData, 0x7FFFFFFF, drflac_seek_origin_current)) { - return DRFLAC_FALSE; + if (!bs->onSeek(bs->pUserData, 0x7FFFFFFF, ma_dr_flac_seek_origin_current)) { + return MA_FALSE; } bytesRemaining -= 0x7FFFFFFF; } if (bytesRemaining > 0) { - if (!bs->onSeek(bs->pUserData, (int)bytesRemaining, drflac_seek_origin_current)) { - return DRFLAC_FALSE; + if (!bs->onSeek(bs->pUserData, (int)bytesRemaining, ma_dr_flac_seek_origin_current)) { + return MA_FALSE; } } } else { - if (!bs->onSeek(bs->pUserData, (int)offsetFromStart, drflac_seek_origin_start)) { - return DRFLAC_FALSE; + if (!bs->onSeek(bs->pUserData, (int)offsetFromStart, ma_dr_flac_seek_origin_start)) { + return MA_FALSE; } } - drflac__reset_cache(bs); - return DRFLAC_TRUE; + ma_dr_flac__reset_cache(bs); + return MA_TRUE; } -static drflac_result drflac__read_utf8_coded_number(drflac_bs* bs, drflac_uint64* pNumberOut, drflac_uint8* pCRCOut) +static ma_result ma_dr_flac__read_utf8_coded_number(ma_dr_flac_bs* bs, ma_uint64* pNumberOut, ma_uint8* pCRCOut) { - drflac_uint8 crc; - drflac_uint64 result; - drflac_uint8 utf8[7] = {0}; + ma_uint8 crc; + ma_uint64 result; + ma_uint8 utf8[7] = {0}; int byteCount; int i; - DRFLAC_ASSERT(bs != NULL); - DRFLAC_ASSERT(pNumberOut != NULL); - DRFLAC_ASSERT(pCRCOut != NULL); + MA_DR_FLAC_ASSERT(bs != NULL); + MA_DR_FLAC_ASSERT(pNumberOut != NULL); + MA_DR_FLAC_ASSERT(pCRCOut != NULL); crc = *pCRCOut; - if (!drflac__read_uint8(bs, 8, utf8)) { + if (!ma_dr_flac__read_uint8(bs, 8, utf8)) { *pNumberOut = 0; - return DRFLAC_AT_END; + return MA_AT_END; } - crc = drflac_crc8(crc, utf8[0], 8); + crc = ma_dr_flac_crc8(crc, utf8[0], 8); if ((utf8[0] & 0x80) == 0) { *pNumberOut = utf8[0]; *pCRCOut = crc; - return DRFLAC_SUCCESS; + return MA_SUCCESS; } if ((utf8[0] & 0xE0) == 0xC0) { byteCount = 2; @@ -80191,26 +83321,26 @@ static drflac_result drflac__read_utf8_coded_number(drflac_bs* bs, drflac_uint64 byteCount = 7; } else { *pNumberOut = 0; - return DRFLAC_CRC_MISMATCH; + return MA_CRC_MISMATCH; } - DRFLAC_ASSERT(byteCount > 1); - result = (drflac_uint64)(utf8[0] & (0xFF >> (byteCount + 1))); + MA_DR_FLAC_ASSERT(byteCount > 1); + result = (ma_uint64)(utf8[0] & (0xFF >> (byteCount + 1))); for (i = 1; i < byteCount; ++i) { - if (!drflac__read_uint8(bs, 8, utf8 + i)) { + if (!ma_dr_flac__read_uint8(bs, 8, utf8 + i)) { *pNumberOut = 0; - return DRFLAC_AT_END; + return MA_AT_END; } - crc = drflac_crc8(crc, utf8[i], 8); + crc = ma_dr_flac_crc8(crc, utf8[i], 8); result = (result << 6) | (utf8[i] & 0x3F); } *pNumberOut = result; *pCRCOut = crc; - return DRFLAC_SUCCESS; + return MA_SUCCESS; } -static DRFLAC_INLINE drflac_uint32 drflac__ilog2_u32(drflac_uint32 x) +static MA_INLINE ma_uint32 ma_dr_flac__ilog2_u32(ma_uint32 x) { #if 1 - drflac_uint32 result = 0; + ma_uint32 result = 0; while (x > 0) { result += 1; x >>= 1; @@ -80218,17 +83348,17 @@ static DRFLAC_INLINE drflac_uint32 drflac__ilog2_u32(drflac_uint32 x) return result; #endif } -static DRFLAC_INLINE drflac_bool32 drflac__use_64_bit_prediction(drflac_uint32 bitsPerSample, drflac_uint32 order, drflac_uint32 precision) +static MA_INLINE ma_bool32 ma_dr_flac__use_64_bit_prediction(ma_uint32 bitsPerSample, ma_uint32 order, ma_uint32 precision) { - return bitsPerSample + precision + drflac__ilog2_u32(order) > 32; + return bitsPerSample + precision + ma_dr_flac__ilog2_u32(order) > 32; } #if defined(__clang__) __attribute__((no_sanitize("signed-integer-overflow"))) #endif -static DRFLAC_INLINE drflac_int32 drflac__calculate_prediction_32(drflac_uint32 order, drflac_int32 shift, const drflac_int32* coefficients, drflac_int32* pDecodedSamples) +static MA_INLINE ma_int32 ma_dr_flac__calculate_prediction_32(ma_uint32 order, ma_int32 shift, const ma_int32* coefficients, ma_int32* pDecodedSamples) { - drflac_int32 prediction = 0; - DRFLAC_ASSERT(order <= 32); + ma_int32 prediction = 0; + MA_DR_FLAC_ASSERT(order <= 32); switch (order) { case 32: prediction += coefficients[31] * pDecodedSamples[-32]; @@ -80264,188 +83394,188 @@ static DRFLAC_INLINE drflac_int32 drflac__calculate_prediction_32(drflac_uint32 case 2: prediction += coefficients[ 1] * pDecodedSamples[- 2]; case 1: prediction += coefficients[ 0] * pDecodedSamples[- 1]; } - return (drflac_int32)(prediction >> shift); + return (ma_int32)(prediction >> shift); } -static DRFLAC_INLINE drflac_int32 drflac__calculate_prediction_64(drflac_uint32 order, drflac_int32 shift, const drflac_int32* coefficients, drflac_int32* pDecodedSamples) +static MA_INLINE ma_int32 ma_dr_flac__calculate_prediction_64(ma_uint32 order, ma_int32 shift, const ma_int32* coefficients, ma_int32* pDecodedSamples) { - drflac_int64 prediction; - DRFLAC_ASSERT(order <= 32); -#ifndef DRFLAC_64BIT + ma_int64 prediction; + MA_DR_FLAC_ASSERT(order <= 32); +#ifndef MA_64BIT if (order == 8) { - prediction = coefficients[0] * (drflac_int64)pDecodedSamples[-1]; - prediction += coefficients[1] * (drflac_int64)pDecodedSamples[-2]; - prediction += coefficients[2] * (drflac_int64)pDecodedSamples[-3]; - prediction += coefficients[3] * (drflac_int64)pDecodedSamples[-4]; - prediction += coefficients[4] * (drflac_int64)pDecodedSamples[-5]; - prediction += coefficients[5] * (drflac_int64)pDecodedSamples[-6]; - prediction += coefficients[6] * (drflac_int64)pDecodedSamples[-7]; - prediction += coefficients[7] * (drflac_int64)pDecodedSamples[-8]; + prediction = coefficients[0] * (ma_int64)pDecodedSamples[-1]; + prediction += coefficients[1] * (ma_int64)pDecodedSamples[-2]; + prediction += coefficients[2] * (ma_int64)pDecodedSamples[-3]; + prediction += coefficients[3] * (ma_int64)pDecodedSamples[-4]; + prediction += coefficients[4] * (ma_int64)pDecodedSamples[-5]; + prediction += coefficients[5] * (ma_int64)pDecodedSamples[-6]; + prediction += coefficients[6] * (ma_int64)pDecodedSamples[-7]; + prediction += coefficients[7] * (ma_int64)pDecodedSamples[-8]; } else if (order == 7) { - prediction = coefficients[0] * (drflac_int64)pDecodedSamples[-1]; - prediction += coefficients[1] * (drflac_int64)pDecodedSamples[-2]; - prediction += coefficients[2] * (drflac_int64)pDecodedSamples[-3]; - prediction += coefficients[3] * (drflac_int64)pDecodedSamples[-4]; - prediction += coefficients[4] * (drflac_int64)pDecodedSamples[-5]; - prediction += coefficients[5] * (drflac_int64)pDecodedSamples[-6]; - prediction += coefficients[6] * (drflac_int64)pDecodedSamples[-7]; + prediction = coefficients[0] * (ma_int64)pDecodedSamples[-1]; + prediction += coefficients[1] * (ma_int64)pDecodedSamples[-2]; + prediction += coefficients[2] * (ma_int64)pDecodedSamples[-3]; + prediction += coefficients[3] * (ma_int64)pDecodedSamples[-4]; + prediction += coefficients[4] * (ma_int64)pDecodedSamples[-5]; + prediction += coefficients[5] * (ma_int64)pDecodedSamples[-6]; + prediction += coefficients[6] * (ma_int64)pDecodedSamples[-7]; } else if (order == 3) { - prediction = coefficients[0] * (drflac_int64)pDecodedSamples[-1]; - prediction += coefficients[1] * (drflac_int64)pDecodedSamples[-2]; - prediction += coefficients[2] * (drflac_int64)pDecodedSamples[-3]; + prediction = coefficients[0] * (ma_int64)pDecodedSamples[-1]; + prediction += coefficients[1] * (ma_int64)pDecodedSamples[-2]; + prediction += coefficients[2] * (ma_int64)pDecodedSamples[-3]; } else if (order == 6) { - prediction = coefficients[0] * (drflac_int64)pDecodedSamples[-1]; - prediction += coefficients[1] * (drflac_int64)pDecodedSamples[-2]; - prediction += coefficients[2] * (drflac_int64)pDecodedSamples[-3]; - prediction += coefficients[3] * (drflac_int64)pDecodedSamples[-4]; - prediction += coefficients[4] * (drflac_int64)pDecodedSamples[-5]; - prediction += coefficients[5] * (drflac_int64)pDecodedSamples[-6]; + prediction = coefficients[0] * (ma_int64)pDecodedSamples[-1]; + prediction += coefficients[1] * (ma_int64)pDecodedSamples[-2]; + prediction += coefficients[2] * (ma_int64)pDecodedSamples[-3]; + prediction += coefficients[3] * (ma_int64)pDecodedSamples[-4]; + prediction += coefficients[4] * (ma_int64)pDecodedSamples[-5]; + prediction += coefficients[5] * (ma_int64)pDecodedSamples[-6]; } else if (order == 5) { - prediction = coefficients[0] * (drflac_int64)pDecodedSamples[-1]; - prediction += coefficients[1] * (drflac_int64)pDecodedSamples[-2]; - prediction += coefficients[2] * (drflac_int64)pDecodedSamples[-3]; - prediction += coefficients[3] * (drflac_int64)pDecodedSamples[-4]; - prediction += coefficients[4] * (drflac_int64)pDecodedSamples[-5]; + prediction = coefficients[0] * (ma_int64)pDecodedSamples[-1]; + prediction += coefficients[1] * (ma_int64)pDecodedSamples[-2]; + prediction += coefficients[2] * (ma_int64)pDecodedSamples[-3]; + prediction += coefficients[3] * (ma_int64)pDecodedSamples[-4]; + prediction += coefficients[4] * (ma_int64)pDecodedSamples[-5]; } else if (order == 4) { - prediction = coefficients[0] * (drflac_int64)pDecodedSamples[-1]; - prediction += coefficients[1] * (drflac_int64)pDecodedSamples[-2]; - prediction += coefficients[2] * (drflac_int64)pDecodedSamples[-3]; - prediction += coefficients[3] * (drflac_int64)pDecodedSamples[-4]; + prediction = coefficients[0] * (ma_int64)pDecodedSamples[-1]; + prediction += coefficients[1] * (ma_int64)pDecodedSamples[-2]; + prediction += coefficients[2] * (ma_int64)pDecodedSamples[-3]; + prediction += coefficients[3] * (ma_int64)pDecodedSamples[-4]; } else if (order == 12) { - prediction = coefficients[0] * (drflac_int64)pDecodedSamples[-1]; - prediction += coefficients[1] * (drflac_int64)pDecodedSamples[-2]; - prediction += coefficients[2] * (drflac_int64)pDecodedSamples[-3]; - prediction += coefficients[3] * (drflac_int64)pDecodedSamples[-4]; - prediction += coefficients[4] * (drflac_int64)pDecodedSamples[-5]; - prediction += coefficients[5] * (drflac_int64)pDecodedSamples[-6]; - prediction += coefficients[6] * (drflac_int64)pDecodedSamples[-7]; - prediction += coefficients[7] * (drflac_int64)pDecodedSamples[-8]; - prediction += coefficients[8] * (drflac_int64)pDecodedSamples[-9]; - prediction += coefficients[9] * (drflac_int64)pDecodedSamples[-10]; - prediction += coefficients[10] * (drflac_int64)pDecodedSamples[-11]; - prediction += coefficients[11] * (drflac_int64)pDecodedSamples[-12]; + prediction = coefficients[0] * (ma_int64)pDecodedSamples[-1]; + prediction += coefficients[1] * (ma_int64)pDecodedSamples[-2]; + prediction += coefficients[2] * (ma_int64)pDecodedSamples[-3]; + prediction += coefficients[3] * (ma_int64)pDecodedSamples[-4]; + prediction += coefficients[4] * (ma_int64)pDecodedSamples[-5]; + prediction += coefficients[5] * (ma_int64)pDecodedSamples[-6]; + prediction += coefficients[6] * (ma_int64)pDecodedSamples[-7]; + prediction += coefficients[7] * (ma_int64)pDecodedSamples[-8]; + prediction += coefficients[8] * (ma_int64)pDecodedSamples[-9]; + prediction += coefficients[9] * (ma_int64)pDecodedSamples[-10]; + prediction += coefficients[10] * (ma_int64)pDecodedSamples[-11]; + prediction += coefficients[11] * (ma_int64)pDecodedSamples[-12]; } else if (order == 2) { - prediction = coefficients[0] * (drflac_int64)pDecodedSamples[-1]; - prediction += coefficients[1] * (drflac_int64)pDecodedSamples[-2]; + prediction = coefficients[0] * (ma_int64)pDecodedSamples[-1]; + prediction += coefficients[1] * (ma_int64)pDecodedSamples[-2]; } else if (order == 1) { - prediction = coefficients[0] * (drflac_int64)pDecodedSamples[-1]; + prediction = coefficients[0] * (ma_int64)pDecodedSamples[-1]; } else if (order == 10) { - prediction = coefficients[0] * (drflac_int64)pDecodedSamples[-1]; - prediction += coefficients[1] * (drflac_int64)pDecodedSamples[-2]; - prediction += coefficients[2] * (drflac_int64)pDecodedSamples[-3]; - prediction += coefficients[3] * (drflac_int64)pDecodedSamples[-4]; - prediction += coefficients[4] * (drflac_int64)pDecodedSamples[-5]; - prediction += coefficients[5] * (drflac_int64)pDecodedSamples[-6]; - prediction += coefficients[6] * (drflac_int64)pDecodedSamples[-7]; - prediction += coefficients[7] * (drflac_int64)pDecodedSamples[-8]; - prediction += coefficients[8] * (drflac_int64)pDecodedSamples[-9]; - prediction += coefficients[9] * (drflac_int64)pDecodedSamples[-10]; + prediction = coefficients[0] * (ma_int64)pDecodedSamples[-1]; + prediction += coefficients[1] * (ma_int64)pDecodedSamples[-2]; + prediction += coefficients[2] * (ma_int64)pDecodedSamples[-3]; + prediction += coefficients[3] * (ma_int64)pDecodedSamples[-4]; + prediction += coefficients[4] * (ma_int64)pDecodedSamples[-5]; + prediction += coefficients[5] * (ma_int64)pDecodedSamples[-6]; + prediction += coefficients[6] * (ma_int64)pDecodedSamples[-7]; + prediction += coefficients[7] * (ma_int64)pDecodedSamples[-8]; + prediction += coefficients[8] * (ma_int64)pDecodedSamples[-9]; + prediction += coefficients[9] * (ma_int64)pDecodedSamples[-10]; } else if (order == 9) { - prediction = coefficients[0] * (drflac_int64)pDecodedSamples[-1]; - prediction += coefficients[1] * (drflac_int64)pDecodedSamples[-2]; - prediction += coefficients[2] * (drflac_int64)pDecodedSamples[-3]; - prediction += coefficients[3] * (drflac_int64)pDecodedSamples[-4]; - prediction += coefficients[4] * (drflac_int64)pDecodedSamples[-5]; - prediction += coefficients[5] * (drflac_int64)pDecodedSamples[-6]; - prediction += coefficients[6] * (drflac_int64)pDecodedSamples[-7]; - prediction += coefficients[7] * (drflac_int64)pDecodedSamples[-8]; - prediction += coefficients[8] * (drflac_int64)pDecodedSamples[-9]; + prediction = coefficients[0] * (ma_int64)pDecodedSamples[-1]; + prediction += coefficients[1] * (ma_int64)pDecodedSamples[-2]; + prediction += coefficients[2] * (ma_int64)pDecodedSamples[-3]; + prediction += coefficients[3] * (ma_int64)pDecodedSamples[-4]; + prediction += coefficients[4] * (ma_int64)pDecodedSamples[-5]; + prediction += coefficients[5] * (ma_int64)pDecodedSamples[-6]; + prediction += coefficients[6] * (ma_int64)pDecodedSamples[-7]; + prediction += coefficients[7] * (ma_int64)pDecodedSamples[-8]; + prediction += coefficients[8] * (ma_int64)pDecodedSamples[-9]; } else if (order == 11) { - prediction = coefficients[0] * (drflac_int64)pDecodedSamples[-1]; - prediction += coefficients[1] * (drflac_int64)pDecodedSamples[-2]; - prediction += coefficients[2] * (drflac_int64)pDecodedSamples[-3]; - prediction += coefficients[3] * (drflac_int64)pDecodedSamples[-4]; - prediction += coefficients[4] * (drflac_int64)pDecodedSamples[-5]; - prediction += coefficients[5] * (drflac_int64)pDecodedSamples[-6]; - prediction += coefficients[6] * (drflac_int64)pDecodedSamples[-7]; - prediction += coefficients[7] * (drflac_int64)pDecodedSamples[-8]; - prediction += coefficients[8] * (drflac_int64)pDecodedSamples[-9]; - prediction += coefficients[9] * (drflac_int64)pDecodedSamples[-10]; - prediction += coefficients[10] * (drflac_int64)pDecodedSamples[-11]; + prediction = coefficients[0] * (ma_int64)pDecodedSamples[-1]; + prediction += coefficients[1] * (ma_int64)pDecodedSamples[-2]; + prediction += coefficients[2] * (ma_int64)pDecodedSamples[-3]; + prediction += coefficients[3] * (ma_int64)pDecodedSamples[-4]; + prediction += coefficients[4] * (ma_int64)pDecodedSamples[-5]; + prediction += coefficients[5] * (ma_int64)pDecodedSamples[-6]; + prediction += coefficients[6] * (ma_int64)pDecodedSamples[-7]; + prediction += coefficients[7] * (ma_int64)pDecodedSamples[-8]; + prediction += coefficients[8] * (ma_int64)pDecodedSamples[-9]; + prediction += coefficients[9] * (ma_int64)pDecodedSamples[-10]; + prediction += coefficients[10] * (ma_int64)pDecodedSamples[-11]; } else { int j; prediction = 0; for (j = 0; j < (int)order; ++j) { - prediction += coefficients[j] * (drflac_int64)pDecodedSamples[-j-1]; + prediction += coefficients[j] * (ma_int64)pDecodedSamples[-j-1]; } } #endif -#ifdef DRFLAC_64BIT +#ifdef MA_64BIT prediction = 0; switch (order) { - case 32: prediction += coefficients[31] * (drflac_int64)pDecodedSamples[-32]; - case 31: prediction += coefficients[30] * (drflac_int64)pDecodedSamples[-31]; - case 30: prediction += coefficients[29] * (drflac_int64)pDecodedSamples[-30]; - case 29: prediction += coefficients[28] * (drflac_int64)pDecodedSamples[-29]; - case 28: prediction += coefficients[27] * (drflac_int64)pDecodedSamples[-28]; - case 27: prediction += coefficients[26] * (drflac_int64)pDecodedSamples[-27]; - case 26: prediction += coefficients[25] * (drflac_int64)pDecodedSamples[-26]; - case 25: prediction += coefficients[24] * (drflac_int64)pDecodedSamples[-25]; - case 24: prediction += coefficients[23] * (drflac_int64)pDecodedSamples[-24]; - case 23: prediction += coefficients[22] * (drflac_int64)pDecodedSamples[-23]; - case 22: prediction += coefficients[21] * (drflac_int64)pDecodedSamples[-22]; - case 21: prediction += coefficients[20] * (drflac_int64)pDecodedSamples[-21]; - case 20: prediction += coefficients[19] * (drflac_int64)pDecodedSamples[-20]; - case 19: prediction += coefficients[18] * (drflac_int64)pDecodedSamples[-19]; - case 18: prediction += coefficients[17] * (drflac_int64)pDecodedSamples[-18]; - case 17: prediction += coefficients[16] * (drflac_int64)pDecodedSamples[-17]; - case 16: prediction += coefficients[15] * (drflac_int64)pDecodedSamples[-16]; - case 15: prediction += coefficients[14] * (drflac_int64)pDecodedSamples[-15]; - case 14: prediction += coefficients[13] * (drflac_int64)pDecodedSamples[-14]; - case 13: prediction += coefficients[12] * (drflac_int64)pDecodedSamples[-13]; - case 12: prediction += coefficients[11] * (drflac_int64)pDecodedSamples[-12]; - case 11: prediction += coefficients[10] * (drflac_int64)pDecodedSamples[-11]; - case 10: prediction += coefficients[ 9] * (drflac_int64)pDecodedSamples[-10]; - case 9: prediction += coefficients[ 8] * (drflac_int64)pDecodedSamples[- 9]; - case 8: prediction += coefficients[ 7] * (drflac_int64)pDecodedSamples[- 8]; - case 7: prediction += coefficients[ 6] * (drflac_int64)pDecodedSamples[- 7]; - case 6: prediction += coefficients[ 5] * (drflac_int64)pDecodedSamples[- 6]; - case 5: prediction += coefficients[ 4] * (drflac_int64)pDecodedSamples[- 5]; - case 4: prediction += coefficients[ 3] * (drflac_int64)pDecodedSamples[- 4]; - case 3: prediction += coefficients[ 2] * (drflac_int64)pDecodedSamples[- 3]; - case 2: prediction += coefficients[ 1] * (drflac_int64)pDecodedSamples[- 2]; - case 1: prediction += coefficients[ 0] * (drflac_int64)pDecodedSamples[- 1]; + case 32: prediction += coefficients[31] * (ma_int64)pDecodedSamples[-32]; + case 31: prediction += coefficients[30] * (ma_int64)pDecodedSamples[-31]; + case 30: prediction += coefficients[29] * (ma_int64)pDecodedSamples[-30]; + case 29: prediction += coefficients[28] * (ma_int64)pDecodedSamples[-29]; + case 28: prediction += coefficients[27] * (ma_int64)pDecodedSamples[-28]; + case 27: prediction += coefficients[26] * (ma_int64)pDecodedSamples[-27]; + case 26: prediction += coefficients[25] * (ma_int64)pDecodedSamples[-26]; + case 25: prediction += coefficients[24] * (ma_int64)pDecodedSamples[-25]; + case 24: prediction += coefficients[23] * (ma_int64)pDecodedSamples[-24]; + case 23: prediction += coefficients[22] * (ma_int64)pDecodedSamples[-23]; + case 22: prediction += coefficients[21] * (ma_int64)pDecodedSamples[-22]; + case 21: prediction += coefficients[20] * (ma_int64)pDecodedSamples[-21]; + case 20: prediction += coefficients[19] * (ma_int64)pDecodedSamples[-20]; + case 19: prediction += coefficients[18] * (ma_int64)pDecodedSamples[-19]; + case 18: prediction += coefficients[17] * (ma_int64)pDecodedSamples[-18]; + case 17: prediction += coefficients[16] * (ma_int64)pDecodedSamples[-17]; + case 16: prediction += coefficients[15] * (ma_int64)pDecodedSamples[-16]; + case 15: prediction += coefficients[14] * (ma_int64)pDecodedSamples[-15]; + case 14: prediction += coefficients[13] * (ma_int64)pDecodedSamples[-14]; + case 13: prediction += coefficients[12] * (ma_int64)pDecodedSamples[-13]; + case 12: prediction += coefficients[11] * (ma_int64)pDecodedSamples[-12]; + case 11: prediction += coefficients[10] * (ma_int64)pDecodedSamples[-11]; + case 10: prediction += coefficients[ 9] * (ma_int64)pDecodedSamples[-10]; + case 9: prediction += coefficients[ 8] * (ma_int64)pDecodedSamples[- 9]; + case 8: prediction += coefficients[ 7] * (ma_int64)pDecodedSamples[- 8]; + case 7: prediction += coefficients[ 6] * (ma_int64)pDecodedSamples[- 7]; + case 6: prediction += coefficients[ 5] * (ma_int64)pDecodedSamples[- 6]; + case 5: prediction += coefficients[ 4] * (ma_int64)pDecodedSamples[- 5]; + case 4: prediction += coefficients[ 3] * (ma_int64)pDecodedSamples[- 4]; + case 3: prediction += coefficients[ 2] * (ma_int64)pDecodedSamples[- 3]; + case 2: prediction += coefficients[ 1] * (ma_int64)pDecodedSamples[- 2]; + case 1: prediction += coefficients[ 0] * (ma_int64)pDecodedSamples[- 1]; } #endif - return (drflac_int32)(prediction >> shift); + return (ma_int32)(prediction >> shift); } #if 0 -static drflac_bool32 drflac__decode_samples_with_residual__rice__reference(drflac_bs* bs, drflac_uint32 bitsPerSample, drflac_uint32 count, drflac_uint8 riceParam, drflac_uint32 lpcOrder, drflac_int32 lpcShift, drflac_uint32 lpcPrecision, const drflac_int32* coefficients, drflac_int32* pSamplesOut) +static ma_bool32 ma_dr_flac__decode_samples_with_residual__rice__reference(ma_dr_flac_bs* bs, ma_uint32 bitsPerSample, ma_uint32 count, ma_uint8 riceParam, ma_uint32 lpcOrder, ma_int32 lpcShift, ma_uint32 lpcPrecision, const ma_int32* coefficients, ma_int32* pSamplesOut) { - drflac_uint32 i; - DRFLAC_ASSERT(bs != NULL); - DRFLAC_ASSERT(pSamplesOut != NULL); + ma_uint32 i; + MA_DR_FLAC_ASSERT(bs != NULL); + MA_DR_FLAC_ASSERT(pSamplesOut != NULL); for (i = 0; i < count; ++i) { - drflac_uint32 zeroCounter = 0; + ma_uint32 zeroCounter = 0; for (;;) { - drflac_uint8 bit; - if (!drflac__read_uint8(bs, 1, &bit)) { - return DRFLAC_FALSE; + ma_uint8 bit; + if (!ma_dr_flac__read_uint8(bs, 1, &bit)) { + return MA_FALSE; } if (bit == 0) { zeroCounter += 1; @@ -80453,10 +83583,10 @@ static drflac_bool32 drflac__decode_samples_with_residual__rice__reference(drfla break; } } - drflac_uint32 decodedRice; + ma_uint32 decodedRice; if (riceParam > 0) { - if (!drflac__read_uint32(bs, riceParam, &decodedRice)) { - return DRFLAC_FALSE; + if (!ma_dr_flac__read_uint32(bs, riceParam, &decodedRice)) { + return MA_FALSE; } } else { decodedRice = 0; @@ -80467,24 +83597,24 @@ static drflac_bool32 drflac__decode_samples_with_residual__rice__reference(drfla } else { decodedRice = (decodedRice >> 1); } - if (drflac__use_64_bit_prediction(bitsPerSample, lpcOrder, lpcPrecision)) { - pSamplesOut[i] = decodedRice + drflac__calculate_prediction_64(lpcOrder, lpcShift, coefficients, pSamplesOut + i); + if (ma_dr_flac__use_64_bit_prediction(bitsPerSample, lpcOrder, lpcPrecision)) { + pSamplesOut[i] = decodedRice + ma_dr_flac__calculate_prediction_64(lpcOrder, lpcShift, coefficients, pSamplesOut + i); } else { - pSamplesOut[i] = decodedRice + drflac__calculate_prediction_32(lpcOrder, lpcShift, coefficients, pSamplesOut + i); + pSamplesOut[i] = decodedRice + ma_dr_flac__calculate_prediction_32(lpcOrder, lpcShift, coefficients, pSamplesOut + i); } } - return DRFLAC_TRUE; + return MA_TRUE; } #endif #if 0 -static drflac_bool32 drflac__read_rice_parts__reference(drflac_bs* bs, drflac_uint8 riceParam, drflac_uint32* pZeroCounterOut, drflac_uint32* pRiceParamPartOut) +static ma_bool32 ma_dr_flac__read_rice_parts__reference(ma_dr_flac_bs* bs, ma_uint8 riceParam, ma_uint32* pZeroCounterOut, ma_uint32* pRiceParamPartOut) { - drflac_uint32 zeroCounter = 0; - drflac_uint32 decodedRice; + ma_uint32 zeroCounter = 0; + ma_uint32 decodedRice; for (;;) { - drflac_uint8 bit; - if (!drflac__read_uint8(bs, 1, &bit)) { - return DRFLAC_FALSE; + ma_uint8 bit; + if (!ma_dr_flac__read_uint8(bs, 1, &bit)) { + return MA_FALSE; } if (bit == 0) { zeroCounter += 1; @@ -80493,142 +83623,142 @@ static drflac_bool32 drflac__read_rice_parts__reference(drflac_bs* bs, drflac_ui } } if (riceParam > 0) { - if (!drflac__read_uint32(bs, riceParam, &decodedRice)) { - return DRFLAC_FALSE; + if (!ma_dr_flac__read_uint32(bs, riceParam, &decodedRice)) { + return MA_FALSE; } } else { decodedRice = 0; } *pZeroCounterOut = zeroCounter; *pRiceParamPartOut = decodedRice; - return DRFLAC_TRUE; + return MA_TRUE; } #endif #if 0 -static DRFLAC_INLINE drflac_bool32 drflac__read_rice_parts(drflac_bs* bs, drflac_uint8 riceParam, drflac_uint32* pZeroCounterOut, drflac_uint32* pRiceParamPartOut) +static MA_INLINE ma_bool32 ma_dr_flac__read_rice_parts(ma_dr_flac_bs* bs, ma_uint8 riceParam, ma_uint32* pZeroCounterOut, ma_uint32* pRiceParamPartOut) { - drflac_cache_t riceParamMask; - drflac_uint32 zeroCounter; - drflac_uint32 setBitOffsetPlus1; - drflac_uint32 riceParamPart; - drflac_uint32 riceLength; - DRFLAC_ASSERT(riceParam > 0); - riceParamMask = DRFLAC_CACHE_L1_SELECTION_MASK(riceParam); + ma_dr_flac_cache_t riceParamMask; + ma_uint32 zeroCounter; + ma_uint32 setBitOffsetPlus1; + ma_uint32 riceParamPart; + ma_uint32 riceLength; + MA_DR_FLAC_ASSERT(riceParam > 0); + riceParamMask = MA_DR_FLAC_CACHE_L1_SELECTION_MASK(riceParam); zeroCounter = 0; while (bs->cache == 0) { - zeroCounter += (drflac_uint32)DRFLAC_CACHE_L1_BITS_REMAINING(bs); - if (!drflac__reload_cache(bs)) { - return DRFLAC_FALSE; + zeroCounter += (ma_uint32)MA_DR_FLAC_CACHE_L1_BITS_REMAINING(bs); + if (!ma_dr_flac__reload_cache(bs)) { + return MA_FALSE; } } - setBitOffsetPlus1 = drflac__clz(bs->cache); + setBitOffsetPlus1 = ma_dr_flac__clz(bs->cache); zeroCounter += setBitOffsetPlus1; setBitOffsetPlus1 += 1; riceLength = setBitOffsetPlus1 + riceParam; - if (riceLength < DRFLAC_CACHE_L1_BITS_REMAINING(bs)) { - riceParamPart = (drflac_uint32)((bs->cache & (riceParamMask >> setBitOffsetPlus1)) >> DRFLAC_CACHE_L1_SELECTION_SHIFT(bs, riceLength)); + if (riceLength < MA_DR_FLAC_CACHE_L1_BITS_REMAINING(bs)) { + riceParamPart = (ma_uint32)((bs->cache & (riceParamMask >> setBitOffsetPlus1)) >> MA_DR_FLAC_CACHE_L1_SELECTION_SHIFT(bs, riceLength)); bs->consumedBits += riceLength; bs->cache <<= riceLength; } else { - drflac_uint32 bitCountLo; - drflac_cache_t resultHi; + ma_uint32 bitCountLo; + ma_dr_flac_cache_t resultHi; bs->consumedBits += riceLength; - bs->cache <<= setBitOffsetPlus1 & (DRFLAC_CACHE_L1_SIZE_BITS(bs)-1); - bitCountLo = bs->consumedBits - DRFLAC_CACHE_L1_SIZE_BITS(bs); - resultHi = DRFLAC_CACHE_L1_SELECT_AND_SHIFT(bs, riceParam); - if (bs->nextL2Line < DRFLAC_CACHE_L2_LINE_COUNT(bs)) { -#ifndef DR_FLAC_NO_CRC - drflac__update_crc16(bs); + bs->cache <<= setBitOffsetPlus1 & (MA_DR_FLAC_CACHE_L1_SIZE_BITS(bs)-1); + bitCountLo = bs->consumedBits - MA_DR_FLAC_CACHE_L1_SIZE_BITS(bs); + resultHi = MA_DR_FLAC_CACHE_L1_SELECT_AND_SHIFT(bs, riceParam); + if (bs->nextL2Line < MA_DR_FLAC_CACHE_L2_LINE_COUNT(bs)) { +#ifndef MA_DR_FLAC_NO_CRC + ma_dr_flac__update_crc16(bs); #endif - bs->cache = drflac__be2host__cache_line(bs->cacheL2[bs->nextL2Line++]); + bs->cache = ma_dr_flac__be2host__cache_line(bs->cacheL2[bs->nextL2Line++]); bs->consumedBits = 0; -#ifndef DR_FLAC_NO_CRC +#ifndef MA_DR_FLAC_NO_CRC bs->crc16Cache = bs->cache; #endif } else { - if (!drflac__reload_cache(bs)) { - return DRFLAC_FALSE; + if (!ma_dr_flac__reload_cache(bs)) { + return MA_FALSE; } - if (bitCountLo > DRFLAC_CACHE_L1_BITS_REMAINING(bs)) { - return DRFLAC_FALSE; + if (bitCountLo > MA_DR_FLAC_CACHE_L1_BITS_REMAINING(bs)) { + return MA_FALSE; } } - riceParamPart = (drflac_uint32)(resultHi | DRFLAC_CACHE_L1_SELECT_AND_SHIFT_SAFE(bs, bitCountLo)); + riceParamPart = (ma_uint32)(resultHi | MA_DR_FLAC_CACHE_L1_SELECT_AND_SHIFT_SAFE(bs, bitCountLo)); bs->consumedBits += bitCountLo; bs->cache <<= bitCountLo; } pZeroCounterOut[0] = zeroCounter; pRiceParamPartOut[0] = riceParamPart; - return DRFLAC_TRUE; + return MA_TRUE; } #endif -static DRFLAC_INLINE drflac_bool32 drflac__read_rice_parts_x1(drflac_bs* bs, drflac_uint8 riceParam, drflac_uint32* pZeroCounterOut, drflac_uint32* pRiceParamPartOut) +static MA_INLINE ma_bool32 ma_dr_flac__read_rice_parts_x1(ma_dr_flac_bs* bs, ma_uint8 riceParam, ma_uint32* pZeroCounterOut, ma_uint32* pRiceParamPartOut) { - drflac_uint32 riceParamPlus1 = riceParam + 1; - drflac_uint32 riceParamPlus1Shift = DRFLAC_CACHE_L1_SELECTION_SHIFT(bs, riceParamPlus1); - drflac_uint32 riceParamPlus1MaxConsumedBits = DRFLAC_CACHE_L1_SIZE_BITS(bs) - riceParamPlus1; - drflac_cache_t bs_cache = bs->cache; - drflac_uint32 bs_consumedBits = bs->consumedBits; - drflac_uint32 lzcount = drflac__clz(bs_cache); + ma_uint32 riceParamPlus1 = riceParam + 1; + ma_uint32 riceParamPlus1Shift = MA_DR_FLAC_CACHE_L1_SELECTION_SHIFT(bs, riceParamPlus1); + ma_uint32 riceParamPlus1MaxConsumedBits = MA_DR_FLAC_CACHE_L1_SIZE_BITS(bs) - riceParamPlus1; + ma_dr_flac_cache_t bs_cache = bs->cache; + ma_uint32 bs_consumedBits = bs->consumedBits; + ma_uint32 lzcount = ma_dr_flac__clz(bs_cache); if (lzcount < sizeof(bs_cache)*8) { pZeroCounterOut[0] = lzcount; extract_rice_param_part: bs_cache <<= lzcount; bs_consumedBits += lzcount; if (bs_consumedBits <= riceParamPlus1MaxConsumedBits) { - pRiceParamPartOut[0] = (drflac_uint32)(bs_cache >> riceParamPlus1Shift); + pRiceParamPartOut[0] = (ma_uint32)(bs_cache >> riceParamPlus1Shift); bs_cache <<= riceParamPlus1; bs_consumedBits += riceParamPlus1; } else { - drflac_uint32 riceParamPartHi; - drflac_uint32 riceParamPartLo; - drflac_uint32 riceParamPartLoBitCount; - riceParamPartHi = (drflac_uint32)(bs_cache >> riceParamPlus1Shift); + ma_uint32 riceParamPartHi; + ma_uint32 riceParamPartLo; + ma_uint32 riceParamPartLoBitCount; + riceParamPartHi = (ma_uint32)(bs_cache >> riceParamPlus1Shift); riceParamPartLoBitCount = bs_consumedBits - riceParamPlus1MaxConsumedBits; - DRFLAC_ASSERT(riceParamPartLoBitCount > 0 && riceParamPartLoBitCount < 32); - if (bs->nextL2Line < DRFLAC_CACHE_L2_LINE_COUNT(bs)) { - #ifndef DR_FLAC_NO_CRC - drflac__update_crc16(bs); + MA_DR_FLAC_ASSERT(riceParamPartLoBitCount > 0 && riceParamPartLoBitCount < 32); + if (bs->nextL2Line < MA_DR_FLAC_CACHE_L2_LINE_COUNT(bs)) { + #ifndef MA_DR_FLAC_NO_CRC + ma_dr_flac__update_crc16(bs); #endif - bs_cache = drflac__be2host__cache_line(bs->cacheL2[bs->nextL2Line++]); + bs_cache = ma_dr_flac__be2host__cache_line(bs->cacheL2[bs->nextL2Line++]); bs_consumedBits = riceParamPartLoBitCount; - #ifndef DR_FLAC_NO_CRC + #ifndef MA_DR_FLAC_NO_CRC bs->crc16Cache = bs_cache; #endif } else { - if (!drflac__reload_cache(bs)) { - return DRFLAC_FALSE; + if (!ma_dr_flac__reload_cache(bs)) { + return MA_FALSE; } - if (riceParamPartLoBitCount > DRFLAC_CACHE_L1_BITS_REMAINING(bs)) { - return DRFLAC_FALSE; + if (riceParamPartLoBitCount > MA_DR_FLAC_CACHE_L1_BITS_REMAINING(bs)) { + return MA_FALSE; } bs_cache = bs->cache; bs_consumedBits = bs->consumedBits + riceParamPartLoBitCount; } - riceParamPartLo = (drflac_uint32)(bs_cache >> (DRFLAC_CACHE_L1_SELECTION_SHIFT(bs, riceParamPartLoBitCount))); + riceParamPartLo = (ma_uint32)(bs_cache >> (MA_DR_FLAC_CACHE_L1_SELECTION_SHIFT(bs, riceParamPartLoBitCount))); pRiceParamPartOut[0] = riceParamPartHi | riceParamPartLo; bs_cache <<= riceParamPartLoBitCount; } } else { - drflac_uint32 zeroCounter = (drflac_uint32)(DRFLAC_CACHE_L1_SIZE_BITS(bs) - bs_consumedBits); + ma_uint32 zeroCounter = (ma_uint32)(MA_DR_FLAC_CACHE_L1_SIZE_BITS(bs) - bs_consumedBits); for (;;) { - if (bs->nextL2Line < DRFLAC_CACHE_L2_LINE_COUNT(bs)) { - #ifndef DR_FLAC_NO_CRC - drflac__update_crc16(bs); + if (bs->nextL2Line < MA_DR_FLAC_CACHE_L2_LINE_COUNT(bs)) { + #ifndef MA_DR_FLAC_NO_CRC + ma_dr_flac__update_crc16(bs); #endif - bs_cache = drflac__be2host__cache_line(bs->cacheL2[bs->nextL2Line++]); + bs_cache = ma_dr_flac__be2host__cache_line(bs->cacheL2[bs->nextL2Line++]); bs_consumedBits = 0; - #ifndef DR_FLAC_NO_CRC + #ifndef MA_DR_FLAC_NO_CRC bs->crc16Cache = bs_cache; #endif } else { - if (!drflac__reload_cache(bs)) { - return DRFLAC_FALSE; + if (!ma_dr_flac__reload_cache(bs)) { + return MA_FALSE; } bs_cache = bs->cache; bs_consumedBits = bs->consumedBits; } - lzcount = drflac__clz(bs_cache); + lzcount = ma_dr_flac__clz(bs_cache); zeroCounter += lzcount; if (lzcount < sizeof(bs_cache)*8) { break; @@ -80639,15 +83769,15 @@ static DRFLAC_INLINE drflac_bool32 drflac__read_rice_parts_x1(drflac_bs* bs, drf } bs->cache = bs_cache; bs->consumedBits = bs_consumedBits; - return DRFLAC_TRUE; + return MA_TRUE; } -static DRFLAC_INLINE drflac_bool32 drflac__seek_rice_parts(drflac_bs* bs, drflac_uint8 riceParam) +static MA_INLINE ma_bool32 ma_dr_flac__seek_rice_parts(ma_dr_flac_bs* bs, ma_uint8 riceParam) { - drflac_uint32 riceParamPlus1 = riceParam + 1; - drflac_uint32 riceParamPlus1MaxConsumedBits = DRFLAC_CACHE_L1_SIZE_BITS(bs) - riceParamPlus1; - drflac_cache_t bs_cache = bs->cache; - drflac_uint32 bs_consumedBits = bs->consumedBits; - drflac_uint32 lzcount = drflac__clz(bs_cache); + ma_uint32 riceParamPlus1 = riceParam + 1; + ma_uint32 riceParamPlus1MaxConsumedBits = MA_DR_FLAC_CACHE_L1_SIZE_BITS(bs) - riceParamPlus1; + ma_dr_flac_cache_t bs_cache = bs->cache; + ma_uint32 bs_consumedBits = bs->consumedBits; + ma_uint32 lzcount = ma_dr_flac__clz(bs_cache); if (lzcount < sizeof(bs_cache)*8) { extract_rice_param_part: bs_cache <<= lzcount; @@ -80656,23 +83786,23 @@ static DRFLAC_INLINE drflac_bool32 drflac__seek_rice_parts(drflac_bs* bs, drflac bs_cache <<= riceParamPlus1; bs_consumedBits += riceParamPlus1; } else { - drflac_uint32 riceParamPartLoBitCount = bs_consumedBits - riceParamPlus1MaxConsumedBits; - DRFLAC_ASSERT(riceParamPartLoBitCount > 0 && riceParamPartLoBitCount < 32); - if (bs->nextL2Line < DRFLAC_CACHE_L2_LINE_COUNT(bs)) { - #ifndef DR_FLAC_NO_CRC - drflac__update_crc16(bs); + ma_uint32 riceParamPartLoBitCount = bs_consumedBits - riceParamPlus1MaxConsumedBits; + MA_DR_FLAC_ASSERT(riceParamPartLoBitCount > 0 && riceParamPartLoBitCount < 32); + if (bs->nextL2Line < MA_DR_FLAC_CACHE_L2_LINE_COUNT(bs)) { + #ifndef MA_DR_FLAC_NO_CRC + ma_dr_flac__update_crc16(bs); #endif - bs_cache = drflac__be2host__cache_line(bs->cacheL2[bs->nextL2Line++]); + bs_cache = ma_dr_flac__be2host__cache_line(bs->cacheL2[bs->nextL2Line++]); bs_consumedBits = riceParamPartLoBitCount; - #ifndef DR_FLAC_NO_CRC + #ifndef MA_DR_FLAC_NO_CRC bs->crc16Cache = bs_cache; #endif } else { - if (!drflac__reload_cache(bs)) { - return DRFLAC_FALSE; + if (!ma_dr_flac__reload_cache(bs)) { + return MA_FALSE; } - if (riceParamPartLoBitCount > DRFLAC_CACHE_L1_BITS_REMAINING(bs)) { - return DRFLAC_FALSE; + if (riceParamPartLoBitCount > MA_DR_FLAC_CACHE_L1_BITS_REMAINING(bs)) { + return MA_FALSE; } bs_cache = bs->cache; bs_consumedBits = bs->consumedBits + riceParamPartLoBitCount; @@ -80681,23 +83811,23 @@ static DRFLAC_INLINE drflac_bool32 drflac__seek_rice_parts(drflac_bs* bs, drflac } } else { for (;;) { - if (bs->nextL2Line < DRFLAC_CACHE_L2_LINE_COUNT(bs)) { - #ifndef DR_FLAC_NO_CRC - drflac__update_crc16(bs); + if (bs->nextL2Line < MA_DR_FLAC_CACHE_L2_LINE_COUNT(bs)) { + #ifndef MA_DR_FLAC_NO_CRC + ma_dr_flac__update_crc16(bs); #endif - bs_cache = drflac__be2host__cache_line(bs->cacheL2[bs->nextL2Line++]); + bs_cache = ma_dr_flac__be2host__cache_line(bs->cacheL2[bs->nextL2Line++]); bs_consumedBits = 0; - #ifndef DR_FLAC_NO_CRC + #ifndef MA_DR_FLAC_NO_CRC bs->crc16Cache = bs_cache; #endif } else { - if (!drflac__reload_cache(bs)) { - return DRFLAC_FALSE; + if (!ma_dr_flac__reload_cache(bs)) { + return MA_FALSE; } bs_cache = bs->cache; bs_consumedBits = bs->consumedBits; } - lzcount = drflac__clz(bs_cache); + lzcount = ma_dr_flac__clz(bs_cache); if (lzcount < sizeof(bs_cache)*8) { break; } @@ -80706,26 +83836,26 @@ static DRFLAC_INLINE drflac_bool32 drflac__seek_rice_parts(drflac_bs* bs, drflac } bs->cache = bs_cache; bs->consumedBits = bs_consumedBits; - return DRFLAC_TRUE; + return MA_TRUE; } -static drflac_bool32 drflac__decode_samples_with_residual__rice__scalar_zeroorder(drflac_bs* bs, drflac_uint32 bitsPerSample, drflac_uint32 count, drflac_uint8 riceParam, drflac_uint32 order, drflac_int32 shift, const drflac_int32* coefficients, drflac_int32* pSamplesOut) +static ma_bool32 ma_dr_flac__decode_samples_with_residual__rice__scalar_zeroorder(ma_dr_flac_bs* bs, ma_uint32 bitsPerSample, ma_uint32 count, ma_uint8 riceParam, ma_uint32 order, ma_int32 shift, const ma_int32* coefficients, ma_int32* pSamplesOut) { - drflac_uint32 t[2] = {0x00000000, 0xFFFFFFFF}; - drflac_uint32 zeroCountPart0; - drflac_uint32 riceParamPart0; - drflac_uint32 riceParamMask; - drflac_uint32 i; - DRFLAC_ASSERT(bs != NULL); - DRFLAC_ASSERT(pSamplesOut != NULL); + ma_uint32 t[2] = {0x00000000, 0xFFFFFFFF}; + ma_uint32 zeroCountPart0; + ma_uint32 riceParamPart0; + ma_uint32 riceParamMask; + ma_uint32 i; + MA_DR_FLAC_ASSERT(bs != NULL); + MA_DR_FLAC_ASSERT(pSamplesOut != NULL); (void)bitsPerSample; (void)order; (void)shift; (void)coefficients; - riceParamMask = (drflac_uint32)~((~0UL) << riceParam); + riceParamMask = (ma_uint32)~((~0UL) << riceParam); i = 0; while (i < count) { - if (!drflac__read_rice_parts_x1(bs, riceParam, &zeroCountPart0, &riceParamPart0)) { - return DRFLAC_FALSE; + if (!ma_dr_flac__read_rice_parts_x1(bs, riceParam, &zeroCountPart0, &riceParamPart0)) { + return MA_FALSE; } riceParamPart0 &= riceParamMask; riceParamPart0 |= (zeroCountPart0 << riceParam); @@ -80733,36 +83863,36 @@ static drflac_bool32 drflac__decode_samples_with_residual__rice__scalar_zeroorde pSamplesOut[i] = riceParamPart0; i += 1; } - return DRFLAC_TRUE; + return MA_TRUE; } -static drflac_bool32 drflac__decode_samples_with_residual__rice__scalar(drflac_bs* bs, drflac_uint32 bitsPerSample, drflac_uint32 count, drflac_uint8 riceParam, drflac_uint32 lpcOrder, drflac_int32 lpcShift, drflac_uint32 lpcPrecision, const drflac_int32* coefficients, drflac_int32* pSamplesOut) +static ma_bool32 ma_dr_flac__decode_samples_with_residual__rice__scalar(ma_dr_flac_bs* bs, ma_uint32 bitsPerSample, ma_uint32 count, ma_uint8 riceParam, ma_uint32 lpcOrder, ma_int32 lpcShift, ma_uint32 lpcPrecision, const ma_int32* coefficients, ma_int32* pSamplesOut) { - drflac_uint32 t[2] = {0x00000000, 0xFFFFFFFF}; - drflac_uint32 zeroCountPart0 = 0; - drflac_uint32 zeroCountPart1 = 0; - drflac_uint32 zeroCountPart2 = 0; - drflac_uint32 zeroCountPart3 = 0; - drflac_uint32 riceParamPart0 = 0; - drflac_uint32 riceParamPart1 = 0; - drflac_uint32 riceParamPart2 = 0; - drflac_uint32 riceParamPart3 = 0; - drflac_uint32 riceParamMask; - const drflac_int32* pSamplesOutEnd; - drflac_uint32 i; - DRFLAC_ASSERT(bs != NULL); - DRFLAC_ASSERT(pSamplesOut != NULL); + ma_uint32 t[2] = {0x00000000, 0xFFFFFFFF}; + ma_uint32 zeroCountPart0 = 0; + ma_uint32 zeroCountPart1 = 0; + ma_uint32 zeroCountPart2 = 0; + ma_uint32 zeroCountPart3 = 0; + ma_uint32 riceParamPart0 = 0; + ma_uint32 riceParamPart1 = 0; + ma_uint32 riceParamPart2 = 0; + ma_uint32 riceParamPart3 = 0; + ma_uint32 riceParamMask; + const ma_int32* pSamplesOutEnd; + ma_uint32 i; + MA_DR_FLAC_ASSERT(bs != NULL); + MA_DR_FLAC_ASSERT(pSamplesOut != NULL); if (lpcOrder == 0) { - return drflac__decode_samples_with_residual__rice__scalar_zeroorder(bs, bitsPerSample, count, riceParam, lpcOrder, lpcShift, coefficients, pSamplesOut); + return ma_dr_flac__decode_samples_with_residual__rice__scalar_zeroorder(bs, bitsPerSample, count, riceParam, lpcOrder, lpcShift, coefficients, pSamplesOut); } - riceParamMask = (drflac_uint32)~((~0UL) << riceParam); + riceParamMask = (ma_uint32)~((~0UL) << riceParam); pSamplesOutEnd = pSamplesOut + (count & ~3); - if (drflac__use_64_bit_prediction(bitsPerSample, lpcOrder, lpcPrecision)) { + if (ma_dr_flac__use_64_bit_prediction(bitsPerSample, lpcOrder, lpcPrecision)) { while (pSamplesOut < pSamplesOutEnd) { - if (!drflac__read_rice_parts_x1(bs, riceParam, &zeroCountPart0, &riceParamPart0) || - !drflac__read_rice_parts_x1(bs, riceParam, &zeroCountPart1, &riceParamPart1) || - !drflac__read_rice_parts_x1(bs, riceParam, &zeroCountPart2, &riceParamPart2) || - !drflac__read_rice_parts_x1(bs, riceParam, &zeroCountPart3, &riceParamPart3)) { - return DRFLAC_FALSE; + if (!ma_dr_flac__read_rice_parts_x1(bs, riceParam, &zeroCountPart0, &riceParamPart0) || + !ma_dr_flac__read_rice_parts_x1(bs, riceParam, &zeroCountPart1, &riceParamPart1) || + !ma_dr_flac__read_rice_parts_x1(bs, riceParam, &zeroCountPart2, &riceParamPart2) || + !ma_dr_flac__read_rice_parts_x1(bs, riceParam, &zeroCountPart3, &riceParamPart3)) { + return MA_FALSE; } riceParamPart0 &= riceParamMask; riceParamPart1 &= riceParamMask; @@ -80776,19 +83906,19 @@ static drflac_bool32 drflac__decode_samples_with_residual__rice__scalar(drflac_b riceParamPart1 = (riceParamPart1 >> 1) ^ t[riceParamPart1 & 0x01]; riceParamPart2 = (riceParamPart2 >> 1) ^ t[riceParamPart2 & 0x01]; riceParamPart3 = (riceParamPart3 >> 1) ^ t[riceParamPart3 & 0x01]; - pSamplesOut[0] = riceParamPart0 + drflac__calculate_prediction_64(lpcOrder, lpcShift, coefficients, pSamplesOut + 0); - pSamplesOut[1] = riceParamPart1 + drflac__calculate_prediction_64(lpcOrder, lpcShift, coefficients, pSamplesOut + 1); - pSamplesOut[2] = riceParamPart2 + drflac__calculate_prediction_64(lpcOrder, lpcShift, coefficients, pSamplesOut + 2); - pSamplesOut[3] = riceParamPart3 + drflac__calculate_prediction_64(lpcOrder, lpcShift, coefficients, pSamplesOut + 3); + pSamplesOut[0] = riceParamPart0 + ma_dr_flac__calculate_prediction_64(lpcOrder, lpcShift, coefficients, pSamplesOut + 0); + pSamplesOut[1] = riceParamPart1 + ma_dr_flac__calculate_prediction_64(lpcOrder, lpcShift, coefficients, pSamplesOut + 1); + pSamplesOut[2] = riceParamPart2 + ma_dr_flac__calculate_prediction_64(lpcOrder, lpcShift, coefficients, pSamplesOut + 2); + pSamplesOut[3] = riceParamPart3 + ma_dr_flac__calculate_prediction_64(lpcOrder, lpcShift, coefficients, pSamplesOut + 3); pSamplesOut += 4; } } else { while (pSamplesOut < pSamplesOutEnd) { - if (!drflac__read_rice_parts_x1(bs, riceParam, &zeroCountPart0, &riceParamPart0) || - !drflac__read_rice_parts_x1(bs, riceParam, &zeroCountPart1, &riceParamPart1) || - !drflac__read_rice_parts_x1(bs, riceParam, &zeroCountPart2, &riceParamPart2) || - !drflac__read_rice_parts_x1(bs, riceParam, &zeroCountPart3, &riceParamPart3)) { - return DRFLAC_FALSE; + if (!ma_dr_flac__read_rice_parts_x1(bs, riceParam, &zeroCountPart0, &riceParamPart0) || + !ma_dr_flac__read_rice_parts_x1(bs, riceParam, &zeroCountPart1, &riceParamPart1) || + !ma_dr_flac__read_rice_parts_x1(bs, riceParam, &zeroCountPart2, &riceParamPart2) || + !ma_dr_flac__read_rice_parts_x1(bs, riceParam, &zeroCountPart3, &riceParamPart3)) { + return MA_FALSE; } riceParamPart0 &= riceParamMask; riceParamPart1 &= riceParamMask; @@ -80802,33 +83932,33 @@ static drflac_bool32 drflac__decode_samples_with_residual__rice__scalar(drflac_b riceParamPart1 = (riceParamPart1 >> 1) ^ t[riceParamPart1 & 0x01]; riceParamPart2 = (riceParamPart2 >> 1) ^ t[riceParamPart2 & 0x01]; riceParamPart3 = (riceParamPart3 >> 1) ^ t[riceParamPart3 & 0x01]; - pSamplesOut[0] = riceParamPart0 + drflac__calculate_prediction_32(lpcOrder, lpcShift, coefficients, pSamplesOut + 0); - pSamplesOut[1] = riceParamPart1 + drflac__calculate_prediction_32(lpcOrder, lpcShift, coefficients, pSamplesOut + 1); - pSamplesOut[2] = riceParamPart2 + drflac__calculate_prediction_32(lpcOrder, lpcShift, coefficients, pSamplesOut + 2); - pSamplesOut[3] = riceParamPart3 + drflac__calculate_prediction_32(lpcOrder, lpcShift, coefficients, pSamplesOut + 3); + pSamplesOut[0] = riceParamPart0 + ma_dr_flac__calculate_prediction_32(lpcOrder, lpcShift, coefficients, pSamplesOut + 0); + pSamplesOut[1] = riceParamPart1 + ma_dr_flac__calculate_prediction_32(lpcOrder, lpcShift, coefficients, pSamplesOut + 1); + pSamplesOut[2] = riceParamPart2 + ma_dr_flac__calculate_prediction_32(lpcOrder, lpcShift, coefficients, pSamplesOut + 2); + pSamplesOut[3] = riceParamPart3 + ma_dr_flac__calculate_prediction_32(lpcOrder, lpcShift, coefficients, pSamplesOut + 3); pSamplesOut += 4; } } i = (count & ~3); while (i < count) { - if (!drflac__read_rice_parts_x1(bs, riceParam, &zeroCountPart0, &riceParamPart0)) { - return DRFLAC_FALSE; + if (!ma_dr_flac__read_rice_parts_x1(bs, riceParam, &zeroCountPart0, &riceParamPart0)) { + return MA_FALSE; } riceParamPart0 &= riceParamMask; riceParamPart0 |= (zeroCountPart0 << riceParam); riceParamPart0 = (riceParamPart0 >> 1) ^ t[riceParamPart0 & 0x01]; - if (drflac__use_64_bit_prediction(bitsPerSample, lpcOrder, lpcPrecision)) { - pSamplesOut[0] = riceParamPart0 + drflac__calculate_prediction_64(lpcOrder, lpcShift, coefficients, pSamplesOut + 0); + if (ma_dr_flac__use_64_bit_prediction(bitsPerSample, lpcOrder, lpcPrecision)) { + pSamplesOut[0] = riceParamPart0 + ma_dr_flac__calculate_prediction_64(lpcOrder, lpcShift, coefficients, pSamplesOut + 0); } else { - pSamplesOut[0] = riceParamPart0 + drflac__calculate_prediction_32(lpcOrder, lpcShift, coefficients, pSamplesOut + 0); + pSamplesOut[0] = riceParamPart0 + ma_dr_flac__calculate_prediction_32(lpcOrder, lpcShift, coefficients, pSamplesOut + 0); } i += 1; pSamplesOut += 1; } - return DRFLAC_TRUE; + return MA_TRUE; } -#if defined(DRFLAC_SUPPORT_SSE2) -static DRFLAC_INLINE __m128i drflac__mm_packs_interleaved_epi32(__m128i a, __m128i b) +#if defined(MA_DR_FLAC_SUPPORT_SSE2) +static MA_INLINE __m128i ma_dr_flac__mm_packs_interleaved_epi32(__m128i a, __m128i b) { __m128i r; r = _mm_packs_epi32(a, b); @@ -80838,42 +83968,42 @@ static DRFLAC_INLINE __m128i drflac__mm_packs_interleaved_epi32(__m128i a, __m12 return r; } #endif -#if defined(DRFLAC_SUPPORT_SSE41) -static DRFLAC_INLINE __m128i drflac__mm_not_si128(__m128i a) +#if defined(MA_DR_FLAC_SUPPORT_SSE41) +static MA_INLINE __m128i ma_dr_flac__mm_not_si128(__m128i a) { return _mm_xor_si128(a, _mm_cmpeq_epi32(_mm_setzero_si128(), _mm_setzero_si128())); } -static DRFLAC_INLINE __m128i drflac__mm_hadd_epi32(__m128i x) +static MA_INLINE __m128i ma_dr_flac__mm_hadd_epi32(__m128i x) { __m128i x64 = _mm_add_epi32(x, _mm_shuffle_epi32(x, _MM_SHUFFLE(1, 0, 3, 2))); __m128i x32 = _mm_shufflelo_epi16(x64, _MM_SHUFFLE(1, 0, 3, 2)); return _mm_add_epi32(x64, x32); } -static DRFLAC_INLINE __m128i drflac__mm_hadd_epi64(__m128i x) +static MA_INLINE __m128i ma_dr_flac__mm_hadd_epi64(__m128i x) { return _mm_add_epi64(x, _mm_shuffle_epi32(x, _MM_SHUFFLE(1, 0, 3, 2))); } -static DRFLAC_INLINE __m128i drflac__mm_srai_epi64(__m128i x, int count) +static MA_INLINE __m128i ma_dr_flac__mm_srai_epi64(__m128i x, int count) { __m128i lo = _mm_srli_epi64(x, count); __m128i hi = _mm_srai_epi32(x, count); hi = _mm_and_si128(hi, _mm_set_epi32(0xFFFFFFFF, 0, 0xFFFFFFFF, 0)); return _mm_or_si128(lo, hi); } -static drflac_bool32 drflac__decode_samples_with_residual__rice__sse41_32(drflac_bs* bs, drflac_uint32 count, drflac_uint8 riceParam, drflac_uint32 order, drflac_int32 shift, const drflac_int32* coefficients, drflac_int32* pSamplesOut) +static ma_bool32 ma_dr_flac__decode_samples_with_residual__rice__sse41_32(ma_dr_flac_bs* bs, ma_uint32 count, ma_uint8 riceParam, ma_uint32 order, ma_int32 shift, const ma_int32* coefficients, ma_int32* pSamplesOut) { int i; - drflac_uint32 riceParamMask; - drflac_int32* pDecodedSamples = pSamplesOut; - drflac_int32* pDecodedSamplesEnd = pSamplesOut + (count & ~3); - drflac_uint32 zeroCountParts0 = 0; - drflac_uint32 zeroCountParts1 = 0; - drflac_uint32 zeroCountParts2 = 0; - drflac_uint32 zeroCountParts3 = 0; - drflac_uint32 riceParamParts0 = 0; - drflac_uint32 riceParamParts1 = 0; - drflac_uint32 riceParamParts2 = 0; - drflac_uint32 riceParamParts3 = 0; + ma_uint32 riceParamMask; + ma_int32* pDecodedSamples = pSamplesOut; + ma_int32* pDecodedSamplesEnd = pSamplesOut + (count & ~3); + ma_uint32 zeroCountParts0 = 0; + ma_uint32 zeroCountParts1 = 0; + ma_uint32 zeroCountParts2 = 0; + ma_uint32 zeroCountParts3 = 0; + ma_uint32 riceParamParts0 = 0; + ma_uint32 riceParamParts1 = 0; + ma_uint32 riceParamParts2 = 0; + ma_uint32 riceParamParts3 = 0; __m128i coefficients128_0; __m128i coefficients128_4; __m128i coefficients128_8; @@ -80881,8 +84011,8 @@ static drflac_bool32 drflac__decode_samples_with_residual__rice__sse41_32(drflac __m128i samples128_4; __m128i samples128_8; __m128i riceParamMask128; - const drflac_uint32 t[2] = {0x00000000, 0xFFFFFFFF}; - riceParamMask = (drflac_uint32)~((~0UL) << riceParam); + const ma_uint32 t[2] = {0x00000000, 0xFFFFFFFF}; + riceParamMask = (ma_uint32)~((~0UL) << riceParam); riceParamMask128 = _mm_set1_epi32(riceParamMask); coefficients128_0 = _mm_setzero_si128(); coefficients128_4 = _mm_setzero_si128(); @@ -80936,39 +84066,39 @@ static drflac_bool32 drflac__decode_samples_with_residual__rice__sse41_32(drflac #else switch (order) { - case 12: ((drflac_int32*)&coefficients128_8)[0] = coefficients[11]; ((drflac_int32*)&samples128_8)[0] = pDecodedSamples[-12]; - case 11: ((drflac_int32*)&coefficients128_8)[1] = coefficients[10]; ((drflac_int32*)&samples128_8)[1] = pDecodedSamples[-11]; - case 10: ((drflac_int32*)&coefficients128_8)[2] = coefficients[ 9]; ((drflac_int32*)&samples128_8)[2] = pDecodedSamples[-10]; - case 9: ((drflac_int32*)&coefficients128_8)[3] = coefficients[ 8]; ((drflac_int32*)&samples128_8)[3] = pDecodedSamples[- 9]; - case 8: ((drflac_int32*)&coefficients128_4)[0] = coefficients[ 7]; ((drflac_int32*)&samples128_4)[0] = pDecodedSamples[- 8]; - case 7: ((drflac_int32*)&coefficients128_4)[1] = coefficients[ 6]; ((drflac_int32*)&samples128_4)[1] = pDecodedSamples[- 7]; - case 6: ((drflac_int32*)&coefficients128_4)[2] = coefficients[ 5]; ((drflac_int32*)&samples128_4)[2] = pDecodedSamples[- 6]; - case 5: ((drflac_int32*)&coefficients128_4)[3] = coefficients[ 4]; ((drflac_int32*)&samples128_4)[3] = pDecodedSamples[- 5]; - case 4: ((drflac_int32*)&coefficients128_0)[0] = coefficients[ 3]; ((drflac_int32*)&samples128_0)[0] = pDecodedSamples[- 4]; - case 3: ((drflac_int32*)&coefficients128_0)[1] = coefficients[ 2]; ((drflac_int32*)&samples128_0)[1] = pDecodedSamples[- 3]; - case 2: ((drflac_int32*)&coefficients128_0)[2] = coefficients[ 1]; ((drflac_int32*)&samples128_0)[2] = pDecodedSamples[- 2]; - case 1: ((drflac_int32*)&coefficients128_0)[3] = coefficients[ 0]; ((drflac_int32*)&samples128_0)[3] = pDecodedSamples[- 1]; + case 12: ((ma_int32*)&coefficients128_8)[0] = coefficients[11]; ((ma_int32*)&samples128_8)[0] = pDecodedSamples[-12]; + case 11: ((ma_int32*)&coefficients128_8)[1] = coefficients[10]; ((ma_int32*)&samples128_8)[1] = pDecodedSamples[-11]; + case 10: ((ma_int32*)&coefficients128_8)[2] = coefficients[ 9]; ((ma_int32*)&samples128_8)[2] = pDecodedSamples[-10]; + case 9: ((ma_int32*)&coefficients128_8)[3] = coefficients[ 8]; ((ma_int32*)&samples128_8)[3] = pDecodedSamples[- 9]; + case 8: ((ma_int32*)&coefficients128_4)[0] = coefficients[ 7]; ((ma_int32*)&samples128_4)[0] = pDecodedSamples[- 8]; + case 7: ((ma_int32*)&coefficients128_4)[1] = coefficients[ 6]; ((ma_int32*)&samples128_4)[1] = pDecodedSamples[- 7]; + case 6: ((ma_int32*)&coefficients128_4)[2] = coefficients[ 5]; ((ma_int32*)&samples128_4)[2] = pDecodedSamples[- 6]; + case 5: ((ma_int32*)&coefficients128_4)[3] = coefficients[ 4]; ((ma_int32*)&samples128_4)[3] = pDecodedSamples[- 5]; + case 4: ((ma_int32*)&coefficients128_0)[0] = coefficients[ 3]; ((ma_int32*)&samples128_0)[0] = pDecodedSamples[- 4]; + case 3: ((ma_int32*)&coefficients128_0)[1] = coefficients[ 2]; ((ma_int32*)&samples128_0)[1] = pDecodedSamples[- 3]; + case 2: ((ma_int32*)&coefficients128_0)[2] = coefficients[ 1]; ((ma_int32*)&samples128_0)[2] = pDecodedSamples[- 2]; + case 1: ((ma_int32*)&coefficients128_0)[3] = coefficients[ 0]; ((ma_int32*)&samples128_0)[3] = pDecodedSamples[- 1]; } #endif while (pDecodedSamples < pDecodedSamplesEnd) { __m128i prediction128; __m128i zeroCountPart128; __m128i riceParamPart128; - if (!drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts0, &riceParamParts0) || - !drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts1, &riceParamParts1) || - !drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts2, &riceParamParts2) || - !drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts3, &riceParamParts3)) { - return DRFLAC_FALSE; + if (!ma_dr_flac__read_rice_parts_x1(bs, riceParam, &zeroCountParts0, &riceParamParts0) || + !ma_dr_flac__read_rice_parts_x1(bs, riceParam, &zeroCountParts1, &riceParamParts1) || + !ma_dr_flac__read_rice_parts_x1(bs, riceParam, &zeroCountParts2, &riceParamParts2) || + !ma_dr_flac__read_rice_parts_x1(bs, riceParam, &zeroCountParts3, &riceParamParts3)) { + return MA_FALSE; } zeroCountPart128 = _mm_set_epi32(zeroCountParts3, zeroCountParts2, zeroCountParts1, zeroCountParts0); riceParamPart128 = _mm_set_epi32(riceParamParts3, riceParamParts2, riceParamParts1, riceParamParts0); riceParamPart128 = _mm_and_si128(riceParamPart128, riceParamMask128); riceParamPart128 = _mm_or_si128(riceParamPart128, _mm_slli_epi32(zeroCountPart128, riceParam)); - riceParamPart128 = _mm_xor_si128(_mm_srli_epi32(riceParamPart128, 1), _mm_add_epi32(drflac__mm_not_si128(_mm_and_si128(riceParamPart128, _mm_set1_epi32(0x01))), _mm_set1_epi32(0x01))); + riceParamPart128 = _mm_xor_si128(_mm_srli_epi32(riceParamPart128, 1), _mm_add_epi32(ma_dr_flac__mm_not_si128(_mm_and_si128(riceParamPart128, _mm_set1_epi32(0x01))), _mm_set1_epi32(0x01))); if (order <= 4) { for (i = 0; i < 4; i += 1) { prediction128 = _mm_mullo_epi32(coefficients128_0, samples128_0); - prediction128 = drflac__mm_hadd_epi32(prediction128); + prediction128 = ma_dr_flac__mm_hadd_epi32(prediction128); prediction128 = _mm_srai_epi32(prediction128, shift); prediction128 = _mm_add_epi32(riceParamPart128, prediction128); samples128_0 = _mm_alignr_epi8(prediction128, samples128_0, 4); @@ -80978,7 +84108,7 @@ static drflac_bool32 drflac__decode_samples_with_residual__rice__sse41_32(drflac for (i = 0; i < 4; i += 1) { prediction128 = _mm_mullo_epi32(coefficients128_4, samples128_4); prediction128 = _mm_add_epi32(prediction128, _mm_mullo_epi32(coefficients128_0, samples128_0)); - prediction128 = drflac__mm_hadd_epi32(prediction128); + prediction128 = ma_dr_flac__mm_hadd_epi32(prediction128); prediction128 = _mm_srai_epi32(prediction128, shift); prediction128 = _mm_add_epi32(riceParamPart128, prediction128); samples128_4 = _mm_alignr_epi8(samples128_0, samples128_4, 4); @@ -80990,7 +84120,7 @@ static drflac_bool32 drflac__decode_samples_with_residual__rice__sse41_32(drflac prediction128 = _mm_mullo_epi32(coefficients128_8, samples128_8); prediction128 = _mm_add_epi32(prediction128, _mm_mullo_epi32(coefficients128_4, samples128_4)); prediction128 = _mm_add_epi32(prediction128, _mm_mullo_epi32(coefficients128_0, samples128_0)); - prediction128 = drflac__mm_hadd_epi32(prediction128); + prediction128 = ma_dr_flac__mm_hadd_epi32(prediction128); prediction128 = _mm_srai_epi32(prediction128, shift); prediction128 = _mm_add_epi32(riceParamPart128, prediction128); samples128_8 = _mm_alignr_epi8(samples128_4, samples128_8, 4); @@ -81004,32 +84134,32 @@ static drflac_bool32 drflac__decode_samples_with_residual__rice__sse41_32(drflac } i = (count & ~3); while (i < (int)count) { - if (!drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts0, &riceParamParts0)) { - return DRFLAC_FALSE; + if (!ma_dr_flac__read_rice_parts_x1(bs, riceParam, &zeroCountParts0, &riceParamParts0)) { + return MA_FALSE; } riceParamParts0 &= riceParamMask; riceParamParts0 |= (zeroCountParts0 << riceParam); riceParamParts0 = (riceParamParts0 >> 1) ^ t[riceParamParts0 & 0x01]; - pDecodedSamples[0] = riceParamParts0 + drflac__calculate_prediction_32(order, shift, coefficients, pDecodedSamples); + pDecodedSamples[0] = riceParamParts0 + ma_dr_flac__calculate_prediction_32(order, shift, coefficients, pDecodedSamples); i += 1; pDecodedSamples += 1; } - return DRFLAC_TRUE; + return MA_TRUE; } -static drflac_bool32 drflac__decode_samples_with_residual__rice__sse41_64(drflac_bs* bs, drflac_uint32 count, drflac_uint8 riceParam, drflac_uint32 order, drflac_int32 shift, const drflac_int32* coefficients, drflac_int32* pSamplesOut) +static ma_bool32 ma_dr_flac__decode_samples_with_residual__rice__sse41_64(ma_dr_flac_bs* bs, ma_uint32 count, ma_uint8 riceParam, ma_uint32 order, ma_int32 shift, const ma_int32* coefficients, ma_int32* pSamplesOut) { int i; - drflac_uint32 riceParamMask; - drflac_int32* pDecodedSamples = pSamplesOut; - drflac_int32* pDecodedSamplesEnd = pSamplesOut + (count & ~3); - drflac_uint32 zeroCountParts0 = 0; - drflac_uint32 zeroCountParts1 = 0; - drflac_uint32 zeroCountParts2 = 0; - drflac_uint32 zeroCountParts3 = 0; - drflac_uint32 riceParamParts0 = 0; - drflac_uint32 riceParamParts1 = 0; - drflac_uint32 riceParamParts2 = 0; - drflac_uint32 riceParamParts3 = 0; + ma_uint32 riceParamMask; + ma_int32* pDecodedSamples = pSamplesOut; + ma_int32* pDecodedSamplesEnd = pSamplesOut + (count & ~3); + ma_uint32 zeroCountParts0 = 0; + ma_uint32 zeroCountParts1 = 0; + ma_uint32 zeroCountParts2 = 0; + ma_uint32 zeroCountParts3 = 0; + ma_uint32 riceParamParts0 = 0; + ma_uint32 riceParamParts1 = 0; + ma_uint32 riceParamParts2 = 0; + ma_uint32 riceParamParts3 = 0; __m128i coefficients128_0; __m128i coefficients128_4; __m128i coefficients128_8; @@ -81038,9 +84168,9 @@ static drflac_bool32 drflac__decode_samples_with_residual__rice__sse41_64(drflac __m128i samples128_8; __m128i prediction128; __m128i riceParamMask128; - const drflac_uint32 t[2] = {0x00000000, 0xFFFFFFFF}; - DRFLAC_ASSERT(order <= 12); - riceParamMask = (drflac_uint32)~((~0UL) << riceParam); + const ma_uint32 t[2] = {0x00000000, 0xFFFFFFFF}; + MA_DR_FLAC_ASSERT(order <= 12); + riceParamMask = (ma_uint32)~((~0UL) << riceParam); riceParamMask128 = _mm_set1_epi32(riceParamMask); prediction128 = _mm_setzero_si128(); coefficients128_0 = _mm_setzero_si128(); @@ -81095,34 +84225,34 @@ static drflac_bool32 drflac__decode_samples_with_residual__rice__sse41_64(drflac #else switch (order) { - case 12: ((drflac_int32*)&coefficients128_8)[0] = coefficients[11]; ((drflac_int32*)&samples128_8)[0] = pDecodedSamples[-12]; - case 11: ((drflac_int32*)&coefficients128_8)[1] = coefficients[10]; ((drflac_int32*)&samples128_8)[1] = pDecodedSamples[-11]; - case 10: ((drflac_int32*)&coefficients128_8)[2] = coefficients[ 9]; ((drflac_int32*)&samples128_8)[2] = pDecodedSamples[-10]; - case 9: ((drflac_int32*)&coefficients128_8)[3] = coefficients[ 8]; ((drflac_int32*)&samples128_8)[3] = pDecodedSamples[- 9]; - case 8: ((drflac_int32*)&coefficients128_4)[0] = coefficients[ 7]; ((drflac_int32*)&samples128_4)[0] = pDecodedSamples[- 8]; - case 7: ((drflac_int32*)&coefficients128_4)[1] = coefficients[ 6]; ((drflac_int32*)&samples128_4)[1] = pDecodedSamples[- 7]; - case 6: ((drflac_int32*)&coefficients128_4)[2] = coefficients[ 5]; ((drflac_int32*)&samples128_4)[2] = pDecodedSamples[- 6]; - case 5: ((drflac_int32*)&coefficients128_4)[3] = coefficients[ 4]; ((drflac_int32*)&samples128_4)[3] = pDecodedSamples[- 5]; - case 4: ((drflac_int32*)&coefficients128_0)[0] = coefficients[ 3]; ((drflac_int32*)&samples128_0)[0] = pDecodedSamples[- 4]; - case 3: ((drflac_int32*)&coefficients128_0)[1] = coefficients[ 2]; ((drflac_int32*)&samples128_0)[1] = pDecodedSamples[- 3]; - case 2: ((drflac_int32*)&coefficients128_0)[2] = coefficients[ 1]; ((drflac_int32*)&samples128_0)[2] = pDecodedSamples[- 2]; - case 1: ((drflac_int32*)&coefficients128_0)[3] = coefficients[ 0]; ((drflac_int32*)&samples128_0)[3] = pDecodedSamples[- 1]; + case 12: ((ma_int32*)&coefficients128_8)[0] = coefficients[11]; ((ma_int32*)&samples128_8)[0] = pDecodedSamples[-12]; + case 11: ((ma_int32*)&coefficients128_8)[1] = coefficients[10]; ((ma_int32*)&samples128_8)[1] = pDecodedSamples[-11]; + case 10: ((ma_int32*)&coefficients128_8)[2] = coefficients[ 9]; ((ma_int32*)&samples128_8)[2] = pDecodedSamples[-10]; + case 9: ((ma_int32*)&coefficients128_8)[3] = coefficients[ 8]; ((ma_int32*)&samples128_8)[3] = pDecodedSamples[- 9]; + case 8: ((ma_int32*)&coefficients128_4)[0] = coefficients[ 7]; ((ma_int32*)&samples128_4)[0] = pDecodedSamples[- 8]; + case 7: ((ma_int32*)&coefficients128_4)[1] = coefficients[ 6]; ((ma_int32*)&samples128_4)[1] = pDecodedSamples[- 7]; + case 6: ((ma_int32*)&coefficients128_4)[2] = coefficients[ 5]; ((ma_int32*)&samples128_4)[2] = pDecodedSamples[- 6]; + case 5: ((ma_int32*)&coefficients128_4)[3] = coefficients[ 4]; ((ma_int32*)&samples128_4)[3] = pDecodedSamples[- 5]; + case 4: ((ma_int32*)&coefficients128_0)[0] = coefficients[ 3]; ((ma_int32*)&samples128_0)[0] = pDecodedSamples[- 4]; + case 3: ((ma_int32*)&coefficients128_0)[1] = coefficients[ 2]; ((ma_int32*)&samples128_0)[1] = pDecodedSamples[- 3]; + case 2: ((ma_int32*)&coefficients128_0)[2] = coefficients[ 1]; ((ma_int32*)&samples128_0)[2] = pDecodedSamples[- 2]; + case 1: ((ma_int32*)&coefficients128_0)[3] = coefficients[ 0]; ((ma_int32*)&samples128_0)[3] = pDecodedSamples[- 1]; } #endif while (pDecodedSamples < pDecodedSamplesEnd) { __m128i zeroCountPart128; __m128i riceParamPart128; - if (!drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts0, &riceParamParts0) || - !drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts1, &riceParamParts1) || - !drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts2, &riceParamParts2) || - !drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts3, &riceParamParts3)) { - return DRFLAC_FALSE; + if (!ma_dr_flac__read_rice_parts_x1(bs, riceParam, &zeroCountParts0, &riceParamParts0) || + !ma_dr_flac__read_rice_parts_x1(bs, riceParam, &zeroCountParts1, &riceParamParts1) || + !ma_dr_flac__read_rice_parts_x1(bs, riceParam, &zeroCountParts2, &riceParamParts2) || + !ma_dr_flac__read_rice_parts_x1(bs, riceParam, &zeroCountParts3, &riceParamParts3)) { + return MA_FALSE; } zeroCountPart128 = _mm_set_epi32(zeroCountParts3, zeroCountParts2, zeroCountParts1, zeroCountParts0); riceParamPart128 = _mm_set_epi32(riceParamParts3, riceParamParts2, riceParamParts1, riceParamParts0); riceParamPart128 = _mm_and_si128(riceParamPart128, riceParamMask128); riceParamPart128 = _mm_or_si128(riceParamPart128, _mm_slli_epi32(zeroCountPart128, riceParam)); - riceParamPart128 = _mm_xor_si128(_mm_srli_epi32(riceParamPart128, 1), _mm_add_epi32(drflac__mm_not_si128(_mm_and_si128(riceParamPart128, _mm_set1_epi32(1))), _mm_set1_epi32(1))); + riceParamPart128 = _mm_xor_si128(_mm_srli_epi32(riceParamPart128, 1), _mm_add_epi32(ma_dr_flac__mm_not_si128(_mm_and_si128(riceParamPart128, _mm_set1_epi32(1))), _mm_set1_epi32(1))); for (i = 0; i < 4; i += 1) { prediction128 = _mm_xor_si128(prediction128, prediction128); switch (order) @@ -81140,8 +84270,8 @@ static drflac_bool32 drflac__decode_samples_with_residual__rice__sse41_64(drflac case 2: case 1: prediction128 = _mm_add_epi64(prediction128, _mm_mul_epi32(_mm_shuffle_epi32(coefficients128_0, _MM_SHUFFLE(3, 3, 2, 2)), _mm_shuffle_epi32(samples128_0, _MM_SHUFFLE(3, 3, 2, 2)))); } - prediction128 = drflac__mm_hadd_epi64(prediction128); - prediction128 = drflac__mm_srai_epi64(prediction128, shift); + prediction128 = ma_dr_flac__mm_hadd_epi64(prediction128); + prediction128 = ma_dr_flac__mm_srai_epi64(prediction128, shift); prediction128 = _mm_add_epi32(riceParamPart128, prediction128); samples128_8 = _mm_alignr_epi8(samples128_4, samples128_8, 4); samples128_4 = _mm_alignr_epi8(samples128_0, samples128_4, 4); @@ -81153,103 +84283,103 @@ static drflac_bool32 drflac__decode_samples_with_residual__rice__sse41_64(drflac } i = (count & ~3); while (i < (int)count) { - if (!drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts0, &riceParamParts0)) { - return DRFLAC_FALSE; + if (!ma_dr_flac__read_rice_parts_x1(bs, riceParam, &zeroCountParts0, &riceParamParts0)) { + return MA_FALSE; } riceParamParts0 &= riceParamMask; riceParamParts0 |= (zeroCountParts0 << riceParam); riceParamParts0 = (riceParamParts0 >> 1) ^ t[riceParamParts0 & 0x01]; - pDecodedSamples[0] = riceParamParts0 + drflac__calculate_prediction_64(order, shift, coefficients, pDecodedSamples); + pDecodedSamples[0] = riceParamParts0 + ma_dr_flac__calculate_prediction_64(order, shift, coefficients, pDecodedSamples); i += 1; pDecodedSamples += 1; } - return DRFLAC_TRUE; + return MA_TRUE; } -static drflac_bool32 drflac__decode_samples_with_residual__rice__sse41(drflac_bs* bs, drflac_uint32 bitsPerSample, drflac_uint32 count, drflac_uint8 riceParam, drflac_uint32 lpcOrder, drflac_int32 lpcShift, drflac_uint32 lpcPrecision, const drflac_int32* coefficients, drflac_int32* pSamplesOut) +static ma_bool32 ma_dr_flac__decode_samples_with_residual__rice__sse41(ma_dr_flac_bs* bs, ma_uint32 bitsPerSample, ma_uint32 count, ma_uint8 riceParam, ma_uint32 lpcOrder, ma_int32 lpcShift, ma_uint32 lpcPrecision, const ma_int32* coefficients, ma_int32* pSamplesOut) { - DRFLAC_ASSERT(bs != NULL); - DRFLAC_ASSERT(pSamplesOut != NULL); + MA_DR_FLAC_ASSERT(bs != NULL); + MA_DR_FLAC_ASSERT(pSamplesOut != NULL); if (lpcOrder > 0 && lpcOrder <= 12) { - if (drflac__use_64_bit_prediction(bitsPerSample, lpcOrder, lpcPrecision)) { - return drflac__decode_samples_with_residual__rice__sse41_64(bs, count, riceParam, lpcOrder, lpcShift, coefficients, pSamplesOut); + if (ma_dr_flac__use_64_bit_prediction(bitsPerSample, lpcOrder, lpcPrecision)) { + return ma_dr_flac__decode_samples_with_residual__rice__sse41_64(bs, count, riceParam, lpcOrder, lpcShift, coefficients, pSamplesOut); } else { - return drflac__decode_samples_with_residual__rice__sse41_32(bs, count, riceParam, lpcOrder, lpcShift, coefficients, pSamplesOut); + return ma_dr_flac__decode_samples_with_residual__rice__sse41_32(bs, count, riceParam, lpcOrder, lpcShift, coefficients, pSamplesOut); } } else { - return drflac__decode_samples_with_residual__rice__scalar(bs, bitsPerSample, count, riceParam, lpcOrder, lpcShift, lpcPrecision, coefficients, pSamplesOut); + return ma_dr_flac__decode_samples_with_residual__rice__scalar(bs, bitsPerSample, count, riceParam, lpcOrder, lpcShift, lpcPrecision, coefficients, pSamplesOut); } } #endif -#if defined(DRFLAC_SUPPORT_NEON) -static DRFLAC_INLINE void drflac__vst2q_s32(drflac_int32* p, int32x4x2_t x) +#if defined(MA_DR_FLAC_SUPPORT_NEON) +static MA_INLINE void ma_dr_flac__vst2q_s32(ma_int32* p, int32x4x2_t x) { vst1q_s32(p+0, x.val[0]); vst1q_s32(p+4, x.val[1]); } -static DRFLAC_INLINE void drflac__vst2q_u32(drflac_uint32* p, uint32x4x2_t x) +static MA_INLINE void ma_dr_flac__vst2q_u32(ma_uint32* p, uint32x4x2_t x) { vst1q_u32(p+0, x.val[0]); vst1q_u32(p+4, x.val[1]); } -static DRFLAC_INLINE void drflac__vst2q_f32(float* p, float32x4x2_t x) +static MA_INLINE void ma_dr_flac__vst2q_f32(float* p, float32x4x2_t x) { vst1q_f32(p+0, x.val[0]); vst1q_f32(p+4, x.val[1]); } -static DRFLAC_INLINE void drflac__vst2q_s16(drflac_int16* p, int16x4x2_t x) +static MA_INLINE void ma_dr_flac__vst2q_s16(ma_int16* p, int16x4x2_t x) { vst1q_s16(p, vcombine_s16(x.val[0], x.val[1])); } -static DRFLAC_INLINE void drflac__vst2q_u16(drflac_uint16* p, uint16x4x2_t x) +static MA_INLINE void ma_dr_flac__vst2q_u16(ma_uint16* p, uint16x4x2_t x) { vst1q_u16(p, vcombine_u16(x.val[0], x.val[1])); } -static DRFLAC_INLINE int32x4_t drflac__vdupq_n_s32x4(drflac_int32 x3, drflac_int32 x2, drflac_int32 x1, drflac_int32 x0) +static MA_INLINE int32x4_t ma_dr_flac__vdupq_n_s32x4(ma_int32 x3, ma_int32 x2, ma_int32 x1, ma_int32 x0) { - drflac_int32 x[4]; + ma_int32 x[4]; x[3] = x3; x[2] = x2; x[1] = x1; x[0] = x0; return vld1q_s32(x); } -static DRFLAC_INLINE int32x4_t drflac__valignrq_s32_1(int32x4_t a, int32x4_t b) +static MA_INLINE int32x4_t ma_dr_flac__valignrq_s32_1(int32x4_t a, int32x4_t b) { return vextq_s32(b, a, 1); } -static DRFLAC_INLINE uint32x4_t drflac__valignrq_u32_1(uint32x4_t a, uint32x4_t b) +static MA_INLINE uint32x4_t ma_dr_flac__valignrq_u32_1(uint32x4_t a, uint32x4_t b) { return vextq_u32(b, a, 1); } -static DRFLAC_INLINE int32x2_t drflac__vhaddq_s32(int32x4_t x) +static MA_INLINE int32x2_t ma_dr_flac__vhaddq_s32(int32x4_t x) { int32x2_t r = vadd_s32(vget_high_s32(x), vget_low_s32(x)); return vpadd_s32(r, r); } -static DRFLAC_INLINE int64x1_t drflac__vhaddq_s64(int64x2_t x) +static MA_INLINE int64x1_t ma_dr_flac__vhaddq_s64(int64x2_t x) { return vadd_s64(vget_high_s64(x), vget_low_s64(x)); } -static DRFLAC_INLINE int32x4_t drflac__vrevq_s32(int32x4_t x) +static MA_INLINE int32x4_t ma_dr_flac__vrevq_s32(int32x4_t x) { return vrev64q_s32(vcombine_s32(vget_high_s32(x), vget_low_s32(x))); } -static DRFLAC_INLINE int32x4_t drflac__vnotq_s32(int32x4_t x) +static MA_INLINE int32x4_t ma_dr_flac__vnotq_s32(int32x4_t x) { return veorq_s32(x, vdupq_n_s32(0xFFFFFFFF)); } -static DRFLAC_INLINE uint32x4_t drflac__vnotq_u32(uint32x4_t x) +static MA_INLINE uint32x4_t ma_dr_flac__vnotq_u32(uint32x4_t x) { return veorq_u32(x, vdupq_n_u32(0xFFFFFFFF)); } -static drflac_bool32 drflac__decode_samples_with_residual__rice__neon_32(drflac_bs* bs, drflac_uint32 count, drflac_uint8 riceParam, drflac_uint32 order, drflac_int32 shift, const drflac_int32* coefficients, drflac_int32* pSamplesOut) +static ma_bool32 ma_dr_flac__decode_samples_with_residual__rice__neon_32(ma_dr_flac_bs* bs, ma_uint32 count, ma_uint8 riceParam, ma_uint32 order, ma_int32 shift, const ma_int32* coefficients, ma_int32* pSamplesOut) { int i; - drflac_uint32 riceParamMask; - drflac_int32* pDecodedSamples = pSamplesOut; - drflac_int32* pDecodedSamplesEnd = pSamplesOut + (count & ~3); - drflac_uint32 zeroCountParts[4]; - drflac_uint32 riceParamParts[4]; + ma_uint32 riceParamMask; + ma_int32* pDecodedSamples = pSamplesOut; + ma_int32* pDecodedSamplesEnd = pSamplesOut + (count & ~3); + ma_uint32 zeroCountParts[4]; + ma_uint32 riceParamParts[4]; int32x4_t coefficients128_0; int32x4_t coefficients128_4; int32x4_t coefficients128_8; @@ -81260,16 +84390,16 @@ static drflac_bool32 drflac__decode_samples_with_residual__rice__neon_32(drflac_ int32x4_t riceParam128; int32x2_t shift64; uint32x4_t one128; - const drflac_uint32 t[2] = {0x00000000, 0xFFFFFFFF}; - riceParamMask = ~((~0UL) << riceParam); + const ma_uint32 t[2] = {0x00000000, 0xFFFFFFFF}; + riceParamMask = (ma_uint32)~((~0UL) << riceParam); riceParamMask128 = vdupq_n_u32(riceParamMask); riceParam128 = vdupq_n_s32(riceParam); shift64 = vdup_n_s32(-shift); one128 = vdupq_n_u32(1); { int runningOrder = order; - drflac_int32 tempC[4] = {0, 0, 0, 0}; - drflac_int32 tempS[4] = {0, 0, 0, 0}; + ma_int32 tempC[4] = {0, 0, 0, 0}; + ma_int32 tempS[4] = {0, 0, 0, 0}; if (runningOrder >= 4) { coefficients128_0 = vld1q_s32(coefficients + 0); samples128_0 = vld1q_s32(pSamplesOut - 4); @@ -81312,58 +84442,58 @@ static drflac_bool32 drflac__decode_samples_with_residual__rice__neon_32(drflac_ samples128_8 = vld1q_s32(tempS); runningOrder = 0; } - coefficients128_0 = drflac__vrevq_s32(coefficients128_0); - coefficients128_4 = drflac__vrevq_s32(coefficients128_4); - coefficients128_8 = drflac__vrevq_s32(coefficients128_8); + coefficients128_0 = ma_dr_flac__vrevq_s32(coefficients128_0); + coefficients128_4 = ma_dr_flac__vrevq_s32(coefficients128_4); + coefficients128_8 = ma_dr_flac__vrevq_s32(coefficients128_8); } while (pDecodedSamples < pDecodedSamplesEnd) { int32x4_t prediction128; int32x2_t prediction64; uint32x4_t zeroCountPart128; uint32x4_t riceParamPart128; - if (!drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts[0], &riceParamParts[0]) || - !drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts[1], &riceParamParts[1]) || - !drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts[2], &riceParamParts[2]) || - !drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts[3], &riceParamParts[3])) { - return DRFLAC_FALSE; + if (!ma_dr_flac__read_rice_parts_x1(bs, riceParam, &zeroCountParts[0], &riceParamParts[0]) || + !ma_dr_flac__read_rice_parts_x1(bs, riceParam, &zeroCountParts[1], &riceParamParts[1]) || + !ma_dr_flac__read_rice_parts_x1(bs, riceParam, &zeroCountParts[2], &riceParamParts[2]) || + !ma_dr_flac__read_rice_parts_x1(bs, riceParam, &zeroCountParts[3], &riceParamParts[3])) { + return MA_FALSE; } zeroCountPart128 = vld1q_u32(zeroCountParts); riceParamPart128 = vld1q_u32(riceParamParts); riceParamPart128 = vandq_u32(riceParamPart128, riceParamMask128); riceParamPart128 = vorrq_u32(riceParamPart128, vshlq_u32(zeroCountPart128, riceParam128)); - riceParamPart128 = veorq_u32(vshrq_n_u32(riceParamPart128, 1), vaddq_u32(drflac__vnotq_u32(vandq_u32(riceParamPart128, one128)), one128)); + riceParamPart128 = veorq_u32(vshrq_n_u32(riceParamPart128, 1), vaddq_u32(ma_dr_flac__vnotq_u32(vandq_u32(riceParamPart128, one128)), one128)); if (order <= 4) { for (i = 0; i < 4; i += 1) { prediction128 = vmulq_s32(coefficients128_0, samples128_0); - prediction64 = drflac__vhaddq_s32(prediction128); + prediction64 = ma_dr_flac__vhaddq_s32(prediction128); prediction64 = vshl_s32(prediction64, shift64); prediction64 = vadd_s32(prediction64, vget_low_s32(vreinterpretq_s32_u32(riceParamPart128))); - samples128_0 = drflac__valignrq_s32_1(vcombine_s32(prediction64, vdup_n_s32(0)), samples128_0); - riceParamPart128 = drflac__valignrq_u32_1(vdupq_n_u32(0), riceParamPart128); + samples128_0 = ma_dr_flac__valignrq_s32_1(vcombine_s32(prediction64, vdup_n_s32(0)), samples128_0); + riceParamPart128 = ma_dr_flac__valignrq_u32_1(vdupq_n_u32(0), riceParamPart128); } } else if (order <= 8) { for (i = 0; i < 4; i += 1) { prediction128 = vmulq_s32(coefficients128_4, samples128_4); prediction128 = vmlaq_s32(prediction128, coefficients128_0, samples128_0); - prediction64 = drflac__vhaddq_s32(prediction128); + prediction64 = ma_dr_flac__vhaddq_s32(prediction128); prediction64 = vshl_s32(prediction64, shift64); prediction64 = vadd_s32(prediction64, vget_low_s32(vreinterpretq_s32_u32(riceParamPart128))); - samples128_4 = drflac__valignrq_s32_1(samples128_0, samples128_4); - samples128_0 = drflac__valignrq_s32_1(vcombine_s32(prediction64, vdup_n_s32(0)), samples128_0); - riceParamPart128 = drflac__valignrq_u32_1(vdupq_n_u32(0), riceParamPart128); + samples128_4 = ma_dr_flac__valignrq_s32_1(samples128_0, samples128_4); + samples128_0 = ma_dr_flac__valignrq_s32_1(vcombine_s32(prediction64, vdup_n_s32(0)), samples128_0); + riceParamPart128 = ma_dr_flac__valignrq_u32_1(vdupq_n_u32(0), riceParamPart128); } } else { for (i = 0; i < 4; i += 1) { prediction128 = vmulq_s32(coefficients128_8, samples128_8); prediction128 = vmlaq_s32(prediction128, coefficients128_4, samples128_4); prediction128 = vmlaq_s32(prediction128, coefficients128_0, samples128_0); - prediction64 = drflac__vhaddq_s32(prediction128); + prediction64 = ma_dr_flac__vhaddq_s32(prediction128); prediction64 = vshl_s32(prediction64, shift64); prediction64 = vadd_s32(prediction64, vget_low_s32(vreinterpretq_s32_u32(riceParamPart128))); - samples128_8 = drflac__valignrq_s32_1(samples128_4, samples128_8); - samples128_4 = drflac__valignrq_s32_1(samples128_0, samples128_4); - samples128_0 = drflac__valignrq_s32_1(vcombine_s32(prediction64, vdup_n_s32(0)), samples128_0); - riceParamPart128 = drflac__valignrq_u32_1(vdupq_n_u32(0), riceParamPart128); + samples128_8 = ma_dr_flac__valignrq_s32_1(samples128_4, samples128_8); + samples128_4 = ma_dr_flac__valignrq_s32_1(samples128_0, samples128_4); + samples128_0 = ma_dr_flac__valignrq_s32_1(vcombine_s32(prediction64, vdup_n_s32(0)), samples128_0); + riceParamPart128 = ma_dr_flac__valignrq_u32_1(vdupq_n_u32(0), riceParamPart128); } } vst1q_s32(pDecodedSamples, samples128_0); @@ -81371,26 +84501,26 @@ static drflac_bool32 drflac__decode_samples_with_residual__rice__neon_32(drflac_ } i = (count & ~3); while (i < (int)count) { - if (!drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts[0], &riceParamParts[0])) { - return DRFLAC_FALSE; + if (!ma_dr_flac__read_rice_parts_x1(bs, riceParam, &zeroCountParts[0], &riceParamParts[0])) { + return MA_FALSE; } riceParamParts[0] &= riceParamMask; riceParamParts[0] |= (zeroCountParts[0] << riceParam); riceParamParts[0] = (riceParamParts[0] >> 1) ^ t[riceParamParts[0] & 0x01]; - pDecodedSamples[0] = riceParamParts[0] + drflac__calculate_prediction_32(order, shift, coefficients, pDecodedSamples); + pDecodedSamples[0] = riceParamParts[0] + ma_dr_flac__calculate_prediction_32(order, shift, coefficients, pDecodedSamples); i += 1; pDecodedSamples += 1; } - return DRFLAC_TRUE; + return MA_TRUE; } -static drflac_bool32 drflac__decode_samples_with_residual__rice__neon_64(drflac_bs* bs, drflac_uint32 count, drflac_uint8 riceParam, drflac_uint32 order, drflac_int32 shift, const drflac_int32* coefficients, drflac_int32* pSamplesOut) +static ma_bool32 ma_dr_flac__decode_samples_with_residual__rice__neon_64(ma_dr_flac_bs* bs, ma_uint32 count, ma_uint8 riceParam, ma_uint32 order, ma_int32 shift, const ma_int32* coefficients, ma_int32* pSamplesOut) { int i; - drflac_uint32 riceParamMask; - drflac_int32* pDecodedSamples = pSamplesOut; - drflac_int32* pDecodedSamplesEnd = pSamplesOut + (count & ~3); - drflac_uint32 zeroCountParts[4]; - drflac_uint32 riceParamParts[4]; + ma_uint32 riceParamMask; + ma_int32* pDecodedSamples = pSamplesOut; + ma_int32* pDecodedSamplesEnd = pSamplesOut + (count & ~3); + ma_uint32 zeroCountParts[4]; + ma_uint32 riceParamParts[4]; int32x4_t coefficients128_0; int32x4_t coefficients128_4; int32x4_t coefficients128_8; @@ -81401,16 +84531,19 @@ static drflac_bool32 drflac__decode_samples_with_residual__rice__neon_64(drflac_ int32x4_t riceParam128; int64x1_t shift64; uint32x4_t one128; - const drflac_uint32 t[2] = {0x00000000, 0xFFFFFFFF}; - riceParamMask = ~((~0UL) << riceParam); + int64x2_t prediction128 = { 0 }; + uint32x4_t zeroCountPart128; + uint32x4_t riceParamPart128; + const ma_uint32 t[2] = {0x00000000, 0xFFFFFFFF}; + riceParamMask = (ma_uint32)~((~0UL) << riceParam); riceParamMask128 = vdupq_n_u32(riceParamMask); riceParam128 = vdupq_n_s32(riceParam); shift64 = vdup_n_s64(-shift); one128 = vdupq_n_u32(1); { int runningOrder = order; - drflac_int32 tempC[4] = {0, 0, 0, 0}; - drflac_int32 tempS[4] = {0, 0, 0, 0}; + ma_int32 tempC[4] = {0, 0, 0, 0}; + ma_int32 tempS[4] = {0, 0, 0, 0}; if (runningOrder >= 4) { coefficients128_0 = vld1q_s32(coefficients + 0); samples128_0 = vld1q_s32(pSamplesOut - 4); @@ -81453,25 +84586,22 @@ static drflac_bool32 drflac__decode_samples_with_residual__rice__neon_64(drflac_ samples128_8 = vld1q_s32(tempS); runningOrder = 0; } - coefficients128_0 = drflac__vrevq_s32(coefficients128_0); - coefficients128_4 = drflac__vrevq_s32(coefficients128_4); - coefficients128_8 = drflac__vrevq_s32(coefficients128_8); + coefficients128_0 = ma_dr_flac__vrevq_s32(coefficients128_0); + coefficients128_4 = ma_dr_flac__vrevq_s32(coefficients128_4); + coefficients128_8 = ma_dr_flac__vrevq_s32(coefficients128_8); } while (pDecodedSamples < pDecodedSamplesEnd) { - int64x2_t prediction128; - uint32x4_t zeroCountPart128; - uint32x4_t riceParamPart128; - if (!drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts[0], &riceParamParts[0]) || - !drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts[1], &riceParamParts[1]) || - !drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts[2], &riceParamParts[2]) || - !drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts[3], &riceParamParts[3])) { - return DRFLAC_FALSE; + if (!ma_dr_flac__read_rice_parts_x1(bs, riceParam, &zeroCountParts[0], &riceParamParts[0]) || + !ma_dr_flac__read_rice_parts_x1(bs, riceParam, &zeroCountParts[1], &riceParamParts[1]) || + !ma_dr_flac__read_rice_parts_x1(bs, riceParam, &zeroCountParts[2], &riceParamParts[2]) || + !ma_dr_flac__read_rice_parts_x1(bs, riceParam, &zeroCountParts[3], &riceParamParts[3])) { + return MA_FALSE; } zeroCountPart128 = vld1q_u32(zeroCountParts); riceParamPart128 = vld1q_u32(riceParamParts); riceParamPart128 = vandq_u32(riceParamPart128, riceParamMask128); riceParamPart128 = vorrq_u32(riceParamPart128, vshlq_u32(zeroCountPart128, riceParam128)); - riceParamPart128 = veorq_u32(vshrq_n_u32(riceParamPart128, 1), vaddq_u32(drflac__vnotq_u32(vandq_u32(riceParamPart128, one128)), one128)); + riceParamPart128 = veorq_u32(vshrq_n_u32(riceParamPart128, 1), vaddq_u32(ma_dr_flac__vnotq_u32(vandq_u32(riceParamPart128, one128)), one128)); for (i = 0; i < 4; i += 1) { int64x1_t prediction64; prediction128 = veorq_s64(prediction128, prediction128); @@ -81490,156 +84620,156 @@ static drflac_bool32 drflac__decode_samples_with_residual__rice__neon_64(drflac_ case 2: case 1: prediction128 = vaddq_s64(prediction128, vmull_s32(vget_high_s32(coefficients128_0), vget_high_s32(samples128_0))); } - prediction64 = drflac__vhaddq_s64(prediction128); + prediction64 = ma_dr_flac__vhaddq_s64(prediction128); prediction64 = vshl_s64(prediction64, shift64); prediction64 = vadd_s64(prediction64, vdup_n_s64(vgetq_lane_u32(riceParamPart128, 0))); - samples128_8 = drflac__valignrq_s32_1(samples128_4, samples128_8); - samples128_4 = drflac__valignrq_s32_1(samples128_0, samples128_4); - samples128_0 = drflac__valignrq_s32_1(vcombine_s32(vreinterpret_s32_s64(prediction64), vdup_n_s32(0)), samples128_0); - riceParamPart128 = drflac__valignrq_u32_1(vdupq_n_u32(0), riceParamPart128); + samples128_8 = ma_dr_flac__valignrq_s32_1(samples128_4, samples128_8); + samples128_4 = ma_dr_flac__valignrq_s32_1(samples128_0, samples128_4); + samples128_0 = ma_dr_flac__valignrq_s32_1(vcombine_s32(vreinterpret_s32_s64(prediction64), vdup_n_s32(0)), samples128_0); + riceParamPart128 = ma_dr_flac__valignrq_u32_1(vdupq_n_u32(0), riceParamPart128); } vst1q_s32(pDecodedSamples, samples128_0); pDecodedSamples += 4; } i = (count & ~3); while (i < (int)count) { - if (!drflac__read_rice_parts_x1(bs, riceParam, &zeroCountParts[0], &riceParamParts[0])) { - return DRFLAC_FALSE; + if (!ma_dr_flac__read_rice_parts_x1(bs, riceParam, &zeroCountParts[0], &riceParamParts[0])) { + return MA_FALSE; } riceParamParts[0] &= riceParamMask; riceParamParts[0] |= (zeroCountParts[0] << riceParam); riceParamParts[0] = (riceParamParts[0] >> 1) ^ t[riceParamParts[0] & 0x01]; - pDecodedSamples[0] = riceParamParts[0] + drflac__calculate_prediction_64(order, shift, coefficients, pDecodedSamples); + pDecodedSamples[0] = riceParamParts[0] + ma_dr_flac__calculate_prediction_64(order, shift, coefficients, pDecodedSamples); i += 1; pDecodedSamples += 1; } - return DRFLAC_TRUE; + return MA_TRUE; } -static drflac_bool32 drflac__decode_samples_with_residual__rice__neon(drflac_bs* bs, drflac_uint32 bitsPerSample, drflac_uint32 count, drflac_uint8 riceParam, drflac_uint32 lpcOrder, drflac_int32 lpcShift, drflac_uint32 lpcPrecision, const drflac_int32* coefficients, drflac_int32* pSamplesOut) +static ma_bool32 ma_dr_flac__decode_samples_with_residual__rice__neon(ma_dr_flac_bs* bs, ma_uint32 bitsPerSample, ma_uint32 count, ma_uint8 riceParam, ma_uint32 lpcOrder, ma_int32 lpcShift, ma_uint32 lpcPrecision, const ma_int32* coefficients, ma_int32* pSamplesOut) { - DRFLAC_ASSERT(bs != NULL); - DRFLAC_ASSERT(pSamplesOut != NULL); + MA_DR_FLAC_ASSERT(bs != NULL); + MA_DR_FLAC_ASSERT(pSamplesOut != NULL); if (lpcOrder > 0 && lpcOrder <= 12) { - if (drflac__use_64_bit_prediction(bitsPerSample, lpcOrder, lpcPrecision)) { - return drflac__decode_samples_with_residual__rice__neon_64(bs, count, riceParam, lpcOrder, lpcShift, coefficients, pSamplesOut); + if (ma_dr_flac__use_64_bit_prediction(bitsPerSample, lpcOrder, lpcPrecision)) { + return ma_dr_flac__decode_samples_with_residual__rice__neon_64(bs, count, riceParam, lpcOrder, lpcShift, coefficients, pSamplesOut); } else { - return drflac__decode_samples_with_residual__rice__neon_32(bs, count, riceParam, lpcOrder, lpcShift, coefficients, pSamplesOut); + return ma_dr_flac__decode_samples_with_residual__rice__neon_32(bs, count, riceParam, lpcOrder, lpcShift, coefficients, pSamplesOut); } } else { - return drflac__decode_samples_with_residual__rice__scalar(bs, bitsPerSample, count, riceParam, lpcOrder, lpcShift, lpcPrecision, coefficients, pSamplesOut); + return ma_dr_flac__decode_samples_with_residual__rice__scalar(bs, bitsPerSample, count, riceParam, lpcOrder, lpcShift, lpcPrecision, coefficients, pSamplesOut); } } #endif -static drflac_bool32 drflac__decode_samples_with_residual__rice(drflac_bs* bs, drflac_uint32 bitsPerSample, drflac_uint32 count, drflac_uint8 riceParam, drflac_uint32 lpcOrder, drflac_int32 lpcShift, drflac_uint32 lpcPrecision, const drflac_int32* coefficients, drflac_int32* pSamplesOut) +static ma_bool32 ma_dr_flac__decode_samples_with_residual__rice(ma_dr_flac_bs* bs, ma_uint32 bitsPerSample, ma_uint32 count, ma_uint8 riceParam, ma_uint32 lpcOrder, ma_int32 lpcShift, ma_uint32 lpcPrecision, const ma_int32* coefficients, ma_int32* pSamplesOut) { -#if defined(DRFLAC_SUPPORT_SSE41) - if (drflac__gIsSSE41Supported) { - return drflac__decode_samples_with_residual__rice__sse41(bs, bitsPerSample, count, riceParam, lpcOrder, lpcShift, lpcPrecision, coefficients, pSamplesOut); +#if defined(MA_DR_FLAC_SUPPORT_SSE41) + if (ma_dr_flac__gIsSSE41Supported) { + return ma_dr_flac__decode_samples_with_residual__rice__sse41(bs, bitsPerSample, count, riceParam, lpcOrder, lpcShift, lpcPrecision, coefficients, pSamplesOut); } else -#elif defined(DRFLAC_SUPPORT_NEON) - if (drflac__gIsNEONSupported) { - return drflac__decode_samples_with_residual__rice__neon(bs, bitsPerSample, count, riceParam, lpcOrder, lpcShift, lpcPrecision, coefficients, pSamplesOut); +#elif defined(MA_DR_FLAC_SUPPORT_NEON) + if (ma_dr_flac__gIsNEONSupported) { + return ma_dr_flac__decode_samples_with_residual__rice__neon(bs, bitsPerSample, count, riceParam, lpcOrder, lpcShift, lpcPrecision, coefficients, pSamplesOut); } else #endif { #if 0 - return drflac__decode_samples_with_residual__rice__reference(bs, bitsPerSample, count, riceParam, lpcOrder, lpcShift, lpcPrecision, coefficients, pSamplesOut); + return ma_dr_flac__decode_samples_with_residual__rice__reference(bs, bitsPerSample, count, riceParam, lpcOrder, lpcShift, lpcPrecision, coefficients, pSamplesOut); #else - return drflac__decode_samples_with_residual__rice__scalar(bs, bitsPerSample, count, riceParam, lpcOrder, lpcShift, lpcPrecision, coefficients, pSamplesOut); + return ma_dr_flac__decode_samples_with_residual__rice__scalar(bs, bitsPerSample, count, riceParam, lpcOrder, lpcShift, lpcPrecision, coefficients, pSamplesOut); #endif } } -static drflac_bool32 drflac__read_and_seek_residual__rice(drflac_bs* bs, drflac_uint32 count, drflac_uint8 riceParam) +static ma_bool32 ma_dr_flac__read_and_seek_residual__rice(ma_dr_flac_bs* bs, ma_uint32 count, ma_uint8 riceParam) { - drflac_uint32 i; - DRFLAC_ASSERT(bs != NULL); + ma_uint32 i; + MA_DR_FLAC_ASSERT(bs != NULL); for (i = 0; i < count; ++i) { - if (!drflac__seek_rice_parts(bs, riceParam)) { - return DRFLAC_FALSE; + if (!ma_dr_flac__seek_rice_parts(bs, riceParam)) { + return MA_FALSE; } } - return DRFLAC_TRUE; + return MA_TRUE; } #if defined(__clang__) __attribute__((no_sanitize("signed-integer-overflow"))) #endif -static drflac_bool32 drflac__decode_samples_with_residual__unencoded(drflac_bs* bs, drflac_uint32 bitsPerSample, drflac_uint32 count, drflac_uint8 unencodedBitsPerSample, drflac_uint32 lpcOrder, drflac_int32 lpcShift, drflac_uint32 lpcPrecision, const drflac_int32* coefficients, drflac_int32* pSamplesOut) +static ma_bool32 ma_dr_flac__decode_samples_with_residual__unencoded(ma_dr_flac_bs* bs, ma_uint32 bitsPerSample, ma_uint32 count, ma_uint8 unencodedBitsPerSample, ma_uint32 lpcOrder, ma_int32 lpcShift, ma_uint32 lpcPrecision, const ma_int32* coefficients, ma_int32* pSamplesOut) { - drflac_uint32 i; - DRFLAC_ASSERT(bs != NULL); - DRFLAC_ASSERT(unencodedBitsPerSample <= 31); - DRFLAC_ASSERT(pSamplesOut != NULL); + ma_uint32 i; + MA_DR_FLAC_ASSERT(bs != NULL); + MA_DR_FLAC_ASSERT(unencodedBitsPerSample <= 31); + MA_DR_FLAC_ASSERT(pSamplesOut != NULL); for (i = 0; i < count; ++i) { if (unencodedBitsPerSample > 0) { - if (!drflac__read_int32(bs, unencodedBitsPerSample, pSamplesOut + i)) { - return DRFLAC_FALSE; + if (!ma_dr_flac__read_int32(bs, unencodedBitsPerSample, pSamplesOut + i)) { + return MA_FALSE; } } else { pSamplesOut[i] = 0; } - if (drflac__use_64_bit_prediction(bitsPerSample, lpcOrder, lpcPrecision)) { - pSamplesOut[i] += drflac__calculate_prediction_64(lpcOrder, lpcShift, coefficients, pSamplesOut + i); + if (ma_dr_flac__use_64_bit_prediction(bitsPerSample, lpcOrder, lpcPrecision)) { + pSamplesOut[i] += ma_dr_flac__calculate_prediction_64(lpcOrder, lpcShift, coefficients, pSamplesOut + i); } else { - pSamplesOut[i] += drflac__calculate_prediction_32(lpcOrder, lpcShift, coefficients, pSamplesOut + i); + pSamplesOut[i] += ma_dr_flac__calculate_prediction_32(lpcOrder, lpcShift, coefficients, pSamplesOut + i); } } - return DRFLAC_TRUE; + return MA_TRUE; } -static drflac_bool32 drflac__decode_samples_with_residual(drflac_bs* bs, drflac_uint32 bitsPerSample, drflac_uint32 blockSize, drflac_uint32 lpcOrder, drflac_int32 lpcShift, drflac_uint32 lpcPrecision, const drflac_int32* coefficients, drflac_int32* pDecodedSamples) +static ma_bool32 ma_dr_flac__decode_samples_with_residual(ma_dr_flac_bs* bs, ma_uint32 bitsPerSample, ma_uint32 blockSize, ma_uint32 lpcOrder, ma_int32 lpcShift, ma_uint32 lpcPrecision, const ma_int32* coefficients, ma_int32* pDecodedSamples) { - drflac_uint8 residualMethod; - drflac_uint8 partitionOrder; - drflac_uint32 samplesInPartition; - drflac_uint32 partitionsRemaining; - DRFLAC_ASSERT(bs != NULL); - DRFLAC_ASSERT(blockSize != 0); - DRFLAC_ASSERT(pDecodedSamples != NULL); - if (!drflac__read_uint8(bs, 2, &residualMethod)) { - return DRFLAC_FALSE; + ma_uint8 residualMethod; + ma_uint8 partitionOrder; + ma_uint32 samplesInPartition; + ma_uint32 partitionsRemaining; + MA_DR_FLAC_ASSERT(bs != NULL); + MA_DR_FLAC_ASSERT(blockSize != 0); + MA_DR_FLAC_ASSERT(pDecodedSamples != NULL); + if (!ma_dr_flac__read_uint8(bs, 2, &residualMethod)) { + return MA_FALSE; } - if (residualMethod != DRFLAC_RESIDUAL_CODING_METHOD_PARTITIONED_RICE && residualMethod != DRFLAC_RESIDUAL_CODING_METHOD_PARTITIONED_RICE2) { - return DRFLAC_FALSE; + if (residualMethod != MA_DR_FLAC_RESIDUAL_CODING_METHOD_PARTITIONED_RICE && residualMethod != MA_DR_FLAC_RESIDUAL_CODING_METHOD_PARTITIONED_RICE2) { + return MA_FALSE; } pDecodedSamples += lpcOrder; - if (!drflac__read_uint8(bs, 4, &partitionOrder)) { - return DRFLAC_FALSE; + if (!ma_dr_flac__read_uint8(bs, 4, &partitionOrder)) { + return MA_FALSE; } if (partitionOrder > 8) { - return DRFLAC_FALSE; + return MA_FALSE; } if ((blockSize / (1 << partitionOrder)) < lpcOrder) { - return DRFLAC_FALSE; + return MA_FALSE; } samplesInPartition = (blockSize / (1 << partitionOrder)) - lpcOrder; partitionsRemaining = (1 << partitionOrder); for (;;) { - drflac_uint8 riceParam = 0; - if (residualMethod == DRFLAC_RESIDUAL_CODING_METHOD_PARTITIONED_RICE) { - if (!drflac__read_uint8(bs, 4, &riceParam)) { - return DRFLAC_FALSE; + ma_uint8 riceParam = 0; + if (residualMethod == MA_DR_FLAC_RESIDUAL_CODING_METHOD_PARTITIONED_RICE) { + if (!ma_dr_flac__read_uint8(bs, 4, &riceParam)) { + return MA_FALSE; } if (riceParam == 15) { riceParam = 0xFF; } - } else if (residualMethod == DRFLAC_RESIDUAL_CODING_METHOD_PARTITIONED_RICE2) { - if (!drflac__read_uint8(bs, 5, &riceParam)) { - return DRFLAC_FALSE; + } else if (residualMethod == MA_DR_FLAC_RESIDUAL_CODING_METHOD_PARTITIONED_RICE2) { + if (!ma_dr_flac__read_uint8(bs, 5, &riceParam)) { + return MA_FALSE; } if (riceParam == 31) { riceParam = 0xFF; } } if (riceParam != 0xFF) { - if (!drflac__decode_samples_with_residual__rice(bs, bitsPerSample, samplesInPartition, riceParam, lpcOrder, lpcShift, lpcPrecision, coefficients, pDecodedSamples)) { - return DRFLAC_FALSE; + if (!ma_dr_flac__decode_samples_with_residual__rice(bs, bitsPerSample, samplesInPartition, riceParam, lpcOrder, lpcShift, lpcPrecision, coefficients, pDecodedSamples)) { + return MA_FALSE; } } else { - drflac_uint8 unencodedBitsPerSample = 0; - if (!drflac__read_uint8(bs, 5, &unencodedBitsPerSample)) { - return DRFLAC_FALSE; + ma_uint8 unencodedBitsPerSample = 0; + if (!ma_dr_flac__read_uint8(bs, 5, &unencodedBitsPerSample)) { + return MA_FALSE; } - if (!drflac__decode_samples_with_residual__unencoded(bs, bitsPerSample, samplesInPartition, unencodedBitsPerSample, lpcOrder, lpcShift, lpcPrecision, coefficients, pDecodedSamples)) { - return DRFLAC_FALSE; + if (!ma_dr_flac__decode_samples_with_residual__unencoded(bs, bitsPerSample, samplesInPartition, unencodedBitsPerSample, lpcOrder, lpcShift, lpcPrecision, coefficients, pDecodedSamples)) { + return MA_FALSE; } } pDecodedSamples += samplesInPartition; @@ -81651,62 +84781,62 @@ static drflac_bool32 drflac__decode_samples_with_residual(drflac_bs* bs, drflac_ samplesInPartition = blockSize / (1 << partitionOrder); } } - return DRFLAC_TRUE; + return MA_TRUE; } -static drflac_bool32 drflac__read_and_seek_residual(drflac_bs* bs, drflac_uint32 blockSize, drflac_uint32 order) +static ma_bool32 ma_dr_flac__read_and_seek_residual(ma_dr_flac_bs* bs, ma_uint32 blockSize, ma_uint32 order) { - drflac_uint8 residualMethod; - drflac_uint8 partitionOrder; - drflac_uint32 samplesInPartition; - drflac_uint32 partitionsRemaining; - DRFLAC_ASSERT(bs != NULL); - DRFLAC_ASSERT(blockSize != 0); - if (!drflac__read_uint8(bs, 2, &residualMethod)) { - return DRFLAC_FALSE; + ma_uint8 residualMethod; + ma_uint8 partitionOrder; + ma_uint32 samplesInPartition; + ma_uint32 partitionsRemaining; + MA_DR_FLAC_ASSERT(bs != NULL); + MA_DR_FLAC_ASSERT(blockSize != 0); + if (!ma_dr_flac__read_uint8(bs, 2, &residualMethod)) { + return MA_FALSE; } - if (residualMethod != DRFLAC_RESIDUAL_CODING_METHOD_PARTITIONED_RICE && residualMethod != DRFLAC_RESIDUAL_CODING_METHOD_PARTITIONED_RICE2) { - return DRFLAC_FALSE; + if (residualMethod != MA_DR_FLAC_RESIDUAL_CODING_METHOD_PARTITIONED_RICE && residualMethod != MA_DR_FLAC_RESIDUAL_CODING_METHOD_PARTITIONED_RICE2) { + return MA_FALSE; } - if (!drflac__read_uint8(bs, 4, &partitionOrder)) { - return DRFLAC_FALSE; + if (!ma_dr_flac__read_uint8(bs, 4, &partitionOrder)) { + return MA_FALSE; } if (partitionOrder > 8) { - return DRFLAC_FALSE; + return MA_FALSE; } if ((blockSize / (1 << partitionOrder)) <= order) { - return DRFLAC_FALSE; + return MA_FALSE; } samplesInPartition = (blockSize / (1 << partitionOrder)) - order; partitionsRemaining = (1 << partitionOrder); for (;;) { - drflac_uint8 riceParam = 0; - if (residualMethod == DRFLAC_RESIDUAL_CODING_METHOD_PARTITIONED_RICE) { - if (!drflac__read_uint8(bs, 4, &riceParam)) { - return DRFLAC_FALSE; + ma_uint8 riceParam = 0; + if (residualMethod == MA_DR_FLAC_RESIDUAL_CODING_METHOD_PARTITIONED_RICE) { + if (!ma_dr_flac__read_uint8(bs, 4, &riceParam)) { + return MA_FALSE; } if (riceParam == 15) { riceParam = 0xFF; } - } else if (residualMethod == DRFLAC_RESIDUAL_CODING_METHOD_PARTITIONED_RICE2) { - if (!drflac__read_uint8(bs, 5, &riceParam)) { - return DRFLAC_FALSE; + } else if (residualMethod == MA_DR_FLAC_RESIDUAL_CODING_METHOD_PARTITIONED_RICE2) { + if (!ma_dr_flac__read_uint8(bs, 5, &riceParam)) { + return MA_FALSE; } if (riceParam == 31) { riceParam = 0xFF; } } if (riceParam != 0xFF) { - if (!drflac__read_and_seek_residual__rice(bs, samplesInPartition, riceParam)) { - return DRFLAC_FALSE; + if (!ma_dr_flac__read_and_seek_residual__rice(bs, samplesInPartition, riceParam)) { + return MA_FALSE; } } else { - drflac_uint8 unencodedBitsPerSample = 0; - if (!drflac__read_uint8(bs, 5, &unencodedBitsPerSample)) { - return DRFLAC_FALSE; + ma_uint8 unencodedBitsPerSample = 0; + if (!ma_dr_flac__read_uint8(bs, 5, &unencodedBitsPerSample)) { + return MA_FALSE; } - if (!drflac__seek_bits(bs, unencodedBitsPerSample * samplesInPartition)) { - return DRFLAC_FALSE; + if (!ma_dr_flac__seek_bits(bs, unencodedBitsPerSample * samplesInPartition)) { + return MA_FALSE; } } if (partitionsRemaining == 1) { @@ -81715,36 +84845,36 @@ static drflac_bool32 drflac__read_and_seek_residual(drflac_bs* bs, drflac_uint32 partitionsRemaining -= 1; samplesInPartition = blockSize / (1 << partitionOrder); } - return DRFLAC_TRUE; + return MA_TRUE; } -static drflac_bool32 drflac__decode_samples__constant(drflac_bs* bs, drflac_uint32 blockSize, drflac_uint32 subframeBitsPerSample, drflac_int32* pDecodedSamples) +static ma_bool32 ma_dr_flac__decode_samples__constant(ma_dr_flac_bs* bs, ma_uint32 blockSize, ma_uint32 subframeBitsPerSample, ma_int32* pDecodedSamples) { - drflac_uint32 i; - drflac_int32 sample; - if (!drflac__read_int32(bs, subframeBitsPerSample, &sample)) { - return DRFLAC_FALSE; + ma_uint32 i; + ma_int32 sample; + if (!ma_dr_flac__read_int32(bs, subframeBitsPerSample, &sample)) { + return MA_FALSE; } for (i = 0; i < blockSize; ++i) { pDecodedSamples[i] = sample; } - return DRFLAC_TRUE; + return MA_TRUE; } -static drflac_bool32 drflac__decode_samples__verbatim(drflac_bs* bs, drflac_uint32 blockSize, drflac_uint32 subframeBitsPerSample, drflac_int32* pDecodedSamples) +static ma_bool32 ma_dr_flac__decode_samples__verbatim(ma_dr_flac_bs* bs, ma_uint32 blockSize, ma_uint32 subframeBitsPerSample, ma_int32* pDecodedSamples) { - drflac_uint32 i; + ma_uint32 i; for (i = 0; i < blockSize; ++i) { - drflac_int32 sample; - if (!drflac__read_int32(bs, subframeBitsPerSample, &sample)) { - return DRFLAC_FALSE; + ma_int32 sample; + if (!ma_dr_flac__read_int32(bs, subframeBitsPerSample, &sample)) { + return MA_FALSE; } pDecodedSamples[i] = sample; } - return DRFLAC_TRUE; + return MA_TRUE; } -static drflac_bool32 drflac__decode_samples__fixed(drflac_bs* bs, drflac_uint32 blockSize, drflac_uint32 subframeBitsPerSample, drflac_uint8 lpcOrder, drflac_int32* pDecodedSamples) +static ma_bool32 ma_dr_flac__decode_samples__fixed(ma_dr_flac_bs* bs, ma_uint32 blockSize, ma_uint32 subframeBitsPerSample, ma_uint8 lpcOrder, ma_int32* pDecodedSamples) { - drflac_uint32 i; - static drflac_int32 lpcCoefficientsTable[5][4] = { + ma_uint32 i; + static ma_int32 lpcCoefficientsTable[5][4] = { {0, 0, 0, 0}, {1, 0, 0, 0}, {2, -1, 0, 0}, @@ -81752,122 +84882,122 @@ static drflac_bool32 drflac__decode_samples__fixed(drflac_bs* bs, drflac_uint32 {4, -6, 4, -1} }; for (i = 0; i < lpcOrder; ++i) { - drflac_int32 sample; - if (!drflac__read_int32(bs, subframeBitsPerSample, &sample)) { - return DRFLAC_FALSE; + ma_int32 sample; + if (!ma_dr_flac__read_int32(bs, subframeBitsPerSample, &sample)) { + return MA_FALSE; } pDecodedSamples[i] = sample; } - if (!drflac__decode_samples_with_residual(bs, subframeBitsPerSample, blockSize, lpcOrder, 0, 4, lpcCoefficientsTable[lpcOrder], pDecodedSamples)) { - return DRFLAC_FALSE; + if (!ma_dr_flac__decode_samples_with_residual(bs, subframeBitsPerSample, blockSize, lpcOrder, 0, 4, lpcCoefficientsTable[lpcOrder], pDecodedSamples)) { + return MA_FALSE; } - return DRFLAC_TRUE; + return MA_TRUE; } -static drflac_bool32 drflac__decode_samples__lpc(drflac_bs* bs, drflac_uint32 blockSize, drflac_uint32 bitsPerSample, drflac_uint8 lpcOrder, drflac_int32* pDecodedSamples) +static ma_bool32 ma_dr_flac__decode_samples__lpc(ma_dr_flac_bs* bs, ma_uint32 blockSize, ma_uint32 bitsPerSample, ma_uint8 lpcOrder, ma_int32* pDecodedSamples) { - drflac_uint8 i; - drflac_uint8 lpcPrecision; - drflac_int8 lpcShift; - drflac_int32 coefficients[32]; + ma_uint8 i; + ma_uint8 lpcPrecision; + ma_int8 lpcShift; + ma_int32 coefficients[32]; for (i = 0; i < lpcOrder; ++i) { - drflac_int32 sample; - if (!drflac__read_int32(bs, bitsPerSample, &sample)) { - return DRFLAC_FALSE; + ma_int32 sample; + if (!ma_dr_flac__read_int32(bs, bitsPerSample, &sample)) { + return MA_FALSE; } pDecodedSamples[i] = sample; } - if (!drflac__read_uint8(bs, 4, &lpcPrecision)) { - return DRFLAC_FALSE; + if (!ma_dr_flac__read_uint8(bs, 4, &lpcPrecision)) { + return MA_FALSE; } if (lpcPrecision == 15) { - return DRFLAC_FALSE; + return MA_FALSE; } lpcPrecision += 1; - if (!drflac__read_int8(bs, 5, &lpcShift)) { - return DRFLAC_FALSE; + if (!ma_dr_flac__read_int8(bs, 5, &lpcShift)) { + return MA_FALSE; } if (lpcShift < 0) { - return DRFLAC_FALSE; + return MA_FALSE; } - DRFLAC_ZERO_MEMORY(coefficients, sizeof(coefficients)); + MA_DR_FLAC_ZERO_MEMORY(coefficients, sizeof(coefficients)); for (i = 0; i < lpcOrder; ++i) { - if (!drflac__read_int32(bs, lpcPrecision, coefficients + i)) { - return DRFLAC_FALSE; + if (!ma_dr_flac__read_int32(bs, lpcPrecision, coefficients + i)) { + return MA_FALSE; } } - if (!drflac__decode_samples_with_residual(bs, bitsPerSample, blockSize, lpcOrder, lpcShift, lpcPrecision, coefficients, pDecodedSamples)) { - return DRFLAC_FALSE; + if (!ma_dr_flac__decode_samples_with_residual(bs, bitsPerSample, blockSize, lpcOrder, lpcShift, lpcPrecision, coefficients, pDecodedSamples)) { + return MA_FALSE; } - return DRFLAC_TRUE; + return MA_TRUE; } -static drflac_bool32 drflac__read_next_flac_frame_header(drflac_bs* bs, drflac_uint8 streaminfoBitsPerSample, drflac_frame_header* header) +static ma_bool32 ma_dr_flac__read_next_flac_frame_header(ma_dr_flac_bs* bs, ma_uint8 streaminfoBitsPerSample, ma_dr_flac_frame_header* header) { - const drflac_uint32 sampleRateTable[12] = {0, 88200, 176400, 192000, 8000, 16000, 22050, 24000, 32000, 44100, 48000, 96000}; - const drflac_uint8 bitsPerSampleTable[8] = {0, 8, 12, (drflac_uint8)-1, 16, 20, 24, (drflac_uint8)-1}; - DRFLAC_ASSERT(bs != NULL); - DRFLAC_ASSERT(header != NULL); + const ma_uint32 sampleRateTable[12] = {0, 88200, 176400, 192000, 8000, 16000, 22050, 24000, 32000, 44100, 48000, 96000}; + const ma_uint8 bitsPerSampleTable[8] = {0, 8, 12, (ma_uint8)-1, 16, 20, 24, (ma_uint8)-1}; + MA_DR_FLAC_ASSERT(bs != NULL); + MA_DR_FLAC_ASSERT(header != NULL); for (;;) { - drflac_uint8 crc8 = 0xCE; - drflac_uint8 reserved = 0; - drflac_uint8 blockingStrategy = 0; - drflac_uint8 blockSize = 0; - drflac_uint8 sampleRate = 0; - drflac_uint8 channelAssignment = 0; - drflac_uint8 bitsPerSample = 0; - drflac_bool32 isVariableBlockSize; - if (!drflac__find_and_seek_to_next_sync_code(bs)) { - return DRFLAC_FALSE; + ma_uint8 crc8 = 0xCE; + ma_uint8 reserved = 0; + ma_uint8 blockingStrategy = 0; + ma_uint8 blockSize = 0; + ma_uint8 sampleRate = 0; + ma_uint8 channelAssignment = 0; + ma_uint8 bitsPerSample = 0; + ma_bool32 isVariableBlockSize; + if (!ma_dr_flac__find_and_seek_to_next_sync_code(bs)) { + return MA_FALSE; } - if (!drflac__read_uint8(bs, 1, &reserved)) { - return DRFLAC_FALSE; + if (!ma_dr_flac__read_uint8(bs, 1, &reserved)) { + return MA_FALSE; } if (reserved == 1) { continue; } - crc8 = drflac_crc8(crc8, reserved, 1); - if (!drflac__read_uint8(bs, 1, &blockingStrategy)) { - return DRFLAC_FALSE; + crc8 = ma_dr_flac_crc8(crc8, reserved, 1); + if (!ma_dr_flac__read_uint8(bs, 1, &blockingStrategy)) { + return MA_FALSE; } - crc8 = drflac_crc8(crc8, blockingStrategy, 1); - if (!drflac__read_uint8(bs, 4, &blockSize)) { - return DRFLAC_FALSE; + crc8 = ma_dr_flac_crc8(crc8, blockingStrategy, 1); + if (!ma_dr_flac__read_uint8(bs, 4, &blockSize)) { + return MA_FALSE; } if (blockSize == 0) { continue; } - crc8 = drflac_crc8(crc8, blockSize, 4); - if (!drflac__read_uint8(bs, 4, &sampleRate)) { - return DRFLAC_FALSE; + crc8 = ma_dr_flac_crc8(crc8, blockSize, 4); + if (!ma_dr_flac__read_uint8(bs, 4, &sampleRate)) { + return MA_FALSE; } - crc8 = drflac_crc8(crc8, sampleRate, 4); - if (!drflac__read_uint8(bs, 4, &channelAssignment)) { - return DRFLAC_FALSE; + crc8 = ma_dr_flac_crc8(crc8, sampleRate, 4); + if (!ma_dr_flac__read_uint8(bs, 4, &channelAssignment)) { + return MA_FALSE; } if (channelAssignment > 10) { continue; } - crc8 = drflac_crc8(crc8, channelAssignment, 4); - if (!drflac__read_uint8(bs, 3, &bitsPerSample)) { - return DRFLAC_FALSE; + crc8 = ma_dr_flac_crc8(crc8, channelAssignment, 4); + if (!ma_dr_flac__read_uint8(bs, 3, &bitsPerSample)) { + return MA_FALSE; } if (bitsPerSample == 3 || bitsPerSample == 7) { continue; } - crc8 = drflac_crc8(crc8, bitsPerSample, 3); - if (!drflac__read_uint8(bs, 1, &reserved)) { - return DRFLAC_FALSE; + crc8 = ma_dr_flac_crc8(crc8, bitsPerSample, 3); + if (!ma_dr_flac__read_uint8(bs, 1, &reserved)) { + return MA_FALSE; } if (reserved == 1) { continue; } - crc8 = drflac_crc8(crc8, reserved, 1); + crc8 = ma_dr_flac_crc8(crc8, reserved, 1); isVariableBlockSize = blockingStrategy == 1; if (isVariableBlockSize) { - drflac_uint64 pcmFrameNumber; - drflac_result result = drflac__read_utf8_coded_number(bs, &pcmFrameNumber, &crc8); - if (result != DRFLAC_SUCCESS) { - if (result == DRFLAC_AT_END) { - return DRFLAC_FALSE; + ma_uint64 pcmFrameNumber; + ma_result result = ma_dr_flac__read_utf8_coded_number(bs, &pcmFrameNumber, &crc8); + if (result != MA_SUCCESS) { + if (result == MA_AT_END) { + return MA_FALSE; } else { continue; } @@ -81875,61 +85005,61 @@ static drflac_bool32 drflac__read_next_flac_frame_header(drflac_bs* bs, drflac_u header->flacFrameNumber = 0; header->pcmFrameNumber = pcmFrameNumber; } else { - drflac_uint64 flacFrameNumber = 0; - drflac_result result = drflac__read_utf8_coded_number(bs, &flacFrameNumber, &crc8); - if (result != DRFLAC_SUCCESS) { - if (result == DRFLAC_AT_END) { - return DRFLAC_FALSE; + ma_uint64 flacFrameNumber = 0; + ma_result result = ma_dr_flac__read_utf8_coded_number(bs, &flacFrameNumber, &crc8); + if (result != MA_SUCCESS) { + if (result == MA_AT_END) { + return MA_FALSE; } else { continue; } } - header->flacFrameNumber = (drflac_uint32)flacFrameNumber; + header->flacFrameNumber = (ma_uint32)flacFrameNumber; header->pcmFrameNumber = 0; } - DRFLAC_ASSERT(blockSize > 0); + MA_DR_FLAC_ASSERT(blockSize > 0); if (blockSize == 1) { header->blockSizeInPCMFrames = 192; } else if (blockSize <= 5) { - DRFLAC_ASSERT(blockSize >= 2); + MA_DR_FLAC_ASSERT(blockSize >= 2); header->blockSizeInPCMFrames = 576 * (1 << (blockSize - 2)); } else if (blockSize == 6) { - if (!drflac__read_uint16(bs, 8, &header->blockSizeInPCMFrames)) { - return DRFLAC_FALSE; + if (!ma_dr_flac__read_uint16(bs, 8, &header->blockSizeInPCMFrames)) { + return MA_FALSE; } - crc8 = drflac_crc8(crc8, header->blockSizeInPCMFrames, 8); + crc8 = ma_dr_flac_crc8(crc8, header->blockSizeInPCMFrames, 8); header->blockSizeInPCMFrames += 1; } else if (blockSize == 7) { - if (!drflac__read_uint16(bs, 16, &header->blockSizeInPCMFrames)) { - return DRFLAC_FALSE; + if (!ma_dr_flac__read_uint16(bs, 16, &header->blockSizeInPCMFrames)) { + return MA_FALSE; } - crc8 = drflac_crc8(crc8, header->blockSizeInPCMFrames, 16); + crc8 = ma_dr_flac_crc8(crc8, header->blockSizeInPCMFrames, 16); if (header->blockSizeInPCMFrames == 0xFFFF) { - return DRFLAC_FALSE; + return MA_FALSE; } header->blockSizeInPCMFrames += 1; } else { - DRFLAC_ASSERT(blockSize >= 8); + MA_DR_FLAC_ASSERT(blockSize >= 8); header->blockSizeInPCMFrames = 256 * (1 << (blockSize - 8)); } if (sampleRate <= 11) { header->sampleRate = sampleRateTable[sampleRate]; } else if (sampleRate == 12) { - if (!drflac__read_uint32(bs, 8, &header->sampleRate)) { - return DRFLAC_FALSE; + if (!ma_dr_flac__read_uint32(bs, 8, &header->sampleRate)) { + return MA_FALSE; } - crc8 = drflac_crc8(crc8, header->sampleRate, 8); + crc8 = ma_dr_flac_crc8(crc8, header->sampleRate, 8); header->sampleRate *= 1000; } else if (sampleRate == 13) { - if (!drflac__read_uint32(bs, 16, &header->sampleRate)) { - return DRFLAC_FALSE; + if (!ma_dr_flac__read_uint32(bs, 16, &header->sampleRate)) { + return MA_FALSE; } - crc8 = drflac_crc8(crc8, header->sampleRate, 16); + crc8 = ma_dr_flac_crc8(crc8, header->sampleRate, 16); } else if (sampleRate == 14) { - if (!drflac__read_uint32(bs, 16, &header->sampleRate)) { - return DRFLAC_FALSE; + if (!ma_dr_flac__read_uint32(bs, 16, &header->sampleRate)) { + return MA_FALSE; } - crc8 = drflac_crc8(crc8, header->sampleRate, 16); + crc8 = ma_dr_flac_crc8(crc8, header->sampleRate, 16); header->sampleRate *= 10; } else { continue; @@ -81940,286 +85070,286 @@ static drflac_bool32 drflac__read_next_flac_frame_header(drflac_bs* bs, drflac_u header->bitsPerSample = streaminfoBitsPerSample; } if (header->bitsPerSample != streaminfoBitsPerSample) { - return DRFLAC_FALSE; + return MA_FALSE; } - if (!drflac__read_uint8(bs, 8, &header->crc8)) { - return DRFLAC_FALSE; + if (!ma_dr_flac__read_uint8(bs, 8, &header->crc8)) { + return MA_FALSE; } -#ifndef DR_FLAC_NO_CRC +#ifndef MA_DR_FLAC_NO_CRC if (header->crc8 != crc8) { continue; } #endif - return DRFLAC_TRUE; + return MA_TRUE; } } -static drflac_bool32 drflac__read_subframe_header(drflac_bs* bs, drflac_subframe* pSubframe) +static ma_bool32 ma_dr_flac__read_subframe_header(ma_dr_flac_bs* bs, ma_dr_flac_subframe* pSubframe) { - drflac_uint8 header; + ma_uint8 header; int type; - if (!drflac__read_uint8(bs, 8, &header)) { - return DRFLAC_FALSE; + if (!ma_dr_flac__read_uint8(bs, 8, &header)) { + return MA_FALSE; } if ((header & 0x80) != 0) { - return DRFLAC_FALSE; + return MA_FALSE; } type = (header & 0x7E) >> 1; if (type == 0) { - pSubframe->subframeType = DRFLAC_SUBFRAME_CONSTANT; + pSubframe->subframeType = MA_DR_FLAC_SUBFRAME_CONSTANT; } else if (type == 1) { - pSubframe->subframeType = DRFLAC_SUBFRAME_VERBATIM; + pSubframe->subframeType = MA_DR_FLAC_SUBFRAME_VERBATIM; } else { if ((type & 0x20) != 0) { - pSubframe->subframeType = DRFLAC_SUBFRAME_LPC; - pSubframe->lpcOrder = (drflac_uint8)(type & 0x1F) + 1; + pSubframe->subframeType = MA_DR_FLAC_SUBFRAME_LPC; + pSubframe->lpcOrder = (ma_uint8)(type & 0x1F) + 1; } else if ((type & 0x08) != 0) { - pSubframe->subframeType = DRFLAC_SUBFRAME_FIXED; - pSubframe->lpcOrder = (drflac_uint8)(type & 0x07); + pSubframe->subframeType = MA_DR_FLAC_SUBFRAME_FIXED; + pSubframe->lpcOrder = (ma_uint8)(type & 0x07); if (pSubframe->lpcOrder > 4) { - pSubframe->subframeType = DRFLAC_SUBFRAME_RESERVED; + pSubframe->subframeType = MA_DR_FLAC_SUBFRAME_RESERVED; pSubframe->lpcOrder = 0; } } else { - pSubframe->subframeType = DRFLAC_SUBFRAME_RESERVED; + pSubframe->subframeType = MA_DR_FLAC_SUBFRAME_RESERVED; } } - if (pSubframe->subframeType == DRFLAC_SUBFRAME_RESERVED) { - return DRFLAC_FALSE; + if (pSubframe->subframeType == MA_DR_FLAC_SUBFRAME_RESERVED) { + return MA_FALSE; } pSubframe->wastedBitsPerSample = 0; if ((header & 0x01) == 1) { unsigned int wastedBitsPerSample; - if (!drflac__seek_past_next_set_bit(bs, &wastedBitsPerSample)) { - return DRFLAC_FALSE; + if (!ma_dr_flac__seek_past_next_set_bit(bs, &wastedBitsPerSample)) { + return MA_FALSE; } - pSubframe->wastedBitsPerSample = (drflac_uint8)wastedBitsPerSample + 1; + pSubframe->wastedBitsPerSample = (ma_uint8)wastedBitsPerSample + 1; } - return DRFLAC_TRUE; + return MA_TRUE; } -static drflac_bool32 drflac__decode_subframe(drflac_bs* bs, drflac_frame* frame, int subframeIndex, drflac_int32* pDecodedSamplesOut) +static ma_bool32 ma_dr_flac__decode_subframe(ma_dr_flac_bs* bs, ma_dr_flac_frame* frame, int subframeIndex, ma_int32* pDecodedSamplesOut) { - drflac_subframe* pSubframe; - drflac_uint32 subframeBitsPerSample; - DRFLAC_ASSERT(bs != NULL); - DRFLAC_ASSERT(frame != NULL); + ma_dr_flac_subframe* pSubframe; + ma_uint32 subframeBitsPerSample; + MA_DR_FLAC_ASSERT(bs != NULL); + MA_DR_FLAC_ASSERT(frame != NULL); pSubframe = frame->subframes + subframeIndex; - if (!drflac__read_subframe_header(bs, pSubframe)) { - return DRFLAC_FALSE; + if (!ma_dr_flac__read_subframe_header(bs, pSubframe)) { + return MA_FALSE; } subframeBitsPerSample = frame->header.bitsPerSample; - if ((frame->header.channelAssignment == DRFLAC_CHANNEL_ASSIGNMENT_LEFT_SIDE || frame->header.channelAssignment == DRFLAC_CHANNEL_ASSIGNMENT_MID_SIDE) && subframeIndex == 1) { + if ((frame->header.channelAssignment == MA_DR_FLAC_CHANNEL_ASSIGNMENT_LEFT_SIDE || frame->header.channelAssignment == MA_DR_FLAC_CHANNEL_ASSIGNMENT_MID_SIDE) && subframeIndex == 1) { subframeBitsPerSample += 1; - } else if (frame->header.channelAssignment == DRFLAC_CHANNEL_ASSIGNMENT_RIGHT_SIDE && subframeIndex == 0) { + } else if (frame->header.channelAssignment == MA_DR_FLAC_CHANNEL_ASSIGNMENT_RIGHT_SIDE && subframeIndex == 0) { subframeBitsPerSample += 1; } if (subframeBitsPerSample > 32) { - return DRFLAC_FALSE; + return MA_FALSE; } if (pSubframe->wastedBitsPerSample >= subframeBitsPerSample) { - return DRFLAC_FALSE; + return MA_FALSE; } subframeBitsPerSample -= pSubframe->wastedBitsPerSample; pSubframe->pSamplesS32 = pDecodedSamplesOut; switch (pSubframe->subframeType) { - case DRFLAC_SUBFRAME_CONSTANT: + case MA_DR_FLAC_SUBFRAME_CONSTANT: { - drflac__decode_samples__constant(bs, frame->header.blockSizeInPCMFrames, subframeBitsPerSample, pSubframe->pSamplesS32); + ma_dr_flac__decode_samples__constant(bs, frame->header.blockSizeInPCMFrames, subframeBitsPerSample, pSubframe->pSamplesS32); } break; - case DRFLAC_SUBFRAME_VERBATIM: + case MA_DR_FLAC_SUBFRAME_VERBATIM: { - drflac__decode_samples__verbatim(bs, frame->header.blockSizeInPCMFrames, subframeBitsPerSample, pSubframe->pSamplesS32); + ma_dr_flac__decode_samples__verbatim(bs, frame->header.blockSizeInPCMFrames, subframeBitsPerSample, pSubframe->pSamplesS32); } break; - case DRFLAC_SUBFRAME_FIXED: + case MA_DR_FLAC_SUBFRAME_FIXED: { - drflac__decode_samples__fixed(bs, frame->header.blockSizeInPCMFrames, subframeBitsPerSample, pSubframe->lpcOrder, pSubframe->pSamplesS32); + ma_dr_flac__decode_samples__fixed(bs, frame->header.blockSizeInPCMFrames, subframeBitsPerSample, pSubframe->lpcOrder, pSubframe->pSamplesS32); } break; - case DRFLAC_SUBFRAME_LPC: + case MA_DR_FLAC_SUBFRAME_LPC: { - drflac__decode_samples__lpc(bs, frame->header.blockSizeInPCMFrames, subframeBitsPerSample, pSubframe->lpcOrder, pSubframe->pSamplesS32); + ma_dr_flac__decode_samples__lpc(bs, frame->header.blockSizeInPCMFrames, subframeBitsPerSample, pSubframe->lpcOrder, pSubframe->pSamplesS32); } break; - default: return DRFLAC_FALSE; + default: return MA_FALSE; } - return DRFLAC_TRUE; + return MA_TRUE; } -static drflac_bool32 drflac__seek_subframe(drflac_bs* bs, drflac_frame* frame, int subframeIndex) +static ma_bool32 ma_dr_flac__seek_subframe(ma_dr_flac_bs* bs, ma_dr_flac_frame* frame, int subframeIndex) { - drflac_subframe* pSubframe; - drflac_uint32 subframeBitsPerSample; - DRFLAC_ASSERT(bs != NULL); - DRFLAC_ASSERT(frame != NULL); + ma_dr_flac_subframe* pSubframe; + ma_uint32 subframeBitsPerSample; + MA_DR_FLAC_ASSERT(bs != NULL); + MA_DR_FLAC_ASSERT(frame != NULL); pSubframe = frame->subframes + subframeIndex; - if (!drflac__read_subframe_header(bs, pSubframe)) { - return DRFLAC_FALSE; + if (!ma_dr_flac__read_subframe_header(bs, pSubframe)) { + return MA_FALSE; } subframeBitsPerSample = frame->header.bitsPerSample; - if ((frame->header.channelAssignment == DRFLAC_CHANNEL_ASSIGNMENT_LEFT_SIDE || frame->header.channelAssignment == DRFLAC_CHANNEL_ASSIGNMENT_MID_SIDE) && subframeIndex == 1) { + if ((frame->header.channelAssignment == MA_DR_FLAC_CHANNEL_ASSIGNMENT_LEFT_SIDE || frame->header.channelAssignment == MA_DR_FLAC_CHANNEL_ASSIGNMENT_MID_SIDE) && subframeIndex == 1) { subframeBitsPerSample += 1; - } else if (frame->header.channelAssignment == DRFLAC_CHANNEL_ASSIGNMENT_RIGHT_SIDE && subframeIndex == 0) { + } else if (frame->header.channelAssignment == MA_DR_FLAC_CHANNEL_ASSIGNMENT_RIGHT_SIDE && subframeIndex == 0) { subframeBitsPerSample += 1; } if (pSubframe->wastedBitsPerSample >= subframeBitsPerSample) { - return DRFLAC_FALSE; + return MA_FALSE; } subframeBitsPerSample -= pSubframe->wastedBitsPerSample; pSubframe->pSamplesS32 = NULL; switch (pSubframe->subframeType) { - case DRFLAC_SUBFRAME_CONSTANT: + case MA_DR_FLAC_SUBFRAME_CONSTANT: { - if (!drflac__seek_bits(bs, subframeBitsPerSample)) { - return DRFLAC_FALSE; + if (!ma_dr_flac__seek_bits(bs, subframeBitsPerSample)) { + return MA_FALSE; } } break; - case DRFLAC_SUBFRAME_VERBATIM: + case MA_DR_FLAC_SUBFRAME_VERBATIM: { unsigned int bitsToSeek = frame->header.blockSizeInPCMFrames * subframeBitsPerSample; - if (!drflac__seek_bits(bs, bitsToSeek)) { - return DRFLAC_FALSE; + if (!ma_dr_flac__seek_bits(bs, bitsToSeek)) { + return MA_FALSE; } } break; - case DRFLAC_SUBFRAME_FIXED: + case MA_DR_FLAC_SUBFRAME_FIXED: { unsigned int bitsToSeek = pSubframe->lpcOrder * subframeBitsPerSample; - if (!drflac__seek_bits(bs, bitsToSeek)) { - return DRFLAC_FALSE; + if (!ma_dr_flac__seek_bits(bs, bitsToSeek)) { + return MA_FALSE; } - if (!drflac__read_and_seek_residual(bs, frame->header.blockSizeInPCMFrames, pSubframe->lpcOrder)) { - return DRFLAC_FALSE; + if (!ma_dr_flac__read_and_seek_residual(bs, frame->header.blockSizeInPCMFrames, pSubframe->lpcOrder)) { + return MA_FALSE; } } break; - case DRFLAC_SUBFRAME_LPC: + case MA_DR_FLAC_SUBFRAME_LPC: { - drflac_uint8 lpcPrecision; + ma_uint8 lpcPrecision; unsigned int bitsToSeek = pSubframe->lpcOrder * subframeBitsPerSample; - if (!drflac__seek_bits(bs, bitsToSeek)) { - return DRFLAC_FALSE; + if (!ma_dr_flac__seek_bits(bs, bitsToSeek)) { + return MA_FALSE; } - if (!drflac__read_uint8(bs, 4, &lpcPrecision)) { - return DRFLAC_FALSE; + if (!ma_dr_flac__read_uint8(bs, 4, &lpcPrecision)) { + return MA_FALSE; } if (lpcPrecision == 15) { - return DRFLAC_FALSE; + return MA_FALSE; } lpcPrecision += 1; bitsToSeek = (pSubframe->lpcOrder * lpcPrecision) + 5; - if (!drflac__seek_bits(bs, bitsToSeek)) { - return DRFLAC_FALSE; + if (!ma_dr_flac__seek_bits(bs, bitsToSeek)) { + return MA_FALSE; } - if (!drflac__read_and_seek_residual(bs, frame->header.blockSizeInPCMFrames, pSubframe->lpcOrder)) { - return DRFLAC_FALSE; + if (!ma_dr_flac__read_and_seek_residual(bs, frame->header.blockSizeInPCMFrames, pSubframe->lpcOrder)) { + return MA_FALSE; } } break; - default: return DRFLAC_FALSE; + default: return MA_FALSE; } - return DRFLAC_TRUE; + return MA_TRUE; } -static DRFLAC_INLINE drflac_uint8 drflac__get_channel_count_from_channel_assignment(drflac_int8 channelAssignment) +static MA_INLINE ma_uint8 ma_dr_flac__get_channel_count_from_channel_assignment(ma_int8 channelAssignment) { - drflac_uint8 lookup[] = {1, 2, 3, 4, 5, 6, 7, 8, 2, 2, 2}; - DRFLAC_ASSERT(channelAssignment <= 10); + ma_uint8 lookup[] = {1, 2, 3, 4, 5, 6, 7, 8, 2, 2, 2}; + MA_DR_FLAC_ASSERT(channelAssignment <= 10); return lookup[channelAssignment]; } -static drflac_result drflac__decode_flac_frame(drflac* pFlac) +static ma_result ma_dr_flac__decode_flac_frame(ma_dr_flac* pFlac) { int channelCount; int i; - drflac_uint8 paddingSizeInBits; - drflac_uint16 desiredCRC16; -#ifndef DR_FLAC_NO_CRC - drflac_uint16 actualCRC16; + ma_uint8 paddingSizeInBits; + ma_uint16 desiredCRC16; +#ifndef MA_DR_FLAC_NO_CRC + ma_uint16 actualCRC16; #endif - DRFLAC_ZERO_MEMORY(pFlac->currentFLACFrame.subframes, sizeof(pFlac->currentFLACFrame.subframes)); + MA_DR_FLAC_ZERO_MEMORY(pFlac->currentFLACFrame.subframes, sizeof(pFlac->currentFLACFrame.subframes)); if (pFlac->currentFLACFrame.header.blockSizeInPCMFrames > pFlac->maxBlockSizeInPCMFrames) { - return DRFLAC_ERROR; + return MA_ERROR; } - channelCount = drflac__get_channel_count_from_channel_assignment(pFlac->currentFLACFrame.header.channelAssignment); + channelCount = ma_dr_flac__get_channel_count_from_channel_assignment(pFlac->currentFLACFrame.header.channelAssignment); if (channelCount != (int)pFlac->channels) { - return DRFLAC_ERROR; + return MA_ERROR; } for (i = 0; i < channelCount; ++i) { - if (!drflac__decode_subframe(&pFlac->bs, &pFlac->currentFLACFrame, i, pFlac->pDecodedSamples + (pFlac->currentFLACFrame.header.blockSizeInPCMFrames * i))) { - return DRFLAC_ERROR; + if (!ma_dr_flac__decode_subframe(&pFlac->bs, &pFlac->currentFLACFrame, i, pFlac->pDecodedSamples + (pFlac->currentFLACFrame.header.blockSizeInPCMFrames * i))) { + return MA_ERROR; } } - paddingSizeInBits = (drflac_uint8)(DRFLAC_CACHE_L1_BITS_REMAINING(&pFlac->bs) & 7); + paddingSizeInBits = (ma_uint8)(MA_DR_FLAC_CACHE_L1_BITS_REMAINING(&pFlac->bs) & 7); if (paddingSizeInBits > 0) { - drflac_uint8 padding = 0; - if (!drflac__read_uint8(&pFlac->bs, paddingSizeInBits, &padding)) { - return DRFLAC_AT_END; + ma_uint8 padding = 0; + if (!ma_dr_flac__read_uint8(&pFlac->bs, paddingSizeInBits, &padding)) { + return MA_AT_END; } } -#ifndef DR_FLAC_NO_CRC - actualCRC16 = drflac__flush_crc16(&pFlac->bs); +#ifndef MA_DR_FLAC_NO_CRC + actualCRC16 = ma_dr_flac__flush_crc16(&pFlac->bs); #endif - if (!drflac__read_uint16(&pFlac->bs, 16, &desiredCRC16)) { - return DRFLAC_AT_END; + if (!ma_dr_flac__read_uint16(&pFlac->bs, 16, &desiredCRC16)) { + return MA_AT_END; } -#ifndef DR_FLAC_NO_CRC +#ifndef MA_DR_FLAC_NO_CRC if (actualCRC16 != desiredCRC16) { - return DRFLAC_CRC_MISMATCH; + return MA_CRC_MISMATCH; } #endif pFlac->currentFLACFrame.pcmFramesRemaining = pFlac->currentFLACFrame.header.blockSizeInPCMFrames; - return DRFLAC_SUCCESS; + return MA_SUCCESS; } -static drflac_result drflac__seek_flac_frame(drflac* pFlac) +static ma_result ma_dr_flac__seek_flac_frame(ma_dr_flac* pFlac) { int channelCount; int i; - drflac_uint16 desiredCRC16; -#ifndef DR_FLAC_NO_CRC - drflac_uint16 actualCRC16; + ma_uint16 desiredCRC16; +#ifndef MA_DR_FLAC_NO_CRC + ma_uint16 actualCRC16; #endif - channelCount = drflac__get_channel_count_from_channel_assignment(pFlac->currentFLACFrame.header.channelAssignment); + channelCount = ma_dr_flac__get_channel_count_from_channel_assignment(pFlac->currentFLACFrame.header.channelAssignment); for (i = 0; i < channelCount; ++i) { - if (!drflac__seek_subframe(&pFlac->bs, &pFlac->currentFLACFrame, i)) { - return DRFLAC_ERROR; + if (!ma_dr_flac__seek_subframe(&pFlac->bs, &pFlac->currentFLACFrame, i)) { + return MA_ERROR; } } - if (!drflac__seek_bits(&pFlac->bs, DRFLAC_CACHE_L1_BITS_REMAINING(&pFlac->bs) & 7)) { - return DRFLAC_ERROR; + if (!ma_dr_flac__seek_bits(&pFlac->bs, MA_DR_FLAC_CACHE_L1_BITS_REMAINING(&pFlac->bs) & 7)) { + return MA_ERROR; } -#ifndef DR_FLAC_NO_CRC - actualCRC16 = drflac__flush_crc16(&pFlac->bs); +#ifndef MA_DR_FLAC_NO_CRC + actualCRC16 = ma_dr_flac__flush_crc16(&pFlac->bs); #endif - if (!drflac__read_uint16(&pFlac->bs, 16, &desiredCRC16)) { - return DRFLAC_AT_END; + if (!ma_dr_flac__read_uint16(&pFlac->bs, 16, &desiredCRC16)) { + return MA_AT_END; } -#ifndef DR_FLAC_NO_CRC +#ifndef MA_DR_FLAC_NO_CRC if (actualCRC16 != desiredCRC16) { - return DRFLAC_CRC_MISMATCH; + return MA_CRC_MISMATCH; } #endif - return DRFLAC_SUCCESS; + return MA_SUCCESS; } -static drflac_bool32 drflac__read_and_decode_next_flac_frame(drflac* pFlac) +static ma_bool32 ma_dr_flac__read_and_decode_next_flac_frame(ma_dr_flac* pFlac) { - DRFLAC_ASSERT(pFlac != NULL); + MA_DR_FLAC_ASSERT(pFlac != NULL); for (;;) { - drflac_result result; - if (!drflac__read_next_flac_frame_header(&pFlac->bs, pFlac->bitsPerSample, &pFlac->currentFLACFrame.header)) { - return DRFLAC_FALSE; + ma_result result; + if (!ma_dr_flac__read_next_flac_frame_header(&pFlac->bs, pFlac->bitsPerSample, &pFlac->currentFLACFrame.header)) { + return MA_FALSE; } - result = drflac__decode_flac_frame(pFlac); - if (result != DRFLAC_SUCCESS) { - if (result == DRFLAC_CRC_MISMATCH) { + result = ma_dr_flac__decode_flac_frame(pFlac); + if (result != MA_SUCCESS) { + if (result == MA_CRC_MISMATCH) { continue; } else { - return DRFLAC_FALSE; + return MA_FALSE; } } - return DRFLAC_TRUE; + return MA_TRUE; } } -static void drflac__get_pcm_frame_range_of_current_flac_frame(drflac* pFlac, drflac_uint64* pFirstPCMFrame, drflac_uint64* pLastPCMFrame) +static void ma_dr_flac__get_pcm_frame_range_of_current_flac_frame(ma_dr_flac* pFlac, ma_uint64* pFirstPCMFrame, ma_uint64* pLastPCMFrame) { - drflac_uint64 firstPCMFrame; - drflac_uint64 lastPCMFrame; - DRFLAC_ASSERT(pFlac != NULL); + ma_uint64 firstPCMFrame; + ma_uint64 lastPCMFrame; + MA_DR_FLAC_ASSERT(pFlac != NULL); firstPCMFrame = pFlac->currentFLACFrame.header.pcmFrameNumber; if (firstPCMFrame == 0) { - firstPCMFrame = ((drflac_uint64)pFlac->currentFLACFrame.header.flacFrameNumber) * pFlac->maxBlockSizeInPCMFrames; + firstPCMFrame = ((ma_uint64)pFlac->currentFLACFrame.header.flacFrameNumber) * pFlac->maxBlockSizeInPCMFrames; } lastPCMFrame = firstPCMFrame + pFlac->currentFLACFrame.header.blockSizeInPCMFrames; if (lastPCMFrame > 0) { @@ -82232,32 +85362,32 @@ static void drflac__get_pcm_frame_range_of_current_flac_frame(drflac* pFlac, drf *pLastPCMFrame = lastPCMFrame; } } -static drflac_bool32 drflac__seek_to_first_frame(drflac* pFlac) +static ma_bool32 ma_dr_flac__seek_to_first_frame(ma_dr_flac* pFlac) { - drflac_bool32 result; - DRFLAC_ASSERT(pFlac != NULL); - result = drflac__seek_to_byte(&pFlac->bs, pFlac->firstFLACFramePosInBytes); - DRFLAC_ZERO_MEMORY(&pFlac->currentFLACFrame, sizeof(pFlac->currentFLACFrame)); + ma_bool32 result; + MA_DR_FLAC_ASSERT(pFlac != NULL); + result = ma_dr_flac__seek_to_byte(&pFlac->bs, pFlac->firstFLACFramePosInBytes); + MA_DR_FLAC_ZERO_MEMORY(&pFlac->currentFLACFrame, sizeof(pFlac->currentFLACFrame)); pFlac->currentPCMFrame = 0; return result; } -static DRFLAC_INLINE drflac_result drflac__seek_to_next_flac_frame(drflac* pFlac) +static MA_INLINE ma_result ma_dr_flac__seek_to_next_flac_frame(ma_dr_flac* pFlac) { - DRFLAC_ASSERT(pFlac != NULL); - return drflac__seek_flac_frame(pFlac); + MA_DR_FLAC_ASSERT(pFlac != NULL); + return ma_dr_flac__seek_flac_frame(pFlac); } -static drflac_uint64 drflac__seek_forward_by_pcm_frames(drflac* pFlac, drflac_uint64 pcmFramesToSeek) +static ma_uint64 ma_dr_flac__seek_forward_by_pcm_frames(ma_dr_flac* pFlac, ma_uint64 pcmFramesToSeek) { - drflac_uint64 pcmFramesRead = 0; + ma_uint64 pcmFramesRead = 0; while (pcmFramesToSeek > 0) { if (pFlac->currentFLACFrame.pcmFramesRemaining == 0) { - if (!drflac__read_and_decode_next_flac_frame(pFlac)) { + if (!ma_dr_flac__read_and_decode_next_flac_frame(pFlac)) { break; } } else { if (pFlac->currentFLACFrame.pcmFramesRemaining > pcmFramesToSeek) { pcmFramesRead += pcmFramesToSeek; - pFlac->currentFLACFrame.pcmFramesRemaining -= (drflac_uint32)pcmFramesToSeek; + pFlac->currentFLACFrame.pcmFramesRemaining -= (ma_uint32)pcmFramesToSeek; pcmFramesToSeek = 0; } else { pcmFramesRead += pFlac->currentFLACFrame.pcmFramesRemaining; @@ -82269,107 +85399,107 @@ static drflac_uint64 drflac__seek_forward_by_pcm_frames(drflac* pFlac, drflac_ui pFlac->currentPCMFrame += pcmFramesRead; return pcmFramesRead; } -static drflac_bool32 drflac__seek_to_pcm_frame__brute_force(drflac* pFlac, drflac_uint64 pcmFrameIndex) +static ma_bool32 ma_dr_flac__seek_to_pcm_frame__brute_force(ma_dr_flac* pFlac, ma_uint64 pcmFrameIndex) { - drflac_bool32 isMidFrame = DRFLAC_FALSE; - drflac_uint64 runningPCMFrameCount; - DRFLAC_ASSERT(pFlac != NULL); + ma_bool32 isMidFrame = MA_FALSE; + ma_uint64 runningPCMFrameCount; + MA_DR_FLAC_ASSERT(pFlac != NULL); if (pcmFrameIndex >= pFlac->currentPCMFrame) { runningPCMFrameCount = pFlac->currentPCMFrame; if (pFlac->currentPCMFrame == 0 && pFlac->currentFLACFrame.pcmFramesRemaining == 0) { - if (!drflac__read_next_flac_frame_header(&pFlac->bs, pFlac->bitsPerSample, &pFlac->currentFLACFrame.header)) { - return DRFLAC_FALSE; + if (!ma_dr_flac__read_next_flac_frame_header(&pFlac->bs, pFlac->bitsPerSample, &pFlac->currentFLACFrame.header)) { + return MA_FALSE; } } else { - isMidFrame = DRFLAC_TRUE; + isMidFrame = MA_TRUE; } } else { runningPCMFrameCount = 0; - if (!drflac__seek_to_first_frame(pFlac)) { - return DRFLAC_FALSE; + if (!ma_dr_flac__seek_to_first_frame(pFlac)) { + return MA_FALSE; } - if (!drflac__read_next_flac_frame_header(&pFlac->bs, pFlac->bitsPerSample, &pFlac->currentFLACFrame.header)) { - return DRFLAC_FALSE; + if (!ma_dr_flac__read_next_flac_frame_header(&pFlac->bs, pFlac->bitsPerSample, &pFlac->currentFLACFrame.header)) { + return MA_FALSE; } } for (;;) { - drflac_uint64 pcmFrameCountInThisFLACFrame; - drflac_uint64 firstPCMFrameInFLACFrame = 0; - drflac_uint64 lastPCMFrameInFLACFrame = 0; - drflac__get_pcm_frame_range_of_current_flac_frame(pFlac, &firstPCMFrameInFLACFrame, &lastPCMFrameInFLACFrame); + ma_uint64 pcmFrameCountInThisFLACFrame; + ma_uint64 firstPCMFrameInFLACFrame = 0; + ma_uint64 lastPCMFrameInFLACFrame = 0; + ma_dr_flac__get_pcm_frame_range_of_current_flac_frame(pFlac, &firstPCMFrameInFLACFrame, &lastPCMFrameInFLACFrame); pcmFrameCountInThisFLACFrame = (lastPCMFrameInFLACFrame - firstPCMFrameInFLACFrame) + 1; if (pcmFrameIndex < (runningPCMFrameCount + pcmFrameCountInThisFLACFrame)) { - drflac_uint64 pcmFramesToDecode = pcmFrameIndex - runningPCMFrameCount; + ma_uint64 pcmFramesToDecode = pcmFrameIndex - runningPCMFrameCount; if (!isMidFrame) { - drflac_result result = drflac__decode_flac_frame(pFlac); - if (result == DRFLAC_SUCCESS) { - return drflac__seek_forward_by_pcm_frames(pFlac, pcmFramesToDecode) == pcmFramesToDecode; + ma_result result = ma_dr_flac__decode_flac_frame(pFlac); + if (result == MA_SUCCESS) { + return ma_dr_flac__seek_forward_by_pcm_frames(pFlac, pcmFramesToDecode) == pcmFramesToDecode; } else { - if (result == DRFLAC_CRC_MISMATCH) { + if (result == MA_CRC_MISMATCH) { goto next_iteration; } else { - return DRFLAC_FALSE; + return MA_FALSE; } } } else { - return drflac__seek_forward_by_pcm_frames(pFlac, pcmFramesToDecode) == pcmFramesToDecode; + return ma_dr_flac__seek_forward_by_pcm_frames(pFlac, pcmFramesToDecode) == pcmFramesToDecode; } } else { if (!isMidFrame) { - drflac_result result = drflac__seek_to_next_flac_frame(pFlac); - if (result == DRFLAC_SUCCESS) { + ma_result result = ma_dr_flac__seek_to_next_flac_frame(pFlac); + if (result == MA_SUCCESS) { runningPCMFrameCount += pcmFrameCountInThisFLACFrame; } else { - if (result == DRFLAC_CRC_MISMATCH) { + if (result == MA_CRC_MISMATCH) { goto next_iteration; } else { - return DRFLAC_FALSE; + return MA_FALSE; } } } else { runningPCMFrameCount += pFlac->currentFLACFrame.pcmFramesRemaining; pFlac->currentFLACFrame.pcmFramesRemaining = 0; - isMidFrame = DRFLAC_FALSE; + isMidFrame = MA_FALSE; } if (pcmFrameIndex == pFlac->totalPCMFrameCount && runningPCMFrameCount == pFlac->totalPCMFrameCount) { - return DRFLAC_TRUE; + return MA_TRUE; } } next_iteration: - if (!drflac__read_next_flac_frame_header(&pFlac->bs, pFlac->bitsPerSample, &pFlac->currentFLACFrame.header)) { - return DRFLAC_FALSE; + if (!ma_dr_flac__read_next_flac_frame_header(&pFlac->bs, pFlac->bitsPerSample, &pFlac->currentFLACFrame.header)) { + return MA_FALSE; } } } -#if !defined(DR_FLAC_NO_CRC) -#define DRFLAC_BINARY_SEARCH_APPROX_COMPRESSION_RATIO 0.6f -static drflac_bool32 drflac__seek_to_approximate_flac_frame_to_byte(drflac* pFlac, drflac_uint64 targetByte, drflac_uint64 rangeLo, drflac_uint64 rangeHi, drflac_uint64* pLastSuccessfulSeekOffset) +#if !defined(MA_DR_FLAC_NO_CRC) +#define MA_DR_FLAC_BINARY_SEARCH_APPROX_COMPRESSION_RATIO 0.6f +static ma_bool32 ma_dr_flac__seek_to_approximate_flac_frame_to_byte(ma_dr_flac* pFlac, ma_uint64 targetByte, ma_uint64 rangeLo, ma_uint64 rangeHi, ma_uint64* pLastSuccessfulSeekOffset) { - DRFLAC_ASSERT(pFlac != NULL); - DRFLAC_ASSERT(pLastSuccessfulSeekOffset != NULL); - DRFLAC_ASSERT(targetByte >= rangeLo); - DRFLAC_ASSERT(targetByte <= rangeHi); + MA_DR_FLAC_ASSERT(pFlac != NULL); + MA_DR_FLAC_ASSERT(pLastSuccessfulSeekOffset != NULL); + MA_DR_FLAC_ASSERT(targetByte >= rangeLo); + MA_DR_FLAC_ASSERT(targetByte <= rangeHi); *pLastSuccessfulSeekOffset = pFlac->firstFLACFramePosInBytes; for (;;) { - drflac_uint64 lastTargetByte = targetByte; - if (!drflac__seek_to_byte(&pFlac->bs, targetByte)) { + ma_uint64 lastTargetByte = targetByte; + if (!ma_dr_flac__seek_to_byte(&pFlac->bs, targetByte)) { if (targetByte == 0) { - drflac__seek_to_first_frame(pFlac); - return DRFLAC_FALSE; + ma_dr_flac__seek_to_first_frame(pFlac); + return MA_FALSE; } targetByte = rangeLo + ((rangeHi - rangeLo)/2); rangeHi = targetByte; } else { - DRFLAC_ZERO_MEMORY(&pFlac->currentFLACFrame, sizeof(pFlac->currentFLACFrame)); + MA_DR_FLAC_ZERO_MEMORY(&pFlac->currentFLACFrame, sizeof(pFlac->currentFLACFrame)); #if 1 - if (!drflac__read_and_decode_next_flac_frame(pFlac)) { + if (!ma_dr_flac__read_and_decode_next_flac_frame(pFlac)) { targetByte = rangeLo + ((rangeHi - rangeLo)/2); rangeHi = targetByte; } else { break; } #else - if (!drflac__read_next_flac_frame_header(&pFlac->bs, pFlac->bitsPerSample, &pFlac->currentFLACFrame.header)) { + if (!ma_dr_flac__read_next_flac_frame_header(&pFlac->bs, pFlac->bitsPerSample, &pFlac->currentFLACFrame.header)) { targetByte = rangeLo + ((rangeHi - rangeLo)/2); rangeHi = targetByte; } else { @@ -82378,48 +85508,48 @@ static drflac_bool32 drflac__seek_to_approximate_flac_frame_to_byte(drflac* pFla #endif } if(targetByte == lastTargetByte) { - return DRFLAC_FALSE; + return MA_FALSE; } } - drflac__get_pcm_frame_range_of_current_flac_frame(pFlac, &pFlac->currentPCMFrame, NULL); - DRFLAC_ASSERT(targetByte <= rangeHi); + ma_dr_flac__get_pcm_frame_range_of_current_flac_frame(pFlac, &pFlac->currentPCMFrame, NULL); + MA_DR_FLAC_ASSERT(targetByte <= rangeHi); *pLastSuccessfulSeekOffset = targetByte; - return DRFLAC_TRUE; + return MA_TRUE; } -static drflac_bool32 drflac__decode_flac_frame_and_seek_forward_by_pcm_frames(drflac* pFlac, drflac_uint64 offset) +static ma_bool32 ma_dr_flac__decode_flac_frame_and_seek_forward_by_pcm_frames(ma_dr_flac* pFlac, ma_uint64 offset) { #if 0 - if (drflac__decode_flac_frame(pFlac) != DRFLAC_SUCCESS) { - if (drflac__read_and_decode_next_flac_frame(pFlac) == DRFLAC_FALSE) { - return DRFLAC_FALSE; + if (ma_dr_flac__decode_flac_frame(pFlac) != MA_SUCCESS) { + if (ma_dr_flac__read_and_decode_next_flac_frame(pFlac) == MA_FALSE) { + return MA_FALSE; } } #endif - return drflac__seek_forward_by_pcm_frames(pFlac, offset) == offset; + return ma_dr_flac__seek_forward_by_pcm_frames(pFlac, offset) == offset; } -static drflac_bool32 drflac__seek_to_pcm_frame__binary_search_internal(drflac* pFlac, drflac_uint64 pcmFrameIndex, drflac_uint64 byteRangeLo, drflac_uint64 byteRangeHi) +static ma_bool32 ma_dr_flac__seek_to_pcm_frame__binary_search_internal(ma_dr_flac* pFlac, ma_uint64 pcmFrameIndex, ma_uint64 byteRangeLo, ma_uint64 byteRangeHi) { - drflac_uint64 targetByte; - drflac_uint64 pcmRangeLo = pFlac->totalPCMFrameCount; - drflac_uint64 pcmRangeHi = 0; - drflac_uint64 lastSuccessfulSeekOffset = (drflac_uint64)-1; - drflac_uint64 closestSeekOffsetBeforeTargetPCMFrame = byteRangeLo; - drflac_uint32 seekForwardThreshold = (pFlac->maxBlockSizeInPCMFrames != 0) ? pFlac->maxBlockSizeInPCMFrames*2 : 4096; - targetByte = byteRangeLo + (drflac_uint64)(((drflac_int64)((pcmFrameIndex - pFlac->currentPCMFrame) * pFlac->channels * pFlac->bitsPerSample)/8.0f) * DRFLAC_BINARY_SEARCH_APPROX_COMPRESSION_RATIO); + ma_uint64 targetByte; + ma_uint64 pcmRangeLo = pFlac->totalPCMFrameCount; + ma_uint64 pcmRangeHi = 0; + ma_uint64 lastSuccessfulSeekOffset = (ma_uint64)-1; + ma_uint64 closestSeekOffsetBeforeTargetPCMFrame = byteRangeLo; + ma_uint32 seekForwardThreshold = (pFlac->maxBlockSizeInPCMFrames != 0) ? pFlac->maxBlockSizeInPCMFrames*2 : 4096; + targetByte = byteRangeLo + (ma_uint64)(((ma_int64)((pcmFrameIndex - pFlac->currentPCMFrame) * pFlac->channels * pFlac->bitsPerSample)/8.0f) * MA_DR_FLAC_BINARY_SEARCH_APPROX_COMPRESSION_RATIO); if (targetByte > byteRangeHi) { targetByte = byteRangeHi; } for (;;) { - if (drflac__seek_to_approximate_flac_frame_to_byte(pFlac, targetByte, byteRangeLo, byteRangeHi, &lastSuccessfulSeekOffset)) { - drflac_uint64 newPCMRangeLo; - drflac_uint64 newPCMRangeHi; - drflac__get_pcm_frame_range_of_current_flac_frame(pFlac, &newPCMRangeLo, &newPCMRangeHi); + if (ma_dr_flac__seek_to_approximate_flac_frame_to_byte(pFlac, targetByte, byteRangeLo, byteRangeHi, &lastSuccessfulSeekOffset)) { + ma_uint64 newPCMRangeLo; + ma_uint64 newPCMRangeHi; + ma_dr_flac__get_pcm_frame_range_of_current_flac_frame(pFlac, &newPCMRangeLo, &newPCMRangeHi); if (pcmRangeLo == newPCMRangeLo) { - if (!drflac__seek_to_approximate_flac_frame_to_byte(pFlac, closestSeekOffsetBeforeTargetPCMFrame, closestSeekOffsetBeforeTargetPCMFrame, byteRangeHi, &lastSuccessfulSeekOffset)) { + if (!ma_dr_flac__seek_to_approximate_flac_frame_to_byte(pFlac, closestSeekOffsetBeforeTargetPCMFrame, closestSeekOffsetBeforeTargetPCMFrame, byteRangeHi, &lastSuccessfulSeekOffset)) { break; } - if (drflac__decode_flac_frame_and_seek_forward_by_pcm_frames(pFlac, pcmFrameIndex - pFlac->currentPCMFrame)) { - return DRFLAC_TRUE; + if (ma_dr_flac__decode_flac_frame_and_seek_forward_by_pcm_frames(pFlac, pcmFrameIndex - pFlac->currentPCMFrame)) { + return MA_TRUE; } else { break; } @@ -82427,13 +85557,13 @@ static drflac_bool32 drflac__seek_to_pcm_frame__binary_search_internal(drflac* p pcmRangeLo = newPCMRangeLo; pcmRangeHi = newPCMRangeHi; if (pcmRangeLo <= pcmFrameIndex && pcmRangeHi >= pcmFrameIndex) { - if (drflac__decode_flac_frame_and_seek_forward_by_pcm_frames(pFlac, pcmFrameIndex - pFlac->currentPCMFrame) ) { - return DRFLAC_TRUE; + if (ma_dr_flac__decode_flac_frame_and_seek_forward_by_pcm_frames(pFlac, pcmFrameIndex - pFlac->currentPCMFrame) ) { + return MA_TRUE; } else { break; } } else { - const float approxCompressionRatio = (drflac_int64)(lastSuccessfulSeekOffset - pFlac->firstFLACFramePosInBytes) / ((drflac_int64)(pcmRangeLo * pFlac->channels * pFlac->bitsPerSample)/8.0f); + const float approxCompressionRatio = (ma_int64)(lastSuccessfulSeekOffset - pFlac->firstFLACFramePosInBytes) / ((ma_int64)(pcmRangeLo * pFlac->channels * pFlac->bitsPerSample)/8.0f); if (pcmRangeLo > pcmFrameIndex) { byteRangeHi = lastSuccessfulSeekOffset; if (byteRangeLo > byteRangeHi) { @@ -82445,8 +85575,8 @@ static drflac_bool32 drflac__seek_to_pcm_frame__binary_search_internal(drflac* p } } else { if ((pcmFrameIndex - pcmRangeLo) < seekForwardThreshold) { - if (drflac__decode_flac_frame_and_seek_forward_by_pcm_frames(pFlac, pcmFrameIndex - pFlac->currentPCMFrame)) { - return DRFLAC_TRUE; + if (ma_dr_flac__decode_flac_frame_and_seek_forward_by_pcm_frames(pFlac, pcmFrameIndex - pFlac->currentPCMFrame)) { + return MA_TRUE; } else { break; } @@ -82455,7 +85585,7 @@ static drflac_bool32 drflac__seek_to_pcm_frame__binary_search_internal(drflac* p if (byteRangeHi < byteRangeLo) { byteRangeHi = byteRangeLo; } - targetByte = lastSuccessfulSeekOffset + (drflac_uint64)(((drflac_int64)((pcmFrameIndex-pcmRangeLo) * pFlac->channels * pFlac->bitsPerSample)/8.0f) * approxCompressionRatio); + targetByte = lastSuccessfulSeekOffset + (ma_uint64)(((ma_int64)((pcmFrameIndex-pcmRangeLo) * pFlac->channels * pFlac->bitsPerSample)/8.0f) * approxCompressionRatio); if (targetByte > byteRangeHi) { targetByte = byteRangeHi; } @@ -82469,37 +85599,37 @@ static drflac_bool32 drflac__seek_to_pcm_frame__binary_search_internal(drflac* p break; } } - drflac__seek_to_first_frame(pFlac); - return DRFLAC_FALSE; + ma_dr_flac__seek_to_first_frame(pFlac); + return MA_FALSE; } -static drflac_bool32 drflac__seek_to_pcm_frame__binary_search(drflac* pFlac, drflac_uint64 pcmFrameIndex) +static ma_bool32 ma_dr_flac__seek_to_pcm_frame__binary_search(ma_dr_flac* pFlac, ma_uint64 pcmFrameIndex) { - drflac_uint64 byteRangeLo; - drflac_uint64 byteRangeHi; - drflac_uint32 seekForwardThreshold = (pFlac->maxBlockSizeInPCMFrames != 0) ? pFlac->maxBlockSizeInPCMFrames*2 : 4096; - if (drflac__seek_to_first_frame(pFlac) == DRFLAC_FALSE) { - return DRFLAC_FALSE; + ma_uint64 byteRangeLo; + ma_uint64 byteRangeHi; + ma_uint32 seekForwardThreshold = (pFlac->maxBlockSizeInPCMFrames != 0) ? pFlac->maxBlockSizeInPCMFrames*2 : 4096; + if (ma_dr_flac__seek_to_first_frame(pFlac) == MA_FALSE) { + return MA_FALSE; } if (pcmFrameIndex < seekForwardThreshold) { - return drflac__seek_forward_by_pcm_frames(pFlac, pcmFrameIndex) == pcmFrameIndex; + return ma_dr_flac__seek_forward_by_pcm_frames(pFlac, pcmFrameIndex) == pcmFrameIndex; } byteRangeLo = pFlac->firstFLACFramePosInBytes; - byteRangeHi = pFlac->firstFLACFramePosInBytes + (drflac_uint64)((drflac_int64)(pFlac->totalPCMFrameCount * pFlac->channels * pFlac->bitsPerSample)/8.0f); - return drflac__seek_to_pcm_frame__binary_search_internal(pFlac, pcmFrameIndex, byteRangeLo, byteRangeHi); + byteRangeHi = pFlac->firstFLACFramePosInBytes + (ma_uint64)((ma_int64)(pFlac->totalPCMFrameCount * pFlac->channels * pFlac->bitsPerSample)/8.0f); + return ma_dr_flac__seek_to_pcm_frame__binary_search_internal(pFlac, pcmFrameIndex, byteRangeLo, byteRangeHi); } #endif -static drflac_bool32 drflac__seek_to_pcm_frame__seek_table(drflac* pFlac, drflac_uint64 pcmFrameIndex) +static ma_bool32 ma_dr_flac__seek_to_pcm_frame__seek_table(ma_dr_flac* pFlac, ma_uint64 pcmFrameIndex) { - drflac_uint32 iClosestSeekpoint = 0; - drflac_bool32 isMidFrame = DRFLAC_FALSE; - drflac_uint64 runningPCMFrameCount; - drflac_uint32 iSeekpoint; - DRFLAC_ASSERT(pFlac != NULL); + ma_uint32 iClosestSeekpoint = 0; + ma_bool32 isMidFrame = MA_FALSE; + ma_uint64 runningPCMFrameCount; + ma_uint32 iSeekpoint; + MA_DR_FLAC_ASSERT(pFlac != NULL); if (pFlac->pSeekpoints == NULL || pFlac->seekpointCount == 0) { - return DRFLAC_FALSE; + return MA_FALSE; } if (pFlac->pSeekpoints[0].firstPCMFrame > pcmFrameIndex) { - return DRFLAC_FALSE; + return MA_FALSE; } for (iSeekpoint = 0; iSeekpoint < pFlac->seekpointCount; ++iSeekpoint) { if (pFlac->pSeekpoints[iSeekpoint].firstPCMFrame >= pcmFrameIndex) { @@ -82508,31 +85638,31 @@ static drflac_bool32 drflac__seek_to_pcm_frame__seek_table(drflac* pFlac, drflac iClosestSeekpoint = iSeekpoint; } if (pFlac->pSeekpoints[iClosestSeekpoint].pcmFrameCount == 0 || pFlac->pSeekpoints[iClosestSeekpoint].pcmFrameCount > pFlac->maxBlockSizeInPCMFrames) { - return DRFLAC_FALSE; + return MA_FALSE; } if (pFlac->pSeekpoints[iClosestSeekpoint].firstPCMFrame > pFlac->totalPCMFrameCount && pFlac->totalPCMFrameCount > 0) { - return DRFLAC_FALSE; + return MA_FALSE; } -#if !defined(DR_FLAC_NO_CRC) +#if !defined(MA_DR_FLAC_NO_CRC) if (pFlac->totalPCMFrameCount > 0) { - drflac_uint64 byteRangeLo; - drflac_uint64 byteRangeHi; - byteRangeHi = pFlac->firstFLACFramePosInBytes + (drflac_uint64)((drflac_int64)(pFlac->totalPCMFrameCount * pFlac->channels * pFlac->bitsPerSample)/8.0f); + ma_uint64 byteRangeLo; + ma_uint64 byteRangeHi; + byteRangeHi = pFlac->firstFLACFramePosInBytes + (ma_uint64)((ma_int64)(pFlac->totalPCMFrameCount * pFlac->channels * pFlac->bitsPerSample)/8.0f); byteRangeLo = pFlac->firstFLACFramePosInBytes + pFlac->pSeekpoints[iClosestSeekpoint].flacFrameOffset; if (iClosestSeekpoint < pFlac->seekpointCount-1) { - drflac_uint32 iNextSeekpoint = iClosestSeekpoint + 1; + ma_uint32 iNextSeekpoint = iClosestSeekpoint + 1; if (pFlac->pSeekpoints[iClosestSeekpoint].flacFrameOffset >= pFlac->pSeekpoints[iNextSeekpoint].flacFrameOffset || pFlac->pSeekpoints[iNextSeekpoint].pcmFrameCount == 0) { - return DRFLAC_FALSE; + return MA_FALSE; } - if (pFlac->pSeekpoints[iNextSeekpoint].firstPCMFrame != (((drflac_uint64)0xFFFFFFFF << 32) | 0xFFFFFFFF)) { + if (pFlac->pSeekpoints[iNextSeekpoint].firstPCMFrame != (((ma_uint64)0xFFFFFFFF << 32) | 0xFFFFFFFF)) { byteRangeHi = pFlac->firstFLACFramePosInBytes + pFlac->pSeekpoints[iNextSeekpoint].flacFrameOffset - 1; } } - if (drflac__seek_to_byte(&pFlac->bs, pFlac->firstFLACFramePosInBytes + pFlac->pSeekpoints[iClosestSeekpoint].flacFrameOffset)) { - if (drflac__read_next_flac_frame_header(&pFlac->bs, pFlac->bitsPerSample, &pFlac->currentFLACFrame.header)) { - drflac__get_pcm_frame_range_of_current_flac_frame(pFlac, &pFlac->currentPCMFrame, NULL); - if (drflac__seek_to_pcm_frame__binary_search_internal(pFlac, pcmFrameIndex, byteRangeLo, byteRangeHi)) { - return DRFLAC_TRUE; + if (ma_dr_flac__seek_to_byte(&pFlac->bs, pFlac->firstFLACFramePosInBytes + pFlac->pSeekpoints[iClosestSeekpoint].flacFrameOffset)) { + if (ma_dr_flac__read_next_flac_frame_header(&pFlac->bs, pFlac->bitsPerSample, &pFlac->currentFLACFrame.header)) { + ma_dr_flac__get_pcm_frame_range_of_current_flac_frame(pFlac, &pFlac->currentPCMFrame, NULL); + if (ma_dr_flac__seek_to_pcm_frame__binary_search_internal(pFlac, pcmFrameIndex, byteRangeLo, byteRangeHi)) { + return MA_TRUE; } } } @@ -82541,173 +85671,173 @@ static drflac_bool32 drflac__seek_to_pcm_frame__seek_table(drflac* pFlac, drflac if (pcmFrameIndex >= pFlac->currentPCMFrame && pFlac->pSeekpoints[iClosestSeekpoint].firstPCMFrame <= pFlac->currentPCMFrame) { runningPCMFrameCount = pFlac->currentPCMFrame; if (pFlac->currentPCMFrame == 0 && pFlac->currentFLACFrame.pcmFramesRemaining == 0) { - if (!drflac__read_next_flac_frame_header(&pFlac->bs, pFlac->bitsPerSample, &pFlac->currentFLACFrame.header)) { - return DRFLAC_FALSE; + if (!ma_dr_flac__read_next_flac_frame_header(&pFlac->bs, pFlac->bitsPerSample, &pFlac->currentFLACFrame.header)) { + return MA_FALSE; } } else { - isMidFrame = DRFLAC_TRUE; + isMidFrame = MA_TRUE; } } else { runningPCMFrameCount = pFlac->pSeekpoints[iClosestSeekpoint].firstPCMFrame; - if (!drflac__seek_to_byte(&pFlac->bs, pFlac->firstFLACFramePosInBytes + pFlac->pSeekpoints[iClosestSeekpoint].flacFrameOffset)) { - return DRFLAC_FALSE; + if (!ma_dr_flac__seek_to_byte(&pFlac->bs, pFlac->firstFLACFramePosInBytes + pFlac->pSeekpoints[iClosestSeekpoint].flacFrameOffset)) { + return MA_FALSE; } - if (!drflac__read_next_flac_frame_header(&pFlac->bs, pFlac->bitsPerSample, &pFlac->currentFLACFrame.header)) { - return DRFLAC_FALSE; + if (!ma_dr_flac__read_next_flac_frame_header(&pFlac->bs, pFlac->bitsPerSample, &pFlac->currentFLACFrame.header)) { + return MA_FALSE; } } for (;;) { - drflac_uint64 pcmFrameCountInThisFLACFrame; - drflac_uint64 firstPCMFrameInFLACFrame = 0; - drflac_uint64 lastPCMFrameInFLACFrame = 0; - drflac__get_pcm_frame_range_of_current_flac_frame(pFlac, &firstPCMFrameInFLACFrame, &lastPCMFrameInFLACFrame); + ma_uint64 pcmFrameCountInThisFLACFrame; + ma_uint64 firstPCMFrameInFLACFrame = 0; + ma_uint64 lastPCMFrameInFLACFrame = 0; + ma_dr_flac__get_pcm_frame_range_of_current_flac_frame(pFlac, &firstPCMFrameInFLACFrame, &lastPCMFrameInFLACFrame); pcmFrameCountInThisFLACFrame = (lastPCMFrameInFLACFrame - firstPCMFrameInFLACFrame) + 1; if (pcmFrameIndex < (runningPCMFrameCount + pcmFrameCountInThisFLACFrame)) { - drflac_uint64 pcmFramesToDecode = pcmFrameIndex - runningPCMFrameCount; + ma_uint64 pcmFramesToDecode = pcmFrameIndex - runningPCMFrameCount; if (!isMidFrame) { - drflac_result result = drflac__decode_flac_frame(pFlac); - if (result == DRFLAC_SUCCESS) { - return drflac__seek_forward_by_pcm_frames(pFlac, pcmFramesToDecode) == pcmFramesToDecode; + ma_result result = ma_dr_flac__decode_flac_frame(pFlac); + if (result == MA_SUCCESS) { + return ma_dr_flac__seek_forward_by_pcm_frames(pFlac, pcmFramesToDecode) == pcmFramesToDecode; } else { - if (result == DRFLAC_CRC_MISMATCH) { + if (result == MA_CRC_MISMATCH) { goto next_iteration; } else { - return DRFLAC_FALSE; + return MA_FALSE; } } } else { - return drflac__seek_forward_by_pcm_frames(pFlac, pcmFramesToDecode) == pcmFramesToDecode; + return ma_dr_flac__seek_forward_by_pcm_frames(pFlac, pcmFramesToDecode) == pcmFramesToDecode; } } else { if (!isMidFrame) { - drflac_result result = drflac__seek_to_next_flac_frame(pFlac); - if (result == DRFLAC_SUCCESS) { + ma_result result = ma_dr_flac__seek_to_next_flac_frame(pFlac); + if (result == MA_SUCCESS) { runningPCMFrameCount += pcmFrameCountInThisFLACFrame; } else { - if (result == DRFLAC_CRC_MISMATCH) { + if (result == MA_CRC_MISMATCH) { goto next_iteration; } else { - return DRFLAC_FALSE; + return MA_FALSE; } } } else { runningPCMFrameCount += pFlac->currentFLACFrame.pcmFramesRemaining; pFlac->currentFLACFrame.pcmFramesRemaining = 0; - isMidFrame = DRFLAC_FALSE; + isMidFrame = MA_FALSE; } if (pcmFrameIndex == pFlac->totalPCMFrameCount && runningPCMFrameCount == pFlac->totalPCMFrameCount) { - return DRFLAC_TRUE; + return MA_TRUE; } } next_iteration: - if (!drflac__read_next_flac_frame_header(&pFlac->bs, pFlac->bitsPerSample, &pFlac->currentFLACFrame.header)) { - return DRFLAC_FALSE; + if (!ma_dr_flac__read_next_flac_frame_header(&pFlac->bs, pFlac->bitsPerSample, &pFlac->currentFLACFrame.header)) { + return MA_FALSE; } } } -#ifndef DR_FLAC_NO_OGG +#ifndef MA_DR_FLAC_NO_OGG typedef struct { - drflac_uint8 capturePattern[4]; - drflac_uint8 structureVersion; - drflac_uint8 headerType; - drflac_uint64 granulePosition; - drflac_uint32 serialNumber; - drflac_uint32 sequenceNumber; - drflac_uint32 checksum; - drflac_uint8 segmentCount; - drflac_uint8 segmentTable[255]; -} drflac_ogg_page_header; + ma_uint8 capturePattern[4]; + ma_uint8 structureVersion; + ma_uint8 headerType; + ma_uint64 granulePosition; + ma_uint32 serialNumber; + ma_uint32 sequenceNumber; + ma_uint32 checksum; + ma_uint8 segmentCount; + ma_uint8 segmentTable[255]; +} ma_dr_flac_ogg_page_header; #endif typedef struct { - drflac_read_proc onRead; - drflac_seek_proc onSeek; - drflac_meta_proc onMeta; - drflac_container container; + ma_dr_flac_read_proc onRead; + ma_dr_flac_seek_proc onSeek; + ma_dr_flac_meta_proc onMeta; + ma_dr_flac_container container; void* pUserData; void* pUserDataMD; - drflac_uint32 sampleRate; - drflac_uint8 channels; - drflac_uint8 bitsPerSample; - drflac_uint64 totalPCMFrameCount; - drflac_uint16 maxBlockSizeInPCMFrames; - drflac_uint64 runningFilePos; - drflac_bool32 hasStreamInfoBlock; - drflac_bool32 hasMetadataBlocks; - drflac_bs bs; - drflac_frame_header firstFrameHeader; -#ifndef DR_FLAC_NO_OGG - drflac_uint32 oggSerial; - drflac_uint64 oggFirstBytePos; - drflac_ogg_page_header oggBosHeader; + ma_uint32 sampleRate; + ma_uint8 channels; + ma_uint8 bitsPerSample; + ma_uint64 totalPCMFrameCount; + ma_uint16 maxBlockSizeInPCMFrames; + ma_uint64 runningFilePos; + ma_bool32 hasStreamInfoBlock; + ma_bool32 hasMetadataBlocks; + ma_dr_flac_bs bs; + ma_dr_flac_frame_header firstFrameHeader; +#ifndef MA_DR_FLAC_NO_OGG + ma_uint32 oggSerial; + ma_uint64 oggFirstBytePos; + ma_dr_flac_ogg_page_header oggBosHeader; #endif -} drflac_init_info; -static DRFLAC_INLINE void drflac__decode_block_header(drflac_uint32 blockHeader, drflac_uint8* isLastBlock, drflac_uint8* blockType, drflac_uint32* blockSize) +} ma_dr_flac_init_info; +static MA_INLINE void ma_dr_flac__decode_block_header(ma_uint32 blockHeader, ma_uint8* isLastBlock, ma_uint8* blockType, ma_uint32* blockSize) { - blockHeader = drflac__be2host_32(blockHeader); - *isLastBlock = (drflac_uint8)((blockHeader & 0x80000000UL) >> 31); - *blockType = (drflac_uint8)((blockHeader & 0x7F000000UL) >> 24); + blockHeader = ma_dr_flac__be2host_32(blockHeader); + *isLastBlock = (ma_uint8)((blockHeader & 0x80000000UL) >> 31); + *blockType = (ma_uint8)((blockHeader & 0x7F000000UL) >> 24); *blockSize = (blockHeader & 0x00FFFFFFUL); } -static DRFLAC_INLINE drflac_bool32 drflac__read_and_decode_block_header(drflac_read_proc onRead, void* pUserData, drflac_uint8* isLastBlock, drflac_uint8* blockType, drflac_uint32* blockSize) +static MA_INLINE ma_bool32 ma_dr_flac__read_and_decode_block_header(ma_dr_flac_read_proc onRead, void* pUserData, ma_uint8* isLastBlock, ma_uint8* blockType, ma_uint32* blockSize) { - drflac_uint32 blockHeader; + ma_uint32 blockHeader; *blockSize = 0; if (onRead(pUserData, &blockHeader, 4) != 4) { - return DRFLAC_FALSE; + return MA_FALSE; } - drflac__decode_block_header(blockHeader, isLastBlock, blockType, blockSize); - return DRFLAC_TRUE; + ma_dr_flac__decode_block_header(blockHeader, isLastBlock, blockType, blockSize); + return MA_TRUE; } -static drflac_bool32 drflac__read_streaminfo(drflac_read_proc onRead, void* pUserData, drflac_streaminfo* pStreamInfo) +static ma_bool32 ma_dr_flac__read_streaminfo(ma_dr_flac_read_proc onRead, void* pUserData, ma_dr_flac_streaminfo* pStreamInfo) { - drflac_uint32 blockSizes; - drflac_uint64 frameSizes = 0; - drflac_uint64 importantProps; - drflac_uint8 md5[16]; + ma_uint32 blockSizes; + ma_uint64 frameSizes = 0; + ma_uint64 importantProps; + ma_uint8 md5[16]; if (onRead(pUserData, &blockSizes, 4) != 4) { - return DRFLAC_FALSE; + return MA_FALSE; } if (onRead(pUserData, &frameSizes, 6) != 6) { - return DRFLAC_FALSE; + return MA_FALSE; } if (onRead(pUserData, &importantProps, 8) != 8) { - return DRFLAC_FALSE; + return MA_FALSE; } if (onRead(pUserData, md5, sizeof(md5)) != sizeof(md5)) { - return DRFLAC_FALSE; + return MA_FALSE; } - blockSizes = drflac__be2host_32(blockSizes); - frameSizes = drflac__be2host_64(frameSizes); - importantProps = drflac__be2host_64(importantProps); - pStreamInfo->minBlockSizeInPCMFrames = (drflac_uint16)((blockSizes & 0xFFFF0000) >> 16); - pStreamInfo->maxBlockSizeInPCMFrames = (drflac_uint16) (blockSizes & 0x0000FFFF); - pStreamInfo->minFrameSizeInPCMFrames = (drflac_uint32)((frameSizes & (((drflac_uint64)0x00FFFFFF << 16) << 24)) >> 40); - pStreamInfo->maxFrameSizeInPCMFrames = (drflac_uint32)((frameSizes & (((drflac_uint64)0x00FFFFFF << 16) << 0)) >> 16); - pStreamInfo->sampleRate = (drflac_uint32)((importantProps & (((drflac_uint64)0x000FFFFF << 16) << 28)) >> 44); - pStreamInfo->channels = (drflac_uint8 )((importantProps & (((drflac_uint64)0x0000000E << 16) << 24)) >> 41) + 1; - pStreamInfo->bitsPerSample = (drflac_uint8 )((importantProps & (((drflac_uint64)0x0000001F << 16) << 20)) >> 36) + 1; - pStreamInfo->totalPCMFrameCount = ((importantProps & ((((drflac_uint64)0x0000000F << 16) << 16) | 0xFFFFFFFF))); - DRFLAC_COPY_MEMORY(pStreamInfo->md5, md5, sizeof(md5)); - return DRFLAC_TRUE; + blockSizes = ma_dr_flac__be2host_32(blockSizes); + frameSizes = ma_dr_flac__be2host_64(frameSizes); + importantProps = ma_dr_flac__be2host_64(importantProps); + pStreamInfo->minBlockSizeInPCMFrames = (ma_uint16)((blockSizes & 0xFFFF0000) >> 16); + pStreamInfo->maxBlockSizeInPCMFrames = (ma_uint16) (blockSizes & 0x0000FFFF); + pStreamInfo->minFrameSizeInPCMFrames = (ma_uint32)((frameSizes & (((ma_uint64)0x00FFFFFF << 16) << 24)) >> 40); + pStreamInfo->maxFrameSizeInPCMFrames = (ma_uint32)((frameSizes & (((ma_uint64)0x00FFFFFF << 16) << 0)) >> 16); + pStreamInfo->sampleRate = (ma_uint32)((importantProps & (((ma_uint64)0x000FFFFF << 16) << 28)) >> 44); + pStreamInfo->channels = (ma_uint8 )((importantProps & (((ma_uint64)0x0000000E << 16) << 24)) >> 41) + 1; + pStreamInfo->bitsPerSample = (ma_uint8 )((importantProps & (((ma_uint64)0x0000001F << 16) << 20)) >> 36) + 1; + pStreamInfo->totalPCMFrameCount = ((importantProps & ((((ma_uint64)0x0000000F << 16) << 16) | 0xFFFFFFFF))); + MA_DR_FLAC_COPY_MEMORY(pStreamInfo->md5, md5, sizeof(md5)); + return MA_TRUE; } -static void* drflac__malloc_default(size_t sz, void* pUserData) +static void* ma_dr_flac__malloc_default(size_t sz, void* pUserData) { (void)pUserData; - return DRFLAC_MALLOC(sz); + return MA_DR_FLAC_MALLOC(sz); } -static void* drflac__realloc_default(void* p, size_t sz, void* pUserData) +static void* ma_dr_flac__realloc_default(void* p, size_t sz, void* pUserData) { (void)pUserData; - return DRFLAC_REALLOC(p, sz); + return MA_DR_FLAC_REALLOC(p, sz); } -static void drflac__free_default(void* p, void* pUserData) +static void ma_dr_flac__free_default(void* p, void* pUserData) { (void)pUserData; - DRFLAC_FREE(p); + MA_DR_FLAC_FREE(p); } -static void* drflac__malloc_from_callbacks(size_t sz, const drflac_allocation_callbacks* pAllocationCallbacks) +static void* ma_dr_flac__malloc_from_callbacks(size_t sz, const ma_allocation_callbacks* pAllocationCallbacks) { if (pAllocationCallbacks == NULL) { return NULL; @@ -82720,7 +85850,7 @@ static void* drflac__malloc_from_callbacks(size_t sz, const drflac_allocation_ca } return NULL; } -static void* drflac__realloc_from_callbacks(void* p, size_t szNew, size_t szOld, const drflac_allocation_callbacks* pAllocationCallbacks) +static void* ma_dr_flac__realloc_from_callbacks(void* p, size_t szNew, size_t szOld, const ma_allocation_callbacks* pAllocationCallbacks) { if (pAllocationCallbacks == NULL) { return NULL; @@ -82735,14 +85865,14 @@ static void* drflac__realloc_from_callbacks(void* p, size_t szNew, size_t szOld, return NULL; } if (p != NULL) { - DRFLAC_COPY_MEMORY(p2, p, szOld); + MA_DR_FLAC_COPY_MEMORY(p2, p, szOld); pAllocationCallbacks->onFree(p, pAllocationCallbacks->pUserData); } return p2; } return NULL; } -static void drflac__free_from_callbacks(void* p, const drflac_allocation_callbacks* pAllocationCallbacks) +static void ma_dr_flac__free_from_callbacks(void* p, const ma_allocation_callbacks* pAllocationCallbacks) { if (p == NULL || pAllocationCallbacks == NULL) { return; @@ -82751,18 +85881,18 @@ static void drflac__free_from_callbacks(void* p, const drflac_allocation_callbac pAllocationCallbacks->onFree(p, pAllocationCallbacks->pUserData); } } -static drflac_bool32 drflac__read_and_decode_metadata(drflac_read_proc onRead, drflac_seek_proc onSeek, drflac_meta_proc onMeta, void* pUserData, void* pUserDataMD, drflac_uint64* pFirstFramePos, drflac_uint64* pSeektablePos, drflac_uint32* pSeektableSize, drflac_allocation_callbacks* pAllocationCallbacks) +static ma_bool32 ma_dr_flac__read_and_decode_metadata(ma_dr_flac_read_proc onRead, ma_dr_flac_seek_proc onSeek, ma_dr_flac_meta_proc onMeta, void* pUserData, void* pUserDataMD, ma_uint64* pFirstFramePos, ma_uint64* pSeektablePos, ma_uint32* pSeekpointCount, ma_allocation_callbacks* pAllocationCallbacks) { - drflac_uint64 runningFilePos = 42; - drflac_uint64 seektablePos = 0; - drflac_uint32 seektableSize = 0; + ma_uint64 runningFilePos = 42; + ma_uint64 seektablePos = 0; + ma_uint32 seektableSize = 0; for (;;) { - drflac_metadata metadata; - drflac_uint8 isLastBlock = 0; - drflac_uint8 blockType; - drflac_uint32 blockSize; - if (drflac__read_and_decode_block_header(onRead, pUserData, &isLastBlock, &blockType, &blockSize) == DRFLAC_FALSE) { - return DRFLAC_FALSE; + ma_dr_flac_metadata metadata; + ma_uint8 isLastBlock = 0; + ma_uint8 blockType = 0; + ma_uint32 blockSize; + if (ma_dr_flac__read_and_decode_block_header(onRead, pUserData, &isLastBlock, &blockType, &blockSize) == MA_FALSE) { + return MA_FALSE; } runningFilePos += 4; metadata.type = blockType; @@ -82770,249 +85900,285 @@ static drflac_bool32 drflac__read_and_decode_metadata(drflac_read_proc onRead, d metadata.rawDataSize = 0; switch (blockType) { - case DRFLAC_METADATA_BLOCK_TYPE_APPLICATION: + case MA_DR_FLAC_METADATA_BLOCK_TYPE_APPLICATION: { if (blockSize < 4) { - return DRFLAC_FALSE; + return MA_FALSE; } if (onMeta) { - void* pRawData = drflac__malloc_from_callbacks(blockSize, pAllocationCallbacks); + void* pRawData = ma_dr_flac__malloc_from_callbacks(blockSize, pAllocationCallbacks); if (pRawData == NULL) { - return DRFLAC_FALSE; + return MA_FALSE; } if (onRead(pUserData, pRawData, blockSize) != blockSize) { - drflac__free_from_callbacks(pRawData, pAllocationCallbacks); - return DRFLAC_FALSE; + ma_dr_flac__free_from_callbacks(pRawData, pAllocationCallbacks); + return MA_FALSE; } metadata.pRawData = pRawData; metadata.rawDataSize = blockSize; - metadata.data.application.id = drflac__be2host_32(*(drflac_uint32*)pRawData); - metadata.data.application.pData = (const void*)((drflac_uint8*)pRawData + sizeof(drflac_uint32)); - metadata.data.application.dataSize = blockSize - sizeof(drflac_uint32); + metadata.data.application.id = ma_dr_flac__be2host_32(*(ma_uint32*)pRawData); + metadata.data.application.pData = (const void*)((ma_uint8*)pRawData + sizeof(ma_uint32)); + metadata.data.application.dataSize = blockSize - sizeof(ma_uint32); onMeta(pUserDataMD, &metadata); - drflac__free_from_callbacks(pRawData, pAllocationCallbacks); + ma_dr_flac__free_from_callbacks(pRawData, pAllocationCallbacks); } } break; - case DRFLAC_METADATA_BLOCK_TYPE_SEEKTABLE: + case MA_DR_FLAC_METADATA_BLOCK_TYPE_SEEKTABLE: { seektablePos = runningFilePos; seektableSize = blockSize; if (onMeta) { - drflac_uint32 iSeekpoint; + ma_uint32 seekpointCount; + ma_uint32 iSeekpoint; void* pRawData; - pRawData = drflac__malloc_from_callbacks(blockSize, pAllocationCallbacks); + seekpointCount = blockSize/MA_DR_FLAC_SEEKPOINT_SIZE_IN_BYTES; + pRawData = ma_dr_flac__malloc_from_callbacks(seekpointCount * sizeof(ma_dr_flac_seekpoint), pAllocationCallbacks); if (pRawData == NULL) { - return DRFLAC_FALSE; + return MA_FALSE; } - if (onRead(pUserData, pRawData, blockSize) != blockSize) { - drflac__free_from_callbacks(pRawData, pAllocationCallbacks); - return DRFLAC_FALSE; + for (iSeekpoint = 0; iSeekpoint < seekpointCount; ++iSeekpoint) { + ma_dr_flac_seekpoint* pSeekpoint = (ma_dr_flac_seekpoint*)pRawData + iSeekpoint; + if (onRead(pUserData, pSeekpoint, MA_DR_FLAC_SEEKPOINT_SIZE_IN_BYTES) != MA_DR_FLAC_SEEKPOINT_SIZE_IN_BYTES) { + ma_dr_flac__free_from_callbacks(pRawData, pAllocationCallbacks); + return MA_FALSE; + } + pSeekpoint->firstPCMFrame = ma_dr_flac__be2host_64(pSeekpoint->firstPCMFrame); + pSeekpoint->flacFrameOffset = ma_dr_flac__be2host_64(pSeekpoint->flacFrameOffset); + pSeekpoint->pcmFrameCount = ma_dr_flac__be2host_16(pSeekpoint->pcmFrameCount); } metadata.pRawData = pRawData; metadata.rawDataSize = blockSize; - metadata.data.seektable.seekpointCount = blockSize/sizeof(drflac_seekpoint); - metadata.data.seektable.pSeekpoints = (const drflac_seekpoint*)pRawData; - for (iSeekpoint = 0; iSeekpoint < metadata.data.seektable.seekpointCount; ++iSeekpoint) { - drflac_seekpoint* pSeekpoint = (drflac_seekpoint*)pRawData + iSeekpoint; - pSeekpoint->firstPCMFrame = drflac__be2host_64(pSeekpoint->firstPCMFrame); - pSeekpoint->flacFrameOffset = drflac__be2host_64(pSeekpoint->flacFrameOffset); - pSeekpoint->pcmFrameCount = drflac__be2host_16(pSeekpoint->pcmFrameCount); - } + metadata.data.seektable.seekpointCount = seekpointCount; + metadata.data.seektable.pSeekpoints = (const ma_dr_flac_seekpoint*)pRawData; onMeta(pUserDataMD, &metadata); - drflac__free_from_callbacks(pRawData, pAllocationCallbacks); + ma_dr_flac__free_from_callbacks(pRawData, pAllocationCallbacks); } } break; - case DRFLAC_METADATA_BLOCK_TYPE_VORBIS_COMMENT: + case MA_DR_FLAC_METADATA_BLOCK_TYPE_VORBIS_COMMENT: { if (blockSize < 8) { - return DRFLAC_FALSE; + return MA_FALSE; } if (onMeta) { void* pRawData; const char* pRunningData; const char* pRunningDataEnd; - drflac_uint32 i; - pRawData = drflac__malloc_from_callbacks(blockSize, pAllocationCallbacks); + ma_uint32 i; + pRawData = ma_dr_flac__malloc_from_callbacks(blockSize, pAllocationCallbacks); if (pRawData == NULL) { - return DRFLAC_FALSE; + return MA_FALSE; } if (onRead(pUserData, pRawData, blockSize) != blockSize) { - drflac__free_from_callbacks(pRawData, pAllocationCallbacks); - return DRFLAC_FALSE; + ma_dr_flac__free_from_callbacks(pRawData, pAllocationCallbacks); + return MA_FALSE; } metadata.pRawData = pRawData; metadata.rawDataSize = blockSize; pRunningData = (const char*)pRawData; pRunningDataEnd = (const char*)pRawData + blockSize; - metadata.data.vorbis_comment.vendorLength = drflac__le2host_32_ptr_unaligned(pRunningData); pRunningData += 4; - if ((pRunningDataEnd - pRunningData) - 4 < (drflac_int64)metadata.data.vorbis_comment.vendorLength) { - drflac__free_from_callbacks(pRawData, pAllocationCallbacks); - return DRFLAC_FALSE; + metadata.data.vorbis_comment.vendorLength = ma_dr_flac__le2host_32_ptr_unaligned(pRunningData); pRunningData += 4; + if ((pRunningDataEnd - pRunningData) - 4 < (ma_int64)metadata.data.vorbis_comment.vendorLength) { + ma_dr_flac__free_from_callbacks(pRawData, pAllocationCallbacks); + return MA_FALSE; } metadata.data.vorbis_comment.vendor = pRunningData; pRunningData += metadata.data.vorbis_comment.vendorLength; - metadata.data.vorbis_comment.commentCount = drflac__le2host_32_ptr_unaligned(pRunningData); pRunningData += 4; - if ((pRunningDataEnd - pRunningData) / sizeof(drflac_uint32) < metadata.data.vorbis_comment.commentCount) { - drflac__free_from_callbacks(pRawData, pAllocationCallbacks); - return DRFLAC_FALSE; + metadata.data.vorbis_comment.commentCount = ma_dr_flac__le2host_32_ptr_unaligned(pRunningData); pRunningData += 4; + if ((pRunningDataEnd - pRunningData) / sizeof(ma_uint32) < metadata.data.vorbis_comment.commentCount) { + ma_dr_flac__free_from_callbacks(pRawData, pAllocationCallbacks); + return MA_FALSE; } metadata.data.vorbis_comment.pComments = pRunningData; for (i = 0; i < metadata.data.vorbis_comment.commentCount; ++i) { - drflac_uint32 commentLength; + ma_uint32 commentLength; if (pRunningDataEnd - pRunningData < 4) { - drflac__free_from_callbacks(pRawData, pAllocationCallbacks); - return DRFLAC_FALSE; + ma_dr_flac__free_from_callbacks(pRawData, pAllocationCallbacks); + return MA_FALSE; } - commentLength = drflac__le2host_32_ptr_unaligned(pRunningData); pRunningData += 4; - if (pRunningDataEnd - pRunningData < (drflac_int64)commentLength) { - drflac__free_from_callbacks(pRawData, pAllocationCallbacks); - return DRFLAC_FALSE; + commentLength = ma_dr_flac__le2host_32_ptr_unaligned(pRunningData); pRunningData += 4; + if (pRunningDataEnd - pRunningData < (ma_int64)commentLength) { + ma_dr_flac__free_from_callbacks(pRawData, pAllocationCallbacks); + return MA_FALSE; } pRunningData += commentLength; } onMeta(pUserDataMD, &metadata); - drflac__free_from_callbacks(pRawData, pAllocationCallbacks); + ma_dr_flac__free_from_callbacks(pRawData, pAllocationCallbacks); } } break; - case DRFLAC_METADATA_BLOCK_TYPE_CUESHEET: + case MA_DR_FLAC_METADATA_BLOCK_TYPE_CUESHEET: { if (blockSize < 396) { - return DRFLAC_FALSE; + return MA_FALSE; } if (onMeta) { void* pRawData; const char* pRunningData; const char* pRunningDataEnd; - drflac_uint8 iTrack; - drflac_uint8 iIndex; - pRawData = drflac__malloc_from_callbacks(blockSize, pAllocationCallbacks); + size_t bufferSize; + ma_uint8 iTrack; + ma_uint8 iIndex; + void* pTrackData; + pRawData = ma_dr_flac__malloc_from_callbacks(blockSize, pAllocationCallbacks); if (pRawData == NULL) { - return DRFLAC_FALSE; + return MA_FALSE; } if (onRead(pUserData, pRawData, blockSize) != blockSize) { - drflac__free_from_callbacks(pRawData, pAllocationCallbacks); - return DRFLAC_FALSE; + ma_dr_flac__free_from_callbacks(pRawData, pAllocationCallbacks); + return MA_FALSE; } metadata.pRawData = pRawData; metadata.rawDataSize = blockSize; pRunningData = (const char*)pRawData; pRunningDataEnd = (const char*)pRawData + blockSize; - DRFLAC_COPY_MEMORY(metadata.data.cuesheet.catalog, pRunningData, 128); pRunningData += 128; - metadata.data.cuesheet.leadInSampleCount = drflac__be2host_64(*(const drflac_uint64*)pRunningData); pRunningData += 8; + MA_DR_FLAC_COPY_MEMORY(metadata.data.cuesheet.catalog, pRunningData, 128); pRunningData += 128; + metadata.data.cuesheet.leadInSampleCount = ma_dr_flac__be2host_64(*(const ma_uint64*)pRunningData); pRunningData += 8; metadata.data.cuesheet.isCD = (pRunningData[0] & 0x80) != 0; pRunningData += 259; metadata.data.cuesheet.trackCount = pRunningData[0]; pRunningData += 1; - metadata.data.cuesheet.pTrackData = pRunningData; - for (iTrack = 0; iTrack < metadata.data.cuesheet.trackCount; ++iTrack) { - drflac_uint8 indexCount; - drflac_uint32 indexPointSize; - if (pRunningDataEnd - pRunningData < 36) { - drflac__free_from_callbacks(pRawData, pAllocationCallbacks); - return DRFLAC_FALSE; - } - pRunningData += 35; - indexCount = pRunningData[0]; pRunningData += 1; - indexPointSize = indexCount * sizeof(drflac_cuesheet_track_index); - if (pRunningDataEnd - pRunningData < (drflac_int64)indexPointSize) { - drflac__free_from_callbacks(pRawData, pAllocationCallbacks); - return DRFLAC_FALSE; - } - for (iIndex = 0; iIndex < indexCount; ++iIndex) { - drflac_cuesheet_track_index* pTrack = (drflac_cuesheet_track_index*)pRunningData; - pRunningData += sizeof(drflac_cuesheet_track_index); - pTrack->offset = drflac__be2host_64(pTrack->offset); + metadata.data.cuesheet.pTrackData = NULL; + { + const char* pRunningDataSaved = pRunningData; + bufferSize = metadata.data.cuesheet.trackCount * MA_DR_FLAC_CUESHEET_TRACK_SIZE_IN_BYTES; + for (iTrack = 0; iTrack < metadata.data.cuesheet.trackCount; ++iTrack) { + ma_uint8 indexCount; + ma_uint32 indexPointSize; + if (pRunningDataEnd - pRunningData < MA_DR_FLAC_CUESHEET_TRACK_SIZE_IN_BYTES) { + ma_dr_flac__free_from_callbacks(pRawData, pAllocationCallbacks); + return MA_FALSE; + } + pRunningData += 35; + indexCount = pRunningData[0]; + pRunningData += 1; + bufferSize += indexCount * sizeof(ma_dr_flac_cuesheet_track_index); + indexPointSize = indexCount * MA_DR_FLAC_CUESHEET_TRACK_INDEX_SIZE_IN_BYTES; + if (pRunningDataEnd - pRunningData < (ma_int64)indexPointSize) { + ma_dr_flac__free_from_callbacks(pRawData, pAllocationCallbacks); + return MA_FALSE; + } + pRunningData += indexPointSize; } + pRunningData = pRunningDataSaved; } + { + char* pRunningTrackData; + pTrackData = ma_dr_flac__malloc_from_callbacks(bufferSize, pAllocationCallbacks); + if (pTrackData == NULL) { + ma_dr_flac__free_from_callbacks(pRawData, pAllocationCallbacks); + return MA_FALSE; + } + pRunningTrackData = (char*)pTrackData; + for (iTrack = 0; iTrack < metadata.data.cuesheet.trackCount; ++iTrack) { + ma_uint8 indexCount; + MA_DR_FLAC_COPY_MEMORY(pRunningTrackData, pRunningData, MA_DR_FLAC_CUESHEET_TRACK_SIZE_IN_BYTES); + pRunningData += MA_DR_FLAC_CUESHEET_TRACK_SIZE_IN_BYTES-1; + pRunningTrackData += MA_DR_FLAC_CUESHEET_TRACK_SIZE_IN_BYTES-1; + indexCount = pRunningData[0]; + pRunningData += 1; + pRunningTrackData += 1; + for (iIndex = 0; iIndex < indexCount; ++iIndex) { + ma_dr_flac_cuesheet_track_index* pTrackIndex = (ma_dr_flac_cuesheet_track_index*)pRunningTrackData; + MA_DR_FLAC_COPY_MEMORY(pRunningTrackData, pRunningData, MA_DR_FLAC_CUESHEET_TRACK_INDEX_SIZE_IN_BYTES); + pRunningData += MA_DR_FLAC_CUESHEET_TRACK_INDEX_SIZE_IN_BYTES; + pRunningTrackData += sizeof(ma_dr_flac_cuesheet_track_index); + pTrackIndex->offset = ma_dr_flac__be2host_64(pTrackIndex->offset); + } + } + metadata.data.cuesheet.pTrackData = pTrackData; + } + ma_dr_flac__free_from_callbacks(pRawData, pAllocationCallbacks); + pRawData = NULL; onMeta(pUserDataMD, &metadata); - drflac__free_from_callbacks(pRawData, pAllocationCallbacks); + ma_dr_flac__free_from_callbacks(pTrackData, pAllocationCallbacks); + pTrackData = NULL; } } break; - case DRFLAC_METADATA_BLOCK_TYPE_PICTURE: + case MA_DR_FLAC_METADATA_BLOCK_TYPE_PICTURE: { if (blockSize < 32) { - return DRFLAC_FALSE; + return MA_FALSE; } if (onMeta) { void* pRawData; const char* pRunningData; const char* pRunningDataEnd; - pRawData = drflac__malloc_from_callbacks(blockSize, pAllocationCallbacks); + pRawData = ma_dr_flac__malloc_from_callbacks(blockSize, pAllocationCallbacks); if (pRawData == NULL) { - return DRFLAC_FALSE; + return MA_FALSE; } if (onRead(pUserData, pRawData, blockSize) != blockSize) { - drflac__free_from_callbacks(pRawData, pAllocationCallbacks); - return DRFLAC_FALSE; + ma_dr_flac__free_from_callbacks(pRawData, pAllocationCallbacks); + return MA_FALSE; } metadata.pRawData = pRawData; metadata.rawDataSize = blockSize; pRunningData = (const char*)pRawData; pRunningDataEnd = (const char*)pRawData + blockSize; - metadata.data.picture.type = drflac__be2host_32_ptr_unaligned(pRunningData); pRunningData += 4; - metadata.data.picture.mimeLength = drflac__be2host_32_ptr_unaligned(pRunningData); pRunningData += 4; - if ((pRunningDataEnd - pRunningData) - 24 < (drflac_int64)metadata.data.picture.mimeLength) { - drflac__free_from_callbacks(pRawData, pAllocationCallbacks); - return DRFLAC_FALSE; + metadata.data.picture.type = ma_dr_flac__be2host_32_ptr_unaligned(pRunningData); pRunningData += 4; + metadata.data.picture.mimeLength = ma_dr_flac__be2host_32_ptr_unaligned(pRunningData); pRunningData += 4; + if ((pRunningDataEnd - pRunningData) - 24 < (ma_int64)metadata.data.picture.mimeLength) { + ma_dr_flac__free_from_callbacks(pRawData, pAllocationCallbacks); + return MA_FALSE; } - metadata.data.picture.mime = pRunningData; pRunningData += metadata.data.picture.mimeLength; - metadata.data.picture.descriptionLength = drflac__be2host_32_ptr_unaligned(pRunningData); pRunningData += 4; - if ((pRunningDataEnd - pRunningData) - 20 < (drflac_int64)metadata.data.picture.descriptionLength) { - drflac__free_from_callbacks(pRawData, pAllocationCallbacks); - return DRFLAC_FALSE; + metadata.data.picture.mime = pRunningData; pRunningData += metadata.data.picture.mimeLength; + metadata.data.picture.descriptionLength = ma_dr_flac__be2host_32_ptr_unaligned(pRunningData); pRunningData += 4; + if ((pRunningDataEnd - pRunningData) - 20 < (ma_int64)metadata.data.picture.descriptionLength) { + ma_dr_flac__free_from_callbacks(pRawData, pAllocationCallbacks); + return MA_FALSE; } - metadata.data.picture.description = pRunningData; pRunningData += metadata.data.picture.descriptionLength; - metadata.data.picture.width = drflac__be2host_32_ptr_unaligned(pRunningData); pRunningData += 4; - metadata.data.picture.height = drflac__be2host_32_ptr_unaligned(pRunningData); pRunningData += 4; - metadata.data.picture.colorDepth = drflac__be2host_32_ptr_unaligned(pRunningData); pRunningData += 4; - metadata.data.picture.indexColorCount = drflac__be2host_32_ptr_unaligned(pRunningData); pRunningData += 4; - metadata.data.picture.pictureDataSize = drflac__be2host_32_ptr_unaligned(pRunningData); pRunningData += 4; - metadata.data.picture.pPictureData = (const drflac_uint8*)pRunningData; - if (pRunningDataEnd - pRunningData < (drflac_int64)metadata.data.picture.pictureDataSize) { - drflac__free_from_callbacks(pRawData, pAllocationCallbacks); - return DRFLAC_FALSE; + metadata.data.picture.description = pRunningData; pRunningData += metadata.data.picture.descriptionLength; + metadata.data.picture.width = ma_dr_flac__be2host_32_ptr_unaligned(pRunningData); pRunningData += 4; + metadata.data.picture.height = ma_dr_flac__be2host_32_ptr_unaligned(pRunningData); pRunningData += 4; + metadata.data.picture.colorDepth = ma_dr_flac__be2host_32_ptr_unaligned(pRunningData); pRunningData += 4; + metadata.data.picture.indexColorCount = ma_dr_flac__be2host_32_ptr_unaligned(pRunningData); pRunningData += 4; + metadata.data.picture.pictureDataSize = ma_dr_flac__be2host_32_ptr_unaligned(pRunningData); pRunningData += 4; + metadata.data.picture.pPictureData = (const ma_uint8*)pRunningData; + if (pRunningDataEnd - pRunningData < (ma_int64)metadata.data.picture.pictureDataSize) { + ma_dr_flac__free_from_callbacks(pRawData, pAllocationCallbacks); + return MA_FALSE; } onMeta(pUserDataMD, &metadata); - drflac__free_from_callbacks(pRawData, pAllocationCallbacks); + ma_dr_flac__free_from_callbacks(pRawData, pAllocationCallbacks); } } break; - case DRFLAC_METADATA_BLOCK_TYPE_PADDING: + case MA_DR_FLAC_METADATA_BLOCK_TYPE_PADDING: { if (onMeta) { metadata.data.padding.unused = 0; - if (!onSeek(pUserData, blockSize, drflac_seek_origin_current)) { - isLastBlock = DRFLAC_TRUE; + if (!onSeek(pUserData, blockSize, ma_dr_flac_seek_origin_current)) { + isLastBlock = MA_TRUE; } else { onMeta(pUserDataMD, &metadata); } } } break; - case DRFLAC_METADATA_BLOCK_TYPE_INVALID: + case MA_DR_FLAC_METADATA_BLOCK_TYPE_INVALID: { if (onMeta) { - if (!onSeek(pUserData, blockSize, drflac_seek_origin_current)) { - isLastBlock = DRFLAC_TRUE; + if (!onSeek(pUserData, blockSize, ma_dr_flac_seek_origin_current)) { + isLastBlock = MA_TRUE; } } } break; default: { if (onMeta) { - void* pRawData = drflac__malloc_from_callbacks(blockSize, pAllocationCallbacks); + void* pRawData = ma_dr_flac__malloc_from_callbacks(blockSize, pAllocationCallbacks); if (pRawData == NULL) { - return DRFLAC_FALSE; + return MA_FALSE; } if (onRead(pUserData, pRawData, blockSize) != blockSize) { - drflac__free_from_callbacks(pRawData, pAllocationCallbacks); - return DRFLAC_FALSE; + ma_dr_flac__free_from_callbacks(pRawData, pAllocationCallbacks); + return MA_FALSE; } metadata.pRawData = pRawData; metadata.rawDataSize = blockSize; onMeta(pUserDataMD, &metadata); - drflac__free_from_callbacks(pRawData, pAllocationCallbacks); + ma_dr_flac__free_from_callbacks(pRawData, pAllocationCallbacks); } } break; } if (onMeta == NULL && blockSize > 0) { - if (!onSeek(pUserData, blockSize, drflac_seek_origin_current)) { - isLastBlock = DRFLAC_TRUE; + if (!onSeek(pUserData, blockSize, ma_dr_flac_seek_origin_current)) { + isLastBlock = MA_TRUE; } } runningFilePos += blockSize; @@ -83020,45 +86186,45 @@ static drflac_bool32 drflac__read_and_decode_metadata(drflac_read_proc onRead, d break; } } - *pSeektablePos = seektablePos; - *pSeektableSize = seektableSize; - *pFirstFramePos = runningFilePos; - return DRFLAC_TRUE; + *pSeektablePos = seektablePos; + *pSeekpointCount = seektableSize / MA_DR_FLAC_SEEKPOINT_SIZE_IN_BYTES; + *pFirstFramePos = runningFilePos; + return MA_TRUE; } -static drflac_bool32 drflac__init_private__native(drflac_init_info* pInit, drflac_read_proc onRead, drflac_seek_proc onSeek, drflac_meta_proc onMeta, void* pUserData, void* pUserDataMD, drflac_bool32 relaxed) +static ma_bool32 ma_dr_flac__init_private__native(ma_dr_flac_init_info* pInit, ma_dr_flac_read_proc onRead, ma_dr_flac_seek_proc onSeek, ma_dr_flac_meta_proc onMeta, void* pUserData, void* pUserDataMD, ma_bool32 relaxed) { - drflac_uint8 isLastBlock; - drflac_uint8 blockType; - drflac_uint32 blockSize; + ma_uint8 isLastBlock; + ma_uint8 blockType; + ma_uint32 blockSize; (void)onSeek; - pInit->container = drflac_container_native; - if (!drflac__read_and_decode_block_header(onRead, pUserData, &isLastBlock, &blockType, &blockSize)) { - return DRFLAC_FALSE; + pInit->container = ma_dr_flac_container_native; + if (!ma_dr_flac__read_and_decode_block_header(onRead, pUserData, &isLastBlock, &blockType, &blockSize)) { + return MA_FALSE; } - if (blockType != DRFLAC_METADATA_BLOCK_TYPE_STREAMINFO || blockSize != 34) { + if (blockType != MA_DR_FLAC_METADATA_BLOCK_TYPE_STREAMINFO || blockSize != 34) { if (!relaxed) { - return DRFLAC_FALSE; + return MA_FALSE; } else { - pInit->hasStreamInfoBlock = DRFLAC_FALSE; - pInit->hasMetadataBlocks = DRFLAC_FALSE; - if (!drflac__read_next_flac_frame_header(&pInit->bs, 0, &pInit->firstFrameHeader)) { - return DRFLAC_FALSE; + pInit->hasStreamInfoBlock = MA_FALSE; + pInit->hasMetadataBlocks = MA_FALSE; + if (!ma_dr_flac__read_next_flac_frame_header(&pInit->bs, 0, &pInit->firstFrameHeader)) { + return MA_FALSE; } if (pInit->firstFrameHeader.bitsPerSample == 0) { - return DRFLAC_FALSE; + return MA_FALSE; } pInit->sampleRate = pInit->firstFrameHeader.sampleRate; - pInit->channels = drflac__get_channel_count_from_channel_assignment(pInit->firstFrameHeader.channelAssignment); + pInit->channels = ma_dr_flac__get_channel_count_from_channel_assignment(pInit->firstFrameHeader.channelAssignment); pInit->bitsPerSample = pInit->firstFrameHeader.bitsPerSample; pInit->maxBlockSizeInPCMFrames = 65535; - return DRFLAC_TRUE; + return MA_TRUE; } } else { - drflac_streaminfo streaminfo; - if (!drflac__read_streaminfo(onRead, pUserData, &streaminfo)) { - return DRFLAC_FALSE; + ma_dr_flac_streaminfo streaminfo; + if (!ma_dr_flac__read_streaminfo(onRead, pUserData, &streaminfo)) { + return MA_FALSE; } - pInit->hasStreamInfoBlock = DRFLAC_TRUE; + pInit->hasStreamInfoBlock = MA_TRUE; pInit->sampleRate = streaminfo.sampleRate; pInit->channels = streaminfo.channels; pInit->bitsPerSample = streaminfo.bitsPerSample; @@ -83066,26 +86232,26 @@ static drflac_bool32 drflac__init_private__native(drflac_init_info* pInit, drfla pInit->maxBlockSizeInPCMFrames = streaminfo.maxBlockSizeInPCMFrames; pInit->hasMetadataBlocks = !isLastBlock; if (onMeta) { - drflac_metadata metadata; - metadata.type = DRFLAC_METADATA_BLOCK_TYPE_STREAMINFO; + ma_dr_flac_metadata metadata; + metadata.type = MA_DR_FLAC_METADATA_BLOCK_TYPE_STREAMINFO; metadata.pRawData = NULL; metadata.rawDataSize = 0; metadata.data.streaminfo = streaminfo; onMeta(pUserDataMD, &metadata); } - return DRFLAC_TRUE; + return MA_TRUE; } } -#ifndef DR_FLAC_NO_OGG -#define DRFLAC_OGG_MAX_PAGE_SIZE 65307 -#define DRFLAC_OGG_CAPTURE_PATTERN_CRC32 1605413199 +#ifndef MA_DR_FLAC_NO_OGG +#define MA_DR_FLAC_OGG_MAX_PAGE_SIZE 65307 +#define MA_DR_FLAC_OGG_CAPTURE_PATTERN_CRC32 1605413199 typedef enum { - drflac_ogg_recover_on_crc_mismatch, - drflac_ogg_fail_on_crc_mismatch -} drflac_ogg_crc_mismatch_recovery; -#ifndef DR_FLAC_NO_CRC -static drflac_uint32 drflac__crc32_table[] = { + ma_dr_flac_ogg_recover_on_crc_mismatch, + ma_dr_flac_ogg_fail_on_crc_mismatch +} ma_dr_flac_ogg_crc_mismatch_recovery; +#ifndef MA_DR_FLAC_NO_CRC +static ma_uint32 ma_dr_flac__crc32_table[] = { 0x00000000L, 0x04C11DB7L, 0x09823B6EL, 0x0D4326D9L, 0x130476DCL, 0x17C56B6BL, 0x1A864DB2L, 0x1E475005L, 0x2608EDB8L, 0x22C9F00FL, 0x2F8AD6D6L, 0x2B4BCB61L, @@ -83152,63 +86318,63 @@ static drflac_uint32 drflac__crc32_table[] = { 0xBCB4666DL, 0xB8757BDAL, 0xB5365D03L, 0xB1F740B4L }; #endif -static DRFLAC_INLINE drflac_uint32 drflac_crc32_byte(drflac_uint32 crc32, drflac_uint8 data) +static MA_INLINE ma_uint32 ma_dr_flac_crc32_byte(ma_uint32 crc32, ma_uint8 data) { -#ifndef DR_FLAC_NO_CRC - return (crc32 << 8) ^ drflac__crc32_table[(drflac_uint8)((crc32 >> 24) & 0xFF) ^ data]; +#ifndef MA_DR_FLAC_NO_CRC + return (crc32 << 8) ^ ma_dr_flac__crc32_table[(ma_uint8)((crc32 >> 24) & 0xFF) ^ data]; #else (void)data; return crc32; #endif } #if 0 -static DRFLAC_INLINE drflac_uint32 drflac_crc32_uint32(drflac_uint32 crc32, drflac_uint32 data) +static MA_INLINE ma_uint32 ma_dr_flac_crc32_uint32(ma_uint32 crc32, ma_uint32 data) { - crc32 = drflac_crc32_byte(crc32, (drflac_uint8)((data >> 24) & 0xFF)); - crc32 = drflac_crc32_byte(crc32, (drflac_uint8)((data >> 16) & 0xFF)); - crc32 = drflac_crc32_byte(crc32, (drflac_uint8)((data >> 8) & 0xFF)); - crc32 = drflac_crc32_byte(crc32, (drflac_uint8)((data >> 0) & 0xFF)); + crc32 = ma_dr_flac_crc32_byte(crc32, (ma_uint8)((data >> 24) & 0xFF)); + crc32 = ma_dr_flac_crc32_byte(crc32, (ma_uint8)((data >> 16) & 0xFF)); + crc32 = ma_dr_flac_crc32_byte(crc32, (ma_uint8)((data >> 8) & 0xFF)); + crc32 = ma_dr_flac_crc32_byte(crc32, (ma_uint8)((data >> 0) & 0xFF)); return crc32; } -static DRFLAC_INLINE drflac_uint32 drflac_crc32_uint64(drflac_uint32 crc32, drflac_uint64 data) +static MA_INLINE ma_uint32 ma_dr_flac_crc32_uint64(ma_uint32 crc32, ma_uint64 data) { - crc32 = drflac_crc32_uint32(crc32, (drflac_uint32)((data >> 32) & 0xFFFFFFFF)); - crc32 = drflac_crc32_uint32(crc32, (drflac_uint32)((data >> 0) & 0xFFFFFFFF)); + crc32 = ma_dr_flac_crc32_uint32(crc32, (ma_uint32)((data >> 32) & 0xFFFFFFFF)); + crc32 = ma_dr_flac_crc32_uint32(crc32, (ma_uint32)((data >> 0) & 0xFFFFFFFF)); return crc32; } #endif -static DRFLAC_INLINE drflac_uint32 drflac_crc32_buffer(drflac_uint32 crc32, drflac_uint8* pData, drflac_uint32 dataSize) +static MA_INLINE ma_uint32 ma_dr_flac_crc32_buffer(ma_uint32 crc32, ma_uint8* pData, ma_uint32 dataSize) { - drflac_uint32 i; + ma_uint32 i; for (i = 0; i < dataSize; ++i) { - crc32 = drflac_crc32_byte(crc32, pData[i]); + crc32 = ma_dr_flac_crc32_byte(crc32, pData[i]); } return crc32; } -static DRFLAC_INLINE drflac_bool32 drflac_ogg__is_capture_pattern(drflac_uint8 pattern[4]) +static MA_INLINE ma_bool32 ma_dr_flac_ogg__is_capture_pattern(ma_uint8 pattern[4]) { return pattern[0] == 'O' && pattern[1] == 'g' && pattern[2] == 'g' && pattern[3] == 'S'; } -static DRFLAC_INLINE drflac_uint32 drflac_ogg__get_page_header_size(drflac_ogg_page_header* pHeader) +static MA_INLINE ma_uint32 ma_dr_flac_ogg__get_page_header_size(ma_dr_flac_ogg_page_header* pHeader) { return 27 + pHeader->segmentCount; } -static DRFLAC_INLINE drflac_uint32 drflac_ogg__get_page_body_size(drflac_ogg_page_header* pHeader) +static MA_INLINE ma_uint32 ma_dr_flac_ogg__get_page_body_size(ma_dr_flac_ogg_page_header* pHeader) { - drflac_uint32 pageBodySize = 0; + ma_uint32 pageBodySize = 0; int i; for (i = 0; i < pHeader->segmentCount; ++i) { pageBodySize += pHeader->segmentTable[i]; } return pageBodySize; } -static drflac_result drflac_ogg__read_page_header_after_capture_pattern(drflac_read_proc onRead, void* pUserData, drflac_ogg_page_header* pHeader, drflac_uint32* pBytesRead, drflac_uint32* pCRC32) +static ma_result ma_dr_flac_ogg__read_page_header_after_capture_pattern(ma_dr_flac_read_proc onRead, void* pUserData, ma_dr_flac_ogg_page_header* pHeader, ma_uint32* pBytesRead, ma_uint32* pCRC32) { - drflac_uint8 data[23]; - drflac_uint32 i; - DRFLAC_ASSERT(*pCRC32 == DRFLAC_OGG_CAPTURE_PATTERN_CRC32); + ma_uint8 data[23]; + ma_uint32 i; + MA_DR_FLAC_ASSERT(*pCRC32 == MA_DR_FLAC_OGG_CAPTURE_PATTERN_CRC32); if (onRead(pUserData, data, 23) != 23) { - return DRFLAC_AT_END; + return MA_AT_END; } *pBytesRead += 23; pHeader->capturePattern[0] = 'O'; @@ -83217,44 +86383,44 @@ static drflac_result drflac_ogg__read_page_header_after_capture_pattern(drflac_r pHeader->capturePattern[3] = 'S'; pHeader->structureVersion = data[0]; pHeader->headerType = data[1]; - DRFLAC_COPY_MEMORY(&pHeader->granulePosition, &data[ 2], 8); - DRFLAC_COPY_MEMORY(&pHeader->serialNumber, &data[10], 4); - DRFLAC_COPY_MEMORY(&pHeader->sequenceNumber, &data[14], 4); - DRFLAC_COPY_MEMORY(&pHeader->checksum, &data[18], 4); + MA_DR_FLAC_COPY_MEMORY(&pHeader->granulePosition, &data[ 2], 8); + MA_DR_FLAC_COPY_MEMORY(&pHeader->serialNumber, &data[10], 4); + MA_DR_FLAC_COPY_MEMORY(&pHeader->sequenceNumber, &data[14], 4); + MA_DR_FLAC_COPY_MEMORY(&pHeader->checksum, &data[18], 4); pHeader->segmentCount = data[22]; data[18] = 0; data[19] = 0; data[20] = 0; data[21] = 0; for (i = 0; i < 23; ++i) { - *pCRC32 = drflac_crc32_byte(*pCRC32, data[i]); + *pCRC32 = ma_dr_flac_crc32_byte(*pCRC32, data[i]); } if (onRead(pUserData, pHeader->segmentTable, pHeader->segmentCount) != pHeader->segmentCount) { - return DRFLAC_AT_END; + return MA_AT_END; } *pBytesRead += pHeader->segmentCount; for (i = 0; i < pHeader->segmentCount; ++i) { - *pCRC32 = drflac_crc32_byte(*pCRC32, pHeader->segmentTable[i]); + *pCRC32 = ma_dr_flac_crc32_byte(*pCRC32, pHeader->segmentTable[i]); } - return DRFLAC_SUCCESS; + return MA_SUCCESS; } -static drflac_result drflac_ogg__read_page_header(drflac_read_proc onRead, void* pUserData, drflac_ogg_page_header* pHeader, drflac_uint32* pBytesRead, drflac_uint32* pCRC32) +static ma_result ma_dr_flac_ogg__read_page_header(ma_dr_flac_read_proc onRead, void* pUserData, ma_dr_flac_ogg_page_header* pHeader, ma_uint32* pBytesRead, ma_uint32* pCRC32) { - drflac_uint8 id[4]; + ma_uint8 id[4]; *pBytesRead = 0; if (onRead(pUserData, id, 4) != 4) { - return DRFLAC_AT_END; + return MA_AT_END; } *pBytesRead += 4; for (;;) { - if (drflac_ogg__is_capture_pattern(id)) { - drflac_result result; - *pCRC32 = DRFLAC_OGG_CAPTURE_PATTERN_CRC32; - result = drflac_ogg__read_page_header_after_capture_pattern(onRead, pUserData, pHeader, pBytesRead, pCRC32); - if (result == DRFLAC_SUCCESS) { - return DRFLAC_SUCCESS; + if (ma_dr_flac_ogg__is_capture_pattern(id)) { + ma_result result; + *pCRC32 = MA_DR_FLAC_OGG_CAPTURE_PATTERN_CRC32; + result = ma_dr_flac_ogg__read_page_header_after_capture_pattern(onRead, pUserData, pHeader, pBytesRead, pCRC32); + if (result == MA_SUCCESS) { + return MA_SUCCESS; } else { - if (result == DRFLAC_CRC_MISMATCH) { + if (result == MA_CRC_MISMATCH) { continue; } else { return result; @@ -83265,7 +86431,7 @@ static drflac_result drflac_ogg__read_page_header(drflac_read_proc onRead, void* id[1] = id[2]; id[2] = id[3]; if (onRead(pUserData, &id[3], 1) != 1) { - return DRFLAC_AT_END; + return MA_AT_END; } *pBytesRead += 1; } @@ -83273,91 +86439,91 @@ static drflac_result drflac_ogg__read_page_header(drflac_read_proc onRead, void* } typedef struct { - drflac_read_proc onRead; - drflac_seek_proc onSeek; + ma_dr_flac_read_proc onRead; + ma_dr_flac_seek_proc onSeek; void* pUserData; - drflac_uint64 currentBytePos; - drflac_uint64 firstBytePos; - drflac_uint32 serialNumber; - drflac_ogg_page_header bosPageHeader; - drflac_ogg_page_header currentPageHeader; - drflac_uint32 bytesRemainingInPage; - drflac_uint32 pageDataSize; - drflac_uint8 pageData[DRFLAC_OGG_MAX_PAGE_SIZE]; -} drflac_oggbs; -static size_t drflac_oggbs__read_physical(drflac_oggbs* oggbs, void* bufferOut, size_t bytesToRead) + ma_uint64 currentBytePos; + ma_uint64 firstBytePos; + ma_uint32 serialNumber; + ma_dr_flac_ogg_page_header bosPageHeader; + ma_dr_flac_ogg_page_header currentPageHeader; + ma_uint32 bytesRemainingInPage; + ma_uint32 pageDataSize; + ma_uint8 pageData[MA_DR_FLAC_OGG_MAX_PAGE_SIZE]; +} ma_dr_flac_oggbs; +static size_t ma_dr_flac_oggbs__read_physical(ma_dr_flac_oggbs* oggbs, void* bufferOut, size_t bytesToRead) { size_t bytesActuallyRead = oggbs->onRead(oggbs->pUserData, bufferOut, bytesToRead); oggbs->currentBytePos += bytesActuallyRead; return bytesActuallyRead; } -static drflac_bool32 drflac_oggbs__seek_physical(drflac_oggbs* oggbs, drflac_uint64 offset, drflac_seek_origin origin) +static ma_bool32 ma_dr_flac_oggbs__seek_physical(ma_dr_flac_oggbs* oggbs, ma_uint64 offset, ma_dr_flac_seek_origin origin) { - if (origin == drflac_seek_origin_start) { + if (origin == ma_dr_flac_seek_origin_start) { if (offset <= 0x7FFFFFFF) { - if (!oggbs->onSeek(oggbs->pUserData, (int)offset, drflac_seek_origin_start)) { - return DRFLAC_FALSE; + if (!oggbs->onSeek(oggbs->pUserData, (int)offset, ma_dr_flac_seek_origin_start)) { + return MA_FALSE; } oggbs->currentBytePos = offset; - return DRFLAC_TRUE; + return MA_TRUE; } else { - if (!oggbs->onSeek(oggbs->pUserData, 0x7FFFFFFF, drflac_seek_origin_start)) { - return DRFLAC_FALSE; + if (!oggbs->onSeek(oggbs->pUserData, 0x7FFFFFFF, ma_dr_flac_seek_origin_start)) { + return MA_FALSE; } oggbs->currentBytePos = offset; - return drflac_oggbs__seek_physical(oggbs, offset - 0x7FFFFFFF, drflac_seek_origin_current); + return ma_dr_flac_oggbs__seek_physical(oggbs, offset - 0x7FFFFFFF, ma_dr_flac_seek_origin_current); } } else { while (offset > 0x7FFFFFFF) { - if (!oggbs->onSeek(oggbs->pUserData, 0x7FFFFFFF, drflac_seek_origin_current)) { - return DRFLAC_FALSE; + if (!oggbs->onSeek(oggbs->pUserData, 0x7FFFFFFF, ma_dr_flac_seek_origin_current)) { + return MA_FALSE; } oggbs->currentBytePos += 0x7FFFFFFF; offset -= 0x7FFFFFFF; } - if (!oggbs->onSeek(oggbs->pUserData, (int)offset, drflac_seek_origin_current)) { - return DRFLAC_FALSE; + if (!oggbs->onSeek(oggbs->pUserData, (int)offset, ma_dr_flac_seek_origin_current)) { + return MA_FALSE; } oggbs->currentBytePos += offset; - return DRFLAC_TRUE; + return MA_TRUE; } } -static drflac_bool32 drflac_oggbs__goto_next_page(drflac_oggbs* oggbs, drflac_ogg_crc_mismatch_recovery recoveryMethod) +static ma_bool32 ma_dr_flac_oggbs__goto_next_page(ma_dr_flac_oggbs* oggbs, ma_dr_flac_ogg_crc_mismatch_recovery recoveryMethod) { - drflac_ogg_page_header header; + ma_dr_flac_ogg_page_header header; for (;;) { - drflac_uint32 crc32 = 0; - drflac_uint32 bytesRead; - drflac_uint32 pageBodySize; -#ifndef DR_FLAC_NO_CRC - drflac_uint32 actualCRC32; + ma_uint32 crc32 = 0; + ma_uint32 bytesRead; + ma_uint32 pageBodySize; +#ifndef MA_DR_FLAC_NO_CRC + ma_uint32 actualCRC32; #endif - if (drflac_ogg__read_page_header(oggbs->onRead, oggbs->pUserData, &header, &bytesRead, &crc32) != DRFLAC_SUCCESS) { - return DRFLAC_FALSE; + if (ma_dr_flac_ogg__read_page_header(oggbs->onRead, oggbs->pUserData, &header, &bytesRead, &crc32) != MA_SUCCESS) { + return MA_FALSE; } oggbs->currentBytePos += bytesRead; - pageBodySize = drflac_ogg__get_page_body_size(&header); - if (pageBodySize > DRFLAC_OGG_MAX_PAGE_SIZE) { + pageBodySize = ma_dr_flac_ogg__get_page_body_size(&header); + if (pageBodySize > MA_DR_FLAC_OGG_MAX_PAGE_SIZE) { continue; } if (header.serialNumber != oggbs->serialNumber) { - if (pageBodySize > 0 && !drflac_oggbs__seek_physical(oggbs, pageBodySize, drflac_seek_origin_current)) { - return DRFLAC_FALSE; + if (pageBodySize > 0 && !ma_dr_flac_oggbs__seek_physical(oggbs, pageBodySize, ma_dr_flac_seek_origin_current)) { + return MA_FALSE; } continue; } - if (drflac_oggbs__read_physical(oggbs, oggbs->pageData, pageBodySize) != pageBodySize) { - return DRFLAC_FALSE; + if (ma_dr_flac_oggbs__read_physical(oggbs, oggbs->pageData, pageBodySize) != pageBodySize) { + return MA_FALSE; } oggbs->pageDataSize = pageBodySize; -#ifndef DR_FLAC_NO_CRC - actualCRC32 = drflac_crc32_buffer(crc32, oggbs->pageData, oggbs->pageDataSize); +#ifndef MA_DR_FLAC_NO_CRC + actualCRC32 = ma_dr_flac_crc32_buffer(crc32, oggbs->pageData, oggbs->pageDataSize); if (actualCRC32 != header.checksum) { - if (recoveryMethod == drflac_ogg_recover_on_crc_mismatch) { + if (recoveryMethod == ma_dr_flac_ogg_recover_on_crc_mismatch) { continue; } else { - drflac_oggbs__goto_next_page(oggbs, drflac_ogg_recover_on_crc_mismatch); - return DRFLAC_FALSE; + ma_dr_flac_oggbs__goto_next_page(oggbs, ma_dr_flac_ogg_recover_on_crc_mismatch); + return MA_FALSE; } } #else @@ -83365,17 +86531,17 @@ static drflac_bool32 drflac_oggbs__goto_next_page(drflac_oggbs* oggbs, drflac_og #endif oggbs->currentPageHeader = header; oggbs->bytesRemainingInPage = pageBodySize; - return DRFLAC_TRUE; + return MA_TRUE; } } #if 0 -static drflac_uint8 drflac_oggbs__get_current_segment_index(drflac_oggbs* oggbs, drflac_uint8* pBytesRemainingInSeg) +static ma_uint8 ma_dr_flac_oggbs__get_current_segment_index(ma_dr_flac_oggbs* oggbs, ma_uint8* pBytesRemainingInSeg) { - drflac_uint32 bytesConsumedInPage = drflac_ogg__get_page_body_size(&oggbs->currentPageHeader) - oggbs->bytesRemainingInPage; - drflac_uint8 iSeg = 0; - drflac_uint32 iByte = 0; + ma_uint32 bytesConsumedInPage = ma_dr_flac_ogg__get_page_body_size(&oggbs->currentPageHeader) - oggbs->bytesRemainingInPage; + ma_uint8 iSeg = 0; + ma_uint32 iByte = 0; while (iByte < bytesConsumedInPage) { - drflac_uint8 segmentSize = oggbs->currentPageHeader.segmentTable[iSeg]; + ma_uint8 segmentSize = oggbs->currentPageHeader.segmentTable[iSeg]; if (iByte + segmentSize > bytesConsumedInPage) { break; } else { @@ -83383,92 +86549,92 @@ static drflac_uint8 drflac_oggbs__get_current_segment_index(drflac_oggbs* oggbs, iByte += segmentSize; } } - *pBytesRemainingInSeg = oggbs->currentPageHeader.segmentTable[iSeg] - (drflac_uint8)(bytesConsumedInPage - iByte); + *pBytesRemainingInSeg = oggbs->currentPageHeader.segmentTable[iSeg] - (ma_uint8)(bytesConsumedInPage - iByte); return iSeg; } -static drflac_bool32 drflac_oggbs__seek_to_next_packet(drflac_oggbs* oggbs) +static ma_bool32 ma_dr_flac_oggbs__seek_to_next_packet(ma_dr_flac_oggbs* oggbs) { for (;;) { - drflac_bool32 atEndOfPage = DRFLAC_FALSE; - drflac_uint8 bytesRemainingInSeg; - drflac_uint8 iFirstSeg = drflac_oggbs__get_current_segment_index(oggbs, &bytesRemainingInSeg); - drflac_uint32 bytesToEndOfPacketOrPage = bytesRemainingInSeg; - for (drflac_uint8 iSeg = iFirstSeg; iSeg < oggbs->currentPageHeader.segmentCount; ++iSeg) { - drflac_uint8 segmentSize = oggbs->currentPageHeader.segmentTable[iSeg]; + ma_bool32 atEndOfPage = MA_FALSE; + ma_uint8 bytesRemainingInSeg; + ma_uint8 iFirstSeg = ma_dr_flac_oggbs__get_current_segment_index(oggbs, &bytesRemainingInSeg); + ma_uint32 bytesToEndOfPacketOrPage = bytesRemainingInSeg; + for (ma_uint8 iSeg = iFirstSeg; iSeg < oggbs->currentPageHeader.segmentCount; ++iSeg) { + ma_uint8 segmentSize = oggbs->currentPageHeader.segmentTable[iSeg]; if (segmentSize < 255) { if (iSeg == oggbs->currentPageHeader.segmentCount-1) { - atEndOfPage = DRFLAC_TRUE; + atEndOfPage = MA_TRUE; } break; } bytesToEndOfPacketOrPage += segmentSize; } - drflac_oggbs__seek_physical(oggbs, bytesToEndOfPacketOrPage, drflac_seek_origin_current); + ma_dr_flac_oggbs__seek_physical(oggbs, bytesToEndOfPacketOrPage, ma_dr_flac_seek_origin_current); oggbs->bytesRemainingInPage -= bytesToEndOfPacketOrPage; if (atEndOfPage) { - if (!drflac_oggbs__goto_next_page(oggbs)) { - return DRFLAC_FALSE; + if (!ma_dr_flac_oggbs__goto_next_page(oggbs)) { + return MA_FALSE; } if ((oggbs->currentPageHeader.headerType & 0x01) == 0) { - return DRFLAC_TRUE; + return MA_TRUE; } } else { - return DRFLAC_TRUE; + return MA_TRUE; } } } -static drflac_bool32 drflac_oggbs__seek_to_next_frame(drflac_oggbs* oggbs) +static ma_bool32 ma_dr_flac_oggbs__seek_to_next_frame(ma_dr_flac_oggbs* oggbs) { - return drflac_oggbs__seek_to_next_packet(oggbs); + return ma_dr_flac_oggbs__seek_to_next_packet(oggbs); } #endif -static size_t drflac__on_read_ogg(void* pUserData, void* bufferOut, size_t bytesToRead) +static size_t ma_dr_flac__on_read_ogg(void* pUserData, void* bufferOut, size_t bytesToRead) { - drflac_oggbs* oggbs = (drflac_oggbs*)pUserData; - drflac_uint8* pRunningBufferOut = (drflac_uint8*)bufferOut; + ma_dr_flac_oggbs* oggbs = (ma_dr_flac_oggbs*)pUserData; + ma_uint8* pRunningBufferOut = (ma_uint8*)bufferOut; size_t bytesRead = 0; - DRFLAC_ASSERT(oggbs != NULL); - DRFLAC_ASSERT(pRunningBufferOut != NULL); + MA_DR_FLAC_ASSERT(oggbs != NULL); + MA_DR_FLAC_ASSERT(pRunningBufferOut != NULL); while (bytesRead < bytesToRead) { size_t bytesRemainingToRead = bytesToRead - bytesRead; if (oggbs->bytesRemainingInPage >= bytesRemainingToRead) { - DRFLAC_COPY_MEMORY(pRunningBufferOut, oggbs->pageData + (oggbs->pageDataSize - oggbs->bytesRemainingInPage), bytesRemainingToRead); + MA_DR_FLAC_COPY_MEMORY(pRunningBufferOut, oggbs->pageData + (oggbs->pageDataSize - oggbs->bytesRemainingInPage), bytesRemainingToRead); bytesRead += bytesRemainingToRead; - oggbs->bytesRemainingInPage -= (drflac_uint32)bytesRemainingToRead; + oggbs->bytesRemainingInPage -= (ma_uint32)bytesRemainingToRead; break; } if (oggbs->bytesRemainingInPage > 0) { - DRFLAC_COPY_MEMORY(pRunningBufferOut, oggbs->pageData + (oggbs->pageDataSize - oggbs->bytesRemainingInPage), oggbs->bytesRemainingInPage); + MA_DR_FLAC_COPY_MEMORY(pRunningBufferOut, oggbs->pageData + (oggbs->pageDataSize - oggbs->bytesRemainingInPage), oggbs->bytesRemainingInPage); bytesRead += oggbs->bytesRemainingInPage; pRunningBufferOut += oggbs->bytesRemainingInPage; oggbs->bytesRemainingInPage = 0; } - DRFLAC_ASSERT(bytesRemainingToRead > 0); - if (!drflac_oggbs__goto_next_page(oggbs, drflac_ogg_recover_on_crc_mismatch)) { + MA_DR_FLAC_ASSERT(bytesRemainingToRead > 0); + if (!ma_dr_flac_oggbs__goto_next_page(oggbs, ma_dr_flac_ogg_recover_on_crc_mismatch)) { break; } } return bytesRead; } -static drflac_bool32 drflac__on_seek_ogg(void* pUserData, int offset, drflac_seek_origin origin) +static ma_bool32 ma_dr_flac__on_seek_ogg(void* pUserData, int offset, ma_dr_flac_seek_origin origin) { - drflac_oggbs* oggbs = (drflac_oggbs*)pUserData; + ma_dr_flac_oggbs* oggbs = (ma_dr_flac_oggbs*)pUserData; int bytesSeeked = 0; - DRFLAC_ASSERT(oggbs != NULL); - DRFLAC_ASSERT(offset >= 0); - if (origin == drflac_seek_origin_start) { - if (!drflac_oggbs__seek_physical(oggbs, (int)oggbs->firstBytePos, drflac_seek_origin_start)) { - return DRFLAC_FALSE; + MA_DR_FLAC_ASSERT(oggbs != NULL); + MA_DR_FLAC_ASSERT(offset >= 0); + if (origin == ma_dr_flac_seek_origin_start) { + if (!ma_dr_flac_oggbs__seek_physical(oggbs, (int)oggbs->firstBytePos, ma_dr_flac_seek_origin_start)) { + return MA_FALSE; } - if (!drflac_oggbs__goto_next_page(oggbs, drflac_ogg_fail_on_crc_mismatch)) { - return DRFLAC_FALSE; + if (!ma_dr_flac_oggbs__goto_next_page(oggbs, ma_dr_flac_ogg_fail_on_crc_mismatch)) { + return MA_FALSE; } - return drflac__on_seek_ogg(pUserData, offset, drflac_seek_origin_current); + return ma_dr_flac__on_seek_ogg(pUserData, offset, ma_dr_flac_seek_origin_current); } - DRFLAC_ASSERT(origin == drflac_seek_origin_current); + MA_DR_FLAC_ASSERT(origin == ma_dr_flac_seek_origin_current); while (bytesSeeked < offset) { int bytesRemainingToSeek = offset - bytesSeeked; - DRFLAC_ASSERT(bytesRemainingToSeek >= 0); + MA_DR_FLAC_ASSERT(bytesRemainingToSeek >= 0); if (oggbs->bytesRemainingInPage >= (size_t)bytesRemainingToSeek) { bytesSeeked += bytesRemainingToSeek; (void)bytesSeeked; @@ -83479,39 +86645,39 @@ static drflac_bool32 drflac__on_seek_ogg(void* pUserData, int offset, drflac_see bytesSeeked += (int)oggbs->bytesRemainingInPage; oggbs->bytesRemainingInPage = 0; } - DRFLAC_ASSERT(bytesRemainingToSeek > 0); - if (!drflac_oggbs__goto_next_page(oggbs, drflac_ogg_fail_on_crc_mismatch)) { - return DRFLAC_FALSE; + MA_DR_FLAC_ASSERT(bytesRemainingToSeek > 0); + if (!ma_dr_flac_oggbs__goto_next_page(oggbs, ma_dr_flac_ogg_fail_on_crc_mismatch)) { + return MA_FALSE; } } - return DRFLAC_TRUE; + return MA_TRUE; } -static drflac_bool32 drflac_ogg__seek_to_pcm_frame(drflac* pFlac, drflac_uint64 pcmFrameIndex) +static ma_bool32 ma_dr_flac_ogg__seek_to_pcm_frame(ma_dr_flac* pFlac, ma_uint64 pcmFrameIndex) { - drflac_oggbs* oggbs = (drflac_oggbs*)pFlac->_oggbs; - drflac_uint64 originalBytePos; - drflac_uint64 runningGranulePosition; - drflac_uint64 runningFrameBytePos; - drflac_uint64 runningPCMFrameCount; - DRFLAC_ASSERT(oggbs != NULL); + ma_dr_flac_oggbs* oggbs = (ma_dr_flac_oggbs*)pFlac->_oggbs; + ma_uint64 originalBytePos; + ma_uint64 runningGranulePosition; + ma_uint64 runningFrameBytePos; + ma_uint64 runningPCMFrameCount; + MA_DR_FLAC_ASSERT(oggbs != NULL); originalBytePos = oggbs->currentBytePos; - if (!drflac__seek_to_byte(&pFlac->bs, pFlac->firstFLACFramePosInBytes)) { - return DRFLAC_FALSE; + if (!ma_dr_flac__seek_to_byte(&pFlac->bs, pFlac->firstFLACFramePosInBytes)) { + return MA_FALSE; } oggbs->bytesRemainingInPage = 0; runningGranulePosition = 0; for (;;) { - if (!drflac_oggbs__goto_next_page(oggbs, drflac_ogg_recover_on_crc_mismatch)) { - drflac_oggbs__seek_physical(oggbs, originalBytePos, drflac_seek_origin_start); - return DRFLAC_FALSE; + if (!ma_dr_flac_oggbs__goto_next_page(oggbs, ma_dr_flac_ogg_recover_on_crc_mismatch)) { + ma_dr_flac_oggbs__seek_physical(oggbs, originalBytePos, ma_dr_flac_seek_origin_start); + return MA_FALSE; } - runningFrameBytePos = oggbs->currentBytePos - drflac_ogg__get_page_header_size(&oggbs->currentPageHeader) - oggbs->pageDataSize; + runningFrameBytePos = oggbs->currentBytePos - ma_dr_flac_ogg__get_page_header_size(&oggbs->currentPageHeader) - oggbs->pageDataSize; if (oggbs->currentPageHeader.granulePosition >= pcmFrameIndex) { break; } if ((oggbs->currentPageHeader.headerType & 0x01) == 0) { if (oggbs->currentPageHeader.segmentTable[0] >= 2) { - drflac_uint8 firstBytesInPage[2]; + ma_uint8 firstBytesInPage[2]; firstBytesInPage[0] = oggbs->pageData[0]; firstBytesInPage[1] = oggbs->pageData[1]; if ((firstBytesInPage[0] == 0xFF) && (firstBytesInPage[1] & 0xFC) == 0xF8) { @@ -83521,120 +86687,120 @@ static drflac_bool32 drflac_ogg__seek_to_pcm_frame(drflac* pFlac, drflac_uint64 } } } - if (!drflac_oggbs__seek_physical(oggbs, runningFrameBytePos, drflac_seek_origin_start)) { - return DRFLAC_FALSE; + if (!ma_dr_flac_oggbs__seek_physical(oggbs, runningFrameBytePos, ma_dr_flac_seek_origin_start)) { + return MA_FALSE; } - if (!drflac_oggbs__goto_next_page(oggbs, drflac_ogg_recover_on_crc_mismatch)) { - return DRFLAC_FALSE; + if (!ma_dr_flac_oggbs__goto_next_page(oggbs, ma_dr_flac_ogg_recover_on_crc_mismatch)) { + return MA_FALSE; } runningPCMFrameCount = runningGranulePosition; for (;;) { - drflac_uint64 firstPCMFrameInFLACFrame = 0; - drflac_uint64 lastPCMFrameInFLACFrame = 0; - drflac_uint64 pcmFrameCountInThisFrame; - if (!drflac__read_next_flac_frame_header(&pFlac->bs, pFlac->bitsPerSample, &pFlac->currentFLACFrame.header)) { - return DRFLAC_FALSE; + ma_uint64 firstPCMFrameInFLACFrame = 0; + ma_uint64 lastPCMFrameInFLACFrame = 0; + ma_uint64 pcmFrameCountInThisFrame; + if (!ma_dr_flac__read_next_flac_frame_header(&pFlac->bs, pFlac->bitsPerSample, &pFlac->currentFLACFrame.header)) { + return MA_FALSE; } - drflac__get_pcm_frame_range_of_current_flac_frame(pFlac, &firstPCMFrameInFLACFrame, &lastPCMFrameInFLACFrame); + ma_dr_flac__get_pcm_frame_range_of_current_flac_frame(pFlac, &firstPCMFrameInFLACFrame, &lastPCMFrameInFLACFrame); pcmFrameCountInThisFrame = (lastPCMFrameInFLACFrame - firstPCMFrameInFLACFrame) + 1; if (pcmFrameIndex == pFlac->totalPCMFrameCount && (runningPCMFrameCount + pcmFrameCountInThisFrame) == pFlac->totalPCMFrameCount) { - drflac_result result = drflac__decode_flac_frame(pFlac); - if (result == DRFLAC_SUCCESS) { + ma_result result = ma_dr_flac__decode_flac_frame(pFlac); + if (result == MA_SUCCESS) { pFlac->currentPCMFrame = pcmFrameIndex; pFlac->currentFLACFrame.pcmFramesRemaining = 0; - return DRFLAC_TRUE; + return MA_TRUE; } else { - return DRFLAC_FALSE; + return MA_FALSE; } } if (pcmFrameIndex < (runningPCMFrameCount + pcmFrameCountInThisFrame)) { - drflac_result result = drflac__decode_flac_frame(pFlac); - if (result == DRFLAC_SUCCESS) { - drflac_uint64 pcmFramesToDecode = (size_t)(pcmFrameIndex - runningPCMFrameCount); + ma_result result = ma_dr_flac__decode_flac_frame(pFlac); + if (result == MA_SUCCESS) { + ma_uint64 pcmFramesToDecode = (size_t)(pcmFrameIndex - runningPCMFrameCount); if (pcmFramesToDecode == 0) { - return DRFLAC_TRUE; + return MA_TRUE; } pFlac->currentPCMFrame = runningPCMFrameCount; - return drflac__seek_forward_by_pcm_frames(pFlac, pcmFramesToDecode) == pcmFramesToDecode; + return ma_dr_flac__seek_forward_by_pcm_frames(pFlac, pcmFramesToDecode) == pcmFramesToDecode; } else { - if (result == DRFLAC_CRC_MISMATCH) { + if (result == MA_CRC_MISMATCH) { continue; } else { - return DRFLAC_FALSE; + return MA_FALSE; } } } else { - drflac_result result = drflac__seek_to_next_flac_frame(pFlac); - if (result == DRFLAC_SUCCESS) { + ma_result result = ma_dr_flac__seek_to_next_flac_frame(pFlac); + if (result == MA_SUCCESS) { runningPCMFrameCount += pcmFrameCountInThisFrame; } else { - if (result == DRFLAC_CRC_MISMATCH) { + if (result == MA_CRC_MISMATCH) { continue; } else { - return DRFLAC_FALSE; + return MA_FALSE; } } } } } -static drflac_bool32 drflac__init_private__ogg(drflac_init_info* pInit, drflac_read_proc onRead, drflac_seek_proc onSeek, drflac_meta_proc onMeta, void* pUserData, void* pUserDataMD, drflac_bool32 relaxed) +static ma_bool32 ma_dr_flac__init_private__ogg(ma_dr_flac_init_info* pInit, ma_dr_flac_read_proc onRead, ma_dr_flac_seek_proc onSeek, ma_dr_flac_meta_proc onMeta, void* pUserData, void* pUserDataMD, ma_bool32 relaxed) { - drflac_ogg_page_header header; - drflac_uint32 crc32 = DRFLAC_OGG_CAPTURE_PATTERN_CRC32; - drflac_uint32 bytesRead = 0; + ma_dr_flac_ogg_page_header header; + ma_uint32 crc32 = MA_DR_FLAC_OGG_CAPTURE_PATTERN_CRC32; + ma_uint32 bytesRead = 0; (void)relaxed; - pInit->container = drflac_container_ogg; + pInit->container = ma_dr_flac_container_ogg; pInit->oggFirstBytePos = 0; - if (drflac_ogg__read_page_header_after_capture_pattern(onRead, pUserData, &header, &bytesRead, &crc32) != DRFLAC_SUCCESS) { - return DRFLAC_FALSE; + if (ma_dr_flac_ogg__read_page_header_after_capture_pattern(onRead, pUserData, &header, &bytesRead, &crc32) != MA_SUCCESS) { + return MA_FALSE; } pInit->runningFilePos += bytesRead; for (;;) { int pageBodySize; if ((header.headerType & 0x02) == 0) { - return DRFLAC_FALSE; + return MA_FALSE; } - pageBodySize = drflac_ogg__get_page_body_size(&header); + pageBodySize = ma_dr_flac_ogg__get_page_body_size(&header); if (pageBodySize == 51) { - drflac_uint32 bytesRemainingInPage = pageBodySize; - drflac_uint8 packetType; + ma_uint32 bytesRemainingInPage = pageBodySize; + ma_uint8 packetType; if (onRead(pUserData, &packetType, 1) != 1) { - return DRFLAC_FALSE; + return MA_FALSE; } bytesRemainingInPage -= 1; if (packetType == 0x7F) { - drflac_uint8 sig[4]; + ma_uint8 sig[4]; if (onRead(pUserData, sig, 4) != 4) { - return DRFLAC_FALSE; + return MA_FALSE; } bytesRemainingInPage -= 4; if (sig[0] == 'F' && sig[1] == 'L' && sig[2] == 'A' && sig[3] == 'C') { - drflac_uint8 mappingVersion[2]; + ma_uint8 mappingVersion[2]; if (onRead(pUserData, mappingVersion, 2) != 2) { - return DRFLAC_FALSE; + return MA_FALSE; } if (mappingVersion[0] != 1) { - return DRFLAC_FALSE; + return MA_FALSE; } - if (!onSeek(pUserData, 2, drflac_seek_origin_current)) { - return DRFLAC_FALSE; + if (!onSeek(pUserData, 2, ma_dr_flac_seek_origin_current)) { + return MA_FALSE; } if (onRead(pUserData, sig, 4) != 4) { - return DRFLAC_FALSE; + return MA_FALSE; } if (sig[0] == 'f' && sig[1] == 'L' && sig[2] == 'a' && sig[3] == 'C') { - drflac_streaminfo streaminfo; - drflac_uint8 isLastBlock; - drflac_uint8 blockType; - drflac_uint32 blockSize; - if (!drflac__read_and_decode_block_header(onRead, pUserData, &isLastBlock, &blockType, &blockSize)) { - return DRFLAC_FALSE; + ma_dr_flac_streaminfo streaminfo; + ma_uint8 isLastBlock; + ma_uint8 blockType; + ma_uint32 blockSize; + if (!ma_dr_flac__read_and_decode_block_header(onRead, pUserData, &isLastBlock, &blockType, &blockSize)) { + return MA_FALSE; } - if (blockType != DRFLAC_METADATA_BLOCK_TYPE_STREAMINFO || blockSize != 34) { - return DRFLAC_FALSE; + if (blockType != MA_DR_FLAC_METADATA_BLOCK_TYPE_STREAMINFO || blockSize != 34) { + return MA_FALSE; } - if (drflac__read_streaminfo(onRead, pUserData, &streaminfo)) { - pInit->hasStreamInfoBlock = DRFLAC_TRUE; + if (ma_dr_flac__read_streaminfo(onRead, pUserData, &streaminfo)) { + pInit->hasStreamInfoBlock = MA_TRUE; pInit->sampleRate = streaminfo.sampleRate; pInit->channels = streaminfo.channels; pInit->bitsPerSample = streaminfo.bitsPerSample; @@ -83642,8 +86808,8 @@ static drflac_bool32 drflac__init_private__ogg(drflac_init_info* pInit, drflac_r pInit->maxBlockSizeInPCMFrames = streaminfo.maxBlockSizeInPCMFrames; pInit->hasMetadataBlocks = !isLastBlock; if (onMeta) { - drflac_metadata metadata; - metadata.type = DRFLAC_METADATA_BLOCK_TYPE_STREAMINFO; + ma_dr_flac_metadata metadata; + metadata.type = MA_DR_FLAC_METADATA_BLOCK_TYPE_STREAMINFO; metadata.pRawData = NULL; metadata.rawDataSize = 0; metadata.data.streaminfo = streaminfo; @@ -83655,44 +86821,44 @@ static drflac_bool32 drflac__init_private__ogg(drflac_init_info* pInit, drflac_r pInit->oggBosHeader = header; break; } else { - return DRFLAC_FALSE; + return MA_FALSE; } } else { - return DRFLAC_FALSE; + return MA_FALSE; } } else { - if (!onSeek(pUserData, bytesRemainingInPage, drflac_seek_origin_current)) { - return DRFLAC_FALSE; + if (!onSeek(pUserData, bytesRemainingInPage, ma_dr_flac_seek_origin_current)) { + return MA_FALSE; } } } else { - if (!onSeek(pUserData, bytesRemainingInPage, drflac_seek_origin_current)) { - return DRFLAC_FALSE; + if (!onSeek(pUserData, bytesRemainingInPage, ma_dr_flac_seek_origin_current)) { + return MA_FALSE; } } } else { - if (!onSeek(pUserData, pageBodySize, drflac_seek_origin_current)) { - return DRFLAC_FALSE; + if (!onSeek(pUserData, pageBodySize, ma_dr_flac_seek_origin_current)) { + return MA_FALSE; } } pInit->runningFilePos += pageBodySize; - if (drflac_ogg__read_page_header(onRead, pUserData, &header, &bytesRead, &crc32) != DRFLAC_SUCCESS) { - return DRFLAC_FALSE; + if (ma_dr_flac_ogg__read_page_header(onRead, pUserData, &header, &bytesRead, &crc32) != MA_SUCCESS) { + return MA_FALSE; } pInit->runningFilePos += bytesRead; } - pInit->hasMetadataBlocks = DRFLAC_TRUE; - return DRFLAC_TRUE; + pInit->hasMetadataBlocks = MA_TRUE; + return MA_TRUE; } #endif -static drflac_bool32 drflac__init_private(drflac_init_info* pInit, drflac_read_proc onRead, drflac_seek_proc onSeek, drflac_meta_proc onMeta, drflac_container container, void* pUserData, void* pUserDataMD) +static ma_bool32 ma_dr_flac__init_private(ma_dr_flac_init_info* pInit, ma_dr_flac_read_proc onRead, ma_dr_flac_seek_proc onSeek, ma_dr_flac_meta_proc onMeta, ma_dr_flac_container container, void* pUserData, void* pUserDataMD) { - drflac_bool32 relaxed; - drflac_uint8 id[4]; + ma_bool32 relaxed; + ma_uint8 id[4]; if (pInit == NULL || onRead == NULL || onSeek == NULL) { - return DRFLAC_FALSE; + return MA_FALSE; } - DRFLAC_ZERO_MEMORY(pInit, sizeof(*pInit)); + MA_DR_FLAC_ZERO_MEMORY(pInit, sizeof(*pInit)); pInit->onRead = onRead; pInit->onSeek = onSeek; pInit->onMeta = onMeta; @@ -83702,29 +86868,29 @@ static drflac_bool32 drflac__init_private(drflac_init_info* pInit, drflac_read_p pInit->bs.onRead = onRead; pInit->bs.onSeek = onSeek; pInit->bs.pUserData = pUserData; - drflac__reset_cache(&pInit->bs); - relaxed = container != drflac_container_unknown; + ma_dr_flac__reset_cache(&pInit->bs); + relaxed = container != ma_dr_flac_container_unknown; for (;;) { if (onRead(pUserData, id, 4) != 4) { - return DRFLAC_FALSE; + return MA_FALSE; } pInit->runningFilePos += 4; if (id[0] == 'I' && id[1] == 'D' && id[2] == '3') { - drflac_uint8 header[6]; - drflac_uint8 flags; - drflac_uint32 headerSize; + ma_uint8 header[6]; + ma_uint8 flags; + ma_uint32 headerSize; if (onRead(pUserData, header, 6) != 6) { - return DRFLAC_FALSE; + return MA_FALSE; } pInit->runningFilePos += 6; flags = header[1]; - DRFLAC_COPY_MEMORY(&headerSize, header+2, 4); - headerSize = drflac__unsynchsafe_32(drflac__be2host_32(headerSize)); + MA_DR_FLAC_COPY_MEMORY(&headerSize, header+2, 4); + headerSize = ma_dr_flac__unsynchsafe_32(ma_dr_flac__be2host_32(headerSize)); if (flags & 0x10) { headerSize += 10; } - if (!onSeek(pUserData, headerSize, drflac_seek_origin_current)) { - return DRFLAC_FALSE; + if (!onSeek(pUserData, headerSize, ma_dr_flac_seek_origin_current)) { + return MA_FALSE; } pInit->runningFilePos += headerSize; } else { @@ -83732,56 +86898,56 @@ static drflac_bool32 drflac__init_private(drflac_init_info* pInit, drflac_read_p } } if (id[0] == 'f' && id[1] == 'L' && id[2] == 'a' && id[3] == 'C') { - return drflac__init_private__native(pInit, onRead, onSeek, onMeta, pUserData, pUserDataMD, relaxed); + return ma_dr_flac__init_private__native(pInit, onRead, onSeek, onMeta, pUserData, pUserDataMD, relaxed); } -#ifndef DR_FLAC_NO_OGG +#ifndef MA_DR_FLAC_NO_OGG if (id[0] == 'O' && id[1] == 'g' && id[2] == 'g' && id[3] == 'S') { - return drflac__init_private__ogg(pInit, onRead, onSeek, onMeta, pUserData, pUserDataMD, relaxed); + return ma_dr_flac__init_private__ogg(pInit, onRead, onSeek, onMeta, pUserData, pUserDataMD, relaxed); } #endif if (relaxed) { - if (container == drflac_container_native) { - return drflac__init_private__native(pInit, onRead, onSeek, onMeta, pUserData, pUserDataMD, relaxed); + if (container == ma_dr_flac_container_native) { + return ma_dr_flac__init_private__native(pInit, onRead, onSeek, onMeta, pUserData, pUserDataMD, relaxed); } -#ifndef DR_FLAC_NO_OGG - if (container == drflac_container_ogg) { - return drflac__init_private__ogg(pInit, onRead, onSeek, onMeta, pUserData, pUserDataMD, relaxed); +#ifndef MA_DR_FLAC_NO_OGG + if (container == ma_dr_flac_container_ogg) { + return ma_dr_flac__init_private__ogg(pInit, onRead, onSeek, onMeta, pUserData, pUserDataMD, relaxed); } #endif } - return DRFLAC_FALSE; + return MA_FALSE; } -static void drflac__init_from_info(drflac* pFlac, const drflac_init_info* pInit) +static void ma_dr_flac__init_from_info(ma_dr_flac* pFlac, const ma_dr_flac_init_info* pInit) { - DRFLAC_ASSERT(pFlac != NULL); - DRFLAC_ASSERT(pInit != NULL); - DRFLAC_ZERO_MEMORY(pFlac, sizeof(*pFlac)); + MA_DR_FLAC_ASSERT(pFlac != NULL); + MA_DR_FLAC_ASSERT(pInit != NULL); + MA_DR_FLAC_ZERO_MEMORY(pFlac, sizeof(*pFlac)); pFlac->bs = pInit->bs; pFlac->onMeta = pInit->onMeta; pFlac->pUserDataMD = pInit->pUserDataMD; pFlac->maxBlockSizeInPCMFrames = pInit->maxBlockSizeInPCMFrames; pFlac->sampleRate = pInit->sampleRate; - pFlac->channels = (drflac_uint8)pInit->channels; - pFlac->bitsPerSample = (drflac_uint8)pInit->bitsPerSample; + pFlac->channels = (ma_uint8)pInit->channels; + pFlac->bitsPerSample = (ma_uint8)pInit->bitsPerSample; pFlac->totalPCMFrameCount = pInit->totalPCMFrameCount; pFlac->container = pInit->container; } -static drflac* drflac_open_with_metadata_private(drflac_read_proc onRead, drflac_seek_proc onSeek, drflac_meta_proc onMeta, drflac_container container, void* pUserData, void* pUserDataMD, const drflac_allocation_callbacks* pAllocationCallbacks) +static ma_dr_flac* ma_dr_flac_open_with_metadata_private(ma_dr_flac_read_proc onRead, ma_dr_flac_seek_proc onSeek, ma_dr_flac_meta_proc onMeta, ma_dr_flac_container container, void* pUserData, void* pUserDataMD, const ma_allocation_callbacks* pAllocationCallbacks) { - drflac_init_info init; - drflac_uint32 allocationSize; - drflac_uint32 wholeSIMDVectorCountPerChannel; - drflac_uint32 decodedSamplesAllocationSize; -#ifndef DR_FLAC_NO_OGG - drflac_oggbs oggbs; + ma_dr_flac_init_info init; + ma_uint32 allocationSize; + ma_uint32 wholeSIMDVectorCountPerChannel; + ma_uint32 decodedSamplesAllocationSize; +#ifndef MA_DR_FLAC_NO_OGG + ma_dr_flac_oggbs* pOggbs = NULL; #endif - drflac_uint64 firstFramePos; - drflac_uint64 seektablePos; - drflac_uint32 seektableSize; - drflac_allocation_callbacks allocationCallbacks; - drflac* pFlac; - drflac__init_cpu_caps(); - if (!drflac__init_private(&init, onRead, onSeek, onMeta, container, pUserData, pUserDataMD)) { + ma_uint64 firstFramePos; + ma_uint64 seektablePos; + ma_uint32 seekpointCount; + ma_allocation_callbacks allocationCallbacks; + ma_dr_flac* pFlac; + ma_dr_flac__init_cpu_caps(); + if (!ma_dr_flac__init_private(&init, onRead, onSeek, onMeta, container, pUserData, pUserDataMD)) { return NULL; } if (pAllocationCallbacks != NULL) { @@ -83791,74 +86957,84 @@ static drflac* drflac_open_with_metadata_private(drflac_read_proc onRead, drflac } } else { allocationCallbacks.pUserData = NULL; - allocationCallbacks.onMalloc = drflac__malloc_default; - allocationCallbacks.onRealloc = drflac__realloc_default; - allocationCallbacks.onFree = drflac__free_default; + allocationCallbacks.onMalloc = ma_dr_flac__malloc_default; + allocationCallbacks.onRealloc = ma_dr_flac__realloc_default; + allocationCallbacks.onFree = ma_dr_flac__free_default; } - allocationSize = sizeof(drflac); - if ((init.maxBlockSizeInPCMFrames % (DRFLAC_MAX_SIMD_VECTOR_SIZE / sizeof(drflac_int32))) == 0) { - wholeSIMDVectorCountPerChannel = (init.maxBlockSizeInPCMFrames / (DRFLAC_MAX_SIMD_VECTOR_SIZE / sizeof(drflac_int32))); + allocationSize = sizeof(ma_dr_flac); + if ((init.maxBlockSizeInPCMFrames % (MA_DR_FLAC_MAX_SIMD_VECTOR_SIZE / sizeof(ma_int32))) == 0) { + wholeSIMDVectorCountPerChannel = (init.maxBlockSizeInPCMFrames / (MA_DR_FLAC_MAX_SIMD_VECTOR_SIZE / sizeof(ma_int32))); } else { - wholeSIMDVectorCountPerChannel = (init.maxBlockSizeInPCMFrames / (DRFLAC_MAX_SIMD_VECTOR_SIZE / sizeof(drflac_int32))) + 1; + wholeSIMDVectorCountPerChannel = (init.maxBlockSizeInPCMFrames / (MA_DR_FLAC_MAX_SIMD_VECTOR_SIZE / sizeof(ma_int32))) + 1; } - decodedSamplesAllocationSize = wholeSIMDVectorCountPerChannel * DRFLAC_MAX_SIMD_VECTOR_SIZE * init.channels; + decodedSamplesAllocationSize = wholeSIMDVectorCountPerChannel * MA_DR_FLAC_MAX_SIMD_VECTOR_SIZE * init.channels; allocationSize += decodedSamplesAllocationSize; - allocationSize += DRFLAC_MAX_SIMD_VECTOR_SIZE; -#ifndef DR_FLAC_NO_OGG - if (init.container == drflac_container_ogg) { - allocationSize += sizeof(drflac_oggbs); - } - DRFLAC_ZERO_MEMORY(&oggbs, sizeof(oggbs)); - if (init.container == drflac_container_ogg) { - oggbs.onRead = onRead; - oggbs.onSeek = onSeek; - oggbs.pUserData = pUserData; - oggbs.currentBytePos = init.oggFirstBytePos; - oggbs.firstBytePos = init.oggFirstBytePos; - oggbs.serialNumber = init.oggSerial; - oggbs.bosPageHeader = init.oggBosHeader; - oggbs.bytesRemainingInPage = 0; - } -#endif - firstFramePos = 42; - seektablePos = 0; - seektableSize = 0; - if (init.hasMetadataBlocks) { - drflac_read_proc onReadOverride = onRead; - drflac_seek_proc onSeekOverride = onSeek; - void* pUserDataOverride = pUserData; -#ifndef DR_FLAC_NO_OGG - if (init.container == drflac_container_ogg) { - onReadOverride = drflac__on_read_ogg; - onSeekOverride = drflac__on_seek_ogg; - pUserDataOverride = (void*)&oggbs; - } -#endif - if (!drflac__read_and_decode_metadata(onReadOverride, onSeekOverride, onMeta, pUserDataOverride, pUserDataMD, &firstFramePos, &seektablePos, &seektableSize, &allocationCallbacks)) { + allocationSize += MA_DR_FLAC_MAX_SIMD_VECTOR_SIZE; +#ifndef MA_DR_FLAC_NO_OGG + if (init.container == ma_dr_flac_container_ogg) { + allocationSize += sizeof(ma_dr_flac_oggbs); + pOggbs = (ma_dr_flac_oggbs*)ma_dr_flac__malloc_from_callbacks(sizeof(*pOggbs), &allocationCallbacks); + if (pOggbs == NULL) { return NULL; } - allocationSize += seektableSize; + MA_DR_FLAC_ZERO_MEMORY(pOggbs, sizeof(*pOggbs)); + pOggbs->onRead = onRead; + pOggbs->onSeek = onSeek; + pOggbs->pUserData = pUserData; + pOggbs->currentBytePos = init.oggFirstBytePos; + pOggbs->firstBytePos = init.oggFirstBytePos; + pOggbs->serialNumber = init.oggSerial; + pOggbs->bosPageHeader = init.oggBosHeader; + pOggbs->bytesRemainingInPage = 0; } - pFlac = (drflac*)drflac__malloc_from_callbacks(allocationSize, &allocationCallbacks); +#endif + firstFramePos = 42; + seektablePos = 0; + seekpointCount = 0; + if (init.hasMetadataBlocks) { + ma_dr_flac_read_proc onReadOverride = onRead; + ma_dr_flac_seek_proc onSeekOverride = onSeek; + void* pUserDataOverride = pUserData; +#ifndef MA_DR_FLAC_NO_OGG + if (init.container == ma_dr_flac_container_ogg) { + onReadOverride = ma_dr_flac__on_read_ogg; + onSeekOverride = ma_dr_flac__on_seek_ogg; + pUserDataOverride = (void*)pOggbs; + } +#endif + if (!ma_dr_flac__read_and_decode_metadata(onReadOverride, onSeekOverride, onMeta, pUserDataOverride, pUserDataMD, &firstFramePos, &seektablePos, &seekpointCount, &allocationCallbacks)) { + #ifndef MA_DR_FLAC_NO_OGG + ma_dr_flac__free_from_callbacks(pOggbs, &allocationCallbacks); + #endif + return NULL; + } + allocationSize += seekpointCount * sizeof(ma_dr_flac_seekpoint); + } + pFlac = (ma_dr_flac*)ma_dr_flac__malloc_from_callbacks(allocationSize, &allocationCallbacks); if (pFlac == NULL) { + #ifndef MA_DR_FLAC_NO_OGG + ma_dr_flac__free_from_callbacks(pOggbs, &allocationCallbacks); + #endif return NULL; } - drflac__init_from_info(pFlac, &init); + ma_dr_flac__init_from_info(pFlac, &init); pFlac->allocationCallbacks = allocationCallbacks; - pFlac->pDecodedSamples = (drflac_int32*)drflac_align((size_t)pFlac->pExtraData, DRFLAC_MAX_SIMD_VECTOR_SIZE); -#ifndef DR_FLAC_NO_OGG - if (init.container == drflac_container_ogg) { - drflac_oggbs* pInternalOggbs = (drflac_oggbs*)((drflac_uint8*)pFlac->pDecodedSamples + decodedSamplesAllocationSize + seektableSize); - DRFLAC_COPY_MEMORY(pInternalOggbs, &oggbs, sizeof(oggbs)); - pFlac->bs.onRead = drflac__on_read_ogg; - pFlac->bs.onSeek = drflac__on_seek_ogg; + pFlac->pDecodedSamples = (ma_int32*)ma_dr_flac_align((size_t)pFlac->pExtraData, MA_DR_FLAC_MAX_SIMD_VECTOR_SIZE); +#ifndef MA_DR_FLAC_NO_OGG + if (init.container == ma_dr_flac_container_ogg) { + ma_dr_flac_oggbs* pInternalOggbs = (ma_dr_flac_oggbs*)((ma_uint8*)pFlac->pDecodedSamples + decodedSamplesAllocationSize + (seekpointCount * sizeof(ma_dr_flac_seekpoint))); + MA_DR_FLAC_COPY_MEMORY(pInternalOggbs, pOggbs, sizeof(*pOggbs)); + ma_dr_flac__free_from_callbacks(pOggbs, &allocationCallbacks); + pOggbs = NULL; + pFlac->bs.onRead = ma_dr_flac__on_read_ogg; + pFlac->bs.onSeek = ma_dr_flac__on_seek_ogg; pFlac->bs.pUserData = (void*)pInternalOggbs; pFlac->_oggbs = (void*)pInternalOggbs; } #endif pFlac->firstFLACFramePosInBytes = firstFramePos; -#ifndef DR_FLAC_NO_OGG - if (init.container == drflac_container_ogg) +#ifndef MA_DR_FLAC_NO_OGG + if (init.container == ma_dr_flac_container_ogg) { pFlac->pSeekpoints = NULL; pFlac->seekpointCount = 0; @@ -83867,24 +87043,25 @@ static drflac* drflac_open_with_metadata_private(drflac_read_proc onRead, drflac #endif { if (seektablePos != 0) { - pFlac->seekpointCount = seektableSize / sizeof(*pFlac->pSeekpoints); - pFlac->pSeekpoints = (drflac_seekpoint*)((drflac_uint8*)pFlac->pDecodedSamples + decodedSamplesAllocationSize); - DRFLAC_ASSERT(pFlac->bs.onSeek != NULL); - DRFLAC_ASSERT(pFlac->bs.onRead != NULL); - if (pFlac->bs.onSeek(pFlac->bs.pUserData, (int)seektablePos, drflac_seek_origin_start)) { - if (pFlac->bs.onRead(pFlac->bs.pUserData, pFlac->pSeekpoints, seektableSize) == seektableSize) { - drflac_uint32 iSeekpoint; - for (iSeekpoint = 0; iSeekpoint < pFlac->seekpointCount; ++iSeekpoint) { - pFlac->pSeekpoints[iSeekpoint].firstPCMFrame = drflac__be2host_64(pFlac->pSeekpoints[iSeekpoint].firstPCMFrame); - pFlac->pSeekpoints[iSeekpoint].flacFrameOffset = drflac__be2host_64(pFlac->pSeekpoints[iSeekpoint].flacFrameOffset); - pFlac->pSeekpoints[iSeekpoint].pcmFrameCount = drflac__be2host_16(pFlac->pSeekpoints[iSeekpoint].pcmFrameCount); + pFlac->seekpointCount = seekpointCount; + pFlac->pSeekpoints = (ma_dr_flac_seekpoint*)((ma_uint8*)pFlac->pDecodedSamples + decodedSamplesAllocationSize); + MA_DR_FLAC_ASSERT(pFlac->bs.onSeek != NULL); + MA_DR_FLAC_ASSERT(pFlac->bs.onRead != NULL); + if (pFlac->bs.onSeek(pFlac->bs.pUserData, (int)seektablePos, ma_dr_flac_seek_origin_start)) { + ma_uint32 iSeekpoint; + for (iSeekpoint = 0; iSeekpoint < seekpointCount; iSeekpoint += 1) { + if (pFlac->bs.onRead(pFlac->bs.pUserData, pFlac->pSeekpoints + iSeekpoint, MA_DR_FLAC_SEEKPOINT_SIZE_IN_BYTES) == MA_DR_FLAC_SEEKPOINT_SIZE_IN_BYTES) { + pFlac->pSeekpoints[iSeekpoint].firstPCMFrame = ma_dr_flac__be2host_64(pFlac->pSeekpoints[iSeekpoint].firstPCMFrame); + pFlac->pSeekpoints[iSeekpoint].flacFrameOffset = ma_dr_flac__be2host_64(pFlac->pSeekpoints[iSeekpoint].flacFrameOffset); + pFlac->pSeekpoints[iSeekpoint].pcmFrameCount = ma_dr_flac__be2host_16(pFlac->pSeekpoints[iSeekpoint].pcmFrameCount); + } else { + pFlac->pSeekpoints = NULL; + pFlac->seekpointCount = 0; + break; } - } else { - pFlac->pSeekpoints = NULL; - pFlac->seekpointCount = 0; } - if (!pFlac->bs.onSeek(pFlac->bs.pUserData, (int)pFlac->firstFLACFramePosInBytes, drflac_seek_origin_start)) { - drflac__free_from_callbacks(pFlac, &allocationCallbacks); + if (!pFlac->bs.onSeek(pFlac->bs.pUserData, (int)pFlac->firstFLACFramePosInBytes, ma_dr_flac_seek_origin_start)) { + ma_dr_flac__free_from_callbacks(pFlac, &allocationCallbacks); return NULL; } } else { @@ -83896,18 +87073,18 @@ static drflac* drflac_open_with_metadata_private(drflac_read_proc onRead, drflac if (!init.hasStreamInfoBlock) { pFlac->currentFLACFrame.header = init.firstFrameHeader; for (;;) { - drflac_result result = drflac__decode_flac_frame(pFlac); - if (result == DRFLAC_SUCCESS) { + ma_result result = ma_dr_flac__decode_flac_frame(pFlac); + if (result == MA_SUCCESS) { break; } else { - if (result == DRFLAC_CRC_MISMATCH) { - if (!drflac__read_next_flac_frame_header(&pFlac->bs, pFlac->bitsPerSample, &pFlac->currentFLACFrame.header)) { - drflac__free_from_callbacks(pFlac, &allocationCallbacks); + if (result == MA_CRC_MISMATCH) { + if (!ma_dr_flac__read_next_flac_frame_header(&pFlac->bs, pFlac->bitsPerSample, &pFlac->currentFLACFrame.header)) { + ma_dr_flac__free_from_callbacks(pFlac, &allocationCallbacks); return NULL; } continue; } else { - drflac__free_from_callbacks(pFlac, &allocationCallbacks); + ma_dr_flac__free_from_callbacks(pFlac, &allocationCallbacks); return NULL; } } @@ -83915,573 +87092,73 @@ static drflac* drflac_open_with_metadata_private(drflac_read_proc onRead, drflac } return pFlac; } -#ifndef DR_FLAC_NO_STDIO +#ifndef MA_DR_FLAC_NO_STDIO #include +#ifndef MA_DR_FLAC_NO_WCHAR #include -#include -static drflac_result drflac_result_from_errno(int e) -{ - switch (e) - { - case 0: return DRFLAC_SUCCESS; - #ifdef EPERM - case EPERM: return DRFLAC_INVALID_OPERATION; - #endif - #ifdef ENOENT - case ENOENT: return DRFLAC_DOES_NOT_EXIST; - #endif - #ifdef ESRCH - case ESRCH: return DRFLAC_DOES_NOT_EXIST; - #endif - #ifdef EINTR - case EINTR: return DRFLAC_INTERRUPT; - #endif - #ifdef EIO - case EIO: return DRFLAC_IO_ERROR; - #endif - #ifdef ENXIO - case ENXIO: return DRFLAC_DOES_NOT_EXIST; - #endif - #ifdef E2BIG - case E2BIG: return DRFLAC_INVALID_ARGS; - #endif - #ifdef ENOEXEC - case ENOEXEC: return DRFLAC_INVALID_FILE; - #endif - #ifdef EBADF - case EBADF: return DRFLAC_INVALID_FILE; - #endif - #ifdef ECHILD - case ECHILD: return DRFLAC_ERROR; - #endif - #ifdef EAGAIN - case EAGAIN: return DRFLAC_UNAVAILABLE; - #endif - #ifdef ENOMEM - case ENOMEM: return DRFLAC_OUT_OF_MEMORY; - #endif - #ifdef EACCES - case EACCES: return DRFLAC_ACCESS_DENIED; - #endif - #ifdef EFAULT - case EFAULT: return DRFLAC_BAD_ADDRESS; - #endif - #ifdef ENOTBLK - case ENOTBLK: return DRFLAC_ERROR; - #endif - #ifdef EBUSY - case EBUSY: return DRFLAC_BUSY; - #endif - #ifdef EEXIST - case EEXIST: return DRFLAC_ALREADY_EXISTS; - #endif - #ifdef EXDEV - case EXDEV: return DRFLAC_ERROR; - #endif - #ifdef ENODEV - case ENODEV: return DRFLAC_DOES_NOT_EXIST; - #endif - #ifdef ENOTDIR - case ENOTDIR: return DRFLAC_NOT_DIRECTORY; - #endif - #ifdef EISDIR - case EISDIR: return DRFLAC_IS_DIRECTORY; - #endif - #ifdef EINVAL - case EINVAL: return DRFLAC_INVALID_ARGS; - #endif - #ifdef ENFILE - case ENFILE: return DRFLAC_TOO_MANY_OPEN_FILES; - #endif - #ifdef EMFILE - case EMFILE: return DRFLAC_TOO_MANY_OPEN_FILES; - #endif - #ifdef ENOTTY - case ENOTTY: return DRFLAC_INVALID_OPERATION; - #endif - #ifdef ETXTBSY - case ETXTBSY: return DRFLAC_BUSY; - #endif - #ifdef EFBIG - case EFBIG: return DRFLAC_TOO_BIG; - #endif - #ifdef ENOSPC - case ENOSPC: return DRFLAC_NO_SPACE; - #endif - #ifdef ESPIPE - case ESPIPE: return DRFLAC_BAD_SEEK; - #endif - #ifdef EROFS - case EROFS: return DRFLAC_ACCESS_DENIED; - #endif - #ifdef EMLINK - case EMLINK: return DRFLAC_TOO_MANY_LINKS; - #endif - #ifdef EPIPE - case EPIPE: return DRFLAC_BAD_PIPE; - #endif - #ifdef EDOM - case EDOM: return DRFLAC_OUT_OF_RANGE; - #endif - #ifdef ERANGE - case ERANGE: return DRFLAC_OUT_OF_RANGE; - #endif - #ifdef EDEADLK - case EDEADLK: return DRFLAC_DEADLOCK; - #endif - #ifdef ENAMETOOLONG - case ENAMETOOLONG: return DRFLAC_PATH_TOO_LONG; - #endif - #ifdef ENOLCK - case ENOLCK: return DRFLAC_ERROR; - #endif - #ifdef ENOSYS - case ENOSYS: return DRFLAC_NOT_IMPLEMENTED; - #endif - #ifdef ENOTEMPTY - case ENOTEMPTY: return DRFLAC_DIRECTORY_NOT_EMPTY; - #endif - #ifdef ELOOP - case ELOOP: return DRFLAC_TOO_MANY_LINKS; - #endif - #ifdef ENOMSG - case ENOMSG: return DRFLAC_NO_MESSAGE; - #endif - #ifdef EIDRM - case EIDRM: return DRFLAC_ERROR; - #endif - #ifdef ECHRNG - case ECHRNG: return DRFLAC_ERROR; - #endif - #ifdef EL2NSYNC - case EL2NSYNC: return DRFLAC_ERROR; - #endif - #ifdef EL3HLT - case EL3HLT: return DRFLAC_ERROR; - #endif - #ifdef EL3RST - case EL3RST: return DRFLAC_ERROR; - #endif - #ifdef ELNRNG - case ELNRNG: return DRFLAC_OUT_OF_RANGE; - #endif - #ifdef EUNATCH - case EUNATCH: return DRFLAC_ERROR; - #endif - #ifdef ENOCSI - case ENOCSI: return DRFLAC_ERROR; - #endif - #ifdef EL2HLT - case EL2HLT: return DRFLAC_ERROR; - #endif - #ifdef EBADE - case EBADE: return DRFLAC_ERROR; - #endif - #ifdef EBADR - case EBADR: return DRFLAC_ERROR; - #endif - #ifdef EXFULL - case EXFULL: return DRFLAC_ERROR; - #endif - #ifdef ENOANO - case ENOANO: return DRFLAC_ERROR; - #endif - #ifdef EBADRQC - case EBADRQC: return DRFLAC_ERROR; - #endif - #ifdef EBADSLT - case EBADSLT: return DRFLAC_ERROR; - #endif - #ifdef EBFONT - case EBFONT: return DRFLAC_INVALID_FILE; - #endif - #ifdef ENOSTR - case ENOSTR: return DRFLAC_ERROR; - #endif - #ifdef ENODATA - case ENODATA: return DRFLAC_NO_DATA_AVAILABLE; - #endif - #ifdef ETIME - case ETIME: return DRFLAC_TIMEOUT; - #endif - #ifdef ENOSR - case ENOSR: return DRFLAC_NO_DATA_AVAILABLE; - #endif - #ifdef ENONET - case ENONET: return DRFLAC_NO_NETWORK; - #endif - #ifdef ENOPKG - case ENOPKG: return DRFLAC_ERROR; - #endif - #ifdef EREMOTE - case EREMOTE: return DRFLAC_ERROR; - #endif - #ifdef ENOLINK - case ENOLINK: return DRFLAC_ERROR; - #endif - #ifdef EADV - case EADV: return DRFLAC_ERROR; - #endif - #ifdef ESRMNT - case ESRMNT: return DRFLAC_ERROR; - #endif - #ifdef ECOMM - case ECOMM: return DRFLAC_ERROR; - #endif - #ifdef EPROTO - case EPROTO: return DRFLAC_ERROR; - #endif - #ifdef EMULTIHOP - case EMULTIHOP: return DRFLAC_ERROR; - #endif - #ifdef EDOTDOT - case EDOTDOT: return DRFLAC_ERROR; - #endif - #ifdef EBADMSG - case EBADMSG: return DRFLAC_BAD_MESSAGE; - #endif - #ifdef EOVERFLOW - case EOVERFLOW: return DRFLAC_TOO_BIG; - #endif - #ifdef ENOTUNIQ - case ENOTUNIQ: return DRFLAC_NOT_UNIQUE; - #endif - #ifdef EBADFD - case EBADFD: return DRFLAC_ERROR; - #endif - #ifdef EREMCHG - case EREMCHG: return DRFLAC_ERROR; - #endif - #ifdef ELIBACC - case ELIBACC: return DRFLAC_ACCESS_DENIED; - #endif - #ifdef ELIBBAD - case ELIBBAD: return DRFLAC_INVALID_FILE; - #endif - #ifdef ELIBSCN - case ELIBSCN: return DRFLAC_INVALID_FILE; - #endif - #ifdef ELIBMAX - case ELIBMAX: return DRFLAC_ERROR; - #endif - #ifdef ELIBEXEC - case ELIBEXEC: return DRFLAC_ERROR; - #endif - #ifdef EILSEQ - case EILSEQ: return DRFLAC_INVALID_DATA; - #endif - #ifdef ERESTART - case ERESTART: return DRFLAC_ERROR; - #endif - #ifdef ESTRPIPE - case ESTRPIPE: return DRFLAC_ERROR; - #endif - #ifdef EUSERS - case EUSERS: return DRFLAC_ERROR; - #endif - #ifdef ENOTSOCK - case ENOTSOCK: return DRFLAC_NOT_SOCKET; - #endif - #ifdef EDESTADDRREQ - case EDESTADDRREQ: return DRFLAC_NO_ADDRESS; - #endif - #ifdef EMSGSIZE - case EMSGSIZE: return DRFLAC_TOO_BIG; - #endif - #ifdef EPROTOTYPE - case EPROTOTYPE: return DRFLAC_BAD_PROTOCOL; - #endif - #ifdef ENOPROTOOPT - case ENOPROTOOPT: return DRFLAC_PROTOCOL_UNAVAILABLE; - #endif - #ifdef EPROTONOSUPPORT - case EPROTONOSUPPORT: return DRFLAC_PROTOCOL_NOT_SUPPORTED; - #endif - #ifdef ESOCKTNOSUPPORT - case ESOCKTNOSUPPORT: return DRFLAC_SOCKET_NOT_SUPPORTED; - #endif - #ifdef EOPNOTSUPP - case EOPNOTSUPP: return DRFLAC_INVALID_OPERATION; - #endif - #ifdef EPFNOSUPPORT - case EPFNOSUPPORT: return DRFLAC_PROTOCOL_FAMILY_NOT_SUPPORTED; - #endif - #ifdef EAFNOSUPPORT - case EAFNOSUPPORT: return DRFLAC_ADDRESS_FAMILY_NOT_SUPPORTED; - #endif - #ifdef EADDRINUSE - case EADDRINUSE: return DRFLAC_ALREADY_IN_USE; - #endif - #ifdef EADDRNOTAVAIL - case EADDRNOTAVAIL: return DRFLAC_ERROR; - #endif - #ifdef ENETDOWN - case ENETDOWN: return DRFLAC_NO_NETWORK; - #endif - #ifdef ENETUNREACH - case ENETUNREACH: return DRFLAC_NO_NETWORK; - #endif - #ifdef ENETRESET - case ENETRESET: return DRFLAC_NO_NETWORK; - #endif - #ifdef ECONNABORTED - case ECONNABORTED: return DRFLAC_NO_NETWORK; - #endif - #ifdef ECONNRESET - case ECONNRESET: return DRFLAC_CONNECTION_RESET; - #endif - #ifdef ENOBUFS - case ENOBUFS: return DRFLAC_NO_SPACE; - #endif - #ifdef EISCONN - case EISCONN: return DRFLAC_ALREADY_CONNECTED; - #endif - #ifdef ENOTCONN - case ENOTCONN: return DRFLAC_NOT_CONNECTED; - #endif - #ifdef ESHUTDOWN - case ESHUTDOWN: return DRFLAC_ERROR; - #endif - #ifdef ETOOMANYREFS - case ETOOMANYREFS: return DRFLAC_ERROR; - #endif - #ifdef ETIMEDOUT - case ETIMEDOUT: return DRFLAC_TIMEOUT; - #endif - #ifdef ECONNREFUSED - case ECONNREFUSED: return DRFLAC_CONNECTION_REFUSED; - #endif - #ifdef EHOSTDOWN - case EHOSTDOWN: return DRFLAC_NO_HOST; - #endif - #ifdef EHOSTUNREACH - case EHOSTUNREACH: return DRFLAC_NO_HOST; - #endif - #ifdef EALREADY - case EALREADY: return DRFLAC_IN_PROGRESS; - #endif - #ifdef EINPROGRESS - case EINPROGRESS: return DRFLAC_IN_PROGRESS; - #endif - #ifdef ESTALE - case ESTALE: return DRFLAC_INVALID_FILE; - #endif - #ifdef EUCLEAN - case EUCLEAN: return DRFLAC_ERROR; - #endif - #ifdef ENOTNAM - case ENOTNAM: return DRFLAC_ERROR; - #endif - #ifdef ENAVAIL - case ENAVAIL: return DRFLAC_ERROR; - #endif - #ifdef EISNAM - case EISNAM: return DRFLAC_ERROR; - #endif - #ifdef EREMOTEIO - case EREMOTEIO: return DRFLAC_IO_ERROR; - #endif - #ifdef EDQUOT - case EDQUOT: return DRFLAC_NO_SPACE; - #endif - #ifdef ENOMEDIUM - case ENOMEDIUM: return DRFLAC_DOES_NOT_EXIST; - #endif - #ifdef EMEDIUMTYPE - case EMEDIUMTYPE: return DRFLAC_ERROR; - #endif - #ifdef ECANCELED - case ECANCELED: return DRFLAC_CANCELLED; - #endif - #ifdef ENOKEY - case ENOKEY: return DRFLAC_ERROR; - #endif - #ifdef EKEYEXPIRED - case EKEYEXPIRED: return DRFLAC_ERROR; - #endif - #ifdef EKEYREVOKED - case EKEYREVOKED: return DRFLAC_ERROR; - #endif - #ifdef EKEYREJECTED - case EKEYREJECTED: return DRFLAC_ERROR; - #endif - #ifdef EOWNERDEAD - case EOWNERDEAD: return DRFLAC_ERROR; - #endif - #ifdef ENOTRECOVERABLE - case ENOTRECOVERABLE: return DRFLAC_ERROR; - #endif - #ifdef ERFKILL - case ERFKILL: return DRFLAC_ERROR; - #endif - #ifdef EHWPOISON - case EHWPOISON: return DRFLAC_ERROR; - #endif - default: return DRFLAC_ERROR; - } -} -static drflac_result drflac_fopen(FILE** ppFile, const char* pFilePath, const char* pOpenMode) -{ -#if defined(_MSC_VER) && _MSC_VER >= 1400 - errno_t err; #endif - if (ppFile != NULL) { - *ppFile = NULL; - } - if (pFilePath == NULL || pOpenMode == NULL || ppFile == NULL) { - return DRFLAC_INVALID_ARGS; - } -#if defined(_MSC_VER) && _MSC_VER >= 1400 - err = fopen_s(ppFile, pFilePath, pOpenMode); - if (err != 0) { - return drflac_result_from_errno(err); - } -#else -#if defined(_WIN32) || defined(__APPLE__) - *ppFile = fopen(pFilePath, pOpenMode); -#else - #if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64 && defined(_LARGEFILE64_SOURCE) - *ppFile = fopen64(pFilePath, pOpenMode); - #else - *ppFile = fopen(pFilePath, pOpenMode); - #endif -#endif - if (*ppFile == NULL) { - drflac_result result = drflac_result_from_errno(errno); - if (result == DRFLAC_SUCCESS) { - result = DRFLAC_ERROR; - } - return result; - } -#endif - return DRFLAC_SUCCESS; -} -#if defined(_WIN32) - #if defined(_MSC_VER) || defined(__MINGW64__) || (!defined(__STRICT_ANSI__) && !defined(_NO_EXT_KEYS)) - #define DRFLAC_HAS_WFOPEN - #endif -#endif -static drflac_result drflac_wfopen(FILE** ppFile, const wchar_t* pFilePath, const wchar_t* pOpenMode, const drflac_allocation_callbacks* pAllocationCallbacks) -{ - if (ppFile != NULL) { - *ppFile = NULL; - } - if (pFilePath == NULL || pOpenMode == NULL || ppFile == NULL) { - return DRFLAC_INVALID_ARGS; - } -#if defined(DRFLAC_HAS_WFOPEN) - { - #if defined(_MSC_VER) && _MSC_VER >= 1400 - errno_t err = _wfopen_s(ppFile, pFilePath, pOpenMode); - if (err != 0) { - return drflac_result_from_errno(err); - } - #else - *ppFile = _wfopen(pFilePath, pOpenMode); - if (*ppFile == NULL) { - return drflac_result_from_errno(errno); - } - #endif - (void)pAllocationCallbacks; - } -#else - { - mbstate_t mbs; - size_t lenMB; - const wchar_t* pFilePathTemp = pFilePath; - char* pFilePathMB = NULL; - char pOpenModeMB[32] = {0}; - DRFLAC_ZERO_OBJECT(&mbs); - lenMB = wcsrtombs(NULL, &pFilePathTemp, 0, &mbs); - if (lenMB == (size_t)-1) { - return drflac_result_from_errno(errno); - } - pFilePathMB = (char*)drflac__malloc_from_callbacks(lenMB + 1, pAllocationCallbacks); - if (pFilePathMB == NULL) { - return DRFLAC_OUT_OF_MEMORY; - } - pFilePathTemp = pFilePath; - DRFLAC_ZERO_OBJECT(&mbs); - wcsrtombs(pFilePathMB, &pFilePathTemp, lenMB + 1, &mbs); - { - size_t i = 0; - for (;;) { - if (pOpenMode[i] == 0) { - pOpenModeMB[i] = '\0'; - break; - } - pOpenModeMB[i] = (char)pOpenMode[i]; - i += 1; - } - } - *ppFile = fopen(pFilePathMB, pOpenModeMB); - drflac__free_from_callbacks(pFilePathMB, pAllocationCallbacks); - } - if (*ppFile == NULL) { - return DRFLAC_ERROR; - } -#endif - return DRFLAC_SUCCESS; -} -static size_t drflac__on_read_stdio(void* pUserData, void* bufferOut, size_t bytesToRead) +static size_t ma_dr_flac__on_read_stdio(void* pUserData, void* bufferOut, size_t bytesToRead) { return fread(bufferOut, 1, bytesToRead, (FILE*)pUserData); } -static drflac_bool32 drflac__on_seek_stdio(void* pUserData, int offset, drflac_seek_origin origin) +static ma_bool32 ma_dr_flac__on_seek_stdio(void* pUserData, int offset, ma_dr_flac_seek_origin origin) { - DRFLAC_ASSERT(offset >= 0); - return fseek((FILE*)pUserData, offset, (origin == drflac_seek_origin_current) ? SEEK_CUR : SEEK_SET) == 0; + MA_DR_FLAC_ASSERT(offset >= 0); + return fseek((FILE*)pUserData, offset, (origin == ma_dr_flac_seek_origin_current) ? SEEK_CUR : SEEK_SET) == 0; } -DRFLAC_API drflac* drflac_open_file(const char* pFileName, const drflac_allocation_callbacks* pAllocationCallbacks) +MA_API ma_dr_flac* ma_dr_flac_open_file(const char* pFileName, const ma_allocation_callbacks* pAllocationCallbacks) { - drflac* pFlac; + ma_dr_flac* pFlac; FILE* pFile; - if (drflac_fopen(&pFile, pFileName, "rb") != DRFLAC_SUCCESS) { + if (ma_fopen(&pFile, pFileName, "rb") != MA_SUCCESS) { return NULL; } - pFlac = drflac_open(drflac__on_read_stdio, drflac__on_seek_stdio, (void*)pFile, pAllocationCallbacks); + pFlac = ma_dr_flac_open(ma_dr_flac__on_read_stdio, ma_dr_flac__on_seek_stdio, (void*)pFile, pAllocationCallbacks); if (pFlac == NULL) { fclose(pFile); return NULL; } return pFlac; } -DRFLAC_API drflac* drflac_open_file_w(const wchar_t* pFileName, const drflac_allocation_callbacks* pAllocationCallbacks) +#ifndef MA_DR_FLAC_NO_WCHAR +MA_API ma_dr_flac* ma_dr_flac_open_file_w(const wchar_t* pFileName, const ma_allocation_callbacks* pAllocationCallbacks) { - drflac* pFlac; + ma_dr_flac* pFlac; FILE* pFile; - if (drflac_wfopen(&pFile, pFileName, L"rb", pAllocationCallbacks) != DRFLAC_SUCCESS) { + if (ma_wfopen(&pFile, pFileName, L"rb", pAllocationCallbacks) != MA_SUCCESS) { return NULL; } - pFlac = drflac_open(drflac__on_read_stdio, drflac__on_seek_stdio, (void*)pFile, pAllocationCallbacks); + pFlac = ma_dr_flac_open(ma_dr_flac__on_read_stdio, ma_dr_flac__on_seek_stdio, (void*)pFile, pAllocationCallbacks); if (pFlac == NULL) { fclose(pFile); return NULL; } return pFlac; } -DRFLAC_API drflac* drflac_open_file_with_metadata(const char* pFileName, drflac_meta_proc onMeta, void* pUserData, const drflac_allocation_callbacks* pAllocationCallbacks) +#endif +MA_API ma_dr_flac* ma_dr_flac_open_file_with_metadata(const char* pFileName, ma_dr_flac_meta_proc onMeta, void* pUserData, const ma_allocation_callbacks* pAllocationCallbacks) { - drflac* pFlac; + ma_dr_flac* pFlac; FILE* pFile; - if (drflac_fopen(&pFile, pFileName, "rb") != DRFLAC_SUCCESS) { + if (ma_fopen(&pFile, pFileName, "rb") != MA_SUCCESS) { return NULL; } - pFlac = drflac_open_with_metadata_private(drflac__on_read_stdio, drflac__on_seek_stdio, onMeta, drflac_container_unknown, (void*)pFile, pUserData, pAllocationCallbacks); + pFlac = ma_dr_flac_open_with_metadata_private(ma_dr_flac__on_read_stdio, ma_dr_flac__on_seek_stdio, onMeta, ma_dr_flac_container_unknown, (void*)pFile, pUserData, pAllocationCallbacks); if (pFlac == NULL) { fclose(pFile); return pFlac; } return pFlac; } -DRFLAC_API drflac* drflac_open_file_with_metadata_w(const wchar_t* pFileName, drflac_meta_proc onMeta, void* pUserData, const drflac_allocation_callbacks* pAllocationCallbacks) +#ifndef MA_DR_FLAC_NO_WCHAR +MA_API ma_dr_flac* ma_dr_flac_open_file_with_metadata_w(const wchar_t* pFileName, ma_dr_flac_meta_proc onMeta, void* pUserData, const ma_allocation_callbacks* pAllocationCallbacks) { - drflac* pFlac; + ma_dr_flac* pFlac; FILE* pFile; - if (drflac_wfopen(&pFile, pFileName, L"rb", pAllocationCallbacks) != DRFLAC_SUCCESS) { + if (ma_wfopen(&pFile, pFileName, L"rb", pAllocationCallbacks) != MA_SUCCESS) { return NULL; } - pFlac = drflac_open_with_metadata_private(drflac__on_read_stdio, drflac__on_seek_stdio, onMeta, drflac_container_unknown, (void*)pFile, pUserData, pAllocationCallbacks); + pFlac = ma_dr_flac_open_with_metadata_private(ma_dr_flac__on_read_stdio, ma_dr_flac__on_seek_stdio, onMeta, ma_dr_flac_container_unknown, (void*)pFile, pUserData, pAllocationCallbacks); if (pFlac == NULL) { fclose(pFile); return pFlac; @@ -84489,61 +87166,62 @@ DRFLAC_API drflac* drflac_open_file_with_metadata_w(const wchar_t* pFileName, dr return pFlac; } #endif -static size_t drflac__on_read_memory(void* pUserData, void* bufferOut, size_t bytesToRead) +#endif +static size_t ma_dr_flac__on_read_memory(void* pUserData, void* bufferOut, size_t bytesToRead) { - drflac__memory_stream* memoryStream = (drflac__memory_stream*)pUserData; + ma_dr_flac__memory_stream* memoryStream = (ma_dr_flac__memory_stream*)pUserData; size_t bytesRemaining; - DRFLAC_ASSERT(memoryStream != NULL); - DRFLAC_ASSERT(memoryStream->dataSize >= memoryStream->currentReadPos); + MA_DR_FLAC_ASSERT(memoryStream != NULL); + MA_DR_FLAC_ASSERT(memoryStream->dataSize >= memoryStream->currentReadPos); bytesRemaining = memoryStream->dataSize - memoryStream->currentReadPos; if (bytesToRead > bytesRemaining) { bytesToRead = bytesRemaining; } if (bytesToRead > 0) { - DRFLAC_COPY_MEMORY(bufferOut, memoryStream->data + memoryStream->currentReadPos, bytesToRead); + MA_DR_FLAC_COPY_MEMORY(bufferOut, memoryStream->data + memoryStream->currentReadPos, bytesToRead); memoryStream->currentReadPos += bytesToRead; } return bytesToRead; } -static drflac_bool32 drflac__on_seek_memory(void* pUserData, int offset, drflac_seek_origin origin) +static ma_bool32 ma_dr_flac__on_seek_memory(void* pUserData, int offset, ma_dr_flac_seek_origin origin) { - drflac__memory_stream* memoryStream = (drflac__memory_stream*)pUserData; - DRFLAC_ASSERT(memoryStream != NULL); - DRFLAC_ASSERT(offset >= 0); - if (offset > (drflac_int64)memoryStream->dataSize) { - return DRFLAC_FALSE; + ma_dr_flac__memory_stream* memoryStream = (ma_dr_flac__memory_stream*)pUserData; + MA_DR_FLAC_ASSERT(memoryStream != NULL); + MA_DR_FLAC_ASSERT(offset >= 0); + if (offset > (ma_int64)memoryStream->dataSize) { + return MA_FALSE; } - if (origin == drflac_seek_origin_current) { + if (origin == ma_dr_flac_seek_origin_current) { if (memoryStream->currentReadPos + offset <= memoryStream->dataSize) { memoryStream->currentReadPos += offset; } else { - return DRFLAC_FALSE; + return MA_FALSE; } } else { - if ((drflac_uint32)offset <= memoryStream->dataSize) { + if ((ma_uint32)offset <= memoryStream->dataSize) { memoryStream->currentReadPos = offset; } else { - return DRFLAC_FALSE; + return MA_FALSE; } } - return DRFLAC_TRUE; + return MA_TRUE; } -DRFLAC_API drflac* drflac_open_memory(const void* pData, size_t dataSize, const drflac_allocation_callbacks* pAllocationCallbacks) +MA_API ma_dr_flac* ma_dr_flac_open_memory(const void* pData, size_t dataSize, const ma_allocation_callbacks* pAllocationCallbacks) { - drflac__memory_stream memoryStream; - drflac* pFlac; - memoryStream.data = (const drflac_uint8*)pData; + ma_dr_flac__memory_stream memoryStream; + ma_dr_flac* pFlac; + memoryStream.data = (const ma_uint8*)pData; memoryStream.dataSize = dataSize; memoryStream.currentReadPos = 0; - pFlac = drflac_open(drflac__on_read_memory, drflac__on_seek_memory, &memoryStream, pAllocationCallbacks); + pFlac = ma_dr_flac_open(ma_dr_flac__on_read_memory, ma_dr_flac__on_seek_memory, &memoryStream, pAllocationCallbacks); if (pFlac == NULL) { return NULL; } pFlac->memoryStream = memoryStream; -#ifndef DR_FLAC_NO_OGG - if (pFlac->container == drflac_container_ogg) +#ifndef MA_DR_FLAC_NO_OGG + if (pFlac->container == ma_dr_flac_container_ogg) { - drflac_oggbs* oggbs = (drflac_oggbs*)pFlac->_oggbs; + ma_dr_flac_oggbs* oggbs = (ma_dr_flac_oggbs*)pFlac->_oggbs; oggbs->pUserData = &pFlac->memoryStream; } else @@ -84553,22 +87231,22 @@ DRFLAC_API drflac* drflac_open_memory(const void* pData, size_t dataSize, const } return pFlac; } -DRFLAC_API drflac* drflac_open_memory_with_metadata(const void* pData, size_t dataSize, drflac_meta_proc onMeta, void* pUserData, const drflac_allocation_callbacks* pAllocationCallbacks) +MA_API ma_dr_flac* ma_dr_flac_open_memory_with_metadata(const void* pData, size_t dataSize, ma_dr_flac_meta_proc onMeta, void* pUserData, const ma_allocation_callbacks* pAllocationCallbacks) { - drflac__memory_stream memoryStream; - drflac* pFlac; - memoryStream.data = (const drflac_uint8*)pData; + ma_dr_flac__memory_stream memoryStream; + ma_dr_flac* pFlac; + memoryStream.data = (const ma_uint8*)pData; memoryStream.dataSize = dataSize; memoryStream.currentReadPos = 0; - pFlac = drflac_open_with_metadata_private(drflac__on_read_memory, drflac__on_seek_memory, onMeta, drflac_container_unknown, &memoryStream, pUserData, pAllocationCallbacks); + pFlac = ma_dr_flac_open_with_metadata_private(ma_dr_flac__on_read_memory, ma_dr_flac__on_seek_memory, onMeta, ma_dr_flac_container_unknown, &memoryStream, pUserData, pAllocationCallbacks); if (pFlac == NULL) { return NULL; } pFlac->memoryStream = memoryStream; -#ifndef DR_FLAC_NO_OGG - if (pFlac->container == drflac_container_ogg) +#ifndef MA_DR_FLAC_NO_OGG + if (pFlac->container == ma_dr_flac_container_ogg) { - drflac_oggbs* oggbs = (drflac_oggbs*)pFlac->_oggbs; + ma_dr_flac_oggbs* oggbs = (ma_dr_flac_oggbs*)pFlac->_oggbs; oggbs->pUserData = &pFlac->memoryStream; } else @@ -84578,104 +87256,104 @@ DRFLAC_API drflac* drflac_open_memory_with_metadata(const void* pData, size_t da } return pFlac; } -DRFLAC_API drflac* drflac_open(drflac_read_proc onRead, drflac_seek_proc onSeek, void* pUserData, const drflac_allocation_callbacks* pAllocationCallbacks) +MA_API ma_dr_flac* ma_dr_flac_open(ma_dr_flac_read_proc onRead, ma_dr_flac_seek_proc onSeek, void* pUserData, const ma_allocation_callbacks* pAllocationCallbacks) { - return drflac_open_with_metadata_private(onRead, onSeek, NULL, drflac_container_unknown, pUserData, pUserData, pAllocationCallbacks); + return ma_dr_flac_open_with_metadata_private(onRead, onSeek, NULL, ma_dr_flac_container_unknown, pUserData, pUserData, pAllocationCallbacks); } -DRFLAC_API drflac* drflac_open_relaxed(drflac_read_proc onRead, drflac_seek_proc onSeek, drflac_container container, void* pUserData, const drflac_allocation_callbacks* pAllocationCallbacks) +MA_API ma_dr_flac* ma_dr_flac_open_relaxed(ma_dr_flac_read_proc onRead, ma_dr_flac_seek_proc onSeek, ma_dr_flac_container container, void* pUserData, const ma_allocation_callbacks* pAllocationCallbacks) { - return drflac_open_with_metadata_private(onRead, onSeek, NULL, container, pUserData, pUserData, pAllocationCallbacks); + return ma_dr_flac_open_with_metadata_private(onRead, onSeek, NULL, container, pUserData, pUserData, pAllocationCallbacks); } -DRFLAC_API drflac* drflac_open_with_metadata(drflac_read_proc onRead, drflac_seek_proc onSeek, drflac_meta_proc onMeta, void* pUserData, const drflac_allocation_callbacks* pAllocationCallbacks) +MA_API ma_dr_flac* ma_dr_flac_open_with_metadata(ma_dr_flac_read_proc onRead, ma_dr_flac_seek_proc onSeek, ma_dr_flac_meta_proc onMeta, void* pUserData, const ma_allocation_callbacks* pAllocationCallbacks) { - return drflac_open_with_metadata_private(onRead, onSeek, onMeta, drflac_container_unknown, pUserData, pUserData, pAllocationCallbacks); + return ma_dr_flac_open_with_metadata_private(onRead, onSeek, onMeta, ma_dr_flac_container_unknown, pUserData, pUserData, pAllocationCallbacks); } -DRFLAC_API drflac* drflac_open_with_metadata_relaxed(drflac_read_proc onRead, drflac_seek_proc onSeek, drflac_meta_proc onMeta, drflac_container container, void* pUserData, const drflac_allocation_callbacks* pAllocationCallbacks) +MA_API ma_dr_flac* ma_dr_flac_open_with_metadata_relaxed(ma_dr_flac_read_proc onRead, ma_dr_flac_seek_proc onSeek, ma_dr_flac_meta_proc onMeta, ma_dr_flac_container container, void* pUserData, const ma_allocation_callbacks* pAllocationCallbacks) { - return drflac_open_with_metadata_private(onRead, onSeek, onMeta, container, pUserData, pUserData, pAllocationCallbacks); + return ma_dr_flac_open_with_metadata_private(onRead, onSeek, onMeta, container, pUserData, pUserData, pAllocationCallbacks); } -DRFLAC_API void drflac_close(drflac* pFlac) +MA_API void ma_dr_flac_close(ma_dr_flac* pFlac) { if (pFlac == NULL) { return; } -#ifndef DR_FLAC_NO_STDIO - if (pFlac->bs.onRead == drflac__on_read_stdio) { +#ifndef MA_DR_FLAC_NO_STDIO + if (pFlac->bs.onRead == ma_dr_flac__on_read_stdio) { fclose((FILE*)pFlac->bs.pUserData); } -#ifndef DR_FLAC_NO_OGG - if (pFlac->container == drflac_container_ogg) { - drflac_oggbs* oggbs = (drflac_oggbs*)pFlac->_oggbs; - DRFLAC_ASSERT(pFlac->bs.onRead == drflac__on_read_ogg); - if (oggbs->onRead == drflac__on_read_stdio) { +#ifndef MA_DR_FLAC_NO_OGG + if (pFlac->container == ma_dr_flac_container_ogg) { + ma_dr_flac_oggbs* oggbs = (ma_dr_flac_oggbs*)pFlac->_oggbs; + MA_DR_FLAC_ASSERT(pFlac->bs.onRead == ma_dr_flac__on_read_ogg); + if (oggbs->onRead == ma_dr_flac__on_read_stdio) { fclose((FILE*)oggbs->pUserData); } } #endif #endif - drflac__free_from_callbacks(pFlac, &pFlac->allocationCallbacks); + ma_dr_flac__free_from_callbacks(pFlac, &pFlac->allocationCallbacks); } #if 0 -static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_left_side__reference(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +static MA_INLINE void ma_dr_flac_read_pcm_frames_s32__decode_left_side__reference(ma_dr_flac* pFlac, ma_uint64 frameCount, ma_uint32 unusedBitsPerSample, const ma_int32* pInputSamples0, const ma_int32* pInputSamples1, ma_int32* pOutputSamples) { - drflac_uint64 i; + ma_uint64 i; for (i = 0; i < frameCount; ++i) { - drflac_uint32 left = (drflac_uint32)pInputSamples0[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample); - drflac_uint32 side = (drflac_uint32)pInputSamples1[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample); - drflac_uint32 right = left - side; - pOutputSamples[i*2+0] = (drflac_int32)left; - pOutputSamples[i*2+1] = (drflac_int32)right; + ma_uint32 left = (ma_uint32)pInputSamples0[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample); + ma_uint32 side = (ma_uint32)pInputSamples1[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample); + ma_uint32 right = left - side; + pOutputSamples[i*2+0] = (ma_int32)left; + pOutputSamples[i*2+1] = (ma_int32)right; } } #endif -static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_left_side__scalar(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +static MA_INLINE void ma_dr_flac_read_pcm_frames_s32__decode_left_side__scalar(ma_dr_flac* pFlac, ma_uint64 frameCount, ma_uint32 unusedBitsPerSample, const ma_int32* pInputSamples0, const ma_int32* pInputSamples1, ma_int32* pOutputSamples) { - drflac_uint64 i; - drflac_uint64 frameCount4 = frameCount >> 2; - const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; - const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; - drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; - drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + ma_uint64 i; + ma_uint64 frameCount4 = frameCount >> 2; + const ma_uint32* pInputSamples0U32 = (const ma_uint32*)pInputSamples0; + const ma_uint32* pInputSamples1U32 = (const ma_uint32*)pInputSamples1; + ma_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + ma_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; for (i = 0; i < frameCount4; ++i) { - drflac_uint32 left0 = pInputSamples0U32[i*4+0] << shift0; - drflac_uint32 left1 = pInputSamples0U32[i*4+1] << shift0; - drflac_uint32 left2 = pInputSamples0U32[i*4+2] << shift0; - drflac_uint32 left3 = pInputSamples0U32[i*4+3] << shift0; - drflac_uint32 side0 = pInputSamples1U32[i*4+0] << shift1; - drflac_uint32 side1 = pInputSamples1U32[i*4+1] << shift1; - drflac_uint32 side2 = pInputSamples1U32[i*4+2] << shift1; - drflac_uint32 side3 = pInputSamples1U32[i*4+3] << shift1; - drflac_uint32 right0 = left0 - side0; - drflac_uint32 right1 = left1 - side1; - drflac_uint32 right2 = left2 - side2; - drflac_uint32 right3 = left3 - side3; - pOutputSamples[i*8+0] = (drflac_int32)left0; - pOutputSamples[i*8+1] = (drflac_int32)right0; - pOutputSamples[i*8+2] = (drflac_int32)left1; - pOutputSamples[i*8+3] = (drflac_int32)right1; - pOutputSamples[i*8+4] = (drflac_int32)left2; - pOutputSamples[i*8+5] = (drflac_int32)right2; - pOutputSamples[i*8+6] = (drflac_int32)left3; - pOutputSamples[i*8+7] = (drflac_int32)right3; + ma_uint32 left0 = pInputSamples0U32[i*4+0] << shift0; + ma_uint32 left1 = pInputSamples0U32[i*4+1] << shift0; + ma_uint32 left2 = pInputSamples0U32[i*4+2] << shift0; + ma_uint32 left3 = pInputSamples0U32[i*4+3] << shift0; + ma_uint32 side0 = pInputSamples1U32[i*4+0] << shift1; + ma_uint32 side1 = pInputSamples1U32[i*4+1] << shift1; + ma_uint32 side2 = pInputSamples1U32[i*4+2] << shift1; + ma_uint32 side3 = pInputSamples1U32[i*4+3] << shift1; + ma_uint32 right0 = left0 - side0; + ma_uint32 right1 = left1 - side1; + ma_uint32 right2 = left2 - side2; + ma_uint32 right3 = left3 - side3; + pOutputSamples[i*8+0] = (ma_int32)left0; + pOutputSamples[i*8+1] = (ma_int32)right0; + pOutputSamples[i*8+2] = (ma_int32)left1; + pOutputSamples[i*8+3] = (ma_int32)right1; + pOutputSamples[i*8+4] = (ma_int32)left2; + pOutputSamples[i*8+5] = (ma_int32)right2; + pOutputSamples[i*8+6] = (ma_int32)left3; + pOutputSamples[i*8+7] = (ma_int32)right3; } for (i = (frameCount4 << 2); i < frameCount; ++i) { - drflac_uint32 left = pInputSamples0U32[i] << shift0; - drflac_uint32 side = pInputSamples1U32[i] << shift1; - drflac_uint32 right = left - side; - pOutputSamples[i*2+0] = (drflac_int32)left; - pOutputSamples[i*2+1] = (drflac_int32)right; + ma_uint32 left = pInputSamples0U32[i] << shift0; + ma_uint32 side = pInputSamples1U32[i] << shift1; + ma_uint32 right = left - side; + pOutputSamples[i*2+0] = (ma_int32)left; + pOutputSamples[i*2+1] = (ma_int32)right; } } -#if defined(DRFLAC_SUPPORT_SSE2) -static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_left_side__sse2(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +#if defined(MA_DR_FLAC_SUPPORT_SSE2) +static MA_INLINE void ma_dr_flac_read_pcm_frames_s32__decode_left_side__sse2(ma_dr_flac* pFlac, ma_uint64 frameCount, ma_uint32 unusedBitsPerSample, const ma_int32* pInputSamples0, const ma_int32* pInputSamples1, ma_int32* pOutputSamples) { - drflac_uint64 i; - drflac_uint64 frameCount4 = frameCount >> 2; - const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; - const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; - drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; - drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; - DRFLAC_ASSERT(pFlac->bitsPerSample <= 24); + ma_uint64 i; + ma_uint64 frameCount4 = frameCount >> 2; + const ma_uint32* pInputSamples0U32 = (const ma_uint32*)pInputSamples0; + const ma_uint32* pInputSamples1U32 = (const ma_uint32*)pInputSamples1; + ma_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + ma_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + MA_DR_FLAC_ASSERT(pFlac->bitsPerSample <= 24); for (i = 0; i < frameCount4; ++i) { __m128i left = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples0 + i), shift0); __m128i side = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples1 + i), shift1); @@ -84684,26 +87362,26 @@ static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_left_side__sse2(drf _mm_storeu_si128((__m128i*)(pOutputSamples + i*8 + 4), _mm_unpackhi_epi32(left, right)); } for (i = (frameCount4 << 2); i < frameCount; ++i) { - drflac_uint32 left = pInputSamples0U32[i] << shift0; - drflac_uint32 side = pInputSamples1U32[i] << shift1; - drflac_uint32 right = left - side; - pOutputSamples[i*2+0] = (drflac_int32)left; - pOutputSamples[i*2+1] = (drflac_int32)right; + ma_uint32 left = pInputSamples0U32[i] << shift0; + ma_uint32 side = pInputSamples1U32[i] << shift1; + ma_uint32 right = left - side; + pOutputSamples[i*2+0] = (ma_int32)left; + pOutputSamples[i*2+1] = (ma_int32)right; } } #endif -#if defined(DRFLAC_SUPPORT_NEON) -static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_left_side__neon(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +#if defined(MA_DR_FLAC_SUPPORT_NEON) +static MA_INLINE void ma_dr_flac_read_pcm_frames_s32__decode_left_side__neon(ma_dr_flac* pFlac, ma_uint64 frameCount, ma_uint32 unusedBitsPerSample, const ma_int32* pInputSamples0, const ma_int32* pInputSamples1, ma_int32* pOutputSamples) { - drflac_uint64 i; - drflac_uint64 frameCount4 = frameCount >> 2; - const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; - const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; - drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; - drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + ma_uint64 i; + ma_uint64 frameCount4 = frameCount >> 2; + const ma_uint32* pInputSamples0U32 = (const ma_uint32*)pInputSamples0; + const ma_uint32* pInputSamples1U32 = (const ma_uint32*)pInputSamples1; + ma_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + ma_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; int32x4_t shift0_4; int32x4_t shift1_4; - DRFLAC_ASSERT(pFlac->bitsPerSample <= 24); + MA_DR_FLAC_ASSERT(pFlac->bitsPerSample <= 24); shift0_4 = vdupq_n_s32(shift0); shift1_4 = vdupq_n_s32(shift1); for (i = 0; i < frameCount4; ++i) { @@ -84713,97 +87391,97 @@ static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_left_side__neon(drf left = vshlq_u32(vld1q_u32(pInputSamples0U32 + i*4), shift0_4); side = vshlq_u32(vld1q_u32(pInputSamples1U32 + i*4), shift1_4); right = vsubq_u32(left, side); - drflac__vst2q_u32((drflac_uint32*)pOutputSamples + i*8, vzipq_u32(left, right)); + ma_dr_flac__vst2q_u32((ma_uint32*)pOutputSamples + i*8, vzipq_u32(left, right)); } for (i = (frameCount4 << 2); i < frameCount; ++i) { - drflac_uint32 left = pInputSamples0U32[i] << shift0; - drflac_uint32 side = pInputSamples1U32[i] << shift1; - drflac_uint32 right = left - side; - pOutputSamples[i*2+0] = (drflac_int32)left; - pOutputSamples[i*2+1] = (drflac_int32)right; + ma_uint32 left = pInputSamples0U32[i] << shift0; + ma_uint32 side = pInputSamples1U32[i] << shift1; + ma_uint32 right = left - side; + pOutputSamples[i*2+0] = (ma_int32)left; + pOutputSamples[i*2+1] = (ma_int32)right; } } #endif -static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_left_side(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +static MA_INLINE void ma_dr_flac_read_pcm_frames_s32__decode_left_side(ma_dr_flac* pFlac, ma_uint64 frameCount, ma_uint32 unusedBitsPerSample, const ma_int32* pInputSamples0, const ma_int32* pInputSamples1, ma_int32* pOutputSamples) { -#if defined(DRFLAC_SUPPORT_SSE2) - if (drflac__gIsSSE2Supported && pFlac->bitsPerSample <= 24) { - drflac_read_pcm_frames_s32__decode_left_side__sse2(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#if defined(MA_DR_FLAC_SUPPORT_SSE2) + if (ma_dr_flac__gIsSSE2Supported && pFlac->bitsPerSample <= 24) { + ma_dr_flac_read_pcm_frames_s32__decode_left_side__sse2(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); } else -#elif defined(DRFLAC_SUPPORT_NEON) - if (drflac__gIsNEONSupported && pFlac->bitsPerSample <= 24) { - drflac_read_pcm_frames_s32__decode_left_side__neon(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#elif defined(MA_DR_FLAC_SUPPORT_NEON) + if (ma_dr_flac__gIsNEONSupported && pFlac->bitsPerSample <= 24) { + ma_dr_flac_read_pcm_frames_s32__decode_left_side__neon(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); } else #endif { #if 0 - drflac_read_pcm_frames_s32__decode_left_side__reference(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + ma_dr_flac_read_pcm_frames_s32__decode_left_side__reference(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); #else - drflac_read_pcm_frames_s32__decode_left_side__scalar(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + ma_dr_flac_read_pcm_frames_s32__decode_left_side__scalar(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); #endif } } #if 0 -static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_right_side__reference(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +static MA_INLINE void ma_dr_flac_read_pcm_frames_s32__decode_right_side__reference(ma_dr_flac* pFlac, ma_uint64 frameCount, ma_uint32 unusedBitsPerSample, const ma_int32* pInputSamples0, const ma_int32* pInputSamples1, ma_int32* pOutputSamples) { - drflac_uint64 i; + ma_uint64 i; for (i = 0; i < frameCount; ++i) { - drflac_uint32 side = (drflac_uint32)pInputSamples0[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample); - drflac_uint32 right = (drflac_uint32)pInputSamples1[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample); - drflac_uint32 left = right + side; - pOutputSamples[i*2+0] = (drflac_int32)left; - pOutputSamples[i*2+1] = (drflac_int32)right; + ma_uint32 side = (ma_uint32)pInputSamples0[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample); + ma_uint32 right = (ma_uint32)pInputSamples1[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample); + ma_uint32 left = right + side; + pOutputSamples[i*2+0] = (ma_int32)left; + pOutputSamples[i*2+1] = (ma_int32)right; } } #endif -static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_right_side__scalar(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +static MA_INLINE void ma_dr_flac_read_pcm_frames_s32__decode_right_side__scalar(ma_dr_flac* pFlac, ma_uint64 frameCount, ma_uint32 unusedBitsPerSample, const ma_int32* pInputSamples0, const ma_int32* pInputSamples1, ma_int32* pOutputSamples) { - drflac_uint64 i; - drflac_uint64 frameCount4 = frameCount >> 2; - const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; - const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; - drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; - drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + ma_uint64 i; + ma_uint64 frameCount4 = frameCount >> 2; + const ma_uint32* pInputSamples0U32 = (const ma_uint32*)pInputSamples0; + const ma_uint32* pInputSamples1U32 = (const ma_uint32*)pInputSamples1; + ma_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + ma_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; for (i = 0; i < frameCount4; ++i) { - drflac_uint32 side0 = pInputSamples0U32[i*4+0] << shift0; - drflac_uint32 side1 = pInputSamples0U32[i*4+1] << shift0; - drflac_uint32 side2 = pInputSamples0U32[i*4+2] << shift0; - drflac_uint32 side3 = pInputSamples0U32[i*4+3] << shift0; - drflac_uint32 right0 = pInputSamples1U32[i*4+0] << shift1; - drflac_uint32 right1 = pInputSamples1U32[i*4+1] << shift1; - drflac_uint32 right2 = pInputSamples1U32[i*4+2] << shift1; - drflac_uint32 right3 = pInputSamples1U32[i*4+3] << shift1; - drflac_uint32 left0 = right0 + side0; - drflac_uint32 left1 = right1 + side1; - drflac_uint32 left2 = right2 + side2; - drflac_uint32 left3 = right3 + side3; - pOutputSamples[i*8+0] = (drflac_int32)left0; - pOutputSamples[i*8+1] = (drflac_int32)right0; - pOutputSamples[i*8+2] = (drflac_int32)left1; - pOutputSamples[i*8+3] = (drflac_int32)right1; - pOutputSamples[i*8+4] = (drflac_int32)left2; - pOutputSamples[i*8+5] = (drflac_int32)right2; - pOutputSamples[i*8+6] = (drflac_int32)left3; - pOutputSamples[i*8+7] = (drflac_int32)right3; + ma_uint32 side0 = pInputSamples0U32[i*4+0] << shift0; + ma_uint32 side1 = pInputSamples0U32[i*4+1] << shift0; + ma_uint32 side2 = pInputSamples0U32[i*4+2] << shift0; + ma_uint32 side3 = pInputSamples0U32[i*4+3] << shift0; + ma_uint32 right0 = pInputSamples1U32[i*4+0] << shift1; + ma_uint32 right1 = pInputSamples1U32[i*4+1] << shift1; + ma_uint32 right2 = pInputSamples1U32[i*4+2] << shift1; + ma_uint32 right3 = pInputSamples1U32[i*4+3] << shift1; + ma_uint32 left0 = right0 + side0; + ma_uint32 left1 = right1 + side1; + ma_uint32 left2 = right2 + side2; + ma_uint32 left3 = right3 + side3; + pOutputSamples[i*8+0] = (ma_int32)left0; + pOutputSamples[i*8+1] = (ma_int32)right0; + pOutputSamples[i*8+2] = (ma_int32)left1; + pOutputSamples[i*8+3] = (ma_int32)right1; + pOutputSamples[i*8+4] = (ma_int32)left2; + pOutputSamples[i*8+5] = (ma_int32)right2; + pOutputSamples[i*8+6] = (ma_int32)left3; + pOutputSamples[i*8+7] = (ma_int32)right3; } for (i = (frameCount4 << 2); i < frameCount; ++i) { - drflac_uint32 side = pInputSamples0U32[i] << shift0; - drflac_uint32 right = pInputSamples1U32[i] << shift1; - drflac_uint32 left = right + side; - pOutputSamples[i*2+0] = (drflac_int32)left; - pOutputSamples[i*2+1] = (drflac_int32)right; + ma_uint32 side = pInputSamples0U32[i] << shift0; + ma_uint32 right = pInputSamples1U32[i] << shift1; + ma_uint32 left = right + side; + pOutputSamples[i*2+0] = (ma_int32)left; + pOutputSamples[i*2+1] = (ma_int32)right; } } -#if defined(DRFLAC_SUPPORT_SSE2) -static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_right_side__sse2(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +#if defined(MA_DR_FLAC_SUPPORT_SSE2) +static MA_INLINE void ma_dr_flac_read_pcm_frames_s32__decode_right_side__sse2(ma_dr_flac* pFlac, ma_uint64 frameCount, ma_uint32 unusedBitsPerSample, const ma_int32* pInputSamples0, const ma_int32* pInputSamples1, ma_int32* pOutputSamples) { - drflac_uint64 i; - drflac_uint64 frameCount4 = frameCount >> 2; - const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; - const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; - drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; - drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; - DRFLAC_ASSERT(pFlac->bitsPerSample <= 24); + ma_uint64 i; + ma_uint64 frameCount4 = frameCount >> 2; + const ma_uint32* pInputSamples0U32 = (const ma_uint32*)pInputSamples0; + const ma_uint32* pInputSamples1U32 = (const ma_uint32*)pInputSamples1; + ma_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + ma_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + MA_DR_FLAC_ASSERT(pFlac->bitsPerSample <= 24); for (i = 0; i < frameCount4; ++i) { __m128i side = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples0 + i), shift0); __m128i right = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples1 + i), shift1); @@ -84812,26 +87490,26 @@ static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_right_side__sse2(dr _mm_storeu_si128((__m128i*)(pOutputSamples + i*8 + 4), _mm_unpackhi_epi32(left, right)); } for (i = (frameCount4 << 2); i < frameCount; ++i) { - drflac_uint32 side = pInputSamples0U32[i] << shift0; - drflac_uint32 right = pInputSamples1U32[i] << shift1; - drflac_uint32 left = right + side; - pOutputSamples[i*2+0] = (drflac_int32)left; - pOutputSamples[i*2+1] = (drflac_int32)right; + ma_uint32 side = pInputSamples0U32[i] << shift0; + ma_uint32 right = pInputSamples1U32[i] << shift1; + ma_uint32 left = right + side; + pOutputSamples[i*2+0] = (ma_int32)left; + pOutputSamples[i*2+1] = (ma_int32)right; } } #endif -#if defined(DRFLAC_SUPPORT_NEON) -static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_right_side__neon(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +#if defined(MA_DR_FLAC_SUPPORT_NEON) +static MA_INLINE void ma_dr_flac_read_pcm_frames_s32__decode_right_side__neon(ma_dr_flac* pFlac, ma_uint64 frameCount, ma_uint32 unusedBitsPerSample, const ma_int32* pInputSamples0, const ma_int32* pInputSamples1, ma_int32* pOutputSamples) { - drflac_uint64 i; - drflac_uint64 frameCount4 = frameCount >> 2; - const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; - const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; - drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; - drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + ma_uint64 i; + ma_uint64 frameCount4 = frameCount >> 2; + const ma_uint32* pInputSamples0U32 = (const ma_uint32*)pInputSamples0; + const ma_uint32* pInputSamples1U32 = (const ma_uint32*)pInputSamples1; + ma_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + ma_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; int32x4_t shift0_4; int32x4_t shift1_4; - DRFLAC_ASSERT(pFlac->bitsPerSample <= 24); + MA_DR_FLAC_ASSERT(pFlac->bitsPerSample <= 24); shift0_4 = vdupq_n_s32(shift0); shift1_4 = vdupq_n_s32(shift1); for (i = 0; i < frameCount4; ++i) { @@ -84841,74 +87519,74 @@ static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_right_side__neon(dr side = vshlq_u32(vld1q_u32(pInputSamples0U32 + i*4), shift0_4); right = vshlq_u32(vld1q_u32(pInputSamples1U32 + i*4), shift1_4); left = vaddq_u32(right, side); - drflac__vst2q_u32((drflac_uint32*)pOutputSamples + i*8, vzipq_u32(left, right)); + ma_dr_flac__vst2q_u32((ma_uint32*)pOutputSamples + i*8, vzipq_u32(left, right)); } for (i = (frameCount4 << 2); i < frameCount; ++i) { - drflac_uint32 side = pInputSamples0U32[i] << shift0; - drflac_uint32 right = pInputSamples1U32[i] << shift1; - drflac_uint32 left = right + side; - pOutputSamples[i*2+0] = (drflac_int32)left; - pOutputSamples[i*2+1] = (drflac_int32)right; + ma_uint32 side = pInputSamples0U32[i] << shift0; + ma_uint32 right = pInputSamples1U32[i] << shift1; + ma_uint32 left = right + side; + pOutputSamples[i*2+0] = (ma_int32)left; + pOutputSamples[i*2+1] = (ma_int32)right; } } #endif -static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_right_side(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +static MA_INLINE void ma_dr_flac_read_pcm_frames_s32__decode_right_side(ma_dr_flac* pFlac, ma_uint64 frameCount, ma_uint32 unusedBitsPerSample, const ma_int32* pInputSamples0, const ma_int32* pInputSamples1, ma_int32* pOutputSamples) { -#if defined(DRFLAC_SUPPORT_SSE2) - if (drflac__gIsSSE2Supported && pFlac->bitsPerSample <= 24) { - drflac_read_pcm_frames_s32__decode_right_side__sse2(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#if defined(MA_DR_FLAC_SUPPORT_SSE2) + if (ma_dr_flac__gIsSSE2Supported && pFlac->bitsPerSample <= 24) { + ma_dr_flac_read_pcm_frames_s32__decode_right_side__sse2(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); } else -#elif defined(DRFLAC_SUPPORT_NEON) - if (drflac__gIsNEONSupported && pFlac->bitsPerSample <= 24) { - drflac_read_pcm_frames_s32__decode_right_side__neon(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#elif defined(MA_DR_FLAC_SUPPORT_NEON) + if (ma_dr_flac__gIsNEONSupported && pFlac->bitsPerSample <= 24) { + ma_dr_flac_read_pcm_frames_s32__decode_right_side__neon(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); } else #endif { #if 0 - drflac_read_pcm_frames_s32__decode_right_side__reference(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + ma_dr_flac_read_pcm_frames_s32__decode_right_side__reference(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); #else - drflac_read_pcm_frames_s32__decode_right_side__scalar(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + ma_dr_flac_read_pcm_frames_s32__decode_right_side__scalar(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); #endif } } #if 0 -static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_mid_side__reference(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +static MA_INLINE void ma_dr_flac_read_pcm_frames_s32__decode_mid_side__reference(ma_dr_flac* pFlac, ma_uint64 frameCount, ma_uint32 unusedBitsPerSample, const ma_int32* pInputSamples0, const ma_int32* pInputSamples1, ma_int32* pOutputSamples) { - for (drflac_uint64 i = 0; i < frameCount; ++i) { - drflac_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; - drflac_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + for (ma_uint64 i = 0; i < frameCount; ++i) { + ma_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + ma_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; mid = (mid << 1) | (side & 0x01); - pOutputSamples[i*2+0] = (drflac_int32)((drflac_uint32)((drflac_int32)(mid + side) >> 1) << unusedBitsPerSample); - pOutputSamples[i*2+1] = (drflac_int32)((drflac_uint32)((drflac_int32)(mid - side) >> 1) << unusedBitsPerSample); + pOutputSamples[i*2+0] = (ma_int32)((ma_uint32)((ma_int32)(mid + side) >> 1) << unusedBitsPerSample); + pOutputSamples[i*2+1] = (ma_int32)((ma_uint32)((ma_int32)(mid - side) >> 1) << unusedBitsPerSample); } } #endif -static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_mid_side__scalar(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +static MA_INLINE void ma_dr_flac_read_pcm_frames_s32__decode_mid_side__scalar(ma_dr_flac* pFlac, ma_uint64 frameCount, ma_uint32 unusedBitsPerSample, const ma_int32* pInputSamples0, const ma_int32* pInputSamples1, ma_int32* pOutputSamples) { - drflac_uint64 i; - drflac_uint64 frameCount4 = frameCount >> 2; - const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; - const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; - drflac_int32 shift = unusedBitsPerSample; + ma_uint64 i; + ma_uint64 frameCount4 = frameCount >> 2; + const ma_uint32* pInputSamples0U32 = (const ma_uint32*)pInputSamples0; + const ma_uint32* pInputSamples1U32 = (const ma_uint32*)pInputSamples1; + ma_int32 shift = unusedBitsPerSample; if (shift > 0) { shift -= 1; for (i = 0; i < frameCount4; ++i) { - drflac_uint32 temp0L; - drflac_uint32 temp1L; - drflac_uint32 temp2L; - drflac_uint32 temp3L; - drflac_uint32 temp0R; - drflac_uint32 temp1R; - drflac_uint32 temp2R; - drflac_uint32 temp3R; - drflac_uint32 mid0 = pInputSamples0U32[i*4+0] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; - drflac_uint32 mid1 = pInputSamples0U32[i*4+1] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; - drflac_uint32 mid2 = pInputSamples0U32[i*4+2] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; - drflac_uint32 mid3 = pInputSamples0U32[i*4+3] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; - drflac_uint32 side0 = pInputSamples1U32[i*4+0] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; - drflac_uint32 side1 = pInputSamples1U32[i*4+1] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; - drflac_uint32 side2 = pInputSamples1U32[i*4+2] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; - drflac_uint32 side3 = pInputSamples1U32[i*4+3] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + ma_uint32 temp0L; + ma_uint32 temp1L; + ma_uint32 temp2L; + ma_uint32 temp3L; + ma_uint32 temp0R; + ma_uint32 temp1R; + ma_uint32 temp2R; + ma_uint32 temp3R; + ma_uint32 mid0 = pInputSamples0U32[i*4+0] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + ma_uint32 mid1 = pInputSamples0U32[i*4+1] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + ma_uint32 mid2 = pInputSamples0U32[i*4+2] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + ma_uint32 mid3 = pInputSamples0U32[i*4+3] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + ma_uint32 side0 = pInputSamples1U32[i*4+0] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + ma_uint32 side1 = pInputSamples1U32[i*4+1] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + ma_uint32 side2 = pInputSamples1U32[i*4+2] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + ma_uint32 side3 = pInputSamples1U32[i*4+3] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; mid0 = (mid0 << 1) | (side0 & 0x01); mid1 = (mid1 << 1) | (side1 & 0x01); mid2 = (mid2 << 1) | (side2 & 0x01); @@ -84921,72 +87599,72 @@ static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_mid_side__scalar(dr temp1R = (mid1 - side1) << shift; temp2R = (mid2 - side2) << shift; temp3R = (mid3 - side3) << shift; - pOutputSamples[i*8+0] = (drflac_int32)temp0L; - pOutputSamples[i*8+1] = (drflac_int32)temp0R; - pOutputSamples[i*8+2] = (drflac_int32)temp1L; - pOutputSamples[i*8+3] = (drflac_int32)temp1R; - pOutputSamples[i*8+4] = (drflac_int32)temp2L; - pOutputSamples[i*8+5] = (drflac_int32)temp2R; - pOutputSamples[i*8+6] = (drflac_int32)temp3L; - pOutputSamples[i*8+7] = (drflac_int32)temp3R; + pOutputSamples[i*8+0] = (ma_int32)temp0L; + pOutputSamples[i*8+1] = (ma_int32)temp0R; + pOutputSamples[i*8+2] = (ma_int32)temp1L; + pOutputSamples[i*8+3] = (ma_int32)temp1R; + pOutputSamples[i*8+4] = (ma_int32)temp2L; + pOutputSamples[i*8+5] = (ma_int32)temp2R; + pOutputSamples[i*8+6] = (ma_int32)temp3L; + pOutputSamples[i*8+7] = (ma_int32)temp3R; } } else { for (i = 0; i < frameCount4; ++i) { - drflac_uint32 temp0L; - drflac_uint32 temp1L; - drflac_uint32 temp2L; - drflac_uint32 temp3L; - drflac_uint32 temp0R; - drflac_uint32 temp1R; - drflac_uint32 temp2R; - drflac_uint32 temp3R; - drflac_uint32 mid0 = pInputSamples0U32[i*4+0] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; - drflac_uint32 mid1 = pInputSamples0U32[i*4+1] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; - drflac_uint32 mid2 = pInputSamples0U32[i*4+2] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; - drflac_uint32 mid3 = pInputSamples0U32[i*4+3] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; - drflac_uint32 side0 = pInputSamples1U32[i*4+0] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; - drflac_uint32 side1 = pInputSamples1U32[i*4+1] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; - drflac_uint32 side2 = pInputSamples1U32[i*4+2] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; - drflac_uint32 side3 = pInputSamples1U32[i*4+3] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + ma_uint32 temp0L; + ma_uint32 temp1L; + ma_uint32 temp2L; + ma_uint32 temp3L; + ma_uint32 temp0R; + ma_uint32 temp1R; + ma_uint32 temp2R; + ma_uint32 temp3R; + ma_uint32 mid0 = pInputSamples0U32[i*4+0] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + ma_uint32 mid1 = pInputSamples0U32[i*4+1] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + ma_uint32 mid2 = pInputSamples0U32[i*4+2] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + ma_uint32 mid3 = pInputSamples0U32[i*4+3] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + ma_uint32 side0 = pInputSamples1U32[i*4+0] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + ma_uint32 side1 = pInputSamples1U32[i*4+1] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + ma_uint32 side2 = pInputSamples1U32[i*4+2] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + ma_uint32 side3 = pInputSamples1U32[i*4+3] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; mid0 = (mid0 << 1) | (side0 & 0x01); mid1 = (mid1 << 1) | (side1 & 0x01); mid2 = (mid2 << 1) | (side2 & 0x01); mid3 = (mid3 << 1) | (side3 & 0x01); - temp0L = (drflac_uint32)((drflac_int32)(mid0 + side0) >> 1); - temp1L = (drflac_uint32)((drflac_int32)(mid1 + side1) >> 1); - temp2L = (drflac_uint32)((drflac_int32)(mid2 + side2) >> 1); - temp3L = (drflac_uint32)((drflac_int32)(mid3 + side3) >> 1); - temp0R = (drflac_uint32)((drflac_int32)(mid0 - side0) >> 1); - temp1R = (drflac_uint32)((drflac_int32)(mid1 - side1) >> 1); - temp2R = (drflac_uint32)((drflac_int32)(mid2 - side2) >> 1); - temp3R = (drflac_uint32)((drflac_int32)(mid3 - side3) >> 1); - pOutputSamples[i*8+0] = (drflac_int32)temp0L; - pOutputSamples[i*8+1] = (drflac_int32)temp0R; - pOutputSamples[i*8+2] = (drflac_int32)temp1L; - pOutputSamples[i*8+3] = (drflac_int32)temp1R; - pOutputSamples[i*8+4] = (drflac_int32)temp2L; - pOutputSamples[i*8+5] = (drflac_int32)temp2R; - pOutputSamples[i*8+6] = (drflac_int32)temp3L; - pOutputSamples[i*8+7] = (drflac_int32)temp3R; + temp0L = (ma_uint32)((ma_int32)(mid0 + side0) >> 1); + temp1L = (ma_uint32)((ma_int32)(mid1 + side1) >> 1); + temp2L = (ma_uint32)((ma_int32)(mid2 + side2) >> 1); + temp3L = (ma_uint32)((ma_int32)(mid3 + side3) >> 1); + temp0R = (ma_uint32)((ma_int32)(mid0 - side0) >> 1); + temp1R = (ma_uint32)((ma_int32)(mid1 - side1) >> 1); + temp2R = (ma_uint32)((ma_int32)(mid2 - side2) >> 1); + temp3R = (ma_uint32)((ma_int32)(mid3 - side3) >> 1); + pOutputSamples[i*8+0] = (ma_int32)temp0L; + pOutputSamples[i*8+1] = (ma_int32)temp0R; + pOutputSamples[i*8+2] = (ma_int32)temp1L; + pOutputSamples[i*8+3] = (ma_int32)temp1R; + pOutputSamples[i*8+4] = (ma_int32)temp2L; + pOutputSamples[i*8+5] = (ma_int32)temp2R; + pOutputSamples[i*8+6] = (ma_int32)temp3L; + pOutputSamples[i*8+7] = (ma_int32)temp3R; } } for (i = (frameCount4 << 2); i < frameCount; ++i) { - drflac_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; - drflac_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + ma_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + ma_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; mid = (mid << 1) | (side & 0x01); - pOutputSamples[i*2+0] = (drflac_int32)((drflac_uint32)((drflac_int32)(mid + side) >> 1) << unusedBitsPerSample); - pOutputSamples[i*2+1] = (drflac_int32)((drflac_uint32)((drflac_int32)(mid - side) >> 1) << unusedBitsPerSample); + pOutputSamples[i*2+0] = (ma_int32)((ma_uint32)((ma_int32)(mid + side) >> 1) << unusedBitsPerSample); + pOutputSamples[i*2+1] = (ma_int32)((ma_uint32)((ma_int32)(mid - side) >> 1) << unusedBitsPerSample); } } -#if defined(DRFLAC_SUPPORT_SSE2) -static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_mid_side__sse2(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +#if defined(MA_DR_FLAC_SUPPORT_SSE2) +static MA_INLINE void ma_dr_flac_read_pcm_frames_s32__decode_mid_side__sse2(ma_dr_flac* pFlac, ma_uint64 frameCount, ma_uint32 unusedBitsPerSample, const ma_int32* pInputSamples0, const ma_int32* pInputSamples1, ma_int32* pOutputSamples) { - drflac_uint64 i; - drflac_uint64 frameCount4 = frameCount >> 2; - const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; - const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; - drflac_int32 shift = unusedBitsPerSample; - DRFLAC_ASSERT(pFlac->bitsPerSample <= 24); + ma_uint64 i; + ma_uint64 frameCount4 = frameCount >> 2; + const ma_uint32* pInputSamples0U32 = (const ma_uint32*)pInputSamples0; + const ma_uint32* pInputSamples1U32 = (const ma_uint32*)pInputSamples1; + ma_int32 shift = unusedBitsPerSample; + MA_DR_FLAC_ASSERT(pFlac->bitsPerSample <= 24); if (shift == 0) { for (i = 0; i < frameCount4; ++i) { __m128i mid; @@ -85002,11 +87680,11 @@ static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_mid_side__sse2(drfl _mm_storeu_si128((__m128i*)(pOutputSamples + i*8 + 4), _mm_unpackhi_epi32(left, right)); } for (i = (frameCount4 << 2); i < frameCount; ++i) { - drflac_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; - drflac_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + ma_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + ma_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; mid = (mid << 1) | (side & 0x01); - pOutputSamples[i*2+0] = (drflac_int32)(mid + side) >> 1; - pOutputSamples[i*2+1] = (drflac_int32)(mid - side) >> 1; + pOutputSamples[i*2+0] = (ma_int32)(mid + side) >> 1; + pOutputSamples[i*2+1] = (ma_int32)(mid - side) >> 1; } } else { shift -= 1; @@ -85024,27 +87702,27 @@ static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_mid_side__sse2(drfl _mm_storeu_si128((__m128i*)(pOutputSamples + i*8 + 4), _mm_unpackhi_epi32(left, right)); } for (i = (frameCount4 << 2); i < frameCount; ++i) { - drflac_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; - drflac_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + ma_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + ma_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; mid = (mid << 1) | (side & 0x01); - pOutputSamples[i*2+0] = (drflac_int32)((mid + side) << shift); - pOutputSamples[i*2+1] = (drflac_int32)((mid - side) << shift); + pOutputSamples[i*2+0] = (ma_int32)((mid + side) << shift); + pOutputSamples[i*2+1] = (ma_int32)((mid - side) << shift); } } } #endif -#if defined(DRFLAC_SUPPORT_NEON) -static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_mid_side__neon(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +#if defined(MA_DR_FLAC_SUPPORT_NEON) +static MA_INLINE void ma_dr_flac_read_pcm_frames_s32__decode_mid_side__neon(ma_dr_flac* pFlac, ma_uint64 frameCount, ma_uint32 unusedBitsPerSample, const ma_int32* pInputSamples0, const ma_int32* pInputSamples1, ma_int32* pOutputSamples) { - drflac_uint64 i; - drflac_uint64 frameCount4 = frameCount >> 2; - const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; - const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; - drflac_int32 shift = unusedBitsPerSample; + ma_uint64 i; + ma_uint64 frameCount4 = frameCount >> 2; + const ma_uint32* pInputSamples0U32 = (const ma_uint32*)pInputSamples0; + const ma_uint32* pInputSamples1U32 = (const ma_uint32*)pInputSamples1; + ma_int32 shift = unusedBitsPerSample; int32x4_t wbpsShift0_4; int32x4_t wbpsShift1_4; uint32x4_t one4; - DRFLAC_ASSERT(pFlac->bitsPerSample <= 24); + MA_DR_FLAC_ASSERT(pFlac->bitsPerSample <= 24); wbpsShift0_4 = vdupq_n_s32(pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample); wbpsShift1_4 = vdupq_n_s32(pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample); one4 = vdupq_n_u32(1); @@ -85059,14 +87737,14 @@ static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_mid_side__neon(drfl mid = vorrq_u32(vshlq_n_u32(mid, 1), vandq_u32(side, one4)); left = vshrq_n_s32(vreinterpretq_s32_u32(vaddq_u32(mid, side)), 1); right = vshrq_n_s32(vreinterpretq_s32_u32(vsubq_u32(mid, side)), 1); - drflac__vst2q_s32(pOutputSamples + i*8, vzipq_s32(left, right)); + ma_dr_flac__vst2q_s32(pOutputSamples + i*8, vzipq_s32(left, right)); } for (i = (frameCount4 << 2); i < frameCount; ++i) { - drflac_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; - drflac_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + ma_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + ma_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; mid = (mid << 1) | (side & 0x01); - pOutputSamples[i*2+0] = (drflac_int32)(mid + side) >> 1; - pOutputSamples[i*2+1] = (drflac_int32)(mid - side) >> 1; + pOutputSamples[i*2+0] = (ma_int32)(mid + side) >> 1; + pOutputSamples[i*2+1] = (ma_int32)(mid - side) >> 1; } } else { int32x4_t shift4; @@ -85082,86 +87760,86 @@ static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_mid_side__neon(drfl mid = vorrq_u32(vshlq_n_u32(mid, 1), vandq_u32(side, one4)); left = vreinterpretq_s32_u32(vshlq_u32(vaddq_u32(mid, side), shift4)); right = vreinterpretq_s32_u32(vshlq_u32(vsubq_u32(mid, side), shift4)); - drflac__vst2q_s32(pOutputSamples + i*8, vzipq_s32(left, right)); + ma_dr_flac__vst2q_s32(pOutputSamples + i*8, vzipq_s32(left, right)); } for (i = (frameCount4 << 2); i < frameCount; ++i) { - drflac_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; - drflac_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + ma_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + ma_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; mid = (mid << 1) | (side & 0x01); - pOutputSamples[i*2+0] = (drflac_int32)((mid + side) << shift); - pOutputSamples[i*2+1] = (drflac_int32)((mid - side) << shift); + pOutputSamples[i*2+0] = (ma_int32)((mid + side) << shift); + pOutputSamples[i*2+1] = (ma_int32)((mid - side) << shift); } } } #endif -static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_mid_side(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +static MA_INLINE void ma_dr_flac_read_pcm_frames_s32__decode_mid_side(ma_dr_flac* pFlac, ma_uint64 frameCount, ma_uint32 unusedBitsPerSample, const ma_int32* pInputSamples0, const ma_int32* pInputSamples1, ma_int32* pOutputSamples) { -#if defined(DRFLAC_SUPPORT_SSE2) - if (drflac__gIsSSE2Supported && pFlac->bitsPerSample <= 24) { - drflac_read_pcm_frames_s32__decode_mid_side__sse2(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#if defined(MA_DR_FLAC_SUPPORT_SSE2) + if (ma_dr_flac__gIsSSE2Supported && pFlac->bitsPerSample <= 24) { + ma_dr_flac_read_pcm_frames_s32__decode_mid_side__sse2(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); } else -#elif defined(DRFLAC_SUPPORT_NEON) - if (drflac__gIsNEONSupported && pFlac->bitsPerSample <= 24) { - drflac_read_pcm_frames_s32__decode_mid_side__neon(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#elif defined(MA_DR_FLAC_SUPPORT_NEON) + if (ma_dr_flac__gIsNEONSupported && pFlac->bitsPerSample <= 24) { + ma_dr_flac_read_pcm_frames_s32__decode_mid_side__neon(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); } else #endif { #if 0 - drflac_read_pcm_frames_s32__decode_mid_side__reference(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + ma_dr_flac_read_pcm_frames_s32__decode_mid_side__reference(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); #else - drflac_read_pcm_frames_s32__decode_mid_side__scalar(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + ma_dr_flac_read_pcm_frames_s32__decode_mid_side__scalar(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); #endif } } #if 0 -static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_independent_stereo__reference(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +static MA_INLINE void ma_dr_flac_read_pcm_frames_s32__decode_independent_stereo__reference(ma_dr_flac* pFlac, ma_uint64 frameCount, ma_uint32 unusedBitsPerSample, const ma_int32* pInputSamples0, const ma_int32* pInputSamples1, ma_int32* pOutputSamples) { - for (drflac_uint64 i = 0; i < frameCount; ++i) { - pOutputSamples[i*2+0] = (drflac_int32)((drflac_uint32)pInputSamples0[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample)); - pOutputSamples[i*2+1] = (drflac_int32)((drflac_uint32)pInputSamples1[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample)); + for (ma_uint64 i = 0; i < frameCount; ++i) { + pOutputSamples[i*2+0] = (ma_int32)((ma_uint32)pInputSamples0[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample)); + pOutputSamples[i*2+1] = (ma_int32)((ma_uint32)pInputSamples1[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample)); } } #endif -static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_independent_stereo__scalar(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +static MA_INLINE void ma_dr_flac_read_pcm_frames_s32__decode_independent_stereo__scalar(ma_dr_flac* pFlac, ma_uint64 frameCount, ma_uint32 unusedBitsPerSample, const ma_int32* pInputSamples0, const ma_int32* pInputSamples1, ma_int32* pOutputSamples) { - drflac_uint64 i; - drflac_uint64 frameCount4 = frameCount >> 2; - const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; - const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; - drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; - drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + ma_uint64 i; + ma_uint64 frameCount4 = frameCount >> 2; + const ma_uint32* pInputSamples0U32 = (const ma_uint32*)pInputSamples0; + const ma_uint32* pInputSamples1U32 = (const ma_uint32*)pInputSamples1; + ma_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + ma_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; for (i = 0; i < frameCount4; ++i) { - drflac_uint32 tempL0 = pInputSamples0U32[i*4+0] << shift0; - drflac_uint32 tempL1 = pInputSamples0U32[i*4+1] << shift0; - drflac_uint32 tempL2 = pInputSamples0U32[i*4+2] << shift0; - drflac_uint32 tempL3 = pInputSamples0U32[i*4+3] << shift0; - drflac_uint32 tempR0 = pInputSamples1U32[i*4+0] << shift1; - drflac_uint32 tempR1 = pInputSamples1U32[i*4+1] << shift1; - drflac_uint32 tempR2 = pInputSamples1U32[i*4+2] << shift1; - drflac_uint32 tempR3 = pInputSamples1U32[i*4+3] << shift1; - pOutputSamples[i*8+0] = (drflac_int32)tempL0; - pOutputSamples[i*8+1] = (drflac_int32)tempR0; - pOutputSamples[i*8+2] = (drflac_int32)tempL1; - pOutputSamples[i*8+3] = (drflac_int32)tempR1; - pOutputSamples[i*8+4] = (drflac_int32)tempL2; - pOutputSamples[i*8+5] = (drflac_int32)tempR2; - pOutputSamples[i*8+6] = (drflac_int32)tempL3; - pOutputSamples[i*8+7] = (drflac_int32)tempR3; + ma_uint32 tempL0 = pInputSamples0U32[i*4+0] << shift0; + ma_uint32 tempL1 = pInputSamples0U32[i*4+1] << shift0; + ma_uint32 tempL2 = pInputSamples0U32[i*4+2] << shift0; + ma_uint32 tempL3 = pInputSamples0U32[i*4+3] << shift0; + ma_uint32 tempR0 = pInputSamples1U32[i*4+0] << shift1; + ma_uint32 tempR1 = pInputSamples1U32[i*4+1] << shift1; + ma_uint32 tempR2 = pInputSamples1U32[i*4+2] << shift1; + ma_uint32 tempR3 = pInputSamples1U32[i*4+3] << shift1; + pOutputSamples[i*8+0] = (ma_int32)tempL0; + pOutputSamples[i*8+1] = (ma_int32)tempR0; + pOutputSamples[i*8+2] = (ma_int32)tempL1; + pOutputSamples[i*8+3] = (ma_int32)tempR1; + pOutputSamples[i*8+4] = (ma_int32)tempL2; + pOutputSamples[i*8+5] = (ma_int32)tempR2; + pOutputSamples[i*8+6] = (ma_int32)tempL3; + pOutputSamples[i*8+7] = (ma_int32)tempR3; } for (i = (frameCount4 << 2); i < frameCount; ++i) { - pOutputSamples[i*2+0] = (drflac_int32)(pInputSamples0U32[i] << shift0); - pOutputSamples[i*2+1] = (drflac_int32)(pInputSamples1U32[i] << shift1); + pOutputSamples[i*2+0] = (ma_int32)(pInputSamples0U32[i] << shift0); + pOutputSamples[i*2+1] = (ma_int32)(pInputSamples1U32[i] << shift1); } } -#if defined(DRFLAC_SUPPORT_SSE2) -static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_independent_stereo__sse2(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +#if defined(MA_DR_FLAC_SUPPORT_SSE2) +static MA_INLINE void ma_dr_flac_read_pcm_frames_s32__decode_independent_stereo__sse2(ma_dr_flac* pFlac, ma_uint64 frameCount, ma_uint32 unusedBitsPerSample, const ma_int32* pInputSamples0, const ma_int32* pInputSamples1, ma_int32* pOutputSamples) { - drflac_uint64 i; - drflac_uint64 frameCount4 = frameCount >> 2; - const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; - const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; - drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; - drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + ma_uint64 i; + ma_uint64 frameCount4 = frameCount >> 2; + const ma_uint32* pInputSamples0U32 = (const ma_uint32*)pInputSamples0; + const ma_uint32* pInputSamples1U32 = (const ma_uint32*)pInputSamples1; + ma_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + ma_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; for (i = 0; i < frameCount4; ++i) { __m128i left = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples0 + i), shift0); __m128i right = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples1 + i), shift1); @@ -85169,20 +87847,20 @@ static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_independent_stereo_ _mm_storeu_si128((__m128i*)(pOutputSamples + i*8 + 4), _mm_unpackhi_epi32(left, right)); } for (i = (frameCount4 << 2); i < frameCount; ++i) { - pOutputSamples[i*2+0] = (drflac_int32)(pInputSamples0U32[i] << shift0); - pOutputSamples[i*2+1] = (drflac_int32)(pInputSamples1U32[i] << shift1); + pOutputSamples[i*2+0] = (ma_int32)(pInputSamples0U32[i] << shift0); + pOutputSamples[i*2+1] = (ma_int32)(pInputSamples1U32[i] << shift1); } } #endif -#if defined(DRFLAC_SUPPORT_NEON) -static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_independent_stereo__neon(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +#if defined(MA_DR_FLAC_SUPPORT_NEON) +static MA_INLINE void ma_dr_flac_read_pcm_frames_s32__decode_independent_stereo__neon(ma_dr_flac* pFlac, ma_uint64 frameCount, ma_uint32 unusedBitsPerSample, const ma_int32* pInputSamples0, const ma_int32* pInputSamples1, ma_int32* pOutputSamples) { - drflac_uint64 i; - drflac_uint64 frameCount4 = frameCount >> 2; - const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; - const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; - drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; - drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + ma_uint64 i; + ma_uint64 frameCount4 = frameCount >> 2; + const ma_uint32* pInputSamples0U32 = (const ma_uint32*)pInputSamples0; + const ma_uint32* pInputSamples1U32 = (const ma_uint32*)pInputSamples1; + ma_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + ma_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; int32x4_t shift4_0 = vdupq_n_s32(shift0); int32x4_t shift4_1 = vdupq_n_s32(shift1); for (i = 0; i < frameCount4; ++i) { @@ -85190,87 +87868,87 @@ static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_independent_stereo_ int32x4_t right; left = vreinterpretq_s32_u32(vshlq_u32(vld1q_u32(pInputSamples0U32 + i*4), shift4_0)); right = vreinterpretq_s32_u32(vshlq_u32(vld1q_u32(pInputSamples1U32 + i*4), shift4_1)); - drflac__vst2q_s32(pOutputSamples + i*8, vzipq_s32(left, right)); + ma_dr_flac__vst2q_s32(pOutputSamples + i*8, vzipq_s32(left, right)); } for (i = (frameCount4 << 2); i < frameCount; ++i) { - pOutputSamples[i*2+0] = (drflac_int32)(pInputSamples0U32[i] << shift0); - pOutputSamples[i*2+1] = (drflac_int32)(pInputSamples1U32[i] << shift1); + pOutputSamples[i*2+0] = (ma_int32)(pInputSamples0U32[i] << shift0); + pOutputSamples[i*2+1] = (ma_int32)(pInputSamples1U32[i] << shift1); } } #endif -static DRFLAC_INLINE void drflac_read_pcm_frames_s32__decode_independent_stereo(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int32* pOutputSamples) +static MA_INLINE void ma_dr_flac_read_pcm_frames_s32__decode_independent_stereo(ma_dr_flac* pFlac, ma_uint64 frameCount, ma_uint32 unusedBitsPerSample, const ma_int32* pInputSamples0, const ma_int32* pInputSamples1, ma_int32* pOutputSamples) { -#if defined(DRFLAC_SUPPORT_SSE2) - if (drflac__gIsSSE2Supported && pFlac->bitsPerSample <= 24) { - drflac_read_pcm_frames_s32__decode_independent_stereo__sse2(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#if defined(MA_DR_FLAC_SUPPORT_SSE2) + if (ma_dr_flac__gIsSSE2Supported && pFlac->bitsPerSample <= 24) { + ma_dr_flac_read_pcm_frames_s32__decode_independent_stereo__sse2(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); } else -#elif defined(DRFLAC_SUPPORT_NEON) - if (drflac__gIsNEONSupported && pFlac->bitsPerSample <= 24) { - drflac_read_pcm_frames_s32__decode_independent_stereo__neon(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#elif defined(MA_DR_FLAC_SUPPORT_NEON) + if (ma_dr_flac__gIsNEONSupported && pFlac->bitsPerSample <= 24) { + ma_dr_flac_read_pcm_frames_s32__decode_independent_stereo__neon(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); } else #endif { #if 0 - drflac_read_pcm_frames_s32__decode_independent_stereo__reference(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + ma_dr_flac_read_pcm_frames_s32__decode_independent_stereo__reference(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); #else - drflac_read_pcm_frames_s32__decode_independent_stereo__scalar(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + ma_dr_flac_read_pcm_frames_s32__decode_independent_stereo__scalar(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); #endif } } -DRFLAC_API drflac_uint64 drflac_read_pcm_frames_s32(drflac* pFlac, drflac_uint64 framesToRead, drflac_int32* pBufferOut) +MA_API ma_uint64 ma_dr_flac_read_pcm_frames_s32(ma_dr_flac* pFlac, ma_uint64 framesToRead, ma_int32* pBufferOut) { - drflac_uint64 framesRead; - drflac_uint32 unusedBitsPerSample; + ma_uint64 framesRead; + ma_uint32 unusedBitsPerSample; if (pFlac == NULL || framesToRead == 0) { return 0; } if (pBufferOut == NULL) { - return drflac__seek_forward_by_pcm_frames(pFlac, framesToRead); + return ma_dr_flac__seek_forward_by_pcm_frames(pFlac, framesToRead); } - DRFLAC_ASSERT(pFlac->bitsPerSample <= 32); + MA_DR_FLAC_ASSERT(pFlac->bitsPerSample <= 32); unusedBitsPerSample = 32 - pFlac->bitsPerSample; framesRead = 0; while (framesToRead > 0) { if (pFlac->currentFLACFrame.pcmFramesRemaining == 0) { - if (!drflac__read_and_decode_next_flac_frame(pFlac)) { + if (!ma_dr_flac__read_and_decode_next_flac_frame(pFlac)) { break; } } else { - unsigned int channelCount = drflac__get_channel_count_from_channel_assignment(pFlac->currentFLACFrame.header.channelAssignment); - drflac_uint64 iFirstPCMFrame = pFlac->currentFLACFrame.header.blockSizeInPCMFrames - pFlac->currentFLACFrame.pcmFramesRemaining; - drflac_uint64 frameCountThisIteration = framesToRead; + unsigned int channelCount = ma_dr_flac__get_channel_count_from_channel_assignment(pFlac->currentFLACFrame.header.channelAssignment); + ma_uint64 iFirstPCMFrame = pFlac->currentFLACFrame.header.blockSizeInPCMFrames - pFlac->currentFLACFrame.pcmFramesRemaining; + ma_uint64 frameCountThisIteration = framesToRead; if (frameCountThisIteration > pFlac->currentFLACFrame.pcmFramesRemaining) { frameCountThisIteration = pFlac->currentFLACFrame.pcmFramesRemaining; } if (channelCount == 2) { - const drflac_int32* pDecodedSamples0 = pFlac->currentFLACFrame.subframes[0].pSamplesS32 + iFirstPCMFrame; - const drflac_int32* pDecodedSamples1 = pFlac->currentFLACFrame.subframes[1].pSamplesS32 + iFirstPCMFrame; + const ma_int32* pDecodedSamples0 = pFlac->currentFLACFrame.subframes[0].pSamplesS32 + iFirstPCMFrame; + const ma_int32* pDecodedSamples1 = pFlac->currentFLACFrame.subframes[1].pSamplesS32 + iFirstPCMFrame; switch (pFlac->currentFLACFrame.header.channelAssignment) { - case DRFLAC_CHANNEL_ASSIGNMENT_LEFT_SIDE: + case MA_DR_FLAC_CHANNEL_ASSIGNMENT_LEFT_SIDE: { - drflac_read_pcm_frames_s32__decode_left_side(pFlac, frameCountThisIteration, unusedBitsPerSample, pDecodedSamples0, pDecodedSamples1, pBufferOut); + ma_dr_flac_read_pcm_frames_s32__decode_left_side(pFlac, frameCountThisIteration, unusedBitsPerSample, pDecodedSamples0, pDecodedSamples1, pBufferOut); } break; - case DRFLAC_CHANNEL_ASSIGNMENT_RIGHT_SIDE: + case MA_DR_FLAC_CHANNEL_ASSIGNMENT_RIGHT_SIDE: { - drflac_read_pcm_frames_s32__decode_right_side(pFlac, frameCountThisIteration, unusedBitsPerSample, pDecodedSamples0, pDecodedSamples1, pBufferOut); + ma_dr_flac_read_pcm_frames_s32__decode_right_side(pFlac, frameCountThisIteration, unusedBitsPerSample, pDecodedSamples0, pDecodedSamples1, pBufferOut); } break; - case DRFLAC_CHANNEL_ASSIGNMENT_MID_SIDE: + case MA_DR_FLAC_CHANNEL_ASSIGNMENT_MID_SIDE: { - drflac_read_pcm_frames_s32__decode_mid_side(pFlac, frameCountThisIteration, unusedBitsPerSample, pDecodedSamples0, pDecodedSamples1, pBufferOut); + ma_dr_flac_read_pcm_frames_s32__decode_mid_side(pFlac, frameCountThisIteration, unusedBitsPerSample, pDecodedSamples0, pDecodedSamples1, pBufferOut); } break; - case DRFLAC_CHANNEL_ASSIGNMENT_INDEPENDENT: + case MA_DR_FLAC_CHANNEL_ASSIGNMENT_INDEPENDENT: default: { - drflac_read_pcm_frames_s32__decode_independent_stereo(pFlac, frameCountThisIteration, unusedBitsPerSample, pDecodedSamples0, pDecodedSamples1, pBufferOut); + ma_dr_flac_read_pcm_frames_s32__decode_independent_stereo(pFlac, frameCountThisIteration, unusedBitsPerSample, pDecodedSamples0, pDecodedSamples1, pBufferOut); } break; } } else { - drflac_uint64 i; + ma_uint64 i; for (i = 0; i < frameCountThisIteration; ++i) { unsigned int j; for (j = 0; j < channelCount; ++j) { - pBufferOut[(i*channelCount)+j] = (drflac_int32)((drflac_uint32)(pFlac->currentFLACFrame.subframes[j].pSamplesS32[iFirstPCMFrame + i]) << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[j].wastedBitsPerSample)); + pBufferOut[(i*channelCount)+j] = (ma_int32)((ma_uint32)(pFlac->currentFLACFrame.subframes[j].pSamplesS32[iFirstPCMFrame + i]) << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[j].wastedBitsPerSample)); } } } @@ -85278,47 +87956,47 @@ DRFLAC_API drflac_uint64 drflac_read_pcm_frames_s32(drflac* pFlac, drflac_uint64 pBufferOut += frameCountThisIteration * channelCount; framesToRead -= frameCountThisIteration; pFlac->currentPCMFrame += frameCountThisIteration; - pFlac->currentFLACFrame.pcmFramesRemaining -= (drflac_uint32)frameCountThisIteration; + pFlac->currentFLACFrame.pcmFramesRemaining -= (ma_uint32)frameCountThisIteration; } } return framesRead; } #if 0 -static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_left_side__reference(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +static MA_INLINE void ma_dr_flac_read_pcm_frames_s16__decode_left_side__reference(ma_dr_flac* pFlac, ma_uint64 frameCount, ma_uint32 unusedBitsPerSample, const ma_int32* pInputSamples0, const ma_int32* pInputSamples1, ma_int16* pOutputSamples) { - drflac_uint64 i; + ma_uint64 i; for (i = 0; i < frameCount; ++i) { - drflac_uint32 left = (drflac_uint32)pInputSamples0[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample); - drflac_uint32 side = (drflac_uint32)pInputSamples1[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample); - drflac_uint32 right = left - side; + ma_uint32 left = (ma_uint32)pInputSamples0[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample); + ma_uint32 side = (ma_uint32)pInputSamples1[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample); + ma_uint32 right = left - side; left >>= 16; right >>= 16; - pOutputSamples[i*2+0] = (drflac_int16)left; - pOutputSamples[i*2+1] = (drflac_int16)right; + pOutputSamples[i*2+0] = (ma_int16)left; + pOutputSamples[i*2+1] = (ma_int16)right; } } #endif -static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_left_side__scalar(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +static MA_INLINE void ma_dr_flac_read_pcm_frames_s16__decode_left_side__scalar(ma_dr_flac* pFlac, ma_uint64 frameCount, ma_uint32 unusedBitsPerSample, const ma_int32* pInputSamples0, const ma_int32* pInputSamples1, ma_int16* pOutputSamples) { - drflac_uint64 i; - drflac_uint64 frameCount4 = frameCount >> 2; - const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; - const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; - drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; - drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + ma_uint64 i; + ma_uint64 frameCount4 = frameCount >> 2; + const ma_uint32* pInputSamples0U32 = (const ma_uint32*)pInputSamples0; + const ma_uint32* pInputSamples1U32 = (const ma_uint32*)pInputSamples1; + ma_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + ma_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; for (i = 0; i < frameCount4; ++i) { - drflac_uint32 left0 = pInputSamples0U32[i*4+0] << shift0; - drflac_uint32 left1 = pInputSamples0U32[i*4+1] << shift0; - drflac_uint32 left2 = pInputSamples0U32[i*4+2] << shift0; - drflac_uint32 left3 = pInputSamples0U32[i*4+3] << shift0; - drflac_uint32 side0 = pInputSamples1U32[i*4+0] << shift1; - drflac_uint32 side1 = pInputSamples1U32[i*4+1] << shift1; - drflac_uint32 side2 = pInputSamples1U32[i*4+2] << shift1; - drflac_uint32 side3 = pInputSamples1U32[i*4+3] << shift1; - drflac_uint32 right0 = left0 - side0; - drflac_uint32 right1 = left1 - side1; - drflac_uint32 right2 = left2 - side2; - drflac_uint32 right3 = left3 - side3; + ma_uint32 left0 = pInputSamples0U32[i*4+0] << shift0; + ma_uint32 left1 = pInputSamples0U32[i*4+1] << shift0; + ma_uint32 left2 = pInputSamples0U32[i*4+2] << shift0; + ma_uint32 left3 = pInputSamples0U32[i*4+3] << shift0; + ma_uint32 side0 = pInputSamples1U32[i*4+0] << shift1; + ma_uint32 side1 = pInputSamples1U32[i*4+1] << shift1; + ma_uint32 side2 = pInputSamples1U32[i*4+2] << shift1; + ma_uint32 side3 = pInputSamples1U32[i*4+3] << shift1; + ma_uint32 right0 = left0 - side0; + ma_uint32 right1 = left1 - side1; + ma_uint32 right2 = left2 - side2; + ma_uint32 right3 = left3 - side3; left0 >>= 16; left1 >>= 16; left2 >>= 16; @@ -85327,66 +88005,66 @@ static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_left_side__scalar(d right1 >>= 16; right2 >>= 16; right3 >>= 16; - pOutputSamples[i*8+0] = (drflac_int16)left0; - pOutputSamples[i*8+1] = (drflac_int16)right0; - pOutputSamples[i*8+2] = (drflac_int16)left1; - pOutputSamples[i*8+3] = (drflac_int16)right1; - pOutputSamples[i*8+4] = (drflac_int16)left2; - pOutputSamples[i*8+5] = (drflac_int16)right2; - pOutputSamples[i*8+6] = (drflac_int16)left3; - pOutputSamples[i*8+7] = (drflac_int16)right3; + pOutputSamples[i*8+0] = (ma_int16)left0; + pOutputSamples[i*8+1] = (ma_int16)right0; + pOutputSamples[i*8+2] = (ma_int16)left1; + pOutputSamples[i*8+3] = (ma_int16)right1; + pOutputSamples[i*8+4] = (ma_int16)left2; + pOutputSamples[i*8+5] = (ma_int16)right2; + pOutputSamples[i*8+6] = (ma_int16)left3; + pOutputSamples[i*8+7] = (ma_int16)right3; } for (i = (frameCount4 << 2); i < frameCount; ++i) { - drflac_uint32 left = pInputSamples0U32[i] << shift0; - drflac_uint32 side = pInputSamples1U32[i] << shift1; - drflac_uint32 right = left - side; + ma_uint32 left = pInputSamples0U32[i] << shift0; + ma_uint32 side = pInputSamples1U32[i] << shift1; + ma_uint32 right = left - side; left >>= 16; right >>= 16; - pOutputSamples[i*2+0] = (drflac_int16)left; - pOutputSamples[i*2+1] = (drflac_int16)right; + pOutputSamples[i*2+0] = (ma_int16)left; + pOutputSamples[i*2+1] = (ma_int16)right; } } -#if defined(DRFLAC_SUPPORT_SSE2) -static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_left_side__sse2(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +#if defined(MA_DR_FLAC_SUPPORT_SSE2) +static MA_INLINE void ma_dr_flac_read_pcm_frames_s16__decode_left_side__sse2(ma_dr_flac* pFlac, ma_uint64 frameCount, ma_uint32 unusedBitsPerSample, const ma_int32* pInputSamples0, const ma_int32* pInputSamples1, ma_int16* pOutputSamples) { - drflac_uint64 i; - drflac_uint64 frameCount4 = frameCount >> 2; - const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; - const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; - drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; - drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; - DRFLAC_ASSERT(pFlac->bitsPerSample <= 24); + ma_uint64 i; + ma_uint64 frameCount4 = frameCount >> 2; + const ma_uint32* pInputSamples0U32 = (const ma_uint32*)pInputSamples0; + const ma_uint32* pInputSamples1U32 = (const ma_uint32*)pInputSamples1; + ma_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + ma_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + MA_DR_FLAC_ASSERT(pFlac->bitsPerSample <= 24); for (i = 0; i < frameCount4; ++i) { __m128i left = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples0 + i), shift0); __m128i side = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples1 + i), shift1); __m128i right = _mm_sub_epi32(left, side); left = _mm_srai_epi32(left, 16); right = _mm_srai_epi32(right, 16); - _mm_storeu_si128((__m128i*)(pOutputSamples + i*8), drflac__mm_packs_interleaved_epi32(left, right)); + _mm_storeu_si128((__m128i*)(pOutputSamples + i*8), ma_dr_flac__mm_packs_interleaved_epi32(left, right)); } for (i = (frameCount4 << 2); i < frameCount; ++i) { - drflac_uint32 left = pInputSamples0U32[i] << shift0; - drflac_uint32 side = pInputSamples1U32[i] << shift1; - drflac_uint32 right = left - side; + ma_uint32 left = pInputSamples0U32[i] << shift0; + ma_uint32 side = pInputSamples1U32[i] << shift1; + ma_uint32 right = left - side; left >>= 16; right >>= 16; - pOutputSamples[i*2+0] = (drflac_int16)left; - pOutputSamples[i*2+1] = (drflac_int16)right; + pOutputSamples[i*2+0] = (ma_int16)left; + pOutputSamples[i*2+1] = (ma_int16)right; } } #endif -#if defined(DRFLAC_SUPPORT_NEON) -static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_left_side__neon(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +#if defined(MA_DR_FLAC_SUPPORT_NEON) +static MA_INLINE void ma_dr_flac_read_pcm_frames_s16__decode_left_side__neon(ma_dr_flac* pFlac, ma_uint64 frameCount, ma_uint32 unusedBitsPerSample, const ma_int32* pInputSamples0, const ma_int32* pInputSamples1, ma_int16* pOutputSamples) { - drflac_uint64 i; - drflac_uint64 frameCount4 = frameCount >> 2; - const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; - const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; - drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; - drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + ma_uint64 i; + ma_uint64 frameCount4 = frameCount >> 2; + const ma_uint32* pInputSamples0U32 = (const ma_uint32*)pInputSamples0; + const ma_uint32* pInputSamples1U32 = (const ma_uint32*)pInputSamples1; + ma_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + ma_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; int32x4_t shift0_4; int32x4_t shift1_4; - DRFLAC_ASSERT(pFlac->bitsPerSample <= 24); + MA_DR_FLAC_ASSERT(pFlac->bitsPerSample <= 24); shift0_4 = vdupq_n_s32(shift0); shift1_4 = vdupq_n_s32(shift1); for (i = 0; i < frameCount4; ++i) { @@ -85398,74 +88076,74 @@ static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_left_side__neon(drf right = vsubq_u32(left, side); left = vshrq_n_u32(left, 16); right = vshrq_n_u32(right, 16); - drflac__vst2q_u16((drflac_uint16*)pOutputSamples + i*8, vzip_u16(vmovn_u32(left), vmovn_u32(right))); + ma_dr_flac__vst2q_u16((ma_uint16*)pOutputSamples + i*8, vzip_u16(vmovn_u32(left), vmovn_u32(right))); } for (i = (frameCount4 << 2); i < frameCount; ++i) { - drflac_uint32 left = pInputSamples0U32[i] << shift0; - drflac_uint32 side = pInputSamples1U32[i] << shift1; - drflac_uint32 right = left - side; + ma_uint32 left = pInputSamples0U32[i] << shift0; + ma_uint32 side = pInputSamples1U32[i] << shift1; + ma_uint32 right = left - side; left >>= 16; right >>= 16; - pOutputSamples[i*2+0] = (drflac_int16)left; - pOutputSamples[i*2+1] = (drflac_int16)right; + pOutputSamples[i*2+0] = (ma_int16)left; + pOutputSamples[i*2+1] = (ma_int16)right; } } #endif -static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_left_side(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +static MA_INLINE void ma_dr_flac_read_pcm_frames_s16__decode_left_side(ma_dr_flac* pFlac, ma_uint64 frameCount, ma_uint32 unusedBitsPerSample, const ma_int32* pInputSamples0, const ma_int32* pInputSamples1, ma_int16* pOutputSamples) { -#if defined(DRFLAC_SUPPORT_SSE2) - if (drflac__gIsSSE2Supported && pFlac->bitsPerSample <= 24) { - drflac_read_pcm_frames_s16__decode_left_side__sse2(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#if defined(MA_DR_FLAC_SUPPORT_SSE2) + if (ma_dr_flac__gIsSSE2Supported && pFlac->bitsPerSample <= 24) { + ma_dr_flac_read_pcm_frames_s16__decode_left_side__sse2(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); } else -#elif defined(DRFLAC_SUPPORT_NEON) - if (drflac__gIsNEONSupported && pFlac->bitsPerSample <= 24) { - drflac_read_pcm_frames_s16__decode_left_side__neon(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#elif defined(MA_DR_FLAC_SUPPORT_NEON) + if (ma_dr_flac__gIsNEONSupported && pFlac->bitsPerSample <= 24) { + ma_dr_flac_read_pcm_frames_s16__decode_left_side__neon(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); } else #endif { #if 0 - drflac_read_pcm_frames_s16__decode_left_side__reference(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + ma_dr_flac_read_pcm_frames_s16__decode_left_side__reference(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); #else - drflac_read_pcm_frames_s16__decode_left_side__scalar(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + ma_dr_flac_read_pcm_frames_s16__decode_left_side__scalar(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); #endif } } #if 0 -static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_right_side__reference(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +static MA_INLINE void ma_dr_flac_read_pcm_frames_s16__decode_right_side__reference(ma_dr_flac* pFlac, ma_uint64 frameCount, ma_uint32 unusedBitsPerSample, const ma_int32* pInputSamples0, const ma_int32* pInputSamples1, ma_int16* pOutputSamples) { - drflac_uint64 i; + ma_uint64 i; for (i = 0; i < frameCount; ++i) { - drflac_uint32 side = (drflac_uint32)pInputSamples0[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample); - drflac_uint32 right = (drflac_uint32)pInputSamples1[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample); - drflac_uint32 left = right + side; + ma_uint32 side = (ma_uint32)pInputSamples0[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample); + ma_uint32 right = (ma_uint32)pInputSamples1[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample); + ma_uint32 left = right + side; left >>= 16; right >>= 16; - pOutputSamples[i*2+0] = (drflac_int16)left; - pOutputSamples[i*2+1] = (drflac_int16)right; + pOutputSamples[i*2+0] = (ma_int16)left; + pOutputSamples[i*2+1] = (ma_int16)right; } } #endif -static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_right_side__scalar(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +static MA_INLINE void ma_dr_flac_read_pcm_frames_s16__decode_right_side__scalar(ma_dr_flac* pFlac, ma_uint64 frameCount, ma_uint32 unusedBitsPerSample, const ma_int32* pInputSamples0, const ma_int32* pInputSamples1, ma_int16* pOutputSamples) { - drflac_uint64 i; - drflac_uint64 frameCount4 = frameCount >> 2; - const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; - const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; - drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; - drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + ma_uint64 i; + ma_uint64 frameCount4 = frameCount >> 2; + const ma_uint32* pInputSamples0U32 = (const ma_uint32*)pInputSamples0; + const ma_uint32* pInputSamples1U32 = (const ma_uint32*)pInputSamples1; + ma_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + ma_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; for (i = 0; i < frameCount4; ++i) { - drflac_uint32 side0 = pInputSamples0U32[i*4+0] << shift0; - drflac_uint32 side1 = pInputSamples0U32[i*4+1] << shift0; - drflac_uint32 side2 = pInputSamples0U32[i*4+2] << shift0; - drflac_uint32 side3 = pInputSamples0U32[i*4+3] << shift0; - drflac_uint32 right0 = pInputSamples1U32[i*4+0] << shift1; - drflac_uint32 right1 = pInputSamples1U32[i*4+1] << shift1; - drflac_uint32 right2 = pInputSamples1U32[i*4+2] << shift1; - drflac_uint32 right3 = pInputSamples1U32[i*4+3] << shift1; - drflac_uint32 left0 = right0 + side0; - drflac_uint32 left1 = right1 + side1; - drflac_uint32 left2 = right2 + side2; - drflac_uint32 left3 = right3 + side3; + ma_uint32 side0 = pInputSamples0U32[i*4+0] << shift0; + ma_uint32 side1 = pInputSamples0U32[i*4+1] << shift0; + ma_uint32 side2 = pInputSamples0U32[i*4+2] << shift0; + ma_uint32 side3 = pInputSamples0U32[i*4+3] << shift0; + ma_uint32 right0 = pInputSamples1U32[i*4+0] << shift1; + ma_uint32 right1 = pInputSamples1U32[i*4+1] << shift1; + ma_uint32 right2 = pInputSamples1U32[i*4+2] << shift1; + ma_uint32 right3 = pInputSamples1U32[i*4+3] << shift1; + ma_uint32 left0 = right0 + side0; + ma_uint32 left1 = right1 + side1; + ma_uint32 left2 = right2 + side2; + ma_uint32 left3 = right3 + side3; left0 >>= 16; left1 >>= 16; left2 >>= 16; @@ -85474,66 +88152,66 @@ static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_right_side__scalar( right1 >>= 16; right2 >>= 16; right3 >>= 16; - pOutputSamples[i*8+0] = (drflac_int16)left0; - pOutputSamples[i*8+1] = (drflac_int16)right0; - pOutputSamples[i*8+2] = (drflac_int16)left1; - pOutputSamples[i*8+3] = (drflac_int16)right1; - pOutputSamples[i*8+4] = (drflac_int16)left2; - pOutputSamples[i*8+5] = (drflac_int16)right2; - pOutputSamples[i*8+6] = (drflac_int16)left3; - pOutputSamples[i*8+7] = (drflac_int16)right3; + pOutputSamples[i*8+0] = (ma_int16)left0; + pOutputSamples[i*8+1] = (ma_int16)right0; + pOutputSamples[i*8+2] = (ma_int16)left1; + pOutputSamples[i*8+3] = (ma_int16)right1; + pOutputSamples[i*8+4] = (ma_int16)left2; + pOutputSamples[i*8+5] = (ma_int16)right2; + pOutputSamples[i*8+6] = (ma_int16)left3; + pOutputSamples[i*8+7] = (ma_int16)right3; } for (i = (frameCount4 << 2); i < frameCount; ++i) { - drflac_uint32 side = pInputSamples0U32[i] << shift0; - drflac_uint32 right = pInputSamples1U32[i] << shift1; - drflac_uint32 left = right + side; + ma_uint32 side = pInputSamples0U32[i] << shift0; + ma_uint32 right = pInputSamples1U32[i] << shift1; + ma_uint32 left = right + side; left >>= 16; right >>= 16; - pOutputSamples[i*2+0] = (drflac_int16)left; - pOutputSamples[i*2+1] = (drflac_int16)right; + pOutputSamples[i*2+0] = (ma_int16)left; + pOutputSamples[i*2+1] = (ma_int16)right; } } -#if defined(DRFLAC_SUPPORT_SSE2) -static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_right_side__sse2(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +#if defined(MA_DR_FLAC_SUPPORT_SSE2) +static MA_INLINE void ma_dr_flac_read_pcm_frames_s16__decode_right_side__sse2(ma_dr_flac* pFlac, ma_uint64 frameCount, ma_uint32 unusedBitsPerSample, const ma_int32* pInputSamples0, const ma_int32* pInputSamples1, ma_int16* pOutputSamples) { - drflac_uint64 i; - drflac_uint64 frameCount4 = frameCount >> 2; - const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; - const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; - drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; - drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; - DRFLAC_ASSERT(pFlac->bitsPerSample <= 24); + ma_uint64 i; + ma_uint64 frameCount4 = frameCount >> 2; + const ma_uint32* pInputSamples0U32 = (const ma_uint32*)pInputSamples0; + const ma_uint32* pInputSamples1U32 = (const ma_uint32*)pInputSamples1; + ma_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + ma_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + MA_DR_FLAC_ASSERT(pFlac->bitsPerSample <= 24); for (i = 0; i < frameCount4; ++i) { __m128i side = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples0 + i), shift0); __m128i right = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples1 + i), shift1); __m128i left = _mm_add_epi32(right, side); left = _mm_srai_epi32(left, 16); right = _mm_srai_epi32(right, 16); - _mm_storeu_si128((__m128i*)(pOutputSamples + i*8), drflac__mm_packs_interleaved_epi32(left, right)); + _mm_storeu_si128((__m128i*)(pOutputSamples + i*8), ma_dr_flac__mm_packs_interleaved_epi32(left, right)); } for (i = (frameCount4 << 2); i < frameCount; ++i) { - drflac_uint32 side = pInputSamples0U32[i] << shift0; - drflac_uint32 right = pInputSamples1U32[i] << shift1; - drflac_uint32 left = right + side; + ma_uint32 side = pInputSamples0U32[i] << shift0; + ma_uint32 right = pInputSamples1U32[i] << shift1; + ma_uint32 left = right + side; left >>= 16; right >>= 16; - pOutputSamples[i*2+0] = (drflac_int16)left; - pOutputSamples[i*2+1] = (drflac_int16)right; + pOutputSamples[i*2+0] = (ma_int16)left; + pOutputSamples[i*2+1] = (ma_int16)right; } } #endif -#if defined(DRFLAC_SUPPORT_NEON) -static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_right_side__neon(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +#if defined(MA_DR_FLAC_SUPPORT_NEON) +static MA_INLINE void ma_dr_flac_read_pcm_frames_s16__decode_right_side__neon(ma_dr_flac* pFlac, ma_uint64 frameCount, ma_uint32 unusedBitsPerSample, const ma_int32* pInputSamples0, const ma_int32* pInputSamples1, ma_int16* pOutputSamples) { - drflac_uint64 i; - drflac_uint64 frameCount4 = frameCount >> 2; - const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; - const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; - drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; - drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + ma_uint64 i; + ma_uint64 frameCount4 = frameCount >> 2; + const ma_uint32* pInputSamples0U32 = (const ma_uint32*)pInputSamples0; + const ma_uint32* pInputSamples1U32 = (const ma_uint32*)pInputSamples1; + ma_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + ma_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; int32x4_t shift0_4; int32x4_t shift1_4; - DRFLAC_ASSERT(pFlac->bitsPerSample <= 24); + MA_DR_FLAC_ASSERT(pFlac->bitsPerSample <= 24); shift0_4 = vdupq_n_s32(shift0); shift1_4 = vdupq_n_s32(shift1); for (i = 0; i < frameCount4; ++i) { @@ -85545,76 +88223,76 @@ static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_right_side__neon(dr left = vaddq_u32(right, side); left = vshrq_n_u32(left, 16); right = vshrq_n_u32(right, 16); - drflac__vst2q_u16((drflac_uint16*)pOutputSamples + i*8, vzip_u16(vmovn_u32(left), vmovn_u32(right))); + ma_dr_flac__vst2q_u16((ma_uint16*)pOutputSamples + i*8, vzip_u16(vmovn_u32(left), vmovn_u32(right))); } for (i = (frameCount4 << 2); i < frameCount; ++i) { - drflac_uint32 side = pInputSamples0U32[i] << shift0; - drflac_uint32 right = pInputSamples1U32[i] << shift1; - drflac_uint32 left = right + side; + ma_uint32 side = pInputSamples0U32[i] << shift0; + ma_uint32 right = pInputSamples1U32[i] << shift1; + ma_uint32 left = right + side; left >>= 16; right >>= 16; - pOutputSamples[i*2+0] = (drflac_int16)left; - pOutputSamples[i*2+1] = (drflac_int16)right; + pOutputSamples[i*2+0] = (ma_int16)left; + pOutputSamples[i*2+1] = (ma_int16)right; } } #endif -static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_right_side(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +static MA_INLINE void ma_dr_flac_read_pcm_frames_s16__decode_right_side(ma_dr_flac* pFlac, ma_uint64 frameCount, ma_uint32 unusedBitsPerSample, const ma_int32* pInputSamples0, const ma_int32* pInputSamples1, ma_int16* pOutputSamples) { -#if defined(DRFLAC_SUPPORT_SSE2) - if (drflac__gIsSSE2Supported && pFlac->bitsPerSample <= 24) { - drflac_read_pcm_frames_s16__decode_right_side__sse2(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#if defined(MA_DR_FLAC_SUPPORT_SSE2) + if (ma_dr_flac__gIsSSE2Supported && pFlac->bitsPerSample <= 24) { + ma_dr_flac_read_pcm_frames_s16__decode_right_side__sse2(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); } else -#elif defined(DRFLAC_SUPPORT_NEON) - if (drflac__gIsNEONSupported && pFlac->bitsPerSample <= 24) { - drflac_read_pcm_frames_s16__decode_right_side__neon(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#elif defined(MA_DR_FLAC_SUPPORT_NEON) + if (ma_dr_flac__gIsNEONSupported && pFlac->bitsPerSample <= 24) { + ma_dr_flac_read_pcm_frames_s16__decode_right_side__neon(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); } else #endif { #if 0 - drflac_read_pcm_frames_s16__decode_right_side__reference(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + ma_dr_flac_read_pcm_frames_s16__decode_right_side__reference(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); #else - drflac_read_pcm_frames_s16__decode_right_side__scalar(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + ma_dr_flac_read_pcm_frames_s16__decode_right_side__scalar(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); #endif } } #if 0 -static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_mid_side__reference(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +static MA_INLINE void ma_dr_flac_read_pcm_frames_s16__decode_mid_side__reference(ma_dr_flac* pFlac, ma_uint64 frameCount, ma_uint32 unusedBitsPerSample, const ma_int32* pInputSamples0, const ma_int32* pInputSamples1, ma_int16* pOutputSamples) { - for (drflac_uint64 i = 0; i < frameCount; ++i) { - drflac_uint32 mid = (drflac_uint32)pInputSamples0[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; - drflac_uint32 side = (drflac_uint32)pInputSamples1[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + for (ma_uint64 i = 0; i < frameCount; ++i) { + ma_uint32 mid = (ma_uint32)pInputSamples0[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + ma_uint32 side = (ma_uint32)pInputSamples1[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; mid = (mid << 1) | (side & 0x01); - pOutputSamples[i*2+0] = (drflac_int16)(((drflac_uint32)((drflac_int32)(mid + side) >> 1) << unusedBitsPerSample) >> 16); - pOutputSamples[i*2+1] = (drflac_int16)(((drflac_uint32)((drflac_int32)(mid - side) >> 1) << unusedBitsPerSample) >> 16); + pOutputSamples[i*2+0] = (ma_int16)(((ma_uint32)((ma_int32)(mid + side) >> 1) << unusedBitsPerSample) >> 16); + pOutputSamples[i*2+1] = (ma_int16)(((ma_uint32)((ma_int32)(mid - side) >> 1) << unusedBitsPerSample) >> 16); } } #endif -static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_mid_side__scalar(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +static MA_INLINE void ma_dr_flac_read_pcm_frames_s16__decode_mid_side__scalar(ma_dr_flac* pFlac, ma_uint64 frameCount, ma_uint32 unusedBitsPerSample, const ma_int32* pInputSamples0, const ma_int32* pInputSamples1, ma_int16* pOutputSamples) { - drflac_uint64 i; - drflac_uint64 frameCount4 = frameCount >> 2; - const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; - const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; - drflac_uint32 shift = unusedBitsPerSample; + ma_uint64 i; + ma_uint64 frameCount4 = frameCount >> 2; + const ma_uint32* pInputSamples0U32 = (const ma_uint32*)pInputSamples0; + const ma_uint32* pInputSamples1U32 = (const ma_uint32*)pInputSamples1; + ma_uint32 shift = unusedBitsPerSample; if (shift > 0) { shift -= 1; for (i = 0; i < frameCount4; ++i) { - drflac_uint32 temp0L; - drflac_uint32 temp1L; - drflac_uint32 temp2L; - drflac_uint32 temp3L; - drflac_uint32 temp0R; - drflac_uint32 temp1R; - drflac_uint32 temp2R; - drflac_uint32 temp3R; - drflac_uint32 mid0 = pInputSamples0U32[i*4+0] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; - drflac_uint32 mid1 = pInputSamples0U32[i*4+1] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; - drflac_uint32 mid2 = pInputSamples0U32[i*4+2] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; - drflac_uint32 mid3 = pInputSamples0U32[i*4+3] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; - drflac_uint32 side0 = pInputSamples1U32[i*4+0] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; - drflac_uint32 side1 = pInputSamples1U32[i*4+1] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; - drflac_uint32 side2 = pInputSamples1U32[i*4+2] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; - drflac_uint32 side3 = pInputSamples1U32[i*4+3] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + ma_uint32 temp0L; + ma_uint32 temp1L; + ma_uint32 temp2L; + ma_uint32 temp3L; + ma_uint32 temp0R; + ma_uint32 temp1R; + ma_uint32 temp2R; + ma_uint32 temp3R; + ma_uint32 mid0 = pInputSamples0U32[i*4+0] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + ma_uint32 mid1 = pInputSamples0U32[i*4+1] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + ma_uint32 mid2 = pInputSamples0U32[i*4+2] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + ma_uint32 mid3 = pInputSamples0U32[i*4+3] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + ma_uint32 side0 = pInputSamples1U32[i*4+0] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + ma_uint32 side1 = pInputSamples1U32[i*4+1] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + ma_uint32 side2 = pInputSamples1U32[i*4+2] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + ma_uint32 side3 = pInputSamples1U32[i*4+3] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; mid0 = (mid0 << 1) | (side0 & 0x01); mid1 = (mid1 << 1) | (side1 & 0x01); mid2 = (mid2 << 1) | (side2 & 0x01); @@ -85635,45 +88313,45 @@ static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_mid_side__scalar(dr temp1R >>= 16; temp2R >>= 16; temp3R >>= 16; - pOutputSamples[i*8+0] = (drflac_int16)temp0L; - pOutputSamples[i*8+1] = (drflac_int16)temp0R; - pOutputSamples[i*8+2] = (drflac_int16)temp1L; - pOutputSamples[i*8+3] = (drflac_int16)temp1R; - pOutputSamples[i*8+4] = (drflac_int16)temp2L; - pOutputSamples[i*8+5] = (drflac_int16)temp2R; - pOutputSamples[i*8+6] = (drflac_int16)temp3L; - pOutputSamples[i*8+7] = (drflac_int16)temp3R; + pOutputSamples[i*8+0] = (ma_int16)temp0L; + pOutputSamples[i*8+1] = (ma_int16)temp0R; + pOutputSamples[i*8+2] = (ma_int16)temp1L; + pOutputSamples[i*8+3] = (ma_int16)temp1R; + pOutputSamples[i*8+4] = (ma_int16)temp2L; + pOutputSamples[i*8+5] = (ma_int16)temp2R; + pOutputSamples[i*8+6] = (ma_int16)temp3L; + pOutputSamples[i*8+7] = (ma_int16)temp3R; } } else { for (i = 0; i < frameCount4; ++i) { - drflac_uint32 temp0L; - drflac_uint32 temp1L; - drflac_uint32 temp2L; - drflac_uint32 temp3L; - drflac_uint32 temp0R; - drflac_uint32 temp1R; - drflac_uint32 temp2R; - drflac_uint32 temp3R; - drflac_uint32 mid0 = pInputSamples0U32[i*4+0] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; - drflac_uint32 mid1 = pInputSamples0U32[i*4+1] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; - drflac_uint32 mid2 = pInputSamples0U32[i*4+2] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; - drflac_uint32 mid3 = pInputSamples0U32[i*4+3] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; - drflac_uint32 side0 = pInputSamples1U32[i*4+0] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; - drflac_uint32 side1 = pInputSamples1U32[i*4+1] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; - drflac_uint32 side2 = pInputSamples1U32[i*4+2] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; - drflac_uint32 side3 = pInputSamples1U32[i*4+3] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + ma_uint32 temp0L; + ma_uint32 temp1L; + ma_uint32 temp2L; + ma_uint32 temp3L; + ma_uint32 temp0R; + ma_uint32 temp1R; + ma_uint32 temp2R; + ma_uint32 temp3R; + ma_uint32 mid0 = pInputSamples0U32[i*4+0] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + ma_uint32 mid1 = pInputSamples0U32[i*4+1] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + ma_uint32 mid2 = pInputSamples0U32[i*4+2] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + ma_uint32 mid3 = pInputSamples0U32[i*4+3] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + ma_uint32 side0 = pInputSamples1U32[i*4+0] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + ma_uint32 side1 = pInputSamples1U32[i*4+1] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + ma_uint32 side2 = pInputSamples1U32[i*4+2] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + ma_uint32 side3 = pInputSamples1U32[i*4+3] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; mid0 = (mid0 << 1) | (side0 & 0x01); mid1 = (mid1 << 1) | (side1 & 0x01); mid2 = (mid2 << 1) | (side2 & 0x01); mid3 = (mid3 << 1) | (side3 & 0x01); - temp0L = ((drflac_int32)(mid0 + side0) >> 1); - temp1L = ((drflac_int32)(mid1 + side1) >> 1); - temp2L = ((drflac_int32)(mid2 + side2) >> 1); - temp3L = ((drflac_int32)(mid3 + side3) >> 1); - temp0R = ((drflac_int32)(mid0 - side0) >> 1); - temp1R = ((drflac_int32)(mid1 - side1) >> 1); - temp2R = ((drflac_int32)(mid2 - side2) >> 1); - temp3R = ((drflac_int32)(mid3 - side3) >> 1); + temp0L = ((ma_int32)(mid0 + side0) >> 1); + temp1L = ((ma_int32)(mid1 + side1) >> 1); + temp2L = ((ma_int32)(mid2 + side2) >> 1); + temp3L = ((ma_int32)(mid3 + side3) >> 1); + temp0R = ((ma_int32)(mid0 - side0) >> 1); + temp1R = ((ma_int32)(mid1 - side1) >> 1); + temp2R = ((ma_int32)(mid2 - side2) >> 1); + temp3R = ((ma_int32)(mid3 - side3) >> 1); temp0L >>= 16; temp1L >>= 16; temp2L >>= 16; @@ -85682,33 +88360,33 @@ static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_mid_side__scalar(dr temp1R >>= 16; temp2R >>= 16; temp3R >>= 16; - pOutputSamples[i*8+0] = (drflac_int16)temp0L; - pOutputSamples[i*8+1] = (drflac_int16)temp0R; - pOutputSamples[i*8+2] = (drflac_int16)temp1L; - pOutputSamples[i*8+3] = (drflac_int16)temp1R; - pOutputSamples[i*8+4] = (drflac_int16)temp2L; - pOutputSamples[i*8+5] = (drflac_int16)temp2R; - pOutputSamples[i*8+6] = (drflac_int16)temp3L; - pOutputSamples[i*8+7] = (drflac_int16)temp3R; + pOutputSamples[i*8+0] = (ma_int16)temp0L; + pOutputSamples[i*8+1] = (ma_int16)temp0R; + pOutputSamples[i*8+2] = (ma_int16)temp1L; + pOutputSamples[i*8+3] = (ma_int16)temp1R; + pOutputSamples[i*8+4] = (ma_int16)temp2L; + pOutputSamples[i*8+5] = (ma_int16)temp2R; + pOutputSamples[i*8+6] = (ma_int16)temp3L; + pOutputSamples[i*8+7] = (ma_int16)temp3R; } } for (i = (frameCount4 << 2); i < frameCount; ++i) { - drflac_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; - drflac_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + ma_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + ma_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; mid = (mid << 1) | (side & 0x01); - pOutputSamples[i*2+0] = (drflac_int16)(((drflac_uint32)((drflac_int32)(mid + side) >> 1) << unusedBitsPerSample) >> 16); - pOutputSamples[i*2+1] = (drflac_int16)(((drflac_uint32)((drflac_int32)(mid - side) >> 1) << unusedBitsPerSample) >> 16); + pOutputSamples[i*2+0] = (ma_int16)(((ma_uint32)((ma_int32)(mid + side) >> 1) << unusedBitsPerSample) >> 16); + pOutputSamples[i*2+1] = (ma_int16)(((ma_uint32)((ma_int32)(mid - side) >> 1) << unusedBitsPerSample) >> 16); } } -#if defined(DRFLAC_SUPPORT_SSE2) -static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_mid_side__sse2(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +#if defined(MA_DR_FLAC_SUPPORT_SSE2) +static MA_INLINE void ma_dr_flac_read_pcm_frames_s16__decode_mid_side__sse2(ma_dr_flac* pFlac, ma_uint64 frameCount, ma_uint32 unusedBitsPerSample, const ma_int32* pInputSamples0, const ma_int32* pInputSamples1, ma_int16* pOutputSamples) { - drflac_uint64 i; - drflac_uint64 frameCount4 = frameCount >> 2; - const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; - const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; - drflac_uint32 shift = unusedBitsPerSample; - DRFLAC_ASSERT(pFlac->bitsPerSample <= 24); + ma_uint64 i; + ma_uint64 frameCount4 = frameCount >> 2; + const ma_uint32* pInputSamples0U32 = (const ma_uint32*)pInputSamples0; + const ma_uint32* pInputSamples1U32 = (const ma_uint32*)pInputSamples1; + ma_uint32 shift = unusedBitsPerSample; + MA_DR_FLAC_ASSERT(pFlac->bitsPerSample <= 24); if (shift == 0) { for (i = 0; i < frameCount4; ++i) { __m128i mid; @@ -85722,14 +88400,14 @@ static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_mid_side__sse2(drfl right = _mm_srai_epi32(_mm_sub_epi32(mid, side), 1); left = _mm_srai_epi32(left, 16); right = _mm_srai_epi32(right, 16); - _mm_storeu_si128((__m128i*)(pOutputSamples + i*8), drflac__mm_packs_interleaved_epi32(left, right)); + _mm_storeu_si128((__m128i*)(pOutputSamples + i*8), ma_dr_flac__mm_packs_interleaved_epi32(left, right)); } for (i = (frameCount4 << 2); i < frameCount; ++i) { - drflac_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; - drflac_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + ma_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + ma_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; mid = (mid << 1) | (side & 0x01); - pOutputSamples[i*2+0] = (drflac_int16)(((drflac_int32)(mid + side) >> 1) >> 16); - pOutputSamples[i*2+1] = (drflac_int16)(((drflac_int32)(mid - side) >> 1) >> 16); + pOutputSamples[i*2+0] = (ma_int16)(((ma_int32)(mid + side) >> 1) >> 16); + pOutputSamples[i*2+1] = (ma_int16)(((ma_int32)(mid - side) >> 1) >> 16); } } else { shift -= 1; @@ -85745,29 +88423,29 @@ static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_mid_side__sse2(drfl right = _mm_slli_epi32(_mm_sub_epi32(mid, side), shift); left = _mm_srai_epi32(left, 16); right = _mm_srai_epi32(right, 16); - _mm_storeu_si128((__m128i*)(pOutputSamples + i*8), drflac__mm_packs_interleaved_epi32(left, right)); + _mm_storeu_si128((__m128i*)(pOutputSamples + i*8), ma_dr_flac__mm_packs_interleaved_epi32(left, right)); } for (i = (frameCount4 << 2); i < frameCount; ++i) { - drflac_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; - drflac_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + ma_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + ma_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; mid = (mid << 1) | (side & 0x01); - pOutputSamples[i*2+0] = (drflac_int16)(((mid + side) << shift) >> 16); - pOutputSamples[i*2+1] = (drflac_int16)(((mid - side) << shift) >> 16); + pOutputSamples[i*2+0] = (ma_int16)(((mid + side) << shift) >> 16); + pOutputSamples[i*2+1] = (ma_int16)(((mid - side) << shift) >> 16); } } } #endif -#if defined(DRFLAC_SUPPORT_NEON) -static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_mid_side__neon(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +#if defined(MA_DR_FLAC_SUPPORT_NEON) +static MA_INLINE void ma_dr_flac_read_pcm_frames_s16__decode_mid_side__neon(ma_dr_flac* pFlac, ma_uint64 frameCount, ma_uint32 unusedBitsPerSample, const ma_int32* pInputSamples0, const ma_int32* pInputSamples1, ma_int16* pOutputSamples) { - drflac_uint64 i; - drflac_uint64 frameCount4 = frameCount >> 2; - const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; - const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; - drflac_uint32 shift = unusedBitsPerSample; + ma_uint64 i; + ma_uint64 frameCount4 = frameCount >> 2; + const ma_uint32* pInputSamples0U32 = (const ma_uint32*)pInputSamples0; + const ma_uint32* pInputSamples1U32 = (const ma_uint32*)pInputSamples1; + ma_uint32 shift = unusedBitsPerSample; int32x4_t wbpsShift0_4; int32x4_t wbpsShift1_4; - DRFLAC_ASSERT(pFlac->bitsPerSample <= 24); + MA_DR_FLAC_ASSERT(pFlac->bitsPerSample <= 24); wbpsShift0_4 = vdupq_n_s32(pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample); wbpsShift1_4 = vdupq_n_s32(pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample); if (shift == 0) { @@ -85783,14 +88461,14 @@ static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_mid_side__neon(drfl right = vshrq_n_s32(vreinterpretq_s32_u32(vsubq_u32(mid, side)), 1); left = vshrq_n_s32(left, 16); right = vshrq_n_s32(right, 16); - drflac__vst2q_s16(pOutputSamples + i*8, vzip_s16(vmovn_s32(left), vmovn_s32(right))); + ma_dr_flac__vst2q_s16(pOutputSamples + i*8, vzip_s16(vmovn_s32(left), vmovn_s32(right))); } for (i = (frameCount4 << 2); i < frameCount; ++i) { - drflac_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; - drflac_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + ma_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + ma_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; mid = (mid << 1) | (side & 0x01); - pOutputSamples[i*2+0] = (drflac_int16)(((drflac_int32)(mid + side) >> 1) >> 16); - pOutputSamples[i*2+1] = (drflac_int16)(((drflac_int32)(mid - side) >> 1) >> 16); + pOutputSamples[i*2+0] = (ma_int16)(((ma_int32)(mid + side) >> 1) >> 16); + pOutputSamples[i*2+1] = (ma_int16)(((ma_int32)(mid - side) >> 1) >> 16); } } else { int32x4_t shift4; @@ -85808,63 +88486,63 @@ static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_mid_side__neon(drfl right = vreinterpretq_s32_u32(vshlq_u32(vsubq_u32(mid, side), shift4)); left = vshrq_n_s32(left, 16); right = vshrq_n_s32(right, 16); - drflac__vst2q_s16(pOutputSamples + i*8, vzip_s16(vmovn_s32(left), vmovn_s32(right))); + ma_dr_flac__vst2q_s16(pOutputSamples + i*8, vzip_s16(vmovn_s32(left), vmovn_s32(right))); } for (i = (frameCount4 << 2); i < frameCount; ++i) { - drflac_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; - drflac_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + ma_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + ma_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; mid = (mid << 1) | (side & 0x01); - pOutputSamples[i*2+0] = (drflac_int16)(((mid + side) << shift) >> 16); - pOutputSamples[i*2+1] = (drflac_int16)(((mid - side) << shift) >> 16); + pOutputSamples[i*2+0] = (ma_int16)(((mid + side) << shift) >> 16); + pOutputSamples[i*2+1] = (ma_int16)(((mid - side) << shift) >> 16); } } } #endif -static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_mid_side(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +static MA_INLINE void ma_dr_flac_read_pcm_frames_s16__decode_mid_side(ma_dr_flac* pFlac, ma_uint64 frameCount, ma_uint32 unusedBitsPerSample, const ma_int32* pInputSamples0, const ma_int32* pInputSamples1, ma_int16* pOutputSamples) { -#if defined(DRFLAC_SUPPORT_SSE2) - if (drflac__gIsSSE2Supported && pFlac->bitsPerSample <= 24) { - drflac_read_pcm_frames_s16__decode_mid_side__sse2(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#if defined(MA_DR_FLAC_SUPPORT_SSE2) + if (ma_dr_flac__gIsSSE2Supported && pFlac->bitsPerSample <= 24) { + ma_dr_flac_read_pcm_frames_s16__decode_mid_side__sse2(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); } else -#elif defined(DRFLAC_SUPPORT_NEON) - if (drflac__gIsNEONSupported && pFlac->bitsPerSample <= 24) { - drflac_read_pcm_frames_s16__decode_mid_side__neon(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#elif defined(MA_DR_FLAC_SUPPORT_NEON) + if (ma_dr_flac__gIsNEONSupported && pFlac->bitsPerSample <= 24) { + ma_dr_flac_read_pcm_frames_s16__decode_mid_side__neon(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); } else #endif { #if 0 - drflac_read_pcm_frames_s16__decode_mid_side__reference(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + ma_dr_flac_read_pcm_frames_s16__decode_mid_side__reference(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); #else - drflac_read_pcm_frames_s16__decode_mid_side__scalar(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + ma_dr_flac_read_pcm_frames_s16__decode_mid_side__scalar(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); #endif } } #if 0 -static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_independent_stereo__reference(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +static MA_INLINE void ma_dr_flac_read_pcm_frames_s16__decode_independent_stereo__reference(ma_dr_flac* pFlac, ma_uint64 frameCount, ma_uint32 unusedBitsPerSample, const ma_int32* pInputSamples0, const ma_int32* pInputSamples1, ma_int16* pOutputSamples) { - for (drflac_uint64 i = 0; i < frameCount; ++i) { - pOutputSamples[i*2+0] = (drflac_int16)((drflac_int32)((drflac_uint32)pInputSamples0[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample)) >> 16); - pOutputSamples[i*2+1] = (drflac_int16)((drflac_int32)((drflac_uint32)pInputSamples1[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample)) >> 16); + for (ma_uint64 i = 0; i < frameCount; ++i) { + pOutputSamples[i*2+0] = (ma_int16)((ma_int32)((ma_uint32)pInputSamples0[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample)) >> 16); + pOutputSamples[i*2+1] = (ma_int16)((ma_int32)((ma_uint32)pInputSamples1[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample)) >> 16); } } #endif -static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_independent_stereo__scalar(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +static MA_INLINE void ma_dr_flac_read_pcm_frames_s16__decode_independent_stereo__scalar(ma_dr_flac* pFlac, ma_uint64 frameCount, ma_uint32 unusedBitsPerSample, const ma_int32* pInputSamples0, const ma_int32* pInputSamples1, ma_int16* pOutputSamples) { - drflac_uint64 i; - drflac_uint64 frameCount4 = frameCount >> 2; - const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; - const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; - drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; - drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + ma_uint64 i; + ma_uint64 frameCount4 = frameCount >> 2; + const ma_uint32* pInputSamples0U32 = (const ma_uint32*)pInputSamples0; + const ma_uint32* pInputSamples1U32 = (const ma_uint32*)pInputSamples1; + ma_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + ma_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; for (i = 0; i < frameCount4; ++i) { - drflac_uint32 tempL0 = pInputSamples0U32[i*4+0] << shift0; - drflac_uint32 tempL1 = pInputSamples0U32[i*4+1] << shift0; - drflac_uint32 tempL2 = pInputSamples0U32[i*4+2] << shift0; - drflac_uint32 tempL3 = pInputSamples0U32[i*4+3] << shift0; - drflac_uint32 tempR0 = pInputSamples1U32[i*4+0] << shift1; - drflac_uint32 tempR1 = pInputSamples1U32[i*4+1] << shift1; - drflac_uint32 tempR2 = pInputSamples1U32[i*4+2] << shift1; - drflac_uint32 tempR3 = pInputSamples1U32[i*4+3] << shift1; + ma_uint32 tempL0 = pInputSamples0U32[i*4+0] << shift0; + ma_uint32 tempL1 = pInputSamples0U32[i*4+1] << shift0; + ma_uint32 tempL2 = pInputSamples0U32[i*4+2] << shift0; + ma_uint32 tempL3 = pInputSamples0U32[i*4+3] << shift0; + ma_uint32 tempR0 = pInputSamples1U32[i*4+0] << shift1; + ma_uint32 tempR1 = pInputSamples1U32[i*4+1] << shift1; + ma_uint32 tempR2 = pInputSamples1U32[i*4+2] << shift1; + ma_uint32 tempR3 = pInputSamples1U32[i*4+3] << shift1; tempL0 >>= 16; tempL1 >>= 16; tempL2 >>= 16; @@ -85873,51 +88551,51 @@ static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_independent_stereo_ tempR1 >>= 16; tempR2 >>= 16; tempR3 >>= 16; - pOutputSamples[i*8+0] = (drflac_int16)tempL0; - pOutputSamples[i*8+1] = (drflac_int16)tempR0; - pOutputSamples[i*8+2] = (drflac_int16)tempL1; - pOutputSamples[i*8+3] = (drflac_int16)tempR1; - pOutputSamples[i*8+4] = (drflac_int16)tempL2; - pOutputSamples[i*8+5] = (drflac_int16)tempR2; - pOutputSamples[i*8+6] = (drflac_int16)tempL3; - pOutputSamples[i*8+7] = (drflac_int16)tempR3; + pOutputSamples[i*8+0] = (ma_int16)tempL0; + pOutputSamples[i*8+1] = (ma_int16)tempR0; + pOutputSamples[i*8+2] = (ma_int16)tempL1; + pOutputSamples[i*8+3] = (ma_int16)tempR1; + pOutputSamples[i*8+4] = (ma_int16)tempL2; + pOutputSamples[i*8+5] = (ma_int16)tempR2; + pOutputSamples[i*8+6] = (ma_int16)tempL3; + pOutputSamples[i*8+7] = (ma_int16)tempR3; } for (i = (frameCount4 << 2); i < frameCount; ++i) { - pOutputSamples[i*2+0] = (drflac_int16)((pInputSamples0U32[i] << shift0) >> 16); - pOutputSamples[i*2+1] = (drflac_int16)((pInputSamples1U32[i] << shift1) >> 16); + pOutputSamples[i*2+0] = (ma_int16)((pInputSamples0U32[i] << shift0) >> 16); + pOutputSamples[i*2+1] = (ma_int16)((pInputSamples1U32[i] << shift1) >> 16); } } -#if defined(DRFLAC_SUPPORT_SSE2) -static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_independent_stereo__sse2(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +#if defined(MA_DR_FLAC_SUPPORT_SSE2) +static MA_INLINE void ma_dr_flac_read_pcm_frames_s16__decode_independent_stereo__sse2(ma_dr_flac* pFlac, ma_uint64 frameCount, ma_uint32 unusedBitsPerSample, const ma_int32* pInputSamples0, const ma_int32* pInputSamples1, ma_int16* pOutputSamples) { - drflac_uint64 i; - drflac_uint64 frameCount4 = frameCount >> 2; - const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; - const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; - drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; - drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + ma_uint64 i; + ma_uint64 frameCount4 = frameCount >> 2; + const ma_uint32* pInputSamples0U32 = (const ma_uint32*)pInputSamples0; + const ma_uint32* pInputSamples1U32 = (const ma_uint32*)pInputSamples1; + ma_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + ma_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; for (i = 0; i < frameCount4; ++i) { __m128i left = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples0 + i), shift0); __m128i right = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples1 + i), shift1); left = _mm_srai_epi32(left, 16); right = _mm_srai_epi32(right, 16); - _mm_storeu_si128((__m128i*)(pOutputSamples + i*8), drflac__mm_packs_interleaved_epi32(left, right)); + _mm_storeu_si128((__m128i*)(pOutputSamples + i*8), ma_dr_flac__mm_packs_interleaved_epi32(left, right)); } for (i = (frameCount4 << 2); i < frameCount; ++i) { - pOutputSamples[i*2+0] = (drflac_int16)((pInputSamples0U32[i] << shift0) >> 16); - pOutputSamples[i*2+1] = (drflac_int16)((pInputSamples1U32[i] << shift1) >> 16); + pOutputSamples[i*2+0] = (ma_int16)((pInputSamples0U32[i] << shift0) >> 16); + pOutputSamples[i*2+1] = (ma_int16)((pInputSamples1U32[i] << shift1) >> 16); } } #endif -#if defined(DRFLAC_SUPPORT_NEON) -static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_independent_stereo__neon(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +#if defined(MA_DR_FLAC_SUPPORT_NEON) +static MA_INLINE void ma_dr_flac_read_pcm_frames_s16__decode_independent_stereo__neon(ma_dr_flac* pFlac, ma_uint64 frameCount, ma_uint32 unusedBitsPerSample, const ma_int32* pInputSamples0, const ma_int32* pInputSamples1, ma_int16* pOutputSamples) { - drflac_uint64 i; - drflac_uint64 frameCount4 = frameCount >> 2; - const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; - const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; - drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; - drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + ma_uint64 i; + ma_uint64 frameCount4 = frameCount >> 2; + const ma_uint32* pInputSamples0U32 = (const ma_uint32*)pInputSamples0; + const ma_uint32* pInputSamples1U32 = (const ma_uint32*)pInputSamples1; + ma_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + ma_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; int32x4_t shift0_4 = vdupq_n_s32(shift0); int32x4_t shift1_4 = vdupq_n_s32(shift1); for (i = 0; i < frameCount4; ++i) { @@ -85927,88 +88605,88 @@ static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_independent_stereo_ right = vreinterpretq_s32_u32(vshlq_u32(vld1q_u32(pInputSamples1U32 + i*4), shift1_4)); left = vshrq_n_s32(left, 16); right = vshrq_n_s32(right, 16); - drflac__vst2q_s16(pOutputSamples + i*8, vzip_s16(vmovn_s32(left), vmovn_s32(right))); + ma_dr_flac__vst2q_s16(pOutputSamples + i*8, vzip_s16(vmovn_s32(left), vmovn_s32(right))); } for (i = (frameCount4 << 2); i < frameCount; ++i) { - pOutputSamples[i*2+0] = (drflac_int16)((pInputSamples0U32[i] << shift0) >> 16); - pOutputSamples[i*2+1] = (drflac_int16)((pInputSamples1U32[i] << shift1) >> 16); + pOutputSamples[i*2+0] = (ma_int16)((pInputSamples0U32[i] << shift0) >> 16); + pOutputSamples[i*2+1] = (ma_int16)((pInputSamples1U32[i] << shift1) >> 16); } } #endif -static DRFLAC_INLINE void drflac_read_pcm_frames_s16__decode_independent_stereo(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, drflac_int16* pOutputSamples) +static MA_INLINE void ma_dr_flac_read_pcm_frames_s16__decode_independent_stereo(ma_dr_flac* pFlac, ma_uint64 frameCount, ma_uint32 unusedBitsPerSample, const ma_int32* pInputSamples0, const ma_int32* pInputSamples1, ma_int16* pOutputSamples) { -#if defined(DRFLAC_SUPPORT_SSE2) - if (drflac__gIsSSE2Supported && pFlac->bitsPerSample <= 24) { - drflac_read_pcm_frames_s16__decode_independent_stereo__sse2(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#if defined(MA_DR_FLAC_SUPPORT_SSE2) + if (ma_dr_flac__gIsSSE2Supported && pFlac->bitsPerSample <= 24) { + ma_dr_flac_read_pcm_frames_s16__decode_independent_stereo__sse2(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); } else -#elif defined(DRFLAC_SUPPORT_NEON) - if (drflac__gIsNEONSupported && pFlac->bitsPerSample <= 24) { - drflac_read_pcm_frames_s16__decode_independent_stereo__neon(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#elif defined(MA_DR_FLAC_SUPPORT_NEON) + if (ma_dr_flac__gIsNEONSupported && pFlac->bitsPerSample <= 24) { + ma_dr_flac_read_pcm_frames_s16__decode_independent_stereo__neon(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); } else #endif { #if 0 - drflac_read_pcm_frames_s16__decode_independent_stereo__reference(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + ma_dr_flac_read_pcm_frames_s16__decode_independent_stereo__reference(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); #else - drflac_read_pcm_frames_s16__decode_independent_stereo__scalar(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + ma_dr_flac_read_pcm_frames_s16__decode_independent_stereo__scalar(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); #endif } } -DRFLAC_API drflac_uint64 drflac_read_pcm_frames_s16(drflac* pFlac, drflac_uint64 framesToRead, drflac_int16* pBufferOut) +MA_API ma_uint64 ma_dr_flac_read_pcm_frames_s16(ma_dr_flac* pFlac, ma_uint64 framesToRead, ma_int16* pBufferOut) { - drflac_uint64 framesRead; - drflac_uint32 unusedBitsPerSample; + ma_uint64 framesRead; + ma_uint32 unusedBitsPerSample; if (pFlac == NULL || framesToRead == 0) { return 0; } if (pBufferOut == NULL) { - return drflac__seek_forward_by_pcm_frames(pFlac, framesToRead); + return ma_dr_flac__seek_forward_by_pcm_frames(pFlac, framesToRead); } - DRFLAC_ASSERT(pFlac->bitsPerSample <= 32); + MA_DR_FLAC_ASSERT(pFlac->bitsPerSample <= 32); unusedBitsPerSample = 32 - pFlac->bitsPerSample; framesRead = 0; while (framesToRead > 0) { if (pFlac->currentFLACFrame.pcmFramesRemaining == 0) { - if (!drflac__read_and_decode_next_flac_frame(pFlac)) { + if (!ma_dr_flac__read_and_decode_next_flac_frame(pFlac)) { break; } } else { - unsigned int channelCount = drflac__get_channel_count_from_channel_assignment(pFlac->currentFLACFrame.header.channelAssignment); - drflac_uint64 iFirstPCMFrame = pFlac->currentFLACFrame.header.blockSizeInPCMFrames - pFlac->currentFLACFrame.pcmFramesRemaining; - drflac_uint64 frameCountThisIteration = framesToRead; + unsigned int channelCount = ma_dr_flac__get_channel_count_from_channel_assignment(pFlac->currentFLACFrame.header.channelAssignment); + ma_uint64 iFirstPCMFrame = pFlac->currentFLACFrame.header.blockSizeInPCMFrames - pFlac->currentFLACFrame.pcmFramesRemaining; + ma_uint64 frameCountThisIteration = framesToRead; if (frameCountThisIteration > pFlac->currentFLACFrame.pcmFramesRemaining) { frameCountThisIteration = pFlac->currentFLACFrame.pcmFramesRemaining; } if (channelCount == 2) { - const drflac_int32* pDecodedSamples0 = pFlac->currentFLACFrame.subframes[0].pSamplesS32 + iFirstPCMFrame; - const drflac_int32* pDecodedSamples1 = pFlac->currentFLACFrame.subframes[1].pSamplesS32 + iFirstPCMFrame; + const ma_int32* pDecodedSamples0 = pFlac->currentFLACFrame.subframes[0].pSamplesS32 + iFirstPCMFrame; + const ma_int32* pDecodedSamples1 = pFlac->currentFLACFrame.subframes[1].pSamplesS32 + iFirstPCMFrame; switch (pFlac->currentFLACFrame.header.channelAssignment) { - case DRFLAC_CHANNEL_ASSIGNMENT_LEFT_SIDE: + case MA_DR_FLAC_CHANNEL_ASSIGNMENT_LEFT_SIDE: { - drflac_read_pcm_frames_s16__decode_left_side(pFlac, frameCountThisIteration, unusedBitsPerSample, pDecodedSamples0, pDecodedSamples1, pBufferOut); + ma_dr_flac_read_pcm_frames_s16__decode_left_side(pFlac, frameCountThisIteration, unusedBitsPerSample, pDecodedSamples0, pDecodedSamples1, pBufferOut); } break; - case DRFLAC_CHANNEL_ASSIGNMENT_RIGHT_SIDE: + case MA_DR_FLAC_CHANNEL_ASSIGNMENT_RIGHT_SIDE: { - drflac_read_pcm_frames_s16__decode_right_side(pFlac, frameCountThisIteration, unusedBitsPerSample, pDecodedSamples0, pDecodedSamples1, pBufferOut); + ma_dr_flac_read_pcm_frames_s16__decode_right_side(pFlac, frameCountThisIteration, unusedBitsPerSample, pDecodedSamples0, pDecodedSamples1, pBufferOut); } break; - case DRFLAC_CHANNEL_ASSIGNMENT_MID_SIDE: + case MA_DR_FLAC_CHANNEL_ASSIGNMENT_MID_SIDE: { - drflac_read_pcm_frames_s16__decode_mid_side(pFlac, frameCountThisIteration, unusedBitsPerSample, pDecodedSamples0, pDecodedSamples1, pBufferOut); + ma_dr_flac_read_pcm_frames_s16__decode_mid_side(pFlac, frameCountThisIteration, unusedBitsPerSample, pDecodedSamples0, pDecodedSamples1, pBufferOut); } break; - case DRFLAC_CHANNEL_ASSIGNMENT_INDEPENDENT: + case MA_DR_FLAC_CHANNEL_ASSIGNMENT_INDEPENDENT: default: { - drflac_read_pcm_frames_s16__decode_independent_stereo(pFlac, frameCountThisIteration, unusedBitsPerSample, pDecodedSamples0, pDecodedSamples1, pBufferOut); + ma_dr_flac_read_pcm_frames_s16__decode_independent_stereo(pFlac, frameCountThisIteration, unusedBitsPerSample, pDecodedSamples0, pDecodedSamples1, pBufferOut); } break; } } else { - drflac_uint64 i; + ma_uint64 i; for (i = 0; i < frameCountThisIteration; ++i) { unsigned int j; for (j = 0; j < channelCount; ++j) { - drflac_int32 sampleS32 = (drflac_int32)((drflac_uint32)(pFlac->currentFLACFrame.subframes[j].pSamplesS32[iFirstPCMFrame + i]) << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[j].wastedBitsPerSample)); - pBufferOut[(i*channelCount)+j] = (drflac_int16)(sampleS32 >> 16); + ma_int32 sampleS32 = (ma_int32)((ma_uint32)(pFlac->currentFLACFrame.subframes[j].pSamplesS32[iFirstPCMFrame + i]) << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[j].wastedBitsPerSample)); + pBufferOut[(i*channelCount)+j] = (ma_int16)(sampleS32 >> 16); } } } @@ -86016,74 +88694,74 @@ DRFLAC_API drflac_uint64 drflac_read_pcm_frames_s16(drflac* pFlac, drflac_uint64 pBufferOut += frameCountThisIteration * channelCount; framesToRead -= frameCountThisIteration; pFlac->currentPCMFrame += frameCountThisIteration; - pFlac->currentFLACFrame.pcmFramesRemaining -= (drflac_uint32)frameCountThisIteration; + pFlac->currentFLACFrame.pcmFramesRemaining -= (ma_uint32)frameCountThisIteration; } } return framesRead; } #if 0 -static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_left_side__reference(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +static MA_INLINE void ma_dr_flac_read_pcm_frames_f32__decode_left_side__reference(ma_dr_flac* pFlac, ma_uint64 frameCount, ma_uint32 unusedBitsPerSample, const ma_int32* pInputSamples0, const ma_int32* pInputSamples1, float* pOutputSamples) { - drflac_uint64 i; + ma_uint64 i; for (i = 0; i < frameCount; ++i) { - drflac_uint32 left = (drflac_uint32)pInputSamples0[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample); - drflac_uint32 side = (drflac_uint32)pInputSamples1[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample); - drflac_uint32 right = left - side; - pOutputSamples[i*2+0] = (float)((drflac_int32)left / 2147483648.0); - pOutputSamples[i*2+1] = (float)((drflac_int32)right / 2147483648.0); + ma_uint32 left = (ma_uint32)pInputSamples0[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample); + ma_uint32 side = (ma_uint32)pInputSamples1[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample); + ma_uint32 right = left - side; + pOutputSamples[i*2+0] = (float)((ma_int32)left / 2147483648.0); + pOutputSamples[i*2+1] = (float)((ma_int32)right / 2147483648.0); } } #endif -static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_left_side__scalar(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +static MA_INLINE void ma_dr_flac_read_pcm_frames_f32__decode_left_side__scalar(ma_dr_flac* pFlac, ma_uint64 frameCount, ma_uint32 unusedBitsPerSample, const ma_int32* pInputSamples0, const ma_int32* pInputSamples1, float* pOutputSamples) { - drflac_uint64 i; - drflac_uint64 frameCount4 = frameCount >> 2; - const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; - const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; - drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; - drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + ma_uint64 i; + ma_uint64 frameCount4 = frameCount >> 2; + const ma_uint32* pInputSamples0U32 = (const ma_uint32*)pInputSamples0; + const ma_uint32* pInputSamples1U32 = (const ma_uint32*)pInputSamples1; + ma_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + ma_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; float factor = 1 / 2147483648.0; for (i = 0; i < frameCount4; ++i) { - drflac_uint32 left0 = pInputSamples0U32[i*4+0] << shift0; - drflac_uint32 left1 = pInputSamples0U32[i*4+1] << shift0; - drflac_uint32 left2 = pInputSamples0U32[i*4+2] << shift0; - drflac_uint32 left3 = pInputSamples0U32[i*4+3] << shift0; - drflac_uint32 side0 = pInputSamples1U32[i*4+0] << shift1; - drflac_uint32 side1 = pInputSamples1U32[i*4+1] << shift1; - drflac_uint32 side2 = pInputSamples1U32[i*4+2] << shift1; - drflac_uint32 side3 = pInputSamples1U32[i*4+3] << shift1; - drflac_uint32 right0 = left0 - side0; - drflac_uint32 right1 = left1 - side1; - drflac_uint32 right2 = left2 - side2; - drflac_uint32 right3 = left3 - side3; - pOutputSamples[i*8+0] = (drflac_int32)left0 * factor; - pOutputSamples[i*8+1] = (drflac_int32)right0 * factor; - pOutputSamples[i*8+2] = (drflac_int32)left1 * factor; - pOutputSamples[i*8+3] = (drflac_int32)right1 * factor; - pOutputSamples[i*8+4] = (drflac_int32)left2 * factor; - pOutputSamples[i*8+5] = (drflac_int32)right2 * factor; - pOutputSamples[i*8+6] = (drflac_int32)left3 * factor; - pOutputSamples[i*8+7] = (drflac_int32)right3 * factor; + ma_uint32 left0 = pInputSamples0U32[i*4+0] << shift0; + ma_uint32 left1 = pInputSamples0U32[i*4+1] << shift0; + ma_uint32 left2 = pInputSamples0U32[i*4+2] << shift0; + ma_uint32 left3 = pInputSamples0U32[i*4+3] << shift0; + ma_uint32 side0 = pInputSamples1U32[i*4+0] << shift1; + ma_uint32 side1 = pInputSamples1U32[i*4+1] << shift1; + ma_uint32 side2 = pInputSamples1U32[i*4+2] << shift1; + ma_uint32 side3 = pInputSamples1U32[i*4+3] << shift1; + ma_uint32 right0 = left0 - side0; + ma_uint32 right1 = left1 - side1; + ma_uint32 right2 = left2 - side2; + ma_uint32 right3 = left3 - side3; + pOutputSamples[i*8+0] = (ma_int32)left0 * factor; + pOutputSamples[i*8+1] = (ma_int32)right0 * factor; + pOutputSamples[i*8+2] = (ma_int32)left1 * factor; + pOutputSamples[i*8+3] = (ma_int32)right1 * factor; + pOutputSamples[i*8+4] = (ma_int32)left2 * factor; + pOutputSamples[i*8+5] = (ma_int32)right2 * factor; + pOutputSamples[i*8+6] = (ma_int32)left3 * factor; + pOutputSamples[i*8+7] = (ma_int32)right3 * factor; } for (i = (frameCount4 << 2); i < frameCount; ++i) { - drflac_uint32 left = pInputSamples0U32[i] << shift0; - drflac_uint32 side = pInputSamples1U32[i] << shift1; - drflac_uint32 right = left - side; - pOutputSamples[i*2+0] = (drflac_int32)left * factor; - pOutputSamples[i*2+1] = (drflac_int32)right * factor; + ma_uint32 left = pInputSamples0U32[i] << shift0; + ma_uint32 side = pInputSamples1U32[i] << shift1; + ma_uint32 right = left - side; + pOutputSamples[i*2+0] = (ma_int32)left * factor; + pOutputSamples[i*2+1] = (ma_int32)right * factor; } } -#if defined(DRFLAC_SUPPORT_SSE2) -static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_left_side__sse2(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +#if defined(MA_DR_FLAC_SUPPORT_SSE2) +static MA_INLINE void ma_dr_flac_read_pcm_frames_f32__decode_left_side__sse2(ma_dr_flac* pFlac, ma_uint64 frameCount, ma_uint32 unusedBitsPerSample, const ma_int32* pInputSamples0, const ma_int32* pInputSamples1, float* pOutputSamples) { - drflac_uint64 i; - drflac_uint64 frameCount4 = frameCount >> 2; - const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; - const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; - drflac_uint32 shift0 = (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample) - 8; - drflac_uint32 shift1 = (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample) - 8; + ma_uint64 i; + ma_uint64 frameCount4 = frameCount >> 2; + const ma_uint32* pInputSamples0U32 = (const ma_uint32*)pInputSamples0; + const ma_uint32* pInputSamples1U32 = (const ma_uint32*)pInputSamples1; + ma_uint32 shift0 = (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample) - 8; + ma_uint32 shift1 = (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample) - 8; __m128 factor; - DRFLAC_ASSERT(pFlac->bitsPerSample <= 24); + MA_DR_FLAC_ASSERT(pFlac->bitsPerSample <= 24); factor = _mm_set1_ps(1.0f / 8388608.0f); for (i = 0; i < frameCount4; ++i) { __m128i left = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples0 + i), shift0); @@ -86095,27 +88773,27 @@ static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_left_side__sse2(drf _mm_storeu_ps(pOutputSamples + i*8 + 4, _mm_unpackhi_ps(leftf, rightf)); } for (i = (frameCount4 << 2); i < frameCount; ++i) { - drflac_uint32 left = pInputSamples0U32[i] << shift0; - drflac_uint32 side = pInputSamples1U32[i] << shift1; - drflac_uint32 right = left - side; - pOutputSamples[i*2+0] = (drflac_int32)left / 8388608.0f; - pOutputSamples[i*2+1] = (drflac_int32)right / 8388608.0f; + ma_uint32 left = pInputSamples0U32[i] << shift0; + ma_uint32 side = pInputSamples1U32[i] << shift1; + ma_uint32 right = left - side; + pOutputSamples[i*2+0] = (ma_int32)left / 8388608.0f; + pOutputSamples[i*2+1] = (ma_int32)right / 8388608.0f; } } #endif -#if defined(DRFLAC_SUPPORT_NEON) -static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_left_side__neon(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +#if defined(MA_DR_FLAC_SUPPORT_NEON) +static MA_INLINE void ma_dr_flac_read_pcm_frames_f32__decode_left_side__neon(ma_dr_flac* pFlac, ma_uint64 frameCount, ma_uint32 unusedBitsPerSample, const ma_int32* pInputSamples0, const ma_int32* pInputSamples1, float* pOutputSamples) { - drflac_uint64 i; - drflac_uint64 frameCount4 = frameCount >> 2; - const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; - const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; - drflac_uint32 shift0 = (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample) - 8; - drflac_uint32 shift1 = (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample) - 8; + ma_uint64 i; + ma_uint64 frameCount4 = frameCount >> 2; + const ma_uint32* pInputSamples0U32 = (const ma_uint32*)pInputSamples0; + const ma_uint32* pInputSamples1U32 = (const ma_uint32*)pInputSamples1; + ma_uint32 shift0 = (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample) - 8; + ma_uint32 shift1 = (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample) - 8; float32x4_t factor4; int32x4_t shift0_4; int32x4_t shift1_4; - DRFLAC_ASSERT(pFlac->bitsPerSample <= 24); + MA_DR_FLAC_ASSERT(pFlac->bitsPerSample <= 24); factor4 = vdupq_n_f32(1.0f / 8388608.0f); shift0_4 = vdupq_n_s32(shift0); shift1_4 = vdupq_n_s32(shift1); @@ -86130,99 +88808,99 @@ static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_left_side__neon(drf right = vsubq_u32(left, side); leftf = vmulq_f32(vcvtq_f32_s32(vreinterpretq_s32_u32(left)), factor4); rightf = vmulq_f32(vcvtq_f32_s32(vreinterpretq_s32_u32(right)), factor4); - drflac__vst2q_f32(pOutputSamples + i*8, vzipq_f32(leftf, rightf)); + ma_dr_flac__vst2q_f32(pOutputSamples + i*8, vzipq_f32(leftf, rightf)); } for (i = (frameCount4 << 2); i < frameCount; ++i) { - drflac_uint32 left = pInputSamples0U32[i] << shift0; - drflac_uint32 side = pInputSamples1U32[i] << shift1; - drflac_uint32 right = left - side; - pOutputSamples[i*2+0] = (drflac_int32)left / 8388608.0f; - pOutputSamples[i*2+1] = (drflac_int32)right / 8388608.0f; + ma_uint32 left = pInputSamples0U32[i] << shift0; + ma_uint32 side = pInputSamples1U32[i] << shift1; + ma_uint32 right = left - side; + pOutputSamples[i*2+0] = (ma_int32)left / 8388608.0f; + pOutputSamples[i*2+1] = (ma_int32)right / 8388608.0f; } } #endif -static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_left_side(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +static MA_INLINE void ma_dr_flac_read_pcm_frames_f32__decode_left_side(ma_dr_flac* pFlac, ma_uint64 frameCount, ma_uint32 unusedBitsPerSample, const ma_int32* pInputSamples0, const ma_int32* pInputSamples1, float* pOutputSamples) { -#if defined(DRFLAC_SUPPORT_SSE2) - if (drflac__gIsSSE2Supported && pFlac->bitsPerSample <= 24) { - drflac_read_pcm_frames_f32__decode_left_side__sse2(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#if defined(MA_DR_FLAC_SUPPORT_SSE2) + if (ma_dr_flac__gIsSSE2Supported && pFlac->bitsPerSample <= 24) { + ma_dr_flac_read_pcm_frames_f32__decode_left_side__sse2(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); } else -#elif defined(DRFLAC_SUPPORT_NEON) - if (drflac__gIsNEONSupported && pFlac->bitsPerSample <= 24) { - drflac_read_pcm_frames_f32__decode_left_side__neon(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#elif defined(MA_DR_FLAC_SUPPORT_NEON) + if (ma_dr_flac__gIsNEONSupported && pFlac->bitsPerSample <= 24) { + ma_dr_flac_read_pcm_frames_f32__decode_left_side__neon(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); } else #endif { #if 0 - drflac_read_pcm_frames_f32__decode_left_side__reference(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + ma_dr_flac_read_pcm_frames_f32__decode_left_side__reference(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); #else - drflac_read_pcm_frames_f32__decode_left_side__scalar(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + ma_dr_flac_read_pcm_frames_f32__decode_left_side__scalar(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); #endif } } #if 0 -static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_right_side__reference(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +static MA_INLINE void ma_dr_flac_read_pcm_frames_f32__decode_right_side__reference(ma_dr_flac* pFlac, ma_uint64 frameCount, ma_uint32 unusedBitsPerSample, const ma_int32* pInputSamples0, const ma_int32* pInputSamples1, float* pOutputSamples) { - drflac_uint64 i; + ma_uint64 i; for (i = 0; i < frameCount; ++i) { - drflac_uint32 side = (drflac_uint32)pInputSamples0[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample); - drflac_uint32 right = (drflac_uint32)pInputSamples1[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample); - drflac_uint32 left = right + side; - pOutputSamples[i*2+0] = (float)((drflac_int32)left / 2147483648.0); - pOutputSamples[i*2+1] = (float)((drflac_int32)right / 2147483648.0); + ma_uint32 side = (ma_uint32)pInputSamples0[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample); + ma_uint32 right = (ma_uint32)pInputSamples1[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample); + ma_uint32 left = right + side; + pOutputSamples[i*2+0] = (float)((ma_int32)left / 2147483648.0); + pOutputSamples[i*2+1] = (float)((ma_int32)right / 2147483648.0); } } #endif -static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_right_side__scalar(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +static MA_INLINE void ma_dr_flac_read_pcm_frames_f32__decode_right_side__scalar(ma_dr_flac* pFlac, ma_uint64 frameCount, ma_uint32 unusedBitsPerSample, const ma_int32* pInputSamples0, const ma_int32* pInputSamples1, float* pOutputSamples) { - drflac_uint64 i; - drflac_uint64 frameCount4 = frameCount >> 2; - const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; - const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; - drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; - drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + ma_uint64 i; + ma_uint64 frameCount4 = frameCount >> 2; + const ma_uint32* pInputSamples0U32 = (const ma_uint32*)pInputSamples0; + const ma_uint32* pInputSamples1U32 = (const ma_uint32*)pInputSamples1; + ma_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + ma_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; float factor = 1 / 2147483648.0; for (i = 0; i < frameCount4; ++i) { - drflac_uint32 side0 = pInputSamples0U32[i*4+0] << shift0; - drflac_uint32 side1 = pInputSamples0U32[i*4+1] << shift0; - drflac_uint32 side2 = pInputSamples0U32[i*4+2] << shift0; - drflac_uint32 side3 = pInputSamples0U32[i*4+3] << shift0; - drflac_uint32 right0 = pInputSamples1U32[i*4+0] << shift1; - drflac_uint32 right1 = pInputSamples1U32[i*4+1] << shift1; - drflac_uint32 right2 = pInputSamples1U32[i*4+2] << shift1; - drflac_uint32 right3 = pInputSamples1U32[i*4+3] << shift1; - drflac_uint32 left0 = right0 + side0; - drflac_uint32 left1 = right1 + side1; - drflac_uint32 left2 = right2 + side2; - drflac_uint32 left3 = right3 + side3; - pOutputSamples[i*8+0] = (drflac_int32)left0 * factor; - pOutputSamples[i*8+1] = (drflac_int32)right0 * factor; - pOutputSamples[i*8+2] = (drflac_int32)left1 * factor; - pOutputSamples[i*8+3] = (drflac_int32)right1 * factor; - pOutputSamples[i*8+4] = (drflac_int32)left2 * factor; - pOutputSamples[i*8+5] = (drflac_int32)right2 * factor; - pOutputSamples[i*8+6] = (drflac_int32)left3 * factor; - pOutputSamples[i*8+7] = (drflac_int32)right3 * factor; + ma_uint32 side0 = pInputSamples0U32[i*4+0] << shift0; + ma_uint32 side1 = pInputSamples0U32[i*4+1] << shift0; + ma_uint32 side2 = pInputSamples0U32[i*4+2] << shift0; + ma_uint32 side3 = pInputSamples0U32[i*4+3] << shift0; + ma_uint32 right0 = pInputSamples1U32[i*4+0] << shift1; + ma_uint32 right1 = pInputSamples1U32[i*4+1] << shift1; + ma_uint32 right2 = pInputSamples1U32[i*4+2] << shift1; + ma_uint32 right3 = pInputSamples1U32[i*4+3] << shift1; + ma_uint32 left0 = right0 + side0; + ma_uint32 left1 = right1 + side1; + ma_uint32 left2 = right2 + side2; + ma_uint32 left3 = right3 + side3; + pOutputSamples[i*8+0] = (ma_int32)left0 * factor; + pOutputSamples[i*8+1] = (ma_int32)right0 * factor; + pOutputSamples[i*8+2] = (ma_int32)left1 * factor; + pOutputSamples[i*8+3] = (ma_int32)right1 * factor; + pOutputSamples[i*8+4] = (ma_int32)left2 * factor; + pOutputSamples[i*8+5] = (ma_int32)right2 * factor; + pOutputSamples[i*8+6] = (ma_int32)left3 * factor; + pOutputSamples[i*8+7] = (ma_int32)right3 * factor; } for (i = (frameCount4 << 2); i < frameCount; ++i) { - drflac_uint32 side = pInputSamples0U32[i] << shift0; - drflac_uint32 right = pInputSamples1U32[i] << shift1; - drflac_uint32 left = right + side; - pOutputSamples[i*2+0] = (drflac_int32)left * factor; - pOutputSamples[i*2+1] = (drflac_int32)right * factor; + ma_uint32 side = pInputSamples0U32[i] << shift0; + ma_uint32 right = pInputSamples1U32[i] << shift1; + ma_uint32 left = right + side; + pOutputSamples[i*2+0] = (ma_int32)left * factor; + pOutputSamples[i*2+1] = (ma_int32)right * factor; } } -#if defined(DRFLAC_SUPPORT_SSE2) -static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_right_side__sse2(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +#if defined(MA_DR_FLAC_SUPPORT_SSE2) +static MA_INLINE void ma_dr_flac_read_pcm_frames_f32__decode_right_side__sse2(ma_dr_flac* pFlac, ma_uint64 frameCount, ma_uint32 unusedBitsPerSample, const ma_int32* pInputSamples0, const ma_int32* pInputSamples1, float* pOutputSamples) { - drflac_uint64 i; - drflac_uint64 frameCount4 = frameCount >> 2; - const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; - const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; - drflac_uint32 shift0 = (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample) - 8; - drflac_uint32 shift1 = (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample) - 8; + ma_uint64 i; + ma_uint64 frameCount4 = frameCount >> 2; + const ma_uint32* pInputSamples0U32 = (const ma_uint32*)pInputSamples0; + const ma_uint32* pInputSamples1U32 = (const ma_uint32*)pInputSamples1; + ma_uint32 shift0 = (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample) - 8; + ma_uint32 shift1 = (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample) - 8; __m128 factor; - DRFLAC_ASSERT(pFlac->bitsPerSample <= 24); + MA_DR_FLAC_ASSERT(pFlac->bitsPerSample <= 24); factor = _mm_set1_ps(1.0f / 8388608.0f); for (i = 0; i < frameCount4; ++i) { __m128i side = _mm_slli_epi32(_mm_loadu_si128((const __m128i*)pInputSamples0 + i), shift0); @@ -86234,27 +88912,27 @@ static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_right_side__sse2(dr _mm_storeu_ps(pOutputSamples + i*8 + 4, _mm_unpackhi_ps(leftf, rightf)); } for (i = (frameCount4 << 2); i < frameCount; ++i) { - drflac_uint32 side = pInputSamples0U32[i] << shift0; - drflac_uint32 right = pInputSamples1U32[i] << shift1; - drflac_uint32 left = right + side; - pOutputSamples[i*2+0] = (drflac_int32)left / 8388608.0f; - pOutputSamples[i*2+1] = (drflac_int32)right / 8388608.0f; + ma_uint32 side = pInputSamples0U32[i] << shift0; + ma_uint32 right = pInputSamples1U32[i] << shift1; + ma_uint32 left = right + side; + pOutputSamples[i*2+0] = (ma_int32)left / 8388608.0f; + pOutputSamples[i*2+1] = (ma_int32)right / 8388608.0f; } } #endif -#if defined(DRFLAC_SUPPORT_NEON) -static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_right_side__neon(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +#if defined(MA_DR_FLAC_SUPPORT_NEON) +static MA_INLINE void ma_dr_flac_read_pcm_frames_f32__decode_right_side__neon(ma_dr_flac* pFlac, ma_uint64 frameCount, ma_uint32 unusedBitsPerSample, const ma_int32* pInputSamples0, const ma_int32* pInputSamples1, float* pOutputSamples) { - drflac_uint64 i; - drflac_uint64 frameCount4 = frameCount >> 2; - const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; - const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; - drflac_uint32 shift0 = (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample) - 8; - drflac_uint32 shift1 = (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample) - 8; + ma_uint64 i; + ma_uint64 frameCount4 = frameCount >> 2; + const ma_uint32* pInputSamples0U32 = (const ma_uint32*)pInputSamples0; + const ma_uint32* pInputSamples1U32 = (const ma_uint32*)pInputSamples1; + ma_uint32 shift0 = (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample) - 8; + ma_uint32 shift1 = (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample) - 8; float32x4_t factor4; int32x4_t shift0_4; int32x4_t shift1_4; - DRFLAC_ASSERT(pFlac->bitsPerSample <= 24); + MA_DR_FLAC_ASSERT(pFlac->bitsPerSample <= 24); factor4 = vdupq_n_f32(1.0f / 8388608.0f); shift0_4 = vdupq_n_s32(shift0); shift1_4 = vdupq_n_s32(shift1); @@ -86269,75 +88947,75 @@ static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_right_side__neon(dr left = vaddq_u32(right, side); leftf = vmulq_f32(vcvtq_f32_s32(vreinterpretq_s32_u32(left)), factor4); rightf = vmulq_f32(vcvtq_f32_s32(vreinterpretq_s32_u32(right)), factor4); - drflac__vst2q_f32(pOutputSamples + i*8, vzipq_f32(leftf, rightf)); + ma_dr_flac__vst2q_f32(pOutputSamples + i*8, vzipq_f32(leftf, rightf)); } for (i = (frameCount4 << 2); i < frameCount; ++i) { - drflac_uint32 side = pInputSamples0U32[i] << shift0; - drflac_uint32 right = pInputSamples1U32[i] << shift1; - drflac_uint32 left = right + side; - pOutputSamples[i*2+0] = (drflac_int32)left / 8388608.0f; - pOutputSamples[i*2+1] = (drflac_int32)right / 8388608.0f; + ma_uint32 side = pInputSamples0U32[i] << shift0; + ma_uint32 right = pInputSamples1U32[i] << shift1; + ma_uint32 left = right + side; + pOutputSamples[i*2+0] = (ma_int32)left / 8388608.0f; + pOutputSamples[i*2+1] = (ma_int32)right / 8388608.0f; } } #endif -static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_right_side(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +static MA_INLINE void ma_dr_flac_read_pcm_frames_f32__decode_right_side(ma_dr_flac* pFlac, ma_uint64 frameCount, ma_uint32 unusedBitsPerSample, const ma_int32* pInputSamples0, const ma_int32* pInputSamples1, float* pOutputSamples) { -#if defined(DRFLAC_SUPPORT_SSE2) - if (drflac__gIsSSE2Supported && pFlac->bitsPerSample <= 24) { - drflac_read_pcm_frames_f32__decode_right_side__sse2(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#if defined(MA_DR_FLAC_SUPPORT_SSE2) + if (ma_dr_flac__gIsSSE2Supported && pFlac->bitsPerSample <= 24) { + ma_dr_flac_read_pcm_frames_f32__decode_right_side__sse2(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); } else -#elif defined(DRFLAC_SUPPORT_NEON) - if (drflac__gIsNEONSupported && pFlac->bitsPerSample <= 24) { - drflac_read_pcm_frames_f32__decode_right_side__neon(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#elif defined(MA_DR_FLAC_SUPPORT_NEON) + if (ma_dr_flac__gIsNEONSupported && pFlac->bitsPerSample <= 24) { + ma_dr_flac_read_pcm_frames_f32__decode_right_side__neon(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); } else #endif { #if 0 - drflac_read_pcm_frames_f32__decode_right_side__reference(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + ma_dr_flac_read_pcm_frames_f32__decode_right_side__reference(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); #else - drflac_read_pcm_frames_f32__decode_right_side__scalar(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + ma_dr_flac_read_pcm_frames_f32__decode_right_side__scalar(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); #endif } } #if 0 -static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_mid_side__reference(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +static MA_INLINE void ma_dr_flac_read_pcm_frames_f32__decode_mid_side__reference(ma_dr_flac* pFlac, ma_uint64 frameCount, ma_uint32 unusedBitsPerSample, const ma_int32* pInputSamples0, const ma_int32* pInputSamples1, float* pOutputSamples) { - for (drflac_uint64 i = 0; i < frameCount; ++i) { - drflac_uint32 mid = (drflac_uint32)pInputSamples0[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; - drflac_uint32 side = (drflac_uint32)pInputSamples1[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + for (ma_uint64 i = 0; i < frameCount; ++i) { + ma_uint32 mid = (ma_uint32)pInputSamples0[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + ma_uint32 side = (ma_uint32)pInputSamples1[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; mid = (mid << 1) | (side & 0x01); - pOutputSamples[i*2+0] = (float)((((drflac_int32)(mid + side) >> 1) << (unusedBitsPerSample)) / 2147483648.0); - pOutputSamples[i*2+1] = (float)((((drflac_int32)(mid - side) >> 1) << (unusedBitsPerSample)) / 2147483648.0); + pOutputSamples[i*2+0] = (float)((((ma_int32)(mid + side) >> 1) << (unusedBitsPerSample)) / 2147483648.0); + pOutputSamples[i*2+1] = (float)((((ma_int32)(mid - side) >> 1) << (unusedBitsPerSample)) / 2147483648.0); } } #endif -static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_mid_side__scalar(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +static MA_INLINE void ma_dr_flac_read_pcm_frames_f32__decode_mid_side__scalar(ma_dr_flac* pFlac, ma_uint64 frameCount, ma_uint32 unusedBitsPerSample, const ma_int32* pInputSamples0, const ma_int32* pInputSamples1, float* pOutputSamples) { - drflac_uint64 i; - drflac_uint64 frameCount4 = frameCount >> 2; - const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; - const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; - drflac_uint32 shift = unusedBitsPerSample; + ma_uint64 i; + ma_uint64 frameCount4 = frameCount >> 2; + const ma_uint32* pInputSamples0U32 = (const ma_uint32*)pInputSamples0; + const ma_uint32* pInputSamples1U32 = (const ma_uint32*)pInputSamples1; + ma_uint32 shift = unusedBitsPerSample; float factor = 1 / 2147483648.0; if (shift > 0) { shift -= 1; for (i = 0; i < frameCount4; ++i) { - drflac_uint32 temp0L; - drflac_uint32 temp1L; - drflac_uint32 temp2L; - drflac_uint32 temp3L; - drflac_uint32 temp0R; - drflac_uint32 temp1R; - drflac_uint32 temp2R; - drflac_uint32 temp3R; - drflac_uint32 mid0 = pInputSamples0U32[i*4+0] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; - drflac_uint32 mid1 = pInputSamples0U32[i*4+1] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; - drflac_uint32 mid2 = pInputSamples0U32[i*4+2] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; - drflac_uint32 mid3 = pInputSamples0U32[i*4+3] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; - drflac_uint32 side0 = pInputSamples1U32[i*4+0] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; - drflac_uint32 side1 = pInputSamples1U32[i*4+1] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; - drflac_uint32 side2 = pInputSamples1U32[i*4+2] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; - drflac_uint32 side3 = pInputSamples1U32[i*4+3] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + ma_uint32 temp0L; + ma_uint32 temp1L; + ma_uint32 temp2L; + ma_uint32 temp3L; + ma_uint32 temp0R; + ma_uint32 temp1R; + ma_uint32 temp2R; + ma_uint32 temp3R; + ma_uint32 mid0 = pInputSamples0U32[i*4+0] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + ma_uint32 mid1 = pInputSamples0U32[i*4+1] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + ma_uint32 mid2 = pInputSamples0U32[i*4+2] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + ma_uint32 mid3 = pInputSamples0U32[i*4+3] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + ma_uint32 side0 = pInputSamples1U32[i*4+0] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + ma_uint32 side1 = pInputSamples1U32[i*4+1] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + ma_uint32 side2 = pInputSamples1U32[i*4+2] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + ma_uint32 side3 = pInputSamples1U32[i*4+3] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; mid0 = (mid0 << 1) | (side0 & 0x01); mid1 = (mid1 << 1) | (side1 & 0x01); mid2 = (mid2 << 1) | (side2 & 0x01); @@ -86350,74 +89028,74 @@ static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_mid_side__scalar(dr temp1R = (mid1 - side1) << shift; temp2R = (mid2 - side2) << shift; temp3R = (mid3 - side3) << shift; - pOutputSamples[i*8+0] = (drflac_int32)temp0L * factor; - pOutputSamples[i*8+1] = (drflac_int32)temp0R * factor; - pOutputSamples[i*8+2] = (drflac_int32)temp1L * factor; - pOutputSamples[i*8+3] = (drflac_int32)temp1R * factor; - pOutputSamples[i*8+4] = (drflac_int32)temp2L * factor; - pOutputSamples[i*8+5] = (drflac_int32)temp2R * factor; - pOutputSamples[i*8+6] = (drflac_int32)temp3L * factor; - pOutputSamples[i*8+7] = (drflac_int32)temp3R * factor; + pOutputSamples[i*8+0] = (ma_int32)temp0L * factor; + pOutputSamples[i*8+1] = (ma_int32)temp0R * factor; + pOutputSamples[i*8+2] = (ma_int32)temp1L * factor; + pOutputSamples[i*8+3] = (ma_int32)temp1R * factor; + pOutputSamples[i*8+4] = (ma_int32)temp2L * factor; + pOutputSamples[i*8+5] = (ma_int32)temp2R * factor; + pOutputSamples[i*8+6] = (ma_int32)temp3L * factor; + pOutputSamples[i*8+7] = (ma_int32)temp3R * factor; } } else { for (i = 0; i < frameCount4; ++i) { - drflac_uint32 temp0L; - drflac_uint32 temp1L; - drflac_uint32 temp2L; - drflac_uint32 temp3L; - drflac_uint32 temp0R; - drflac_uint32 temp1R; - drflac_uint32 temp2R; - drflac_uint32 temp3R; - drflac_uint32 mid0 = pInputSamples0U32[i*4+0] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; - drflac_uint32 mid1 = pInputSamples0U32[i*4+1] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; - drflac_uint32 mid2 = pInputSamples0U32[i*4+2] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; - drflac_uint32 mid3 = pInputSamples0U32[i*4+3] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; - drflac_uint32 side0 = pInputSamples1U32[i*4+0] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; - drflac_uint32 side1 = pInputSamples1U32[i*4+1] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; - drflac_uint32 side2 = pInputSamples1U32[i*4+2] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; - drflac_uint32 side3 = pInputSamples1U32[i*4+3] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + ma_uint32 temp0L; + ma_uint32 temp1L; + ma_uint32 temp2L; + ma_uint32 temp3L; + ma_uint32 temp0R; + ma_uint32 temp1R; + ma_uint32 temp2R; + ma_uint32 temp3R; + ma_uint32 mid0 = pInputSamples0U32[i*4+0] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + ma_uint32 mid1 = pInputSamples0U32[i*4+1] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + ma_uint32 mid2 = pInputSamples0U32[i*4+2] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + ma_uint32 mid3 = pInputSamples0U32[i*4+3] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + ma_uint32 side0 = pInputSamples1U32[i*4+0] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + ma_uint32 side1 = pInputSamples1U32[i*4+1] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + ma_uint32 side2 = pInputSamples1U32[i*4+2] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + ma_uint32 side3 = pInputSamples1U32[i*4+3] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; mid0 = (mid0 << 1) | (side0 & 0x01); mid1 = (mid1 << 1) | (side1 & 0x01); mid2 = (mid2 << 1) | (side2 & 0x01); mid3 = (mid3 << 1) | (side3 & 0x01); - temp0L = (drflac_uint32)((drflac_int32)(mid0 + side0) >> 1); - temp1L = (drflac_uint32)((drflac_int32)(mid1 + side1) >> 1); - temp2L = (drflac_uint32)((drflac_int32)(mid2 + side2) >> 1); - temp3L = (drflac_uint32)((drflac_int32)(mid3 + side3) >> 1); - temp0R = (drflac_uint32)((drflac_int32)(mid0 - side0) >> 1); - temp1R = (drflac_uint32)((drflac_int32)(mid1 - side1) >> 1); - temp2R = (drflac_uint32)((drflac_int32)(mid2 - side2) >> 1); - temp3R = (drflac_uint32)((drflac_int32)(mid3 - side3) >> 1); - pOutputSamples[i*8+0] = (drflac_int32)temp0L * factor; - pOutputSamples[i*8+1] = (drflac_int32)temp0R * factor; - pOutputSamples[i*8+2] = (drflac_int32)temp1L * factor; - pOutputSamples[i*8+3] = (drflac_int32)temp1R * factor; - pOutputSamples[i*8+4] = (drflac_int32)temp2L * factor; - pOutputSamples[i*8+5] = (drflac_int32)temp2R * factor; - pOutputSamples[i*8+6] = (drflac_int32)temp3L * factor; - pOutputSamples[i*8+7] = (drflac_int32)temp3R * factor; + temp0L = (ma_uint32)((ma_int32)(mid0 + side0) >> 1); + temp1L = (ma_uint32)((ma_int32)(mid1 + side1) >> 1); + temp2L = (ma_uint32)((ma_int32)(mid2 + side2) >> 1); + temp3L = (ma_uint32)((ma_int32)(mid3 + side3) >> 1); + temp0R = (ma_uint32)((ma_int32)(mid0 - side0) >> 1); + temp1R = (ma_uint32)((ma_int32)(mid1 - side1) >> 1); + temp2R = (ma_uint32)((ma_int32)(mid2 - side2) >> 1); + temp3R = (ma_uint32)((ma_int32)(mid3 - side3) >> 1); + pOutputSamples[i*8+0] = (ma_int32)temp0L * factor; + pOutputSamples[i*8+1] = (ma_int32)temp0R * factor; + pOutputSamples[i*8+2] = (ma_int32)temp1L * factor; + pOutputSamples[i*8+3] = (ma_int32)temp1R * factor; + pOutputSamples[i*8+4] = (ma_int32)temp2L * factor; + pOutputSamples[i*8+5] = (ma_int32)temp2R * factor; + pOutputSamples[i*8+6] = (ma_int32)temp3L * factor; + pOutputSamples[i*8+7] = (ma_int32)temp3R * factor; } } for (i = (frameCount4 << 2); i < frameCount; ++i) { - drflac_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; - drflac_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + ma_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + ma_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; mid = (mid << 1) | (side & 0x01); - pOutputSamples[i*2+0] = (drflac_int32)((drflac_uint32)((drflac_int32)(mid + side) >> 1) << unusedBitsPerSample) * factor; - pOutputSamples[i*2+1] = (drflac_int32)((drflac_uint32)((drflac_int32)(mid - side) >> 1) << unusedBitsPerSample) * factor; + pOutputSamples[i*2+0] = (ma_int32)((ma_uint32)((ma_int32)(mid + side) >> 1) << unusedBitsPerSample) * factor; + pOutputSamples[i*2+1] = (ma_int32)((ma_uint32)((ma_int32)(mid - side) >> 1) << unusedBitsPerSample) * factor; } } -#if defined(DRFLAC_SUPPORT_SSE2) -static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_mid_side__sse2(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +#if defined(MA_DR_FLAC_SUPPORT_SSE2) +static MA_INLINE void ma_dr_flac_read_pcm_frames_f32__decode_mid_side__sse2(ma_dr_flac* pFlac, ma_uint64 frameCount, ma_uint32 unusedBitsPerSample, const ma_int32* pInputSamples0, const ma_int32* pInputSamples1, float* pOutputSamples) { - drflac_uint64 i; - drflac_uint64 frameCount4 = frameCount >> 2; - const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; - const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; - drflac_uint32 shift = unusedBitsPerSample - 8; + ma_uint64 i; + ma_uint64 frameCount4 = frameCount >> 2; + const ma_uint32* pInputSamples0U32 = (const ma_uint32*)pInputSamples0; + const ma_uint32* pInputSamples1U32 = (const ma_uint32*)pInputSamples1; + ma_uint32 shift = unusedBitsPerSample - 8; float factor; __m128 factor128; - DRFLAC_ASSERT(pFlac->bitsPerSample <= 24); + MA_DR_FLAC_ASSERT(pFlac->bitsPerSample <= 24); factor = 1.0f / 8388608.0f; factor128 = _mm_set1_ps(factor); if (shift == 0) { @@ -86439,11 +89117,11 @@ static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_mid_side__sse2(drfl _mm_storeu_ps(pOutputSamples + i*8 + 4, _mm_unpackhi_ps(leftf, rightf)); } for (i = (frameCount4 << 2); i < frameCount; ++i) { - drflac_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; - drflac_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + ma_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + ma_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; mid = (mid << 1) | (side & 0x01); - pOutputSamples[i*2+0] = ((drflac_int32)(mid + side) >> 1) * factor; - pOutputSamples[i*2+1] = ((drflac_int32)(mid - side) >> 1) * factor; + pOutputSamples[i*2+0] = ((ma_int32)(mid + side) >> 1) * factor; + pOutputSamples[i*2+1] = ((ma_int32)(mid - side) >> 1) * factor; } } else { shift -= 1; @@ -86465,29 +89143,29 @@ static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_mid_side__sse2(drfl _mm_storeu_ps(pOutputSamples + i*8 + 4, _mm_unpackhi_ps(leftf, rightf)); } for (i = (frameCount4 << 2); i < frameCount; ++i) { - drflac_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; - drflac_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + ma_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + ma_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; mid = (mid << 1) | (side & 0x01); - pOutputSamples[i*2+0] = (drflac_int32)((mid + side) << shift) * factor; - pOutputSamples[i*2+1] = (drflac_int32)((mid - side) << shift) * factor; + pOutputSamples[i*2+0] = (ma_int32)((mid + side) << shift) * factor; + pOutputSamples[i*2+1] = (ma_int32)((mid - side) << shift) * factor; } } } #endif -#if defined(DRFLAC_SUPPORT_NEON) -static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_mid_side__neon(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +#if defined(MA_DR_FLAC_SUPPORT_NEON) +static MA_INLINE void ma_dr_flac_read_pcm_frames_f32__decode_mid_side__neon(ma_dr_flac* pFlac, ma_uint64 frameCount, ma_uint32 unusedBitsPerSample, const ma_int32* pInputSamples0, const ma_int32* pInputSamples1, float* pOutputSamples) { - drflac_uint64 i; - drflac_uint64 frameCount4 = frameCount >> 2; - const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; - const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; - drflac_uint32 shift = unusedBitsPerSample - 8; + ma_uint64 i; + ma_uint64 frameCount4 = frameCount >> 2; + const ma_uint32* pInputSamples0U32 = (const ma_uint32*)pInputSamples0; + const ma_uint32* pInputSamples1U32 = (const ma_uint32*)pInputSamples1; + ma_uint32 shift = unusedBitsPerSample - 8; float factor; float32x4_t factor4; int32x4_t shift4; int32x4_t wbps0_4; int32x4_t wbps1_4; - DRFLAC_ASSERT(pFlac->bitsPerSample <= 24); + MA_DR_FLAC_ASSERT(pFlac->bitsPerSample <= 24); factor = 1.0f / 8388608.0f; factor4 = vdupq_n_f32(factor); wbps0_4 = vdupq_n_s32(pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample); @@ -86505,14 +89183,14 @@ static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_mid_side__neon(drfl righti = vshrq_n_s32(vreinterpretq_s32_u32(vsubq_u32(mid, side)), 1); leftf = vmulq_f32(vcvtq_f32_s32(lefti), factor4); rightf = vmulq_f32(vcvtq_f32_s32(righti), factor4); - drflac__vst2q_f32(pOutputSamples + i*8, vzipq_f32(leftf, rightf)); + ma_dr_flac__vst2q_f32(pOutputSamples + i*8, vzipq_f32(leftf, rightf)); } for (i = (frameCount4 << 2); i < frameCount; ++i) { - drflac_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; - drflac_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + ma_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + ma_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; mid = (mid << 1) | (side & 0x01); - pOutputSamples[i*2+0] = ((drflac_int32)(mid + side) >> 1) * factor; - pOutputSamples[i*2+1] = ((drflac_int32)(mid - side) >> 1) * factor; + pOutputSamples[i*2+0] = ((ma_int32)(mid + side) >> 1) * factor; + pOutputSamples[i*2+1] = ((ma_int32)(mid - side) >> 1) * factor; } } else { shift -= 1; @@ -86531,87 +89209,87 @@ static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_mid_side__neon(drfl righti = vreinterpretq_s32_u32(vshlq_u32(vsubq_u32(mid, side), shift4)); leftf = vmulq_f32(vcvtq_f32_s32(lefti), factor4); rightf = vmulq_f32(vcvtq_f32_s32(righti), factor4); - drflac__vst2q_f32(pOutputSamples + i*8, vzipq_f32(leftf, rightf)); + ma_dr_flac__vst2q_f32(pOutputSamples + i*8, vzipq_f32(leftf, rightf)); } for (i = (frameCount4 << 2); i < frameCount; ++i) { - drflac_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; - drflac_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + ma_uint32 mid = pInputSamples0U32[i] << pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + ma_uint32 side = pInputSamples1U32[i] << pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; mid = (mid << 1) | (side & 0x01); - pOutputSamples[i*2+0] = (drflac_int32)((mid + side) << shift) * factor; - pOutputSamples[i*2+1] = (drflac_int32)((mid - side) << shift) * factor; + pOutputSamples[i*2+0] = (ma_int32)((mid + side) << shift) * factor; + pOutputSamples[i*2+1] = (ma_int32)((mid - side) << shift) * factor; } } } #endif -static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_mid_side(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +static MA_INLINE void ma_dr_flac_read_pcm_frames_f32__decode_mid_side(ma_dr_flac* pFlac, ma_uint64 frameCount, ma_uint32 unusedBitsPerSample, const ma_int32* pInputSamples0, const ma_int32* pInputSamples1, float* pOutputSamples) { -#if defined(DRFLAC_SUPPORT_SSE2) - if (drflac__gIsSSE2Supported && pFlac->bitsPerSample <= 24) { - drflac_read_pcm_frames_f32__decode_mid_side__sse2(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#if defined(MA_DR_FLAC_SUPPORT_SSE2) + if (ma_dr_flac__gIsSSE2Supported && pFlac->bitsPerSample <= 24) { + ma_dr_flac_read_pcm_frames_f32__decode_mid_side__sse2(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); } else -#elif defined(DRFLAC_SUPPORT_NEON) - if (drflac__gIsNEONSupported && pFlac->bitsPerSample <= 24) { - drflac_read_pcm_frames_f32__decode_mid_side__neon(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#elif defined(MA_DR_FLAC_SUPPORT_NEON) + if (ma_dr_flac__gIsNEONSupported && pFlac->bitsPerSample <= 24) { + ma_dr_flac_read_pcm_frames_f32__decode_mid_side__neon(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); } else #endif { #if 0 - drflac_read_pcm_frames_f32__decode_mid_side__reference(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + ma_dr_flac_read_pcm_frames_f32__decode_mid_side__reference(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); #else - drflac_read_pcm_frames_f32__decode_mid_side__scalar(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + ma_dr_flac_read_pcm_frames_f32__decode_mid_side__scalar(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); #endif } } #if 0 -static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_independent_stereo__reference(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +static MA_INLINE void ma_dr_flac_read_pcm_frames_f32__decode_independent_stereo__reference(ma_dr_flac* pFlac, ma_uint64 frameCount, ma_uint32 unusedBitsPerSample, const ma_int32* pInputSamples0, const ma_int32* pInputSamples1, float* pOutputSamples) { - for (drflac_uint64 i = 0; i < frameCount; ++i) { - pOutputSamples[i*2+0] = (float)((drflac_int32)((drflac_uint32)pInputSamples0[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample)) / 2147483648.0); - pOutputSamples[i*2+1] = (float)((drflac_int32)((drflac_uint32)pInputSamples1[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample)) / 2147483648.0); + for (ma_uint64 i = 0; i < frameCount; ++i) { + pOutputSamples[i*2+0] = (float)((ma_int32)((ma_uint32)pInputSamples0[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample)) / 2147483648.0); + pOutputSamples[i*2+1] = (float)((ma_int32)((ma_uint32)pInputSamples1[i] << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample)) / 2147483648.0); } } #endif -static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_independent_stereo__scalar(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +static MA_INLINE void ma_dr_flac_read_pcm_frames_f32__decode_independent_stereo__scalar(ma_dr_flac* pFlac, ma_uint64 frameCount, ma_uint32 unusedBitsPerSample, const ma_int32* pInputSamples0, const ma_int32* pInputSamples1, float* pOutputSamples) { - drflac_uint64 i; - drflac_uint64 frameCount4 = frameCount >> 2; - const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; - const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; - drflac_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; - drflac_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; + ma_uint64 i; + ma_uint64 frameCount4 = frameCount >> 2; + const ma_uint32* pInputSamples0U32 = (const ma_uint32*)pInputSamples0; + const ma_uint32* pInputSamples1U32 = (const ma_uint32*)pInputSamples1; + ma_uint32 shift0 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample; + ma_uint32 shift1 = unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample; float factor = 1 / 2147483648.0; for (i = 0; i < frameCount4; ++i) { - drflac_uint32 tempL0 = pInputSamples0U32[i*4+0] << shift0; - drflac_uint32 tempL1 = pInputSamples0U32[i*4+1] << shift0; - drflac_uint32 tempL2 = pInputSamples0U32[i*4+2] << shift0; - drflac_uint32 tempL3 = pInputSamples0U32[i*4+3] << shift0; - drflac_uint32 tempR0 = pInputSamples1U32[i*4+0] << shift1; - drflac_uint32 tempR1 = pInputSamples1U32[i*4+1] << shift1; - drflac_uint32 tempR2 = pInputSamples1U32[i*4+2] << shift1; - drflac_uint32 tempR3 = pInputSamples1U32[i*4+3] << shift1; - pOutputSamples[i*8+0] = (drflac_int32)tempL0 * factor; - pOutputSamples[i*8+1] = (drflac_int32)tempR0 * factor; - pOutputSamples[i*8+2] = (drflac_int32)tempL1 * factor; - pOutputSamples[i*8+3] = (drflac_int32)tempR1 * factor; - pOutputSamples[i*8+4] = (drflac_int32)tempL2 * factor; - pOutputSamples[i*8+5] = (drflac_int32)tempR2 * factor; - pOutputSamples[i*8+6] = (drflac_int32)tempL3 * factor; - pOutputSamples[i*8+7] = (drflac_int32)tempR3 * factor; + ma_uint32 tempL0 = pInputSamples0U32[i*4+0] << shift0; + ma_uint32 tempL1 = pInputSamples0U32[i*4+1] << shift0; + ma_uint32 tempL2 = pInputSamples0U32[i*4+2] << shift0; + ma_uint32 tempL3 = pInputSamples0U32[i*4+3] << shift0; + ma_uint32 tempR0 = pInputSamples1U32[i*4+0] << shift1; + ma_uint32 tempR1 = pInputSamples1U32[i*4+1] << shift1; + ma_uint32 tempR2 = pInputSamples1U32[i*4+2] << shift1; + ma_uint32 tempR3 = pInputSamples1U32[i*4+3] << shift1; + pOutputSamples[i*8+0] = (ma_int32)tempL0 * factor; + pOutputSamples[i*8+1] = (ma_int32)tempR0 * factor; + pOutputSamples[i*8+2] = (ma_int32)tempL1 * factor; + pOutputSamples[i*8+3] = (ma_int32)tempR1 * factor; + pOutputSamples[i*8+4] = (ma_int32)tempL2 * factor; + pOutputSamples[i*8+5] = (ma_int32)tempR2 * factor; + pOutputSamples[i*8+6] = (ma_int32)tempL3 * factor; + pOutputSamples[i*8+7] = (ma_int32)tempR3 * factor; } for (i = (frameCount4 << 2); i < frameCount; ++i) { - pOutputSamples[i*2+0] = (drflac_int32)(pInputSamples0U32[i] << shift0) * factor; - pOutputSamples[i*2+1] = (drflac_int32)(pInputSamples1U32[i] << shift1) * factor; + pOutputSamples[i*2+0] = (ma_int32)(pInputSamples0U32[i] << shift0) * factor; + pOutputSamples[i*2+1] = (ma_int32)(pInputSamples1U32[i] << shift1) * factor; } } -#if defined(DRFLAC_SUPPORT_SSE2) -static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_independent_stereo__sse2(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +#if defined(MA_DR_FLAC_SUPPORT_SSE2) +static MA_INLINE void ma_dr_flac_read_pcm_frames_f32__decode_independent_stereo__sse2(ma_dr_flac* pFlac, ma_uint64 frameCount, ma_uint32 unusedBitsPerSample, const ma_int32* pInputSamples0, const ma_int32* pInputSamples1, float* pOutputSamples) { - drflac_uint64 i; - drflac_uint64 frameCount4 = frameCount >> 2; - const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; - const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; - drflac_uint32 shift0 = (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample) - 8; - drflac_uint32 shift1 = (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample) - 8; + ma_uint64 i; + ma_uint64 frameCount4 = frameCount >> 2; + const ma_uint32* pInputSamples0U32 = (const ma_uint32*)pInputSamples0; + const ma_uint32* pInputSamples1U32 = (const ma_uint32*)pInputSamples1; + ma_uint32 shift0 = (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample) - 8; + ma_uint32 shift1 = (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample) - 8; float factor = 1.0f / 8388608.0f; __m128 factor128 = _mm_set1_ps(factor); for (i = 0; i < frameCount4; ++i) { @@ -86627,20 +89305,20 @@ static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_independent_stereo_ _mm_storeu_ps(pOutputSamples + i*8 + 4, _mm_unpackhi_ps(leftf, rightf)); } for (i = (frameCount4 << 2); i < frameCount; ++i) { - pOutputSamples[i*2+0] = (drflac_int32)(pInputSamples0U32[i] << shift0) * factor; - pOutputSamples[i*2+1] = (drflac_int32)(pInputSamples1U32[i] << shift1) * factor; + pOutputSamples[i*2+0] = (ma_int32)(pInputSamples0U32[i] << shift0) * factor; + pOutputSamples[i*2+1] = (ma_int32)(pInputSamples1U32[i] << shift1) * factor; } } #endif -#if defined(DRFLAC_SUPPORT_NEON) -static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_independent_stereo__neon(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +#if defined(MA_DR_FLAC_SUPPORT_NEON) +static MA_INLINE void ma_dr_flac_read_pcm_frames_f32__decode_independent_stereo__neon(ma_dr_flac* pFlac, ma_uint64 frameCount, ma_uint32 unusedBitsPerSample, const ma_int32* pInputSamples0, const ma_int32* pInputSamples1, float* pOutputSamples) { - drflac_uint64 i; - drflac_uint64 frameCount4 = frameCount >> 2; - const drflac_uint32* pInputSamples0U32 = (const drflac_uint32*)pInputSamples0; - const drflac_uint32* pInputSamples1U32 = (const drflac_uint32*)pInputSamples1; - drflac_uint32 shift0 = (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample) - 8; - drflac_uint32 shift1 = (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample) - 8; + ma_uint64 i; + ma_uint64 frameCount4 = frameCount >> 2; + const ma_uint32* pInputSamples0U32 = (const ma_uint32*)pInputSamples0; + const ma_uint32* pInputSamples1U32 = (const ma_uint32*)pInputSamples1; + ma_uint32 shift0 = (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[0].wastedBitsPerSample) - 8; + ma_uint32 shift1 = (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[1].wastedBitsPerSample) - 8; float factor = 1.0f / 8388608.0f; float32x4_t factor4 = vdupq_n_f32(factor); int32x4_t shift0_4 = vdupq_n_s32(shift0); @@ -86654,87 +89332,87 @@ static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_independent_stereo_ righti = vreinterpretq_s32_u32(vshlq_u32(vld1q_u32(pInputSamples1U32 + i*4), shift1_4)); leftf = vmulq_f32(vcvtq_f32_s32(lefti), factor4); rightf = vmulq_f32(vcvtq_f32_s32(righti), factor4); - drflac__vst2q_f32(pOutputSamples + i*8, vzipq_f32(leftf, rightf)); + ma_dr_flac__vst2q_f32(pOutputSamples + i*8, vzipq_f32(leftf, rightf)); } for (i = (frameCount4 << 2); i < frameCount; ++i) { - pOutputSamples[i*2+0] = (drflac_int32)(pInputSamples0U32[i] << shift0) * factor; - pOutputSamples[i*2+1] = (drflac_int32)(pInputSamples1U32[i] << shift1) * factor; + pOutputSamples[i*2+0] = (ma_int32)(pInputSamples0U32[i] << shift0) * factor; + pOutputSamples[i*2+1] = (ma_int32)(pInputSamples1U32[i] << shift1) * factor; } } #endif -static DRFLAC_INLINE void drflac_read_pcm_frames_f32__decode_independent_stereo(drflac* pFlac, drflac_uint64 frameCount, drflac_uint32 unusedBitsPerSample, const drflac_int32* pInputSamples0, const drflac_int32* pInputSamples1, float* pOutputSamples) +static MA_INLINE void ma_dr_flac_read_pcm_frames_f32__decode_independent_stereo(ma_dr_flac* pFlac, ma_uint64 frameCount, ma_uint32 unusedBitsPerSample, const ma_int32* pInputSamples0, const ma_int32* pInputSamples1, float* pOutputSamples) { -#if defined(DRFLAC_SUPPORT_SSE2) - if (drflac__gIsSSE2Supported && pFlac->bitsPerSample <= 24) { - drflac_read_pcm_frames_f32__decode_independent_stereo__sse2(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#if defined(MA_DR_FLAC_SUPPORT_SSE2) + if (ma_dr_flac__gIsSSE2Supported && pFlac->bitsPerSample <= 24) { + ma_dr_flac_read_pcm_frames_f32__decode_independent_stereo__sse2(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); } else -#elif defined(DRFLAC_SUPPORT_NEON) - if (drflac__gIsNEONSupported && pFlac->bitsPerSample <= 24) { - drflac_read_pcm_frames_f32__decode_independent_stereo__neon(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); +#elif defined(MA_DR_FLAC_SUPPORT_NEON) + if (ma_dr_flac__gIsNEONSupported && pFlac->bitsPerSample <= 24) { + ma_dr_flac_read_pcm_frames_f32__decode_independent_stereo__neon(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); } else #endif { #if 0 - drflac_read_pcm_frames_f32__decode_independent_stereo__reference(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + ma_dr_flac_read_pcm_frames_f32__decode_independent_stereo__reference(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); #else - drflac_read_pcm_frames_f32__decode_independent_stereo__scalar(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); + ma_dr_flac_read_pcm_frames_f32__decode_independent_stereo__scalar(pFlac, frameCount, unusedBitsPerSample, pInputSamples0, pInputSamples1, pOutputSamples); #endif } } -DRFLAC_API drflac_uint64 drflac_read_pcm_frames_f32(drflac* pFlac, drflac_uint64 framesToRead, float* pBufferOut) +MA_API ma_uint64 ma_dr_flac_read_pcm_frames_f32(ma_dr_flac* pFlac, ma_uint64 framesToRead, float* pBufferOut) { - drflac_uint64 framesRead; - drflac_uint32 unusedBitsPerSample; + ma_uint64 framesRead; + ma_uint32 unusedBitsPerSample; if (pFlac == NULL || framesToRead == 0) { return 0; } if (pBufferOut == NULL) { - return drflac__seek_forward_by_pcm_frames(pFlac, framesToRead); + return ma_dr_flac__seek_forward_by_pcm_frames(pFlac, framesToRead); } - DRFLAC_ASSERT(pFlac->bitsPerSample <= 32); + MA_DR_FLAC_ASSERT(pFlac->bitsPerSample <= 32); unusedBitsPerSample = 32 - pFlac->bitsPerSample; framesRead = 0; while (framesToRead > 0) { if (pFlac->currentFLACFrame.pcmFramesRemaining == 0) { - if (!drflac__read_and_decode_next_flac_frame(pFlac)) { + if (!ma_dr_flac__read_and_decode_next_flac_frame(pFlac)) { break; } } else { - unsigned int channelCount = drflac__get_channel_count_from_channel_assignment(pFlac->currentFLACFrame.header.channelAssignment); - drflac_uint64 iFirstPCMFrame = pFlac->currentFLACFrame.header.blockSizeInPCMFrames - pFlac->currentFLACFrame.pcmFramesRemaining; - drflac_uint64 frameCountThisIteration = framesToRead; + unsigned int channelCount = ma_dr_flac__get_channel_count_from_channel_assignment(pFlac->currentFLACFrame.header.channelAssignment); + ma_uint64 iFirstPCMFrame = pFlac->currentFLACFrame.header.blockSizeInPCMFrames - pFlac->currentFLACFrame.pcmFramesRemaining; + ma_uint64 frameCountThisIteration = framesToRead; if (frameCountThisIteration > pFlac->currentFLACFrame.pcmFramesRemaining) { frameCountThisIteration = pFlac->currentFLACFrame.pcmFramesRemaining; } if (channelCount == 2) { - const drflac_int32* pDecodedSamples0 = pFlac->currentFLACFrame.subframes[0].pSamplesS32 + iFirstPCMFrame; - const drflac_int32* pDecodedSamples1 = pFlac->currentFLACFrame.subframes[1].pSamplesS32 + iFirstPCMFrame; + const ma_int32* pDecodedSamples0 = pFlac->currentFLACFrame.subframes[0].pSamplesS32 + iFirstPCMFrame; + const ma_int32* pDecodedSamples1 = pFlac->currentFLACFrame.subframes[1].pSamplesS32 + iFirstPCMFrame; switch (pFlac->currentFLACFrame.header.channelAssignment) { - case DRFLAC_CHANNEL_ASSIGNMENT_LEFT_SIDE: + case MA_DR_FLAC_CHANNEL_ASSIGNMENT_LEFT_SIDE: { - drflac_read_pcm_frames_f32__decode_left_side(pFlac, frameCountThisIteration, unusedBitsPerSample, pDecodedSamples0, pDecodedSamples1, pBufferOut); + ma_dr_flac_read_pcm_frames_f32__decode_left_side(pFlac, frameCountThisIteration, unusedBitsPerSample, pDecodedSamples0, pDecodedSamples1, pBufferOut); } break; - case DRFLAC_CHANNEL_ASSIGNMENT_RIGHT_SIDE: + case MA_DR_FLAC_CHANNEL_ASSIGNMENT_RIGHT_SIDE: { - drflac_read_pcm_frames_f32__decode_right_side(pFlac, frameCountThisIteration, unusedBitsPerSample, pDecodedSamples0, pDecodedSamples1, pBufferOut); + ma_dr_flac_read_pcm_frames_f32__decode_right_side(pFlac, frameCountThisIteration, unusedBitsPerSample, pDecodedSamples0, pDecodedSamples1, pBufferOut); } break; - case DRFLAC_CHANNEL_ASSIGNMENT_MID_SIDE: + case MA_DR_FLAC_CHANNEL_ASSIGNMENT_MID_SIDE: { - drflac_read_pcm_frames_f32__decode_mid_side(pFlac, frameCountThisIteration, unusedBitsPerSample, pDecodedSamples0, pDecodedSamples1, pBufferOut); + ma_dr_flac_read_pcm_frames_f32__decode_mid_side(pFlac, frameCountThisIteration, unusedBitsPerSample, pDecodedSamples0, pDecodedSamples1, pBufferOut); } break; - case DRFLAC_CHANNEL_ASSIGNMENT_INDEPENDENT: + case MA_DR_FLAC_CHANNEL_ASSIGNMENT_INDEPENDENT: default: { - drflac_read_pcm_frames_f32__decode_independent_stereo(pFlac, frameCountThisIteration, unusedBitsPerSample, pDecodedSamples0, pDecodedSamples1, pBufferOut); + ma_dr_flac_read_pcm_frames_f32__decode_independent_stereo(pFlac, frameCountThisIteration, unusedBitsPerSample, pDecodedSamples0, pDecodedSamples1, pBufferOut); } break; } } else { - drflac_uint64 i; + ma_uint64 i; for (i = 0; i < frameCountThisIteration; ++i) { unsigned int j; for (j = 0; j < channelCount; ++j) { - drflac_int32 sampleS32 = (drflac_int32)((drflac_uint32)(pFlac->currentFLACFrame.subframes[j].pSamplesS32[iFirstPCMFrame + i]) << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[j].wastedBitsPerSample)); + ma_int32 sampleS32 = (ma_int32)((ma_uint32)(pFlac->currentFLACFrame.subframes[j].pSamplesS32[iFirstPCMFrame + i]) << (unusedBitsPerSample + pFlac->currentFLACFrame.subframes[j].wastedBitsPerSample)); pBufferOut[(i*channelCount)+j] = (float)(sampleS32 / 2147483648.0); } } @@ -86748,111 +89426,102 @@ DRFLAC_API drflac_uint64 drflac_read_pcm_frames_f32(drflac* pFlac, drflac_uint64 } return framesRead; } -DRFLAC_API drflac_bool32 drflac_seek_to_pcm_frame(drflac* pFlac, drflac_uint64 pcmFrameIndex) +MA_API ma_bool32 ma_dr_flac_seek_to_pcm_frame(ma_dr_flac* pFlac, ma_uint64 pcmFrameIndex) { if (pFlac == NULL) { - return DRFLAC_FALSE; + return MA_FALSE; } if (pFlac->currentPCMFrame == pcmFrameIndex) { - return DRFLAC_TRUE; + return MA_TRUE; } if (pFlac->firstFLACFramePosInBytes == 0) { - return DRFLAC_FALSE; + return MA_FALSE; } if (pcmFrameIndex == 0) { pFlac->currentPCMFrame = 0; - return drflac__seek_to_first_frame(pFlac); + return ma_dr_flac__seek_to_first_frame(pFlac); } else { - drflac_bool32 wasSuccessful = DRFLAC_FALSE; - drflac_uint64 originalPCMFrame = pFlac->currentPCMFrame; + ma_bool32 wasSuccessful = MA_FALSE; + ma_uint64 originalPCMFrame = pFlac->currentPCMFrame; if (pcmFrameIndex > pFlac->totalPCMFrameCount) { pcmFrameIndex = pFlac->totalPCMFrameCount; } if (pcmFrameIndex > pFlac->currentPCMFrame) { - drflac_uint32 offset = (drflac_uint32)(pcmFrameIndex - pFlac->currentPCMFrame); + ma_uint32 offset = (ma_uint32)(pcmFrameIndex - pFlac->currentPCMFrame); if (pFlac->currentFLACFrame.pcmFramesRemaining > offset) { pFlac->currentFLACFrame.pcmFramesRemaining -= offset; pFlac->currentPCMFrame = pcmFrameIndex; - return DRFLAC_TRUE; + return MA_TRUE; } } else { - drflac_uint32 offsetAbs = (drflac_uint32)(pFlac->currentPCMFrame - pcmFrameIndex); - drflac_uint32 currentFLACFramePCMFrameCount = pFlac->currentFLACFrame.header.blockSizeInPCMFrames; - drflac_uint32 currentFLACFramePCMFramesConsumed = currentFLACFramePCMFrameCount - pFlac->currentFLACFrame.pcmFramesRemaining; + ma_uint32 offsetAbs = (ma_uint32)(pFlac->currentPCMFrame - pcmFrameIndex); + ma_uint32 currentFLACFramePCMFrameCount = pFlac->currentFLACFrame.header.blockSizeInPCMFrames; + ma_uint32 currentFLACFramePCMFramesConsumed = currentFLACFramePCMFrameCount - pFlac->currentFLACFrame.pcmFramesRemaining; if (currentFLACFramePCMFramesConsumed > offsetAbs) { pFlac->currentFLACFrame.pcmFramesRemaining += offsetAbs; pFlac->currentPCMFrame = pcmFrameIndex; - return DRFLAC_TRUE; + return MA_TRUE; } } -#ifndef DR_FLAC_NO_OGG - if (pFlac->container == drflac_container_ogg) +#ifndef MA_DR_FLAC_NO_OGG + if (pFlac->container == ma_dr_flac_container_ogg) { - wasSuccessful = drflac_ogg__seek_to_pcm_frame(pFlac, pcmFrameIndex); + wasSuccessful = ma_dr_flac_ogg__seek_to_pcm_frame(pFlac, pcmFrameIndex); } else #endif { if (!pFlac->_noSeekTableSeek) { - wasSuccessful = drflac__seek_to_pcm_frame__seek_table(pFlac, pcmFrameIndex); + wasSuccessful = ma_dr_flac__seek_to_pcm_frame__seek_table(pFlac, pcmFrameIndex); } -#if !defined(DR_FLAC_NO_CRC) +#if !defined(MA_DR_FLAC_NO_CRC) if (!wasSuccessful && !pFlac->_noBinarySearchSeek && pFlac->totalPCMFrameCount > 0) { - wasSuccessful = drflac__seek_to_pcm_frame__binary_search(pFlac, pcmFrameIndex); + wasSuccessful = ma_dr_flac__seek_to_pcm_frame__binary_search(pFlac, pcmFrameIndex); } #endif if (!wasSuccessful && !pFlac->_noBruteForceSeek) { - wasSuccessful = drflac__seek_to_pcm_frame__brute_force(pFlac, pcmFrameIndex); + wasSuccessful = ma_dr_flac__seek_to_pcm_frame__brute_force(pFlac, pcmFrameIndex); } } if (wasSuccessful) { pFlac->currentPCMFrame = pcmFrameIndex; } else { - if (drflac_seek_to_pcm_frame(pFlac, originalPCMFrame) == DRFLAC_FALSE) { - drflac_seek_to_pcm_frame(pFlac, 0); + if (ma_dr_flac_seek_to_pcm_frame(pFlac, originalPCMFrame) == MA_FALSE) { + ma_dr_flac_seek_to_pcm_frame(pFlac, 0); } } return wasSuccessful; } } -#if defined(SIZE_MAX) - #define DRFLAC_SIZE_MAX SIZE_MAX -#else - #if defined(DRFLAC_64BIT) - #define DRFLAC_SIZE_MAX ((drflac_uint64)0xFFFFFFFFFFFFFFFF) - #else - #define DRFLAC_SIZE_MAX 0xFFFFFFFF - #endif -#endif -#define DRFLAC_DEFINE_FULL_READ_AND_CLOSE(extension, type) \ -static type* drflac__full_read_and_close_ ## extension (drflac* pFlac, unsigned int* channelsOut, unsigned int* sampleRateOut, drflac_uint64* totalPCMFrameCountOut)\ +#define MA_DR_FLAC_DEFINE_FULL_READ_AND_CLOSE(extension, type) \ +static type* ma_dr_flac__full_read_and_close_ ## extension (ma_dr_flac* pFlac, unsigned int* channelsOut, unsigned int* sampleRateOut, ma_uint64* totalPCMFrameCountOut)\ { \ type* pSampleData = NULL; \ - drflac_uint64 totalPCMFrameCount; \ + ma_uint64 totalPCMFrameCount; \ \ - DRFLAC_ASSERT(pFlac != NULL); \ + MA_DR_FLAC_ASSERT(pFlac != NULL); \ \ totalPCMFrameCount = pFlac->totalPCMFrameCount; \ \ if (totalPCMFrameCount == 0) { \ type buffer[4096]; \ - drflac_uint64 pcmFramesRead; \ + ma_uint64 pcmFramesRead; \ size_t sampleDataBufferSize = sizeof(buffer); \ \ - pSampleData = (type*)drflac__malloc_from_callbacks(sampleDataBufferSize, &pFlac->allocationCallbacks); \ + pSampleData = (type*)ma_dr_flac__malloc_from_callbacks(sampleDataBufferSize, &pFlac->allocationCallbacks); \ if (pSampleData == NULL) { \ goto on_error; \ } \ \ - while ((pcmFramesRead = (drflac_uint64)drflac_read_pcm_frames_##extension(pFlac, sizeof(buffer)/sizeof(buffer[0])/pFlac->channels, buffer)) > 0) { \ + while ((pcmFramesRead = (ma_uint64)ma_dr_flac_read_pcm_frames_##extension(pFlac, sizeof(buffer)/sizeof(buffer[0])/pFlac->channels, buffer)) > 0) { \ if (((totalPCMFrameCount + pcmFramesRead) * pFlac->channels * sizeof(type)) > sampleDataBufferSize) { \ type* pNewSampleData; \ size_t newSampleDataBufferSize; \ \ newSampleDataBufferSize = sampleDataBufferSize * 2; \ - pNewSampleData = (type*)drflac__realloc_from_callbacks(pSampleData, newSampleDataBufferSize, sampleDataBufferSize, &pFlac->allocationCallbacks); \ + pNewSampleData = (type*)ma_dr_flac__realloc_from_callbacks(pSampleData, newSampleDataBufferSize, sampleDataBufferSize, &pFlac->allocationCallbacks); \ if (pNewSampleData == NULL) { \ - drflac__free_from_callbacks(pSampleData, &pFlac->allocationCallbacks); \ + ma_dr_flac__free_from_callbacks(pSampleData, &pFlac->allocationCallbacks); \ goto on_error; \ } \ \ @@ -86860,43 +89529,43 @@ static type* drflac__full_read_and_close_ ## extension (drflac* pFlac, unsigned pSampleData = pNewSampleData; \ } \ \ - DRFLAC_COPY_MEMORY(pSampleData + (totalPCMFrameCount*pFlac->channels), buffer, (size_t)(pcmFramesRead*pFlac->channels*sizeof(type))); \ + MA_DR_FLAC_COPY_MEMORY(pSampleData + (totalPCMFrameCount*pFlac->channels), buffer, (size_t)(pcmFramesRead*pFlac->channels*sizeof(type))); \ totalPCMFrameCount += pcmFramesRead; \ } \ \ \ - DRFLAC_ZERO_MEMORY(pSampleData + (totalPCMFrameCount*pFlac->channels), (size_t)(sampleDataBufferSize - totalPCMFrameCount*pFlac->channels*sizeof(type))); \ + MA_DR_FLAC_ZERO_MEMORY(pSampleData + (totalPCMFrameCount*pFlac->channels), (size_t)(sampleDataBufferSize - totalPCMFrameCount*pFlac->channels*sizeof(type))); \ } else { \ - drflac_uint64 dataSize = totalPCMFrameCount*pFlac->channels*sizeof(type); \ - if (dataSize > (drflac_uint64)DRFLAC_SIZE_MAX) { \ + ma_uint64 dataSize = totalPCMFrameCount*pFlac->channels*sizeof(type); \ + if (dataSize > (ma_uint64)MA_SIZE_MAX) { \ goto on_error; \ } \ \ - pSampleData = (type*)drflac__malloc_from_callbacks((size_t)dataSize, &pFlac->allocationCallbacks); \ + pSampleData = (type*)ma_dr_flac__malloc_from_callbacks((size_t)dataSize, &pFlac->allocationCallbacks); \ if (pSampleData == NULL) { \ goto on_error; \ } \ \ - totalPCMFrameCount = drflac_read_pcm_frames_##extension(pFlac, pFlac->totalPCMFrameCount, pSampleData); \ + totalPCMFrameCount = ma_dr_flac_read_pcm_frames_##extension(pFlac, pFlac->totalPCMFrameCount, pSampleData); \ } \ \ if (sampleRateOut) *sampleRateOut = pFlac->sampleRate; \ if (channelsOut) *channelsOut = pFlac->channels; \ if (totalPCMFrameCountOut) *totalPCMFrameCountOut = totalPCMFrameCount; \ \ - drflac_close(pFlac); \ + ma_dr_flac_close(pFlac); \ return pSampleData; \ \ on_error: \ - drflac_close(pFlac); \ + ma_dr_flac_close(pFlac); \ return NULL; \ } -DRFLAC_DEFINE_FULL_READ_AND_CLOSE(s32, drflac_int32) -DRFLAC_DEFINE_FULL_READ_AND_CLOSE(s16, drflac_int16) -DRFLAC_DEFINE_FULL_READ_AND_CLOSE(f32, float) -DRFLAC_API drflac_int32* drflac_open_and_read_pcm_frames_s32(drflac_read_proc onRead, drflac_seek_proc onSeek, void* pUserData, unsigned int* channelsOut, unsigned int* sampleRateOut, drflac_uint64* totalPCMFrameCountOut, const drflac_allocation_callbacks* pAllocationCallbacks) +MA_DR_FLAC_DEFINE_FULL_READ_AND_CLOSE(s32, ma_int32) +MA_DR_FLAC_DEFINE_FULL_READ_AND_CLOSE(s16, ma_int16) +MA_DR_FLAC_DEFINE_FULL_READ_AND_CLOSE(f32, float) +MA_API ma_int32* ma_dr_flac_open_and_read_pcm_frames_s32(ma_dr_flac_read_proc onRead, ma_dr_flac_seek_proc onSeek, void* pUserData, unsigned int* channelsOut, unsigned int* sampleRateOut, ma_uint64* totalPCMFrameCountOut, const ma_allocation_callbacks* pAllocationCallbacks) { - drflac* pFlac; + ma_dr_flac* pFlac; if (channelsOut) { *channelsOut = 0; } @@ -86906,15 +89575,15 @@ DRFLAC_API drflac_int32* drflac_open_and_read_pcm_frames_s32(drflac_read_proc on if (totalPCMFrameCountOut) { *totalPCMFrameCountOut = 0; } - pFlac = drflac_open(onRead, onSeek, pUserData, pAllocationCallbacks); + pFlac = ma_dr_flac_open(onRead, onSeek, pUserData, pAllocationCallbacks); if (pFlac == NULL) { return NULL; } - return drflac__full_read_and_close_s32(pFlac, channelsOut, sampleRateOut, totalPCMFrameCountOut); + return ma_dr_flac__full_read_and_close_s32(pFlac, channelsOut, sampleRateOut, totalPCMFrameCountOut); } -DRFLAC_API drflac_int16* drflac_open_and_read_pcm_frames_s16(drflac_read_proc onRead, drflac_seek_proc onSeek, void* pUserData, unsigned int* channelsOut, unsigned int* sampleRateOut, drflac_uint64* totalPCMFrameCountOut, const drflac_allocation_callbacks* pAllocationCallbacks) +MA_API ma_int16* ma_dr_flac_open_and_read_pcm_frames_s16(ma_dr_flac_read_proc onRead, ma_dr_flac_seek_proc onSeek, void* pUserData, unsigned int* channelsOut, unsigned int* sampleRateOut, ma_uint64* totalPCMFrameCountOut, const ma_allocation_callbacks* pAllocationCallbacks) { - drflac* pFlac; + ma_dr_flac* pFlac; if (channelsOut) { *channelsOut = 0; } @@ -86924,15 +89593,15 @@ DRFLAC_API drflac_int16* drflac_open_and_read_pcm_frames_s16(drflac_read_proc on if (totalPCMFrameCountOut) { *totalPCMFrameCountOut = 0; } - pFlac = drflac_open(onRead, onSeek, pUserData, pAllocationCallbacks); + pFlac = ma_dr_flac_open(onRead, onSeek, pUserData, pAllocationCallbacks); if (pFlac == NULL) { return NULL; } - return drflac__full_read_and_close_s16(pFlac, channelsOut, sampleRateOut, totalPCMFrameCountOut); + return ma_dr_flac__full_read_and_close_s16(pFlac, channelsOut, sampleRateOut, totalPCMFrameCountOut); } -DRFLAC_API float* drflac_open_and_read_pcm_frames_f32(drflac_read_proc onRead, drflac_seek_proc onSeek, void* pUserData, unsigned int* channelsOut, unsigned int* sampleRateOut, drflac_uint64* totalPCMFrameCountOut, const drflac_allocation_callbacks* pAllocationCallbacks) +MA_API float* ma_dr_flac_open_and_read_pcm_frames_f32(ma_dr_flac_read_proc onRead, ma_dr_flac_seek_proc onSeek, void* pUserData, unsigned int* channelsOut, unsigned int* sampleRateOut, ma_uint64* totalPCMFrameCountOut, const ma_allocation_callbacks* pAllocationCallbacks) { - drflac* pFlac; + ma_dr_flac* pFlac; if (channelsOut) { *channelsOut = 0; } @@ -86942,16 +89611,16 @@ DRFLAC_API float* drflac_open_and_read_pcm_frames_f32(drflac_read_proc onRead, d if (totalPCMFrameCountOut) { *totalPCMFrameCountOut = 0; } - pFlac = drflac_open(onRead, onSeek, pUserData, pAllocationCallbacks); + pFlac = ma_dr_flac_open(onRead, onSeek, pUserData, pAllocationCallbacks); if (pFlac == NULL) { return NULL; } - return drflac__full_read_and_close_f32(pFlac, channelsOut, sampleRateOut, totalPCMFrameCountOut); + return ma_dr_flac__full_read_and_close_f32(pFlac, channelsOut, sampleRateOut, totalPCMFrameCountOut); } -#ifndef DR_FLAC_NO_STDIO -DRFLAC_API drflac_int32* drflac_open_file_and_read_pcm_frames_s32(const char* filename, unsigned int* channels, unsigned int* sampleRate, drflac_uint64* totalPCMFrameCount, const drflac_allocation_callbacks* pAllocationCallbacks) +#ifndef MA_DR_FLAC_NO_STDIO +MA_API ma_int32* ma_dr_flac_open_file_and_read_pcm_frames_s32(const char* filename, unsigned int* channels, unsigned int* sampleRate, ma_uint64* totalPCMFrameCount, const ma_allocation_callbacks* pAllocationCallbacks) { - drflac* pFlac; + ma_dr_flac* pFlac; if (sampleRate) { *sampleRate = 0; } @@ -86961,15 +89630,15 @@ DRFLAC_API drflac_int32* drflac_open_file_and_read_pcm_frames_s32(const char* fi if (totalPCMFrameCount) { *totalPCMFrameCount = 0; } - pFlac = drflac_open_file(filename, pAllocationCallbacks); + pFlac = ma_dr_flac_open_file(filename, pAllocationCallbacks); if (pFlac == NULL) { return NULL; } - return drflac__full_read_and_close_s32(pFlac, channels, sampleRate, totalPCMFrameCount); + return ma_dr_flac__full_read_and_close_s32(pFlac, channels, sampleRate, totalPCMFrameCount); } -DRFLAC_API drflac_int16* drflac_open_file_and_read_pcm_frames_s16(const char* filename, unsigned int* channels, unsigned int* sampleRate, drflac_uint64* totalPCMFrameCount, const drflac_allocation_callbacks* pAllocationCallbacks) +MA_API ma_int16* ma_dr_flac_open_file_and_read_pcm_frames_s16(const char* filename, unsigned int* channels, unsigned int* sampleRate, ma_uint64* totalPCMFrameCount, const ma_allocation_callbacks* pAllocationCallbacks) { - drflac* pFlac; + ma_dr_flac* pFlac; if (sampleRate) { *sampleRate = 0; } @@ -86979,15 +89648,15 @@ DRFLAC_API drflac_int16* drflac_open_file_and_read_pcm_frames_s16(const char* fi if (totalPCMFrameCount) { *totalPCMFrameCount = 0; } - pFlac = drflac_open_file(filename, pAllocationCallbacks); + pFlac = ma_dr_flac_open_file(filename, pAllocationCallbacks); if (pFlac == NULL) { return NULL; } - return drflac__full_read_and_close_s16(pFlac, channels, sampleRate, totalPCMFrameCount); + return ma_dr_flac__full_read_and_close_s16(pFlac, channels, sampleRate, totalPCMFrameCount); } -DRFLAC_API float* drflac_open_file_and_read_pcm_frames_f32(const char* filename, unsigned int* channels, unsigned int* sampleRate, drflac_uint64* totalPCMFrameCount, const drflac_allocation_callbacks* pAllocationCallbacks) +MA_API float* ma_dr_flac_open_file_and_read_pcm_frames_f32(const char* filename, unsigned int* channels, unsigned int* sampleRate, ma_uint64* totalPCMFrameCount, const ma_allocation_callbacks* pAllocationCallbacks) { - drflac* pFlac; + ma_dr_flac* pFlac; if (sampleRate) { *sampleRate = 0; } @@ -86997,16 +89666,16 @@ DRFLAC_API float* drflac_open_file_and_read_pcm_frames_f32(const char* filename, if (totalPCMFrameCount) { *totalPCMFrameCount = 0; } - pFlac = drflac_open_file(filename, pAllocationCallbacks); + pFlac = ma_dr_flac_open_file(filename, pAllocationCallbacks); if (pFlac == NULL) { return NULL; } - return drflac__full_read_and_close_f32(pFlac, channels, sampleRate, totalPCMFrameCount); + return ma_dr_flac__full_read_and_close_f32(pFlac, channels, sampleRate, totalPCMFrameCount); } #endif -DRFLAC_API drflac_int32* drflac_open_memory_and_read_pcm_frames_s32(const void* data, size_t dataSize, unsigned int* channels, unsigned int* sampleRate, drflac_uint64* totalPCMFrameCount, const drflac_allocation_callbacks* pAllocationCallbacks) +MA_API ma_int32* ma_dr_flac_open_memory_and_read_pcm_frames_s32(const void* data, size_t dataSize, unsigned int* channels, unsigned int* sampleRate, ma_uint64* totalPCMFrameCount, const ma_allocation_callbacks* pAllocationCallbacks) { - drflac* pFlac; + ma_dr_flac* pFlac; if (sampleRate) { *sampleRate = 0; } @@ -87016,15 +89685,15 @@ DRFLAC_API drflac_int32* drflac_open_memory_and_read_pcm_frames_s32(const void* if (totalPCMFrameCount) { *totalPCMFrameCount = 0; } - pFlac = drflac_open_memory(data, dataSize, pAllocationCallbacks); + pFlac = ma_dr_flac_open_memory(data, dataSize, pAllocationCallbacks); if (pFlac == NULL) { return NULL; } - return drflac__full_read_and_close_s32(pFlac, channels, sampleRate, totalPCMFrameCount); + return ma_dr_flac__full_read_and_close_s32(pFlac, channels, sampleRate, totalPCMFrameCount); } -DRFLAC_API drflac_int16* drflac_open_memory_and_read_pcm_frames_s16(const void* data, size_t dataSize, unsigned int* channels, unsigned int* sampleRate, drflac_uint64* totalPCMFrameCount, const drflac_allocation_callbacks* pAllocationCallbacks) +MA_API ma_int16* ma_dr_flac_open_memory_and_read_pcm_frames_s16(const void* data, size_t dataSize, unsigned int* channels, unsigned int* sampleRate, ma_uint64* totalPCMFrameCount, const ma_allocation_callbacks* pAllocationCallbacks) { - drflac* pFlac; + ma_dr_flac* pFlac; if (sampleRate) { *sampleRate = 0; } @@ -87034,15 +89703,15 @@ DRFLAC_API drflac_int16* drflac_open_memory_and_read_pcm_frames_s16(const void* if (totalPCMFrameCount) { *totalPCMFrameCount = 0; } - pFlac = drflac_open_memory(data, dataSize, pAllocationCallbacks); + pFlac = ma_dr_flac_open_memory(data, dataSize, pAllocationCallbacks); if (pFlac == NULL) { return NULL; } - return drflac__full_read_and_close_s16(pFlac, channels, sampleRate, totalPCMFrameCount); + return ma_dr_flac__full_read_and_close_s16(pFlac, channels, sampleRate, totalPCMFrameCount); } -DRFLAC_API float* drflac_open_memory_and_read_pcm_frames_f32(const void* data, size_t dataSize, unsigned int* channels, unsigned int* sampleRate, drflac_uint64* totalPCMFrameCount, const drflac_allocation_callbacks* pAllocationCallbacks) +MA_API float* ma_dr_flac_open_memory_and_read_pcm_frames_f32(const void* data, size_t dataSize, unsigned int* channels, unsigned int* sampleRate, ma_uint64* totalPCMFrameCount, const ma_allocation_callbacks* pAllocationCallbacks) { - drflac* pFlac; + ma_dr_flac* pFlac; if (sampleRate) { *sampleRate = 0; } @@ -87052,21 +89721,21 @@ DRFLAC_API float* drflac_open_memory_and_read_pcm_frames_f32(const void* data, s if (totalPCMFrameCount) { *totalPCMFrameCount = 0; } - pFlac = drflac_open_memory(data, dataSize, pAllocationCallbacks); + pFlac = ma_dr_flac_open_memory(data, dataSize, pAllocationCallbacks); if (pFlac == NULL) { return NULL; } - return drflac__full_read_and_close_f32(pFlac, channels, sampleRate, totalPCMFrameCount); + return ma_dr_flac__full_read_and_close_f32(pFlac, channels, sampleRate, totalPCMFrameCount); } -DRFLAC_API void drflac_free(void* p, const drflac_allocation_callbacks* pAllocationCallbacks) +MA_API void ma_dr_flac_free(void* p, const ma_allocation_callbacks* pAllocationCallbacks) { if (pAllocationCallbacks != NULL) { - drflac__free_from_callbacks(p, pAllocationCallbacks); + ma_dr_flac__free_from_callbacks(p, pAllocationCallbacks); } else { - drflac__free_default(p, NULL); + ma_dr_flac__free_default(p, NULL); } } -DRFLAC_API void drflac_init_vorbis_comment_iterator(drflac_vorbis_comment_iterator* pIter, drflac_uint32 commentCount, const void* pComments) +MA_API void ma_dr_flac_init_vorbis_comment_iterator(ma_dr_flac_vorbis_comment_iterator* pIter, ma_uint32 commentCount, const void* pComments) { if (pIter == NULL) { return; @@ -87074,9 +89743,9 @@ DRFLAC_API void drflac_init_vorbis_comment_iterator(drflac_vorbis_comment_iterat pIter->countRemaining = commentCount; pIter->pRunningData = (const char*)pComments; } -DRFLAC_API const char* drflac_next_vorbis_comment(drflac_vorbis_comment_iterator* pIter, drflac_uint32* pCommentLengthOut) +MA_API const char* ma_dr_flac_next_vorbis_comment(ma_dr_flac_vorbis_comment_iterator* pIter, ma_uint32* pCommentLengthOut) { - drflac_int32 length; + ma_int32 length; const char* pComment; if (pCommentLengthOut) { *pCommentLengthOut = 0; @@ -87084,7 +89753,7 @@ DRFLAC_API const char* drflac_next_vorbis_comment(drflac_vorbis_comment_iterator if (pIter == NULL || pIter->countRemaining == 0 || pIter->pRunningData == NULL) { return NULL; } - length = drflac__le2host_32_ptr_unaligned(pIter->pRunningData); + length = ma_dr_flac__le2host_32_ptr_unaligned(pIter->pRunningData); pIter->pRunningData += 4; pComment = pIter->pRunningData; pIter->pRunningData += length; @@ -87094,7 +89763,7 @@ DRFLAC_API const char* drflac_next_vorbis_comment(drflac_vorbis_comment_iterator } return pComment; } -DRFLAC_API void drflac_init_cuesheet_track_iterator(drflac_cuesheet_track_iterator* pIter, drflac_uint32 trackCount, const void* pTrackData) +MA_API void ma_dr_flac_init_cuesheet_track_iterator(ma_dr_flac_cuesheet_track_iterator* pIter, ma_uint32 trackCount, const void* pTrackData) { if (pIter == NULL) { return; @@ -87102,127 +89771,127 @@ DRFLAC_API void drflac_init_cuesheet_track_iterator(drflac_cuesheet_track_iterat pIter->countRemaining = trackCount; pIter->pRunningData = (const char*)pTrackData; } -DRFLAC_API drflac_bool32 drflac_next_cuesheet_track(drflac_cuesheet_track_iterator* pIter, drflac_cuesheet_track* pCuesheetTrack) +MA_API ma_bool32 ma_dr_flac_next_cuesheet_track(ma_dr_flac_cuesheet_track_iterator* pIter, ma_dr_flac_cuesheet_track* pCuesheetTrack) { - drflac_cuesheet_track cuesheetTrack; + ma_dr_flac_cuesheet_track cuesheetTrack; const char* pRunningData; - drflac_uint64 offsetHi; - drflac_uint64 offsetLo; + ma_uint64 offsetHi; + ma_uint64 offsetLo; if (pIter == NULL || pIter->countRemaining == 0 || pIter->pRunningData == NULL) { - return DRFLAC_FALSE; + return MA_FALSE; } pRunningData = pIter->pRunningData; - offsetHi = drflac__be2host_32(*(const drflac_uint32*)pRunningData); pRunningData += 4; - offsetLo = drflac__be2host_32(*(const drflac_uint32*)pRunningData); pRunningData += 4; + offsetHi = ma_dr_flac__be2host_32(*(const ma_uint32*)pRunningData); pRunningData += 4; + offsetLo = ma_dr_flac__be2host_32(*(const ma_uint32*)pRunningData); pRunningData += 4; cuesheetTrack.offset = offsetLo | (offsetHi << 32); cuesheetTrack.trackNumber = pRunningData[0]; pRunningData += 1; - DRFLAC_COPY_MEMORY(cuesheetTrack.ISRC, pRunningData, sizeof(cuesheetTrack.ISRC)); pRunningData += 12; + MA_DR_FLAC_COPY_MEMORY(cuesheetTrack.ISRC, pRunningData, sizeof(cuesheetTrack.ISRC)); pRunningData += 12; cuesheetTrack.isAudio = (pRunningData[0] & 0x80) != 0; cuesheetTrack.preEmphasis = (pRunningData[0] & 0x40) != 0; pRunningData += 14; cuesheetTrack.indexCount = pRunningData[0]; pRunningData += 1; - cuesheetTrack.pIndexPoints = (const drflac_cuesheet_track_index*)pRunningData; pRunningData += cuesheetTrack.indexCount * sizeof(drflac_cuesheet_track_index); + cuesheetTrack.pIndexPoints = (const ma_dr_flac_cuesheet_track_index*)pRunningData; pRunningData += cuesheetTrack.indexCount * sizeof(ma_dr_flac_cuesheet_track_index); pIter->pRunningData = pRunningData; pIter->countRemaining -= 1; if (pCuesheetTrack) { *pCuesheetTrack = cuesheetTrack; } - return DRFLAC_TRUE; + return MA_TRUE; } #if defined(__clang__) || (defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6))) #pragma GCC diagnostic pop #endif #endif /* dr_flac_c end */ -#endif /* DRFLAC_IMPLEMENTATION */ +#endif /* MA_DR_FLAC_IMPLEMENTATION */ #endif /* MA_NO_FLAC */ #if !defined(MA_NO_MP3) && !defined(MA_NO_DECODING) -#if !defined(DR_MP3_IMPLEMENTATION) && !defined(DRMP3_IMPLEMENTATION) /* For backwards compatibility. Will be removed in version 0.11 for cleanliness. */ +#if !defined(MA_DR_MP3_IMPLEMENTATION) && !defined(MA_DR_MP3_IMPLEMENTATION) /* For backwards compatibility. Will be removed in version 0.11 for cleanliness. */ /* dr_mp3_c begin */ -#ifndef dr_mp3_c -#define dr_mp3_c +#ifndef ma_dr_mp3_c +#define ma_dr_mp3_c #include #include #include -DRMP3_API void drmp3_version(drmp3_uint32* pMajor, drmp3_uint32* pMinor, drmp3_uint32* pRevision) +MA_API void ma_dr_mp3_version(ma_uint32* pMajor, ma_uint32* pMinor, ma_uint32* pRevision) { if (pMajor) { - *pMajor = DRMP3_VERSION_MAJOR; + *pMajor = MA_DR_MP3_VERSION_MAJOR; } if (pMinor) { - *pMinor = DRMP3_VERSION_MINOR; + *pMinor = MA_DR_MP3_VERSION_MINOR; } if (pRevision) { - *pRevision = DRMP3_VERSION_REVISION; + *pRevision = MA_DR_MP3_VERSION_REVISION; } } -DRMP3_API const char* drmp3_version_string(void) +MA_API const char* ma_dr_mp3_version_string(void) { - return DRMP3_VERSION_STRING; + return MA_DR_MP3_VERSION_STRING; } #if defined(__TINYC__) -#define DR_MP3_NO_SIMD +#define MA_DR_MP3_NO_SIMD #endif -#define DRMP3_OFFSET_PTR(p, offset) ((void*)((drmp3_uint8*)(p) + (offset))) -#define DRMP3_MAX_FREE_FORMAT_FRAME_SIZE 2304 -#ifndef DRMP3_MAX_FRAME_SYNC_MATCHES -#define DRMP3_MAX_FRAME_SYNC_MATCHES 10 +#define MA_DR_MP3_OFFSET_PTR(p, offset) ((void*)((ma_uint8*)(p) + (offset))) +#define MA_DR_MP3_MAX_FREE_FORMAT_FRAME_SIZE 2304 +#ifndef MA_DR_MP3_MAX_FRAME_SYNC_MATCHES +#define MA_DR_MP3_MAX_FRAME_SYNC_MATCHES 10 #endif -#define DRMP3_MAX_L3_FRAME_PAYLOAD_BYTES DRMP3_MAX_FREE_FORMAT_FRAME_SIZE -#define DRMP3_MAX_BITRESERVOIR_BYTES 511 -#define DRMP3_SHORT_BLOCK_TYPE 2 -#define DRMP3_STOP_BLOCK_TYPE 3 -#define DRMP3_MODE_MONO 3 -#define DRMP3_MODE_JOINT_STEREO 1 -#define DRMP3_HDR_SIZE 4 -#define DRMP3_HDR_IS_MONO(h) (((h[3]) & 0xC0) == 0xC0) -#define DRMP3_HDR_IS_MS_STEREO(h) (((h[3]) & 0xE0) == 0x60) -#define DRMP3_HDR_IS_FREE_FORMAT(h) (((h[2]) & 0xF0) == 0) -#define DRMP3_HDR_IS_CRC(h) (!((h[1]) & 1)) -#define DRMP3_HDR_TEST_PADDING(h) ((h[2]) & 0x2) -#define DRMP3_HDR_TEST_MPEG1(h) ((h[1]) & 0x8) -#define DRMP3_HDR_TEST_NOT_MPEG25(h) ((h[1]) & 0x10) -#define DRMP3_HDR_TEST_I_STEREO(h) ((h[3]) & 0x10) -#define DRMP3_HDR_TEST_MS_STEREO(h) ((h[3]) & 0x20) -#define DRMP3_HDR_GET_STEREO_MODE(h) (((h[3]) >> 6) & 3) -#define DRMP3_HDR_GET_STEREO_MODE_EXT(h) (((h[3]) >> 4) & 3) -#define DRMP3_HDR_GET_LAYER(h) (((h[1]) >> 1) & 3) -#define DRMP3_HDR_GET_BITRATE(h) ((h[2]) >> 4) -#define DRMP3_HDR_GET_SAMPLE_RATE(h) (((h[2]) >> 2) & 3) -#define DRMP3_HDR_GET_MY_SAMPLE_RATE(h) (DRMP3_HDR_GET_SAMPLE_RATE(h) + (((h[1] >> 3) & 1) + ((h[1] >> 4) & 1))*3) -#define DRMP3_HDR_IS_FRAME_576(h) ((h[1] & 14) == 2) -#define DRMP3_HDR_IS_LAYER_1(h) ((h[1] & 6) == 6) -#define DRMP3_BITS_DEQUANTIZER_OUT -1 -#define DRMP3_MAX_SCF (255 + DRMP3_BITS_DEQUANTIZER_OUT*4 - 210) -#define DRMP3_MAX_SCFI ((DRMP3_MAX_SCF + 3) & ~3) -#define DRMP3_MIN(a, b) ((a) > (b) ? (b) : (a)) -#define DRMP3_MAX(a, b) ((a) < (b) ? (b) : (a)) -#if !defined(DR_MP3_NO_SIMD) -#if !defined(DR_MP3_ONLY_SIMD) && (defined(_M_X64) || defined(__x86_64__) || defined(__aarch64__) || defined(_M_ARM64)) -#define DR_MP3_ONLY_SIMD +#define MA_DR_MP3_MAX_L3_FRAME_PAYLOAD_BYTES MA_DR_MP3_MAX_FREE_FORMAT_FRAME_SIZE +#define MA_DR_MP3_MAX_BITRESERVOIR_BYTES 511 +#define MA_DR_MP3_SHORT_BLOCK_TYPE 2 +#define MA_DR_MP3_STOP_BLOCK_TYPE 3 +#define MA_DR_MP3_MODE_MONO 3 +#define MA_DR_MP3_MODE_JOINT_STEREO 1 +#define MA_DR_MP3_HDR_SIZE 4 +#define MA_DR_MP3_HDR_IS_MONO(h) (((h[3]) & 0xC0) == 0xC0) +#define MA_DR_MP3_HDR_IS_MS_STEREO(h) (((h[3]) & 0xE0) == 0x60) +#define MA_DR_MP3_HDR_IS_FREE_FORMAT(h) (((h[2]) & 0xF0) == 0) +#define MA_DR_MP3_HDR_IS_CRC(h) (!((h[1]) & 1)) +#define MA_DR_MP3_HDR_TEST_PADDING(h) ((h[2]) & 0x2) +#define MA_DR_MP3_HDR_TEST_MPEG1(h) ((h[1]) & 0x8) +#define MA_DR_MP3_HDR_TEST_NOT_MPEG25(h) ((h[1]) & 0x10) +#define MA_DR_MP3_HDR_TEST_I_STEREO(h) ((h[3]) & 0x10) +#define MA_DR_MP3_HDR_TEST_MS_STEREO(h) ((h[3]) & 0x20) +#define MA_DR_MP3_HDR_GET_STEREO_MODE(h) (((h[3]) >> 6) & 3) +#define MA_DR_MP3_HDR_GET_STEREO_MODE_EXT(h) (((h[3]) >> 4) & 3) +#define MA_DR_MP3_HDR_GET_LAYER(h) (((h[1]) >> 1) & 3) +#define MA_DR_MP3_HDR_GET_BITRATE(h) ((h[2]) >> 4) +#define MA_DR_MP3_HDR_GET_SAMPLE_RATE(h) (((h[2]) >> 2) & 3) +#define MA_DR_MP3_HDR_GET_MY_SAMPLE_RATE(h) (MA_DR_MP3_HDR_GET_SAMPLE_RATE(h) + (((h[1] >> 3) & 1) + ((h[1] >> 4) & 1))*3) +#define MA_DR_MP3_HDR_IS_FRAME_576(h) ((h[1] & 14) == 2) +#define MA_DR_MP3_HDR_IS_LAYER_1(h) ((h[1] & 6) == 6) +#define MA_DR_MP3_BITS_DEQUANTIZER_OUT -1 +#define MA_DR_MP3_MAX_SCF (255 + MA_DR_MP3_BITS_DEQUANTIZER_OUT*4 - 210) +#define MA_DR_MP3_MAX_SCFI ((MA_DR_MP3_MAX_SCF + 3) & ~3) +#define MA_DR_MP3_MIN(a, b) ((a) > (b) ? (b) : (a)) +#define MA_DR_MP3_MAX(a, b) ((a) < (b) ? (b) : (a)) +#if !defined(MA_DR_MP3_NO_SIMD) +#if !defined(MA_DR_MP3_ONLY_SIMD) && (defined(_M_X64) || defined(__x86_64__) || defined(__aarch64__) || defined(_M_ARM64)) +#define MA_DR_MP3_ONLY_SIMD #endif -#if ((defined(_MSC_VER) && _MSC_VER >= 1400) && (defined(_M_IX86) || defined(_M_X64))) || ((defined(__i386__) || defined(__x86_64__)) && defined(__SSE2__)) +#if ((defined(_MSC_VER) && _MSC_VER >= 1400) && defined(_M_X64)) || ((defined(__i386) || defined(_M_IX86) || defined(__i386__) || defined(__x86_64__)) && ((defined(_M_IX86_FP) && _M_IX86_FP == 2) || defined(__SSE2__))) #if defined(_MSC_VER) #include #endif #include -#define DRMP3_HAVE_SSE 1 -#define DRMP3_HAVE_SIMD 1 -#define DRMP3_VSTORE _mm_storeu_ps -#define DRMP3_VLD _mm_loadu_ps -#define DRMP3_VSET _mm_set1_ps -#define DRMP3_VADD _mm_add_ps -#define DRMP3_VSUB _mm_sub_ps -#define DRMP3_VMUL _mm_mul_ps -#define DRMP3_VMAC(a, x, y) _mm_add_ps(a, _mm_mul_ps(x, y)) -#define DRMP3_VMSB(a, x, y) _mm_sub_ps(a, _mm_mul_ps(x, y)) -#define DRMP3_VMUL_S(x, s) _mm_mul_ps(x, _mm_set1_ps(s)) -#define DRMP3_VREV(x) _mm_shuffle_ps(x, x, _MM_SHUFFLE(0, 1, 2, 3)) -typedef __m128 drmp3_f4; -#if defined(_MSC_VER) || defined(DR_MP3_ONLY_SIMD) -#define drmp3_cpuid __cpuid +#define MA_DR_MP3_HAVE_SSE 1 +#define MA_DR_MP3_HAVE_SIMD 1 +#define MA_DR_MP3_VSTORE _mm_storeu_ps +#define MA_DR_MP3_VLD _mm_loadu_ps +#define MA_DR_MP3_VSET _mm_set1_ps +#define MA_DR_MP3_VADD _mm_add_ps +#define MA_DR_MP3_VSUB _mm_sub_ps +#define MA_DR_MP3_VMUL _mm_mul_ps +#define MA_DR_MP3_VMAC(a, x, y) _mm_add_ps(a, _mm_mul_ps(x, y)) +#define MA_DR_MP3_VMSB(a, x, y) _mm_sub_ps(a, _mm_mul_ps(x, y)) +#define MA_DR_MP3_VMUL_S(x, s) _mm_mul_ps(x, _mm_set1_ps(s)) +#define MA_DR_MP3_VREV(x) _mm_shuffle_ps(x, x, _MM_SHUFFLE(0, 1, 2, 3)) +typedef __m128 ma_dr_mp3_f4; +#if defined(_MSC_VER) || defined(MA_DR_MP3_ONLY_SIMD) +#define ma_dr_mp3_cpuid __cpuid #else -static __inline__ __attribute__((always_inline)) void drmp3_cpuid(int CPUInfo[], const int InfoType) +static __inline__ __attribute__((always_inline)) void ma_dr_mp3_cpuid(int CPUInfo[], const int InfoType) { #if defined(__PIC__) __asm__ __volatile__( @@ -87246,9 +89915,9 @@ static __inline__ __attribute__((always_inline)) void drmp3_cpuid(int CPUInfo[], #endif } #endif -static int drmp3_have_simd(void) +static int ma_dr_mp3_have_simd(void) { -#ifdef DR_MP3_ONLY_SIMD +#ifdef MA_DR_MP3_ONLY_SIMD return 1; #else static int g_have_simd; @@ -87260,10 +89929,10 @@ static int drmp3_have_simd(void) #endif if (g_have_simd) goto end; - drmp3_cpuid(CPUInfo, 0); + ma_dr_mp3_cpuid(CPUInfo, 0); if (CPUInfo[0] > 0) { - drmp3_cpuid(CPUInfo, 1); + ma_dr_mp3_cpuid(CPUInfo, 1); g_have_simd = (CPUInfo[3] & (1 << 26)) + 1; return g_have_simd - 1; } @@ -87273,108 +89942,108 @@ end: } #elif defined(__ARM_NEON) || defined(__aarch64__) || defined(_M_ARM64) #include -#define DRMP3_HAVE_SSE 0 -#define DRMP3_HAVE_SIMD 1 -#define DRMP3_VSTORE vst1q_f32 -#define DRMP3_VLD vld1q_f32 -#define DRMP3_VSET vmovq_n_f32 -#define DRMP3_VADD vaddq_f32 -#define DRMP3_VSUB vsubq_f32 -#define DRMP3_VMUL vmulq_f32 -#define DRMP3_VMAC(a, x, y) vmlaq_f32(a, x, y) -#define DRMP3_VMSB(a, x, y) vmlsq_f32(a, x, y) -#define DRMP3_VMUL_S(x, s) vmulq_f32(x, vmovq_n_f32(s)) -#define DRMP3_VREV(x) vcombine_f32(vget_high_f32(vrev64q_f32(x)), vget_low_f32(vrev64q_f32(x))) -typedef float32x4_t drmp3_f4; -static int drmp3_have_simd(void) +#define MA_DR_MP3_HAVE_SSE 0 +#define MA_DR_MP3_HAVE_SIMD 1 +#define MA_DR_MP3_VSTORE vst1q_f32 +#define MA_DR_MP3_VLD vld1q_f32 +#define MA_DR_MP3_VSET vmovq_n_f32 +#define MA_DR_MP3_VADD vaddq_f32 +#define MA_DR_MP3_VSUB vsubq_f32 +#define MA_DR_MP3_VMUL vmulq_f32 +#define MA_DR_MP3_VMAC(a, x, y) vmlaq_f32(a, x, y) +#define MA_DR_MP3_VMSB(a, x, y) vmlsq_f32(a, x, y) +#define MA_DR_MP3_VMUL_S(x, s) vmulq_f32(x, vmovq_n_f32(s)) +#define MA_DR_MP3_VREV(x) vcombine_f32(vget_high_f32(vrev64q_f32(x)), vget_low_f32(vrev64q_f32(x))) +typedef float32x4_t ma_dr_mp3_f4; +static int ma_dr_mp3_have_simd(void) { return 1; } #else -#define DRMP3_HAVE_SSE 0 -#define DRMP3_HAVE_SIMD 0 -#ifdef DR_MP3_ONLY_SIMD -#error DR_MP3_ONLY_SIMD used, but SSE/NEON not enabled +#define MA_DR_MP3_HAVE_SSE 0 +#define MA_DR_MP3_HAVE_SIMD 0 +#ifdef MA_DR_MP3_ONLY_SIMD +#error MA_DR_MP3_ONLY_SIMD used, but SSE/NEON not enabled #endif #endif #else -#define DRMP3_HAVE_SIMD 0 +#define MA_DR_MP3_HAVE_SIMD 0 #endif -#if defined(__ARM_ARCH) && (__ARM_ARCH >= 6) && !defined(__aarch64__) && !defined(_M_ARM64) -#define DRMP3_HAVE_ARMV6 1 -static __inline__ __attribute__((always_inline)) drmp3_int32 drmp3_clip_int16_arm(drmp3_int32 a) +#if defined(__ARM_ARCH) && (__ARM_ARCH >= 6) && !defined(__aarch64__) && !defined(_M_ARM64) && !defined(__ARM_ARCH_6M__) +#define MA_DR_MP3_HAVE_ARMV6 1 +static __inline__ __attribute__((always_inline)) ma_int32 ma_dr_mp3_clip_int16_arm(ma_int32 a) { - drmp3_int32 x = 0; + ma_int32 x = 0; __asm__ ("ssat %0, #16, %1" : "=r"(x) : "r"(a)); return x; } #else -#define DRMP3_HAVE_ARMV6 0 +#define MA_DR_MP3_HAVE_ARMV6 0 #endif -#ifndef DRMP3_ASSERT +#ifndef MA_DR_MP3_ASSERT #include -#define DRMP3_ASSERT(expression) assert(expression) +#define MA_DR_MP3_ASSERT(expression) assert(expression) #endif -#ifndef DRMP3_COPY_MEMORY -#define DRMP3_COPY_MEMORY(dst, src, sz) memcpy((dst), (src), (sz)) +#ifndef MA_DR_MP3_COPY_MEMORY +#define MA_DR_MP3_COPY_MEMORY(dst, src, sz) memcpy((dst), (src), (sz)) #endif -#ifndef DRMP3_MOVE_MEMORY -#define DRMP3_MOVE_MEMORY(dst, src, sz) memmove((dst), (src), (sz)) +#ifndef MA_DR_MP3_MOVE_MEMORY +#define MA_DR_MP3_MOVE_MEMORY(dst, src, sz) memmove((dst), (src), (sz)) #endif -#ifndef DRMP3_ZERO_MEMORY -#define DRMP3_ZERO_MEMORY(p, sz) memset((p), 0, (sz)) +#ifndef MA_DR_MP3_ZERO_MEMORY +#define MA_DR_MP3_ZERO_MEMORY(p, sz) memset((p), 0, (sz)) #endif -#define DRMP3_ZERO_OBJECT(p) DRMP3_ZERO_MEMORY((p), sizeof(*(p))) -#ifndef DRMP3_MALLOC -#define DRMP3_MALLOC(sz) malloc((sz)) +#define MA_DR_MP3_ZERO_OBJECT(p) MA_DR_MP3_ZERO_MEMORY((p), sizeof(*(p))) +#ifndef MA_DR_MP3_MALLOC +#define MA_DR_MP3_MALLOC(sz) malloc((sz)) #endif -#ifndef DRMP3_REALLOC -#define DRMP3_REALLOC(p, sz) realloc((p), (sz)) +#ifndef MA_DR_MP3_REALLOC +#define MA_DR_MP3_REALLOC(p, sz) realloc((p), (sz)) #endif -#ifndef DRMP3_FREE -#define DRMP3_FREE(p) free((p)) +#ifndef MA_DR_MP3_FREE +#define MA_DR_MP3_FREE(p) free((p)) #endif typedef struct { - const drmp3_uint8 *buf; + const ma_uint8 *buf; int pos, limit; -} drmp3_bs; +} ma_dr_mp3_bs; typedef struct { float scf[3*64]; - drmp3_uint8 total_bands, stereo_bands, bitalloc[64], scfcod[64]; -} drmp3_L12_scale_info; + ma_uint8 total_bands, stereo_bands, bitalloc[64], scfcod[64]; +} ma_dr_mp3_L12_scale_info; typedef struct { - drmp3_uint8 tab_offset, code_tab_width, band_count; -} drmp3_L12_subband_alloc; + ma_uint8 tab_offset, code_tab_width, band_count; +} ma_dr_mp3_L12_subband_alloc; typedef struct { - const drmp3_uint8 *sfbtab; - drmp3_uint16 part_23_length, big_values, scalefac_compress; - drmp3_uint8 global_gain, block_type, mixed_block_flag, n_long_sfb, n_short_sfb; - drmp3_uint8 table_select[3], region_count[3], subblock_gain[3]; - drmp3_uint8 preflag, scalefac_scale, count1_table, scfsi; -} drmp3_L3_gr_info; + const ma_uint8 *sfbtab; + ma_uint16 part_23_length, big_values, scalefac_compress; + ma_uint8 global_gain, block_type, mixed_block_flag, n_long_sfb, n_short_sfb; + ma_uint8 table_select[3], region_count[3], subblock_gain[3]; + ma_uint8 preflag, scalefac_scale, count1_table, scfsi; +} ma_dr_mp3_L3_gr_info; typedef struct { - drmp3_bs bs; - drmp3_uint8 maindata[DRMP3_MAX_BITRESERVOIR_BYTES + DRMP3_MAX_L3_FRAME_PAYLOAD_BYTES]; - drmp3_L3_gr_info gr_info[4]; + ma_dr_mp3_bs bs; + ma_uint8 maindata[MA_DR_MP3_MAX_BITRESERVOIR_BYTES + MA_DR_MP3_MAX_L3_FRAME_PAYLOAD_BYTES]; + ma_dr_mp3_L3_gr_info gr_info[4]; float grbuf[2][576], scf[40], syn[18 + 15][2*32]; - drmp3_uint8 ist_pos[2][39]; -} drmp3dec_scratch; -static void drmp3_bs_init(drmp3_bs *bs, const drmp3_uint8 *data, int bytes) + ma_uint8 ist_pos[2][39]; +} ma_dr_mp3dec_scratch; +static void ma_dr_mp3_bs_init(ma_dr_mp3_bs *bs, const ma_uint8 *data, int bytes) { bs->buf = data; bs->pos = 0; bs->limit = bytes*8; } -static drmp3_uint32 drmp3_bs_get_bits(drmp3_bs *bs, int n) +static ma_uint32 ma_dr_mp3_bs_get_bits(ma_dr_mp3_bs *bs, int n) { - drmp3_uint32 next, cache = 0, s = bs->pos & 7; + ma_uint32 next, cache = 0, s = bs->pos & 7; int shl = n + s; - const drmp3_uint8 *p = bs->buf + (bs->pos >> 3); + const ma_uint8 *p = bs->buf + (bs->pos >> 3); if ((bs->pos += n) > bs->limit) return 0; next = *p++ & (255 >> s); @@ -87385,72 +90054,72 @@ static drmp3_uint32 drmp3_bs_get_bits(drmp3_bs *bs, int n) } return cache | (next >> -shl); } -static int drmp3_hdr_valid(const drmp3_uint8 *h) +static int ma_dr_mp3_hdr_valid(const ma_uint8 *h) { return h[0] == 0xff && ((h[1] & 0xF0) == 0xf0 || (h[1] & 0xFE) == 0xe2) && - (DRMP3_HDR_GET_LAYER(h) != 0) && - (DRMP3_HDR_GET_BITRATE(h) != 15) && - (DRMP3_HDR_GET_SAMPLE_RATE(h) != 3); + (MA_DR_MP3_HDR_GET_LAYER(h) != 0) && + (MA_DR_MP3_HDR_GET_BITRATE(h) != 15) && + (MA_DR_MP3_HDR_GET_SAMPLE_RATE(h) != 3); } -static int drmp3_hdr_compare(const drmp3_uint8 *h1, const drmp3_uint8 *h2) +static int ma_dr_mp3_hdr_compare(const ma_uint8 *h1, const ma_uint8 *h2) { - return drmp3_hdr_valid(h2) && + return ma_dr_mp3_hdr_valid(h2) && ((h1[1] ^ h2[1]) & 0xFE) == 0 && ((h1[2] ^ h2[2]) & 0x0C) == 0 && - !(DRMP3_HDR_IS_FREE_FORMAT(h1) ^ DRMP3_HDR_IS_FREE_FORMAT(h2)); + !(MA_DR_MP3_HDR_IS_FREE_FORMAT(h1) ^ MA_DR_MP3_HDR_IS_FREE_FORMAT(h2)); } -static unsigned drmp3_hdr_bitrate_kbps(const drmp3_uint8 *h) +static unsigned ma_dr_mp3_hdr_bitrate_kbps(const ma_uint8 *h) { - static const drmp3_uint8 halfrate[2][3][15] = { + static const ma_uint8 halfrate[2][3][15] = { { { 0,4,8,12,16,20,24,28,32,40,48,56,64,72,80 }, { 0,4,8,12,16,20,24,28,32,40,48,56,64,72,80 }, { 0,16,24,28,32,40,48,56,64,72,80,88,96,112,128 } }, { { 0,16,20,24,28,32,40,48,56,64,80,96,112,128,160 }, { 0,16,24,28,32,40,48,56,64,80,96,112,128,160,192 }, { 0,16,32,48,64,80,96,112,128,144,160,176,192,208,224 } }, }; - return 2*halfrate[!!DRMP3_HDR_TEST_MPEG1(h)][DRMP3_HDR_GET_LAYER(h) - 1][DRMP3_HDR_GET_BITRATE(h)]; + return 2*halfrate[!!MA_DR_MP3_HDR_TEST_MPEG1(h)][MA_DR_MP3_HDR_GET_LAYER(h) - 1][MA_DR_MP3_HDR_GET_BITRATE(h)]; } -static unsigned drmp3_hdr_sample_rate_hz(const drmp3_uint8 *h) +static unsigned ma_dr_mp3_hdr_sample_rate_hz(const ma_uint8 *h) { static const unsigned g_hz[3] = { 44100, 48000, 32000 }; - return g_hz[DRMP3_HDR_GET_SAMPLE_RATE(h)] >> (int)!DRMP3_HDR_TEST_MPEG1(h) >> (int)!DRMP3_HDR_TEST_NOT_MPEG25(h); + return g_hz[MA_DR_MP3_HDR_GET_SAMPLE_RATE(h)] >> (int)!MA_DR_MP3_HDR_TEST_MPEG1(h) >> (int)!MA_DR_MP3_HDR_TEST_NOT_MPEG25(h); } -static unsigned drmp3_hdr_frame_samples(const drmp3_uint8 *h) +static unsigned ma_dr_mp3_hdr_frame_samples(const ma_uint8 *h) { - return DRMP3_HDR_IS_LAYER_1(h) ? 384 : (1152 >> (int)DRMP3_HDR_IS_FRAME_576(h)); + return MA_DR_MP3_HDR_IS_LAYER_1(h) ? 384 : (1152 >> (int)MA_DR_MP3_HDR_IS_FRAME_576(h)); } -static int drmp3_hdr_frame_bytes(const drmp3_uint8 *h, int free_format_size) +static int ma_dr_mp3_hdr_frame_bytes(const ma_uint8 *h, int free_format_size) { - int frame_bytes = drmp3_hdr_frame_samples(h)*drmp3_hdr_bitrate_kbps(h)*125/drmp3_hdr_sample_rate_hz(h); - if (DRMP3_HDR_IS_LAYER_1(h)) + int frame_bytes = ma_dr_mp3_hdr_frame_samples(h)*ma_dr_mp3_hdr_bitrate_kbps(h)*125/ma_dr_mp3_hdr_sample_rate_hz(h); + if (MA_DR_MP3_HDR_IS_LAYER_1(h)) { frame_bytes &= ~3; } return frame_bytes ? frame_bytes : free_format_size; } -static int drmp3_hdr_padding(const drmp3_uint8 *h) +static int ma_dr_mp3_hdr_padding(const ma_uint8 *h) { - return DRMP3_HDR_TEST_PADDING(h) ? (DRMP3_HDR_IS_LAYER_1(h) ? 4 : 1) : 0; + return MA_DR_MP3_HDR_TEST_PADDING(h) ? (MA_DR_MP3_HDR_IS_LAYER_1(h) ? 4 : 1) : 0; } -#ifndef DR_MP3_ONLY_MP3 -static const drmp3_L12_subband_alloc *drmp3_L12_subband_alloc_table(const drmp3_uint8 *hdr, drmp3_L12_scale_info *sci) +#ifndef MA_DR_MP3_ONLY_MP3 +static const ma_dr_mp3_L12_subband_alloc *ma_dr_mp3_L12_subband_alloc_table(const ma_uint8 *hdr, ma_dr_mp3_L12_scale_info *sci) { - const drmp3_L12_subband_alloc *alloc; - int mode = DRMP3_HDR_GET_STEREO_MODE(hdr); - int nbands, stereo_bands = (mode == DRMP3_MODE_MONO) ? 0 : (mode == DRMP3_MODE_JOINT_STEREO) ? (DRMP3_HDR_GET_STEREO_MODE_EXT(hdr) << 2) + 4 : 32; - if (DRMP3_HDR_IS_LAYER_1(hdr)) + const ma_dr_mp3_L12_subband_alloc *alloc; + int mode = MA_DR_MP3_HDR_GET_STEREO_MODE(hdr); + int nbands, stereo_bands = (mode == MA_DR_MP3_MODE_MONO) ? 0 : (mode == MA_DR_MP3_MODE_JOINT_STEREO) ? (MA_DR_MP3_HDR_GET_STEREO_MODE_EXT(hdr) << 2) + 4 : 32; + if (MA_DR_MP3_HDR_IS_LAYER_1(hdr)) { - static const drmp3_L12_subband_alloc g_alloc_L1[] = { { 76, 4, 32 } }; + static const ma_dr_mp3_L12_subband_alloc g_alloc_L1[] = { { 76, 4, 32 } }; alloc = g_alloc_L1; nbands = 32; - } else if (!DRMP3_HDR_TEST_MPEG1(hdr)) + } else if (!MA_DR_MP3_HDR_TEST_MPEG1(hdr)) { - static const drmp3_L12_subband_alloc g_alloc_L2M2[] = { { 60, 4, 4 }, { 44, 3, 7 }, { 44, 2, 19 } }; + static const ma_dr_mp3_L12_subband_alloc g_alloc_L2M2[] = { { 60, 4, 4 }, { 44, 3, 7 }, { 44, 2, 19 } }; alloc = g_alloc_L2M2; nbands = 30; } else { - static const drmp3_L12_subband_alloc g_alloc_L2M1[] = { { 0, 4, 3 }, { 16, 4, 8 }, { 32, 3, 12 }, { 40, 2, 7 } }; - int sample_rate_idx = DRMP3_HDR_GET_SAMPLE_RATE(hdr); - unsigned kbps = drmp3_hdr_bitrate_kbps(hdr) >> (int)(mode != DRMP3_MODE_MONO); + static const ma_dr_mp3_L12_subband_alloc g_alloc_L2M1[] = { { 0, 4, 3 }, { 16, 4, 8 }, { 32, 3, 12 }, { 40, 2, 7 } }; + int sample_rate_idx = MA_DR_MP3_HDR_GET_SAMPLE_RATE(hdr); + unsigned kbps = ma_dr_mp3_hdr_bitrate_kbps(hdr) >> (int)(mode != MA_DR_MP3_MODE_MONO); if (!kbps) { kbps = 192; @@ -87459,7 +90128,7 @@ static const drmp3_L12_subband_alloc *drmp3_L12_subband_alloc_table(const drmp3_ nbands = 27; if (kbps < 56) { - static const drmp3_L12_subband_alloc g_alloc_L2M1_lowrate[] = { { 44, 4, 2 }, { 44, 3, 10 } }; + static const ma_dr_mp3_L12_subband_alloc g_alloc_L2M1_lowrate[] = { { 44, 4, 2 }, { 44, 3, 10 } }; alloc = g_alloc_L2M1_lowrate; nbands = sample_rate_idx == 2 ? 12 : 8; } else if (kbps >= 96 && sample_rate_idx != 1) @@ -87467,15 +90136,15 @@ static const drmp3_L12_subband_alloc *drmp3_L12_subband_alloc_table(const drmp3_ nbands = 30; } } - sci->total_bands = (drmp3_uint8)nbands; - sci->stereo_bands = (drmp3_uint8)DRMP3_MIN(stereo_bands, nbands); + sci->total_bands = (ma_uint8)nbands; + sci->stereo_bands = (ma_uint8)MA_DR_MP3_MIN(stereo_bands, nbands); return alloc; } -static void drmp3_L12_read_scalefactors(drmp3_bs *bs, drmp3_uint8 *pba, drmp3_uint8 *scfcod, int bands, float *scf) +static void ma_dr_mp3_L12_read_scalefactors(ma_dr_mp3_bs *bs, ma_uint8 *pba, ma_uint8 *scfcod, int bands, float *scf) { static const float g_deq_L12[18*3] = { -#define DRMP3_DQ(x) 9.53674316e-07f/x, 7.56931807e-07f/x, 6.00777173e-07f/x - DRMP3_DQ(3),DRMP3_DQ(7),DRMP3_DQ(15),DRMP3_DQ(31),DRMP3_DQ(63),DRMP3_DQ(127),DRMP3_DQ(255),DRMP3_DQ(511),DRMP3_DQ(1023),DRMP3_DQ(2047),DRMP3_DQ(4095),DRMP3_DQ(8191),DRMP3_DQ(16383),DRMP3_DQ(32767),DRMP3_DQ(65535),DRMP3_DQ(3),DRMP3_DQ(5),DRMP3_DQ(9) +#define MA_DR_MP3_DQ(x) 9.53674316e-07f/x, 7.56931807e-07f/x, 6.00777173e-07f/x + MA_DR_MP3_DQ(3),MA_DR_MP3_DQ(7),MA_DR_MP3_DQ(15),MA_DR_MP3_DQ(31),MA_DR_MP3_DQ(63),MA_DR_MP3_DQ(127),MA_DR_MP3_DQ(255),MA_DR_MP3_DQ(511),MA_DR_MP3_DQ(1023),MA_DR_MP3_DQ(2047),MA_DR_MP3_DQ(4095),MA_DR_MP3_DQ(8191),MA_DR_MP3_DQ(16383),MA_DR_MP3_DQ(32767),MA_DR_MP3_DQ(65535),MA_DR_MP3_DQ(3),MA_DR_MP3_DQ(5),MA_DR_MP3_DQ(9) }; int i, m; for (i = 0; i < bands; i++) @@ -87487,16 +90156,16 @@ static void drmp3_L12_read_scalefactors(drmp3_bs *bs, drmp3_uint8 *pba, drmp3_ui { if (mask & m) { - int b = drmp3_bs_get_bits(bs, 6); + int b = ma_dr_mp3_bs_get_bits(bs, 6); s = g_deq_L12[ba*3 - 6 + b % 3]*(int)(1 << 21 >> b/3); } *scf++ = s; } } } -static void drmp3_L12_read_scale_info(const drmp3_uint8 *hdr, drmp3_bs *bs, drmp3_L12_scale_info *sci) +static void ma_dr_mp3_L12_read_scale_info(const ma_uint8 *hdr, ma_dr_mp3_bs *bs, ma_dr_mp3_L12_scale_info *sci) { - static const drmp3_uint8 g_bitalloc_code_tab[] = { + static const ma_uint8 g_bitalloc_code_tab[] = { 0,17, 3, 4, 5,6,7, 8,9,10,11,12,13,14,15,16, 0,17,18, 3,19,4,5, 6,7, 8, 9,10,11,12,13,16, 0,17,18, 3,19,4,5,16, @@ -87505,12 +90174,12 @@ static void drmp3_L12_read_scale_info(const drmp3_uint8 *hdr, drmp3_bs *bs, drmp 0,17,18, 3,19,4,5, 6,7, 8, 9,10,11,12,13,14, 0, 2, 3, 4, 5,6,7, 8,9,10,11,12,13,14,15,16 }; - const drmp3_L12_subband_alloc *subband_alloc = drmp3_L12_subband_alloc_table(hdr, sci); + const ma_dr_mp3_L12_subband_alloc *subband_alloc = ma_dr_mp3_L12_subband_alloc_table(hdr, sci); int i, k = 0, ba_bits = 0; - const drmp3_uint8 *ba_code_tab = g_bitalloc_code_tab; + const ma_uint8 *ba_code_tab = g_bitalloc_code_tab; for (i = 0; i < sci->total_bands; i++) { - drmp3_uint8 ba; + ma_uint8 ba; if (i == k) { k += subband_alloc->band_count; @@ -87518,25 +90187,25 @@ static void drmp3_L12_read_scale_info(const drmp3_uint8 *hdr, drmp3_bs *bs, drmp ba_code_tab = g_bitalloc_code_tab + subband_alloc->tab_offset; subband_alloc++; } - ba = ba_code_tab[drmp3_bs_get_bits(bs, ba_bits)]; + ba = ba_code_tab[ma_dr_mp3_bs_get_bits(bs, ba_bits)]; sci->bitalloc[2*i] = ba; if (i < sci->stereo_bands) { - ba = ba_code_tab[drmp3_bs_get_bits(bs, ba_bits)]; + ba = ba_code_tab[ma_dr_mp3_bs_get_bits(bs, ba_bits)]; } sci->bitalloc[2*i + 1] = sci->stereo_bands ? ba : 0; } for (i = 0; i < 2*sci->total_bands; i++) { - sci->scfcod[i] = (drmp3_uint8)(sci->bitalloc[i] ? DRMP3_HDR_IS_LAYER_1(hdr) ? 2 : drmp3_bs_get_bits(bs, 2) : 6); + sci->scfcod[i] = (ma_uint8)(sci->bitalloc[i] ? MA_DR_MP3_HDR_IS_LAYER_1(hdr) ? 2 : ma_dr_mp3_bs_get_bits(bs, 2) : 6); } - drmp3_L12_read_scalefactors(bs, sci->bitalloc, sci->scfcod, sci->total_bands*2, sci->scf); + ma_dr_mp3_L12_read_scalefactors(bs, sci->bitalloc, sci->scfcod, sci->total_bands*2, sci->scf); for (i = sci->stereo_bands; i < sci->total_bands; i++) { sci->bitalloc[2*i + 1] = 0; } } -static int drmp3_L12_dequantize_granule(float *grbuf, drmp3_bs *bs, drmp3_L12_scale_info *sci, int group_size) +static int ma_dr_mp3_L12_dequantize_granule(float *grbuf, ma_dr_mp3_bs *bs, ma_dr_mp3_L12_scale_info *sci, int group_size) { int i, j, k, choff = 576; for (j = 0; j < 4; j++) @@ -87552,12 +90221,12 @@ static int drmp3_L12_dequantize_granule(float *grbuf, drmp3_bs *bs, drmp3_L12_sc int half = (1 << (ba - 1)) - 1; for (k = 0; k < group_size; k++) { - dst[k] = (float)((int)drmp3_bs_get_bits(bs, ba) - half); + dst[k] = (float)((int)ma_dr_mp3_bs_get_bits(bs, ba) - half); } } else { unsigned mod = (2 << (ba - 17)) + 1; - unsigned code = drmp3_bs_get_bits(bs, mod + 2 - (mod >> 3)); + unsigned code = ma_dr_mp3_bs_get_bits(bs, mod + 2 - (mod >> 3)); for (k = 0; k < group_size; k++, code /= mod) { dst[k] = (float)((int)(code % mod - mod/2)); @@ -87570,10 +90239,10 @@ static int drmp3_L12_dequantize_granule(float *grbuf, drmp3_bs *bs, drmp3_L12_sc } return group_size*4; } -static void drmp3_L12_apply_scf_384(drmp3_L12_scale_info *sci, const float *scf, float *dst) +static void ma_dr_mp3_L12_apply_scf_384(ma_dr_mp3_L12_scale_info *sci, const float *scf, float *dst) { int i, k; - DRMP3_COPY_MEMORY(dst + 576 + sci->stereo_bands*18, dst + sci->stereo_bands*18, (sci->total_bands - sci->stereo_bands)*18*sizeof(float)); + MA_DR_MP3_COPY_MEMORY(dst + 576 + sci->stereo_bands*18, dst + sci->stereo_bands*18, (sci->total_bands - sci->stereo_bands)*18*sizeof(float)); for (i = 0; i < sci->total_bands; i++, dst += 18, scf += 6) { for (k = 0; k < 12; k++) @@ -87584,9 +90253,9 @@ static void drmp3_L12_apply_scf_384(drmp3_L12_scale_info *sci, const float *scf, } } #endif -static int drmp3_L3_read_side_info(drmp3_bs *bs, drmp3_L3_gr_info *gr, const drmp3_uint8 *hdr) +static int ma_dr_mp3_L3_read_side_info(ma_dr_mp3_bs *bs, ma_dr_mp3_L3_gr_info *gr, const ma_uint8 *hdr) { - static const drmp3_uint8 g_scf_long[8][23] = { + static const ma_uint8 g_scf_long[8][23] = { { 6,6,6,6,6,6,8,10,12,14,16,20,24,28,32,38,46,52,60,68,58,54,0 }, { 12,12,12,12,12,12,16,20,24,28,32,40,48,56,64,76,90,2,2,2,2,2,0 }, { 6,6,6,6,6,6,8,10,12,14,16,20,24,28,32,38,46,52,60,68,58,54,0 }, @@ -87596,7 +90265,7 @@ static int drmp3_L3_read_side_info(drmp3_bs *bs, drmp3_L3_gr_info *gr, const drm { 4,4,4,4,4,4,6,6,6,8,10,12,16,18,22,28,34,40,46,54,54,192,0 }, { 4,4,4,4,4,4,6,6,8,10,12,16,20,24,30,38,46,56,68,84,102,26,0 } }; - static const drmp3_uint8 g_scf_short[8][40] = { + static const ma_uint8 g_scf_short[8][40] = { { 4,4,4,4,4,4,4,4,4,6,6,6,8,8,8,10,10,10,12,12,12,14,14,14,18,18,18,24,24,24,30,30,30,40,40,40,18,18,18,0 }, { 8,8,8,8,8,8,8,8,8,12,12,12,16,16,16,20,20,20,24,24,24,28,28,28,36,36,36,2,2,2,2,2,2,2,2,2,26,26,26,0 }, { 4,4,4,4,4,4,4,4,4,6,6,6,6,6,6,8,8,8,10,10,10,14,14,14,18,18,18,26,26,26,32,32,32,42,42,42,18,18,18,0 }, @@ -87606,7 +90275,7 @@ static int drmp3_L3_read_side_info(drmp3_bs *bs, drmp3_L3_gr_info *gr, const drm { 4,4,4,4,4,4,4,4,4,4,4,4,6,6,6,6,6,6,10,10,10,12,12,12,14,14,14,16,16,16,20,20,20,26,26,26,66,66,66,0 }, { 4,4,4,4,4,4,4,4,4,4,4,4,6,6,6,8,8,8,12,12,12,16,16,16,20,20,20,26,26,26,34,34,34,42,42,42,12,12,12,0 } }; - static const drmp3_uint8 g_scf_mixed[8][40] = { + static const ma_uint8 g_scf_mixed[8][40] = { { 6,6,6,6,6,6,6,6,6,8,8,8,10,10,10,12,12,12,14,14,14,18,18,18,24,24,24,30,30,30,40,40,40,18,18,18,0 }, { 12,12,12,4,4,4,8,8,8,12,12,12,16,16,16,20,20,20,24,24,24,28,28,28,36,36,36,2,2,2,2,2,2,2,2,2,26,26,26,0 }, { 6,6,6,6,6,6,6,6,6,6,6,6,8,8,8,10,10,10,14,14,14,18,18,18,26,26,26,32,32,32,42,42,42,18,18,18,0 }, @@ -87618,46 +90287,46 @@ static int drmp3_L3_read_side_info(drmp3_bs *bs, drmp3_L3_gr_info *gr, const drm }; unsigned tables, scfsi = 0; int main_data_begin, part_23_sum = 0; - int gr_count = DRMP3_HDR_IS_MONO(hdr) ? 1 : 2; - int sr_idx = DRMP3_HDR_GET_MY_SAMPLE_RATE(hdr); sr_idx -= (sr_idx != 0); - if (DRMP3_HDR_TEST_MPEG1(hdr)) + int gr_count = MA_DR_MP3_HDR_IS_MONO(hdr) ? 1 : 2; + int sr_idx = MA_DR_MP3_HDR_GET_MY_SAMPLE_RATE(hdr); sr_idx -= (sr_idx != 0); + if (MA_DR_MP3_HDR_TEST_MPEG1(hdr)) { gr_count *= 2; - main_data_begin = drmp3_bs_get_bits(bs, 9); - scfsi = drmp3_bs_get_bits(bs, 7 + gr_count); + main_data_begin = ma_dr_mp3_bs_get_bits(bs, 9); + scfsi = ma_dr_mp3_bs_get_bits(bs, 7 + gr_count); } else { - main_data_begin = drmp3_bs_get_bits(bs, 8 + gr_count) >> gr_count; + main_data_begin = ma_dr_mp3_bs_get_bits(bs, 8 + gr_count) >> gr_count; } do { - if (DRMP3_HDR_IS_MONO(hdr)) + if (MA_DR_MP3_HDR_IS_MONO(hdr)) { scfsi <<= 4; } - gr->part_23_length = (drmp3_uint16)drmp3_bs_get_bits(bs, 12); + gr->part_23_length = (ma_uint16)ma_dr_mp3_bs_get_bits(bs, 12); part_23_sum += gr->part_23_length; - gr->big_values = (drmp3_uint16)drmp3_bs_get_bits(bs, 9); + gr->big_values = (ma_uint16)ma_dr_mp3_bs_get_bits(bs, 9); if (gr->big_values > 288) { return -1; } - gr->global_gain = (drmp3_uint8)drmp3_bs_get_bits(bs, 8); - gr->scalefac_compress = (drmp3_uint16)drmp3_bs_get_bits(bs, DRMP3_HDR_TEST_MPEG1(hdr) ? 4 : 9); + gr->global_gain = (ma_uint8)ma_dr_mp3_bs_get_bits(bs, 8); + gr->scalefac_compress = (ma_uint16)ma_dr_mp3_bs_get_bits(bs, MA_DR_MP3_HDR_TEST_MPEG1(hdr) ? 4 : 9); gr->sfbtab = g_scf_long[sr_idx]; gr->n_long_sfb = 22; gr->n_short_sfb = 0; - if (drmp3_bs_get_bits(bs, 1)) + if (ma_dr_mp3_bs_get_bits(bs, 1)) { - gr->block_type = (drmp3_uint8)drmp3_bs_get_bits(bs, 2); + gr->block_type = (ma_uint8)ma_dr_mp3_bs_get_bits(bs, 2); if (!gr->block_type) { return -1; } - gr->mixed_block_flag = (drmp3_uint8)drmp3_bs_get_bits(bs, 1); + gr->mixed_block_flag = (ma_uint8)ma_dr_mp3_bs_get_bits(bs, 1); gr->region_count[0] = 7; gr->region_count[1] = 255; - if (gr->block_type == DRMP3_SHORT_BLOCK_TYPE) + if (gr->block_type == MA_DR_MP3_SHORT_BLOCK_TYPE) { scfsi &= 0x0F0F; if (!gr->mixed_block_flag) @@ -87669,31 +90338,31 @@ static int drmp3_L3_read_side_info(drmp3_bs *bs, drmp3_L3_gr_info *gr, const drm } else { gr->sfbtab = g_scf_mixed[sr_idx]; - gr->n_long_sfb = DRMP3_HDR_TEST_MPEG1(hdr) ? 8 : 6; + gr->n_long_sfb = MA_DR_MP3_HDR_TEST_MPEG1(hdr) ? 8 : 6; gr->n_short_sfb = 30; } } - tables = drmp3_bs_get_bits(bs, 10); + tables = ma_dr_mp3_bs_get_bits(bs, 10); tables <<= 5; - gr->subblock_gain[0] = (drmp3_uint8)drmp3_bs_get_bits(bs, 3); - gr->subblock_gain[1] = (drmp3_uint8)drmp3_bs_get_bits(bs, 3); - gr->subblock_gain[2] = (drmp3_uint8)drmp3_bs_get_bits(bs, 3); + gr->subblock_gain[0] = (ma_uint8)ma_dr_mp3_bs_get_bits(bs, 3); + gr->subblock_gain[1] = (ma_uint8)ma_dr_mp3_bs_get_bits(bs, 3); + gr->subblock_gain[2] = (ma_uint8)ma_dr_mp3_bs_get_bits(bs, 3); } else { gr->block_type = 0; gr->mixed_block_flag = 0; - tables = drmp3_bs_get_bits(bs, 15); - gr->region_count[0] = (drmp3_uint8)drmp3_bs_get_bits(bs, 4); - gr->region_count[1] = (drmp3_uint8)drmp3_bs_get_bits(bs, 3); + tables = ma_dr_mp3_bs_get_bits(bs, 15); + gr->region_count[0] = (ma_uint8)ma_dr_mp3_bs_get_bits(bs, 4); + gr->region_count[1] = (ma_uint8)ma_dr_mp3_bs_get_bits(bs, 3); gr->region_count[2] = 255; } - gr->table_select[0] = (drmp3_uint8)(tables >> 10); - gr->table_select[1] = (drmp3_uint8)((tables >> 5) & 31); - gr->table_select[2] = (drmp3_uint8)((tables) & 31); - gr->preflag = (drmp3_uint8)(DRMP3_HDR_TEST_MPEG1(hdr) ? drmp3_bs_get_bits(bs, 1) : (gr->scalefac_compress >= 500)); - gr->scalefac_scale = (drmp3_uint8)drmp3_bs_get_bits(bs, 1); - gr->count1_table = (drmp3_uint8)drmp3_bs_get_bits(bs, 1); - gr->scfsi = (drmp3_uint8)((scfsi >> 12) & 15); + gr->table_select[0] = (ma_uint8)(tables >> 10); + gr->table_select[1] = (ma_uint8)((tables >> 5) & 31); + gr->table_select[2] = (ma_uint8)((tables) & 31); + gr->preflag = (ma_uint8)(MA_DR_MP3_HDR_TEST_MPEG1(hdr) ? ma_dr_mp3_bs_get_bits(bs, 1) : (gr->scalefac_compress >= 500)); + gr->scalefac_scale = (ma_uint8)ma_dr_mp3_bs_get_bits(bs, 1); + gr->count1_table = (ma_uint8)ma_dr_mp3_bs_get_bits(bs, 1); + gr->scfsi = (ma_uint8)((scfsi >> 12) & 15); scfsi <<= 4; gr++; } while(--gr_count); @@ -87703,7 +90372,7 @@ static int drmp3_L3_read_side_info(drmp3_bs *bs, drmp3_L3_gr_info *gr, const drm } return main_data_begin; } -static void drmp3_L3_read_scalefactors(drmp3_uint8 *scf, drmp3_uint8 *ist_pos, const drmp3_uint8 *scf_size, const drmp3_uint8 *scf_count, drmp3_bs *bitbuf, int scfsi) +static void ma_dr_mp3_L3_read_scalefactors(ma_uint8 *scf, ma_uint8 *ist_pos, const ma_uint8 *scf_size, const ma_uint8 *scf_count, ma_dr_mp3_bs *bitbuf, int scfsi) { int i, k; for (i = 0; i < 4 && scf_count[i]; i++, scfsi *= 2) @@ -87711,22 +90380,22 @@ static void drmp3_L3_read_scalefactors(drmp3_uint8 *scf, drmp3_uint8 *ist_pos, c int cnt = scf_count[i]; if (scfsi & 8) { - DRMP3_COPY_MEMORY(scf, ist_pos, cnt); + MA_DR_MP3_COPY_MEMORY(scf, ist_pos, cnt); } else { int bits = scf_size[i]; if (!bits) { - DRMP3_ZERO_MEMORY(scf, cnt); - DRMP3_ZERO_MEMORY(ist_pos, cnt); + MA_DR_MP3_ZERO_MEMORY(scf, cnt); + MA_DR_MP3_ZERO_MEMORY(ist_pos, cnt); } else { int max_scf = (scfsi < 0) ? (1 << bits) - 1 : -1; for (k = 0; k < cnt; k++) { - int s = drmp3_bs_get_bits(bitbuf, bits); - ist_pos[k] = (drmp3_uint8)(s == max_scf ? -1 : s); - scf[k] = (drmp3_uint8)s; + int s = ma_dr_mp3_bs_get_bits(bitbuf, bits); + ist_pos[k] = (ma_uint8)(s == max_scf ? -1 : s); + scf[k] = (ma_uint8)s; } } } @@ -87735,86 +90404,86 @@ static void drmp3_L3_read_scalefactors(drmp3_uint8 *scf, drmp3_uint8 *ist_pos, c } scf[0] = scf[1] = scf[2] = 0; } -static float drmp3_L3_ldexp_q2(float y, int exp_q2) +static float ma_dr_mp3_L3_ldexp_q2(float y, int exp_q2) { static const float g_expfrac[4] = { 9.31322575e-10f,7.83145814e-10f,6.58544508e-10f,5.53767716e-10f }; int e; do { - e = DRMP3_MIN(30*4, exp_q2); + e = MA_DR_MP3_MIN(30*4, exp_q2); y *= g_expfrac[e & 3]*(1 << 30 >> (e >> 2)); } while ((exp_q2 -= e) > 0); return y; } -static void drmp3_L3_decode_scalefactors(const drmp3_uint8 *hdr, drmp3_uint8 *ist_pos, drmp3_bs *bs, const drmp3_L3_gr_info *gr, float *scf, int ch) +static void ma_dr_mp3_L3_decode_scalefactors(const ma_uint8 *hdr, ma_uint8 *ist_pos, ma_dr_mp3_bs *bs, const ma_dr_mp3_L3_gr_info *gr, float *scf, int ch) { - static const drmp3_uint8 g_scf_partitions[3][28] = { + static const ma_uint8 g_scf_partitions[3][28] = { { 6,5,5, 5,6,5,5,5,6,5, 7,3,11,10,0,0, 7, 7, 7,0, 6, 6,6,3, 8, 8,5,0 }, { 8,9,6,12,6,9,9,9,6,9,12,6,15,18,0,0, 6,15,12,0, 6,12,9,6, 6,18,9,0 }, { 9,9,6,12,9,9,9,9,9,9,12,6,18,18,0,0,12,12,12,0,12, 9,9,6,15,12,9,0 } }; - const drmp3_uint8 *scf_partition = g_scf_partitions[!!gr->n_short_sfb + !gr->n_long_sfb]; - drmp3_uint8 scf_size[4], iscf[40]; + const ma_uint8 *scf_partition = g_scf_partitions[!!gr->n_short_sfb + !gr->n_long_sfb]; + ma_uint8 scf_size[4], iscf[40]; int i, scf_shift = gr->scalefac_scale + 1, gain_exp, scfsi = gr->scfsi; float gain; - if (DRMP3_HDR_TEST_MPEG1(hdr)) + if (MA_DR_MP3_HDR_TEST_MPEG1(hdr)) { - static const drmp3_uint8 g_scfc_decode[16] = { 0,1,2,3, 12,5,6,7, 9,10,11,13, 14,15,18,19 }; + static const ma_uint8 g_scfc_decode[16] = { 0,1,2,3, 12,5,6,7, 9,10,11,13, 14,15,18,19 }; int part = g_scfc_decode[gr->scalefac_compress]; - scf_size[1] = scf_size[0] = (drmp3_uint8)(part >> 2); - scf_size[3] = scf_size[2] = (drmp3_uint8)(part & 3); + scf_size[1] = scf_size[0] = (ma_uint8)(part >> 2); + scf_size[3] = scf_size[2] = (ma_uint8)(part & 3); } else { - static const drmp3_uint8 g_mod[6*4] = { 5,5,4,4,5,5,4,1,4,3,1,1,5,6,6,1,4,4,4,1,4,3,1,1 }; - int k, modprod, sfc, ist = DRMP3_HDR_TEST_I_STEREO(hdr) && ch; + static const ma_uint8 g_mod[6*4] = { 5,5,4,4,5,5,4,1,4,3,1,1,5,6,6,1,4,4,4,1,4,3,1,1 }; + int k, modprod, sfc, ist = MA_DR_MP3_HDR_TEST_I_STEREO(hdr) && ch; sfc = gr->scalefac_compress >> ist; for (k = ist*3*4; sfc >= 0; sfc -= modprod, k += 4) { for (modprod = 1, i = 3; i >= 0; i--) { - scf_size[i] = (drmp3_uint8)(sfc / modprod % g_mod[k + i]); + scf_size[i] = (ma_uint8)(sfc / modprod % g_mod[k + i]); modprod *= g_mod[k + i]; } } scf_partition += k; scfsi = -16; } - drmp3_L3_read_scalefactors(iscf, ist_pos, scf_size, scf_partition, bs, scfsi); + ma_dr_mp3_L3_read_scalefactors(iscf, ist_pos, scf_size, scf_partition, bs, scfsi); if (gr->n_short_sfb) { int sh = 3 - scf_shift; for (i = 0; i < gr->n_short_sfb; i += 3) { - iscf[gr->n_long_sfb + i + 0] = (drmp3_uint8)(iscf[gr->n_long_sfb + i + 0] + (gr->subblock_gain[0] << sh)); - iscf[gr->n_long_sfb + i + 1] = (drmp3_uint8)(iscf[gr->n_long_sfb + i + 1] + (gr->subblock_gain[1] << sh)); - iscf[gr->n_long_sfb + i + 2] = (drmp3_uint8)(iscf[gr->n_long_sfb + i + 2] + (gr->subblock_gain[2] << sh)); + iscf[gr->n_long_sfb + i + 0] = (ma_uint8)(iscf[gr->n_long_sfb + i + 0] + (gr->subblock_gain[0] << sh)); + iscf[gr->n_long_sfb + i + 1] = (ma_uint8)(iscf[gr->n_long_sfb + i + 1] + (gr->subblock_gain[1] << sh)); + iscf[gr->n_long_sfb + i + 2] = (ma_uint8)(iscf[gr->n_long_sfb + i + 2] + (gr->subblock_gain[2] << sh)); } } else if (gr->preflag) { - static const drmp3_uint8 g_preamp[10] = { 1,1,1,1,2,2,3,3,3,2 }; + static const ma_uint8 g_preamp[10] = { 1,1,1,1,2,2,3,3,3,2 }; for (i = 0; i < 10; i++) { - iscf[11 + i] = (drmp3_uint8)(iscf[11 + i] + g_preamp[i]); + iscf[11 + i] = (ma_uint8)(iscf[11 + i] + g_preamp[i]); } } - gain_exp = gr->global_gain + DRMP3_BITS_DEQUANTIZER_OUT*4 - 210 - (DRMP3_HDR_IS_MS_STEREO(hdr) ? 2 : 0); - gain = drmp3_L3_ldexp_q2(1 << (DRMP3_MAX_SCFI/4), DRMP3_MAX_SCFI - gain_exp); + gain_exp = gr->global_gain + MA_DR_MP3_BITS_DEQUANTIZER_OUT*4 - 210 - (MA_DR_MP3_HDR_IS_MS_STEREO(hdr) ? 2 : 0); + gain = ma_dr_mp3_L3_ldexp_q2(1 << (MA_DR_MP3_MAX_SCFI/4), MA_DR_MP3_MAX_SCFI - gain_exp); for (i = 0; i < (int)(gr->n_long_sfb + gr->n_short_sfb); i++) { - scf[i] = drmp3_L3_ldexp_q2(gain, iscf[i] << scf_shift); + scf[i] = ma_dr_mp3_L3_ldexp_q2(gain, iscf[i] << scf_shift); } } -static const float g_drmp3_pow43[129 + 16] = { +static const float g_ma_dr_mp3_pow43[129 + 16] = { 0,-1,-2.519842f,-4.326749f,-6.349604f,-8.549880f,-10.902724f,-13.390518f,-16.000000f,-18.720754f,-21.544347f,-24.463781f,-27.473142f,-30.567351f,-33.741992f,-36.993181f, 0,1,2.519842f,4.326749f,6.349604f,8.549880f,10.902724f,13.390518f,16.000000f,18.720754f,21.544347f,24.463781f,27.473142f,30.567351f,33.741992f,36.993181f,40.317474f,43.711787f,47.173345f,50.699631f,54.288352f,57.937408f,61.644865f,65.408941f,69.227979f,73.100443f,77.024898f,81.000000f,85.024491f,89.097188f,93.216975f,97.382800f,101.593667f,105.848633f,110.146801f,114.487321f,118.869381f,123.292209f,127.755065f,132.257246f,136.798076f,141.376907f,145.993119f,150.646117f,155.335327f,160.060199f,164.820202f,169.614826f,174.443577f,179.305980f,184.201575f,189.129918f,194.090580f,199.083145f,204.107210f,209.162385f,214.248292f,219.364564f,224.510845f,229.686789f,234.892058f,240.126328f,245.389280f,250.680604f,256.000000f,261.347174f,266.721841f,272.123723f,277.552547f,283.008049f,288.489971f,293.998060f,299.532071f,305.091761f,310.676898f,316.287249f,321.922592f,327.582707f,333.267377f,338.976394f,344.709550f,350.466646f,356.247482f,362.051866f,367.879608f,373.730522f,379.604427f,385.501143f,391.420496f,397.362314f,403.326427f,409.312672f,415.320884f,421.350905f,427.402579f,433.475750f,439.570269f,445.685987f,451.822757f,457.980436f,464.158883f,470.357960f,476.577530f,482.817459f,489.077615f,495.357868f,501.658090f,507.978156f,514.317941f,520.677324f,527.056184f,533.454404f,539.871867f,546.308458f,552.764065f,559.238575f,565.731879f,572.243870f,578.774440f,585.323483f,591.890898f,598.476581f,605.080431f,611.702349f,618.342238f,625.000000f,631.675540f,638.368763f,645.079578f }; -static float drmp3_L3_pow_43(int x) +static float ma_dr_mp3_L3_pow_43(int x) { float frac; int sign, mult = 256; if (x < 129) { - return g_drmp3_pow43[16 + x]; + return g_ma_dr_mp3_pow43[16 + x]; } if (x < 1024) { @@ -87823,11 +90492,11 @@ static float drmp3_L3_pow_43(int x) } sign = 2*x & 64; frac = (float)((x & 63) - sign) / ((x & ~63) + sign); - return g_drmp3_pow43[16 + ((x + sign) >> 6)]*(1.f + frac*((4.f/3) + frac*(2.f/9)))*mult; + return g_ma_dr_mp3_pow43[16 + ((x + sign) >> 6)]*(1.f + frac*((4.f/3) + frac*(2.f/9)))*mult; } -static void drmp3_L3_huffman(float *dst, drmp3_bs *bs, const drmp3_L3_gr_info *gr_info, const float *scf, int layer3gr_limit) +static void ma_dr_mp3_L3_huffman(float *dst, ma_dr_mp3_bs *bs, const ma_dr_mp3_L3_gr_info *gr_info, const float *scf, int layer3gr_limit) { - static const drmp3_int16 tabs[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + static const ma_int16 tabs[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 785,785,785,785,784,784,784,784,513,513,513,513,513,513,513,513,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256, -255,1313,1298,1282,785,785,785,785,784,784,784,784,769,769,769,769,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,290,288, -255,1313,1298,1282,769,769,769,769,529,529,529,529,529,529,529,529,528,528,528,528,528,528,528,528,512,512,512,512,512,512,512,512,290,288, @@ -87843,61 +90512,61 @@ static void drmp3_L3_huffman(float *dst, drmp3_bs *bs, const drmp3_L3_gr_info *g -250,-1179,-1579,-1836,-1996,-2124,-2253,-2333,-2413,-2477,-2542,-2574,-2607,-2622,-2655,1314,1313,1298,1312,1282,785,785,785,785,1040,1040,1025,1025,768,768,768,768,-766,-798,-830,-862,-895,-911,-927,-943,-959,-975,-991,-1007,-1023,-1039,-1055,-1070,1724,1647,-1103,-1119,1631,1767,1662,1738,1708,1723,-1135,1780,1615,1779,1599,1677,1646,1778,1583,-1151,1777,1567,1737,1692,1765,1722,1707,1630,1751,1661,1764,1614,1736,1676,1763,1750,1645,1598,1721,1691,1762,1706,1582,1761,1566,-1167,1749,1629,767,766,751,765,494,494,735,764,719,749,734,763,447,447,748,718,477,506,431,491,446,476,461,505,415,430,475,445,504,399,460,489,414,503,383,474,429,459,502,502,746,752,488,398,501,473,413,472,486,271,480,270,-1439,-1455,1357,-1471,-1487,-1503,1341,1325,-1519,1489,1463,1403,1309,-1535,1372,1448,1418,1476,1356,1462,1387,-1551,1475,1340,1447,1402,1386,-1567,1068,1068,1474,1461,455,380,468,440,395,425,410,454,364,467,466,464,453,269,409,448,268,432,1371,1473,1432,1417,1308,1460,1355,1446,1459,1431,1083,1083,1401,1416,1458,1445,1067,1067,1370,1457,1051,1051,1291,1430,1385,1444,1354,1415,1400,1443,1082,1082,1173,1113,1186,1066,1185,1050,-1967,1158,1128,1172,1097,1171,1081,-1983,1157,1112,416,266,375,400,1170,1142,1127,1065,793,793,1169,1033,1156,1096,1141,1111,1155,1080,1126,1140,898,898,808,808,897,897,792,792,1095,1152,1032,1125,1110,1139,1079,1124,882,807,838,881,853,791,-2319,867,368,263,822,852,837,866,806,865,-2399,851,352,262,534,534,821,836,594,594,549,549,593,593,533,533,848,773,579,579,564,578,548,563,276,276,577,576,306,291,516,560,305,305,275,259, -251,-892,-2058,-2620,-2828,-2957,-3023,-3039,1041,1041,1040,1040,769,769,769,769,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,256,-511,-527,-543,-559,1530,-575,-591,1528,1527,1407,1526,1391,1023,1023,1023,1023,1525,1375,1268,1268,1103,1103,1087,1087,1039,1039,1523,-604,815,815,815,815,510,495,509,479,508,463,507,447,431,505,415,399,-734,-782,1262,-815,1259,1244,-831,1258,1228,-847,-863,1196,-879,1253,987,987,748,-767,493,493,462,477,414,414,686,669,478,446,461,445,474,429,487,458,412,471,1266,1264,1009,1009,799,799,-1019,-1276,-1452,-1581,-1677,-1757,-1821,-1886,-1933,-1997,1257,1257,1483,1468,1512,1422,1497,1406,1467,1496,1421,1510,1134,1134,1225,1225,1466,1451,1374,1405,1252,1252,1358,1480,1164,1164,1251,1251,1238,1238,1389,1465,-1407,1054,1101,-1423,1207,-1439,830,830,1248,1038,1237,1117,1223,1148,1236,1208,411,426,395,410,379,269,1193,1222,1132,1235,1221,1116,976,976,1192,1162,1177,1220,1131,1191,963,963,-1647,961,780,-1663,558,558,994,993,437,408,393,407,829,978,813,797,947,-1743,721,721,377,392,844,950,828,890,706,706,812,859,796,960,948,843,934,874,571,571,-1919,690,555,689,421,346,539,539,944,779,918,873,932,842,903,888,570,570,931,917,674,674,-2575,1562,-2591,1609,-2607,1654,1322,1322,1441,1441,1696,1546,1683,1593,1669,1624,1426,1426,1321,1321,1639,1680,1425,1425,1305,1305,1545,1668,1608,1623,1667,1592,1638,1666,1320,1320,1652,1607,1409,1409,1304,1304,1288,1288,1664,1637,1395,1395,1335,1335,1622,1636,1394,1394,1319,1319,1606,1621,1392,1392,1137,1137,1137,1137,345,390,360,375,404,373,1047,-2751,-2767,-2783,1062,1121,1046,-2799,1077,-2815,1106,1061,789,789,1105,1104,263,355,310,340,325,354,352,262,339,324,1091,1076,1029,1090,1060,1075,833,833,788,788,1088,1028,818,818,803,803,561,561,531,531,816,771,546,546,289,274,288,258, -253,-317,-381,-446,-478,-509,1279,1279,-811,-1179,-1451,-1756,-1900,-2028,-2189,-2253,-2333,-2414,-2445,-2511,-2526,1313,1298,-2559,1041,1041,1040,1040,1025,1025,1024,1024,1022,1007,1021,991,1020,975,1019,959,687,687,1018,1017,671,671,655,655,1016,1015,639,639,758,758,623,623,757,607,756,591,755,575,754,559,543,543,1009,783,-575,-621,-685,-749,496,-590,750,749,734,748,974,989,1003,958,988,973,1002,942,987,957,972,1001,926,986,941,971,956,1000,910,985,925,999,894,970,-1071,-1087,-1102,1390,-1135,1436,1509,1451,1374,-1151,1405,1358,1480,1420,-1167,1507,1494,1389,1342,1465,1435,1450,1326,1505,1310,1493,1373,1479,1404,1492,1464,1419,428,443,472,397,736,526,464,464,486,457,442,471,484,482,1357,1449,1434,1478,1388,1491,1341,1490,1325,1489,1463,1403,1309,1477,1372,1448,1418,1433,1476,1356,1462,1387,-1439,1475,1340,1447,1402,1474,1324,1461,1371,1473,269,448,1432,1417,1308,1460,-1711,1459,-1727,1441,1099,1099,1446,1386,1431,1401,-1743,1289,1083,1083,1160,1160,1458,1445,1067,1067,1370,1457,1307,1430,1129,1129,1098,1098,268,432,267,416,266,400,-1887,1144,1187,1082,1173,1113,1186,1066,1050,1158,1128,1143,1172,1097,1171,1081,420,391,1157,1112,1170,1142,1127,1065,1169,1049,1156,1096,1141,1111,1155,1080,1126,1154,1064,1153,1140,1095,1048,-2159,1125,1110,1137,-2175,823,823,1139,1138,807,807,384,264,368,263,868,838,853,791,867,822,852,837,866,806,865,790,-2319,851,821,836,352,262,850,805,849,-2399,533,533,835,820,336,261,578,548,563,577,532,532,832,772,562,562,547,547,305,275,560,515,290,290,288,258 }; - static const drmp3_uint8 tab32[] = { 130,162,193,209,44,28,76,140,9,9,9,9,9,9,9,9,190,254,222,238,126,94,157,157,109,61,173,205}; - static const drmp3_uint8 tab33[] = { 252,236,220,204,188,172,156,140,124,108,92,76,60,44,28,12 }; - static const drmp3_int16 tabindex[2*16] = { 0,32,64,98,0,132,180,218,292,364,426,538,648,746,0,1126,1460,1460,1460,1460,1460,1460,1460,1460,1842,1842,1842,1842,1842,1842,1842,1842 }; - static const drmp3_uint8 g_linbits[] = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,3,4,6,8,10,13,4,5,6,7,8,9,11,13 }; -#define DRMP3_PEEK_BITS(n) (bs_cache >> (32 - n)) -#define DRMP3_FLUSH_BITS(n) { bs_cache <<= (n); bs_sh += (n); } -#define DRMP3_CHECK_BITS while (bs_sh >= 0) { bs_cache |= (drmp3_uint32)*bs_next_ptr++ << bs_sh; bs_sh -= 8; } -#define DRMP3_BSPOS ((bs_next_ptr - bs->buf)*8 - 24 + bs_sh) + static const ma_uint8 tab32[] = { 130,162,193,209,44,28,76,140,9,9,9,9,9,9,9,9,190,254,222,238,126,94,157,157,109,61,173,205}; + static const ma_uint8 tab33[] = { 252,236,220,204,188,172,156,140,124,108,92,76,60,44,28,12 }; + static const ma_int16 tabindex[2*16] = { 0,32,64,98,0,132,180,218,292,364,426,538,648,746,0,1126,1460,1460,1460,1460,1460,1460,1460,1460,1842,1842,1842,1842,1842,1842,1842,1842 }; + static const ma_uint8 g_linbits[] = { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,3,4,6,8,10,13,4,5,6,7,8,9,11,13 }; +#define MA_DR_MP3_PEEK_BITS(n) (bs_cache >> (32 - (n))) +#define MA_DR_MP3_FLUSH_BITS(n) { bs_cache <<= (n); bs_sh += (n); } +#define MA_DR_MP3_CHECK_BITS while (bs_sh >= 0) { bs_cache |= (ma_uint32)*bs_next_ptr++ << bs_sh; bs_sh -= 8; } +#define MA_DR_MP3_BSPOS ((bs_next_ptr - bs->buf)*8 - 24 + bs_sh) float one = 0.0f; int ireg = 0, big_val_cnt = gr_info->big_values; - const drmp3_uint8 *sfb = gr_info->sfbtab; - const drmp3_uint8 *bs_next_ptr = bs->buf + bs->pos/8; - drmp3_uint32 bs_cache = (((bs_next_ptr[0]*256u + bs_next_ptr[1])*256u + bs_next_ptr[2])*256u + bs_next_ptr[3]) << (bs->pos & 7); + const ma_uint8 *sfb = gr_info->sfbtab; + const ma_uint8 *bs_next_ptr = bs->buf + bs->pos/8; + ma_uint32 bs_cache = (((bs_next_ptr[0]*256u + bs_next_ptr[1])*256u + bs_next_ptr[2])*256u + bs_next_ptr[3]) << (bs->pos & 7); int pairs_to_decode, np, bs_sh = (bs->pos & 7) - 8; bs_next_ptr += 4; while (big_val_cnt > 0) { int tab_num = gr_info->table_select[ireg]; int sfb_cnt = gr_info->region_count[ireg++]; - const drmp3_int16 *codebook = tabs + tabindex[tab_num]; + const ma_int16 *codebook = tabs + tabindex[tab_num]; int linbits = g_linbits[tab_num]; if (linbits) { do { np = *sfb++ / 2; - pairs_to_decode = DRMP3_MIN(big_val_cnt, np); + pairs_to_decode = MA_DR_MP3_MIN(big_val_cnt, np); one = *scf++; do { int j, w = 5; - int leaf = codebook[DRMP3_PEEK_BITS(w)]; + int leaf = codebook[MA_DR_MP3_PEEK_BITS(w)]; while (leaf < 0) { - DRMP3_FLUSH_BITS(w); + MA_DR_MP3_FLUSH_BITS(w); w = leaf & 7; - leaf = codebook[DRMP3_PEEK_BITS(w) - (leaf >> 3)]; + leaf = codebook[MA_DR_MP3_PEEK_BITS(w) - (leaf >> 3)]; } - DRMP3_FLUSH_BITS(leaf >> 8); + MA_DR_MP3_FLUSH_BITS(leaf >> 8); for (j = 0; j < 2; j++, dst++, leaf >>= 4) { int lsb = leaf & 0x0F; if (lsb == 15) { - lsb += DRMP3_PEEK_BITS(linbits); - DRMP3_FLUSH_BITS(linbits); - DRMP3_CHECK_BITS; - *dst = one*drmp3_L3_pow_43(lsb)*((drmp3_int32)bs_cache < 0 ? -1: 1); + lsb += MA_DR_MP3_PEEK_BITS(linbits); + MA_DR_MP3_FLUSH_BITS(linbits); + MA_DR_MP3_CHECK_BITS; + *dst = one*ma_dr_mp3_L3_pow_43(lsb)*((ma_int32)bs_cache < 0 ? -1: 1); } else { - *dst = g_drmp3_pow43[16 + lsb - 16*(bs_cache >> 31)]*one; + *dst = g_ma_dr_mp3_pow43[16 + lsb - 16*(bs_cache >> 31)]*one; } - DRMP3_FLUSH_BITS(lsb ? 1 : 0); + MA_DR_MP3_FLUSH_BITS(lsb ? 1 : 0); } - DRMP3_CHECK_BITS; + MA_DR_MP3_CHECK_BITS; } while (--pairs_to_decode); } while ((big_val_cnt -= np) > 0 && --sfb_cnt >= 0); } else @@ -87905,68 +90574,68 @@ static void drmp3_L3_huffman(float *dst, drmp3_bs *bs, const drmp3_L3_gr_info *g do { np = *sfb++ / 2; - pairs_to_decode = DRMP3_MIN(big_val_cnt, np); + pairs_to_decode = MA_DR_MP3_MIN(big_val_cnt, np); one = *scf++; do { int j, w = 5; - int leaf = codebook[DRMP3_PEEK_BITS(w)]; + int leaf = codebook[MA_DR_MP3_PEEK_BITS(w)]; while (leaf < 0) { - DRMP3_FLUSH_BITS(w); + MA_DR_MP3_FLUSH_BITS(w); w = leaf & 7; - leaf = codebook[DRMP3_PEEK_BITS(w) - (leaf >> 3)]; + leaf = codebook[MA_DR_MP3_PEEK_BITS(w) - (leaf >> 3)]; } - DRMP3_FLUSH_BITS(leaf >> 8); + MA_DR_MP3_FLUSH_BITS(leaf >> 8); for (j = 0; j < 2; j++, dst++, leaf >>= 4) { int lsb = leaf & 0x0F; - *dst = g_drmp3_pow43[16 + lsb - 16*(bs_cache >> 31)]*one; - DRMP3_FLUSH_BITS(lsb ? 1 : 0); + *dst = g_ma_dr_mp3_pow43[16 + lsb - 16*(bs_cache >> 31)]*one; + MA_DR_MP3_FLUSH_BITS(lsb ? 1 : 0); } - DRMP3_CHECK_BITS; + MA_DR_MP3_CHECK_BITS; } while (--pairs_to_decode); } while ((big_val_cnt -= np) > 0 && --sfb_cnt >= 0); } } for (np = 1 - big_val_cnt;; dst += 4) { - const drmp3_uint8 *codebook_count1 = (gr_info->count1_table) ? tab33 : tab32; - int leaf = codebook_count1[DRMP3_PEEK_BITS(4)]; + const ma_uint8 *codebook_count1 = (gr_info->count1_table) ? tab33 : tab32; + int leaf = codebook_count1[MA_DR_MP3_PEEK_BITS(4)]; if (!(leaf & 8)) { leaf = codebook_count1[(leaf >> 3) + (bs_cache << 4 >> (32 - (leaf & 3)))]; } - DRMP3_FLUSH_BITS(leaf & 7); - if (DRMP3_BSPOS > layer3gr_limit) + MA_DR_MP3_FLUSH_BITS(leaf & 7); + if (MA_DR_MP3_BSPOS > layer3gr_limit) { break; } -#define DRMP3_RELOAD_SCALEFACTOR if (!--np) { np = *sfb++/2; if (!np) break; one = *scf++; } -#define DRMP3_DEQ_COUNT1(s) if (leaf & (128 >> s)) { dst[s] = ((drmp3_int32)bs_cache < 0) ? -one : one; DRMP3_FLUSH_BITS(1) } - DRMP3_RELOAD_SCALEFACTOR; - DRMP3_DEQ_COUNT1(0); - DRMP3_DEQ_COUNT1(1); - DRMP3_RELOAD_SCALEFACTOR; - DRMP3_DEQ_COUNT1(2); - DRMP3_DEQ_COUNT1(3); - DRMP3_CHECK_BITS; +#define MA_DR_MP3_RELOAD_SCALEFACTOR if (!--np) { np = *sfb++/2; if (!np) break; one = *scf++; } +#define MA_DR_MP3_DEQ_COUNT1(s) if (leaf & (128 >> s)) { dst[s] = ((ma_int32)bs_cache < 0) ? -one : one; MA_DR_MP3_FLUSH_BITS(1) } + MA_DR_MP3_RELOAD_SCALEFACTOR; + MA_DR_MP3_DEQ_COUNT1(0); + MA_DR_MP3_DEQ_COUNT1(1); + MA_DR_MP3_RELOAD_SCALEFACTOR; + MA_DR_MP3_DEQ_COUNT1(2); + MA_DR_MP3_DEQ_COUNT1(3); + MA_DR_MP3_CHECK_BITS; } bs->pos = layer3gr_limit; } -static void drmp3_L3_midside_stereo(float *left, int n) +static void ma_dr_mp3_L3_midside_stereo(float *left, int n) { int i = 0; float *right = left + 576; -#if DRMP3_HAVE_SIMD - if (drmp3_have_simd()) +#if MA_DR_MP3_HAVE_SIMD + if (ma_dr_mp3_have_simd()) { for (; i < n - 3; i += 4) { - drmp3_f4 vl = DRMP3_VLD(left + i); - drmp3_f4 vr = DRMP3_VLD(right + i); - DRMP3_VSTORE(left + i, DRMP3_VADD(vl, vr)); - DRMP3_VSTORE(right + i, DRMP3_VSUB(vl, vr)); + ma_dr_mp3_f4 vl = MA_DR_MP3_VLD(left + i); + ma_dr_mp3_f4 vr = MA_DR_MP3_VLD(right + i); + MA_DR_MP3_VSTORE(left + i, MA_DR_MP3_VADD(vl, vr)); + MA_DR_MP3_VSTORE(right + i, MA_DR_MP3_VSUB(vl, vr)); } #ifdef __GNUC__ if (__builtin_constant_p(n % 4 == 0) && n % 4 == 0) @@ -87982,7 +90651,7 @@ static void drmp3_L3_midside_stereo(float *left, int n) right[i] = a - b; } } -static void drmp3_L3_intensity_stereo_band(float *left, int n, float kl, float kr) +static void ma_dr_mp3_L3_intensity_stereo_band(float *left, int n, float kl, float kr) { int i; for (i = 0; i < n; i++) @@ -87991,7 +90660,7 @@ static void drmp3_L3_intensity_stereo_band(float *left, int n, float kl, float k left[i] = left[i]*kl; } } -static void drmp3_L3_stereo_top_band(const float *right, const drmp3_uint8 *sfb, int nbands, int max_band[3]) +static void ma_dr_mp3_L3_stereo_top_band(const float *right, const ma_uint8 *sfb, int nbands, int max_band[3]) { int i, k; max_band[0] = max_band[1] = max_band[2] = -1; @@ -88008,57 +90677,57 @@ static void drmp3_L3_stereo_top_band(const float *right, const drmp3_uint8 *sfb, right += sfb[i]; } } -static void drmp3_L3_stereo_process(float *left, const drmp3_uint8 *ist_pos, const drmp3_uint8 *sfb, const drmp3_uint8 *hdr, int max_band[3], int mpeg2_sh) +static void ma_dr_mp3_L3_stereo_process(float *left, const ma_uint8 *ist_pos, const ma_uint8 *sfb, const ma_uint8 *hdr, int max_band[3], int mpeg2_sh) { static const float g_pan[7*2] = { 0,1,0.21132487f,0.78867513f,0.36602540f,0.63397460f,0.5f,0.5f,0.63397460f,0.36602540f,0.78867513f,0.21132487f,1,0 }; - unsigned i, max_pos = DRMP3_HDR_TEST_MPEG1(hdr) ? 7 : 64; + unsigned i, max_pos = MA_DR_MP3_HDR_TEST_MPEG1(hdr) ? 7 : 64; for (i = 0; sfb[i]; i++) { unsigned ipos = ist_pos[i]; if ((int)i > max_band[i % 3] && ipos < max_pos) { - float kl, kr, s = DRMP3_HDR_TEST_MS_STEREO(hdr) ? 1.41421356f : 1; - if (DRMP3_HDR_TEST_MPEG1(hdr)) + float kl, kr, s = MA_DR_MP3_HDR_TEST_MS_STEREO(hdr) ? 1.41421356f : 1; + if (MA_DR_MP3_HDR_TEST_MPEG1(hdr)) { kl = g_pan[2*ipos]; kr = g_pan[2*ipos + 1]; } else { kl = 1; - kr = drmp3_L3_ldexp_q2(1, (ipos + 1) >> 1 << mpeg2_sh); + kr = ma_dr_mp3_L3_ldexp_q2(1, (ipos + 1) >> 1 << mpeg2_sh); if (ipos & 1) { kl = kr; kr = 1; } } - drmp3_L3_intensity_stereo_band(left, sfb[i], kl*s, kr*s); - } else if (DRMP3_HDR_TEST_MS_STEREO(hdr)) + ma_dr_mp3_L3_intensity_stereo_band(left, sfb[i], kl*s, kr*s); + } else if (MA_DR_MP3_HDR_TEST_MS_STEREO(hdr)) { - drmp3_L3_midside_stereo(left, sfb[i]); + ma_dr_mp3_L3_midside_stereo(left, sfb[i]); } left += sfb[i]; } } -static void drmp3_L3_intensity_stereo(float *left, drmp3_uint8 *ist_pos, const drmp3_L3_gr_info *gr, const drmp3_uint8 *hdr) +static void ma_dr_mp3_L3_intensity_stereo(float *left, ma_uint8 *ist_pos, const ma_dr_mp3_L3_gr_info *gr, const ma_uint8 *hdr) { int max_band[3], n_sfb = gr->n_long_sfb + gr->n_short_sfb; int i, max_blocks = gr->n_short_sfb ? 3 : 1; - drmp3_L3_stereo_top_band(left + 576, gr->sfbtab, n_sfb, max_band); + ma_dr_mp3_L3_stereo_top_band(left + 576, gr->sfbtab, n_sfb, max_band); if (gr->n_long_sfb) { - max_band[0] = max_band[1] = max_band[2] = DRMP3_MAX(DRMP3_MAX(max_band[0], max_band[1]), max_band[2]); + max_band[0] = max_band[1] = max_band[2] = MA_DR_MP3_MAX(MA_DR_MP3_MAX(max_band[0], max_band[1]), max_band[2]); } for (i = 0; i < max_blocks; i++) { - int default_pos = DRMP3_HDR_TEST_MPEG1(hdr) ? 3 : 0; + int default_pos = MA_DR_MP3_HDR_TEST_MPEG1(hdr) ? 3 : 0; int itop = n_sfb - max_blocks + i; int prev = itop - max_blocks; - ist_pos[itop] = (drmp3_uint8)(max_band[i] >= prev ? default_pos : ist_pos[prev]); + ist_pos[itop] = (ma_uint8)(max_band[i] >= prev ? default_pos : ist_pos[prev]); } - drmp3_L3_stereo_process(left, ist_pos, gr->sfbtab, hdr, max_band, gr[1].scalefac_compress & 1); + ma_dr_mp3_L3_stereo_process(left, ist_pos, gr->sfbtab, hdr, max_band, gr[1].scalefac_compress & 1); } -static void drmp3_L3_reorder(float *grbuf, float *scratch, const drmp3_uint8 *sfb) +static void ma_dr_mp3_L3_reorder(float *grbuf, float *scratch, const ma_uint8 *sfb) { int i, len; float *src = grbuf, *dst = scratch; @@ -88071,9 +90740,9 @@ static void drmp3_L3_reorder(float *grbuf, float *scratch, const drmp3_uint8 *sf *dst++ = src[2*len]; } } - DRMP3_COPY_MEMORY(grbuf, scratch, (dst - scratch)*sizeof(float)); + MA_DR_MP3_COPY_MEMORY(grbuf, scratch, (dst - scratch)*sizeof(float)); } -static void drmp3_L3_antialias(float *grbuf, int nbands) +static void ma_dr_mp3_L3_antialias(float *grbuf, int nbands) { static const float g_aa[2][8] = { {0.85749293f,0.88174200f,0.94962865f,0.98331459f,0.99551782f,0.99916056f,0.99989920f,0.99999316f}, @@ -88082,20 +90751,20 @@ static void drmp3_L3_antialias(float *grbuf, int nbands) for (; nbands > 0; nbands--, grbuf += 18) { int i = 0; -#if DRMP3_HAVE_SIMD - if (drmp3_have_simd()) for (; i < 8; i += 4) +#if MA_DR_MP3_HAVE_SIMD + if (ma_dr_mp3_have_simd()) for (; i < 8; i += 4) { - drmp3_f4 vu = DRMP3_VLD(grbuf + 18 + i); - drmp3_f4 vd = DRMP3_VLD(grbuf + 14 - i); - drmp3_f4 vc0 = DRMP3_VLD(g_aa[0] + i); - drmp3_f4 vc1 = DRMP3_VLD(g_aa[1] + i); - vd = DRMP3_VREV(vd); - DRMP3_VSTORE(grbuf + 18 + i, DRMP3_VSUB(DRMP3_VMUL(vu, vc0), DRMP3_VMUL(vd, vc1))); - vd = DRMP3_VADD(DRMP3_VMUL(vu, vc1), DRMP3_VMUL(vd, vc0)); - DRMP3_VSTORE(grbuf + 14 - i, DRMP3_VREV(vd)); + ma_dr_mp3_f4 vu = MA_DR_MP3_VLD(grbuf + 18 + i); + ma_dr_mp3_f4 vd = MA_DR_MP3_VLD(grbuf + 14 - i); + ma_dr_mp3_f4 vc0 = MA_DR_MP3_VLD(g_aa[0] + i); + ma_dr_mp3_f4 vc1 = MA_DR_MP3_VLD(g_aa[1] + i); + vd = MA_DR_MP3_VREV(vd); + MA_DR_MP3_VSTORE(grbuf + 18 + i, MA_DR_MP3_VSUB(MA_DR_MP3_VMUL(vu, vc0), MA_DR_MP3_VMUL(vd, vc1))); + vd = MA_DR_MP3_VADD(MA_DR_MP3_VMUL(vu, vc1), MA_DR_MP3_VMUL(vd, vc0)); + MA_DR_MP3_VSTORE(grbuf + 14 - i, MA_DR_MP3_VREV(vd)); } #endif -#ifndef DR_MP3_ONLY_SIMD +#ifndef MA_DR_MP3_ONLY_SIMD for(; i < 8; i++) { float u = grbuf[18 + i]; @@ -88106,7 +90775,7 @@ static void drmp3_L3_antialias(float *grbuf, int nbands) #endif } } -static void drmp3_L3_dct3_9(float *y) +static void ma_dr_mp3_L3_dct3_9(float *y) { float s0, s1, s2, s3, s4, s5, s6, s7, s8, t0, t2, t4; s0 = y[0]; s2 = y[2]; s4 = y[4]; s6 = y[6]; s8 = y[8]; @@ -88139,7 +90808,7 @@ static void drmp3_L3_dct3_9(float *y) y[7] = s2 - s1; y[8] = s4 + s7; } -static void drmp3_L3_imdct36(float *grbuf, float *overlap, const float *window, int nbands) +static void ma_dr_mp3_L3_imdct36(float *grbuf, float *overlap, const float *window, int nbands) { int i, j; static const float g_twid9[18] = { @@ -88157,28 +90826,28 @@ static void drmp3_L3_imdct36(float *grbuf, float *overlap, const float *window, si[7 - 2*i] = grbuf[4*i + 4] - grbuf[4*i + 3]; co[2 + 2*i] = -(grbuf[4*i + 3] + grbuf[4*i + 4]); } - drmp3_L3_dct3_9(co); - drmp3_L3_dct3_9(si); + ma_dr_mp3_L3_dct3_9(co); + ma_dr_mp3_L3_dct3_9(si); si[1] = -si[1]; si[3] = -si[3]; si[5] = -si[5]; si[7] = -si[7]; i = 0; -#if DRMP3_HAVE_SIMD - if (drmp3_have_simd()) for (; i < 8; i += 4) +#if MA_DR_MP3_HAVE_SIMD + if (ma_dr_mp3_have_simd()) for (; i < 8; i += 4) { - drmp3_f4 vovl = DRMP3_VLD(overlap + i); - drmp3_f4 vc = DRMP3_VLD(co + i); - drmp3_f4 vs = DRMP3_VLD(si + i); - drmp3_f4 vr0 = DRMP3_VLD(g_twid9 + i); - drmp3_f4 vr1 = DRMP3_VLD(g_twid9 + 9 + i); - drmp3_f4 vw0 = DRMP3_VLD(window + i); - drmp3_f4 vw1 = DRMP3_VLD(window + 9 + i); - drmp3_f4 vsum = DRMP3_VADD(DRMP3_VMUL(vc, vr1), DRMP3_VMUL(vs, vr0)); - DRMP3_VSTORE(overlap + i, DRMP3_VSUB(DRMP3_VMUL(vc, vr0), DRMP3_VMUL(vs, vr1))); - DRMP3_VSTORE(grbuf + i, DRMP3_VSUB(DRMP3_VMUL(vovl, vw0), DRMP3_VMUL(vsum, vw1))); - vsum = DRMP3_VADD(DRMP3_VMUL(vovl, vw1), DRMP3_VMUL(vsum, vw0)); - DRMP3_VSTORE(grbuf + 14 - i, DRMP3_VREV(vsum)); + ma_dr_mp3_f4 vovl = MA_DR_MP3_VLD(overlap + i); + ma_dr_mp3_f4 vc = MA_DR_MP3_VLD(co + i); + ma_dr_mp3_f4 vs = MA_DR_MP3_VLD(si + i); + ma_dr_mp3_f4 vr0 = MA_DR_MP3_VLD(g_twid9 + i); + ma_dr_mp3_f4 vr1 = MA_DR_MP3_VLD(g_twid9 + 9 + i); + ma_dr_mp3_f4 vw0 = MA_DR_MP3_VLD(window + i); + ma_dr_mp3_f4 vw1 = MA_DR_MP3_VLD(window + 9 + i); + ma_dr_mp3_f4 vsum = MA_DR_MP3_VADD(MA_DR_MP3_VMUL(vc, vr1), MA_DR_MP3_VMUL(vs, vr0)); + MA_DR_MP3_VSTORE(overlap + i, MA_DR_MP3_VSUB(MA_DR_MP3_VMUL(vc, vr0), MA_DR_MP3_VMUL(vs, vr1))); + MA_DR_MP3_VSTORE(grbuf + i, MA_DR_MP3_VSUB(MA_DR_MP3_VMUL(vovl, vw0), MA_DR_MP3_VMUL(vsum, vw1))); + vsum = MA_DR_MP3_VADD(MA_DR_MP3_VMUL(vovl, vw1), MA_DR_MP3_VMUL(vsum, vw0)); + MA_DR_MP3_VSTORE(grbuf + 14 - i, MA_DR_MP3_VREV(vsum)); } #endif for (; i < 9; i++) @@ -88191,7 +90860,7 @@ static void drmp3_L3_imdct36(float *grbuf, float *overlap, const float *window, } } } -static void drmp3_L3_idct3(float x0, float x1, float x2, float *dst) +static void ma_dr_mp3_L3_idct3(float x0, float x1, float x2, float *dst) { float m1 = x1*0.86602540f; float a1 = x0 - x2*0.5f; @@ -88199,13 +90868,13 @@ static void drmp3_L3_idct3(float x0, float x1, float x2, float *dst) dst[0] = a1 + m1; dst[2] = a1 - m1; } -static void drmp3_L3_imdct12(float *x, float *dst, float *overlap) +static void ma_dr_mp3_L3_imdct12(float *x, float *dst, float *overlap) { static const float g_twid3[6] = { 0.79335334f,0.92387953f,0.99144486f, 0.60876143f,0.38268343f,0.13052619f }; float co[3], si[3]; int i; - drmp3_L3_idct3(-x[0], x[6] + x[3], x[12] + x[9], co); - drmp3_L3_idct3(x[15], x[12] - x[9], x[6] - x[3], si); + ma_dr_mp3_L3_idct3(-x[0], x[6] + x[3], x[12] + x[9], co); + ma_dr_mp3_L3_idct3(x[15], x[12] - x[9], x[6] - x[3], si); si[1] = -si[1]; for (i = 0; i < 3; i++) { @@ -88216,26 +90885,26 @@ static void drmp3_L3_imdct12(float *x, float *dst, float *overlap) dst[5 - i] = ovl*g_twid3[5 - i] + sum*g_twid3[2 - i]; } } -static void drmp3_L3_imdct_short(float *grbuf, float *overlap, int nbands) +static void ma_dr_mp3_L3_imdct_short(float *grbuf, float *overlap, int nbands) { for (;nbands > 0; nbands--, overlap += 9, grbuf += 18) { float tmp[18]; - DRMP3_COPY_MEMORY(tmp, grbuf, sizeof(tmp)); - DRMP3_COPY_MEMORY(grbuf, overlap, 6*sizeof(float)); - drmp3_L3_imdct12(tmp, grbuf + 6, overlap + 6); - drmp3_L3_imdct12(tmp + 1, grbuf + 12, overlap + 6); - drmp3_L3_imdct12(tmp + 2, overlap, overlap + 6); + MA_DR_MP3_COPY_MEMORY(tmp, grbuf, sizeof(tmp)); + MA_DR_MP3_COPY_MEMORY(grbuf, overlap, 6*sizeof(float)); + ma_dr_mp3_L3_imdct12(tmp, grbuf + 6, overlap + 6); + ma_dr_mp3_L3_imdct12(tmp + 1, grbuf + 12, overlap + 6); + ma_dr_mp3_L3_imdct12(tmp + 2, overlap, overlap + 6); } } -static void drmp3_L3_change_sign(float *grbuf) +static void ma_dr_mp3_L3_change_sign(float *grbuf) { int b, i; for (b = 0, grbuf += 18; b < 32; b += 2, grbuf += 36) for (i = 1; i < 18; i += 2) grbuf[i] = -grbuf[i]; } -static void drmp3_L3_imdct_gr(float *grbuf, float *overlap, unsigned block_type, unsigned n_long_bands) +static void ma_dr_mp3_L3_imdct_gr(float *grbuf, float *overlap, unsigned block_type, unsigned n_long_bands) { static const float g_mdct_window[2][18] = { { 0.99904822f,0.99144486f,0.97629601f,0.95371695f,0.92387953f,0.88701083f,0.84339145f,0.79335334f,0.73727734f,0.04361938f,0.13052619f,0.21643961f,0.30070580f,0.38268343f,0.46174861f,0.53729961f,0.60876143f,0.67559021f }, @@ -88243,159 +90912,159 @@ static void drmp3_L3_imdct_gr(float *grbuf, float *overlap, unsigned block_type, }; if (n_long_bands) { - drmp3_L3_imdct36(grbuf, overlap, g_mdct_window[0], n_long_bands); + ma_dr_mp3_L3_imdct36(grbuf, overlap, g_mdct_window[0], n_long_bands); grbuf += 18*n_long_bands; overlap += 9*n_long_bands; } - if (block_type == DRMP3_SHORT_BLOCK_TYPE) - drmp3_L3_imdct_short(grbuf, overlap, 32 - n_long_bands); + if (block_type == MA_DR_MP3_SHORT_BLOCK_TYPE) + ma_dr_mp3_L3_imdct_short(grbuf, overlap, 32 - n_long_bands); else - drmp3_L3_imdct36(grbuf, overlap, g_mdct_window[block_type == DRMP3_STOP_BLOCK_TYPE], 32 - n_long_bands); + ma_dr_mp3_L3_imdct36(grbuf, overlap, g_mdct_window[block_type == MA_DR_MP3_STOP_BLOCK_TYPE], 32 - n_long_bands); } -static void drmp3_L3_save_reservoir(drmp3dec *h, drmp3dec_scratch *s) +static void ma_dr_mp3_L3_save_reservoir(ma_dr_mp3dec *h, ma_dr_mp3dec_scratch *s) { int pos = (s->bs.pos + 7)/8u; int remains = s->bs.limit/8u - pos; - if (remains > DRMP3_MAX_BITRESERVOIR_BYTES) + if (remains > MA_DR_MP3_MAX_BITRESERVOIR_BYTES) { - pos += remains - DRMP3_MAX_BITRESERVOIR_BYTES; - remains = DRMP3_MAX_BITRESERVOIR_BYTES; + pos += remains - MA_DR_MP3_MAX_BITRESERVOIR_BYTES; + remains = MA_DR_MP3_MAX_BITRESERVOIR_BYTES; } if (remains > 0) { - DRMP3_MOVE_MEMORY(h->reserv_buf, s->maindata + pos, remains); + MA_DR_MP3_MOVE_MEMORY(h->reserv_buf, s->maindata + pos, remains); } h->reserv = remains; } -static int drmp3_L3_restore_reservoir(drmp3dec *h, drmp3_bs *bs, drmp3dec_scratch *s, int main_data_begin) +static int ma_dr_mp3_L3_restore_reservoir(ma_dr_mp3dec *h, ma_dr_mp3_bs *bs, ma_dr_mp3dec_scratch *s, int main_data_begin) { int frame_bytes = (bs->limit - bs->pos)/8; - int bytes_have = DRMP3_MIN(h->reserv, main_data_begin); - DRMP3_COPY_MEMORY(s->maindata, h->reserv_buf + DRMP3_MAX(0, h->reserv - main_data_begin), DRMP3_MIN(h->reserv, main_data_begin)); - DRMP3_COPY_MEMORY(s->maindata + bytes_have, bs->buf + bs->pos/8, frame_bytes); - drmp3_bs_init(&s->bs, s->maindata, bytes_have + frame_bytes); + int bytes_have = MA_DR_MP3_MIN(h->reserv, main_data_begin); + MA_DR_MP3_COPY_MEMORY(s->maindata, h->reserv_buf + MA_DR_MP3_MAX(0, h->reserv - main_data_begin), MA_DR_MP3_MIN(h->reserv, main_data_begin)); + MA_DR_MP3_COPY_MEMORY(s->maindata + bytes_have, bs->buf + bs->pos/8, frame_bytes); + ma_dr_mp3_bs_init(&s->bs, s->maindata, bytes_have + frame_bytes); return h->reserv >= main_data_begin; } -static void drmp3_L3_decode(drmp3dec *h, drmp3dec_scratch *s, drmp3_L3_gr_info *gr_info, int nch) +static void ma_dr_mp3_L3_decode(ma_dr_mp3dec *h, ma_dr_mp3dec_scratch *s, ma_dr_mp3_L3_gr_info *gr_info, int nch) { int ch; for (ch = 0; ch < nch; ch++) { int layer3gr_limit = s->bs.pos + gr_info[ch].part_23_length; - drmp3_L3_decode_scalefactors(h->header, s->ist_pos[ch], &s->bs, gr_info + ch, s->scf, ch); - drmp3_L3_huffman(s->grbuf[ch], &s->bs, gr_info + ch, s->scf, layer3gr_limit); + ma_dr_mp3_L3_decode_scalefactors(h->header, s->ist_pos[ch], &s->bs, gr_info + ch, s->scf, ch); + ma_dr_mp3_L3_huffman(s->grbuf[ch], &s->bs, gr_info + ch, s->scf, layer3gr_limit); } - if (DRMP3_HDR_TEST_I_STEREO(h->header)) + if (MA_DR_MP3_HDR_TEST_I_STEREO(h->header)) { - drmp3_L3_intensity_stereo(s->grbuf[0], s->ist_pos[1], gr_info, h->header); - } else if (DRMP3_HDR_IS_MS_STEREO(h->header)) + ma_dr_mp3_L3_intensity_stereo(s->grbuf[0], s->ist_pos[1], gr_info, h->header); + } else if (MA_DR_MP3_HDR_IS_MS_STEREO(h->header)) { - drmp3_L3_midside_stereo(s->grbuf[0], 576); + ma_dr_mp3_L3_midside_stereo(s->grbuf[0], 576); } for (ch = 0; ch < nch; ch++, gr_info++) { int aa_bands = 31; - int n_long_bands = (gr_info->mixed_block_flag ? 2 : 0) << (int)(DRMP3_HDR_GET_MY_SAMPLE_RATE(h->header) == 2); + int n_long_bands = (gr_info->mixed_block_flag ? 2 : 0) << (int)(MA_DR_MP3_HDR_GET_MY_SAMPLE_RATE(h->header) == 2); if (gr_info->n_short_sfb) { aa_bands = n_long_bands - 1; - drmp3_L3_reorder(s->grbuf[ch] + n_long_bands*18, s->syn[0], gr_info->sfbtab + gr_info->n_long_sfb); + ma_dr_mp3_L3_reorder(s->grbuf[ch] + n_long_bands*18, s->syn[0], gr_info->sfbtab + gr_info->n_long_sfb); } - drmp3_L3_antialias(s->grbuf[ch], aa_bands); - drmp3_L3_imdct_gr(s->grbuf[ch], h->mdct_overlap[ch], gr_info->block_type, n_long_bands); - drmp3_L3_change_sign(s->grbuf[ch]); + ma_dr_mp3_L3_antialias(s->grbuf[ch], aa_bands); + ma_dr_mp3_L3_imdct_gr(s->grbuf[ch], h->mdct_overlap[ch], gr_info->block_type, n_long_bands); + ma_dr_mp3_L3_change_sign(s->grbuf[ch]); } } -static void drmp3d_DCT_II(float *grbuf, int n) +static void ma_dr_mp3d_DCT_II(float *grbuf, int n) { static const float g_sec[24] = { 10.19000816f,0.50060302f,0.50241929f,3.40760851f,0.50547093f,0.52249861f,2.05778098f,0.51544732f,0.56694406f,1.48416460f,0.53104258f,0.64682180f,1.16943991f,0.55310392f,0.78815460f,0.97256821f,0.58293498f,1.06067765f,0.83934963f,0.62250412f,1.72244716f,0.74453628f,0.67480832f,5.10114861f }; int i, k = 0; -#if DRMP3_HAVE_SIMD - if (drmp3_have_simd()) for (; k < n; k += 4) +#if MA_DR_MP3_HAVE_SIMD + if (ma_dr_mp3_have_simd()) for (; k < n; k += 4) { - drmp3_f4 t[4][8], *x; + ma_dr_mp3_f4 t[4][8], *x; float *y = grbuf + k; for (x = t[0], i = 0; i < 8; i++, x++) { - drmp3_f4 x0 = DRMP3_VLD(&y[i*18]); - drmp3_f4 x1 = DRMP3_VLD(&y[(15 - i)*18]); - drmp3_f4 x2 = DRMP3_VLD(&y[(16 + i)*18]); - drmp3_f4 x3 = DRMP3_VLD(&y[(31 - i)*18]); - drmp3_f4 t0 = DRMP3_VADD(x0, x3); - drmp3_f4 t1 = DRMP3_VADD(x1, x2); - drmp3_f4 t2 = DRMP3_VMUL_S(DRMP3_VSUB(x1, x2), g_sec[3*i + 0]); - drmp3_f4 t3 = DRMP3_VMUL_S(DRMP3_VSUB(x0, x3), g_sec[3*i + 1]); - x[0] = DRMP3_VADD(t0, t1); - x[8] = DRMP3_VMUL_S(DRMP3_VSUB(t0, t1), g_sec[3*i + 2]); - x[16] = DRMP3_VADD(t3, t2); - x[24] = DRMP3_VMUL_S(DRMP3_VSUB(t3, t2), g_sec[3*i + 2]); + ma_dr_mp3_f4 x0 = MA_DR_MP3_VLD(&y[i*18]); + ma_dr_mp3_f4 x1 = MA_DR_MP3_VLD(&y[(15 - i)*18]); + ma_dr_mp3_f4 x2 = MA_DR_MP3_VLD(&y[(16 + i)*18]); + ma_dr_mp3_f4 x3 = MA_DR_MP3_VLD(&y[(31 - i)*18]); + ma_dr_mp3_f4 t0 = MA_DR_MP3_VADD(x0, x3); + ma_dr_mp3_f4 t1 = MA_DR_MP3_VADD(x1, x2); + ma_dr_mp3_f4 t2 = MA_DR_MP3_VMUL_S(MA_DR_MP3_VSUB(x1, x2), g_sec[3*i + 0]); + ma_dr_mp3_f4 t3 = MA_DR_MP3_VMUL_S(MA_DR_MP3_VSUB(x0, x3), g_sec[3*i + 1]); + x[0] = MA_DR_MP3_VADD(t0, t1); + x[8] = MA_DR_MP3_VMUL_S(MA_DR_MP3_VSUB(t0, t1), g_sec[3*i + 2]); + x[16] = MA_DR_MP3_VADD(t3, t2); + x[24] = MA_DR_MP3_VMUL_S(MA_DR_MP3_VSUB(t3, t2), g_sec[3*i + 2]); } for (x = t[0], i = 0; i < 4; i++, x += 8) { - drmp3_f4 x0 = x[0], x1 = x[1], x2 = x[2], x3 = x[3], x4 = x[4], x5 = x[5], x6 = x[6], x7 = x[7], xt; - xt = DRMP3_VSUB(x0, x7); x0 = DRMP3_VADD(x0, x7); - x7 = DRMP3_VSUB(x1, x6); x1 = DRMP3_VADD(x1, x6); - x6 = DRMP3_VSUB(x2, x5); x2 = DRMP3_VADD(x2, x5); - x5 = DRMP3_VSUB(x3, x4); x3 = DRMP3_VADD(x3, x4); - x4 = DRMP3_VSUB(x0, x3); x0 = DRMP3_VADD(x0, x3); - x3 = DRMP3_VSUB(x1, x2); x1 = DRMP3_VADD(x1, x2); - x[0] = DRMP3_VADD(x0, x1); - x[4] = DRMP3_VMUL_S(DRMP3_VSUB(x0, x1), 0.70710677f); - x5 = DRMP3_VADD(x5, x6); - x6 = DRMP3_VMUL_S(DRMP3_VADD(x6, x7), 0.70710677f); - x7 = DRMP3_VADD(x7, xt); - x3 = DRMP3_VMUL_S(DRMP3_VADD(x3, x4), 0.70710677f); - x5 = DRMP3_VSUB(x5, DRMP3_VMUL_S(x7, 0.198912367f)); - x7 = DRMP3_VADD(x7, DRMP3_VMUL_S(x5, 0.382683432f)); - x5 = DRMP3_VSUB(x5, DRMP3_VMUL_S(x7, 0.198912367f)); - x0 = DRMP3_VSUB(xt, x6); xt = DRMP3_VADD(xt, x6); - x[1] = DRMP3_VMUL_S(DRMP3_VADD(xt, x7), 0.50979561f); - x[2] = DRMP3_VMUL_S(DRMP3_VADD(x4, x3), 0.54119611f); - x[3] = DRMP3_VMUL_S(DRMP3_VSUB(x0, x5), 0.60134488f); - x[5] = DRMP3_VMUL_S(DRMP3_VADD(x0, x5), 0.89997619f); - x[6] = DRMP3_VMUL_S(DRMP3_VSUB(x4, x3), 1.30656302f); - x[7] = DRMP3_VMUL_S(DRMP3_VSUB(xt, x7), 2.56291556f); + ma_dr_mp3_f4 x0 = x[0], x1 = x[1], x2 = x[2], x3 = x[3], x4 = x[4], x5 = x[5], x6 = x[6], x7 = x[7], xt; + xt = MA_DR_MP3_VSUB(x0, x7); x0 = MA_DR_MP3_VADD(x0, x7); + x7 = MA_DR_MP3_VSUB(x1, x6); x1 = MA_DR_MP3_VADD(x1, x6); + x6 = MA_DR_MP3_VSUB(x2, x5); x2 = MA_DR_MP3_VADD(x2, x5); + x5 = MA_DR_MP3_VSUB(x3, x4); x3 = MA_DR_MP3_VADD(x3, x4); + x4 = MA_DR_MP3_VSUB(x0, x3); x0 = MA_DR_MP3_VADD(x0, x3); + x3 = MA_DR_MP3_VSUB(x1, x2); x1 = MA_DR_MP3_VADD(x1, x2); + x[0] = MA_DR_MP3_VADD(x0, x1); + x[4] = MA_DR_MP3_VMUL_S(MA_DR_MP3_VSUB(x0, x1), 0.70710677f); + x5 = MA_DR_MP3_VADD(x5, x6); + x6 = MA_DR_MP3_VMUL_S(MA_DR_MP3_VADD(x6, x7), 0.70710677f); + x7 = MA_DR_MP3_VADD(x7, xt); + x3 = MA_DR_MP3_VMUL_S(MA_DR_MP3_VADD(x3, x4), 0.70710677f); + x5 = MA_DR_MP3_VSUB(x5, MA_DR_MP3_VMUL_S(x7, 0.198912367f)); + x7 = MA_DR_MP3_VADD(x7, MA_DR_MP3_VMUL_S(x5, 0.382683432f)); + x5 = MA_DR_MP3_VSUB(x5, MA_DR_MP3_VMUL_S(x7, 0.198912367f)); + x0 = MA_DR_MP3_VSUB(xt, x6); xt = MA_DR_MP3_VADD(xt, x6); + x[1] = MA_DR_MP3_VMUL_S(MA_DR_MP3_VADD(xt, x7), 0.50979561f); + x[2] = MA_DR_MP3_VMUL_S(MA_DR_MP3_VADD(x4, x3), 0.54119611f); + x[3] = MA_DR_MP3_VMUL_S(MA_DR_MP3_VSUB(x0, x5), 0.60134488f); + x[5] = MA_DR_MP3_VMUL_S(MA_DR_MP3_VADD(x0, x5), 0.89997619f); + x[6] = MA_DR_MP3_VMUL_S(MA_DR_MP3_VSUB(x4, x3), 1.30656302f); + x[7] = MA_DR_MP3_VMUL_S(MA_DR_MP3_VSUB(xt, x7), 2.56291556f); } if (k > n - 3) { -#if DRMP3_HAVE_SSE -#define DRMP3_VSAVE2(i, v) _mm_storel_pi((__m64 *)(void*)&y[i*18], v) +#if MA_DR_MP3_HAVE_SSE +#define MA_DR_MP3_VSAVE2(i, v) _mm_storel_pi((__m64 *)(void*)&y[i*18], v) #else -#define DRMP3_VSAVE2(i, v) vst1_f32((float32_t *)&y[i*18], vget_low_f32(v)) +#define MA_DR_MP3_VSAVE2(i, v) vst1_f32((float32_t *)&y[(i)*18], vget_low_f32(v)) #endif for (i = 0; i < 7; i++, y += 4*18) { - drmp3_f4 s = DRMP3_VADD(t[3][i], t[3][i + 1]); - DRMP3_VSAVE2(0, t[0][i]); - DRMP3_VSAVE2(1, DRMP3_VADD(t[2][i], s)); - DRMP3_VSAVE2(2, DRMP3_VADD(t[1][i], t[1][i + 1])); - DRMP3_VSAVE2(3, DRMP3_VADD(t[2][1 + i], s)); + ma_dr_mp3_f4 s = MA_DR_MP3_VADD(t[3][i], t[3][i + 1]); + MA_DR_MP3_VSAVE2(0, t[0][i]); + MA_DR_MP3_VSAVE2(1, MA_DR_MP3_VADD(t[2][i], s)); + MA_DR_MP3_VSAVE2(2, MA_DR_MP3_VADD(t[1][i], t[1][i + 1])); + MA_DR_MP3_VSAVE2(3, MA_DR_MP3_VADD(t[2][1 + i], s)); } - DRMP3_VSAVE2(0, t[0][7]); - DRMP3_VSAVE2(1, DRMP3_VADD(t[2][7], t[3][7])); - DRMP3_VSAVE2(2, t[1][7]); - DRMP3_VSAVE2(3, t[3][7]); + MA_DR_MP3_VSAVE2(0, t[0][7]); + MA_DR_MP3_VSAVE2(1, MA_DR_MP3_VADD(t[2][7], t[3][7])); + MA_DR_MP3_VSAVE2(2, t[1][7]); + MA_DR_MP3_VSAVE2(3, t[3][7]); } else { -#define DRMP3_VSAVE4(i, v) DRMP3_VSTORE(&y[i*18], v) +#define MA_DR_MP3_VSAVE4(i, v) MA_DR_MP3_VSTORE(&y[(i)*18], v) for (i = 0; i < 7; i++, y += 4*18) { - drmp3_f4 s = DRMP3_VADD(t[3][i], t[3][i + 1]); - DRMP3_VSAVE4(0, t[0][i]); - DRMP3_VSAVE4(1, DRMP3_VADD(t[2][i], s)); - DRMP3_VSAVE4(2, DRMP3_VADD(t[1][i], t[1][i + 1])); - DRMP3_VSAVE4(3, DRMP3_VADD(t[2][1 + i], s)); + ma_dr_mp3_f4 s = MA_DR_MP3_VADD(t[3][i], t[3][i + 1]); + MA_DR_MP3_VSAVE4(0, t[0][i]); + MA_DR_MP3_VSAVE4(1, MA_DR_MP3_VADD(t[2][i], s)); + MA_DR_MP3_VSAVE4(2, MA_DR_MP3_VADD(t[1][i], t[1][i + 1])); + MA_DR_MP3_VSAVE4(3, MA_DR_MP3_VADD(t[2][1 + i], s)); } - DRMP3_VSAVE4(0, t[0][7]); - DRMP3_VSAVE4(1, DRMP3_VADD(t[2][7], t[3][7])); - DRMP3_VSAVE4(2, t[1][7]); - DRMP3_VSAVE4(3, t[3][7]); + MA_DR_MP3_VSAVE4(0, t[0][7]); + MA_DR_MP3_VSAVE4(1, MA_DR_MP3_VADD(t[2][7], t[3][7])); + MA_DR_MP3_VSAVE4(2, t[1][7]); + MA_DR_MP3_VSAVE4(3, t[3][7]); } } else #endif -#ifdef DR_MP3_ONLY_SIMD +#ifdef MA_DR_MP3_ONLY_SIMD {} #else for (; k < n; k++) @@ -88456,31 +91125,31 @@ static void drmp3d_DCT_II(float *grbuf, int n) } #endif } -#ifndef DR_MP3_FLOAT_OUTPUT -typedef drmp3_int16 drmp3d_sample_t; -static drmp3_int16 drmp3d_scale_pcm(float sample) +#ifndef MA_DR_MP3_FLOAT_OUTPUT +typedef ma_int16 ma_dr_mp3d_sample_t; +static ma_int16 ma_dr_mp3d_scale_pcm(float sample) { - drmp3_int16 s; -#if DRMP3_HAVE_ARMV6 - drmp3_int32 s32 = (drmp3_int32)(sample + .5f); + ma_int16 s; +#if MA_DR_MP3_HAVE_ARMV6 + ma_int32 s32 = (ma_int32)(sample + .5f); s32 -= (s32 < 0); - s = (drmp3_int16)drmp3_clip_int16_arm(s32); + s = (ma_int16)ma_dr_mp3_clip_int16_arm(s32); #else - if (sample >= 32766.5) return (drmp3_int16) 32767; - if (sample <= -32767.5) return (drmp3_int16)-32768; - s = (drmp3_int16)(sample + .5f); + if (sample >= 32766.5) return (ma_int16) 32767; + if (sample <= -32767.5) return (ma_int16)-32768; + s = (ma_int16)(sample + .5f); s -= (s < 0); #endif return s; } #else -typedef float drmp3d_sample_t; -static float drmp3d_scale_pcm(float sample) +typedef float ma_dr_mp3d_sample_t; +static float ma_dr_mp3d_scale_pcm(float sample) { return sample*(1.f/32768.f); } #endif -static void drmp3d_synth_pair(drmp3d_sample_t *pcm, int nch, const float *z) +static void ma_dr_mp3d_synth_pair(ma_dr_mp3d_sample_t *pcm, int nch, const float *z) { float a; a = (z[14*64] - z[ 0]) * 29; @@ -88491,7 +91160,7 @@ static void drmp3d_synth_pair(drmp3d_sample_t *pcm, int nch, const float *z) a += (z[ 5*64] + z[ 9*64]) * 6574; a += (z[ 8*64] - z[ 6*64]) * 37489; a += z[ 7*64] * 75038; - pcm[0] = drmp3d_scale_pcm(a); + pcm[0] = ma_dr_mp3d_scale_pcm(a); z += 2; a = z[14*64] * 104; a += z[12*64] * 1567; @@ -88501,13 +91170,13 @@ static void drmp3d_synth_pair(drmp3d_sample_t *pcm, int nch, const float *z) a += z[ 4*64] * -45; a += z[ 2*64] * 146; a += z[ 0*64] * -5; - pcm[16*nch] = drmp3d_scale_pcm(a); + pcm[16*nch] = ma_dr_mp3d_scale_pcm(a); } -static void drmp3d_synth(float *xl, drmp3d_sample_t *dstl, int nch, float *lins) +static void ma_dr_mp3d_synth(float *xl, ma_dr_mp3d_sample_t *dstl, int nch, float *lins) { int i; float *xr = xl + 576*(nch - 1); - drmp3d_sample_t *dstr = dstl + (nch - 1); + ma_dr_mp3d_sample_t *dstr = dstl + (nch - 1); static const float g_win[] = { -1,26,-31,208,218,401,-519,2063,2000,4788,-5517,7134,5959,35640,-39336,74992, -1,24,-35,202,222,347,-581,2080,1952,4425,-5879,7640,5288,33791,-41176,74856, @@ -88535,18 +91204,18 @@ static void drmp3d_synth(float *xl, drmp3d_sample_t *dstl, int nch, float *lins) zlin[4*31 + 1] = xr[1 + 18*16]; zlin[4*31 + 2] = xl[1]; zlin[4*31 + 3] = xr[1]; - drmp3d_synth_pair(dstr, nch, lins + 4*15 + 1); - drmp3d_synth_pair(dstr + 32*nch, nch, lins + 4*15 + 64 + 1); - drmp3d_synth_pair(dstl, nch, lins + 4*15); - drmp3d_synth_pair(dstl + 32*nch, nch, lins + 4*15 + 64); -#if DRMP3_HAVE_SIMD - if (drmp3_have_simd()) for (i = 14; i >= 0; i--) + ma_dr_mp3d_synth_pair(dstr, nch, lins + 4*15 + 1); + ma_dr_mp3d_synth_pair(dstr + 32*nch, nch, lins + 4*15 + 64 + 1); + ma_dr_mp3d_synth_pair(dstl, nch, lins + 4*15); + ma_dr_mp3d_synth_pair(dstl + 32*nch, nch, lins + 4*15 + 64); +#if MA_DR_MP3_HAVE_SIMD + if (ma_dr_mp3_have_simd()) for (i = 14; i >= 0; i--) { -#define DRMP3_VLOAD(k) drmp3_f4 w0 = DRMP3_VSET(*w++); drmp3_f4 w1 = DRMP3_VSET(*w++); drmp3_f4 vz = DRMP3_VLD(&zlin[4*i - 64*k]); drmp3_f4 vy = DRMP3_VLD(&zlin[4*i - 64*(15 - k)]); -#define DRMP3_V0(k) { DRMP3_VLOAD(k) b = DRMP3_VADD(DRMP3_VMUL(vz, w1), DRMP3_VMUL(vy, w0)) ; a = DRMP3_VSUB(DRMP3_VMUL(vz, w0), DRMP3_VMUL(vy, w1)); } -#define DRMP3_V1(k) { DRMP3_VLOAD(k) b = DRMP3_VADD(b, DRMP3_VADD(DRMP3_VMUL(vz, w1), DRMP3_VMUL(vy, w0))); a = DRMP3_VADD(a, DRMP3_VSUB(DRMP3_VMUL(vz, w0), DRMP3_VMUL(vy, w1))); } -#define DRMP3_V2(k) { DRMP3_VLOAD(k) b = DRMP3_VADD(b, DRMP3_VADD(DRMP3_VMUL(vz, w1), DRMP3_VMUL(vy, w0))); a = DRMP3_VADD(a, DRMP3_VSUB(DRMP3_VMUL(vy, w1), DRMP3_VMUL(vz, w0))); } - drmp3_f4 a, b; +#define MA_DR_MP3_VLOAD(k) ma_dr_mp3_f4 w0 = MA_DR_MP3_VSET(*w++); ma_dr_mp3_f4 w1 = MA_DR_MP3_VSET(*w++); ma_dr_mp3_f4 vz = MA_DR_MP3_VLD(&zlin[4*i - 64*k]); ma_dr_mp3_f4 vy = MA_DR_MP3_VLD(&zlin[4*i - 64*(15 - k)]); +#define MA_DR_MP3_V0(k) { MA_DR_MP3_VLOAD(k) b = MA_DR_MP3_VADD(MA_DR_MP3_VMUL(vz, w1), MA_DR_MP3_VMUL(vy, w0)) ; a = MA_DR_MP3_VSUB(MA_DR_MP3_VMUL(vz, w0), MA_DR_MP3_VMUL(vy, w1)); } +#define MA_DR_MP3_V1(k) { MA_DR_MP3_VLOAD(k) b = MA_DR_MP3_VADD(b, MA_DR_MP3_VADD(MA_DR_MP3_VMUL(vz, w1), MA_DR_MP3_VMUL(vy, w0))); a = MA_DR_MP3_VADD(a, MA_DR_MP3_VSUB(MA_DR_MP3_VMUL(vz, w0), MA_DR_MP3_VMUL(vy, w1))); } +#define MA_DR_MP3_V2(k) { MA_DR_MP3_VLOAD(k) b = MA_DR_MP3_VADD(b, MA_DR_MP3_VADD(MA_DR_MP3_VMUL(vz, w1), MA_DR_MP3_VMUL(vy, w0))); a = MA_DR_MP3_VADD(a, MA_DR_MP3_VSUB(MA_DR_MP3_VMUL(vy, w1), MA_DR_MP3_VMUL(vz, w0))); } + ma_dr_mp3_f4 a, b; zlin[4*i] = xl[18*(31 - i)]; zlin[4*i + 1] = xr[18*(31 - i)]; zlin[4*i + 2] = xl[1 + 18*(31 - i)]; @@ -88555,28 +91224,28 @@ static void drmp3d_synth(float *xl, drmp3d_sample_t *dstl, int nch, float *lins) zlin[4*i + 64 + 1] = xr[1 + 18*(1 + i)]; zlin[4*i - 64 + 2] = xl[18*(1 + i)]; zlin[4*i - 64 + 3] = xr[18*(1 + i)]; - DRMP3_V0(0) DRMP3_V2(1) DRMP3_V1(2) DRMP3_V2(3) DRMP3_V1(4) DRMP3_V2(5) DRMP3_V1(6) DRMP3_V2(7) + MA_DR_MP3_V0(0) MA_DR_MP3_V2(1) MA_DR_MP3_V1(2) MA_DR_MP3_V2(3) MA_DR_MP3_V1(4) MA_DR_MP3_V2(5) MA_DR_MP3_V1(6) MA_DR_MP3_V2(7) { -#ifndef DR_MP3_FLOAT_OUTPUT -#if DRMP3_HAVE_SSE - static const drmp3_f4 g_max = { 32767.0f, 32767.0f, 32767.0f, 32767.0f }; - static const drmp3_f4 g_min = { -32768.0f, -32768.0f, -32768.0f, -32768.0f }; +#ifndef MA_DR_MP3_FLOAT_OUTPUT +#if MA_DR_MP3_HAVE_SSE + static const ma_dr_mp3_f4 g_max = { 32767.0f, 32767.0f, 32767.0f, 32767.0f }; + static const ma_dr_mp3_f4 g_min = { -32768.0f, -32768.0f, -32768.0f, -32768.0f }; __m128i pcm8 = _mm_packs_epi32(_mm_cvtps_epi32(_mm_max_ps(_mm_min_ps(a, g_max), g_min)), _mm_cvtps_epi32(_mm_max_ps(_mm_min_ps(b, g_max), g_min))); - dstr[(15 - i)*nch] = (drmp3_int16)_mm_extract_epi16(pcm8, 1); - dstr[(17 + i)*nch] = (drmp3_int16)_mm_extract_epi16(pcm8, 5); - dstl[(15 - i)*nch] = (drmp3_int16)_mm_extract_epi16(pcm8, 0); - dstl[(17 + i)*nch] = (drmp3_int16)_mm_extract_epi16(pcm8, 4); - dstr[(47 - i)*nch] = (drmp3_int16)_mm_extract_epi16(pcm8, 3); - dstr[(49 + i)*nch] = (drmp3_int16)_mm_extract_epi16(pcm8, 7); - dstl[(47 - i)*nch] = (drmp3_int16)_mm_extract_epi16(pcm8, 2); - dstl[(49 + i)*nch] = (drmp3_int16)_mm_extract_epi16(pcm8, 6); + dstr[(15 - i)*nch] = (ma_int16)_mm_extract_epi16(pcm8, 1); + dstr[(17 + i)*nch] = (ma_int16)_mm_extract_epi16(pcm8, 5); + dstl[(15 - i)*nch] = (ma_int16)_mm_extract_epi16(pcm8, 0); + dstl[(17 + i)*nch] = (ma_int16)_mm_extract_epi16(pcm8, 4); + dstr[(47 - i)*nch] = (ma_int16)_mm_extract_epi16(pcm8, 3); + dstr[(49 + i)*nch] = (ma_int16)_mm_extract_epi16(pcm8, 7); + dstl[(47 - i)*nch] = (ma_int16)_mm_extract_epi16(pcm8, 2); + dstl[(49 + i)*nch] = (ma_int16)_mm_extract_epi16(pcm8, 6); #else int16x4_t pcma, pcmb; - a = DRMP3_VADD(a, DRMP3_VSET(0.5f)); - b = DRMP3_VADD(b, DRMP3_VSET(0.5f)); - pcma = vqmovn_s32(vqaddq_s32(vcvtq_s32_f32(a), vreinterpretq_s32_u32(vcltq_f32(a, DRMP3_VSET(0))))); - pcmb = vqmovn_s32(vqaddq_s32(vcvtq_s32_f32(b), vreinterpretq_s32_u32(vcltq_f32(b, DRMP3_VSET(0))))); + a = MA_DR_MP3_VADD(a, MA_DR_MP3_VSET(0.5f)); + b = MA_DR_MP3_VADD(b, MA_DR_MP3_VSET(0.5f)); + pcma = vqmovn_s32(vqaddq_s32(vcvtq_s32_f32(a), vreinterpretq_s32_u32(vcltq_f32(a, MA_DR_MP3_VSET(0))))); + pcmb = vqmovn_s32(vqaddq_s32(vcvtq_s32_f32(b), vreinterpretq_s32_u32(vcltq_f32(b, MA_DR_MP3_VSET(0))))); vst1_lane_s16(dstr + (15 - i)*nch, pcma, 1); vst1_lane_s16(dstr + (17 + i)*nch, pcmb, 1); vst1_lane_s16(dstl + (15 - i)*nch, pcma, 0); @@ -88587,14 +91256,14 @@ static void drmp3d_synth(float *xl, drmp3d_sample_t *dstl, int nch, float *lins) vst1_lane_s16(dstl + (49 + i)*nch, pcmb, 2); #endif #else - #if DRMP3_HAVE_SSE - static const drmp3_f4 g_scale = { 1.0f/32768.0f, 1.0f/32768.0f, 1.0f/32768.0f, 1.0f/32768.0f }; + #if MA_DR_MP3_HAVE_SSE + static const ma_dr_mp3_f4 g_scale = { 1.0f/32768.0f, 1.0f/32768.0f, 1.0f/32768.0f, 1.0f/32768.0f }; #else - const drmp3_f4 g_scale = vdupq_n_f32(1.0f/32768.0f); + const ma_dr_mp3_f4 g_scale = vdupq_n_f32(1.0f/32768.0f); #endif - a = DRMP3_VMUL(a, g_scale); - b = DRMP3_VMUL(b, g_scale); -#if DRMP3_HAVE_SSE + a = MA_DR_MP3_VMUL(a, g_scale); + b = MA_DR_MP3_VMUL(b, g_scale); +#if MA_DR_MP3_HAVE_SSE _mm_store_ss(dstr + (15 - i)*nch, _mm_shuffle_ps(a, a, _MM_SHUFFLE(1, 1, 1, 1))); _mm_store_ss(dstr + (17 + i)*nch, _mm_shuffle_ps(b, b, _MM_SHUFFLE(1, 1, 1, 1))); _mm_store_ss(dstl + (15 - i)*nch, _mm_shuffle_ps(a, a, _MM_SHUFFLE(0, 0, 0, 0))); @@ -88617,15 +91286,15 @@ static void drmp3d_synth(float *xl, drmp3d_sample_t *dstl, int nch, float *lins) } } else #endif -#ifdef DR_MP3_ONLY_SIMD +#ifdef MA_DR_MP3_ONLY_SIMD {} #else for (i = 14; i >= 0; i--) { -#define DRMP3_LOAD(k) float w0 = *w++; float w1 = *w++; float *vz = &zlin[4*i - k*64]; float *vy = &zlin[4*i - (15 - k)*64]; -#define DRMP3_S0(k) { int j; DRMP3_LOAD(k); for (j = 0; j < 4; j++) b[j] = vz[j]*w1 + vy[j]*w0, a[j] = vz[j]*w0 - vy[j]*w1; } -#define DRMP3_S1(k) { int j; DRMP3_LOAD(k); for (j = 0; j < 4; j++) b[j] += vz[j]*w1 + vy[j]*w0, a[j] += vz[j]*w0 - vy[j]*w1; } -#define DRMP3_S2(k) { int j; DRMP3_LOAD(k); for (j = 0; j < 4; j++) b[j] += vz[j]*w1 + vy[j]*w0, a[j] += vy[j]*w1 - vz[j]*w0; } +#define MA_DR_MP3_LOAD(k) float w0 = *w++; float w1 = *w++; float *vz = &zlin[4*i - k*64]; float *vy = &zlin[4*i - (15 - k)*64]; +#define MA_DR_MP3_S0(k) { int j; MA_DR_MP3_LOAD(k); for (j = 0; j < 4; j++) b[j] = vz[j]*w1 + vy[j]*w0, a[j] = vz[j]*w0 - vy[j]*w1; } +#define MA_DR_MP3_S1(k) { int j; MA_DR_MP3_LOAD(k); for (j = 0; j < 4; j++) b[j] += vz[j]*w1 + vy[j]*w0, a[j] += vz[j]*w0 - vy[j]*w1; } +#define MA_DR_MP3_S2(k) { int j; MA_DR_MP3_LOAD(k); for (j = 0; j < 4; j++) b[j] += vz[j]*w1 + vy[j]*w0, a[j] += vy[j]*w1 - vz[j]*w0; } float a[4], b[4]; zlin[4*i] = xl[18*(31 - i)]; zlin[4*i + 1] = xr[18*(31 - i)]; @@ -88635,31 +91304,31 @@ static void drmp3d_synth(float *xl, drmp3d_sample_t *dstl, int nch, float *lins) zlin[4*(i + 16) + 1] = xr[1 + 18*(1 + i)]; zlin[4*(i - 16) + 2] = xl[18*(1 + i)]; zlin[4*(i - 16) + 3] = xr[18*(1 + i)]; - DRMP3_S0(0) DRMP3_S2(1) DRMP3_S1(2) DRMP3_S2(3) DRMP3_S1(4) DRMP3_S2(5) DRMP3_S1(6) DRMP3_S2(7) - dstr[(15 - i)*nch] = drmp3d_scale_pcm(a[1]); - dstr[(17 + i)*nch] = drmp3d_scale_pcm(b[1]); - dstl[(15 - i)*nch] = drmp3d_scale_pcm(a[0]); - dstl[(17 + i)*nch] = drmp3d_scale_pcm(b[0]); - dstr[(47 - i)*nch] = drmp3d_scale_pcm(a[3]); - dstr[(49 + i)*nch] = drmp3d_scale_pcm(b[3]); - dstl[(47 - i)*nch] = drmp3d_scale_pcm(a[2]); - dstl[(49 + i)*nch] = drmp3d_scale_pcm(b[2]); + MA_DR_MP3_S0(0) MA_DR_MP3_S2(1) MA_DR_MP3_S1(2) MA_DR_MP3_S2(3) MA_DR_MP3_S1(4) MA_DR_MP3_S2(5) MA_DR_MP3_S1(6) MA_DR_MP3_S2(7) + dstr[(15 - i)*nch] = ma_dr_mp3d_scale_pcm(a[1]); + dstr[(17 + i)*nch] = ma_dr_mp3d_scale_pcm(b[1]); + dstl[(15 - i)*nch] = ma_dr_mp3d_scale_pcm(a[0]); + dstl[(17 + i)*nch] = ma_dr_mp3d_scale_pcm(b[0]); + dstr[(47 - i)*nch] = ma_dr_mp3d_scale_pcm(a[3]); + dstr[(49 + i)*nch] = ma_dr_mp3d_scale_pcm(b[3]); + dstl[(47 - i)*nch] = ma_dr_mp3d_scale_pcm(a[2]); + dstl[(49 + i)*nch] = ma_dr_mp3d_scale_pcm(b[2]); } #endif } -static void drmp3d_synth_granule(float *qmf_state, float *grbuf, int nbands, int nch, drmp3d_sample_t *pcm, float *lins) +static void ma_dr_mp3d_synth_granule(float *qmf_state, float *grbuf, int nbands, int nch, ma_dr_mp3d_sample_t *pcm, float *lins) { int i; for (i = 0; i < nch; i++) { - drmp3d_DCT_II(grbuf + 576*i, nbands); + ma_dr_mp3d_DCT_II(grbuf + 576*i, nbands); } - DRMP3_COPY_MEMORY(lins, qmf_state, sizeof(float)*15*64); + MA_DR_MP3_COPY_MEMORY(lins, qmf_state, sizeof(float)*15*64); for (i = 0; i < nbands; i += 2) { - drmp3d_synth(grbuf + i, pcm + 32*nch*i, nch, lins + i*64); + ma_dr_mp3d_synth(grbuf + i, pcm + 32*nch*i, nch, lins + i*64); } -#ifndef DR_MP3_NONSTANDARD_BUT_LOGICAL +#ifndef MA_DR_MP3_NONSTANDARD_BUT_LOGICAL if (nch == 1) { for (i = 0; i < 15*64; i += 2) @@ -88669,38 +91338,38 @@ static void drmp3d_synth_granule(float *qmf_state, float *grbuf, int nbands, int } else #endif { - DRMP3_COPY_MEMORY(qmf_state, lins + nbands*64, sizeof(float)*15*64); + MA_DR_MP3_COPY_MEMORY(qmf_state, lins + nbands*64, sizeof(float)*15*64); } } -static int drmp3d_match_frame(const drmp3_uint8 *hdr, int mp3_bytes, int frame_bytes) +static int ma_dr_mp3d_match_frame(const ma_uint8 *hdr, int mp3_bytes, int frame_bytes) { int i, nmatch; - for (i = 0, nmatch = 0; nmatch < DRMP3_MAX_FRAME_SYNC_MATCHES; nmatch++) + for (i = 0, nmatch = 0; nmatch < MA_DR_MP3_MAX_FRAME_SYNC_MATCHES; nmatch++) { - i += drmp3_hdr_frame_bytes(hdr + i, frame_bytes) + drmp3_hdr_padding(hdr + i); - if (i + DRMP3_HDR_SIZE > mp3_bytes) + i += ma_dr_mp3_hdr_frame_bytes(hdr + i, frame_bytes) + ma_dr_mp3_hdr_padding(hdr + i); + if (i + MA_DR_MP3_HDR_SIZE > mp3_bytes) return nmatch > 0; - if (!drmp3_hdr_compare(hdr, hdr + i)) + if (!ma_dr_mp3_hdr_compare(hdr, hdr + i)) return 0; } return 1; } -static int drmp3d_find_frame(const drmp3_uint8 *mp3, int mp3_bytes, int *free_format_bytes, int *ptr_frame_bytes) +static int ma_dr_mp3d_find_frame(const ma_uint8 *mp3, int mp3_bytes, int *free_format_bytes, int *ptr_frame_bytes) { int i, k; - for (i = 0; i < mp3_bytes - DRMP3_HDR_SIZE; i++, mp3++) + for (i = 0; i < mp3_bytes - MA_DR_MP3_HDR_SIZE; i++, mp3++) { - if (drmp3_hdr_valid(mp3)) + if (ma_dr_mp3_hdr_valid(mp3)) { - int frame_bytes = drmp3_hdr_frame_bytes(mp3, *free_format_bytes); - int frame_and_padding = frame_bytes + drmp3_hdr_padding(mp3); - for (k = DRMP3_HDR_SIZE; !frame_bytes && k < DRMP3_MAX_FREE_FORMAT_FRAME_SIZE && i + 2*k < mp3_bytes - DRMP3_HDR_SIZE; k++) + int frame_bytes = ma_dr_mp3_hdr_frame_bytes(mp3, *free_format_bytes); + int frame_and_padding = frame_bytes + ma_dr_mp3_hdr_padding(mp3); + for (k = MA_DR_MP3_HDR_SIZE; !frame_bytes && k < MA_DR_MP3_MAX_FREE_FORMAT_FRAME_SIZE && i + 2*k < mp3_bytes - MA_DR_MP3_HDR_SIZE; k++) { - if (drmp3_hdr_compare(mp3, mp3 + k)) + if (ma_dr_mp3_hdr_compare(mp3, mp3 + k)) { - int fb = k - drmp3_hdr_padding(mp3); - int nextfb = fb + drmp3_hdr_padding(mp3 + k); - if (i + k + nextfb + DRMP3_HDR_SIZE > mp3_bytes || !drmp3_hdr_compare(mp3, mp3 + k + nextfb)) + int fb = k - ma_dr_mp3_hdr_padding(mp3); + int nextfb = fb + ma_dr_mp3_hdr_padding(mp3 + k); + if (i + k + nextfb + MA_DR_MP3_HDR_SIZE > mp3_bytes || !ma_dr_mp3_hdr_compare(mp3, mp3 + k + nextfb)) continue; frame_and_padding = k; frame_bytes = fb; @@ -88708,7 +91377,7 @@ static int drmp3d_find_frame(const drmp3_uint8 *mp3, int mp3_bytes, int *free_fo } } if ((frame_bytes && i + frame_and_padding <= mp3_bytes && - drmp3d_match_frame(mp3, mp3_bytes - i, frame_bytes)) || + ma_dr_mp3d_match_frame(mp3, mp3_bytes - i, frame_bytes)) || (!i && frame_and_padding == mp3_bytes)) { *ptr_frame_bytes = frame_and_padding; @@ -88720,28 +91389,28 @@ static int drmp3d_find_frame(const drmp3_uint8 *mp3, int mp3_bytes, int *free_fo *ptr_frame_bytes = 0; return mp3_bytes; } -DRMP3_API void drmp3dec_init(drmp3dec *dec) +MA_API void ma_dr_mp3dec_init(ma_dr_mp3dec *dec) { dec->header[0] = 0; } -DRMP3_API int drmp3dec_decode_frame(drmp3dec *dec, const drmp3_uint8 *mp3, int mp3_bytes, void *pcm, drmp3dec_frame_info *info) +MA_API int ma_dr_mp3dec_decode_frame(ma_dr_mp3dec *dec, const ma_uint8 *mp3, int mp3_bytes, void *pcm, ma_dr_mp3dec_frame_info *info) { int i = 0, igr, frame_size = 0, success = 1; - const drmp3_uint8 *hdr; - drmp3_bs bs_frame[1]; - drmp3dec_scratch scratch; - if (mp3_bytes > 4 && dec->header[0] == 0xff && drmp3_hdr_compare(dec->header, mp3)) + const ma_uint8 *hdr; + ma_dr_mp3_bs bs_frame[1]; + ma_dr_mp3dec_scratch scratch; + if (mp3_bytes > 4 && dec->header[0] == 0xff && ma_dr_mp3_hdr_compare(dec->header, mp3)) { - frame_size = drmp3_hdr_frame_bytes(mp3, dec->free_format_bytes) + drmp3_hdr_padding(mp3); - if (frame_size != mp3_bytes && (frame_size + DRMP3_HDR_SIZE > mp3_bytes || !drmp3_hdr_compare(mp3, mp3 + frame_size))) + frame_size = ma_dr_mp3_hdr_frame_bytes(mp3, dec->free_format_bytes) + ma_dr_mp3_hdr_padding(mp3); + if (frame_size != mp3_bytes && (frame_size + MA_DR_MP3_HDR_SIZE > mp3_bytes || !ma_dr_mp3_hdr_compare(mp3, mp3 + frame_size))) { frame_size = 0; } } if (!frame_size) { - DRMP3_ZERO_MEMORY(dec, sizeof(drmp3dec)); - i = drmp3d_find_frame(mp3, mp3_bytes, &dec->free_format_bytes, &frame_size); + MA_DR_MP3_ZERO_MEMORY(dec, sizeof(ma_dr_mp3dec)); + i = ma_dr_mp3d_find_frame(mp3, mp3_bytes, &dec->free_format_bytes, &frame_size); if (!frame_size || i + frame_size > mp3_bytes) { info->frame_bytes = i; @@ -88749,96 +91418,96 @@ DRMP3_API int drmp3dec_decode_frame(drmp3dec *dec, const drmp3_uint8 *mp3, int m } } hdr = mp3 + i; - DRMP3_COPY_MEMORY(dec->header, hdr, DRMP3_HDR_SIZE); + MA_DR_MP3_COPY_MEMORY(dec->header, hdr, MA_DR_MP3_HDR_SIZE); info->frame_bytes = i + frame_size; - info->channels = DRMP3_HDR_IS_MONO(hdr) ? 1 : 2; - info->hz = drmp3_hdr_sample_rate_hz(hdr); - info->layer = 4 - DRMP3_HDR_GET_LAYER(hdr); - info->bitrate_kbps = drmp3_hdr_bitrate_kbps(hdr); - drmp3_bs_init(bs_frame, hdr + DRMP3_HDR_SIZE, frame_size - DRMP3_HDR_SIZE); - if (DRMP3_HDR_IS_CRC(hdr)) + info->channels = MA_DR_MP3_HDR_IS_MONO(hdr) ? 1 : 2; + info->hz = ma_dr_mp3_hdr_sample_rate_hz(hdr); + info->layer = 4 - MA_DR_MP3_HDR_GET_LAYER(hdr); + info->bitrate_kbps = ma_dr_mp3_hdr_bitrate_kbps(hdr); + ma_dr_mp3_bs_init(bs_frame, hdr + MA_DR_MP3_HDR_SIZE, frame_size - MA_DR_MP3_HDR_SIZE); + if (MA_DR_MP3_HDR_IS_CRC(hdr)) { - drmp3_bs_get_bits(bs_frame, 16); + ma_dr_mp3_bs_get_bits(bs_frame, 16); } if (info->layer == 3) { - int main_data_begin = drmp3_L3_read_side_info(bs_frame, scratch.gr_info, hdr); + int main_data_begin = ma_dr_mp3_L3_read_side_info(bs_frame, scratch.gr_info, hdr); if (main_data_begin < 0 || bs_frame->pos > bs_frame->limit) { - drmp3dec_init(dec); + ma_dr_mp3dec_init(dec); return 0; } - success = drmp3_L3_restore_reservoir(dec, bs_frame, &scratch, main_data_begin); + success = ma_dr_mp3_L3_restore_reservoir(dec, bs_frame, &scratch, main_data_begin); if (success && pcm != NULL) { - for (igr = 0; igr < (DRMP3_HDR_TEST_MPEG1(hdr) ? 2 : 1); igr++, pcm = DRMP3_OFFSET_PTR(pcm, sizeof(drmp3d_sample_t)*576*info->channels)) + for (igr = 0; igr < (MA_DR_MP3_HDR_TEST_MPEG1(hdr) ? 2 : 1); igr++, pcm = MA_DR_MP3_OFFSET_PTR(pcm, sizeof(ma_dr_mp3d_sample_t)*576*info->channels)) { - DRMP3_ZERO_MEMORY(scratch.grbuf[0], 576*2*sizeof(float)); - drmp3_L3_decode(dec, &scratch, scratch.gr_info + igr*info->channels, info->channels); - drmp3d_synth_granule(dec->qmf_state, scratch.grbuf[0], 18, info->channels, (drmp3d_sample_t*)pcm, scratch.syn[0]); + MA_DR_MP3_ZERO_MEMORY(scratch.grbuf[0], 576*2*sizeof(float)); + ma_dr_mp3_L3_decode(dec, &scratch, scratch.gr_info + igr*info->channels, info->channels); + ma_dr_mp3d_synth_granule(dec->qmf_state, scratch.grbuf[0], 18, info->channels, (ma_dr_mp3d_sample_t*)pcm, scratch.syn[0]); } } - drmp3_L3_save_reservoir(dec, &scratch); + ma_dr_mp3_L3_save_reservoir(dec, &scratch); } else { -#ifdef DR_MP3_ONLY_MP3 +#ifdef MA_DR_MP3_ONLY_MP3 return 0; #else - drmp3_L12_scale_info sci[1]; + ma_dr_mp3_L12_scale_info sci[1]; if (pcm == NULL) { - return drmp3_hdr_frame_samples(hdr); + return ma_dr_mp3_hdr_frame_samples(hdr); } - drmp3_L12_read_scale_info(hdr, bs_frame, sci); - DRMP3_ZERO_MEMORY(scratch.grbuf[0], 576*2*sizeof(float)); + ma_dr_mp3_L12_read_scale_info(hdr, bs_frame, sci); + MA_DR_MP3_ZERO_MEMORY(scratch.grbuf[0], 576*2*sizeof(float)); for (i = 0, igr = 0; igr < 3; igr++) { - if (12 == (i += drmp3_L12_dequantize_granule(scratch.grbuf[0] + i, bs_frame, sci, info->layer | 1))) + if (12 == (i += ma_dr_mp3_L12_dequantize_granule(scratch.grbuf[0] + i, bs_frame, sci, info->layer | 1))) { i = 0; - drmp3_L12_apply_scf_384(sci, sci->scf + igr, scratch.grbuf[0]); - drmp3d_synth_granule(dec->qmf_state, scratch.grbuf[0], 12, info->channels, (drmp3d_sample_t*)pcm, scratch.syn[0]); - DRMP3_ZERO_MEMORY(scratch.grbuf[0], 576*2*sizeof(float)); - pcm = DRMP3_OFFSET_PTR(pcm, sizeof(drmp3d_sample_t)*384*info->channels); + ma_dr_mp3_L12_apply_scf_384(sci, sci->scf + igr, scratch.grbuf[0]); + ma_dr_mp3d_synth_granule(dec->qmf_state, scratch.grbuf[0], 12, info->channels, (ma_dr_mp3d_sample_t*)pcm, scratch.syn[0]); + MA_DR_MP3_ZERO_MEMORY(scratch.grbuf[0], 576*2*sizeof(float)); + pcm = MA_DR_MP3_OFFSET_PTR(pcm, sizeof(ma_dr_mp3d_sample_t)*384*info->channels); } if (bs_frame->pos > bs_frame->limit) { - drmp3dec_init(dec); + ma_dr_mp3dec_init(dec); return 0; } } #endif } - return success*drmp3_hdr_frame_samples(dec->header); + return success*ma_dr_mp3_hdr_frame_samples(dec->header); } -DRMP3_API void drmp3dec_f32_to_s16(const float *in, drmp3_int16 *out, size_t num_samples) +MA_API void ma_dr_mp3dec_f32_to_s16(const float *in, ma_int16 *out, size_t num_samples) { size_t i = 0; -#if DRMP3_HAVE_SIMD +#if MA_DR_MP3_HAVE_SIMD size_t aligned_count = num_samples & ~7; for(; i < aligned_count; i+=8) { - drmp3_f4 scale = DRMP3_VSET(32768.0f); - drmp3_f4 a = DRMP3_VMUL(DRMP3_VLD(&in[i ]), scale); - drmp3_f4 b = DRMP3_VMUL(DRMP3_VLD(&in[i+4]), scale); -#if DRMP3_HAVE_SSE - drmp3_f4 s16max = DRMP3_VSET( 32767.0f); - drmp3_f4 s16min = DRMP3_VSET(-32768.0f); + ma_dr_mp3_f4 scale = MA_DR_MP3_VSET(32768.0f); + ma_dr_mp3_f4 a = MA_DR_MP3_VMUL(MA_DR_MP3_VLD(&in[i ]), scale); + ma_dr_mp3_f4 b = MA_DR_MP3_VMUL(MA_DR_MP3_VLD(&in[i+4]), scale); +#if MA_DR_MP3_HAVE_SSE + ma_dr_mp3_f4 s16max = MA_DR_MP3_VSET( 32767.0f); + ma_dr_mp3_f4 s16min = MA_DR_MP3_VSET(-32768.0f); __m128i pcm8 = _mm_packs_epi32(_mm_cvtps_epi32(_mm_max_ps(_mm_min_ps(a, s16max), s16min)), _mm_cvtps_epi32(_mm_max_ps(_mm_min_ps(b, s16max), s16min))); - out[i ] = (drmp3_int16)_mm_extract_epi16(pcm8, 0); - out[i+1] = (drmp3_int16)_mm_extract_epi16(pcm8, 1); - out[i+2] = (drmp3_int16)_mm_extract_epi16(pcm8, 2); - out[i+3] = (drmp3_int16)_mm_extract_epi16(pcm8, 3); - out[i+4] = (drmp3_int16)_mm_extract_epi16(pcm8, 4); - out[i+5] = (drmp3_int16)_mm_extract_epi16(pcm8, 5); - out[i+6] = (drmp3_int16)_mm_extract_epi16(pcm8, 6); - out[i+7] = (drmp3_int16)_mm_extract_epi16(pcm8, 7); + out[i ] = (ma_int16)_mm_extract_epi16(pcm8, 0); + out[i+1] = (ma_int16)_mm_extract_epi16(pcm8, 1); + out[i+2] = (ma_int16)_mm_extract_epi16(pcm8, 2); + out[i+3] = (ma_int16)_mm_extract_epi16(pcm8, 3); + out[i+4] = (ma_int16)_mm_extract_epi16(pcm8, 4); + out[i+5] = (ma_int16)_mm_extract_epi16(pcm8, 5); + out[i+6] = (ma_int16)_mm_extract_epi16(pcm8, 6); + out[i+7] = (ma_int16)_mm_extract_epi16(pcm8, 7); #else int16x4_t pcma, pcmb; - a = DRMP3_VADD(a, DRMP3_VSET(0.5f)); - b = DRMP3_VADD(b, DRMP3_VSET(0.5f)); - pcma = vqmovn_s32(vqaddq_s32(vcvtq_s32_f32(a), vreinterpretq_s32_u32(vcltq_f32(a, DRMP3_VSET(0))))); - pcmb = vqmovn_s32(vqaddq_s32(vcvtq_s32_f32(b), vreinterpretq_s32_u32(vcltq_f32(b, DRMP3_VSET(0))))); + a = MA_DR_MP3_VADD(a, MA_DR_MP3_VSET(0.5f)); + b = MA_DR_MP3_VADD(b, MA_DR_MP3_VSET(0.5f)); + pcma = vqmovn_s32(vqaddq_s32(vcvtq_s32_f32(a), vreinterpretq_s32_u32(vcltq_f32(a, MA_DR_MP3_VSET(0))))); + pcmb = vqmovn_s32(vqaddq_s32(vcvtq_s32_f32(b), vreinterpretq_s32_u32(vcltq_f32(b, MA_DR_MP3_VSET(0))))); vst1_lane_s16(out+i , pcma, 0); vst1_lane_s16(out+i+1, pcma, 1); vst1_lane_s16(out+i+2, pcma, 2); @@ -88854,78 +91523,69 @@ DRMP3_API void drmp3dec_f32_to_s16(const float *in, drmp3_int16 *out, size_t num { float sample = in[i] * 32768.0f; if (sample >= 32766.5) - out[i] = (drmp3_int16) 32767; + out[i] = (ma_int16) 32767; else if (sample <= -32767.5) - out[i] = (drmp3_int16)-32768; + out[i] = (ma_int16)-32768; else { - short s = (drmp3_int16)(sample + .5f); + short s = (ma_int16)(sample + .5f); s -= (s < 0); out[i] = s; } } } -#if defined(SIZE_MAX) - #define DRMP3_SIZE_MAX SIZE_MAX -#else - #if defined(_WIN64) || defined(_LP64) || defined(__LP64__) - #define DRMP3_SIZE_MAX ((drmp3_uint64)0xFFFFFFFFFFFFFFFF) - #else - #define DRMP3_SIZE_MAX 0xFFFFFFFF - #endif +#ifndef MA_DR_MP3_SEEK_LEADING_MP3_FRAMES +#define MA_DR_MP3_SEEK_LEADING_MP3_FRAMES 2 #endif -#ifndef DRMP3_SEEK_LEADING_MP3_FRAMES -#define DRMP3_SEEK_LEADING_MP3_FRAMES 2 +#define MA_DR_MP3_MIN_DATA_CHUNK_SIZE 16384 +#ifndef MA_DR_MP3_DATA_CHUNK_SIZE +#define MA_DR_MP3_DATA_CHUNK_SIZE (MA_DR_MP3_MIN_DATA_CHUNK_SIZE*4) #endif -#define DRMP3_MIN_DATA_CHUNK_SIZE 16384 -#ifndef DRMP3_DATA_CHUNK_SIZE -#define DRMP3_DATA_CHUNK_SIZE DRMP3_MIN_DATA_CHUNK_SIZE*4 +#define MA_DR_MP3_COUNTOF(x) (sizeof(x) / sizeof(x[0])) +#define MA_DR_MP3_CLAMP(x, lo, hi) (MA_DR_MP3_MAX(lo, MA_DR_MP3_MIN(x, hi))) +#ifndef MA_DR_MP3_PI_D +#define MA_DR_MP3_PI_D 3.14159265358979323846264 #endif -#define DRMP3_COUNTOF(x) (sizeof(x) / sizeof(x[0])) -#define DRMP3_CLAMP(x, lo, hi) (DRMP3_MAX(lo, DRMP3_MIN(x, hi))) -#ifndef DRMP3_PI_D -#define DRMP3_PI_D 3.14159265358979323846264 -#endif -#define DRMP3_DEFAULT_RESAMPLER_LPF_ORDER 2 -static DRMP3_INLINE float drmp3_mix_f32(float x, float y, float a) +#define MA_DR_MP3_DEFAULT_RESAMPLER_LPF_ORDER 2 +static MA_INLINE float ma_dr_mp3_mix_f32(float x, float y, float a) { return x*(1-a) + y*a; } -static DRMP3_INLINE float drmp3_mix_f32_fast(float x, float y, float a) +static MA_INLINE float ma_dr_mp3_mix_f32_fast(float x, float y, float a) { float r0 = (y - x); float r1 = r0*a; return x + r1; } -static DRMP3_INLINE drmp3_uint32 drmp3_gcf_u32(drmp3_uint32 a, drmp3_uint32 b) +static MA_INLINE ma_uint32 ma_dr_mp3_gcf_u32(ma_uint32 a, ma_uint32 b) { for (;;) { if (b == 0) { break; } else { - drmp3_uint32 t = a; + ma_uint32 t = a; a = b; b = t % a; } } return a; } -static void* drmp3__malloc_default(size_t sz, void* pUserData) +static void* ma_dr_mp3__malloc_default(size_t sz, void* pUserData) { (void)pUserData; - return DRMP3_MALLOC(sz); + return MA_DR_MP3_MALLOC(sz); } -static void* drmp3__realloc_default(void* p, size_t sz, void* pUserData) +static void* ma_dr_mp3__realloc_default(void* p, size_t sz, void* pUserData) { (void)pUserData; - return DRMP3_REALLOC(p, sz); + return MA_DR_MP3_REALLOC(p, sz); } -static void drmp3__free_default(void* p, void* pUserData) +static void ma_dr_mp3__free_default(void* p, void* pUserData) { (void)pUserData; - DRMP3_FREE(p); + MA_DR_MP3_FREE(p); } -static void* drmp3__malloc_from_callbacks(size_t sz, const drmp3_allocation_callbacks* pAllocationCallbacks) +static void* ma_dr_mp3__malloc_from_callbacks(size_t sz, const ma_allocation_callbacks* pAllocationCallbacks) { if (pAllocationCallbacks == NULL) { return NULL; @@ -88938,7 +91598,7 @@ static void* drmp3__malloc_from_callbacks(size_t sz, const drmp3_allocation_call } return NULL; } -static void* drmp3__realloc_from_callbacks(void* p, size_t szNew, size_t szOld, const drmp3_allocation_callbacks* pAllocationCallbacks) +static void* ma_dr_mp3__realloc_from_callbacks(void* p, size_t szNew, size_t szOld, const ma_allocation_callbacks* pAllocationCallbacks) { if (pAllocationCallbacks == NULL) { return NULL; @@ -88953,14 +91613,14 @@ static void* drmp3__realloc_from_callbacks(void* p, size_t szNew, size_t szOld, return NULL; } if (p != NULL) { - DRMP3_COPY_MEMORY(p2, p, szOld); + MA_DR_MP3_COPY_MEMORY(p2, p, szOld); pAllocationCallbacks->onFree(p, pAllocationCallbacks->pUserData); } return p2; } return NULL; } -static void drmp3__free_from_callbacks(void* p, const drmp3_allocation_callbacks* pAllocationCallbacks) +static void ma_dr_mp3__free_from_callbacks(void* p, const ma_allocation_callbacks* pAllocationCallbacks) { if (p == NULL || pAllocationCallbacks == NULL) { return; @@ -88969,111 +91629,114 @@ static void drmp3__free_from_callbacks(void* p, const drmp3_allocation_callbacks pAllocationCallbacks->onFree(p, pAllocationCallbacks->pUserData); } } -static drmp3_allocation_callbacks drmp3_copy_allocation_callbacks_or_defaults(const drmp3_allocation_callbacks* pAllocationCallbacks) +static ma_allocation_callbacks ma_dr_mp3_copy_allocation_callbacks_or_defaults(const ma_allocation_callbacks* pAllocationCallbacks) { if (pAllocationCallbacks != NULL) { return *pAllocationCallbacks; } else { - drmp3_allocation_callbacks allocationCallbacks; + ma_allocation_callbacks allocationCallbacks; allocationCallbacks.pUserData = NULL; - allocationCallbacks.onMalloc = drmp3__malloc_default; - allocationCallbacks.onRealloc = drmp3__realloc_default; - allocationCallbacks.onFree = drmp3__free_default; + allocationCallbacks.onMalloc = ma_dr_mp3__malloc_default; + allocationCallbacks.onRealloc = ma_dr_mp3__realloc_default; + allocationCallbacks.onFree = ma_dr_mp3__free_default; return allocationCallbacks; } } -static size_t drmp3__on_read(drmp3* pMP3, void* pBufferOut, size_t bytesToRead) +static size_t ma_dr_mp3__on_read(ma_dr_mp3* pMP3, void* pBufferOut, size_t bytesToRead) { size_t bytesRead = pMP3->onRead(pMP3->pUserData, pBufferOut, bytesToRead); pMP3->streamCursor += bytesRead; return bytesRead; } -static drmp3_bool32 drmp3__on_seek(drmp3* pMP3, int offset, drmp3_seek_origin origin) +static ma_bool32 ma_dr_mp3__on_seek(ma_dr_mp3* pMP3, int offset, ma_dr_mp3_seek_origin origin) { - DRMP3_ASSERT(offset >= 0); + MA_DR_MP3_ASSERT(offset >= 0); if (!pMP3->onSeek(pMP3->pUserData, offset, origin)) { - return DRMP3_FALSE; + return MA_FALSE; } - if (origin == drmp3_seek_origin_start) { - pMP3->streamCursor = (drmp3_uint64)offset; + if (origin == ma_dr_mp3_seek_origin_start) { + pMP3->streamCursor = (ma_uint64)offset; } else { pMP3->streamCursor += offset; } - return DRMP3_TRUE; + return MA_TRUE; } -static drmp3_bool32 drmp3__on_seek_64(drmp3* pMP3, drmp3_uint64 offset, drmp3_seek_origin origin) +static ma_bool32 ma_dr_mp3__on_seek_64(ma_dr_mp3* pMP3, ma_uint64 offset, ma_dr_mp3_seek_origin origin) { if (offset <= 0x7FFFFFFF) { - return drmp3__on_seek(pMP3, (int)offset, origin); + return ma_dr_mp3__on_seek(pMP3, (int)offset, origin); } - if (!drmp3__on_seek(pMP3, 0x7FFFFFFF, drmp3_seek_origin_start)) { - return DRMP3_FALSE; + if (!ma_dr_mp3__on_seek(pMP3, 0x7FFFFFFF, ma_dr_mp3_seek_origin_start)) { + return MA_FALSE; } offset -= 0x7FFFFFFF; while (offset > 0) { if (offset <= 0x7FFFFFFF) { - if (!drmp3__on_seek(pMP3, (int)offset, drmp3_seek_origin_current)) { - return DRMP3_FALSE; + if (!ma_dr_mp3__on_seek(pMP3, (int)offset, ma_dr_mp3_seek_origin_current)) { + return MA_FALSE; } offset = 0; } else { - if (!drmp3__on_seek(pMP3, 0x7FFFFFFF, drmp3_seek_origin_current)) { - return DRMP3_FALSE; + if (!ma_dr_mp3__on_seek(pMP3, 0x7FFFFFFF, ma_dr_mp3_seek_origin_current)) { + return MA_FALSE; } offset -= 0x7FFFFFFF; } } - return DRMP3_TRUE; + return MA_TRUE; } -static drmp3_uint32 drmp3_decode_next_frame_ex__callbacks(drmp3* pMP3, drmp3d_sample_t* pPCMFrames) +static ma_uint32 ma_dr_mp3_decode_next_frame_ex__callbacks(ma_dr_mp3* pMP3, ma_dr_mp3d_sample_t* pPCMFrames) { - drmp3_uint32 pcmFramesRead = 0; - DRMP3_ASSERT(pMP3 != NULL); - DRMP3_ASSERT(pMP3->onRead != NULL); + ma_uint32 pcmFramesRead = 0; + MA_DR_MP3_ASSERT(pMP3 != NULL); + MA_DR_MP3_ASSERT(pMP3->onRead != NULL); if (pMP3->atEnd) { return 0; } for (;;) { - drmp3dec_frame_info info; - if (pMP3->dataSize < DRMP3_MIN_DATA_CHUNK_SIZE) { + ma_dr_mp3dec_frame_info info; + if (pMP3->dataSize < MA_DR_MP3_MIN_DATA_CHUNK_SIZE) { size_t bytesRead; if (pMP3->pData != NULL) { - DRMP3_MOVE_MEMORY(pMP3->pData, pMP3->pData + pMP3->dataConsumed, pMP3->dataSize); + MA_DR_MP3_MOVE_MEMORY(pMP3->pData, pMP3->pData + pMP3->dataConsumed, pMP3->dataSize); } pMP3->dataConsumed = 0; - if (pMP3->dataCapacity < DRMP3_DATA_CHUNK_SIZE) { - drmp3_uint8* pNewData; + if (pMP3->dataCapacity < MA_DR_MP3_DATA_CHUNK_SIZE) { + ma_uint8* pNewData; size_t newDataCap; - newDataCap = DRMP3_DATA_CHUNK_SIZE; - pNewData = (drmp3_uint8*)drmp3__realloc_from_callbacks(pMP3->pData, newDataCap, pMP3->dataCapacity, &pMP3->allocationCallbacks); + newDataCap = MA_DR_MP3_DATA_CHUNK_SIZE; + pNewData = (ma_uint8*)ma_dr_mp3__realloc_from_callbacks(pMP3->pData, newDataCap, pMP3->dataCapacity, &pMP3->allocationCallbacks); if (pNewData == NULL) { return 0; } pMP3->pData = pNewData; pMP3->dataCapacity = newDataCap; } - bytesRead = drmp3__on_read(pMP3, pMP3->pData + pMP3->dataSize, (pMP3->dataCapacity - pMP3->dataSize)); + bytesRead = ma_dr_mp3__on_read(pMP3, pMP3->pData + pMP3->dataSize, (pMP3->dataCapacity - pMP3->dataSize)); if (bytesRead == 0) { if (pMP3->dataSize == 0) { - pMP3->atEnd = DRMP3_TRUE; + pMP3->atEnd = MA_TRUE; return 0; } } pMP3->dataSize += bytesRead; } if (pMP3->dataSize > INT_MAX) { - pMP3->atEnd = DRMP3_TRUE; + pMP3->atEnd = MA_TRUE; return 0; } - DRMP3_ASSERT(pMP3->pData != NULL); - DRMP3_ASSERT(pMP3->dataCapacity > 0); - pcmFramesRead = drmp3dec_decode_frame(&pMP3->decoder, pMP3->pData + pMP3->dataConsumed, (int)pMP3->dataSize, pPCMFrames, &info); + MA_DR_MP3_ASSERT(pMP3->pData != NULL); + MA_DR_MP3_ASSERT(pMP3->dataCapacity > 0); + if (pMP3->pData == NULL) { + return 0; + } + pcmFramesRead = ma_dr_mp3dec_decode_frame(&pMP3->decoder, pMP3->pData + pMP3->dataConsumed, (int)pMP3->dataSize, pPCMFrames, &info); if (info.frame_bytes > 0) { pMP3->dataConsumed += (size_t)info.frame_bytes; pMP3->dataSize -= (size_t)info.frame_bytes; } if (pcmFramesRead > 0) { - pcmFramesRead = drmp3_hdr_frame_samples(pMP3->decoder.header); + pcmFramesRead = ma_dr_mp3_hdr_frame_samples(pMP3->decoder.header); pMP3->pcmFramesConsumedInMP3Frame = 0; pMP3->pcmFramesRemainingInMP3Frame = pcmFramesRead; pMP3->mp3FrameChannels = info.channels; @@ -89081,22 +91744,22 @@ static drmp3_uint32 drmp3_decode_next_frame_ex__callbacks(drmp3* pMP3, drmp3d_sa break; } else if (info.frame_bytes == 0) { size_t bytesRead; - DRMP3_MOVE_MEMORY(pMP3->pData, pMP3->pData + pMP3->dataConsumed, pMP3->dataSize); + MA_DR_MP3_MOVE_MEMORY(pMP3->pData, pMP3->pData + pMP3->dataConsumed, pMP3->dataSize); pMP3->dataConsumed = 0; if (pMP3->dataCapacity == pMP3->dataSize) { - drmp3_uint8* pNewData; + ma_uint8* pNewData; size_t newDataCap; - newDataCap = pMP3->dataCapacity + DRMP3_DATA_CHUNK_SIZE; - pNewData = (drmp3_uint8*)drmp3__realloc_from_callbacks(pMP3->pData, newDataCap, pMP3->dataCapacity, &pMP3->allocationCallbacks); + newDataCap = pMP3->dataCapacity + MA_DR_MP3_DATA_CHUNK_SIZE; + pNewData = (ma_uint8*)ma_dr_mp3__realloc_from_callbacks(pMP3->pData, newDataCap, pMP3->dataCapacity, &pMP3->allocationCallbacks); if (pNewData == NULL) { return 0; } pMP3->pData = pNewData; pMP3->dataCapacity = newDataCap; } - bytesRead = drmp3__on_read(pMP3, pMP3->pData + pMP3->dataSize, (pMP3->dataCapacity - pMP3->dataSize)); + bytesRead = ma_dr_mp3__on_read(pMP3, pMP3->pData + pMP3->dataSize, (pMP3->dataCapacity - pMP3->dataSize)); if (bytesRead == 0) { - pMP3->atEnd = DRMP3_TRUE; + pMP3->atEnd = MA_TRUE; return 0; } pMP3->dataSize += bytesRead; @@ -89104,19 +91767,19 @@ static drmp3_uint32 drmp3_decode_next_frame_ex__callbacks(drmp3* pMP3, drmp3d_sa }; return pcmFramesRead; } -static drmp3_uint32 drmp3_decode_next_frame_ex__memory(drmp3* pMP3, drmp3d_sample_t* pPCMFrames) +static ma_uint32 ma_dr_mp3_decode_next_frame_ex__memory(ma_dr_mp3* pMP3, ma_dr_mp3d_sample_t* pPCMFrames) { - drmp3_uint32 pcmFramesRead = 0; - drmp3dec_frame_info info; - DRMP3_ASSERT(pMP3 != NULL); - DRMP3_ASSERT(pMP3->memory.pData != NULL); + ma_uint32 pcmFramesRead = 0; + ma_dr_mp3dec_frame_info info; + MA_DR_MP3_ASSERT(pMP3 != NULL); + MA_DR_MP3_ASSERT(pMP3->memory.pData != NULL); if (pMP3->atEnd) { return 0; } for (;;) { - pcmFramesRead = drmp3dec_decode_frame(&pMP3->decoder, pMP3->memory.pData + pMP3->memory.currentReadPos, (int)(pMP3->memory.dataSize - pMP3->memory.currentReadPos), pPCMFrames, &info); + pcmFramesRead = ma_dr_mp3dec_decode_frame(&pMP3->decoder, pMP3->memory.pData + pMP3->memory.currentReadPos, (int)(pMP3->memory.dataSize - pMP3->memory.currentReadPos), pPCMFrames, &info); if (pcmFramesRead > 0) { - pcmFramesRead = drmp3_hdr_frame_samples(pMP3->decoder.header); + pcmFramesRead = ma_dr_mp3_hdr_frame_samples(pMP3->decoder.header); pMP3->pcmFramesConsumedInMP3Frame = 0; pMP3->pcmFramesRemainingInMP3Frame = pcmFramesRead; pMP3->mp3FrameChannels = info.channels; @@ -89131,25 +91794,25 @@ static drmp3_uint32 drmp3_decode_next_frame_ex__memory(drmp3* pMP3, drmp3d_sampl pMP3->memory.currentReadPos += (size_t)info.frame_bytes; return pcmFramesRead; } -static drmp3_uint32 drmp3_decode_next_frame_ex(drmp3* pMP3, drmp3d_sample_t* pPCMFrames) +static ma_uint32 ma_dr_mp3_decode_next_frame_ex(ma_dr_mp3* pMP3, ma_dr_mp3d_sample_t* pPCMFrames) { if (pMP3->memory.pData != NULL && pMP3->memory.dataSize > 0) { - return drmp3_decode_next_frame_ex__memory(pMP3, pPCMFrames); + return ma_dr_mp3_decode_next_frame_ex__memory(pMP3, pPCMFrames); } else { - return drmp3_decode_next_frame_ex__callbacks(pMP3, pPCMFrames); + return ma_dr_mp3_decode_next_frame_ex__callbacks(pMP3, pPCMFrames); } } -static drmp3_uint32 drmp3_decode_next_frame(drmp3* pMP3) +static ma_uint32 ma_dr_mp3_decode_next_frame(ma_dr_mp3* pMP3) { - DRMP3_ASSERT(pMP3 != NULL); - return drmp3_decode_next_frame_ex(pMP3, (drmp3d_sample_t*)pMP3->pcmFrames); + MA_DR_MP3_ASSERT(pMP3 != NULL); + return ma_dr_mp3_decode_next_frame_ex(pMP3, (ma_dr_mp3d_sample_t*)pMP3->pcmFrames); } #if 0 -static drmp3_uint32 drmp3_seek_next_frame(drmp3* pMP3) +static ma_uint32 ma_dr_mp3_seek_next_frame(ma_dr_mp3* pMP3) { - drmp3_uint32 pcmFrameCount; - DRMP3_ASSERT(pMP3 != NULL); - pcmFrameCount = drmp3_decode_next_frame_ex(pMP3, NULL); + ma_uint32 pcmFrameCount; + MA_DR_MP3_ASSERT(pMP3 != NULL); + pcmFrameCount = ma_dr_mp3_decode_next_frame_ex(pMP3, NULL); if (pcmFrameCount == 0) { return 0; } @@ -89159,55 +91822,55 @@ static drmp3_uint32 drmp3_seek_next_frame(drmp3* pMP3) return pcmFrameCount; } #endif -static drmp3_bool32 drmp3_init_internal(drmp3* pMP3, drmp3_read_proc onRead, drmp3_seek_proc onSeek, void* pUserData, const drmp3_allocation_callbacks* pAllocationCallbacks) +static ma_bool32 ma_dr_mp3_init_internal(ma_dr_mp3* pMP3, ma_dr_mp3_read_proc onRead, ma_dr_mp3_seek_proc onSeek, void* pUserData, const ma_allocation_callbacks* pAllocationCallbacks) { - DRMP3_ASSERT(pMP3 != NULL); - DRMP3_ASSERT(onRead != NULL); - drmp3dec_init(&pMP3->decoder); + MA_DR_MP3_ASSERT(pMP3 != NULL); + MA_DR_MP3_ASSERT(onRead != NULL); + ma_dr_mp3dec_init(&pMP3->decoder); pMP3->onRead = onRead; pMP3->onSeek = onSeek; pMP3->pUserData = pUserData; - pMP3->allocationCallbacks = drmp3_copy_allocation_callbacks_or_defaults(pAllocationCallbacks); + pMP3->allocationCallbacks = ma_dr_mp3_copy_allocation_callbacks_or_defaults(pAllocationCallbacks); if (pMP3->allocationCallbacks.onFree == NULL || (pMP3->allocationCallbacks.onMalloc == NULL && pMP3->allocationCallbacks.onRealloc == NULL)) { - return DRMP3_FALSE; + return MA_FALSE; } - if (drmp3_decode_next_frame(pMP3) == 0) { - drmp3__free_from_callbacks(pMP3->pData, &pMP3->allocationCallbacks); - return DRMP3_FALSE; + if (ma_dr_mp3_decode_next_frame(pMP3) == 0) { + ma_dr_mp3__free_from_callbacks(pMP3->pData, &pMP3->allocationCallbacks); + return MA_FALSE; } pMP3->channels = pMP3->mp3FrameChannels; pMP3->sampleRate = pMP3->mp3FrameSampleRate; - return DRMP3_TRUE; + return MA_TRUE; } -DRMP3_API drmp3_bool32 drmp3_init(drmp3* pMP3, drmp3_read_proc onRead, drmp3_seek_proc onSeek, void* pUserData, const drmp3_allocation_callbacks* pAllocationCallbacks) +MA_API ma_bool32 ma_dr_mp3_init(ma_dr_mp3* pMP3, ma_dr_mp3_read_proc onRead, ma_dr_mp3_seek_proc onSeek, void* pUserData, const ma_allocation_callbacks* pAllocationCallbacks) { if (pMP3 == NULL || onRead == NULL) { - return DRMP3_FALSE; + return MA_FALSE; } - DRMP3_ZERO_OBJECT(pMP3); - return drmp3_init_internal(pMP3, onRead, onSeek, pUserData, pAllocationCallbacks); + MA_DR_MP3_ZERO_OBJECT(pMP3); + return ma_dr_mp3_init_internal(pMP3, onRead, onSeek, pUserData, pAllocationCallbacks); } -static size_t drmp3__on_read_memory(void* pUserData, void* pBufferOut, size_t bytesToRead) +static size_t ma_dr_mp3__on_read_memory(void* pUserData, void* pBufferOut, size_t bytesToRead) { - drmp3* pMP3 = (drmp3*)pUserData; + ma_dr_mp3* pMP3 = (ma_dr_mp3*)pUserData; size_t bytesRemaining; - DRMP3_ASSERT(pMP3 != NULL); - DRMP3_ASSERT(pMP3->memory.dataSize >= pMP3->memory.currentReadPos); + MA_DR_MP3_ASSERT(pMP3 != NULL); + MA_DR_MP3_ASSERT(pMP3->memory.dataSize >= pMP3->memory.currentReadPos); bytesRemaining = pMP3->memory.dataSize - pMP3->memory.currentReadPos; if (bytesToRead > bytesRemaining) { bytesToRead = bytesRemaining; } if (bytesToRead > 0) { - DRMP3_COPY_MEMORY(pBufferOut, pMP3->memory.pData + pMP3->memory.currentReadPos, bytesToRead); + MA_DR_MP3_COPY_MEMORY(pBufferOut, pMP3->memory.pData + pMP3->memory.currentReadPos, bytesToRead); pMP3->memory.currentReadPos += bytesToRead; } return bytesToRead; } -static drmp3_bool32 drmp3__on_seek_memory(void* pUserData, int byteOffset, drmp3_seek_origin origin) +static ma_bool32 ma_dr_mp3__on_seek_memory(void* pUserData, int byteOffset, ma_dr_mp3_seek_origin origin) { - drmp3* pMP3 = (drmp3*)pUserData; - DRMP3_ASSERT(pMP3 != NULL); - if (origin == drmp3_seek_origin_current) { + ma_dr_mp3* pMP3 = (ma_dr_mp3*)pUserData; + MA_DR_MP3_ASSERT(pMP3 != NULL); + if (origin == ma_dr_mp3_seek_origin_current) { if (byteOffset > 0) { if (pMP3->memory.currentReadPos + byteOffset > pMP3->memory.dataSize) { byteOffset = (int)(pMP3->memory.dataSize - pMP3->memory.currentReadPos); @@ -89219,580 +91882,75 @@ static drmp3_bool32 drmp3__on_seek_memory(void* pUserData, int byteOffset, drmp3 } pMP3->memory.currentReadPos += byteOffset; } else { - if ((drmp3_uint32)byteOffset <= pMP3->memory.dataSize) { + if ((ma_uint32)byteOffset <= pMP3->memory.dataSize) { pMP3->memory.currentReadPos = byteOffset; } else { pMP3->memory.currentReadPos = pMP3->memory.dataSize; } } - return DRMP3_TRUE; + return MA_TRUE; } -DRMP3_API drmp3_bool32 drmp3_init_memory(drmp3* pMP3, const void* pData, size_t dataSize, const drmp3_allocation_callbacks* pAllocationCallbacks) +MA_API ma_bool32 ma_dr_mp3_init_memory(ma_dr_mp3* pMP3, const void* pData, size_t dataSize, const ma_allocation_callbacks* pAllocationCallbacks) { if (pMP3 == NULL) { - return DRMP3_FALSE; + return MA_FALSE; } - DRMP3_ZERO_OBJECT(pMP3); + MA_DR_MP3_ZERO_OBJECT(pMP3); if (pData == NULL || dataSize == 0) { - return DRMP3_FALSE; + return MA_FALSE; } - pMP3->memory.pData = (const drmp3_uint8*)pData; + pMP3->memory.pData = (const ma_uint8*)pData; pMP3->memory.dataSize = dataSize; pMP3->memory.currentReadPos = 0; - return drmp3_init_internal(pMP3, drmp3__on_read_memory, drmp3__on_seek_memory, pMP3, pAllocationCallbacks); + return ma_dr_mp3_init_internal(pMP3, ma_dr_mp3__on_read_memory, ma_dr_mp3__on_seek_memory, pMP3, pAllocationCallbacks); } -#ifndef DR_MP3_NO_STDIO +#ifndef MA_DR_MP3_NO_STDIO #include #include -#include -static drmp3_result drmp3_result_from_errno(int e) -{ - switch (e) - { - case 0: return DRMP3_SUCCESS; - #ifdef EPERM - case EPERM: return DRMP3_INVALID_OPERATION; - #endif - #ifdef ENOENT - case ENOENT: return DRMP3_DOES_NOT_EXIST; - #endif - #ifdef ESRCH - case ESRCH: return DRMP3_DOES_NOT_EXIST; - #endif - #ifdef EINTR - case EINTR: return DRMP3_INTERRUPT; - #endif - #ifdef EIO - case EIO: return DRMP3_IO_ERROR; - #endif - #ifdef ENXIO - case ENXIO: return DRMP3_DOES_NOT_EXIST; - #endif - #ifdef E2BIG - case E2BIG: return DRMP3_INVALID_ARGS; - #endif - #ifdef ENOEXEC - case ENOEXEC: return DRMP3_INVALID_FILE; - #endif - #ifdef EBADF - case EBADF: return DRMP3_INVALID_FILE; - #endif - #ifdef ECHILD - case ECHILD: return DRMP3_ERROR; - #endif - #ifdef EAGAIN - case EAGAIN: return DRMP3_UNAVAILABLE; - #endif - #ifdef ENOMEM - case ENOMEM: return DRMP3_OUT_OF_MEMORY; - #endif - #ifdef EACCES - case EACCES: return DRMP3_ACCESS_DENIED; - #endif - #ifdef EFAULT - case EFAULT: return DRMP3_BAD_ADDRESS; - #endif - #ifdef ENOTBLK - case ENOTBLK: return DRMP3_ERROR; - #endif - #ifdef EBUSY - case EBUSY: return DRMP3_BUSY; - #endif - #ifdef EEXIST - case EEXIST: return DRMP3_ALREADY_EXISTS; - #endif - #ifdef EXDEV - case EXDEV: return DRMP3_ERROR; - #endif - #ifdef ENODEV - case ENODEV: return DRMP3_DOES_NOT_EXIST; - #endif - #ifdef ENOTDIR - case ENOTDIR: return DRMP3_NOT_DIRECTORY; - #endif - #ifdef EISDIR - case EISDIR: return DRMP3_IS_DIRECTORY; - #endif - #ifdef EINVAL - case EINVAL: return DRMP3_INVALID_ARGS; - #endif - #ifdef ENFILE - case ENFILE: return DRMP3_TOO_MANY_OPEN_FILES; - #endif - #ifdef EMFILE - case EMFILE: return DRMP3_TOO_MANY_OPEN_FILES; - #endif - #ifdef ENOTTY - case ENOTTY: return DRMP3_INVALID_OPERATION; - #endif - #ifdef ETXTBSY - case ETXTBSY: return DRMP3_BUSY; - #endif - #ifdef EFBIG - case EFBIG: return DRMP3_TOO_BIG; - #endif - #ifdef ENOSPC - case ENOSPC: return DRMP3_NO_SPACE; - #endif - #ifdef ESPIPE - case ESPIPE: return DRMP3_BAD_SEEK; - #endif - #ifdef EROFS - case EROFS: return DRMP3_ACCESS_DENIED; - #endif - #ifdef EMLINK - case EMLINK: return DRMP3_TOO_MANY_LINKS; - #endif - #ifdef EPIPE - case EPIPE: return DRMP3_BAD_PIPE; - #endif - #ifdef EDOM - case EDOM: return DRMP3_OUT_OF_RANGE; - #endif - #ifdef ERANGE - case ERANGE: return DRMP3_OUT_OF_RANGE; - #endif - #ifdef EDEADLK - case EDEADLK: return DRMP3_DEADLOCK; - #endif - #ifdef ENAMETOOLONG - case ENAMETOOLONG: return DRMP3_PATH_TOO_LONG; - #endif - #ifdef ENOLCK - case ENOLCK: return DRMP3_ERROR; - #endif - #ifdef ENOSYS - case ENOSYS: return DRMP3_NOT_IMPLEMENTED; - #endif - #ifdef ENOTEMPTY - case ENOTEMPTY: return DRMP3_DIRECTORY_NOT_EMPTY; - #endif - #ifdef ELOOP - case ELOOP: return DRMP3_TOO_MANY_LINKS; - #endif - #ifdef ENOMSG - case ENOMSG: return DRMP3_NO_MESSAGE; - #endif - #ifdef EIDRM - case EIDRM: return DRMP3_ERROR; - #endif - #ifdef ECHRNG - case ECHRNG: return DRMP3_ERROR; - #endif - #ifdef EL2NSYNC - case EL2NSYNC: return DRMP3_ERROR; - #endif - #ifdef EL3HLT - case EL3HLT: return DRMP3_ERROR; - #endif - #ifdef EL3RST - case EL3RST: return DRMP3_ERROR; - #endif - #ifdef ELNRNG - case ELNRNG: return DRMP3_OUT_OF_RANGE; - #endif - #ifdef EUNATCH - case EUNATCH: return DRMP3_ERROR; - #endif - #ifdef ENOCSI - case ENOCSI: return DRMP3_ERROR; - #endif - #ifdef EL2HLT - case EL2HLT: return DRMP3_ERROR; - #endif - #ifdef EBADE - case EBADE: return DRMP3_ERROR; - #endif - #ifdef EBADR - case EBADR: return DRMP3_ERROR; - #endif - #ifdef EXFULL - case EXFULL: return DRMP3_ERROR; - #endif - #ifdef ENOANO - case ENOANO: return DRMP3_ERROR; - #endif - #ifdef EBADRQC - case EBADRQC: return DRMP3_ERROR; - #endif - #ifdef EBADSLT - case EBADSLT: return DRMP3_ERROR; - #endif - #ifdef EBFONT - case EBFONT: return DRMP3_INVALID_FILE; - #endif - #ifdef ENOSTR - case ENOSTR: return DRMP3_ERROR; - #endif - #ifdef ENODATA - case ENODATA: return DRMP3_NO_DATA_AVAILABLE; - #endif - #ifdef ETIME - case ETIME: return DRMP3_TIMEOUT; - #endif - #ifdef ENOSR - case ENOSR: return DRMP3_NO_DATA_AVAILABLE; - #endif - #ifdef ENONET - case ENONET: return DRMP3_NO_NETWORK; - #endif - #ifdef ENOPKG - case ENOPKG: return DRMP3_ERROR; - #endif - #ifdef EREMOTE - case EREMOTE: return DRMP3_ERROR; - #endif - #ifdef ENOLINK - case ENOLINK: return DRMP3_ERROR; - #endif - #ifdef EADV - case EADV: return DRMP3_ERROR; - #endif - #ifdef ESRMNT - case ESRMNT: return DRMP3_ERROR; - #endif - #ifdef ECOMM - case ECOMM: return DRMP3_ERROR; - #endif - #ifdef EPROTO - case EPROTO: return DRMP3_ERROR; - #endif - #ifdef EMULTIHOP - case EMULTIHOP: return DRMP3_ERROR; - #endif - #ifdef EDOTDOT - case EDOTDOT: return DRMP3_ERROR; - #endif - #ifdef EBADMSG - case EBADMSG: return DRMP3_BAD_MESSAGE; - #endif - #ifdef EOVERFLOW - case EOVERFLOW: return DRMP3_TOO_BIG; - #endif - #ifdef ENOTUNIQ - case ENOTUNIQ: return DRMP3_NOT_UNIQUE; - #endif - #ifdef EBADFD - case EBADFD: return DRMP3_ERROR; - #endif - #ifdef EREMCHG - case EREMCHG: return DRMP3_ERROR; - #endif - #ifdef ELIBACC - case ELIBACC: return DRMP3_ACCESS_DENIED; - #endif - #ifdef ELIBBAD - case ELIBBAD: return DRMP3_INVALID_FILE; - #endif - #ifdef ELIBSCN - case ELIBSCN: return DRMP3_INVALID_FILE; - #endif - #ifdef ELIBMAX - case ELIBMAX: return DRMP3_ERROR; - #endif - #ifdef ELIBEXEC - case ELIBEXEC: return DRMP3_ERROR; - #endif - #ifdef EILSEQ - case EILSEQ: return DRMP3_INVALID_DATA; - #endif - #ifdef ERESTART - case ERESTART: return DRMP3_ERROR; - #endif - #ifdef ESTRPIPE - case ESTRPIPE: return DRMP3_ERROR; - #endif - #ifdef EUSERS - case EUSERS: return DRMP3_ERROR; - #endif - #ifdef ENOTSOCK - case ENOTSOCK: return DRMP3_NOT_SOCKET; - #endif - #ifdef EDESTADDRREQ - case EDESTADDRREQ: return DRMP3_NO_ADDRESS; - #endif - #ifdef EMSGSIZE - case EMSGSIZE: return DRMP3_TOO_BIG; - #endif - #ifdef EPROTOTYPE - case EPROTOTYPE: return DRMP3_BAD_PROTOCOL; - #endif - #ifdef ENOPROTOOPT - case ENOPROTOOPT: return DRMP3_PROTOCOL_UNAVAILABLE; - #endif - #ifdef EPROTONOSUPPORT - case EPROTONOSUPPORT: return DRMP3_PROTOCOL_NOT_SUPPORTED; - #endif - #ifdef ESOCKTNOSUPPORT - case ESOCKTNOSUPPORT: return DRMP3_SOCKET_NOT_SUPPORTED; - #endif - #ifdef EOPNOTSUPP - case EOPNOTSUPP: return DRMP3_INVALID_OPERATION; - #endif - #ifdef EPFNOSUPPORT - case EPFNOSUPPORT: return DRMP3_PROTOCOL_FAMILY_NOT_SUPPORTED; - #endif - #ifdef EAFNOSUPPORT - case EAFNOSUPPORT: return DRMP3_ADDRESS_FAMILY_NOT_SUPPORTED; - #endif - #ifdef EADDRINUSE - case EADDRINUSE: return DRMP3_ALREADY_IN_USE; - #endif - #ifdef EADDRNOTAVAIL - case EADDRNOTAVAIL: return DRMP3_ERROR; - #endif - #ifdef ENETDOWN - case ENETDOWN: return DRMP3_NO_NETWORK; - #endif - #ifdef ENETUNREACH - case ENETUNREACH: return DRMP3_NO_NETWORK; - #endif - #ifdef ENETRESET - case ENETRESET: return DRMP3_NO_NETWORK; - #endif - #ifdef ECONNABORTED - case ECONNABORTED: return DRMP3_NO_NETWORK; - #endif - #ifdef ECONNRESET - case ECONNRESET: return DRMP3_CONNECTION_RESET; - #endif - #ifdef ENOBUFS - case ENOBUFS: return DRMP3_NO_SPACE; - #endif - #ifdef EISCONN - case EISCONN: return DRMP3_ALREADY_CONNECTED; - #endif - #ifdef ENOTCONN - case ENOTCONN: return DRMP3_NOT_CONNECTED; - #endif - #ifdef ESHUTDOWN - case ESHUTDOWN: return DRMP3_ERROR; - #endif - #ifdef ETOOMANYREFS - case ETOOMANYREFS: return DRMP3_ERROR; - #endif - #ifdef ETIMEDOUT - case ETIMEDOUT: return DRMP3_TIMEOUT; - #endif - #ifdef ECONNREFUSED - case ECONNREFUSED: return DRMP3_CONNECTION_REFUSED; - #endif - #ifdef EHOSTDOWN - case EHOSTDOWN: return DRMP3_NO_HOST; - #endif - #ifdef EHOSTUNREACH - case EHOSTUNREACH: return DRMP3_NO_HOST; - #endif - #ifdef EALREADY - case EALREADY: return DRMP3_IN_PROGRESS; - #endif - #ifdef EINPROGRESS - case EINPROGRESS: return DRMP3_IN_PROGRESS; - #endif - #ifdef ESTALE - case ESTALE: return DRMP3_INVALID_FILE; - #endif - #ifdef EUCLEAN - case EUCLEAN: return DRMP3_ERROR; - #endif - #ifdef ENOTNAM - case ENOTNAM: return DRMP3_ERROR; - #endif - #ifdef ENAVAIL - case ENAVAIL: return DRMP3_ERROR; - #endif - #ifdef EISNAM - case EISNAM: return DRMP3_ERROR; - #endif - #ifdef EREMOTEIO - case EREMOTEIO: return DRMP3_IO_ERROR; - #endif - #ifdef EDQUOT - case EDQUOT: return DRMP3_NO_SPACE; - #endif - #ifdef ENOMEDIUM - case ENOMEDIUM: return DRMP3_DOES_NOT_EXIST; - #endif - #ifdef EMEDIUMTYPE - case EMEDIUMTYPE: return DRMP3_ERROR; - #endif - #ifdef ECANCELED - case ECANCELED: return DRMP3_CANCELLED; - #endif - #ifdef ENOKEY - case ENOKEY: return DRMP3_ERROR; - #endif - #ifdef EKEYEXPIRED - case EKEYEXPIRED: return DRMP3_ERROR; - #endif - #ifdef EKEYREVOKED - case EKEYREVOKED: return DRMP3_ERROR; - #endif - #ifdef EKEYREJECTED - case EKEYREJECTED: return DRMP3_ERROR; - #endif - #ifdef EOWNERDEAD - case EOWNERDEAD: return DRMP3_ERROR; - #endif - #ifdef ENOTRECOVERABLE - case ENOTRECOVERABLE: return DRMP3_ERROR; - #endif - #ifdef ERFKILL - case ERFKILL: return DRMP3_ERROR; - #endif - #ifdef EHWPOISON - case EHWPOISON: return DRMP3_ERROR; - #endif - default: return DRMP3_ERROR; - } -} -static drmp3_result drmp3_fopen(FILE** ppFile, const char* pFilePath, const char* pOpenMode) -{ -#if defined(_MSC_VER) && _MSC_VER >= 1400 - errno_t err; -#endif - if (ppFile != NULL) { - *ppFile = NULL; - } - if (pFilePath == NULL || pOpenMode == NULL || ppFile == NULL) { - return DRMP3_INVALID_ARGS; - } -#if defined(_MSC_VER) && _MSC_VER >= 1400 - err = fopen_s(ppFile, pFilePath, pOpenMode); - if (err != 0) { - return drmp3_result_from_errno(err); - } -#else -#if defined(_WIN32) || defined(__APPLE__) - *ppFile = fopen(pFilePath, pOpenMode); -#else - #if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64 && defined(_LARGEFILE64_SOURCE) - *ppFile = fopen64(pFilePath, pOpenMode); - #else - *ppFile = fopen(pFilePath, pOpenMode); - #endif -#endif - if (*ppFile == NULL) { - drmp3_result result = drmp3_result_from_errno(errno); - if (result == DRMP3_SUCCESS) { - result = DRMP3_ERROR; - } - return result; - } -#endif - return DRMP3_SUCCESS; -} -#if defined(_WIN32) - #if defined(_MSC_VER) || defined(__MINGW64__) || (!defined(__STRICT_ANSI__) && !defined(_NO_EXT_KEYS)) - #define DRMP3_HAS_WFOPEN - #endif -#endif -static drmp3_result drmp3_wfopen(FILE** ppFile, const wchar_t* pFilePath, const wchar_t* pOpenMode, const drmp3_allocation_callbacks* pAllocationCallbacks) -{ - if (ppFile != NULL) { - *ppFile = NULL; - } - if (pFilePath == NULL || pOpenMode == NULL || ppFile == NULL) { - return DRMP3_INVALID_ARGS; - } -#if defined(DRMP3_HAS_WFOPEN) - { - #if defined(_MSC_VER) && _MSC_VER >= 1400 - errno_t err = _wfopen_s(ppFile, pFilePath, pOpenMode); - if (err != 0) { - return drmp3_result_from_errno(err); - } - #else - *ppFile = _wfopen(pFilePath, pOpenMode); - if (*ppFile == NULL) { - return drmp3_result_from_errno(errno); - } - #endif - (void)pAllocationCallbacks; - } -#else - { - mbstate_t mbs; - size_t lenMB; - const wchar_t* pFilePathTemp = pFilePath; - char* pFilePathMB = NULL; - char pOpenModeMB[32] = {0}; - DRMP3_ZERO_OBJECT(&mbs); - lenMB = wcsrtombs(NULL, &pFilePathTemp, 0, &mbs); - if (lenMB == (size_t)-1) { - return drmp3_result_from_errno(errno); - } - pFilePathMB = (char*)drmp3__malloc_from_callbacks(lenMB + 1, pAllocationCallbacks); - if (pFilePathMB == NULL) { - return DRMP3_OUT_OF_MEMORY; - } - pFilePathTemp = pFilePath; - DRMP3_ZERO_OBJECT(&mbs); - wcsrtombs(pFilePathMB, &pFilePathTemp, lenMB + 1, &mbs); - { - size_t i = 0; - for (;;) { - if (pOpenMode[i] == 0) { - pOpenModeMB[i] = '\0'; - break; - } - pOpenModeMB[i] = (char)pOpenMode[i]; - i += 1; - } - } - *ppFile = fopen(pFilePathMB, pOpenModeMB); - drmp3__free_from_callbacks(pFilePathMB, pAllocationCallbacks); - } - if (*ppFile == NULL) { - return DRMP3_ERROR; - } -#endif - return DRMP3_SUCCESS; -} -static size_t drmp3__on_read_stdio(void* pUserData, void* pBufferOut, size_t bytesToRead) +static size_t ma_dr_mp3__on_read_stdio(void* pUserData, void* pBufferOut, size_t bytesToRead) { return fread(pBufferOut, 1, bytesToRead, (FILE*)pUserData); } -static drmp3_bool32 drmp3__on_seek_stdio(void* pUserData, int offset, drmp3_seek_origin origin) +static ma_bool32 ma_dr_mp3__on_seek_stdio(void* pUserData, int offset, ma_dr_mp3_seek_origin origin) { - return fseek((FILE*)pUserData, offset, (origin == drmp3_seek_origin_current) ? SEEK_CUR : SEEK_SET) == 0; + return fseek((FILE*)pUserData, offset, (origin == ma_dr_mp3_seek_origin_current) ? SEEK_CUR : SEEK_SET) == 0; } -DRMP3_API drmp3_bool32 drmp3_init_file(drmp3* pMP3, const char* pFilePath, const drmp3_allocation_callbacks* pAllocationCallbacks) +MA_API ma_bool32 ma_dr_mp3_init_file(ma_dr_mp3* pMP3, const char* pFilePath, const ma_allocation_callbacks* pAllocationCallbacks) { - drmp3_bool32 result; + ma_bool32 result; FILE* pFile; - if (drmp3_fopen(&pFile, pFilePath, "rb") != DRMP3_SUCCESS) { - return DRMP3_FALSE; + if (ma_fopen(&pFile, pFilePath, "rb") != MA_SUCCESS) { + return MA_FALSE; } - result = drmp3_init(pMP3, drmp3__on_read_stdio, drmp3__on_seek_stdio, (void*)pFile, pAllocationCallbacks); - if (result != DRMP3_TRUE) { + result = ma_dr_mp3_init(pMP3, ma_dr_mp3__on_read_stdio, ma_dr_mp3__on_seek_stdio, (void*)pFile, pAllocationCallbacks); + if (result != MA_TRUE) { fclose(pFile); return result; } - return DRMP3_TRUE; + return MA_TRUE; } -DRMP3_API drmp3_bool32 drmp3_init_file_w(drmp3* pMP3, const wchar_t* pFilePath, const drmp3_allocation_callbacks* pAllocationCallbacks) +MA_API ma_bool32 ma_dr_mp3_init_file_w(ma_dr_mp3* pMP3, const wchar_t* pFilePath, const ma_allocation_callbacks* pAllocationCallbacks) { - drmp3_bool32 result; + ma_bool32 result; FILE* pFile; - if (drmp3_wfopen(&pFile, pFilePath, L"rb", pAllocationCallbacks) != DRMP3_SUCCESS) { - return DRMP3_FALSE; + if (ma_wfopen(&pFile, pFilePath, L"rb", pAllocationCallbacks) != MA_SUCCESS) { + return MA_FALSE; } - result = drmp3_init(pMP3, drmp3__on_read_stdio, drmp3__on_seek_stdio, (void*)pFile, pAllocationCallbacks); - if (result != DRMP3_TRUE) { + result = ma_dr_mp3_init(pMP3, ma_dr_mp3__on_read_stdio, ma_dr_mp3__on_seek_stdio, (void*)pFile, pAllocationCallbacks); + if (result != MA_TRUE) { fclose(pFile); return result; } - return DRMP3_TRUE; + return MA_TRUE; } #endif -DRMP3_API void drmp3_uninit(drmp3* pMP3) +MA_API void ma_dr_mp3_uninit(ma_dr_mp3* pMP3) { if (pMP3 == NULL) { return; } -#ifndef DR_MP3_NO_STDIO - if (pMP3->onRead == drmp3__on_read_stdio) { +#ifndef MA_DR_MP3_NO_STDIO + if (pMP3->onRead == ma_dr_mp3__on_read_stdio) { FILE* pFile = (FILE*)pMP3->pUserData; if (pFile != NULL) { fclose(pFile); @@ -89800,14 +91958,14 @@ DRMP3_API void drmp3_uninit(drmp3* pMP3) } } #endif - drmp3__free_from_callbacks(pMP3->pData, &pMP3->allocationCallbacks); + ma_dr_mp3__free_from_callbacks(pMP3->pData, &pMP3->allocationCallbacks); } -#if defined(DR_MP3_FLOAT_OUTPUT) -static void drmp3_f32_to_s16(drmp3_int16* dst, const float* src, drmp3_uint64 sampleCount) +#if defined(MA_DR_MP3_FLOAT_OUTPUT) +static void ma_dr_mp3_f32_to_s16(ma_int16* dst, const float* src, ma_uint64 sampleCount) { - drmp3_uint64 i; - drmp3_uint64 i4; - drmp3_uint64 sampleCount4; + ma_uint64 i; + ma_uint64 i4; + ma_uint64 sampleCount4; i = 0; sampleCount4 = sampleCount >> 2; for (i4 = 0; i4 < sampleCount4; i4 += 1) { @@ -89823,24 +91981,24 @@ static void drmp3_f32_to_s16(drmp3_int16* dst, const float* src, drmp3_uint64 sa x1 = x1 * 32767.0f; x2 = x2 * 32767.0f; x3 = x3 * 32767.0f; - dst[i+0] = (drmp3_int16)x0; - dst[i+1] = (drmp3_int16)x1; - dst[i+2] = (drmp3_int16)x2; - dst[i+3] = (drmp3_int16)x3; + dst[i+0] = (ma_int16)x0; + dst[i+1] = (ma_int16)x1; + dst[i+2] = (ma_int16)x2; + dst[i+3] = (ma_int16)x3; i += 4; } for (; i < sampleCount; i += 1) { float x = src[i]; x = ((x < -1) ? -1 : ((x > 1) ? 1 : x)); x = x * 32767.0f; - dst[i] = (drmp3_int16)x; + dst[i] = (ma_int16)x; } } #endif -#if !defined(DR_MP3_FLOAT_OUTPUT) -static void drmp3_s16_to_f32(float* dst, const drmp3_int16* src, drmp3_uint64 sampleCount) +#if !defined(MA_DR_MP3_FLOAT_OUTPUT) +static void ma_dr_mp3_s16_to_f32(float* dst, const ma_int16* src, ma_uint64 sampleCount) { - drmp3_uint64 i; + ma_uint64 i; for (i = 0; i < sampleCount; i += 1) { float x = (float)src[i]; x = x * 0.000030517578125f; @@ -89848,22 +92006,22 @@ static void drmp3_s16_to_f32(float* dst, const drmp3_int16* src, drmp3_uint64 sa } } #endif -static drmp3_uint64 drmp3_read_pcm_frames_raw(drmp3* pMP3, drmp3_uint64 framesToRead, void* pBufferOut) +static ma_uint64 ma_dr_mp3_read_pcm_frames_raw(ma_dr_mp3* pMP3, ma_uint64 framesToRead, void* pBufferOut) { - drmp3_uint64 totalFramesRead = 0; - DRMP3_ASSERT(pMP3 != NULL); - DRMP3_ASSERT(pMP3->onRead != NULL); + ma_uint64 totalFramesRead = 0; + MA_DR_MP3_ASSERT(pMP3 != NULL); + MA_DR_MP3_ASSERT(pMP3->onRead != NULL); while (framesToRead > 0) { - drmp3_uint32 framesToConsume = (drmp3_uint32)DRMP3_MIN(pMP3->pcmFramesRemainingInMP3Frame, framesToRead); + ma_uint32 framesToConsume = (ma_uint32)MA_DR_MP3_MIN(pMP3->pcmFramesRemainingInMP3Frame, framesToRead); if (pBufferOut != NULL) { - #if defined(DR_MP3_FLOAT_OUTPUT) - float* pFramesOutF32 = (float*)DRMP3_OFFSET_PTR(pBufferOut, sizeof(float) * totalFramesRead * pMP3->channels); - float* pFramesInF32 = (float*)DRMP3_OFFSET_PTR(&pMP3->pcmFrames[0], sizeof(float) * pMP3->pcmFramesConsumedInMP3Frame * pMP3->mp3FrameChannels); - DRMP3_COPY_MEMORY(pFramesOutF32, pFramesInF32, sizeof(float) * framesToConsume * pMP3->channels); + #if defined(MA_DR_MP3_FLOAT_OUTPUT) + float* pFramesOutF32 = (float*)MA_DR_MP3_OFFSET_PTR(pBufferOut, sizeof(float) * totalFramesRead * pMP3->channels); + float* pFramesInF32 = (float*)MA_DR_MP3_OFFSET_PTR(&pMP3->pcmFrames[0], sizeof(float) * pMP3->pcmFramesConsumedInMP3Frame * pMP3->mp3FrameChannels); + MA_DR_MP3_COPY_MEMORY(pFramesOutF32, pFramesInF32, sizeof(float) * framesToConsume * pMP3->channels); #else - drmp3_int16* pFramesOutS16 = (drmp3_int16*)DRMP3_OFFSET_PTR(pBufferOut, sizeof(drmp3_int16) * totalFramesRead * pMP3->channels); - drmp3_int16* pFramesInS16 = (drmp3_int16*)DRMP3_OFFSET_PTR(&pMP3->pcmFrames[0], sizeof(drmp3_int16) * pMP3->pcmFramesConsumedInMP3Frame * pMP3->mp3FrameChannels); - DRMP3_COPY_MEMORY(pFramesOutS16, pFramesInS16, sizeof(drmp3_int16) * framesToConsume * pMP3->channels); + ma_int16* pFramesOutS16 = (ma_int16*)MA_DR_MP3_OFFSET_PTR(pBufferOut, sizeof(ma_int16) * totalFramesRead * pMP3->channels); + ma_int16* pFramesInS16 = (ma_int16*)MA_DR_MP3_OFFSET_PTR(&pMP3->pcmFrames[0], sizeof(ma_int16) * pMP3->pcmFramesConsumedInMP3Frame * pMP3->mp3FrameChannels); + MA_DR_MP3_COPY_MEMORY(pFramesOutS16, pFramesInS16, sizeof(ma_int16) * framesToConsume * pMP3->channels); #endif } pMP3->currentPCMFrame += framesToConsume; @@ -89874,125 +92032,125 @@ static drmp3_uint64 drmp3_read_pcm_frames_raw(drmp3* pMP3, drmp3_uint64 framesTo if (framesToRead == 0) { break; } - DRMP3_ASSERT(pMP3->pcmFramesRemainingInMP3Frame == 0); - if (drmp3_decode_next_frame(pMP3) == 0) { + MA_DR_MP3_ASSERT(pMP3->pcmFramesRemainingInMP3Frame == 0); + if (ma_dr_mp3_decode_next_frame(pMP3) == 0) { break; } } return totalFramesRead; } -DRMP3_API drmp3_uint64 drmp3_read_pcm_frames_f32(drmp3* pMP3, drmp3_uint64 framesToRead, float* pBufferOut) +MA_API ma_uint64 ma_dr_mp3_read_pcm_frames_f32(ma_dr_mp3* pMP3, ma_uint64 framesToRead, float* pBufferOut) { if (pMP3 == NULL || pMP3->onRead == NULL) { return 0; } -#if defined(DR_MP3_FLOAT_OUTPUT) - return drmp3_read_pcm_frames_raw(pMP3, framesToRead, pBufferOut); +#if defined(MA_DR_MP3_FLOAT_OUTPUT) + return ma_dr_mp3_read_pcm_frames_raw(pMP3, framesToRead, pBufferOut); #else { - drmp3_int16 pTempS16[8192]; - drmp3_uint64 totalPCMFramesRead = 0; + ma_int16 pTempS16[8192]; + ma_uint64 totalPCMFramesRead = 0; while (totalPCMFramesRead < framesToRead) { - drmp3_uint64 framesJustRead; - drmp3_uint64 framesRemaining = framesToRead - totalPCMFramesRead; - drmp3_uint64 framesToReadNow = DRMP3_COUNTOF(pTempS16) / pMP3->channels; + ma_uint64 framesJustRead; + ma_uint64 framesRemaining = framesToRead - totalPCMFramesRead; + ma_uint64 framesToReadNow = MA_DR_MP3_COUNTOF(pTempS16) / pMP3->channels; if (framesToReadNow > framesRemaining) { framesToReadNow = framesRemaining; } - framesJustRead = drmp3_read_pcm_frames_raw(pMP3, framesToReadNow, pTempS16); + framesJustRead = ma_dr_mp3_read_pcm_frames_raw(pMP3, framesToReadNow, pTempS16); if (framesJustRead == 0) { break; } - drmp3_s16_to_f32((float*)DRMP3_OFFSET_PTR(pBufferOut, sizeof(float) * totalPCMFramesRead * pMP3->channels), pTempS16, framesJustRead * pMP3->channels); + ma_dr_mp3_s16_to_f32((float*)MA_DR_MP3_OFFSET_PTR(pBufferOut, sizeof(float) * totalPCMFramesRead * pMP3->channels), pTempS16, framesJustRead * pMP3->channels); totalPCMFramesRead += framesJustRead; } return totalPCMFramesRead; } #endif } -DRMP3_API drmp3_uint64 drmp3_read_pcm_frames_s16(drmp3* pMP3, drmp3_uint64 framesToRead, drmp3_int16* pBufferOut) +MA_API ma_uint64 ma_dr_mp3_read_pcm_frames_s16(ma_dr_mp3* pMP3, ma_uint64 framesToRead, ma_int16* pBufferOut) { if (pMP3 == NULL || pMP3->onRead == NULL) { return 0; } -#if !defined(DR_MP3_FLOAT_OUTPUT) - return drmp3_read_pcm_frames_raw(pMP3, framesToRead, pBufferOut); +#if !defined(MA_DR_MP3_FLOAT_OUTPUT) + return ma_dr_mp3_read_pcm_frames_raw(pMP3, framesToRead, pBufferOut); #else { float pTempF32[4096]; - drmp3_uint64 totalPCMFramesRead = 0; + ma_uint64 totalPCMFramesRead = 0; while (totalPCMFramesRead < framesToRead) { - drmp3_uint64 framesJustRead; - drmp3_uint64 framesRemaining = framesToRead - totalPCMFramesRead; - drmp3_uint64 framesToReadNow = DRMP3_COUNTOF(pTempF32) / pMP3->channels; + ma_uint64 framesJustRead; + ma_uint64 framesRemaining = framesToRead - totalPCMFramesRead; + ma_uint64 framesToReadNow = MA_DR_MP3_COUNTOF(pTempF32) / pMP3->channels; if (framesToReadNow > framesRemaining) { framesToReadNow = framesRemaining; } - framesJustRead = drmp3_read_pcm_frames_raw(pMP3, framesToReadNow, pTempF32); + framesJustRead = ma_dr_mp3_read_pcm_frames_raw(pMP3, framesToReadNow, pTempF32); if (framesJustRead == 0) { break; } - drmp3_f32_to_s16((drmp3_int16*)DRMP3_OFFSET_PTR(pBufferOut, sizeof(drmp3_int16) * totalPCMFramesRead * pMP3->channels), pTempF32, framesJustRead * pMP3->channels); + ma_dr_mp3_f32_to_s16((ma_int16*)MA_DR_MP3_OFFSET_PTR(pBufferOut, sizeof(ma_int16) * totalPCMFramesRead * pMP3->channels), pTempF32, framesJustRead * pMP3->channels); totalPCMFramesRead += framesJustRead; } return totalPCMFramesRead; } #endif } -static void drmp3_reset(drmp3* pMP3) +static void ma_dr_mp3_reset(ma_dr_mp3* pMP3) { - DRMP3_ASSERT(pMP3 != NULL); + MA_DR_MP3_ASSERT(pMP3 != NULL); pMP3->pcmFramesConsumedInMP3Frame = 0; pMP3->pcmFramesRemainingInMP3Frame = 0; pMP3->currentPCMFrame = 0; pMP3->dataSize = 0; - pMP3->atEnd = DRMP3_FALSE; - drmp3dec_init(&pMP3->decoder); + pMP3->atEnd = MA_FALSE; + ma_dr_mp3dec_init(&pMP3->decoder); } -static drmp3_bool32 drmp3_seek_to_start_of_stream(drmp3* pMP3) +static ma_bool32 ma_dr_mp3_seek_to_start_of_stream(ma_dr_mp3* pMP3) { - DRMP3_ASSERT(pMP3 != NULL); - DRMP3_ASSERT(pMP3->onSeek != NULL); - if (!drmp3__on_seek(pMP3, 0, drmp3_seek_origin_start)) { - return DRMP3_FALSE; + MA_DR_MP3_ASSERT(pMP3 != NULL); + MA_DR_MP3_ASSERT(pMP3->onSeek != NULL); + if (!ma_dr_mp3__on_seek(pMP3, 0, ma_dr_mp3_seek_origin_start)) { + return MA_FALSE; } - drmp3_reset(pMP3); - return DRMP3_TRUE; + ma_dr_mp3_reset(pMP3); + return MA_TRUE; } -static drmp3_bool32 drmp3_seek_forward_by_pcm_frames__brute_force(drmp3* pMP3, drmp3_uint64 frameOffset) +static ma_bool32 ma_dr_mp3_seek_forward_by_pcm_frames__brute_force(ma_dr_mp3* pMP3, ma_uint64 frameOffset) { - drmp3_uint64 framesRead; -#if defined(DR_MP3_FLOAT_OUTPUT) - framesRead = drmp3_read_pcm_frames_f32(pMP3, frameOffset, NULL); + ma_uint64 framesRead; +#if defined(MA_DR_MP3_FLOAT_OUTPUT) + framesRead = ma_dr_mp3_read_pcm_frames_f32(pMP3, frameOffset, NULL); #else - framesRead = drmp3_read_pcm_frames_s16(pMP3, frameOffset, NULL); + framesRead = ma_dr_mp3_read_pcm_frames_s16(pMP3, frameOffset, NULL); #endif if (framesRead != frameOffset) { - return DRMP3_FALSE; + return MA_FALSE; } - return DRMP3_TRUE; + return MA_TRUE; } -static drmp3_bool32 drmp3_seek_to_pcm_frame__brute_force(drmp3* pMP3, drmp3_uint64 frameIndex) +static ma_bool32 ma_dr_mp3_seek_to_pcm_frame__brute_force(ma_dr_mp3* pMP3, ma_uint64 frameIndex) { - DRMP3_ASSERT(pMP3 != NULL); + MA_DR_MP3_ASSERT(pMP3 != NULL); if (frameIndex == pMP3->currentPCMFrame) { - return DRMP3_TRUE; + return MA_TRUE; } if (frameIndex < pMP3->currentPCMFrame) { - if (!drmp3_seek_to_start_of_stream(pMP3)) { - return DRMP3_FALSE; + if (!ma_dr_mp3_seek_to_start_of_stream(pMP3)) { + return MA_FALSE; } } - DRMP3_ASSERT(frameIndex >= pMP3->currentPCMFrame); - return drmp3_seek_forward_by_pcm_frames__brute_force(pMP3, (frameIndex - pMP3->currentPCMFrame)); + MA_DR_MP3_ASSERT(frameIndex >= pMP3->currentPCMFrame); + return ma_dr_mp3_seek_forward_by_pcm_frames__brute_force(pMP3, (frameIndex - pMP3->currentPCMFrame)); } -static drmp3_bool32 drmp3_find_closest_seek_point(drmp3* pMP3, drmp3_uint64 frameIndex, drmp3_uint32* pSeekPointIndex) +static ma_bool32 ma_dr_mp3_find_closest_seek_point(ma_dr_mp3* pMP3, ma_uint64 frameIndex, ma_uint32* pSeekPointIndex) { - drmp3_uint32 iSeekPoint; - DRMP3_ASSERT(pSeekPointIndex != NULL); + ma_uint32 iSeekPoint; + MA_DR_MP3_ASSERT(pSeekPointIndex != NULL); *pSeekPointIndex = 0; if (frameIndex < pMP3->pSeekPoints[0].pcmFrameIndex) { - return DRMP3_FALSE; + return MA_FALSE; } for (iSeekPoint = 0; iSeekPoint < pMP3->seekPointCount; ++iSeekPoint) { if (pMP3->pSeekPoints[iSeekPoint].pcmFrameIndex > frameIndex) { @@ -90000,18 +92158,18 @@ static drmp3_bool32 drmp3_find_closest_seek_point(drmp3* pMP3, drmp3_uint64 fram } *pSeekPointIndex = iSeekPoint; } - return DRMP3_TRUE; + return MA_TRUE; } -static drmp3_bool32 drmp3_seek_to_pcm_frame__seek_table(drmp3* pMP3, drmp3_uint64 frameIndex) +static ma_bool32 ma_dr_mp3_seek_to_pcm_frame__seek_table(ma_dr_mp3* pMP3, ma_uint64 frameIndex) { - drmp3_seek_point seekPoint; - drmp3_uint32 priorSeekPointIndex; - drmp3_uint16 iMP3Frame; - drmp3_uint64 leftoverFrames; - DRMP3_ASSERT(pMP3 != NULL); - DRMP3_ASSERT(pMP3->pSeekPoints != NULL); - DRMP3_ASSERT(pMP3->seekPointCount > 0); - if (drmp3_find_closest_seek_point(pMP3, frameIndex, &priorSeekPointIndex)) { + ma_dr_mp3_seek_point seekPoint; + ma_uint32 priorSeekPointIndex; + ma_uint16 iMP3Frame; + ma_uint64 leftoverFrames; + MA_DR_MP3_ASSERT(pMP3 != NULL); + MA_DR_MP3_ASSERT(pMP3->pSeekPoints != NULL); + MA_DR_MP3_ASSERT(pMP3->seekPointCount > 0); + if (ma_dr_mp3_find_closest_seek_point(pMP3, frameIndex, &priorSeekPointIndex)) { seekPoint = pMP3->pSeekPoints[priorSeekPointIndex]; } else { seekPoint.seekPosInBytes = 0; @@ -90019,71 +92177,71 @@ static drmp3_bool32 drmp3_seek_to_pcm_frame__seek_table(drmp3* pMP3, drmp3_uint6 seekPoint.mp3FramesToDiscard = 0; seekPoint.pcmFramesToDiscard = 0; } - if (!drmp3__on_seek_64(pMP3, seekPoint.seekPosInBytes, drmp3_seek_origin_start)) { - return DRMP3_FALSE; + if (!ma_dr_mp3__on_seek_64(pMP3, seekPoint.seekPosInBytes, ma_dr_mp3_seek_origin_start)) { + return MA_FALSE; } - drmp3_reset(pMP3); + ma_dr_mp3_reset(pMP3); for (iMP3Frame = 0; iMP3Frame < seekPoint.mp3FramesToDiscard; ++iMP3Frame) { - drmp3_uint32 pcmFramesRead; - drmp3d_sample_t* pPCMFrames; + ma_uint32 pcmFramesRead; + ma_dr_mp3d_sample_t* pPCMFrames; pPCMFrames = NULL; if (iMP3Frame == seekPoint.mp3FramesToDiscard-1) { - pPCMFrames = (drmp3d_sample_t*)pMP3->pcmFrames; + pPCMFrames = (ma_dr_mp3d_sample_t*)pMP3->pcmFrames; } - pcmFramesRead = drmp3_decode_next_frame_ex(pMP3, pPCMFrames); + pcmFramesRead = ma_dr_mp3_decode_next_frame_ex(pMP3, pPCMFrames); if (pcmFramesRead == 0) { - return DRMP3_FALSE; + return MA_FALSE; } } pMP3->currentPCMFrame = seekPoint.pcmFrameIndex - seekPoint.pcmFramesToDiscard; leftoverFrames = frameIndex - pMP3->currentPCMFrame; - return drmp3_seek_forward_by_pcm_frames__brute_force(pMP3, leftoverFrames); + return ma_dr_mp3_seek_forward_by_pcm_frames__brute_force(pMP3, leftoverFrames); } -DRMP3_API drmp3_bool32 drmp3_seek_to_pcm_frame(drmp3* pMP3, drmp3_uint64 frameIndex) +MA_API ma_bool32 ma_dr_mp3_seek_to_pcm_frame(ma_dr_mp3* pMP3, ma_uint64 frameIndex) { if (pMP3 == NULL || pMP3->onSeek == NULL) { - return DRMP3_FALSE; + return MA_FALSE; } if (frameIndex == 0) { - return drmp3_seek_to_start_of_stream(pMP3); + return ma_dr_mp3_seek_to_start_of_stream(pMP3); } if (pMP3->pSeekPoints != NULL && pMP3->seekPointCount > 0) { - return drmp3_seek_to_pcm_frame__seek_table(pMP3, frameIndex); + return ma_dr_mp3_seek_to_pcm_frame__seek_table(pMP3, frameIndex); } else { - return drmp3_seek_to_pcm_frame__brute_force(pMP3, frameIndex); + return ma_dr_mp3_seek_to_pcm_frame__brute_force(pMP3, frameIndex); } } -DRMP3_API drmp3_bool32 drmp3_get_mp3_and_pcm_frame_count(drmp3* pMP3, drmp3_uint64* pMP3FrameCount, drmp3_uint64* pPCMFrameCount) +MA_API ma_bool32 ma_dr_mp3_get_mp3_and_pcm_frame_count(ma_dr_mp3* pMP3, ma_uint64* pMP3FrameCount, ma_uint64* pPCMFrameCount) { - drmp3_uint64 currentPCMFrame; - drmp3_uint64 totalPCMFrameCount; - drmp3_uint64 totalMP3FrameCount; + ma_uint64 currentPCMFrame; + ma_uint64 totalPCMFrameCount; + ma_uint64 totalMP3FrameCount; if (pMP3 == NULL) { - return DRMP3_FALSE; + return MA_FALSE; } if (pMP3->onSeek == NULL) { - return DRMP3_FALSE; + return MA_FALSE; } currentPCMFrame = pMP3->currentPCMFrame; - if (!drmp3_seek_to_start_of_stream(pMP3)) { - return DRMP3_FALSE; + if (!ma_dr_mp3_seek_to_start_of_stream(pMP3)) { + return MA_FALSE; } totalPCMFrameCount = 0; totalMP3FrameCount = 0; for (;;) { - drmp3_uint32 pcmFramesInCurrentMP3Frame; - pcmFramesInCurrentMP3Frame = drmp3_decode_next_frame_ex(pMP3, NULL); + ma_uint32 pcmFramesInCurrentMP3Frame; + pcmFramesInCurrentMP3Frame = ma_dr_mp3_decode_next_frame_ex(pMP3, NULL); if (pcmFramesInCurrentMP3Frame == 0) { break; } totalPCMFrameCount += pcmFramesInCurrentMP3Frame; totalMP3FrameCount += 1; } - if (!drmp3_seek_to_start_of_stream(pMP3)) { - return DRMP3_FALSE; + if (!ma_dr_mp3_seek_to_start_of_stream(pMP3)) { + return MA_FALSE; } - if (!drmp3_seek_to_pcm_frame(pMP3, currentPCMFrame)) { - return DRMP3_FALSE; + if (!ma_dr_mp3_seek_to_pcm_frame(pMP3, currentPCMFrame)) { + return MA_FALSE; } if (pMP3FrameCount != NULL) { *pMP3FrameCount = totalMP3FrameCount; @@ -90091,89 +92249,89 @@ DRMP3_API drmp3_bool32 drmp3_get_mp3_and_pcm_frame_count(drmp3* pMP3, drmp3_uint if (pPCMFrameCount != NULL) { *pPCMFrameCount = totalPCMFrameCount; } - return DRMP3_TRUE; + return MA_TRUE; } -DRMP3_API drmp3_uint64 drmp3_get_pcm_frame_count(drmp3* pMP3) +MA_API ma_uint64 ma_dr_mp3_get_pcm_frame_count(ma_dr_mp3* pMP3) { - drmp3_uint64 totalPCMFrameCount; - if (!drmp3_get_mp3_and_pcm_frame_count(pMP3, NULL, &totalPCMFrameCount)) { + ma_uint64 totalPCMFrameCount; + if (!ma_dr_mp3_get_mp3_and_pcm_frame_count(pMP3, NULL, &totalPCMFrameCount)) { return 0; } return totalPCMFrameCount; } -DRMP3_API drmp3_uint64 drmp3_get_mp3_frame_count(drmp3* pMP3) +MA_API ma_uint64 ma_dr_mp3_get_mp3_frame_count(ma_dr_mp3* pMP3) { - drmp3_uint64 totalMP3FrameCount; - if (!drmp3_get_mp3_and_pcm_frame_count(pMP3, &totalMP3FrameCount, NULL)) { + ma_uint64 totalMP3FrameCount; + if (!ma_dr_mp3_get_mp3_and_pcm_frame_count(pMP3, &totalMP3FrameCount, NULL)) { return 0; } return totalMP3FrameCount; } -static void drmp3__accumulate_running_pcm_frame_count(drmp3* pMP3, drmp3_uint32 pcmFrameCountIn, drmp3_uint64* pRunningPCMFrameCount, float* pRunningPCMFrameCountFractionalPart) +static void ma_dr_mp3__accumulate_running_pcm_frame_count(ma_dr_mp3* pMP3, ma_uint32 pcmFrameCountIn, ma_uint64* pRunningPCMFrameCount, float* pRunningPCMFrameCountFractionalPart) { float srcRatio; float pcmFrameCountOutF; - drmp3_uint32 pcmFrameCountOut; + ma_uint32 pcmFrameCountOut; srcRatio = (float)pMP3->mp3FrameSampleRate / (float)pMP3->sampleRate; - DRMP3_ASSERT(srcRatio > 0); + MA_DR_MP3_ASSERT(srcRatio > 0); pcmFrameCountOutF = *pRunningPCMFrameCountFractionalPart + (pcmFrameCountIn / srcRatio); - pcmFrameCountOut = (drmp3_uint32)pcmFrameCountOutF; + pcmFrameCountOut = (ma_uint32)pcmFrameCountOutF; *pRunningPCMFrameCountFractionalPart = pcmFrameCountOutF - pcmFrameCountOut; *pRunningPCMFrameCount += pcmFrameCountOut; } typedef struct { - drmp3_uint64 bytePos; - drmp3_uint64 pcmFrameIndex; -} drmp3__seeking_mp3_frame_info; -DRMP3_API drmp3_bool32 drmp3_calculate_seek_points(drmp3* pMP3, drmp3_uint32* pSeekPointCount, drmp3_seek_point* pSeekPoints) + ma_uint64 bytePos; + ma_uint64 pcmFrameIndex; +} ma_dr_mp3__seeking_mp3_frame_info; +MA_API ma_bool32 ma_dr_mp3_calculate_seek_points(ma_dr_mp3* pMP3, ma_uint32* pSeekPointCount, ma_dr_mp3_seek_point* pSeekPoints) { - drmp3_uint32 seekPointCount; - drmp3_uint64 currentPCMFrame; - drmp3_uint64 totalMP3FrameCount; - drmp3_uint64 totalPCMFrameCount; + ma_uint32 seekPointCount; + ma_uint64 currentPCMFrame; + ma_uint64 totalMP3FrameCount; + ma_uint64 totalPCMFrameCount; if (pMP3 == NULL || pSeekPointCount == NULL || pSeekPoints == NULL) { - return DRMP3_FALSE; + return MA_FALSE; } seekPointCount = *pSeekPointCount; if (seekPointCount == 0) { - return DRMP3_FALSE; + return MA_FALSE; } currentPCMFrame = pMP3->currentPCMFrame; - if (!drmp3_get_mp3_and_pcm_frame_count(pMP3, &totalMP3FrameCount, &totalPCMFrameCount)) { - return DRMP3_FALSE; + if (!ma_dr_mp3_get_mp3_and_pcm_frame_count(pMP3, &totalMP3FrameCount, &totalPCMFrameCount)) { + return MA_FALSE; } - if (totalMP3FrameCount < DRMP3_SEEK_LEADING_MP3_FRAMES+1) { + if (totalMP3FrameCount < MA_DR_MP3_SEEK_LEADING_MP3_FRAMES+1) { seekPointCount = 1; pSeekPoints[0].seekPosInBytes = 0; pSeekPoints[0].pcmFrameIndex = 0; pSeekPoints[0].mp3FramesToDiscard = 0; pSeekPoints[0].pcmFramesToDiscard = 0; } else { - drmp3_uint64 pcmFramesBetweenSeekPoints; - drmp3__seeking_mp3_frame_info mp3FrameInfo[DRMP3_SEEK_LEADING_MP3_FRAMES+1]; - drmp3_uint64 runningPCMFrameCount = 0; + ma_uint64 pcmFramesBetweenSeekPoints; + ma_dr_mp3__seeking_mp3_frame_info mp3FrameInfo[MA_DR_MP3_SEEK_LEADING_MP3_FRAMES+1]; + ma_uint64 runningPCMFrameCount = 0; float runningPCMFrameCountFractionalPart = 0; - drmp3_uint64 nextTargetPCMFrame; - drmp3_uint32 iMP3Frame; - drmp3_uint32 iSeekPoint; + ma_uint64 nextTargetPCMFrame; + ma_uint32 iMP3Frame; + ma_uint32 iSeekPoint; if (seekPointCount > totalMP3FrameCount-1) { - seekPointCount = (drmp3_uint32)totalMP3FrameCount-1; + seekPointCount = (ma_uint32)totalMP3FrameCount-1; } pcmFramesBetweenSeekPoints = totalPCMFrameCount / (seekPointCount+1); - if (!drmp3_seek_to_start_of_stream(pMP3)) { - return DRMP3_FALSE; + if (!ma_dr_mp3_seek_to_start_of_stream(pMP3)) { + return MA_FALSE; } - for (iMP3Frame = 0; iMP3Frame < DRMP3_SEEK_LEADING_MP3_FRAMES+1; ++iMP3Frame) { - drmp3_uint32 pcmFramesInCurrentMP3FrameIn; - DRMP3_ASSERT(pMP3->streamCursor >= pMP3->dataSize); + for (iMP3Frame = 0; iMP3Frame < MA_DR_MP3_SEEK_LEADING_MP3_FRAMES+1; ++iMP3Frame) { + ma_uint32 pcmFramesInCurrentMP3FrameIn; + MA_DR_MP3_ASSERT(pMP3->streamCursor >= pMP3->dataSize); mp3FrameInfo[iMP3Frame].bytePos = pMP3->streamCursor - pMP3->dataSize; mp3FrameInfo[iMP3Frame].pcmFrameIndex = runningPCMFrameCount; - pcmFramesInCurrentMP3FrameIn = drmp3_decode_next_frame_ex(pMP3, NULL); + pcmFramesInCurrentMP3FrameIn = ma_dr_mp3_decode_next_frame_ex(pMP3, NULL); if (pcmFramesInCurrentMP3FrameIn == 0) { - return DRMP3_FALSE; + return MA_FALSE; } - drmp3__accumulate_running_pcm_frame_count(pMP3, pcmFramesInCurrentMP3FrameIn, &runningPCMFrameCount, &runningPCMFrameCountFractionalPart); + ma_dr_mp3__accumulate_running_pcm_frame_count(pMP3, pcmFramesInCurrentMP3FrameIn, &runningPCMFrameCount, &runningPCMFrameCountFractionalPart); } nextTargetPCMFrame = 0; for (iSeekPoint = 0; iSeekPoint < seekPointCount; ++iSeekPoint) { @@ -90182,43 +92340,43 @@ DRMP3_API drmp3_bool32 drmp3_calculate_seek_points(drmp3* pMP3, drmp3_uint32* pS if (nextTargetPCMFrame < runningPCMFrameCount) { pSeekPoints[iSeekPoint].seekPosInBytes = mp3FrameInfo[0].bytePos; pSeekPoints[iSeekPoint].pcmFrameIndex = nextTargetPCMFrame; - pSeekPoints[iSeekPoint].mp3FramesToDiscard = DRMP3_SEEK_LEADING_MP3_FRAMES; - pSeekPoints[iSeekPoint].pcmFramesToDiscard = (drmp3_uint16)(nextTargetPCMFrame - mp3FrameInfo[DRMP3_SEEK_LEADING_MP3_FRAMES-1].pcmFrameIndex); + pSeekPoints[iSeekPoint].mp3FramesToDiscard = MA_DR_MP3_SEEK_LEADING_MP3_FRAMES; + pSeekPoints[iSeekPoint].pcmFramesToDiscard = (ma_uint16)(nextTargetPCMFrame - mp3FrameInfo[MA_DR_MP3_SEEK_LEADING_MP3_FRAMES-1].pcmFrameIndex); break; } else { size_t i; - drmp3_uint32 pcmFramesInCurrentMP3FrameIn; - for (i = 0; i < DRMP3_COUNTOF(mp3FrameInfo)-1; ++i) { + ma_uint32 pcmFramesInCurrentMP3FrameIn; + for (i = 0; i < MA_DR_MP3_COUNTOF(mp3FrameInfo)-1; ++i) { mp3FrameInfo[i] = mp3FrameInfo[i+1]; } - mp3FrameInfo[DRMP3_COUNTOF(mp3FrameInfo)-1].bytePos = pMP3->streamCursor - pMP3->dataSize; - mp3FrameInfo[DRMP3_COUNTOF(mp3FrameInfo)-1].pcmFrameIndex = runningPCMFrameCount; - pcmFramesInCurrentMP3FrameIn = drmp3_decode_next_frame_ex(pMP3, NULL); + mp3FrameInfo[MA_DR_MP3_COUNTOF(mp3FrameInfo)-1].bytePos = pMP3->streamCursor - pMP3->dataSize; + mp3FrameInfo[MA_DR_MP3_COUNTOF(mp3FrameInfo)-1].pcmFrameIndex = runningPCMFrameCount; + pcmFramesInCurrentMP3FrameIn = ma_dr_mp3_decode_next_frame_ex(pMP3, NULL); if (pcmFramesInCurrentMP3FrameIn == 0) { pSeekPoints[iSeekPoint].seekPosInBytes = mp3FrameInfo[0].bytePos; pSeekPoints[iSeekPoint].pcmFrameIndex = nextTargetPCMFrame; - pSeekPoints[iSeekPoint].mp3FramesToDiscard = DRMP3_SEEK_LEADING_MP3_FRAMES; - pSeekPoints[iSeekPoint].pcmFramesToDiscard = (drmp3_uint16)(nextTargetPCMFrame - mp3FrameInfo[DRMP3_SEEK_LEADING_MP3_FRAMES-1].pcmFrameIndex); + pSeekPoints[iSeekPoint].mp3FramesToDiscard = MA_DR_MP3_SEEK_LEADING_MP3_FRAMES; + pSeekPoints[iSeekPoint].pcmFramesToDiscard = (ma_uint16)(nextTargetPCMFrame - mp3FrameInfo[MA_DR_MP3_SEEK_LEADING_MP3_FRAMES-1].pcmFrameIndex); break; } - drmp3__accumulate_running_pcm_frame_count(pMP3, pcmFramesInCurrentMP3FrameIn, &runningPCMFrameCount, &runningPCMFrameCountFractionalPart); + ma_dr_mp3__accumulate_running_pcm_frame_count(pMP3, pcmFramesInCurrentMP3FrameIn, &runningPCMFrameCount, &runningPCMFrameCountFractionalPart); } } } - if (!drmp3_seek_to_start_of_stream(pMP3)) { - return DRMP3_FALSE; + if (!ma_dr_mp3_seek_to_start_of_stream(pMP3)) { + return MA_FALSE; } - if (!drmp3_seek_to_pcm_frame(pMP3, currentPCMFrame)) { - return DRMP3_FALSE; + if (!ma_dr_mp3_seek_to_pcm_frame(pMP3, currentPCMFrame)) { + return MA_FALSE; } } *pSeekPointCount = seekPointCount; - return DRMP3_TRUE; + return MA_TRUE; } -DRMP3_API drmp3_bool32 drmp3_bind_seek_table(drmp3* pMP3, drmp3_uint32 seekPointCount, drmp3_seek_point* pSeekPoints) +MA_API ma_bool32 ma_dr_mp3_bind_seek_table(ma_dr_mp3* pMP3, ma_uint32 seekPointCount, ma_dr_mp3_seek_point* pSeekPoints) { if (pMP3 == NULL) { - return DRMP3_FALSE; + return MA_FALSE; } if (seekPointCount == 0 || pSeekPoints == NULL) { pMP3->seekPointCount = 0; @@ -90227,25 +92385,25 @@ DRMP3_API drmp3_bool32 drmp3_bind_seek_table(drmp3* pMP3, drmp3_uint32 seekPoint pMP3->seekPointCount = seekPointCount; pMP3->pSeekPoints = pSeekPoints; } - return DRMP3_TRUE; + return MA_TRUE; } -static float* drmp3__full_read_and_close_f32(drmp3* pMP3, drmp3_config* pConfig, drmp3_uint64* pTotalFrameCount) +static float* ma_dr_mp3__full_read_and_close_f32(ma_dr_mp3* pMP3, ma_dr_mp3_config* pConfig, ma_uint64* pTotalFrameCount) { - drmp3_uint64 totalFramesRead = 0; - drmp3_uint64 framesCapacity = 0; + ma_uint64 totalFramesRead = 0; + ma_uint64 framesCapacity = 0; float* pFrames = NULL; float temp[4096]; - DRMP3_ASSERT(pMP3 != NULL); + MA_DR_MP3_ASSERT(pMP3 != NULL); for (;;) { - drmp3_uint64 framesToReadRightNow = DRMP3_COUNTOF(temp) / pMP3->channels; - drmp3_uint64 framesJustRead = drmp3_read_pcm_frames_f32(pMP3, framesToReadRightNow, temp); + ma_uint64 framesToReadRightNow = MA_DR_MP3_COUNTOF(temp) / pMP3->channels; + ma_uint64 framesJustRead = ma_dr_mp3_read_pcm_frames_f32(pMP3, framesToReadRightNow, temp); if (framesJustRead == 0) { break; } if (framesCapacity < totalFramesRead + framesJustRead) { - drmp3_uint64 oldFramesBufferSize; - drmp3_uint64 newFramesBufferSize; - drmp3_uint64 newFramesCap; + ma_uint64 oldFramesBufferSize; + ma_uint64 newFramesBufferSize; + ma_uint64 newFramesCap; float* pNewFrames; newFramesCap = framesCapacity * 2; if (newFramesCap < totalFramesRead + framesJustRead) { @@ -90253,18 +92411,18 @@ static float* drmp3__full_read_and_close_f32(drmp3* pMP3, drmp3_config* pConfig, } oldFramesBufferSize = framesCapacity * pMP3->channels * sizeof(float); newFramesBufferSize = newFramesCap * pMP3->channels * sizeof(float); - if (newFramesBufferSize > (drmp3_uint64)DRMP3_SIZE_MAX) { + if (newFramesBufferSize > (ma_uint64)MA_SIZE_MAX) { break; } - pNewFrames = (float*)drmp3__realloc_from_callbacks(pFrames, (size_t)newFramesBufferSize, (size_t)oldFramesBufferSize, &pMP3->allocationCallbacks); + pNewFrames = (float*)ma_dr_mp3__realloc_from_callbacks(pFrames, (size_t)newFramesBufferSize, (size_t)oldFramesBufferSize, &pMP3->allocationCallbacks); if (pNewFrames == NULL) { - drmp3__free_from_callbacks(pFrames, &pMP3->allocationCallbacks); + ma_dr_mp3__free_from_callbacks(pFrames, &pMP3->allocationCallbacks); break; } pFrames = pNewFrames; framesCapacity = newFramesCap; } - DRMP3_COPY_MEMORY(pFrames + totalFramesRead*pMP3->channels, temp, (size_t)(framesJustRead*pMP3->channels*sizeof(float))); + MA_DR_MP3_COPY_MEMORY(pFrames + totalFramesRead*pMP3->channels, temp, (size_t)(framesJustRead*pMP3->channels*sizeof(float))); totalFramesRead += framesJustRead; if (framesJustRead != framesToReadRightNow) { break; @@ -90274,48 +92432,48 @@ static float* drmp3__full_read_and_close_f32(drmp3* pMP3, drmp3_config* pConfig, pConfig->channels = pMP3->channels; pConfig->sampleRate = pMP3->sampleRate; } - drmp3_uninit(pMP3); + ma_dr_mp3_uninit(pMP3); if (pTotalFrameCount) { *pTotalFrameCount = totalFramesRead; } return pFrames; } -static drmp3_int16* drmp3__full_read_and_close_s16(drmp3* pMP3, drmp3_config* pConfig, drmp3_uint64* pTotalFrameCount) +static ma_int16* ma_dr_mp3__full_read_and_close_s16(ma_dr_mp3* pMP3, ma_dr_mp3_config* pConfig, ma_uint64* pTotalFrameCount) { - drmp3_uint64 totalFramesRead = 0; - drmp3_uint64 framesCapacity = 0; - drmp3_int16* pFrames = NULL; - drmp3_int16 temp[4096]; - DRMP3_ASSERT(pMP3 != NULL); + ma_uint64 totalFramesRead = 0; + ma_uint64 framesCapacity = 0; + ma_int16* pFrames = NULL; + ma_int16 temp[4096]; + MA_DR_MP3_ASSERT(pMP3 != NULL); for (;;) { - drmp3_uint64 framesToReadRightNow = DRMP3_COUNTOF(temp) / pMP3->channels; - drmp3_uint64 framesJustRead = drmp3_read_pcm_frames_s16(pMP3, framesToReadRightNow, temp); + ma_uint64 framesToReadRightNow = MA_DR_MP3_COUNTOF(temp) / pMP3->channels; + ma_uint64 framesJustRead = ma_dr_mp3_read_pcm_frames_s16(pMP3, framesToReadRightNow, temp); if (framesJustRead == 0) { break; } if (framesCapacity < totalFramesRead + framesJustRead) { - drmp3_uint64 newFramesBufferSize; - drmp3_uint64 oldFramesBufferSize; - drmp3_uint64 newFramesCap; - drmp3_int16* pNewFrames; + ma_uint64 newFramesBufferSize; + ma_uint64 oldFramesBufferSize; + ma_uint64 newFramesCap; + ma_int16* pNewFrames; newFramesCap = framesCapacity * 2; if (newFramesCap < totalFramesRead + framesJustRead) { newFramesCap = totalFramesRead + framesJustRead; } - oldFramesBufferSize = framesCapacity * pMP3->channels * sizeof(drmp3_int16); - newFramesBufferSize = newFramesCap * pMP3->channels * sizeof(drmp3_int16); - if (newFramesBufferSize > (drmp3_uint64)DRMP3_SIZE_MAX) { + oldFramesBufferSize = framesCapacity * pMP3->channels * sizeof(ma_int16); + newFramesBufferSize = newFramesCap * pMP3->channels * sizeof(ma_int16); + if (newFramesBufferSize > (ma_uint64)MA_SIZE_MAX) { break; } - pNewFrames = (drmp3_int16*)drmp3__realloc_from_callbacks(pFrames, (size_t)newFramesBufferSize, (size_t)oldFramesBufferSize, &pMP3->allocationCallbacks); + pNewFrames = (ma_int16*)ma_dr_mp3__realloc_from_callbacks(pFrames, (size_t)newFramesBufferSize, (size_t)oldFramesBufferSize, &pMP3->allocationCallbacks); if (pNewFrames == NULL) { - drmp3__free_from_callbacks(pFrames, &pMP3->allocationCallbacks); + ma_dr_mp3__free_from_callbacks(pFrames, &pMP3->allocationCallbacks); break; } pFrames = pNewFrames; framesCapacity = newFramesCap; } - DRMP3_COPY_MEMORY(pFrames + totalFramesRead*pMP3->channels, temp, (size_t)(framesJustRead*pMP3->channels*sizeof(drmp3_int16))); + MA_DR_MP3_COPY_MEMORY(pFrames + totalFramesRead*pMP3->channels, temp, (size_t)(framesJustRead*pMP3->channels*sizeof(ma_int16))); totalFramesRead += framesJustRead; if (framesJustRead != framesToReadRightNow) { break; @@ -90325,81 +92483,81 @@ static drmp3_int16* drmp3__full_read_and_close_s16(drmp3* pMP3, drmp3_config* pC pConfig->channels = pMP3->channels; pConfig->sampleRate = pMP3->sampleRate; } - drmp3_uninit(pMP3); + ma_dr_mp3_uninit(pMP3); if (pTotalFrameCount) { *pTotalFrameCount = totalFramesRead; } return pFrames; } -DRMP3_API float* drmp3_open_and_read_pcm_frames_f32(drmp3_read_proc onRead, drmp3_seek_proc onSeek, void* pUserData, drmp3_config* pConfig, drmp3_uint64* pTotalFrameCount, const drmp3_allocation_callbacks* pAllocationCallbacks) +MA_API float* ma_dr_mp3_open_and_read_pcm_frames_f32(ma_dr_mp3_read_proc onRead, ma_dr_mp3_seek_proc onSeek, void* pUserData, ma_dr_mp3_config* pConfig, ma_uint64* pTotalFrameCount, const ma_allocation_callbacks* pAllocationCallbacks) { - drmp3 mp3; - if (!drmp3_init(&mp3, onRead, onSeek, pUserData, pAllocationCallbacks)) { + ma_dr_mp3 mp3; + if (!ma_dr_mp3_init(&mp3, onRead, onSeek, pUserData, pAllocationCallbacks)) { return NULL; } - return drmp3__full_read_and_close_f32(&mp3, pConfig, pTotalFrameCount); + return ma_dr_mp3__full_read_and_close_f32(&mp3, pConfig, pTotalFrameCount); } -DRMP3_API drmp3_int16* drmp3_open_and_read_pcm_frames_s16(drmp3_read_proc onRead, drmp3_seek_proc onSeek, void* pUserData, drmp3_config* pConfig, drmp3_uint64* pTotalFrameCount, const drmp3_allocation_callbacks* pAllocationCallbacks) +MA_API ma_int16* ma_dr_mp3_open_and_read_pcm_frames_s16(ma_dr_mp3_read_proc onRead, ma_dr_mp3_seek_proc onSeek, void* pUserData, ma_dr_mp3_config* pConfig, ma_uint64* pTotalFrameCount, const ma_allocation_callbacks* pAllocationCallbacks) { - drmp3 mp3; - if (!drmp3_init(&mp3, onRead, onSeek, pUserData, pAllocationCallbacks)) { + ma_dr_mp3 mp3; + if (!ma_dr_mp3_init(&mp3, onRead, onSeek, pUserData, pAllocationCallbacks)) { return NULL; } - return drmp3__full_read_and_close_s16(&mp3, pConfig, pTotalFrameCount); + return ma_dr_mp3__full_read_and_close_s16(&mp3, pConfig, pTotalFrameCount); } -DRMP3_API float* drmp3_open_memory_and_read_pcm_frames_f32(const void* pData, size_t dataSize, drmp3_config* pConfig, drmp3_uint64* pTotalFrameCount, const drmp3_allocation_callbacks* pAllocationCallbacks) +MA_API float* ma_dr_mp3_open_memory_and_read_pcm_frames_f32(const void* pData, size_t dataSize, ma_dr_mp3_config* pConfig, ma_uint64* pTotalFrameCount, const ma_allocation_callbacks* pAllocationCallbacks) { - drmp3 mp3; - if (!drmp3_init_memory(&mp3, pData, dataSize, pAllocationCallbacks)) { + ma_dr_mp3 mp3; + if (!ma_dr_mp3_init_memory(&mp3, pData, dataSize, pAllocationCallbacks)) { return NULL; } - return drmp3__full_read_and_close_f32(&mp3, pConfig, pTotalFrameCount); + return ma_dr_mp3__full_read_and_close_f32(&mp3, pConfig, pTotalFrameCount); } -DRMP3_API drmp3_int16* drmp3_open_memory_and_read_pcm_frames_s16(const void* pData, size_t dataSize, drmp3_config* pConfig, drmp3_uint64* pTotalFrameCount, const drmp3_allocation_callbacks* pAllocationCallbacks) +MA_API ma_int16* ma_dr_mp3_open_memory_and_read_pcm_frames_s16(const void* pData, size_t dataSize, ma_dr_mp3_config* pConfig, ma_uint64* pTotalFrameCount, const ma_allocation_callbacks* pAllocationCallbacks) { - drmp3 mp3; - if (!drmp3_init_memory(&mp3, pData, dataSize, pAllocationCallbacks)) { + ma_dr_mp3 mp3; + if (!ma_dr_mp3_init_memory(&mp3, pData, dataSize, pAllocationCallbacks)) { return NULL; } - return drmp3__full_read_and_close_s16(&mp3, pConfig, pTotalFrameCount); + return ma_dr_mp3__full_read_and_close_s16(&mp3, pConfig, pTotalFrameCount); } -#ifndef DR_MP3_NO_STDIO -DRMP3_API float* drmp3_open_file_and_read_pcm_frames_f32(const char* filePath, drmp3_config* pConfig, drmp3_uint64* pTotalFrameCount, const drmp3_allocation_callbacks* pAllocationCallbacks) +#ifndef MA_DR_MP3_NO_STDIO +MA_API float* ma_dr_mp3_open_file_and_read_pcm_frames_f32(const char* filePath, ma_dr_mp3_config* pConfig, ma_uint64* pTotalFrameCount, const ma_allocation_callbacks* pAllocationCallbacks) { - drmp3 mp3; - if (!drmp3_init_file(&mp3, filePath, pAllocationCallbacks)) { + ma_dr_mp3 mp3; + if (!ma_dr_mp3_init_file(&mp3, filePath, pAllocationCallbacks)) { return NULL; } - return drmp3__full_read_and_close_f32(&mp3, pConfig, pTotalFrameCount); + return ma_dr_mp3__full_read_and_close_f32(&mp3, pConfig, pTotalFrameCount); } -DRMP3_API drmp3_int16* drmp3_open_file_and_read_pcm_frames_s16(const char* filePath, drmp3_config* pConfig, drmp3_uint64* pTotalFrameCount, const drmp3_allocation_callbacks* pAllocationCallbacks) +MA_API ma_int16* ma_dr_mp3_open_file_and_read_pcm_frames_s16(const char* filePath, ma_dr_mp3_config* pConfig, ma_uint64* pTotalFrameCount, const ma_allocation_callbacks* pAllocationCallbacks) { - drmp3 mp3; - if (!drmp3_init_file(&mp3, filePath, pAllocationCallbacks)) { + ma_dr_mp3 mp3; + if (!ma_dr_mp3_init_file(&mp3, filePath, pAllocationCallbacks)) { return NULL; } - return drmp3__full_read_and_close_s16(&mp3, pConfig, pTotalFrameCount); + return ma_dr_mp3__full_read_and_close_s16(&mp3, pConfig, pTotalFrameCount); } #endif -DRMP3_API void* drmp3_malloc(size_t sz, const drmp3_allocation_callbacks* pAllocationCallbacks) +MA_API void* ma_dr_mp3_malloc(size_t sz, const ma_allocation_callbacks* pAllocationCallbacks) { if (pAllocationCallbacks != NULL) { - return drmp3__malloc_from_callbacks(sz, pAllocationCallbacks); + return ma_dr_mp3__malloc_from_callbacks(sz, pAllocationCallbacks); } else { - return drmp3__malloc_default(sz, NULL); + return ma_dr_mp3__malloc_default(sz, NULL); } } -DRMP3_API void drmp3_free(void* p, const drmp3_allocation_callbacks* pAllocationCallbacks) +MA_API void ma_dr_mp3_free(void* p, const ma_allocation_callbacks* pAllocationCallbacks) { if (pAllocationCallbacks != NULL) { - drmp3__free_from_callbacks(p, pAllocationCallbacks); + ma_dr_mp3__free_from_callbacks(p, pAllocationCallbacks); } else { - drmp3__free_default(p, NULL); + ma_dr_mp3__free_default(p, NULL); } } #endif /* dr_mp3_c end */ -#endif /* DRMP3_IMPLEMENTATION */ +#endif /* MA_DR_MP3_IMPLEMENTATION */ #endif /* MA_NO_MP3 */ @@ -90444,7 +92602,7 @@ For more information, please refer to =============================================================================== ALTERNATIVE 2 - MIT No Attribution =============================================================================== -Copyright 2020 David Reid +Copyright 2023 David Reid Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in diff --git a/vendor/miniaudio/utilities.odin b/vendor/miniaudio/utilities.odin index f4db00380..d518a514a 100644 --- a/vendor/miniaudio/utilities.odin +++ b/vendor/miniaudio/utilities.odin @@ -1,6 +1,6 @@ package miniaudio -import c "core:c/libc" +import "core:c" when ODIN_OS == .Windows { foreign import lib "lib/miniaudio.lib" @@ -104,6 +104,13 @@ foreign lib { Helper for converting gain in decibels to a linear factor. */ volume_db_to_linear :: proc(gain: f32) -> f32 --- + + /* + Mixes the specified number of frames in floating point format with a volume factor. + + This will run on an optimized path when the volume is equal to 1. + */ + ma_mix_pcm_frames_f32 :: proc(pDst: ^f32, pSrc: ^f32, frameCount: u64, channels: u32, volume: f32) -> result --- } offset_pcm_frames_ptr_f32 :: #force_inline proc "c" (p: [^]f32, offsetInFrames: u64, channels: u32) -> [^]f32 { @@ -297,3 +304,31 @@ foreign lib { paged_audio_buffer_get_cursor_in_pcm_frames :: proc(pPagedAudioBuffer: ^paged_audio_buffer, pCursor: ^u64) -> result --- paged_audio_buffer_get_length_in_pcm_frames :: proc(pPagedAudioBuffer: ^paged_audio_buffer, pLength: ^u64) -> result --- } + +pulsewave_config :: struct { + format: format, + channels: u32, + sampleRate: u32, + dutyCycle: f64, + amplitude: f64, + frequency: f64, +} + +pulsewave :: struct { + waveform: waveform, + config: pulsewave_config, +} + +@(default_calling_convention="c", link_prefix="ma_") +foreign lib { + pulsewave_config_init :: proc(format: format, channels: u32, sampleRate: u32, dutyCycle: f64, amplitude: f64, frequency: f64) -> pulsewave_config --- + + pulsewave_init :: proc(pConfig: ^pulsewave_config, pWaveForm: ^pulsewave) -> result --- + pulsewave_uninit :: proc(pWaveForm: ^pulsewave) --- + pulsewave_read_pcm_frames :: proc(pWaveForm: ^pulsewave, pFramesOut: rawptr, frameCount: u64, pFramesRead: ^u64) -> result --- + pulsewave_seek_to_pcm_frame :: proc(pWaveForm: ^pulsewave, frameIndex: u64) -> result --- + pulsewave_set_amplitude :: proc(pWaveForm: ^pulsewave, amplitude: f64) -> result --- + pulsewave_set_frequency :: proc(pWaveForm: ^pulsewave, frequency: f64) -> result --- + pulsewave_set_sample_rate :: proc(pWaveForm: ^pulsewave, sampleRate: u32) -> result --- + pulsewave_set_duty_cycle :: proc(pWaveForm: ^pulsewave, dutyCycle: f64) -> result --- +} From 7fe86ed56574806373d84a922bb1fc34f7ddd095 Mon Sep 17 00:00:00 2001 From: Laytan Laats Date: Wed, 14 Feb 2024 21:00:26 +0100 Subject: [PATCH 17/22] miniaudio: fix wrong sizes for ma_device --- core/sys/unix/pthread_darwin.odin | 18 +++++++++--------- vendor/miniaudio/data_conversion.odin | 2 +- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/core/sys/unix/pthread_darwin.odin b/core/sys/unix/pthread_darwin.odin index 358b5d2fd..378fa9309 100644 --- a/core/sys/unix/pthread_darwin.odin +++ b/core/sys/unix/pthread_darwin.odin @@ -17,42 +17,42 @@ PTHREAD_RWLOCKATTR_SIZE :: 16 pthread_t :: distinct u64 -pthread_attr_t :: struct #align(16) { +pthread_attr_t :: struct { sig: c.long, _: [PTHREAD_ATTR_SIZE] c.char, } -pthread_cond_t :: struct #align(16) { +pthread_cond_t :: struct { sig: c.long, _: [PTHREAD_COND_SIZE] c.char, } -pthread_condattr_t :: struct #align(16) { +pthread_condattr_t :: struct { sig: c.long, _: [PTHREAD_CONDATTR_SIZE] c.char, } -pthread_mutex_t :: struct #align(16) { +pthread_mutex_t :: struct { sig: c.long, _: [PTHREAD_MUTEX_SIZE] c.char, } -pthread_mutexattr_t :: struct #align(16) { +pthread_mutexattr_t :: struct { sig: c.long, _: [PTHREAD_MUTEXATTR_SIZE] c.char, } -pthread_once_t :: struct #align(16) { +pthread_once_t :: struct { sig: c.long, _: [PTHREAD_ONCE_SIZE] c.char, } -pthread_rwlock_t :: struct #align(16) { +pthread_rwlock_t :: struct { sig: c.long, _: [PTHREAD_RWLOCK_SIZE] c.char, } -pthread_rwlockattr_t :: struct #align(16) { +pthread_rwlockattr_t :: struct { sig: c.long, _: [PTHREAD_RWLOCKATTR_SIZE] c.char, } @@ -93,4 +93,4 @@ foreign pthread { pthread_setcancelstate :: proc (state: c.int, old_state: ^c.int) -> c.int --- pthread_setcanceltype :: proc (type: c.int, old_type: ^c.int) -> c.int --- pthread_cancel :: proc (thread: pthread_t) -> c.int --- -} \ No newline at end of file +} diff --git a/vendor/miniaudio/data_conversion.odin b/vendor/miniaudio/data_conversion.odin index 568adf16f..aee26bc8c 100644 --- a/vendor/miniaudio/data_conversion.odin +++ b/vendor/miniaudio/data_conversion.odin @@ -68,7 +68,7 @@ resampling_backend_vtable :: struct { onReset: proc "c" (pUserData: rawptr, pBackend: ^resampling_backend) -> result, } -resample_algorithm :: enum { +resample_algorithm :: enum c.int { linear = 0, /* Fastest, lowest quality. Optional low-pass filtering. Default. */ custom, } From 9ab2fbea006287757aaca03cc370905704fa38ce Mon Sep 17 00:00:00 2001 From: laytan Date: Wed, 14 Feb 2024 21:07:57 +0100 Subject: [PATCH 18/22] miniaudio: update .lib --- vendor/miniaudio/lib/miniaudio.lib | Bin 2767136 -> 2882782 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/vendor/miniaudio/lib/miniaudio.lib b/vendor/miniaudio/lib/miniaudio.lib index 400cb9608cb9090e57467eb2fc0beb292eb2f139..bb5cc227f2f8e29866c1753145100c49d3058ce9 100644 GIT binary patch literal 2882782 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�#odWnoZ@7iZn1`^adGumzF)oOJwAV| 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%0DN56Jyju_Q{Gu@Uh$!Fpu@8faxqq1&E99 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

A)qnKOlwGTci93w?lZ47KTAaj_XTt-e3T7c!+ac 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

C}6Omip^!gaH7 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

e_R*VAPdV!(VAZleDUi}}nvWf+UT7#Ws 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�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 J?tlO5{{tq;u<`%^ literal 2767136 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%0Ar_2;=kL}#vW|1GF*Wp$YtK_8X#DH^ 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ξ@;HA>VBS|}aeS=Uv|xfq=-J1<7wbuc%p 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�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 D@KzZ_ From a7f027509332642d89c9bacd83aac5e2f17905c1 Mon Sep 17 00:00:00 2001 From: laytan Date: Wed, 14 Feb 2024 21:17:12 +0100 Subject: [PATCH 19/22] miniaudio: update .lib to 0.11.21 --- vendor/miniaudio/lib/miniaudio.lib | Bin 2882782 -> 2882782 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/vendor/miniaudio/lib/miniaudio.lib b/vendor/miniaudio/lib/miniaudio.lib index bb5cc227f2f8e29866c1753145100c49d3058ce9..d339c746ed71c0891fc635f666899cbaea3a009c 100644 GIT binary patch delta 217 zcmWm7xedZF0EJ=M=03xH6EF}A43HqP2P=3Dsq*iv1RcMNPx@c=^50wJ zxQ8k}$2a}aLRp`wu_7~8ey@H#0w*K+4AaC(C=^gc31w7JMGbW{&_oMu1n8iP9{Lzy ih!Mt^V2T;$SYQeNyTTe88*H&dggp!nIA)1Ey)J(<98)a- delta 217 zcmWm7DH6gk0EOX6!oHS$rx2h77z6^Qf_rd?(n+)0mv#+k^lez From e931c82b9bbb977bd9e19b941e86d8603a571d79 Mon Sep 17 00:00:00 2001 From: Laytan Laats Date: Wed, 14 Feb 2024 21:55:15 +0100 Subject: [PATCH 20/22] miniaudio: add version mismatch check --- vendor/miniaudio/common.odin | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/vendor/miniaudio/common.odin b/vendor/miniaudio/common.odin index abc108cf9..b38599d96 100644 --- a/vendor/miniaudio/common.odin +++ b/vendor/miniaudio/common.odin @@ -14,8 +14,37 @@ when ODIN_OS == .Windows { foreign import lib "lib/miniaudio.a" } -handle :: distinct rawptr +BINDINGS_VERSION_MAJOR :: 0 +BINDINGS_VERSION_MINOR :: 11 +BINDINGS_VERSION_REVISION :: 21 +BINDINGS_VERSION :: [3]u32{BINDINGS_VERSION_MAJOR, BINDINGS_VERSION_MINOR, BINDINGS_VERSION_REVISION} +BINDINGS_VERSION_STRING :: "0.11.21" +@(init) +version_check :: proc() { + v: [3]u32 + version(&v.x, &v.y, &v.z) + if v != BINDINGS_VERSION { + buf: [1024]byte + n := copy(buf[:], "miniaudio version mismatch: ") + n += copy(buf[n:], "bindings are for version ") + n += copy(buf[n:], BINDINGS_VERSION_STRING) + n += copy(buf[n:], ", but version ") + n += copy(buf[n:], string(version_string())) + n += copy(buf[n:], " is linked, make sure to compile the correct miniaudio version by going to `vendor/miniaudio/src` ") + + when ODIN_OS == .Windows { + n += copy(buf[n:], "and executing `build.bat`") + } else { + n += copy(buf[n:], "and executing `make`") + } + + panic(string(buf[:n])) + } +} + + +handle :: distinct rawptr /* SIMD alignment in bytes. Currently set to 32 bytes in preparation for future AVX optimizations. */ SIMD_ALIGNMENT :: 32 From fa1875a8f1875ca5053f1c0a98814712d2f7a104 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Sat, 17 Feb 2024 13:41:54 +0000 Subject: [PATCH 21/22] Minor changes to `os2` --- core/os/os2/env_windows.odin | 4 +++ core/os/os2/file_windows.odin | 44 ++++++++++++++++++++++++++++-- core/os/os2/path_windows.odin | 4 +++ core/os/os2/stat_windows.odin | 4 +++ core/os/os2/temp_file_windows.odin | 2 ++ 5 files changed, 55 insertions(+), 3 deletions(-) diff --git a/core/os/os2/env_windows.odin b/core/os/os2/env_windows.odin index 9829b7de1..774af9e8f 100644 --- a/core/os/os2/env_windows.odin +++ b/core/os/os2/env_windows.odin @@ -18,6 +18,9 @@ _lookup_env :: proc(key: string, allocator: runtime.Allocator) -> (value: string } return "", true } + + _TEMP_ALLOCATOR_GUARD() + b := make([]u16, n+1, _temp_allocator()) n = win32.GetEnvironmentVariableW(wkey, raw_data(b), u32(len(b))) @@ -47,6 +50,7 @@ _unset_env :: proc(key: string) -> bool { } _clear_env :: proc() { + _TEMP_ALLOCATOR_GUARD() envs := environ(_temp_allocator()) for env in envs { for j in 1.. runtime.Allocator { return heap_allocator() } +_temp_allocator_proc :: runtime.arena_allocator_proc + +@(private="file", thread_local) +_global_default_temp_allocator_arena: runtime.Arena + _temp_allocator :: proc() -> runtime.Allocator { - // TODO(bill): make this not depend on the context allocator - return context.temp_allocator + return runtime.Allocator{ + procedure = _temp_allocator_proc, + data = &_global_default_temp_allocator_arena, + } } +@(require_results) +_temp_allocator_temp_begin :: proc(loc := #caller_location) -> (temp: runtime.Arena_Temp) { + temp = runtime.arena_temp_begin(&_global_default_temp_allocator_arena, loc) + return +} + +_temp_allocator_temp_end :: proc(temp: runtime.Arena_Temp, loc := #caller_location) { + runtime.arena_temp_end(temp, loc) +} + +@(fini, private) +_destroy_temp_allocator_fini :: proc() { + runtime.arena_destroy(&_global_default_temp_allocator_arena) + _global_default_temp_allocator_arena = {} +} + +@(deferred_out=_temp_allocator_temp_end) +_TEMP_ALLOCATOR_GUARD :: #force_inline proc(ignore := false, loc := #caller_location) -> (runtime.Arena_Temp, runtime.Source_Code_Location) { + if ignore { + return {}, loc + } else { + return _temp_allocator_temp_begin(loc), loc + } +} + + + _File_Kind :: enum u8 { File, @@ -546,6 +581,9 @@ _normalize_link_path :: proc(p: []u16, allocator: runtime.Allocator) -> (str: st if n == 0 { return "", _get_platform_error() } + + _TEMP_ALLOCATOR_GUARD() + buf := make([]u16, n+1, _temp_allocator()) n = win32.GetFinalPathNameByHandleW(handle, raw_data(buf), u32(len(buf)), win32.VOLUME_NAME_DOS) if n == 0 { diff --git a/core/os/os2/path_windows.odin b/core/os/os2/path_windows.odin index 45c6bdc37..7be4696d7 100644 --- a/core/os/os2/path_windows.odin +++ b/core/os/os2/path_windows.odin @@ -31,6 +31,8 @@ _mkdir_all :: proc(path: string, perm: File_Mode) -> Error { return p, false, nil } + _TEMP_ALLOCATOR_GUARD() + dir, err := stat(path, _temp_allocator()) if err == nil { if dir.is_directory { @@ -125,6 +127,8 @@ _fix_long_path_internal :: proc(path: string) -> string { return path } + _TEMP_ALLOCATOR_GUARD() + PREFIX :: `\\?` path_buf := make([]byte, len(PREFIX)+len(path)+1, _temp_allocator()) copy(path_buf, PREFIX) diff --git a/core/os/os2/stat_windows.odin b/core/os/os2/stat_windows.odin index 8d8e17fcf..154a5bbe3 100644 --- a/core/os/os2/stat_windows.odin +++ b/core/os/os2/stat_windows.odin @@ -46,6 +46,8 @@ full_path_from_name :: proc(name: string, allocator: runtime.Allocator) -> (path if name == "" { name = "." } + _TEMP_ALLOCATOR_GUARD() + p := win32.utf8_to_utf16(name, _temp_allocator()) n := win32.GetFullPathNameW(raw_data(p), 0, nil, nil) @@ -129,6 +131,7 @@ _cleanpath_from_handle :: proc(f: ^File, allocator: runtime.Allocator) -> (strin if n == 0 { return "", _get_platform_error() } + _TEMP_ALLOCATOR_GUARD() buf := make([]u16, max(n, 260)+1, _temp_allocator()) n = win32.GetFinalPathNameByHandleW(h, raw_data(buf), u32(len(buf)), 0) return _cleanpath_from_buf(buf[:n], allocator) @@ -144,6 +147,7 @@ _cleanpath_from_handle_u16 :: proc(f: ^File) -> ([]u16, Error) { if n == 0 { return nil, _get_platform_error() } + _TEMP_ALLOCATOR_GUARD() buf := make([]u16, max(n, 260)+1, _temp_allocator()) n = win32.GetFinalPathNameByHandleW(h, raw_data(buf), u32(len(buf)), 0) return _cleanpath_strip_prefix(buf[:n]), nil diff --git a/core/os/os2/temp_file_windows.odin b/core/os/os2/temp_file_windows.odin index 27d6a3d77..c42da84f5 100644 --- a/core/os/os2/temp_file_windows.odin +++ b/core/os/os2/temp_file_windows.odin @@ -17,6 +17,8 @@ _temp_dir :: proc(allocator: runtime.Allocator) -> (string, runtime.Allocator_Er if n == 0 { return "", nil } + _TEMP_ALLOCATOR_GUARD() + b := make([]u16, max(win32.MAX_PATH, n), _temp_allocator()) n = win32.GetTempPathW(u32(len(b)), raw_data(b)) From cc185d98b4fda0f9c8dcd87ffb2810d73e801b58 Mon Sep 17 00:00:00 2001 From: flysand7 Date: Sun, 18 Feb 2024 23:04:41 +1100 Subject: [PATCH 22/22] [sys/linux]: Fix numeric values for socket fd flags --- core/sys/linux/bits.odin | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/sys/linux/bits.odin b/core/sys/linux/bits.odin index 8b7de5d5e..ad519e1cd 100644 --- a/core/sys/linux/bits.odin +++ b/core/sys/linux/bits.odin @@ -944,8 +944,8 @@ Socket_Type :: enum { Bits for Socket_FD_Flags */ Socket_FD_Flags_Bits :: enum { - NONBLOCK = 14, - CLOEXEC = 25, + NONBLOCK = 11, + CLOEXEC = 19, } /*

aEt++c2PL-egrh%C38M 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 z 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

@H2; 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%0DL$bG@QL}HZ1 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ð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

+dP4yWtbw}NzR8-$A^-}0Gkl_ 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�t4;rnEHvqo4|xbjiFs&*0Nj5FjTaAyxD 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