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.

41 lines
1.4KB

  1. /*!
  2. @file AudioUnitSDK/AUMIDIEffectBase.h
  3. @copyright © 2000-2021 Apple Inc. All rights reserved.
  4. */
  5. #ifndef AudioUnitSDK_AUMIDIEffectBase_h
  6. #define AudioUnitSDK_AUMIDIEffectBase_h
  7. #include <AudioUnitSDK/AUEffectBase.h>
  8. #include <AudioUnitSDK/AUMIDIBase.h>
  9. namespace ausdk {
  10. /*!
  11. @class AUMIDIEffectBase
  12. @brief Subclass of AUEffectBase and AUMIDIBase, providing an abstract base class for
  13. music effects.
  14. */
  15. class AUMIDIEffectBase : public AUEffectBase, public AUMIDIBase {
  16. public:
  17. explicit AUMIDIEffectBase(AudioComponentInstance inInstance, bool inProcessesInPlace = false);
  18. OSStatus MIDIEvent(
  19. UInt32 inStatus, UInt32 inData1, UInt32 inData2, UInt32 inOffsetSampleFrame) override
  20. {
  21. return AUMIDIBase::MIDIEvent(inStatus, inData1, inData2, inOffsetSampleFrame);
  22. }
  23. OSStatus SysEx(const UInt8* inData, UInt32 inLength) override
  24. {
  25. return AUMIDIBase::SysEx(inData, inLength);
  26. }
  27. OSStatus GetPropertyInfo(AudioUnitPropertyID inID, AudioUnitScope inScope,
  28. AudioUnitElement inElement, UInt32& outDataSize, bool& outWritable) override;
  29. OSStatus GetProperty(AudioUnitPropertyID inID, AudioUnitScope inScope,
  30. AudioUnitElement inElement, void* outData) override;
  31. OSStatus SetProperty(AudioUnitPropertyID inID, AudioUnitScope inScope,
  32. AudioUnitElement inElement, const void* inData, UInt32 inDataSize) override;
  33. };
  34. } // namespace ausdk
  35. #endif // AudioUnitSDK_AUMIDIEffectBase_h