41 #ifndef __MusicDeviceBase_h__
42 #define __MusicDeviceBase_h__
44 #include "AUMIDIBase.h"
51 class MusicDeviceBase :
public AUBase,
public AUMIDIBase {
54 MusicDeviceBase( AudioComponentInstance inInstance,
61 virtual OSStatus PrepareInstrument(MusicDeviceInstrumentID inInstrument) {
return noErr; }
64 virtual OSStatus ReleaseInstrument(MusicDeviceInstrumentID inInstrument) {
return noErr; }
67 virtual OSStatus StartNote( MusicDeviceInstrumentID inInstrument,
68 MusicDeviceGroupID inGroupID,
69 NoteInstanceID * outNoteInstanceID,
70 UInt32 inOffsetSampleFrame,
71 const MusicDeviceNoteParams &inParams) = 0;
74 virtual OSStatus StopNote( MusicDeviceGroupID inGroupID,
75 NoteInstanceID inNoteInstanceID,
76 UInt32 inOffsetSampleFrame) = 0;
79 virtual OSStatus GetPropertyInfo(AudioUnitPropertyID inID,
80 AudioUnitScope inScope,
81 AudioUnitElement inElement,
83 Boolean & outWritable);
86 virtual OSStatus GetProperty( AudioUnitPropertyID inID,
87 AudioUnitScope inScope,
88 AudioUnitElement inElement,
92 virtual OSStatus SetProperty( AudioUnitPropertyID inID,
93 AudioUnitScope inScope,
94 AudioUnitElement inElement,
99 virtual OSStatus HandleNoteOn( UInt8 inChannel,
102 UInt32 inStartFrame);
105 virtual OSStatus HandleNoteOff( UInt8 inChannel,
108 UInt32 inStartFrame);
111 virtual OSStatus GetInstrumentCount ( UInt32 &outInstCount)
const;
113 #if !TARGET_OS_IPHONE
116 static OSStatus ComponentEntryDispatch( ComponentParameters * params,
117 MusicDeviceBase * This);
120 OSStatus HandleStartNoteMessage (MusicDeviceInstrumentID inInstrument, MusicDeviceGroupID inGroupID, NoteInstanceID *outNoteInstanceID, UInt32 inOffsetSampleFrame,
const MusicDeviceNoteParams *inParams);
123 #endif // __MusicDeviceBase_h__