| @@ -9,6 +9,7 @@ include ../Makefile.mk | |||||
| # -------------------------------------------------------------- | # -------------------------------------------------------------- | ||||
| BUILD_CXX_FLAGS += -I../backend -I../includes -I../utils -isystem ../modules | BUILD_CXX_FLAGS += -I../backend -I../includes -I../utils -isystem ../modules | ||||
| BUILD_CXX_FLAGS += -I../includes/ladspa -I../includes/vst -I../includes/vst3 | |||||
| #-Wno-multichar | #-Wno-multichar | ||||
| ifeq ($(MACOS),true) | ifeq ($(MACOS),true) | ||||
| @@ -1,37 +0,0 @@ | |||||
| /* | |||||
| ============================================================================== | |||||
| This file is part of the JUCE library. | |||||
| Copyright (c) 2013 - Raw Material Software Ltd. | |||||
| Permission is granted to use this software under the terms of either: | |||||
| a) the GPL v2 (or any later version) | |||||
| b) the Affero GPL v3 | |||||
| Details of these licenses can be found at: www.gnu.org/licenses | |||||
| JUCE is distributed in the hope that it will be useful, but WITHOUT ANY | |||||
| WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR | |||||
| A PARTICULAR PURPOSE. See the GNU General Public License for more details. | |||||
| ------------------------------------------------------------------------------ | |||||
| To release a closed-source product which uses JUCE, commercial licenses are | |||||
| available: visit www.juce.com for more information. | |||||
| ============================================================================== | |||||
| */ | |||||
| FileFilter::FileFilter (const String& filterDescription) | |||||
| : description (filterDescription) | |||||
| { | |||||
| } | |||||
| FileFilter::~FileFilter() | |||||
| { | |||||
| } | |||||
| const String& FileFilter::getDescription() const noexcept | |||||
| { | |||||
| return description; | |||||
| } | |||||
| @@ -1,73 +0,0 @@ | |||||
| /* | |||||
| ============================================================================== | |||||
| This file is part of the JUCE library. | |||||
| Copyright (c) 2013 - Raw Material Software Ltd. | |||||
| Permission is granted to use this software under the terms of either: | |||||
| a) the GPL v2 (or any later version) | |||||
| b) the Affero GPL v3 | |||||
| Details of these licenses can be found at: www.gnu.org/licenses | |||||
| JUCE is distributed in the hope that it will be useful, but WITHOUT ANY | |||||
| WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR | |||||
| A PARTICULAR PURPOSE. See the GNU General Public License for more details. | |||||
| ------------------------------------------------------------------------------ | |||||
| To release a closed-source product which uses JUCE, commercial licenses are | |||||
| available: visit www.juce.com for more information. | |||||
| ============================================================================== | |||||
| */ | |||||
| #ifndef JUCE_FILEFILTER_H_INCLUDED | |||||
| #define JUCE_FILEFILTER_H_INCLUDED | |||||
| //============================================================================== | |||||
| /** | |||||
| Interface for deciding which files are suitable for something. | |||||
| For example, this is used by DirectoryContentsList to select which files | |||||
| go into the list. | |||||
| @see WildcardFileFilter, DirectoryContentsList, FileListComponent, FileBrowserComponent | |||||
| */ | |||||
| class JUCE_API FileFilter | |||||
| { | |||||
| public: | |||||
| //============================================================================== | |||||
| /** Creates a filter with the given description. | |||||
| The description can be returned later with the getDescription() method. | |||||
| */ | |||||
| FileFilter (const String& filterDescription); | |||||
| /** Destructor. */ | |||||
| virtual ~FileFilter(); | |||||
| //============================================================================== | |||||
| /** Returns the description that the filter was created with. */ | |||||
| const String& getDescription() const noexcept; | |||||
| //============================================================================== | |||||
| /** Should return true if this file is suitable for inclusion in whatever context | |||||
| the object is being used. | |||||
| */ | |||||
| virtual bool isFileSuitable (const File& file) const = 0; | |||||
| /** Should return true if this directory is suitable for inclusion in whatever context | |||||
| the object is being used. | |||||
| */ | |||||
| virtual bool isDirectorySuitable (const File& file) const = 0; | |||||
| protected: | |||||
| //============================================================================== | |||||
| String description; | |||||
| }; | |||||
| #endif // JUCE_FILEFILTER_H_INCLUDED | |||||
| @@ -1,73 +0,0 @@ | |||||
| /* | |||||
| ============================================================================== | |||||
| This file is part of the JUCE library. | |||||
| Copyright (c) 2013 - Raw Material Software Ltd. | |||||
| Permission is granted to use this software under the terms of either: | |||||
| a) the GPL v2 (or any later version) | |||||
| b) the Affero GPL v3 | |||||
| Details of these licenses can be found at: www.gnu.org/licenses | |||||
| JUCE is distributed in the hope that it will be useful, but WITHOUT ANY | |||||
| WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR | |||||
| A PARTICULAR PURPOSE. See the GNU General Public License for more details. | |||||
| ------------------------------------------------------------------------------ | |||||
| To release a closed-source product which uses JUCE, commercial licenses are | |||||
| available: visit www.juce.com for more information. | |||||
| ============================================================================== | |||||
| */ | |||||
| WildcardFileFilter::WildcardFileFilter (const String& fileWildcardPatterns, | |||||
| const String& directoryWildcardPatterns, | |||||
| const String& desc) | |||||
| : FileFilter (desc.isEmpty() ? fileWildcardPatterns | |||||
| : (desc + " (" + fileWildcardPatterns + ")")) | |||||
| { | |||||
| parse (fileWildcardPatterns, fileWildcards); | |||||
| parse (directoryWildcardPatterns, directoryWildcards); | |||||
| } | |||||
| WildcardFileFilter::~WildcardFileFilter() | |||||
| { | |||||
| } | |||||
| bool WildcardFileFilter::isFileSuitable (const File& file) const | |||||
| { | |||||
| return match (file, fileWildcards); | |||||
| } | |||||
| bool WildcardFileFilter::isDirectorySuitable (const File& file) const | |||||
| { | |||||
| return match (file, directoryWildcards); | |||||
| } | |||||
| //============================================================================== | |||||
| void WildcardFileFilter::parse (const String& pattern, StringArray& result) | |||||
| { | |||||
| result.addTokens (pattern.toLowerCase(), ";,", "\"'"); | |||||
| result.trim(); | |||||
| result.removeEmptyStrings(); | |||||
| // special case for *.*, because people use it to mean "any file", but it | |||||
| // would actually ignore files with no extension. | |||||
| for (int i = result.size(); --i >= 0;) | |||||
| if (result[i] == "*.*") | |||||
| result.set (i, "*"); | |||||
| } | |||||
| bool WildcardFileFilter::match (const File& file, const StringArray& wildcards) | |||||
| { | |||||
| const String filename (file.getFileName()); | |||||
| for (int i = wildcards.size(); --i >= 0;) | |||||
| if (filename.matchesWildcard (wildcards[i], true)) | |||||
| return true; | |||||
| return false; | |||||
| } | |||||
| @@ -1,82 +0,0 @@ | |||||
| /* | |||||
| ============================================================================== | |||||
| This file is part of the JUCE library. | |||||
| Copyright (c) 2013 - Raw Material Software Ltd. | |||||
| Permission is granted to use this software under the terms of either: | |||||
| a) the GPL v2 (or any later version) | |||||
| b) the Affero GPL v3 | |||||
| Details of these licenses can be found at: www.gnu.org/licenses | |||||
| JUCE is distributed in the hope that it will be useful, but WITHOUT ANY | |||||
| WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR | |||||
| A PARTICULAR PURPOSE. See the GNU General Public License for more details. | |||||
| ------------------------------------------------------------------------------ | |||||
| To release a closed-source product which uses JUCE, commercial licenses are | |||||
| available: visit www.juce.com for more information. | |||||
| ============================================================================== | |||||
| */ | |||||
| #ifndef JUCE_WILDCARDFILEFILTER_H_INCLUDED | |||||
| #define JUCE_WILDCARDFILEFILTER_H_INCLUDED | |||||
| //============================================================================== | |||||
| /** | |||||
| A type of FileFilter that works by wildcard pattern matching. | |||||
| This filter only allows files that match one of the specified patterns, but | |||||
| allows all directories through. | |||||
| @see FileFilter, DirectoryContentsList, FileListComponent, FileBrowserComponent | |||||
| */ | |||||
| class JUCE_API WildcardFileFilter : public FileFilter | |||||
| { | |||||
| public: | |||||
| //============================================================================== | |||||
| /** | |||||
| Creates a wildcard filter for one or more patterns. | |||||
| The wildcardPatterns parameter is a comma or semicolon-delimited set of | |||||
| patterns, e.g. "*.wav;*.aiff" would look for files ending in either .wav | |||||
| or .aiff. | |||||
| Passing an empty string as a pattern will fail to match anything, so by leaving | |||||
| either the file or directory pattern parameter empty means you can control | |||||
| whether files or directories are found. | |||||
| The description is a name to show the user in a list of possible patterns, so | |||||
| for the wav/aiff example, your description might be "audio files". | |||||
| */ | |||||
| WildcardFileFilter (const String& fileWildcardPatterns, | |||||
| const String& directoryWildcardPatterns, | |||||
| const String& description); | |||||
| /** Destructor. */ | |||||
| ~WildcardFileFilter(); | |||||
| //============================================================================== | |||||
| /** Returns true if the filename matches one of the patterns specified. */ | |||||
| bool isFileSuitable (const File& file) const; | |||||
| /** This always returns true. */ | |||||
| bool isDirectorySuitable (const File& file) const; | |||||
| private: | |||||
| //============================================================================== | |||||
| StringArray fileWildcards, directoryWildcards; | |||||
| static void parse (const String& pattern, StringArray& result); | |||||
| static bool match (const File& file, const StringArray& wildcards); | |||||
| JUCE_LEAK_DETECTOR (WildcardFileFilter) | |||||
| }; | |||||
| #endif // JUCE_WILDCARDFILEFILTER_H_INCLUDED | |||||