19 extern ALboolean DisabledEffects
[MAX_EFFECTS
];
21 extern ALfloat ReverbBoost
;
22 extern ALboolean EmulateEAXReverb
;
24 typedef struct ALeffect
26 // Effect type (AL_EFFECT_NULL, ...)
30 // Shared Reverb Properties
37 ALfloat ReflectionsGain
;
38 ALfloat ReflectionsDelay
;
39 ALfloat LateReverbGain
;
40 ALfloat LateReverbDelay
;
41 ALfloat AirAbsorptionGainHF
;
42 ALfloat RoomRolloffFactor
;
43 ALboolean DecayHFLimit
;
45 // Additional EAX Reverb Properties
48 ALfloat ReflectionsPan
[3];
49 ALfloat LateReverbPan
[3];
52 ALfloat ModulationTime
;
53 ALfloat ModulationDepth
;
70 ALfloat HighPassCutoff
;
78 void (*SetParami
)(struct ALeffect
*effect
, ALCcontext
*context
, ALenum param
, ALint val
);
79 void (*SetParamiv
)(struct ALeffect
*effect
, ALCcontext
*context
, ALenum param
, const ALint
*vals
);
80 void (*SetParamf
)(struct ALeffect
*effect
, ALCcontext
*context
, ALenum param
, ALfloat val
);
81 void (*SetParamfv
)(struct ALeffect
*effect
, ALCcontext
*context
, ALenum param
, const ALfloat
*vals
);
83 void (*GetParami
)(struct ALeffect
*effect
, ALCcontext
*context
, ALenum param
, ALint
*val
);
84 void (*GetParamiv
)(struct ALeffect
*effect
, ALCcontext
*context
, ALenum param
, ALint
*vals
);
85 void (*GetParamf
)(struct ALeffect
*effect
, ALCcontext
*context
, ALenum param
, ALfloat
*val
);
86 void (*GetParamfv
)(struct ALeffect
*effect
, ALCcontext
*context
, ALenum param
, ALfloat
*vals
);
92 #define ALeffect_SetParami(x, c, p, v) ((x)->SetParami((x),(c),(p),(v)))
93 #define ALeffect_SetParamiv(x, c, p, v) ((x)->SetParamiv((x),(c),(p),(v)))
94 #define ALeffect_SetParamf(x, c, p, v) ((x)->SetParamf((x),(c),(p),(v)))
95 #define ALeffect_SetParamfv(x, c, p, v) ((x)->SetParamfv((x),(c),(p),(v)))
97 #define ALeffect_GetParami(x, c, p, v) ((x)->GetParami((x),(c),(p),(v)))
98 #define ALeffect_GetParamiv(x, c, p, v) ((x)->GetParamiv((x),(c),(p),(v)))
99 #define ALeffect_GetParamf(x, c, p, v) ((x)->GetParamf((x),(c),(p),(v)))
100 #define ALeffect_GetParamfv(x, c, p, v) ((x)->GetParamfv((x),(c),(p),(v)))
102 static __inline ALboolean
IsReverbEffect(ALenum type
)
103 { return type
== AL_EFFECT_REVERB
|| type
== AL_EFFECT_EAXREVERB
; }
105 ALenum
InitEffect(ALeffect
*effect
);
106 ALvoid
ReleaseALEffects(ALCdevice
*device
);
108 ALvoid
LoadReverbPreset(const char *name
, ALeffect
*effect
);