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_PluginDirectoryScanner.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//==============================================================================
39{
40public:
41 //==============================================================================
65 PluginDirectoryScanner (KnownPluginList& listToAddResultsTo,
66 AudioPluginFormat& formatToLookFor,
67 FileSearchPath directoriesToSearch,
68 bool searchRecursively,
69 const File& deadMansPedalFile,
70 bool allowPluginsWhichRequireAsynchronousInstantiation = false);
71
74
75 //==============================================================================
80 void setFilesOrIdentifiersToScan (const StringArray& filesOrIdentifiersToScan);
81
93 bool scanNextFile (bool dontRescanIfAlreadyInList,
94 String& nameOfPluginBeingScanned);
95
99 bool skipNextFile();
100
107 String getNextPluginFileThatWillBeScanned() const;
108
110 float getProgress() const { return progress; }
111
115 const StringArray& getFailedFiles() const noexcept { return failedFiles; }
116
118 static void applyBlacklistingsFromDeadMansPedal (KnownPluginList& listToApplyTo,
119 const File& deadMansPedalFile);
120
121private:
122 //==============================================================================
123 KnownPluginList& list;
124 AudioPluginFormat& format;
125 StringArray filesOrIdentifiersToScan;
126 File deadMansPedalFile;
127 StringArray failedFiles;
128 Atomic<int> nextIndex;
129 std::atomic<float> progress { 0.0f };
130 const bool allowAsync;
131
132 void updateProgress();
133 void setDeadMansPedalFile (const StringArray& newContents);
134
135 JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (PluginDirectoryScanner)
136};
137
138} // namespace juce
The base class for a type of plugin format, such as VST, AudioUnit, LADSPA, etc.
Represents a set of folders that make up a search path.
Represents a local file or directory.
Definition juce_File.h:45
Manages a list of plugin types.
Scans a directory for plugins, and adds them to a KnownPluginList.
float getProgress() const
Returns the estimated progress, between 0 and 1.
const StringArray & getFailedFiles() const noexcept
This returns a list of all the filenames of things that looked like being a plugin file,...
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.
A simple wrapper around std::atomic.
Definition juce_Atomic.h:42