improved logging

This commit is contained in:
georgemoralis 2026-04-08 20:07:08 +03:00
parent f696b8de1a
commit c3c6841d10
2 changed files with 57 additions and 17 deletions

View File

@ -17,17 +17,22 @@ static NpProfileDialogState g_state{};
static OrbisNpProfileDialogResult g_result{};
static NpProfileDialogUi g_profile_dialog_ui;
Libraries::CommonDialog::Error PS4_SYSV_ABI
sceNpProfileDialogOpen(OrbisNpProfileDialogParam* param) {
Libraries::CommonDialog::Error sceNpProfileDialogOpen(OrbisNpProfileDialogParam* param) {
if (g_status != Libraries::CommonDialog::Status::INITIALIZED &&
g_status != Libraries::CommonDialog::Status::FINISHED) {
LOG_INFO(Lib_NpProfileDialog, "called without initialize");
LOG_ERROR(Lib_NpProfileDialog, "called without initialize");
return Libraries::CommonDialog::Error::INVALID_STATE;
}
if (param == nullptr) {
LOG_ERROR(Lib_NpProfileDialog, "param is nullptr");
return Libraries::CommonDialog::Error::ARG_NULL;
}
LOG_ERROR(Lib_NpProfileDialog, "(STUBBED) called");
LOG_DEBUG(Lib_NpProfileDialog,
"param details: mode={}, userId={}, targetOnlineId='{}', userData={}",
static_cast<int>(param->mode), param->userId, param->targetOnlineId.data,
fmt::ptr(param->userData));
NpProfileDialogState state{};
state.onlineId = std::string(param->targetOnlineId.data);
state.hasAccountId = false;
@ -37,7 +42,13 @@ sceNpProfileDialogOpen(OrbisNpProfileDialogParam* param) {
g_result = {};
g_result.userData = param->userData;
g_status = Libraries::CommonDialog::Status::RUNNING;
LOG_DEBUG(Lib_NpProfileDialog, "creating UI with onlineId='{}', mode={}, userId={}",
state.onlineId, static_cast<int>(state.mode), state.userId);
g_profile_dialog_ui = NpProfileDialogUi(&g_state, &g_status, &g_result);
LOG_INFO(Lib_NpProfileDialog, "dialog opened successfully for user {}", param->userId);
return Libraries::CommonDialog::Error::OK;
}
@ -56,16 +67,25 @@ Libraries::CommonDialog::Error PS4_SYSV_ABI sceNpProfileDialogClose() {
Libraries::CommonDialog::Error PS4_SYSV_ABI
sceNpProfileDialogGetResult(OrbisNpProfileDialogResult* result) {
LOG_DEBUG(Lib_NpProfileDialog, "called");
if (g_status == Libraries::CommonDialog::Status::NONE) {
LOG_INFO(Lib_NpProfileDialog, "failed: not initialized (g_status=NONE)");
return Libraries::CommonDialog::Error::NOT_INITIALIZED;
}
if (result == nullptr) {
LOG_INFO(Lib_NpProfileDialog, "failed: result pointer is nullptr");
return Libraries::CommonDialog::Error::ARG_NULL;
}
if (g_status != Libraries::CommonDialog::Status::FINISHED) {
LOG_INFO(Lib_NpProfileDialog, "failed: dialog not finished (g_status={})",
static_cast<int>(g_status));
return Libraries::CommonDialog::Error::NOT_FINISHED;
}
*result = g_result;
LOG_DEBUG(Lib_NpProfileDialog, "result details: resultCode={}, userAction={}, userData={}",
g_result.result, static_cast<int>(g_result.userAction), fmt::ptr(g_result.userData));
return Libraries::CommonDialog::Error::OK;
}
@ -76,17 +96,22 @@ Libraries::CommonDialog::Status PS4_SYSV_ABI sceNpProfileDialogGetStatus() {
Libraries::CommonDialog::Error PS4_SYSV_ABI sceNpProfileDialogInitialize() {
if (!CommonDialog::g_isInitialized) {
LOG_INFO(Lib_NpProfileDialog, "failed: system not initialized");
return Libraries::CommonDialog::Error::NOT_SYSTEM_INITIALIZED;
}
if (g_status != Libraries::CommonDialog::Status::NONE) {
LOG_INFO(Lib_NpProfileDialog, "already initialized");
LOG_INFO(Lib_NpProfileDialog, "failed: already initialized (g_status={})",
static_cast<int>(g_status));
return Libraries::CommonDialog::Error::ALREADY_INITIALIZED;
}
if (CommonDialog::g_isUsed) {
LOG_INFO(Lib_NpProfileDialog, "failed: dialog system busy (g_isUsed=true)");
return Libraries::CommonDialog::Error::BUSY;
}
g_status = Libraries::CommonDialog::Status::INITIALIZED;
CommonDialog::g_isUsed = true;
LOG_INFO(Lib_NpProfileDialog, "initialized successfully");
return Libraries::CommonDialog::Error::OK;
}
@ -94,13 +119,20 @@ Libraries::CommonDialog::Error PS4_SYSV_ABI
sceNpProfileDialogOpenA(OrbisNpProfileDialogParamA* param) {
if (g_status != Libraries::CommonDialog::Status::INITIALIZED &&
g_status != Libraries::CommonDialog::Status::FINISHED) {
LOG_INFO(Lib_NpProfileDialog, "called without initialize");
LOG_ERROR(Lib_NpProfileDialog, "called without initialize");
return Libraries::CommonDialog::Error::INVALID_STATE;
}
if (param == nullptr) {
LOG_ERROR(Lib_NpProfileDialog, "failed: param is nullptr");
return Libraries::CommonDialog::Error::ARG_NULL;
}
LOG_DEBUG(Lib_NpProfileDialog,
"param details: mode={}, userId={}, targetAccountId='{}', userData={}",
static_cast<int>(param->mode), param->userId, param->targetAccountId,
fmt::ptr(param->userData));
LOG_ERROR(Lib_NpProfileDialog, "(STUBBED) called");
NpProfileDialogState state{};
state.accountId = param->targetAccountId;
state.hasAccountId = true;
@ -110,19 +142,33 @@ sceNpProfileDialogOpenA(OrbisNpProfileDialogParamA* param) {
g_result = {};
g_result.userData = param->userData;
g_status = Libraries::CommonDialog::Status::RUNNING;
LOG_DEBUG(Lib_NpProfileDialog, "creating UI with accountId='{}', mode={}, userId={}",
state.accountId, static_cast<int>(state.mode), state.userId);
g_profile_dialog_ui = NpProfileDialogUi(&g_state, &g_status, &g_result);
LOG_INFO(Lib_NpProfileDialog, "dialog opened successfully for user {} (account ID variant)",
param->userId);
return Libraries::CommonDialog::Error::OK;
}
Libraries::CommonDialog::Error PS4_SYSV_ABI sceNpProfileDialogTerminate() {
LOG_DEBUG(Lib_NpProfileDialog, "called (g_status={})", static_cast<int>(g_status));
if (g_status == Libraries::CommonDialog::Status::RUNNING) {
LOG_ERROR(Lib_NpProfileDialog, "dialog is running, closing it first");
sceNpProfileDialogClose();
}
if (g_status == Libraries::CommonDialog::Status::NONE) {
LOG_ERROR(Lib_NpProfileDialog, "failed: not initialized (g_status=NONE)");
return Libraries::CommonDialog::Error::NOT_INITIALIZED;
}
g_status = Libraries::CommonDialog::Status::NONE;
CommonDialog::g_isUsed = false;
LOG_INFO(Lib_NpProfileDialog, "terminated successfully");
return Libraries::CommonDialog::Error::OK;
}

View File

@ -22,17 +22,11 @@ enum class OrbisNpProfileDialogMode : u32 {
ORBIS_NP_PROFILE_DIALOG_MODE_GRIEF_REPORT = 4,
};
using OrbisNpProfileGriefReportItem = s32;
static constexpr OrbisNpProfileGriefReportItem
ORBIS_NP_PROFILE_DIALOG_MENU_GRIEF_REPORT_ITEM_INVALID = 0x00000000;
static constexpr OrbisNpProfileGriefReportItem
ORBIS_NP_PROFILE_DIALOG_MENU_GRIEF_REPORT_ITEM_ONLINE_ID = 0x00000001;
static constexpr OrbisNpProfileGriefReportItem ORBIS_NP_PROFILE_DIALOG_MENU_GRIEF_REPORT_ITEM_NAME =
0x00000002;
static constexpr OrbisNpProfileGriefReportItem
ORBIS_NP_PROFILE_DIALOG_MENU_GRIEF_REPORT_ITEM_PICTURE = 0x00000004;
static constexpr OrbisNpProfileGriefReportItem
ORBIS_NP_PROFILE_DIALOG_MENU_GRIEF_REPORT_ITEM_ABOUT_ME = 0x00000008;
static constexpr s32 ORBIS_NP_PROFILE_DIALOG_MENU_GRIEF_REPORT_ITEM_INVALID = 0x00000000;
static constexpr s32 ORBIS_NP_PROFILE_DIALOG_MENU_GRIEF_REPORT_ITEM_ONLINE_ID = 0x00000001;
static constexpr s32 ORBIS_NP_PROFILE_DIALOG_MENU_GRIEF_REPORT_ITEM_NAME = 0x00000002;
static constexpr s32 ORBIS_NP_PROFILE_DIALOG_MENU_GRIEF_REPORT_ITEM_PICTURE = 0x00000004;
static constexpr s32 ORBIS_NP_PROFILE_DIALOG_MENU_GRIEF_REPORT_ITEM_ABOUT_ME = 0x00000008;
struct OrbisNpProfileDialogParam {
CommonDialog::BaseParam baseParam;