[XAM] Cleanup user settings header to reduce including issues

This commit is contained in:
Adrian
2026-02-04 23:40:23 +00:00
committed by Radosław Gliński
parent 1a9613705d
commit ef65c6761b
4 changed files with 19 additions and 19 deletions

View File

@@ -12,21 +12,11 @@
#include "third_party/fmt/include/fmt/format.h"
#include "xenia/kernel/kernel_state.h"
#include "xenia/kernel/util/shim_utils.h"
#include "xenia/kernel/xam/xdbf/gpd_info.h"
namespace xe {
namespace kernel {
namespace xam {
const static std::array<UserSetting, 3> default_setting_values = {
UserSetting(UserSettingId::XPROFILE_OPTION_CONTROLLER_VIBRATION, 3),
UserSetting(
UserSettingId::XPROFILE_GAMER_TIER,
X_XAMACCOUNTINFO::AccountSubscriptionTier::kSubscriptionTierGold),
UserSetting(
UserSettingId::XPROFILE_GAMERCARD_PICTURE_KEY,
xe::string_util::read_u16string_and_swap(u"FFFE07D10002000200010002"))};
UserSetting::UserSetting(const UserSetting& setting) : UserData(setting) {
setting_id_ = setting.setting_id_;
setting_source_ = setting.setting_source_;
@@ -52,8 +42,7 @@ UserSetting::UserSetting(const X_XDBF_GPD_SETTING_HEADER* profile_setting,
static_cast<UserSettingId>(profile_setting->setting_id.get())),
setting_source_(X_USER_PROFILE_SETTING_SOURCE::TITLE) {}
std::optional<UserSetting> UserSetting::GetDefaultSetting(
const UserProfile* user, uint32_t setting_id) {
std::optional<UserSetting> UserSetting::GetDefaultSetting(uint32_t setting_id) {
for (const auto& setting : default_setting_values) {
if (setting.get_setting_id() == setting_id) {
return std::make_optional<UserSetting>(setting);

View File

@@ -15,16 +15,18 @@
#include <variant>
#include <vector>
#include "xenia/kernel/xam/profile_manager.h"
#include "xenia/kernel/title_id_utils.h"
#include "xenia/kernel/xam/user_data.h"
#include "xenia/kernel/xam/user_profile.h"
#include "xenia/xbox.h"
#include "xenia/kernel/xam/xam.h"
#include "xenia/kernel/xam/xdbf/gpd_info.h"
namespace xe {
namespace kernel {
namespace xam {
enum class X_USER_PROFILE_SETTING_SOURCE : uint32_t;
struct X_USER_PROFILE_SETTING;
constexpr uint32_t SettingKey(X_USER_DATA_TYPE type, uint16_t size,
uint16_t id) {
return static_cast<uint32_t>(type) << 28 | size << 16 | id;
@@ -478,8 +480,7 @@ class UserSetting : public UserData {
UserSetting(const X_XDBF_GPD_SETTING_HEADER* profile_setting,
std::span<const uint8_t> extended_data);
static std::optional<UserSetting> GetDefaultSetting(const UserProfile* user,
uint32_t setting_id);
static std::optional<UserSetting> GetDefaultSetting(uint32_t setting_id);
void WriteToGuest(X_USER_PROFILE_SETTING* setting_ptr,
uint32_t& extended_data_address);
std::vector<uint8_t> Serialize() const;
@@ -521,6 +522,15 @@ class UserSetting : public UserData {
}
};
const static std::array<UserSetting, 3> default_setting_values = {
UserSetting(UserSettingId::XPROFILE_OPTION_CONTROLLER_VIBRATION, 3),
UserSetting(
UserSettingId::XPROFILE_GAMER_TIER,
X_XAMACCOUNTINFO::AccountSubscriptionTier::kSubscriptionTierGold),
UserSetting(
UserSettingId::XPROFILE_GAMERCARD_PICTURE_KEY,
xe::string_util::read_u16string_and_swap(u"FFFE07D10002000200010002"))};
} // namespace xam
} // namespace kernel
} // namespace xe

View File

@@ -559,7 +559,7 @@ std::optional<UserSetting> UserTracker::GetSetting(UserProfile* user,
return gpd_setting.value();
}
return UserSetting::GetDefaultSetting(user, setting_id);
return UserSetting::GetDefaultSetting(setting_id);
}
bool UserTracker::GetUserSetting(uint64_t xuid, uint32_t title_id,

View File

@@ -16,6 +16,7 @@
#include "xenia/xbox.h"
#include "xenia/kernel/xam/user_profile.h"
#include "xenia/kernel/xam/user_settings.h"
namespace xe {