diff --git a/src/xenia/kernel/xam/xam_content.cc b/src/xenia/kernel/xam/xam_content.cc index db84e6f9b..5b7ed575e 100644 --- a/src/xenia/kernel/xam/xam_content.cc +++ b/src/xenia/kernel/xam/xam_content.cc @@ -915,6 +915,11 @@ dword_result_t XamContentLaunchImageInternal_entry(lpvoid_t content_data_ptr, DECLARE_XAM_EXPORT1(XamContentLaunchImageInternal, kContent, kStub); +void XamContentRegisterChangeCallback_entry(dword_t callback) { + kernel_state()->xam_state()->SetContentRegisterCallback(callback); +} +DECLARE_XAM_EXPORT1(XamContentRegisterChangeCallback, kContent, kImplemented); + dword_result_t XamContentGetDeviceVolumePath_entry(dword_t device_id, lpvoid_t path_ptr, dword_t path_size, diff --git a/src/xenia/kernel/xam/xam_state.cc b/src/xenia/kernel/xam/xam_state.cc index eaa1e13d7..041cff41c 100644 --- a/src/xenia/kernel/xam/xam_state.cc +++ b/src/xenia/kernel/xam/xam_state.cc @@ -73,6 +73,10 @@ void XamState::LoadSpaInfo(const SpaInfo* info, user_tracker_->UpdateSpaInfo(spa_info_.get(), title_path); } +void XamState::SetContentRegisterCallback(uint32_t callback) { + content_register_callback = callback; +} + } // namespace xam } // namespace kernel } // namespace xe diff --git a/src/xenia/kernel/xam/xam_state.h b/src/xenia/kernel/xam/xam_state.h index f775ff5b6..f9527857a 100644 --- a/src/xenia/kernel/xam/xam_state.h +++ b/src/xenia/kernel/xam/xam_state.h @@ -58,9 +58,12 @@ class XamState { void LoadSpaInfo(const SpaInfo* info, const std::filesystem::path& title_path = {}); + void SetContentRegisterCallback(uint32_t callback); + X_DASH_APP_INFO dash_app_info_ = {}; uint32_t dash_backstack_nodes_count_ = 0; X_DASH_BACKSTACK_DATA dash_backstack_data_[2] = {}; + uint32_t content_register_callback = 0; std::atomic xam_dialogs_shown_ = {0}; std::atomic xam_nui_dialogs_shown_ = {0};