From 5a552fbe77e6d0026501bbcc0667350773b962a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Bernon?= Date: Tue, 3 Oct 2023 09:40:50 +0200 Subject: [PATCH] lsteamclient: Use unix callbacks for custom client classes. CW-Bug-Id: #22729 --- lsteamclient/Makefile.in | 1 - ...kingServers_SteamMatchMakingServers001.cpp | 81 ---- ...kingServers_SteamMatchMakingServers002.cpp | 81 ---- ...rkingSockets_SteamNetworkingSockets006.cpp | 18 - ...rkingSockets_SteamNetworkingSockets008.cpp | 18 - lsteamclient/gen_wrapper.py | 60 +-- lsteamclient/steamclient_main.c | 62 +++ lsteamclient/steamclient_structs_generated.h | 40 +- lsteamclient/steamclient_wrappers.c | 307 -------------- lsteamclient/unix_private.h | 10 +- lsteamclient/unix_private_generated.h | 24 +- lsteamclient/unix_steam_networking_manual.cpp | 378 ++++++++++++++++++ lsteamclient/unixlib.cpp | 65 +++ lsteamclient/unixlib.h | 27 ++ lsteamclient/unixlib_generated.h | 24 +- lsteamclient/winISteamMatchmakingServers.c | 24 +- lsteamclient/winISteamNetworkingFakeUDPPort.c | 2 +- 17 files changed, 641 insertions(+), 581 deletions(-) delete mode 100644 lsteamclient/steamclient_wrappers.c diff --git a/lsteamclient/Makefile.in b/lsteamclient/Makefile.in index 30271955..73c174c6 100644 --- a/lsteamclient/Makefile.in +++ b/lsteamclient/Makefile.in @@ -9,7 +9,6 @@ SOURCES = \ steam_networking_manual.c \ steamclient_generated.c \ steamclient_main.c \ - steamclient_wrappers.c \ winISteamAppList.c \ winISteamApps.c \ winISteamAppTicket.c \ diff --git a/lsteamclient/cppISteamMatchmakingServers_SteamMatchMakingServers001.cpp b/lsteamclient/cppISteamMatchmakingServers_SteamMatchMakingServers001.cpp index 188ee6c8..8c61644c 100644 --- a/lsteamclient/cppISteamMatchmakingServers_SteamMatchMakingServers001.cpp +++ b/lsteamclient/cppISteamMatchmakingServers_SteamMatchMakingServers001.cpp @@ -1,60 +1,6 @@ /* This file is auto-generated, do not edit. */ #include "unix_private.h" -NTSTATUS ISteamMatchmakingServers_SteamMatchMakingServers001_RequestInternetServerList( void *args ) -{ - struct ISteamMatchmakingServers_SteamMatchMakingServers001_RequestInternetServerList_params *params = (struct ISteamMatchmakingServers_SteamMatchMakingServers001_RequestInternetServerList_params *)args; - struct u_ISteamMatchmakingServers_SteamMatchMakingServers001 *iface = (struct u_ISteamMatchmakingServers_SteamMatchMakingServers001 *)params->linux_side; - u_ISteamMatchmakingServerListResponse *u_pRequestServersResponse = create_LinuxISteamMatchmakingServerListResponse( params->pRequestServersResponse, "ISteamMatchmakingServers_SteamMatchMakingServers001" ); - iface->RequestInternetServerList( params->iApp, params->ppchFilters, params->nFilters, u_pRequestServersResponse ); - return 0; -} - -NTSTATUS ISteamMatchmakingServers_SteamMatchMakingServers001_RequestLANServerList( void *args ) -{ - struct ISteamMatchmakingServers_SteamMatchMakingServers001_RequestLANServerList_params *params = (struct ISteamMatchmakingServers_SteamMatchMakingServers001_RequestLANServerList_params *)args; - struct u_ISteamMatchmakingServers_SteamMatchMakingServers001 *iface = (struct u_ISteamMatchmakingServers_SteamMatchMakingServers001 *)params->linux_side; - u_ISteamMatchmakingServerListResponse *u_pRequestServersResponse = create_LinuxISteamMatchmakingServerListResponse( params->pRequestServersResponse, "ISteamMatchmakingServers_SteamMatchMakingServers001" ); - iface->RequestLANServerList( params->iApp, u_pRequestServersResponse ); - return 0; -} - -NTSTATUS ISteamMatchmakingServers_SteamMatchMakingServers001_RequestFriendsServerList( void *args ) -{ - struct ISteamMatchmakingServers_SteamMatchMakingServers001_RequestFriendsServerList_params *params = (struct ISteamMatchmakingServers_SteamMatchMakingServers001_RequestFriendsServerList_params *)args; - struct u_ISteamMatchmakingServers_SteamMatchMakingServers001 *iface = (struct u_ISteamMatchmakingServers_SteamMatchMakingServers001 *)params->linux_side; - u_ISteamMatchmakingServerListResponse *u_pRequestServersResponse = create_LinuxISteamMatchmakingServerListResponse( params->pRequestServersResponse, "ISteamMatchmakingServers_SteamMatchMakingServers001" ); - iface->RequestFriendsServerList( params->iApp, params->ppchFilters, params->nFilters, u_pRequestServersResponse ); - return 0; -} - -NTSTATUS ISteamMatchmakingServers_SteamMatchMakingServers001_RequestFavoritesServerList( void *args ) -{ - struct ISteamMatchmakingServers_SteamMatchMakingServers001_RequestFavoritesServerList_params *params = (struct ISteamMatchmakingServers_SteamMatchMakingServers001_RequestFavoritesServerList_params *)args; - struct u_ISteamMatchmakingServers_SteamMatchMakingServers001 *iface = (struct u_ISteamMatchmakingServers_SteamMatchMakingServers001 *)params->linux_side; - u_ISteamMatchmakingServerListResponse *u_pRequestServersResponse = create_LinuxISteamMatchmakingServerListResponse( params->pRequestServersResponse, "ISteamMatchmakingServers_SteamMatchMakingServers001" ); - iface->RequestFavoritesServerList( params->iApp, params->ppchFilters, params->nFilters, u_pRequestServersResponse ); - return 0; -} - -NTSTATUS ISteamMatchmakingServers_SteamMatchMakingServers001_RequestHistoryServerList( void *args ) -{ - struct ISteamMatchmakingServers_SteamMatchMakingServers001_RequestHistoryServerList_params *params = (struct ISteamMatchmakingServers_SteamMatchMakingServers001_RequestHistoryServerList_params *)args; - struct u_ISteamMatchmakingServers_SteamMatchMakingServers001 *iface = (struct u_ISteamMatchmakingServers_SteamMatchMakingServers001 *)params->linux_side; - u_ISteamMatchmakingServerListResponse *u_pRequestServersResponse = create_LinuxISteamMatchmakingServerListResponse( params->pRequestServersResponse, "ISteamMatchmakingServers_SteamMatchMakingServers001" ); - iface->RequestHistoryServerList( params->iApp, params->ppchFilters, params->nFilters, u_pRequestServersResponse ); - return 0; -} - -NTSTATUS ISteamMatchmakingServers_SteamMatchMakingServers001_RequestSpectatorServerList( void *args ) -{ - struct ISteamMatchmakingServers_SteamMatchMakingServers001_RequestSpectatorServerList_params *params = (struct ISteamMatchmakingServers_SteamMatchMakingServers001_RequestSpectatorServerList_params *)args; - struct u_ISteamMatchmakingServers_SteamMatchMakingServers001 *iface = (struct u_ISteamMatchmakingServers_SteamMatchMakingServers001 *)params->linux_side; - u_ISteamMatchmakingServerListResponse *u_pRequestServersResponse = create_LinuxISteamMatchmakingServerListResponse( params->pRequestServersResponse, "ISteamMatchmakingServers_SteamMatchMakingServers001" ); - iface->RequestSpectatorServerList( params->iApp, params->ppchFilters, params->nFilters, u_pRequestServersResponse ); - return 0; -} - NTSTATUS ISteamMatchmakingServers_SteamMatchMakingServers001_GetServerDetails( void *args ) { struct ISteamMatchmakingServers_SteamMatchMakingServers001_GetServerDetails_params *params = (struct ISteamMatchmakingServers_SteamMatchMakingServers001_GetServerDetails_params *)args; @@ -103,33 +49,6 @@ NTSTATUS ISteamMatchmakingServers_SteamMatchMakingServers001_RefreshServer( void return 0; } -NTSTATUS ISteamMatchmakingServers_SteamMatchMakingServers001_PingServer( void *args ) -{ - struct ISteamMatchmakingServers_SteamMatchMakingServers001_PingServer_params *params = (struct ISteamMatchmakingServers_SteamMatchMakingServers001_PingServer_params *)args; - struct u_ISteamMatchmakingServers_SteamMatchMakingServers001 *iface = (struct u_ISteamMatchmakingServers_SteamMatchMakingServers001 *)params->linux_side; - u_ISteamMatchmakingPingResponse *u_pRequestServersResponse = create_LinuxISteamMatchmakingPingResponse( params->pRequestServersResponse, "ISteamMatchmakingServers_SteamMatchMakingServers001" ); - params->_ret = iface->PingServer( params->unIP, params->usPort, u_pRequestServersResponse ); - return 0; -} - -NTSTATUS ISteamMatchmakingServers_SteamMatchMakingServers001_PlayerDetails( void *args ) -{ - struct ISteamMatchmakingServers_SteamMatchMakingServers001_PlayerDetails_params *params = (struct ISteamMatchmakingServers_SteamMatchMakingServers001_PlayerDetails_params *)args; - struct u_ISteamMatchmakingServers_SteamMatchMakingServers001 *iface = (struct u_ISteamMatchmakingServers_SteamMatchMakingServers001 *)params->linux_side; - u_ISteamMatchmakingPlayersResponse *u_pRequestServersResponse = create_LinuxISteamMatchmakingPlayersResponse( params->pRequestServersResponse, "ISteamMatchmakingServers_SteamMatchMakingServers001" ); - params->_ret = iface->PlayerDetails( params->unIP, params->usPort, u_pRequestServersResponse ); - return 0; -} - -NTSTATUS ISteamMatchmakingServers_SteamMatchMakingServers001_ServerRules( void *args ) -{ - struct ISteamMatchmakingServers_SteamMatchMakingServers001_ServerRules_params *params = (struct ISteamMatchmakingServers_SteamMatchMakingServers001_ServerRules_params *)args; - struct u_ISteamMatchmakingServers_SteamMatchMakingServers001 *iface = (struct u_ISteamMatchmakingServers_SteamMatchMakingServers001 *)params->linux_side; - u_ISteamMatchmakingRulesResponse *u_pRequestServersResponse = create_LinuxISteamMatchmakingRulesResponse( params->pRequestServersResponse, "ISteamMatchmakingServers_SteamMatchMakingServers001" ); - params->_ret = iface->ServerRules( params->unIP, params->usPort, u_pRequestServersResponse ); - return 0; -} - NTSTATUS ISteamMatchmakingServers_SteamMatchMakingServers001_CancelServerQuery( void *args ) { struct ISteamMatchmakingServers_SteamMatchMakingServers001_CancelServerQuery_params *params = (struct ISteamMatchmakingServers_SteamMatchMakingServers001_CancelServerQuery_params *)args; diff --git a/lsteamclient/cppISteamMatchmakingServers_SteamMatchMakingServers002.cpp b/lsteamclient/cppISteamMatchmakingServers_SteamMatchMakingServers002.cpp index 021a808b..bbd08d88 100644 --- a/lsteamclient/cppISteamMatchmakingServers_SteamMatchMakingServers002.cpp +++ b/lsteamclient/cppISteamMatchmakingServers_SteamMatchMakingServers002.cpp @@ -1,60 +1,6 @@ /* This file is auto-generated, do not edit. */ #include "unix_private.h" -NTSTATUS ISteamMatchmakingServers_SteamMatchMakingServers002_RequestInternetServerList( void *args ) -{ - struct ISteamMatchmakingServers_SteamMatchMakingServers002_RequestInternetServerList_params *params = (struct ISteamMatchmakingServers_SteamMatchMakingServers002_RequestInternetServerList_params *)args; - struct u_ISteamMatchmakingServers_SteamMatchMakingServers002 *iface = (struct u_ISteamMatchmakingServers_SteamMatchMakingServers002 *)params->linux_side; - u_ISteamMatchmakingServerListResponse *u_pRequestServersResponse = create_LinuxISteamMatchmakingServerListResponse( params->pRequestServersResponse, "ISteamMatchmakingServers_SteamMatchMakingServers002" ); - params->_ret = iface->RequestInternetServerList( params->iApp, params->ppchFilters, params->nFilters, u_pRequestServersResponse ); - return 0; -} - -NTSTATUS ISteamMatchmakingServers_SteamMatchMakingServers002_RequestLANServerList( void *args ) -{ - struct ISteamMatchmakingServers_SteamMatchMakingServers002_RequestLANServerList_params *params = (struct ISteamMatchmakingServers_SteamMatchMakingServers002_RequestLANServerList_params *)args; - struct u_ISteamMatchmakingServers_SteamMatchMakingServers002 *iface = (struct u_ISteamMatchmakingServers_SteamMatchMakingServers002 *)params->linux_side; - u_ISteamMatchmakingServerListResponse *u_pRequestServersResponse = create_LinuxISteamMatchmakingServerListResponse( params->pRequestServersResponse, "ISteamMatchmakingServers_SteamMatchMakingServers002" ); - params->_ret = iface->RequestLANServerList( params->iApp, u_pRequestServersResponse ); - return 0; -} - -NTSTATUS ISteamMatchmakingServers_SteamMatchMakingServers002_RequestFriendsServerList( void *args ) -{ - struct ISteamMatchmakingServers_SteamMatchMakingServers002_RequestFriendsServerList_params *params = (struct ISteamMatchmakingServers_SteamMatchMakingServers002_RequestFriendsServerList_params *)args; - struct u_ISteamMatchmakingServers_SteamMatchMakingServers002 *iface = (struct u_ISteamMatchmakingServers_SteamMatchMakingServers002 *)params->linux_side; - u_ISteamMatchmakingServerListResponse *u_pRequestServersResponse = create_LinuxISteamMatchmakingServerListResponse( params->pRequestServersResponse, "ISteamMatchmakingServers_SteamMatchMakingServers002" ); - params->_ret = iface->RequestFriendsServerList( params->iApp, params->ppchFilters, params->nFilters, u_pRequestServersResponse ); - return 0; -} - -NTSTATUS ISteamMatchmakingServers_SteamMatchMakingServers002_RequestFavoritesServerList( void *args ) -{ - struct ISteamMatchmakingServers_SteamMatchMakingServers002_RequestFavoritesServerList_params *params = (struct ISteamMatchmakingServers_SteamMatchMakingServers002_RequestFavoritesServerList_params *)args; - struct u_ISteamMatchmakingServers_SteamMatchMakingServers002 *iface = (struct u_ISteamMatchmakingServers_SteamMatchMakingServers002 *)params->linux_side; - u_ISteamMatchmakingServerListResponse *u_pRequestServersResponse = create_LinuxISteamMatchmakingServerListResponse( params->pRequestServersResponse, "ISteamMatchmakingServers_SteamMatchMakingServers002" ); - params->_ret = iface->RequestFavoritesServerList( params->iApp, params->ppchFilters, params->nFilters, u_pRequestServersResponse ); - return 0; -} - -NTSTATUS ISteamMatchmakingServers_SteamMatchMakingServers002_RequestHistoryServerList( void *args ) -{ - struct ISteamMatchmakingServers_SteamMatchMakingServers002_RequestHistoryServerList_params *params = (struct ISteamMatchmakingServers_SteamMatchMakingServers002_RequestHistoryServerList_params *)args; - struct u_ISteamMatchmakingServers_SteamMatchMakingServers002 *iface = (struct u_ISteamMatchmakingServers_SteamMatchMakingServers002 *)params->linux_side; - u_ISteamMatchmakingServerListResponse *u_pRequestServersResponse = create_LinuxISteamMatchmakingServerListResponse( params->pRequestServersResponse, "ISteamMatchmakingServers_SteamMatchMakingServers002" ); - params->_ret = iface->RequestHistoryServerList( params->iApp, params->ppchFilters, params->nFilters, u_pRequestServersResponse ); - return 0; -} - -NTSTATUS ISteamMatchmakingServers_SteamMatchMakingServers002_RequestSpectatorServerList( void *args ) -{ - struct ISteamMatchmakingServers_SteamMatchMakingServers002_RequestSpectatorServerList_params *params = (struct ISteamMatchmakingServers_SteamMatchMakingServers002_RequestSpectatorServerList_params *)args; - struct u_ISteamMatchmakingServers_SteamMatchMakingServers002 *iface = (struct u_ISteamMatchmakingServers_SteamMatchMakingServers002 *)params->linux_side; - u_ISteamMatchmakingServerListResponse *u_pRequestServersResponse = create_LinuxISteamMatchmakingServerListResponse( params->pRequestServersResponse, "ISteamMatchmakingServers_SteamMatchMakingServers002" ); - params->_ret = iface->RequestSpectatorServerList( params->iApp, params->ppchFilters, params->nFilters, u_pRequestServersResponse ); - return 0; -} - NTSTATUS ISteamMatchmakingServers_SteamMatchMakingServers002_ReleaseRequest( void *args ) { struct ISteamMatchmakingServers_SteamMatchMakingServers002_ReleaseRequest_params *params = (struct ISteamMatchmakingServers_SteamMatchMakingServers002_ReleaseRequest_params *)args; @@ -111,33 +57,6 @@ NTSTATUS ISteamMatchmakingServers_SteamMatchMakingServers002_RefreshServer( void return 0; } -NTSTATUS ISteamMatchmakingServers_SteamMatchMakingServers002_PingServer( void *args ) -{ - struct ISteamMatchmakingServers_SteamMatchMakingServers002_PingServer_params *params = (struct ISteamMatchmakingServers_SteamMatchMakingServers002_PingServer_params *)args; - struct u_ISteamMatchmakingServers_SteamMatchMakingServers002 *iface = (struct u_ISteamMatchmakingServers_SteamMatchMakingServers002 *)params->linux_side; - u_ISteamMatchmakingPingResponse *u_pRequestServersResponse = create_LinuxISteamMatchmakingPingResponse( params->pRequestServersResponse, "ISteamMatchmakingServers_SteamMatchMakingServers002" ); - params->_ret = iface->PingServer( params->unIP, params->usPort, u_pRequestServersResponse ); - return 0; -} - -NTSTATUS ISteamMatchmakingServers_SteamMatchMakingServers002_PlayerDetails( void *args ) -{ - struct ISteamMatchmakingServers_SteamMatchMakingServers002_PlayerDetails_params *params = (struct ISteamMatchmakingServers_SteamMatchMakingServers002_PlayerDetails_params *)args; - struct u_ISteamMatchmakingServers_SteamMatchMakingServers002 *iface = (struct u_ISteamMatchmakingServers_SteamMatchMakingServers002 *)params->linux_side; - u_ISteamMatchmakingPlayersResponse *u_pRequestServersResponse = create_LinuxISteamMatchmakingPlayersResponse( params->pRequestServersResponse, "ISteamMatchmakingServers_SteamMatchMakingServers002" ); - params->_ret = iface->PlayerDetails( params->unIP, params->usPort, u_pRequestServersResponse ); - return 0; -} - -NTSTATUS ISteamMatchmakingServers_SteamMatchMakingServers002_ServerRules( void *args ) -{ - struct ISteamMatchmakingServers_SteamMatchMakingServers002_ServerRules_params *params = (struct ISteamMatchmakingServers_SteamMatchMakingServers002_ServerRules_params *)args; - struct u_ISteamMatchmakingServers_SteamMatchMakingServers002 *iface = (struct u_ISteamMatchmakingServers_SteamMatchMakingServers002 *)params->linux_side; - u_ISteamMatchmakingRulesResponse *u_pRequestServersResponse = create_LinuxISteamMatchmakingRulesResponse( params->pRequestServersResponse, "ISteamMatchmakingServers_SteamMatchMakingServers002" ); - params->_ret = iface->ServerRules( params->unIP, params->usPort, u_pRequestServersResponse ); - return 0; -} - NTSTATUS ISteamMatchmakingServers_SteamMatchMakingServers002_CancelServerQuery( void *args ) { struct ISteamMatchmakingServers_SteamMatchMakingServers002_CancelServerQuery_params *params = (struct ISteamMatchmakingServers_SteamMatchMakingServers002_CancelServerQuery_params *)args; diff --git a/lsteamclient/cppISteamNetworkingSockets_SteamNetworkingSockets006.cpp b/lsteamclient/cppISteamNetworkingSockets_SteamNetworkingSockets006.cpp index 68761d5a..f30ac4e8 100644 --- a/lsteamclient/cppISteamNetworkingSockets_SteamNetworkingSockets006.cpp +++ b/lsteamclient/cppISteamNetworkingSockets_SteamNetworkingSockets006.cpp @@ -233,21 +233,3 @@ NTSTATUS ISteamNetworkingSockets_SteamNetworkingSockets006_GetGameCoordinatorSer return 0; } -NTSTATUS ISteamNetworkingSockets_SteamNetworkingSockets006_ConnectP2PCustomSignaling( void *args ) -{ - struct ISteamNetworkingSockets_SteamNetworkingSockets006_ConnectP2PCustomSignaling_params *params = (struct ISteamNetworkingSockets_SteamNetworkingSockets006_ConnectP2PCustomSignaling_params *)args; - struct u_ISteamNetworkingSockets_SteamNetworkingSockets006 *iface = (struct u_ISteamNetworkingSockets_SteamNetworkingSockets006 *)params->linux_side; - u_ISteamNetworkingConnectionCustomSignaling *u_pSignaling = create_LinuxISteamNetworkingConnectionCustomSignaling( params->pSignaling, "ISteamNetworkingSockets_SteamNetworkingSockets006" ); - params->_ret = iface->ConnectP2PCustomSignaling( u_pSignaling, params->pPeerIdentity, params->nOptions, params->pOptions ); - return 0; -} - -NTSTATUS ISteamNetworkingSockets_SteamNetworkingSockets006_ReceivedP2PCustomSignal( void *args ) -{ - struct ISteamNetworkingSockets_SteamNetworkingSockets006_ReceivedP2PCustomSignal_params *params = (struct ISteamNetworkingSockets_SteamNetworkingSockets006_ReceivedP2PCustomSignal_params *)args; - struct u_ISteamNetworkingSockets_SteamNetworkingSockets006 *iface = (struct u_ISteamNetworkingSockets_SteamNetworkingSockets006 *)params->linux_side; - u_ISteamNetworkingCustomSignalingRecvContext *u_pContext = create_LinuxISteamNetworkingCustomSignalingRecvContext( params->pContext, "ISteamNetworkingSockets_SteamNetworkingSockets006" ); - params->_ret = iface->ReceivedP2PCustomSignal( params->pMsg, params->cbMsg, u_pContext ); - return 0; -} - diff --git a/lsteamclient/cppISteamNetworkingSockets_SteamNetworkingSockets008.cpp b/lsteamclient/cppISteamNetworkingSockets_SteamNetworkingSockets008.cpp index d809c346..ce6289d5 100644 --- a/lsteamclient/cppISteamNetworkingSockets_SteamNetworkingSockets008.cpp +++ b/lsteamclient/cppISteamNetworkingSockets_SteamNetworkingSockets008.cpp @@ -257,24 +257,6 @@ NTSTATUS ISteamNetworkingSockets_SteamNetworkingSockets008_GetGameCoordinatorSer return 0; } -NTSTATUS ISteamNetworkingSockets_SteamNetworkingSockets008_ConnectP2PCustomSignaling( void *args ) -{ - struct ISteamNetworkingSockets_SteamNetworkingSockets008_ConnectP2PCustomSignaling_params *params = (struct ISteamNetworkingSockets_SteamNetworkingSockets008_ConnectP2PCustomSignaling_params *)args; - struct u_ISteamNetworkingSockets_SteamNetworkingSockets008 *iface = (struct u_ISteamNetworkingSockets_SteamNetworkingSockets008 *)params->linux_side; - u_ISteamNetworkingConnectionCustomSignaling *u_pSignaling = create_LinuxISteamNetworkingConnectionCustomSignaling( params->pSignaling, "ISteamNetworkingSockets_SteamNetworkingSockets008" ); - params->_ret = iface->ConnectP2PCustomSignaling( u_pSignaling, params->pPeerIdentity, params->nOptions, params->pOptions ); - return 0; -} - -NTSTATUS ISteamNetworkingSockets_SteamNetworkingSockets008_ReceivedP2PCustomSignal( void *args ) -{ - struct ISteamNetworkingSockets_SteamNetworkingSockets008_ReceivedP2PCustomSignal_params *params = (struct ISteamNetworkingSockets_SteamNetworkingSockets008_ReceivedP2PCustomSignal_params *)args; - struct u_ISteamNetworkingSockets_SteamNetworkingSockets008 *iface = (struct u_ISteamNetworkingSockets_SteamNetworkingSockets008 *)params->linux_side; - u_ISteamNetworkingCustomSignalingRecvContext *u_pContext = create_LinuxISteamNetworkingCustomSignalingRecvContext( params->pContext, "ISteamNetworkingSockets_SteamNetworkingSockets008" ); - params->_ret = iface->ReceivedP2PCustomSignal( params->pMsg, params->cbMsg, u_pContext ); - return 0; -} - NTSTATUS ISteamNetworkingSockets_SteamNetworkingSockets008_GetCertificateRequest( void *args ) { struct ISteamNetworkingSockets_SteamNetworkingSockets008_GetCertificateRequest_params *params = (struct ISteamNetworkingSockets_SteamNetworkingSockets008_GetCertificateRequest_params *)args; diff --git a/lsteamclient/gen_wrapper.py b/lsteamclient/gen_wrapper.py index ae9c7d78..14070320 100755 --- a/lsteamclient/gen_wrapper.py +++ b/lsteamclient/gen_wrapper.py @@ -225,6 +225,18 @@ MANUAL_METHODS = { "ISteamNetworkingSockets_ReceiveMessagesOnListenSocket": True, "ISteamNetworkingSockets_ReceiveMessagesOnPollGroup": True, "ISteamNetworkingSockets_SendMessages": True, + "ISteamNetworkingSockets_ConnectP2PCustomSignaling": lambda ver, abi: abi == 'u' and ver <= 8, + "ISteamNetworkingSockets_ReceivedP2PCustomSignal": lambda ver, abi: abi == 'u' and ver <= 8, + + "ISteamMatchmakingServers_PingServer": lambda ver, abi: abi == 'u', + "ISteamMatchmakingServers_PlayerDetails": lambda ver, abi: abi == 'u', + "ISteamMatchmakingServers_RequestFavoritesServerList": lambda ver, abi: abi == 'u', + "ISteamMatchmakingServers_RequestFriendsServerList": lambda ver, abi: abi == 'u', + "ISteamMatchmakingServers_RequestHistoryServerList": lambda ver, abi: abi == 'u', + "ISteamMatchmakingServers_RequestInternetServerList": lambda ver, abi: abi == 'u', + "ISteamMatchmakingServers_RequestLANServerList": lambda ver, abi: abi == 'u', + "ISteamMatchmakingServers_RequestSpectatorServerList": lambda ver, abi: abi == 'u', + "ISteamMatchmakingServers_ServerRules": lambda ver, abi: abi == 'u', "ISteamNetworkingUtils_AllocateMessage": True, "ISteamNetworkingUtils_SetConfigValue": lambda ver, abi: abi == 'u' and ver >= 3, @@ -280,17 +292,6 @@ MANUAL_PARAMS = [ converted_structs = [] -# callback classes for which we have a linux wrapper -WRAPPED_CLASSES = [ - "ISteamMatchmakingServerListResponse", - "ISteamMatchmakingPingResponse", - "ISteamMatchmakingPlayersResponse", - "ISteamMatchmakingRulesResponse", - "ISteamNetworkingFakeUDPPort", - "ISteamNetworkingConnectionCustomSignaling", - "ISteamNetworkingCustomSignalingRecvContext", -] - all_classes = {} all_records = {} all_sources = {} @@ -617,6 +618,11 @@ class Method: def get_arguments(self): return self._cursor.get_arguments() + def needs_conversion(self, other): + if len(list(self.get_arguments())) != len(list(other.get_arguments())): + return True + return False # FIXME + def write_params(self, out): returns_record = self.result_type.get_canonical().kind == TypeKind.RECORD @@ -710,7 +716,13 @@ class Class: self._decl_order = order def needs_conversion(self, other): - return self._abi[0] != other._abi[0] + if self._abi[0] != other._abi[0]: + return True + if len(self.methods) != len(other.methods): + return True + if any(m.needs_conversion(n) for m, n in zip(self.methods, other.methods)): + return True + return False def write_definition(self, out, prefix): out(f'struct {prefix}{self.full_name}\n') @@ -807,8 +819,7 @@ def underlying_type(decl): def param_needs_conversion(decl): decl = underlying_type(decl) - return decl.spelling not in WRAPPED_CLASSES and \ - decl.kind == TypeKind.RECORD and \ + return decl.kind == TypeKind.RECORD and \ struct_needs_conversion(decl) @@ -900,8 +911,6 @@ def handle_method_cpp(method, classname, out): need_convert = {n: p for n, p in zip(names, method.get_arguments()) if param_needs_conversion(p)} - need_wrapper = {n: p for n, p in zip(names, method.get_arguments()) - if underlying_typename(p) in WRAPPED_CLASSES} manual_convert = {n: p for n, p in zip(names, method.get_arguments()) if underlying_type(p).spelling in MANUAL_TYPES or p.spelling in MANUAL_PARAMS} @@ -963,9 +972,6 @@ def handle_method_cpp(method, classname, out): else: out(f' {declspec(param, f"u_{name}", "u_")} = manual_convert_{method.name}_{name}( params->{name} );\n') - for name, param in sorted(need_wrapper.items()): - out(f' {declspec(param, f"u_{name}", "u_")} = create_Linux{underlying_type(param.type).spelling}( params->{name}, "{classname}_{klass.version}" );\n') - if returns_void: out(u' ') elif returns_record: @@ -978,7 +984,6 @@ def handle_method_cpp(method, classname, out): if name in need_convert: return f"{pfx}u_{name}" if name in manual_convert: return f"u_{name}" if name in path_conv_wtou: return f"u_{name}" - if name in need_wrapper: return f"u_{name}" return f'params->{name}' params = [param_call(n, p) for n, p in zip(names[1:], method.get_arguments())] @@ -1116,10 +1121,7 @@ def handle_class(klass): out(u'\n') out(f'struct w_steam_iface *create_{winclassname}(void *u_iface)\n') out(u'{\n') - if klass.name in WRAPPED_CLASSES: - out(u' struct w_steam_iface *r = HeapAlloc(GetProcessHeap(), 0, sizeof(struct w_steam_iface));\n') - else: - out(f' struct w_steam_iface *r = alloc_mem_for_iface(sizeof(struct w_steam_iface), "{klass.version}");\n') + out(f' struct w_steam_iface *r = alloc_mem_for_iface(sizeof(struct w_steam_iface), "{klass.version}");\n') out(u' TRACE("-> %p\\n", r);\n') out(f' r->vtable = alloc_vtable(&{winclassname}_vtable, {len(klass.methods)}, "{klass.version}");\n') out(u' r->u_iface = u_iface;\n') @@ -1183,6 +1185,10 @@ def classify_struct(name): versions = {} unique = True + def set_class_version(abis, version): + for abi in filter(lambda x: type(x) is Class, abis): + abi.version = version + for sdkver in filter(lambda v: v in structs, reversed(SDK_VERSIONS)): abis = [structs[sdkver][a] for a in ABIS] @@ -1198,16 +1204,22 @@ def classify_struct(name): compat = next((k for k, v in prev if is_always_compatible(v)), None) if compat: versions[sdkver] = versions[compat] + set_class_version(abis, compat) else: [abi.set_used() for abi in abis] # make sure order is computed versions[sdkver] = f"{name}_{sdkver}" prev += [(sdkver, abis)] + set_class_version(abis, sdkver) if unique: unique_structs.append(name) if len(set(versions.values())) == 1: versions = {sdkver: name for sdkver in versions.keys()} + for sdkver in filter(lambda v: v in structs, reversed(SDK_VERSIONS)): + abis = [structs[sdkver][a] for a in ABIS] + set_class_version(abis, "") + return versions diff --git a/lsteamclient/steamclient_main.c b/lsteamclient/steamclient_main.c index ef4ffd0f..123e5dbb 100644 --- a/lsteamclient/steamclient_main.c +++ b/lsteamclient/steamclient_main.c @@ -17,6 +17,34 @@ WINE_DEFAULT_DEBUG_CHANNEL(steamclient); CREATE_TYPE_INFO_VTABLE; +#ifdef __ASM_USE_THISCALL_WRAPPER + +#define DEFINE_VTBL_WRAPPER(off) \ + __ASM_GLOBAL_FUNC(vtbl_wrapper_ ## off, \ + "popl %eax\n\t" \ + "popl %ecx\n\t" \ + "pushl %eax\n\t" \ + "movl 0(%ecx), %eax\n\t" \ + "jmp *" #off "(%eax)\n\t") + +DEFINE_VTBL_WRAPPER(0); +DEFINE_VTBL_WRAPPER(4); +DEFINE_VTBL_WRAPPER(8); +DEFINE_VTBL_WRAPPER(12); +DEFINE_VTBL_WRAPPER(16); +DEFINE_VTBL_WRAPPER(20); +DEFINE_VTBL_WRAPPER(24); +DEFINE_VTBL_WRAPPER(28); +DEFINE_VTBL_WRAPPER(32); +DEFINE_VTBL_WRAPPER(36); +DEFINE_VTBL_WRAPPER(40); +DEFINE_VTBL_WRAPPER(44); +DEFINE_VTBL_WRAPPER(48); +DEFINE_VTBL_WRAPPER(52); +DEFINE_VTBL_WRAPPER(56); + +#endif + char g_tmppath[PATH_MAX]; static CRITICAL_SECTION steamclient_cs = { NULL, -1, 0, 0, 0, 0 }; @@ -324,6 +352,40 @@ static void execute_pending_callbacks(void) params.callback->warning_message_hook.severity, wine_dbgstr_a( params.callback->warning_message_hook.msg ) ); params.callback->warning_message_hook.pFunction( params.callback->warning_message_hook.severity, params.callback->warning_message_hook.msg ); break; + case CALL_IFACE_VTABLE_0: + TRACE( "CALL_IFACE_VTABLE_0 iface %p, arg0 %#jx, arg1 %#jx, arg2 %#jx.\n", params.callback->call_iface_vtable.iface, + params.callback->call_iface_vtable.arg0, params.callback->call_iface_vtable.arg1, params.callback->call_iface_vtable.arg2 ); + CALL_VTBL_FUNC( params.callback->call_iface_vtable.iface, 0, void, (void *, intptr_t, intptr_t, intptr_t), (params.callback->call_iface_vtable.iface, + params.callback->call_iface_vtable.arg0, params.callback->call_iface_vtable.arg1, params.callback->call_iface_vtable.arg2) ); + break; + case CALL_IFACE_VTABLE_1: + TRACE( "CALL_IFACE_VTABLE_1 iface %p, arg0 %#jx, arg1 %#jx, arg2 %#jx.\n", params.callback->call_iface_vtable.iface, + params.callback->call_iface_vtable.arg0, params.callback->call_iface_vtable.arg1, params.callback->call_iface_vtable.arg2 ); + CALL_VTBL_FUNC( params.callback->call_iface_vtable.iface, 4, void, (void *, intptr_t, intptr_t, intptr_t), (params.callback->call_iface_vtable.iface, + params.callback->call_iface_vtable.arg0, params.callback->call_iface_vtable.arg1, params.callback->call_iface_vtable.arg2) ); + break; + case CALL_IFACE_VTABLE_2: + TRACE( "CALL_IFACE_VTABLE_2 iface %p, arg0 %#jx, arg1 %#jx, arg2 %#jx.\n", params.callback->call_iface_vtable.iface, + params.callback->call_iface_vtable.arg0, params.callback->call_iface_vtable.arg1, params.callback->call_iface_vtable.arg2 ); + CALL_VTBL_FUNC( params.callback->call_iface_vtable.iface, 8, void, (void *, intptr_t, intptr_t, intptr_t), (params.callback->call_iface_vtable.iface, + params.callback->call_iface_vtable.arg0, params.callback->call_iface_vtable.arg1, params.callback->call_iface_vtable.arg2) ); + break; + + case CALL_IFACE_VTABLE_0_ADD_PLAYER_TO_LIST: + TRACE( "CALL_IFACE_VTABLE_0_ADD_PLAYER_TO_LIST iface %p, name %s, score %u, time_played %f.\n", params.callback->add_player_to_list.iface, + params.callback->add_player_to_list.name, params.callback->add_player_to_list.score, params.callback->add_player_to_list.time_played ); + CALL_VTBL_FUNC( params.callback->add_player_to_list.iface, 0, void, (void *, const char *, int32_t, float), (params.callback->add_player_to_list.iface, + params.callback->add_player_to_list.name, params.callback->add_player_to_list.score, params.callback->add_player_to_list.time_played) ); + break; + case CALL_IFACE_VTABLE_0_RULES_RESPONDED: + { + const char *value = params.callback->rules_responded.rule_and_value + strlen( params.callback->rules_responded.rule_and_value ) + 1; + TRACE( "CALL_IFACE_VTABLE_0_RULES_RESPONDED iface %p, rule %s, value %s.\n", params.callback->rules_responded.iface, + params.callback->rules_responded.rule_and_value, value ); + CALL_VTBL_FUNC( params.callback->rules_responded.iface, 0, void, (void *, const char *, const char *), (params.callback->rules_responded.iface, + params.callback->rules_responded.rule_and_value, value) ); + break; + } } } diff --git a/lsteamclient/steamclient_structs_generated.h b/lsteamclient/steamclient_structs_generated.h index d67eccd0..3de6f970 100644 --- a/lsteamclient/steamclient_structs_generated.h +++ b/lsteamclient/steamclient_structs_generated.h @@ -2539,12 +2539,18 @@ typedef struct u_ISteamMatchmakingRulesResponse u32_ISteamMatchmakingRulesRespon typedef struct w_ISteamMatchmakingRulesResponse w_ISteamMatchmakingRulesResponse; typedef struct w_ISteamMatchmakingRulesResponse w64_ISteamMatchmakingRulesResponse; typedef struct w_ISteamMatchmakingRulesResponse w32_ISteamMatchmakingRulesResponse; -typedef struct u_ISteamMatchmakingServerListResponse u_ISteamMatchmakingServerListResponse; -typedef struct u_ISteamMatchmakingServerListResponse u64_ISteamMatchmakingServerListResponse; -typedef struct u_ISteamMatchmakingServerListResponse u32_ISteamMatchmakingServerListResponse; -typedef struct w_ISteamMatchmakingServerListResponse w_ISteamMatchmakingServerListResponse; -typedef struct w_ISteamMatchmakingServerListResponse w64_ISteamMatchmakingServerListResponse; -typedef struct w_ISteamMatchmakingServerListResponse w32_ISteamMatchmakingServerListResponse; +typedef struct u_ISteamMatchmakingServerListResponse_106 u_ISteamMatchmakingServerListResponse_106; +typedef struct u_ISteamMatchmakingServerListResponse_106 u64_ISteamMatchmakingServerListResponse_106; +typedef struct u_ISteamMatchmakingServerListResponse_106 u32_ISteamMatchmakingServerListResponse_106; +typedef struct w_ISteamMatchmakingServerListResponse_106 w_ISteamMatchmakingServerListResponse_106; +typedef struct w_ISteamMatchmakingServerListResponse_106 w64_ISteamMatchmakingServerListResponse_106; +typedef struct w_ISteamMatchmakingServerListResponse_106 w32_ISteamMatchmakingServerListResponse_106; +typedef struct u_ISteamMatchmakingServerListResponse_099u u_ISteamMatchmakingServerListResponse_099u; +typedef struct u_ISteamMatchmakingServerListResponse_099u u64_ISteamMatchmakingServerListResponse_099u; +typedef struct u_ISteamMatchmakingServerListResponse_099u u32_ISteamMatchmakingServerListResponse_099u; +typedef struct w_ISteamMatchmakingServerListResponse_099u w_ISteamMatchmakingServerListResponse_099u; +typedef struct w_ISteamMatchmakingServerListResponse_099u w64_ISteamMatchmakingServerListResponse_099u; +typedef struct w_ISteamMatchmakingServerListResponse_099u w32_ISteamMatchmakingServerListResponse_099u; typedef struct u_ISteamNetworkingConnectionCustomSignaling u_ISteamNetworkingConnectionCustomSignaling; typedef struct u_ISteamNetworkingConnectionCustomSignaling u64_ISteamNetworkingConnectionCustomSignaling; typedef struct u_ISteamNetworkingConnectionCustomSignaling u32_ISteamNetworkingConnectionCustomSignaling; @@ -5608,7 +5614,7 @@ struct u_ISteamMatchmakingRulesResponse #endif /* __cplusplus */ }; -struct w_ISteamMatchmakingServerListResponse +struct w_ISteamMatchmakingServerListResponse_106 { #ifdef __cplusplus virtual void ServerResponded( void *, int32_t ) = 0; @@ -5617,7 +5623,7 @@ struct w_ISteamMatchmakingServerListResponse #endif /* __cplusplus */ }; -struct u_ISteamMatchmakingServerListResponse +struct u_ISteamMatchmakingServerListResponse_106 { #ifdef __cplusplus virtual void ServerResponded( void *, int32_t ) = 0; @@ -5626,6 +5632,24 @@ struct u_ISteamMatchmakingServerListResponse #endif /* __cplusplus */ }; +struct w_ISteamMatchmakingServerListResponse_099u +{ +#ifdef __cplusplus + virtual void ServerResponded( int32_t ) = 0; + virtual void ServerFailedToRespond( int32_t ) = 0; + virtual void RefreshComplete( uint32_t ) = 0; +#endif /* __cplusplus */ +}; + +struct u_ISteamMatchmakingServerListResponse_099u +{ +#ifdef __cplusplus + virtual void ServerResponded( int32_t ) = 0; + virtual void ServerFailedToRespond( int32_t ) = 0; + virtual void RefreshComplete( uint32_t ) = 0; +#endif /* __cplusplus */ +}; + struct w_ISteamNetworkingConnectionCustomSignaling { #ifdef __cplusplus diff --git a/lsteamclient/steamclient_wrappers.c b/lsteamclient/steamclient_wrappers.c deleted file mode 100644 index d3b96e77..00000000 --- a/lsteamclient/steamclient_wrappers.c +++ /dev/null @@ -1,307 +0,0 @@ -/* Linux-to-Windows conversions (i.e. callbacks) here. */ -#include "unix_private.h" - -#include "cxx.h" - -WINE_DEFAULT_DEBUG_CHANNEL(steamclient); - -#ifdef __i386__ - -#define DEFINE_VTBL_WRAPPER(off) \ - __ASM_GLOBAL_FUNC(vtbl_wrapper_ ## off, \ - "popl %eax\n\t" \ - "popl %ecx\n\t" \ - "pushl %eax\n\t" \ - "movl 0(%ecx), %eax\n\t" \ - "jmp *" #off "(%eax)\n\t") - -DEFINE_VTBL_WRAPPER(0); -DEFINE_VTBL_WRAPPER(4); -DEFINE_VTBL_WRAPPER(8); -DEFINE_VTBL_WRAPPER(12); -DEFINE_VTBL_WRAPPER(16); -DEFINE_VTBL_WRAPPER(20); -DEFINE_VTBL_WRAPPER(24); -DEFINE_VTBL_WRAPPER(28); -DEFINE_VTBL_WRAPPER(32); -DEFINE_VTBL_WRAPPER(36); -DEFINE_VTBL_WRAPPER(40); -DEFINE_VTBL_WRAPPER(44); -DEFINE_VTBL_WRAPPER(48); - -#endif - -/***** ISteamMatchmakingServerListResponse *****/ -typedef struct winServerListResponse { - const vtable_ptr *vtable; -} winServerListResponse; - -struct gccServerListResponse { - void *vtable; - struct winServerListResponse *win_side; -}; - -void gccServerListResponse_ServerResponded( struct gccServerListResponse *_this, void *hRequest, int iServer ) -{ - TRACE("%p/%p\n", _this, _this->win_side); - CALL_VTBL_FUNC( _this->win_side, 0, void, (winServerListResponse *, void *, int), - (_this->win_side, hRequest, iServer) ); -} - -void gccServerListResponse_ServerFailedToRespond( struct gccServerListResponse *_this, void *hRequest, int iServer ) -{ - TRACE("%p/%p\n", _this, _this->win_side); - CALL_VTBL_FUNC( _this->win_side, 4, void, (winServerListResponse *, void *, int), - (_this->win_side, hRequest, iServer) ); -} - -void gccServerListResponse_RefreshComplete( struct gccServerListResponse *_this, void *hRequest, uint32_t response ) -{ - TRACE("%p/%p\n", _this, _this->win_side); - CALL_VTBL_FUNC( _this->win_side, 8, void, (winServerListResponse *, void *, uint32_t), - (_this->win_side, hRequest, response) ); -} - -struct gccServerListResponseVtbl { - void (*ServerResponded)( struct gccServerListResponse *, void *, int ); - - void (*ServerFailedToRespond)( struct gccServerListResponse *, void *, int ); - - void (*RefreshComplete)( struct gccServerListResponse *, void *, uint32_t ); -} gccServerListResponse_vtbl = { - gccServerListResponse_ServerResponded, - gccServerListResponse_ServerFailedToRespond, - gccServerListResponse_RefreshComplete -}; - -void gccServerListResponse001_ServerResponded(struct gccServerListResponse *_this, int iServer) -{ - TRACE("%p/%p\n", _this, _this->win_side); - CALL_VTBL_FUNC(_this->win_side, 0, void, (winServerListResponse *, int), (_this->win_side, iServer)); -} - -void gccServerListResponse001_ServerFailedToRespond(struct gccServerListResponse *_this, int iServer) -{ - TRACE("%p/%p\n", _this, _this->win_side); - CALL_VTBL_FUNC(_this->win_side, 4, void, (winServerListResponse *, int), (_this->win_side, iServer)); -} - -void gccServerListResponse001_RefreshComplete( struct gccServerListResponse *_this, uint32_t response ) -{ - TRACE("%p/%p\n", _this, _this->win_side); - CALL_VTBL_FUNC( _this->win_side, 8, void, (winServerListResponse *, uint32_t), (_this->win_side, response) ); -} - -struct gccServerListResponse001Vtbl { - void (*ServerResponded)(struct gccServerListResponse *, int); - - void (*ServerFailedToRespond)(struct gccServerListResponse *, int); - - void (*RefreshComplete)( struct gccServerListResponse *, uint32_t ); -} gccServerListResponse001_vtbl = { - gccServerListResponse001_ServerResponded, - gccServerListResponse001_ServerFailedToRespond, - gccServerListResponse001_RefreshComplete -}; - -struct u_ISteamMatchmakingServerListResponse *create_LinuxISteamMatchmakingServerListResponse( void *win, const char *version ) -{ - struct gccServerListResponse *ret; - - if (!win) - return NULL; - - /* FIXME: When is it save to free this? CancelServerQuery? */ - ret = (struct gccServerListResponse *)HeapAlloc(GetProcessHeap(), 0, sizeof(*ret)); - if(!ret) - return NULL; - - if (strcmp( version, "ISteamMatchmakingServers_SteamMatchMakingServers001" ) == 0) - { - ret->vtable = &gccServerListResponse001_vtbl; - } - else - { - ret->vtable = &gccServerListResponse_vtbl; - } - ret->win_side = (struct winServerListResponse*)win; - - return (struct u_ISteamMatchmakingServerListResponse *)ret; -} - -/***** ISteamMatchmakingPingResponse *****/ -typedef struct winPingResponse { - const vtable_ptr *vtable; -} winPingResponse; - -struct gccPingResponse { - void *vtable; - struct winPingResponse *win_side; -}; - -struct gameserveritem_t; - -void gccPingResponse_ServerResponded( struct gccPingResponse *_this, struct gameserveritem_t *server ) -{ - TRACE("%p/%p\n", _this, _this->win_side); - CALL_VTBL_FUNC( _this->win_side, 0, void, (winPingResponse *, struct gameserveritem_t *), - (_this->win_side, server) ); -} - -void gccPingResponse_ServerFailedToRespond(struct gccPingResponse *_this) -{ - TRACE("%p/%p\n", _this, _this->win_side); - CALL_VTBL_FUNC(_this->win_side, 4, void, (winPingResponse *), (_this->win_side)); -} - -struct gccPingResponseVtbl { - void (*ServerResponded)( struct gccPingResponse *, struct gameserveritem_t * ); - - void (*ServerFailedToRespond)(struct gccPingResponse *); -} gccPingResponse_vtbl = { - gccPingResponse_ServerResponded, - gccPingResponse_ServerFailedToRespond -}; - -struct u_ISteamMatchmakingPingResponse *create_LinuxISteamMatchmakingPingResponse( void *win, const char *version ) -{ - struct gccPingResponse *ret; - - if (!win) - return NULL; - - ret = (struct gccPingResponse *)HeapAlloc(GetProcessHeap(), 0, sizeof(*ret)); - if(!ret) - return NULL; - - ret->vtable = &gccPingResponse_vtbl; - ret->win_side = (struct winPingResponse*)win; - - return (struct u_ISteamMatchmakingPingResponse *)ret; -} - -/***** ISteamMatchmakingPlayersResponse *****/ -typedef struct winPlayersResponse { - const vtable_ptr *vtable; -} winPlayersResponse; - -struct gccPlayersResponse { - void *vtable; - struct winPlayersResponse *win_side; -}; - -void gccPlayersResponse_AddPlayerToList(struct gccPlayersResponse *_this, const char *pchName, int nScore, float flTimePlayed) -{ - TRACE("%p/%p\n", _this, _this->win_side); - CALL_VTBL_FUNC(_this->win_side, 0, void, (winPlayersResponse *, const char *, int, float), (_this->win_side, pchName, nScore, flTimePlayed)); -} - -void gccPlayersResponse_PlayersFailedToRespond(struct gccPlayersResponse *_this) -{ - TRACE("%p/%p\n", _this, _this->win_side); - CALL_VTBL_FUNC(_this->win_side, 4, void, (winPlayersResponse *), (_this->win_side)); -} - -void gccPlayersResponse_PlayersRefreshComplete(struct gccPlayersResponse *_this) -{ - TRACE("%p/%p\n", _this, _this->win_side); - CALL_VTBL_FUNC(_this->win_side, 8, void, (winPlayersResponse *), (_this->win_side)); -} - -struct gccPlayersResponseVtbl { - void (*AddPlayerToList)(struct gccPlayersResponse *, const char *, int, float); - - void (*PlayersFailedToRespond)(struct gccPlayersResponse *); - - void (*PlayersRefreshComplete)(struct gccPlayersResponse *); -} gccPlayersResponse_vtbl = { - gccPlayersResponse_AddPlayerToList, - gccPlayersResponse_PlayersFailedToRespond, - gccPlayersResponse_PlayersRefreshComplete -}; - -struct u_ISteamMatchmakingPlayersResponse *create_LinuxISteamMatchmakingPlayersResponse( void *win, const char *version ) -{ - struct gccPlayersResponse *ret; - - if (!win) - return NULL; - - ret = (struct gccPlayersResponse *)HeapAlloc(GetProcessHeap(), 0, sizeof(*ret)); - if(!ret) - return NULL; - - ret->vtable = &gccPlayersResponse_vtbl; - ret->win_side = (struct winPlayersResponse*)win; - - return (struct u_ISteamMatchmakingPlayersResponse *)ret; -} - -/***** ISteamMatchmakingRulesResponse *****/ -typedef struct winRulesResponse { - const vtable_ptr *vtable; -} winRulesResponse; - -struct gccRulesResponse { - void *vtable; - struct winRulesResponse *win_side; -}; - -void gccRulesResponse_RulesResponded(struct gccRulesResponse *_this, const char *pchRule, const char *pchValue) -{ - TRACE("%p/%p\n", _this, _this->win_side); - CALL_VTBL_FUNC(_this->win_side, 0, void, (winRulesResponse *, const char *, const char *), (_this->win_side, pchRule, pchValue)); -} - -void gccRulesResponse_RulesFailedToRespond(struct gccRulesResponse *_this) -{ - TRACE("%p/%p\n", _this, _this->win_side); - CALL_VTBL_FUNC(_this->win_side, 4, void, (winRulesResponse *), (_this->win_side)); -} - -void gccRulesResponse_RulesRefreshComplete(struct gccRulesResponse *_this) -{ - TRACE("%p/%p\n", _this, _this->win_side); - CALL_VTBL_FUNC(_this->win_side, 8, void, (winRulesResponse *), (_this->win_side)); -} - -struct gccRulesResponseVtbl { - void (*RulesResponded)(struct gccRulesResponse *, const char *, const char*); - - void (*RulesFailedToRespond)(struct gccRulesResponse *); - - void (*RulesRefreshComplete)(struct gccRulesResponse *); -} gccRulesResponse_vtbl = { - gccRulesResponse_RulesResponded, - gccRulesResponse_RulesFailedToRespond, - gccRulesResponse_RulesRefreshComplete -}; - -struct u_ISteamMatchmakingRulesResponse *create_LinuxISteamMatchmakingRulesResponse( void *win, const char *version ) -{ - struct gccRulesResponse *ret; - - if (!win) - return NULL; - - ret = (struct gccRulesResponse *)HeapAlloc(GetProcessHeap(), 0, sizeof(*ret)); - if(!ret) - return NULL; - - ret->vtable = &gccRulesResponse_vtbl; - ret->win_side = (struct winRulesResponse*)win; - - return (struct u_ISteamMatchmakingRulesResponse *)ret; -} - -struct u_ISteamNetworkingConnectionCustomSignaling *create_LinuxISteamNetworkingConnectionCustomSignaling( void *win, const char *version ) -{ - FIXME( "not implemented!\n" ); - return NULL; -} - -struct u_ISteamNetworkingCustomSignalingRecvContext *create_LinuxISteamNetworkingCustomSignalingRecvContext( void *win, const char *version ) -{ - FIXME( "not implemented!\n" ); - return NULL; -} diff --git a/lsteamclient/unix_private.h b/lsteamclient/unix_private.h index 60153974..9273650f 100644 --- a/lsteamclient/unix_private.h +++ b/lsteamclient/unix_private.h @@ -18,12 +18,10 @@ extern "C" { #endif /* __cplusplus */ -extern struct u_ISteamMatchmakingServerListResponse *create_LinuxISteamMatchmakingServerListResponse( void *win, const char *version ) DECLSPEC_HIDDEN; -extern struct u_ISteamMatchmakingPingResponse *create_LinuxISteamMatchmakingPingResponse( void *win, const char *version ) DECLSPEC_HIDDEN; -extern struct u_ISteamMatchmakingPlayersResponse *create_LinuxISteamMatchmakingPlayersResponse( void *win, const char *version ) DECLSPEC_HIDDEN; -extern struct u_ISteamMatchmakingRulesResponse *create_LinuxISteamMatchmakingRulesResponse( void *win, const char *version ) DECLSPEC_HIDDEN; -extern struct u_ISteamNetworkingConnectionCustomSignaling *create_LinuxISteamNetworkingConnectionCustomSignaling(void *win, const char *version) DECLSPEC_HIDDEN; -extern struct u_ISteamNetworkingCustomSignalingRecvContext *create_LinuxISteamNetworkingCustomSignalingRecvContext(void *win, const char *version) DECLSPEC_HIDDEN; +struct w_steam_iface; +extern void queue_vtable_callback( struct w_steam_iface *w_iface, enum callback_type type, uint64_t arg0, uint64_t arg1, uint64_t arg2 ); +extern void queue_vtable_callback_0_add_player_to_list( struct w_steam_iface *w_iface, const char *pchName, int nScore, float flTimePlayed ); +extern void queue_vtable_callback_0_rules_responded( struct w_steam_iface *w_iface, const char *pchRule, const char *pchValue ); extern uint32_t manual_convert_nNativeKeyCode( uint32_t win_vk ); diff --git a/lsteamclient/unix_private_generated.h b/lsteamclient/unix_private_generated.h index b199c936..b76b36d1 100644 --- a/lsteamclient/unix_private_generated.h +++ b/lsteamclient/unix_private_generated.h @@ -147,12 +147,12 @@ struct u_ISteamMatchmaking_SteamMatchMaking001 struct u_ISteamMatchmakingServers_SteamMatchMakingServers001 { #ifdef __cplusplus - virtual void RequestInternetServerList( uint32_t, MatchMakingKeyValuePair_t **, uint32_t, u_ISteamMatchmakingServerListResponse * ) = 0; - virtual void RequestLANServerList( uint32_t, u_ISteamMatchmakingServerListResponse * ) = 0; - virtual void RequestFriendsServerList( uint32_t, MatchMakingKeyValuePair_t **, uint32_t, u_ISteamMatchmakingServerListResponse * ) = 0; - virtual void RequestFavoritesServerList( uint32_t, MatchMakingKeyValuePair_t **, uint32_t, u_ISteamMatchmakingServerListResponse * ) = 0; - virtual void RequestHistoryServerList( uint32_t, MatchMakingKeyValuePair_t **, uint32_t, u_ISteamMatchmakingServerListResponse * ) = 0; - virtual void RequestSpectatorServerList( uint32_t, MatchMakingKeyValuePair_t **, uint32_t, u_ISteamMatchmakingServerListResponse * ) = 0; + virtual void RequestInternetServerList( uint32_t, MatchMakingKeyValuePair_t **, uint32_t, u_ISteamMatchmakingServerListResponse_099u * ) = 0; + virtual void RequestLANServerList( uint32_t, u_ISteamMatchmakingServerListResponse_099u * ) = 0; + virtual void RequestFriendsServerList( uint32_t, MatchMakingKeyValuePair_t **, uint32_t, u_ISteamMatchmakingServerListResponse_099u * ) = 0; + virtual void RequestFavoritesServerList( uint32_t, MatchMakingKeyValuePair_t **, uint32_t, u_ISteamMatchmakingServerListResponse_099u * ) = 0; + virtual void RequestHistoryServerList( uint32_t, MatchMakingKeyValuePair_t **, uint32_t, u_ISteamMatchmakingServerListResponse_099u * ) = 0; + virtual void RequestSpectatorServerList( uint32_t, MatchMakingKeyValuePair_t **, uint32_t, u_ISteamMatchmakingServerListResponse_099u * ) = 0; virtual gameserveritem_t_105 * GetServerDetails( uint32_t, int32_t ) = 0; virtual void CancelQuery( uint32_t ) = 0; virtual void RefreshQuery( uint32_t ) = 0; @@ -1196,12 +1196,12 @@ struct u_ISteamUser_SteamUser013 struct u_ISteamMatchmakingServers_SteamMatchMakingServers002 { #ifdef __cplusplus - virtual void * RequestInternetServerList( uint32_t, MatchMakingKeyValuePair_t **, uint32_t, u_ISteamMatchmakingServerListResponse * ) = 0; - virtual void * RequestLANServerList( uint32_t, u_ISteamMatchmakingServerListResponse * ) = 0; - virtual void * RequestFriendsServerList( uint32_t, MatchMakingKeyValuePair_t **, uint32_t, u_ISteamMatchmakingServerListResponse * ) = 0; - virtual void * RequestFavoritesServerList( uint32_t, MatchMakingKeyValuePair_t **, uint32_t, u_ISteamMatchmakingServerListResponse * ) = 0; - virtual void * RequestHistoryServerList( uint32_t, MatchMakingKeyValuePair_t **, uint32_t, u_ISteamMatchmakingServerListResponse * ) = 0; - virtual void * RequestSpectatorServerList( uint32_t, MatchMakingKeyValuePair_t **, uint32_t, u_ISteamMatchmakingServerListResponse * ) = 0; + virtual void * RequestInternetServerList( uint32_t, MatchMakingKeyValuePair_t **, uint32_t, u_ISteamMatchmakingServerListResponse_106 * ) = 0; + virtual void * RequestLANServerList( uint32_t, u_ISteamMatchmakingServerListResponse_106 * ) = 0; + virtual void * RequestFriendsServerList( uint32_t, MatchMakingKeyValuePair_t **, uint32_t, u_ISteamMatchmakingServerListResponse_106 * ) = 0; + virtual void * RequestFavoritesServerList( uint32_t, MatchMakingKeyValuePair_t **, uint32_t, u_ISteamMatchmakingServerListResponse_106 * ) = 0; + virtual void * RequestHistoryServerList( uint32_t, MatchMakingKeyValuePair_t **, uint32_t, u_ISteamMatchmakingServerListResponse_106 * ) = 0; + virtual void * RequestSpectatorServerList( uint32_t, MatchMakingKeyValuePair_t **, uint32_t, u_ISteamMatchmakingServerListResponse_106 * ) = 0; virtual void ReleaseRequest( void * ) = 0; virtual gameserveritem_t_105 * GetServerDetails( void *, int32_t ) = 0; virtual void CancelQuery( void * ) = 0; diff --git a/lsteamclient/unix_steam_networking_manual.cpp b/lsteamclient/unix_steam_networking_manual.cpp index 9a75482f..7dfc785c 100644 --- a/lsteamclient/unix_steam_networking_manual.cpp +++ b/lsteamclient/unix_steam_networking_manual.cpp @@ -2,6 +2,8 @@ #include +WINE_DEFAULT_DEBUG_CHANNEL(steamclient); + static void receive_messages_utow_144( uint32_t count, u_SteamNetworkingMessage_t_144 **u_msgs, w_SteamNetworkingMessage_t_144 **w_msgs ) { @@ -606,3 +608,379 @@ NTSTATUS ISteamNetworkingUtils_SteamNetworkingUtils004_SetConfigValue( void *arg return 0; } + +struct SteamMatchmakingServerListResponse_099u : u_ISteamMatchmakingServerListResponse_099u +{ + struct w_steam_iface *w_iface; + virtual void ServerResponded( int32_t ); + virtual void ServerFailedToRespond( int32_t ); + virtual void RefreshComplete( uint32_t ); +}; + +void SteamMatchmakingServerListResponse_099u::ServerResponded( int32_t iServer ) +{ + queue_vtable_callback( this->w_iface, CALL_IFACE_VTABLE_0, (intptr_t)iServer, 0, 0 ); +} + +void SteamMatchmakingServerListResponse_099u::ServerFailedToRespond( int32_t iServer ) +{ + queue_vtable_callback( this->w_iface, CALL_IFACE_VTABLE_1, (intptr_t)iServer, 0, 0 ); +} + +void SteamMatchmakingServerListResponse_099u::RefreshComplete( uint32_t response ) +{ + queue_vtable_callback( this->w_iface, CALL_IFACE_VTABLE_2, (intptr_t)response, 0, 0 ); +} + +u_ISteamMatchmakingServerListResponse_099u *create_LinuxISteamMatchmakingServerListResponse_099u( void *win ) +{ + SteamMatchmakingServerListResponse_099u *ret; + + if (!win) return NULL; + + if (!(ret = new SteamMatchmakingServerListResponse_099u())) return NULL; + ret->w_iface = (struct w_steam_iface *)win; + + return ret; +} + +struct SteamMatchmakingServerListResponse_106 : u_ISteamMatchmakingServerListResponse_106 +{ + struct w_steam_iface *w_iface; + virtual void ServerResponded( void *, int32_t ); + virtual void ServerFailedToRespond( void *, int32_t ); + virtual void RefreshComplete( void *, uint32_t ); +}; + +void SteamMatchmakingServerListResponse_106::ServerResponded( void *hRequest, int32_t iServer ) +{ + queue_vtable_callback( this->w_iface, CALL_IFACE_VTABLE_0, (intptr_t)hRequest, (intptr_t)iServer, 0 ); +} + +void SteamMatchmakingServerListResponse_106::ServerFailedToRespond( void *hRequest, int32_t iServer ) +{ + queue_vtable_callback( this->w_iface, CALL_IFACE_VTABLE_1, (intptr_t)hRequest, (intptr_t)iServer, 0 ); +} + +void SteamMatchmakingServerListResponse_106::RefreshComplete( void *hRequest, uint32_t response ) +{ + queue_vtable_callback( this->w_iface, CALL_IFACE_VTABLE_2, (intptr_t)hRequest, (intptr_t)response, 0 ); +} + +u_ISteamMatchmakingServerListResponse_106 *create_LinuxISteamMatchmakingServerListResponse_106( void *win ) +{ + SteamMatchmakingServerListResponse_106 *ret; + + if (!win) return NULL; + + if (!(ret = new SteamMatchmakingServerListResponse_106())) return NULL; + ret->w_iface = (struct w_steam_iface *)win; + + return ret; +} + +struct SteamMatchmakingPingResponse : u_ISteamMatchmakingPingResponse +{ + struct w_steam_iface *w_iface; + virtual void ServerResponded( gameserveritem_t_105 * ); + virtual void ServerFailedToRespond( ); +}; + +void SteamMatchmakingPingResponse::ServerResponded( gameserveritem_t_105 *server ) +{ + queue_vtable_callback( this->w_iface, CALL_IFACE_VTABLE_0, (intptr_t)server, 0, 0 ); +} + +void SteamMatchmakingPingResponse::ServerFailedToRespond(void) +{ + queue_vtable_callback( this->w_iface, CALL_IFACE_VTABLE_1, 0, 0, 0 ); +} + +struct u_ISteamMatchmakingPingResponse *create_LinuxISteamMatchmakingPingResponse( void *win ) +{ + SteamMatchmakingPingResponse *ret; + + if (!win) return NULL; + if (!(ret = new SteamMatchmakingPingResponse())) return NULL; + ret->w_iface = (struct w_steam_iface *)win; + + return ret; +} + +struct SteamMatchmakingPlayersResponse : u_ISteamMatchmakingPlayersResponse +{ + struct w_steam_iface *w_iface; + virtual void AddPlayerToList( const char *, int32_t, float ); + virtual void PlayersFailedToRespond( ); + virtual void PlayersRefreshComplete( ); +}; + +void SteamMatchmakingPlayersResponse::AddPlayerToList(const char *pchName, int nScore, float flTimePlayed) +{ + queue_vtable_callback_0_add_player_to_list( this->w_iface, pchName, nScore, flTimePlayed ); +} + +void SteamMatchmakingPlayersResponse::PlayersFailedToRespond(void) +{ + queue_vtable_callback( this->w_iface, CALL_IFACE_VTABLE_1, 0, 0, 0 ); +} + +void SteamMatchmakingPlayersResponse::PlayersRefreshComplete(void) +{ + queue_vtable_callback( this->w_iface, CALL_IFACE_VTABLE_2, 0, 0, 0 ); +} + +struct u_ISteamMatchmakingPlayersResponse *create_LinuxISteamMatchmakingPlayersResponse( void *win ) +{ + struct SteamMatchmakingPlayersResponse *ret; + + if (!win) return NULL; + if (!(ret = new SteamMatchmakingPlayersResponse())) return NULL; + ret->w_iface = (struct w_steam_iface *)win; + + return ret; +} + +struct SteamMatchmakingRulesResponse : u_ISteamMatchmakingRulesResponse +{ + struct w_steam_iface *w_iface; + virtual void RulesResponded( const char *, const char * ); + virtual void RulesFailedToRespond( ); + virtual void RulesRefreshComplete( ); +}; + +void SteamMatchmakingRulesResponse::RulesResponded(const char *pchRule, const char *pchValue) +{ + queue_vtable_callback_0_rules_responded( this->w_iface, pchRule, pchValue ); +} + +void SteamMatchmakingRulesResponse::RulesFailedToRespond(void) +{ + queue_vtable_callback( this->w_iface, CALL_IFACE_VTABLE_1, 0, 0, 0 ); +} + +void SteamMatchmakingRulesResponse::RulesRefreshComplete(void) +{ + queue_vtable_callback( this->w_iface, CALL_IFACE_VTABLE_2, 0, 0, 0 ); +} + +struct u_ISteamMatchmakingRulesResponse *create_LinuxISteamMatchmakingRulesResponse( void *win ) +{ + SteamMatchmakingRulesResponse *ret; + + if (!win) return NULL; + if (!(ret = new SteamMatchmakingRulesResponse())) return NULL; + ret->w_iface = (struct w_steam_iface *)win; + + return ret; +} + +struct u_ISteamNetworkingConnectionCustomSignaling *create_LinuxISteamNetworkingConnectionCustomSignaling( void *win ) +{ + FIXME( "not implemented!\n" ); + return NULL; +} + +struct u_ISteamNetworkingCustomSignalingRecvContext *create_LinuxISteamNetworkingCustomSignalingRecvContext( void *win ) +{ + FIXME( "not implemented!\n" ); + return NULL; +} + +NTSTATUS ISteamMatchmakingServers_SteamMatchMakingServers001_RequestInternetServerList( void *args ) +{ + struct ISteamMatchmakingServers_SteamMatchMakingServers001_RequestInternetServerList_params *params = (struct ISteamMatchmakingServers_SteamMatchMakingServers001_RequestInternetServerList_params *)args; + struct u_ISteamMatchmakingServers_SteamMatchMakingServers001 *iface = (struct u_ISteamMatchmakingServers_SteamMatchMakingServers001 *)params->linux_side; + u_ISteamMatchmakingServerListResponse_099u *u_pRequestServersResponse = create_LinuxISteamMatchmakingServerListResponse_099u( params->pRequestServersResponse ); + iface->RequestInternetServerList( params->iApp, params->ppchFilters, params->nFilters, u_pRequestServersResponse ); + return 0; +} + +NTSTATUS ISteamMatchmakingServers_SteamMatchMakingServers001_RequestLANServerList( void *args ) +{ + struct ISteamMatchmakingServers_SteamMatchMakingServers001_RequestLANServerList_params *params = (struct ISteamMatchmakingServers_SteamMatchMakingServers001_RequestLANServerList_params *)args; + struct u_ISteamMatchmakingServers_SteamMatchMakingServers001 *iface = (struct u_ISteamMatchmakingServers_SteamMatchMakingServers001 *)params->linux_side; + u_ISteamMatchmakingServerListResponse_099u *u_pRequestServersResponse = create_LinuxISteamMatchmakingServerListResponse_099u( params->pRequestServersResponse ); + iface->RequestLANServerList( params->iApp, u_pRequestServersResponse ); + return 0; +} + +NTSTATUS ISteamMatchmakingServers_SteamMatchMakingServers001_RequestFriendsServerList( void *args ) +{ + struct ISteamMatchmakingServers_SteamMatchMakingServers001_RequestFriendsServerList_params *params = (struct ISteamMatchmakingServers_SteamMatchMakingServers001_RequestFriendsServerList_params *)args; + struct u_ISteamMatchmakingServers_SteamMatchMakingServers001 *iface = (struct u_ISteamMatchmakingServers_SteamMatchMakingServers001 *)params->linux_side; + u_ISteamMatchmakingServerListResponse_099u *u_pRequestServersResponse = create_LinuxISteamMatchmakingServerListResponse_099u( params->pRequestServersResponse ); + iface->RequestFriendsServerList( params->iApp, params->ppchFilters, params->nFilters, u_pRequestServersResponse ); + return 0; +} + +NTSTATUS ISteamMatchmakingServers_SteamMatchMakingServers001_RequestFavoritesServerList( void *args ) +{ + struct ISteamMatchmakingServers_SteamMatchMakingServers001_RequestFavoritesServerList_params *params = (struct ISteamMatchmakingServers_SteamMatchMakingServers001_RequestFavoritesServerList_params *)args; + struct u_ISteamMatchmakingServers_SteamMatchMakingServers001 *iface = (struct u_ISteamMatchmakingServers_SteamMatchMakingServers001 *)params->linux_side; + u_ISteamMatchmakingServerListResponse_099u *u_pRequestServersResponse = create_LinuxISteamMatchmakingServerListResponse_099u( params->pRequestServersResponse ); + iface->RequestFavoritesServerList( params->iApp, params->ppchFilters, params->nFilters, u_pRequestServersResponse ); + return 0; +} + +NTSTATUS ISteamMatchmakingServers_SteamMatchMakingServers001_RequestHistoryServerList( void *args ) +{ + struct ISteamMatchmakingServers_SteamMatchMakingServers001_RequestHistoryServerList_params *params = (struct ISteamMatchmakingServers_SteamMatchMakingServers001_RequestHistoryServerList_params *)args; + struct u_ISteamMatchmakingServers_SteamMatchMakingServers001 *iface = (struct u_ISteamMatchmakingServers_SteamMatchMakingServers001 *)params->linux_side; + u_ISteamMatchmakingServerListResponse_099u *u_pRequestServersResponse = create_LinuxISteamMatchmakingServerListResponse_099u( params->pRequestServersResponse ); + iface->RequestHistoryServerList( params->iApp, params->ppchFilters, params->nFilters, u_pRequestServersResponse ); + return 0; +} + +NTSTATUS ISteamMatchmakingServers_SteamMatchMakingServers001_RequestSpectatorServerList( void *args ) +{ + struct ISteamMatchmakingServers_SteamMatchMakingServers001_RequestSpectatorServerList_params *params = (struct ISteamMatchmakingServers_SteamMatchMakingServers001_RequestSpectatorServerList_params *)args; + struct u_ISteamMatchmakingServers_SteamMatchMakingServers001 *iface = (struct u_ISteamMatchmakingServers_SteamMatchMakingServers001 *)params->linux_side; + u_ISteamMatchmakingServerListResponse_099u *u_pRequestServersResponse = create_LinuxISteamMatchmakingServerListResponse_099u( params->pRequestServersResponse ); + iface->RequestSpectatorServerList( params->iApp, params->ppchFilters, params->nFilters, u_pRequestServersResponse ); + return 0; +} + +NTSTATUS ISteamMatchmakingServers_SteamMatchMakingServers001_PingServer( void *args ) +{ + struct ISteamMatchmakingServers_SteamMatchMakingServers001_PingServer_params *params = (struct ISteamMatchmakingServers_SteamMatchMakingServers001_PingServer_params *)args; + struct u_ISteamMatchmakingServers_SteamMatchMakingServers001 *iface = (struct u_ISteamMatchmakingServers_SteamMatchMakingServers001 *)params->linux_side; + u_ISteamMatchmakingPingResponse *u_pRequestServersResponse = create_LinuxISteamMatchmakingPingResponse( params->pRequestServersResponse ); + params->_ret = iface->PingServer( params->unIP, params->usPort, u_pRequestServersResponse ); + return 0; +} + +NTSTATUS ISteamMatchmakingServers_SteamMatchMakingServers001_PlayerDetails( void *args ) +{ + struct ISteamMatchmakingServers_SteamMatchMakingServers001_PlayerDetails_params *params = (struct ISteamMatchmakingServers_SteamMatchMakingServers001_PlayerDetails_params *)args; + struct u_ISteamMatchmakingServers_SteamMatchMakingServers001 *iface = (struct u_ISteamMatchmakingServers_SteamMatchMakingServers001 *)params->linux_side; + u_ISteamMatchmakingPlayersResponse *u_pRequestServersResponse = create_LinuxISteamMatchmakingPlayersResponse( params->pRequestServersResponse ); + params->_ret = iface->PlayerDetails( params->unIP, params->usPort, u_pRequestServersResponse ); + return 0; +} + +NTSTATUS ISteamMatchmakingServers_SteamMatchMakingServers001_ServerRules( void *args ) +{ + struct ISteamMatchmakingServers_SteamMatchMakingServers001_ServerRules_params *params = (struct ISteamMatchmakingServers_SteamMatchMakingServers001_ServerRules_params *)args; + struct u_ISteamMatchmakingServers_SteamMatchMakingServers001 *iface = (struct u_ISteamMatchmakingServers_SteamMatchMakingServers001 *)params->linux_side; + u_ISteamMatchmakingRulesResponse *u_pRequestServersResponse = create_LinuxISteamMatchmakingRulesResponse( params->pRequestServersResponse ); + params->_ret = iface->ServerRules( params->unIP, params->usPort, u_pRequestServersResponse ); + return 0; +} + +NTSTATUS ISteamMatchmakingServers_SteamMatchMakingServers002_RequestInternetServerList( void *args ) +{ + struct ISteamMatchmakingServers_SteamMatchMakingServers002_RequestInternetServerList_params *params = (struct ISteamMatchmakingServers_SteamMatchMakingServers002_RequestInternetServerList_params *)args; + struct u_ISteamMatchmakingServers_SteamMatchMakingServers002 *iface = (struct u_ISteamMatchmakingServers_SteamMatchMakingServers002 *)params->linux_side; + u_ISteamMatchmakingServerListResponse_106 *u_pRequestServersResponse = create_LinuxISteamMatchmakingServerListResponse_106( params->pRequestServersResponse ); + params->_ret = iface->RequestInternetServerList( params->iApp, params->ppchFilters, params->nFilters, u_pRequestServersResponse ); + return 0; +} + +NTSTATUS ISteamMatchmakingServers_SteamMatchMakingServers002_RequestLANServerList( void *args ) +{ + struct ISteamMatchmakingServers_SteamMatchMakingServers002_RequestLANServerList_params *params = (struct ISteamMatchmakingServers_SteamMatchMakingServers002_RequestLANServerList_params *)args; + struct u_ISteamMatchmakingServers_SteamMatchMakingServers002 *iface = (struct u_ISteamMatchmakingServers_SteamMatchMakingServers002 *)params->linux_side; + u_ISteamMatchmakingServerListResponse_106 *u_pRequestServersResponse = create_LinuxISteamMatchmakingServerListResponse_106( params->pRequestServersResponse ); + params->_ret = iface->RequestLANServerList( params->iApp, u_pRequestServersResponse ); + return 0; +} + +NTSTATUS ISteamMatchmakingServers_SteamMatchMakingServers002_RequestFriendsServerList( void *args ) +{ + struct ISteamMatchmakingServers_SteamMatchMakingServers002_RequestFriendsServerList_params *params = (struct ISteamMatchmakingServers_SteamMatchMakingServers002_RequestFriendsServerList_params *)args; + struct u_ISteamMatchmakingServers_SteamMatchMakingServers002 *iface = (struct u_ISteamMatchmakingServers_SteamMatchMakingServers002 *)params->linux_side; + u_ISteamMatchmakingServerListResponse_106 *u_pRequestServersResponse = create_LinuxISteamMatchmakingServerListResponse_106( params->pRequestServersResponse ); + params->_ret = iface->RequestFriendsServerList( params->iApp, params->ppchFilters, params->nFilters, u_pRequestServersResponse ); + return 0; +} + +NTSTATUS ISteamMatchmakingServers_SteamMatchMakingServers002_RequestFavoritesServerList( void *args ) +{ + struct ISteamMatchmakingServers_SteamMatchMakingServers002_RequestFavoritesServerList_params *params = (struct ISteamMatchmakingServers_SteamMatchMakingServers002_RequestFavoritesServerList_params *)args; + struct u_ISteamMatchmakingServers_SteamMatchMakingServers002 *iface = (struct u_ISteamMatchmakingServers_SteamMatchMakingServers002 *)params->linux_side; + u_ISteamMatchmakingServerListResponse_106 *u_pRequestServersResponse = create_LinuxISteamMatchmakingServerListResponse_106( params->pRequestServersResponse ); + params->_ret = iface->RequestFavoritesServerList( params->iApp, params->ppchFilters, params->nFilters, u_pRequestServersResponse ); + return 0; +} + +NTSTATUS ISteamMatchmakingServers_SteamMatchMakingServers002_RequestHistoryServerList( void *args ) +{ + struct ISteamMatchmakingServers_SteamMatchMakingServers002_RequestHistoryServerList_params *params = (struct ISteamMatchmakingServers_SteamMatchMakingServers002_RequestHistoryServerList_params *)args; + struct u_ISteamMatchmakingServers_SteamMatchMakingServers002 *iface = (struct u_ISteamMatchmakingServers_SteamMatchMakingServers002 *)params->linux_side; + u_ISteamMatchmakingServerListResponse_106 *u_pRequestServersResponse = create_LinuxISteamMatchmakingServerListResponse_106( params->pRequestServersResponse ); + params->_ret = iface->RequestHistoryServerList( params->iApp, params->ppchFilters, params->nFilters, u_pRequestServersResponse ); + return 0; +} + +NTSTATUS ISteamMatchmakingServers_SteamMatchMakingServers002_RequestSpectatorServerList( void *args ) +{ + struct ISteamMatchmakingServers_SteamMatchMakingServers002_RequestSpectatorServerList_params *params = (struct ISteamMatchmakingServers_SteamMatchMakingServers002_RequestSpectatorServerList_params *)args; + struct u_ISteamMatchmakingServers_SteamMatchMakingServers002 *iface = (struct u_ISteamMatchmakingServers_SteamMatchMakingServers002 *)params->linux_side; + u_ISteamMatchmakingServerListResponse_106 *u_pRequestServersResponse = create_LinuxISteamMatchmakingServerListResponse_106( params->pRequestServersResponse ); + params->_ret = iface->RequestSpectatorServerList( params->iApp, params->ppchFilters, params->nFilters, u_pRequestServersResponse ); + return 0; +} + +NTSTATUS ISteamMatchmakingServers_SteamMatchMakingServers002_PingServer( void *args ) +{ + struct ISteamMatchmakingServers_SteamMatchMakingServers002_PingServer_params *params = (struct ISteamMatchmakingServers_SteamMatchMakingServers002_PingServer_params *)args; + struct u_ISteamMatchmakingServers_SteamMatchMakingServers002 *iface = (struct u_ISteamMatchmakingServers_SteamMatchMakingServers002 *)params->linux_side; + u_ISteamMatchmakingPingResponse *u_pRequestServersResponse = create_LinuxISteamMatchmakingPingResponse( params->pRequestServersResponse ); + params->_ret = iface->PingServer( params->unIP, params->usPort, u_pRequestServersResponse ); + return 0; +} + +NTSTATUS ISteamMatchmakingServers_SteamMatchMakingServers002_PlayerDetails( void *args ) +{ + struct ISteamMatchmakingServers_SteamMatchMakingServers002_PlayerDetails_params *params = (struct ISteamMatchmakingServers_SteamMatchMakingServers002_PlayerDetails_params *)args; + struct u_ISteamMatchmakingServers_SteamMatchMakingServers002 *iface = (struct u_ISteamMatchmakingServers_SteamMatchMakingServers002 *)params->linux_side; + u_ISteamMatchmakingPlayersResponse *u_pRequestServersResponse = create_LinuxISteamMatchmakingPlayersResponse( params->pRequestServersResponse ); + params->_ret = iface->PlayerDetails( params->unIP, params->usPort, u_pRequestServersResponse ); + return 0; +} + +NTSTATUS ISteamMatchmakingServers_SteamMatchMakingServers002_ServerRules( void *args ) +{ + struct ISteamMatchmakingServers_SteamMatchMakingServers002_ServerRules_params *params = (struct ISteamMatchmakingServers_SteamMatchMakingServers002_ServerRules_params *)args; + struct u_ISteamMatchmakingServers_SteamMatchMakingServers002 *iface = (struct u_ISteamMatchmakingServers_SteamMatchMakingServers002 *)params->linux_side; + u_ISteamMatchmakingRulesResponse *u_pRequestServersResponse = create_LinuxISteamMatchmakingRulesResponse( params->pRequestServersResponse ); + params->_ret = iface->ServerRules( params->unIP, params->usPort, u_pRequestServersResponse ); + return 0; +} + +NTSTATUS ISteamNetworkingSockets_SteamNetworkingSockets006_ConnectP2PCustomSignaling( void *args ) +{ + struct ISteamNetworkingSockets_SteamNetworkingSockets006_ConnectP2PCustomSignaling_params *params = (struct ISteamNetworkingSockets_SteamNetworkingSockets006_ConnectP2PCustomSignaling_params *)args; + struct u_ISteamNetworkingSockets_SteamNetworkingSockets006 *iface = (struct u_ISteamNetworkingSockets_SteamNetworkingSockets006 *)params->linux_side; + u_ISteamNetworkingConnectionCustomSignaling *u_pSignaling = create_LinuxISteamNetworkingConnectionCustomSignaling( params->pSignaling ); + params->_ret = iface->ConnectP2PCustomSignaling( u_pSignaling, params->pPeerIdentity, params->nOptions, params->pOptions ); + return 0; +} + +NTSTATUS ISteamNetworkingSockets_SteamNetworkingSockets006_ReceivedP2PCustomSignal( void *args ) +{ + struct ISteamNetworkingSockets_SteamNetworkingSockets006_ReceivedP2PCustomSignal_params *params = (struct ISteamNetworkingSockets_SteamNetworkingSockets006_ReceivedP2PCustomSignal_params *)args; + struct u_ISteamNetworkingSockets_SteamNetworkingSockets006 *iface = (struct u_ISteamNetworkingSockets_SteamNetworkingSockets006 *)params->linux_side; + u_ISteamNetworkingCustomSignalingRecvContext *u_pContext = create_LinuxISteamNetworkingCustomSignalingRecvContext( params->pContext ); + params->_ret = iface->ReceivedP2PCustomSignal( params->pMsg, params->cbMsg, u_pContext ); + return 0; +} + +NTSTATUS ISteamNetworkingSockets_SteamNetworkingSockets008_ConnectP2PCustomSignaling( void *args ) +{ + struct ISteamNetworkingSockets_SteamNetworkingSockets008_ConnectP2PCustomSignaling_params *params = (struct ISteamNetworkingSockets_SteamNetworkingSockets008_ConnectP2PCustomSignaling_params *)args; + struct u_ISteamNetworkingSockets_SteamNetworkingSockets008 *iface = (struct u_ISteamNetworkingSockets_SteamNetworkingSockets008 *)params->linux_side; + u_ISteamNetworkingConnectionCustomSignaling *u_pSignaling = create_LinuxISteamNetworkingConnectionCustomSignaling( params->pSignaling ); + params->_ret = iface->ConnectP2PCustomSignaling( u_pSignaling, params->pPeerIdentity, params->nOptions, params->pOptions ); + return 0; +} + +NTSTATUS ISteamNetworkingSockets_SteamNetworkingSockets008_ReceivedP2PCustomSignal( void *args ) +{ + struct ISteamNetworkingSockets_SteamNetworkingSockets008_ReceivedP2PCustomSignal_params *params = (struct ISteamNetworkingSockets_SteamNetworkingSockets008_ReceivedP2PCustomSignal_params *)args; + struct u_ISteamNetworkingSockets_SteamNetworkingSockets008 *iface = (struct u_ISteamNetworkingSockets_SteamNetworkingSockets008 *)params->linux_side; + u_ISteamNetworkingCustomSignalingRecvContext *u_pContext = create_LinuxISteamNetworkingCustomSignalingRecvContext( params->pContext ); + params->_ret = iface->ReceivedP2PCustomSignal( params->pMsg, params->cbMsg, u_pContext ); + return 0; +} diff --git a/lsteamclient/unixlib.cpp b/lsteamclient/unixlib.cpp index 974e6065..36b1ab23 100644 --- a/lsteamclient/unixlib.cpp +++ b/lsteamclient/unixlib.cpp @@ -16,6 +16,71 @@ struct callback_entry static struct list callbacks = LIST_INIT( callbacks ); static pthread_mutex_t callbacks_lock = PTHREAD_MUTEX_INITIALIZER; +extern void queue_vtable_callback( struct w_steam_iface *w_iface, enum callback_type type, uint64_t arg0, uint64_t arg1, uint64_t arg2 ) +{ + struct callback_entry *entry; + uint32_t size = 0; + + size += sizeof(struct callback_entry); + if (!(entry = (struct callback_entry *)malloc( size ))) return; + + entry->callback.type = type; + size -= offsetof( struct callback_entry, callback ); + entry->callback.size = size; + + entry->callback.call_iface_vtable.iface = w_iface; + entry->callback.call_iface_vtable.arg0 = arg0; + entry->callback.call_iface_vtable.arg1 = arg1; + entry->callback.call_iface_vtable.arg2 = arg2; + + pthread_mutex_lock( &callbacks_lock ); + list_add_tail( &callbacks, &entry->entry ); + pthread_mutex_unlock( &callbacks_lock ); +} + +extern void queue_vtable_callback_0_add_player_to_list( struct w_steam_iface *w_iface, const char *pchName, int nScore, float flTimePlayed ) +{ + uint32_t name_size = strlen( pchName ) + 1, size = name_size; + struct callback_entry *entry; + + size += sizeof(struct callback_entry); + if (!(entry = (struct callback_entry *)malloc( size ))) return; + + entry->callback.type = CALL_IFACE_VTABLE_0_ADD_PLAYER_TO_LIST; + size -= offsetof( struct callback_entry, callback ); + entry->callback.size = size; + + entry->callback.add_player_to_list.iface = w_iface; + entry->callback.add_player_to_list.score = nScore; + entry->callback.add_player_to_list.time_played = flTimePlayed; + memcpy( (char *)entry->callback.add_player_to_list.name, pchName, name_size ); + + pthread_mutex_lock( &callbacks_lock ); + list_add_tail( &callbacks, &entry->entry ); + pthread_mutex_unlock( &callbacks_lock ); +} + +extern void queue_vtable_callback_0_rules_responded( struct w_steam_iface *w_iface, const char *pchRule, const char *pchValue ) +{ + uint32_t rule_size = strlen( pchRule ) + 1, value_size = strlen( pchValue ) + 1, size = rule_size + value_size; + struct callback_entry *entry; + + size += sizeof(struct callback_entry); + if (!(entry = (struct callback_entry *)malloc( size ))) return; + + entry->callback.type = CALL_IFACE_VTABLE_0_RULES_RESPONDED; + size -= offsetof( struct callback_entry, callback ); + entry->callback.size = size; + + entry->callback.rules_responded.iface = w_iface; + memcpy( (char *)entry->callback.rules_responded.rule_and_value, pchRule, rule_size ); + memcpy( (char *)entry->callback.rules_responded.rule_and_value + rule_size, pchValue, value_size ); + + pthread_mutex_lock( &callbacks_lock ); + list_add_tail( &callbacks, &entry->entry ); + pthread_mutex_unlock( &callbacks_lock ); +} + static w_FSteamNetworkingSocketsDebugOutput w_steam_networking_socket_debug_output; static void u_steam_networking_socket_debug_output( uint32_t nType, const char *pszMsg ) { diff --git a/lsteamclient/unixlib.h b/lsteamclient/unixlib.h index 94ae442c..90307ffb 100644 --- a/lsteamclient/unixlib.h +++ b/lsteamclient/unixlib.h @@ -34,6 +34,11 @@ enum callback_type { SOCKETS_DEBUG_OUTPUT = 1, WARNING_MESSAGE_HOOK, + CALL_IFACE_VTABLE_0, + CALL_IFACE_VTABLE_1, + CALL_IFACE_VTABLE_2, + CALL_IFACE_VTABLE_0_ADD_PLAYER_TO_LIST, + CALL_IFACE_VTABLE_0_RULES_RESPONDED, }; struct callback @@ -56,6 +61,28 @@ struct callback int32_t severity; const char msg[1]; } warning_message_hook; + + struct + { + struct w_steam_iface *iface; + uint64_t arg0; + uint64_t arg1; + uint64_t arg2; + } call_iface_vtable; + + struct + { + struct w_steam_iface *iface; + int32_t score; + float time_played; + const char name[1]; + } add_player_to_list; + + struct + { + struct w_steam_iface *iface; + const char rule_and_value[1]; + } rules_responded; }; }; diff --git a/lsteamclient/unixlib_generated.h b/lsteamclient/unixlib_generated.h index 0b68e4f2..f39633e7 100644 --- a/lsteamclient/unixlib_generated.h +++ b/lsteamclient/unixlib_generated.h @@ -36885,14 +36885,14 @@ struct ISteamMatchmakingServers_SteamMatchMakingServers001_RequestInternetServer uint32_t iApp; MatchMakingKeyValuePair_t **ppchFilters; uint32_t nFilters; - w_ISteamMatchmakingServerListResponse *pRequestServersResponse; + w_ISteamMatchmakingServerListResponse_099u *pRequestServersResponse; }; struct ISteamMatchmakingServers_SteamMatchMakingServers001_RequestLANServerList_params { struct u_steam_iface *linux_side; uint32_t iApp; - w_ISteamMatchmakingServerListResponse *pRequestServersResponse; + w_ISteamMatchmakingServerListResponse_099u *pRequestServersResponse; }; struct ISteamMatchmakingServers_SteamMatchMakingServers001_RequestFriendsServerList_params @@ -36901,7 +36901,7 @@ struct ISteamMatchmakingServers_SteamMatchMakingServers001_RequestFriendsServerL uint32_t iApp; MatchMakingKeyValuePair_t **ppchFilters; uint32_t nFilters; - w_ISteamMatchmakingServerListResponse *pRequestServersResponse; + w_ISteamMatchmakingServerListResponse_099u *pRequestServersResponse; }; struct ISteamMatchmakingServers_SteamMatchMakingServers001_RequestFavoritesServerList_params @@ -36910,7 +36910,7 @@ struct ISteamMatchmakingServers_SteamMatchMakingServers001_RequestFavoritesServe uint32_t iApp; MatchMakingKeyValuePair_t **ppchFilters; uint32_t nFilters; - w_ISteamMatchmakingServerListResponse *pRequestServersResponse; + w_ISteamMatchmakingServerListResponse_099u *pRequestServersResponse; }; struct ISteamMatchmakingServers_SteamMatchMakingServers001_RequestHistoryServerList_params @@ -36919,7 +36919,7 @@ struct ISteamMatchmakingServers_SteamMatchMakingServers001_RequestHistoryServerL uint32_t iApp; MatchMakingKeyValuePair_t **ppchFilters; uint32_t nFilters; - w_ISteamMatchmakingServerListResponse *pRequestServersResponse; + w_ISteamMatchmakingServerListResponse_099u *pRequestServersResponse; }; struct ISteamMatchmakingServers_SteamMatchMakingServers001_RequestSpectatorServerList_params @@ -36928,7 +36928,7 @@ struct ISteamMatchmakingServers_SteamMatchMakingServers001_RequestSpectatorServe uint32_t iApp; MatchMakingKeyValuePair_t **ppchFilters; uint32_t nFilters; - w_ISteamMatchmakingServerListResponse *pRequestServersResponse; + w_ISteamMatchmakingServerListResponse_099u *pRequestServersResponse; }; struct ISteamMatchmakingServers_SteamMatchMakingServers001_GetServerDetails_params @@ -37012,7 +37012,7 @@ struct ISteamMatchmakingServers_SteamMatchMakingServers002_RequestInternetServer uint32_t iApp; MatchMakingKeyValuePair_t **ppchFilters; uint32_t nFilters; - w_ISteamMatchmakingServerListResponse *pRequestServersResponse; + w_ISteamMatchmakingServerListResponse_106 *pRequestServersResponse; }; struct ISteamMatchmakingServers_SteamMatchMakingServers002_RequestLANServerList_params @@ -37020,7 +37020,7 @@ struct ISteamMatchmakingServers_SteamMatchMakingServers002_RequestLANServerList_ struct u_steam_iface *linux_side; void *_ret; uint32_t iApp; - w_ISteamMatchmakingServerListResponse *pRequestServersResponse; + w_ISteamMatchmakingServerListResponse_106 *pRequestServersResponse; }; struct ISteamMatchmakingServers_SteamMatchMakingServers002_RequestFriendsServerList_params @@ -37030,7 +37030,7 @@ struct ISteamMatchmakingServers_SteamMatchMakingServers002_RequestFriendsServerL uint32_t iApp; MatchMakingKeyValuePair_t **ppchFilters; uint32_t nFilters; - w_ISteamMatchmakingServerListResponse *pRequestServersResponse; + w_ISteamMatchmakingServerListResponse_106 *pRequestServersResponse; }; struct ISteamMatchmakingServers_SteamMatchMakingServers002_RequestFavoritesServerList_params @@ -37040,7 +37040,7 @@ struct ISteamMatchmakingServers_SteamMatchMakingServers002_RequestFavoritesServe uint32_t iApp; MatchMakingKeyValuePair_t **ppchFilters; uint32_t nFilters; - w_ISteamMatchmakingServerListResponse *pRequestServersResponse; + w_ISteamMatchmakingServerListResponse_106 *pRequestServersResponse; }; struct ISteamMatchmakingServers_SteamMatchMakingServers002_RequestHistoryServerList_params @@ -37050,7 +37050,7 @@ struct ISteamMatchmakingServers_SteamMatchMakingServers002_RequestHistoryServerL uint32_t iApp; MatchMakingKeyValuePair_t **ppchFilters; uint32_t nFilters; - w_ISteamMatchmakingServerListResponse *pRequestServersResponse; + w_ISteamMatchmakingServerListResponse_106 *pRequestServersResponse; }; struct ISteamMatchmakingServers_SteamMatchMakingServers002_RequestSpectatorServerList_params @@ -37060,7 +37060,7 @@ struct ISteamMatchmakingServers_SteamMatchMakingServers002_RequestSpectatorServe uint32_t iApp; MatchMakingKeyValuePair_t **ppchFilters; uint32_t nFilters; - w_ISteamMatchmakingServerListResponse *pRequestServersResponse; + w_ISteamMatchmakingServerListResponse_106 *pRequestServersResponse; }; struct ISteamMatchmakingServers_SteamMatchMakingServers002_ReleaseRequest_params diff --git a/lsteamclient/winISteamMatchmakingServers.c b/lsteamclient/winISteamMatchmakingServers.c index 620d584b..804d9853 100644 --- a/lsteamclient/winISteamMatchmakingServers.c +++ b/lsteamclient/winISteamMatchmakingServers.c @@ -20,7 +20,7 @@ DEFINE_THISCALL_WRAPPER(winISteamMatchmakingServers_SteamMatchMakingServers001_P DEFINE_THISCALL_WRAPPER(winISteamMatchmakingServers_SteamMatchMakingServers001_ServerRules, 16) DEFINE_THISCALL_WRAPPER(winISteamMatchmakingServers_SteamMatchMakingServers001_CancelServerQuery, 8) -void __thiscall winISteamMatchmakingServers_SteamMatchMakingServers001_RequestInternetServerList(struct w_steam_iface *_this, uint32_t iApp, MatchMakingKeyValuePair_t **ppchFilters, uint32_t nFilters, w_ISteamMatchmakingServerListResponse *pRequestServersResponse) +void __thiscall winISteamMatchmakingServers_SteamMatchMakingServers001_RequestInternetServerList(struct w_steam_iface *_this, uint32_t iApp, MatchMakingKeyValuePair_t **ppchFilters, uint32_t nFilters, w_ISteamMatchmakingServerListResponse_099u *pRequestServersResponse) { struct ISteamMatchmakingServers_SteamMatchMakingServers001_RequestInternetServerList_params params = { @@ -34,7 +34,7 @@ void __thiscall winISteamMatchmakingServers_SteamMatchMakingServers001_RequestIn STEAMCLIENT_CALL( ISteamMatchmakingServers_SteamMatchMakingServers001_RequestInternetServerList, ¶ms ); } -void __thiscall winISteamMatchmakingServers_SteamMatchMakingServers001_RequestLANServerList(struct w_steam_iface *_this, uint32_t iApp, w_ISteamMatchmakingServerListResponse *pRequestServersResponse) +void __thiscall winISteamMatchmakingServers_SteamMatchMakingServers001_RequestLANServerList(struct w_steam_iface *_this, uint32_t iApp, w_ISteamMatchmakingServerListResponse_099u *pRequestServersResponse) { struct ISteamMatchmakingServers_SteamMatchMakingServers001_RequestLANServerList_params params = { @@ -46,7 +46,7 @@ void __thiscall winISteamMatchmakingServers_SteamMatchMakingServers001_RequestLA STEAMCLIENT_CALL( ISteamMatchmakingServers_SteamMatchMakingServers001_RequestLANServerList, ¶ms ); } -void __thiscall winISteamMatchmakingServers_SteamMatchMakingServers001_RequestFriendsServerList(struct w_steam_iface *_this, uint32_t iApp, MatchMakingKeyValuePair_t **ppchFilters, uint32_t nFilters, w_ISteamMatchmakingServerListResponse *pRequestServersResponse) +void __thiscall winISteamMatchmakingServers_SteamMatchMakingServers001_RequestFriendsServerList(struct w_steam_iface *_this, uint32_t iApp, MatchMakingKeyValuePair_t **ppchFilters, uint32_t nFilters, w_ISteamMatchmakingServerListResponse_099u *pRequestServersResponse) { struct ISteamMatchmakingServers_SteamMatchMakingServers001_RequestFriendsServerList_params params = { @@ -60,7 +60,7 @@ void __thiscall winISteamMatchmakingServers_SteamMatchMakingServers001_RequestFr STEAMCLIENT_CALL( ISteamMatchmakingServers_SteamMatchMakingServers001_RequestFriendsServerList, ¶ms ); } -void __thiscall winISteamMatchmakingServers_SteamMatchMakingServers001_RequestFavoritesServerList(struct w_steam_iface *_this, uint32_t iApp, MatchMakingKeyValuePair_t **ppchFilters, uint32_t nFilters, w_ISteamMatchmakingServerListResponse *pRequestServersResponse) +void __thiscall winISteamMatchmakingServers_SteamMatchMakingServers001_RequestFavoritesServerList(struct w_steam_iface *_this, uint32_t iApp, MatchMakingKeyValuePair_t **ppchFilters, uint32_t nFilters, w_ISteamMatchmakingServerListResponse_099u *pRequestServersResponse) { struct ISteamMatchmakingServers_SteamMatchMakingServers001_RequestFavoritesServerList_params params = { @@ -74,7 +74,7 @@ void __thiscall winISteamMatchmakingServers_SteamMatchMakingServers001_RequestFa STEAMCLIENT_CALL( ISteamMatchmakingServers_SteamMatchMakingServers001_RequestFavoritesServerList, ¶ms ); } -void __thiscall winISteamMatchmakingServers_SteamMatchMakingServers001_RequestHistoryServerList(struct w_steam_iface *_this, uint32_t iApp, MatchMakingKeyValuePair_t **ppchFilters, uint32_t nFilters, w_ISteamMatchmakingServerListResponse *pRequestServersResponse) +void __thiscall winISteamMatchmakingServers_SteamMatchMakingServers001_RequestHistoryServerList(struct w_steam_iface *_this, uint32_t iApp, MatchMakingKeyValuePair_t **ppchFilters, uint32_t nFilters, w_ISteamMatchmakingServerListResponse_099u *pRequestServersResponse) { struct ISteamMatchmakingServers_SteamMatchMakingServers001_RequestHistoryServerList_params params = { @@ -88,7 +88,7 @@ void __thiscall winISteamMatchmakingServers_SteamMatchMakingServers001_RequestHi STEAMCLIENT_CALL( ISteamMatchmakingServers_SteamMatchMakingServers001_RequestHistoryServerList, ¶ms ); } -void __thiscall winISteamMatchmakingServers_SteamMatchMakingServers001_RequestSpectatorServerList(struct w_steam_iface *_this, uint32_t iApp, MatchMakingKeyValuePair_t **ppchFilters, uint32_t nFilters, w_ISteamMatchmakingServerListResponse *pRequestServersResponse) +void __thiscall winISteamMatchmakingServers_SteamMatchMakingServers001_RequestSpectatorServerList(struct w_steam_iface *_this, uint32_t iApp, MatchMakingKeyValuePair_t **ppchFilters, uint32_t nFilters, w_ISteamMatchmakingServerListResponse_099u *pRequestServersResponse) { struct ISteamMatchmakingServers_SteamMatchMakingServers001_RequestSpectatorServerList_params params = { @@ -278,7 +278,7 @@ DEFINE_THISCALL_WRAPPER(winISteamMatchmakingServers_SteamMatchMakingServers002_P DEFINE_THISCALL_WRAPPER(winISteamMatchmakingServers_SteamMatchMakingServers002_ServerRules, 16) DEFINE_THISCALL_WRAPPER(winISteamMatchmakingServers_SteamMatchMakingServers002_CancelServerQuery, 8) -void * __thiscall winISteamMatchmakingServers_SteamMatchMakingServers002_RequestInternetServerList(struct w_steam_iface *_this, uint32_t iApp, MatchMakingKeyValuePair_t **ppchFilters, uint32_t nFilters, w_ISteamMatchmakingServerListResponse *pRequestServersResponse) +void * __thiscall winISteamMatchmakingServers_SteamMatchMakingServers002_RequestInternetServerList(struct w_steam_iface *_this, uint32_t iApp, MatchMakingKeyValuePair_t **ppchFilters, uint32_t nFilters, w_ISteamMatchmakingServerListResponse_106 *pRequestServersResponse) { struct ISteamMatchmakingServers_SteamMatchMakingServers002_RequestInternetServerList_params params = { @@ -293,7 +293,7 @@ void * __thiscall winISteamMatchmakingServers_SteamMatchMakingServers002_Request return params._ret; } -void * __thiscall winISteamMatchmakingServers_SteamMatchMakingServers002_RequestLANServerList(struct w_steam_iface *_this, uint32_t iApp, w_ISteamMatchmakingServerListResponse *pRequestServersResponse) +void * __thiscall winISteamMatchmakingServers_SteamMatchMakingServers002_RequestLANServerList(struct w_steam_iface *_this, uint32_t iApp, w_ISteamMatchmakingServerListResponse_106 *pRequestServersResponse) { struct ISteamMatchmakingServers_SteamMatchMakingServers002_RequestLANServerList_params params = { @@ -306,7 +306,7 @@ void * __thiscall winISteamMatchmakingServers_SteamMatchMakingServers002_Request return params._ret; } -void * __thiscall winISteamMatchmakingServers_SteamMatchMakingServers002_RequestFriendsServerList(struct w_steam_iface *_this, uint32_t iApp, MatchMakingKeyValuePair_t **ppchFilters, uint32_t nFilters, w_ISteamMatchmakingServerListResponse *pRequestServersResponse) +void * __thiscall winISteamMatchmakingServers_SteamMatchMakingServers002_RequestFriendsServerList(struct w_steam_iface *_this, uint32_t iApp, MatchMakingKeyValuePair_t **ppchFilters, uint32_t nFilters, w_ISteamMatchmakingServerListResponse_106 *pRequestServersResponse) { struct ISteamMatchmakingServers_SteamMatchMakingServers002_RequestFriendsServerList_params params = { @@ -321,7 +321,7 @@ void * __thiscall winISteamMatchmakingServers_SteamMatchMakingServers002_Request return params._ret; } -void * __thiscall winISteamMatchmakingServers_SteamMatchMakingServers002_RequestFavoritesServerList(struct w_steam_iface *_this, uint32_t iApp, MatchMakingKeyValuePair_t **ppchFilters, uint32_t nFilters, w_ISteamMatchmakingServerListResponse *pRequestServersResponse) +void * __thiscall winISteamMatchmakingServers_SteamMatchMakingServers002_RequestFavoritesServerList(struct w_steam_iface *_this, uint32_t iApp, MatchMakingKeyValuePair_t **ppchFilters, uint32_t nFilters, w_ISteamMatchmakingServerListResponse_106 *pRequestServersResponse) { struct ISteamMatchmakingServers_SteamMatchMakingServers002_RequestFavoritesServerList_params params = { @@ -336,7 +336,7 @@ void * __thiscall winISteamMatchmakingServers_SteamMatchMakingServers002_Request return params._ret; } -void * __thiscall winISteamMatchmakingServers_SteamMatchMakingServers002_RequestHistoryServerList(struct w_steam_iface *_this, uint32_t iApp, MatchMakingKeyValuePair_t **ppchFilters, uint32_t nFilters, w_ISteamMatchmakingServerListResponse *pRequestServersResponse) +void * __thiscall winISteamMatchmakingServers_SteamMatchMakingServers002_RequestHistoryServerList(struct w_steam_iface *_this, uint32_t iApp, MatchMakingKeyValuePair_t **ppchFilters, uint32_t nFilters, w_ISteamMatchmakingServerListResponse_106 *pRequestServersResponse) { struct ISteamMatchmakingServers_SteamMatchMakingServers002_RequestHistoryServerList_params params = { @@ -351,7 +351,7 @@ void * __thiscall winISteamMatchmakingServers_SteamMatchMakingServers002_Request return params._ret; } -void * __thiscall winISteamMatchmakingServers_SteamMatchMakingServers002_RequestSpectatorServerList(struct w_steam_iface *_this, uint32_t iApp, MatchMakingKeyValuePair_t **ppchFilters, uint32_t nFilters, w_ISteamMatchmakingServerListResponse *pRequestServersResponse) +void * __thiscall winISteamMatchmakingServers_SteamMatchMakingServers002_RequestSpectatorServerList(struct w_steam_iface *_this, uint32_t iApp, MatchMakingKeyValuePair_t **ppchFilters, uint32_t nFilters, w_ISteamMatchmakingServerListResponse_106 *pRequestServersResponse) { struct ISteamMatchmakingServers_SteamMatchMakingServers002_RequestSpectatorServerList_params params = { diff --git a/lsteamclient/winISteamNetworkingFakeUDPPort.c b/lsteamclient/winISteamNetworkingFakeUDPPort.c index 201346e6..06d96ec8 100644 --- a/lsteamclient/winISteamNetworkingFakeUDPPort.c +++ b/lsteamclient/winISteamNetworkingFakeUDPPort.c @@ -49,7 +49,7 @@ __ASM_BLOCK_END struct w_steam_iface *create_winISteamNetworkingFakeUDPPort_SteamNetworkingFakeUDPPort001(void *u_iface) { - struct w_steam_iface *r = HeapAlloc(GetProcessHeap(), 0, sizeof(struct w_steam_iface)); + struct w_steam_iface *r = alloc_mem_for_iface(sizeof(struct w_steam_iface), "SteamNetworkingFakeUDPPort001"); TRACE("-> %p\n", r); r->vtable = alloc_vtable(&winISteamNetworkingFakeUDPPort_SteamNetworkingFakeUDPPort001_vtable, 4, "SteamNetworkingFakeUDPPort001"); r->u_iface = u_iface;