Use the LUFA generic HID descriptor.
This commit is contained in:
@@ -1,6 +1,16 @@
|
||||
#ifndef __USB_CLASS_GENERIC_HID_H__
|
||||
#define __USB_CLASS_GENERIC_HID_H__
|
||||
|
||||
// Includes:
|
||||
|
||||
#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"
|
||||
|
||||
// Macros:
|
||||
|
||||
#define USB_GENERIC_HID_CLASS (0x03U)
|
||||
|
||||
@@ -1,24 +1,26 @@
|
||||
#include <stdint.h>
|
||||
#include "usb_report_item_macros.h"
|
||||
#include "usb_class_generic_hid.h"
|
||||
#include "usb_descriptor_generic_hid_report.h"
|
||||
|
||||
uint8_t UsbGenericHidReportDescriptor[USB_GENERIC_HID_REPORT_DESCRIPTOR_LENGTH] = {
|
||||
0x05U, 0x81U, /* Usage Page (Vendor defined)*/
|
||||
0x09U, 0x82U, /* Usage (Vendor defined) */
|
||||
0xA1U, 0x01U, /* Collection (Application) */
|
||||
0x09U, 0x83U, /* Usage (Vendor defined) */
|
||||
HID_RI_USAGE_PAGE(16, (0xFF00 | USB_GENERIC_HID_REPORT_DESCRIPTOR_VENDOR_USAGE_PAGE_INDEX)),
|
||||
HID_RI_USAGE(8, USB_GENERIC_HID_REPORT_DESCRIPTOR_VENDOR_USAGE_COLLECTION),
|
||||
HID_RI_COLLECTION(8, HID_RI_COLLECTION_APPLICATION),
|
||||
|
||||
0x09U, 0x84U, /* Usage (Vendor defined) */
|
||||
0x15U, 0x80U, /* Logical Minimum (-128) */
|
||||
0x25U, 0x7FU, /* Logical Maximum (127) */
|
||||
0x75U, 0x08U, /* Report Size (8U) */
|
||||
0x95U, 0x08U, /* Report Count (8U) */
|
||||
0x81U, 0x02U, /* Input(Data, Variable, Absolute) */
|
||||
HID_RI_USAGE(8, USB_GENERIC_HID_REPORT_DESCRIPTOR_VENDOR_USAGE_DATA_IN),
|
||||
HID_RI_LOGICAL_MINIMUM(8, 0x00),
|
||||
HID_RI_LOGICAL_MAXIMUM(8, 0xFF),
|
||||
HID_RI_REPORT_SIZE(8, 0x08),
|
||||
HID_RI_REPORT_COUNT(8, USB_GENERIC_HID_INTERRUPT_IN_PACKET_SIZE),
|
||||
HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE),
|
||||
|
||||
0x09U, 0x84U, /* Usage (Vendor defined) */
|
||||
0x15U, 0x80U, /* logical Minimum (-128) */
|
||||
0x25U, 0x7FU, /* logical Maximum (127) */
|
||||
0x75U, 0x08U, /* Report Size (8U) */
|
||||
0x95U, 0x08U, /* Report Count (8U) */
|
||||
0x91U, 0x02U, /* Input (Data, Variable, Absolute) */
|
||||
0xC0U, /* End collection */
|
||||
HID_RI_USAGE(8, USB_GENERIC_HID_REPORT_DESCRIPTOR_VENDOR_USAGE_DATA_OUT),
|
||||
HID_RI_LOGICAL_MINIMUM(8, 0x00),
|
||||
HID_RI_LOGICAL_MAXIMUM(8, 0xFF),
|
||||
HID_RI_REPORT_SIZE(8, 0x08),
|
||||
HID_RI_REPORT_COUNT(8, USB_GENERIC_HID_INTERRUPT_OUT_PACKET_SIZE),
|
||||
HID_RI_OUTPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE),
|
||||
|
||||
HID_RI_END_COLLECTION(0)
|
||||
};
|
||||
|
||||
@@ -3,7 +3,12 @@
|
||||
|
||||
// Macros:
|
||||
|
||||
#define USB_GENERIC_HID_REPORT_DESCRIPTOR_LENGTH (33U)
|
||||
#define USB_GENERIC_HID_REPORT_DESCRIPTOR_LENGTH (32U)
|
||||
|
||||
#define USB_GENERIC_HID_REPORT_DESCRIPTOR_VENDOR_USAGE_PAGE_INDEX 0x80U
|
||||
#define USB_GENERIC_HID_REPORT_DESCRIPTOR_VENDOR_USAGE_COLLECTION 0x81U
|
||||
#define USB_GENERIC_HID_REPORT_DESCRIPTOR_VENDOR_USAGE_DATA_IN 0x82U
|
||||
#define USB_GENERIC_HID_REPORT_DESCRIPTOR_VENDOR_USAGE_DATA_OUT 0x83U
|
||||
|
||||
// Variables:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user