diff options
author | Chris Robinson <[email protected]> | 2022-04-26 23:32:15 -0700 |
---|---|---|
committer | Chris Robinson <[email protected]> | 2022-04-26 23:32:15 -0700 |
commit | 593966c8dbdbf2dbcd8768b258a3b22adb548b2f (patch) | |
tree | 720dd3a36188cdb1ff55165d1b2bd51e5fd7d687 /core | |
parent | 07dd62e53f3abaf918262953895961bd38848a7e (diff) |
Handle 3D7.1 as a separate channel configuration
It's treated as 5.1 + 2 aux channels. This allows AL_DIRECT_CHANNELS_SOFT to
behave better, not forwarding rear left/right channel inputs to lower front and
upper rear, and allows reporting a more appropriate output mode to the app
instead of 7.1.
Diffstat (limited to 'core')
-rw-r--r-- | core/devformat.cpp | 2 | ||||
-rw-r--r-- | core/devformat.h | 18 |
2 files changed, 20 insertions, 0 deletions
diff --git a/core/devformat.cpp b/core/devformat.cpp index c841b634..cbe8eaf3 100644 --- a/core/devformat.cpp +++ b/core/devformat.cpp @@ -28,6 +28,7 @@ uint ChannelsFromDevFmt(DevFmtChannels chans, uint ambiorder) noexcept case DevFmtX51: return 6; case DevFmtX61: return 7; case DevFmtX71: return 8; + case DevFmtX3D71: return 8; case DevFmtAmbi3D: return (ambiorder+1) * (ambiorder+1); } return 0; @@ -57,6 +58,7 @@ const char *DevFmtChannelsString(DevFmtChannels chans) noexcept case DevFmtX51: return "5.1 Surround"; case DevFmtX61: return "6.1 Surround"; case DevFmtX71: return "7.1 Surround"; + case DevFmtX3D71: return "3D7.1 Surround"; case DevFmtAmbi3D: return "Ambisonic 3D"; } return "(unknown channels)"; diff --git a/core/devformat.h b/core/devformat.h index e6d30924..f2a372c1 100644 --- a/core/devformat.h +++ b/core/devformat.h @@ -25,6 +25,23 @@ enum Channel : unsigned char { TopBackCenter, TopBackRight, + Aux0, + Aux1, + Aux2, + Aux3, + Aux4, + Aux5, + Aux6, + Aux7, + Aux8, + Aux9, + Aux10, + Aux11, + Aux12, + Aux13, + Aux14, + Aux15, + MaxChannels }; @@ -48,6 +65,7 @@ enum DevFmtChannels : unsigned char { DevFmtX51, DevFmtX61, DevFmtX71, + DevFmtX3D71, DevFmtAmbi3D, DevFmtChannelsDefault = DevFmtStereo |