diff options
Diffstat (limited to 'Alc/mixer_c.c')
-rw-r--r-- | Alc/mixer_c.c | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/Alc/mixer_c.c b/Alc/mixer_c.c new file mode 100644 index 00000000..f59b3190 --- /dev/null +++ b/Alc/mixer_c.c @@ -0,0 +1,32 @@ +#include "config.h" + +#include "AL/al.h" +#include "AL/alc.h" +#include "alMain.h" +#include "alu.h" + + +static __inline void ApplyCoeffs(ALuint Offset, ALfloat (*RESTRICT Values)[2], + ALfloat (*RESTRICT Coeffs)[2], + ALfloat left, ALfloat right) +{ + ALuint c; + for(c = 0;c < HRIR_LENGTH;c++) + { + const ALuint off = (Offset+c)&HRIR_MASK; + Values[off][0] += Coeffs[c][0] * left; + Values[off][1] += Coeffs[c][1] * right; + } +} + +#define SUFFIX C +#define SAMPLER point32 +#include "mixer_inc.c" +#undef SAMPLER +#define SAMPLER lerp32 +#include "mixer_inc.c" +#undef SAMPLER +#define SAMPLER cubic32 +#include "mixer_inc.c" +#undef SAMPLER +#undef SUFFIX |