{0x2100, MOUSE_INTERFACE, config_descriptor + MOUSE_DESC_OFFSET, 9}, {0x2200, JOYSTICK_INTERFACE, joystick_report_desc, sizeof(joystick_report_desc)}, {0x2100, JOYSTICK_INTERFACE, config_descriptor + JOYSTICK_DESC_OFFSET, 9}, {0x2200, SYS_CTRL_INTERFACE, sys_ctrl_report_desc, sizeof(sys_ctrl_report_desc)}, {0x2100, SYS_CTRL_INTERFACE, config_descriptor + SYS_CTRL_DESC_OFFSET, 9}, #define iInterfaceString(num, var) \ {0x0300 + 4 + num, 0x409, (const uint8_t *)&var, 0 } {0x0300, 0x0000, (const uint8_t *)&string0, 0}, {0x0301, 0x0409, (const uint8_t *)&usb_string_manufacturer_name, 0}, {0x0302, 0x0409, (const uint8_t *)&usb_string_product_name, 0}, {0x0303, 0x0409, (const uint8_t *)&usb_string_serial_number, 0}, iInterfaceString( KEYBOARD_INTERFACE, usb_string_keyboard_name ), iInterfaceString( NKRO_KEYBOARD_INTERFACE, usb_string_nkro_keyboard_name ), iInterfaceString( CDC_STATUS_INTERFACE, usb_string_cdc_status_name ), iInterfaceString( CDC_DATA_INTERFACE, usb_string_cdc_data_name ), iInterfaceString( MOUSE_INTERFACE, usb_string_mouse_name ), iInterfaceString( JOYSTICK_INTERFACE, usb_string_joystick_name ), iInterfaceString( SYS_CTRL_INTERFACE, usb_string_sys_ctrl_name ), {0, 0, NULL, 0} }; // ----- Endpoint Configuration ----- // See usb_desc.h for Endpoint configuration // 0x00 = not used
const usb_descriptor_list_t usb_descriptor_list[] = { //wValue, wIndex, address, length {0x0100, 0x0000, device_descriptor, sizeof(device_descriptor)}, {0x0200, 0x0000, config_descriptor, sizeof(config_descriptor)}, {0x0600, 0x0000, device_qualifier_descriptor, sizeof(device_qualifier_descriptor)}, {0x0A00, 0x0000, usb_debug_descriptor, sizeof(usb_debug_descriptor)}, #define iInterfaceString(num, var) \ {0x0300 + 4 + num, 0x409, (const uint8_t *)&var, 0 } {0x0300, 0x0000, (const uint8_t *)&string0, 0}, {0x0301, 0x0409, (const uint8_t *)&usb_string_manufacturer_name, 0}, {0x0302, 0x0409, (const uint8_t *)&usb_string_product_name, 0}, {0x0303, 0x0409, (const uint8_t *)&usb_string_serial_number, 0}, iInterfaceString( CDC_STATUS_INTERFACE, usb_string_cdc_status_name ), iInterfaceString( CDC_DATA_INTERFACE, usb_string_cdc_data_name ), iInterfaceString( RAWIO_INTERFACE, usb_string_rawio_name ), {0, 0, NULL, 0} }; // ----- Endpoint Configuration ----- // See usb_desc.h for Endpoint configuration // 0x00 = not used // 0x19 = Recieve only // 0x15 = Transmit only // 0x1D = Transmit & Recieve //