aboutsummaryrefslogtreecommitdiffstats
path: root/Demos
diff options
context:
space:
mode:
Diffstat (limited to 'Demos')
-rw-r--r--Demos/Device/ClassDriver/GenericHID/Descriptors.c33
-rw-r--r--Demos/Device/ClassDriver/Joystick/Descriptors.c53
-rw-r--r--Demos/Device/ClassDriver/Keyboard/Descriptors.c67
-rw-r--r--Demos/Device/ClassDriver/KeyboardMouse/Descriptors.c123
-rw-r--r--Demos/Device/ClassDriver/MassStorageKeyboard/Descriptors.c67
-rw-r--r--Demos/Device/ClassDriver/Mouse/Descriptors.c56
-rw-r--r--Demos/Device/ClassDriver/VirtualSerialMouse/Descriptors.c56
-rw-r--r--Demos/Device/LowLevel/GenericHID/Descriptors.c33
-rw-r--r--Demos/Device/LowLevel/Joystick/Descriptors.c51
-rw-r--r--Demos/Device/LowLevel/Keyboard/Descriptors.c67
-rw-r--r--Demos/Device/LowLevel/KeyboardMouse/Descriptors.c123
-rw-r--r--Demos/Device/LowLevel/Mouse/Descriptors.c56
-rw-r--r--Demos/DualRole/ClassDriver/MouseHostDevice/Descriptors.c54
13 files changed, 438 insertions, 401 deletions
diff --git a/Demos/Device/ClassDriver/GenericHID/Descriptors.c b/Demos/Device/ClassDriver/GenericHID/Descriptors.c
index dd4593272..0716ae9ca 100644
--- a/Demos/Device/ClassDriver/GenericHID/Descriptors.c
+++ b/Demos/Device/ClassDriver/GenericHID/Descriptors.c
@@ -45,22 +45,23 @@
*/
USB_Descriptor_HIDReport_Datatype_t PROGMEM GenericReport[] =
{
- 0x06, 0x9c, 0xff, /* Usage Page (Vendor Defined) */
- 0x09, 0x01, /* Usage (Vendor Defined) */
- 0xa1, 0x01, /* Collection (Vendor Defined) */
- 0x09, 0x02, /* Usage (Vendor Defined) */
- 0x75, 0x08, /* Report Size (8) */
- 0x95, GENERIC_REPORT_SIZE, /* Report Count (GENERIC_REPORT_SIZE) */
- 0x15, 0x80, /* Logical Minimum (-128) */
- 0x25, 0x7F, /* Logical Maximum (127) */
- 0x81, 0x02, /* Input (Data, Variable, Absolute) */
- 0x09, 0x03, /* Usage (Vendor Defined) */
- 0x75, 0x08, /* Report Size (8) */
- 0x95, GENERIC_REPORT_SIZE, /* Report Count (GENERIC_REPORT_SIZE) */
- 0x15, 0x00, /* Logical Minimum (0) */
- 0x25, 0xff, /* Logical Maximum (255) */
- 0x91, 0x02, /* Output (Data, Variable, Absolute) */
- 0xc0 /* End Collection */
+ HID_RI_USAGE_PAGE(16), 0x00, 0xFF, /* Vendor Page 1 */
+ HID_RI_USAGE(8), 0x01, /* Vendor Usage 1 */
+ HID_RI_COLLECTION(8), 0x01, /* Vendor Usage 1 */
+ HID_RI_USAGE(8), 0x02, /* Vendor Usage 2 */
+ HID_RI_LOGICAL_MINIMUM(8), 0x00,
+ HID_RI_LOGICAL_MAXIMUM(8), 0xFF,
+ HID_RI_REPORT_SIZE(8), 8,
+ HID_RI_REPORT_COUNT(8), GENERIC_REPORT_SIZE,
+ HID_RI_INPUT(8), (HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_VOLATILE),
+
+ HID_RI_USAGE(8), 0x03, /* Vendor Usage 3 */
+ HID_RI_LOGICAL_MINIMUM(8), 0x00,
+ HID_RI_LOGICAL_MAXIMUM(8), 0xFF,
+ HID_RI_REPORT_SIZE(8), 8,
+ HID_RI_REPORT_COUNT(8), GENERIC_REPORT_SIZE,
+ HID_RI_OUTPUT(8), (HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_VOLATILE),
+ HID_RI_END_COLLECTION(0),
};
/** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall
diff --git a/Demos/Device/ClassDriver/Joystick/Descriptors.c b/Demos/Device/ClassDriver/Joystick/Descriptors.c
index 9723b4296..e2b528e1c 100644
--- a/Demos/Device/ClassDriver/Joystick/Descriptors.c
+++ b/Demos/Device/ClassDriver/Joystick/Descriptors.c
@@ -42,35 +42,34 @@
* descriptor is parsed by the host and its contents used to determine what data (and in what encoding)
* the device will send, and what it may be sent back from the host. Refer to the HID specification for
* more details on HID report descriptors.
- */
+ */
USB_Descriptor_HIDReport_Datatype_t PROGMEM JoystickReport[] =
{
- 0x05, 0x01, /* Usage Page (Generic Desktop) */
- 0x09, 0x04, /* Usage (Joystick) */
- 0xa1, 0x01, /* Collection (Application) */
- 0x09, 0x01, /* Usage (Pointer) */
- 0xa1, 0x00, /* Collection (Physical) */
- 0x05, 0x01, /* Usage Page (Generic Desktop) */
- 0x09, 0x30, /* Usage (X) */
- 0x09, 0x31, /* Usage (Y) */
- 0x15, 0x9c, /* Logical Minimum (-100) */
- 0x25, 0x64, /* Logical Maximum (100) */
- 0x75, 0x08, /* Report Size (8) */
- 0x95, 0x02, /* Report Count (2) */
- 0x81, 0x82, /* Input (Data, Variable, Absolute, Volatile) */
- 0xc0, /* End Collection */
- 0x05, 0x09, /* Usage Page (Button) */
- 0x09, 0x02, /* Usage (Button 2) */
- 0x09, 0x01, /* Usage (Button 1) */
- 0x15, 0x00, /* Logical Minimum (0) */
- 0x25, 0x01, /* Logical Maximum (1) */
- 0x75, 0x01, /* Report Size (1) */
- 0x95, 0x02, /* Report Count (2) */
- 0x81, 0x02, /* Input (Data, Variable, Absolute) */
- 0x75, 0x06, /* Report Size (6) */
- 0x95, 0x01, /* Report Count (1) */
- 0x81, 0x01, /* Input (Constant) */
- 0xc0 /* End Collection */
+ HID_RI_USAGE_PAGE(8), 0x01, /* Generic Desktop */
+ HID_RI_USAGE(8), 0x04, /* Joystick */
+ HID_RI_COLLECTION(8), 0x01, /* Application */
+ HID_RI_USAGE(8), 0x01, /* Pointer */
+ HID_RI_COLLECTION(8), 0x00, /* Physical */
+ HID_RI_USAGE(8), 0x30, /* Usage X */
+ HID_RI_USAGE(8), 0x31, /* Usage Y */
+ HID_RI_LOGICAL_MINIMUM(8), -100,
+ HID_RI_LOGICAL_MAXIMUM(8), 100,
+ HID_RI_REPORT_SIZE(8), 8,
+ HID_RI_REPORT_COUNT(8), 2,
+ HID_RI_INPUT(8), (HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE),
+ HID_RI_END_COLLECTION(0),
+ HID_RI_USAGE_PAGE(8), 0x09, /* Button */
+ HID_RI_USAGE(8), 0x02, /* Button 1 */
+ HID_RI_USAGE(8), 0x01, /* Button 2 */
+ HID_RI_LOGICAL_MINIMUM(8), 0,
+ HID_RI_LOGICAL_MAXIMUM(8), 1,
+ HID_RI_REPORT_SIZE(8), 1,
+ HID_RI_REPORT_COUNT(8), 2,
+ HID_RI_INPUT(8), (HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE),
+ HID_RI_REPORT_SIZE(8), 6,
+ HID_RI_REPORT_COUNT(8), 1,
+ HID_RI_INPUT(8), HID_IOF_CONSTANT,
+ HID_RI_END_COLLECTION(0),
};
/** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall
diff --git a/Demos/Device/ClassDriver/Keyboard/Descriptors.c b/Demos/Device/ClassDriver/Keyboard/Descriptors.c
index 7a6915c22..640479a23 100644
--- a/Demos/Device/ClassDriver/Keyboard/Descriptors.c
+++ b/Demos/Device/ClassDriver/Keyboard/Descriptors.c
@@ -45,38 +45,41 @@
*/
USB_Descriptor_HIDReport_Datatype_t PROGMEM KeyboardReport[] =
{
- 0x05, 0x01, /* Usage Page (Generic Desktop) */
- 0x09, 0x06, /* Usage (Keyboard) */
- 0xa1, 0x01, /* Collection (Application) */
- 0x75, 0x01, /* Report Size (1) */
- 0x95, 0x08, /* Report Count (8) */
- 0x05, 0x07, /* Usage Page (Key Codes) */
- 0x19, 0xe0, /* Usage Minimum (Keyboard LeftControl) */
- 0x29, 0xe7, /* Usage Maximum (Keyboard Right GUI) */
- 0x15, 0x00, /* Logical Minimum (0) */
- 0x25, 0x01, /* Logical Maximum (1) */
- 0x81, 0x02, /* Input (Data, Variable, Absolute) */
- 0x95, 0x01, /* Report Count (1) */
- 0x75, 0x08, /* Report Size (8) */
- 0x81, 0x03, /* Input (Const, Variable, Absolute) */
- 0x95, 0x05, /* Report Count (5) */
- 0x75, 0x01, /* Report Size (1) */
- 0x05, 0x08, /* Usage Page (LEDs) */
- 0x19, 0x01, /* Usage Minimum (Num Lock) */
- 0x29, 0x05, /* Usage Maximum (Kana) */
- 0x91, 0x02, /* Output (Data, Variable, Absolute) */
- 0x95, 0x01, /* Report Count (1) */
- 0x75, 0x03, /* Report Size (3) */
- 0x91, 0x03, /* Output (Const, Variable, Absolute) */
- 0x95, 0x06, /* Report Count (6) */
- 0x75, 0x08, /* Report Size (8) */
- 0x15, 0x00, /* Logical Minimum (0) */
- 0x25, 0x65, /* Logical Maximum (101) */
- 0x05, 0x07, /* Usage Page (Keyboard) */
- 0x19, 0x00, /* Usage Minimum (Reserved (no event indicated)) */
- 0x29, 0x65, /* Usage Maximum (Keyboard Application) */
- 0x81, 0x00, /* Input (Data, Array, Absolute) */
- 0xc0 /* End Collection */
+ HID_RI_USAGE_PAGE(8), 0x01, /* Generic Desktop */
+ HID_RI_USAGE(8), 0x06, /* Keyboard */
+ HID_RI_COLLECTION(8), 0x01, /* Application */
+ HID_RI_USAGE_PAGE(8), 0x07, /* Key Codes */
+ HID_RI_USAGE_MINIMUM(8), 0xE0, /* Keyboard Left Control */
+ HID_RI_USAGE_MAXIMUM(8), 0xE7, /* Keyboard Right GUI */
+ HID_RI_LOGICAL_MINIMUM(8), 0,
+ HID_RI_LOGICAL_MAXIMUM(8), 1,
+ HID_RI_REPORT_SIZE(8), 1,
+ HID_RI_REPORT_COUNT(8), 8,
+ HID_RI_INPUT(8), (HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE),
+
+ HID_RI_REPORT_COUNT(8), 1,
+ HID_RI_REPORT_SIZE(8), 8,
+ HID_RI_INPUT(8), HID_IOF_CONSTANT,
+
+ HID_RI_USAGE_PAGE(8), 0x08, /* LEDs */
+ HID_RI_USAGE_MINIMUM(8), 0x01, /* Num Lock */
+ HID_RI_USAGE_MAXIMUM(8), 0x05, /* Kana */
+ HID_RI_REPORT_COUNT(8), 5,
+ HID_RI_REPORT_SIZE(8), 1,
+ HID_RI_OUTPUT(8), (HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE),
+ HID_RI_REPORT_COUNT(8), 1,
+ HID_RI_REPORT_SIZE(8), 3,
+ HID_RI_OUTPUT(8), HID_IOF_CONSTANT,
+
+ HID_RI_LOGICAL_MINIMUM(8), 0x00,
+ HID_RI_LOGICAL_MAXIMUM(8), 0x65,
+ HID_RI_USAGE_PAGE(8), 0x07, /* Keyboard */
+ HID_RI_USAGE_MINIMUM(8), 0x00, /* Reserved (no event indicated) */
+ HID_RI_USAGE_MAXIMUM(8), 0x65, /* Keyboard Application */
+ HID_RI_REPORT_COUNT(8), 6,
+ HID_RI_REPORT_SIZE(8), 8,
+ HID_RI_INPUT(8), (HID_IOF_DATA | HID_IOF_ARRAY | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE),
+ HID_RI_END_COLLECTION(0),
};
/** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall
diff --git a/Demos/Device/ClassDriver/KeyboardMouse/Descriptors.c b/Demos/Device/ClassDriver/KeyboardMouse/Descriptors.c
index d3f37b015..e7f256215 100644
--- a/Demos/Device/ClassDriver/KeyboardMouse/Descriptors.c
+++ b/Demos/Device/ClassDriver/KeyboardMouse/Descriptors.c
@@ -47,69 +47,76 @@
*/
USB_Descriptor_HIDReport_Datatype_t PROGMEM MouseReport[] =
{
- 0x05, 0x01, /* Usage Page (Generic Desktop) */
- 0x09, 0x02, /* Usage (Mouse) */
- 0xA1, 0x01, /* Collection (Application) */
- 0x09, 0x01, /* Usage (Pointer) */
- 0xA1, 0x00, /* Collection (Physical) */
- 0x95, 0x03, /* Report Count (3) */
- 0x75, 0x01, /* Report Size (1) */
- 0x05, 0x09, /* Usage Page (Button) */
- 0x19, 0x01, /* Usage Minimum (Button 1) */
- 0x29, 0x03, /* Usage Maximum (Button 3) */
- 0x15, 0x00, /* Logical Minimum (0) */
- 0x25, 0x01, /* Logical Maximum (1) */
- 0x81, 0x02, /* Input (Data, Variable, Absolute) */
- 0x95, 0x01, /* Report Count (1) */
- 0x75, 0x05, /* Report Size (5) */
- 0x81, 0x01, /* Input (Constant) */
- 0x75, 0x08, /* Report Size (8) */
- 0x95, 0x02, /* Report Count (2) */
- 0x05, 0x01, /* Usage Page (Generic Desktop Control) */
- 0x09, 0x30, /* Usage X */
- 0x09, 0x31, /* Usage Y */
- 0x15, 0x81, /* Logical Minimum (-127) */
- 0x25, 0x7F, /* Logical Maximum (127) */
- 0x81, 0x06, /* Input (Data, Variable, Relative) */
- 0xC0, /* End Collection */
- 0xC0, /* End Collection */
+ HID_RI_USAGE_PAGE(8), 0x01, /* Generic Desktop */
+ HID_RI_USAGE(8), 0x02, /* Mouse */
+ HID_RI_COLLECTION(8), 0x01, /* Application */
+ HID_RI_USAGE(8), 0x01, /* Pointer */
+ HID_RI_COLLECTION(8), 0x00, /* Physical */
+ HID_RI_USAGE_PAGE(8), 0x09, /* Button */
+ HID_RI_USAGE_MINIMUM(8), 0x01,
+ HID_RI_USAGE_MAXIMUM(8), 0x03,
+ HID_RI_LOGICAL_MINIMUM(8), 0,
+ HID_RI_LOGICAL_MAXIMUM(8), 1,
+ HID_RI_REPORT_COUNT(8), 3,
+ HID_RI_REPORT_SIZE(8), 1,
+ HID_RI_INPUT(8), (HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_VOLATILE),
+
+ HID_RI_REPORT_COUNT(8), 1,
+ HID_RI_REPORT_SIZE(8), 5,
+ HID_RI_INPUT(8), HID_IOF_CONSTANT,
+
+ HID_RI_USAGE_PAGE(8), 0x01, /* Generic Desktop */
+ HID_RI_USAGE(8), 0x30, /* Usage X */
+ HID_RI_USAGE(8), 0x31, /* Usage Y */
+ HID_RI_LOGICAL_MINIMUM(8), -1,
+ HID_RI_LOGICAL_MAXIMUM(8), 1,
+ HID_RI_PHYSICAL_MINIMUM(8), -1,
+ HID_RI_PHYSICAL_MAXIMUM(8), 1,
+ HID_RI_REPORT_COUNT(8), 2,
+ HID_RI_REPORT_SIZE(8), 8,
+ HID_RI_INPUT(8), (HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_RELATIVE | HID_IOF_NON_VOLATILE),
+ HID_RI_END_COLLECTION(0),
+ HID_RI_END_COLLECTION(0),
};
/** Same as the MouseReport structure, but defines the keyboard HID interface's report structure. */
USB_Descriptor_HIDReport_Datatype_t PROGMEM KeyboardReport[] =
{
- 0x05, 0x01, /* Usage Page (Generic Desktop) */
- 0x09, 0x06, /* Usage (Keyboard) */
- 0xa1, 0x01, /* Collection (Application) */
- 0x75, 0x01, /* Report Size (1) */
- 0x95, 0x08, /* Report Count (8) */
- 0x05, 0x07, /* Usage Page (Key Codes) */
- 0x19, 0xe0, /* Usage Minimum (Keyboard LeftControl) */
- 0x29, 0xe7, /* Usage Maximum (Keyboard Right GUI) */
- 0x15, 0x00, /* Logical Minimum (0) */
- 0x25, 0x01, /* Logical Maximum (1) */
- 0x81, 0x02, /* Input (Data, Variable, Absolute) */
- 0x95, 0x01, /* Report Count (1) */
- 0x75, 0x08, /* Report Size (8) */
- 0x81, 0x03, /* Input (Const, Variable, Absolute) */
- 0x95, 0x05, /* Report Count (5) */
- 0x75, 0x01, /* Report Size (1) */
- 0x05, 0x08, /* Usage Page (LEDs) */
- 0x19, 0x01, /* Usage Minimum (Num Lock) */
- 0x29, 0x05, /* Usage Maximum (Kana) */
- 0x91, 0x02, /* Output (Data, Variable, Absolute) */
- 0x95, 0x01, /* Report Count (1) */
- 0x75, 0x03, /* Report Size (3) */
- 0x91, 0x03, /* Output (Const, Variable, Absolute) */
- 0x95, 0x06, /* Report Count (6) */
- 0x75, 0x08, /* Report Size (8) */
- 0x15, 0x00, /* Logical Minimum (0) */
- 0x25, 0x65, /* Logical Maximum (101) */
- 0x05, 0x07, /* Usage Page (Keyboard) */
- 0x19, 0x00, /* Usage Minimum (Reserved (no event indicated)) */
- 0x29, 0x65, /* Usage Maximum (Keyboard Application) */
- 0x81, 0x00, /* Input (Data, Array, Absolute) */
- 0xC0 /* End Collection */
+ HID_RI_USAGE_PAGE(8), 0x01, /* Generic Desktop */
+ HID_RI_USAGE(8), 0x06, /* Keyboard */
+ HID_RI_COLLECTION(8), 0x01, /* Application */
+ HID_RI_USAGE_PAGE(8), 0x07, /* Key Codes */
+ HID_RI_USAGE_MINIMUM(8), 0xE0, /* Keyboard Left Control */
+ HID_RI_USAGE_MAXIMUM(8), 0xE7, /* Keyboard Right GUI */
+ HID_RI_LOGICAL_MINIMUM(8), 0,
+ HID_RI_LOGICAL_MAXIMUM(8), 1,
+ HID_RI_REPORT_SIZE(8), 1,
+ HID_RI_REPORT_COUNT(8), 8,
+ HID_RI_INPUT(8), (HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE),
+
+ HID_RI_REPORT_COUNT(8), 1,
+ HID_RI_REPORT_SIZE(8), 8,
+ HID_RI_INPUT(8), HID_IOF_CONSTANT,
+
+ HID_RI_USAGE_PAGE(8), 0x08, /* LEDs */
+ HID_RI_USAGE_MINIMUM(8), 0x01, /* Num Lock */
+ HID_RI_USAGE_MAXIMUM(8), 0x05, /* Kana */
+ HID_RI_REPORT_COUNT(8), 5,
+ HID_RI_REPORT_SIZE(8), 1,
+ HID_RI_OUTPUT(8), (HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE),
+ HID_RI_REPORT_COUNT(8), 1,
+ HID_RI_REPORT_SIZE(8), 3,
+ HID_RI_OUTPUT(8), HID_IOF_CONSTANT,
+
+ HID_RI_LOGICAL_MINIMUM(8), 0x00,
+ HID_RI_LOGICAL_MAXIMUM(8), 0x65,
+ HID_RI_USAGE_PAGE(8), 0x07, /* Keyboard */
+ HID_RI_USAGE_MINIMUM(8), 0x00, /* Reserved (no event indicated) */
+ HID_RI_USAGE_MAXIMUM(8), 0x65, /* Keyboard Application */
+ HID_RI_REPORT_COUNT(8), 6,
+ HID_RI_REPORT_SIZE(8), 8,
+ HID_RI_INPUT(8), (HID_IOF_DATA | HID_IOF_ARRAY | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE),
+ HID_RI_END_COLLECTION(0),
};
/** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall
diff --git a/Demos/Device/ClassDriver/MassStorageKeyboard/Descriptors.c b/Demos/Device/ClassDriver/MassStorageKeyboard/Descriptors.c
index b67c74f6f..3d766b6b5 100644
--- a/Demos/Device/ClassDriver/MassStorageKeyboard/Descriptors.c
+++ b/Demos/Device/ClassDriver/MassStorageKeyboard/Descriptors.c
@@ -58,38 +58,41 @@
*/
USB_Descriptor_HIDReport_Datatype_t PROGMEM KeyboardReport[] =
{
- 0x05, 0x01, /* Usage Page (Generic Desktop) */
- 0x09, 0x06, /* Usage (Keyboard) */
- 0xa1, 0x01, /* Collection (Application) */
- 0x75, 0x01, /* Report Size (1) */
- 0x95, 0x08, /* Report Count (8) */
- 0x05, 0x07, /* Usage Page (Key Codes) */
- 0x19, 0xe0, /* Usage Minimum (Keyboard LeftControl) */
- 0x29, 0xe7, /* Usage Maximum (Keyboard Right GUI) */
- 0x15, 0x00, /* Logical Minimum (0) */
- 0x25, 0x01, /* Logical Maximum (1) */
- 0x81, 0x02, /* Input (Data, Variable, Absolute) */
- 0x95, 0x01, /* Report Count (1) */
- 0x75, 0x08, /* Report Size (8) */
- 0x81, 0x03, /* Input (Const, Variable, Absolute) */
- 0x95, 0x05, /* Report Count (5) */
- 0x75, 0x01, /* Report Size (1) */
- 0x05, 0x08, /* Usage Page (LEDs) */
- 0x19, 0x01, /* Usage Minimum (Num Lock) */
- 0x29, 0x05, /* Usage Maximum (Kana) */
- 0x91, 0x02, /* Output (Data, Variable, Absolute) */
- 0x95, 0x01, /* Report Count (1) */
- 0x75, 0x03, /* Report Size (3) */
- 0x91, 0x03, /* Output (Const, Variable, Absolute) */
- 0x95, 0x06, /* Report Count (6) */
- 0x75, 0x08, /* Report Size (8) */
- 0x15, 0x00, /* Logical Minimum (0) */
- 0x25, 0x65, /* Logical Maximum (101) */
- 0x05, 0x07, /* Usage Page (Keyboard) */
- 0x19, 0x00, /* Usage Minimum (Reserved (no event indicated)) */
- 0x29, 0x65, /* Usage Maximum (Keyboard Application) */
- 0x81, 0x00, /* Input (Data, Array, Absolute) */
- 0xc0 /* End Collection */
+ HID_RI_USAGE_PAGE(8), 0x01, /* Generic Desktop */
+ HID_RI_USAGE(8), 0x06, /* Keyboard */
+ HID_RI_COLLECTION(8), 0x01, /* Application */
+ HID_RI_USAGE_PAGE(8), 0x07, /* Key Codes */
+ HID_RI_USAGE_MINIMUM(8), 0xE0, /* Keyboard Left Control */
+ HID_RI_USAGE_MAXIMUM(8), 0xE7, /* Keyboard Right GUI */
+ HID_RI_LOGICAL_MINIMUM(8), 0,
+ HID_RI_LOGICAL_MAXIMUM(8), 1,
+ HID_RI_REPORT_SIZE(8), 1,
+ HID_RI_REPORT_COUNT(8), 8,
+ HID_RI_INPUT(8), (HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE),
+
+ HID_RI_REPORT_COUNT(8), 1,
+ HID_RI_REPORT_SIZE(8), 8,
+ HID_RI_INPUT(8), HID_IOF_CONSTANT,
+
+ HID_RI_USAGE_PAGE(8), 0x08, /* LEDs */
+ HID_RI_USAGE_MINIMUM(8), 0x01, /* Num Lock */
+ HID_RI_USAGE_MAXIMUM(8), 0x05, /* Kana */
+ HID_RI_REPORT_COUNT(8), 5,
+ HID_RI_REPORT_SIZE(8), 1,
+ HID_RI_OUTPUT(8), (HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE),
+ HID_RI_REPORT_COUNT(8), 1,
+ HID_RI_REPORT_SIZE(8), 3,
+ HID_RI_OUTPUT(8), HID_IOF_CONSTANT,
+
+ HID_RI_LOGICAL_MINIMUM(8), 0x00,
+ HID_RI_LOGICAL_MAXIMUM(8), 0x65,
+ HID_RI_USAGE_PAGE(8), 0x07, /* Keyboard */
+ HID_RI_USAGE_MINIMUM(8), 0x00, /* Reserved (no event indicated) */
+ HID_RI_USAGE_MAXIMUM(8), 0x65, /* Keyboard Application */
+ HID_RI_REPORT_COUNT(8), 6,
+ HID_RI_REPORT_SIZE(8), 8,
+ HID_RI_INPUT(8), (HID_IOF_DATA | HID_IOF_ARRAY | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE),
+ HID_RI_END_COLLECTION(0),
};
/** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall
diff --git a/Demos/Device/ClassDriver/Mouse/Descriptors.c b/Demos/Device/ClassDriver/Mouse/Descriptors.c
index fa78246a4..58a4ae4dc 100644
--- a/Demos/Device/ClassDriver/Mouse/Descriptors.c
+++ b/Demos/Device/ClassDriver/Mouse/Descriptors.c
@@ -45,32 +45,36 @@
*/
USB_Descriptor_HIDReport_Datatype_t PROGMEM MouseReport[] =
{
- 0x05, 0x01, /* Usage Page (Generic Desktop) */
- 0x09, 0x02, /* Usage (Mouse) */
- 0xA1, 0x01, /* Collection (Application) */
- 0x09, 0x01, /* Usage (Pointer) */
- 0xA1, 0x00, /* Collection (Application) */
- 0x95, 0x03, /* Report Count (3) */
- 0x75, 0x01, /* Report Size (1) */
- 0x05, 0x09, /* Usage Page (Button) */
- 0x19, 0x01, /* Usage Minimum (Button 1) */
- 0x29, 0x03, /* Usage Maximum (Button 3) */
- 0x15, 0x00, /* Logical Minimum (0) */
- 0x25, 0x01, /* Logical Maximum (1) */
- 0x81, 0x02, /* Input (Data, Variable, Absolute) */
- 0x95, 0x01, /* Report Count (1) */
- 0x75, 0x05, /* Report Size (5) */
- 0x81, 0x01, /* Input (Constant) */
- 0x75, 0x08, /* Report Size (8) */
- 0x95, 0x02, /* Report Count (2) */
- 0x05, 0x01, /* Usage Page (Generic Desktop Control) */
- 0x09, 0x30, /* Usage X */
- 0x09, 0x31, /* Usage Y */
- 0x15, 0x81, /* Logical Minimum (-127) */
- 0x25, 0x7F, /* Logical Maximum (127) */
- 0x81, 0x06, /* Input (Data, Variable, Relative) */
- 0xC0, /* End Collection */
- 0xC0 /* End Collection */
+ HID_RI_USAGE_PAGE(8), 0x01, /* Generic Desktop */
+ HID_RI_USAGE(8), 0x02, /* Mouse */
+ HID_RI_COLLECTION(8), 0x01, /* Application */
+ HID_RI_USAGE(8), 0x01, /* Pointer */
+ HID_RI_COLLECTION(8), 0x00, /* Physical */
+ HID_RI_USAGE_PAGE(8), 0x09, /* Button */
+ HID_RI_USAGE_MINIMUM(8), 0x01,
+ HID_RI_USAGE_MAXIMUM(8), 0x03,
+ HID_RI_LOGICAL_MINIMUM(8), 0,
+ HID_RI_LOGICAL_MAXIMUM(8), 1,
+ HID_RI_REPORT_COUNT(8), 3,
+ HID_RI_REPORT_SIZE(8), 1,
+ HID_RI_INPUT(8), (HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_VOLATILE),
+
+ HID_RI_REPORT_COUNT(8), 1,
+ HID_RI_REPORT_SIZE(8), 5,
+ HID_RI_INPUT(8), HID_IOF_CONSTANT,
+
+ HID_RI_USAGE_PAGE(8), 0x01, /* Generic Desktop */
+ HID_RI_USAGE(8), 0x30, /* Usage X */
+ HID_RI_USAGE(8), 0x31, /* Usage Y */
+ HID_RI_LOGICAL_MINIMUM(8), -1,
+ HID_RI_LOGICAL_MAXIMUM(8), 1,
+ HID_RI_PHYSICAL_MINIMUM(8), -1,
+ HID_RI_PHYSICAL_MAXIMUM(8), 1,
+ HID_RI_REPORT_COUNT(8), 2,
+ HID_RI_REPORT_SIZE(8), 8,
+ HID_RI_INPUT(8), (HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_RELATIVE | HID_IOF_NON_VOLATILE),
+ HID_RI_END_COLLECTION(0),
+ HID_RI_END_COLLECTION(0),
};
/** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall
diff --git a/Demos/Device/ClassDriver/VirtualSerialMouse/Descriptors.c b/Demos/Device/ClassDriver/VirtualSerialMouse/Descriptors.c
index 1e76ec233..7cf15e0e1 100644
--- a/Demos/Device/ClassDriver/VirtualSerialMouse/Descriptors.c
+++ b/Demos/Device/ClassDriver/VirtualSerialMouse/Descriptors.c
@@ -57,32 +57,36 @@
*/
USB_Descriptor_HIDReport_Datatype_t PROGMEM MouseReport[] =
{
- 0x05, 0x01, /* Usage Page (Generic Desktop) */
- 0x09, 0x02, /* Usage (Mouse) */
- 0xA1, 0x01, /* Collection (Application) */
- 0x09, 0x01, /* Usage (Pointer) */
- 0xA1, 0x00, /* Collection (Application) */
- 0x95, 0x03, /* Report Count (3) */
- 0x75, 0x01, /* Report Size (1) */
- 0x05, 0x09, /* Usage Page (Button) */
- 0x19, 0x01, /* Usage Minimum (Button 1) */
- 0x29, 0x03, /* Usage Maximum (Button 3) */
- 0x15, 0x00, /* Logical Minimum (0) */
- 0x25, 0x01, /* Logical Maximum (1) */
- 0x81, 0x02, /* Input (Data, Variable, Absolute) */
- 0x95, 0x01, /* Report Count (1) */
- 0x75, 0x05, /* Report Size (5) */
- 0x81, 0x01, /* Input (Constant) */
- 0x75, 0x08, /* Report Size (8) */
- 0x95, 0x02, /* Report Count (2) */
- 0x05, 0x01, /* Usage Page (Generic Desktop Control) */
- 0x09, 0x30, /* Usage X */
- 0x09, 0x31, /* Usage Y */
- 0x15, 0x81, /* Logical Minimum (-127) */
- 0x25, 0x7F, /* Logical Maximum (127) */
- 0x81, 0x06, /* Input (Data, Variable, Relative) */
- 0xC0, /* End Collection */
- 0xC0 /* End Collection */
+ HID_RI_USAGE_PAGE(8), 0x01, /* Generic Desktop */
+ HID_RI_USAGE(8), 0x02, /* Mouse */
+ HID_RI_COLLECTION(8), 0x01, /* Application */
+ HID_RI_USAGE(8), 0x01, /* Pointer */
+ HID_RI_COLLECTION(8), 0x00, /* Physical */
+ HID_RI_USAGE_PAGE(8), 0x09, /* Button */
+ HID_RI_USAGE_MINIMUM(8), 0x01,
+ HID_RI_USAGE_MAXIMUM(8), 0x03,
+ HID_RI_LOGICAL_MINIMUM(8), 0,
+ HID_RI_LOGICAL_MAXIMUM(8), 1,
+ HID_RI_REPORT_COUNT(8), 3,
+ HID_RI_REPORT_SIZE(8), 1,
+ HID_RI_INPUT(8), (HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_VOLATILE),
+
+ HID_RI_REPORT_COUNT(8), 1,
+ HID_RI_REPORT_SIZE(8), 5,
+ HID_RI_INPUT(8), HID_IOF_CONSTANT,
+
+ HID_RI_USAGE_PAGE(8), 0x01, /* Generic Desktop */
+ HID_RI_USAGE(8), 0x30, /* Usage X */
+ HID_RI_USAGE(8), 0x31, /* Usage Y */
+ HID_RI_LOGICAL_MINIMUM(8), -1,
+ HID_RI_LOGICAL_MAXIMUM(8), 1,
+ HID_RI_PHYSICAL_MINIMUM(8), -1,
+ HID_RI_PHYSICAL_MAXIMUM(8), 1,
+ HID_RI_REPORT_COUNT(8), 2,
+ HID_RI_REPORT_SIZE(8), 8,
+ HID_RI_INPUT(8), (HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_RELATIVE | HID_IOF_NON_VOLATILE),
+ HID_RI_END_COLLECTION(0),
+ HID_RI_END_COLLECTION(0),
};
/** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall
diff --git a/Demos/Device/LowLevel/GenericHID/Descriptors.c b/Demos/Device/LowLevel/GenericHID/Descriptors.c
index 7b30cb921..3a018d9ad 100644
--- a/Demos/Device/LowLevel/GenericHID/Descriptors.c
+++ b/Demos/Device/LowLevel/GenericHID/Descriptors.c
@@ -45,22 +45,23 @@
*/
USB_Descriptor_HIDReport_Datatype_t PROGMEM GenericReport[] =
{
- 0x06, 0x9c, 0xff, /* Usage Page (Vendor Defined) */
- 0x09, 0x01, /* Usage (Vendor Defined) */
- 0xa1, 0x01, /* Collection (Vendor Defined) */
- 0x09, 0x02, /* Usage (Vendor Defined) */
- 0x75, 0x08, /* Report Size (8) */
- 0x95, GENERIC_REPORT_SIZE, /* Report Count (GENERIC_REPORT_SIZE) */
- 0x15, 0x00, /* Logical Minimum (0) */
- 0x25, 0xff, /* Logical Maximum (255) */
- 0x81, 0x02, /* Input (Data, Variable, Absolute) */
- 0x09, 0x03, /* Usage (Vendor Defined) */
- 0x75, 0x08, /* Report Size (8) */
- 0x95, GENERIC_REPORT_SIZE, /* Report Count (GENERIC_REPORT_SIZE) */
- 0x15, 0x00, /* Logical Minimum (0) */
- 0x25, 0xff, /* Logical Maximum (255) */
- 0x91, 0x02, /* Output (Data, Variable, Absolute) */
- 0xc0 /* End Collection */
+ HID_RI_USAGE_PAGE(16), 0x00, 0xFF, /* Vendor Page 1 */
+ HID_RI_USAGE(8), 0x01, /* Vendor Usage 1 */
+ HID_RI_COLLECTION(8), 0x01, /* Vendor Usage 1 */
+ HID_RI_USAGE(8), 0x02, /* Vendor Usage 2 */
+ HID_RI_LOGICAL_MINIMUM(8), 0x00,
+ HID_RI_LOGICAL_MAXIMUM(8), 0xFF,
+ HID_RI_REPORT_SIZE(8), 8,
+ HID_RI_REPORT_COUNT(8), GENERIC_REPORT_SIZE,
+ HID_RI_INPUT(8), (HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_VOLATILE),
+
+ HID_RI_USAGE(8), 0x03, /* Vendor Usage 3 */
+ HID_RI_LOGICAL_MINIMUM(8), 0x00,
+ HID_RI_LOGICAL_MAXIMUM(8), 0xFF,
+ HID_RI_REPORT_SIZE(8), 8,
+ HID_RI_REPORT_COUNT(8), GENERIC_REPORT_SIZE,
+ HID_RI_OUTPUT(8), (HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_VOLATILE),
+ HID_RI_END_COLLECTION(0),
};
/** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall
diff --git a/Demos/Device/LowLevel/Joystick/Descriptors.c b/Demos/Device/LowLevel/Joystick/Descriptors.c
index a0f72fb59..bc0b430b3 100644
--- a/Demos/Device/LowLevel/Joystick/Descriptors.c
+++ b/Demos/Device/LowLevel/Joystick/Descriptors.c
@@ -45,32 +45,31 @@
*/
USB_Descriptor_HIDReport_Datatype_t PROGMEM JoystickReport[] =
{
- 0x05, 0x01, /* Usage Page (Generic Desktop) */
- 0x09, 0x04, /* Usage (Joystick) */
- 0xa1, 0x01, /* Collection (Application) */
- 0x09, 0x01, /* Usage (Pointer) */
- 0xa1, 0x00, /* Collection (Physical) */
- 0x05, 0x01, /* Usage Page (Generic Desktop) */
- 0x09, 0x30, /* Usage (X) */
- 0x09, 0x31, /* Usage (Y) */
- 0x15, 0x9c, /* Logical Minimum (-100) */
- 0x25, 0x64, /* Logical Maximum (100) */
- 0x75, 0x08, /* Report Size (8) */
- 0x95, 0x02, /* Report Count (2) */
- 0x81, 0x82, /* Input (Data, Variable, Absolute, Volatile) */
- 0xc0, /* End Collection */
- 0x05, 0x09, /* Usage Page (Button) */
- 0x09, 0x02, /* Usage (Button 2) */
- 0x09, 0x01, /* Usage (Button 1) */
- 0x15, 0x00, /* Logical Minimum (0) */
- 0x25, 0x01, /* Logical Maximum (1) */
- 0x75, 0x01, /* Report Size (1) */
- 0x95, 0x02, /* Report Count (2) */
- 0x81, 0x02, /* Input (Data, Variable, Absolute) */
- 0x75, 0x06, /* Report Size (6) */
- 0x95, 0x01, /* Report Count (1) */
- 0x81, 0x01, /* Input (Constant) */
- 0xc0 /* End Collection */
+ HID_RI_USAGE_PAGE(8), 0x01, /* Generic Desktop */
+ HID_RI_USAGE(8), 0x04, /* Joystick */
+ HID_RI_COLLECTION(8), 0x01, /* Application */
+ HID_RI_USAGE(8), 0x01, /* Pointer */
+ HID_RI_COLLECTION(8), 0x00, /* Physical */
+ HID_RI_USAGE(8), 0x30, /* Usage X */
+ HID_RI_USAGE(8), 0x31, /* Usage Y */
+ HID_RI_LOGICAL_MINIMUM(8), -100,
+ HID_RI_LOGICAL_MAXIMUM(8), 100,
+ HID_RI_REPORT_SIZE(8), 8,
+ HID_RI_REPORT_COUNT(8), 2,
+ HID_RI_INPUT(8), (HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE),
+ HID_RI_END_COLLECTION(0),
+ HID_RI_USAGE_PAGE(8), 0x09, /* Button */
+ HID_RI_USAGE(8), 0x02, /* Button 1 */
+ HID_RI_USAGE(8), 0x01, /* Button 2 */
+ HID_RI_LOGICAL_MINIMUM(8), 0,
+ HID_RI_LOGICAL_MAXIMUM(8), 1,
+ HID_RI_REPORT_SIZE(8), 1,
+ HID_RI_REPORT_COUNT(8), 2,
+ HID_RI_INPUT(8), (HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE),
+ HID_RI_REPORT_SIZE(8), 6,
+ HID_RI_REPORT_COUNT(8), 1,
+ HID_RI_INPUT(8), HID_IOF_CONSTANT,
+ HID_RI_END_COLLECTION(0),
};
/** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall
diff --git a/Demos/Device/LowLevel/Keyboard/Descriptors.c b/Demos/Device/LowLevel/Keyboard/Descriptors.c
index 1ad2dd3c4..8e5cf1524 100644
--- a/Demos/Device/LowLevel/Keyboard/Descriptors.c
+++ b/Demos/Device/LowLevel/Keyboard/Descriptors.c
@@ -46,38 +46,41 @@
*/
USB_Descriptor_HIDReport_Datatype_t PROGMEM KeyboardReport[] =
{
- 0x05, 0x01, /* Usage Page (Generic Desktop) */
- 0x09, 0x06, /* Usage (Keyboard) */
- 0xa1, 0x01, /* Collection (Application) */
- 0x75, 0x01, /* Report Size (1) */
- 0x95, 0x08, /* Report Count (8) */
- 0x05, 0x07, /* Usage Page (Key Codes) */
- 0x19, 0xe0, /* Usage Minimum (Keyboard LeftControl) */
- 0x29, 0xe7, /* Usage Maximum (Keyboard Right GUI) */
- 0x15, 0x00, /* Logical Minimum (0) */
- 0x25, 0x01, /* Logical Maximum (1) */
- 0x81, 0x02, /* Input (Data, Variable, Absolute) */
- 0x95, 0x01, /* Report Count (1) */
- 0x75, 0x08, /* Report Size (8) */
- 0x81, 0x03, /* Input (Const, Variable, Absolute) */
- 0x95, 0x05, /* Report Count (5) */
- 0x75, 0x01, /* Report Size (1) */
- 0x05, 0x08, /* Usage Page (LEDs) */
- 0x19, 0x01, /* Usage Minimum (Num Lock) */
- 0x29, 0x05, /* Usage Maximum (Kana) */
- 0x91, 0x02, /* Output (Data, Variable, Absolute) */
- 0x95, 0x01, /* Report Count (1) */
- 0x75, 0x03, /* Report Size (3) */
- 0x91, 0x03, /* Output (Const, Variable, Absolute) */
- 0x95, 0x06, /* Report Count (6) */
- 0x75, 0x08, /* Report Size (8) */
- 0x15, 0x00, /* Logical Minimum (0) */
- 0x25, 0x65, /* Logical Maximum (101) */
- 0x05, 0x07, /* Usage Page (Keyboard) */
- 0x19, 0x00, /* Usage Minimum (Reserved (no event indicated)) */
- 0x29, 0x65, /* Usage Maximum (Keyboard Application) */
- 0x81, 0x00, /* Input (Data, Array, Absolute) */
- 0xc0 /* End Collection */
+ HID_RI_USAGE_PAGE(8), 0x01, /* Generic Desktop */
+ HID_RI_USAGE(8), 0x06, /* Keyboard */
+ HID_RI_COLLECTION(8), 0x01, /* Application */
+ HID_RI_USAGE_PAGE(8), 0x07, /* Key Codes */
+ HID_RI_USAGE_MINIMUM(8), 0xE0, /* Keyboard Left Control */
+ HID_RI_USAGE_MAXIMUM(8), 0xE7, /* Keyboard Right GUI */
+ HID_RI_LOGICAL_MINIMUM(8), 0,
+ HID_RI_LOGICAL_MAXIMUM(8), 1,
+ HID_RI_REPORT_SIZE(8), 1,
+ HID_RI_REPORT_COUNT(8), 8,
+ HID_RI_INPUT(8), (HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE),
+
+ HID_RI_REPORT_COUNT(8), 1,
+ HID_RI_REPORT_SIZE(8), 8,
+ HID_RI_INPUT(8), HID_IOF_CONSTANT,
+
+ HID_RI_USAGE_PAGE(8), 0x08, /* LEDs */
+ HID_RI_USAGE_MINIMUM(8), 0x01, /* Num Lock */
+ HID_RI_USAGE_MAXIMUM(8), 0x05, /* Kana */
+ HID_RI_REPORT_COUNT(8), 5,
+ HID_RI_REPORT_SIZE(8), 1,
+ HID_RI_OUTPUT(8), (HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE),
+ HID_RI_REPORT_COUNT(8), 1,
+ HID_RI_REPORT_SIZE(8), 3,
+ HID_RI_OUTPUT(8), HID_IOF_CONSTANT,
+
+ HID_RI_LOGICAL_MINIMUM(8), 0x00,
+ HID_RI_LOGICAL_MAXIMUM(8), 0x65,
+ HID_RI_USAGE_PAGE(8), 0x07, /* Keyboard */
+ HID_RI_USAGE_MINIMUM(8), 0x00, /* Reserved (no event indicated) */
+ HID_RI_USAGE_MAXIMUM(8), 0x65, /* Keyboard Application */
+ HID_RI_REPORT_COUNT(8), 6,
+ HID_RI_REPORT_SIZE(8), 8,
+ HID_RI_INPUT(8), (HID_IOF_DATA | HID_IOF_ARRAY | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE),
+ HID_RI_END_COLLECTION(0),
};
/** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall
diff --git a/Demos/Device/LowLevel/KeyboardMouse/Descriptors.c b/Demos/Device/LowLevel/KeyboardMouse/Descriptors.c
index de74aca9f..2d8fd44cd 100644
--- a/Demos/Device/LowLevel/KeyboardMouse/Descriptors.c
+++ b/Demos/Device/LowLevel/KeyboardMouse/Descriptors.c
@@ -48,69 +48,76 @@
*/
USB_Descriptor_HIDReport_Datatype_t PROGMEM MouseReport[] =
{
- 0x05, 0x01, /* Usage Page (Generic Desktop) */
- 0x09, 0x02, /* Usage (Mouse) */
- 0xA1, 0x01, /* Collection (Application) */
- 0x09, 0x01, /* Usage (Pointer) */
- 0xA1, 0x00, /* Collection (Physical) */
- 0x95, 0x03, /* Report Count (3) */
- 0x75, 0x01, /* Report Size (1) */
- 0x05, 0x09, /* Usage Page (Button) */
- 0x19, 0x01, /* Usage Minimum (Button 1) */
- 0x29, 0x03, /* Usage Maximum (Button 3) */
- 0x15, 0x00, /* Logical Minimum (0) */
- 0x25, 0x01, /* Logical Maximum (1) */
- 0x81, 0x02, /* Input (Data, Variable, Absolute) */
- 0x95, 0x01, /* Report Count (1) */
- 0x75, 0x05, /* Report Size (5) */
- 0x81, 0x01, /* Input (Constant) */
- 0x75, 0x08, /* Report Size (8) */
- 0x95, 0x02, /* Report Count (2) */
- 0x05, 0x01, /* Usage Page (Generic Desktop Control) */
- 0x09, 0x30, /* Usage X */
- 0x09, 0x31, /* Usage Y */
- 0x15, 0x81, /* Logical Minimum (-127) */
- 0x25, 0x7F, /* Logical Maximum (127) */
- 0x81, 0x06, /* Input (Data, Variable, Relative) */
- 0xC0, /* End Collection */
- 0xC0, /* End Collection */
+ HID_RI_USAGE_PAGE(8), 0x01, /* Generic Desktop */
+ HID_RI_USAGE(8), 0x02, /* Mouse */
+ HID_RI_COLLECTION(8), 0x01, /* Application */
+ HID_RI_USAGE(8), 0x01, /* Pointer */
+ HID_RI_COLLECTION(8), 0x00, /* Physical */
+ HID_RI_USAGE_PAGE(8), 0x09, /* Button */
+ HID_RI_USAGE_MINIMUM(8), 0x01,
+ HID_RI_USAGE_MAXIMUM(8), 0x03,
+ HID_RI_LOGICAL_MINIMUM(8), 0,
+ HID_RI_LOGICAL_MAXIMUM(8), 1,
+ HID_RI_REPORT_COUNT(8), 3,
+ HID_RI_REPORT_SIZE(8), 1,
+ HID_RI_INPUT(8), (HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_VOLATILE),
+
+ HID_RI_REPORT_COUNT(8), 1,
+ HID_RI_REPORT_SIZE(8), 5,
+ HID_RI_INPUT(8), HID_IOF_CONSTANT,
+
+ HID_RI_USAGE_PAGE(8), 0x01, /* Generic Desktop */
+ HID_RI_USAGE(8), 0x30, /* Usage X */
+ HID_RI_USAGE(8), 0x31, /* Usage Y */
+ HID_RI_LOGICAL_MINIMUM(8), -1,
+ HID_RI_LOGICAL_MAXIMUM(8), 1,
+ HID_RI_PHYSICAL_MINIMUM(8), -1,
+ HID_RI_PHYSICAL_MAXIMUM(8), 1,
+ HID_RI_REPORT_COUNT(8), 2,
+ HID_RI_REPORT_SIZE(8), 8,
+ HID_RI_INPUT(8), (HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_RELATIVE | HID_IOF_NON_VOLATILE),
+ HID_RI_END_COLLECTION(0),
+ HID_RI_END_COLLECTION(0),
};
/** Same as the MouseReport structure, but defines the keyboard HID interface's report structure. */
USB_Descriptor_HIDReport_Datatype_t PROGMEM KeyboardReport[] =
{
- 0x05, 0x01, /* Usage Page (Generic Desktop) */
- 0x09, 0x06, /* Usage (Keyboard) */
- 0xa1, 0x01, /* Collection (Application) */
- 0x75, 0x01, /* Report Size (1) */
- 0x95, 0x08, /* Report Count (8) */
- 0x05, 0x07, /* Usage Page (Key Codes) */
- 0x19, 0xe0, /* Usage Minimum (Keyboard LeftControl) */
- 0x29, 0xe7, /* Usage Maximum (Keyboard Right GUI) */
- 0x15, 0x00, /* Logical Minimum (0) */
- 0x25, 0x01, /* Logical Maximum (1) */
- 0x81, 0x02, /* Input (Data, Variable, Absolute) */
- 0x95, 0x01, /* Report Count (1) */
- 0x75, 0x08, /* Report Size (8) */
- 0x81, 0x03, /* Input (Const, Variable, Absolute) */
- 0x95, 0x05, /* Report Count (5) */
- 0x75, 0x01, /* Report Size (1) */
- 0x05, 0x08, /* Usage Page (LEDs) */
- 0x19, 0x01, /* Usage Minimum (Num Lock) */
- 0x29, 0x05, /* Usage Maximum (Kana) */
- 0x91, 0x02, /* Output (Data, Variable, Absolute) */
- 0x95, 0x01, /* Report Count (1) */
- 0x75, 0x03, /* Report Size (3) */
- 0x91, 0x03, /* Output (Const, Variable, Absolute) */
- 0x95, 0x06, /* Report Count (6) */
- 0x75, 0x08, /* Report Size (8) */
- 0x15, 0x00, /* Logical Minimum (0) */
- 0x25, 0x65, /* Logical Maximum (101) */
- 0x05, 0x07, /* Usage Page (Keyboard) */
- 0x19, 0x00, /* Usage Minimum (Reserved (no event indicated)) */
- 0x29, 0x65, /* Usage Maximum (Keyboard Application) */
- 0x81, 0x00, /* Input (Data, Array, Absolute) */
- 0xC0 /* End Collection */
+ HID_RI_USAGE_PAGE(8), 0x01, /* Generic Desktop */
+ HID_RI_USAGE(8), 0x06, /* Keyboard */
+ HID_RI_COLLECTION(8), 0x01, /* Application */
+ HID_RI_USAGE_PAGE(8), 0x07, /* Key Codes */
+ HID_RI_USAGE_MINIMUM(8), 0xE0, /* Keyboard Left Control */
+ HID_RI_USAGE_MAXIMUM(8), 0xE7, /* Keyboard Right GUI */
+ HID_RI_LOGICAL_MINIMUM(8), 0,
+ HID_RI_LOGICAL_MAXIMUM(8), 1,
+ HID_RI_REPORT_SIZE(8), 1,
+ HID_RI_REPORT_COUNT(8), 8,
+ HID_RI_INPUT(8), (HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE),
+
+ HID_RI_REPORT_COUNT(8), 1,
+ HID_RI_REPORT_SIZE(8), 8,
+ HID_RI_INPUT(8), HID_IOF_CONSTANT,
+
+ HID_RI_USAGE_PAGE(8), 0x08, /* LEDs */
+ HID_RI_USAGE_MINIMUM(8), 0x01, /* Num Lock */
+ HID_RI_USAGE_MAXIMUM(8), 0x05, /* Kana */
+ HID_RI_REPORT_COUNT(8), 5,
+ HID_RI_REPORT_SIZE(8), 1,
+ HID_RI_OUTPUT(8), (HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE),
+ HID_RI_REPORT_COUNT(8), 1,
+ HID_RI_REPORT_SIZE(8), 3,
+ HID_RI_OUTPUT(8), HID_IOF_CONSTANT,
+
+ HID_RI_LOGICAL_MINIMUM(8), 0x00,
+ HID_RI_LOGICAL_MAXIMUM(8), 0x65,
+ HID_RI_USAGE_PAGE(8), 0x07, /* Keyboard */
+ HID_RI_USAGE_MINIMUM(8), 0x00, /* Reserved (no event indicated) */
+ HID_RI_USAGE_MAXIMUM(8), 0x65, /* Keyboard Application */
+ HID_RI_REPORT_COUNT(8), 6,
+ HID_RI_REPORT_SIZE(8), 8,
+ HID_RI_INPUT(8), (HID_IOF_DATA | HID_IOF_ARRAY | HID_IOF_ABSOLUTE | HID_IOF_NON_VOLATILE),
+ HID_RI_END_COLLECTION(0),
};
/** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall
diff --git a/Demos/Device/LowLevel/Mouse/Descriptors.c b/Demos/Device/LowLevel/Mouse/Descriptors.c
index fa78246a4..58a4ae4dc 100644
--- a/Demos/Device/LowLevel/Mouse/Descriptors.c
+++ b/Demos/Device/LowLevel/Mouse/Descriptors.c
@@ -45,32 +45,36 @@
*/
USB_Descriptor_HIDReport_Datatype_t PROGMEM MouseReport[] =
{
- 0x05, 0x01, /* Usage Page (Generic Desktop) */
- 0x09, 0x02, /* Usage (Mouse) */
- 0xA1, 0x01, /* Collection (Application) */
- 0x09, 0x01, /* Usage (Pointer) */
- 0xA1, 0x00, /* Collection (Application) */
- 0x95, 0x03, /* Report Count (3) */
- 0x75, 0x01, /* Report Size (1) */
- 0x05, 0x09, /* Usage Page (Button) */
- 0x19, 0x01, /* Usage Minimum (Button 1) */
- 0x29, 0x03, /* Usage Maximum (Button 3) */
- 0x15, 0x00, /* Logical Minimum (0) */
- 0x25, 0x01, /* Logical Maximum (1) */
- 0x81, 0x02, /* Input (Data, Variable, Absolute) */
- 0x95, 0x01, /* Report Count (1) */
- 0x75, 0x05, /* Report Size (5) */
- 0x81, 0x01, /* Input (Constant) */
- 0x75, 0x08, /* Report Size (8) */
- 0x95, 0x02, /* Report Count (2) */
- 0x05, 0x01, /* Usage Page (Generic Desktop Control) */
- 0x09, 0x30, /* Usage X */
- 0x09, 0x31, /* Usage Y */
- 0x15, 0x81, /* Logical Minimum (-127) */
- 0x25, 0x7F, /* Logical Maximum (127) */
- 0x81, 0x06, /* Input (Data, Variable, Relative) */
- 0xC0, /* End Collection */
- 0xC0 /* End Collection */
+ HID_RI_USAGE_PAGE(8), 0x01, /* Generic Desktop */
+ HID_RI_USAGE(8), 0x02, /* Mouse */
+ HID_RI_COLLECTION(8), 0x01, /* Application */
+ HID_RI_USAGE(8), 0x01, /* Pointer */
+ HID_RI_COLLECTION(8), 0x00, /* Physical */
+ HID_RI_USAGE_PAGE(8), 0x09, /* Button */
+ HID_RI_USAGE_MINIMUM(8), 0x01,
+ HID_RI_USAGE_MAXIMUM(8), 0x03,
+ HID_RI_LOGICAL_MINIMUM(8), 0,
+ HID_RI_LOGICAL_MAXIMUM(8), 1,
+ HID_RI_REPORT_COUNT(8), 3,
+ HID_RI_REPORT_SIZE(8), 1,
+ HID_RI_INPUT(8), (HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_VOLATILE),
+
+ HID_RI_REPORT_COUNT(8), 1,
+ HID_RI_REPORT_SIZE(8), 5,
+ HID_RI_INPUT(8), HID_IOF_CONSTANT,
+
+ HID_RI_USAGE_PAGE(8), 0x01, /* Generic Desktop */
+ HID_RI_USAGE(8), 0x30, /* Usage X */
+ HID_RI_USAGE(8), 0x31, /* Usage Y */
+ HID_RI_LOGICAL_MINIMUM(8), -1,
+ HID_RI_LOGICAL_MAXIMUM(8), 1,
+ HID_RI_PHYSICAL_MINIMUM(8), -1,
+ HID_RI_PHYSICAL_MAXIMUM(8), 1,
+ HID_RI_REPORT_COUNT(8), 2,
+ HID_RI_REPORT_SIZE(8), 8,
+ HID_RI_INPUT(8), (HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_RELATIVE | HID_IOF_NON_VOLATILE),
+ HID_RI_END_COLLECTION(0),
+ HID_RI_END_COLLECTION(0),
};
/** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall
diff --git a/Demos/DualRole/ClassDriver/MouseHostDevice/Descriptors.c b/Demos/DualRole/ClassDriver/MouseHostDevice/Descriptors.c
index 1c37617c0..314953eae 100644
--- a/Demos/DualRole/ClassDriver/MouseHostDevice/Descriptors.c
+++ b/Demos/DualRole/ClassDriver/MouseHostDevice/Descriptors.c
@@ -45,32 +45,34 @@
*/
USB_Descriptor_HIDReport_Datatype_t PROGMEM MouseReport[] =
{
- 0x05, 0x01, /* Usage Page (Generic Desktop) */
- 0x09, 0x02, /* Usage (Mouse) */
- 0xA1, 0x01, /* Collection (Application) */
- 0x09, 0x01, /* Usage (Pointer) */
- 0xA1, 0x00, /* Collection (Application) */
- 0x95, 0x03, /* Report Count (3) */
- 0x75, 0x01, /* Report Size (1) */
- 0x05, 0x09, /* Usage Page (Button) */
- 0x19, 0x01, /* Usage Minimum (Button 1) */
- 0x29, 0x03, /* Usage Maximum (Button 3) */
- 0x15, 0x00, /* Logical Minimum (0) */
- 0x25, 0x01, /* Logical Maximum (1) */
- 0x81, 0x02, /* Input (Data, Variable, Absolute) */
- 0x95, 0x01, /* Report Count (1) */
- 0x75, 0x05, /* Report Size (5) */
- 0x81, 0x01, /* Input (Constant) */
- 0x75, 0x08, /* Report Size (8) */
- 0x95, 0x02, /* Report Count (2) */
- 0x05, 0x01, /* Usage Page (Generic Desktop Control) */
- 0x09, 0x30, /* Usage X */
- 0x09, 0x31, /* Usage Y */
- 0x15, 0x81, /* Logical Minimum (-127) */
- 0x25, 0x7F, /* Logical Maximum (127) */
- 0x81, 0x06, /* Input (Data, Variable, Relative) */
- 0xC0, /* End Collection */
- 0xC0 /* End Collection */
+ HID_RI_USAGE_PAGE(8), 0x01, /* Generic Desktop */
+ HID_RI_USAGE(8), 0x02, /* Mouse */
+ HID_RI_COLLECTION(8), 0x01, /* Application */
+ HID_RI_USAGE(8), 0x01, /* Pointer */
+ HID_RI_COLLECTION(8), 0x00, /* Physical */
+ HID_RI_USAGE_PAGE(8), 0x09, /* Button */
+ HID_RI_USAGE_MINIMUM(8), 0x01,
+ HID_RI_USAGE_MAXIMUM(8), 0x03,
+ HID_RI_LOGICAL_MINIMUM(8), 0,
+ HID_RI_LOGICAL_MAXIMUM(8), 1,
+ HID_RI_REPORT_COUNT(8), 3,
+ HID_RI_REPORT_SIZE(8), 1,
+ HID_RI_INPUT(8), (HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE | HID_IOF_VOLATILE),
+
+ HID_RI_REPORT_COUNT(8), 1,
+ HID_RI_REPORT_SIZE(8), 5,
+ HID_RI_INPUT(8), HID_IOF_CONSTANT,
+
+ HID_RI_USAGE_PAGE(8), 0x01, /* Generic Desktop */
+ HID_RI_USAGE(8), 0x30, /* Usage X */
+ HID_RI_USAGE(8), 0x31, /* Usage Y */
+ HID_RI_LOGICAL_MINIMUM(8), -128,
+ HID_RI_LOGICAL_MAXIMUM(8), 127,
+ HID_RI_REPORT_COUNT(8), 2,
+ HID_RI_REPORT_SIZE(8), 8,
+ HID_RI_INPUT(8), (HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_RELATIVE | HID_IOF_NON_VOLATILE),
+ HID_RI_END_COLLECTION(0),
+ HID_RI_END_COLLECTION(0),
};
/** Device descriptor structure. This descriptor, located in FLASH memory, describes the overall