#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 */