summaryrefslogtreecommitdiff
path: root/libs/JSystem/src/JAudio2/JAUSeqCollection.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libs/JSystem/src/JAudio2/JAUSeqCollection.cpp')
-rw-r--r--libs/JSystem/src/JAudio2/JAUSeqCollection.cpp75
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(&region);
+ 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() {}