Make the filter processing function inline
[openal-soft/openal-hmr.git] / OpenAL32 / Include / alFilter.h
blobc57dabb01b6d6a7ac681dbf7ad9061ea8234f414
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; /* pointer to history in filter */
12 float *coef; /* pointer to 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 AL_API ALvoid AL_APIENTRY alGenFilters(ALsizei n, ALuint *filters);
41 AL_API ALvoid AL_APIENTRY alDeleteFilters(ALsizei n, ALuint *filters);
42 AL_API ALboolean AL_APIENTRY alIsFilter(ALuint filter);
44 AL_API ALvoid AL_APIENTRY alFilteri(ALuint filter, ALenum param, ALint iValue);
45 AL_API ALvoid AL_APIENTRY alFilteriv(ALuint filter, ALenum param, ALint *piValues);
46 AL_API ALvoid AL_APIENTRY alFilterf(ALuint filter, ALenum param, ALfloat flValue);
47 AL_API ALvoid AL_APIENTRY alFilterfv(ALuint filter, ALenum param, ALfloat *pflValues);
49 AL_API ALvoid AL_APIENTRY alGetFilteri(ALuint filter, ALenum param, ALint *piValue);
50 AL_API ALvoid AL_APIENTRY alGetFilteriv(ALuint filter, ALenum param, ALint *piValues);
51 AL_API ALvoid AL_APIENTRY alGetFilterf(ALuint filter, ALenum param, ALfloat *pflValue);
52 AL_API ALvoid AL_APIENTRY alGetFilterfv(ALuint filter, ALenum param, ALfloat *pflValues);
54 ALvoid ReleaseALFilters(ALvoid);
56 #define FILTER_SECTIONS 2 /* 2 filter sections for 24 db/oct filter */
58 int InitLowPassFilter(ALCcontext *Context, FILTER *iir);
60 #ifdef __cplusplus
62 #endif
64 #endif