JUCE-7.0.12-0-g4f43011b96 JUCE-7.0.12-0-g4f43011b96
JUCE — C++ application framework with suport for VST, VST3, LV2 audio plug-ins

« « « Anklang Documentation
Loading...
Searching...
No Matches
juce_AudioPluginFormat.h
Go to the documentation of this file.
1 /*
2 ==============================================================================
3
4 This file is part of the JUCE library.
5 Copyright (c) 2022 - Raw Material Software Limited
6
7 JUCE is an open source library subject to commercial or open-source
8 licensing.
9
10 By using JUCE, you agree to the terms of both the JUCE 7 End-User License
11 Agreement and JUCE Privacy Policy.
12
13 End User License Agreement: www.juce.com/juce-7-licence
14 Privacy Policy: www.juce.com/juce-privacy-policy
15
16 Or: You may also use this code under the terms of the GPL v3 (see
17 www.gnu.org/licenses).
18
19 JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
20 EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
21 DISCLAIMED.
22
23 ==============================================================================
24*/
25
26namespace juce
27{
28
29//==============================================================================
37class JUCE_API AudioPluginFormat : private MessageListener
38{
39public:
41 ~AudioPluginFormat() override;
42
43 //==============================================================================
47 virtual String getName() const = 0;
48
59 const String& fileOrIdentifier) = 0;
60
64 std::unique_ptr<AudioPluginInstance> createInstanceFromDescription (const PluginDescription&,
65 double initialSampleRate,
66 int initialBufferSize);
67
71 std::unique_ptr<AudioPluginInstance> createInstanceFromDescription (const PluginDescription&,
72 double initialSampleRate,
73 int initialBufferSize,
74 String& errorMessage);
75
78
84 void createPluginInstanceAsync (const PluginDescription& description,
85 double initialSampleRate,
86 int initialBufferSize,
88
95 virtual bool fileMightContainThisPluginType (const String& fileOrIdentifier) = 0;
96
98 virtual String getNameOfPluginFromIdentifier (const String& fileOrIdentifier) = 0;
99
101 virtual bool pluginNeedsRescanning (const PluginDescription&) = 0;
102
107 virtual bool doesPluginStillExist (const PluginDescription&) = 0;
108
110 virtual bool canScanForPlugins() const = 0;
111
116 virtual bool isTrivialToScan() const = 0;
117
129 virtual StringArray searchPathsForPlugins (const FileSearchPath& directoriesToSearch,
130 bool recursive,
131 bool allowPluginsWhichRequireAsynchronousInstantiation = false) = 0;
132
139
142
145
153 virtual void createARAFactoryAsync (const PluginDescription&, ARAFactoryCreationCallback callback) { callback ({}); }
154
155protected:
156 //==============================================================================
157 friend class AudioPluginFormatManager;
158
160
164 virtual void createPluginInstance (const PluginDescription&, double initialSampleRate,
165 int initialBufferSize, PluginCreationCallback) = 0;
166
167private:
168 struct AsyncCreateMessage;
169 void handleMessage (const Message&) override;
170
172};
173
174} // namespace juce
This maintains a list of known AudioPluginFormats.
The base class for a type of plugin format, such as VST, AudioUnit, LADSPA, etc.
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.
virtual String getName() const =0
Returns the format name.
virtual bool requiresUnblockedMessageThreadDuringCreation(const PluginDescription &) const =0
Returns true if instantiation of this plugin type must be done from a non-message thread.
virtual FileSearchPath getDefaultLocationsToSearch()=0
Returns the typical places to look for this kind of plugin.
virtual String getNameOfPluginFromIdentifier(const String &fileOrIdentifier)=0
Returns a readable version of the name of the plugin that this identifier refers to.
virtual void createPluginInstance(const PluginDescription &, double initialSampleRate, int initialBufferSize, PluginCreationCallback)=0
Implementors must override this function.
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 StringArray searchPathsForPlugins(const FileSearchPath &directoriesToSearch, bool recursive, bool allowPluginsWhichRequireAsynchronousInstantiation=false)=0
Searches a suggested set of directories for any plugins in this format.
virtual bool doesPluginStillExist(const PluginDescription &)=0
Checks whether this plugin could possibly be loaded.
virtual bool isTrivialToScan() const =0
Should return true if this format is both safe and quick to scan - i.e.
virtual bool canScanForPlugins() const =0
Returns true if this format needs to run a scan to find its list of plugins.
virtual bool pluginNeedsRescanning(const PluginDescription &)=0
Returns true if this plugin's version or date has changed and it should be re-checked.
virtual void createARAFactoryAsync(const PluginDescription &, ARAFactoryCreationCallback callback)
Tries to create an ::ARAFactoryWrapper for this description.
Represents a set of folders that make up a search path.
MessageListener subclasses can post and receive Message objects.
The base class for objects that can be sent to a MessageListener.
An array designed for holding objects.
A small class to represent some facts about a particular type of plug-in.
A special array for holding a list of strings.
The JUCE String class!
Definition juce_String.h:53
#define JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(className)
This is a shorthand way of writing both a JUCE_DECLARE_NON_COPYABLE and JUCE_LEAK_DETECTOR macro for ...
JUCE Namespace.
Represents the result of AudioPluginFormatManager::createARAFactoryAsync().