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

#include <juce_AudioPluginFormat.h>

Inheritance diagram for juce::AudioPluginFormat:
juce::MessageListener

Classes

struct  AsyncCreateMessage

Public Types

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

Public Member Functions

 ~AudioPluginFormat () override
virtual String getName () const =0
virtual void findAllTypesForFile (OwnedArray< PluginDescription > &results, const String &fileOrIdentifier)=0
std::unique_ptr< AudioPluginInstancecreateInstanceFromDescription (const PluginDescription &, double initialSampleRate, int initialBufferSize)
std::unique_ptr< AudioPluginInstancecreateInstanceFromDescription (const PluginDescription &, double initialSampleRate, int initialBufferSize, String &errorMessage)
void createPluginInstanceAsync (const PluginDescription &description, double initialSampleRate, int initialBufferSize, PluginCreationCallback)
virtual bool fileMightContainThisPluginType (const String &fileOrIdentifier)=0
virtual String getNameOfPluginFromIdentifier (const String &fileOrIdentifier)=0
virtual bool pluginNeedsRescanning (const PluginDescription &)=0
virtual bool doesPluginStillExist (const PluginDescription &)=0
virtual bool canScanForPlugins () const =0
virtual bool isTrivialToScan () const =0
virtual StringArray searchPathsForPlugins (const FileSearchPath &directoriesToSearch, bool recursive, bool allowPluginsWhichRequireAsynchronousInstantiation=false)=0
virtual FileSearchPath getDefaultLocationsToSearch ()=0
virtual bool requiresUnblockedMessageThreadDuringCreation (const PluginDescription &) const =0
virtual void createARAFactoryAsync (const PluginDescription &, ARAFactoryCreationCallback callback)

Protected Member Functions

 AudioPluginFormat ()
virtual void createPluginInstance (const PluginDescription &, double initialSampleRate, int initialBufferSize, PluginCreationCallback)=0

Private Member Functions

void handleMessage (const Message &) override
Private Member Functions inherited from juce::MessageListener
 MessageListener () noexcept
virtual ~MessageListener ()
void postMessage (Message *message) const

Friends

class AudioPluginFormatManager

Detailed Description

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

See also
AudioPluginFormatManager

@tags{Audio}

Member Typedef Documentation

◆ ARAFactoryCreationCallback

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

A callback lambda that is passed to getARAFactory()

◆ PluginCreationCallback

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

A callback lambda that is passed to createPluginInstanceAsync()

Constructor & Destructor Documentation

◆ ~AudioPluginFormat()

juce::AudioPluginFormat::~AudioPluginFormat ( )
override

Destructor.

◆ AudioPluginFormat()

juce::AudioPluginFormat::AudioPluginFormat ( )
protected

Member Function Documentation

◆ 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.

◆ createARAFactoryAsync()

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

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

◆ createInstanceFromDescription() [1/2]

std::unique_ptr< AudioPluginInstance > juce::AudioPluginFormat::createInstanceFromDescription ( const PluginDescription & desc,
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 & desc,
double initialSampleRate,
int initialBufferSize,
String & errorMessage )

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

See also
AudioPluginFormatManager::createInstance

◆ createPluginInstance()

virtual void juce::AudioPluginFormat::createPluginInstance ( const PluginDescription & ,
double initialSampleRate,
int initialBufferSize,
PluginCreationCallback  )
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.

◆ createPluginInstanceAsync()

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

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

◆ 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.

◆ 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.

◆ 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.

◆ 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.

◆ getName()

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

Returns the format name. E.g. "VST", "AudioUnit", etc.

◆ 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.

◆ handleMessage()

void juce::AudioPluginFormat::handleMessage ( const Message & message)
overrideprivatevirtual

This is the callback method that receives incoming messages.

This is called by the MessageManager from its dispatch loop.

See also
postMessage

Implements juce::MessageListener.

◆ 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.

◆ 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.

◆ 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.

◆ 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
directoriesToSearchThis specifies which directories shall be searched for plug-ins.
recursiveShould the search recursively traverse folders.
allowPluginsWhichRequireAsynchronousInstantiationIf this is false then plug-ins which require asynchronous creation will be excluded.

◆ AudioPluginFormatManager

friend class AudioPluginFormatManager
friend

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