Loading...
Searching...
No Matches
juce::AudioPluginFormat Class Referenceabstract

## Detailed Description

The base class for a type of plugin format, such as VST, AudioUnit, LADSPA, etc.

See also
  AudioPluginFormatManager

The documentation for this class was generated from the following file:

- juce_audio_processors_headless/format/juce_AudioPluginFormat.h

Inheritance diagram for juce::AudioPluginFormat:

## Public Types

using | PluginCreationCallback = std::function<void (std::unique_ptr<AudioPluginInstance>, const String&)>
| A callback lambda that is passed to createPluginInstanceAsync().
using | ARAFactoryCreationCallback = std::function<void (ARAFactoryResult)>
| A callback lambda that is passed to getARAFactory().

## Public Member Functions

| ~AudioPluginFormat () override
| Destructor.
virtual String | getName () const =0
| Returns the format name.
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.
std::unique_ptr< AudioPluginInstance > | createInstanceFromDescription (const PluginDescription &, double initialSampleRate, int initialBufferSize)
| Tries to recreate a type from a previously generated PluginDescription.
std::unique_ptr< AudioPluginInstance > | createInstanceFromDescription (const PluginDescription &, double initialSampleRate, int initialBufferSize, String &errorMessage)
| Same as above but with the possibility of returning an error message.
void | createPluginInstanceAsync (const PluginDescription &description, double initialSampleRate, int initialBufferSize, PluginCreationCallback)
| Tries to recreate a type from a previously generated PluginDescription.
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.
virtual String | getNameOfPluginFromIdentifier (const String &fileOrIdentifier)=0
| Returns a readable version of the name of the plugin that this identifier refers to.
virtual bool | pluginNeedsRescanning (const PluginDescription &)=0
| Returns true if this plugin's version or date has changed and it should be re-checked.
virtual bool | doesPluginStillExist (const PluginDescription &)=0
| Checks whether this plugin could possibly be loaded.
virtual bool | canScanForPlugins () const =0
| Returns true if this format needs to run a scan to find its list of plugins.
virtual bool | isTrivialToScan () const =0
| Should return true if this format is both safe and quick to scan - i.e.
virtual StringArray | searchPathsForPlugins (const FileSearchPath &directoriesToSearch, bool recursive, bool allowPluginsWhichRequireAsynchronousInstantiation=false)=0
| Searches a suggested set of directories for any plugins in this format.
virtual FileSearchPath | getDefaultLocationsToSearch ()=0
| Returns the typical places to look for this kind of plugin.
virtual bool | requiresUnblockedMessageThreadDuringCreation (const PluginDescription &) const =0
| Returns true if instantiation of this plugin type must be done from a non-message thread.
virtual void | createARAFactoryAsync (const PluginDescription &, ARAFactoryCreationCallback callback)
| Tries to create an ::ARAFactoryWrapper for this description.

## Protected Member Functions

| AudioPluginFormat ()
virtual void | createPluginInstance (const PluginDescription &, double initialSampleRate, int initialBufferSize, PluginCreationCallback)=0
| Implementors must override this function.

## Member Typedef Documentation

## PluginCreationCallback

using juce::AudioPluginFormat::PluginCreationCallback = std::function<void (std::unique_ptr<AudioPluginInstance>, const String&)>

A callback lambda that is passed to createPluginInstanceAsync().

## ARAFactoryCreationCallback

using juce::AudioPluginFormat::ARAFactoryCreationCallback = std::function<void (ARAFactoryResult)>

A callback lambda that is passed to getARAFactory().

## Constructors and Destructors

## ~AudioPluginFormat()

juce::AudioPluginFormat::~AudioPluginFormat | ( |  | ) |

override

Destructor.

## AudioPluginFormat()

juce::AudioPluginFormat::AudioPluginFormat | ( |  | ) |

protected

Referenced by createPluginInstance().

## Member Functions

## getName()

virtual String juce::AudioPluginFormat::getName | ( |  | ) | const

pure virtual

Returns the format name.

E.g. "VST", "AudioUnit", etc.

Implemented in juce::AudioUnitPluginFormatHeadless, juce::LADSPAPluginFormatHeadless, juce::LV2PluginFormatHeadless, juce::VST3PluginFormatHeadless, and juce::VSTPluginFormatHeadless.

## findAllTypesForFile()

virtual void juce::AudioPluginFormat::findAllTypesForFile | ( | OwnedArray< PluginDescription > & | results,
|  | const String & | fileOrIdentifier )

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 juce::AudioUnitPluginFormatHeadless, juce::LADSPAPluginFormatHeadless, juce::LV2PluginFormatHeadless, juce::VST3PluginFormatHeadless, and juce::VSTPluginFormatHeadless.

## createInstanceFromDescription() [1/2]

std::unique_ptr< AudioPluginInstance > juce::AudioPluginFormat::createInstanceFromDescription | ( | const PluginDescription & | ,
|  | double | initialSampleRate,
|  | int | initialBufferSize )

Tries to recreate a type from a previously generated PluginDescription.

See also
  AudioPluginFormatManager::createInstance

## createInstanceFromDescription() [2/2]

std::unique_ptr< AudioPluginInstance > juce::AudioPluginFormat::createInstanceFromDescription | ( | const PluginDescription & | ,
|  | double | initialSampleRate,
|  | int | initialBufferSize,
|  | String & | errorMessage )

Same as above but with the possibility of returning an error message.

See also
  AudioPluginFormatManager::createInstance

## createPluginInstanceAsync()

void juce::AudioPluginFormat::createPluginInstanceAsync | ( | const PluginDescription & | description,
|  | double | initialSampleRate,
|  | int | initialBufferSize,
|  | PluginCreationCallback | )

Tries to recreate a type from a previously generated PluginDescription.

When the plugin has been created, it will be passed to the caller via an asynchronous call to the PluginCreationCallback lambda that was provided.

See also
  AudioPluginFormatManager::createPluginInstanceAsync

## fileMightContainThisPluginType()

virtual bool juce::AudioPluginFormat::fileMightContainThisPluginType | ( | const String & | fileOrIdentifier | ) |

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 juce::AudioUnitPluginFormatHeadless, juce::LADSPAPluginFormatHeadless, juce::LV2PluginFormatHeadless, juce::VST3PluginFormatHeadless, and juce::VSTPluginFormatHeadless.

## getNameOfPluginFromIdentifier()

virtual String juce::AudioPluginFormat::getNameOfPluginFromIdentifier | ( | const String & | fileOrIdentifier | ) |

pure virtual

Returns a readable version of the name of the plugin that this identifier refers to.

Implemented in juce::AudioUnitPluginFormatHeadless, juce::LADSPAPluginFormatHeadless, juce::LV2PluginFormatHeadless, juce::VST3PluginFormatHeadless, and juce::VSTPluginFormatHeadless.

## pluginNeedsRescanning()

virtual bool juce::AudioPluginFormat::pluginNeedsRescanning | ( | const PluginDescription & |  | ) |

pure virtual

Returns true if this plugin's version or date has changed and it should be re-checked.

Implemented in juce::AudioUnitPluginFormatHeadless, juce::LADSPAPluginFormatHeadless, juce::LV2PluginFormatHeadless, juce::VST3PluginFormatHeadless, and juce::VSTPluginFormatHeadless.

## doesPluginStillExist()

virtual bool juce::AudioPluginFormat::doesPluginStillExist | ( | const PluginDescription & |  | ) |

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 juce::AudioUnitPluginFormatHeadless, juce::LADSPAPluginFormatHeadless, juce::LV2PluginFormatHeadless, juce::VST3PluginFormatHeadless, and juce::VSTPluginFormatHeadless.

## canScanForPlugins()

virtual bool juce::AudioPluginFormat::canScanForPlugins | ( |  | ) | const

pure virtual

Returns true if this format needs to run a scan to find its list of plugins.

Implemented in juce::AudioUnitPluginFormatHeadless, juce::LADSPAPluginFormatHeadless, juce::LV2PluginFormatHeadless, juce::VST3PluginFormatHeadless, and juce::VSTPluginFormatHeadless.

## isTrivialToScan()

virtual bool juce::AudioPluginFormat::isTrivialToScan | ( |  | ) | const

pure virtual

Should return true if this format is both safe and quick to scan - i.e.

if a file can be scanned within a few milliseconds on a background thread, without actually needing to load an executable.

Implemented in juce::AudioUnitPluginFormatHeadless, juce::LADSPAPluginFormatHeadless, juce::LV2PluginFormatHeadless, juce::VST3PluginFormatHeadless, and juce::VSTPluginFormatHeadless.

## searchPathsForPlugins()

virtual StringArray juce::AudioPluginFormat::searchPathsForPlugins | ( | const FileSearchPath & | directoriesToSearch,
|  | bool | recursive,
|  | bool | allowPluginsWhichRequireAsynchronousInstantiation = false )

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.

Parameters

  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 juce::AudioUnitPluginFormatHeadless, juce::LADSPAPluginFormatHeadless, juce::LV2PluginFormatHeadless, juce::VST3PluginFormatHeadless, and juce::VSTPluginFormatHeadless.

## getDefaultLocationsToSearch()

virtual FileSearchPath juce::AudioPluginFormat::getDefaultLocationsToSearch | ( |  | ) |

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 juce::AudioUnitPluginFormatHeadless, juce::LADSPAPluginFormatHeadless, juce::LV2PluginFormatHeadless, juce::VST3PluginFormatHeadless, and juce::VSTPluginFormatHeadless.

## requiresUnblockedMessageThreadDuringCreation()

virtual bool juce::AudioPluginFormat::requiresUnblockedMessageThreadDuringCreation | ( | const PluginDescription & |  | ) | const

pure virtual

Returns true if instantiation of this plugin type must be done from a non-message thread.

## createARAFactoryAsync()

virtual void juce::AudioPluginFormat::createARAFactoryAsync | ( | const PluginDescription & | ,
|  | ARAFactoryCreationCallback | callback )

inline virtual

Tries to create an ::ARAFactoryWrapper for this description.

The result of the operation will be wrapped into an ARAFactoryResult, which will be passed to a callback object supplied by the caller.

See also
  AudioPluginFormatManager::createARAFactoryAsync

Reimplemented in juce::AudioUnitPluginFormatHeadless, and juce::VST3PluginFormatHeadless.

## createPluginInstance()

virtual void juce::AudioPluginFormat::createPluginInstance | ( | const PluginDescription & | ,
|  | double | initialSampleRate,
|  | int | initialBufferSize,
|  | PluginCreationCallback | )

protected pure virtual

Implementors must override this function.

This is guaranteed to be called on the message thread. You may call the callback on any thread.

References AudioPluginFormat().

### Purchase

Get JUCE

### Discover

What's New in JUCE Features

### Learn

Documentaion Tutorials Made with JUCE Resources

### Support

JUCE Forum Newsletter Archive

### About

Contact Us JUCE Legal JUCE Licensing FAQ

### Events

Audio Developer Conference
© Raw Material Software Limited