Mercurial > hg > dmlib
diff jmixtmpl_c.c @ 45:b30430da2815
Rename mixing template.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Mon, 01 Oct 2012 01:07:19 +0300 |
parents | jmix_c.h@f3407a58e01e |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jmixtmpl_c.c Mon Oct 01 01:07:19 2012 +0300 @@ -0,0 +1,55 @@ +/* + * miniJSS - Mixing routine in C, innerloop template + * Programmed and designed by Matti 'ccr' Hamalainen + * (C) Copyright 2006-2007 Tecnic Software productions (TNSP) + */ + +#ifdef JMIXER_HEADER +int JMIXER_NAME (JSSMixer *, JSSChannel *, Sint32 *, const int, const Sint32); +#else +int JMIXER_NAME (JSSMixer *mixer, JSSChannel *chn, Sint32 *addBuffer, const int mixLength, const Sint32 endPos) +{ + const JSSVolumeTable *volTab8 = (const JSSVolumeTable *) &(mixer->volTab8); + Sint32 *ap = addBuffer; + Sint32 tr = chn->chPrevR, tl = chn->chPrevL; + DMFixedPoint tmpPos = chn->chPos; + const DMFixedPoint tmpDelta = chn->chDeltaO; + int strideLength = 0; + + if (chn->chFlags & jsf16bit) + { + Sint16 *sp = (Sint16 *) chn->chData; + JMIXER_INIT + + while (strideLength < mixLength && JMIXER_ENDCOND) + { + JMIXER_FUNC_16 + JMIXER_DEBUG + JMIXER_NEXT + strideLength++; + } + } + else + { + Uint8 *sp = (Uint8 *) chn->chData; + JMIXER_INIT + + while (strideLength < mixLength && JMIXER_ENDCOND) + { + JMIXER_FUNC_8 + JMIXER_DEBUG + JMIXER_NEXT + strideLength++; + } + + } + + chn->chPos.dw = tmpPos.dw; + chn->chPrevR = tr; chn->chPrevL = tl; + return strideLength; +} +#endif + +#undef JMIXER_NAME +#undef JMIXER_NEXT +#undef JMIXER_ENDCOND