aboutsummaryrefslogtreecommitdiffstats
path: root/OpenAL32/alEffect.h
diff options
context:
space:
mode:
authorChris Robinson <chris.kcat@gmail.com>2019-07-28 19:09:07 -0700
committerChris Robinson <chris.kcat@gmail.com>2019-07-28 19:09:07 -0700
commit83432a7e5c7f565a08c41bb104ae25286c5fc82b (patch)
treeb16a5b86f037190bac4686adede6078d9928131a /OpenAL32/alEffect.h
parentcb3e96e75640730b9391f0d2d922eecd9ee2ce79 (diff)
Move some headers out of the Include subdirectory
Diffstat (limited to 'OpenAL32/alEffect.h')
-rw-r--r--OpenAL32/alEffect.h59
1 files changed, 59 insertions, 0 deletions
diff --git a/OpenAL32/alEffect.h b/OpenAL32/alEffect.h
new file mode 100644
index 00000000..d43aa206
--- /dev/null
+++ b/OpenAL32/alEffect.h
@@ -0,0 +1,59 @@
+#ifndef _AL_EFFECT_H_
+#define _AL_EFFECT_H_
+
+#include "alcmain.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,
+ VMORPHER_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[15];
+
+
+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