You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
238 lines
6.6 KiB
238 lines
6.6 KiB
5 years ago
|
//========= Copyright Valve Corporation, All rights reserved. ============//
|
||
|
//
|
||
|
// Purpose: Win32 replacements for XBox.
|
||
|
//
|
||
|
//=============================================================================
|
||
|
|
||
|
#if !defined( XBOXSTUBS_H ) && !defined( _X360 )
|
||
|
#define XBOXSTUBS_H
|
||
|
|
||
|
#ifdef _WIN32
|
||
|
#pragma once
|
||
|
#endif
|
||
|
|
||
|
#include "tier0/platform.h"
|
||
|
|
||
|
// Content creation/open flags
|
||
|
#define XCONTENTFLAG_NONE 0x00
|
||
|
#define XCONTENTFLAG_CREATENEW 0x00
|
||
|
#define XCONTENTFLAG_CREATEALWAYS 0x00
|
||
|
#define XCONTENTFLAG_OPENEXISTING 0x00
|
||
|
#define XCONTENTFLAG_OPENALWAYS 0x00
|
||
|
#define XCONTENTFLAG_TRUNCATEEXISTING 0x00
|
||
|
|
||
|
// Content attributes
|
||
|
#define XCONTENTFLAG_NOPROFILE_TRANSFER 0x00
|
||
|
#define XCONTENTFLAG_NODEVICE_TRANSFER 0x00
|
||
|
#define XCONTENTFLAG_STRONG_SIGNED 0x00
|
||
|
#define XCONTENTFLAG_ALLOWPROFILE_TRANSFER 0x00
|
||
|
#define XCONTENTFLAG_MOVEONLY_TRANSFER 0x00
|
||
|
|
||
|
// Console device ports
|
||
|
#define XDEVICE_PORT0 0
|
||
|
#define XDEVICE_PORT1 1
|
||
|
#define XDEVICE_PORT2 2
|
||
|
#define XDEVICE_PORT3 3
|
||
|
#define XUSER_MAX_COUNT 4
|
||
|
#define XUSER_INDEX_NONE 0x000000FE
|
||
|
|
||
|
#define XBX_CLR_DEFAULT 0xFF000000
|
||
|
#define XBX_CLR_WARNING 0x0000FFFF
|
||
|
#define XBX_CLR_ERROR 0x000000FF
|
||
|
|
||
|
#define XBOX_MINBORDERSAFE 0
|
||
|
#define XBOX_MAXBORDERSAFE 0
|
||
|
|
||
|
typedef enum
|
||
|
{
|
||
|
XK_NULL,
|
||
|
XK_BUTTON_UP,
|
||
|
XK_BUTTON_DOWN,
|
||
|
XK_BUTTON_LEFT,
|
||
|
XK_BUTTON_RIGHT,
|
||
|
XK_BUTTON_START,
|
||
|
XK_BUTTON_BACK,
|
||
|
XK_BUTTON_STICK1,
|
||
|
XK_BUTTON_STICK2,
|
||
|
XK_BUTTON_A,
|
||
|
XK_BUTTON_B,
|
||
|
XK_BUTTON_X,
|
||
|
XK_BUTTON_Y,
|
||
|
XK_BUTTON_LEFT_SHOULDER,
|
||
|
XK_BUTTON_RIGHT_SHOULDER,
|
||
|
XK_BUTTON_LTRIGGER,
|
||
|
XK_BUTTON_RTRIGGER,
|
||
|
XK_STICK1_UP,
|
||
|
XK_STICK1_DOWN,
|
||
|
XK_STICK1_LEFT,
|
||
|
XK_STICK1_RIGHT,
|
||
|
XK_STICK2_UP,
|
||
|
XK_STICK2_DOWN,
|
||
|
XK_STICK2_LEFT,
|
||
|
XK_STICK2_RIGHT,
|
||
|
XK_MAX_KEYS,
|
||
|
} xKey_t;
|
||
|
|
||
|
//typedef enum
|
||
|
//{
|
||
|
// XVRB_NONE, // off
|
||
|
// XVRB_ERROR, // fatal error
|
||
|
// XVRB_ALWAYS, // no matter what
|
||
|
// XVRB_WARNING, // non-fatal warnings
|
||
|
// XVRB_STATUS, // status reports
|
||
|
// XVRB_ALL,
|
||
|
//} xverbose_e;
|
||
|
|
||
|
typedef unsigned short WORD;
|
||
|
#ifndef POSIX
|
||
|
typedef unsigned long DWORD;
|
||
|
typedef void* HANDLE;
|
||
|
typedef unsigned __int64 ULONGLONG;
|
||
|
#endif
|
||
|
|
||
|
#ifdef POSIX
|
||
|
typedef DWORD COLORREF;
|
||
|
#endif
|
||
|
|
||
|
#ifndef INVALID_HANDLE_VALUE
|
||
|
#define INVALID_HANDLE_VALUE ((HANDLE)-1)
|
||
|
#endif
|
||
|
|
||
|
// typedef struct {
|
||
|
// IN_ADDR ina; // IP address (zero if not static/DHCP)
|
||
|
// IN_ADDR inaOnline; // Online IP address (zero if not online)
|
||
|
// WORD wPortOnline; // Online port
|
||
|
// BYTE abEnet[6]; // Ethernet MAC address
|
||
|
// BYTE abOnline[20]; // Online identification
|
||
|
// } XNADDR;
|
||
|
|
||
|
typedef int XNADDR;
|
||
|
typedef uint64 XUID;
|
||
|
|
||
|
typedef struct {
|
||
|
BYTE ab[8]; // xbox to xbox key identifier
|
||
|
} XNKID;
|
||
|
|
||
|
typedef struct {
|
||
|
BYTE ab[16]; // xbox to xbox key exchange key
|
||
|
} XNKEY;
|
||
|
|
||
|
typedef struct _XSESSION_INFO
|
||
|
{
|
||
|
XNKID sessionID; // 8 bytes
|
||
|
XNADDR hostAddress; // 36 bytes
|
||
|
XNKEY keyExchangeKey; // 16 bytes
|
||
|
} XSESSION_INFO, *PXSESSION_INFO;
|
||
|
|
||
|
typedef struct _XUSER_DATA
|
||
|
{
|
||
|
BYTE type;
|
||
|
|
||
|
union
|
||
|
{
|
||
|
int nData; // XUSER_DATA_TYPE_INT32
|
||
|
int64 i64Data; // XUSER_DATA_TYPE_INT64
|
||
|
double dblData; // XUSER_DATA_TYPE_DOUBLE
|
||
|
struct // XUSER_DATA_TYPE_UNICODE
|
||
|
{
|
||
|
uint cbData; // Includes null-terminator
|
||
|
char * pwszData;
|
||
|
} string;
|
||
|
float fData; // XUSER_DATA_TYPE_FLOAT
|
||
|
struct // XUSER_DATA_TYPE_BINARY
|
||
|
{
|
||
|
uint cbData;
|
||
|
char * pbData;
|
||
|
} binary;
|
||
|
};
|
||
|
} XUSER_DATA, *PXUSER_DATA;
|
||
|
|
||
|
typedef struct _XUSER_PROPERTY
|
||
|
{
|
||
|
DWORD dwPropertyId;
|
||
|
XUSER_DATA value;
|
||
|
} XUSER_PROPERTY, *PXUSER_PROPERTY;
|
||
|
|
||
|
typedef struct _XUSER_CONTEXT
|
||
|
{
|
||
|
DWORD dwContextId;
|
||
|
DWORD dwValue;
|
||
|
} XUSER_CONTEXT, *PXUSER_CONTEXT;
|
||
|
|
||
|
typedef struct _XSESSION_SEARCHRESULT
|
||
|
{
|
||
|
XSESSION_INFO info;
|
||
|
DWORD dwOpenPublicSlots;
|
||
|
DWORD dwOpenPrivateSlots;
|
||
|
DWORD dwFilledPublicSlots;
|
||
|
DWORD dwFilledPrivateSlots;
|
||
|
DWORD cProperties;
|
||
|
DWORD cContexts;
|
||
|
PXUSER_PROPERTY pProperties;
|
||
|
PXUSER_CONTEXT pContexts;
|
||
|
} XSESSION_SEARCHRESULT, *PXSESSION_SEARCHRESULT;
|
||
|
|
||
|
typedef struct _XSESSION_SEARCHRESULT_HEADER
|
||
|
{
|
||
|
DWORD dwSearchResults;
|
||
|
XSESSION_SEARCHRESULT *pResults;
|
||
|
} XSESSION_SEARCHRESULT_HEADER, *PXSESSION_SEARCHRESULT_HEADER;
|
||
|
|
||
|
typedef struct _XSESSION_REGISTRANT
|
||
|
{
|
||
|
uint64 qwMachineID;
|
||
|
DWORD bTrustworthiness;
|
||
|
DWORD bNumUsers;
|
||
|
XUID *rgUsers;
|
||
|
|
||
|
} XSESSION_REGISTRANT;
|
||
|
|
||
|
typedef struct _XSESSION_REGISTRATION_RESULTS
|
||
|
{
|
||
|
DWORD wNumRegistrants;
|
||
|
XSESSION_REGISTRANT *rgRegistrants;
|
||
|
} XSESSION_REGISTRATION_RESULTS, *PXSESSION_REGISTRATION_RESULTS;
|
||
|
|
||
|
typedef struct {
|
||
|
BYTE bFlags;
|
||
|
BYTE bReserved;
|
||
|
WORD cProbesXmit;
|
||
|
WORD cProbesRecv;
|
||
|
WORD cbData;
|
||
|
BYTE * pbData;
|
||
|
WORD wRttMinInMsecs;
|
||
|
WORD wRttMedInMsecs;
|
||
|
DWORD dwUpBitsPerSec;
|
||
|
DWORD dwDnBitsPerSec;
|
||
|
} XNQOSINFO;
|
||
|
|
||
|
typedef struct {
|
||
|
uint cxnqos;
|
||
|
uint cxnqosPending;
|
||
|
XNQOSINFO axnqosinfo[1];
|
||
|
} XNQOS;
|
||
|
|
||
|
#define XSESSION_CREATE_HOST 0
|
||
|
#define XUSER_DATA_TYPE_INT32 0
|
||
|
#define XSESSION_CREATE_USES_ARBITRATION 0
|
||
|
#define XNET_QOS_LISTEN_ENABLE 0
|
||
|
#define XNET_QOS_LISTEN_DISABLE 0
|
||
|
#define XNET_QOS_LISTEN_SET_DATA 0
|
||
|
|
||
|
FORCEINLINE void XBX_ProcessEvents() {}
|
||
|
FORCEINLINE unsigned int XBX_GetSystemTime() { return 0; }
|
||
|
FORCEINLINE int XBX_GetPrimaryUserId() { return 0; }
|
||
|
FORCEINLINE void XBX_SetPrimaryUserId( DWORD idx ) {}
|
||
|
FORCEINLINE int XBX_GetStorageDeviceId() { return 0; }
|
||
|
FORCEINLINE void XBX_SetStorageDeviceId( DWORD idx ) {}
|
||
|
FORCEINLINE const char *XBX_GetLanguageString() { return ""; }
|
||
|
FORCEINLINE bool XBX_IsLocalized() { return false; }
|
||
|
|
||
|
#define XCONTENT_MAX_DISPLAYNAME_LENGTH 128
|
||
|
#define XCONTENT_MAX_FILENAME_LENGTH 42
|
||
|
|
||
|
#define XBX_INVALID_STORAGE_ID ((DWORD) -1)
|
||
|
#define XBX_STORAGE_DECLINED ((DWORD) -2)
|
||
|
|
||
|
#endif // XBOXSTUBS_H
|