The JUCE cross-platform C++ framework, with DISTRHO/KXStudio specific changes
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

54 lines
1.6KB

  1. /*!
  2. @file AudioUnitSDK/AUMIDIEffectBase.cpp
  3. @copyright © 2000-2021 Apple Inc. All rights reserved.
  4. */
  5. #include <AudioUnitSDK/AUMIDIEffectBase.h>
  6. namespace ausdk {
  7. AUMIDIEffectBase::AUMIDIEffectBase(AudioComponentInstance inInstance, bool inProcessesInPlace)
  8. : AUEffectBase(inInstance, inProcessesInPlace), AUMIDIBase(*static_cast<AUBase*>(this))
  9. {
  10. }
  11. OSStatus AUMIDIEffectBase::GetPropertyInfo(AudioUnitPropertyID inID, AudioUnitScope inScope,
  12. AudioUnitElement inElement, UInt32& outDataSize, bool& outWritable)
  13. {
  14. OSStatus result =
  15. AUEffectBase::GetPropertyInfo(inID, inScope, inElement, outDataSize, outWritable);
  16. if (result == kAudioUnitErr_InvalidProperty) {
  17. result =
  18. AUMIDIBase::DelegateGetPropertyInfo(inID, inScope, inElement, outDataSize, outWritable);
  19. }
  20. return result;
  21. }
  22. OSStatus AUMIDIEffectBase::GetProperty(
  23. AudioUnitPropertyID inID, AudioUnitScope inScope, AudioUnitElement inElement, void* outData)
  24. {
  25. OSStatus result = AUEffectBase::GetProperty(inID, inScope, inElement, outData);
  26. if (result == kAudioUnitErr_InvalidProperty) {
  27. result = AUMIDIBase::DelegateGetProperty(inID, inScope, inElement, outData);
  28. }
  29. return result;
  30. }
  31. OSStatus AUMIDIEffectBase::SetProperty(AudioUnitPropertyID inID, AudioUnitScope inScope,
  32. AudioUnitElement inElement, const void* inData, UInt32 inDataSize)
  33. {
  34. OSStatus result = AUEffectBase::SetProperty(inID, inScope, inElement, inData, inDataSize);
  35. if (result == kAudioUnitErr_InvalidProperty) {
  36. result = AUMIDIBase::DelegateSetProperty(inID, inScope, inElement, inData, inDataSize);
  37. }
  38. return result;
  39. }
  40. } // namespace ausdk