summaryrefslogtreecommitdiff
path: root/libs/JSystem/JSupport/JSUInputStream.cpp
blob: ce0eee75981e08f8817ad444dbf036b66b4b21e2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
//
// Generated By: dol2asm
// Translation Unit: JSUInputStream
//

#include "JSystem/JSupport/JSUInputStream.h"
#include "JSystem/JSupport/JSURandomInputStream.h"

//
// Forward References:
//

extern "C" void skip__20JSURandomInputStreamFl();

//
// External References:
//

extern "C" void __dt__20JSURandomInputStreamFv();
extern "C" void getAvailable__20JSURandomInputStreamCFv();

//
// Declarations:
//

/* ############################################################################################## */
/* 803CC4B0-803CC4D4 0295D0 0024+00 0/0 7/7 0/0 .data            __vt__20JSURandomInputStream */
extern void* __vt__20JSURandomInputStream[9] = {
    (void*)NULL /* RTTI */,
    (void*)NULL,
    (void*)__dt__20JSURandomInputStreamFv,
    (void*)getAvailable__20JSURandomInputStreamCFv,
    (void*)skip__20JSURandomInputStreamFl,
    (void*)NULL,
    (void*)NULL,
    (void*)NULL,
    (void*)NULL,
};

/* 802DC23C-802DC298 2D6B7C 005C+00 1/0 6/6 0/0 .text            __dt__14JSUInputStreamFv */
JSUInputStream::~JSUInputStream() {}

/* 802DC298-802DC2F0 2D6BD8 0058+00 1/1 20/20 0/0 .text            read__14JSUInputStreamFPvl */
s32 JSUInputStream::read(void* buffer, s32 numBytes) {
    s32 bytesRead = readData(buffer, numBytes);
    if (bytesRead != numBytes) {
        setState(IOS_STATE_1);
    }
    return bytesRead;
}

/* 802DC2F0-802DC370 2D6C30 0080+00 1/0 0/0 0/0 .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;
}

/* 802DC370-802DC3FC 2D6CB0 008C+00 0/0 1/1 0/0 .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;
}

/* 802DC3FC-802DC458 2D6D3C 005C+00 1/0 2/0 0/0 .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;
}

/* 802DC458-802DC4DC 2D6D98 0084+00 0/0 8/8 0/0 .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;
}

/* 802DC4DC-802DC520 2D6E1C 0044+00 0/0 16/16 0/0 .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;
}