CCID: Add support for PC-to-Reader XfrBlock message
[pub/USBasp.git] / LUFA / Drivers / USB / Class / Common / HIDClassCommon.h
index 3c30daa..56b60e8 100644 (file)
@@ -1,13 +1,13 @@
 /*
              LUFA Library
 /*
              LUFA Library
-     Copyright (C) Dean Camera, 2013.
+     Copyright (C) Dean Camera, 2018.
 
   dean [at] fourwalledcubicle [dot] com
            www.lufa-lib.org
 */
 
 /*
 
   dean [at] fourwalledcubicle [dot] com
            www.lufa-lib.org
 */
 
 /*
-  Copyright 2013  Dean Camera (dean [at] fourwalledcubicle [dot] com)
+  Copyright 2018  Dean Camera (dean [at] fourwalledcubicle [dot] com)
 
   Permission to use, copy, modify, distribute, and sell this
   software and its documentation for any purpose is hereby granted
 
   Permission to use, copy, modify, distribute, and sell this
   software and its documentation for any purpose is hereby granted
@@ -40,7 +40,7 @@
 /** \ingroup Group_USBClassHID
  *  \defgroup Group_USBClassHIDCommon  Common Class Definitions
  *
 /** \ingroup Group_USBClassHID
  *  \defgroup Group_USBClassHIDCommon  Common Class Definitions
  *
- *  \section Sec_ModDescription Module Description
+ *  \section Sec_USBClassHIDCommon_ModDescription Module Description
  *  Constants, Types and Enum definitions that are common to both Device and Host modes for the USB
  *  HID Class.
  *
  *  Constants, Types and Enum definitions that are common to both Device and Host modes for the USB
  *  HID Class.
  *
 
                /** \name Keyboard Standard Report Key Scan-codes */
                //@{
 
                /** \name Keyboard Standard Report Key Scan-codes */
                //@{
+               #define HID_KEYBOARD_SC_RESERVED                          0x00
                #define HID_KEYBOARD_SC_ERROR_ROLLOVER                    0x01
                #define HID_KEYBOARD_SC_POST_FAIL                         0x02
                #define HID_KEYBOARD_SC_ERROR_UNDEFINED                   0x03
                #define HID_KEYBOARD_SC_ERROR_ROLLOVER                    0x01
                #define HID_KEYBOARD_SC_POST_FAIL                         0x02
                #define HID_KEYBOARD_SC_ERROR_UNDEFINED                   0x03
                #define HID_KEYBOARD_SC_4_AND_DOLLAR                      0x21
                #define HID_KEYBOARD_SC_5_AND_PERCENTAGE                  0x22
                #define HID_KEYBOARD_SC_6_AND_CARET                       0x23
                #define HID_KEYBOARD_SC_4_AND_DOLLAR                      0x21
                #define HID_KEYBOARD_SC_5_AND_PERCENTAGE                  0x22
                #define HID_KEYBOARD_SC_6_AND_CARET                       0x23
-               #define HID_KEYBOARD_SC_7_AND_AND_AMPERSAND               0x24
+               #define HID_KEYBOARD_SC_7_AND_AMPERSAND                   0x24
                #define HID_KEYBOARD_SC_8_AND_ASTERISK                    0x25
                #define HID_KEYBOARD_SC_9_AND_OPENING_PARENTHESIS         0x26
                #define HID_KEYBOARD_SC_0_AND_CLOSING_PARENTHESIS         0x27
                #define HID_KEYBOARD_SC_8_AND_ASTERISK                    0x25
                #define HID_KEYBOARD_SC_9_AND_OPENING_PARENTHESIS         0x26
                #define HID_KEYBOARD_SC_0_AND_CLOSING_PARENTHESIS         0x27
                #define HID_KEYBOARD_SC_F24                               0x73
                #define HID_KEYBOARD_SC_EXECUTE                           0x74
                #define HID_KEYBOARD_SC_HELP                              0x75
                #define HID_KEYBOARD_SC_F24                               0x73
                #define HID_KEYBOARD_SC_EXECUTE                           0x74
                #define HID_KEYBOARD_SC_HELP                              0x75
-               #define HID_KEYBOARD_SC_MANU                              0x76
+               #define HID_KEYBOARD_SC_MENU                              0x76
                #define HID_KEYBOARD_SC_SELECT                            0x77
                #define HID_KEYBOARD_SC_STOP                              0x78
                #define HID_KEYBOARD_SC_AGAIN                             0x79
                #define HID_KEYBOARD_SC_SELECT                            0x77
                #define HID_KEYBOARD_SC_STOP                              0x78
                #define HID_KEYBOARD_SC_AGAIN                             0x79
                #define HID_KEYBOARD_SC_LANG8                             0x97
                #define HID_KEYBOARD_SC_LANG9                             0x98
                #define HID_KEYBOARD_SC_ALTERNATE_ERASE                   0x99
                #define HID_KEYBOARD_SC_LANG8                             0x97
                #define HID_KEYBOARD_SC_LANG9                             0x98
                #define HID_KEYBOARD_SC_ALTERNATE_ERASE                   0x99
-               #define HID_KEYBOARD_SC_SISREQ                            0x9A
+               #define HID_KEYBOARD_SC_SYSREQ                            0x9A
                #define HID_KEYBOARD_SC_CANCEL                            0x9B
                #define HID_KEYBOARD_SC_CLEAR                             0x9C
                #define HID_KEYBOARD_SC_PRIOR                             0x9D
                #define HID_KEYBOARD_SC_CANCEL                            0x9B
                #define HID_KEYBOARD_SC_CLEAR                             0x9C
                #define HID_KEYBOARD_SC_PRIOR                             0x9D
                #define HID_KEYBOARD_SC_OUT                               0xA0
                #define HID_KEYBOARD_SC_OPER                              0xA1
                #define HID_KEYBOARD_SC_CLEAR_AND_AGAIN                   0xA2
                #define HID_KEYBOARD_SC_OUT                               0xA0
                #define HID_KEYBOARD_SC_OPER                              0xA1
                #define HID_KEYBOARD_SC_CLEAR_AND_AGAIN                   0xA2
-               #define HID_KEYBOARD_SC_CRSEL_ANDPROPS                    0xA3
+               #define HID_KEYBOARD_SC_CRSEL_AND_PROPS                   0xA3
                #define HID_KEYBOARD_SC_EXSEL                             0xA4
                #define HID_KEYBOARD_SC_KEYPAD_00                         0xB0
                #define HID_KEYBOARD_SC_KEYPAD_000                        0xB1
                #define HID_KEYBOARD_SC_EXSEL                             0xA4
                #define HID_KEYBOARD_SC_KEYPAD_00                         0xB0
                #define HID_KEYBOARD_SC_KEYPAD_000                        0xB1
                #define HID_KEYBOARD_SC_RIGHT_SHIFT                       0xE5
                #define HID_KEYBOARD_SC_RIGHT_ALT                         0xE6
                #define HID_KEYBOARD_SC_RIGHT_GUI                         0xE7
                #define HID_KEYBOARD_SC_RIGHT_SHIFT                       0xE5
                #define HID_KEYBOARD_SC_RIGHT_ALT                         0xE6
                #define HID_KEYBOARD_SC_RIGHT_GUI                         0xE7
+               #define HID_KEYBOARD_SC_MEDIA_PLAY                        0xE8
+               #define HID_KEYBOARD_SC_MEDIA_STOP                        0xE9
+               #define HID_KEYBOARD_SC_MEDIA_PREVIOUS_TRACK              0xEA
+               #define HID_KEYBOARD_SC_MEDIA_NEXT_TRACK                  0xEB
+               #define HID_KEYBOARD_SC_MEDIA_EJECT                       0xEC
+               #define HID_KEYBOARD_SC_MEDIA_VOLUME_UP                   0xED
+               #define HID_KEYBOARD_SC_MEDIA_VOLUME_DOWN                 0xEE
+               #define HID_KEYBOARD_SC_MEDIA_MUTE                        0xEF
+               #define HID_KEYBOARD_SC_MEDIA_WWW                         0xF0
+               #define HID_KEYBOARD_SC_MEDIA_BACKWARD                    0xF1
+               #define HID_KEYBOARD_SC_MEDIA_FORWARD                     0xF2
+               #define HID_KEYBOARD_SC_MEDIA_CANCEL                      0xF3
+               #define HID_KEYBOARD_SC_MEDIA_SEARCH                      0xF4
+               #define HID_KEYBOARD_SC_MEDIA_SLEEP                       0xF8
+               #define HID_KEYBOARD_SC_MEDIA_LOCK                        0xF9
+               #define HID_KEYBOARD_SC_MEDIA_RELOAD                      0xFA
+               #define HID_KEYBOARD_SC_MEDIA_CALCULATOR                  0xFB
                //@}
 
                /** \name Common HID Device Report Descriptors */
                //@}
 
                /** \name Common HID Device Report Descriptors */
                                HID_RI_REPORT_SIZE(8, 0x01),                \
                                HID_RI_REPORT_COUNT(8, Buttons),            \
                                HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE), \
                                HID_RI_REPORT_SIZE(8, 0x01),                \
                                HID_RI_REPORT_COUNT(8, Buttons),            \
                                HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE), \
-                               HID_RI_REPORT_SIZE(8, (8 - (Buttons % 8))), \
+                               HID_RI_REPORT_SIZE(8, (Buttons % 8) ? (8 - (Buttons % 8)) : 0), \
                                HID_RI_REPORT_COUNT(8, 0x01),               \
                                HID_RI_INPUT(8, HID_IOF_CONSTANT),          \
                        HID_RI_END_COLLECTION(0)
                                HID_RI_REPORT_COUNT(8, 0x01),               \
                                HID_RI_INPUT(8, HID_IOF_CONSTANT),          \
                        HID_RI_END_COLLECTION(0)
                                HID_RI_REPORT_SIZE(8, 0x03),                \
                                HID_RI_OUTPUT(8, HID_IOF_CONSTANT),         \
                                HID_RI_LOGICAL_MINIMUM(8, 0x00),            \
                                HID_RI_REPORT_SIZE(8, 0x03),                \
                                HID_RI_OUTPUT(8, HID_IOF_CONSTANT),         \
                                HID_RI_LOGICAL_MINIMUM(8, 0x00),            \
-                               HID_RI_LOGICAL_MAXIMUM(8, 0xFF),            \
+                               HID_RI_LOGICAL_MAXIMUM(16, 0xFF),           \
                                HID_RI_USAGE_PAGE(8, 0x07),                 \
                                HID_RI_USAGE_MINIMUM(8, 0x00),              \
                                HID_RI_USAGE_MAXIMUM(8, 0xFF),              \
                                HID_RI_USAGE_PAGE(8, 0x07),                 \
                                HID_RI_USAGE_MINIMUM(8, 0x00),              \
                                HID_RI_USAGE_MAXIMUM(8, 0xFF),              \
                                        HID_RI_REPORT_SIZE(8, 0x01),            \
                                        HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE), \
                                        HID_RI_REPORT_COUNT(8, 0x01),           \
                                        HID_RI_REPORT_SIZE(8, 0x01),            \
                                        HID_RI_INPUT(8, HID_IOF_DATA | HID_IOF_VARIABLE | HID_IOF_ABSOLUTE), \
                                        HID_RI_REPORT_COUNT(8, 0x01),           \
-                                       HID_RI_REPORT_SIZE(8, (8 - (Buttons % 8))), \
+                                       HID_RI_REPORT_SIZE(8, (Buttons % 8) ? (8 - (Buttons % 8)) : 0), \
                                        HID_RI_INPUT(8, HID_IOF_CONSTANT),      \
                                        HID_RI_USAGE_PAGE(8, 0x01),             \
                                        HID_RI_USAGE(8, 0x30),                  \
                                        HID_RI_INPUT(8, HID_IOF_CONSTANT),      \
                                        HID_RI_USAGE_PAGE(8, 0x01),             \
                                        HID_RI_USAGE(8, 0x30),                  \
 #endif
 
 /** @} */
 #endif
 
 /** @} */
-