25 #define EP_MAXPKTSIZE 32 // max size for data via USB
28 #define EP_INTERRUPT 0x03
31 #define XBOX_CONTROL_PIPE 0
32 #define XBOX_INPUT_PIPE 1
33 #define XBOX_OUTPUT_PIPE 2
36 #define XBOX_VID 0x045E // Microsoft Corporation
37 #define MADCATZ_VID 0x1BAD // For unofficial Mad Catz controllers
38 #define JOYTECH_VID 0x162E // For unofficial Joytech controllers
39 #define GAMESTOP_VID 0x0E6F // Gamestop controller
41 #define XBOX_WIRED_PID 0x028E // Microsoft 360 Wired controller
42 #define XBOX_WIRELESS_PID 0x028F // Wireless controller only support charging
43 #define XBOX_WIRELESS_RECEIVER_PID 0x0719 // Microsoft Wireless Gaming Receiver
44 #define XBOX_WIRELESS_RECEIVER_THIRD_PARTY_PID 0x0291 // Third party Wireless Gaming Receiver
45 #define MADCATZ_WIRED_PID 0xF016 // Mad Catz wired controller
46 #define GAMESTOP_WIRED_PID 0x0401 // Gamestop wired controller
48 #define XBOX_REPORT_BUFFER_SIZE 14 // Size of the input report buffer
51 #define bmREQ_HID_OUT USB_SETUP_HOST_TO_DEVICE|USB_SETUP_TYPE_CLASS|USB_SETUP_RECIPIENT_INTERFACE
52 #define HID_REQUEST_SET_REPORT 0x09
54 #define XBOX_MAX_ENDPOINTS 3
73 virtual uint8_t
Init(uint8_t parent, uint8_t port,
bool lowspeed);
83 virtual uint8_t
Poll();
107 virtual boolean VIDPIDOK(uint16_t vid, uint16_t pid) {
184 pFuncOnInit = funcOnInit;
206 void (*pFuncOnInit)(void);
211 uint32_t ButtonState;
212 uint32_t OldButtonState;
213 uint16_t ButtonClickState;
215 uint16_t controllerStatus;
227 void XboxCommand(uint8_t* data, uint16_t nbytes);
#define XBOX_MAX_ENDPOINTS
virtual uint8_t Init(uint8_t parent, uint8_t port, bool lowspeed)
int16_t getAnalogHat(AnalogHatEnum a)
void setLedBlink(LEDEnum l)
void attachOnInit(void(*funcOnInit)(void))
uint8_t getButtonPress(ButtonEnum b)
void setRumbleOn(uint8_t lValue, uint8_t rValue)
virtual uint8_t GetAddress()
bool getButtonClick(ButtonEnum b)
virtual boolean VIDPIDOK(uint16_t vid, uint16_t pid)
void setLedRaw(uint8_t value)
void setLedMode(LEDModeEnum lm)
#define MADCATZ_WIRED_PID
virtual uint8_t Release()
EpInfo epInfo[XBOX_MAX_ENDPOINTS]
#define GAMESTOP_WIRED_PID