OSStatus AUEffectBase::SetProperty( AudioUnitPropertyID inID, AudioUnitScope inScope, AudioUnitElement inElement, const void * inData, UInt32 inDataSize) { if (inScope == kAudioUnitScope_Global) { switch (inID) { case kAudioUnitProperty_BypassEffect: { if (inDataSize < sizeof(UInt32)) return kAudioUnitErr_InvalidPropertyValue; bool tempNewSetting = *((UInt32*)inData) != 0; // we're changing the state of bypass if (tempNewSetting != IsBypassEffect()) { if (!tempNewSetting && IsBypassEffect() && IsInitialized()) // turning bypass off and we're initialized Reset(0, 0); SetBypassEffect (tempNewSetting); } return noErr; } case kAudioUnitProperty_InPlaceProcessing: mProcessesInPlace = (*((UInt32*)inData) != 0); return noErr; } } return AUBase::SetProperty (inID, inScope, inElement, inData, inDataSize); }
/*! @method SetProperty */ ComponentResult AUPannerBase::SetProperty(AudioUnitPropertyID inID, AudioUnitScope inScope, AudioUnitElement inElement, const void * inData, UInt32 inDataSize) { switch (inID) { case kAudioUnitProperty_BypassEffect: if (inDataSize < sizeof(UInt32)) return kAudioUnitErr_InvalidPropertyValue; bool tempNewSetting = *((UInt32*)inData) != 0; // we're changing the state of bypass if (tempNewSetting != IsBypassEffect()) { if (!tempNewSetting && IsBypassEffect() && IsInitialized()) // turning bypass off and we're initialized Reset(0, 0); SetBypassEffect (tempNewSetting); } return noErr; } return AUBase::SetProperty(inID, inScope, inElement, inData, inDataSize); }