size_t SFB::Audio::ChannelLayout::GetACLSize() const
{
	if(!mChannelLayout)
		return 0;

	return GetChannelLayoutSize(mChannelLayout->mNumberChannelDescriptions);
}
AudioChannelLayout * CreateChannelLayout(UInt32 numberChannelDescriptions)
{
	size_t layoutSize = GetChannelLayoutSize(numberChannelDescriptions);
	AudioChannelLayout *channelLayout = static_cast<AudioChannelLayout *>(malloc(layoutSize));
	memset(channelLayout, 0, layoutSize);

	return channelLayout;
}
AudioChannelLayout * CopyChannelLayout(const AudioChannelLayout *rhs)
{
	if(nullptr == rhs)
		return nullptr;

	size_t layoutSize = GetChannelLayoutSize(rhs->mNumberChannelDescriptions);
	AudioChannelLayout *channelLayout = static_cast<AudioChannelLayout *>(malloc(layoutSize));
	memcpy(channelLayout, rhs, layoutSize);
	
	return channelLayout;
}
size_t GetChannelLayoutSize(const AudioChannelLayout *layout)
{
	assert(nullptr != layout);
	return GetChannelLayoutSize(layout->mNumberChannelDescriptions);
}