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