123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- // NOTE: The effect structure is getting too large, it may be a good idea to
- // start using a union or another form of unified storage.
- #ifndef _AL_EFFECT_H_
- #define _AL_EFFECT_H_
- #include "AL/al.h"
- #ifdef __cplusplus
- extern "C" {
- #endif
- enum {
- EAXREVERB = 0,
- REVERB,
- ECHO,
- MODULATOR,
- MAX_EFFECTS
- };
- extern ALboolean DisabledEffects[MAX_EFFECTS];
- typedef struct ALeffect
- {
- // Effect type (AL_EFFECT_NULL, ...)
- ALenum type;
- struct {
- // Shared Reverb Properties
- ALfloat Density;
- ALfloat Diffusion;
- ALfloat Gain;
- ALfloat GainHF;
- ALfloat DecayTime;
- ALfloat DecayHFRatio;
- ALfloat ReflectionsGain;
- ALfloat ReflectionsDelay;
- ALfloat LateReverbGain;
- ALfloat LateReverbDelay;
- ALfloat AirAbsorptionGainHF;
- ALfloat RoomRolloffFactor;
- ALboolean DecayHFLimit;
- // Additional EAX Reverb Properties
- ALfloat GainLF;
- ALfloat DecayLFRatio;
- ALfloat ReflectionsPan[3];
- ALfloat LateReverbPan[3];
- ALfloat EchoTime;
- ALfloat EchoDepth;
- ALfloat ModulationTime;
- ALfloat ModulationDepth;
- ALfloat HFReference;
- ALfloat LFReference;
- } Reverb;
- struct {
- ALfloat Delay;
- ALfloat LRDelay;
- ALfloat Damping;
- ALfloat Feedback;
- ALfloat Spread;
- } Echo;
- struct {
- ALfloat Frequency;
- ALfloat HighPassCutoff;
- ALint Waveform;
- } Modulator;
- // Index to itself
- ALuint effect;
- } ALeffect;
- ALvoid ReleaseALEffects(ALCdevice *device);
- #ifdef __cplusplus
- }
- #endif
- #endif
|