From 380475af32507cf8fd1a42d470667bce8f0b69c7 Mon Sep 17 00:00:00 2001 From: FearlessTobi Date: Sun, 18 Feb 2024 23:02:37 +0100 Subject: fsp: Move ISaveDataInfoReader to a seperate file --- .../filesystem/fsp/fs_i_save_data_info_reader.h | 48 ++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 src/core/hle/service/filesystem/fsp/fs_i_save_data_info_reader.h (limited to 'src/core/hle/service/filesystem/fsp/fs_i_save_data_info_reader.h') diff --git a/src/core/hle/service/filesystem/fsp/fs_i_save_data_info_reader.h b/src/core/hle/service/filesystem/fsp/fs_i_save_data_info_reader.h new file mode 100644 index 000000000..86e09973b --- /dev/null +++ b/src/core/hle/service/filesystem/fsp/fs_i_save_data_info_reader.h @@ -0,0 +1,48 @@ +// SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include +#include "common/common_types.h" +#include "core/hle/service/service.h" + +namespace Service::FileSystem { + +class SaveDataController; + +class ISaveDataInfoReader final : public ServiceFramework { +public: + explicit ISaveDataInfoReader(Core::System& system_, + std::shared_ptr save_data_controller_, + FileSys::SaveDataSpaceId space); + ~ISaveDataInfoReader() override; + + void ReadSaveDataInfo(HLERequestContext& ctx); + +private: + void FindAllSaves(FileSys::SaveDataSpaceId space); + void FindNormalSaves(FileSys::SaveDataSpaceId space, const FileSys::VirtualDir& type); + void FindTemporaryStorageSaves(FileSys::SaveDataSpaceId space, const FileSys::VirtualDir& type); + + struct SaveDataInfo { + u64_le save_id_unknown; + FileSys::SaveDataSpaceId space; + FileSys::SaveDataType type; + INSERT_PADDING_BYTES_NOINIT(0x6); + std::array user_id; + u64_le save_id; + u64_le title_id; + u64_le save_image_size; + u16_le index; + FileSys::SaveDataRank rank; + INSERT_PADDING_BYTES_NOINIT(0x25); + }; + static_assert(sizeof(SaveDataInfo) == 0x60, "SaveDataInfo has incorrect size."); + + std::shared_ptr save_data_controller; + std::vector info; + u64 next_entry_index = 0; +}; + +} // namespace Service::FileSystem -- cgit v1.2.3