summaryrefslogtreecommitdiff
path: root/include/JSystem/JAudio/JASWaveBank.h
blob: 8653864fe3ad6c4d8238b6b22a855bce1e796507 (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
#ifndef JASWAVEBANK_H
#define JASWAVEBANK_H

#include "dolphin/types.h"

class JKRHeap;

namespace JASystem {
    class TWaveArc;

    struct TWaveInfo {
        /* 0x00 */ u8 mBlockType;
        /* 0x01 */ u8 field_0x1;
        /* 0x02 */ u8 field_0x2;
        /* 0x04 */ f32 field_0x4;
        /* 0x08 */ int mWavePtrOffs;
        /* 0x0C */ int field_0xc;
        /* 0x10 */ int field_0x10;
        /* 0x14 */ int mBlockCount;
        /* 0x18 */ int field_0x18;
        /* 0x1C */ int field_0x1c;
        /* 0x20 */ s16 field_0x20;
        /* 0x22 */ s16 field_0x22;
        /* 0x24 */ void* field_0x24;
        /* 0x28 */ int field_0x28;
    };

    class TWaveHandle {
    public:
        virtual ~TWaveHandle() {}
        virtual const TWaveInfo* getWaveInfo() const = 0;
        virtual const void* getWavePtr() const = 0;
    };

    class TWaveBank {
    public:
        TWaveBank() {}
        virtual ~TWaveBank() {}
        virtual TWaveHandle* getWaveHandle(u32) const = 0;
        virtual TWaveArc* getWaveArc(int) = 0;
        static JKRHeap* getCurrentHeap();

        static JKRHeap* sCurrentHeap;
    };
}

#endif /* JASWAVEBANK_H */