diff options
author | HampusM <hampus@hampusmat.com> | 2022-03-07 13:48:57 +0100 |
---|---|---|
committer | HampusM <hampus@hampusmat.com> | 2022-03-07 13:48:57 +0100 |
commit | 563f69b870a7f71026c50605b531ed40d667b0a2 (patch) | |
tree | f9dd8374cae6affb3b52d79e22823c78187b99ed /cores/arduino/xinput | |
parent | f4a2dc0440d17e4c9e609e01e12fcd786d268cf7 (diff) |
Diffstat (limited to 'cores/arduino/xinput')
-rw-r--r-- | cores/arduino/xinput/USB_XInput_API.cpp | 57 | ||||
-rw-r--r-- | cores/arduino/xinput/USB_XInput_API.h | 51 | ||||
-rw-r--r-- | cores/arduino/xinput/USB_XInput_Descriptors.cpp | 210 | ||||
-rw-r--r-- | cores/arduino/xinput/USB_XInput_Descriptors.h | 53 |
4 files changed, 0 insertions, 371 deletions
diff --git a/cores/arduino/xinput/USB_XInput_API.cpp b/cores/arduino/xinput/USB_XInput_API.cpp deleted file mode 100644 index ffd818c..0000000 --- a/cores/arduino/xinput/USB_XInput_API.cpp +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Project Arduino XInput - AVR Core - * @author David Madison - * @link github.com/dmadison/ArduinoXInput_AVR - * @license MIT - Copyright (c) 2019 David Madison - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - */ - -#include "USB_XInput_API.h" - -#ifdef USB_XINPUT - -void (*XInputUSB::RecvCallback)(void) = nullptr; - -boolean XInputUSB::connected() { - return USBDevice.configured(); -} - -uint8_t XInputUSB::available() { - return USB_Available(XINPUT_RX_ENDPOINT); -} - -int XInputUSB::recv(void *buffer, uint8_t nbytes) { - return USB_Recv(XINPUT_RX_ENDPOINT, buffer, nbytes); -} - -int XInputUSB::send(const void *buffer, uint8_t nbytes) { - int result = USB_Send(XINPUT_TX_ENDPOINT, buffer, nbytes); - if (result > 0) { - USB_Flush(XINPUT_TX_ENDPOINT); - } - return result; -} - -void XInputUSB::setRecvCallback(void(*callback)(void)) { - XInputUSB::RecvCallback = callback; -} - -#endif /* ifdef USB_XINPUT */ diff --git a/cores/arduino/xinput/USB_XInput_API.h b/cores/arduino/xinput/USB_XInput_API.h deleted file mode 100644 index 11fa100..0000000 --- a/cores/arduino/xinput/USB_XInput_API.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Project Arduino XInput - AVR Core - * @author David Madison - * @link github.com/dmadison/ArduinoXInput_AVR - * @license MIT - Copyright (c) 2019 David Madison - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - */ - -#include "USBAPI.h" - -#ifndef USB_XINPUT_API_H -#define USB_XINPUT_API_H - -#ifdef USBCON - -#define USB_XINPUT - -class XInputUSB { -public: - // API - static bool connected(void); - static uint8_t available(void); - static int send(const void *buffer, uint8_t nbytes); - static int recv(void *buffer, uint8_t nbytes); - static void setRecvCallback(void(*callback)(void)); - - // Non-API Data - static void (*RecvCallback)(void); -}; - -#endif /* if defined(USBCON) */ - -#endif /* ifndef USB_XINPUT_API_H */ diff --git a/cores/arduino/xinput/USB_XInput_Descriptors.cpp b/cores/arduino/xinput/USB_XInput_Descriptors.cpp deleted file mode 100644 index f57c700..0000000 --- a/cores/arduino/xinput/USB_XInput_Descriptors.cpp +++ /dev/null @@ -1,210 +0,0 @@ -/* - * Project Arduino XInput - AVR Core - * @author David Madison - * @link github.com/dmadison/ArduinoXInput_AVR - * @license MIT - Copyright (c) 2019 David Madison - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - */ - -#include "USB_XInput_Descriptors.h" - -#if defined(USBCON) - -const DeviceDescriptor USB_DeviceDescriptor = { - 0x12, // bLength (18) - 0x01, // bDescriptorType (DEVICE) - USB_VERSION, // bcdUSB (2.0) - 0xFF, // bDeviceClass - 0xFF, // bDeviceSubClass - 0xFF, // bDeviceProtocol - 0x40, // bMaxPacketSize0 - USB_VID, // idEVendor - USB_PID, // idProduct - 0x114, // bcdDevice - IMANUFACTURER, // iManufacturer - IPRODUCT, // iProduct - ISERIAL, // iSerialNumber - 0x01, // bNumConfigurations -}; - -const u8 USB_ConfigDescriptor[] = { - // Configuration Descriptor - 0x09, // bLength - 0x02, // bDescriptorType (CONFIGURATION) - 0x99, 0x00, // wTotalLength (153) - 0x04, // bNumInterfaces - 0x01, // bConfigurationValue - 0x00, // iConfiguration - 0xA0, // bmAttributes - 0xFA, // bMaxPower - - /* ---------------------------------------------------- */ - // Interface 0: Control Data - 0x09, // bLength - 0x04, // bDescriptorType (INTERFACE) - 0x00, // bInterfaceNumber - 0x00, // bAlternateSetting - 0x02, // bNumEndpoints - 0xFF, // bInterfaceClass - 0x5D, // bInterfaceSubClass - 0x01, // bInterfaceProtocol - 0x00, // iInterface - - // Unknown Descriptor (If0) - 0x11, // bLength - 0x21, // bDescriptorType - 0x00, 0x01, 0x01, 0x25, // ??? - 0x81, // bEndpointAddress (IN, 1) - 0x14, // bMaxDataSize - 0x00, 0x00, 0x00, 0x00, 0x13, // ??? - 0x02, // bEndpointAddress (OUT, 2) - 0x08, // bMaxDataSize - 0x00, 0x00, // ??? - - // Endpoint 1: Control Surface Send - 0x07, // bLength - 0x05, // bDescriptorType (ENDPOINT) - 0x81, // bEndpointAddress (IN, 1) - 0x03, // bmAttributes - 0x20, 0x00, // wMaxPacketSize - 0x04, // bInterval - - // Endpoint 1: Control Surface Receive - 0x07, // bLength - 0x05, // bDescriptorType (ENDPOINT) - 0x02, // bEndpointAddress (OUT, 2) - 0x03, // bmAttributes - 0x20, 0x00, // wMaxPacketSize - 0x08, // bInterval - - /* ---------------------------------------------------- */ - // Interface 1: Headset (and Expansion Port?) - 0x09, // bLength - 0x04, // bDescriptorType (INTERFACE) - 0x01, // bInterfaceNumber - 0x00, // bAlternateSetting - 0x04, // bNumEndpoints - 0xFF, // bInterfaceClass - 0x5D, // bInterfaceSubClass - 0x03, // bInterfaceProtocol - 0x00, // iInterface - - // Unknown Descriptor (If1) - 0x1B, // bLength - 0x21, // bDescriptorType - 0x00, 0x01, 0x01, 0x01, // ??? - 0x83, // bEndpointAddress (IN, 3) - 0x40, // bMaxDataSize - 0x01, // ??? - 0x04, // bEndpointAddress (OUT, 4) - 0x20, // bMaxDataSize - 0x16, // ??? - 0x85, // bEndpointAddress (IN, 5) - 0x00, // bMaxDataSize - 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, // ??? - 0x05, // bEndpointAddress (OUT, 5) - 0x00, // bMaxDataSize - 0x00, 0x00, 0x00, 0x00, 0x00, // ??? - - // Endpoint 2: Microphone Data Send - 0x07, // bLength - 0x05, // bDescriptorType (ENDPOINT) - 0x83, // bEndpointAddress (IN, 3) - 0x03, // bmAttributes - 0x20, 0x00, // wMaxPacketSize - 0x02, // bInterval - - // Endpoint 2: Headset Audio Receive - 0x07, // bLength - 0x05, // bDescriptorType (ENDPOINT) - 0x04, // bEndpointAddress (OUT, 4) - 0x03, // bmAttributes - 0x20, 0x00, // wMaxPacketSize - 0x04, // bInterval - - // Endpoint 3: Unknown, Send - 0x07, // bLength - 0x05, // bDescriptorType (ENDPOINT) - 0x85, // bEndpointAddress (IN, 5) - 0x03, // bmAttributes - 0x20, 0x00, // wMaxPacketSize - 0x40, // bInterval - - // Endpoint 3: Unknown, Receive - 0x07, // bLength - 0x05, // bDescriptorType (ENDPOINT) - 0x05, // bEndpointAddress (OUT, 5) - 0x03, // bmAttributes - 0x20, 0x00, // wMaxPacketSize - 0x10, // bInterval - - /* ---------------------------------------------------- */ - // Interface 2: Unknown - 0x09, // bLength - 0x04, // bDescriptorType (INTERFACE) - 0x02, // bInterfaceNumber - 0x00, // bAlternateSetting - 0x01, // bNumEndpoints - 0xFF, // bInterfaceClass - 0x5D, // bInterfaceSubClass - 0x02, // bInterfaceProtocol - 0x00, // iInterface - - // Unknown Descriptor (If2) - 0x09, // bLength - 0x21, // bDescriptorType - 0x00, 0x01, 0x01, 0x22, // ??? - 0x86, // bEndpointAddress (IN, 6) - 0x07, // bMaxDataSize - 0x00, // ??? - - // Endpoint 4: Unknown, Send - 0x07, // bLength - 0x05, // bDescriptorType (ENDPOINT) - 0x86, // bEndpointAddress (IN, 6) - 0x03, // bmAttributes - 0x20, 0x00, // wMaxPacketSize - 0x10, // bInterval - - /* ---------------------------------------------------- */ - // Interface 3: Security Method - 0x09, // bLength - 0x04, // bDescriptorType (INTERFACE) - 0x03, // bInterfaceNumber - 0x00, // bAlternateSetting - 0x00, // bNumEndpoints - 0xFF, // bInterfaceClass - 0xFD, // bInterfaceSubClass - 0x13, // bInterfaceProtocol - 0x04, // iInterface - - // Unknown Descriptor (If3) - 0x06, // bLength - 0x41, // bDescriptorType - 0x00, 0x01, 0x01, 0x03, // ??? -}; - -const u16 USB_ConfigDescriptorSize = sizeof(USB_ConfigDescriptor); - -const u8 STRING_SERIAL[] = "Arduino XInput AVR"; -const u8 STRING_SECURITY[] = "Xbox Security Method 3, Version 1.00, \xA9 2005 Microsoft Corporation. All rights reserved."; - -#endif /* if defined(USBCON) */ diff --git a/cores/arduino/xinput/USB_XInput_Descriptors.h b/cores/arduino/xinput/USB_XInput_Descriptors.h deleted file mode 100644 index 976fe56..0000000 --- a/cores/arduino/xinput/USB_XInput_Descriptors.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Project Arduino XInput - AVR Core - * @author David Madison - * @link github.com/dmadison/ArduinoXInput_AVR - * @license MIT - Copyright (c) 2019 David Madison - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - * - */ - -#include "USBAPI.h" - -#ifndef USB_XINPUT_DESCRIPTORS_H -#define USB_XINPUT_DESCRIPTORS_H - -#if defined(USBCON) - -// Device Descriptor -extern const DeviceDescriptor USB_DeviceDescriptor PROGMEM; - -// Config Descriptor -extern const u8 USB_ConfigDescriptor[] PROGMEM; -extern const u16 USB_ConfigDescriptorSize PROGMEM; - -// String Descriptors -extern const u8 STRING_SERIAL[] PROGMEM; -extern const u8 STRING_SECURITY[] PROGMEM; - -#define ISECURITY 4 - -// Endpoint Numbers -#define XINPUT_TX_ENDPOINT 1 -#define XINPUT_RX_ENDPOINT 2 - -#endif /* if defined(USBCON) */ - -#endif /* ifndef USB_XINPUT_DESCRIPTORS_H */ |