1
1
Fork 0
mirror of https://github.com/QB64Official/qb64.git synced 2024-09-19 23:44:48 +00:00
qb64/internal/c/parts/audio/out/android/OpenAL/OpenAL32/alEffect.h
2015-10-30 23:18:44 +11:00

83 lines
1.5 KiB
C

// 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
ALfp Density;
ALfp Diffusion;
ALfp Gain;
ALfp GainHF;
ALfp DecayTime;
ALfp DecayHFRatio;
ALfp ReflectionsGain;
ALfp ReflectionsDelay;
ALfp LateReverbGain;
ALfp LateReverbDelay;
ALfp AirAbsorptionGainHF;
ALfp RoomRolloffFactor;
ALboolean DecayHFLimit;
// Additional EAX Reverb Properties
ALfp GainLF;
ALfp DecayLFRatio;
ALfp ReflectionsPan[3];
ALfp LateReverbPan[3];
ALfp EchoTime;
ALfp EchoDepth;
ALfp ModulationTime;
ALfp ModulationDepth;
ALfp HFReference;
ALfp LFReference;
} Reverb;
struct {
ALfp Delay;
ALfp LRDelay;
ALfp Damping;
ALfp Feedback;
ALfp Spread;
} Echo;
struct {
ALfp Frequency;
ALfp HighPassCutoff;
ALint Waveform;
} Modulator;
// Index to itself
ALuint effect;
} ALeffect;
ALvoid ReleaseALEffects(ALCdevice *device);
#ifdef __cplusplus
}
#endif
#endif