#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 "usb_descriptor_device.h" #include "usb_class_keyboard.h" static usb_device_endpoint_struct_t UsbKeyboardEndpoints[USB_KEYBOARD_ENDPOINT_COUNT] = {{ USB_KEYBOARD_ENDPOINT_ID | (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_KEYBOARD_INTERFACE_ALTERNATE_SETTING, {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, };