|
|
- #ifndef _AL_EFFECT_H_
- #define _AL_EFFECT_H_
-
- #include "alMain.h"
- #include "effects/base.h"
-
-
- enum {
- EAXREVERB_EFFECT = 0,
- REVERB_EFFECT,
- AUTOWAH_EFFECT,
- CHORUS_EFFECT,
- COMPRESSOR_EFFECT,
- DISTORTION_EFFECT,
- ECHO_EFFECT,
- EQUALIZER_EFFECT,
- FLANGER_EFFECT,
- FSHIFTER_EFFECT,
- MODULATOR_EFFECT,
- PSHIFTER_EFFECT,
- DEDICATED_EFFECT,
-
- MAX_EFFECTS
- };
- extern ALboolean DisabledEffects[MAX_EFFECTS];
-
- extern ALfloat ReverbBoost;
-
- struct EffectList {
- const char name[16];
- int type;
- ALenum val;
- };
- extern const EffectList gEffectList[14];
-
-
- struct ALeffect {
- // Effect type (AL_EFFECT_NULL, ...)
- ALenum type{AL_EFFECT_NULL};
-
- EffectProps Props{};
-
- const EffectVtable *vtab{nullptr};
-
- /* Self ID */
- ALuint id{0u};
- };
-
- inline ALboolean IsReverbEffect(ALenum type)
- { return type == AL_EFFECT_REVERB || type == AL_EFFECT_EAXREVERB; }
-
- EffectStateFactory *getFactoryByType(ALenum type);
-
- void InitEffect(ALeffect *effect);
-
- void LoadReverbPreset(const char *name, ALeffect *effect);
-
- #endif
|