[XAM] Cleanup user settings header to reduce including issues
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
|
||||
#include "xenia/xbox.h"
|
||||
|
||||
#include "xenia/kernel/xam/user_profile.h"
|
||||
#include "xenia/kernel/xam/user_settings.h"
|
||||
|
||||
namespace xe {
|
||||
|
||||
Reference in New Issue
Block a user