summaryrefslogtreecommitdiffstats
path: root/OpenAL32/Include
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2014-10-31 17:18:45 -0700
committerChris Robinson <[email protected]>2014-10-31 17:18:45 -0700
commitac51c9cce67dcaa968f527e54c48f20d54117c76 (patch)
treee908cf48d51f8e6ce19613c6b016b0c5abc0a22d /OpenAL32/Include
parent1c0596c233525e9a582269faa4ccb017e5938a28 (diff)
Add preliminary AL_EXT_BFORMAT support
Currently missing the AL_ORIENTATION source property. Gain stepping also does not work.
Diffstat (limited to 'OpenAL32/Include')
-rw-r--r--OpenAL32/Include/alBuffer.h4
-rw-r--r--OpenAL32/Include/alMain.h3
-rw-r--r--OpenAL32/Include/alu.h8
3 files changed, 14 insertions, 1 deletions
diff --git a/OpenAL32/Include/alBuffer.h b/OpenAL32/Include/alBuffer.h
index b67c7034..dd046da8 100644
--- a/OpenAL32/Include/alBuffer.h
+++ b/OpenAL32/Include/alBuffer.h
@@ -32,6 +32,8 @@ enum UserFmtChannels {
UserFmtX51 = AL_5POINT1_SOFT, /* (WFX order) */
UserFmtX61 = AL_6POINT1_SOFT, /* (WFX order) */
UserFmtX71 = AL_7POINT1_SOFT, /* (WFX order) */
+ UserFmtBFormat2D = 0x10000000, /* WXY */
+ UserFmtBFormat3D, /* WXYZ */
};
ALuint BytesFromUserFmt(enum UserFmtType type) DECL_CONST;
@@ -56,6 +58,8 @@ enum FmtChannels {
FmtX51 = UserFmtX51,
FmtX61 = UserFmtX61,
FmtX71 = UserFmtX71,
+ FmtBFormat2D = UserFmtBFormat2D,
+ FmtBFormat3D = UserFmtBFormat3D,
};
#define MAX_INPUT_CHANNELS (8)
diff --git a/OpenAL32/Include/alMain.h b/OpenAL32/Include/alMain.h
index 191c35b7..833b5fa2 100644
--- a/OpenAL32/Include/alMain.h
+++ b/OpenAL32/Include/alMain.h
@@ -587,7 +587,8 @@ typedef struct ChannelConfig {
enum Channel ChanName;
ALfloat Angle;
ALfloat Elevation;
- ALfloat Coeff[MAX_AMBI_COEFFS];
+ ALfloat HOACoeff[MAX_AMBI_COEFFS];
+ ALfloat FOACoeff[4];
} ChannelConfig;
diff --git a/OpenAL32/Include/alu.h b/OpenAL32/Include/alu.h
index fb16d143..0bf252f5 100644
--- a/OpenAL32/Include/alu.h
+++ b/OpenAL32/Include/alu.h
@@ -218,6 +218,14 @@ void ComputeDirectionalGains(const ALCdevice *device, const ALfloat dir[3], ALfl
void ComputeAngleGains(const ALCdevice *device, ALfloat angle, ALfloat elevation, ALfloat ingain, ALfloat gains[MaxChannels]);
/**
+ * 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.
+ */
+void ComputeBFormatGains(const ALCdevice *device, ALuint channum, ALfloat ingain, ALfloat gains[MaxChannels]);
+
+/**
* SetGains
*
* Helper to set the appropriate channels to the specified gain.