draft work for npcallbacks

This commit is contained in:
georgemoralis 2024-09-09 20:51:04 +03:00
parent 1dc3433575
commit 306b6d3191
2 changed files with 25 additions and 4 deletions

View file

@ -874,8 +874,16 @@ int PS4_SYSV_ABI sceNpCheckCallback() {
return ORBIS_OK;
}
struct NpStateCallbackForNpToolkit {
OrbisNpStateCallbackForNpToolkit func;
void* userdata;
};
NpStateCallbackForNpToolkit NpStateCbForNp;
int PS4_SYSV_ABI sceNpCheckCallbackForLib() {
LOG_ERROR(Lib_NpManager, "(STUBBED) called");
// LOG_ERROR(Lib_NpManager, "(STUBBED) called");
NpStateCbForNp.func(0, ORBIS_NP_STATE_SIGNED_OUT, NpStateCbForNp.userdata);
return ORBIS_OK;
}
@ -2507,9 +2515,12 @@ int PS4_SYSV_ABI Func_FF966E4351E564D6() {
return ORBIS_OK;
}
int PS4_SYSV_ABI sceNpRegisterStateCallbackForToolkit() {
int PS4_SYSV_ABI sceNpRegisterStateCallbackForToolkit(OrbisNpStateCallbackForNpToolkit callback,
void* userdata) {
LOG_ERROR(Lib_NpManager, "(STUBBED) called");
return ORBIS_OK;
NpStateCbForNp.func = callback;
NpStateCbForNp.userdata = userdata;
return 1;
}
int PS4_SYSV_ABI sceNpUnregisterStateCallbackForToolkit() {

View file

@ -11,6 +11,15 @@ class SymbolsResolver;
namespace Libraries::NpManager {
enum OrbisNpState {
ORBIS_NP_STATE_UNKNOWN = 0,
ORBIS_NP_STATE_SIGNED_OUT,
ORBIS_NP_STATE_SIGNED_IN
};
using OrbisNpStateCallbackForNpToolkit = PS4_SYSV_ABI void (*)(s32 userId, OrbisNpState state,
void* userdata);
constexpr int ORBIS_NP_ONLINEID_MAX_LENGTH = 16;
typedef int OrbisUserServiceUserId;
@ -526,7 +535,8 @@ int PS4_SYSV_ABI Func_F91B5B25CC9B30D9();
int PS4_SYSV_ABI Func_FC335B7102A585B3();
int PS4_SYSV_ABI Func_FCEAC354CA8B206E();
int PS4_SYSV_ABI Func_FF966E4351E564D6();
int PS4_SYSV_ABI sceNpRegisterStateCallbackForToolkit();
int PS4_SYSV_ABI sceNpRegisterStateCallbackForToolkit(OrbisNpStateCallbackForNpToolkit callback,
void* userdata);
int PS4_SYSV_ABI sceNpUnregisterStateCallbackForToolkit();
void RegisterlibSceNpManager(Core::Loader::SymbolsResolver* sym);