Skip to content

Commit 626e50a

Browse files
committed
Adopt CLAP in ChannelFormat
1 parent 47ed535 commit 626e50a

File tree

1 file changed

+19
-1
lines changed

1 file changed

+19
-1
lines changed

Utilities/ARAChannelFormat.cpp

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ bool ChannelFormat::operator== (const ChannelFormat& other) const noexcept
8787
return (0 == std::memcmp (_channelArrangement, other._channelArrangement, size));
8888
}
8989

90-
ARASize ChannelFormat::getChannelArrangementDataSize (const ARAChannelCount /*channelCount*/,
90+
ARASize ChannelFormat::getChannelArrangementDataSize (const ARAChannelCount channelCount,
9191
const ARAChannelArrangementDataType channelArrangementDataType,
9292
const void* const channelArrangement) noexcept
9393
{
@@ -121,6 +121,19 @@ ARASize ChannelFormat::getChannelArrangementDataSize (const ARAChannelCount /*ch
121121
{
122122
return sizeof (uint32_t);
123123
}
124+
case kARAChannelArrangementCLAPChannelMap:
125+
{
126+
return static_cast<ARASize> (channelCount) * sizeof (uint8_t);
127+
}
128+
case kARAChannelArrangementCLAPAmbisonicInfo:
129+
{
130+
// copied from ambisonic.h to avoid dependency on VST3 SDK in this library
131+
typedef struct clap_ambisonic_info {
132+
uint32_t ordering;
133+
uint32_t normalization;
134+
} clap_ambisonic_info_t;
135+
return sizeof (clap_ambisonic_info_t);
136+
}
124137
default:
125138
{
126139
ARA_INTERNAL_ASSERT (false && "unknown channel arrangement data type");
@@ -169,6 +182,11 @@ ARAChannelCount ChannelFormat::_getImpliedChannelCount (const ARAChannelArrangem
169182
// copied from AAX_STEM_FORMAT_CHANNEL_COUNT() to avoid dependency on AAX SDK in this library
170183
return static_cast<uint16_t> (stemFormat & 0xFFFF);
171184
}
185+
case kARAChannelArrangementCLAPChannelMap:
186+
case kARAChannelArrangementCLAPAmbisonicInfo:
187+
{
188+
return 0; // in CLAP, the format information does not encode the channel count
189+
}
172190
default:
173191
{
174192
ARA_INTERNAL_ASSERT (false && "unknown channel arrangement data type");

0 commit comments

Comments
 (0)