diff options
| author | Léo Lam <leo@leolam.fr> | 2021-04-26 18:23:16 +0200 |
|---|---|---|
| committer | Léo Lam <leo@leolam.fr> | 2021-04-26 18:25:25 +0200 |
| commit | 92ed3dbddbb44f2771b4106a794e975e4a835ea0 (patch) | |
| tree | d171a4ccc6cdb905002b5b8b825487493a8dc644 /src/KingSystem/Resource | |
| parent | f8d110ce28bc791bdcad481fae8b00c718f42fb4 (diff) | |
ksys/res: Implement register/unregisterFactory
Diffstat (limited to 'src/KingSystem/Resource')
| -rw-r--r-- | src/KingSystem/Resource/resResourceMgrTask.cpp | 11 | ||||
| -rw-r--r-- | src/KingSystem/Resource/resResourceMgrTask.h | 3 | ||||
| -rw-r--r-- | src/KingSystem/Resource/resSystem.cpp | 9 |
3 files changed, 23 insertions, 0 deletions
diff --git a/src/KingSystem/Resource/resResourceMgrTask.cpp b/src/KingSystem/Resource/resResourceMgrTask.cpp index 33bb0a49..e9d0e75e 100644 --- a/src/KingSystem/Resource/resResourceMgrTask.cpp +++ b/src/KingSystem/Resource/resResourceMgrTask.cpp @@ -150,6 +150,17 @@ f32 ResourceMgrTask::getDefragProgress() const { return f32(_4cc) / f32(_4c8); } +void ResourceMgrTask::registerFactory(sead::ResourceFactory* factory, + const sead::SafeString& name) { + auto lock = sead::makeScopedLock(mFactoryCS); + sead::ResourceMgr::instance()->registerFactory(factory, name); +} + +void ResourceMgrTask::unregisterFactory(sead::ResourceFactory* factory) { + auto lock = sead::makeScopedLock(mFactoryCS); + sead::ResourceMgr::instance()->unregisterFactory(factory); +} + void ResourceMgrTask::cancelTasks() { stubbedLogFunction(); stubbedLogFunction(); diff --git a/src/KingSystem/Resource/resResourceMgrTask.h b/src/KingSystem/Resource/resResourceMgrTask.h index 187e4552..81e3e083 100644 --- a/src/KingSystem/Resource/resResourceMgrTask.h +++ b/src/KingSystem/Resource/resResourceMgrTask.h @@ -123,6 +123,9 @@ public: bool isDefragDone() const; f32 getDefragProgress() const; + void registerFactory(sead::ResourceFactory* factory, const sead::SafeString& name); + void unregisterFactory(sead::ResourceFactory* factory); + s32 getCacheIdx(const sead::SafeString& path) const; void cancelTasks(); diff --git a/src/KingSystem/Resource/resSystem.cpp b/src/KingSystem/Resource/resSystem.cpp index f4238ad1..c40b9df9 100644 --- a/src/KingSystem/Resource/resSystem.cpp +++ b/src/KingSystem/Resource/resSystem.cpp @@ -1,4 +1,5 @@ #include "KingSystem/Resource/resSystem.h" +#include "KingSystem/Resource/resEntryFactory.h" #include "KingSystem/Resource/resResourceMgrTask.h" namespace ksys::res { @@ -7,6 +8,14 @@ bool stubbedLogFunction() { return true; } +void registerEntryFactory(EntryFactoryBase* factory, const sead::SafeString& name) { + ResourceMgrTask::instance()->registerFactory(factory, name); +} + +void unregisterEntryFactory(EntryFactoryBase* factory) { + ResourceMgrTask::instance()->unregisterFactory(factory); +} + bool isHostPath(const sead::SafeString& path) { return ResourceMgrTask::instance()->isHostPath(path); } |
