/*! @file AudioUnitSDK/AUPlugInDispatch.h @copyright © 2000-2021 Apple Inc. All rights reserved. */ #ifndef AudioUnitSDK_AUPlugInDispatch_h #define AudioUnitSDK_AUPlugInDispatch_h #include namespace ausdk { /// Method lookup for a basic AUBase subclass. struct AUBaseLookup { static AudioComponentMethod Lookup(SInt16 selector); }; /// Factory for a basic AUBase subclass. template class AUBaseFactory : public APFactory { }; /// 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 AUOutputBaseFactory : public APFactory { }; /// 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 AUOutputComplexBaseFactory : public APFactory { }; /// 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 AUBaseProcessFactory : public APFactory { }; /// 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 AUBaseProcessMultipleFactory : public APFactory { }; /// 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 AUBaseProcessAndMultipleFactory : public APFactory { }; /// 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 AUMIDIEffectFactory : public APFactory { }; /// 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 AUMIDIProcessFactory : public APFactory { }; /// 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 AUMusicDeviceFactory : public APFactory { }; } // namespace ausdk #endif // AudioUnitSDK_AUPlugInDispatch_h