XPlor/libs/xassets/xrawfile.cpp

94 lines
1.4 KiB
C++
Raw Normal View History

2025-08-14 17:30:25 -04:00
#include "xrawfile.h"
XRawFile::XRawFile()
: XAsset()
, mName(new XString())
, mLength(0)
, mBuffer()
{
2025-09-05 18:35:17 -04:00
SetType(ASSET_TYPE_RAWFILE);
SetName("Raw File");
2025-08-14 17:30:25 -04:00
}
XRawFile::~XRawFile()
{
delete mName;
}
void XRawFile::SetName(XString* aName)
{
if (aName == nullptr)
{
return;
}
mName = aName;
}
void XRawFile::SetName(const QString& aName)
{
if (mName == nullptr)
{
mName = new XString();
}
mName->SetString(aName);
}
XString* XRawFile::Name() const
{
return mName;
}
void XRawFile::SetLength(int aLength)
{
mBuffer = mBuffer.chopped(aLength);
mLength = aLength;
}
int XRawFile::Length() const
{
return mLength;
}
void XRawFile::SetBuffer(const QByteArray& aBuffer)
{
mBuffer = aBuffer;
mLength = mBuffer.length();
}
QByteArray XRawFile::Buffer() const
{
return mBuffer;
}
void XRawFile::Clear()
{
mName->Clear();
mLength = 0;
mBuffer = QByteArray();
XAsset::Clear();
}
void XRawFile::ParseData(QDataStream *aStream)
{
mName->ParsePtr(aStream, false);
qint32 bufferPtr;
*aStream
>> mLength
>> bufferPtr;
if (mName == nullptr)
{
mName = new XString();
}
mName->ParseData(aStream);
if (bufferPtr)
{
mBuffer = QByteArray(mLength + 1, Qt::Uninitialized);
aStream->readRawData(mBuffer.data(), mLength + 1);
}
}