Files
tww/src/JSystem/JSupport/JSUMemoryStream.cpp
T
2023-12-27 21:07:21 -08:00

66 lines
1.6 KiB
C++

//
// Generated by dtk
// Translation Unit: JSUMemoryStream.cpp
//
#include "JSystem/JSupport/JSUMemoryStream.h"
#include "string.h"
/* 802BF704-802BF718 .text setBuffer__20JSUMemoryInputStreamFPCvl */
void JSUMemoryInputStream::setBuffer(void const* pBuffer, s32 length) {
mBuffer = pBuffer;
mLength = length;
mPosition = 0;
}
/* 802BF718-802BF790 .text readData__20JSUMemoryInputStreamFPvl */
u32 JSUMemoryInputStream::readData(void* pData, s32 length) {
if (mPosition + length > mLength) {
length = mLength - mPosition;
}
if (length > 0) {
memcpy(pData, (void*)((s32)mBuffer + mPosition), length);
mPosition += length;
}
return length;
}
/* 802BF790-802BF80C .text seekPos__20JSUMemoryInputStreamFl17JSUStreamSeekFrom */
s32 JSUMemoryInputStream::seekPos(s32 pos, JSUStreamSeekFrom seekFrom) {
s32 oldPos = mPosition;
switch (seekFrom) {
case JSUStreamSeekFrom_SET:
mPosition = pos;
break;
case JSUStreamSeekFrom_END:
mPosition = mLength - pos;
break;
case JSUStreamSeekFrom_CUR:
mPosition += pos;
break;
}
if (mPosition < 0) {
mPosition = 0;
}
if (mPosition > mLength) {
mPosition = mLength;
}
return mPosition - oldPos;
}
/* 802BF80C-802BF814 .text getLength__20JSUMemoryInputStreamCFv */
s32 JSUMemoryInputStream::getLength() const {
return mLength;
}
/* 802BF814-802BF81C .text getPosition__20JSUMemoryInputStreamCFv */
s32 JSUMemoryInputStream::getPosition() const {
return mPosition;
}