summaryrefslogtreecommitdiffstats
path: root/src/core/file_sys/patch_manager.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-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