JASWaveBankMgr

This commit is contained in:
Jcw87
2023-10-30 05:17:56 -07:00
parent a60d94f79d
commit a815e3cd89
5 changed files with 113 additions and 16 deletions
+24
View File
@@ -0,0 +1,24 @@
#ifndef JASWSPARSER_H
#define JASWSPARSER_H
#include "dolphin/types.h"
namespace JASystem {
class TBasicWaveBank;
class TSimpleWaveBank;
namespace WSParser {
struct TCtrl;
struct TCtrlGroup;
struct TCtrlScene;
struct TCtrlWave;
struct TWave;
struct TWaveArchive;
struct TWaveArchiveBank;
u32 getGroupCount(void*);
TBasicWaveBank* createBasicWaveBank(void*);
TSimpleWaveBank* createSimpleWaveBank(void*);
}
}
#endif /* JASWSPARSER_H */
+1 -1
View File
@@ -24,7 +24,7 @@ namespace JASystem {
bool eraseSetup();
static s32 loadToAramCallback(void*);
bool sendLoadCmd();
void load(Kernel::THeap*);
bool load(Kernel::THeap*);
bool erase();
void onDispose();
void setEntryNum(s32);
+26
View File
@@ -0,0 +1,26 @@
#ifndef JASWAVEBANKMGR_H
#define JASWAVEBANKMGR_H
#include "dolphin/types.h"
namespace JASystem {
class TWaveArc;
class TWaveBank;
namespace Kernel {
class THeap;
}
namespace WaveBankMgr {
void init(int);
TWaveBank* getWaveBank(int);
bool registWaveBank(int, TWaveBank*);
bool registWaveBankWS(int, void*);
TWaveArc* getWaveArc(int, int);
bool loadWave(int, int, Kernel::THeap*);
bool eraseWave(int, int);
extern int sTableSize;
extern TWaveBank** sWaveBank;
}
}
#endif /* JASWAVEBANKMGR_H */
+1 -1
View File
@@ -138,7 +138,7 @@ bool JASystem::TWaveArc::sendLoadCmd() {
}
/* 80287FE4-802880A0 .text load__Q28JASystem8TWaveArcFPQ38JASystem6Kernel5THeap */
void JASystem::TWaveArc::load(Kernel::THeap*) {
bool JASystem::TWaveArc::load(Kernel::THeap*) {
/* Nonmatching */
}
+61 -14
View File
@@ -3,41 +3,88 @@
// Translation Unit: JASWaveBankMgr.cpp
//
#include "JASWaveBankMgr.h"
#include "dolphin/types.h"
#include "JSystem/JAudio/JASWaveBankMgr.h"
#include "JSystem/JAudio/JASBasicWaveBank.h"
#include "JSystem/JAudio/JASCalc.h"
#include "JSystem/JAudio/JASSimpleWaveBank.h"
#include "JSystem/JAudio/JASSystemHeap.h"
#include "JSystem/JAudio/JASWSParser.h"
#include "JSystem/JAudio/JASWaveArcLoader.h"
#include "JSystem/JAudio/JASWaveBank.h"
#include "JSystem/JKernel/JKRSolidHeap.h"
#include "JSystem/JUtility/JUTAssert.h"
int JASystem::WaveBankMgr::sTableSize;
JASystem::TWaveBank** JASystem::WaveBankMgr::sWaveBank;
/* 802882CC-8028835C .text init__Q28JASystem11WaveBankMgrFi */
void JASystem::WaveBankMgr::init(int) {
/* Nonmatching */
void JASystem::WaveBankMgr::init(int param_1) {
u32 size = param_1 * 4;
sWaveBank = (TWaveBank**) new (JASDram, 0) u8[size];
JUT_ASSERT(39, sWaveBank != 0);
Calc::bzero(sWaveBank, size);
sTableSize = param_1;
}
/* 8028835C-80288390 .text getWaveBank__Q28JASystem11WaveBankMgrFi */
void JASystem::WaveBankMgr::getWaveBank(int) {
/* Nonmatching */
JASystem::TWaveBank* JASystem::WaveBankMgr::getWaveBank(int banknum) {
if (banknum < 0) {
return NULL;
}
if (banknum >= sTableSize) {
return NULL;
}
return sWaveBank[banknum];
}
/* 80288390-80288444 .text registWaveBank__Q28JASystem11WaveBankMgrFiPQ28JASystem9TWaveBank */
void JASystem::WaveBankMgr::registWaveBank(int, JASystem::TWaveBank*) {
bool JASystem::WaveBankMgr::registWaveBank(int banknum, TWaveBank* param_2) {
/* Nonmatching */
JUT_ASSERT(57, banknum >= 0);
JUT_ASSERT(58, banknum < sTableSize);
sWaveBank[banknum] = param_2;
return true;
}
/* 80288444-802884BC .text registWaveBankWS__Q28JASystem11WaveBankMgrFiPv */
void JASystem::WaveBankMgr::registWaveBankWS(int, void*) {
bool JASystem::WaveBankMgr::registWaveBankWS(int param_1, void* param_2) {
/* Nonmatching */
TWaveBank* bank;
if (WSParser::getGroupCount(param_2) == 1) {
bank = WSParser::createSimpleWaveBank(param_2);
} else {
bank = WSParser::createBasicWaveBank(param_2);
}
if (!bank) {
return false;
}
return registWaveBank(param_1, bank);
}
/* 802884BC-8028850C .text getWaveArc__Q28JASystem11WaveBankMgrFii */
void JASystem::WaveBankMgr::getWaveArc(int, int) {
/* Nonmatching */
JASystem::TWaveArc* JASystem::WaveBankMgr::getWaveArc(int banknum, int param_2) {
TWaveBank* bank = getWaveBank(banknum);
if (bank == NULL) {
return NULL;
}
return bank->getWaveArc(param_2);
}
/* 8028850C-80288550 .text loadWave__Q28JASystem11WaveBankMgrFiiPQ38JASystem6Kernel5THeap */
void JASystem::WaveBankMgr::loadWave(int, int, JASystem::Kernel::THeap*) {
/* Nonmatching */
bool JASystem::WaveBankMgr::loadWave(int banknum, int param_2, Kernel::THeap* param_3) {
TWaveArc* arc = getWaveArc(banknum, param_2);
if (arc == NULL) {
return false;
}
return arc->load(param_3);
}
/* 80288550-80288594 .text eraseWave__Q28JASystem11WaveBankMgrFii */
void JASystem::WaveBankMgr::eraseWave(int, int) {
bool JASystem::WaveBankMgr::eraseWave(int banknum, int param_2) {
/* Nonmatching */
TWaveArc* arc = getWaveArc(banknum, param_2);
if (arc == NULL) {
return false;
}
return arc->erase() != false;
}