Play-/Source/ISO9660/File.h

33 lines
703 B
C
Raw 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);
~CFile();
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;
};
}