mirror of
https://github.com/zeldaret/tww.git
synced 2026-06-24 09:01:26 -04:00
147 lines
5.2 KiB
C++
147 lines
5.2 KiB
C++
//
|
|
// Generated by dtk
|
|
// Translation Unit: JASBasicWaveBank.cpp
|
|
//
|
|
|
|
#include "JSystem/JAudio/JASBasicWaveBank.h"
|
|
#include "JSystem/JAudio/JASCalc.h"
|
|
#include "JSystem/JKernel/JKRSolidHeap.h"
|
|
#include "JSystem/JUtility/JUTAssert.h"
|
|
|
|
/* 80285968-802859C8 .text __ct__Q28JASystem14TBasicWaveBankFv */
|
|
JASystem::TBasicWaveBank::TBasicWaveBank() {
|
|
mWaveTable = NULL;
|
|
mWaveCount = 0;
|
|
mWaveGroupArray = NULL;
|
|
mWaveGroupCount = 0;
|
|
OSInitMutex(&mMutex);
|
|
}
|
|
|
|
/* 802859C8-80285A74 .text __dt__Q28JASystem14TBasicWaveBankFv */
|
|
JASystem::TBasicWaveBank::~TBasicWaveBank() {
|
|
delete[] mWaveTable;
|
|
for (int i = 0; i < mWaveGroupCount; i++) {
|
|
delete mWaveGroupArray[i];
|
|
}
|
|
delete[] mWaveGroupArray;
|
|
}
|
|
|
|
/* 80285A74-80285AFC .text getWaveGroup__Q28JASystem14TBasicWaveBankFi */
|
|
JASystem::TBasicWaveBank::TWaveGroup* JASystem::TBasicWaveBank::getWaveGroup(int group_no) {
|
|
JUT_ASSERT(41, group_no >= 0);
|
|
if (group_no >= mWaveGroupCount) {
|
|
return NULL;
|
|
}
|
|
return mWaveGroupArray[group_no];
|
|
}
|
|
|
|
/* 80285AFC-80285C10 .text setGroupCount__Q28JASystem14TBasicWaveBankFUl */
|
|
void JASystem::TBasicWaveBank::setGroupCount(u32 param_1) {
|
|
for (int i = 0; i < mWaveGroupCount; i++) {
|
|
delete mWaveGroupArray[i];
|
|
}
|
|
delete[] mWaveGroupArray;
|
|
mWaveGroupCount = param_1;
|
|
mWaveGroupArray = new (getCurrentHeap(), 0) TWaveGroup*[param_1];
|
|
JUT_ASSERT(58, mWaveGroupArray != 0);
|
|
for (int i = 0; i < mWaveGroupCount; i++) {
|
|
mWaveGroupArray[i] = new (getCurrentHeap(), 0) TWaveGroup(this);
|
|
}
|
|
}
|
|
|
|
/* 80285C10-80285CB0 .text setWaveTableSize__Q28JASystem14TBasicWaveBankFUl */
|
|
void JASystem::TBasicWaveBank::setWaveTableSize(u32 param_1) {
|
|
delete[] mWaveTable;
|
|
mWaveTable = new (getCurrentHeap(), 0) TWaveInfo*[param_1];
|
|
JUT_ASSERT(70, mWaveTable != 0);
|
|
Calc::bzero(mWaveTable, param_1 * 4);
|
|
mWaveCount = param_1;
|
|
}
|
|
|
|
/* 80285CB0-80285D54 .text incWaveTable__Q28JASystem14TBasicWaveBankFPCQ38JASystem14TBasicWaveBank10TWaveGroup */
|
|
void JASystem::TBasicWaveBank::incWaveTable(const TWaveGroup* param_1) {
|
|
/* Nonmatching */
|
|
OSLockMutex(&mMutex);
|
|
for (int i = 0; i < param_1->mWaveCount; i++) {
|
|
u32 waveID = param_1->getWaveID(i);
|
|
TWaveInfo** table = mWaveTable;
|
|
TWaveInfo* waveInfo = ¶m_1->mCtrlWaveArray[i];
|
|
waveInfo->mNext = NULL;
|
|
waveInfo->mPrev = table[waveID];
|
|
if (table[waveID]) {
|
|
table[waveID]->mNext = waveInfo;
|
|
}
|
|
table[waveID] = waveInfo;
|
|
}
|
|
OSUnlockMutex(&mMutex);
|
|
}
|
|
|
|
/* 80285D54-80285E28 .text decWaveTable__Q28JASystem14TBasicWaveBankFPCQ38JASystem14TBasicWaveBank10TWaveGroup */
|
|
void JASystem::TBasicWaveBank::decWaveTable(const TWaveGroup*) {
|
|
/* Nonmatching */
|
|
}
|
|
|
|
/* 80285E28-80285E58 .text getWaveHandle__Q28JASystem14TBasicWaveBankCFUl */
|
|
JASystem::TWaveHandle* JASystem::TBasicWaveBank::getWaveHandle(u32 param_1) const {
|
|
if (param_1 >= mWaveCount) {
|
|
return NULL;
|
|
}
|
|
if (mWaveTable[param_1]) {
|
|
return &mWaveTable[param_1]->mWaveHandle;
|
|
}
|
|
return NULL;
|
|
}
|
|
|
|
/* 80285E58-80285EB0 .text __ct__Q38JASystem14TBasicWaveBank10TWaveGroupFPQ28JASystem14TBasicWaveBank */
|
|
JASystem::TBasicWaveBank::TWaveGroup::TWaveGroup(TBasicWaveBank* param_1) {
|
|
mBank = param_1;
|
|
mCtrlWaveArray = NULL;
|
|
mWaveCount = 0;
|
|
}
|
|
|
|
/* 80285EB0-80285F64 .text __dt__Q38JASystem14TBasicWaveBank10TWaveGroupFv */
|
|
JASystem::TBasicWaveBank::TWaveGroup::~TWaveGroup() {
|
|
delete[] mCtrlWaveArray;
|
|
}
|
|
|
|
/* 80285F64-80285FC4 .text __dt__Q38JASystem14TBasicWaveBank9TWaveInfoFv */
|
|
JASystem::TBasicWaveBank::TWaveInfo::~TWaveInfo() {}
|
|
|
|
/* 80285FC4-802860B8 .text setWaveCount__Q38JASystem14TBasicWaveBank10TWaveGroupFUl */
|
|
void JASystem::TBasicWaveBank::TWaveGroup::setWaveCount(u32 num) {
|
|
delete[] mCtrlWaveArray;
|
|
mWaveCount = num;
|
|
mCtrlWaveArray = new (getCurrentHeap(), 0) TWaveInfo[num];
|
|
JUT_ASSERT(180, mCtrlWaveArray != 0);
|
|
for (int i = 0; i < num; i++) {
|
|
mCtrlWaveArray[i].mWaveHandle.mHeap = &mHeap;
|
|
mCtrlWaveArray[i].mWaveHandle.mWaveInfo.field_0x24 = &field_0x4c;
|
|
}
|
|
}
|
|
|
|
/* 802860B8-80286204 .text setWaveInfo__Q38JASystem14TBasicWaveBank10TWaveGroupFiUlRCQ28JASystem9TWaveInfo */
|
|
void JASystem::TBasicWaveBank::TWaveGroup::setWaveInfo(int index, u32 waveID, const JASystem::TWaveInfo& waveInfo) {
|
|
JUT_ASSERT(190, index < mWaveCount);
|
|
JUT_ASSERT(191, index >= 0);
|
|
mCtrlWaveArray[index].mWaveID = waveID;
|
|
mCtrlWaveArray[index].mWaveHandle.mWaveInfo = waveInfo;
|
|
mCtrlWaveArray[index].mWaveHandle.mWaveInfo.field_0x24 = &field_0x4c;
|
|
}
|
|
|
|
/* 80286204-80286274 .text onLoadDone__Q38JASystem14TBasicWaveBank10TWaveGroupFv */
|
|
void JASystem::TBasicWaveBank::TWaveGroup::onLoadDone() {
|
|
JUT_ASSERT(201, mBank);
|
|
mBank->incWaveTable(this);
|
|
}
|
|
|
|
/* 80286274-802862E4 .text onEraseDone__Q38JASystem14TBasicWaveBank10TWaveGroupFv */
|
|
void JASystem::TBasicWaveBank::TWaveGroup::onEraseDone() {
|
|
JUT_ASSERT(207, mBank);
|
|
mBank->decWaveTable(this);
|
|
}
|
|
|
|
/* 802862E4-802862F8 .text getWaveID__Q38JASystem14TBasicWaveBank10TWaveGroupCFi */
|
|
u32 JASystem::TBasicWaveBank::TWaveGroup::getWaveID(int index) const {
|
|
return mCtrlWaveArray[index].mWaveID;
|
|
}
|