Skip to content

Commit dc157b8

Browse files
committed
Update FileReader::getSupportedExtensions()
1 parent dbad2e6 commit dc157b8

2 files changed

Lines changed: 29 additions & 27 deletions

File tree

Source/Processors/FileReader/FileReader.cpp

Lines changed: 28 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -61,31 +61,6 @@ FileReader::FileReader() : GenericProcessor ("File Reader"),
6161
defaultFile = File::getSpecialLocation (File::currentApplicationFile).getParentDirectory().getChildFile ("resources").getChildFile ("structure.oebin");
6262
#endif
6363

64-
/* Add built-in file source (Binary Format) */
65-
supportedExtensions.set ("oebin", 1);
66-
67-
/* Load any plugin file sources */
68-
const int numFileSources = AccessClass::getPluginManager()->getNumFileSources();
69-
70-
LOGD ("Found ", numFileSources, " File Source plugins.");
71-
72-
for (int i = 0; i < numFileSources; ++i)
73-
{
74-
Plugin::FileSourceInfo info = AccessClass::getPluginManager()->getFileSourceInfo (i);
75-
76-
LOGD ("Plugin ", i + 1, ": ", info.name, " (", info.extensions, ")");
77-
78-
StringArray extensions;
79-
extensions.addTokens (info.extensions, ";", "\"");
80-
81-
const int numExtensions = extensions.size();
82-
83-
for (int j = 0; j < numExtensions; ++j)
84-
{
85-
supportedExtensions.set (extensions[j].toLowerCase(), i + 2);
86-
}
87-
}
88-
8964
/* Create a File Reader device */
9065
DeviceInfo::Settings settings {
9166
"File Reader",
@@ -847,8 +822,35 @@ void FileReader::readAndFillBufferCache (HeapBlock<float>& cacheBuffer)
847822
}
848823
}
849824

850-
StringArray FileReader::getSupportedExtensions() const
825+
StringArray FileReader::getSupportedExtensions()
851826
{
827+
if (supportedExtensions.size() == 0)
828+
{
829+
/* Add built-in file source (Binary Format) */
830+
supportedExtensions.set ("oebin", 1);
831+
832+
/* Load any plugin file sources */
833+
const int numFileSources = AccessClass::getPluginManager()->getNumFileSources();
834+
835+
LOGD ("Found ", numFileSources, " File Source plugins.");
836+
837+
for (int i = 0; i < numFileSources; ++i)
838+
{
839+
Plugin::FileSourceInfo info = AccessClass::getPluginManager()->getFileSourceInfo (i);
840+
841+
LOGD ("Plugin ", i + 1, ": ", info.name, " (", info.extensions, ")");
842+
843+
StringArray extensions;
844+
extensions.addTokens (info.extensions, ";", "\"");
845+
846+
const int numExtensions = extensions.size();
847+
848+
for (int j = 0; j < numExtensions; ++j)
849+
{
850+
supportedExtensions.set (extensions[j].toLowerCase(), i + 2);
851+
}
852+
}
853+
}
852854
StringArray extensions;
853855
HashMap<String, int>::Iterator i (supportedExtensions);
854856
while (i.next())

Source/Processors/FileReader/FileReader.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ class FileReader : public GenericProcessor,
118118
bool isFileSupported (const String& filename) const;
119119

120120
/* Returns a list of file formats supported by the GUI */
121-
StringArray getSupportedExtensions() const;
121+
StringArray getSupportedExtensions();
122122

123123
/** Sets the current stream to read data from */
124124
void setActiveStream (int index, bool resetPlayback = false);

0 commit comments

Comments
 (0)