CISOFileReader* CISOFileReader::Create(const char* filename) { if (IsCISOBlob(filename)) { File::IOFile f(filename, "rb"); return new CISOFileReader(f.ReleaseHandle()); } else return NULL; }
std::unique_ptr<CISOFileReader> CISOFileReader::Create(const std::string& filename) { if (IsCISOBlob(filename)) { File::IOFile f(filename, "rb"); return std::unique_ptr<CISOFileReader>(new CISOFileReader(f.ReleaseHandle())); } return nullptr; }
CISOFileReader* CISOFileReader::Create(const std::string& filename) { if (IsCISOBlob(filename)) { File::IOFile f(filename, "rb"); return new CISOFileReader(f.ReleaseHandle()); } else { return nullptr; } }
IBlobReader* CreateBlobReader(const std::string& filename) { if (cdio_is_cdrom(filename)) return DriveReader::Create(filename); if (!File::Exists(filename)) return nullptr; if (IsWbfsBlob(filename)) return WbfsFileReader::Create(filename); if (IsCompressedBlob(filename)) return CompressedBlobReader::Create(filename); if (IsCISOBlob(filename)) return CISOFileReader::Create(filename); // Still here? Assume plain file - since we know it exists due to the File::Exists check above. return PlainFileReader::Create(filename); }