diff options
Diffstat (limited to 'al/effects/dedicated.cpp')
-rw-r--r-- | al/effects/dedicated.cpp | 91 |
1 files changed, 75 insertions, 16 deletions
diff --git a/al/effects/dedicated.cpp b/al/effects/dedicated.cpp index db57003c..f5edfd51 100644 --- a/al/effects/dedicated.cpp +++ b/al/effects/dedicated.cpp @@ -12,61 +12,120 @@ namespace { -void Dedicated_setParami(EffectProps*, ALenum param, int) +void DedicatedDialog_setParami(EffectProps*, ALenum param, int) { throw effect_exception{AL_INVALID_ENUM, "Invalid dedicated integer property 0x%04x", param}; } -void Dedicated_setParamiv(EffectProps*, ALenum param, const int*) +void DedicatedDialog_setParamiv(EffectProps*, ALenum param, const int*) { throw effect_exception{AL_INVALID_ENUM, "Invalid dedicated integer-vector property 0x%04x", param}; } -void Dedicated_setParamf(EffectProps *props, ALenum param, float val) +void DedicatedDialog_setParamf(EffectProps *props, ALenum param, float val) { switch(param) { case AL_DEDICATED_GAIN: if(!(val >= 0.0f && std::isfinite(val))) throw effect_exception{AL_INVALID_VALUE, "Dedicated gain out of range"}; - props->Dedicated.Gain = val; + props->DedicatedDialog.Gain = val; break; default: throw effect_exception{AL_INVALID_ENUM, "Invalid dedicated float property 0x%04x", param}; } } -void Dedicated_setParamfv(EffectProps *props, ALenum param, const float *vals) -{ Dedicated_setParamf(props, param, vals[0]); } +void DedicatedDialog_setParamfv(EffectProps *props, ALenum param, const float *vals) +{ DedicatedDialog_setParamf(props, param, vals[0]); } -void Dedicated_getParami(const EffectProps*, ALenum param, int*) +void DedicatedDialog_getParami(const EffectProps*, ALenum param, int*) { throw effect_exception{AL_INVALID_ENUM, "Invalid dedicated integer property 0x%04x", param}; } -void Dedicated_getParamiv(const EffectProps*, ALenum param, int*) +void DedicatedDialog_getParamiv(const EffectProps*, ALenum param, int*) { throw effect_exception{AL_INVALID_ENUM, "Invalid dedicated integer-vector property 0x%04x", param}; } -void Dedicated_getParamf(const EffectProps *props, ALenum param, float *val) +void DedicatedDialog_getParamf(const EffectProps *props, ALenum param, float *val) { switch(param) { case AL_DEDICATED_GAIN: - *val = props->Dedicated.Gain; + *val = props->DedicatedDialog.Gain; break; default: throw effect_exception{AL_INVALID_ENUM, "Invalid dedicated float property 0x%04x", param}; } } -void Dedicated_getParamfv(const EffectProps *props, ALenum param, float *vals) -{ Dedicated_getParamf(props, param, vals); } +void DedicatedDialog_getParamfv(const EffectProps *props, ALenum param, float *vals) +{ DedicatedDialog_getParamf(props, param, vals); } -EffectProps genDefaultProps() noexcept + +void DedicatedLfe_setParami(EffectProps*, ALenum param, int) +{ throw effect_exception{AL_INVALID_ENUM, "Invalid dedicated integer property 0x%04x", param}; } +void DedicatedLfe_setParamiv(EffectProps*, ALenum param, const int*) +{ + throw effect_exception{AL_INVALID_ENUM, "Invalid dedicated integer-vector property 0x%04x", + param}; +} +void DedicatedLfe_setParamf(EffectProps *props, ALenum param, float val) +{ + switch(param) + { + case AL_DEDICATED_GAIN: + if(!(val >= 0.0f && std::isfinite(val))) + throw effect_exception{AL_INVALID_VALUE, "Dedicated gain out of range"}; + props->DedicatedLfe.Gain = val; + break; + + default: + throw effect_exception{AL_INVALID_ENUM, "Invalid dedicated float property 0x%04x", param}; + } +} +void DedicatedLfe_setParamfv(EffectProps *props, ALenum param, const float *vals) +{ DedicatedLfe_setParamf(props, param, vals[0]); } + +void DedicatedLfe_getParami(const EffectProps*, ALenum param, int*) +{ throw effect_exception{AL_INVALID_ENUM, "Invalid dedicated integer property 0x%04x", param}; } +void DedicatedLfe_getParamiv(const EffectProps*, ALenum param, int*) +{ + throw effect_exception{AL_INVALID_ENUM, "Invalid dedicated integer-vector property 0x%04x", + param}; +} +void DedicatedLfe_getParamf(const EffectProps *props, ALenum param, float *val) +{ + switch(param) + { + case AL_DEDICATED_GAIN: + *val = props->DedicatedLfe.Gain; + break; + + default: + throw effect_exception{AL_INVALID_ENUM, "Invalid dedicated float property 0x%04x", param}; + } +} +void DedicatedLfe_getParamfv(const EffectProps *props, ALenum param, float *vals) +{ DedicatedLfe_getParamf(props, param, vals); } + + +EffectProps genDefaultDialogProps() noexcept +{ + EffectProps props{}; + props.DedicatedDialog.Gain = 1.0f; + return props; +} + +EffectProps genDefaultLfeProps() noexcept { EffectProps props{}; - props.Dedicated.Gain = 1.0f; + props.DedicatedLfe.Gain = 1.0f; return props; } } // namespace -DEFINE_ALEFFECT_VTABLE(Dedicated); +DEFINE_ALEFFECT_VTABLE(DedicatedDialog); + +const EffectProps DedicatedDialogEffectProps{genDefaultDialogProps()}; + +DEFINE_ALEFFECT_VTABLE(DedicatedLfe); -const EffectProps DedicatedEffectProps{genDefaultProps()}; +const EffectProps DedicatedLfeEffectProps{genDefaultLfeProps()}; |