/*! @file AudioUnitSDK/AUMIDIEffectBase.h @copyright © 2000-2021 Apple Inc. All rights reserved. */ #ifndef AudioUnitSDK_AUMIDIEffectBase_h #define AudioUnitSDK_AUMIDIEffectBase_h #include #include namespace ausdk { /*! @class AUMIDIEffectBase @brief Subclass of AUEffectBase and AUMIDIBase, providing an abstract base class for music effects. */ class AUMIDIEffectBase : public AUEffectBase, public AUMIDIBase { public: explicit AUMIDIEffectBase(AudioComponentInstance inInstance, bool inProcessesInPlace = false); OSStatus MIDIEvent( UInt32 inStatus, UInt32 inData1, UInt32 inData2, UInt32 inOffsetSampleFrame) override { return AUMIDIBase::MIDIEvent(inStatus, inData1, inData2, inOffsetSampleFrame); } OSStatus SysEx(const UInt8* inData, UInt32 inLength) override { return AUMIDIBase::SysEx(inData, inLength); } OSStatus GetPropertyInfo(AudioUnitPropertyID inID, AudioUnitScope inScope, AudioUnitElement inElement, UInt32& outDataSize, bool& outWritable) override; OSStatus GetProperty(AudioUnitPropertyID inID, AudioUnitScope inScope, AudioUnitElement inElement, void* outData) override; OSStatus SetProperty(AudioUnitPropertyID inID, AudioUnitScope inScope, AudioUnitElement inElement, const void* inData, UInt32 inDataSize) override; }; } // namespace ausdk #endif // AudioUnitSDK_AUMIDIEffectBase_h