Manages a list of plugin types. More...
#include <juce_KnownPluginList.h>
Classes | |
class | CustomScanner |
Class to define a custom plugin scanner. More... | |
struct | PluginTree |
A structure that recursively holds a tree of plugins. More... | |
Public Types | |
enum | SortMethod { defaultOrder = 0, sortAlphabetically, sortByCategory, sortByManufacturer, sortByFormat, sortByFileSystemLocation, sortByInfoUpdateTime } |
Sort methods used to change the order of the plugins in the list. More... | |
Public Member Functions | |
KnownPluginList () | |
Creates an empty list. More... | |
~KnownPluginList () override | |
Destructor. More... | |
void | addChangeListener (ChangeListener *listener) |
Registers a listener to receive change callbacks from this broadcaster. More... | |
void | addToBlacklist (const String &pluginID) |
Adds a plugin ID to the black-list. More... | |
bool | addType (const PluginDescription &type) |
Adds a type manually from its description. More... | |
void | clear () |
Clears the list. More... | |
void | clearBlacklistedFiles () |
Clears all the blacklisted files. More... | |
std::unique_ptr< XmlElement > | createXml () const |
Creates some XML that can be used to store the state of this list. More... | |
void | dispatchPendingMessages () |
If a change message has been sent but not yet dispatched, this will call sendSynchronousChangeMessage() to make the callback immediately. More... | |
const StringArray & | getBlacklistedFiles () const |
Returns the list of blacklisted files. More... | |
int | getNumTypes () const noexcept |
Returns the number of types currently in the list. More... | |
std::unique_ptr< PluginDescription > | getTypeForFile (const String &fileOrIdentifier) const |
Looks for a type in the list which comes from this file. More... | |
std::unique_ptr< PluginDescription > | getTypeForIdentifierString (const String &identifierString) const |
Looks for a type in the list which matches a plugin type ID. More... | |
Array< PluginDescription > | getTypes () const |
Returns a copy of the current list. More... | |
Array< PluginDescription > | getTypesForFormat (AudioPluginFormat &) const |
Returns the subset of plugin types for a given format. More... | |
bool | isListingUpToDate (const String &possiblePluginFileOrIdentifier, AudioPluginFormat &formatToUse) const |
Returns true if the specified file is already known about and if it hasn't been modified since our entry was created. More... | |
void | recreateFromXml (const XmlElement &xml) |
Recreates the state of this list from its stored XML format. More... | |
void | removeAllChangeListeners () |
Removes all listeners from the list. More... | |
void | removeChangeListener (ChangeListener *listener) |
Unregisters a listener from the list. More... | |
void | removeFromBlacklist (const String &pluginID) |
Removes a plugin ID from the black-list. More... | |
void | removeType (const PluginDescription &type) |
Removes a type. More... | |
void | scanAndAddDragAndDroppedFiles (AudioPluginFormatManager &formatManager, const StringArray &filenames, OwnedArray< PluginDescription > &typesFound) |
Scans and adds a bunch of files that might have been dragged-and-dropped. More... | |
bool | scanAndAddFile (const String &possiblePluginFileOrIdentifier, bool dontRescanIfAlreadyInList, OwnedArray< PluginDescription > &typesFound, AudioPluginFormat &formatToUse) |
Looks for all types that can be loaded from a given file, and adds them to the list. More... | |
void | scanFinished () |
Tells a custom scanner that a scan has finished, and it can release any resources. More... | |
void | sendChangeMessage () |
Causes an asynchronous change message to be sent to all the registered listeners. More... | |
void | sendSynchronousChangeMessage () |
Sends a synchronous change message to all the registered listeners. More... | |
void | setCustomScanner (std::unique_ptr< CustomScanner > newScanner) |
Supplies a custom scanner to be used in future scans. More... | |
void | sort (SortMethod method, bool forwards) |
Sorts the list. More... | |
Static Public Member Functions | |
static void | addToMenu (PopupMenu &menu, const Array< PluginDescription > &types, SortMethod sortMethod, const String ¤tlyTickedPluginID={}) |
Adds the plug-in types to a popup menu so that the user can select one. More... | |
static std::unique_ptr< PluginTree > | createTree (const Array< PluginDescription > &types, SortMethod sortMethod) |
Creates a PluginTree object representing the list of plug-ins. More... | |
static int | getIndexChosenByMenu (const Array< PluginDescription > &types, int menuResultCode) |
Converts a menu item index that has been chosen into its index in the list. More... | |
Private Member Functions | |
void | callListeners () |
Private Attributes | |
std::atomic< bool > | anyListeners { false } |
StringArray | blacklist |
ChangeBroadcasterCallback | broadcastCallback |
ListenerList< ChangeListener > | changeListeners |
CriticalSection | scanLock |
std::unique_ptr< CustomScanner > | scanner |
Array< PluginDescription > | types |
CriticalSection | typesArrayLock |
Manages a list of plugin types.
This can be easily edited, saved and loaded, and used to create instances of the plugin types in it.
@tags{Audio}
juce::KnownPluginList::KnownPluginList | ( | ) |
Creates an empty list.
|
override |
Destructor.
|
inherited |
Registers a listener to receive change callbacks from this broadcaster.
Trying to add a listener that's already on the list will have no effect.
void juce::KnownPluginList::addToBlacklist | ( | const String & | pluginID | ) |
Adds a plugin ID to the black-list.
|
static |
Adds the plug-in types to a popup menu so that the user can select one.
Depending on the sort method, it may add sub-menus for categories, manufacturers, etc.
Use getIndexChosenByMenu() to find out the type that was chosen.
bool juce::KnownPluginList::addType | ( | const PluginDescription & | type | ) |
Adds a type manually from its description.
|
privateinherited |
void juce::KnownPluginList::clear | ( | ) |
Clears the list.
void juce::KnownPluginList::clearBlacklistedFiles | ( | ) |
Clears all the blacklisted files.
|
static |
Creates a PluginTree object representing the list of plug-ins.
std::unique_ptr<XmlElement> juce::KnownPluginList::createXml | ( | ) | const |
Creates some XML that can be used to store the state of this list.
|
inherited |
If a change message has been sent but not yet dispatched, this will call sendSynchronousChangeMessage() to make the callback immediately.
For thread-safety reasons, you must only call this method on the main message thread.
const StringArray& juce::KnownPluginList::getBlacklistedFiles | ( | ) | const |
Returns the list of blacklisted files.
|
static |
Converts a menu item index that has been chosen into its index in the list.
Returns -1 if it's not an ID that was used.
|
noexcept |
Returns the number of types currently in the list.
std::unique_ptr<PluginDescription> juce::KnownPluginList::getTypeForFile | ( | const String & | fileOrIdentifier | ) | const |
Looks for a type in the list which comes from this file.
std::unique_ptr<PluginDescription> juce::KnownPluginList::getTypeForIdentifierString | ( | const String & | identifierString | ) | const |
Looks for a type in the list which matches a plugin type ID.
The identifierString parameter must have been created by PluginDescription::createIdentifierString().
Array<PluginDescription> juce::KnownPluginList::getTypes | ( | ) | const |
Returns a copy of the current list.
Array<PluginDescription> juce::KnownPluginList::getTypesForFormat | ( | AudioPluginFormat & | ) | const |
Returns the subset of plugin types for a given format.
bool juce::KnownPluginList::isListingUpToDate | ( | const String & | possiblePluginFileOrIdentifier, |
AudioPluginFormat & | formatToUse | ||
) | const |
Returns true if the specified file is already known about and if it hasn't been modified since our entry was created.
void juce::KnownPluginList::recreateFromXml | ( | const XmlElement & | xml | ) |
Recreates the state of this list from its stored XML format.
|
inherited |
Removes all listeners from the list.
|
inherited |
Unregisters a listener from the list.
If the listener isn't on the list, this won't have any effect.
void juce::KnownPluginList::removeFromBlacklist | ( | const String & | pluginID | ) |
Removes a plugin ID from the black-list.
void juce::KnownPluginList::removeType | ( | const PluginDescription & | type | ) |
Removes a type.
void juce::KnownPluginList::scanAndAddDragAndDroppedFiles | ( | AudioPluginFormatManager & | formatManager, |
const StringArray & | filenames, | ||
OwnedArray< PluginDescription > & | typesFound | ||
) |
Scans and adds a bunch of files that might have been dragged-and-dropped.
If any types are found in the files, their descriptions are returned in the array.
bool juce::KnownPluginList::scanAndAddFile | ( | const String & | possiblePluginFileOrIdentifier, |
bool | dontRescanIfAlreadyInList, | ||
OwnedArray< PluginDescription > & | typesFound, | ||
AudioPluginFormat & | formatToUse | ||
) |
Looks for all types that can be loaded from a given file, and adds them to the list.
If dontRescanIfAlreadyInList is true, then the file will only be loaded and re-tested if it's not already in the list, or if the file's modification time has changed since the list was created. If dontRescanIfAlreadyInList is false, the file will always be reloaded and tested.
Returns true if any new types were added, and all the types found in this file (even if it was already known and hasn't been re-scanned) get returned in the array.
void juce::KnownPluginList::scanFinished | ( | ) |
Tells a custom scanner that a scan has finished, and it can release any resources.
|
inherited |
Causes an asynchronous change message to be sent to all the registered listeners.
The message will be delivered asynchronously by the main message thread, so this method will return immediately. To call the listeners synchronously use sendSynchronousChangeMessage().
Referenced by juce::SelectedItemSet< SelectableItemType >::changed().
|
inherited |
Sends a synchronous change message to all the registered listeners.
This will immediately call all the listeners that are registered. For thread-safety reasons, you must only call this method on the main message thread.
Referenced by juce::SelectedItemSet< SelectableItemType >::changed().
void juce::KnownPluginList::setCustomScanner | ( | std::unique_ptr< CustomScanner > | newScanner | ) |
Supplies a custom scanner to be used in future scans.
The KnownPluginList will take ownership of the object passed in.
void juce::KnownPluginList::sort | ( | SortMethod | method, |
bool | forwards | ||
) |
Sorts the list.
|
privateinherited |
|
private |
|
privateinherited |
|
privateinherited |
|
private |
|
private |
|
private |
|
private |