1 /*
2 Copyright (C) 2016 Apple Inc. All Rights Reserved.
3 See LICENSE.txt for this sample’s licensing information
4 
5 Abstract:
6 Part of Core Audio AUBase Classes
7 */
8 
9 #ifndef __AUPlugInBase_h__
10 #define __AUPlugInBase_h__
11 
12 #if !defined(__COREAUDIO_USE_FLAT_INCLUDES__)
13 	#include <AudioUnit/AudioComponent.h>
14 	#if !CA_BASIC_AU_FEATURES
15 		#include <AudioUnit/MusicDevice.h>
16 	#endif
17 #else
18 	#include "AudioComponent.h"
19 	#include "MusicDevice.h"
20 #endif
21 
22 #include "ComponentBase.h"
23 
24 struct AUBaseLookup {
25 	static AudioComponentMethod Lookup (SInt16 selector);
26 };
27 template <class Implementor>
28 class AUBaseFactory : public APFactory<AUBaseLookup, Implementor>
29 {
30 };
31 
32 struct AUOutputLookup {
33 	static AudioComponentMethod Lookup (SInt16 selector);
34 };
35 template <class Implementor>
36 class AUOutputBaseFactory : public APFactory<AUOutputLookup, Implementor>
37 {
38 };
39 
40 struct AUComplexOutputLookup {
41 	static AudioComponentMethod Lookup (SInt16 selector);
42 };
43 template <class Implementor>
44 class AUOutputComplexBaseFactory : public APFactory<AUComplexOutputLookup, Implementor>
45 {
46 };
47 
48 struct AUBaseProcessLookup {
49 	static AudioComponentMethod Lookup (SInt16 selector);
50 };
51 template <class Implementor>
52 class AUBaseProcessFactory : public APFactory<AUBaseProcessLookup, Implementor>
53 {
54 };
55 
56 struct AUBaseProcessMultipleLookup {
57 	static AudioComponentMethod Lookup (SInt16 selector);
58 };
59 template <class Implementor>
60 class AUBaseProcessMultipleFactory : public APFactory<AUBaseProcessMultipleLookup, Implementor>
61 {
62 };
63 
64 struct AUBaseProcessAndMultipleLookup {
65 	static AudioComponentMethod Lookup (SInt16 selector);
66 };
67 template <class Implementor>
68 class AUBaseProcessAndMultipleFactory : public APFactory<AUBaseProcessAndMultipleLookup, Implementor>
69 {
70 };
71 
72 #if !CA_BASIC_AU_FEATURES
73 struct AUMIDILookup {
74 	static AudioComponentMethod Lookup (SInt16 selector);
75 };
76 template <class Implementor>
77 class AUMIDIEffectFactory : public APFactory<AUMIDILookup, Implementor>
78 {
79 };
80 
81 struct AUMIDIProcessLookup {
82 	static AudioComponentMethod Lookup (SInt16 selector);
83 };
84 template <class Implementor>
85 class AUMIDIProcessFactory : public APFactory<AUMIDIProcessLookup, Implementor>
86 {
87 };
88 
89 struct AUMusicLookup {
90 	static AudioComponentMethod Lookup (SInt16 selector);
91 };
92 template <class Implementor>
93 class AUMusicDeviceFactory : public APFactory<AUMusicLookup, Implementor>
94 {
95 };
96 
97 struct AUAuxBaseLookup {
98 	static AudioComponentMethod Lookup (SInt16 selector);
99 };
100 template <class Implementor>
101 class AUAuxBaseFactory : public APFactory<AUAuxBaseLookup, Implementor>
102 {
103 };
104 #endif // CA_BASIC_AU_FEATURES
105 
106 #endif // __AUPlugInBase_h__
107