summaryrefslogtreecommitdiff
path: root/libs/JSystem/JAudio2/JAUAudioArcInterpreter.cpp
blob: 50346f3abb910a1f473f148f7e26e537dad918f7 (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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
//
// Generated By: dol2asm
// Translation Unit: JAUAudioArcInterpreter
//

#include "JSystem/JAudio2/JAUAudioArcInterpreter.h"
#include "JSystem/JUtility/JUTAssert.h"

//
// Forward References:
//

//
// Declarations:
//

/* 802A4244-802A4260 29EB84 001C+00 0/0 1/1 0/0 .text            __ct__22JAUAudioArcInterpreterFv */
JAUAudioArcInterpreter::JAUAudioArcInterpreter() {
    mBase = NULL;
    mReadPtr = NULL;
}

/* 802A4260-802A42A8 29EBA0 0048+00 1/0 3/3 0/0 .text            __dt__22JAUAudioArcInterpreterFv */
JAUAudioArcInterpreter::~JAUAudioArcInterpreter() {}

/* 802A42A8-802A4314 29EBE8 006C+00 0/0 1/1 0/0 .text            parse__22JAUAudioArcInterpreterFPCv
 */
bool JAUAudioArcInterpreter::parse(void const* param_0) {
    mBase = (const u8*)param_0;
    mReadPtr = mBase;
    if (readU32_() != 'AA_<') {
        return false;
    }
    while (readCommand_()) {}
    return true;
}

/* 802A4314-802A431C 29EC54 0008+00 1/0 1/0 0/0 .text readCommandMore__22JAUAudioArcInterpreterFUl
 */
bool JAUAudioArcInterpreter::readCommandMore(u32 param_0) {
    return false;
}

/* 802A431C-802A4740 29EC5C 0424+00 1/1 0/0 0/0 .text readCommand___22JAUAudioArcInterpreterFv */
bool JAUAudioArcInterpreter::readCommand_() {
    u32 cmd = readU32_();
    switch (cmd) {
    case '>_AA':
        return false;
    case 'ws  ': {
        u32 var1 = readU32_();
        u32 var2 = readU32_();
        u32 var3 = readU32_();
        readWS(var1, getContent_(var2), var3);
        break;
    }
    case 'bnk ': {
        u32 var1 = readU32_();
        u32 var2 = readU32_();
        readBNK(var1, getContent_(var2));
        break;
    }
    case 'bl_<': {
        u32 var1 = readU32_();
        u32 var2 = readU32_();
        beginBNKList(var1, var2);
        break;
    }
    case '>_bl':
        endBNKList();
        break;
    case 'bsc ': {
        u32 var1 = readU32_();
        u32 var2 = readU32_();
        readBSC(getContent_(var1), var2 - var1);
        break;
    }
    case 'bst ': {
        u32 var1 = readU32_();
        u32 var2 = readU32_();
        readBST(getContent_(var1), var2 - var1);
        break;
    }
    case 'bstn': {
        u32 var1 = readU32_();
        u32 var2 = readU32_();
        readBSTN(getContent_(var1), var2 - var1);
        break;
    }
    case 'bms ': {
        u32 var1 = readU32_();
        u32 var2 = readU32_();
        u32 var3 = readU32_();
        readBMS(var1, getContent_(var2), var3 - var2);
        break;
    }
    case 'bmsa': {
        u32 var1 = readU32_();
        readBMS_fromArchive(var1);
        break;
    }
    case 'vbnk': {
        u32 var1 = readU32_();
        u32 var2 = readU32_();
        newVoiceBank(var1, var2);
        break;
    }
    case 'dsqb': {
        u32 var1 = readU32_();
        newDynamicSeqBlock(var1);
        break;
    }
    case 'bsft': {
        u32 var1 = readU32_();
        readBSFT(getContent_(var1));
        break;
    }
    case 'sect': {
        readU8_();
        u8 var1 = readU8_();
        u8 var2 = readU8_();
        u8 var3 = readU8_();
        readMaxSeCategory(var1, var2, var3);
        break;
    }
    default:
        if (!readCommandMore(cmd)) {
            JUT_ASSERT(145, false);
        }
        break;
    }
    return true;
}