From 764cfb6a0dbddefc757049ff2c90df916074dbfd Mon Sep 17 00:00:00 2001 From: Chris Robinson Date: Wed, 22 Sep 2010 20:53:04 -0700 Subject: [PATCH] Allow the mixing loop to access the different sample formats --- Alc/mixer.c | 126 ++++++++++++++++++++++++++++++------------------------------ 1 file changed, 63 insertions(+), 63 deletions(-) diff --git a/Alc/mixer.c b/Alc/mixer.c index a4b82c98..1b483357 100644 --- a/Alc/mixer.c +++ b/Alc/mixer.c @@ -61,28 +61,28 @@ static __inline ALubyte aluF2UB(ALfloat Value) } -static __inline ALfloat point(ALfloat val1, ALfloat val2, ALint frac) +static __inline ALfloat point32(ALfloat val1, ALfloat val2, ALint frac) { return val1; (void)val2; (void)frac; } -static __inline ALfloat lerp(ALfloat val1, ALfloat val2, ALint frac) +static __inline ALfloat lerp32(ALfloat val1, ALfloat val2, ALint frac) { return val1 + ((val2-val1)*(frac * (1.0f/(1<buffer) != NULL) { - Data.u8 = ALBuffer->data; + Data.p8 = ALBuffer->data; DataSize = ALBuffer->size; DataSize /= aluFrameSizeFromFormat(ALBuffer->format); Channels = aluChannelsFromFormat(ALBuffer->format); @@ -463,7 +463,7 @@ static void MixSource(ALsource *ALSource, ALCcontext *ALContext, { ALint ulExtraSamples = BUFFER_PADDING*Channels*Bytes; ulExtraSamples = min(NextBuf->size, ulExtraSamples); - memcpy(&Data.u8[DataSize*Channels*Bytes], + memcpy(&Data.p8[DataSize*Channels*Bytes], NextBuf->data, ulExtraSamples); } } @@ -474,13 +474,13 @@ static void MixSource(ALsource *ALSource, ALCcontext *ALContext, { ALint ulExtraSamples = BUFFER_PADDING*Channels*Bytes; ulExtraSamples = min(NextBuf->size, ulExtraSamples); - memcpy(&Data.u8[DataSize*Channels*Bytes], + memcpy(&Data.p8[DataSize*Channels*Bytes], &((ALubyte*)NextBuf->data)[LoopStart*Channels*Bytes], ulExtraSamples); } } else - memset(&Data.u8[DataSize*Channels*Bytes], 0, (BUFFER_PADDING*Channels*Bytes)); + memset(&Data.p8[DataSize*Channels*Bytes], 0, (BUFFER_PADDING*Channels*Bytes)); /* Figure out how many samples we can mix. */ DataSize64 = LoopEnd; @@ -494,26 +494,26 @@ static void MixSource(ALsource *ALSource, ALCcontext *ALContext, /* Actual sample mixing loops */ if(Channels == 1) /* Mono */ - MIX_MONO(); + MIX_MONO(32); else if(Channels == 2) /* Stereo */ - MIX_STEREO(); + MIX_STEREO(32); else if(Channels == 4) /* Quad */ - MIX_MC(FRONT_LEFT, FRONT_RIGHT, - BACK_LEFT, BACK_RIGHT); + MIX_MC(32, FRONT_LEFT, FRONT_RIGHT, + BACK_LEFT, BACK_RIGHT); else if(Channels == 6) /* 5.1 */ - MIX_MC(FRONT_LEFT, FRONT_RIGHT, - FRONT_CENTER, LFE, - BACK_LEFT, BACK_RIGHT); + MIX_MC(32, FRONT_LEFT, FRONT_RIGHT, + FRONT_CENTER, LFE, + BACK_LEFT, BACK_RIGHT); else if(Channels == 7) /* 6.1 */ - MIX_MC(FRONT_LEFT, FRONT_RIGHT, - FRONT_CENTER, LFE, - BACK_CENTER, - SIDE_LEFT, SIDE_RIGHT); + MIX_MC(32, FRONT_LEFT, FRONT_RIGHT, + FRONT_CENTER, LFE, + BACK_CENTER, + SIDE_LEFT, SIDE_RIGHT); else if(Channels == 8) /* 7.1 */ - MIX_MC(FRONT_LEFT, FRONT_RIGHT, - FRONT_CENTER, LFE, - BACK_LEFT, BACK_RIGHT, - SIDE_LEFT, SIDE_RIGHT); + MIX_MC(32, FRONT_LEFT, FRONT_RIGHT, + FRONT_CENTER, LFE, + BACK_LEFT, BACK_RIGHT, + SIDE_LEFT, SIDE_RIGHT); else /* Unknown? */ { while(BufferSize--) -- 2.11.4.GIT