aboutsummaryrefslogtreecommitdiff
path: root/src/core/file_sys/archive_other_savedata.h
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2016-12-07 10:17:02 -0500
committerGitHub <noreply@github.com>2016-12-07 10:17:02 -0500
commit8d529a5cda86f6c59f21829d8a15deb5586c1c8d (patch)
tree06d0905c9fe39743cad4f71d9dd95321226cc61c /src/core/file_sys/archive_other_savedata.h
parentc4e4fa53d9200bbac34a498d55cde381e3112764 (diff)
parent589b6427909dfc7a4b5ee1a64cb86d38d459b0f3 (diff)
Merge pull request #2232 from wwylele/other-save
FS: implement archives for other game save data
Diffstat (limited to 'src/core/file_sys/archive_other_savedata.h')
-rw-r--r--src/core/file_sys/archive_other_savedata.h52
1 files changed, 52 insertions, 0 deletions
diff --git a/src/core/file_sys/archive_other_savedata.h b/src/core/file_sys/archive_other_savedata.h
new file mode 100644
index 000000000..d80725158
--- /dev/null
+++ b/src/core/file_sys/archive_other_savedata.h
@@ -0,0 +1,52 @@
+// Copyright 2016 Citra Emulator Project
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#pragma once
+
+#include "core/file_sys/archive_source_sd_savedata.h"
+
+////////////////////////////////////////////////////////////////////////////////////////////////////
+// FileSys namespace
+
+namespace FileSys {
+
+/// File system interface to the OtherSaveDataPermitted archive
+class ArchiveFactory_OtherSaveDataPermitted final : public ArchiveFactory {
+public:
+ explicit ArchiveFactory_OtherSaveDataPermitted(
+ std::shared_ptr<ArchiveSource_SDSaveData> sd_savedata_source);
+
+ std::string GetName() const override {
+ return "OtherSaveDataPermitted";
+ }
+
+ ResultVal<std::unique_ptr<ArchiveBackend>> Open(const Path& path) override;
+ ResultCode Format(const Path& path, const FileSys::ArchiveFormatInfo& format_info) override;
+ ResultVal<ArchiveFormatInfo> GetFormatInfo(const Path& path) const override;
+
+private:
+ std::string mount_point;
+ std::shared_ptr<ArchiveSource_SDSaveData> sd_savedata_source;
+};
+
+/// File system interface to the OtherSaveDataGeneral archive
+class ArchiveFactory_OtherSaveDataGeneral final : public ArchiveFactory {
+public:
+ explicit ArchiveFactory_OtherSaveDataGeneral(
+ std::shared_ptr<ArchiveSource_SDSaveData> sd_savedata_source);
+
+ std::string GetName() const override {
+ return "OtherSaveDataGeneral";
+ }
+
+ ResultVal<std::unique_ptr<ArchiveBackend>> Open(const Path& path) override;
+ ResultCode Format(const Path& path, const FileSys::ArchiveFormatInfo& format_info) override;
+ ResultVal<ArchiveFormatInfo> GetFormatInfo(const Path& path) const override;
+
+private:
+ std::string mount_point;
+ std::shared_ptr<ArchiveSource_SDSaveData> sd_savedata_source;
+};
+
+} // namespace FileSys