aboutsummaryrefslogtreecommitdiff
path: root/src/core/file_sys/patch_manager.h
diff options
context:
space:
mode:
authorZach Hilman <zachhilman@gmail.com>2018-08-25 19:03:45 -0400
committerZach Hilman <zachhilman@gmail.com>2018-09-04 16:22:25 -0400
commit8e900a301a1094d74f68f173c7dec67b12baec25 (patch)
tree1f9491769fc1f59b207e0442d1b903018a868ed9 /src/core/file_sys/patch_manager.h
parent54e7ddb93a1a0357c14d03aeb182c7c98bb9cebb (diff)
file_sys: Add class to manage game patches
Right now only includes Updates, but should eventually contain all of the other patches we need.
Diffstat (limited to 'src/core/file_sys/patch_manager.h')
-rw-r--r--src/core/file_sys/patch_manager.h42
1 files changed, 42 insertions, 0 deletions
diff --git a/src/core/file_sys/patch_manager.h b/src/core/file_sys/patch_manager.h
new file mode 100644
index 000000000..2a39c473a
--- /dev/null
+++ b/src/core/file_sys/patch_manager.h
@@ -0,0 +1,42 @@
+// Copyright 2018 yuzu emulator team
+// Licensed under GPLv2 or any later version
+// Refer to the license.txt file included.
+
+#pragma once
+
+#include <map>
+#include "common/common_types.h"
+#include "core/file_sys/vfs.h"
+
+namespace FileSys {
+
+std::string FormatTitleVersion(u32 version, bool full = false);
+
+enum class PatchType {
+ Update,
+};
+
+std::string FormatPatchTypeName(PatchType type);
+
+// A centralized class to manage patches to games.
+class PatchManager {
+public:
+ explicit PatchManager(u64 title_id);
+
+ // Currently tracked ExeFS patches:
+ // - Game Updates
+ VirtualDir PatchExeFS(VirtualDir exefs) const;
+
+ // Currently tracked RomFS patches:
+ // - Game Updates
+ VirtualFile PatchRomFS(VirtualFile romfs) const;
+
+ // Returns a vector of pairs between patch names and patch versions.
+ // i.e. Update v80 will return {Update, 80}
+ std::map<PatchType, u32> GetPatchVersionNames() const;
+
+private:
+ u64 title_id;
+};
+
+} // namespace FileSys