mirror of
https://github.com/ACreTeam/ac-decomp
synced 2026-05-23 14:41:38 -04:00
80ef14e480
* match and link JKRAram.cpp * match and link JKRExpHeap * match and link JKRAramStream.cpp * match and link JKRFileLoader.cpp * match and link JKRFileFinder.cpp * JKernel Dump * match and link JKRAramArchive.cpp * match and link JKRDvdArchive.cpp * match and link JKRCompArchive.cpp * match but not link JKRDvdAramRipper * small refactors * match and link JKRThread.cpp * fix and link JKRDvdAramStream.cpp * Formatting fixes --------- Co-authored-by: SwareJonge <olaf23okken@gmail.com>
63 lines
3.4 KiB
C++
63 lines
3.4 KiB
C++
#ifndef JKRFILELOADER_H_
|
|
#define JKRFILELOADER_H_
|
|
|
|
#include "JSystem/JKernel/JKREnum.h"
|
|
#include "JSystem/JKernel/JKRDisposer.h"
|
|
#include "JSystem/JSupport/JSUList.h"
|
|
|
|
class JKRFileFinder;
|
|
class JKRFileLoader : public JKRDisposer
|
|
{
|
|
public:
|
|
JKRFileLoader();
|
|
|
|
virtual ~JKRFileLoader(); // _08
|
|
virtual void unmount(); // _0C
|
|
virtual bool becomeCurrent(const char*) = 0; // _10
|
|
virtual void* getResource(const char* path) = 0; // _14
|
|
virtual void* getResource(u32 type, const char* name) = 0; // _18
|
|
virtual size_t readResource(void* resourceBuffer, u32 bufferSize, const char* path, JKRExpandSwitch expandSwitch) = 0; // _1C
|
|
virtual size_t readResource(void* resourceBuffer, u32 bufferSize, u32 type, const char* name) = 0; // _20
|
|
virtual void removeResourceAll() = 0; // _24
|
|
virtual bool removeResource(void*) = 0; // _28
|
|
virtual bool detachResource(void*) = 0; // _2C
|
|
virtual long getResSize(const void*) const = 0; // _30
|
|
virtual u32 countFile(const char*) const = 0; // _34
|
|
virtual JKRFileFinder* getFirstFile(const char*) const = 0; // _38
|
|
|
|
bool isMounted() const { return mIsMounted; }
|
|
u32 getVolumeType() const { return mVolumeType; }
|
|
|
|
static void changeDirectory(const char* dir);
|
|
|
|
static void* getGlbResource(const char*);
|
|
static void* getGlbResource(const char*, JKRFileLoader* fileLoader);
|
|
static size_t readGlbResource(void* resourceBuffer, u32 bufferSize, const char* path, JKRExpandSwitch expandSwitch);
|
|
|
|
static bool removeResource(void* resourceBuffer, JKRFileLoader* fileLoader);
|
|
static bool detachResource(void* resourceBuffer, JKRFileLoader* fileLoader);
|
|
|
|
static JKRFileLoader* findVolume(const char**);
|
|
static JKRFileFinder* findFirstFile(const char*);
|
|
static const char* fetchVolumeName(char*, long, const char*);
|
|
|
|
static JKRFileLoader* getCurrentVolume() { return sCurrentVolume; }
|
|
static void setCurrentVolume(JKRFileLoader* fileLoader) { sCurrentVolume = fileLoader; }
|
|
static JSUList<JKRFileLoader>& getVolumeList() { return sVolumeList; }
|
|
|
|
static JKRFileLoader* sCurrentVolume;
|
|
static JSUList<JKRFileLoader> sVolumeList;
|
|
|
|
protected:
|
|
/* 0x00 */ // vtable
|
|
/* 0x04 */ // JKRDisposer
|
|
JSULink<JKRFileLoader> mFileLoaderLink; // 0x18
|
|
const char* mVolumeName; // 0x28
|
|
u32 mVolumeType; // 0x2C
|
|
bool mIsMounted; // 0x30
|
|
u8 field_0x31[3]; // 0x31
|
|
u32 mMountCount; // 0x34
|
|
};
|
|
|
|
#endif
|