lsteamclient: Execute debug callbacks from within Steam_BGetCallback.
CW-Bug-Id: #22729
This commit is contained in:
parent
1b4cd4fc7a
commit
77e83d193a
10 changed files with 422 additions and 463 deletions
|
@ -5,7 +5,6 @@ EXTRADLLFLAGS = -mcygwin -static-libgcc -static-libstdc++ -ldl
|
|||
EXTRADEFS = -DWINE_NO_LONG_TYPES -DSTEAM_API_EXPORTS -Dprivate=public -Dprotected=public
|
||||
|
||||
SOURCES = \
|
||||
steam_client_manual.c \
|
||||
steam_input_manual.c \
|
||||
steam_networking_manual.c \
|
||||
steamclient_main.c \
|
||||
|
@ -284,4 +283,5 @@ SOURCES = \
|
|||
unix_steam_input_manual.cpp \
|
||||
unix_steam_networking_manual.cpp \
|
||||
unix_steam_utils_manual.cpp \
|
||||
unixlib.cpp \
|
||||
unixlib_generated.cpp \
|
||||
|
|
|
@ -227,8 +227,6 @@ MANUAL_METHODS = {
|
|||
"ISteamNetworkingFakeUDPPort_DestroyFakeUDPPort": lambda ver, abi: abi == 'w',
|
||||
"ISteamNetworkingFakeUDPPort_ReceiveMessages": True,
|
||||
|
||||
"ISteamClient_BShutdownIfAllPipesClosed": lambda ver, abi: abi == 'w',
|
||||
"ISteamClient_CreateSteamPipe": lambda ver, abi: abi == 'w',
|
||||
"ISteamClient_Set_SteamAPI_CCheckCallbackRegisteredInProcess": lambda ver, abi: abi == 'u' and ver >= 20,
|
||||
|
||||
"ISteamUtils_GetAPICallResult": lambda ver, abi: abi == 'u',
|
||||
|
|
|
@ -1,426 +0,0 @@
|
|||
#include "steamclient_private.h"
|
||||
|
||||
#include <assert.h>
|
||||
#include <pthread.h>
|
||||
|
||||
#include "cppISteamClient_SteamClient006.h"
|
||||
#include "cppISteamClient_SteamClient007.h"
|
||||
#include "cppISteamClient_SteamClient008.h"
|
||||
#include "cppISteamClient_SteamClient009.h"
|
||||
#include "cppISteamClient_SteamClient010.h"
|
||||
#include "cppISteamClient_SteamClient011.h"
|
||||
#include "cppISteamClient_SteamClient012.h"
|
||||
#include "cppISteamClient_SteamClient013.h"
|
||||
#include "cppISteamClient_SteamClient014.h"
|
||||
#include "cppISteamClient_SteamClient015.h"
|
||||
#include "cppISteamClient_SteamClient016.h"
|
||||
#include "cppISteamClient_SteamClient017.h"
|
||||
#include "cppISteamClient_SteamClient018.h"
|
||||
#include "cppISteamClient_SteamClient019.h"
|
||||
#include "cppISteamClient_SteamClient020.h"
|
||||
|
||||
WINE_DEFAULT_DEBUG_CHANNEL(steamclient);
|
||||
|
||||
static HANDLE callback_thread_handle;
|
||||
|
||||
#define MAX_CALLBACK_QUEUE_SIZE 4
|
||||
struct callback_data *callback_queue[MAX_CALLBACK_QUEUE_SIZE];
|
||||
static unsigned int callback_queue_size;
|
||||
static bool callback_queue_done;
|
||||
static pthread_mutex_t callback_queue_mutex;
|
||||
static pthread_cond_t callback_queue_callback_event;
|
||||
static pthread_cond_t callback_queue_ready_event;
|
||||
static pthread_cond_t callback_queue_complete_event;
|
||||
|
||||
void execute_callback( struct callback_data *cb_data )
|
||||
{
|
||||
/* No TRACEs or other Wine calls here, this is executed from Unix native thread
|
||||
* which is not initialized by Wine. */
|
||||
cb_data->complete = FALSE;
|
||||
pthread_mutex_lock( &callback_queue_mutex );
|
||||
while (!callback_queue_done && callback_queue_size == MAX_CALLBACK_QUEUE_SIZE)
|
||||
pthread_cond_wait( &callback_queue_ready_event, &callback_queue_mutex );
|
||||
if (callback_queue_done)
|
||||
{
|
||||
pthread_mutex_unlock( &callback_queue_mutex );
|
||||
return;
|
||||
}
|
||||
callback_queue[callback_queue_size++] = cb_data;
|
||||
pthread_cond_broadcast( &callback_queue_callback_event );
|
||||
while (!callback_queue_done && !cb_data->complete)
|
||||
pthread_cond_wait( &callback_queue_complete_event, &callback_queue_mutex );
|
||||
pthread_mutex_unlock( &callback_queue_mutex );
|
||||
}
|
||||
|
||||
static bool get_next_callback( struct callback_data *cb_data, uint64_t *cookie )
|
||||
{
|
||||
bool ret;
|
||||
|
||||
pthread_mutex_lock( &callback_queue_mutex );
|
||||
while (!callback_queue_done && !callback_queue_size)
|
||||
pthread_cond_wait( &callback_queue_callback_event, &callback_queue_mutex );
|
||||
|
||||
if ((ret = !callback_queue_done))
|
||||
{
|
||||
assert( callback_queue_size );
|
||||
--callback_queue_size;
|
||||
*cookie = (uint64_t)( ULONG_PTR)callback_queue[callback_queue_size];
|
||||
*cb_data = *callback_queue[callback_queue_size];
|
||||
}
|
||||
pthread_cond_broadcast( &callback_queue_ready_event );
|
||||
pthread_mutex_unlock( &callback_queue_mutex );
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void callback_complete( uint64_t cookie )
|
||||
{
|
||||
struct callback_data *cb_data = (struct callback_data *)( ULONG_PTR)cookie;
|
||||
|
||||
pthread_mutex_lock( &callback_queue_mutex );
|
||||
cb_data->complete = TRUE;
|
||||
pthread_cond_broadcast( &callback_queue_complete_event );
|
||||
pthread_mutex_unlock( &callback_queue_mutex );
|
||||
}
|
||||
|
||||
static void finish_callback_thread(void)
|
||||
{
|
||||
if (!callback_thread_handle) return;
|
||||
pthread_mutex_lock( &callback_queue_mutex );
|
||||
callback_queue_done = TRUE;
|
||||
pthread_cond_broadcast( &callback_queue_callback_event );
|
||||
pthread_cond_broadcast( &callback_queue_complete_event );
|
||||
pthread_mutex_unlock( &callback_queue_mutex );
|
||||
|
||||
WaitForSingleObject( callback_thread_handle, INFINITE );
|
||||
CloseHandle( callback_thread_handle );
|
||||
callback_thread_handle = NULL;
|
||||
}
|
||||
|
||||
typedef void (WINAPI *win_FSteamNetworkingSocketsDebugOutput)( uint32_t nType, const char *pszMsg );
|
||||
typedef void (CDECL *win_SteamAPIWarningMessageHook_t)( int, const char *pszMsg );
|
||||
|
||||
static DWORD WINAPI callback_thread( void *dummy )
|
||||
{
|
||||
struct callback_data cb_data;
|
||||
uint64_t cookie;
|
||||
|
||||
while (get_next_callback( &cb_data, &cookie ))
|
||||
{
|
||||
switch (cb_data.type)
|
||||
{
|
||||
case SOCKET_DEBUG_OUTPUT:
|
||||
TRACE( "SOCKET_DEBUG_OUTPUT func %p, type %u, msg %s.\n", cb_data.func,
|
||||
cb_data.sockets_debug_output.type, wine_dbgstr_a( cb_data.sockets_debug_output.msg ) );
|
||||
((win_FSteamNetworkingSocketsDebugOutput)cb_data.func)( cb_data.sockets_debug_output.type,
|
||||
cb_data.sockets_debug_output.msg );
|
||||
callback_complete( cookie );
|
||||
break;
|
||||
case STEAM_API_WARNING_HOOK:
|
||||
TRACE( "STEAM_API_WARNING_HOOK func %p, type %u, msg %s.\n", cb_data.func,
|
||||
cb_data.steam_api_warning_hook.severity,
|
||||
wine_dbgstr_a( cb_data.steam_api_warning_hook.msg ) );
|
||||
((win_SteamAPIWarningMessageHook_t)cb_data.func)( cb_data.steam_api_warning_hook.severity,
|
||||
cb_data.steam_api_warning_hook.msg );
|
||||
callback_complete( cookie );
|
||||
break;
|
||||
default:
|
||||
ERR( "Unexpected callback type %u.\n", cb_data.type );
|
||||
break;
|
||||
}
|
||||
}
|
||||
TRACE( "exiting.\n" );
|
||||
return 0;
|
||||
}
|
||||
|
||||
void start_callback_thread(void)
|
||||
{
|
||||
DWORD callback_thread_id;
|
||||
|
||||
pthread_mutex_init( &callback_queue_mutex, NULL );
|
||||
pthread_cond_init( &callback_queue_callback_event, NULL );
|
||||
pthread_cond_init( &callback_queue_ready_event, NULL );
|
||||
pthread_cond_init( &callback_queue_complete_event, NULL );
|
||||
|
||||
callback_thread_handle = CreateThread( NULL, 0, callback_thread, NULL, 0, &callback_thread_id );
|
||||
TRACE( "Created callback thread 0x%04x.\n", callback_thread_id );
|
||||
}
|
||||
|
||||
void stop_callback_thread(void)
|
||||
{
|
||||
if (!callback_thread_handle) return;
|
||||
|
||||
/* Unfortunately we don't have a clear place to shutdown the thread so just kill it.
|
||||
* An explicit sync events and handle cleanup is to protect from unloading and loading .so
|
||||
* again which may end up not actually reloading anyting and leaving the values of our
|
||||
* static variables. */
|
||||
TerminateThread( callback_thread_handle, -1 );
|
||||
WaitForSingleObject( callback_thread_handle, INFINITE );
|
||||
pthread_mutex_destroy( &callback_queue_mutex );
|
||||
CloseHandle( callback_thread_handle );
|
||||
callback_thread_handle = NULL;
|
||||
TRACE( "Terminated callback thread.\n" );
|
||||
}
|
||||
|
||||
static bool after_shutdown( bool ret )
|
||||
{
|
||||
TRACE( "ret %d.\n", ret );
|
||||
|
||||
if (!ret) return 0;
|
||||
finish_callback_thread();
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int32_t after_steam_pipe_create( int32_t pipe )
|
||||
{
|
||||
DWORD callback_thread_id;
|
||||
|
||||
TRACE( "pipe %#x.\n", pipe );
|
||||
|
||||
if (!pipe) return 0;
|
||||
|
||||
if (callback_thread_handle) return pipe;
|
||||
|
||||
callback_queue_done = FALSE;
|
||||
callback_thread_handle = CreateThread( NULL, 0, callback_thread, NULL, 0, &callback_thread_id );
|
||||
TRACE( "Created callback thread 0x%04x.\n", callback_thread_id );
|
||||
|
||||
return pipe;
|
||||
}
|
||||
|
||||
/* ISteamClient_SteamClient006 */
|
||||
|
||||
int32_t __thiscall winISteamClient_SteamClient006_CreateSteamPipe( struct w_steam_iface *_this )
|
||||
{
|
||||
struct cppISteamClient_SteamClient006_CreateSteamPipe_params params = {.linux_side = _this->u_iface};
|
||||
TRACE( "%p\n", _this );
|
||||
cppISteamClient_SteamClient006_CreateSteamPipe( ¶ms );
|
||||
return after_steam_pipe_create( params._ret );
|
||||
}
|
||||
|
||||
/* ISteamClient_SteamClient007 */
|
||||
|
||||
int32_t __thiscall winISteamClient_SteamClient007_CreateSteamPipe( struct w_steam_iface *_this )
|
||||
{
|
||||
struct cppISteamClient_SteamClient007_CreateSteamPipe_params params = {.linux_side = _this->u_iface};
|
||||
TRACE( "%p\n", _this );
|
||||
cppISteamClient_SteamClient007_CreateSteamPipe( ¶ms );
|
||||
return after_steam_pipe_create( params._ret );
|
||||
}
|
||||
|
||||
/* ISteamClient_SteamClient008 */
|
||||
|
||||
int32_t __thiscall winISteamClient_SteamClient008_CreateSteamPipe( struct w_steam_iface *_this )
|
||||
{
|
||||
struct cppISteamClient_SteamClient008_CreateSteamPipe_params params = {.linux_side = _this->u_iface};
|
||||
TRACE( "%p\n", _this );
|
||||
cppISteamClient_SteamClient008_CreateSteamPipe( ¶ms );
|
||||
return after_steam_pipe_create( params._ret );
|
||||
}
|
||||
|
||||
/* ISteamClient_SteamClient009 */
|
||||
|
||||
int32_t __thiscall winISteamClient_SteamClient009_CreateSteamPipe( struct w_steam_iface *_this )
|
||||
{
|
||||
struct cppISteamClient_SteamClient009_CreateSteamPipe_params params = {.linux_side = _this->u_iface};
|
||||
TRACE( "%p\n", _this );
|
||||
cppISteamClient_SteamClient009_CreateSteamPipe( ¶ms );
|
||||
return after_steam_pipe_create( params._ret );
|
||||
}
|
||||
|
||||
/* ISteamClient_SteamClient010 */
|
||||
|
||||
int32_t __thiscall winISteamClient_SteamClient010_CreateSteamPipe( struct w_steam_iface *_this )
|
||||
{
|
||||
struct cppISteamClient_SteamClient010_CreateSteamPipe_params params = {.linux_side = _this->u_iface};
|
||||
TRACE( "%p\n", _this );
|
||||
cppISteamClient_SteamClient010_CreateSteamPipe( ¶ms );
|
||||
return after_steam_pipe_create( params._ret );
|
||||
}
|
||||
|
||||
bool __thiscall winISteamClient_SteamClient010_BShutdownIfAllPipesClosed( struct w_steam_iface *_this )
|
||||
{
|
||||
struct cppISteamClient_SteamClient010_BShutdownIfAllPipesClosed_params params = {.linux_side = _this->u_iface};
|
||||
TRACE( "%p\n", _this );
|
||||
cppISteamClient_SteamClient010_BShutdownIfAllPipesClosed( ¶ms );
|
||||
return after_shutdown( params._ret );
|
||||
}
|
||||
|
||||
/* ISteamClient_SteamClient011 */
|
||||
|
||||
int32_t __thiscall winISteamClient_SteamClient011_CreateSteamPipe( struct w_steam_iface *_this )
|
||||
{
|
||||
struct cppISteamClient_SteamClient011_CreateSteamPipe_params params = {.linux_side = _this->u_iface};
|
||||
TRACE( "%p\n", _this );
|
||||
cppISteamClient_SteamClient011_CreateSteamPipe( ¶ms );
|
||||
return after_steam_pipe_create( params._ret );
|
||||
}
|
||||
|
||||
bool __thiscall winISteamClient_SteamClient011_BShutdownIfAllPipesClosed( struct w_steam_iface *_this )
|
||||
{
|
||||
struct cppISteamClient_SteamClient011_BShutdownIfAllPipesClosed_params params = {.linux_side = _this->u_iface};
|
||||
TRACE( "%p\n", _this );
|
||||
cppISteamClient_SteamClient011_BShutdownIfAllPipesClosed( ¶ms );
|
||||
return after_shutdown( params._ret );
|
||||
}
|
||||
|
||||
/* ISteamClient_SteamClient012 */
|
||||
|
||||
int32_t __thiscall winISteamClient_SteamClient012_CreateSteamPipe( struct w_steam_iface *_this )
|
||||
{
|
||||
struct cppISteamClient_SteamClient012_CreateSteamPipe_params params = {.linux_side = _this->u_iface};
|
||||
TRACE( "%p\n", _this );
|
||||
cppISteamClient_SteamClient012_CreateSteamPipe( ¶ms );
|
||||
return after_steam_pipe_create( params._ret );
|
||||
}
|
||||
|
||||
bool __thiscall winISteamClient_SteamClient012_BShutdownIfAllPipesClosed( struct w_steam_iface *_this )
|
||||
{
|
||||
struct cppISteamClient_SteamClient012_BShutdownIfAllPipesClosed_params params = {.linux_side = _this->u_iface};
|
||||
TRACE( "%p\n", _this );
|
||||
cppISteamClient_SteamClient012_BShutdownIfAllPipesClosed( ¶ms );
|
||||
return after_shutdown( params._ret );
|
||||
}
|
||||
|
||||
/* ISteamClient_SteamClient013 */
|
||||
|
||||
int32_t __thiscall winISteamClient_SteamClient013_CreateSteamPipe( struct w_steam_iface *_this )
|
||||
{
|
||||
struct cppISteamClient_SteamClient013_CreateSteamPipe_params params = {.linux_side = _this->u_iface};
|
||||
TRACE( "%p\n", _this );
|
||||
cppISteamClient_SteamClient013_CreateSteamPipe( ¶ms );
|
||||
return after_steam_pipe_create( params._ret );
|
||||
}
|
||||
|
||||
bool __thiscall winISteamClient_SteamClient013_BShutdownIfAllPipesClosed( struct w_steam_iface *_this )
|
||||
{
|
||||
struct cppISteamClient_SteamClient013_BShutdownIfAllPipesClosed_params params = {.linux_side = _this->u_iface};
|
||||
TRACE( "%p\n", _this );
|
||||
cppISteamClient_SteamClient013_BShutdownIfAllPipesClosed( ¶ms );
|
||||
return after_shutdown( params._ret );
|
||||
}
|
||||
|
||||
/* ISteamClient_SteamClient014 */
|
||||
|
||||
int32_t __thiscall winISteamClient_SteamClient014_CreateSteamPipe( struct w_steam_iface *_this )
|
||||
{
|
||||
struct cppISteamClient_SteamClient014_CreateSteamPipe_params params = {.linux_side = _this->u_iface};
|
||||
TRACE( "%p\n", _this );
|
||||
cppISteamClient_SteamClient014_CreateSteamPipe( ¶ms );
|
||||
return after_steam_pipe_create( params._ret );
|
||||
}
|
||||
|
||||
bool __thiscall winISteamClient_SteamClient014_BShutdownIfAllPipesClosed( struct w_steam_iface *_this )
|
||||
{
|
||||
struct cppISteamClient_SteamClient014_BShutdownIfAllPipesClosed_params params = {.linux_side = _this->u_iface};
|
||||
TRACE( "%p\n", _this );
|
||||
cppISteamClient_SteamClient014_BShutdownIfAllPipesClosed( ¶ms );
|
||||
return after_shutdown( params._ret );
|
||||
}
|
||||
|
||||
/* ISteamClient_SteamClient015 */
|
||||
|
||||
int32_t __thiscall winISteamClient_SteamClient015_CreateSteamPipe( struct w_steam_iface *_this )
|
||||
{
|
||||
struct cppISteamClient_SteamClient015_CreateSteamPipe_params params = {.linux_side = _this->u_iface};
|
||||
TRACE( "%p\n", _this );
|
||||
cppISteamClient_SteamClient015_CreateSteamPipe( ¶ms );
|
||||
return after_steam_pipe_create( params._ret );
|
||||
}
|
||||
|
||||
bool __thiscall winISteamClient_SteamClient015_BShutdownIfAllPipesClosed( struct w_steam_iface *_this )
|
||||
{
|
||||
struct cppISteamClient_SteamClient015_BShutdownIfAllPipesClosed_params params = {.linux_side = _this->u_iface};
|
||||
TRACE( "%p\n", _this );
|
||||
cppISteamClient_SteamClient015_BShutdownIfAllPipesClosed( ¶ms );
|
||||
return after_shutdown( params._ret );
|
||||
}
|
||||
|
||||
/* ISteamClient_SteamClient016 */
|
||||
|
||||
int32_t __thiscall winISteamClient_SteamClient016_CreateSteamPipe( struct w_steam_iface *_this )
|
||||
{
|
||||
struct cppISteamClient_SteamClient016_CreateSteamPipe_params params = {.linux_side = _this->u_iface};
|
||||
TRACE( "%p\n", _this );
|
||||
cppISteamClient_SteamClient016_CreateSteamPipe( ¶ms );
|
||||
return after_steam_pipe_create( params._ret );
|
||||
}
|
||||
|
||||
bool __thiscall winISteamClient_SteamClient016_BShutdownIfAllPipesClosed( struct w_steam_iface *_this )
|
||||
{
|
||||
struct cppISteamClient_SteamClient016_BShutdownIfAllPipesClosed_params params = {.linux_side = _this->u_iface};
|
||||
TRACE( "%p\n", _this );
|
||||
cppISteamClient_SteamClient016_BShutdownIfAllPipesClosed( ¶ms );
|
||||
return after_shutdown( params._ret );
|
||||
}
|
||||
|
||||
/* ISteamClient_SteamClient017 */
|
||||
|
||||
int32_t __thiscall winISteamClient_SteamClient017_CreateSteamPipe( struct w_steam_iface *_this )
|
||||
{
|
||||
struct cppISteamClient_SteamClient017_CreateSteamPipe_params params = {.linux_side = _this->u_iface};
|
||||
TRACE( "%p\n", _this );
|
||||
cppISteamClient_SteamClient017_CreateSteamPipe( ¶ms );
|
||||
return after_steam_pipe_create( params._ret );
|
||||
}
|
||||
|
||||
bool __thiscall winISteamClient_SteamClient017_BShutdownIfAllPipesClosed( struct w_steam_iface *_this )
|
||||
{
|
||||
struct cppISteamClient_SteamClient017_BShutdownIfAllPipesClosed_params params = {.linux_side = _this->u_iface};
|
||||
TRACE( "%p\n", _this );
|
||||
cppISteamClient_SteamClient017_BShutdownIfAllPipesClosed( ¶ms );
|
||||
return after_shutdown( params._ret );
|
||||
}
|
||||
|
||||
/* ISteamClient_SteamClient018 */
|
||||
|
||||
int32_t __thiscall winISteamClient_SteamClient018_CreateSteamPipe( struct w_steam_iface *_this )
|
||||
{
|
||||
struct cppISteamClient_SteamClient018_CreateSteamPipe_params params = {.linux_side = _this->u_iface};
|
||||
TRACE( "%p\n", _this );
|
||||
cppISteamClient_SteamClient018_CreateSteamPipe( ¶ms );
|
||||
return after_steam_pipe_create( params._ret );
|
||||
}
|
||||
|
||||
bool __thiscall winISteamClient_SteamClient018_BShutdownIfAllPipesClosed( struct w_steam_iface *_this )
|
||||
{
|
||||
struct cppISteamClient_SteamClient018_BShutdownIfAllPipesClosed_params params = {.linux_side = _this->u_iface};
|
||||
TRACE( "%p\n", _this );
|
||||
cppISteamClient_SteamClient018_BShutdownIfAllPipesClosed( ¶ms );
|
||||
return after_shutdown( params._ret );
|
||||
}
|
||||
|
||||
/* ISteamClient_SteamClient019 */
|
||||
|
||||
int32_t __thiscall winISteamClient_SteamClient019_CreateSteamPipe( struct w_steam_iface *_this )
|
||||
{
|
||||
struct cppISteamClient_SteamClient019_CreateSteamPipe_params params = {.linux_side = _this->u_iface};
|
||||
TRACE( "%p\n", _this );
|
||||
cppISteamClient_SteamClient019_CreateSteamPipe( ¶ms );
|
||||
return after_steam_pipe_create( params._ret );
|
||||
}
|
||||
|
||||
bool __thiscall winISteamClient_SteamClient019_BShutdownIfAllPipesClosed( struct w_steam_iface *_this )
|
||||
{
|
||||
struct cppISteamClient_SteamClient019_BShutdownIfAllPipesClosed_params params = {.linux_side = _this->u_iface};
|
||||
TRACE( "%p\n", _this );
|
||||
cppISteamClient_SteamClient019_BShutdownIfAllPipesClosed( ¶ms );
|
||||
return after_shutdown( params._ret );
|
||||
}
|
||||
|
||||
/* ISteamClient_SteamClient020 */
|
||||
|
||||
int32_t __thiscall winISteamClient_SteamClient020_CreateSteamPipe( struct w_steam_iface *_this )
|
||||
{
|
||||
struct cppISteamClient_SteamClient020_CreateSteamPipe_params params = {.linux_side = _this->u_iface};
|
||||
TRACE( "%p\n", _this );
|
||||
cppISteamClient_SteamClient020_CreateSteamPipe( ¶ms );
|
||||
return after_steam_pipe_create( params._ret );
|
||||
}
|
||||
|
||||
bool __thiscall winISteamClient_SteamClient020_BShutdownIfAllPipesClosed( struct w_steam_iface *_this )
|
||||
{
|
||||
struct cppISteamClient_SteamClient020_BShutdownIfAllPipesClosed_params params = {.linux_side = _this->u_iface};
|
||||
TRACE( "%p\n", _this );
|
||||
cppISteamClient_SteamClient020_BShutdownIfAllPipesClosed( ¶ms );
|
||||
return after_shutdown( params._ret );
|
||||
}
|
|
@ -38,7 +38,6 @@ BOOL WINAPI DllMain(HINSTANCE instance, DWORD reason, void *reserved)
|
|||
steam_overlay_event = CreateEventA(NULL, TRUE, FALSE, "__wine_steamclient_GameOverlayActivated");
|
||||
break;
|
||||
case DLL_PROCESS_DETACH:
|
||||
stop_callback_thread();
|
||||
CloseHandle(steam_overlay_event);
|
||||
break;
|
||||
}
|
||||
|
@ -773,8 +772,6 @@ static int load_steamclient(void)
|
|||
return 0;
|
||||
}
|
||||
|
||||
start_callback_thread();
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
@ -788,6 +785,33 @@ void *CDECL CreateInterface(const char *name, int *return_code)
|
|||
return create_win_interface(name, steamclient_CreateInterface(name, return_code));
|
||||
}
|
||||
|
||||
static void execute_pending_callbacks(void)
|
||||
{
|
||||
struct callback *callback = NULL;
|
||||
uint32_t callback_size = 0;
|
||||
|
||||
while (unix_steamclient_next_callback( callback, &callback_size ))
|
||||
{
|
||||
if (!callback || callback_size > callback->size)
|
||||
callback = realloc( callback, callback_size );
|
||||
else switch (callback->type)
|
||||
{
|
||||
case SOCKETS_DEBUG_OUTPUT:
|
||||
TRACE( "SOCKETS_DEBUG_OUTPUT func %p, type %u, msg %s.\n", callback->sockets_debug_output.pfnFunc,
|
||||
callback->sockets_debug_output.type, wine_dbgstr_a( callback->sockets_debug_output.msg ) );
|
||||
callback->sockets_debug_output.pfnFunc( callback->sockets_debug_output.type, callback->sockets_debug_output.msg );
|
||||
break;
|
||||
case WARNING_MESSAGE_HOOK:
|
||||
TRACE( "WARNING_MESSAGE_HOOK func %p, severity %d, msg %s.\n", callback->warning_message_hook.pFunction,
|
||||
callback->warning_message_hook.severity, wine_dbgstr_a( callback->warning_message_hook.msg ) );
|
||||
callback->warning_message_hook.pFunction( callback->warning_message_hook.severity, callback->warning_message_hook.msg );
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
free( callback );
|
||||
}
|
||||
|
||||
#include "cb_converters.h"
|
||||
|
||||
#pragma pack( push, 8 )
|
||||
|
@ -812,6 +836,8 @@ bool CDECL Steam_BGetCallback( int32_t pipe, struct winCallbackMsg_t *win_msg, i
|
|||
if(!load_steamclient())
|
||||
return 0;
|
||||
|
||||
execute_pending_callbacks();
|
||||
|
||||
next_event:
|
||||
ret = steamclient_BGetCallback(pipe, &lin_msg, ignored);
|
||||
|
||||
|
@ -856,6 +882,7 @@ next_event:
|
|||
last_cb = win_msg->m_pubParam;
|
||||
}
|
||||
|
||||
execute_pending_callbacks();
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
|
@ -311,14 +311,7 @@ static w_FSteamNetworkingSocketsDebugOutput stored_FSteamNetworkingSocketsDebugO
|
|||
|
||||
static void lin_FSteamNetworkingSocketsDebugOutput( uint32_t nType, const char *pszMsg )
|
||||
{
|
||||
struct callback_data cb_data = { 0 };
|
||||
/* Only Unix native calls from here (not even TRACE):
|
||||
* this is native Unix thread which is not initialized by Wine. */
|
||||
cb_data.type = SOCKET_DEBUG_OUTPUT;
|
||||
cb_data.func = stored_FSteamNetworkingSocketsDebugOutput;
|
||||
cb_data.sockets_debug_output.type = nType;
|
||||
cb_data.sockets_debug_output.msg = pszMsg;
|
||||
execute_callback(&cb_data);
|
||||
queue_sockets_debug_output( stored_FSteamNetworkingSocketsDebugOutput, nType, pszMsg );
|
||||
}
|
||||
|
||||
u_FSteamNetworkingSocketsDebugOutput manual_convert_SetDebugOutputFunction_pfnFunc( w_FSteamNetworkingSocketsDebugOutput win_func )
|
||||
|
@ -332,14 +325,7 @@ static w_SteamAPIWarningMessageHook_t stored_SteamAPIWarningMessageHook_t;
|
|||
|
||||
static void lin_SteamAPIWarningMessageHook_t(int severity, const char *msg)
|
||||
{
|
||||
struct callback_data cb_data = { 0 };
|
||||
/* Only Unix native calls from here (not even TRACE):
|
||||
* this is native Unix thread which is not initialized by Wine. */
|
||||
cb_data.type = STEAM_API_WARNING_HOOK;
|
||||
cb_data.func = stored_SteamAPIWarningMessageHook_t;
|
||||
cb_data.steam_api_warning_hook.severity = severity;
|
||||
cb_data.steam_api_warning_hook.msg = msg;
|
||||
execute_callback(&cb_data);
|
||||
queue_warning_message_hook( stored_SteamAPIWarningMessageHook_t, severity, msg );
|
||||
}
|
||||
|
||||
u_SteamAPIWarningMessageHook_t manual_convert_SetWarningMessageHook_pFunction( w_SteamAPIWarningMessageHook_t win_func )
|
||||
|
|
|
@ -56,6 +56,11 @@ u_void_SteamAPI_PostAPIResultInProcess_t manual_convert_DEPRECATED_Remove_SteamA
|
|||
void *alloc_callback_wtou( int id, void *callback, int *callback_len );
|
||||
void convert_callback_utow( int id, void *u_callback, int u_callback_len, void *w_callback, int w_callback_len );
|
||||
|
||||
extern void queue_sockets_debug_output( void (*W_STDCALL pfnFunc)( uint32_t, const char * ),
|
||||
uint32_t type, const char *msg );
|
||||
extern void queue_warning_message_hook( void (*W_CDECL pFunction)( int32_t, const char * ),
|
||||
int32_t severity, const char *msg );
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* extern "C" */
|
||||
#endif /* __cplusplus */
|
||||
|
|
|
@ -9,6 +9,8 @@
|
|||
#include "cppISteamUtils_SteamUtils009.hpp"
|
||||
#include "cppISteamUtils_SteamUtils010.hpp"
|
||||
|
||||
WINE_DEFAULT_DEBUG_CHANNEL(steamclient);
|
||||
|
||||
/* ISteamUtils_SteamUtils002 */
|
||||
|
||||
void cppISteamUtils_SteamUtils002_GetAPICallResult( struct cppISteamUtils_SteamUtils002_GetAPICallResult_params *params )
|
||||
|
|
80
lsteamclient/unixlib.cpp
Normal file
80
lsteamclient/unixlib.cpp
Normal file
|
@ -0,0 +1,80 @@
|
|||
#include "unix_private.h"
|
||||
|
||||
#include <pthread.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
WINE_DEFAULT_DEBUG_CHANNEL(steamclient);
|
||||
|
||||
struct callback_entry
|
||||
{
|
||||
struct list entry;
|
||||
struct callback callback;
|
||||
};
|
||||
|
||||
static struct list callbacks = LIST_INIT( callbacks );
|
||||
static pthread_mutex_t callbacks_lock = PTHREAD_MUTEX_INITIALIZER;
|
||||
|
||||
void queue_sockets_debug_output( void (*W_STDCALL pfnFunc)( uint32_t, const char * ), uint32_t type, const char *msg )
|
||||
{
|
||||
uint32_t msg_size = strlen( msg ) + 1, size = msg_size;
|
||||
struct callback_entry *entry;
|
||||
|
||||
size += sizeof(struct callback_entry);
|
||||
if (!(entry = (struct callback_entry *)malloc( size ))) return;
|
||||
|
||||
entry->callback.type = SOCKETS_DEBUG_OUTPUT;
|
||||
size -= offsetof( struct callback_entry, callback );
|
||||
entry->callback.size = size;
|
||||
|
||||
entry->callback.sockets_debug_output.pfnFunc = pfnFunc;
|
||||
entry->callback.sockets_debug_output.type = type;
|
||||
memcpy( (char *)entry->callback.sockets_debug_output.msg, msg, msg_size );
|
||||
|
||||
pthread_mutex_lock( &callbacks_lock );
|
||||
list_add_tail( &callbacks, &entry->entry );
|
||||
pthread_mutex_unlock( &callbacks_lock );
|
||||
}
|
||||
|
||||
void queue_warning_message_hook( void (*W_CDECL pFunction)( int32_t, const char * ), int32_t severity, const char *msg )
|
||||
{
|
||||
uint32_t msg_size = strlen( msg ) + 1, size = msg_size;
|
||||
struct callback_entry *entry;
|
||||
|
||||
size += sizeof(struct callback_entry);
|
||||
if (!(entry = (struct callback_entry *)malloc( size ))) return;
|
||||
|
||||
entry->callback.type = WARNING_MESSAGE_HOOK;
|
||||
size -= offsetof( struct callback_entry, callback );
|
||||
entry->callback.size = size;
|
||||
|
||||
entry->callback.warning_message_hook.pFunction = pFunction;
|
||||
entry->callback.warning_message_hook.severity = severity;
|
||||
memcpy( (char *)entry->callback.warning_message_hook.msg, msg, msg_size );
|
||||
|
||||
pthread_mutex_lock( &callbacks_lock );
|
||||
list_add_tail( &callbacks, &entry->entry );
|
||||
pthread_mutex_unlock( &callbacks_lock );
|
||||
}
|
||||
|
||||
bool unix_steamclient_next_callback( struct callback *callback, uint32_t *size )
|
||||
{
|
||||
struct list *ptr;
|
||||
|
||||
pthread_mutex_lock( &callbacks_lock );
|
||||
if ((ptr = list_head( &callbacks )))
|
||||
{
|
||||
struct callback_entry *entry = LIST_ENTRY( ptr, struct callback_entry, entry );
|
||||
|
||||
if (entry->callback.size <= *size)
|
||||
{
|
||||
memcpy( callback, &entry->callback, entry->callback.size );
|
||||
list_remove( &entry->entry );
|
||||
free( entry );
|
||||
}
|
||||
|
||||
*size = entry->callback.size;
|
||||
}
|
||||
pthread_mutex_unlock( &callbacks_lock );
|
||||
|
||||
return !!ptr;
|
||||
}
|
|
@ -29,37 +29,38 @@ extern void steamclient_free_path_array( const char **path_array );
|
|||
#define PATH_MAX 4096
|
||||
extern char g_tmppath[PATH_MAX];
|
||||
|
||||
#ifndef STEAM_API_H
|
||||
enum callback_type
|
||||
{
|
||||
SOCKET_DEBUG_OUTPUT = 1,
|
||||
STEAM_API_WARNING_HOOK,
|
||||
SOCKETS_DEBUG_OUTPUT = 1,
|
||||
WARNING_MESSAGE_HOOK,
|
||||
};
|
||||
|
||||
struct callback_data
|
||||
struct callback
|
||||
{
|
||||
enum callback_type type;
|
||||
void *func;
|
||||
int complete;
|
||||
uint32_t size;
|
||||
|
||||
union
|
||||
{
|
||||
struct
|
||||
{
|
||||
unsigned int type;
|
||||
const char *msg;
|
||||
}
|
||||
sockets_debug_output;
|
||||
void (*W_STDCALL pfnFunc)( uint32_t, const char * );
|
||||
uint32_t type;
|
||||
const char msg[1];
|
||||
} sockets_debug_output;
|
||||
|
||||
struct
|
||||
{
|
||||
int severity;
|
||||
const char *msg;
|
||||
}
|
||||
steam_api_warning_hook;
|
||||
void (*W_CDECL pFunction)( int32_t, const char * );
|
||||
int32_t severity;
|
||||
const char msg[1];
|
||||
} warning_message_hook;
|
||||
};
|
||||
};
|
||||
|
||||
void execute_callback(struct callback_data *cb_data);
|
||||
extern bool unix_steamclient_next_callback( struct callback *callback, uint32_t *length );
|
||||
|
||||
#ifndef STEAM_API_H
|
||||
struct networking_message_pool;
|
||||
struct networking_message
|
||||
{
|
||||
|
|
|
@ -27,6 +27,17 @@ DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient006_GetISteamMatchmakingServe
|
|||
DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient006_RunFrame, 4)
|
||||
DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient006_GetIPCCallCount, 4)
|
||||
|
||||
int32_t __thiscall winISteamClient_SteamClient006_CreateSteamPipe(struct w_steam_iface *_this)
|
||||
{
|
||||
struct cppISteamClient_SteamClient006_CreateSteamPipe_params params =
|
||||
{
|
||||
.linux_side = _this->u_iface,
|
||||
};
|
||||
TRACE("%p\n", _this);
|
||||
cppISteamClient_SteamClient006_CreateSteamPipe( ¶ms );
|
||||
return params._ret;
|
||||
}
|
||||
|
||||
bool __thiscall winISteamClient_SteamClient006_BReleaseSteamPipe(struct w_steam_iface *_this, int32_t hSteamPipe)
|
||||
{
|
||||
struct cppISteamClient_SteamClient006_BReleaseSteamPipe_params params =
|
||||
|
@ -358,6 +369,17 @@ DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient007_GetISteamNetworking, 16)
|
|||
DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient007_SetWarningMessageHook, 8)
|
||||
DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient007_GetISteamRemoteStorage, 16)
|
||||
|
||||
int32_t __thiscall winISteamClient_SteamClient007_CreateSteamPipe(struct w_steam_iface *_this)
|
||||
{
|
||||
struct cppISteamClient_SteamClient007_CreateSteamPipe_params params =
|
||||
{
|
||||
.linux_side = _this->u_iface,
|
||||
};
|
||||
TRACE("%p\n", _this);
|
||||
cppISteamClient_SteamClient007_CreateSteamPipe( ¶ms );
|
||||
return params._ret;
|
||||
}
|
||||
|
||||
bool __thiscall winISteamClient_SteamClient007_BReleaseSteamPipe(struct w_steam_iface *_this, int32_t hSteamPipe)
|
||||
{
|
||||
struct cppISteamClient_SteamClient007_BReleaseSteamPipe_params params =
|
||||
|
@ -710,6 +732,17 @@ DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient008_RunFrame, 4)
|
|||
DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient008_GetIPCCallCount, 4)
|
||||
DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient008_SetWarningMessageHook, 8)
|
||||
|
||||
int32_t __thiscall winISteamClient_SteamClient008_CreateSteamPipe(struct w_steam_iface *_this)
|
||||
{
|
||||
struct cppISteamClient_SteamClient008_CreateSteamPipe_params params =
|
||||
{
|
||||
.linux_side = _this->u_iface,
|
||||
};
|
||||
TRACE("%p\n", _this);
|
||||
cppISteamClient_SteamClient008_CreateSteamPipe( ¶ms );
|
||||
return params._ret;
|
||||
}
|
||||
|
||||
bool __thiscall winISteamClient_SteamClient008_BReleaseSteamPipe(struct w_steam_iface *_this, int32_t hSteamPipe)
|
||||
{
|
||||
struct cppISteamClient_SteamClient008_BReleaseSteamPipe_params params =
|
||||
|
@ -1048,6 +1081,17 @@ DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient009_RunFrame, 4)
|
|||
DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient009_GetIPCCallCount, 4)
|
||||
DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient009_SetWarningMessageHook, 8)
|
||||
|
||||
int32_t __thiscall winISteamClient_SteamClient009_CreateSteamPipe(struct w_steam_iface *_this)
|
||||
{
|
||||
struct cppISteamClient_SteamClient009_CreateSteamPipe_params params =
|
||||
{
|
||||
.linux_side = _this->u_iface,
|
||||
};
|
||||
TRACE("%p\n", _this);
|
||||
cppISteamClient_SteamClient009_CreateSteamPipe( ¶ms );
|
||||
return params._ret;
|
||||
}
|
||||
|
||||
bool __thiscall winISteamClient_SteamClient009_BReleaseSteamPipe(struct w_steam_iface *_this, int32_t hSteamPipe)
|
||||
{
|
||||
struct cppISteamClient_SteamClient009_BReleaseSteamPipe_params params =
|
||||
|
@ -1404,6 +1448,17 @@ DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient010_SetWarningMessageHook, 8)
|
|||
DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient010_BShutdownIfAllPipesClosed, 4)
|
||||
DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient010_GetISteamHTTP, 16)
|
||||
|
||||
int32_t __thiscall winISteamClient_SteamClient010_CreateSteamPipe(struct w_steam_iface *_this)
|
||||
{
|
||||
struct cppISteamClient_SteamClient010_CreateSteamPipe_params params =
|
||||
{
|
||||
.linux_side = _this->u_iface,
|
||||
};
|
||||
TRACE("%p\n", _this);
|
||||
cppISteamClient_SteamClient010_CreateSteamPipe( ¶ms );
|
||||
return params._ret;
|
||||
}
|
||||
|
||||
bool __thiscall winISteamClient_SteamClient010_BReleaseSteamPipe(struct w_steam_iface *_this, int32_t hSteamPipe)
|
||||
{
|
||||
struct cppISteamClient_SteamClient010_BReleaseSteamPipe_params params =
|
||||
|
@ -1691,6 +1746,17 @@ void __thiscall winISteamClient_SteamClient010_SetWarningMessageHook(struct w_st
|
|||
cppISteamClient_SteamClient010_SetWarningMessageHook( ¶ms );
|
||||
}
|
||||
|
||||
bool __thiscall winISteamClient_SteamClient010_BShutdownIfAllPipesClosed(struct w_steam_iface *_this)
|
||||
{
|
||||
struct cppISteamClient_SteamClient010_BShutdownIfAllPipesClosed_params params =
|
||||
{
|
||||
.linux_side = _this->u_iface,
|
||||
};
|
||||
TRACE("%p\n", _this);
|
||||
cppISteamClient_SteamClient010_BShutdownIfAllPipesClosed( ¶ms );
|
||||
return params._ret;
|
||||
}
|
||||
|
||||
void /*ISteamHTTP*/ * __thiscall winISteamClient_SteamClient010_GetISteamHTTP(struct w_steam_iface *_this, int32_t hSteamuser, int32_t hSteamPipe, const char *pchVersion)
|
||||
{
|
||||
struct cppISteamClient_SteamClient010_GetISteamHTTP_params params =
|
||||
|
@ -1778,6 +1844,17 @@ DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient011_SetWarningMessageHook, 8)
|
|||
DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient011_BShutdownIfAllPipesClosed, 4)
|
||||
DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient011_GetISteamHTTP, 16)
|
||||
|
||||
int32_t __thiscall winISteamClient_SteamClient011_CreateSteamPipe(struct w_steam_iface *_this)
|
||||
{
|
||||
struct cppISteamClient_SteamClient011_CreateSteamPipe_params params =
|
||||
{
|
||||
.linux_side = _this->u_iface,
|
||||
};
|
||||
TRACE("%p\n", _this);
|
||||
cppISteamClient_SteamClient011_CreateSteamPipe( ¶ms );
|
||||
return params._ret;
|
||||
}
|
||||
|
||||
bool __thiscall winISteamClient_SteamClient011_BReleaseSteamPipe(struct w_steam_iface *_this, int32_t hSteamPipe)
|
||||
{
|
||||
struct cppISteamClient_SteamClient011_BReleaseSteamPipe_params params =
|
||||
|
@ -2080,6 +2157,17 @@ void __thiscall winISteamClient_SteamClient011_SetWarningMessageHook(struct w_st
|
|||
cppISteamClient_SteamClient011_SetWarningMessageHook( ¶ms );
|
||||
}
|
||||
|
||||
bool __thiscall winISteamClient_SteamClient011_BShutdownIfAllPipesClosed(struct w_steam_iface *_this)
|
||||
{
|
||||
struct cppISteamClient_SteamClient011_BShutdownIfAllPipesClosed_params params =
|
||||
{
|
||||
.linux_side = _this->u_iface,
|
||||
};
|
||||
TRACE("%p\n", _this);
|
||||
cppISteamClient_SteamClient011_BShutdownIfAllPipesClosed( ¶ms );
|
||||
return params._ret;
|
||||
}
|
||||
|
||||
void /*ISteamHTTP*/ * __thiscall winISteamClient_SteamClient011_GetISteamHTTP(struct w_steam_iface *_this, int32_t hSteamuser, int32_t hSteamPipe, const char *pchVersion)
|
||||
{
|
||||
struct cppISteamClient_SteamClient011_GetISteamHTTP_params params =
|
||||
|
@ -2170,6 +2258,17 @@ DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient012_GetISteamUnifiedMessages,
|
|||
DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient012_GetISteamController, 16)
|
||||
DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient012_GetISteamUGC, 16)
|
||||
|
||||
int32_t __thiscall winISteamClient_SteamClient012_CreateSteamPipe(struct w_steam_iface *_this)
|
||||
{
|
||||
struct cppISteamClient_SteamClient012_CreateSteamPipe_params params =
|
||||
{
|
||||
.linux_side = _this->u_iface,
|
||||
};
|
||||
TRACE("%p\n", _this);
|
||||
cppISteamClient_SteamClient012_CreateSteamPipe( ¶ms );
|
||||
return params._ret;
|
||||
}
|
||||
|
||||
bool __thiscall winISteamClient_SteamClient012_BReleaseSteamPipe(struct w_steam_iface *_this, int32_t hSteamPipe)
|
||||
{
|
||||
struct cppISteamClient_SteamClient012_BReleaseSteamPipe_params params =
|
||||
|
@ -2457,6 +2556,17 @@ void __thiscall winISteamClient_SteamClient012_SetWarningMessageHook(struct w_st
|
|||
cppISteamClient_SteamClient012_SetWarningMessageHook( ¶ms );
|
||||
}
|
||||
|
||||
bool __thiscall winISteamClient_SteamClient012_BShutdownIfAllPipesClosed(struct w_steam_iface *_this)
|
||||
{
|
||||
struct cppISteamClient_SteamClient012_BShutdownIfAllPipesClosed_params params =
|
||||
{
|
||||
.linux_side = _this->u_iface,
|
||||
};
|
||||
TRACE("%p\n", _this);
|
||||
cppISteamClient_SteamClient012_BShutdownIfAllPipesClosed( ¶ms );
|
||||
return params._ret;
|
||||
}
|
||||
|
||||
void /*ISteamHTTP*/ * __thiscall winISteamClient_SteamClient012_GetISteamHTTP(struct w_steam_iface *_this, int32_t hSteamuser, int32_t hSteamPipe, const char *pchVersion)
|
||||
{
|
||||
struct cppISteamClient_SteamClient012_GetISteamHTTP_params params =
|
||||
|
@ -2597,6 +2707,17 @@ DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient013_GetISteamInventory, 16)
|
|||
DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient013_GetISteamVideo, 16)
|
||||
DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient013_GetISteamAppList, 16)
|
||||
|
||||
int32_t __thiscall winISteamClient_SteamClient013_CreateSteamPipe(struct w_steam_iface *_this)
|
||||
{
|
||||
struct cppISteamClient_SteamClient013_CreateSteamPipe_params params =
|
||||
{
|
||||
.linux_side = _this->u_iface,
|
||||
};
|
||||
TRACE("%p\n", _this);
|
||||
cppISteamClient_SteamClient013_CreateSteamPipe( ¶ms );
|
||||
return params._ret;
|
||||
}
|
||||
|
||||
bool __thiscall winISteamClient_SteamClient013_BReleaseSteamPipe(struct w_steam_iface *_this, int32_t hSteamPipe)
|
||||
{
|
||||
struct cppISteamClient_SteamClient013_BReleaseSteamPipe_params params =
|
||||
|
@ -2884,6 +3005,17 @@ void __thiscall winISteamClient_SteamClient013_SetWarningMessageHook(struct w_st
|
|||
cppISteamClient_SteamClient013_SetWarningMessageHook( ¶ms );
|
||||
}
|
||||
|
||||
bool __thiscall winISteamClient_SteamClient013_BShutdownIfAllPipesClosed(struct w_steam_iface *_this)
|
||||
{
|
||||
struct cppISteamClient_SteamClient013_BShutdownIfAllPipesClosed_params params =
|
||||
{
|
||||
.linux_side = _this->u_iface,
|
||||
};
|
||||
TRACE("%p\n", _this);
|
||||
cppISteamClient_SteamClient013_BShutdownIfAllPipesClosed( ¶ms );
|
||||
return params._ret;
|
||||
}
|
||||
|
||||
void /*ISteamHTTP*/ * __thiscall winISteamClient_SteamClient013_GetISteamHTTP(struct w_steam_iface *_this, int32_t hSteamuser, int32_t hSteamPipe, const char *pchVersion)
|
||||
{
|
||||
struct cppISteamClient_SteamClient013_GetISteamHTTP_params params =
|
||||
|
@ -3069,6 +3201,17 @@ DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient014_GetISteamUGC, 16)
|
|||
DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient014_GetISteamAppList, 16)
|
||||
DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient014_GetISteamMusic, 16)
|
||||
|
||||
int32_t __thiscall winISteamClient_SteamClient014_CreateSteamPipe(struct w_steam_iface *_this)
|
||||
{
|
||||
struct cppISteamClient_SteamClient014_CreateSteamPipe_params params =
|
||||
{
|
||||
.linux_side = _this->u_iface,
|
||||
};
|
||||
TRACE("%p\n", _this);
|
||||
cppISteamClient_SteamClient014_CreateSteamPipe( ¶ms );
|
||||
return params._ret;
|
||||
}
|
||||
|
||||
bool __thiscall winISteamClient_SteamClient014_BReleaseSteamPipe(struct w_steam_iface *_this, int32_t hSteamPipe)
|
||||
{
|
||||
struct cppISteamClient_SteamClient014_BReleaseSteamPipe_params params =
|
||||
|
@ -3356,6 +3499,17 @@ void __thiscall winISteamClient_SteamClient014_SetWarningMessageHook(struct w_st
|
|||
cppISteamClient_SteamClient014_SetWarningMessageHook( ¶ms );
|
||||
}
|
||||
|
||||
bool __thiscall winISteamClient_SteamClient014_BShutdownIfAllPipesClosed(struct w_steam_iface *_this)
|
||||
{
|
||||
struct cppISteamClient_SteamClient014_BShutdownIfAllPipesClosed_params params =
|
||||
{
|
||||
.linux_side = _this->u_iface,
|
||||
};
|
||||
TRACE("%p\n", _this);
|
||||
cppISteamClient_SteamClient014_BShutdownIfAllPipesClosed( ¶ms );
|
||||
return params._ret;
|
||||
}
|
||||
|
||||
void /*ISteamHTTP*/ * __thiscall winISteamClient_SteamClient014_GetISteamHTTP(struct w_steam_iface *_this, int32_t hSteamuser, int32_t hSteamPipe, const char *pchVersion)
|
||||
{
|
||||
struct cppISteamClient_SteamClient014_GetISteamHTTP_params params =
|
||||
|
@ -3528,6 +3682,17 @@ DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient015_GetISteamAppList, 16)
|
|||
DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient015_GetISteamMusic, 16)
|
||||
DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient015_GetISteamMusicRemote, 16)
|
||||
|
||||
int32_t __thiscall winISteamClient_SteamClient015_CreateSteamPipe(struct w_steam_iface *_this)
|
||||
{
|
||||
struct cppISteamClient_SteamClient015_CreateSteamPipe_params params =
|
||||
{
|
||||
.linux_side = _this->u_iface,
|
||||
};
|
||||
TRACE("%p\n", _this);
|
||||
cppISteamClient_SteamClient015_CreateSteamPipe( ¶ms );
|
||||
return params._ret;
|
||||
}
|
||||
|
||||
bool __thiscall winISteamClient_SteamClient015_BReleaseSteamPipe(struct w_steam_iface *_this, int32_t hSteamPipe)
|
||||
{
|
||||
struct cppISteamClient_SteamClient015_BReleaseSteamPipe_params params =
|
||||
|
@ -3815,6 +3980,17 @@ void __thiscall winISteamClient_SteamClient015_SetWarningMessageHook(struct w_st
|
|||
cppISteamClient_SteamClient015_SetWarningMessageHook( ¶ms );
|
||||
}
|
||||
|
||||
bool __thiscall winISteamClient_SteamClient015_BShutdownIfAllPipesClosed(struct w_steam_iface *_this)
|
||||
{
|
||||
struct cppISteamClient_SteamClient015_BShutdownIfAllPipesClosed_params params =
|
||||
{
|
||||
.linux_side = _this->u_iface,
|
||||
};
|
||||
TRACE("%p\n", _this);
|
||||
cppISteamClient_SteamClient015_BShutdownIfAllPipesClosed( ¶ms );
|
||||
return params._ret;
|
||||
}
|
||||
|
||||
void /*ISteamHTTP*/ * __thiscall winISteamClient_SteamClient015_GetISteamHTTP(struct w_steam_iface *_this, int32_t hSteamuser, int32_t hSteamPipe, const char *pchVersion)
|
||||
{
|
||||
struct cppISteamClient_SteamClient015_GetISteamHTTP_params params =
|
||||
|
@ -4007,6 +4183,17 @@ DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient016_Set_SteamAPI_CPostAPIResu
|
|||
DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient016_Remove_SteamAPI_CPostAPIResultInProcess, 8)
|
||||
DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient016_Set_SteamAPI_CCheckCallbackRegisteredInProcess, 8)
|
||||
|
||||
int32_t __thiscall winISteamClient_SteamClient016_CreateSteamPipe(struct w_steam_iface *_this)
|
||||
{
|
||||
struct cppISteamClient_SteamClient016_CreateSteamPipe_params params =
|
||||
{
|
||||
.linux_side = _this->u_iface,
|
||||
};
|
||||
TRACE("%p\n", _this);
|
||||
cppISteamClient_SteamClient016_CreateSteamPipe( ¶ms );
|
||||
return params._ret;
|
||||
}
|
||||
|
||||
bool __thiscall winISteamClient_SteamClient016_BReleaseSteamPipe(struct w_steam_iface *_this, int32_t hSteamPipe)
|
||||
{
|
||||
struct cppISteamClient_SteamClient016_BReleaseSteamPipe_params params =
|
||||
|
@ -4294,6 +4481,17 @@ void __thiscall winISteamClient_SteamClient016_SetWarningMessageHook(struct w_st
|
|||
cppISteamClient_SteamClient016_SetWarningMessageHook( ¶ms );
|
||||
}
|
||||
|
||||
bool __thiscall winISteamClient_SteamClient016_BShutdownIfAllPipesClosed(struct w_steam_iface *_this)
|
||||
{
|
||||
struct cppISteamClient_SteamClient016_BShutdownIfAllPipesClosed_params params =
|
||||
{
|
||||
.linux_side = _this->u_iface,
|
||||
};
|
||||
TRACE("%p\n", _this);
|
||||
cppISteamClient_SteamClient016_BShutdownIfAllPipesClosed( ¶ms );
|
||||
return params._ret;
|
||||
}
|
||||
|
||||
void /*ISteamHTTP*/ * __thiscall winISteamClient_SteamClient016_GetISteamHTTP(struct w_steam_iface *_this, int32_t hSteamuser, int32_t hSteamPipe, const char *pchVersion)
|
||||
{
|
||||
struct cppISteamClient_SteamClient016_GetISteamHTTP_params params =
|
||||
|
@ -4541,6 +4739,17 @@ DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient017_GetISteamInventory, 16)
|
|||
DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient017_GetISteamVideo, 16)
|
||||
DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient017_GetISteamParentalSettings, 16)
|
||||
|
||||
int32_t __thiscall winISteamClient_SteamClient017_CreateSteamPipe(struct w_steam_iface *_this)
|
||||
{
|
||||
struct cppISteamClient_SteamClient017_CreateSteamPipe_params params =
|
||||
{
|
||||
.linux_side = _this->u_iface,
|
||||
};
|
||||
TRACE("%p\n", _this);
|
||||
cppISteamClient_SteamClient017_CreateSteamPipe( ¶ms );
|
||||
return params._ret;
|
||||
}
|
||||
|
||||
bool __thiscall winISteamClient_SteamClient017_BReleaseSteamPipe(struct w_steam_iface *_this, int32_t hSteamPipe)
|
||||
{
|
||||
struct cppISteamClient_SteamClient017_BReleaseSteamPipe_params params =
|
||||
|
@ -4828,6 +5037,17 @@ void __thiscall winISteamClient_SteamClient017_SetWarningMessageHook(struct w_st
|
|||
cppISteamClient_SteamClient017_SetWarningMessageHook( ¶ms );
|
||||
}
|
||||
|
||||
bool __thiscall winISteamClient_SteamClient017_BShutdownIfAllPipesClosed(struct w_steam_iface *_this)
|
||||
{
|
||||
struct cppISteamClient_SteamClient017_BShutdownIfAllPipesClosed_params params =
|
||||
{
|
||||
.linux_side = _this->u_iface,
|
||||
};
|
||||
TRACE("%p\n", _this);
|
||||
cppISteamClient_SteamClient017_BShutdownIfAllPipesClosed( ¶ms );
|
||||
return params._ret;
|
||||
}
|
||||
|
||||
void /*ISteamHTTP*/ * __thiscall winISteamClient_SteamClient017_GetISteamHTTP(struct w_steam_iface *_this, int32_t hSteamuser, int32_t hSteamPipe, const char *pchVersion)
|
||||
{
|
||||
struct cppISteamClient_SteamClient017_GetISteamHTTP_params params =
|
||||
|
@ -5125,6 +5345,17 @@ DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient018_GetISteamParentalSettings
|
|||
DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient018_GetISteamInput, 16)
|
||||
DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient018_GetISteamParties, 16)
|
||||
|
||||
int32_t __thiscall winISteamClient_SteamClient018_CreateSteamPipe(struct w_steam_iface *_this)
|
||||
{
|
||||
struct cppISteamClient_SteamClient018_CreateSteamPipe_params params =
|
||||
{
|
||||
.linux_side = _this->u_iface,
|
||||
};
|
||||
TRACE("%p\n", _this);
|
||||
cppISteamClient_SteamClient018_CreateSteamPipe( ¶ms );
|
||||
return params._ret;
|
||||
}
|
||||
|
||||
bool __thiscall winISteamClient_SteamClient018_BReleaseSteamPipe(struct w_steam_iface *_this, int32_t hSteamPipe)
|
||||
{
|
||||
struct cppISteamClient_SteamClient018_BReleaseSteamPipe_params params =
|
||||
|
@ -5427,6 +5658,17 @@ void __thiscall winISteamClient_SteamClient018_SetWarningMessageHook(struct w_st
|
|||
cppISteamClient_SteamClient018_SetWarningMessageHook( ¶ms );
|
||||
}
|
||||
|
||||
bool __thiscall winISteamClient_SteamClient018_BShutdownIfAllPipesClosed(struct w_steam_iface *_this)
|
||||
{
|
||||
struct cppISteamClient_SteamClient018_BShutdownIfAllPipesClosed_params params =
|
||||
{
|
||||
.linux_side = _this->u_iface,
|
||||
};
|
||||
TRACE("%p\n", _this);
|
||||
cppISteamClient_SteamClient018_BShutdownIfAllPipesClosed( ¶ms );
|
||||
return params._ret;
|
||||
}
|
||||
|
||||
void /*ISteamHTTP*/ * __thiscall winISteamClient_SteamClient018_GetISteamHTTP(struct w_steam_iface *_this, int32_t hSteamuser, int32_t hSteamPipe, const char *pchVersion)
|
||||
{
|
||||
struct cppISteamClient_SteamClient018_GetISteamHTTP_params params =
|
||||
|
@ -5758,6 +6000,17 @@ DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient019_GetISteamInput, 16)
|
|||
DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient019_GetISteamParties, 16)
|
||||
DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient019_GetISteamRemotePlay, 16)
|
||||
|
||||
int32_t __thiscall winISteamClient_SteamClient019_CreateSteamPipe(struct w_steam_iface *_this)
|
||||
{
|
||||
struct cppISteamClient_SteamClient019_CreateSteamPipe_params params =
|
||||
{
|
||||
.linux_side = _this->u_iface,
|
||||
};
|
||||
TRACE("%p\n", _this);
|
||||
cppISteamClient_SteamClient019_CreateSteamPipe( ¶ms );
|
||||
return params._ret;
|
||||
}
|
||||
|
||||
bool __thiscall winISteamClient_SteamClient019_BReleaseSteamPipe(struct w_steam_iface *_this, int32_t hSteamPipe)
|
||||
{
|
||||
struct cppISteamClient_SteamClient019_BReleaseSteamPipe_params params =
|
||||
|
@ -6060,6 +6313,17 @@ void __thiscall winISteamClient_SteamClient019_SetWarningMessageHook(struct w_st
|
|||
cppISteamClient_SteamClient019_SetWarningMessageHook( ¶ms );
|
||||
}
|
||||
|
||||
bool __thiscall winISteamClient_SteamClient019_BShutdownIfAllPipesClosed(struct w_steam_iface *_this)
|
||||
{
|
||||
struct cppISteamClient_SteamClient019_BShutdownIfAllPipesClosed_params params =
|
||||
{
|
||||
.linux_side = _this->u_iface,
|
||||
};
|
||||
TRACE("%p\n", _this);
|
||||
cppISteamClient_SteamClient019_BShutdownIfAllPipesClosed( ¶ms );
|
||||
return params._ret;
|
||||
}
|
||||
|
||||
void /*ISteamHTTP*/ * __thiscall winISteamClient_SteamClient019_GetISteamHTTP(struct w_steam_iface *_this, int32_t hSteamuser, int32_t hSteamPipe, const char *pchVersion)
|
||||
{
|
||||
struct cppISteamClient_SteamClient019_GetISteamHTTP_params params =
|
||||
|
@ -6408,6 +6672,17 @@ DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient020_GetISteamParties, 16)
|
|||
DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient020_GetISteamRemotePlay, 16)
|
||||
DEFINE_THISCALL_WRAPPER(winISteamClient_SteamClient020_DestroyAllInterfaces, 4)
|
||||
|
||||
int32_t __thiscall winISteamClient_SteamClient020_CreateSteamPipe(struct w_steam_iface *_this)
|
||||
{
|
||||
struct cppISteamClient_SteamClient020_CreateSteamPipe_params params =
|
||||
{
|
||||
.linux_side = _this->u_iface,
|
||||
};
|
||||
TRACE("%p\n", _this);
|
||||
cppISteamClient_SteamClient020_CreateSteamPipe( ¶ms );
|
||||
return params._ret;
|
||||
}
|
||||
|
||||
bool __thiscall winISteamClient_SteamClient020_BReleaseSteamPipe(struct w_steam_iface *_this, int32_t hSteamPipe)
|
||||
{
|
||||
struct cppISteamClient_SteamClient020_BReleaseSteamPipe_params params =
|
||||
|
@ -6710,6 +6985,17 @@ void __thiscall winISteamClient_SteamClient020_SetWarningMessageHook(struct w_st
|
|||
cppISteamClient_SteamClient020_SetWarningMessageHook( ¶ms );
|
||||
}
|
||||
|
||||
bool __thiscall winISteamClient_SteamClient020_BShutdownIfAllPipesClosed(struct w_steam_iface *_this)
|
||||
{
|
||||
struct cppISteamClient_SteamClient020_BShutdownIfAllPipesClosed_params params =
|
||||
{
|
||||
.linux_side = _this->u_iface,
|
||||
};
|
||||
TRACE("%p\n", _this);
|
||||
cppISteamClient_SteamClient020_BShutdownIfAllPipesClosed( ¶ms );
|
||||
return params._ret;
|
||||
}
|
||||
|
||||
void /*ISteamHTTP*/ * __thiscall winISteamClient_SteamClient020_GetISteamHTTP(struct w_steam_iface *_this, int32_t hSteamuser, int32_t hSteamPipe, const char *pchVersion)
|
||||
{
|
||||
struct cppISteamClient_SteamClient020_GetISteamHTTP_params params =
|
||||
|
|
Loading…
Reference in a new issue