Esempio n. 1
0
bool PluginDirectoryScanner::scanNextFile (const bool dontRescanIfAlreadyInList,
                                           String& nameOfPluginBeingScanned)
{
    const int index = --nextIndex;

    if (index >= 0)
    {
        const String file (filesOrIdentifiersToScan [index]);

        if (file.isNotEmpty() && ! list.isListingUpToDate (file, format))
        {
            nameOfPluginBeingScanned = format.getNameOfPluginFromIdentifier (file);

            OwnedArray <PluginDescription> typesFound;

            // Add this plugin to the end of the dead-man's pedal list in case it crashes...
            StringArray crashedPlugins (readDeadMansPedalFile (deadMansPedalFile));
            crashedPlugins.removeString (file);
            crashedPlugins.add (file);
            setDeadMansPedalFile (crashedPlugins);

            list.scanAndAddFile (file, dontRescanIfAlreadyInList, typesFound, format);

            // Managed to load without crashing, so remove it from the dead-man's-pedal..
            crashedPlugins.removeString (file);
            setDeadMansPedalFile (crashedPlugins);

            if (typesFound.size() == 0 && ! list.getBlacklistedFiles().contains (file))
                failedFiles.add (file);
        }
    }

    updateProgress();
    return index > 0;
}
bool PluginDirectoryScanner::scanNextFile (const bool dontRescanIfAlreadyInList)
{
    String file (filesOrIdentifiersToScan [nextIndex]);

    if (file.isNotEmpty() && ! list.isListingUpToDate (file))
    {
        OwnedArray <PluginDescription> typesFound;

        // Add this plugin to the end of the dead-man's pedal list in case it crashes...
        StringArray crashedPlugins (getDeadMansPedalFile());
        crashedPlugins.removeString (file);
        crashedPlugins.add (file);
        setDeadMansPedalFile (crashedPlugins);

        list.scanAndAddFile (file,
                             dontRescanIfAlreadyInList,
                             typesFound,
                             format);

        // Managed to load without crashing, so remove it from the dead-man's-pedal..
        crashedPlugins.removeString (file);
        setDeadMansPedalFile (crashedPlugins);

        if (typesFound.size() == 0)
            failedFiles.add (file);
    }

    return skipNextFile();
}