diff options
author | Chris Robinson <[email protected]> | 2012-04-27 23:46:51 -0700 |
---|---|---|
committer | Chris Robinson <[email protected]> | 2012-04-27 23:46:51 -0700 |
commit | 2450ee1723daddd8f0977f2589b45e126b1ae62a (patch) | |
tree | ebb8910200865cf92fe583d5990f776cd2311d70 /OpenAL32 | |
parent | 67f1cdfcbe537d8f53e90c73d8a2358fa2138791 (diff) |
Use separate methods for the dry and wet mixing loops
Diffstat (limited to 'OpenAL32')
-rw-r--r-- | OpenAL32/Include/alSource.h | 3 | ||||
-rw-r--r-- | OpenAL32/Include/alu.h | 17 |
2 files changed, 13 insertions, 7 deletions
diff --git a/OpenAL32/Include/alSource.h b/OpenAL32/Include/alSource.h index 98803115..badf4e18 100644 --- a/OpenAL32/Include/alSource.h +++ b/OpenAL32/Include/alSource.h @@ -123,7 +123,8 @@ typedef struct ALsource /** Current target parameters used for mixing. */ struct { - MixerFunc DoMix; + DryMixerFunc DryMix; + WetMixerFunc WetMix; ALint Step; diff --git a/OpenAL32/Include/alu.h b/OpenAL32/Include/alu.h index 68353a00..cf083d4b 100644 --- a/OpenAL32/Include/alu.h +++ b/OpenAL32/Include/alu.h @@ -120,10 +120,14 @@ extern "C" { struct ALsource; struct ALbuffer; -typedef ALvoid (*MixerFunc)(struct ALsource *self, ALCdevice *Device, - const ALfloat *RESTRICT data, ALuint srcfrac, - ALuint OutPos, ALuint SamplesToDo, - ALuint BufferSize); +typedef ALvoid (*DryMixerFunc)(struct ALsource *self, ALCdevice *Device, + const ALfloat *RESTRICT data, ALuint srcfrac, + ALuint OutPos, ALuint SamplesToDo, + ALuint BufferSize); +typedef ALvoid (*WetMixerFunc)(struct ALsource *self, ALuint sendidx, + const ALfloat *RESTRICT data, ALuint srcfrac, + ALuint OutPos, ALuint SamplesToDo, + ALuint BufferSize); enum Resampler { PointResampler, @@ -293,8 +297,9 @@ ALint aluCart2LUTpos(ALfloat re, ALfloat im); ALvoid CalcSourceParams(struct ALsource *ALSource, const ALCcontext *ALContext); ALvoid CalcNonAttnSourceParams(struct ALsource *ALSource, const ALCcontext *ALContext); -MixerFunc SelectMixer(enum Resampler Resampler); -MixerFunc SelectHrtfMixer(enum Resampler Resampler); +DryMixerFunc SelectDirectMixer(enum Resampler Resampler); +DryMixerFunc SelectHrtfMixer(enum Resampler Resampler); +WetMixerFunc SelectSendMixer(enum Resampler Resampler); ALvoid MixSource(struct ALsource *Source, ALCdevice *Device, ALuint SamplesToDo); |