File *FileRef::create(const char *fileName, bool readAudioProperties,
AudioProperties::ReadStyle audioPropertiesStyle) // static
{
+
+ List<const FileTypeResolver *>::ConstIterator it = FileRefPrivate::fileTypeResolvers.begin();
+
+ for(; it != FileRefPrivate::fileTypeResolvers.end(); ++it) {
+ File *file = (*it)->createFile(fileName, readAudioProperties, audioPropertiesStyle);
+ if(file)
+ return file;
+ }
+
// Ok, this is really dumb for now, but it works for testing.
String s = fileName;
return new FLAC::File(fileName, readAudioProperties, audioPropertiesStyle);
if(s.substr(s.size() - 4, 4).upper() == ".MPC")
return new MPC::File(fileName, readAudioProperties, audioPropertiesStyle);
- }
+ }
return 0;
}
* deleted. Deletion will happen automatically when the FileRef passes
* out of scope.
*/
- virtual File *createFile(const char *fileName) = 0;
+ virtual File *createFile(const char *fileName,
+ bool readAudioProperties = true,
+ AudioProperties::ReadStyle
+ audioPropertiesStyle = AudioProperties::Average) const = 0;
};
FileRef();