merge cuyler's PR

This commit is contained in:
Prakxo
2023-03-13 07:15:03 +00:00
parent cf13cc2139
commit 3dd5dbcf59
48 changed files with 3102 additions and 215 deletions
@@ -0,0 +1,27 @@
#ifndef JSUFILEINPUTSTREAM_H
#define JSUFILEINPUTSTREAM_H
#include "types.h"
#include "JSystem/JKernel/JKRFile.h"
#include "JSystem/JSupport/JSURandomInputStream.h"
class JSUFileInputStream : public JSURandomInputStream {
public:
JSUFileInputStream(JKRFile* file);
virtual ~JSUFileInputStream() { }
virtual int readData(void* buf, s32 len);
virtual int getLength() const { return ((JKRFile*)this->mObject)->getFileSize(); }
virtual int getPosition() const { return this->mPosition; }
virtual int seekPos(s32 offset, JSUStreamSeekFrom from);
/* These two functions are shown in the symbol map, but are unused. */
// bool open(const char* path);
// bool close();
protected:
const void* mObject;
s32 mPosition;
};
#endif
+110
View File
@@ -0,0 +1,110 @@
#ifndef JSUINPUTSTREAM_H
#define JSUINPUTSTREAM_H
#include "types.h"
#include "JSystem/JSupport/JSUIosBase.h"
class JSUInputStream : public JSUIosBase {
public:
virtual ~JSUInputStream();
virtual int getAvailable() const = 0;
virtual int skip(s32 amount);
virtual int readData(void* buf, s32 size) = 0;
int read(void* buf, s32 size);
char* read(char* buf);
char* readString();
char* readString(char* buf, u16 len);
int read(s8& p) { return this->read(&p, sizeof(s8)); } /* @fabricated */
int read(u8& p) { return this->read(&p, sizeof(u8)); }
int read(bool& p) { return this->read(&p, sizeof(bool)); }
int read(s16& p) { return this->read(&p, sizeof(s16)); } /* @fabricated */
int read(u16& p) { return this->read(&p, sizeof(u16)); } /* @fabricated */
int read(s32& p) { return this->read(&p, sizeof(s32)); } /* @fabricated */
int read(u32& p) { return this->read(&p, sizeof(u32)); }
int read(s64& p) { return this->read(&p, sizeof(s64)); } /* @fabricated */
int read(u64& p) { return this->read(&p, sizeof(u64)); } /* @fabricated */
u8 read8b() {
u8 b;
this->read(&b, sizeof(u8));
return b;
}
u16 read16b() {
u16 s;
this->read(&s, sizeof(u16));
return s;
}
u32 read32b() {
u32 i;
this->read(&i, sizeof(u32));
return i;
}
/* @fabricated */
s8 readS8() {
s8 b;
this->read(&b, sizeof(s8));
return b;
}
u8 readU8() {
u8 b;
this->read(&b, sizeof(u8));
return b;
}
s16 readS16() {
s16 s;
this->read(&s, sizeof(s16));
return s;
}
u16 readU16() {
u16 s;
this->read(&s, sizeof(u16));
return s;
}
s32 readS32() {
s32 i;
this->read(&i, sizeof(s32));
return i;
}
u32 readU32() {
u32 i;
this->read(&i, sizeof(u32));
return i;
}
JSUInputStream& operator>>(s8& p) {
this->read(&p, sizeof(s8));
return *this;
}
JSUInputStream& operator>>(u8& p) {
this->read(&p, sizeof(u8));
return *this;
}
JSUInputStream& operator>>(s16& p) {
this->read(&p, sizeof(s16));
return *this;
}
JSUInputStream& operator>>(u16& p) {
this->read(&p, sizeof(u16));
return *this;
}
JSUInputStream& operator>>(u32& p) {
this->read(&p, sizeof(u32));
return *this;
}
};
#endif
+21
View File
@@ -0,0 +1,21 @@
#ifndef JSUIOSBASE_H
#define JSUIOSBASE_H
#include "types.h"
#include "JSystem/JSupport/JSUStreamEnum.h"
class JSUIosBase {
public:
inline JSUIosBase() : mState(GOOD) { }
virtual ~JSUIosBase() { }
bool isGood() { return !this->mState; }
void clrState(EIoState ioState) { this->mState &= ~ioState; }
void setState(EIoState ioState) { this->mState |= ioState; }
u8 mState;
};
#endif
@@ -0,0 +1,24 @@
#ifndef JSURANDOMINPUTSTREAM_H
#define JSURANDOMINPUTSTREAM_H
#include "types.h"
#include "JSystem/JKernel/JKRFile.h"
#include "JSystem/JSupport/JSUInputStream.h"
class JSURandomInputStream : public JSUInputStream {
public:
virtual ~JSURandomInputStream() { }
virtual int getAvailable() const { return this->getLength() - this->getPosition(); }
virtual int skip(s32 amount);
virtual int readData(void* buf, s32 count) = 0;
virtual int getLength() const = 0;
virtual int getPosition() const = 0;
virtual int seekPos(s32 offset, JSUStreamSeekFrom from) = 0;
int align(s32 alignment);
int peek(void* buf, s32 len);
int seek(s32 offset, JSUStreamSeekFrom from);
};
#endif
+10
View File
@@ -0,0 +1,10 @@
#ifndef JSUSTREAM_H
#define JSUSTREAM_H
#include "JSystem/JSupport/JSUStreamEnum.h"
#include "JSystem/JSupport/JSUIosBase.h"
#include "JSystem/JSupport/JSUInputStream.h"
#include "JSystem/JSupport/JSURandomInputStream.h"
#include "JSystem/JSupport/JSUFileInputStream.h"
#endif
+15
View File
@@ -0,0 +1,15 @@
#ifndef JSUSTREAMENUM_H
#define JSUSTREAMENUM_H
enum JSUStreamSeekFrom {
SEEK_SET = 0,
SEEK_CUR = 1,
SEEK_END = 2
};
enum EIoState {
GOOD = 0,
EOF = 1
};
#endif