#include <dwc.h>
#define DWC_FRIEND_STATUS_STRING_LEN (256)
#define DWC_MAX_PLAYER_NAME 26
#define DWC_INVALID_AID (0xff)
#define DWC_MAX_CONNECTIONS 32
#define DWC_QR2_GAME_KEY_START 100
#define DWC_QR2_RESERVED_KEYS (100-50)
#define DWC_QR2_GAME_RESERVED_KEYS (DWC_MAX_REGISTERED_KEYS-DWC_QR2_RESERVED_KEYS-DWC_QR2_RESERVED_KEYS)
#define DWC_CONNECTION_USERDATA_LEN 4
#define DWC_TRANSPORT_MTU_SIZE 1500
#define DWC_TRANSPORT_RELIABLE_ALL_HEADER_SIZE 35
#define DWC_TRANSPORT_UNRELIABLE_ALL_HEADER_SIZE 38
#define DWC_TRANSPORT_SEND_RELIABLE_MAX (DWC_TRANSPORT_MTU_SIZE-DWC_TRANSPORT_RELIABLE_ALL_HEADER_SIZE)
#define DWC_TRANSPORT_SEND_UNRELIABLE_MAX (DWC_TRANSPORT_MTU_SIZE-DWC_TRANSPORT_UNRELIABLE_ALL_HEADER_SIZE)
#define DWC_TRANSPORT_SEND_MAX DWC_TRANSPORT_SEND_RELIABLE_MAX
enum {
DWC_PERS_STATE_INIT = 0,
DWC_PERS_STATE_LOGIN,
DWC_PERS_STATE_CONNECTED,
DWC_PERS_STATE_NUM,
};
enum {
DWC_STATUS_OFFLINE = 0,
DWC_STATUS_ONLINE,
DWC_STATUS_PLAYING,
DWC_STATUS_MATCH_ANYBODY,
DWC_STATUS_MATCH_FRIEND,
DWC_STATUS_MATCH_SC_CL,
DWC_STATUS_MATCH_SC_SV,
DWC_STATUS_NUM,
};
enum DWCFriendState {
DWC_FRIEND_STATE_INIT = 0,
DWC_FRIEND_STATE_PERS_LOGIN,
DWC_FRIEND_STATE_LOGON,
DWC_FRIEND_STATE_NUM,
};
enum {
DWC_BUDDY_UPDATE_STATE_WAIT = 0,
DWC_BUDDY_UPDATE_STATE_CHECK,
DWC_BUDDY_UPDATE_STATE_PSEARCH,
DWC_BUDDY_UPDATE_STATE_COMPLETE,
DWC_BUDDY_UPDATE_STATE_NUM,
};
enum DWCLoginState {
DWC_LOGIN_STATE_INIT = 0,
DWC_LOGIN_STATE_REMOTE_AUTH,
DWC_LOGIN_STATE_CONNECTING,
DWC_LOGIN_STATE_GPGETINFO,
DWC_LOGIN_STATE_GPSETINFO,
DWC_LOGIN_STATE_CONNECTED,
DWC_LOGIN_STATE_NUM,
};
enum DWCState {
DWC_STATE_INIT = 0,
DWC_STATE_AVAILABLE_CHECK,
DWC_STATE_LOGIN,
DWC_STATE_ONLINE,
DWC_STATE_MATCHING,
DWC_STATE_CONNECTED,
DWC_STATE_NUM,
};
enum DWCMatchState {
DWC_MATCH_STATE_INIT = 0,
DWC_MATCH_STATE_CL_WAITING,
DWC_MATCH_STATE_CL_SEARCH_HOST,
DWC_MATCH_STATE_CL_WAIT_RESV,
DWC_MATCH_STATE_CL_SEARCH_EVAL_HOST,
DWC_MATCH_STATE_CL_NN,
DWC_MATCH_STATE_CL_GT2,
DWC_MATCH_STATE_CL_CANCEL_SYN,
DWC_MATCH_STATE_CL_SYN,
DWC_MATCH_STATE_CL_SVDOWN_1,
DWC_MATCH_STATE_CL_SVDOWN_2,
DWC_MATCH_STATE_CL_SVDOWN_3,
DWC_MATCH_STATE_CL_SEARCH_GROUPID_HOST,
DWC_MATCH_STATE_SV_WAITING,
DWC_MATCH_STATE_SV_OWN_NN,
DWC_MATCH_STATE_SV_OWN_GT2,
DWC_MATCH_STATE_SV_WAIT_CL_LINK,
DWC_MATCH_STATE_SV_CANCEL_SYN,
DWC_MATCH_STATE_SV_CANCEL_SYN_WAIT,
DWC_MATCH_STATE_SV_SYN,
DWC_MATCH_STATE_SV_SYN_WAIT,
DWC_MATCH_STATE_WAIT_CLOSE,
DWC_MATCH_STATE_SEARCH_OWN,
DWC_MATCH_STATE_SV_SYN_CLOSE_WAIT,
DWC_MATCH_STATE_NUM,
};
enum {
DWC_MATCH_TYPE_ANYBODY = 0,
DWC_MATCH_TYPE_FRIEND,
DWC_MATCH_TYPE_SC_SV,
DWC_MATCH_TYPE_SC_CL,
DWC_MATCH_TYPE_NUM,
};
enum DWCSuspendResult {
DWC_SUSPEND_SUCCESS = 0,
DWC_SUSPEND_TIMEOUT,
DWC_SUSPEND_NUM,
};
enum DWCTopologyType {
DWC_TOPOLOGY_TYPE_HYBRID = 0,
DWC_TOPOLOGY_TYPE_STAR,
DWC_TOPOLOGY_TYPE_FULLMESH,
DWC_TOPOLOGY_TYPE_NUM,
};
| DWC_FRIEND_STATUS_STRING_LEN | The length (including null terminators) of the status string that can be specified when using the DWC_GetOwnStatusString, DWC_SetOwnStatusString, or DWC_GetFriendStatusSC function. |
|---|---|
| DWC_MAX_PLAYER_NAME | Maximum length of player names (in-game screen names) (25 double-byte characters + "\0\0"). |
| DWC_INVALID_AID | Value indicating an invalid AID. |
| DWC_MAX_CONNECTIONS | Maximum number of simultaneous connections. |
| DWC_QR2_GAME_KEY_START | Starting values of game-defined keys. |
| DWC_QR2_RESERVED_KEYS | Number of keys reserved by DWC. |
| DWC_QR2_GAME_RESERVED_KEYS | Maximum number of keys that the game can use (154). |
| DWC_CONNECTION_USERDATA_LEN | Length of the buffer used for matchmaking connection conditions. |
| DWC_TRANSPORT_MTU_SIZE | Maximum IP packet size that can be sent during reliable and unreliable transfers. |
| DWC_TRANSPORT_RELIABLE_ALL_HEADER_SIZE | Header size that can be attached to a reliable transfer. |
| DWC_TRANSPORT_UNRELIABLE_ALL_HEADER_SIZE | Header size that can be attached to an unreliable transfer. |
| DWC_TRANSPORT_SEND_RELIABLE_MAX | Maximum data size that can be sent by a single reliable transfer. |
| DWC_TRANSPORT_SEND_UNRELIABLE_MAX | Maximum data size that can be sent by a single unreliable transfer. |
| DWC_TRANSPORT_SEND_MAX | Maximum data size that can be sent by a single reliable transfer. (This is left for compatibility. Use DWC_TRANSPORT_SEND_RELIABLE_MAX.) |
| DWC_PERS_STATE_INIT | Initial state |
|---|---|
| DWC_PERS_STATE_LOGIN | Logging in |
| DWC_PERS_STATE_CONNECTED | Connected. |
| DWC_PERS_STATE_NUM |
| DWC_STATUS_OFFLINE | Offline. |
|---|---|
| DWC_STATUS_ONLINE | Online (logged on to the GP server). |
| DWC_STATUS_PLAYING | Playing the game. |
| DWC_STATUS_MATCH_ANYBODY | Currently performing friend-unspecified peer matchmaking. |
| DWC_STATUS_MATCH_FRIEND | Currently performing friend-specified peer matchmaking. |
| DWC_STATUS_MATCH_SC_CL | Client that is in server-client matchmaking. |
| DWC_STATUS_MATCH_SC_SV | Server that is in server-client matchmaking. |
| DWC_STATUS_NUM |
| DWC_FRIEND_STATE_INIT | Initial state. |
|---|---|
| DWC_FRIEND_STATE_PERS_LOGIN | Currently logging on to the Persistent server and synchronizing friend roster. |
| DWC_FRIEND_STATE_LOGON | Currently logged on to the Persistent server. |
| DWC_FRIEND_STATE_NUM |
| DWC_BUDDY_UPDATE_STATE_WAIT | Waiting for download of friend roster to complete. |
|---|---|
| DWC_BUDDY_UPDATE_STATE_CHECK | Currently checking friend roster. |
| DWC_BUDDY_UPDATE_STATE_PSEARCH | Currently searching for profile. |
| DWC_BUDDY_UPDATE_STATE_COMPLETE | Friend roster synchronization complete. |
| DWC_BUDDY_UPDATE_STATE_NUM |
| DWC_LOGIN_STATE_INIT | Initial state. |
|---|---|
| DWC_LOGIN_STATE_REMOTE_AUTH | Currently performing remote authentication. |
| DWC_LOGIN_STATE_CONNECTING | Currently connecting to GP server. |
| DWC_LOGIN_STATE_GPGETINFO | Getting lastname after logging into the GP server. |
| DWC_LOGIN_STATE_GPSETINFO | Setting lastname after logging on to the GP server for the first time. |
| DWC_LOGIN_STATE_CONNECTED | Connection completed. |
| DWC_LOGIN_STATE_NUM |
| DWC_STATE_INIT | Initial state. |
|---|---|
| DWC_STATE_AVAILABLE_CHECK | Checking game availability state. |
| DWC_STATE_LOGIN | Logging in. |
| DWC_STATE_ONLINE | Login completed and online. |
| DWC_STATE_MATCHING | Currently matchmaking. |
| DWC_STATE_CONNECTED | Matching has completed, and a mesh network has been created. |
| DWC_STATE_NUM |
| DWC_MATCH_STATE_INIT | Initial state. |
|---|---|
| DWC_MATCH_STATE_CL_WAITING | Waiting. |
| DWC_MATCH_STATE_CL_SEARCH_HOST | Searching for available host (only with friend-unspecified matchmaking). |
| DWC_MATCH_STATE_CL_WAIT_RESV | Waiting for response from server about reservation. |
| DWC_MATCH_STATE_CL_SEARCH_EVAL_HOST | Searching for a peer host to evaluate. |
| DWC_MATCH_STATE_CL_NN | Currently running NAT negotiation. |
| DWC_MATCH_STATE_CL_GT2 | Currently establishing GT2 connection. |
| DWC_MATCH_STATE_CL_CANCEL_SYN | Currently adjusting matchmaking cancellation synchronization between server and client. |
| DWC_MATCH_STATE_CL_SYN | Currently adjusting matchmaking completion synchronization. |
| DWC_MATCH_STATE_CL_SVDOWN_1 | Currently detecting server down. |
| DWC_MATCH_STATE_CL_SVDOWN_2 | Currently detecting server down, 2. |
| DWC_MATCH_STATE_CL_SVDOWN_3 | Currently detecting server down, 3. |
| DWC_MATCH_STATE_CL_SEARCH_GROUPID_HOST | Search for a host based on the group ID. |
| DWC_MATCH_STATE_SV_WAITING | Waiting. |
| DWC_MATCH_STATE_SV_OWN_NN | Currently running NAT negotiation with client. |
| DWC_MATCH_STATE_SV_OWN_GT2 | Currently establishing GT2 negotiation with client. |
| DWC_MATCH_STATE_SV_WAIT_CL_LINK | Waiting for connection between clients to complete. |
| DWC_MATCH_STATE_SV_CANCEL_SYN | Waiting for SYN-ACK related to matchmaking cancellation synchronization adjustment between server and client. |
| DWC_MATCH_STATE_SV_CANCEL_SYN_WAIT | Currently waiting for matchmaking cancellation synchronization adjustment between server and client to complete. |
| DWC_MATCH_STATE_SV_SYN | Waiting for SYN-ACK related to matchmaking termination synchronization adjustment. |
| DWC_MATCH_STATE_SV_SYN_WAIT | Waiting for matchmaking termination synchronization adjustment to complete. |
| DWC_MATCH_STATE_WAIT_CLOSE | Waiting for connection to close. |
| DWC_MATCH_STATE_SEARCH_OWN | Searching for the local host's information (previously named DWC_MATCH_STATE_CL_SEARCH_OWN). |
| DWC_MATCH_STATE_SV_SYN_CLOSE_WAIT | The wait time after the CLOSE command is sent. |
| DWC_MATCH_STATE_NUM |
| DWC_MATCH_TYPE_ANYBODY | Peer matchmaking with friend unspecified. |
|---|---|
| DWC_MATCH_TYPE_FRIEND | Peer matchmaking with friend specified. |
| DWC_MATCH_TYPE_SC_SV | Server side of server-client matchmaking. |
| DWC_MATCH_TYPE_SC_CL | Client side of server-client matchmaking. |
| DWC_MATCH_TYPE_NUM |
| DWC_SUSPEND_SUCCESS | Function completed successfully. |
|---|---|
| DWC_SUSPEND_TIMEOUT | Timed out (not used at this time). |
| DWC_SUSPEND_NUM |
| DWC_TOPOLOGY_TYPE_HYBRID | Hybrid type |
|---|---|
| DWC_TOPOLOGY_TYPE_STAR | Star type |
| DWC_TOPOLOGY_TYPE_FULLMESH | Full-mesh type |
| DWC_TOPOLOGY_TYPE_NUM |
CONFIDENTIAL