Play-/Source/ISO9660/DirectoryRecord.cpp

61 lines
1.2 KiB
C++
Raw Permalink Normal View History

2015-07-31 14:06:45 -04:00
#include <string.h>
#include "DirectoryRecord.h"
using namespace ISO9660;
CDirectoryRecord::CDirectoryRecord()
{
2014-07-12 21:59:58 -04:00
memset(&m_name, 0, sizeof(m_name));
}
2014-07-12 21:59:58 -04:00
CDirectoryRecord::CDirectoryRecord(Framework::CStream* stream)
{
2014-07-12 21:59:58 -04:00
m_length = stream->Read8();
m_exLength = stream->Read8();
m_position = stream->Read32();
stream->Seek(4, Framework::STREAM_SEEK_CUR);
m_dataLength = stream->Read32();
stream->Seek(4, Framework::STREAM_SEEK_CUR);
stream->Seek(7, Framework::STREAM_SEEK_CUR);
m_flags = stream->Read8();
stream->Seek(6, Framework::STREAM_SEEK_CUR);
uint8 nameSize = stream->Read8();
stream->Read(m_name, nameSize);
m_name[nameSize] = 0x00;
2014-07-12 21:59:58 -04:00
int skipAmount = m_length - (0x21 + nameSize);
if(skipAmount > 0)
{
stream->Seek(skipAmount, Framework::STREAM_SEEK_CUR);
}
}
CDirectoryRecord::~CDirectoryRecord()
{
}
uint8 CDirectoryRecord::GetLength() const
{
2014-07-12 21:59:58 -04:00
return m_length;
}
bool CDirectoryRecord::IsDirectory() const
{
2014-07-12 21:59:58 -04:00
return (m_flags & 0x02) != 0;
}
const char* CDirectoryRecord::GetName() const
{
2014-07-12 21:59:58 -04:00
return m_name;
}
uint32 CDirectoryRecord::GetPosition() const
{
2014-07-12 21:59:58 -04:00
return m_position;
}
uint32 CDirectoryRecord::GetDataLength() const
{
2014-07-12 21:59:58 -04:00
return m_dataLength;
}