summaryrefslogtreecommitdiff
path: root/libs/JSystem/src/JAudio2/JAUStreamFileTable.cpp
diff options
context:
space:
mode:
authorLuke Street <luke@street.dev>2026-03-01 15:35:36 -0700
committerGitHub <noreply@github.com>2026-03-01 14:35:36 -0800
commit9649319ec4926457ef85e6094f8207474c977c2d (patch)
tree1c5cd4c7cc4c1aee03f28921213da47f2775444d /libs/JSystem/src/JAudio2/JAUStreamFileTable.cpp
parent6e149819e13b1f70ecbf8a4c66b030c17ffed2bb (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/JAUStreamFileTable.cpp')
-rw-r--r--libs/JSystem/src/JAudio2/JAUStreamFileTable.cpp40
1 files changed, 40 insertions, 0 deletions
diff --git a/libs/JSystem/src/JAudio2/JAUStreamFileTable.cpp b/libs/JSystem/src/JAudio2/JAUStreamFileTable.cpp
new file mode 100644
index 0000000000..f30c5c4a01
--- /dev/null
+++ b/libs/JSystem/src/JAudio2/JAUStreamFileTable.cpp
@@ -0,0 +1,40 @@
+#include "JSystem/JSystem.h" // IWYU pragma: keep
+
+#include "JSystem/JAudio2/JAUStreamFileTable.h"
+
+JAUStreamFileTable::JAUStreamFileTable() {
+ mData = NULL;
+}
+
+void JAUStreamFileTable::init(void const* data) {
+ const BinaryStreamFileTable* binaryTable = (const BinaryStreamFileTable*)data;
+ if (binaryTable == NULL) {
+ mData = NULL;
+ return;
+ }
+ if (binaryTable->mIdentifier[0] == 'b' && binaryTable->mIdentifier[1] == 's' && binaryTable->mIdentifier[2] == 'f' && binaryTable->mIdentifier[3] == 't') {
+ mData = binaryTable;
+ }
+}
+
+u32 JAUStreamFileTable::getNumFiles() const {
+ return mData->mNumFiles;
+}
+
+const char* JAUStreamFileTable::getFilePath(int index) const {
+ if (mData == NULL) {
+ return 0;
+ }
+ JUT_ASSERT(52, index >= 0);
+ JUT_ASSERT(53, index < getNumFiles());
+ char* data = (char*)mData;
+ return (char*)(data + *(int*)(data + 8 + (index * sizeof(s32))));
+}
+
+s32 JAUStreamDataMgr_StreamFileTable::getStreamFileEntry(JAISoundID soundId) {
+ const char* filePath = getFilePath(soundId.id_.info.waveID);
+ if (filePath == NULL) {
+ return -1;
+ }
+ return DVDConvertPathToEntrynum(filePath);
+}