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