aboutsummaryrefslogtreecommitdiffstats
path: root/OpenAL32
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2012-04-27 23:46:51 -0700
committerChris Robinson <[email protected]>2012-04-27 23:46:51 -0700
commit2450ee1723daddd8f0977f2589b45e126b1ae62a (patch)
treeebb8910200865cf92fe583d5990f776cd2311d70 /OpenAL32
parent67f1cdfcbe537d8f53e90c73d8a2358fa2138791 (diff)
Use separate methods for the dry and wet mixing loops
Diffstat (limited to 'OpenAL32')
-rw-r--r--OpenAL32/Include/alSource.h3
-rw-r--r--OpenAL32/Include/alu.h17
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);