#include "include/board/board.h" #include "fsl_gpio.h" #include "usb_device_config.h" #include "usb.h" #include "usb_device.h" #include "include/usb/usb_device_class.h" #include "include/usb/usb_device_hid.h" #include "include/usb/usb_device_ch9.h" #include "usb_composite_device.h" #include "include/lufa/HIDClassCommon.h" #include "usb_interface_keyboard.h" #include "usb_descriptor_configuration.h" static usb_device_endpoint_struct_t UsbKeyboardEndpoints[USB_KEYBOARD_ENDPOINT_COUNT] = {{ USB_KEYBOARD_ENDPOINT_INDEX | (USB_IN << USB_DESCRIPTOR_ENDPOINT_ADDRESS_DIRECTION_SHIFT), USB_ENDPOINT_INTERRUPT, USB_KEYBOARD_INTERRUPT_IN_PACKET_SIZE, }}; static usb_device_interface_struct_t UsbKeyboardInterface[] = {{ USB_INTERFACE_ALTERNATE_SETTING_NONE, {USB_KEYBOARD_ENDPOINT_COUNT, UsbKeyboardEndpoints}, NULL, }}; static usb_device_interfaces_struct_t UsbKeyboardInterfaces[USB_KEYBOARD_INTERFACE_COUNT] = {{ USB_KEYBOARD_CLASS, USB_KEYBOARD_SUBCLASS, USB_KEYBOARD_PROTOCOL, USB_KEYBOARD_INTERFACE_INDEX, UsbKeyboardInterface, sizeof(UsbKeyboardInterface) / sizeof(usb_device_interfaces_struct_t), }}; static usb_device_interface_list_t UsbKeyboardInterfaceList[USB_DEVICE_CONFIGURATION_COUNT] = {{ USB_KEYBOARD_INTERFACE_COUNT, UsbKeyboardInterfaces, }}; usb_device_class_struct_t UsbKeyboardClass = { UsbKeyboardInterfaceList, kUSB_DeviceClassTypeHid, USB_DEVICE_CONFIGURATION_COUNT, }; static usb_keyboard_report_t UsbKeyboardReport; static usb_status_t UsbKeyboardAction(void) { UsbKeyboardReport.modifiers = 0; UsbKeyboardReport.reserved = 0; for (uint8_t scancode_idx=0; scancode_idx