service: ac: Replace intances of ProfileData with UserData
This commit is contained in:
		@@ -290,7 +290,7 @@ protected:
 | 
			
		||||
    void Get(Kernel::HLERequestContext& ctx) {
 | 
			
		||||
        LOG_DEBUG(Service_ACC, "called user_id=0x{}", user_id.RawString());
 | 
			
		||||
        ProfileBase profile_base{};
 | 
			
		||||
        ProfileData data{};
 | 
			
		||||
        UserData data{};
 | 
			
		||||
        if (profile_manager.GetProfileBaseAndData(user_id, profile_base, data)) {
 | 
			
		||||
            ctx.WriteBuffer(data);
 | 
			
		||||
            IPC::ResponseBuilder rb{ctx, 16};
 | 
			
		||||
@@ -373,18 +373,18 @@ protected:
 | 
			
		||||
                      reinterpret_cast<const char*>(base.username.data()), base.username.size()),
 | 
			
		||||
                  base.timestamp, base.user_uuid.RawString());
 | 
			
		||||
 | 
			
		||||
        if (user_data.size() < sizeof(ProfileData)) {
 | 
			
		||||
            LOG_ERROR(Service_ACC, "ProfileData buffer too small!");
 | 
			
		||||
        if (user_data.size() < sizeof(UserData)) {
 | 
			
		||||
            LOG_ERROR(Service_ACC, "UserData buffer too small!");
 | 
			
		||||
            IPC::ResponseBuilder rb{ctx, 2};
 | 
			
		||||
            rb.Push(ERR_INVALID_BUFFER);
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        ProfileData data;
 | 
			
		||||
        std::memcpy(&data, user_data.data(), sizeof(ProfileData));
 | 
			
		||||
        UserData data;
 | 
			
		||||
        std::memcpy(&data, user_data.data(), sizeof(UserData));
 | 
			
		||||
 | 
			
		||||
        if (!profile_manager.SetProfileBaseAndData(user_id, base, data)) {
 | 
			
		||||
            LOG_ERROR(Service_ACC, "Failed to update profile data and base!");
 | 
			
		||||
            LOG_ERROR(Service_ACC, "Failed to update user data and base!");
 | 
			
		||||
            IPC::ResponseBuilder rb{ctx, 2};
 | 
			
		||||
            rb.Push(ERR_FAILED_SAVE_DATA);
 | 
			
		||||
            return;
 | 
			
		||||
@@ -406,15 +406,15 @@ protected:
 | 
			
		||||
                      reinterpret_cast<const char*>(base.username.data()), base.username.size()),
 | 
			
		||||
                  base.timestamp, base.user_uuid.RawString());
 | 
			
		||||
 | 
			
		||||
        if (user_data.size() < sizeof(ProfileData)) {
 | 
			
		||||
            LOG_ERROR(Service_ACC, "ProfileData buffer too small!");
 | 
			
		||||
        if (user_data.size() < sizeof(UserData)) {
 | 
			
		||||
            LOG_ERROR(Service_ACC, "UserData buffer too small!");
 | 
			
		||||
            IPC::ResponseBuilder rb{ctx, 2};
 | 
			
		||||
            rb.Push(ERR_INVALID_BUFFER);
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        ProfileData data;
 | 
			
		||||
        std::memcpy(&data, user_data.data(), sizeof(ProfileData));
 | 
			
		||||
        UserData data;
 | 
			
		||||
        std::memcpy(&data, user_data.data(), sizeof(UserData));
 | 
			
		||||
 | 
			
		||||
        Common::FS::IOFile image(GetImagePath(user_id), Common::FS::FileAccessMode::Write,
 | 
			
		||||
                                 Common::FS::FileType::BinaryFile);
 | 
			
		||||
 
 | 
			
		||||
@@ -22,7 +22,7 @@ struct UserRaw {
 | 
			
		||||
    UUID uuid2{};
 | 
			
		||||
    u64 timestamp{};
 | 
			
		||||
    ProfileUsername username{};
 | 
			
		||||
    ProfileData extra_data{};
 | 
			
		||||
    UserData extra_data{};
 | 
			
		||||
};
 | 
			
		||||
static_assert(sizeof(UserRaw) == 0xC8, "UserRaw has incorrect size.");
 | 
			
		||||
 | 
			
		||||
@@ -263,7 +263,7 @@ UUID ProfileManager::GetLastOpenedUser() const {
 | 
			
		||||
 | 
			
		||||
/// Return the users profile base and the unknown arbitary data.
 | 
			
		||||
bool ProfileManager::GetProfileBaseAndData(std::optional<std::size_t> index, ProfileBase& profile,
 | 
			
		||||
                                           ProfileData& data) const {
 | 
			
		||||
                                           UserData& data) const {
 | 
			
		||||
    if (GetProfileBase(index, profile)) {
 | 
			
		||||
        data = profiles[*index].data;
 | 
			
		||||
        return true;
 | 
			
		||||
@@ -272,15 +272,14 @@ bool ProfileManager::GetProfileBaseAndData(std::optional<std::size_t> index, Pro
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/// Return the users profile base and the unknown arbitary data.
 | 
			
		||||
bool ProfileManager::GetProfileBaseAndData(UUID uuid, ProfileBase& profile,
 | 
			
		||||
                                           ProfileData& data) const {
 | 
			
		||||
bool ProfileManager::GetProfileBaseAndData(UUID uuid, ProfileBase& profile, UserData& data) const {
 | 
			
		||||
    const auto idx = GetUserIndex(uuid);
 | 
			
		||||
    return GetProfileBaseAndData(idx, profile, data);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/// Return the users profile base and the unknown arbitary data.
 | 
			
		||||
bool ProfileManager::GetProfileBaseAndData(const ProfileInfo& user, ProfileBase& profile,
 | 
			
		||||
                                           ProfileData& data) const {
 | 
			
		||||
                                           UserData& data) const {
 | 
			
		||||
    return GetProfileBaseAndData(user.user_uuid, profile, data);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -318,7 +317,7 @@ bool ProfileManager::SetProfileBase(UUID uuid, const ProfileBase& profile_new) {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool ProfileManager::SetProfileBaseAndData(Common::UUID uuid, const ProfileBase& profile_new,
 | 
			
		||||
                                           const ProfileData& data_new) {
 | 
			
		||||
                                           const UserData& data_new) {
 | 
			
		||||
    const auto index = GetUserIndex(uuid);
 | 
			
		||||
    if (index.has_value() && SetProfileBase(uuid, profile_new)) {
 | 
			
		||||
        profiles[*index].data = data_new;
 | 
			
		||||
 
 | 
			
		||||
@@ -22,7 +22,7 @@ using UserIDArray = std::array<Common::UUID, MAX_USERS>;
 | 
			
		||||
 | 
			
		||||
/// Contains extra data related to a user.
 | 
			
		||||
/// TODO: RE this structure
 | 
			
		||||
struct ProfileData {
 | 
			
		||||
struct UserData {
 | 
			
		||||
    INSERT_PADDING_WORDS_NOINIT(1);
 | 
			
		||||
    u32 icon_id;
 | 
			
		||||
    u8 bg_color_id;
 | 
			
		||||
@@ -30,7 +30,7 @@ struct ProfileData {
 | 
			
		||||
    INSERT_PADDING_BYTES_NOINIT(0x10);
 | 
			
		||||
    INSERT_PADDING_BYTES_NOINIT(0x60);
 | 
			
		||||
};
 | 
			
		||||
static_assert(sizeof(ProfileData) == 0x80, "ProfileData structure has incorrect size");
 | 
			
		||||
static_assert(sizeof(UserData) == 0x80, "UserData structure has incorrect size");
 | 
			
		||||
 | 
			
		||||
/// This holds general information about a users profile. This is where we store all the information
 | 
			
		||||
/// based on a specific user
 | 
			
		||||
@@ -38,7 +38,7 @@ struct ProfileInfo {
 | 
			
		||||
    Common::UUID user_uuid{};
 | 
			
		||||
    ProfileUsername username{};
 | 
			
		||||
    u64 creation_time{};
 | 
			
		||||
    ProfileData data{}; // TODO(ognik): Work out what this is
 | 
			
		||||
    UserData data{}; // TODO(ognik): Work out what this is
 | 
			
		||||
    bool is_open{};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
@@ -74,10 +74,9 @@ public:
 | 
			
		||||
    bool GetProfileBase(Common::UUID uuid, ProfileBase& profile) const;
 | 
			
		||||
    bool GetProfileBase(const ProfileInfo& user, ProfileBase& profile) const;
 | 
			
		||||
    bool GetProfileBaseAndData(std::optional<std::size_t> index, ProfileBase& profile,
 | 
			
		||||
                               ProfileData& data) const;
 | 
			
		||||
    bool GetProfileBaseAndData(Common::UUID uuid, ProfileBase& profile, ProfileData& data) const;
 | 
			
		||||
    bool GetProfileBaseAndData(const ProfileInfo& user, ProfileBase& profile,
 | 
			
		||||
                               ProfileData& data) const;
 | 
			
		||||
                               UserData& data) const;
 | 
			
		||||
    bool GetProfileBaseAndData(Common::UUID uuid, ProfileBase& profile, UserData& data) const;
 | 
			
		||||
    bool GetProfileBaseAndData(const ProfileInfo& user, ProfileBase& profile, UserData& data) const;
 | 
			
		||||
    std::size_t GetUserCount() const;
 | 
			
		||||
    std::size_t GetOpenUserCount() const;
 | 
			
		||||
    bool UserExists(Common::UUID uuid) const;
 | 
			
		||||
@@ -93,7 +92,7 @@ public:
 | 
			
		||||
    bool RemoveUser(Common::UUID uuid);
 | 
			
		||||
    bool SetProfileBase(Common::UUID uuid, const ProfileBase& profile_new);
 | 
			
		||||
    bool SetProfileBaseAndData(Common::UUID uuid, const ProfileBase& profile_new,
 | 
			
		||||
                               const ProfileData& data_new);
 | 
			
		||||
                               const UserData& data_new);
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
    void ParseUserSaveFile();
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user