Files
tp/include/JSystem/JSupport/JSUInputStream.h
T

78 lines
1.5 KiB
C++
Raw Normal View History

2021-03-28 22:49:05 +02:00
#ifndef JSUINPUTSTREAM_H
#define JSUINPUTSTREAM_H
2021-03-15 07:12:44 +01:00
2021-05-03 02:03:24 +02:00
#include "JSystem/JSupport/JSUIosBase.h"
2021-03-15 07:12:44 +01:00
2021-08-28 16:32:14 +02:00
enum JSUStreamSeekFrom {
JSUStreamSeekFrom_SET = 0, // absolute
JSUStreamSeekFrom_CUR = 1, // relative
JSUStreamSeekFrom_END = 2, // relative to end
};
2021-05-03 02:03:24 +02:00
class JSUInputStream : public JSUIosBase {
public:
2021-08-28 16:32:14 +02:00
JSUInputStream() {}
2021-05-03 02:03:24 +02:00
virtual ~JSUInputStream();
/* vt[3] */ virtual s32 getAvailable() const = 0;
/* vt[4] */ virtual s32 skip(s32);
2021-08-28 16:32:14 +02:00
/* vt[5] */ virtual u32 readData(void*, s32) = 0;
2021-05-03 02:03:24 +02:00
2023-09-04 06:41:08 -07:00
u32 readU32() {
u32 val;
this->read(&val, sizeof(val));
return val;
}
2021-12-11 23:39:53 +01:00
u32 read32b() {
u32 val;
this->read(&val, sizeof(val));
return val;
}
s32 readS32() {
s32 val;
this->read(&val, sizeof(val));
return val;
}
2021-12-11 23:39:53 +01:00
s16 readS16() {
s16 val;
this->read(&val, sizeof(val));
return val;
}
u16 readU16() {
u16 val;
this->read(&val, sizeof(val));
return val;
}
u8 readU8() {
u8 val;
this->read(&val, sizeof(val));
return val;
}
u8 read8b() {
u8 val;
this->read(&val, sizeof(val));
return val;
}
u16 read16b() {
u16 val;
this->read(&val, sizeof(val));
return val;
}
2021-05-03 02:03:24 +02:00
// TODO: return value probably wrong
2021-08-28 16:32:14 +02:00
/* 802DC298 */ s32 read(void*, s32);
}; // Size = 0x8
2021-05-03 02:03:24 +02:00
2021-12-21 06:06:57 -08:00
// move?
template <typename T>
T* JSUConvertOffsetToPtr(const void*, const void*);
2021-03-28 22:49:05 +02:00
#endif /* JSUINPUTSTREAM_H */