mirror of
https://github.com/Mauler125/r5sdk.git
synced 2025-02-09 19:15:03 +01:00
DirtySDK (EA's Dirty Sockets library) will be used for the LiveAPI implementation, and depends on: EABase, EAThread.
161 lines
5.2 KiB
C++
161 lines
5.2 KiB
C++
/*H*************************************************************************************/
|
|
/*!
|
|
\File netconn.h
|
|
|
|
\Description
|
|
Provides network setup and teardown support. Does not actually create any
|
|
kind of network connections.
|
|
|
|
\Copyright
|
|
Copyright (c) Electronic Arts 2001-2009
|
|
|
|
\Version 03/12/2001 (gschaefer) First Version
|
|
*/
|
|
/*************************************************************************************H*/
|
|
|
|
#ifndef _netconn_h
|
|
#define _netconn_h
|
|
|
|
/*!
|
|
\Moduledef NetConnDefs NetConnDefs
|
|
\Modulemember DirtySock
|
|
*/
|
|
//@{
|
|
|
|
/*** Include files *********************************************************************/
|
|
|
|
#include "DirtySDK/platform.h"
|
|
#include "DirtySDK/dirtysock/netconndefs.h"
|
|
|
|
/*** Defines ***************************************************************************/
|
|
|
|
//! maximum number of local users
|
|
#if defined(DIRTYCODE_XBOXONE)
|
|
#define NETCONN_MAXLOCALUSERS (16)
|
|
#elif defined(DIRTYCODE_NX)
|
|
#define NETCONN_MAXLOCALUSERS (8)
|
|
#else
|
|
#define NETCONN_MAXLOCALUSERS (4)
|
|
#endif
|
|
|
|
|
|
/*** Macros ****************************************************************************/
|
|
|
|
/*** Type Definitions ******************************************************************/
|
|
|
|
typedef struct NetConnUserDataT
|
|
{
|
|
char strName[16];
|
|
void *pRawData1;
|
|
void *pRawData2;
|
|
} NetConnUserDataT;
|
|
|
|
//! account structure
|
|
typedef struct NetConnAccountInfoT
|
|
{
|
|
int64_t iAccountId; //!< the EA account Id of the user
|
|
int64_t iPersonaId; //!< the EA persona Id of the user
|
|
} NetConnAccountInfoT;
|
|
|
|
#if defined(DIRTYCODE_PS4)
|
|
typedef void (NetConnNpStateCallbackT)(int32_t /* SceUserServiceUserId */ userId, int32_t /* SceNpState */ state, void* pUserData);
|
|
#endif
|
|
|
|
/*** Variables *************************************************************************/
|
|
|
|
/*** Functions *************************************************************************/
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
// bring the network connection module to life
|
|
DIRTYCODE_API int32_t NetConnStartup(const char *pParams);
|
|
|
|
// query the list of available connection configurations
|
|
DIRTYCODE_API int32_t NetConnQuery(const char *pDevice, NetConfigRecT *pList, int32_t iSize);
|
|
|
|
// bring the networking online with a specific configuration
|
|
DIRTYCODE_API int32_t NetConnConnect(const NetConfigRecT *pConfig, const char *pParms, int32_t iData);
|
|
|
|
// set module behavior based on input selector
|
|
DIRTYCODE_API int32_t NetConnControl(int32_t iControl, int32_t iValue, int32_t iValue2, void *pValue, void *pValue2);
|
|
|
|
// check general network connection status (added param)
|
|
DIRTYCODE_API int32_t NetConnStatus(int32_t iKind, int32_t iData, void *pBuf, int32_t iBufSize);
|
|
|
|
// return MAC address in textual form
|
|
DIRTYCODE_API const char *NetConnMAC(void);
|
|
|
|
// take down the network connection
|
|
DIRTYCODE_API int32_t NetConnDisconnect(void);
|
|
|
|
// shutdown the network code and return to idle state
|
|
DIRTYCODE_API int32_t NetConnShutdown(uint32_t uShutdownFlags);
|
|
|
|
// return elapsed time in milliseconds
|
|
DIRTYCODE_API uint32_t NetConnElapsed(void);
|
|
|
|
// sleep the application (burn cycles) for some number of milliseconds
|
|
DIRTYCODE_API void NetConnSleep(int32_t iMilliSecs);
|
|
|
|
// add an idle handler that will get called periodically
|
|
DIRTYCODE_API int32_t NetConnIdleAdd(void (*proc)(void *data, uint32_t tick), void *data);
|
|
|
|
// remove a previously added idle handler
|
|
DIRTYCODE_API int32_t NetConnIdleDel(void (*proc)(void *data, uint32_t tick), void *data);
|
|
|
|
// provide "life" to the network code
|
|
DIRTYCODE_API void NetConnIdle(void);
|
|
|
|
// shut down netconn idle handler
|
|
// NOTE: this is meant for internal use only, and should not be called by applications directly
|
|
DIRTYCODE_API void NetConnIdleShutdown(void);
|
|
|
|
// Enable or disable the timing of netconnidles
|
|
DIRTYCODE_API void NetConnTiming(uint8_t uEnableTiming);
|
|
|
|
typedef void (UserInfoCallbackT)(NetConnUserDataT *pUserDataT, void *pData);
|
|
|
|
// get the unique machine id
|
|
DIRTYCODE_API uint32_t NetConnMachineId(void);
|
|
|
|
// set the unique machine id
|
|
DIRTYCODE_API void NetConnSetMachineId(uint32_t uMachineId);
|
|
|
|
#if DIRTYCODE_LOGGING
|
|
DIRTYCODE_API void NetConnMonitorValue(const char* pName, int32_t iValue);
|
|
#endif
|
|
|
|
// copy a startup parameter
|
|
DIRTYCODE_API int32_t NetConnCopyParam(char *pDst, int32_t iDstLen, const char *pParamName, const char *pSrc, const char *pDefault);
|
|
|
|
// create dirtycert module
|
|
DIRTYCODE_API int32_t NetConnDirtyCertCreate(const char *pParams);
|
|
|
|
// translate netconn environment to string
|
|
DIRTYCODE_API const char *NetConnGetEnvStr(void);
|
|
|
|
#if defined(DIRTYCODE_PS4)
|
|
DIRTYCODE_API void NetConnRegisterNpStateCallback(NetConnNpStateCallbackT *pCallback, void *pUserData);
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
|
|
// forward declare IEAUser so as not to create a dependency
|
|
namespace EA { namespace User { class IEAUser; } }
|
|
|
|
// use this function to tell netconn about a newly detected local user on the local console
|
|
DIRTYCODE_API int32_t NetConnAddLocalUser(int32_t iLocalUserIndex, const EA::User::IEAUser *pLocalUser);
|
|
|
|
// use this function to tell netconn about a removed local user on the local console
|
|
// in cases where the index is unknown, pass -1 and we will do an internal query
|
|
DIRTYCODE_API int32_t NetConnRemoveLocalUser(int32_t iLocalUserIndex, const EA::User::IEAUser *pLocalUser);
|
|
#endif // __cplusplus
|
|
|
|
//@}
|
|
|
|
#endif // _netconn_h
|
|
|