@@ -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