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); }