Savestates: serilialize avc2_settings

This commit is contained in:
Eladash 2024-04-12 21:22:48 +03:00 committed by Elad Ashkenazi
parent d1837b54b4
commit a9fd2f76d2
2 changed files with 24 additions and 1 deletions

View file

@ -68,12 +68,33 @@ struct avc2_settings
avc2_settings(const avc2_settings&) = delete;
avc2_settings& operator=(const avc2_settings&) = delete;
SAVESTATE_INIT_POS(52);
vm::ptr<CellSysutilAvc2Callback> avc2_cb{};
vm::ptr<void> avc2_cb_arg{};
u32 streaming_mode = CELL_SYSUTIL_AVC2_STREAMING_MODE_NORMAL;
u8 mic_out_stream_sharing = 0;
u8 video_stream_sharing = 0;
u32 total_video_bitrate = 0;
avc2_settings(utils::serial& ar) noexcept
{
[[maybe_unused]] const s32 version = GET_SERIALIZATION_VERSION(cellSysutil);
if (version == 0)
{
return;
}
save(ar);
}
void save(utils::serial& ar)
{
GET_OR_USE_SERIALIZATION_VERSION(ar.is_writing(), cellSysutil);
ar(avc2_cb, avc2_cb_arg, streaming_mode, mic_out_stream_sharing, video_stream_sharing, total_video_bitrate);
}
};
error_code cellSysutilAvc2GetPlayerInfo(vm::cptr<SceNpMatching2RoomMemberId> player_id, vm::ptr<CellSysutilAvc2PlayerInfo> player_info)

View file

@ -25,7 +25,7 @@ struct serial_ver_t
std::set<u16> compatible_versions;
};
static std::array<serial_ver_t, 26> s_serial_versions;
static std::array<serial_ver_t, 27> s_serial_versions;
#define SERIALIZATION_VER(name, identifier, ...) \
\
@ -86,6 +86,8 @@ SERIALIZATION_VER(sys_io, 23, 2)
SERIALIZATION_VER(LLE, 24, 1)
SERIALIZATION_VER(HLE, 25, 1)
SERIALIZATION_VER(cellSysutil, 26, 1)
template <>
void fmt_class_string<std::remove_cvref_t<decltype(s_serial_versions)>>::format(std::string& out, u64 arg)
{