Something went wrong. Try again.
Cider Isn't Darwin Emulation, Really
Something went wrong. Try again.
2.9 kB · 117 lines
C
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118#ifndef _MUSIC_DEVICE_H#define _MUSIC_DEVICE_H
#include <CoreAudio/CoreAudioTypes.h>#include <AudioToolbox/AUComponent.h>
#ifdef __cplusplusextern "C" {#endif
typedef UInt32 MusicDeviceInstrumentID;struct MusicDeviceStdNoteParams{ UInt32 argCount; Float32 mPitch; Float32 mVelocity;};typedef struct MusicDeviceStdNoteParams MusicDeviceStdNoteParams;struct NoteParamsControlValue{ AudioUnitParameterID mID; AudioUnitParameterValue mValue;};typedef struct NoteParamsControlValue NoteParamsControlValue;struct MusicDeviceNoteParams{ UInt32 argCount; Float32 mPitch; Float32 mVelocity; NoteParamsControlValue mControls[1];};typedef struct MusicDeviceNoteParams MusicDeviceNoteParams;enum { kMusicNoteEvent_UseGroupInstrument = 0xFFFFFFFF, kMusicNoteEvent_Unused = 0xFFFFFFFF};
typedef UInt32 MusicDeviceGroupID;typedef UInt32 NoteInstanceID;
typedef AudioComponentInstance MusicDeviceComponent;extern OSStatusMusicDeviceMIDIEvent( MusicDeviceComponent inUnit, UInt32 inStatus, UInt32 inData1, UInt32 inData2, UInt32 inOffsetSampleFrame);extern OSStatusMusicDeviceSysEx( MusicDeviceComponent inUnit, const UInt8 * inData, UInt32 inLength);extern OSStatusMusicDeviceStartNote( MusicDeviceComponent inUnit, MusicDeviceInstrumentID inInstrument, MusicDeviceGroupID inGroupID, NoteInstanceID * outNoteInstanceID, UInt32 inOffsetSampleFrame, const MusicDeviceNoteParams * inParams);extern OSStatusMusicDeviceStopNote( MusicDeviceComponent inUnit, MusicDeviceGroupID inGroupID, NoteInstanceID inNoteInstanceID, UInt32 inOffsetSampleFrame);enum { kMusicDeviceRange = 0x0100, kMusicDeviceMIDIEventSelect = 0x0101, kMusicDeviceSysExSelect = 0x0102, kMusicDevicePrepareInstrumentSelect = 0x0103, kMusicDeviceReleaseInstrumentSelect = 0x0104, kMusicDeviceStartNoteSelect = 0x0105, kMusicDeviceStopNoteSelect = 0x0106};typedef OSStatus(*MusicDeviceMIDIEventProc)( void * self, UInt32 inStatus, UInt32 inData1, UInt32 inData2, UInt32 inOffsetSampleFrame);typedef OSStatus(*MusicDeviceSysExProc)( void * self, const UInt8 * inData, UInt32 inLength);typedef OSStatus(*MusicDeviceStartNoteProc)( void * self, MusicDeviceInstrumentID inInstrument, MusicDeviceGroupID inGroupID, NoteInstanceID * outNoteInstanceID, UInt32 inOffsetSampleFrame, const MusicDeviceNoteParams * inParams);typedef OSStatus(*MusicDeviceStopNoteProc)( void * self, MusicDeviceGroupID inGroupID, NoteInstanceID inNoteInstanceID, UInt32 inOffsetSampleFrame);extern OSStatusMusicDevicePrepareInstrument( MusicDeviceComponent inUnit, MusicDeviceInstrumentID inInstrument);
extern OSStatusMusicDeviceReleaseInstrument( MusicDeviceComponent inUnit, MusicDeviceInstrumentID inInstrument);
#ifdef __cplusplus}#endif
#endif