diff options
author | Chris Robinson <[email protected]> | 2012-03-12 18:27:25 -0700 |
---|---|---|
committer | Chris Robinson <[email protected]> | 2012-03-12 18:27:25 -0700 |
commit | 335232207dce93e4f74e2d03230dc67626ebd347 (patch) | |
tree | 570df8da9a9001c00731f814e9021f6d687aa67c /Alc/ALu.c | |
parent | 93e71f0554d08b515aecd42d795cd62a980ff791 (diff) |
With DirectChannels enabled, don't try to mix channels that have no matching output
Diffstat (limited to 'Alc/ALu.c')
-rw-r--r-- | Alc/ALu.c | 12 |
1 files changed, 11 insertions, 1 deletions
@@ -250,7 +250,17 @@ ALvoid CalcNonAttnSourceParams(ALsource *ALSource, const ALCcontext *ALContext) if(DirectChannels != AL_FALSE) { for(c = 0;c < num_channels;c++) - SrcMatrix[c][chans[c].channel] += DryGain * ListenerGain; + { + for(i = 0;i < (ALint)Device->NumChan;i++) + { + enum Channel chan = Device->Speaker2Chan[i]; + if(chan == chans[c].channel) + { + SrcMatrix[c][chan] += DryGain * ListenerGain; + break; + } + } + } } else if(Device->Hrtf) { |