diff options
Diffstat (limited to 'Source/Core/DiscIO/NFSBlob.cpp')
| -rw-r--r-- | Source/Core/DiscIO/NFSBlob.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/Source/Core/DiscIO/NFSBlob.cpp b/Source/Core/DiscIO/NFSBlob.cpp index 3960fff75e..4b33596802 100644 --- a/Source/Core/DiscIO/NFSBlob.cpp +++ b/Source/Core/DiscIO/NFSBlob.cpp @@ -160,11 +160,20 @@ std::unique_ptr<NFSFileReader> NFSFileReader::Create(File::IOFile first_file, NFSFileReader::NFSFileReader(std::vector<NFSLBARange> lba_ranges, std::vector<File::IOFile> files, Key key, u64 raw_size) : m_lba_ranges(std::move(lba_ranges)), m_files(std::move(files)), - m_aes_context(Common::AES::CreateContextDecrypt(key.data())), m_raw_size(raw_size) + m_aes_context(Common::AES::CreateContextDecrypt(key.data())), m_raw_size(raw_size), m_key(key) { m_data_size = CalculateExpectedDataSize(m_lba_ranges); } +std::unique_ptr<BlobReader> NFSFileReader::CopyReader() const +{ + std::vector<File::IOFile> new_files{}; + for (const File::IOFile& file : m_files) + new_files.push_back(file.Duplicate("rb")); + return std::unique_ptr<NFSFileReader>( + new NFSFileReader(m_lba_ranges, std::move(new_files), m_key, m_raw_size)); +} + u64 NFSFileReader::GetDataSize() const { return m_data_size; |
