@@ -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 ())
0 commit comments