Extract further keyboard interface specific macros and variable to keyboard_descriptors.[ch]

This commit is contained in:
László Monda
2016-02-24 23:41:24 +01:00
parent f1c1279d04
commit 57fbbb2b8d
4 changed files with 47 additions and 50 deletions

View File

@@ -91,3 +91,27 @@ uint8_t UsbKeyboardReportDescriptor[USB_DESCRIPTOR_LENGTH_HID_KEYBOARD_REPORT] =
0x81U, 0x00U, // Input(Data, Array), Key arrays(6U bytes)
0xC0U, // End collection
};
uint8_t g_UsbKeyboardString[USB_KEYBOARD_STRING_DESCRIPTOR_LENGTH] = {
sizeof(g_UsbKeyboardString),
USB_DESCRIPTOR_TYPE_STRING,
'H', 0x00U,
'I', 0x00U,
'D', 0x00U,
' ', 0x00U,
'K', 0x00U,
'E', 0x00U,
'Y', 0x00U,
'B', 0x00U,
'O', 0x00U,
'A', 0x00U,
'R', 0x00U,
'D', 0x00U,
' ', 0x00U,
'D', 0x00U,
'E', 0x00U,
'V', 0x00U,
'I', 0x00U,
'C', 0x00U,
'E', 0x00U,
};

View File

@@ -3,10 +3,24 @@
// Macros:
#define USB_HID_KEYBOARD_INTERFACE_COUNT (1U)
#define USB_DESCRIPTOR_LENGTH_HID_KEYBOARD_REPORT (63U)
#define USB_KEYBOARD_STRING_DESCRIPTOR_LENGTH (40U)
#define USB_KEYBOARD_INTERFACE_ALTERNATE_SETTING (0U)
#define USB_HID_KEYBOARD_ENDPOINT_IN (2U)
#define FS_HID_KEYBOARD_INTERRUPT_IN_PACKET_SIZE (8U)
#define USB_HID_KEYBOARD_ENDPOINT_COUNT (1U)
#define USB_HID_KEYBOARD_CLASS (0x03U)
#define USB_HID_KEYBOARD_SUBCLASS (0x01U)
#define USB_HID_KEYBOARD_PROTOCOL (0x01U)
#define USB_HID_KEYBOARD_INTERFACE_INDEX (1U)
#define USB_HID_KEYBOARD_IN_BUFFER_LENGTH (8U)
#define FS_HID_KEYBOARD_INTERRUPT_IN_INTERVAL (0x04U)
#define USB_HID_KEYBOARD_REPORT_LENGTH (0x08U)
// Function prototypes:
// Variables:
extern uint8_t g_UsbKeyboardString[USB_KEYBOARD_STRING_DESCRIPTOR_LENGTH];
extern usb_device_class_struct_t UsbKeyboardClass;
extern uint8_t UsbKeyboardReportDescriptor[USB_DESCRIPTOR_LENGTH_HID_KEYBOARD_REPORT];

View File

@@ -294,37 +294,13 @@ uint8_t g_UsbDeviceString3[USB_DESCRIPTOR_LENGTH_STRING3] = {
'E', 0x00U,
};
uint8_t g_UsbDeviceString4[USB_DESCRIPTOR_LENGTH_STRING4] = {
sizeof(g_UsbDeviceString4),
USB_DESCRIPTOR_TYPE_STRING,
'H', 0x00U,
'I', 0x00U,
'D', 0x00U,
' ', 0x00U,
'K', 0x00U,
'E', 0x00U,
'Y', 0x00U,
'B', 0x00U,
'O', 0x00U,
'A', 0x00U,
'R', 0x00U,
'D', 0x00U,
' ', 0x00U,
'D', 0x00U,
'E', 0x00U,
'V', 0x00U,
'I', 0x00U,
'C', 0x00U,
'E', 0x00U,
};
uint32_t g_UsbDeviceStringDescriptorLength[USB_DEVICE_STRING_COUNT] = {
sizeof(g_UsbDeviceString0), sizeof(g_UsbDeviceString1), sizeof(g_UsbDeviceString2),
sizeof(g_UsbDeviceString3), sizeof(g_UsbDeviceString4),
sizeof(g_UsbDeviceString3), sizeof(g_UsbKeyboardString),
};
uint8_t *g_UsbDeviceStringDescriptorArray[USB_DEVICE_STRING_COUNT] = {
g_UsbDeviceString0, g_UsbDeviceString1, g_UsbDeviceString2, g_UsbDeviceString3, g_UsbDeviceString4,
g_UsbDeviceString0, g_UsbDeviceString1, g_UsbDeviceString2, g_UsbDeviceString3, g_UsbKeyboardString,
};
usb_language_t g_UsbDeviceLanguage[USB_DEVICE_LANGUAGE_COUNT] = {{

View File

@@ -1,7 +1,11 @@
#ifndef __USB_DEVICE_DESCRIPTOR_H__
#define __USB_DEVICE_DESCRIPTOR_H__
/* Macros: */
// Includes:
#include "keyboard_descriptors.h"
// Macros:
#define USB_DEVICE_SPECIFIC_BCD_VERSION (0x0200U)
#define USB_DEVICE_DEMO_BCD_VERSION (0x0101U)
@@ -14,13 +18,11 @@
#define USB_DESCRIPTOR_LENGTH_CONFIGURATION_ALL (59U)
#define USB_DESCRIPTOR_LENGTH_HID_MOUSE_REPORT (52U)
#define USB_DESCRIPTOR_LENGTH_HID_KEYBOARD_REPORT (63U)
#define USB_DESCRIPTOR_LENGTH_HID (9U)
#define USB_DESCRIPTOR_LENGTH_STRING0 (4U)
#define USB_DESCRIPTOR_LENGTH_STRING1 (58U)
#define USB_DESCRIPTOR_LENGTH_STRING2 (34U)
#define USB_DESCRIPTOR_LENGTH_STRING3 (34U)
#define USB_DESCRIPTOR_LENGTH_STRING4 (40U)
#define USB_DEVICE_CONFIGURATION_COUNT (1U)
#define USB_DEVICE_STRING_COUNT (5U)
@@ -40,31 +42,12 @@
#define USB_HID_MOUSE_SUBCLASS (0x01U)
#define USB_HID_MOUSE_PROTOCOL (0x02U)
#define HS_HID_MOUSE_INTERRUPT_IN_PACKET_SIZE (8U)
#define FS_HID_MOUSE_INTERRUPT_IN_PACKET_SIZE (8U)
#define HS_HID_MOUSE_INTERRUPT_IN_INTERVAL (0x06U) /* 2^(6-1) = 4ms */
#define FS_HID_MOUSE_INTERRUPT_IN_INTERVAL (0x04U)
#define USB_HID_KEYBOARD_CLASS (0x03U)
#define USB_HID_KEYBOARD_SUBCLASS (0x01U)
#define USB_HID_KEYBOARD_PROTOCOL (0x01U)
#define USB_HID_KEYBOARD_INTERFACE_COUNT (1U)
#define USB_HID_KEYBOARD_INTERFACE_INDEX (1U)
#define USB_HID_KEYBOARD_IN_BUFFER_LENGTH (8U)
#define USB_HID_KEYBOARD_ENDPOINT_COUNT (1U)
#define USB_HID_KEYBOARD_ENDPOINT_IN (2U)
#define HS_HID_KEYBOARD_INTERRUPT_IN_PACKET_SIZE (8U)
#define FS_HID_KEYBOARD_INTERRUPT_IN_PACKET_SIZE (8U)
#define HS_HID_KEYBOARD_INTERRUPT_IN_INTERVAL (0x06U) /* 2^(6-1) = 4ms */
#define FS_HID_KEYBOARD_INTERRUPT_IN_INTERVAL (0x04U)
#define USB_HID_KEYBOARD_REPORT_LENGTH (0x08U)
#define USB_COMPOSITE_INTERFACE_COUNT (USB_HID_KEYBOARD_INTERFACE_COUNT + USB_HID_MOUSE_INTERFACE_COUNT)
/* Function prototypes: */
// Function prototypes:
usb_status_t USB_DeviceGetDeviceDescriptor(
usb_device_handle handle, usb_device_get_device_descriptor_struct_t *deviceDescriptor);