diff options
author | Chris Robinson <[email protected]> | 2011-07-16 16:24:01 -0700 |
---|---|---|
committer | Chris Robinson <[email protected]> | 2011-07-16 16:24:01 -0700 |
commit | 5f566ebf05873aafd54b7613d35d363fbb8943c2 (patch) | |
tree | 06a04bc5880e06cc43947f782b6a01da7e0c0890 /OpenAL32/Include | |
parent | 1622986467c96abc06a0234f41eab45a95e02fba (diff) |
Fade between HRTF coefficients, to reduce noise from sudden changes
Diffstat (limited to 'OpenAL32/Include')
-rw-r--r-- | OpenAL32/Include/alMain.h | 2 | ||||
-rw-r--r-- | OpenAL32/Include/alSource.h | 6 |
2 files changed, 8 insertions, 0 deletions
diff --git a/OpenAL32/Include/alMain.h b/OpenAL32/Include/alMain.h index 092da0da..d9549cbf 100644 --- a/OpenAL32/Include/alMain.h +++ b/OpenAL32/Include/alMain.h @@ -528,7 +528,9 @@ const ALCchar *DevFmtChannelsString(enum DevFmtChannels chans); #define HRIR_MASK (HRIR_LENGTH-1) void InitHrtf(void); ALCboolean IsHrtfCompatible(ALCdevice *device); +ALfloat CalcHrtfDelta(ALfloat oldGain, ALfloat newGain, const ALfloat olddir[3], const ALfloat newdir[3]); void GetLerpedHrtfCoeffs(ALfloat elevation, ALfloat azimuth, ALfloat gain, ALfloat (*coeffs)[2], ALuint *delays); +ALint GetMovingHrtfCoeffs(ALfloat elevation, ALfloat azimuth, ALfloat gain, ALfloat delta, ALint counter, ALfloat (*coeffs)[2], ALuint *delays, ALfloat (*coeffStep)[2], ALint *delayStep); void al_print(const char *fname, unsigned int line, const char *fmt, ...) PRINTF_STYLE(3,4); diff --git a/OpenAL32/Include/alSource.h b/OpenAL32/Include/alSource.h index df2b7cd4..0f0eca7e 100644 --- a/OpenAL32/Include/alSource.h +++ b/OpenAL32/Include/alSource.h @@ -86,6 +86,8 @@ typedef struct ALsource ALuint SampleSize; /* HRTF info */ + ALboolean HrtfMoving; + ALuint HrtfCounter; ALfloat HrtfHistory[MAXCHANNELS][SRC_HISTORY_LENGTH]; ALfloat HrtfValues[MAXCHANNELS][HRIR_LENGTH][2]; ALuint HrtfOffset; @@ -96,8 +98,12 @@ typedef struct ALsource ALint Step; + ALfloat HrtfGain; + ALfloat HrtfDir[3]; ALfloat HrtfCoeffs[MAXCHANNELS][HRIR_LENGTH][2]; ALuint HrtfDelay[MAXCHANNELS][2]; + ALfloat HrtfCoeffStep[HRIR_LENGTH][2]; + ALint HrtfDelayStep[2]; /* A mixing matrix. First subscript is the channel number of the input * data (regardless of channel configuration) and the second is the |