patch_manager: Centralize Control-type NCA parsing

This commit is contained in:
Zach Hilman
2018-09-03 18:57:52 -04:00
parent 92e26df00f
commit 23a16c1720
6 changed files with 88 additions and 79 deletions

View File

@ -7,13 +7,14 @@
#include <map>
#include <string>
#include "common/common_types.h"
#include "core/file_sys/nca_metadata.h"
#include "core/file_sys/romfs_factory.h"
#include "core/file_sys/vfs.h"
#include "nca_metadata.h"
#include "romfs_factory.h"
namespace FileSys {
class NCA;
class NACP;
enum class TitleVersionFormat : u8 {
ThreeElements, ///< vX.Y.Z
@ -47,6 +48,14 @@ public:
// i.e. Update v80 will return {Update, 80}
std::map<PatchType, std::string> GetPatchVersionNames() const;
// Given title_id of the program, attempts to get the control data of the update and parse it,
// falling back to the base control data.
std::pair<std::shared_ptr<NACP>, VirtualFile> GetControlMetadata() const;
// Version of GetControlMetadata that takes an arbitrary NCA
std::pair<std::shared_ptr<NACP>, VirtualFile> ParseControlNCA(
const std::shared_ptr<NCA>& nca) const;
private:
u64 title_id;
};