91        p->lowspeed = lowspeed;
 
  102        PID = 
udd->idProduct;
 
  141        p->lowspeed = lowspeed;
 
  176        Notify(
PSTR(
"\r\nXbox One Controller Connected\r\n"), 0x80);
 
  189        rcode = XboxCommand(writeBuf, 5);
 
  231        Notify(
PSTR(
"\r\nXbox One Init Failed, error code: "), 0x80);
 
 
  261                pollInterval = 
pep->bInterval;
 
 
  269        Notify(
PSTR(
"\r\nEndpoint descriptor:"), 0x80);
 
 
  295        Notify(
PSTR(
"\r\nXbox One Controller Disconnected\r\n"), 0x80);
 
 
  322                        Notify(
PSTR(
"\r\nXbox One Poll Failed, error code: "), 0x80);
 
 
  330void XBOXONE::readReport() {
 
  331        if(readBuf[0] == 0x07) {
 
  338                if(ButtonState != OldButtonState) {
 
  339                    ButtonClickState = ButtonState & ~OldButtonState; 
 
  340                    OldButtonState = ButtonState;
 
  343        if(readBuf[0] != 0x20) { 
 
  353        ButtonState = 
xbox | (((
uint16_t)readBuf[5] & 0xF) << 8) | (readBuf[4] & 0xF0)  | (((
uint16_t)readBuf[4] & 0x0C) << 10) | ((readBuf[4] & 0x01) << 3) | (((
uint16_t)readBuf[5] & 0xC0) << 8) | ((readBuf[5] & 0x30) >> 4);
 
  364        const bool newShare = (readBuf[22] & 0x01) ? 1 : 0;
 
  371        if(ButtonState != OldButtonState) {
 
  372                ButtonClickState = ButtonState & ~OldButtonState; 
 
  373                OldButtonState = ButtonState;
 
  377        if(triggerValue[0] != 0 && triggerValueOld[0] == 0)
 
  379        triggerValueOld[0] = triggerValue[0];
 
  380        if(triggerValue[1] != 0 && triggerValueOld[1] == 0)
 
  382        triggerValueOld[1] = triggerValue[1];
 
  389        if (b == 
SHARE) 
return sharePressed;
 
  393                return triggerValue[0];
 
  395                return triggerValue[1];
 
 
  403                        shareClicked = 
false;
 
 
  435        data[2] = cmdCounter++; 
 
  439                Notify(
PSTR(
"\r\nXboxCommand failed. Return: "), 0x80);
 
  447void XBOXONE::onInit() {
 
  467        XboxCommand(writeBuf, 13);
 
  492        XboxCommand(writeBuf, 13);
 
 
  507        writeBuf[6] = leftTrigger; 
 
  508        writeBuf[7] = rightTrigger; 
 
  514        XboxCommand(writeBuf, 13);
 
 
#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_ONE_OUTPUT_PIPE
 
#define XBOX_ONE_MAX_ENDPOINTS
 
#define XBOX_ONE_CONTROL_PIPE
 
#define XBOX_ONE_INPUT_PIPE
 
#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 getConfDescr(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t conf, uint8_t *dataptr)
 
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)
 
uint8_t outTransfer(uint8_t addr, uint8_t ep, uint16_t nbytes, uint8_t *data)
 
EpInfo epInfo[XBOX_ONE_MAX_ENDPOINTS]
 
void PrintEndpointDescriptor(const USB_ENDPOINT_DESCRIPTOR *ep_ptr)
 
void EndpointXtract(uint8_t conf, uint8_t iface, uint8_t alt, uint8_t proto, const USB_ENDPOINT_DESCRIPTOR *ep)
 
virtual bool VIDPIDOK(uint16_t vid, uint16_t pid)
 
void setRumbleOn(uint8_t leftTrigger, uint8_t rightTrigger, uint8_t leftMotor, uint8_t rightMotor)
 
bool getButtonClick(ButtonEnum b)
 
virtual uint8_t Release()
 
uint16_t getButtonPress(ButtonEnum b)
 
virtual uint8_t Init(uint8_t parent, uint8_t port, bool lowspeed)
 
int16_t getAnalogHat(AnalogHatEnum a)
 
constexpr int8_t ButtonIndex(ButtonEnum key)
 
#define NotifyFailSetConfDescr(...)
 
#define NotifyFailUnknownDevice(...)
 
#define NotifyFailGetConfDescr(...)
 
#define NotifyFailSetDevTblEntry(...)
 
#define NotifyFailGetDevDescr(...)
 
#define bmUSB_TRANSFER_TYPE
 
#define USB_TRANSFER_TYPE_INTERRUPT
 
#define pgm_read_word(addr)
 
const uint16_t XBOX_BUTTONS[]
 
int8_t getButtonIndexXbox(ButtonEnum b)