diff --git a/right/build/armgcc/CMakeLists.txt b/right/build/armgcc/CMakeLists.txt index c69115b..d7ed137 100644 --- a/right/build/armgcc/CMakeLists.txt +++ b/right/build/armgcc/CMakeLists.txt @@ -176,6 +176,8 @@ add_executable(dev_composite_hid_mouse_hid_keyboard_bm.elf "${SrcDir}/usb_descriptor_device.h" "${SrcDir}/usb_descriptor_generic_hid_report.c" "${SrcDir}/usb_descriptor_generic_hid_report.h" +"${SrcDir}/usb_descriptor_hid.c" +"${SrcDir}/usb_descriptor_hid.h" "${SrcDir}/usb_descriptor_keyboard_report.c" "${SrcDir}/usb_descriptor_keyboard_report.h" "${SrcDir}/usb_descriptor_mouse_report.c" diff --git a/right/build/kds/.project b/right/build/kds/.project index f125911..69741da 100644 --- a/right/build/kds/.project +++ b/right/build/kds/.project @@ -225,6 +225,16 @@ 1 PARENT-2-PROJECT_LOC/usb_descriptor_generic_hid_report.h + + sources/usb_descriptor_hid.c + 1 + PARENT-2-PROJECT_LOC/usb_descriptor_hid.c + + + sources/usb_descriptor_hid.h + 1 + PARENT-2-PROJECT_LOC/usb_descriptor_hid.h + sources/usb_descriptor_keyboard_report.c 1 diff --git a/right/usb_composite_device.c b/right/usb_composite_device.c index d9b5e17..19e8f4f 100644 --- a/right/usb_composite_device.c +++ b/right/usb_composite_device.c @@ -15,6 +15,7 @@ #include #include "fsl_common.h" #include "usb_descriptor_strings.h" +#include "usb_descriptor_hid.h" static usb_status_t UsbDeviceCallback(usb_device_handle handle, uint32_t event, void *param); usb_composite_device_t UsbCompositeDevice; diff --git a/right/usb_descriptor_configuration.c b/right/usb_descriptor_configuration.c index d86a8f8..b18ce0b 100644 --- a/right/usb_descriptor_configuration.c +++ b/right/usb_descriptor_configuration.c @@ -149,33 +149,3 @@ usb_status_t USB_DeviceGetConfigurationDescriptor( } return kStatus_USB_InvalidRequest; } - -usb_status_t USB_DeviceGetHidDescriptor( - usb_device_handle handle, usb_device_get_hid_descriptor_struct_t *hidDescriptor) -{ - return kStatus_USB_InvalidRequest; -} - -usb_status_t USB_DeviceGetHidReportDescriptor( - usb_device_handle handle, usb_device_get_hid_report_descriptor_struct_t *hidReportDescriptor) -{ - if (USB_MOUSE_INTERFACE_INDEX == hidReportDescriptor->interfaceNumber) { - hidReportDescriptor->buffer = UsbMouseReportDescriptor; - hidReportDescriptor->length = USB_MOUSE_REPORT_DESCRIPTOR_LENGTH; - } else if (USB_KEYBOARD_INTERFACE_INDEX == hidReportDescriptor->interfaceNumber) { - hidReportDescriptor->buffer = UsbKeyboardReportDescriptor; - hidReportDescriptor->length = USB_KEYBOARD_REPORT_DESCRIPTOR_LENGTH; - } else if (USB_GENERIC_HID_INTERFACE_INDEX == hidReportDescriptor->interfaceNumber) { - hidReportDescriptor->buffer = UsbGenericHidReportDescriptor; - hidReportDescriptor->length = USB_GENERIC_HID_REPORT_DESCRIPTOR_LENGTH; - } else { - return kStatus_USB_InvalidRequest; - } - return kStatus_USB_Success; -} - -usb_status_t USB_DeviceGetHidPhysicalDescriptor( - usb_device_handle handle, usb_device_get_hid_physical_descriptor_struct_t *hidPhysicalDescriptor) -{ - return kStatus_USB_InvalidRequest; -} diff --git a/right/usb_descriptor_configuration.h b/right/usb_descriptor_configuration.h index cd61e42..a78224d 100644 --- a/right/usb_descriptor_configuration.h +++ b/right/usb_descriptor_configuration.h @@ -17,13 +17,4 @@ extern usb_status_t USB_DeviceGetConfigurationDescriptor( usb_device_handle handle, usb_device_get_configuration_descriptor_struct_t *configurationDescriptor); - extern usb_status_t USB_DeviceGetHidDescriptor( - usb_device_handle handle, usb_device_get_hid_descriptor_struct_t *hidDescriptor); - - extern usb_status_t USB_DeviceGetHidReportDescriptor( - usb_device_handle handle, usb_device_get_hid_report_descriptor_struct_t *hidReportDescriptor); - - extern usb_status_t USB_DeviceGetHidPhysicalDescriptor( - usb_device_handle handle, usb_device_get_hid_physical_descriptor_struct_t *hidPhysicalDescriptor); - #endif diff --git a/right/usb_descriptor_hid.c b/right/usb_descriptor_hid.c new file mode 100644 index 0000000..796452b --- /dev/null +++ b/right/usb_descriptor_hid.c @@ -0,0 +1,38 @@ +#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_hid.h" +#include "usb_descriptor_mouse_report.h" +#include "usb_descriptor_generic_hid_report.h" + +usb_status_t USB_DeviceGetHidDescriptor( + usb_device_handle handle, usb_device_get_hid_descriptor_struct_t *hidDescriptor) +{ + return kStatus_USB_InvalidRequest; +} + +usb_status_t USB_DeviceGetHidReportDescriptor( + usb_device_handle handle, usb_device_get_hid_report_descriptor_struct_t *hidReportDescriptor) +{ + if (USB_MOUSE_INTERFACE_INDEX == hidReportDescriptor->interfaceNumber) { + hidReportDescriptor->buffer = UsbMouseReportDescriptor; + hidReportDescriptor->length = USB_MOUSE_REPORT_DESCRIPTOR_LENGTH; + } else if (USB_KEYBOARD_INTERFACE_INDEX == hidReportDescriptor->interfaceNumber) { + hidReportDescriptor->buffer = UsbKeyboardReportDescriptor; + hidReportDescriptor->length = USB_KEYBOARD_REPORT_DESCRIPTOR_LENGTH; + } else if (USB_GENERIC_HID_INTERFACE_INDEX == hidReportDescriptor->interfaceNumber) { + hidReportDescriptor->buffer = UsbGenericHidReportDescriptor; + hidReportDescriptor->length = USB_GENERIC_HID_REPORT_DESCRIPTOR_LENGTH; + } else { + return kStatus_USB_InvalidRequest; + } + return kStatus_USB_Success; +} + +usb_status_t USB_DeviceGetHidPhysicalDescriptor( + usb_device_handle handle, usb_device_get_hid_physical_descriptor_struct_t *hidPhysicalDescriptor) +{ + return kStatus_USB_InvalidRequest; +} diff --git a/right/usb_descriptor_hid.h b/right/usb_descriptor_hid.h new file mode 100644 index 0000000..c6f1fbd --- /dev/null +++ b/right/usb_descriptor_hid.h @@ -0,0 +1,21 @@ +#ifndef __USB_DESCRIPTOR_HID_H__ +#define __USB_DESCRIPTOR_HID_H__ + +// Includes: + + #include "usb_interface_keyboard.h" + #include "usb_interface_mouse.h" + #include "usb_interface_generic_hid.h" + +// Functions: + + extern usb_status_t USB_DeviceGetHidDescriptor( + usb_device_handle handle, usb_device_get_hid_descriptor_struct_t *hidDescriptor); + + extern usb_status_t USB_DeviceGetHidReportDescriptor( + usb_device_handle handle, usb_device_get_hid_report_descriptor_struct_t *hidReportDescriptor); + + extern usb_status_t USB_DeviceGetHidPhysicalDescriptor( + usb_device_handle handle, usb_device_get_hid_physical_descriptor_struct_t *hidPhysicalDescriptor); + +#endif