Rework HRTF decision logic
[openal-soft.git] / Alc / hrtf.h
blob4863634408ad141455a1d52b991f213a31a78274
1 #ifndef ALC_HRTF_H
2 #define ALC_HRTF_H
4 #include "AL/al.h"
5 #include "AL/alc.h"
7 enum DevFmtChannels;
9 struct Hrtf;
11 #define HRIR_BITS (7)
12 #define HRIR_LENGTH (1<<HRIR_BITS)
13 #define HRIR_MASK (HRIR_LENGTH-1)
14 #define HRTFDELAY_BITS (20)
15 #define HRTFDELAY_FRACONE (1<<HRTFDELAY_BITS)
16 #define HRTFDELAY_MASK (HRTFDELAY_FRACONE-1)
18 const struct Hrtf *GetHrtf(enum DevFmtChannels chans, ALCuint srate);
19 ALCboolean FindHrtfFormat(enum DevFmtChannels *chans, ALCuint *srate);
21 void FreeHrtfs(void);
23 ALuint GetHrtfIrSize(const struct Hrtf *Hrtf);
24 void GetLerpedHrtfCoeffs(const struct Hrtf *Hrtf, ALfloat elevation, ALfloat azimuth, ALfloat (*coeffs)[2], ALuint *delays);
26 #endif /* ALC_HRTF_H */