Play-/Source/ISO9660/ISO9660.h

32 lines
775 B
C
Raw Permalink Normal View History

2014-07-12 21:59:58 -04:00
#pragma once
#include <memory>
#include "BlockProvider.h"
#include "VolumeDescriptor.h"
#include "PathTable.h"
#include "DirectoryRecord.h"
class CISO9660
{
public:
typedef std::shared_ptr<ISO9660::CBlockProvider> BlockProviderPtr;
2018-04-30 21:01:23 +01:00
CISO9660(const BlockProviderPtr&);
~CISO9660();
2018-04-30 21:01:23 +01:00
void ReadBlock(uint32, void*);
2018-04-30 21:01:23 +01:00
Framework::CStream* Open(const char*);
Framework::CStream* OpenDirectory(const char*);
2018-04-30 21:01:23 +01:00
bool GetFileRecord(ISO9660::CDirectoryRecord*, const char*);
private:
2018-04-30 21:01:23 +01:00
bool GetFileRecordFromDirectory(ISO9660::CDirectoryRecord*, uint32, const char*);
2018-04-30 21:01:23 +01:00
BlockProviderPtr m_blockProvider;
ISO9660::CVolumeDescriptor m_volumeDescriptor;
ISO9660::CPathTable m_pathTable;
2018-04-30 21:01:23 +01:00
uint8 m_blockBuffer[ISO9660::CBlockProvider::BLOCKSIZE];
};