//========= Copyright © 1996-2004, Valve LLC, All rights reserved. ============ // // Purpose: Win32 replacements for Xbox code // //============================================================================= #ifndef PS3STUBS_H #define PS3STUBS_H #include "ps3_platform.h" #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 #define XDEVICE_TYPE_GAMEPAD 0 #define XDEVICE_TYPE_MEMORY_UNIT 1 #define XDEVICE_TYPE_VOICE_MICROPHONE 2 #define XDEVICE_TYPE_VOICE_HEADPHONE 3 #define XDEVICE_TYPE_HIGHFIDELITY_MICROPHONE 4 // Constants for gamepad buttons #define XINPUT_GAMEPAD_DPAD_UP 0x0001 #define XINPUT_GAMEPAD_DPAD_DOWN 0x0002 #define XINPUT_GAMEPAD_DPAD_LEFT 0x0004 #define XINPUT_GAMEPAD_DPAD_RIGHT 0x0008 #define XINPUT_GAMEPAD_START 0x0010 #define XINPUT_GAMEPAD_BACK 0x0020 #define XINPUT_GAMEPAD_LEFT_THUMB 0x0040 #define XINPUT_GAMEPAD_RIGHT_THUMB 0x0080 #define XINPUT_GAMEPAD_LEFT_SHOULDER 0x0100 // AG - Shoudler buttons should correspond to BLACK and WHITE in xboxStubs.h, but they don't seem to have proper bitfield values #define XINPUT_GAMEPAD_RIGHT_SHOULDER 0x0200 #define XINPUT_GAMEPAD_LEFT_TRIGGER 0x0400 #define XINPUT_GAMEPAD_RIGHT_TRIGGER 0x0800 #define XINPUT_GAMEPAD_A 0x1000 #define XINPUT_GAMEPAD_B 0x2000 #define XINPUT_GAMEPAD_X 0x4000 #define XINPUT_GAMEPAD_Y 0x8000 #define XINPUT_LIGHTGUN_ONSCREEN 0x2000 #define XINPUT_LIGHTGUN_FRAME_DOUBLER 0x4000 #define XINPUT_LIGHTGUN_LINE_DOUBLER 0x8000 //#define XINPUT_GAMEPAD_LEFT_TRIGGER 6 //#define XINPUT_GAMEPAD_RIGHT_TRIGGER 7 #define XDEVICE_PORT0 0 #define XDEVICE_PORT1 1 #define XDEVICE_PORT2 2 #define XDEVICE_PORT3 3 #ifdef CONTROLLER2_CHEATS_ENABLED #define XBX_MAX_DPORTS 2 #else #define XBX_MAX_DPORTS 1 #endif // CONTROLLER2_CHEATS_ENABLED #define XDEVICE_NO_SLOT 0 #define XDEVICE_TOP_SLOT 0 #define XDEVICE_BOTTOM_SLOT 1 #define CLR_DEFAULT 0xFF000000 #define CLR_WARNING 0x0000FFFF #define CLR_ERROR 0x000000FF // Device types available in XINPUT_CAPABILITIES #define XINPUT_DEVTYPE_GAMEPAD 0x01 #define XINPUT_DEVTYPE_USB_KEYBOARD 0x02 // Device subtypes available in XINPUT_CAPABILITIES #define XINPUT_DEVSUBTYPE_UNKNOWN 0x00 #define XINPUT_DEVSUBTYPE_GAMEPAD 0x01 #define XINPUT_DEVSUBTYPE_WHEEL 0x02 #define XINPUT_DEVSUBTYPE_ARCADE_STICK 0x03 #define XINPUT_DEVSUBTYPE_FLIGHT_STICK 0x04 #define XINPUT_DEVSUBTYPE_DANCEPAD 0x05 // Flags for XINPUT_CAPABILITIES #define XINPUT_CAPS_FFB_SUPPORTED 0x0001 #define XINPUT_CAPS_WIRELESS 0x0002 #define XINPUT_CAPS_VOICE_SUPPORTED 0x0004 #define XINPUT_CAPS_PMD_SUPPORTED 0x0008 // Flags for XInputGetCapabilities #define XINPUT_FLAG_GAMEPAD 0x00000001 #define XINPUT_FLAG_KEYBOARD 0x00000002 #define XINPUT_FLAG_REMOTE 0x00000004 #define XINPUT_FLAG_ANYDEVICE 0x000000FF // Gamepad thresholds #define XINPUT_GAMEPAD_LEFT_THUMB_DEADZONE 7849 #define XINPUT_GAMEPAD_RIGHT_THUMB_DEADZONE 8689 #define XINPUT_GAMEPAD_TRIGGER_THRESHOLD 30 // Wind // Structures used by XInput APIs typedef struct _XINPUT_GAMEPAD { WORD wButtons; BYTE bLeftTrigger; BYTE bRightTrigger; short sThumbLX; short sThumbLY; short sThumbRX; short sThumbRY; } XINPUT_GAMEPAD, *PXINPUT_GAMEPAD; typedef struct _XINPUT_STATE { DWORD dwPacketNumber; XINPUT_GAMEPAD Gamepad; } XINPUT_STATE, *PXINPUT_STATE; typedef struct _XINPUT_VIBRATION { WORD wLeftMotorSpeed; WORD wRightMotorSpeed; } XINPUT_VIBRATION, *PXINPUT_VIBRATION; typedef struct _XINPUT_CAPABILITIES { BYTE Type; BYTE SubType; WORD Flags; XINPUT_GAMEPAD Gamepad; XINPUT_VIBRATION Vibration; } XINPUT_CAPABILITIES, *PXINPUT_CAPABILITIES; //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_BLACK, // XK_BUTTON_WHITE, // 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 struct _XINPUT_RUMBLE { WORD wLeftMotorSpeed; WORD wRightMotorSpeed; } XINPUT_RUMBLE, *PXINPUT_RUMBLE; #define XINPUT_FEEDBACK_HEADER_INTERNAL_SIZE 58 typedef struct _XINPUT_FEEDBACK_HEADER { DWORD dwStatus; void* hEvent; BYTE Reserved[XINPUT_FEEDBACK_HEADER_INTERNAL_SIZE]; } XINPUT_FEEDBACK_HEADER, *PXINPUT_FEEDBACK_HEADER; typedef struct _XINPUT_FEEDBACK { XINPUT_FEEDBACK_HEADER Header; union { XINPUT_RUMBLE Rumble; }; } XINPUT_FEEDBACK, *PXINPUT_FEEDBACK; //typedef struct _XINPUT_GAMEPAD //{ // WORD wButtons; // BYTE bAnalogButtons[8]; // short sThumbLX; // short sThumbLY; // short sThumbRX; // short sThumbRY; //} XINPUT_GAMEPAD, *PXINPUT_GAMEPAD; typedef struct _XPP_DEVICE_TYPE { unsigned long Reserved[3]; } XPP_DEVICE_TYPE, *PXPP_DEVICE_TYPE; typedef struct _XDEVICE_PREALLOC_TYPE { PXPP_DEVICE_TYPE DeviceType; DWORD dwPreallocCount; } XDEVICE_PREALLOC_TYPE, *PXDEVICE_PREALLOC_TYPE; //typedef struct _XINPUT_STATE //{ // DWORD dwPacketNumber; // XINPUT_GAMEPAD Gamepad; //} XINPUT_STATE, *PXINPUT_STATE; typedef struct _XINPUT_POLLING_PARAMETERS { BYTE fAutoPoll:1; BYTE fInterruptOut:1; BYTE ReservedMBZ1:6; BYTE bInputInterval; BYTE bOutputInterval; BYTE ReservedMBZ2; } XINPUT_POLLING_PARAMETERS, *PXINPUT_POLLING_PARAMETERS; /*EAPS3 void XBX_DebugString(xverbose_e verbose, COLORREF color, const char* format, ...); void XBX_ProcessEvents(void); void XInitDevices(DWORD dwPreallocTypeCount, PXDEVICE_PREALLOC_TYPE PreallocTypes); DWORD XGetDevices(PXPP_DEVICE_TYPE DeviceType); bool XGetDeviceChanges(PXPP_DEVICE_TYPE DeviceType, DWORD *pdwInsertions, DWORD *pdwRemovals); HANDLE XInputOpen(PXPP_DEVICE_TYPE DeviceType, DWORD dwPort, DWORD dwSlot, PXINPUT_POLLING_PARAMETERS pPollingParameters); void XInputClose(HANDLE hDevice); DWORD XInputSetState(HANDLE hDevice, PXINPUT_FEEDBACK pFeedback); DWORD XInputGetState(HANDLE hDevice, PXINPUT_STATE pState); DWORD XInputPoll(HANDLE hDevice); unsigned int XBX_GetSystemTime(void); */ #endif // XBOXSTUBS_H