Play-/Source/ISO9660/File.h
Jean-Philip Desjardins 7aa66f683c Cleanup.
2022-05-10 10:13:26 -04:00

32 lines
713 B
C++

#pragma once
#include "BlockProvider.h"
namespace ISO9660
{
class CFile : public Framework::CStream
{
public:
CFile(CBlockProvider*, uint64);
CFile(CBlockProvider*, uint64, uint64);
~CFile() = default;
void Seek(int64, Framework::STREAM_SEEK_DIRECTION) override;
uint64 Tell() override;
uint64 Read(void*, uint64) override;
uint64 Write(const void*, uint64) override;
bool IsEOF() override;
private:
void InitBlock();
void SyncBlock();
CBlockProvider* m_blockProvider = nullptr;
uint64 m_start = 0;
uint64 m_end = 0;
uint64 m_position = 0;
uint32 m_blockPosition = 0;
uint8 m_block[CBlockProvider::BLOCKSIZE];
bool m_isEof = false;
};
}