tp/include/JSystem/JAudio2/JASBasicWaveBank.h

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