diff options
author | Chris Robinson <[email protected]> | 2014-11-22 13:03:09 -0800 |
---|---|---|
committer | Chris Robinson <[email protected]> | 2014-11-22 13:08:19 -0800 |
commit | dece86f61f975c7a6f3bcc1d00bd4cf97dcdbcab (patch) | |
tree | c60406d0b4888eb3dabd36883d0e2768d6ded5f9 | |
parent | fb511351dfe1db70af47b27dfded83d588f61faf (diff) |
Store the number of output channels in the voice
-rw-r--r-- | Alc/ALu.c | 2 | ||||
-rw-r--r-- | Alc/mixer.c | 2 | ||||
-rw-r--r-- | OpenAL32/Include/alu.h | 1 |
3 files changed, 4 insertions, 1 deletions
@@ -330,6 +330,7 @@ ALvoid CalcNonAttnSourceParams(ALvoice *voice, const ALsource *ALSource, const A DirectChannels = ALSource->DirectChannels; voice->Direct.OutBuffer = Device->DryBuffer; + voice->Direct.NumChannels = Device->NumChannels; for(i = 0;i < NumSends;i++) { ALeffectslot *Slot = ALSource->Send[i].Slot; @@ -659,6 +660,7 @@ ALvoid CalcSourceParams(ALvoice *voice, const ALsource *ALSource, const ALCconte RoomRolloffBase = ALSource->RoomRolloffFactor; voice->Direct.OutBuffer = Device->DryBuffer; + voice->Direct.NumChannels = Device->NumChannels; for(i = 0;i < NumSends;i++) { ALeffectslot *Slot = ALSource->Send[i].Slot; diff --git a/Alc/mixer.c b/Alc/mixer.c index b9bd4463..4f10c629 100644 --- a/Alc/mixer.c +++ b/Alc/mixer.c @@ -415,7 +415,7 @@ ALvoid MixSource(ALvoice *voice, ALsource *Source, ALCdevice *Device, ALuint Sam Device->FilteredData, ResampledData, DstBufferSize, parms->Filters[chan].ActiveType ); - Mix(samples, Device->NumChannels, parms->OutBuffer, parms->Gains[chan], + Mix(samples, parms->NumChannels, parms->OutBuffer, parms->Gains[chan], parms->Counter, OutPos, DstBufferSize); } diff --git a/OpenAL32/Include/alu.h b/OpenAL32/Include/alu.h index 0ff8ddbc..c96d5563 100644 --- a/OpenAL32/Include/alu.h +++ b/OpenAL32/Include/alu.h @@ -58,6 +58,7 @@ typedef struct MixGains { typedef struct DirectParams { ALfloat (*OutBuffer)[BUFFERSIZE]; + ALuint NumChannels; /* If not 'moving', gain/coefficients are set directly without fading. */ ALboolean Moving; |