-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathAUPlugInDispatch.h
110 lines (88 loc) · 3.64 KB
/
AUPlugInDispatch.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
/*!
@file AudioUnitSDK/AUPlugInDispatch.h
@copyright © 2000-2021 Apple Inc. All rights reserved.
*/
#ifndef AudioUnitSDK_AUPlugInDispatch_h
#define AudioUnitSDK_AUPlugInDispatch_h
#include <AudioUnitSDK/ComponentBase.h>
namespace ausdk {
/// Method lookup for a basic AUBase subclass.
struct AUBaseLookup {
static AudioComponentMethod Lookup(SInt16 selector);
};
/// Factory for a basic AUBase subclass.
template <class Implementor>
class AUBaseFactory : public APFactory<AUBaseLookup, Implementor> {
};
/// Method lookup for a AUBase subclass which implements I/O methods (Start, Stop).
struct AUOutputLookup {
static AudioComponentMethod Lookup(SInt16 selector);
};
/// Factory for an AUBase subclass which implements I/O methods (Start, Stop).
template <class Implementor>
class AUOutputBaseFactory : public APFactory<AUOutputLookup, Implementor> {
};
/// Method lookup for an AUBase subclass which implements I/O methods (Start, Stop) and
/// ComplexRender.
struct AUComplexOutputLookup {
static AudioComponentMethod Lookup(SInt16 selector);
};
/// Factory for an AUBase subclass which implements I/O methods (Start, Stop) and ComplexRender.
template <class Implementor>
class AUOutputComplexBaseFactory : public APFactory<AUComplexOutputLookup, Implementor> {
};
/// Method lookup for an AUBase subclass which implements Process.
struct AUBaseProcessLookup {
static AudioComponentMethod Lookup(SInt16 selector);
};
/// Factory for an AUBase subclass which implements Process.
template <class Implementor>
class AUBaseProcessFactory : public APFactory<AUBaseProcessLookup, Implementor> {
};
/// Method lookup for an AUBase subclass which implements ProcessMultiple.
struct AUBaseProcessMultipleLookup {
static AudioComponentMethod Lookup(SInt16 selector);
};
/// Factory for an AUBase subclass which implements ProcessMultiple.
template <class Implementor>
class AUBaseProcessMultipleFactory : public APFactory<AUBaseProcessMultipleLookup, Implementor> {
};
/// Method lookup for an AUBase subclass which implements Process and ProcessMultiple.
struct AUBaseProcessAndMultipleLookup {
static AudioComponentMethod Lookup(SInt16 selector);
};
/// Factory for an AUBase subclass which implements Process and ProcessMultiple.
template <class Implementor>
class AUBaseProcessAndMultipleFactory
: public APFactory<AUBaseProcessAndMultipleLookup, Implementor> {
};
/// Method lookup for an AUBase subclass which implements MusicDevice methods (MIDIEvent and SysEx).
struct AUMIDILookup {
static AudioComponentMethod Lookup(SInt16 selector);
};
/// Factory for an AUBase subclass which implements MusicDevice methods (MIDIEvent and SysEx).
template <class Implementor>
class AUMIDIEffectFactory : public APFactory<AUMIDILookup, Implementor> {
};
/// Method lookup for an AUBase subclass which implements Process and MusicDevice methods (MIDIEvent
/// and SysEx).
struct AUMIDIProcessLookup {
static AudioComponentMethod Lookup(SInt16 selector);
};
/// Factory for an AUBase subclass which implements Process and MusicDevice methods (MIDIEvent
/// and SysEx).
template <class Implementor>
class AUMIDIProcessFactory : public APFactory<AUMIDIProcessLookup, Implementor> {
};
/// Method lookup for an AUBase subclass which implements the full set of MusicDevice methods
/// (MIDIEvent, SysEx, StartNote, StopNote).
struct AUMusicLookup {
static AudioComponentMethod Lookup(SInt16 selector);
};
/// Factory for an AUBase subclass which implements the full set of MusicDevice methods
/// (MIDIEvent, SysEx, StartNote, StopNote).
template <class Implementor>
class AUMusicDeviceFactory : public APFactory<AUMusicLookup, Implementor> {
};
} // namespace ausdk
#endif // AudioUnitSDK_AUPlugInDispatch_h