mirror of
https://github.com/zeldaret/tww.git
synced 2026-08-19 21:33:07 -04:00
@@ -0,0 +1,71 @@
|
||||
//
|
||||
// Generated by dtk
|
||||
// Translation Unit: JSUFileStream.cpp
|
||||
//
|
||||
|
||||
#include "JSystem/JSupport/JSUFileStream.h"
|
||||
#include "JSystem/JKernel/JKRFile.h"
|
||||
|
||||
/* 802BF81C-802BF860 .text __ct__18JSUFileInputStreamFP7JKRFile */
|
||||
JSUFileInputStream::JSUFileInputStream(JKRFile* pFile) {
|
||||
mFile = pFile;
|
||||
mPosition = 0;
|
||||
}
|
||||
|
||||
/* 802BF860-802BF930 .text readData__18JSUFileInputStreamFPvl */
|
||||
u32 JSUFileInputStream::readData(void* pBuffer, s32 length) {
|
||||
s32 lenRead = 0;
|
||||
if (mFile->isAvailable()) {
|
||||
if (mPosition + length > (u32)mFile->getFileSize()) {
|
||||
length = mFile->getFileSize() - mPosition;
|
||||
}
|
||||
|
||||
if (length > 0) {
|
||||
lenRead = mFile->readData(pBuffer, length, mPosition);
|
||||
if (lenRead < 0) {
|
||||
return 0;
|
||||
} else {
|
||||
mPosition += lenRead;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return lenRead;
|
||||
}
|
||||
|
||||
/* 802BF930-802BFA10 .text seekPos__18JSUFileInputStreamFl17JSUStreamSeekFrom */
|
||||
s32 JSUFileInputStream::seekPos(s32 pos, JSUStreamSeekFrom seekFrom) {
|
||||
s32 oldPos = mPosition;
|
||||
|
||||
switch (seekFrom) {
|
||||
case JSUStreamSeekFrom_SET:
|
||||
mPosition = pos;
|
||||
break;
|
||||
case JSUStreamSeekFrom_END:
|
||||
mPosition = mFile->getFileSize() - pos;
|
||||
break;
|
||||
case JSUStreamSeekFrom_CUR:
|
||||
mPosition += pos;
|
||||
break;
|
||||
}
|
||||
|
||||
if (mPosition < 0) {
|
||||
mPosition = 0;
|
||||
}
|
||||
|
||||
if (mPosition > mFile->getFileSize()) {
|
||||
mPosition = mFile->getFileSize();
|
||||
}
|
||||
|
||||
return mPosition - oldPos;
|
||||
}
|
||||
|
||||
/* 802BFA10-802BFA40 .text getLength__18JSUFileInputStreamCFv */
|
||||
s32 JSUFileInputStream::getLength() const {
|
||||
return mFile->getFileSize();
|
||||
}
|
||||
|
||||
/* 802BFA40-802BFA48 .text getPosition__18JSUFileInputStreamCFv */
|
||||
s32 JSUFileInputStream::getPosition() const {
|
||||
return mPosition;
|
||||
}
|
||||
@@ -0,0 +1,76 @@
|
||||
//
|
||||
// Generated by dtk
|
||||
// Translation Unit: JSUInputStream.cpp
|
||||
//
|
||||
|
||||
#include "JSystem/JSupport/JSUInputStream.h"
|
||||
#include "JSystem/JSupport/JSURandomInputStream.h"
|
||||
|
||||
/* 802BF3F4-802BF47C .text __dt__14JSUInputStreamFv */
|
||||
JSUInputStream::~JSUInputStream() {
|
||||
}
|
||||
|
||||
/* 802BF47C-802BF4D4 .text read__14JSUInputStreamFPvl */
|
||||
s32 JSUInputStream::read(void* buffer, s32 numBytes) {
|
||||
s32 bytesRead = readData(buffer, numBytes);
|
||||
if (bytesRead != numBytes) {
|
||||
setState(IOS_STATE_1);
|
||||
}
|
||||
return bytesRead;
|
||||
}
|
||||
|
||||
/* 802BF4D4-802BF554 .text skip__14JSUInputStreamFl */
|
||||
s32 JSUInputStream::skip(s32 count) {
|
||||
s32 skipCount = 0;
|
||||
u8 buffer[1];
|
||||
while (count > skipCount) {
|
||||
if (readData(&buffer, 1) != 1) {
|
||||
setState(IOS_STATE_1);
|
||||
break;
|
||||
}
|
||||
skipCount++;
|
||||
}
|
||||
return skipCount;
|
||||
}
|
||||
|
||||
/* 802BF554-802BF5E0 .text align__20JSURandomInputStreamFl */
|
||||
s32 JSURandomInputStream::align(s32 alignment) {
|
||||
s32 currentPos = getPosition();
|
||||
s32 offset = (alignment + currentPos);
|
||||
offset -= 1;
|
||||
offset &= ~(alignment - 1);
|
||||
s32 alignmentOffset = offset - currentPos;
|
||||
if (alignmentOffset != 0) {
|
||||
s32 seekLen = seekPos(offset, JSUStreamSeekFrom_SET);
|
||||
if (seekLen != alignmentOffset) {
|
||||
setState(IOS_STATE_1);
|
||||
}
|
||||
}
|
||||
return alignmentOffset;
|
||||
}
|
||||
|
||||
/* 802BF5E0-802BF63C .text skip__20JSURandomInputStreamFl */
|
||||
s32 JSURandomInputStream::skip(s32 param_0) {
|
||||
s32 val = seekPos(param_0, JSUStreamSeekFrom_CUR);
|
||||
if (val != param_0) {
|
||||
setState(IOS_STATE_1);
|
||||
}
|
||||
return val;
|
||||
}
|
||||
|
||||
/* 802BF63C-802BF6C0 .text peek__20JSURandomInputStreamFPvl */
|
||||
s32 JSURandomInputStream::peek(void* buffer, s32 numBytes) {
|
||||
s32 oldPos = getPosition();
|
||||
s32 bytesRead = read(buffer, numBytes);
|
||||
if (bytesRead != 0) {
|
||||
seekPos(oldPos, JSUStreamSeekFrom_SET);
|
||||
}
|
||||
return bytesRead;
|
||||
}
|
||||
|
||||
/* 802BF6C0-802BF704 .text seek__20JSURandomInputStreamFl17JSUStreamSeekFrom */
|
||||
s32 JSURandomInputStream::seek(s32 param_0, JSUStreamSeekFrom param_1) {
|
||||
s32 seekResult = seekPos(param_0, param_1);
|
||||
clrState(IOS_STATE_1);
|
||||
return seekResult;
|
||||
}
|
||||
@@ -0,0 +1,159 @@
|
||||
//
|
||||
// Generated by dtk
|
||||
// Translation Unit: JSUList.cpp
|
||||
//
|
||||
|
||||
#include "JSystem/JSupport/JSUList.h"
|
||||
|
||||
/* 802BEFE4-802BEFFC .text __ct__10JSUPtrLinkFPv */
|
||||
JSUPtrLink::JSUPtrLink(void* object) {
|
||||
mList = NULL;
|
||||
mObject = object;
|
||||
mPrev = NULL;
|
||||
mNext = NULL;
|
||||
}
|
||||
|
||||
/* 802BEFFC-802BF05C .text __dt__10JSUPtrLinkFv */
|
||||
JSUPtrLink::~JSUPtrLink() {
|
||||
if (mList != NULL) {
|
||||
mList->remove(this);
|
||||
}
|
||||
}
|
||||
|
||||
/* 802BF05C-802BF094 .text __ct__10JSUPtrListFb */
|
||||
JSUPtrList::JSUPtrList(bool init) {
|
||||
if (init) {
|
||||
initiate();
|
||||
}
|
||||
}
|
||||
|
||||
/* 802BF094-802BF0FC .text __dt__10JSUPtrListFv */
|
||||
JSUPtrList::~JSUPtrList() {
|
||||
JSUPtrLink* node = mHead;
|
||||
s32 removed = 0;
|
||||
while (mLength > removed) {
|
||||
node->mList = NULL;
|
||||
node = node->getNext();
|
||||
removed += 1;
|
||||
}
|
||||
}
|
||||
|
||||
/* 802BF0FC-802BF110 .text initiate__10JSUPtrListFv */
|
||||
void JSUPtrList::initiate() {
|
||||
mHead = NULL;
|
||||
mTail = NULL;
|
||||
mLength = 0;
|
||||
}
|
||||
|
||||
/* 802BF110-802BF134 .text setFirst__10JSUPtrListFP10JSUPtrLink */
|
||||
void JSUPtrList::setFirst(JSUPtrLink* first) {
|
||||
first->mList = this;
|
||||
first->mPrev = NULL;
|
||||
first->mNext = NULL;
|
||||
mTail = first;
|
||||
mHead = first;
|
||||
mLength = 1;
|
||||
}
|
||||
|
||||
/* 802BF134-802BF1D8 .text append__10JSUPtrListFP10JSUPtrLink */
|
||||
bool JSUPtrList::append(JSUPtrLink* ptr) {
|
||||
JSUPtrList* list = ptr->mList;
|
||||
bool result = (NULL == list);
|
||||
if (!result) {
|
||||
result = list->remove(ptr);
|
||||
}
|
||||
|
||||
if (result) {
|
||||
if (mLength == 0) {
|
||||
setFirst(ptr);
|
||||
} else {
|
||||
ptr->mList = this;
|
||||
ptr->mPrev = mTail;
|
||||
ptr->mNext = NULL;
|
||||
mTail->mNext = ptr;
|
||||
mTail = ptr;
|
||||
mLength++;
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/* 802BF1D8-802BF27C .text prepend__10JSUPtrListFP10JSUPtrLink */
|
||||
bool JSUPtrList::prepend(JSUPtrLink* ptr) {
|
||||
JSUPtrList* list = ptr->mList;
|
||||
bool result = (NULL == list);
|
||||
if (!result) {
|
||||
result = list->remove(ptr);
|
||||
}
|
||||
|
||||
if (result) {
|
||||
if (mLength == 0) {
|
||||
setFirst(ptr);
|
||||
} else {
|
||||
ptr->mList = this;
|
||||
ptr->mPrev = NULL;
|
||||
ptr->mNext = mHead;
|
||||
mHead->mPrev = ptr;
|
||||
mHead = ptr;
|
||||
mLength++;
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/* 802BF27C-802BF344 .text insert__10JSUPtrListFP10JSUPtrLinkP10JSUPtrLink */
|
||||
bool JSUPtrList::insert(JSUPtrLink* before, JSUPtrLink* ptr) {
|
||||
if (before == mHead) {
|
||||
return prepend(ptr);
|
||||
} else if (before == NULL) {
|
||||
return append(ptr);
|
||||
}
|
||||
|
||||
if (before->mList != this) {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool result = (NULL == ptr->mList);
|
||||
if (!result) {
|
||||
result = ptr->mList->remove(ptr);
|
||||
}
|
||||
|
||||
if (result) {
|
||||
JSUPtrLink* prev = before->mPrev;
|
||||
ptr->mList = this;
|
||||
ptr->mPrev = prev;
|
||||
ptr->mNext = before;
|
||||
prev->mNext = ptr;
|
||||
before->mPrev = ptr;
|
||||
mLength++;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/* 802BF344-802BF3F4 .text remove__10JSUPtrListFP10JSUPtrLink */
|
||||
bool JSUPtrList::remove(JSUPtrLink* ptr) {
|
||||
bool is_parent = (ptr->mList == this);
|
||||
if (is_parent) {
|
||||
if (mLength == 1) {
|
||||
mHead = NULL;
|
||||
mTail = NULL;
|
||||
} else if (ptr == mHead) {
|
||||
ptr->mNext->mPrev = NULL;
|
||||
mHead = ptr->mNext;
|
||||
} else if (ptr == mTail) {
|
||||
ptr->mPrev->mNext = NULL;
|
||||
mTail = ptr->mPrev;
|
||||
} else {
|
||||
ptr->mPrev->mNext = ptr->mNext;
|
||||
ptr->mNext->mPrev = ptr->mPrev;
|
||||
}
|
||||
|
||||
ptr->mList = NULL;
|
||||
mLength--;
|
||||
}
|
||||
|
||||
return is_parent;
|
||||
}
|
||||
@@ -0,0 +1,65 @@
|
||||
//
|
||||
// Generated by dtk
|
||||
// Translation Unit: JSUMemoryStream.cpp
|
||||
//
|
||||
|
||||
#include "JSystem/JSupport/JSUMemoryStream.h"
|
||||
#include "MSL_c/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;
|
||||
}
|
||||
Reference in New Issue
Block a user