summaryrefslogtreecommitdiff
path: root/src/JSystem/JAudio2/JAUSeqDataBlockMgr.cpp
diff options
context:
space:
mode:
authorJcw87 <Jcw87@users.noreply.github.com>2025-12-27 14:23:15 -0800
committerGitHub <noreply@github.com>2025-12-27 15:23:15 -0700
commit038b8fd62fde1f214cca7d129293cdd8afa1007a (patch)
tree955b511b5676bf746a0ee930172028bd9fbe1c9f /src/JSystem/JAudio2/JAUSeqDataBlockMgr.cpp
parentce41820bf0eaf00d5bc094793dc08598df6f38ae (diff)
JAudio2 debug (#3006)
Diffstat (limited to 'src/JSystem/JAudio2/JAUSeqDataBlockMgr.cpp')
-rw-r--r--src/JSystem/JAudio2/JAUSeqDataBlockMgr.cpp84
1 files changed, 46 insertions, 38 deletions
diff --git a/src/JSystem/JAudio2/JAUSeqDataBlockMgr.cpp b/src/JSystem/JAudio2/JAUSeqDataBlockMgr.cpp
index a5bb6ae620..37e0577413 100644
--- a/src/JSystem/JAudio2/JAUSeqDataBlockMgr.cpp
+++ b/src/JSystem/JAudio2/JAUSeqDataBlockMgr.cpp
@@ -20,7 +20,7 @@ u8* JAUSeqDataBlocks::getSeqData(JAISoundID param_0) {
link = link->getNext())
{
if ((u32)link->getObject()->field_0x10 == (u32)param_0) {
- return link->getObject()->field_0x14.addr;
+ return link->getObject()->region.addr;
}
}
return NULL;
@@ -32,7 +32,7 @@ JSULink<JAUSeqDataBlock>* JAUSeqDataBlocks::seekFreeBlock(u32 size) {
for (JSULink<JAUSeqDataBlock>* link = getFirst(); link != NULL; link = link->getNext())
{
if (link->getObject()->field_0x10.isAnonymous()) {
- u32 blockSize = link->getObject()->field_0x14.size;
+ u32 blockSize = link->getObject()->region.size;
if (blockSize >= size && blockSize < currentBlockSize) {
rv = link;
currentBlockSize = blockSize;
@@ -54,8 +54,8 @@ bool JAUSeqDataBlocks::remove(JSULink<JAUSeqDataBlock>* param_0) {
}
bool JAUSeqDataBlocks::hasFailedBlock(JAISoundID param_0) {
- JSULink<JAUSeqDataBlock>* rv = NULL;
- for (JSULink<JAUSeqDataBlock>* link = getFirst(); link != NULL; link = link->getNext())
+ JSULink<JAUSeqDataBlock>* link;
+ for (link = getFirst(); link != NULL; link = link->getNext())
{
if (link->getObject()->field_0x10 == param_0) {
link->getObject()->field_0x10.setAnonymous();
@@ -70,6 +70,7 @@ JAUDynamicSeqDataBlocks::JAUDynamicSeqDataBlocks() {
}
void JAUDynamicSeqDataBlocks::setSeqDataArchive(JKRArchive* param_0) {
+ JUT_ASSERT(104, seqDataArchive_ == NULL);
seqDataArchive_ = param_0;
}
@@ -98,17 +99,21 @@ s32 JAUDynamicSeqDataBlocks::getSeqData(JAISoundID param_0, JAISeqDataUser* para
}
bool JAUDynamicSeqDataBlocks::appendDynamicSeqDataBlock(JAUSeqDataBlock* seqDataBlock) {
+ JUT_ASSERT(135, ( reinterpret_cast < u32 > ( seqDataBlock->region.addr ) & 0x1f ) == 0);
rearrangeLoadingSeqs_();
+ bool result;
if (seqDataBlock->field_0x10.isAnonymous()) {
- mFreeBlocks.append(&seqDataBlock->field_0x0);
+ result = mFreeBlocks.append(&seqDataBlock->field_0x0);
} else {
- mLoadedBlocks.append(&seqDataBlock->field_0x0);
+ result = mLoadedBlocks.append(&seqDataBlock->field_0x0);
}
+ JUT_ASSERT(144, result);
return 1;
}
static void JAUDynamicSeqDataBlocks_receiveLoaded_(u32 param_0, u32 param_1) {
- JAUSeqDataBlock* seqDataBlock = ((JSULink<JAUSeqDataBlock>*)param_1)->getObject();
+ JSULink<JAUSeqDataBlock>* link = (JSULink<JAUSeqDataBlock>*)param_1;
+ JAUSeqDataBlock* seqDataBlock = link->getObject();
if (param_0 != NULL) {
seqDataBlock->field_0x1c = 2;
} else {
@@ -118,35 +123,38 @@ static void JAUDynamicSeqDataBlocks_receiveLoaded_(u32 param_0, u32 param_1) {
bool JAUDynamicSeqDataBlocks::loadDynamicSeq(JAISoundID param_0, bool param_1,
JAISeqDataUser* param_2) {
- if (seqDataArchive_ == NULL) {
- return false;
- }
- JAUSoundInfo* soundInfo = JASGlobalInstance<JAUSoundInfo>::getInstance();
- if (soundInfo == NULL) {
- return false;
- }
- u16 resourceId = soundInfo->getBgmSeqResourceID(param_0);
- size_t resSize = JASResArcLoader::getResSize(seqDataArchive_, resourceId);
- JSULink<JAUSeqDataBlock>* link = mFreeBlocks.seekFreeBlock(resSize);
- if (link == NULL) {
- if (param_1) {
- link = &releaseIdleDynamicSeqDataBlock_(param_2, resSize)->field_0x0;
- if (link == NULL) {
+ {
+ if (seqDataArchive_ == NULL) {
+ JUT_WARN(192, "%s", "cannot get sequence data archive.");
+ return false;
+ }
+ JAUSoundInfo* soundInfo = JASGlobalInstance<JAUSoundInfo>::getInstance();
+ if (soundInfo == NULL) {
+ JUT_WARN(198, "%s", "cannot JAUSoundInfo::getInstance().");
+ return false;
+ }
+ u16 resourceId = soundInfo->getBgmSeqResourceID(param_0);
+ size_t resSize = JASResArcLoader::getResSize(seqDataArchive_, resourceId);
+ JSULink<JAUSeqDataBlock>* link = mFreeBlocks.seekFreeBlock(resSize);
+ if (link == NULL) {
+ if (param_1) {
+ link = &releaseIdleDynamicSeqDataBlock_(param_2, resSize)->field_0x0;
+ if (link == NULL) {
+ return false;
+ }
+ } else {
return false;
}
- } else {
- return false;
}
+ mFreeBlocks.remove(link);
+ link->getObject()->field_0x10 = param_0;
+ link->getObject()->field_0x1c = 1;
+ field_0xc.append(link);
+ JASResArcLoader::loadResourceAsync(
+ seqDataArchive_, resourceId,
+ link->getObject()->region.addr, link->getObject()->region.size,
+ JAUDynamicSeqDataBlocks_receiveLoaded_, (u32)link);
}
- mFreeBlocks.remove(link);
- JAUSeqDataBlock* seqDataBlock = link->getObject();
- seqDataBlock->field_0x10 = param_0;
- link->getObject()->field_0x1c = 1;
- field_0xc.append(link);
- JASResArcLoader::loadResourceAsync(
- seqDataArchive_, resourceId,
- link->getObject()->field_0x14.addr, link->getObject()->field_0x14.size,
- JAUDynamicSeqDataBlocks_receiveLoaded_, (u32)link);
return true;
}
@@ -157,12 +165,12 @@ u32 JAUDynamicSeqDataBlocks::releaseIdleDynamicSeqDataBlock(JAISeqDataUser* para
for (JSULink<JAUSeqDataBlock>* link = mLoadedBlocks.getFirst(); link != NULL; ) {
nextLink = link->getNext();
JAUSeqDataBlock* seqDataBlock = link->getObject();
- if (param_0 == NULL || !param_0->isUsingSeqData(seqDataBlock->field_0x14)) {
+ if (param_0 == NULL || !param_0->isUsingSeqData(seqDataBlock->region)) {
mLoadedBlocks.remove(link);
JAUSeqDataBlock* seqDataBlock = link->getObject();
- link->getObject()->field_0x10.setAnonymous();
- if (size < seqDataBlock->field_0x14.size) {
- size = seqDataBlock->field_0x14.size;
+ seqDataBlock->field_0x10.setAnonymous();
+ if (size < seqDataBlock->region.size) {
+ size = seqDataBlock->region.size;
}
mFreeBlocks.append(link);
}
@@ -181,8 +189,8 @@ JAUDynamicSeqDataBlocks::releaseIdleDynamicSeqDataBlock_(JAISeqDataUser* param_0
while (link != NULL) {
nextLink = link->getNext();
JAUSeqDataBlock* seqDataBlock = link->getObject();
- if (param_0 == NULL || !param_0->isUsingSeqData(seqDataBlock->field_0x14)) {
- u32 size = seqDataBlock->field_0x14.size;
+ if (param_0 == NULL || !param_0->isUsingSeqData(seqDataBlock->region)) {
+ u32 size = seqDataBlock->region.size;
if (size >= param_1 && size < minSize) {
foundBlock = link;
minSize = size;