From 70f6af407e015572f2e579836d5987e2db2f5455 Mon Sep 17 00:00:00 2001 From: nmzik Date: Sun, 16 Aug 2026 00:52:16 +0200 Subject: [PATCH] new ABI stubs --- src/libs/audio.cpp | 15 +++++++++++++++ src/libs/audio.h | 1 + src/libs/libAudio.cpp | 1 + src/libs/libNet.cpp | 17 +++++++++++++++++ 4 files changed, 34 insertions(+) diff --git a/src/libs/audio.cpp b/src/libs/audio.cpp index 6a4c74d31..9e46ef28b 100644 --- a/src/libs/audio.cpp +++ b/src/libs/audio.cpp @@ -796,6 +796,8 @@ namespace AudioIn { LIB_NAME("AudioIn", "AudioIn"); +constexpr int AUDIO_IN_SILENT_STATE_DEVICE_NONE = 0x1; + int KYTY_SYSV_ABI AudioInOpen(int user_id, uint32_t type, uint32_t index, uint32_t len, uint32_t freq, uint32_t param) { PRINT_NAME(); @@ -852,6 +854,19 @@ int KYTY_SYSV_ABI AudioInInput(int handle, void* dest) { return static_cast(g_audio->AudioInInput(Audio::Id(handle), dest)); } +int KYTY_SYSV_ABI AudioInGetSilentState(int handle) { + PRINT_NAME(); + + EXIT_IF(g_audio == nullptr); + + if (!g_audio->AudioInValid(Audio::Id(handle))) { + return AUDIO_IN_ERROR_INVALID_HANDLE; + } + + // Audio input has no device backend yet, so every valid port receives silence. + return AUDIO_IN_SILENT_STATE_DEVICE_NONE; +} + } // namespace AudioIn namespace VoiceQoS { diff --git a/src/libs/audio.h b/src/libs/audio.h index 168d9b8ad..53f2586c4 100644 --- a/src/libs/audio.h +++ b/src/libs/audio.h @@ -99,6 +99,7 @@ namespace AudioIn { int KYTY_SYSV_ABI AudioInOpen(int user_id, uint32_t type, uint32_t index, uint32_t len, uint32_t freq, uint32_t param); int KYTY_SYSV_ABI AudioInInput(int handle, void* dest); +int KYTY_SYSV_ABI AudioInGetSilentState(int handle); } // namespace AudioIn diff --git a/src/libs/libAudio.cpp b/src/libs/libAudio.cpp index abc1b975c..836367c29 100644 --- a/src/libs/libAudio.cpp +++ b/src/libs/libAudio.cpp @@ -178,6 +178,7 @@ namespace AudioIn = Audio::AudioIn; LIB_DEFINE(InitAudio_1_AudioIn) { LIB_FUNC("5NE8Sjc7VC8", AudioIn::AudioInOpen); LIB_FUNC("LozEOU8+anM", AudioIn::AudioInInput); + LIB_FUNC("BohEAQ7DlUE", AudioIn::AudioInGetSilentState); } } // namespace LibAudioIn diff --git a/src/libs/libNet.cpp b/src/libs/libNet.cpp index 1b9db8a14..cbf851274 100644 --- a/src/libs/libNet.cpp +++ b/src/libs/libNet.cpp @@ -1404,6 +1404,22 @@ LIB_DEFINE(InitNet_1_NetCtl) { } // namespace LibNetCtl +namespace LibNpCommerce { + +LIB_VERSION("NpCommerce", 1, "NpCommerce", 1, 1); + +static int KYTY_SYSV_ABI NpCommerceDialogUpdateStatus() { + PRINT_NAME(); + + return 0; // SCE_COMMON_DIALOG_STATUS_NONE +} + +LIB_DEFINE(InitNet_1_NpCommerce) { + LIB_FUNC("LR5cwFMMCVE", NpCommerceDialogUpdateStatus); +} + +} // namespace LibNpCommerce + namespace LibNpManager { LIB_VERSION("NpManager", 1, "NpManager", 1, 1); @@ -3935,6 +3951,7 @@ LIB_DEFINE(InitNet_1) { LibHttp::InitNet_1_Http(s); LibHttp2::InitNet_1_Http2(s); LibNetCtl::InitNet_1_NetCtl(s); + LibNpCommerce::InitNet_1_NpCommerce(s); LibNpManager::InitNet_1_NpManager(s); LibNpSessionSignaling::InitNet_1_NpSessionSignaling(s); LibNpEntitlementAccess::InitNet_1_NpEntitlementAccess(s);