AudioUnitMidiProcessorExample/AUMidiPassThru.h
/* |
Copyright (C) 2016 Apple Inc. All Rights Reserved. |
See LICENSE.txt for this sample’s licensing information |
Abstract: |
MIDI Processor AU |
*/ |
#ifndef __AUMidiPassThru_h__ |
#define __AUMidiPassThru_h__ |
#include "AUMidiPassThruVersion.h" |
#include <CoreMIDI/CoreMIDI.h> |
#include "AUMIDIEffectBase.h" |
#include "LockFreeFIFO.h" |
#pragma mark - AUMidiPassThru |
class AUMidiPassThru : public AUMIDIEffectBase |
{ |
public: |
AUMidiPassThru(AudioUnit component); |
virtual ~AUMidiPassThru(); |
virtual OSStatus GetPropertyInfo(AudioUnitPropertyID inID, AudioUnitScope inScope, AudioUnitElement inElement, UInt32& outDataSize, Boolean& outWritable ); |
virtual OSStatus GetProperty(AudioUnitPropertyID inID, AudioUnitScope inScope, AudioUnitElement inElement, void* outData); |
virtual OSStatus SetProperty( AudioUnitPropertyID inID, AudioUnitScope inScope, AudioUnitElement inElement, const void* inData, UInt32 inDataSize); |
virtual bool SupportsTail() { return false; } |
virtual OSStatus Version() { return kAUMidiPassThruVersion; } |
virtual OSStatus HandleMidiEvent(UInt8 status, UInt8 channel, UInt8 data1, UInt8 data2, UInt32 inOffsetSampleFrame); |
virtual OSStatus Render(AudioUnitRenderActionFlags &ioActionFlags, const AudioTimeStamp& inTimeStamp, UInt32 nFrames); |
private: |
AUMIDIOutputCallbackStruct mMIDIOutCB; |
LockFreeFIFO<MIDIPacket> mOutputPacketFIFO; |
}; |
#endif |
Copyright © 2016 Apple Inc. All Rights Reserved. Terms of Use | Privacy Policy | Updated: 2016-02-19