/* NetSer.h : API general functions */ #ifndef NETSER_H #define NETSER_H #include /* Contains players informations : */ typedef struct NetLib_tdstPlayerInfo_ { NetLib_tduxPlayerId m_uxPlayerId; tdpPointer pPlayerDescriptionData; NetLib_tduxDescriptionLength uxPlayerDescriptionLength; NetLib_tducBigLittleEndian m_ucLittleBigEndian; NetLib_tduwJoinType JoinType; char *Options; short wNewPlayer; char m_bOverInternet; }NetLib_tdstPlayerInfo; /* Contains session informations */ typedef struct NetLib_tdstSessionInfo_ { NetLib_tduxSessionId uxSessionId; NetLib_tdstPlayerInfo *d_stPlayerInfo; tdpPointer pSessionDescriptionData; unsigned short uwMaxNumberOfPlayers; unsigned short uwNumberOfPlayers; unsigned short uwIndexOfLocalPlayer; NetLib_tduxDescriptionLength uxSessionDescriptionLength; char *GameOptions; NetLib_tduxDescriptionLength uxPlayerDescTruncation; }NetLib_tdstSessionInfo; typedef void (_NET_CALLING_CONV_ *NetLib_tdfnvReadReceiptCallback)(NetLib_tduxPlayerId,NetLib_uxReadReceiptId,NetLib_ucReadReceiptFlag,long); typedef NetLib_tdulTimeInfo (_NET_CALLING_CONV_*NetLib_tdfnulGetTimeInfo)(void); typedef unsigned long (_NET_CALLING_CONV_ *NetLib_tdfnulRandom)(void); typedef void (_NET_CALLING_CONV_*NetLib_tdfnvDisconnectCallback)(NetLib_tduxPlayerId); typedef NetLib_tdeErrorStatus (_NET_CALLING_CONV_*NetLib_tdfneFilterSessionCallback)(NetLib_tdstSessionInfo*); typedef NetLib_tdeErrorStatus (_NET_CALLING_CONV_*NetLib_tdfnePlayerConnectionRequestFilterCallback)(NetLib_tdstPlayerInfo*,long*); typedef struct NetLib_tdstReadReceiptDesc_ { NetLib_tdulTimeInfo m_ulMaxWaitingTime; NetLib_tdulTimeInfo m_ulReemitFreq; NetLib_uxReadReceiptId m_uxReadReceiptId; long m_lCallbackParam; NetLib_tdfnvReadReceiptCallback p_fnv_ReadReceiptCallback; }NetLib_tdstReadReceiptDesc; /* Description of a send operation */ typedef struct NetLib_tdstSendDesc_ { NetLib_tduxPlayerId m_tduxRecipientId; /*the recipient of the message*/ NetLib_tdulTimeInfo m_ulMaxWaitingTime; /* time-out */ tdpPointer m_pMessageData; /* a buffer containing the message */ unsigned short m_uwMessageLength; /* the length of the message*/ NetLib_tduxPriority m_uxPriority; /* Priority */ NetLib_tduxReplaceType m_uxReplaceType; /* Replace type */ NetLib_tduxReplaceFlag m_uxReplaceFlag; /* Replace flag */ NetLib_ucReadReceiptFlag m_ucReadReceiptFlag;/* flag for read receipt*/ NetLib_tdstReadReceiptDesc m_stReadReceiptDesc;/* Description of the read receipt*/ }NetLib_tdstSendDesc; /* Description of a reading operation */ typedef struct NetLib_tdstReadDesc_ { NetLib_tduxPlayerId m_uxSenderId; /* the sender of the message */ unsigned long m_uwMessageLength; /* the length of the buffer that will receive the message*/ unsigned long m_uwOrigMsgLength; /* the length of the message in the lib*/ tdpPointer m_pMessageData; /* the message */ NetLib_tdulTimeInfo m_ulMaxWaitingTime; /* time-out */ unsigned char m_bRemoveFromQueue; /* removing the message from the lib ?*/ }NetLib_tdstReadDesc; /* Description of a listening operation */ typedef struct NetLib_tdstListenDesc_ { NetLib_tdulTimeInfo m_ulMaxWaitingTime; /* time-out */ NetLib_tduxPlayerId m_uxPlayerId; /* the id of the new player */ tdpPointer m_pPlayerDescriptionData;/* description of the player */ NetLib_tduxDescriptionLength m_uxPlayerDescriptionLength;/* the length of the description buffer */ }NetLib_tdstListenDesc; /* Description of a connecttosession operation*/ typedef struct NetLib_tdstConnectDesc_ { NetLib_tdulTimeInfo m_ulMaxWaitingTime;/*time-out*/ NetLib_tduxSessionId m_uxSessionId; /* the id of the session to join*/ long m_lConDenyParam; }NetLib_tdstConnectDesc; typedef struct NetLib_tdstDoForAllDesc_ { NetLib_tdeErrorStatus (_NET_CALLING_CONV_ *m_pfn_eForAll)(NetLib_tduxPlayerId,long); long m_lParameter; NetLib_tdeErrorStatus m_eGoOnCondition; unsigned char m_ucIncludeLocal; }NetLib_tdstDoForAllDesc; /* Struct for blocking loop :*/ typedef struct tdstNetBlockingLoopDescription_ { NetLib_tdulTimeInfo m_ulMaxWaitingTime; NetLib_tdeErrorStatus (_NET_CALLING_CONV_ *m_pfn_eEvaluation)(long); long m_lParam; NetLib_tdeErrorStatus m_eGoOnCondition; }tdstNetBlockingLoopDescription; #define NetLib_C_ucAcceptWithoutListening ((unsigned char)1) #define NetLib_C_ucListenForAccept ((unsigned char)0) #define NetLib_C_uwInvalidPosition ((unsigned short)-1) #define NetLib_C_ucNotIncludeLocalPlayer ((unsigned char)0) #define NetLib_C_ucIncludeLocalPlayer ((unsigned char)1) /* defining read receipt flags*/ #define NetLib_C_ucNoReadReceipt ((unsigned char)-1) #define NetLib_C_ucReadReceiptRequired ((unsigned char)1) #define NetLib_C_ucReadReceiptSuccess ((unsigned char)2) #define NetLib_C_ucReadReceiptFailure ((unsigned char)0) /* defining broadcast state */ #define NetLib_C_TrueBroadcast 1 #define NetLib_C_SimulBroadcast 0 /*//////////////////////////////////////////////////////////////////// DEFINITION OF FUNCTIONS : ////////////////////////////////////////////////////////////////////*/ /* Initialisation functions :*/ _NET_EXPORT_ NetLib_tdeErrorStatus _NET_CALLING_CONV_ NetLib_eInitializeGlobalData(unsigned long, char*,NetLib_tduwMode uwMode,short BroadcastIpx); _NET_EXPORT_ void _NET_CALLING_CONV_ NetLib_eSetBroadcastState(short BroadcastIpx); /* Callback initialisation function :*/ _NET_EXPORT_ void _NET_CALLING_CONV_ NetLib_vInitializeGetTimeInfoFunction(NetLib_tdfnulGetTimeInfo, unsigned long); _NET_EXPORT_ void _NET_CALLING_CONV_ NetLib_vInitializeMemcopyFunction(td_pfn_vNetMemcpy); _NET_EXPORT_ void _NET_CALLING_CONV_ NetLib_vInitializeRandomFunction(NetLib_tdfnulRandom); _NET_EXPORT_ void _NET_CALLING_CONV_ NetLib_vRegisterDisconnectCallback(NetLib_tdfnvDisconnectCallback); _NET_EXPORT_ void _NET_CALLING_CONV_ NetLib_vRegisterFilterSessionCallback(NetLib_tdfneFilterSessionCallback); _NET_EXPORT_ void _NET_CALLING_CONV_ NetLib_vRegisterPlayerConnectionRequestFilter(NetLib_tdfnePlayerConnectionRequestFilterCallback); /* Setting NetLib parameters :*/ _NET_EXPORT_ NetLib_tdeErrorStatus _NET_CALLING_CONV_ NetLib_eSetMaxNumberOfPlayers(unsigned short NewMaxNumberOfPlayer); _NET_EXPORT_ NetLib_tdeErrorStatus _NET_CALLING_CONV_ NetLib_eSetSessionDescription(NetLib_tduxDescriptionLength,tdpPointer,char); _NET_EXPORT_ NetLib_tdeErrorStatus _NET_CALLING_CONV_ NetLib_eSetLocalPlayerDescription(NetLib_tduxDescriptionLength,tdpPointer,char); _NET_EXPORT_ NetLib_tdeErrorStatus _NET_CALLING_CONV_ NetLib_eSetPlayerDescription(NetLib_tduxPlayerId,NetLib_tduxDescriptionLength,tdpPointer,char); _NET_EXPORT_ void _NET_CALLING_CONV_ NetLib_vSetAcceptWithoutListening(unsigned char); _NET_EXPORT_ NetLib_tdeErrorStatus _NET_CALLING_CONV_ NetLib_eSetInternetSimulDelay(NetLib_tdulTimeInfo ulTimeToWait,NetLib_tdulTimeInfo ulRandom); _NET_EXPORT_ void _NET_CALLING_CONV_ NetLib_vSetPreSessionPlayerMaxWaitingTime(NetLib_tdulTimeInfo); _NET_EXPORT_ void _NET_CALLING_CONV_ NetLib_vSetReemissionMode(unsigned char); _NET_EXPORT_ NetLib_tdeErrorStatus _NET_CALLING_CONV_ NetLib_eSampleLagsAndLatencies(unsigned short,unsigned long); /* getting informations :*/ _NET_EXPORT_ NetLib_tducBigLittleEndian _NET_CALLING_CONV_ NetLib_ucGetLittleBigEndian(void); _NET_EXPORT_ NetLib_tducBigLittleEndian _NET_CALLING_CONV_ NetLib_ucGetPlayerLittleBigEndian(NetLib_tduxPlayerId); _NET_EXPORT_ NetLib_tdeErrorStatus _NET_CALLING_CONV_ NetLib_eIsPlayerOverInternet(NetLib_tduxPlayerId); _NET_EXPORT_ NetLib_tduxSessionId _NET_CALLING_CONV_ NetLib_uxGetSessionId(void); _NET_EXPORT_ NetLib_tdeErrorStatus _NET_CALLING_CONV_ NetLib_eGetSessionDescription(NetLib_tduxDescriptionLength*,tdpPointer); _NET_EXPORT_ NetLib_tduxDescriptionLength _NET_CALLING_CONV_ NetLib_uxGetSessionDescriptionLength(void); _NET_EXPORT_ unsigned short _NET_CALLING_CONV_ NetLib_uwGetMaxNumberOfPlayers(void); _NET_EXPORT_ unsigned short _NET_CALLING_CONV_ NetLib_uwGetTotalNumberPlayer(void); _NET_EXPORT_ NetLib_tduxPlayerId _NET_CALLING_CONV_ NetLib_uxGetOwnPlayerId(void); _NET_EXPORT_ NetLib_tdeErrorStatus _NET_CALLING_CONV_ NetLib_eGetPlayersIdFromSession(NetLib_tduxPlayerId *,unsigned short *); _NET_EXPORT_ unsigned short _NET_CALLING_CONV_ NetLib_uwGetFirstRemotePlayerIdPosition(void); _NET_EXPORT_ NetLib_tduxPlayerId _NET_CALLING_CONV_ NetLib_uxGetNextRemotePlayerId(unsigned short*); _NET_EXPORT_ NetLib_tdeErrorStatus _NET_CALLING_CONV_ NetLib_eGetPlayerDescription(NetLib_tduxDescriptionLength*,tdpPointer, NetLib_tduxPlayerId); _NET_EXPORT_ NetLib_tduxDescriptionLength _NET_CALLING_CONV_ NetLib_uxGetPlayerDescriptionLength(NetLib_tduxPlayerId); _NET_EXPORT_ NetLib_tdulTimeInfo _NET_CALLING_CONV_ NetLib_ulTellRemoteTimerValue(NetLib_tduxPlayerId ,NetLib_tdulTimeInfo); _NET_EXPORT_ NetLib_tdulTimeInfo _NET_CALLING_CONV_ NetLib_ulTellRemotePlayerLag(NetLib_tduxPlayerId ulRemoteId,unsigned short *pNumberOfPing); _NET_EXPORT_ NetLib_tdeErrorStatus _NET_CALLING_CONV_ NetLib_eAcceptWithoutListening(); _NET_EXPORT_ void _NET_CALLING_CONV_ NetLib_eGetPlayerName(NetLib_tduxPlayerId uxPlayerId,char *Name,unsigned short SizeMaxName); _NET_EXPORT_ void _NET_CALLING_CONV_ NetLib_eGetGameName(char *Name,unsigned short SizeMaxName); /* Getting sessions :*/ _NET_EXPORT_ NetLib_tdeErrorStatus _NET_CALLING_CONV_ NetLib_eOpenGetActiveSessions(unsigned short,NetLib_tdulTimeInfo,NetLib_tduxDescriptionLength uxMaxPlayerInfo); _NET_EXPORT_ NetLib_tdeErrorStatus _NET_CALLING_CONV_ NetLib_eCloseGetActiveSessions(void); _NET_EXPORT_ NetLib_tdeErrorStatus _NET_CALLING_CONV_ NetLib_eCloseAndResetGetActiveSessions(void); _NET_EXPORT_ NetLib_tdeErrorStatus _NET_CALLING_CONV_ NetLib_eGetSessionsFound(unsigned short *,NetLib_tdstSessionInfo **); _NET_EXPORT_ NetLib_tdeErrorStatus _NET_CALLING_CONV_ NetLib_eGetActiveSessions(unsigned short*,NetLib_tdstSessionInfo**,NetLib_tdulTimeInfo,NetLib_tduxDescriptionLength uxMaxPlayerInfo); /* Connecting to a session :*/ _NET_EXPORT_ NetLib_tdeErrorStatus _NET_CALLING_CONV_ NetLib_eConnectToSession(NetLib_tdstConnectDesc*); /* Accepting a player in the session :*/ _NET_EXPORT_ NetLib_tdeErrorStatus _NET_CALLING_CONV_ NetLib_eListenForRequest(NetLib_tdstListenDesc*); /* Disconnection */ _NET_EXPORT_ NetLib_tdeErrorStatus _NET_CALLING_CONV_ NetLib_eDisconnectRemotePlayer(NetLib_tduxPlayerId); _NET_EXPORT_ void _NET_CALLING_CONV_ NetLib_vDisconnectAllRemotePlayers(void); _NET_EXPORT_ void _NET_CALLING_CONV_ NetLib_vDisconnectFromSession(void); /* Sending message functions :*/ _NET_EXPORT_ NetLib_tdeErrorStatus _NET_CALLING_CONV_ NetLib_eSendMessage(NetLib_tdstSendDesc *); _NET_EXPORT_ NetLib_tdeErrorStatus _NET_CALLING_CONV_ NetLib_eFlushSendingList(NetLib_tdulTimeInfo); _NET_EXPORT_ NetLib_tdeErrorStatus _NET_CALLING_CONV_ NetLib_ePlayerFlushCompleted(NetLib_tduxPlayerId,long); /* getting message functions :*/ _NET_EXPORT_ NetLib_tdeErrorStatus _NET_CALLING_CONV_ NetLib_eReadMessage(NetLib_tdstReadDesc *); /* Engine :*/ _NET_EXPORT_ void _NET_CALLING_CONV_ NetLib_vEngine(void); /**/ _NET_EXPORT_ NetLib_tdeErrorStatus _NET_CALLING_CONV_ NetLib_eDoForAllPlayers(NetLib_tdstDoForAllDesc *); _NET_EXPORT_ NetLib_tdeErrorStatus _NET_CALLING_CONV_ NetLib_eBlockingLoop(tdstNetBlockingLoopDescription *); /* Closing the librairy :*/ _NET_EXPORT_ void _NET_CALLING_CONV_ NetLib_vCloseLibrary(void); #endif /* NETSER_H */