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_VST3PluginFormat.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#if (JUCE_PLUGINHOST_VST3 && (JUCE_MAC || JUCE_WINDOWS || JUCE_LINUX || JUCE_BSD)) || DOXYGEN
30
36class JUCE_API VST3PluginFormat : public AudioPluginFormat
37{
38public:
41
44
45 //==============================================================================
46 #ifndef DOXYGEN
51 [[deprecated ("Instead of using this function, use AudioPluginInstance::getExtensions() "
52 "to visit the ExtensionsVisitor::VST3 struct for the instance, if it exists. "
53 "Then, call ExtensionsVisitor::VST3::setPreset() to set the state using the "
54 "contents of a vstpreset file.")]]
55 static bool setStateFromVSTPresetFile (AudioPluginInstance*, const MemoryBlock&);
56 #endif
57
58 //==============================================================================
59 static String getFormatName() { return "VST3"; }
60 String getName() const override { return getFormatName(); }
61 bool canScanForPlugins() const override { return true; }
62 bool isTrivialToScan() const override { return false; }
63
64 void findAllTypesForFile (OwnedArray<PluginDescription>&, const String& fileOrIdentifier) override;
65 bool fileMightContainThisPluginType (const String& fileOrIdentifier) override;
66 String getNameOfPluginFromIdentifier (const String& fileOrIdentifier) override;
68 StringArray searchPathsForPlugins (const FileSearchPath&, bool recursive, bool) override;
72
73private:
74 //==============================================================================
75 void createPluginInstance (const PluginDescription&, double initialSampleRate,
76 int initialBufferSize, PluginCreationCallback) override;
77 bool requiresUnblockedMessageThreadDuringCreation (const PluginDescription&) const override;
78 void recursiveFileSearch (StringArray&, const File&, bool recursive);
79 StringArray getLibraryPaths (const String&);
80
82};
83
84#endif // JUCE_PLUGINHOST_VST3
85
86} // namespace juce
The base class for a type of plugin format, such as VST, AudioUnit, LADSPA, etc.
Base class for an active instance of a plugin.
Represents a set of folders that make up a search path.
Represents a local file or directory.
Definition juce_File.h:45
A class to hold a resizable block of raw data.
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
Implements a plugin format for VST3s.
void findAllTypesForFile(OwnedArray< PluginDescription > &, const String &fileOrIdentifier) override
This tries to create descriptions for all the plugin types available in a binary module file.
String getName() const override
Returns the format name.
bool fileMightContainThisPluginType(const String &fileOrIdentifier) override
Should do a quick check to see if this file or directory might be a plugin of this format.
FileSearchPath getDefaultLocationsToSearch() override
Returns the typical places to look for this kind of plugin.
void createARAFactoryAsync(const PluginDescription &, ARAFactoryCreationCallback callback) override
Tries to create an ::ARAFactoryWrapper for this description.
VST3PluginFormat()
Constructor.
bool pluginNeedsRescanning(const PluginDescription &) override
Returns true if this plugin's version or date has changed and it should be re-checked.
StringArray searchPathsForPlugins(const FileSearchPath &, bool recursive, bool) override
Searches a suggested set of directories for any plugins in this format.
~VST3PluginFormat() override
Destructor.
bool canScanForPlugins() const override
Returns true if this format needs to run a scan to find its list of plugins.
bool doesPluginStillExist(const PluginDescription &) override
Checks whether this plugin could possibly be loaded.
String getNameOfPluginFromIdentifier(const String &fileOrIdentifier) override
Returns a readable version of the name of the plugin that this identifier refers to.
bool isTrivialToScan() const override
Should return true if this format is both safe and quick to scan - i.e.
#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.