diff options
author | Chris Robinson <[email protected]> | 2018-01-11 03:53:25 -0800 |
---|---|---|
committer | Chris Robinson <[email protected]> | 2018-01-11 03:53:25 -0800 |
commit | 2c8e4467c3671aa0e5d77bbada1296ad1c44e624 (patch) | |
tree | 22517652a4c189290f52966b09ce61fe00fb5556 /Alc/hrtf.h | |
parent | 15f9d15ba006fab67a3ace8b2560c3397e75b1aa (diff) |
Move some HRTF structures to hrtf.h
Diffstat (limited to 'Alc/hrtf.h')
-rw-r--r-- | Alc/hrtf.h | 31 |
1 files changed, 31 insertions, 0 deletions
@@ -15,6 +15,15 @@ #define HRTF_AMBI_MAX_CHANNELS 16 +#define HRTF_HISTORY_BITS (6) +#define HRTF_HISTORY_LENGTH (1<<HRTF_HISTORY_BITS) +#define HRTF_HISTORY_MASK (HRTF_HISTORY_LENGTH-1) + +#define HRIR_BITS (7) +#define HRIR_LENGTH (1<<HRIR_BITS) +#define HRIR_MASK (HRIR_LENGTH-1) + + struct HrtfEntry; struct Hrtf { @@ -33,6 +42,28 @@ struct Hrtf { }; +typedef struct HrtfState { + alignas(16) ALfloat History[HRTF_HISTORY_LENGTH]; + alignas(16) ALfloat Values[HRIR_LENGTH][2]; +} HrtfState; + +typedef struct HrtfParams { + alignas(16) ALfloat Coeffs[HRIR_LENGTH][2]; + ALsizei Delay[2]; + ALfloat Gain; +} HrtfParams; + +typedef struct DirectHrtfState { + /* HRTF filter state for dry buffer content */ + ALsizei Offset; + ALsizei IrSize; + struct { + alignas(16) ALfloat Values[HRIR_LENGTH][2]; + alignas(16) ALfloat Coeffs[HRIR_LENGTH][2]; + } Chan[]; +} DirectHrtfState; + + void FreeHrtfs(void); vector_EnumeratedHrtf EnumerateHrtf(const_al_string devname); |