summaryrefslogtreecommitdiffstats
path: root/src/core/file_sys/savedata_factory.h
diff options
context:
space:
mode:
authorZach Hilman <DarkLordZach@users.noreply.github.com>2018-07-17 21:42:15 +0200
committerbunnei <bunneidev@gmail.com>2018-07-17 21:42:15 +0200
commit69bfe075b5c3f6b17ce269950d1f8c9aab18e2de (patch)
tree8fca65bb5b3a0a8fb2b0772020d5b8d47749c3b3 /src/core/file_sys/savedata_factory.h
parentMerge pull request #671 from MerryMage/clear-exclusive-state (diff)
downloadyuzu-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.h46
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