mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-10 23:44:24 +00:00
64 lines
2.1 KiB
Objective-C
64 lines
2.1 KiB
Objective-C
/*!
|
|
@file AudioUnitSDK/MusicDeviceBase.h
|
|
@copyright © 2000-2021 Apple Inc. All rights reserved.
|
|
*/
|
|
#ifndef AudioUnitSDK_MusicDeviceBase_h
|
|
#define AudioUnitSDK_MusicDeviceBase_h
|
|
|
|
#include <AudioUnitSDK/AUMIDIBase.h>
|
|
|
|
namespace ausdk {
|
|
|
|
// ________________________________________________________________________
|
|
// MusicDeviceBase
|
|
//
|
|
|
|
/*!
|
|
@class MusicDeviceBase
|
|
@brief Deriving from AUBase and AUMIDIBase, an abstract base class for Music Device
|
|
subclasses.
|
|
*/
|
|
class MusicDeviceBase : public AUBase, public AUMIDIBase {
|
|
public:
|
|
MusicDeviceBase(AudioComponentInstance inInstance, UInt32 numInputs, UInt32 numOutputs,
|
|
UInt32 numGroups = 0);
|
|
|
|
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);
|
|
}
|
|
|
|
#if AUSDK_MIDI2_AVAILABLE
|
|
OSStatus MIDIEventList(
|
|
UInt32 inOffsetSampleFrame, const struct MIDIEventList* eventList) override
|
|
{
|
|
return AUMIDIBase::MIDIEventList(inOffsetSampleFrame, eventList);
|
|
}
|
|
#endif
|
|
|
|
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;
|
|
OSStatus HandleNoteOn(
|
|
UInt8 inChannel, UInt8 inNoteNumber, UInt8 inVelocity, UInt32 inStartFrame) override;
|
|
OSStatus HandleNoteOff(
|
|
UInt8 inChannel, UInt8 inNoteNumber, UInt8 inVelocity, UInt32 inStartFrame) override;
|
|
virtual OSStatus GetInstrumentCount(UInt32& outInstCount) const;
|
|
|
|
private:
|
|
OSStatus HandleStartNoteMessage(MusicDeviceInstrumentID inInstrument,
|
|
MusicDeviceGroupID inGroupID, NoteInstanceID* outNoteInstanceID, UInt32 inOffsetSampleFrame,
|
|
const MusicDeviceNoteParams* inParams);
|
|
};
|
|
|
|
} // namespace ausdk
|
|
|
|
#endif // AudioUnitSDK_MusicDeviceBase_h
|