summaryrefslogtreecommitdiff
path: root/include/JSystem/JAudio/JAIBasic.h
blob: 9856446ee1d24d5f2d22f83f171625197186d9b5 (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
#ifndef JAIBASIC_H
#define JAIBASIC_H

#include "JSystem/JUtility/JUTAssert.h"
#include "JSystem/JAudio/JAIBankWave.h"
#include "JSystem/JAudio/JAISound.h"
#include "dolphin/mtx/mtx.h"
#include "dolphin/mtx/vec.h"

class JKRSolidHeap;

namespace JAInter {
    class Actor;
    class Camera;
}

namespace JASystem {
    class TTrack;
}

class JAIBasic {
public:
    JAIBasic();
    virtual JAISound* makeSound(u32);
    virtual BOOL getMapInfoFxline(u32);
    virtual BOOL getMapInfoGround(u32);
    virtual f32 getMapInfoFxParameter(u32);
    virtual void setSeExtParameter(JAISound*);
    virtual void setRegisterTrackCallback();
    virtual void initStream();
    void initDriver(JKRSolidHeap*, u32, u8);
    void initInterface(u8);
    void initInterfaceMain();
    void initHeap();
    void initArchive();
    void initResourcePath();
    void setCameraInfo(Vec*, Vec*, MtxP, u32);
    void initAudioThread(JKRSolidHeap*, u32, u8);
    void initCamera();
    BOOL initReadFile();
    void processFrameWork();
    void startSoundVec(u32 soundID, JAISound**, Vec*, u32, u32, u8);
    void startSoundActor(u32, JAISound**, JAInter::Actor*, u32, u8);
    void startSoundDirectID(u32, JAISound**, JAInter::Actor*, u32, u8);
    void startSoundBasic(u32, JAISound**, JAInter::Actor*, u32, u8, void*);
    void stopSoundHandle(JAISound*, u32);
    void stopPlayingCategoryObjectSe(u8, void*);
    void stopAllSe(u8, void*);
    void stopActorSoundOneBuffer(void*, JAISound*);
    void stopIDSoundOneBuffer(u32, JAISound*);
    void stopIDActorSoundOneBuffer(u32, void*, JAISound*);
    void stopAllSound(void*);
    void stopAllSound(u32);
    void stopAllSound(u32, void*);
    void deleteObject(void*);
    u16 getSoundOffsetNumberFromID(u32);
    void setSeCategoryVolume(u8, u8);
    static u16 setParameterSeqSync(JASystem::TTrack*, u16);
    bool allocStreamBuffer(void*, s32);
    bool deallocStreamBuffer();

    /* 0x04 */ JAInter::Camera* mAudioCamera;
    /* 0x08 */ JKRSolidHeap* field_0x8;
    /* 0x0C */ u8 initLoadFileSw;
    /* 0x0D */ u8 field_0xd;
    /* 0x0E */ struct {
        u8 flag1 : 1;
        u8 flag2 : 1;
        u8 flag3 : 1;
        u8 flag4 : 1;
        u8 flag5 : 1;
        u8 flag6 : 1;
        u8 flag7 : 1;
        u8 flag8 : 1;
    } field_0xe;
    /* 0x10 */ int field_0x10;
    /* 0x14 */ int field_0x14;
    /* 0x18 */ void* field_0x18;
    /* 0x1C */ u8** field_0x1c;

    static JAIBasic* getInterface() { return msBasic; }
    static JKRSolidHeap* getCurrentJAIHeap() {
        JUT_ASSERT_MSG(148, msCurrentHeap, "JAIBasicのカレントヒープがありません(mCurrentHeap==NULL)\n");
        return msCurrentHeap;
    }

    bool checkAllWaveLoadStatus() {
        return JAInter::BankWave::checkAllWaveLoadStatus();
    }

    // this might be wrong, it matches but the size doesn't seem to match the debug map
    u32 checkEnablePrepare(u32 soundID) { return (soundID & JAISoundID_TypeMask); }

    void prepareSoundVec(u32 soundID, JAISound** pSound, Vec* pos, u32 r7, u32 r8, u8 r9) {
        startSoundVec(soundID, pSound, pos, r7, r8, r9);
        if (*pSound) {
            (*pSound)->setPrepareFlag(1);
        }
    }

    // TODO
    void addInitOnCodeSeScene(u32, u32) {}
    void getAudioCamera() {}
    void getInitDataInfo() {}
    void getInitOnCodeSeScene() {}
    void getSceneSetFlag() {}
    void getSeSoundHandle() {}
    void getWaveLoadStatus(s32) {}
    void initAudio(JKRSolidHeap*, u32, u8) {}
    void loadSceneWave(s32, s32) {}
    void setInitDataInfo(char*) {}
    void setInitOnCodeSeScene(u32*) {}

    static JAIBasic* msBasic;
    static JKRSolidHeap* msCurrentHeap;
};

#endif /* JAIBASIC_H */