USB Mouse (relative) example for mbed NXP LPC11U24 beta
HID_devices/USBKeyboard.c
- Committer:
- chris
- Date:
- 2011-11-09
- Revision:
- 1:e089be2a6aa1
- Parent:
- 0:163560051396
File content as of revision 1:e089be2a6aa1:
/* USBKeyboard.c */ /* USB device example: Standard keyboard */ /* Copyright (c) 2011 ARM Limited. All rights reserved. */ #include "stdint.h" #include "USBKeyboard.h" /* * Descriptors */ uint8_t * USBKeyboard::ReportDesc() { static uint8_t reportDescriptor[] = { /* Based on Appendix E.6 of "Device Class Definition for Human Interface Devices (HID)" Version 1.11. */ USAGE_PAGE(1), 0x01, /* Generic Desktop */ USAGE(1), 0x06, /* Keyboard */ COLLECTION(1), 0x01, /* Application*/ REPORT_ID(1), REPORT_ID_KEYBOARD, USAGE_PAGE(1), 0x07, /* Key Codes */ USAGE_MINIMUM(1), 0xE0, USAGE_MAXIMUM(1), 0xE7, LOGICAL_MINIMUM(1), 0x00, LOGICAL_MAXIMUM(1), 0x01, REPORT_SIZE(1), 0x01, REPORT_COUNT(1), 0x08, INPUT(1), 0x02, /* Data, Variable, Absolute */ REPORT_COUNT(1), 0x01, REPORT_SIZE(1), 0x08, INPUT(1), 0x01, /* Constant */ REPORT_COUNT(1), 0x05, REPORT_SIZE(1), 0x01, USAGE_PAGE(1), 0x08, /* LEDs */ USAGE_MINIMUM(1), 0x01, USAGE_MAXIMUM(1), 0x05, OUTPUT(1), 0x02, /* Data, Variable, Absolute */ REPORT_COUNT(1), 0x01, REPORT_SIZE(1), 0x03, OUTPUT(1), 0x01, /* Constant */ REPORT_COUNT(1), 0x06, REPORT_SIZE(1), 0x08, LOGICAL_MINIMUM(1), 0x00, LOGICAL_MAXIMUM(1), 0x65, USAGE_PAGE(1), 0x07, /* Key Codes */ USAGE_MINIMUM(1), 0x00, USAGE_MAXIMUM(1), 0x65, INPUT(1), 0x00, /* Data, Array */ END_COLLECTION(0), /* Media Control */ USAGE_PAGE(1), 0x0C, USAGE(1), 0x01, COLLECTION(1), 0x01, REPORT_ID(1), REPORT_ID_VOLUME, USAGE_PAGE(1), 0x0C, LOGICAL_MINIMUM(1), 0x00, LOGICAL_MAXIMUM(1), 0x01, REPORT_SIZE(1), 0x01, REPORT_COUNT(1), 0x07, USAGE(1), 0xB5, /* Next Track */ USAGE(1), 0xB6, /* Previous Track */ USAGE(1), 0xB7, /* Stop */ USAGE(1), 0xCD, /* Play / Pause */ USAGE(1), 0xE2, /* Mute */ USAGE(1), 0xE9, /* Volume Up */ USAGE(1), 0xEA, /* Volume Down */ INPUT(1), 0x02, /* Input (Data, Variable, Absolute) */ REPORT_COUNT(1), 0x01, INPUT(1), 0x01, END_COLLECTION(0), }; reportLength = sizeof(reportDescriptor); return reportDescriptor; }