summaryrefslogtreecommitdiffstats
path: root/src/core/file_sys/savedata_factory.cpp
diff options
context:
space:
mode:
authorSubv <subv2112@gmail.com>2018-02-19 06:32:00 +0100
committerSubv <subv2112@gmail.com>2018-03-02 01:03:52 +0100
commitd140c8ecf7514e925340cbd3340991c8df0d0c15 (patch)
treed0a91ded4bde7eb1d73f9e6617871d8ff37f08bd /src/core/file_sys/savedata_factory.cpp
parentResultCode: Mark any error code that isn't 0 as an error. (diff)
downloadyuzu-d140c8ecf7514e925340cbd3340991c8df0d0c15.tar
yuzu-d140c8ecf7514e925340cbd3340991c8df0d0c15.tar.gz
yuzu-d140c8ecf7514e925340cbd3340991c8df0d0c15.tar.bz2
yuzu-d140c8ecf7514e925340cbd3340991c8df0d0c15.tar.lz
yuzu-d140c8ecf7514e925340cbd3340991c8df0d0c15.tar.xz
yuzu-d140c8ecf7514e925340cbd3340991c8df0d0c15.tar.zst
yuzu-d140c8ecf7514e925340cbd3340991c8df0d0c15.zip
Diffstat (limited to 'src/core/file_sys/savedata_factory.cpp')
-rw-r--r--src/core/file_sys/savedata_factory.cpp41
1 files changed, 41 insertions, 0 deletions
diff --git a/src/core/file_sys/savedata_factory.cpp b/src/core/file_sys/savedata_factory.cpp
new file mode 100644
index 000000000..0df754e7c
--- /dev/null
+++ b/src/core/file_sys/savedata_factory.cpp
@@ -0,0 +1,41 @@
+// Copyright 2018 yuzu emulator team
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#include <cinttypes>
+#include <memory>
+#include "common/common_types.h"
+#include "common/logging/log.h"
+#include "common/string_util.h"
+#include "core/file_sys/disk_filesystem.h"
+#include "core/file_sys/savedata_factory.h"
+
+namespace FileSys {
+
+SaveData_Factory::SaveData_Factory(std::string nand_directory)
+ : nand_directory(std::move(nand_directory)) {}
+
+ResultVal<std::unique_ptr<FileSystemBackend>> SaveData_Factory::Open(const Path& path) {
+ // TODO(Subv): Somehow obtain these values.
+ u64 title_id = 0;
+ u32 user = 0;
+ std::string save_directory = Common::StringFromFormat("%ssave/%016" PRIX64 "/%08X",
+ nand_directory.c_str(), title_id, user);
+ auto archive = std::make_unique<Disk_FileSystem>(save_directory);
+ return MakeResult<std::unique_ptr<FileSystemBackend>>(std::move(archive));
+}
+
+ResultCode SaveData_Factory::Format(const Path& path,
+ const FileSys::ArchiveFormatInfo& format_info) {
+ LOG_ERROR(Service_FS, "Unimplemented Format archive %s", GetName().c_str());
+ // TODO(bunnei): Find the right error code for this
+ return ResultCode(-1);
+}
+
+ResultVal<ArchiveFormatInfo> SaveData_Factory::GetFormatInfo(const Path& path) const {
+ LOG_ERROR(Service_FS, "Unimplemented GetFormatInfo archive %s", GetName().c_str());
+ // TODO(bunnei): Find the right error code for this
+ return ResultCode(-1);
+}
+
+} // namespace FileSys