1 #ifndef EAX_EFFECT_INCLUDED
2 #define EAX_EFFECT_INCLUDED
8 #include "core/effects/base.h"
9 #include "eax_eax_call.h"
14 EaxEffect(ALenum type
) : al_effect_type_
{type
} { }
15 virtual ~EaxEffect() = default;
17 const ALenum al_effect_type_
;
18 EffectProps al_effect_props_
{};
20 virtual void dispatch(const EaxEaxCall
& eax_call
) = 0;
22 // Returns "true" if any immediated property was changed.
24 virtual bool apply_deferred() = 0;
28 using EaxEffectUPtr
= std::unique_ptr
<EaxEffect
>;
30 EaxEffectUPtr
eax_create_eax_null_effect();
31 EaxEffectUPtr
eax_create_eax_chorus_effect();
32 EaxEffectUPtr
eax_create_eax_distortion_effect();
33 EaxEffectUPtr
eax_create_eax_echo_effect();
34 EaxEffectUPtr
eax_create_eax_flanger_effect();
35 EaxEffectUPtr
eax_create_eax_frequency_shifter_effect();
36 EaxEffectUPtr
eax_create_eax_vocal_morpher_effect();
37 EaxEffectUPtr
eax_create_eax_pitch_shifter_effect();
38 EaxEffectUPtr
eax_create_eax_ring_modulator_effect();
39 EaxEffectUPtr
eax_create_eax_auto_wah_effect();
40 EaxEffectUPtr
eax_create_eax_compressor_effect();
41 EaxEffectUPtr
eax_create_eax_equalizer_effect();
42 EaxEffectUPtr
eax_create_eax_reverb_effect();
44 #endif // !EAX_EFFECT_INCLUDED