Пример #1
0
/*! @method Initialize */
OSStatus			AUPannerBase::Initialize()
{
	OSStatus err = noErr;
	AllocBypassMatrix();
	err = UpdateBypassMatrix();
	return err;
}
Пример #2
0
/*! @method Initialize */
ComponentResult		AUPannerBase::Initialize()
{
	ComponentResult err = noErr;
	AllocBypassMatrix();
	err = UpdateBypassMatrix();
	return err;
}
Пример #3
0
//_____________________________________________________________________________
//
OSStatus 	AUPannerBase::SetAudioChannelLayout(		AudioUnitScope 				inScope, 
														AudioUnitElement 			inElement,
														const AudioChannelLayout *	inLayout)
{
	if (!inLayout)
		return RemoveAudioChannelLayout(inScope, inElement);

	if (!ChannelLayoutTagIsSupported(inScope, inElement, inLayout->mChannelLayoutTag))
		return kAudioUnitErr_FormatNotSupported;
	
	CAAudioChannelLayout* caacl = NULL;
	UInt32 currentChannels;
	switch (inScope) 
	{
		case kAudioUnitScope_Input:
			caacl = &mInputLayout;
			currentChannels = GetNumberOfInputChannels();
			break;
		case kAudioUnitScope_Output:
			caacl = &mOutputLayout;
			currentChannels = GetNumberOfOutputChannels();
			break;
		default:
			return kAudioUnitErr_InvalidScope;
	}
	
	if (inElement != 0)
		return kAudioUnitErr_InvalidElement;

	UInt32 numChannelsInLayout = CAAudioChannelLayout::NumberChannels(*inLayout);
	if (currentChannels != numChannelsInLayout)
		return kAudioUnitErr_InvalidPropertyValue;
	
	*caacl = inLayout;
	if (IsInitialized())
		UpdateBypassMatrix();
		
	return noErr;
}