Fix some channel mapping bugs.

This commit is contained in:
David Reid
2021-07-04 13:35:29 +10:00
parent 35ce972bd3
commit 2d8b0633a4
+8 -3
View File
@@ -40206,7 +40206,7 @@ static ma_bool32 ma_is_spatial_channel_position(ma_channel channelPosition)
return MA_FALSE; return MA_FALSE;
} }
if (channelPosition >= MA_CHANNEL_AUX_0 || channelPosition <= MA_CHANNEL_AUX_31) { if (channelPosition >= MA_CHANNEL_AUX_0 && channelPosition <= MA_CHANNEL_AUX_31) {
return MA_FALSE; return MA_FALSE;
} }
@@ -42683,7 +42683,7 @@ MA_API ma_bool32 ma_channel_map_equal(ma_uint32 channels, const ma_channel* pCha
} }
for (iChannel = 0; iChannel < channels; ++iChannel) { for (iChannel = 0; iChannel < channels; ++iChannel) {
if (pChannelMapA[iChannel] != pChannelMapB[iChannel]) { if (ma_channel_map_get_channel(pChannelMapA, channels, iChannel) != ma_channel_map_get_channel(pChannelMapB, channels, iChannel)) {
return MA_FALSE; return MA_FALSE;
} }
} }
@@ -42695,6 +42695,11 @@ MA_API ma_bool32 ma_channel_map_blank(ma_uint32 channels, const ma_channel* pCha
{ {
ma_uint32 iChannel; ma_uint32 iChannel;
/* A null channel map is equivalent to the default channel map. */
if (pChannelMap == NULL) {
return MA_FALSE;
}
for (iChannel = 0; iChannel < channels; ++iChannel) { for (iChannel = 0; iChannel < channels; ++iChannel) {
if (pChannelMap[iChannel] != MA_CHANNEL_NONE) { if (pChannelMap[iChannel] != MA_CHANNEL_NONE) {
return MA_FALSE; return MA_FALSE;
@@ -42709,7 +42714,7 @@ MA_API ma_bool32 ma_channel_map_contains_channel_position(ma_uint32 channels, co
ma_uint32 iChannel; ma_uint32 iChannel;
for (iChannel = 0; iChannel < channels; ++iChannel) { for (iChannel = 0; iChannel < channels; ++iChannel) {
if (pChannelMap[iChannel] == channelPosition) { if (ma_channel_map_get_channel(pChannelMap, channels, iChannel) == channelPosition) {
return MA_TRUE; return MA_TRUE;
} }
} }