summaryrefslogtreecommitdiff
path: root/src/core/hle
diff options
context:
space:
mode:
authorGravatar Zach Hilman2018-08-25 19:00:36 -0400
committerGravatar Zach Hilman2018-09-04 16:21:40 -0400
commit9951f6d0543980e29e6107e0bd4ea35977f1cf29 (patch)
tree2ee34991b03ab10607d41c90588a52a0476ddfc6 /src/core/hle
parentgame_list: Use RegisteredCacheUnion for installed (diff)
downloadyuzu-9951f6d0543980e29e6107e0bd4ea35977f1cf29.tar.gz
yuzu-9951f6d0543980e29e6107e0bd4ea35977f1cf29.tar.xz
yuzu-9951f6d0543980e29e6107e0bd4ea35977f1cf29.zip
registration: Add RegisteredCacheUnion
Aggregates multiple caches into one interface
Diffstat (limited to 'src/core/hle')
-rw-r--r--src/core/hle/service/filesystem/filesystem.cpp7
-rw-r--r--src/core/hle/service/filesystem/filesystem.h3
2 files changed, 10 insertions, 0 deletions
diff --git a/src/core/hle/service/filesystem/filesystem.cpp b/src/core/hle/service/filesystem/filesystem.cpp
index a4426af96..e9d5bd774 100644
--- a/src/core/hle/service/filesystem/filesystem.cpp
+++ b/src/core/hle/service/filesystem/filesystem.cpp
@@ -19,6 +19,7 @@
19#include "core/hle/service/filesystem/fsp_ldr.h" 19#include "core/hle/service/filesystem/fsp_ldr.h"
20#include "core/hle/service/filesystem/fsp_pr.h" 20#include "core/hle/service/filesystem/fsp_pr.h"
21#include "core/hle/service/filesystem/fsp_srv.h" 21#include "core/hle/service/filesystem/fsp_srv.h"
22#include "filesystem.h"
22 23
23namespace Service::FileSystem { 24namespace Service::FileSystem {
24 25
@@ -307,6 +308,12 @@ ResultVal<FileSys::VirtualDir> OpenSDMC() {
307 return sdmc_factory->Open(); 308 return sdmc_factory->Open();
308} 309}
309 310
311std::shared_ptr<FileSys::RegisteredCacheUnion> GetUnionContents() {
312 return std::make_shared<FileSys::RegisteredCacheUnion>(
313 std::vector<std::shared_ptr<FileSys::RegisteredCache>>{
314 GetSystemNANDContents(), GetUserNANDContents(), GetSDMCContents()});
315}
316
310std::shared_ptr<FileSys::RegisteredCache> GetSystemNANDContents() { 317std::shared_ptr<FileSys::RegisteredCache> GetSystemNANDContents() {
311 LOG_TRACE(Service_FS, "Opening System NAND Contents"); 318 LOG_TRACE(Service_FS, "Opening System NAND Contents");
312 319
diff --git a/src/core/hle/service/filesystem/filesystem.h b/src/core/hle/service/filesystem/filesystem.h
index 9ba0e2eab..793a7b06f 100644
--- a/src/core/hle/service/filesystem/filesystem.h
+++ b/src/core/hle/service/filesystem/filesystem.h
@@ -13,6 +13,7 @@
13namespace FileSys { 13namespace FileSys {
14class BISFactory; 14class BISFactory;
15class RegisteredCache; 15class RegisteredCache;
16class RegisteredCacheUnion;
16class RomFSFactory; 17class RomFSFactory;
17class SaveDataFactory; 18class SaveDataFactory;
18class SDMCFactory; 19class SDMCFactory;
@@ -45,6 +46,8 @@ ResultVal<FileSys::VirtualDir> OpenSaveData(FileSys::SaveDataSpaceId space,
45 FileSys::SaveDataDescriptor save_struct); 46 FileSys::SaveDataDescriptor save_struct);
46ResultVal<FileSys::VirtualDir> OpenSDMC(); 47ResultVal<FileSys::VirtualDir> OpenSDMC();
47 48
49std::shared_ptr<FileSys::RegisteredCacheUnion> GetUnionContents();
50
48std::shared_ptr<FileSys::RegisteredCache> GetSystemNANDContents(); 51std::shared_ptr<FileSys::RegisteredCache> GetSystemNANDContents();
49std::shared_ptr<FileSys::RegisteredCache> GetUserNANDContents(); 52std::shared_ptr<FileSys::RegisteredCache> GetUserNANDContents();
50std::shared_ptr<FileSys::RegisteredCache> GetSDMCContents(); 53std::shared_ptr<FileSys::RegisteredCache> GetSDMCContents();