mirror of https://github.com/zeldaret/tp.git
76 lines
2.1 KiB
C++
76 lines
2.1 KiB
C++
//
|
|
// Generated By: dol2asm
|
|
// Translation Unit: JSUFileStream
|
|
//
|
|
|
|
#include "JSystem/JSupport/JSUFileStream.h"
|
|
#include "dol2asm.h"
|
|
#include "dolphin/types.h"
|
|
|
|
//
|
|
// Declarations:
|
|
//
|
|
|
|
/* 802DC638-802DC67C 2D6F78 0044+00 0/0 1/1 0/0 .text __ct__18JSUFileInputStreamFP7JKRFile */
|
|
JSUFileInputStream::JSUFileInputStream(JKRFile* pFile) {
|
|
mFile = pFile;
|
|
mPosition = 0;
|
|
}
|
|
|
|
/* 802DC67C-802DC74C 2D6FBC 00D0+00 1/0 0/0 0/0 .text readData__18JSUFileInputStreamFPvl
|
|
*/
|
|
u32 JSUFileInputStream::readData(void* pBuffer, s32 length) {
|
|
s32 lenRead = 0;
|
|
if (mFile->isAvailable()) {
|
|
// TODO: the function probably returns u32
|
|
// there are probably more functions that return u32 instead of s32
|
|
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;
|
|
}
|
|
|
|
/* 802DC74C-802DC82C 2D708C 00E0+00 1/0 0/0 0/0 .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;
|
|
}
|
|
|
|
/* 802DC82C-802DC85C 2D716C 0030+00 1/0 0/0 0/0 .text getLength__18JSUFileInputStreamCFv
|
|
*/
|
|
s32 JSUFileInputStream::getLength() const {
|
|
return mFile->getFileSize();
|
|
}
|
|
|
|
/* 802DC85C-802DC864 2D719C 0008+00 1/0 0/0 0/0 .text getPosition__18JSUFileInputStreamCFv */
|
|
s32 JSUFileInputStream::getPosition() const {
|
|
return mPosition;
|
|
}
|