diff --git a/src/core/libraries/companion/companion_httpd.cpp b/src/core/libraries/companion/companion_httpd.cpp index e35f5faa7..9de35cce9 100644 --- a/src/core/libraries/companion/companion_httpd.cpp +++ b/src/core/libraries/companion/companion_httpd.cpp @@ -18,9 +18,10 @@ s32 PS4_SYSV_ABI sceCompanionHttpdGet2ndScreenStatus() { return ORBIS_OK; } -s32 PS4_SYSV_ABI sceCompanionHttpdGetEvent() { - LOG_ERROR(Lib_CompanionHttpd, "(STUBBED) called"); - return ORBIS_OK; +s32 PS4_SYSV_ABI sceCompanionHttpdGetEvent(OrbisCompanionHttpdEvent* pEvent) { + pEvent->event = 0x10000002; // disconnected + LOG_DEBUG(Lib_CompanionHttpd, "device disconnected"); + return 0x80E40008; // No events to obtain } s32 PS4_SYSV_ABI sceCompanionHttpdGetUserId() { diff --git a/src/core/libraries/companion/companion_httpd.h b/src/core/libraries/companion/companion_httpd.h index d8a347004..dbb985723 100644 --- a/src/core/libraries/companion/companion_httpd.h +++ b/src/core/libraries/companion/companion_httpd.h @@ -4,6 +4,8 @@ #pragma once #include "common/types.h" +#include "core/libraries/network/net.h" +#include "core/libraries/system/userservice.h" namespace Core::Loader { class SymbolsResolver; @@ -11,9 +13,23 @@ class SymbolsResolver; namespace Libraries::CompanionHttpd { +struct OrbisCompanionUtilDeviceInfo { + Libraries::UserService::OrbisUserServiceUserId userId; + Libraries::Net::OrbisNetSockaddrIn addr; + char reserved[236]; +}; + +struct OrbisCompanionHttpdEvent { + s32 event; + union { + OrbisCompanionUtilDeviceInfo deviceInfo; + Libraries::UserService::OrbisUserServiceUserId userId; + char reserved[256]; + } data; +}; s32 PS4_SYSV_ABI sceCompanionHttpdAddHeader(); s32 PS4_SYSV_ABI sceCompanionHttpdGet2ndScreenStatus(); -s32 PS4_SYSV_ABI sceCompanionHttpdGetEvent(); +s32 PS4_SYSV_ABI sceCompanionHttpdGetEvent(OrbisCompanionHttpdEvent* pEvent); s32 PS4_SYSV_ABI sceCompanionHttpdGetUserId(); s32 PS4_SYSV_ABI sceCompanionHttpdInitialize(); s32 PS4_SYSV_ABI sceCompanionHttpdInitialize2();