summaryrefslogtreecommitdiff
path: root/src/JSystem/JAudio/JAIFx.cpp
blob: 2c9c756ceb0fffb9be1c4418c1aaf0c916bf2476 (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
//
// Generated by dtk
// Translation Unit: JAIFx.cpp
//

#include "JSystem/JSystem.h" // IWYU pragma: keep

#include "JSystem/JAudio/JAIFx.h"
#include "JSystem/JAudio/JAIBasic.h"
#include "JSystem/JAudio/JASDSPInterface.h"
#include "JSystem/JKernel/JKRSolidHeap.h"
#include "global.h"

JAInter::Fx::initOnCodeFxScene_s* JAInter::Fx::initOnCodeFxScene;
u8 JAInter::Fx::mSceneMax;
u32* JAInter::Fx::mBufferSizeMax;
s16** JAInter::Fx::mBufferPointer;
void** JAInter::Fx::mFxconfigTable;

/* 80291CCC-80292068       .text init__Q27JAInter2FxFv */
void JAInter::Fx::init() {
    if (initOnCodeFxScene) {
        mBufferSizeMax = new (JAIBasic::getCurrentJAIHeap(), 4) u32[4];
        mBufferPointer = new (JAIBasic::getCurrentJAIHeap(), 4) s16*[4];
        initOnCodeFxScene_s* r31 = initOnCodeFxScene;
        setSceneMax(r31->field_0x0);
        setBufferMax(r31->field_0x4, r31->field_0x8, r31->field_0xc, r31->field_0x10);
        void** _heap = new (JAIBasic::getCurrentJAIHeap(), 0x20) void*[getSceneMax()];
        JUT_ASSERT_MSG(46, _heap, "JAIFx::initHeap Cannot Alloc Heap!!\n");
        setTablePointer(_heap);
        for (u8 i = 0; i < getSceneMax(); i++) {
            setScenePointer(i, (u8*)initOnCodeFxScene + r31->field_0x14[i]);
        }
        for (u8 i = 0; i < 4; i++) {
            if (getBufferSizeMax(i)) {
                s16* _buf = new (JAIBasic::getCurrentJAIHeap(), 0x20) s16[ALIGN_PREV(getBufferSizeMax(i) * 160, 2) / 2];
                JUT_ASSERT_MSG(57, _buf, "JAIFx::initHeap Cannot Alloc Heap!!\n");
                setBufferPointer(i, _buf);
                JASystem::DSPInterface::setFXLine(i, getBufferPointer(i), &getFxconfigTable()[0][i]);
            }
        }
    }
}

/* 80292068-80292070       .text setSceneMax__Q27JAInter2FxFUc */
void JAInter::Fx::setSceneMax(u8 param_1) {
    mSceneMax = param_1;
}

/* 80292070-80292094       .text setBufferMax__Q27JAInter2FxFUlUlUlUl */
void JAInter::Fx::setBufferMax(u32 param_1, u32 param_2, u32 param_3, u32 param_4) {
    mBufferSizeMax[0] = param_1;
    mBufferSizeMax[1] = param_2;
    mBufferSizeMax[2] = param_3;
    mBufferSizeMax[3] = param_4;
}

/* 80292094-8029209C       .text setTablePointer__Q27JAInter2FxFPPv */
void JAInter::Fx::setTablePointer(void** param_1) {
    mFxconfigTable = param_1;
}

/* 8029209C-802920AC       .text setBufferPointer__Q27JAInter2FxFUcPs */
void JAInter::Fx::setBufferPointer(u8 param_1, s16* param_2) {
    mBufferPointer[param_1] = param_2;
}

/* 802920AC-802920BC       .text setScenePointer__Q27JAInter2FxFUcPv */
void JAInter::Fx::setScenePointer(u8 param_1, void* param_2) {
    mFxconfigTable[param_1] = param_2;
}

/* 802920BC-802920C4       .text getSceneMax__Q27JAInter2FxFv */
u8 JAInter::Fx::getSceneMax() {
    return mSceneMax;
}

/* 802920C4-802920D4       .text getBufferSizeMax__Q27JAInter2FxFUc */
u32 JAInter::Fx::getBufferSizeMax(u8 param_1) {
    return mBufferSizeMax[param_1];
}

/* 802920D4-802920E4       .text getBufferPointer__Q27JAInter2FxFUc */
s16* JAInter::Fx::getBufferPointer(u8 param_1) {
    return mBufferPointer[param_1];
}

/* 802920E4-802920EC       .text getFxconfigTable__Q27JAInter2FxFv */
JASystem::DSPInterface::FxlineConfig_** JAInter::Fx::getFxconfigTable() {
    return (JASystem::DSPInterface::FxlineConfig_**)mFxconfigTable;
}