aboutsummaryrefslogtreecommitdiffstats
path: root/al/effects
diff options
context:
space:
mode:
Diffstat (limited to 'al/effects')
-rw-r--r--al/effects/dedicated.cpp91
-rw-r--r--al/effects/effects.h6
2 files changed, 79 insertions, 18 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()};
diff --git a/al/effects/effects.h b/al/effects/effects.h
index 66fc8c44..2e49eb00 100644
--- a/al/effects/effects.h
+++ b/al/effects/effects.h
@@ -64,7 +64,8 @@ extern const EffectProps FshifterEffectProps;
extern const EffectProps ModulatorEffectProps;
extern const EffectProps PshifterEffectProps;
extern const EffectProps VmorpherEffectProps;
-extern const EffectProps DedicatedEffectProps;
+extern const EffectProps DedicatedDialogEffectProps;
+extern const EffectProps DedicatedLfeEffectProps;
extern const EffectProps ConvolutionEffectProps;
/* Vtables to get/set properties for the given effect types. */
@@ -82,7 +83,8 @@ extern const EffectVtable FshifterEffectVtable;
extern const EffectVtable ModulatorEffectVtable;
extern const EffectVtable PshifterEffectVtable;
extern const EffectVtable VmorpherEffectVtable;
-extern const EffectVtable DedicatedEffectVtable;
+extern const EffectVtable DedicatedDialogEffectVtable;
+extern const EffectVtable DedicatedLfeEffectVtable;
extern const EffectVtable ConvolutionEffectVtable;
#endif /* AL_EFFECTS_EFFECTS_H */