mirror of
https://github.com/zeldaret/tww.git
synced 2026-07-08 21:54:50 -04:00
66 lines
1.6 KiB
C++
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;
|
|
}
|