mirror of
https://github.com/J-D-K/JKSV.git
synced 2026-03-22 01:34:13 -05:00
46 lines
1.5 KiB
C++
46 lines
1.5 KiB
C++
#pragma once
|
|
#include "data/TitleInfo.hpp"
|
|
|
|
#include <cstdint>
|
|
#include <switch.h>
|
|
|
|
namespace fs
|
|
{
|
|
// clang-format off
|
|
struct SaveMetaData
|
|
{
|
|
uint32_t magic{};
|
|
uint8_t revision{};
|
|
uint64_t applicationID{};
|
|
AccountUid accountID{};
|
|
uint64_t systemSaveID{};
|
|
uint8_t saveDataType{};
|
|
uint8_t saveDataRank{};
|
|
uint16_t saveDataIndex{};
|
|
uint64_t ownerID{};
|
|
uint64_t timestamp{};
|
|
uint32_t flags{};
|
|
int64_t saveDataSize{};
|
|
int64_t journalSize{};
|
|
uint64_t commitID{};
|
|
uint8_t saveDataSpaceID{};
|
|
} __attribute__((packed));
|
|
// clang-format on
|
|
|
|
/// @brief This is the magic value written to the beginning.
|
|
constexpr uint32_t SAVE_META_MAGIC = 0x56534B4A;
|
|
|
|
/// @brief This is the filename used for the save data meta info.
|
|
inline constexpr std::string_view NAME_SAVE_META = ".nx_save_meta.bin";
|
|
|
|
inline constexpr ssize_t SIZE_SAVE_META = sizeof(fs::SaveMetaData);
|
|
|
|
/// @brief Didn't feel like a whole new file just for this. Fills an fs::SaveMetaData struct.
|
|
bool fill_save_meta_data(const FsSaveDataInfo *saveInfo, SaveMetaData &meta) noexcept;
|
|
|
|
/// @brief Processes the save meta data and applies it to the passed saveInfo pointer.
|
|
/// @param saveInfo FsSaveDataInfo to apply the meta to.
|
|
/// @param meta Save meta data to apply.
|
|
bool process_save_meta_data(const FsSaveDataInfo *saveInfo, const SaveMetaData &meta) noexcept;
|
|
} // namespace fs
|