The base class for a type of plugin format, such as VST, AudioUnit, LADSPA, etc. More...
#include <juce_AudioPluginFormat.h>
Classes | |
struct | InstantiationCompletionCallback |
Public Member Functions | |
virtual | ~AudioPluginFormat () |
Destructor. More... | |
virtual bool | canScanForPlugins () const =0 |
Returns true if this format needs to run a scan to find its list of plugins. More... | |
AudioPluginInstance * | createInstanceFromDescription (const PluginDescription &, double initialSampleRate, int initialBufferSize) |
Tries to recreate a type from a previously generated PluginDescription. More... | |
AudioPluginInstance * | createInstanceFromDescription (const PluginDescription &, double initialSampleRate, int initialBufferSize, String &errorMessage) |
Same as above but with the possibility of returning an error message. More... | |
void | createPluginInstanceAsync (const PluginDescription &description, double initialSampleRate, int initialBufferSize, InstantiationCompletionCallback *completionCallback) |
Tries to recreate a type from a previously generated PluginDescription. More... | |
void | createPluginInstanceAsync (const PluginDescription &description, double initialSampleRate, int initialBufferSize, std::function< void(AudioPluginInstance *, const String &)> completionCallback) |
virtual bool | doesPluginStillExist (const PluginDescription &)=0 |
Checks whether this plugin could possibly be loaded. More... | |
virtual bool | fileMightContainThisPluginType (const String &fileOrIdentifier)=0 |
Should do a quick check to see if this file or directory might be a plugin of this format. More... | |
virtual void | findAllTypesForFile (OwnedArray< PluginDescription > &results, const String &fileOrIdentifier)=0 |
This tries to create descriptions for all the plugin types available in a binary module file. More... | |
virtual FileSearchPath | getDefaultLocationsToSearch ()=0 |
Returns the typical places to look for this kind of plugin. More... | |
virtual String | getName () const =0 |
Returns the format name. More... | |
virtual String | getNameOfPluginFromIdentifier (const String &fileOrIdentifier)=0 |
Returns a readable version of the name of the plugin that this identifier refers to. More... | |
virtual bool | pluginNeedsRescanning (const PluginDescription &)=0 |
Returns true if this plugin's version or date has changed and it should be re-checked. More... | |
virtual StringArray | searchPathsForPlugins (const FileSearchPath &directoriesToSearch, bool recursive, bool allowPluginsWhichRequireAsynchronousInstantiation=false)=0 |
Searches a suggested set of directories for any plugins in this format. More... | |
Protected Member Functions | |
AudioPluginFormat () noexcept | |
virtual void | createPluginInstance (const PluginDescription &, double initialSampleRate, int initialBufferSize, void *userData, void(*callback)(void *, AudioPluginInstance *, const String &))=0 |
Implementors must override this function. More... | |
virtual bool | requiresUnblockedMessageThreadDuringCreation (const PluginDescription &) const noexcept=0 |
Private Member Functions | |
void | createPluginInstanceOnMessageThread (const PluginDescription &, double rate, int size, AudioPluginFormat::InstantiationCompletionCallback *) |
Friends | |
class | AudioPluginFormatManager |
The base class for a type of plugin format, such as VST, AudioUnit, LADSPA, etc.
|
virtual |
Destructor.
|
protectednoexcept |
|
pure virtual |
Returns true if this format needs to run a scan to find its list of plugins.
Implemented in VSTPluginFormat, VST3PluginFormat, AudioUnitPluginFormat, and LADSPAPluginFormat.
AudioPluginInstance* AudioPluginFormat::createInstanceFromDescription | ( | const PluginDescription & | , |
double | initialSampleRate, | ||
int | initialBufferSize | ||
) |
Tries to recreate a type from a previously generated PluginDescription.
AudioPluginInstance* AudioPluginFormat::createInstanceFromDescription | ( | const PluginDescription & | , |
double | initialSampleRate, | ||
int | initialBufferSize, | ||
String & | errorMessage | ||
) |
Same as above but with the possibility of returning an error message.
|
protectedpure virtual |
Implementors must override this function.
This is guaranteed to be called on the message thread. You may call the callback on any thread.
Implemented in VSTPluginFormat, VST3PluginFormat, AudioUnitPluginFormat, and LADSPAPluginFormat.
Referenced by LADSPAPluginFormat::canScanForPlugins(), AudioUnitPluginFormat::canScanForPlugins(), and VST3PluginFormat::canScanForPlugins().
void AudioPluginFormat::createPluginInstanceAsync | ( | const PluginDescription & | description, |
double | initialSampleRate, | ||
int | initialBufferSize, | ||
InstantiationCompletionCallback * | completionCallback | ||
) |
Tries to recreate a type from a previously generated PluginDescription.
void AudioPluginFormat::createPluginInstanceAsync | ( | const PluginDescription & | description, |
double | initialSampleRate, | ||
int | initialBufferSize, | ||
std::function< void(AudioPluginInstance *, const String &)> | completionCallback | ||
) |
|
private |
|
pure virtual |
Checks whether this plugin could possibly be loaded.
It doesn't actually need to load it, just to check whether the file or component still exists.
Implemented in VSTPluginFormat, VST3PluginFormat, AudioUnitPluginFormat, and LADSPAPluginFormat.
Referenced by LADSPAPluginFormat::getName(), AudioUnitPluginFormat::getName(), and VST3PluginFormat::getName().
|
pure virtual |
Should do a quick check to see if this file or directory might be a plugin of this format.
This is for searching for potential files, so it shouldn't actually try to load the plugin or do anything time-consuming.
Implemented in VSTPluginFormat, VST3PluginFormat, AudioUnitPluginFormat, and LADSPAPluginFormat.
Referenced by LADSPAPluginFormat::getName(), AudioUnitPluginFormat::getName(), and VST3PluginFormat::getName().
|
pure virtual |
This tries to create descriptions for all the plugin types available in a binary module file.
The file will be some kind of DLL or bundle.
Normally there will only be one type returned, but some plugins (e.g. VST shells) can use a single DLL to create a set of different plugin subtypes, so in that case, each subtype is returned as a separate object.
Implemented in VSTPluginFormat, VST3PluginFormat, AudioUnitPluginFormat, and LADSPAPluginFormat.
Referenced by LADSPAPluginFormat::getName(), AudioUnitPluginFormat::getName(), and VST3PluginFormat::getName().
|
pure virtual |
Returns the typical places to look for this kind of plugin.
Note that if this returns no paths, it means that the format doesn't search in files or folders, e.g. AudioUnits.
Implemented in VSTPluginFormat, VST3PluginFormat, AudioUnitPluginFormat, and LADSPAPluginFormat.
Referenced by LADSPAPluginFormat::getName(), AudioUnitPluginFormat::getName(), and VST3PluginFormat::getName().
|
pure virtual |
Returns the format name.
E.g. "VST", "AudioUnit", etc.
Implemented in VSTPluginFormat, VST3PluginFormat, AudioUnitPluginFormat, and LADSPAPluginFormat.
|
pure virtual |
Returns a readable version of the name of the plugin that this identifier refers to.
Implemented in VSTPluginFormat, VST3PluginFormat, AudioUnitPluginFormat, and LADSPAPluginFormat.
Referenced by LADSPAPluginFormat::getName(), AudioUnitPluginFormat::getName(), and VST3PluginFormat::getName().
|
pure virtual |
Returns true if this plugin's version or date has changed and it should be re-checked.
Implemented in VSTPluginFormat, VST3PluginFormat, AudioUnitPluginFormat, and LADSPAPluginFormat.
Referenced by LADSPAPluginFormat::getName(), AudioUnitPluginFormat::getName(), and VST3PluginFormat::getName().
|
protectedpure virtualnoexcept |
Implemented in VSTPluginFormat, AudioUnitPluginFormat, VST3PluginFormat, and LADSPAPluginFormat.
Referenced by LADSPAPluginFormat::canScanForPlugins(), AudioUnitPluginFormat::canScanForPlugins(), and VST3PluginFormat::canScanForPlugins().
|
pure virtual |
Searches a suggested set of directories for any plugins in this format.
The path might be ignored, e.g. by AUs, which are found by the OS rather than manually.
directoriesToSearch | This specifies which directories shall be searched for plug-ins. |
recursive | Should the search recursively traverse folders. |
allowPluginsWhichRequireAsynchronousInstantiation | If this is false then plug-ins which require asynchronous creation will be excluded. |
Implemented in VSTPluginFormat, VST3PluginFormat, AudioUnitPluginFormat, and LADSPAPluginFormat.
Referenced by LADSPAPluginFormat::getName(), AudioUnitPluginFormat::getName(), and VST3PluginFormat::getName().
|
friend |