[XAM/INFO] - Implement XamGetDashBackstackData
- Implement XamGetDashBackstackData
This commit is contained in:
committed by
Radosław Gliński
parent
e27b1d1cb5
commit
2de1b0b2dd
@@ -199,6 +199,11 @@ struct X_DASH_APP_INFO {
|
||||
};
|
||||
static_assert_size(X_DASH_APP_INFO, 0xC);
|
||||
|
||||
struct X_DASH_BACKSTACK_DATA {
|
||||
uint8_t unk1[0x314];
|
||||
};
|
||||
static_assert_size(X_DASH_BACKSTACK_DATA, 0x314);
|
||||
|
||||
struct X_GUID {
|
||||
xe::be<uint32_t> Data1;
|
||||
xe::be<uint16_t> Data2;
|
||||
|
||||
@@ -788,6 +788,22 @@ void XamGetActiveDashAppInfo_entry(pointer_t<X_DASH_APP_INFO> dash_app) {
|
||||
}
|
||||
DECLARE_XAM_EXPORT1(XamGetActiveDashAppInfo, kNone, kImplemented);
|
||||
|
||||
dword_result_t XamGetDashBackstackData_entry(
|
||||
pointer_t<X_DASH_BACKSTACK_DATA> backstack_data, lpdword_t count) {
|
||||
auto xam_state_ = kernel_state()->xam_state();
|
||||
uint32_t total = xam_state_->dash_backstack_nodes_count_;
|
||||
if (total) {
|
||||
if (*count <= total) {
|
||||
total = *count;
|
||||
}
|
||||
std::memcpy(backstack_data, &xam_state_->dash_backstack_data_,
|
||||
sizeof(X_DASH_BACKSTACK_DATA) * total);
|
||||
xam_state_->dash_backstack_nodes_count_ = 0;
|
||||
}
|
||||
return X_ERROR_SUCCESS;
|
||||
}
|
||||
DECLARE_XAM_EXPORT1(XamGetDashBackstackData, kNone, kImplemented);
|
||||
|
||||
void XampWebInstrumentationSetProfileCounts_entry(dword_t live_profiles,
|
||||
dword_t local_profiles,
|
||||
dword_t adult_profiles,
|
||||
|
||||
@@ -58,6 +58,8 @@ class XamState {
|
||||
void LoadSpaInfo(const SpaInfo* info);
|
||||
|
||||
X_DASH_APP_INFO dash_app_info_ = {};
|
||||
uint32_t dash_backstack_nodes_count_ = 0;
|
||||
X_DASH_BACKSTACK_DATA dash_backstack_data_[2] = {};
|
||||
|
||||
std::atomic<int32_t> xam_dialogs_shown_ = {0};
|
||||
std::atomic<int32_t> xam_nui_dialogs_shown_ = {0};
|
||||
|
||||
Reference in New Issue
Block a user