Use a 12dB/oct rolloff instead of 24 for the lowpass filter
[openal-soft.git] / OpenAL32 / Include / alFilter.h
blob83912cfac98a205e6240063b8217a2ed9f52b089
1 #ifndef _AL_FILTER_H_
2 #define _AL_FILTER_H_
4 #include "AL/al.h"
6 #ifdef __cplusplus
7 extern "C" {
8 #endif
10 typedef struct {
11 float history[2]; /* history in filter */
12 float coef[4 + 1]; /* coefficients of filter */
13 } FILTER;
15 #define AL_FILTER_TYPE 0x8001
17 #define AL_FILTER_NULL 0x0000
18 #define AL_FILTER_LOWPASS 0x0001
19 #define AL_FILTER_HIGHPASS 0x0002
20 #define AL_FILTER_BANDPASS 0x0003
22 #define AL_LOWPASS_GAIN 0x0001
23 #define AL_LOWPASS_GAINHF 0x0002
26 typedef struct ALfilter_struct
28 // Filter type (AL_FILTER_NULL, ...)
29 ALenum type;
31 ALfloat Gain;
32 ALfloat GainHF;
34 // Index to itself
35 ALuint filter;
37 struct ALfilter_struct *next;
38 } ALfilter;
40 ALvoid AL_APIENTRY alGenFilters(ALsizei n, ALuint *filters);
41 ALvoid AL_APIENTRY alDeleteFilters(ALsizei n, ALuint *filters);
42 ALboolean AL_APIENTRY alIsFilter(ALuint filter);
44 ALvoid AL_APIENTRY alFilteri(ALuint filter, ALenum param, ALint iValue);
45 ALvoid AL_APIENTRY alFilteriv(ALuint filter, ALenum param, ALint *piValues);
46 ALvoid AL_APIENTRY alFilterf(ALuint filter, ALenum param, ALfloat flValue);
47 ALvoid AL_APIENTRY alFilterfv(ALuint filter, ALenum param, ALfloat *pflValues);
49 ALvoid AL_APIENTRY alGetFilteri(ALuint filter, ALenum param, ALint *piValue);
50 ALvoid AL_APIENTRY alGetFilteriv(ALuint filter, ALenum param, ALint *piValues);
51 ALvoid AL_APIENTRY alGetFilterf(ALuint filter, ALenum param, ALfloat *pflValue);
52 ALvoid AL_APIENTRY alGetFilterfv(ALuint filter, ALenum param, ALfloat *pflValues);
54 ALvoid ReleaseALFilters(ALvoid);
56 int InitLowPassFilter(ALCcontext *Context, FILTER *iir);
58 #ifdef __cplusplus
60 #endif
62 #endif