diff options
Diffstat (limited to 'Source/Core/DiscIO/SplitFileBlob.cpp')
| -rw-r--r-- | Source/Core/DiscIO/SplitFileBlob.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/Source/Core/DiscIO/SplitFileBlob.cpp b/Source/Core/DiscIO/SplitFileBlob.cpp index f3a0895614..4756088a40 100644 --- a/Source/Core/DiscIO/SplitFileBlob.cpp +++ b/Source/Core/DiscIO/SplitFileBlob.cpp @@ -56,6 +56,17 @@ std::unique_ptr<SplitPlainFileReader> SplitPlainFileReader::Create(std::string_v return std::unique_ptr<SplitPlainFileReader>(new SplitPlainFileReader(std::move(files))); } +std::unique_ptr<BlobReader> SplitPlainFileReader::CopyReader() const +{ + std::vector<SingleFile> new_files{}; + for (const SingleFile& file : m_files) + { + new_files.push_back( + {.file = file.file.Duplicate("rb"), .offset = file.offset, .size = file.size}); + } + return std::unique_ptr<SplitPlainFileReader>(new SplitPlainFileReader(std::move(new_files))); +} + bool SplitPlainFileReader::Read(u64 offset, u64 nbytes, u8* out_ptr) { if (offset >= m_size) |
