this repo has no description
at fixPythonPipStalling 117 lines 2.9 kB view raw
1#ifndef _MUSIC_DEVICE_H 2#define _MUSIC_DEVICE_H 3 4#include <CoreAudio/CoreAudioTypes.h> 5#include <AudioToolbox/AUComponent.h> 6 7#ifdef __cplusplus 8extern "C" { 9#endif 10 11typedef UInt32 MusicDeviceInstrumentID; 12struct MusicDeviceStdNoteParams 13{ 14 UInt32 argCount; 15 Float32 mPitch; 16 Float32 mVelocity; 17}; 18typedef struct MusicDeviceStdNoteParams MusicDeviceStdNoteParams; 19struct NoteParamsControlValue 20{ 21 AudioUnitParameterID mID; 22 AudioUnitParameterValue mValue; 23}; 24typedef struct NoteParamsControlValue NoteParamsControlValue; 25struct MusicDeviceNoteParams 26{ 27 UInt32 argCount; 28 Float32 mPitch; 29 Float32 mVelocity; 30 NoteParamsControlValue mControls[1]; 31}; 32typedef struct MusicDeviceNoteParams MusicDeviceNoteParams; 33enum { 34 kMusicNoteEvent_UseGroupInstrument = 0xFFFFFFFF, 35 kMusicNoteEvent_Unused = 0xFFFFFFFF 36}; 37 38 39 40 41 42 43typedef UInt32 MusicDeviceGroupID; 44typedef UInt32 NoteInstanceID; 45 46 47 48 49 50typedef AudioComponentInstance MusicDeviceComponent; 51extern OSStatus 52MusicDeviceMIDIEvent( MusicDeviceComponent inUnit, 53 UInt32 inStatus, 54 UInt32 inData1, 55 UInt32 inData2, 56 UInt32 inOffsetSampleFrame); 57extern OSStatus 58MusicDeviceSysEx( MusicDeviceComponent inUnit, 59 const UInt8 * inData, 60 UInt32 inLength); 61extern OSStatus 62MusicDeviceStartNote( MusicDeviceComponent inUnit, 63 MusicDeviceInstrumentID inInstrument, 64 MusicDeviceGroupID inGroupID, 65 NoteInstanceID * outNoteInstanceID, 66 UInt32 inOffsetSampleFrame, 67 const MusicDeviceNoteParams * inParams); 68extern OSStatus 69MusicDeviceStopNote( MusicDeviceComponent inUnit, 70 MusicDeviceGroupID inGroupID, 71 NoteInstanceID inNoteInstanceID, 72 UInt32 inOffsetSampleFrame); 73enum { 74 kMusicDeviceRange = 0x0100, 75 kMusicDeviceMIDIEventSelect = 0x0101, 76 kMusicDeviceSysExSelect = 0x0102, 77 kMusicDevicePrepareInstrumentSelect = 0x0103, 78 kMusicDeviceReleaseInstrumentSelect = 0x0104, 79 kMusicDeviceStartNoteSelect = 0x0105, 80 kMusicDeviceStopNoteSelect = 0x0106 81}; 82typedef OSStatus 83(*MusicDeviceMIDIEventProc)( void * self, 84 UInt32 inStatus, 85 UInt32 inData1, 86 UInt32 inData2, 87 UInt32 inOffsetSampleFrame); 88typedef OSStatus 89(*MusicDeviceSysExProc)( void * self, 90 const UInt8 * inData, 91 UInt32 inLength); 92typedef OSStatus 93(*MusicDeviceStartNoteProc)( void * self, 94 MusicDeviceInstrumentID inInstrument, 95 MusicDeviceGroupID inGroupID, 96 NoteInstanceID * outNoteInstanceID, 97 UInt32 inOffsetSampleFrame, 98 const MusicDeviceNoteParams * inParams); 99typedef OSStatus 100(*MusicDeviceStopNoteProc)( void * self, 101 MusicDeviceGroupID inGroupID, 102 NoteInstanceID inNoteInstanceID, 103 UInt32 inOffsetSampleFrame); 104extern OSStatus 105MusicDevicePrepareInstrument( MusicDeviceComponent inUnit, 106 MusicDeviceInstrumentID inInstrument); 107 108 109extern OSStatus 110MusicDeviceReleaseInstrument( MusicDeviceComponent inUnit, 111 MusicDeviceInstrumentID inInstrument); 112 113#ifdef __cplusplus 114} 115#endif 116 117#endif