LMMS
Loading...
Searching...
No Matches
juce::PluginListComponent::Scanner Class Reference
Inheritance diagram for juce::PluginListComponent::Scanner:
juce::Timer

Classes

struct  ScanJob

Public Member Functions

 Scanner (PluginListComponent &plc, AudioPluginFormat &format, const StringArray &filesOrIdentifiers, PropertiesFile *properties, bool allowPluginsWhichRequireAsynchronousInstantiation, int threads, const String &title, const String &text)
 ~Scanner () override

Private Member Functions

void warnUserAboutStupidPaths ()
void startScan ()
void finishedScan ()
void timerCallback () override
bool doNextScan ()
Private Member Functions inherited from juce::Timer
virtual ~Timer ()
void startTimer (int intervalInMilliseconds) noexcept
void startTimerHz (int timerFrequencyHz) noexcept
void stopTimer () noexcept
bool isTimerRunning () const noexcept
int getTimerInterval () const noexcept
 Timer () noexcept
 Timer (const Timer &) noexcept

Static Private Member Functions

static void startScanCallback (int result, AlertWindow *alert, Scanner *scanner)
static bool isStupidPath (const File &f)
static void warnAboutStupidPathsCallback (int result, Scanner *scanner)
Static Private Member Functions inherited from juce::Timer
static void JUCE_CALLTYPE callAfterDelay (int milliseconds, std::function< void()> functionToCall)
static void JUCE_CALLTYPE callPendingTimersSynchronously ()

Private Attributes

PluginListComponentowner
AudioPluginFormatformatToScan
StringArray filesOrIdentifiersToScan
PropertiesFilepropertiesToUse
std::unique_ptr< PluginDirectoryScannerscanner
AlertWindow pathChooserWindow
AlertWindow progressWindow
FileSearchPathListComponent pathList
String pluginBeingScanned
double progress = 0
const int numThreads
bool allowAsync
bool timerReentrancyCheck = false
std::atomic< bool > finished { false }
std::unique_ptr< ThreadPoolpool
std::set< StringinitiallyBlacklistedFiles

Constructor & Destructor Documentation

◆ Scanner()

juce::PluginListComponent::Scanner::Scanner ( PluginListComponent & plc,
AudioPluginFormat & format,
const StringArray & filesOrIdentifiers,
PropertiesFile * properties,
bool allowPluginsWhichRequireAsynchronousInstantiation,
int threads,
const String & title,
const String & text )
inline

◆ ~Scanner()

juce::PluginListComponent::Scanner::~Scanner ( )
inlineoverride

Member Function Documentation

◆ doNextScan()

bool juce::PluginListComponent::Scanner::doNextScan ( )
inlineprivate

◆ finishedScan()

void juce::PluginListComponent::Scanner::finishedScan ( )
inlineprivate

◆ isStupidPath()

bool juce::PluginListComponent::Scanner::isStupidPath ( const File & f)
inlinestaticprivate

◆ startScan()

void juce::PluginListComponent::Scanner::startScan ( )
inlineprivate

◆ startScanCallback()

void juce::PluginListComponent::Scanner::startScanCallback ( int result,
AlertWindow * alert,
Scanner * scanner )
inlinestaticprivate

◆ timerCallback()

void juce::PluginListComponent::Scanner::timerCallback ( )
inlineoverrideprivatevirtual

The user-defined callback routine that actually gets called periodically.

It's perfectly ok to call startTimer() or stopTimer() from within this callback to change the subsequent intervals.

Implements juce::Timer.

◆ warnAboutStupidPathsCallback()

void juce::PluginListComponent::Scanner::warnAboutStupidPathsCallback ( int result,
Scanner * scanner )
inlinestaticprivate

◆ warnUserAboutStupidPaths()

void juce::PluginListComponent::Scanner::warnUserAboutStupidPaths ( )
inlineprivate

Member Data Documentation

◆ allowAsync

bool juce::PluginListComponent::Scanner::allowAsync
private

◆ filesOrIdentifiersToScan

StringArray juce::PluginListComponent::Scanner::filesOrIdentifiersToScan
private

◆ finished

std::atomic<bool> juce::PluginListComponent::Scanner::finished { false }
private

◆ formatToScan

AudioPluginFormat& juce::PluginListComponent::Scanner::formatToScan
private

◆ initiallyBlacklistedFiles

std::set<String> juce::PluginListComponent::Scanner::initiallyBlacklistedFiles
private

◆ numThreads

const int juce::PluginListComponent::Scanner::numThreads
private

◆ owner

PluginListComponent& juce::PluginListComponent::Scanner::owner
private

◆ pathChooserWindow

AlertWindow juce::PluginListComponent::Scanner::pathChooserWindow
private

◆ pathList

FileSearchPathListComponent juce::PluginListComponent::Scanner::pathList
private

◆ pluginBeingScanned

String juce::PluginListComponent::Scanner::pluginBeingScanned
private

◆ pool

std::unique_ptr<ThreadPool> juce::PluginListComponent::Scanner::pool
private

◆ progress

double juce::PluginListComponent::Scanner::progress = 0
private

◆ progressWindow

AlertWindow juce::PluginListComponent::Scanner::progressWindow
private

◆ propertiesToUse

PropertiesFile* juce::PluginListComponent::Scanner::propertiesToUse
private

◆ scanner

std::unique_ptr<PluginDirectoryScanner> juce::PluginListComponent::Scanner::scanner
private

◆ timerReentrancyCheck

bool juce::PluginListComponent::Scanner::timerReentrancyCheck = false
private

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