diff options
author | Zach Hilman <DarkLordZach@users.noreply.github.com> | 2018-07-17 21:42:15 +0200 |
---|---|---|
committer | bunnei <bunneidev@gmail.com> | 2018-07-17 21:42:15 +0200 |
commit | 69bfe075b5c3f6b17ce269950d1f8c9aab18e2de (patch) | |
tree | 8fca65bb5b3a0a8fb2b0772020d5b8d47749c3b3 /src/core/file_sys/savedata_factory.h | |
parent | Merge pull request #671 from MerryMage/clear-exclusive-state (diff) | |
download | yuzu-69bfe075b5c3f6b17ce269950d1f8c9aab18e2de.tar yuzu-69bfe075b5c3f6b17ce269950d1f8c9aab18e2de.tar.gz yuzu-69bfe075b5c3f6b17ce269950d1f8c9aab18e2de.tar.bz2 yuzu-69bfe075b5c3f6b17ce269950d1f8c9aab18e2de.tar.lz yuzu-69bfe075b5c3f6b17ce269950d1f8c9aab18e2de.tar.xz yuzu-69bfe075b5c3f6b17ce269950d1f8c9aab18e2de.tar.zst yuzu-69bfe075b5c3f6b17ce269950d1f8c9aab18e2de.zip |
Diffstat (limited to '')
-rw-r--r-- | src/core/file_sys/savedata_factory.h | 46 |
1 files changed, 37 insertions, 9 deletions
diff --git a/src/core/file_sys/savedata_factory.h b/src/core/file_sys/savedata_factory.h index 73a42aab6..b96721ac0 100644 --- a/src/core/file_sys/savedata_factory.h +++ b/src/core/file_sys/savedata_factory.h @@ -12,22 +12,50 @@ namespace FileSys { +enum class SaveDataSpaceId : u8 { + NandSystem = 0, + NandUser = 1, + SdCard = 2, + TemporaryStorage = 3, +}; + +enum class SaveDataType : u8 { + SystemSaveData = 0, + SaveData = 1, + BcatDeliveryCacheStorage = 2, + DeviceSaveData = 3, + TemporaryStorage = 4, + CacheStorage = 5, +}; + +struct SaveDataDescriptor { + u64_le title_id; + u128 user_id; + u64_le save_id; + SaveDataType type; + INSERT_PADDING_BYTES(7); + u64_le zero_1; + u64_le zero_2; + u64_le zero_3; + + std::string DebugInfo(); +}; +static_assert(sizeof(SaveDataDescriptor) == 0x40, "SaveDataDescriptor has incorrect size."); + /// File system interface to the SaveData archive -class SaveData_Factory final : public FileSystemFactory { +class SaveDataFactory { public: - explicit SaveData_Factory(std::string nand_directory); + explicit SaveDataFactory(std::string nand_directory); - std::string GetName() const override { - return "SaveData_Factory"; - } - ResultVal<std::unique_ptr<FileSystemBackend>> Open(const Path& path) override; - ResultCode Format(const Path& path) override; - ResultVal<ArchiveFormatInfo> GetFormatInfo(const Path& path) const override; + ResultVal<std::unique_ptr<FileSystemBackend>> Open(SaveDataSpaceId space, + SaveDataDescriptor meta); private: std::string nand_directory; + std::string sd_directory; - std::string GetFullPath() const; + std::string GetFullPath(SaveDataSpaceId space, SaveDataType type, u64 title_id, u128 user_id, + u64 save_id) const; }; } // namespace FileSys |