mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-05-23 22:45:05 -04:00
61 lines
1.4 KiB
C++
61 lines
1.4 KiB
C++
#include "JSystem/JSystem.h" // IWYU pragma: keep
|
|
|
|
#include "JSystem/JAudio2/JASSimpleWaveBank.h"
|
|
#include "stdint.h"
|
|
|
|
JASSimpleWaveBank::JASSimpleWaveBank() {
|
|
mWaveTable = NULL;
|
|
mWaveTableSize = 0;
|
|
}
|
|
|
|
JASSimpleWaveBank::~JASSimpleWaveBank() {
|
|
delete[] mWaveTable;
|
|
}
|
|
|
|
void JASSimpleWaveBank::setWaveTableSize(u32 size, JKRHeap* heap) {
|
|
delete[] mWaveTable;
|
|
mWaveTable = new (heap, 0) TWaveHandle[size];
|
|
JUT_ASSERT(29, mWaveTable != 0);
|
|
mWaveTableSize = size;
|
|
}
|
|
|
|
JASWaveHandle* JASSimpleWaveBank::getWaveHandle(u32 no) const {
|
|
if (no >= mWaveTableSize) {
|
|
return NULL;
|
|
}
|
|
return &mWaveTable[no];
|
|
}
|
|
|
|
void JASSimpleWaveBank::setWaveInfo(u32 no, JASWaveInfo const& waveInfo) {
|
|
mWaveTable[no].mWaveInfo = waveInfo;
|
|
mWaveTable[no].mWaveInfo.field_0x20 = &_48;
|
|
mWaveTable[no].mHeap = &mHeap;
|
|
}
|
|
|
|
JASWaveArc* JASSimpleWaveBank::getWaveArc(u32 no) {
|
|
if (no != 0) {
|
|
return NULL;
|
|
}
|
|
return this;
|
|
}
|
|
|
|
int JASSimpleWaveBank::TWaveHandle::getWavePtr() const {
|
|
void* base = mHeap->getBase();
|
|
if (base == NULL) {
|
|
return NULL;
|
|
}
|
|
return (intptr_t)base + mWaveInfo.field_0x08;
|
|
}
|
|
|
|
JASSimpleWaveBank::TWaveHandle::TWaveHandle() {
|
|
mHeap = NULL;
|
|
}
|
|
|
|
const JASWaveInfo* JASSimpleWaveBank::TWaveHandle::getWaveInfo() const {
|
|
return &mWaveInfo;
|
|
}
|
|
|
|
u32 JASSimpleWaveBank::getArcCount() const {
|
|
return 1;
|
|
}
|