30 #define XBOX_ONE_EP_MAXPKTSIZE 64 // Max size for data via USB
33 #define XBOX_ONE_CONTROL_PIPE 0
34 #define XBOX_ONE_OUTPUT_PIPE 1
35 #define XBOX_ONE_INPUT_PIPE 2
37 #define XBOX_ONE_MAX_ENDPOINTS 3
42 #define XBOX_VID1 0x045E // Microsoft Corporation
43 #define XBOX_ONE_PID1 0x02D1 // Microsoft X-Box One pad
44 #define XBOX_ONE_PID2 0x02DD // Microsoft X-Box One pad (Firmware 2015)
45 #define XBOX_ONE_PID3 0x02E3 // Microsoft X-Box One Elite pad
46 #define XBOX_ONE_PID4 0x02EA // Microsoft X-Box One S pad
47 #define XBOX_ONE_PID13 0x0B0A // Microsoft X-Box One Adaptive Controller
48 #define XBOX_ONE_PID14 0x0B12 // Microsoft X-Box Core Controller
51 #define XBOX_VID2 0x0738 // Mad Catz
52 #define XBOX_VID3 0x0E6F // Afterglow
53 #define XBOX_VID4 0x0F0D // HORIPAD ONE
54 #define XBOX_VID5 0x1532 // Razer
55 #define XBOX_VID6 0x24C6 // PowerA
57 #define XBOX_ONE_PID5 0x4A01 // Mad Catz FightStick TE 2 - might have different mapping for triggers?
58 #define XBOX_ONE_PID6 0x0139 // Afterglow Prismatic Wired Controller
59 #define XBOX_ONE_PID7 0x0146 // Rock Candy Wired Controller for Xbox One
60 #define XBOX_ONE_PID8 0x0067 // HORIPAD ONE
61 #define XBOX_ONE_PID9 0x0A03 // Razer Wildcat
62 #define XBOX_ONE_PID10 0x541A // PowerA Xbox One Mini Wired Controller
63 #define XBOX_ONE_PID11 0x542A // Xbox ONE spectra
64 #define XBOX_ONE_PID12 0x543A // PowerA Xbox One wired controller
83 virtual uint8_t
Init(uint8_t parent, uint8_t port,
bool lowspeed);
93 virtual uint8_t
Poll();
125 virtual bool VIDPIDOK(uint16_t vid, uint16_t pid) {
160 pFuncOnInit = funcOnInit;
173 void setRumbleOn(uint8_t leftTrigger, uint8_t rightTrigger, uint8_t leftMotor, uint8_t rightMotor);
218 void (*pFuncOnInit)(void);
220 uint8_t pollInterval;
224 uint16_t ButtonState;
225 uint16_t OldButtonState;
226 uint16_t ButtonClickState;
228 uint16_t triggerValue[2];
229 uint16_t triggerValueOld[2];
240 uint8_t XboxCommand(uint8_t* data, uint16_t nbytes);