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 */ | 
