summaryrefslogtreecommitdiff
path: root/Source/Core/DiscIO/FileBlob.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Core/DiscIO/FileBlob.cpp')
-rw-r--r--Source/Core/DiscIO/FileBlob.cpp24
1 files changed, 8 insertions, 16 deletions
diff --git a/Source/Core/DiscIO/FileBlob.cpp b/Source/Core/DiscIO/FileBlob.cpp
index 9ba572ea77..3a30e2a255 100644
--- a/Source/Core/DiscIO/FileBlob.cpp
+++ b/Source/Core/DiscIO/FileBlob.cpp
@@ -15,14 +15,14 @@
namespace DiscIO
{
-PlainFileReader::PlainFileReader(File::IOFile file) : m_file(std::move(file))
+PlainFileReader::PlainFileReader(File::DirectIOFile file) : m_file(std::move(file))
{
m_size = m_file.GetSize();
}
-std::unique_ptr<PlainFileReader> PlainFileReader::Create(File::IOFile file)
+std::unique_ptr<PlainFileReader> PlainFileReader::Create(File::DirectIOFile file)
{
- if (file)
+ if (file.IsOpen())
return std::unique_ptr<PlainFileReader>(new PlainFileReader(std::move(file)));
return nullptr;
@@ -30,20 +30,12 @@ std::unique_ptr<PlainFileReader> PlainFileReader::Create(File::IOFile file)
std::unique_ptr<BlobReader> PlainFileReader::CopyReader() const
{
- return Create(m_file.Duplicate("rb"));
+ return Create(m_file);
}
bool PlainFileReader::Read(u64 offset, u64 nbytes, u8* out_ptr)
{
- if (m_file.Seek(offset, File::SeekOrigin::Begin) && m_file.ReadBytes(out_ptr, nbytes))
- {
- return true;
- }
- else
- {
- m_file.ClearError();
- return false;
- }
+ return m_file.OffsetRead(offset, out_ptr, nbytes);
}
bool ConvertToPlain(BlobReader* infile, const std::string& infile_path,
@@ -51,8 +43,8 @@ bool ConvertToPlain(BlobReader* infile, const std::string& infile_path,
{
ASSERT(infile->GetDataSizeType() == DataSizeType::Accurate);
- File::IOFile outfile(outfile_path, "wb");
- if (!outfile)
+ File::DirectIOFile outfile(outfile_path, File::AccessMode::Write);
+ if (!outfile.IsOpen())
{
PanicAlertFmtT(
"Failed to open the output file \"{0}\".\n"
@@ -99,7 +91,7 @@ bool ConvertToPlain(BlobReader* infile, const std::string& infile_path,
success = false;
break;
}
- if (!outfile.WriteBytes(buffer.data(), sz))
+ if (!outfile.Write(buffer.data(), sz))
{
PanicAlertFmtT("Failed to write the output file \"{0}\".\n"
"Check that you have enough space available on the target drive.",