diff options
author | Chris Robinson <[email protected]> | 2022-11-03 19:42:08 -0700 |
---|---|---|
committer | Chris Robinson <[email protected]> | 2022-11-03 19:42:08 -0700 |
commit | e9ad8571ba93dd6631a9c05a05a28ede95728d9e (patch) | |
tree | 391684e8c815ccbd72db91c19c630bcb4549bf29 /alc/alc.cpp | |
parent | 551a18a15c66440e3a5478c8b3d6b973f36c33d3 (diff) |
Add preliminary support for 7.1.4 output modes
I don't know how different sound APIs handle 7.1.4 ("Atmos" or "Auro3D")
output, but currently it simply specifies the additional channels with the
height channel labels. This isn't likely how it works for a virtualized channel
bed, for playing over other with-height configurations (7.1.2, 5.1.4, etc), but
this should be an okay start.
Diffstat (limited to 'alc/alc.cpp')
-rw-r--r-- | alc/alc.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/alc/alc.cpp b/alc/alc.cpp index f6385e27..5f9bfa9b 100644 --- a/alc/alc.cpp +++ b/alc/alc.cpp @@ -1482,6 +1482,7 @@ ALCenum EnumFromDevFmt(DevFmtChannels channels) case DevFmtX71: return ALC_7POINT1_SOFT; case DevFmtAmbi3D: return ALC_BFORMAT3D_SOFT; /* FIXME: Shouldn't happen. */ + case DevFmtX714: case DevFmtX3D71: break; } throw std::runtime_error{"Invalid DevFmtChannels: "+std::to_string(int(channels))}; @@ -1953,6 +1954,7 @@ ALCenum UpdateDeviceParams(ALCdevice *device, const int *attrList) { "surround51", DevFmtX51, 0 }, { "surround61", DevFmtX61, 0 }, { "surround71", DevFmtX71, 0 }, + { "surround714", DevFmtX714, 0 }, { "surround3d71", DevFmtX3D71, 0 }, { "surround51rear", DevFmtX51, 0 }, { "ambi1", DevFmtAmbi3D, 1 }, @@ -2133,6 +2135,7 @@ ALCenum UpdateDeviceParams(ALCdevice *device, const int *attrList) case DevFmtX51: device->RealOut.RemixMap = X51Downmix; break; case DevFmtX61: device->RealOut.RemixMap = X61Downmix; break; case DevFmtX71: device->RealOut.RemixMap = X71Downmix; break; + case DevFmtX714: device->RealOut.RemixMap = X71Downmix; break; case DevFmtX3D71: device->RealOut.RemixMap = X51Downmix; break; case DevFmtAmbi3D: break; } |