mirror of https://github.com/zeldaret/tp.git
69 lines
1.9 KiB
C
69 lines
1.9 KiB
C
#ifndef JASBASICWAVEBANK_H
|
|
#define JASBASICWAVEBANK_H
|
|
|
|
#include "JSystem/JAudio2/JASWaveArcLoader.h"
|
|
#include "JSystem/JAudio2/JASWaveInfo.h"
|
|
|
|
/**
|
|
* @ingroup jsystem-jaudio
|
|
*
|
|
*/
|
|
struct JASBasicWaveBank : public JASWaveBank {
|
|
struct TWaveHandle : public JASWaveHandle {
|
|
int getWavePtr() const;
|
|
TWaveHandle() { mHeap = NULL; }
|
|
const JASWaveInfo* getWaveInfo() const { return &field_0x4; }
|
|
bool compareHeap(JASHeap* heap) const { return mHeap == heap;}
|
|
|
|
/* 0x04 */ JASWaveInfo field_0x4;
|
|
/* 0x28 */ JASHeap* mHeap;
|
|
};
|
|
|
|
struct TGroupWaveInfo {
|
|
TGroupWaveInfo() {
|
|
field_0x0 = 0xffff;
|
|
field_0x4 = -1;
|
|
}
|
|
|
|
/* 0x00 */ u16 field_0x0;
|
|
/* 0x04 */ int field_0x4;
|
|
};
|
|
|
|
struct TWaveGroup : JASWaveArc {
|
|
TWaveGroup();
|
|
~TWaveGroup();
|
|
void setWaveCount(u32, JKRHeap*);
|
|
void onLoadDone();
|
|
void onEraseDone();
|
|
u32 getWaveID(int) const;
|
|
|
|
/* 0x74 */ JASBasicWaveBank* mBank;
|
|
/* 0x78 */ TGroupWaveInfo* mCtrlWaveArray;
|
|
/* 0x7C */ u16 mWaveCount;
|
|
|
|
u32 getWaveCount() const { return mWaveCount; }
|
|
};
|
|
|
|
JASBasicWaveBank();
|
|
~JASBasicWaveBank();
|
|
TWaveGroup* getWaveGroup(u32);
|
|
void setGroupCount(u32, JKRHeap*);
|
|
void setWaveTableSize(u32, JKRHeap*);
|
|
void incWaveTable(JASBasicWaveBank::TWaveGroup const*);
|
|
void decWaveTable(JASBasicWaveBank::TWaveGroup const*);
|
|
JASWaveHandle* getWaveHandle(u32) const;
|
|
void setWaveInfo(JASBasicWaveBank::TWaveGroup*, int, u16, JASWaveInfo const&);
|
|
JASWaveArc* getWaveArc(u32 param_0) { return getWaveGroup(param_0); }
|
|
u32 getArcCount() const { return mGroupCount; }
|
|
|
|
/* 0x04 */ OSMutex field_0x4;
|
|
/* 0x1C */ TWaveHandle* mWaveTable;
|
|
/* 0x20 */ TWaveGroup* mWaveGroupArray;
|
|
/* 0x24 */ u16 mHandleCount;
|
|
/* 0x26 */ u16 mGroupCount;
|
|
|
|
static u32 mNoLoad;
|
|
};
|
|
|
|
#endif /* JASBASICWAVEBANK_H */
|