aboutsummaryrefslogtreecommitdiffstats
path: root/alc/alc.cpp
diff options
context:
space:
mode:
authorChris Robinson <[email protected]>2022-11-03 19:42:08 -0700
committerChris Robinson <[email protected]>2022-11-03 19:42:08 -0700
commite9ad8571ba93dd6631a9c05a05a28ede95728d9e (patch)
tree391684e8c815ccbd72db91c19c630bcb4549bf29 /alc/alc.cpp
parent551a18a15c66440e3a5478c8b3d6b973f36c33d3 (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.cpp3
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;
}