84 p->lowspeed = lowspeed;
101 Notify(
PSTR(
"\r\nYou have plugged in a wireless Xbox 360 controller - it doesn't support USB communication"), 0x80);
106 Notify(
PSTR(
"\r\nThis library only supports Xbox 360 controllers via USB"), 0x80);
146 p->lowspeed = lowspeed;
182 Notify(
PSTR(
"\r\nXbox 360 Controller Connected\r\n"), 0x80);
216 Notify(
PSTR(
"\r\nXbox 360 Init Failed, error code: "), 0x80);
244void XBOXUSB::readReport() {
247 if(readBuf[0] != 0x00 || readBuf[1] != 0x14) {
261 if(ButtonState != OldButtonState) {
262 ButtonClickState = (ButtonState >> 16) & ((~OldButtonState) >> 16);
265 if((
uint8_t)(OldButtonState >> 8) == 0 && (
uint8_t)(ButtonState >> 8) != 0)
267 OldButtonState = ButtonState;
271void XBOXUSB::printReport() {
286 return (
uint8_t)(ButtonState >> 8);
320 pUsb->
ctrlReq(
bAddress,
epInfo[
XBOX_CONTROL_PIPE].epAddr,
bmREQ_HID_OUT,
HID_REQUEST_SET_REPORT, 0x00, 0x02, 0x00,
nbytes,
nbytes, data,
NULL);
328 XboxCommand(writeBuf, 3);
356 XboxCommand(writeBuf, 8);
359void XBOXUSB::onInit() {
#define USB_ERROR_OUT_OF_ADDRESS_SPACE_IN_POOL
#define USB_ERROR_CLASS_INSTANCE_ALREADY_IN_USE
#define USB_DEV_CONFIG_ERROR_DEVICE_NOT_SUPPORTED
#define USB_ERROR_EPINFO_IS_NULL
#define USB_ERROR_ADDRESS_NOT_FOUND_IN_POOL
#define XBOX_WIRELESS_PID
#define XBOX_WIRELESS_RECEIVER_PID
#define JOYTECH_WIRED_PID
#define GAMESTOP_WIRED_PID
#define XBOX_WIRELESS_RECEIVER_THIRD_PARTY_PID
#define MADCATZ_WIRED_PID
#define AFTERGLOW_WIRED_PID
#define XBOX_CONTROL_PIPE
#define XBOX_REPORT_BUFFER_SIZE
#define XBOX_MAX_ENDPOINTS
#define USB_NAK_MAX_POWER
virtual void FreeAddress(uint8_t addr)=0
virtual UsbDevice * GetUsbDevicePtr(uint8_t addr)=0
virtual uint8_t AllocAddress(uint8_t parent, bool is_hub=false, uint8_t port=0)=0
AddressPool & GetAddressPool()
uint8_t getDevDescr(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t *dataptr)
defined(USB_METHODS_INLINE)
uint8_t setConf(uint8_t addr, uint8_t ep, uint8_t conf_value)
uint8_t setAddr(uint8_t oldaddr, uint8_t ep, uint8_t newaddr)
uint8_t RegisterDeviceClass(USBDeviceConfig *pdev)
uint8_t ctrlReq(uint8_t addr, uint8_t ep, uint8_t bmReqType, uint8_t bRequest, uint8_t wValLo, uint8_t wValHi, uint16_t wInd, uint16_t total, uint16_t nbytes, uint8_t *dataptr, USBReadParser *p)
uint8_t setEpInfoEntry(uint8_t addr, uint8_t epcount, EpInfo *eprecord_ptr)
uint8_t inTransfer(uint8_t addr, uint8_t ep, uint16_t *nbytesptr, uint8_t *data, uint8_t bInterval=0)
void setLedMode(LEDModeEnum lm)
uint8_t getButtonPress(ButtonEnum b)
void setLedRaw(uint8_t value)
void setLedBlink(LEDEnum l)
bool getButtonClick(ButtonEnum b)
uint8_t Init(uint8_t parent, uint8_t port, bool lowspeed)
int16_t getAnalogHat(AnalogHatEnum a)
EpInfo epInfo[XBOX_MAX_ENDPOINTS]
void setRumbleOn(uint8_t lValue, uint8_t rValue)
constexpr int8_t ButtonIndex(ButtonEnum key)
#define NotifyFailSetConfDescr(...)
#define NotifyFailUnknownDevice(...)
#define NotifyFailSetDevTblEntry(...)
#define NotifyFailGetDevDescr(...)
#define USB_TRANSFER_TYPE_INTERRUPT
#define HID_REQUEST_SET_REPORT
#define pgm_read_byte(addr)
#define pgm_read_word(addr)
const uint8_t XBOX_LEDS[]
const uint16_t XBOX_BUTTONS[]
int8_t getButtonIndexXbox(ButtonEnum b)