diff options
author | Chris Robinson <[email protected]> | 2014-10-31 22:43:13 -0700 |
---|---|---|
committer | Chris Robinson <[email protected]> | 2014-10-31 22:43:13 -0700 |
commit | 3d2853274dbf81723b907677446bd09f94f35022 (patch) | |
tree | 6f6001476326386c838a61da0fb9775a6705d390 /Alc/panning.c | |
parent | 336aba6f1f9bc21d900435a264c048a36bca0fc8 (diff) |
Support B-Format source rotation with AL_ORIENTATION
Diffstat (limited to 'Alc/panning.c')
-rw-r--r-- | Alc/panning.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/Alc/panning.c b/Alc/panning.c index 85de3626..ad8ad43b 100644 --- a/Alc/panning.c +++ b/Alc/panning.c @@ -81,16 +81,18 @@ void ComputeDirectionalGains(const ALCdevice *device, const ALfloat dir[3], ALfl } } -void ComputeBFormatGains(const ALCdevice *device, ALuint channum, ALfloat ingain, ALfloat gains[MaxChannels]) +void ComputeBFormatGains(const ALCdevice *device, const ALfloat mtx[4], ALfloat ingain, ALfloat gains[MaxChannels]) { - ALuint i; + ALuint i, j; for(i = 0;i < MaxChannels;i++) gains[i] = 0.0f; for(i = 0;i < device->NumSpeakers;i++) { enum Channel chan = device->Speaker[i].ChanName; - gains[chan] = device->Speaker[i].FOACoeff[channum] * ingain; + for(j = 0;j < 4;j++) + gains[chan] += device->Speaker[i].FOACoeff[j] * mtx[j]; + gains[chan] *= ingain; } } |