RageSurface *RageSurfaceUtils::LoadFile( const RString &sPath, RString &error, bool bHeaderOnly ) { { RageFile TestOpen; if( !TestOpen.Open( sPath ) ) { error = TestOpen.GetError(); return NULL; } } set<RString> FileTypes; vector<RString> const& exts= ActorUtil::GetTypeExtensionList(FT_Bitmap); for(vector<RString>::const_iterator curr= exts.begin(); curr != exts.end(); ++curr) { FileTypes.insert(*curr); } RString format = GetExtension(sPath); format.MakeLower(); bool bKeepTrying = true; /* If the extension matches a format, try that first. */ if( FileTypes.find(format) != FileTypes.end() ) { RageSurface *ret = TryOpenFile( sPath, bHeaderOnly, error, format, bKeepTrying ); if( ret ) return ret; FileTypes.erase( format ); } for( set<RString>::iterator it = FileTypes.begin(); bKeepTrying && it != FileTypes.end(); ++it ) { RageSurface *ret = TryOpenFile( sPath, bHeaderOnly, error, *it, bKeepTrying ); if( ret ) { LOG->UserLog( "Graphic file", sPath, "is really %s", it->c_str() ); return ret; } } return NULL; }
SoundReader *SoundReader_FileReader::OpenFile( CString filename, CString &error ) { { RageFile TestOpen; if( !TestOpen.Open( filename ) ) { error = TestOpen.GetError(); return NULL; } } set<CString> FileTypes; FileTypes.insert("ogg"); FileTypes.insert("mp3"); FileTypes.insert("wav"); CString format = GetExtension(filename); format.MakeLower(); error = ""; bool bKeepTrying = true; /* If the extension matches a format, try that first. */ if( FileTypes.find(format) != FileTypes.end() ) { SoundReader_FileReader *NewSample = TryOpenFile( filename, error, format, bKeepTrying ); if( NewSample ) return NewSample; FileTypes.erase( format ); } for( set<CString>::iterator it = FileTypes.begin(); bKeepTrying && it != FileTypes.end(); ++it ) { SoundReader_FileReader *NewSample = TryOpenFile( filename, error, *it, bKeepTrying ); if( NewSample ) { LOG->Warn("File \"%s\" is really %s", filename.c_str(), it->c_str()); return NewSample; } } return NULL; }
Surface* SurfaceUtils::LoadFile(const std::string &file) { Surface* image = TryOpenFile(file); if (image) { return image; } return NULL; }