From 3b3c919e204a8fc5d2a4e7f372514f257acbe96e Mon Sep 17 00:00:00 2001 From: Zach Hilman Date: Fri, 10 Aug 2018 15:06:37 -0400 Subject: registration: Take RawCopy function as parameter Instead of defaulting to VfsRawCopy --- src/core/file_sys/registered_cache.h | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'src/core/file_sys/registered_cache.h') diff --git a/src/core/file_sys/registered_cache.h b/src/core/file_sys/registered_cache.h index baaed02dd..f2b07eec8 100644 --- a/src/core/file_sys/registered_cache.h +++ b/src/core/file_sys/registered_cache.h @@ -23,6 +23,7 @@ class CNMT; using NcaID = std::array; using RegisteredCacheParsingFunction = std::function; +using VfsCopyFunction = std::function; struct RegisteredCacheEntry { u64 title_id; @@ -76,13 +77,14 @@ public: // Raw copies all the ncas from the xci to the csache. Does some quick checks to make sure there // is a meta NCA and all of them are accessible. - bool InstallEntry(std::shared_ptr xci); + bool InstallEntry(std::shared_ptr xci, const VfsCopyFunction& copy = &VfsRawCopy); // Due to the fact that we must use Meta-type NCAs to determine the existance of files, this // poses quite a challenge. Instead of creating a new meta NCA for this file, yuzu will create a // dir inside the NAND called 'yuzu_meta' and store the raw CNMT there. // TODO(DarkLordZach): Author real meta-type NCAs and install those. - bool InstallEntry(std::shared_ptr nca, TitleType type); + bool InstallEntry(std::shared_ptr nca, TitleType type, + const VfsCopyFunction& copy = &VfsRawCopy); private: template @@ -95,7 +97,8 @@ private: boost::optional GetNcaIDFromMetadata(u64 title_id, ContentRecordType type) const; VirtualFile GetFileAtID(NcaID id) const; VirtualFile OpenFileOrDirectoryConcat(const VirtualDir& dir, std::string_view path) const; - bool RawInstallNCA(std::shared_ptr nca, boost::optional override_id = boost::none); + bool RawInstallNCA(std::shared_ptr nca, const VfsCopyFunction& copy, + boost::optional override_id = boost::none); bool RawInstallYuzuMeta(const CNMT& cnmt); VirtualDir dir; -- cgit v1.2.3