Play-/Source/ISO9660/File.h

33 lines
713 B
C
Raw Permalink Normal View History

2014-07-12 21:59:58 -04:00
#pragma once
#include "BlockProvider.h"
namespace ISO9660
{
class CFile : public Framework::CStream
{
public:
2018-04-30 21:01:23 +01:00
CFile(CBlockProvider*, uint64);
CFile(CBlockProvider*, uint64, uint64);
2022-05-05 13:17:27 -04:00
~CFile() = default;
2018-04-30 21:01:23 +01:00
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:
2018-04-30 21:01:23 +01:00
void InitBlock();
void SyncBlock();
2018-04-30 21:01:23 +01:00
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;
};
}