diff options
| author | TakaRikka <38417346+TakaRikka@users.noreply.github.com> | 2025-11-27 21:19:33 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-11-27 21:19:33 -0800 |
| commit | 6f96e665186c87f15acb6f5cb8d27665afee3130 (patch) | |
| tree | 3ea70fe7d635a0f55aae44b1a386814766a46597 /src/JSystem/JAudio2/JAIStream.cpp | |
| parent | 767caeecc3e374779cccc9960b6546b74e7a9e50 (diff) | |
various Z2Audio / JAudio debug cleanup (#2876)
* some JAudio work
* audio cleanup checkpoint
* checkpoint more audio cleanup
* fix symbols
* more z2 cleanup
* fix regression
* fix build
* some fixes
Diffstat (limited to 'src/JSystem/JAudio2/JAIStream.cpp')
| -rw-r--r-- | src/JSystem/JAudio2/JAIStream.cpp | 168 |
1 files changed, 87 insertions, 81 deletions
diff --git a/src/JSystem/JAudio2/JAIStream.cpp b/src/JSystem/JAudio2/JAIStream.cpp index 2094e353f9..878c7e3e7f 100644 --- a/src/JSystem/JAudio2/JAIStream.cpp +++ b/src/JSystem/JAudio2/JAIStream.cpp @@ -1,55 +1,53 @@ -// -// Generated By: dol2asm -// Translation Unit: JAIStream -// - #include "JSystem/JSystem.h" // IWYU pragma: keep #include "JSystem/JAudio2/JAIStream.h" #include "JSystem/JAudio2/JAIStreamMgr.h" #include "JSystem/JAudio2/JAISoundChild.h" #include "JSystem/JAudio2/JAIStreamDataMgr.h" -#include "JSystem/JKernel/JKRHeap.h" #include "JSystem/JAudio2/JAIAudience.h" /* 802A30D4-802A3104 29DA14 0030+00 1/1 0/0 0/0 .text * JAIStream_JASAramStreamCallback___FUlP13JASAramStreamPv */ -static void JAIStream_JASAramStreamCallback_(u32 param_1, JASAramStream* param_2, void* param_3) { - switch (param_1) { +static void JAIStream_JASAramStreamCallback_(u32 type, JASAramStream* aramStream, void* userData) { + JAIStream* stream = (JAIStream*)userData; + + switch (type) { case 1: - ((JAIStream*)(param_3))->field_0x2c5 = 1; + stream->field_0x2c5 = 1; break; case 0: - ((JAIStream*)(param_3))->field_0x2c6 = 1; + stream->field_0x2c6 = 1; break; } } /* 802A3104-802A319C 29DA44 0098+00 0/0 1/1 0/0 .text * __ct__9JAIStreamFP12JAIStreamMgrP31JAISoundStrategyMgr<9JAIStream> */ -JAIStream::JAIStream(JAIStreamMgr* param_1, JAISoundStrategyMgr<JAIStream>* param_2) : JSULink<JAIStream>(this) { +JAIStream::JAIStream(JAIStreamMgr* streamMgr, JAISoundStrategyMgr<JAIStream>* soundStrategyMgr) : JSULink<JAIStream>(this) { field_0x290 = 0; - field_0x2c0 = param_2; - field_0x2b8 = param_1; - field_0x29c = 0; + field_0x2c0 = soundStrategyMgr; + streamMgr_ = streamMgr; + streamAramAddr_ = 0; field_0x2c5 = 0; field_0x2c6 = 0; + for (int i = 0; i < CHANNEL_MAX; i++) { - field_0x2a0[i] = NULL; + children_[i] = NULL; } } /* 802A319C-802A3230 29DADC 0094+00 0/0 1/1 0/0 .text * JAIStreamMgr_startID___9JAIStreamF10JAISoundIDlPCQ29JGeometry8TVec3<f>P11JAIAudiencei */ -void JAIStream::JAIStreamMgr_startID_(JAISoundID param_1, s32 param_2, - JGeometry::TVec3<f32> const* param_3, JAIAudience* param_4, - int param_5) { - field_0x298 = param_5; - field_0x294 = param_2; - start_JAISound_(param_1, param_3, param_4); +void JAIStream::JAIStreamMgr_startID_(JAISoundID id, s32 streamFileEntry, + const JGeometry::TVec3<f32>* posPtr, JAIAudience* audience, + int category) { + field_0x298 = category; + field_0x294 = streamFileEntry; + start_JAISound_(id, posPtr, audience); field_0x290 = 0; + if (field_0x2c0 != NULL) { - field_0x2bc = field_0x2c0->calc(param_1); + field_0x2bc = field_0x2c0->calc(id); } else { field_0x2bc = NULL; } @@ -59,15 +57,17 @@ void JAIStream::JAIStreamMgr_startID_(JAISoundID param_1, s32 param_2, bool JAIStream::prepare_prepareStream_() { u32 local_28; JAIStreamAramMgr* streamAramMgr; + switch (field_0x290) { case 0: - streamAramMgr = field_0x2b8->getStreamAramMgr(); + streamAramMgr = streamMgr_->getStreamAramMgr(); JUT_ASSERT(100, streamAramMgr); - field_0x29c = streamAramMgr->newStreamAram(&local_28); - if (field_0x29c != NULL) { - field_0x0a8.field_0x0.init((u32)field_0x29c, local_28, &JAIStream_JASAramStreamCallback_, this); + + streamAramAddr_ = streamAramMgr->newStreamAram(&local_28); + if (streamAramAddr_ != NULL) { + inner_.aramStream_.init((u32)streamAramAddr_, local_28, &JAIStream_JASAramStreamCallback_, this); field_0x290 = 1; - prepareCount = 0; + prepareCount_ = 0; } else { increasePrepareCount_JAISound_(); } @@ -75,14 +75,16 @@ bool JAIStream::prepare_prepareStream_() { case 1: if (audible_ != NULL) { JASSoundParams* soundParams = audible_->getOuterParams(0); - field_0x0a8.field_0x0.setPitch(soundParams->mPitch); - field_0x0a8.field_0x0.setVolume(soundParams->mVolume); - field_0x0a8.field_0x0.setPan(soundParams->mPan); - field_0x0a8.field_0x0.setFxmix(soundParams->mFxMix); - field_0x0a8.field_0x0.setDolby(soundParams->mDolby); + inner_.aramStream_.setPitch(soundParams->mPitch); + inner_.aramStream_.setVolume(soundParams->mVolume); + inner_.aramStream_.setPan(soundParams->mPan); + inner_.aramStream_.setFxmix(soundParams->mFxMix); + inner_.aramStream_.setDolby(soundParams->mDolby); } + field_0x2c5 = 0; - if (field_0x0a8.field_0x0.prepare(field_0x294, -1)) { + + if (inner_.aramStream_.prepare(field_0x294, -1)) { field_0x290 = 2; } break; @@ -97,7 +99,7 @@ bool JAIStream::prepare_prepareStream_() { case 3: return true; case 4: - JUT_WARN(155, "PC must not pass here."); + JUT_WARN(155, "%s", "PC must not pass here."); break; } @@ -109,7 +111,11 @@ void JAIStream::prepare_() { if (field_0x2c6 != 0) { return; } + switch(status_.state.unk) { + case 6: + JUT_ASSERT(171, false); + break; case 0: if (prepare_prepareStream_()) { status_.state.unk = 5; @@ -133,7 +139,7 @@ void JAIStream::prepare_() { /* 802A3498-802A34E4 29DDD8 004C+00 1/1 0/0 0/0 .text prepare_startStream___9JAIStreamFv */ void JAIStream::prepare_startStream_() { - if (field_0x0a8.field_0x0.start()) { + if (inner_.aramStream_.start()) { field_0x2c6 = 0; field_0x2c4 = 0; field_0x290 = 4; @@ -142,65 +148,64 @@ void JAIStream::prepare_startStream_() { /* 802A34E4-802A3720 29DE24 023C+00 0/0 1/1 0/0 .text * JAIStreamMgr_mixOut___9JAIStreamFRC14JASSoundParams16JAISoundActivity */ -void JAIStream::JAIStreamMgr_mixOut_(JASSoundParams const& param_1, JAISoundActivity param_2) { +void JAIStream::JAIStreamMgr_mixOut_(const JASSoundParams& inParams, JAISoundActivity activity) { bool local_54; - JASSoundParams local_4c; - params.mixOutAll(param_1, &local_4c, (status_.isMute() || param_2.field_0x0.flags.flag1) ? 0.0f : fader.getIntensity()); + JASSoundParams outParams; + params_.mixOutAll(inParams, &outParams, (status_.isMute() || activity.field_0x0.flags.flag1) ? 0.0f : fader_.getIntensity()); + if (field_0x2bc != NULL) { - field_0x2bc->virtual4(this, local_4c); + field_0x2bc->virtual4(this, outParams); } - JASSoundParams* mixParams = &local_4c; + + JASSoundParams* mixParams = &outParams; if (audible_ != NULL && audience_ != NULL) { for (int i = 0; i < audience_->getMaxChannels(); i++) { JASSoundParams* outerParams = audible_->getOuterParams(i); if (outerParams != NULL) { - audience_->mixChannelOut(local_4c, audible_, i); + audience_->mixChannelOut(outParams, audible_, i); mixParams = outerParams; break; } } } + for (int i = 0; i < CHANNEL_MAX; i++) { - field_0x0a8.field_0x0.setPitch(mixParams->mPitch); - if (field_0x2a0[i] != NULL) { - field_0x0a8.field_0x0.setChannelVolume(i, field_0x2a0[i]->mMove.mParams.mVolume * - mixParams->mVolume); - field_0x0a8.field_0x0.setChannelPan( - i, (field_0x2a0[i]->mMove.mParams.mPan + mixParams->mPan) - 0.5f); - field_0x0a8.field_0x0.setChannelFxmix(i, field_0x2a0[i]->mMove.mParams.mFxMix + - mixParams->mFxMix); - field_0x0a8.field_0x0.setChannelDolby(i, field_0x2a0[i]->mMove.mParams.mDolby + - mixParams->mDolby); + inner_.aramStream_.setPitch(mixParams->mPitch); + if (children_[i] != NULL) { + inner_.aramStream_.setChannelVolume(i, children_[i]->mMove.params_.mVolume * mixParams->mVolume); + inner_.aramStream_.setChannelPan(i, (children_[i]->mMove.params_.mPan + mixParams->mPan) - 0.5f); + inner_.aramStream_.setChannelFxmix(i, children_[i]->mMove.params_.mFxMix + mixParams->mFxMix); + inner_.aramStream_.setChannelDolby(i, children_[i]->mMove.params_.mDolby + mixParams->mDolby); } else { - field_0x0a8.field_0x0.setChannelVolume(i, mixParams->mVolume); - field_0x0a8.field_0x0.setChannelPan(i, mixParams->mPan); - field_0x0a8.field_0x0.setChannelFxmix(i, mixParams->mFxMix); - field_0x0a8.field_0x0.setChannelDolby(i, mixParams->mDolby); + inner_.aramStream_.setChannelVolume(i, mixParams->mVolume); + inner_.aramStream_.setChannelPan(i, mixParams->mPan); + inner_.aramStream_.setChannelFxmix(i, mixParams->mFxMix); + inner_.aramStream_.setChannelDolby(i, mixParams->mDolby); } } + prepare_(); + if (field_0x290 == 4) { - local_54 = false; - if (status_.isPaused() || param_2.field_0x0.flags.flag2) { - local_54 = true; - } + local_54 = status_.isPaused() || activity.field_0x0.flags.flag2; if (local_54 != field_0x2c4) { - field_0x0a8.field_0x0.pause(local_54); + inner_.aramStream_.pause(local_54); field_0x2c4 = local_54; } } } /* 802A3720-802A37FC 29E060 00DC+00 1/1 0/0 0/0 .text die_JAIStream___9JAIStreamFv */ -// NONMATCHING JASPolAllocObject<_> locations void JAIStream::die_JAIStream_() { die_JAISound_(); + for (int i = 0; i < CHANNEL_MAX; i++) { - if (field_0x2a0[i] != NULL) { - delete field_0x2a0[i]; - field_0x2a0[i] = NULL; + if (children_[i] != NULL) { + delete children_[i]; + children_[i] = NULL; } } + if (field_0x2bc != NULL) { field_0x2c0->virtual4(field_0x2bc); field_0x2bc = NULL; @@ -213,6 +218,7 @@ bool JAIStream::JAISound_tryDie_() { die_JAIStream_(); return true; } + switch (field_0x290) { case 0: case 1: @@ -221,11 +227,11 @@ bool JAIStream::JAISound_tryDie_() { case 2: case 3: field_0x290 = 5; - field_0x0a8.field_0x0.cancel(); + inner_.aramStream_.cancel(); break; case 4: field_0x290 = 6; - field_0x0a8.field_0x0.stop(10); + inner_.aramStream_.stop(10); break; } @@ -238,12 +244,14 @@ void JAIStream::JAIStreamMgr_calc_() { field_0x290 = 0; stop_JAISound_(); } + if (calc_JAISound_()) { for (int i = 0; i < CHANNEL_MAX; i++) { - if (field_0x2a0[i] != NULL) { - field_0x2a0[i]->calc(); + if (children_[i] != NULL) { + children_[i]->calc(); } } + if (field_0x2bc != NULL) { field_0x2bc->calc(this); } @@ -252,27 +260,25 @@ void JAIStream::JAIStreamMgr_calc_() { /* 802A3948-802A3950 29E288 0008+00 1/0 0/0 0/0 .text getNumChild__9JAIStreamCFv */ s32 JAIStream::getNumChild() const { - return 6; + return NUM_CHILDREN; } /* 802A3950-802A3A24 29E290 00D4+00 1/0 0/0 0/0 .text getChild__9JAIStreamFi */ -// NONMATCHING JASPoolAllocObject<_> locations -JAISoundChild* JAIStream::getChild(int i_idx) { - if (field_0x2a0[i_idx] == NULL) { - field_0x2a0[i_idx] = new JAISoundChild(); - if (field_0x2a0[i_idx] == NULL) { - JUT_WARN(370, "JASPoolAllocObject::<JAISoundChild>::operator new failed .") +JAISoundChild* JAIStream::getChild(int index) { + if (children_[index] == NULL) { + children_[index] = new JAISoundChild(); + if (children_[index] == NULL) { + JUT_WARN(370, "%s", "JASPoolAllocObject::<JAISoundChild>::operator new failed .") } } - return field_0x2a0[i_idx]; + return children_[index]; } /* 802A3A24-802A3ABC 29E364 0098+00 1/0 0/0 0/0 .text releaseChild__9JAIStreamFi */ -// NONMATCHING JASPoolAllocObject<_> locations -void JAIStream::releaseChild(int i_idx) { - if (field_0x2a0[i_idx] != NULL) { - delete field_0x2a0[i_idx]; - field_0x2a0[i_idx] = NULL; +void JAIStream::releaseChild(int index) { + if (children_[index] != NULL) { + delete children_[index]; + children_[index] = NULL; } } |
