mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2024-11-15 13:57:57 -07:00
162e3be82b
This is intended to catch WIA files which have been created using wit's default parameters (40 MiB block size), once the WIA PR is merged. The check does however also work for GCZ files – not that I think anyone has a GCZ file with a block size that large.
41 lines
933 B
C++
41 lines
933 B
C++
// Copyright 2008 Dolphin Emulator Project
|
|
// Licensed under GPLv2+
|
|
// Refer to the license.txt file included.
|
|
|
|
#pragma once
|
|
|
|
#include <cstdio>
|
|
#include <memory>
|
|
#include <string>
|
|
|
|
#include "Common/CommonTypes.h"
|
|
#include "Common/File.h"
|
|
#include "DiscIO/Blob.h"
|
|
|
|
namespace DiscIO
|
|
{
|
|
class PlainFileReader : public BlobReader
|
|
{
|
|
public:
|
|
static std::unique_ptr<PlainFileReader> Create(File::IOFile file);
|
|
|
|
BlobType GetBlobType() const override { return BlobType::PLAIN; }
|
|
|
|
u64 GetRawSize() const override { return m_size; }
|
|
u64 GetDataSize() const override { return m_size; }
|
|
bool IsDataSizeAccurate() const override { return true; }
|
|
|
|
u64 GetBlockSize() const override { return 0; }
|
|
bool HasFastRandomAccessInBlock() const override { return true; }
|
|
|
|
bool Read(u64 offset, u64 nbytes, u8* out_ptr) override;
|
|
|
|
private:
|
|
PlainFileReader(File::IOFile file);
|
|
|
|
File::IOFile m_file;
|
|
s64 m_size;
|
|
};
|
|
|
|
} // namespace DiscIO
|