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