.iManufacturer = 1, .iProduct = 2, .iSerialNumber = 0, .bNumConfigurations = 1 }; unsigned char mouse_report[] = { HID_USAGE_PAGE_1B (HUP_GENERIC_DESKTOP), HID_USAGE_1B (HU_MOUSE), HID_COLLECTION (HID_APPLICATION), HID_USAGE_1B (HU_POINTER), HID_COLLECTION (HID_PHYSICAL), HID_USAGE_PAGE_1B (HUP_BUTTONS), HID_USAGE_MINIMUM (1), HID_USAGE_MAXIMUM (3), HID_LOGICAL_MINIMUM_1B (0), HID_LOGICAL_MAXIMUM_1B (1), HID_REPORT_COUNT (3), HID_REPORT_SIZE (1), HID_INPUT (HID_DATA | HID_VARIABLE | HID_ABSOLUTE), HID_REPORT_COUNT (1), HID_REPORT_SIZE (5), HID_INPUT (HID_CONSTANT), HID_USAGE_PAGE_1B (HUP_GENERIC_DESKTOP), HID_USAGE_1B (HU_X), HID_USAGE_1B (HU_Y), HID_LOGICAL_MINIMUM_1B (-127), HID_LOGICAL_MAXIMUM_1B (127), HID_REPORT_SIZE (8), HID_REPORT_COUNT (2),
An item field cannot span more than 4 bytes in a report. For example, a 32-bit item must start on a byte boundary to satisfy this condition. - USB HID 1.11 Specification, p. 57 */ local const u8 PROGMEM NkroKeyboardReportDescriptor[] = { HID_USAGE_PAGE (8, HID_USAGE_PAGE_GENERIC_DESKTOP_CONTROLS), HID_USAGE (8, HID_DESKTOP_KEYBOARD), HID_COLLECTION (8, HID_COLLECTION_APPLICATION), HID_USAGE_PAGE (8, HID_USAGE_PAGE_KEYBOARD_KEYPAD), HID_LOGICAL_MINIMUM (8, 0x00), HID_LOGICAL_MAXIMUM (8, 0x01), HID_REPORT_SIZE (8, 0x01), HID_REPORT_COUNT (8, 0x20), HID_USAGE_MINIMUM (8, 0x00), HID_USAGE_MAXIMUM (8, 0x1F), HID_INPUT (8, HID_DATA | HID_VARIABLE | HID_ABSOLUTE), HID_USAGE_MINIMUM (8, 0x20), HID_USAGE_MAXIMUM (8, 0x3F), HID_INPUT (8, HID_DATA | HID_VARIABLE | HID_ABSOLUTE), HID_USAGE_MINIMUM (8, 0x40), HID_USAGE_MAXIMUM (8, 0x5F), HID_INPUT (8, HID_DATA | HID_VARIABLE | HID_ABSOLUTE), HID_USAGE_MINIMUM (8, 0x60), HID_USAGE_MAXIMUM (8, 0x7F), HID_INPUT (8, HID_DATA | HID_VARIABLE | HID_ABSOLUTE), HID_USAGE_MINIMUM (8, 0x80),