|
@@ -28,7 +28,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
#include "vusb.h"
|
|
|
#include <util/delay.h>
|
|
|
|
|
|
-#if defined(RAW_ENABLE)
|
|
|
+#ifdef RAW_ENABLE
|
|
|
# include "raw_hid.h"
|
|
|
#endif
|
|
|
|
|
@@ -158,7 +158,7 @@ typedef struct {
|
|
|
} __attribute__((packed)) vusb_mouse_report_t;
|
|
|
|
|
|
static void send_mouse(report_mouse_t *report) {
|
|
|
-#if defined(MOUSE_ENABLE)
|
|
|
+#ifdef MOUSE_ENABLE
|
|
|
vusb_mouse_report_t r = {.report_id = REPORT_ID_MOUSE, .report = *report};
|
|
|
if (usbInterruptIsReady3()) {
|
|
|
usbSetInterrupt3((void *)&r, sizeof(vusb_mouse_report_t));
|
|
@@ -410,7 +410,7 @@ const PROGMEM uchar mouse_extra_hid_report[] = {
|
|
|
};
|
|
|
#endif
|
|
|
|
|
|
-#if defined(RAW_ENABLE)
|
|
|
+#ifdef RAW_ENABLE
|
|
|
const PROGMEM uchar raw_hid_report[] = {
|
|
|
0x06, 0x60, 0xFF, // Usage Page (Vendor Defined)
|
|
|
0x09, 0x61, // Usage (Vendor Defined)
|
|
@@ -479,7 +479,6 @@ const PROGMEM usbStringDescriptor_t usbStringDescriptorSerial = {
|
|
|
.bString = LSTR(SERIAL_NUMBER)
|
|
|
};
|
|
|
|
|
|
-#if USB_CFG_DESCR_PROPS_DEVICE
|
|
|
/*
|
|
|
* Device descriptor
|
|
|
*/
|
|
@@ -489,8 +488,8 @@ const PROGMEM usbDeviceDescriptor_t usbDeviceDescriptor = {
|
|
|
.bDescriptorType = USBDESCR_DEVICE
|
|
|
},
|
|
|
.bcdUSB = 0x0110,
|
|
|
- .bDeviceClass = USB_CFG_DEVICE_CLASS,
|
|
|
- .bDeviceSubClass = USB_CFG_DEVICE_SUBCLASS,
|
|
|
+ .bDeviceClass = 0x00,
|
|
|
+ .bDeviceSubClass = 0x00,
|
|
|
.bDeviceProtocol = 0x00,
|
|
|
.bMaxPacketSize0 = 8,
|
|
|
.idVendor = VENDOR_ID,
|
|
@@ -501,9 +500,7 @@ const PROGMEM usbDeviceDescriptor_t usbDeviceDescriptor = {
|
|
|
.iSerialNumber = 0x03,
|
|
|
.bNumConfigurations = 1
|
|
|
};
|
|
|
-#endif
|
|
|
|
|
|
-#if USB_CFG_DESCR_PROPS_CONFIGURATION
|
|
|
/*
|
|
|
* Configuration descriptors
|
|
|
*/
|
|
@@ -535,10 +532,10 @@ const PROGMEM usbConfigurationDescriptor_t usbConfigurationDescriptor = {
|
|
|
},
|
|
|
.bInterfaceNumber = 0,
|
|
|
.bAlternateSetting = 0x00,
|
|
|
- .bNumEndpoints = USB_CFG_HAVE_INTRIN_ENDPOINT,
|
|
|
- .bInterfaceClass = USB_CFG_INTERFACE_CLASS,
|
|
|
- .bInterfaceSubClass = USB_CFG_INTERFACE_SUBCLASS,
|
|
|
- .bInterfaceProtocol = USB_CFG_INTERFACE_PROTOCOL,
|
|
|
+ .bNumEndpoints = 1,
|
|
|
+ .bInterfaceClass = 0x03,
|
|
|
+ .bInterfaceSubClass = 0x01,
|
|
|
+ .bInterfaceProtocol = 0x01,
|
|
|
.iInterface = 0x00
|
|
|
},
|
|
|
.keyboardHID = {
|
|
@@ -552,7 +549,6 @@ const PROGMEM usbConfigurationDescriptor_t usbConfigurationDescriptor = {
|
|
|
.bDescriptorType = USBDESCR_HID_REPORT,
|
|
|
.wDescriptorLength = sizeof(keyboard_hid_report)
|
|
|
},
|
|
|
-# ifdef USB_CFG_HAVE_INTRIN_ENDPOINT
|
|
|
.keyboardINEndpoint = {
|
|
|
.header = {
|
|
|
.bLength = sizeof(usbEndpointDescriptor_t),
|
|
@@ -563,7 +559,6 @@ const PROGMEM usbConfigurationDescriptor_t usbConfigurationDescriptor = {
|
|
|
.wMaxPacketSize = 8,
|
|
|
.bInterval = USB_POLLING_INTERVAL_MS
|
|
|
},
|
|
|
-# endif
|
|
|
|
|
|
# if defined(MOUSE_ENABLE) || defined(EXTRAKEY_ENABLE)
|
|
|
/*
|
|
@@ -576,7 +571,7 @@ const PROGMEM usbConfigurationDescriptor_t usbConfigurationDescriptor = {
|
|
|
},
|
|
|
.bInterfaceNumber = 1,
|
|
|
.bAlternateSetting = 0x00,
|
|
|
- .bNumEndpoints = USB_CFG_HAVE_INTRIN_ENDPOINT3,
|
|
|
+ .bNumEndpoints = 1,
|
|
|
.bInterfaceClass = 0x03,
|
|
|
.bInterfaceSubClass = 0x00,
|
|
|
.bInterfaceProtocol = 0x00,
|
|
@@ -593,7 +588,6 @@ const PROGMEM usbConfigurationDescriptor_t usbConfigurationDescriptor = {
|
|
|
.bDescriptorType = USBDESCR_HID_REPORT,
|
|
|
.wDescriptorLength = sizeof(mouse_extra_hid_report)
|
|
|
},
|
|
|
-# if USB_CFG_HAVE_INTRIN_ENDPOINT3
|
|
|
.mouseExtraINEndpoint = {
|
|
|
.header = {
|
|
|
.bLength = sizeof(usbEndpointDescriptor_t),
|
|
@@ -604,7 +598,6 @@ const PROGMEM usbConfigurationDescriptor_t usbConfigurationDescriptor = {
|
|
|
.wMaxPacketSize = 8,
|
|
|
.bInterval = USB_POLLING_INTERVAL_MS
|
|
|
}
|
|
|
-# endif
|
|
|
# elif defined(RAW_ENABLE)
|
|
|
.rawInterface = {
|
|
|
.header = {
|
|
@@ -630,7 +623,6 @@ const PROGMEM usbConfigurationDescriptor_t usbConfigurationDescriptor = {
|
|
|
.bDescriptorType = USBDESCR_HID_REPORT,
|
|
|
.wDescriptorLength = sizeof(raw_hid_report)
|
|
|
},
|
|
|
-# if USB_CFG_HAVE_INTRIN_ENDPOINT3
|
|
|
.rawINEndpoint = {
|
|
|
.header = {
|
|
|
.bLength = sizeof(usbEndpointDescriptor_t),
|
|
@@ -651,10 +643,8 @@ const PROGMEM usbConfigurationDescriptor_t usbConfigurationDescriptor = {
|
|
|
.wMaxPacketSize = RAW_EPSIZE,
|
|
|
.bInterval = USB_POLLING_INTERVAL_MS
|
|
|
}
|
|
|
-# endif
|
|
|
# endif
|
|
|
};
|
|
|
-#endif
|
|
|
|
|
|
// clang-format on
|
|
|
|
|
@@ -670,18 +660,14 @@ USB_PUBLIC usbMsgLen_t usbFunctionDescriptor(struct usbRequest *rq) {
|
|
|
debug_hex16(rq->wLength.word); debug("\n");
|
|
|
*/
|
|
|
switch (rq->wValue.bytes[1]) {
|
|
|
-#if USB_CFG_DESCR_PROPS_DEVICE
|
|
|
case USBDESCR_DEVICE:
|
|
|
usbMsgPtr = (unsigned char *)&usbDeviceDescriptor;
|
|
|
len = sizeof(usbDeviceDescriptor_t);
|
|
|
break;
|
|
|
-#endif
|
|
|
-#if USB_CFG_DESCR_PROPS_CONFIGURATION
|
|
|
case USBDESCR_CONFIG:
|
|
|
usbMsgPtr = (unsigned char *)&usbConfigurationDescriptor;
|
|
|
len = sizeof(usbConfigurationDescriptor_t);
|
|
|
break;
|
|
|
-#endif
|
|
|
case USBDESCR_STRING:
|
|
|
switch (rq->wValue.bytes[0]) {
|
|
|
case 0:
|