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