1 /*
2  <codex>
3  <abstract>Part of CoreAudio Utility Classes</abstract>
4  </codex>
5 */
6 #ifndef __AUMIDIEffectBase_h__
7 #define __AUMIDIEffectBase_h__
8 
9 #include "AUMIDIBase.h"
10 #include "AUEffectBase.h"
11 
12 // ________________________________________________________________________
13 //	AUMIDIEffectBase
14 //
15 	/*! @class AUMIDIEffectBase */
16 class AUMIDIEffectBase : public AUEffectBase, public AUMIDIBase {
17 public:
18 	/*! @ctor AUMIDIEffectBase */
19 								AUMIDIEffectBase(	AudioComponentInstance	inInstance,
20 													bool					inProcessesInPlace = false );
21     /*! @method MIDIEvent */
MIDIEvent(UInt32 inStatus,UInt32 inData1,UInt32 inData2,UInt32 inOffsetSampleFrame)22     virtual OSStatus            MIDIEvent(UInt32            inStatus,
23                                           UInt32            inData1,
24                                           UInt32            inData2,
25                                           UInt32            inOffsetSampleFrame)
26 	{
27 		return AUMIDIBase::MIDIEvent (inStatus, inData1, inData2, inOffsetSampleFrame);
28 	}
29 
30 	/*! @method SysEx */
SysEx(const UInt8 * inData,UInt32 inLength)31 	virtual OSStatus            SysEx(const UInt8 *         inData,
32                                       UInt32                inLength)
33 	{
34 		return AUMIDIBase::SysEx (inData, inLength);
35 	}
36 
37 	/*! @method GetPropertyInfo */
38 	virtual OSStatus			GetPropertyInfo(AudioUnitPropertyID			inID,
39 												AudioUnitScope				inScope,
40 												AudioUnitElement			inElement,
41 												UInt32 &					outDataSize,
42 												Boolean &					outWritable);
43 
44 	/*! @method GetProperty */
45 	virtual OSStatus			GetProperty(	AudioUnitPropertyID 		inID,
46 												AudioUnitScope 				inScope,
47 												AudioUnitElement		 	inElement,
48 												void *						outData);
49 	/*! @method SetProperty */
50 	virtual OSStatus			SetProperty(	AudioUnitPropertyID 		inID,
51 												AudioUnitScope 				inScope,
52 												AudioUnitElement		 	inElement,
53 												const void *				inData,
54 												UInt32						inDataSize);
55 
56 #if !CA_USE_AUDIO_PLUGIN_ONLY
57 #if !TARGET_OS_IPHONE
58 	// component dispatcher
59 	/*! @method ComponentEntryDispatch */
60 	static OSStatus			ComponentEntryDispatch(	ComponentParameters *			params,
61 														AUMIDIEffectBase *				This);
62 #endif
63 #endif
64 };
65 
66 #endif // __AUMIDIEffectBase_h__
67