aboutsummaryrefslogtreecommitdiffstats
path: root/al/effect.cpp
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2020-12-26 09:21:30 -0800
committerChris Robinson <[email protected]>2020-12-26 09:21:30 -0800
commit54719de13235f6ea216e8d200661027c047bd283 (patch)
tree469e890debbe901619a4cbbcfc6b682a4b686b80 /al/effect.cpp
parent8850a3f730dee76c57d5500b0c418078c91096c7 (diff)
Avoid AL enums for the EffectSlot type
Diffstat (limited to 'al/effect.cpp')
-rw-r--r--al/effect.cpp59
1 files changed, 24 insertions, 35 deletions
diff --git a/al/effect.cpp b/al/effect.cpp
index 7ddf9664..02b31fac 100644
--- a/al/effect.cpp
+++ b/al/effect.cpp
@@ -82,30 +82,29 @@ effect_exception::effect_exception(ALenum code, const char *msg, ...) : mErrorCo
namespace {
-struct FactoryItem {
+struct EffectPropsItem {
ALenum Type;
- EffectStateFactory* (&GetFactory)(void);
const EffectProps &DefaultProps;
const EffectVtable &Vtable;
};
-constexpr FactoryItem FactoryList[] = {
- { AL_EFFECT_NULL, NullStateFactory_getFactory, NullEffectProps, NullEffectVtable },
- { AL_EFFECT_EAXREVERB, ReverbStateFactory_getFactory, ReverbEffectProps, ReverbEffectVtable },
- { AL_EFFECT_REVERB, StdReverbStateFactory_getFactory, StdReverbEffectProps, StdReverbEffectVtable },
- { AL_EFFECT_AUTOWAH, AutowahStateFactory_getFactory, AutowahEffectProps, AutowahEffectVtable },
- { AL_EFFECT_CHORUS, ChorusStateFactory_getFactory, ChorusEffectProps, ChorusEffectVtable },
- { AL_EFFECT_COMPRESSOR, CompressorStateFactory_getFactory, CompressorEffectProps, CompressorEffectVtable },
- { AL_EFFECT_DISTORTION, DistortionStateFactory_getFactory, DistortionEffectProps, DistortionEffectVtable },
- { AL_EFFECT_ECHO, EchoStateFactory_getFactory, EchoEffectProps, EchoEffectVtable },
- { AL_EFFECT_EQUALIZER, EqualizerStateFactory_getFactory, EqualizerEffectProps, EqualizerEffectVtable },
- { AL_EFFECT_FLANGER, FlangerStateFactory_getFactory, FlangerEffectProps, FlangerEffectVtable },
- { AL_EFFECT_FREQUENCY_SHIFTER, FshifterStateFactory_getFactory, FshifterEffectProps, FshifterEffectVtable },
- { AL_EFFECT_RING_MODULATOR, ModulatorStateFactory_getFactory, ModulatorEffectProps, ModulatorEffectVtable },
- { AL_EFFECT_PITCH_SHIFTER, PshifterStateFactory_getFactory, PshifterEffectProps, PshifterEffectVtable },
- { AL_EFFECT_VOCAL_MORPHER, VmorpherStateFactory_getFactory, VmorpherEffectProps, VmorpherEffectVtable },
- { AL_EFFECT_DEDICATED_DIALOGUE, DedicatedStateFactory_getFactory, DedicatedEffectProps, DedicatedEffectVtable },
- { AL_EFFECT_DEDICATED_LOW_FREQUENCY_EFFECT, DedicatedStateFactory_getFactory, DedicatedEffectProps, DedicatedEffectVtable },
- { AL_EFFECT_CONVOLUTION_REVERB_SOFT, ConvolutionStateFactory_getFactory, ConvolutionEffectProps, ConvolutionEffectVtable },
+constexpr EffectPropsItem EffectPropsList[] = {
+ { AL_EFFECT_NULL, NullEffectProps, NullEffectVtable },
+ { AL_EFFECT_EAXREVERB, ReverbEffectProps, ReverbEffectVtable },
+ { AL_EFFECT_REVERB, StdReverbEffectProps, StdReverbEffectVtable },
+ { AL_EFFECT_AUTOWAH, AutowahEffectProps, AutowahEffectVtable },
+ { AL_EFFECT_CHORUS, ChorusEffectProps, ChorusEffectVtable },
+ { AL_EFFECT_COMPRESSOR, CompressorEffectProps, CompressorEffectVtable },
+ { AL_EFFECT_DISTORTION, DistortionEffectProps, DistortionEffectVtable },
+ { AL_EFFECT_ECHO, EchoEffectProps, EchoEffectVtable },
+ { AL_EFFECT_EQUALIZER, EqualizerEffectProps, EqualizerEffectVtable },
+ { AL_EFFECT_FLANGER, FlangerEffectProps, FlangerEffectVtable },
+ { AL_EFFECT_FREQUENCY_SHIFTER, FshifterEffectProps, FshifterEffectVtable },
+ { AL_EFFECT_RING_MODULATOR, ModulatorEffectProps, ModulatorEffectVtable },
+ { AL_EFFECT_PITCH_SHIFTER, PshifterEffectProps, PshifterEffectVtable },
+ { AL_EFFECT_VOCAL_MORPHER, VmorpherEffectProps, VmorpherEffectVtable },
+ { AL_EFFECT_DEDICATED_DIALOGUE, DedicatedEffectProps, DedicatedEffectVtable },
+ { AL_EFFECT_DEDICATED_LOW_FREQUENCY_EFFECT, DedicatedEffectProps, DedicatedEffectVtable },
+ { AL_EFFECT_CONVOLUTION_REVERB_SOFT, ConvolutionEffectProps, ConvolutionEffectVtable },
};
@@ -128,17 +127,17 @@ void ALeffect_getParamfv(const ALeffect *effect, ALenum param, float *values)
{ effect->vtab->getParamfv(&effect->Props, param, values); }
-const FactoryItem *getFactoryItemByType(ALenum type)
+const EffectPropsItem *getEffectPropsItemByType(ALenum type)
{
- auto iter = std::find_if(std::begin(FactoryList), std::end(FactoryList),
- [type](const FactoryItem &item) noexcept -> bool
+ auto iter = std::find_if(std::begin(EffectPropsList), std::end(EffectPropsList),
+ [type](const EffectPropsItem &item) noexcept -> bool
{ return item.Type == type; });
- return (iter != std::end(FactoryList)) ? std::addressof(*iter) : nullptr;
+ return (iter != std::end(EffectPropsList)) ? std::addressof(*iter) : nullptr;
}
void InitEffectParams(ALeffect *effect, ALenum type)
{
- const FactoryItem *item{getFactoryItemByType(type)};
+ const EffectPropsItem *item{getEffectPropsItemByType(type)};
if(item)
{
effect->Props = item->DefaultProps;
@@ -554,16 +553,6 @@ EffectSubList::~EffectSubList()
}
-EffectStateFactory *getFactoryByType(ALenum type)
-{
- auto iter = std::find_if(std::begin(FactoryList), std::end(FactoryList),
- [type](const FactoryItem &item) noexcept -> bool
- { return item.Type == type; }
- );
- return (iter != std::end(FactoryList)) ? iter->GetFactory() : nullptr;
-}
-
-
#define DECL(x) { #x, EFX_REVERB_PRESET_##x }
static const struct {
const char name[32];