aboutsummaryrefslogtreecommitdiffstats
path: root/OpenAL32/Include
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2011-07-16 16:24:01 -0700
committerChris Robinson <[email protected]>2011-07-16 16:24:01 -0700
commit5f566ebf05873aafd54b7613d35d363fbb8943c2 (patch)
tree06a04bc5880e06cc43947f782b6a01da7e0c0890 /OpenAL32/Include
parent1622986467c96abc06a0234f41eab45a95e02fba (diff)
Fade between HRTF coefficients, to reduce noise from sudden changes
Diffstat (limited to 'OpenAL32/Include')
-rw-r--r--OpenAL32/Include/alMain.h2
-rw-r--r--OpenAL32/Include/alSource.h6
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