view jmixtmpl_c.h @ 96:6bf5220fa47e

Urgh .. use memset to silence some bogus GCC warnings about using potentially uninitialized values, while that will not actually be possible. In any case, it is annoying.
author Matti Hamalainen <ccr@tnsp.org>
date Tue, 02 Oct 2012 18:52:28 +0300
parents 2edda27f951c
children 1ba202b448e0
line wrap: on
line source

/*
 * 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 *, JMIXER_ADDBUF_TYPE *, const int, const Sint32);
#else
int JMIXER_NAME (JSSMixer *mixer, JSSChannel *chn, JMIXER_ADDBUF_TYPE *addBuffer, const int mixLength, const Sint32 endPos)
{
    const DMFixedPoint tmpDelta = chn->chDeltaO;
    DMFixedPoint tmpPos = chn->chPos;
    JMIXER_ADDBUF_TYPE
        *ap = addBuffer,
        *tr = chn->chPrevR,
        *tl = chn->chPrevL;
    int strideLength = 0;

    JMIXER_SAMPLE_TYPE *sp = (JMIXER_SAMPLE_TYPE *) chn->chData;

    JMIXER_INIT

    while (strideLength < mixLength && JMIXER_ENDCOND)
    {
        JMIXER_FUNC
        JMIXER_DEBUG
        JMIXER_NEXT
        strideLength++;
    }

    chn->chPos.dw = tmpPos.dw;
    return strideLength;
}
#endif

#undef JMIXER_NAME
#undef JMIXER_NEXT
#undef JMIXER_ENDCOND