mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-07-08 20:24:47 -04:00
most of JHostIO / m_Do_hostIO done (#2288)
This commit is contained in:
@@ -3,12 +3,6 @@
|
||||
|
||||
#include "JSystem/JSupport/JSUIosBase.h"
|
||||
|
||||
enum JSUStreamSeekFrom {
|
||||
JSUStreamSeekFrom_SET = 0, // absolute
|
||||
JSUStreamSeekFrom_CUR = 1, // relative
|
||||
JSUStreamSeekFrom_END = 2, // relative to end
|
||||
};
|
||||
|
||||
/**
|
||||
* @ingroup jsystem-jsupport
|
||||
*
|
||||
@@ -70,18 +64,38 @@ public:
|
||||
return val;
|
||||
}
|
||||
|
||||
JSUInputStream* operator>>(u8& dest) {
|
||||
read(&dest, 1);
|
||||
return this;
|
||||
JSUInputStream& operator>>(u32& dest) {
|
||||
read(&dest, 4);
|
||||
return *this;
|
||||
}
|
||||
|
||||
JSUInputStream* operator>>(s16& dest) {
|
||||
JSUInputStream& operator>>(u16& dest) {
|
||||
read(&dest, 2);
|
||||
return this;
|
||||
return *this;
|
||||
}
|
||||
|
||||
JSUInputStream& operator>>(u8& dest) {
|
||||
read(&dest, 1);
|
||||
return *this;
|
||||
}
|
||||
|
||||
JSUInputStream& operator>>(s16& dest) {
|
||||
read(&dest, 2);
|
||||
return *this;
|
||||
}
|
||||
|
||||
JSUInputStream& operator>>(char* dest) {
|
||||
read(dest);
|
||||
return *this;
|
||||
}
|
||||
|
||||
s32 read(u32& param_0) {
|
||||
return read(¶m_0, 4);
|
||||
}
|
||||
|
||||
// TODO: return value probably wrong
|
||||
/* 802DC298 */ s32 read(void*, s32);
|
||||
char* read(char*);
|
||||
}; // Size = 0x8
|
||||
|
||||
// move?
|
||||
|
||||
@@ -3,8 +3,10 @@
|
||||
|
||||
#include "dolphin/types.h"
|
||||
|
||||
enum EIoState {
|
||||
IOS_STATE_1 = 1,
|
||||
enum JSUStreamSeekFrom {
|
||||
JSUStreamSeekFrom_SET = 0, // absolute
|
||||
JSUStreamSeekFrom_CUR = 1, // relative
|
||||
JSUStreamSeekFrom_END = 2, // relative to end
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -13,6 +15,11 @@ enum EIoState {
|
||||
*/
|
||||
class JSUIosBase {
|
||||
public:
|
||||
enum EIoState {
|
||||
IOS_STATE_1 = 1,
|
||||
IOS_STATE_2 = 2,
|
||||
};
|
||||
|
||||
JSUIosBase() { mState = false; }
|
||||
|
||||
virtual ~JSUIosBase() {}
|
||||
@@ -22,7 +29,7 @@ public:
|
||||
void setState(EIoState state) { mState |= state; }
|
||||
|
||||
private:
|
||||
u8 mState;
|
||||
bool mState;
|
||||
}; // Size = 0x8
|
||||
|
||||
#endif
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#define JSUMEMORYSTREAM_H
|
||||
|
||||
#include "JSystem/JSupport/JSURandomInputStream.h"
|
||||
#include "JSystem/JSupport/JSURandomOutputStream.h"
|
||||
|
||||
/**
|
||||
* @ingroup jsystem-jsupport
|
||||
@@ -9,7 +10,7 @@
|
||||
*/
|
||||
class JSUMemoryInputStream : public JSURandomInputStream {
|
||||
public:
|
||||
JSUMemoryInputStream(const void* res, u32 size) { setBuffer(res, size); }
|
||||
JSUMemoryInputStream(const void* res, s32 size) { setBuffer(res, size); }
|
||||
|
||||
/* 802552B8 */ virtual ~JSUMemoryInputStream() {}
|
||||
/* 802DC520 */ void setBuffer(void const*, s32);
|
||||
@@ -18,10 +19,35 @@ public:
|
||||
/* 802DC628 */ s32 getLength() const;
|
||||
/* 802DC630 */ s32 getPosition() const;
|
||||
|
||||
void* getPointer() const {
|
||||
return (u8*)mBuffer + mPosition;
|
||||
}
|
||||
|
||||
private:
|
||||
/* 0x08 */ const void* mBuffer;
|
||||
/* 0x0C */ s32 mLength;
|
||||
/* 0x10 */ s32 mPosition;
|
||||
}; // Size = 0x14
|
||||
|
||||
class JSUMemoryOutputStream : public JSURandomOutputStream {
|
||||
public:
|
||||
JSUMemoryOutputStream() { setBuffer(NULL, 0); }
|
||||
JSUMemoryOutputStream(void* buffer, s32 len) { setBuffer(buffer, len); }
|
||||
|
||||
void setBuffer(void* buffer, s32 len);
|
||||
|
||||
virtual ~JSUMemoryOutputStream() {}
|
||||
virtual s32 writeData(const void*, s32);
|
||||
virtual s32 getLength() const;
|
||||
virtual s32 getPosition() const;
|
||||
virtual s32 seek(s32, JSUStreamSeekFrom);
|
||||
virtual s32 getAvailable() const;
|
||||
virtual s32 seekPos(s32, JSUStreamSeekFrom);
|
||||
|
||||
private:
|
||||
/* 0x08 */ void* mBuffer;
|
||||
/* 0x0C */ s32 mLength;
|
||||
/* 0x10 */ s32 mPosition;
|
||||
}; // Size = 0x14
|
||||
|
||||
#endif /* JSUMEMORYSTREAM_H */
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
#ifndef JSUOUTPUTSTREAM_H
|
||||
#define JSUOUTPUTSTREAM_H
|
||||
|
||||
#include "JSystem/JSupport/JSUIosBase.h"
|
||||
|
||||
/**
|
||||
* @ingroup jsystem-jsupport
|
||||
*
|
||||
*/
|
||||
class JSUOutputStream : public JSUIosBase {
|
||||
public:
|
||||
JSUOutputStream() {}
|
||||
virtual ~JSUOutputStream();
|
||||
|
||||
virtual s32 skip(s32, s8) = 0;
|
||||
virtual s32 writeData(const void*, s32) = 0;
|
||||
|
||||
s32 write(const void*, s32);
|
||||
void write(const char*);
|
||||
|
||||
JSUOutputStream& operator<<(u32 param_0) {
|
||||
write(¶m_0, sizeof(u32));
|
||||
return *this;
|
||||
}
|
||||
|
||||
JSUOutputStream& operator<<(s32 param_0) {
|
||||
write(¶m_0, sizeof(s32));
|
||||
return *this;
|
||||
}
|
||||
|
||||
JSUOutputStream& operator<<(s16 param_0) {
|
||||
write(¶m_0, sizeof(s16));
|
||||
return *this;
|
||||
}
|
||||
|
||||
JSUOutputStream& operator<<(u16 param_0) {
|
||||
write(¶m_0, sizeof(u16));
|
||||
return *this;
|
||||
}
|
||||
|
||||
JSUOutputStream& operator<<(u8 param_0) {
|
||||
write(¶m_0, sizeof(u8));
|
||||
return *this;
|
||||
}
|
||||
|
||||
JSUOutputStream& operator<<(const char* param_0) {
|
||||
write(param_0);
|
||||
return *this;
|
||||
}
|
||||
}; // Size = 0x8
|
||||
|
||||
#endif /* JSUOUTPUTSTREAM_H */
|
||||
@@ -0,0 +1,24 @@
|
||||
#ifndef JSURANDOMOUTPUTSTREAM_H_
|
||||
#define JSURANDOMOUTPUTSTREAM_H_
|
||||
|
||||
#include "JSystem/JSupport/JSUOutputStream.h"
|
||||
|
||||
/**
|
||||
* @ingroup jsystem-jsupport
|
||||
*
|
||||
*/
|
||||
class JSURandomOutputStream : public JSUOutputStream {
|
||||
public:
|
||||
JSURandomOutputStream() {}
|
||||
virtual ~JSURandomOutputStream() {}
|
||||
|
||||
/* vt[3] */ virtual s32 skip(s32, s8);
|
||||
/* vt[4] */ virtual s32 writeData(const void*, s32) = 0;
|
||||
/* vt[5] */ virtual s32 getLength() const = 0;
|
||||
/* vt[6] */ virtual s32 getPosition() const = 0;
|
||||
/* vt[7] */ virtual s32 seek(s32, JSUStreamSeekFrom);
|
||||
/* vt[8] */ virtual s32 getAvailable() const;
|
||||
/* vt[9] */ virtual s32 seekPos(s32, JSUStreamSeekFrom) = 0;
|
||||
}; // Size = 0x8
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user