diff options
| author | Luke Street <luke@street.dev> | 2026-03-01 15:35:36 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-03-01 14:35:36 -0800 |
| commit | 9649319ec4926457ef85e6094f8207474c977c2d (patch) | |
| tree | 1c5cd4c7cc4c1aee03f28921213da47f2775444d /libs/JSystem/src/JAudio2/JAUSeqCollection.cpp | |
| parent | 6e149819e13b1f70ecbf8a4c66b030c17ffed2bb (diff) | |
Reorganize library code into `libs/` (#3119)
* Reorganize files into libs/{dolphin,JSystem,PowerPC_EABI_Support,revolution,TRK_MINNOW_DOLPHIN}
* Update configure.py and project.py for new libs structure
* Refactor `#include <dolphin/x.h>` -> `<x.h>`
* Remove `__REVOLUTION_SDK__` forwards from dolphin
* Fix dolphin/ references in revolution
* Wrap `#include <dolphin.h>` in `!__REVOLUTION_SDK__`
* Always build TRK against dolphin headers
* Resolve revolution SDK header resolution issues
Diffstat (limited to 'libs/JSystem/src/JAudio2/JAUSeqCollection.cpp')
| -rw-r--r-- | libs/JSystem/src/JAudio2/JAUSeqCollection.cpp | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/libs/JSystem/src/JAudio2/JAUSeqCollection.cpp b/libs/JSystem/src/JAudio2/JAUSeqCollection.cpp new file mode 100644 index 0000000000..074862e521 --- /dev/null +++ b/libs/JSystem/src/JAudio2/JAUSeqCollection.cpp @@ -0,0 +1,75 @@ +#include "JSystem/JSystem.h" // IWYU pragma: keep + +#include "JSystem/JAudio2/JAUSeqCollection.h" +#include "JSystem/JUtility/JUTAssert.h" + +JAUSeqCollection::JAUSeqCollection() { + field_0x8 = NULL; +} + +void JAUSeqCollection::init(void const* param_0) { + field_0x8 = (const JAUSeqCollectionData*)param_0; + if (field_0x8->field_0x0 != 0x53 || field_0x8->field_0x1 != 0x43) { + field_0x8 = NULL; + return; + } + + field_0x0 = field_0x8->field_0x2; + field_0xc = field_0x8->field_0x4; + field_0x4 = &field_0x8->field_0x8; + +} + +bool JAUSeqCollection::getSeqData(int param_0, int param_1, JAISeqData* param_2) { + if (param_0 >= field_0x0) { + return false; + } + u32 r29 = field_0x4[param_0]; + u32* puVar2 = (u32*)((u8*)field_0x8 + r29); + if (param_1 >= puVar2[0]) { + return false; + } + param_2->set((void*)field_0x8, puVar2[param_1 + 1]); + return true; +} + +bool JAUSeqCollection::getSeqDataRegion(JAISeqDataRegion* param_0) { + if (isValid()) { + param_0->addr = (u8*)field_0x8; + param_0->size = field_0xc; + return true; + } + return false; +} + +JAUSeqDataMgr_SeqCollection::JAUSeqDataMgr_SeqCollection() { + user_ = NULL; +} + +bool JAUSeqDataMgr_SeqCollection::setSeqDataUser(JAISeqDataUser* param_0) { + JUT_ASSERT(60, user_ == NULL); + user_ = param_0; + return true; +} + +int JAUSeqDataMgr_SeqCollection::releaseSeqData() { + if (user_) { + JAISeqDataRegion region; + getSeqDataRegion(®ion); + int result = user_->releaseSeqData(region); + return result; + } + return 2; +} + +JAUSeqDataMgr_SeqCollection::SeqDataReturnValue JAUSeqDataMgr_SeqCollection::getSeqData(JAISoundID param_0, JAISeqData* param_1) { + if (!isValid()) { + return SeqDataReturnValue_0; + } + if (JAUSeqCollection::getSeqData(param_0.id_.info.type.parts.groupID, param_0.id_.info.waveID, param_1)) { + return SeqDataReturnValue_2; + } + return SeqDataReturnValue_0; +} + +JAUSeqDataMgr_SeqCollection::~JAUSeqDataMgr_SeqCollection() {} |
