annotate OpenAL32/Include/alEffect.h @ 0:f9476ff7637e

initial forking of open-al to create multiple listeners
author Robert McIntyre <rlm@mit.edu>
date Tue, 25 Oct 2011 13:02:31 -0700
parents
children
rev   line source
rlm@0 1 #ifndef _AL_EFFECT_H_
rlm@0 2 #define _AL_EFFECT_H_
rlm@0 3
rlm@0 4 #include "AL/al.h"
rlm@0 5
rlm@0 6 #ifdef __cplusplus
rlm@0 7 extern "C" {
rlm@0 8 #endif
rlm@0 9
rlm@0 10 enum {
rlm@0 11 EAXREVERB = 0,
rlm@0 12 REVERB,
rlm@0 13 ECHO,
rlm@0 14 MODULATOR,
rlm@0 15 DEDICATED,
rlm@0 16
rlm@0 17 MAX_EFFECTS
rlm@0 18 };
rlm@0 19 extern ALboolean DisabledEffects[MAX_EFFECTS];
rlm@0 20
rlm@0 21 extern ALfloat ReverbBoost;
rlm@0 22 extern ALboolean EmulateEAXReverb;
rlm@0 23
rlm@0 24 typedef struct ALeffect
rlm@0 25 {
rlm@0 26 // Effect type (AL_EFFECT_NULL, ...)
rlm@0 27 ALenum type;
rlm@0 28
rlm@0 29 union {
rlm@0 30 struct {
rlm@0 31 // Shared Reverb Properties
rlm@0 32 ALfloat Density;
rlm@0 33 ALfloat Diffusion;
rlm@0 34 ALfloat Gain;
rlm@0 35 ALfloat GainHF;
rlm@0 36 ALfloat DecayTime;
rlm@0 37 ALfloat DecayHFRatio;
rlm@0 38 ALfloat ReflectionsGain;
rlm@0 39 ALfloat ReflectionsDelay;
rlm@0 40 ALfloat LateReverbGain;
rlm@0 41 ALfloat LateReverbDelay;
rlm@0 42 ALfloat AirAbsorptionGainHF;
rlm@0 43 ALfloat RoomRolloffFactor;
rlm@0 44 ALboolean DecayHFLimit;
rlm@0 45
rlm@0 46 // Additional EAX Reverb Properties
rlm@0 47 ALfloat GainLF;
rlm@0 48 ALfloat DecayLFRatio;
rlm@0 49 ALfloat ReflectionsPan[3];
rlm@0 50 ALfloat LateReverbPan[3];
rlm@0 51 ALfloat EchoTime;
rlm@0 52 ALfloat EchoDepth;
rlm@0 53 ALfloat ModulationTime;
rlm@0 54 ALfloat ModulationDepth;
rlm@0 55 ALfloat HFReference;
rlm@0 56 ALfloat LFReference;
rlm@0 57 } Reverb;
rlm@0 58
rlm@0 59 struct {
rlm@0 60 ALfloat Delay;
rlm@0 61 ALfloat LRDelay;
rlm@0 62
rlm@0 63 ALfloat Damping;
rlm@0 64 ALfloat Feedback;
rlm@0 65
rlm@0 66 ALfloat Spread;
rlm@0 67 } Echo;
rlm@0 68
rlm@0 69 struct {
rlm@0 70 ALfloat Frequency;
rlm@0 71 ALfloat HighPassCutoff;
rlm@0 72 ALint Waveform;
rlm@0 73 } Modulator;
rlm@0 74
rlm@0 75 struct {
rlm@0 76 ALfloat Gain;
rlm@0 77 } Dedicated;
rlm@0 78 } Params;
rlm@0 79
rlm@0 80 // Index to itself
rlm@0 81 ALuint effect;
rlm@0 82 } ALeffect;
rlm@0 83
rlm@0 84 static __inline ALboolean IsReverbEffect(ALenum type)
rlm@0 85 { return type == AL_EFFECT_REVERB || type == AL_EFFECT_EAXREVERB; }
rlm@0 86
rlm@0 87 ALvoid ReleaseALEffects(ALCdevice *device);
rlm@0 88
rlm@0 89 #ifdef __cplusplus
rlm@0 90 }
rlm@0 91 #endif
rlm@0 92
rlm@0 93 #endif