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 /src/JSystem/JKernel/JKRFileLoader.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 'src/JSystem/JKernel/JKRFileLoader.cpp')
| -rw-r--r-- | src/JSystem/JKernel/JKRFileLoader.cpp | 125 |
1 files changed, 0 insertions, 125 deletions
diff --git a/src/JSystem/JKernel/JKRFileLoader.cpp b/src/JSystem/JKernel/JKRFileLoader.cpp deleted file mode 100644 index 6bb460e93a..0000000000 --- a/src/JSystem/JKernel/JKRFileLoader.cpp +++ /dev/null @@ -1,125 +0,0 @@ -#include "JSystem/JSystem.h" // IWYU pragma: keep - -#include "JSystem/JKernel/JKRFileLoader.h" - -#define MSL_USE_INLINES 1 // needed to inline tolower call. not inlined elsewhere in the repo - -#include <cstring> -#include <cctype> -#include "global.h" - -JKRFileLoader* JKRFileLoader::sCurrentVolume; -JSUList<JKRFileLoader> JKRFileLoader::sVolumeList; - -JKRFileLoader::JKRFileLoader(void) - : mFileLoaderLink(this), mVolumeName(NULL), mVolumeType(0), mMountCount(0) {} - -JKRFileLoader::~JKRFileLoader() { - if (sCurrentVolume == this) { - sCurrentVolume = NULL; - } -} - -void JKRFileLoader::unmount(void) { - if (mMountCount != 0) { - if (--mMountCount == 0) { - delete this; - } - } -} - -void* JKRFileLoader::getGlbResource(const char* name) { - JKRFileLoader* fileLoader = findVolume(&name); - void* resource; - if (fileLoader == NULL) { - return NULL; - } else { - resource = fileLoader->getResource(name); - return resource; - } -} - -void* JKRFileLoader::getGlbResource(const char* name, JKRFileLoader* fileLoader) { - void* resource = NULL; - if (fileLoader) { - resource = fileLoader->getResource(0, name); - } else { - for (JSUListIterator<JKRFileLoader> iterator = sVolumeList.getFirst(); iterator != sVolumeList.getEnd(); ++iterator) { - resource = iterator->getResource(0, name); - if (resource) - break; - } - } - return resource; -} - -bool JKRFileLoader::removeResource(void* resource, JKRFileLoader* fileLoader) { - if (fileLoader) { - return fileLoader->removeResource(resource); - } - - for (JSUListIterator<JKRFileLoader> iterator = sVolumeList.getFirst(); iterator != sVolumeList.getEnd(); ++iterator) { - if (iterator->removeResource(resource)) { - return true; - } - } - - return false; -} - -bool JKRFileLoader::detachResource(void* resource, JKRFileLoader* fileLoader) { - if (fileLoader) { - return fileLoader->detachResource(resource); - } - - for (JSUListIterator<JKRFileLoader> iterator = sVolumeList.getFirst(); iterator != sVolumeList.getEnd(); ++iterator) { - if (iterator->detachResource(resource)) { - return true; - } - } - - return false; -} - -JKRFileLoader* JKRFileLoader::findVolume(const char** volumeName) { - if (*volumeName[0] != '/') { - return sCurrentVolume; - } - - char volumeNameBuffer[0x101]; - *volumeName = fetchVolumeName(volumeNameBuffer, ARRAY_SIZEU(volumeNameBuffer), *volumeName); - - for (JSUListIterator<JKRFileLoader> iterator = sVolumeList.getFirst(); iterator != sVolumeList.getEnd(); ++iterator) { - if (strcmp(volumeNameBuffer, iterator->mVolumeName) == 0) { - return iterator.getObject(); - } - } - - return NULL; -} - -const char* JKRFileLoader::fetchVolumeName(char* buffer, s32 bufferSize, const char* path) { - static char rootPath[2] = "/"; - - if (strcmp(path, "/") == 0) { - strcpy(buffer, rootPath); - return rootPath; - } - - path++; - while (*path != 0 && *path != '/') { - if (1 < bufferSize) { - *buffer = tolower(*path); - buffer++; - bufferSize--; - } - path++; - } - - *buffer = '\0'; - if (*path == '\0') { - path = rootPath; - } - - return path; -} |
