// // 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; }