usbHid.h
上传用户:luoyougen
上传日期:2008-05-12
资源大小:23136k
文件大小:3k
源码类别:

VxWorks

开发平台:

C/C++

  1. /* usbHid.h - USB HID (Human Interface Devices) definitions */
  2. /* Copyright 2000 Wind River Systems, Inc. */
  3. /*
  4. Modification history
  5. --------------------
  6. 01b,07oct99,rcb  Add definitions for mouse device.
  7. 01a,30aug99,rcb  First.
  8. */
  9. #ifndef __INCusbHidh
  10. #define __INCusbHidh
  11. #ifdef __cplusplus
  12. extern "C" {
  13. #endif
  14. /* defines */
  15. /* USB HID subclass codes */
  16. #define USB_SUBCLASS_HID_NONE 0x00
  17. #define USB_SUBCLASS_HID_BOOT 0x01
  18. /* USB HID BOOT protocol codes (part of interface class) 
  19.  *
  20.  * NOTE: Do not confuse with similarly named USB_HID_PROTOCOL_xxxx defines
  21.  * later in this file. */
  22. #define USB_PROTOCOL_HID_BOOT_NONE 0x00
  23. #define USB_PROTOCOL_HID_BOOT_KEYBOARD 0x01
  24. #define USB_PROTOCOL_HID_BOOT_MOUSE 0x02
  25. /* USB requests for HID devices */
  26. #define USB_REQ_HID_GET_REPORT     0x01
  27. #define USB_REQ_HID_GET_IDLE     0x02
  28. #define USB_REQ_HID_GET_PROTOCOL    0x03
  29. #define USB_REQ_HID_SET_REPORT     0x09
  30. #define USB_REQ_HID_SET_IDLE     0x0a
  31. #define USB_REQ_HID_SET_PROTOCOL    0x0b
  32. /* USB HID report types */
  33. #define USB_HID_RPT_TYPE_INPUT 0x01
  34. #define USB_HID_RPT_TYPE_OUTPUT  0x02
  35. #define USB_HID_RPT_TYPE_FEATURE 0x03
  36. /* USB HID idle interval */
  37. #define USB_HID_IDLE_MSEC_PER_UNIT 4
  38. /* USB HID protocol values (used for USB_REQ_HID_SET_PROTOCOL) 
  39.  *
  40.  * NOTE: Do not confuse with similarly named USB_PROTOCOL_HID_xxxx
  41.  * defines earlier in this file. 
  42.  */
  43. #define USB_HID_PROTOCOL_BOOT 0
  44. #define USB_HID_PROTOCOL_REPORT  1
  45. /* HID keyboard definitions */
  46. #define BOOT_RPT_KEYCOUNT   6     /* 6 keys returned in std boot report */
  47. /* HID keyboard modifier key definitions */
  48. #define MOD_KEY_LEFT_CTRL   0x01
  49. #define MOD_KEY_LEFT_SHIFT  0x02
  50. #define MOD_KEY_LEFT_ALT    0x04
  51. #define MOD_KEY_LEFT_GUI    0x08
  52. #define MOD_KEY_RIGHT_CTRL  0x10
  53. #define MOD_KEY_RIGHT_SHIFT 0x20
  54. #define MOD_KEY_RIGHT_ALT   0x40
  55. #define MOD_KEY_RIGHT_GUI   0x80
  56. #define MOD_KEY_CTRL     (MOD_KEY_LEFT_CTRL | MOD_KEY_RIGHT_CTRL)
  57. #define MOD_KEY_SHIFT     (MOD_KEY_LEFT_SHIFT | MOD_KEY_RIGHT_SHIFT)
  58. #define MOD_KEY_ALT     (MOD_KEY_LEFT_ALT | MOD_KEY_RIGHT_ALT)
  59. #define MOD_KEY_GUI     (MOD_KEY_LEFT_GUI | MOD_KEY_RIGHT_GUI)
  60. /* HID keyboard LED definitions for output report */
  61. #define RPT_LED_NUM_LOCK    0x01
  62. #define RPT_LED_CAPS_LOCK   0x02
  63. #define RPT_LED_SCROLL_LOCK 0x04
  64. #define RPT_LED_COMPOSE     0x08
  65. #define RPT_LED_KANA     0x10
  66. /* HID mouse report definitions */
  67. #define MOUSE_BUTTON_1     0x01
  68. #define MOUSE_BUTTON_2     0x02
  69. #define MOUSE_BUTTON_3     0x04
  70. /* Maximum length for a HID "boot report" */
  71. #define HID_BOOT_REPORT_MAX_LEN     8
  72. /* typedefs */
  73. /*
  74.  * HID_KBD_BOOT_REPORT
  75.  */
  76. typedef struct hid_kbd_boot_report
  77.     {
  78.     UINT8 modifiers;     /* modifier keys */
  79.     UINT8 reserved;     /* reserved */
  80.     UINT8 scanCodes [BOOT_RPT_KEYCOUNT]; /* individual scan codes */
  81.     } HID_KBD_BOOT_REPORT, *pHID_KBD_BOOT_REPORT;
  82. /*
  83.  * HID_MSE_BOOT_REPORT
  84.  */
  85. typedef struct hid_mse_boot_report
  86.     {
  87.     UINT8 buttonState;     /* buttons */
  88.     char xDisplacement;      /* signed x-displacement */
  89.     char yDisplacement;      /* signed y-displacement */
  90.     } HID_MSE_BOOT_REPORT, *pHID_MSE_BOOT_REPORT;
  91. #ifdef __cplusplus
  92. }
  93. #endif
  94. #endif /* __INCusbHidh */
  95. /* End of file. */