diff options
author | Chris Robinson <[email protected]> | 2020-04-04 03:10:01 -0700 |
---|---|---|
committer | Chris Robinson <[email protected]> | 2020-04-04 03:10:01 -0700 |
commit | a0b7638d635d4f583ecc1a48c193629868cf684a (patch) | |
tree | 09080d1fc980c2ddde6a1fdf61ccc62359b9901f /al | |
parent | fc906c97f52fd13549dfdfae229d0dc6d60a2865 (diff) |
Add an extension to change a buffer's unpack ambisonic order
Diffstat (limited to 'al')
-rw-r--r-- | al/buffer.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/al/buffer.cpp b/al/buffer.cpp index 4acd1158..d989a37d 100644 --- a/al/buffer.cpp +++ b/al/buffer.cpp @@ -1190,6 +1190,13 @@ START_API_FUNC albuf->AmbiScaling = value; break; + case AL_UNPACK_AMBISONIC_ORDER_SOFT: + if UNLIKELY(value < 1 || value > 14) + context->setError(AL_INVALID_VALUE, "Invalid unpack ambisonic order %d", value); + else + albuf->UnpackAmbiOrder = static_cast<ALuint>(value); + break; + default: context->setError(AL_INVALID_ENUM, "Invalid buffer integer property 0x%04x", param); } @@ -1227,6 +1234,7 @@ START_API_FUNC case AL_PACK_BLOCK_ALIGNMENT_SOFT: case AL_AMBISONIC_LAYOUT_SOFT: case AL_AMBISONIC_SCALING_SOFT: + case AL_UNPACK_AMBISONIC_ORDER_SOFT: alBufferi(buffer, param, values[0]); return; } @@ -1386,6 +1394,10 @@ START_API_FUNC *value = albuf->AmbiScaling; break; + case AL_UNPACK_AMBISONIC_ORDER_SOFT: + *value = static_cast<int>(albuf->UnpackAmbiOrder); + break; + default: context->setError(AL_INVALID_ENUM, "Invalid buffer integer property 0x%04x", param); } @@ -1428,6 +1440,7 @@ START_API_FUNC case AL_PACK_BLOCK_ALIGNMENT_SOFT: case AL_AMBISONIC_LAYOUT_SOFT: case AL_AMBISONIC_SCALING_SOFT: + case AL_UNPACK_AMBISONIC_ORDER_SOFT: alGetBufferi(buffer, param, values); return; } |