aboutsummaryrefslogtreecommitdiffstats
path: root/OpenAL32/Include
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2014-10-31 22:43:13 -0700
committerChris Robinson <[email protected]>2014-10-31 22:43:13 -0700
commit3d2853274dbf81723b907677446bd09f94f35022 (patch)
tree6f6001476326386c838a61da0fb9775a6705d390 /OpenAL32/Include
parent336aba6f1f9bc21d900435a264c048a36bca0fc8 (diff)
Support B-Format source rotation with AL_ORIENTATION
Diffstat (limited to 'OpenAL32/Include')
-rw-r--r--OpenAL32/Include/alSource.h1
-rw-r--r--OpenAL32/Include/alu.h7
2 files changed, 5 insertions, 3 deletions
diff --git a/OpenAL32/Include/alSource.h b/OpenAL32/Include/alSource.h
index 34d01e19..96216b87 100644
--- a/OpenAL32/Include/alSource.h
+++ b/OpenAL32/Include/alSource.h
@@ -60,6 +60,7 @@ typedef struct ALsource {
volatile ALfloat Position[3];
volatile ALfloat Velocity[3];
volatile ALfloat Direction[3];
+ volatile ALfloat Orientation[2][3];
volatile ALboolean HeadRelative;
volatile ALboolean Looping;
volatile enum DistanceModel DistanceModel;
diff --git a/OpenAL32/Include/alu.h b/OpenAL32/Include/alu.h
index 0bf252f5..6ebafe86 100644
--- a/OpenAL32/Include/alu.h
+++ b/OpenAL32/Include/alu.h
@@ -220,10 +220,11 @@ void ComputeAngleGains(const ALCdevice *device, ALfloat angle, ALfloat elevation
/**
* ComputeBFormatGains
*
- * Sets channel gains for a given (first-order) B-Format channel. The channel
- * number must not be greater than 4, and the resulting gains may be negative.
+ * Sets channel gains for a given (first-order) B-Format channel. The matrix is
+ * a 1x4 'slice' of the rotation matrix for a given channel used to orient the
+ * coefficients.
*/
-void ComputeBFormatGains(const ALCdevice *device, ALuint channum, ALfloat ingain, ALfloat gains[MaxChannels]);
+void ComputeBFormatGains(const ALCdevice *device, const ALfloat mtx[4], ALfloat ingain, ALfloat gains[MaxChannels]);
/**
* SetGains