summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLéo Lam <leo@leolam.fr>2021-04-26 18:23:16 +0200
committerLéo Lam <leo@leolam.fr>2021-04-26 18:25:25 +0200
commit92ed3dbddbb44f2771b4106a794e975e4a835ea0 (patch)
treed171a4ccc6cdb905002b5b8b825487493a8dc644 /src
parentf8d110ce28bc791bdcad481fae8b00c718f42fb4 (diff)
ksys/res: Implement register/unregisterFactory
Diffstat (limited to 'src')
-rw-r--r--src/KingSystem/Resource/resResourceMgrTask.cpp11
-rw-r--r--src/KingSystem/Resource/resResourceMgrTask.h3
-rw-r--r--src/KingSystem/Resource/resSystem.cpp9
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);
}