summaryrefslogtreecommitdiffstats
path: root/Alc/effects/dedicated.c
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2014-10-02 21:19:34 -0700
committerChris Robinson <[email protected]>2014-10-02 21:19:34 -0700
commit70b23ab77f99c6e4baeca3cb74355a027cf6769d (patch)
treebadc3fce317db7928dc2ddf06b870cf96c32413b /Alc/effects/dedicated.c
parent79fb86d8f79459b0144e4de750e9b6f07c4de473 (diff)
Add a helper to search for a channel index by name
Diffstat (limited to 'Alc/effects/dedicated.c')
-rw-r--r--Alc/effects/dedicated.c18
1 files changed, 7 insertions, 11 deletions
diff --git a/Alc/effects/dedicated.c b/Alc/effects/dedicated.c
index ea028046..e3014967 100644
--- a/Alc/effects/dedicated.c
+++ b/Alc/effects/dedicated.c
@@ -55,21 +55,17 @@ static ALvoid ALdedicatedState_update(ALdedicatedState *state, ALCdevice *device
Gain = Slot->Gain * Slot->EffectProps.Dedicated.Gain;
if(Slot->EffectType == AL_EFFECT_DEDICATED_LOW_FREQUENCY_EFFECT)
- state->gains[LFE] = Gain;
+ {
+ if(GetChannelIdxByName(device, LFE) != -1)
+ state->gains[LFE] = Gain;
+ }
else if(Slot->EffectType == AL_EFFECT_DEDICATED_DIALOGUE)
{
- ALboolean done = AL_FALSE;
/* Dialog goes to the front-center speaker if it exists, otherwise it
* plays from the front-center location. */
- for(i = 0;i < device->NumSpeakers;i++)
- {
- if(device->Speaker[i].ChanName == FrontCenter)
- {
- state->gains[FrontCenter] = Gain;
- done = AL_TRUE;
- }
- }
- if(!done)
+ if(GetChannelIdxByName(device, FrontCenter) != -1)
+ state->gains[FrontCenter] = Gain;
+ else
{
static const ALfloat front_dir[3] = { 0.0f, 0.0f, -1.0f };
ComputeDirectionalGains(device, front_dir, Gain, state->gains);