mirror of
https://git.suyu.dev/suyu/Yucom.git
synced 2025-12-21 21:26:03 +01:00
lsteamclient: Rewrite SteamNetworkingMessage_t_144 unix thunks.
CW-Bug-Id: #22729
This commit is contained in:
parent
0e4fab2dff
commit
b56d6aa766
8 changed files with 285 additions and 114 deletions
78
lsteamclient/unix_steam_networking_manual.cpp
Normal file
78
lsteamclient/unix_steam_networking_manual.cpp
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
#include "steamclient_structs.h"
|
||||
|
||||
#include "cppISteamNetworkingSockets_SteamNetworkingSockets002.hpp"
|
||||
#include "cppISteamNetworkingSockets_SteamNetworkingSockets004.hpp"
|
||||
|
||||
static void receive_messages_utow_144( uint32_t count, u_SteamNetworkingMessage_t_144 **u_msgs,
|
||||
w_SteamNetworkingMessage_t_144 **w_msgs )
|
||||
{
|
||||
uint32_t i;
|
||||
|
||||
for (i = 0; i < count; i++)
|
||||
{
|
||||
struct networking_message *message = CONTAINING_RECORD( w_msgs[i], struct networking_message, w_msg_144 );
|
||||
w_SteamNetworkingMessage_t_144 *w_msg = &message->w_msg_144;
|
||||
u_SteamNetworkingMessage_t_144 *u_msg = u_msgs[i];
|
||||
message->u_msg_144 = u_msg;
|
||||
|
||||
w_msg->m_cbSize = u_msg->m_cbSize;
|
||||
w_msg->m_conn = u_msg->m_conn;
|
||||
w_msg->m_sender = u_msg->m_sender;
|
||||
w_msg->m_nConnUserData = u_msg->m_nConnUserData;
|
||||
w_msg->m_usecTimeReceived = u_msg->m_usecTimeReceived;
|
||||
w_msg->m_nMessageNumber = u_msg->m_nMessageNumber;
|
||||
w_msg->m_nChannel = u_msg->m_nChannel;
|
||||
}
|
||||
}
|
||||
|
||||
void unix_networking_messages_receive_144( uint32_t count, w_SteamNetworkingMessage_t_144 **w_msgs )
|
||||
{
|
||||
uint32_t i;
|
||||
|
||||
for (i = 0; i < count; i++)
|
||||
{
|
||||
struct networking_message *message = CONTAINING_RECORD( w_msgs[i], struct networking_message, w_msg_144 );
|
||||
w_SteamNetworkingMessage_t_144 *w_msg = &message->w_msg_144;
|
||||
u_SteamNetworkingMessage_t_144 *u_msg = message->u_msg_144;
|
||||
|
||||
memcpy( w_msg->m_pData, u_msg->m_pData, u_msg->m_cbSize );
|
||||
u_msg->m_pfnRelease( u_msg );
|
||||
message->u_msg_144 = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
/* ISteamNetworkingSockets_SteamNetworkingSockets002 */
|
||||
|
||||
void cppISteamNetworkingSockets_SteamNetworkingSockets002_ReceiveMessagesOnConnection( struct cppISteamNetworkingSockets_SteamNetworkingSockets002_ReceiveMessagesOnConnection_params *params )
|
||||
{
|
||||
struct u_ISteamNetworkingSockets_SteamNetworkingSockets002 *iface = (struct u_ISteamNetworkingSockets_SteamNetworkingSockets002 *)params->linux_side;
|
||||
u_SteamNetworkingMessage_t_144 *u_msgs[params->nMaxMessages];
|
||||
params->_ret = iface->ReceiveMessagesOnConnection( params->hConn, u_msgs, params->nMaxMessages );
|
||||
if (params->_ret > 0) receive_messages_utow_144( params->_ret, u_msgs, params->ppOutMessages );
|
||||
}
|
||||
|
||||
void cppISteamNetworkingSockets_SteamNetworkingSockets002_ReceiveMessagesOnListenSocket( struct cppISteamNetworkingSockets_SteamNetworkingSockets002_ReceiveMessagesOnListenSocket_params *params )
|
||||
{
|
||||
struct u_ISteamNetworkingSockets_SteamNetworkingSockets002 *iface = (struct u_ISteamNetworkingSockets_SteamNetworkingSockets002 *)params->linux_side;
|
||||
u_SteamNetworkingMessage_t_144 *u_msgs[params->nMaxMessages];
|
||||
params->_ret = iface->ReceiveMessagesOnListenSocket( params->hSocket, u_msgs, params->nMaxMessages );
|
||||
if (params->_ret > 0) receive_messages_utow_144( params->_ret, u_msgs, params->ppOutMessages );
|
||||
}
|
||||
|
||||
/* ISteamNetworkingSockets_SteamNetworkingSockets004 */
|
||||
|
||||
void cppISteamNetworkingSockets_SteamNetworkingSockets004_ReceiveMessagesOnConnection( struct cppISteamNetworkingSockets_SteamNetworkingSockets004_ReceiveMessagesOnConnection_params *params )
|
||||
{
|
||||
struct u_ISteamNetworkingSockets_SteamNetworkingSockets004 *iface = (struct u_ISteamNetworkingSockets_SteamNetworkingSockets004 *)params->linux_side;
|
||||
u_SteamNetworkingMessage_t_144 *u_msgs[params->nMaxMessages];
|
||||
params->_ret = iface->ReceiveMessagesOnConnection( params->hConn, u_msgs, params->nMaxMessages );
|
||||
if (params->_ret > 0) receive_messages_utow_144( params->_ret, u_msgs, params->ppOutMessages );
|
||||
}
|
||||
|
||||
void cppISteamNetworkingSockets_SteamNetworkingSockets004_ReceiveMessagesOnListenSocket( struct cppISteamNetworkingSockets_SteamNetworkingSockets004_ReceiveMessagesOnListenSocket_params *params )
|
||||
{
|
||||
struct u_ISteamNetworkingSockets_SteamNetworkingSockets004 *iface = (struct u_ISteamNetworkingSockets_SteamNetworkingSockets004 *)params->linux_side;
|
||||
u_SteamNetworkingMessage_t_144 *u_msgs[params->nMaxMessages];
|
||||
params->_ret = iface->ReceiveMessagesOnListenSocket( params->hSocket, u_msgs, params->nMaxMessages );
|
||||
if (params->_ret > 0) receive_messages_utow_144( params->_ret, u_msgs, params->ppOutMessages );
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue