|
46 | 46 |
|
47 | 47 | uint8_t const hid_report_descriptor[] = |
48 | 48 | { |
49 | | - //------------- Keyboard Report -------------// |
50 | | - HID_USAGE_PAGE ( HID_USAGE_PAGE_DESKTOP ), |
51 | | - HID_USAGE ( HID_USAGE_DESKTOP_KEYBOARD ), |
52 | | - HID_COLLECTION ( HID_COLLECTION_APPLICATION ), |
53 | | - HID_REPORT_ID ( REPORT_ID_KEYBOARD ), |
54 | | - HID_USAGE_PAGE( HID_USAGE_PAGE_KEYBOARD ), |
55 | | - // 8 bits Modifier Keys (Shfit, Control, Alt) |
56 | | - HID_USAGE_MIN ( 224 ), |
57 | | - HID_USAGE_MAX ( 231 ), |
58 | | - HID_LOGICAL_MIN ( 0 ), |
59 | | - HID_LOGICAL_MAX ( 1 ), |
60 | | - |
61 | | - HID_REPORT_COUNT ( 8 ), |
62 | | - HID_REPORT_SIZE ( 1 ), |
63 | | - HID_INPUT ( HID_DATA | HID_VARIABLE | HID_ABSOLUTE ), |
64 | | - |
65 | | - // 8 bit reserved |
66 | | - HID_REPORT_COUNT ( 1 ), |
67 | | - HID_REPORT_SIZE ( 8 ), |
68 | | - HID_INPUT ( HID_CONSTANT ), |
69 | | - |
70 | | - // 6-byte Keycodes |
71 | | - HID_USAGE_PAGE (HID_USAGE_PAGE_KEYBOARD), |
72 | | - HID_USAGE_MIN ( 0 ), |
73 | | - HID_USAGE_MAX ( 255 ), |
74 | | - HID_LOGICAL_MIN ( 0 ), |
75 | | - HID_LOGICAL_MAX ( 255 ), |
76 | | - |
77 | | - HID_REPORT_COUNT ( 6 ), |
78 | | - HID_REPORT_SIZE ( 8 ), |
79 | | - HID_INPUT ( HID_DATA | HID_ARRAY | HID_ABSOLUTE ), |
80 | | - |
81 | | - // LED Indicator Kana | Compose | Scroll Lock | CapsLock | NumLock |
82 | | - HID_USAGE_PAGE ( HID_USAGE_PAGE_LED ), |
83 | | - /* 5-bit Led report */ |
84 | | - HID_USAGE_MIN ( 1 ), |
85 | | - HID_USAGE_MAX ( 5 ), |
86 | | - HID_REPORT_COUNT ( 5 ), |
87 | | - HID_REPORT_SIZE ( 1 ), |
88 | | - HID_OUTPUT ( HID_DATA | HID_VARIABLE | HID_ABSOLUTE ), |
89 | | - /* led padding */ |
90 | | - HID_REPORT_COUNT ( 1 ), |
91 | | - HID_REPORT_SIZE ( 3 ), |
92 | | - HID_OUTPUT ( HID_CONSTANT ), |
93 | | - HID_COLLECTION_END, |
94 | | - |
95 | | - //------------- Consumer Control Report -------------// |
96 | | - HID_USAGE_PAGE ( HID_USAGE_PAGE_CONSUMER ), |
97 | | - HID_USAGE ( HID_USAGE_CONSUMER_CONTROL ), |
98 | | - HID_COLLECTION ( HID_COLLECTION_APPLICATION ), |
99 | | - HID_REPORT_ID( REPORT_ID_CONSUMER_CONTROL ), |
100 | | - HID_LOGICAL_MIN ( 0x00 ), |
101 | | - HID_LOGICAL_MAX_N( 0x03FF, 2 ), |
102 | | - HID_USAGE_MIN ( 0x00 ), |
103 | | - HID_USAGE_MAX_N ( 0x03FF, 2 ), |
104 | | - HID_REPORT_COUNT ( 1 ), |
105 | | - HID_REPORT_SIZE ( 16 ), |
106 | | - HID_INPUT ( HID_DATA | HID_ARRAY | HID_ABSOLUTE ), |
107 | | - HID_COLLECTION_END, |
108 | | - |
109 | | - //------------- Mouse Report: buttons + dx + dy + scroll + pan -------------// |
110 | | - HID_USAGE_PAGE ( HID_USAGE_PAGE_DESKTOP ), |
111 | | - HID_USAGE ( HID_USAGE_DESKTOP_MOUSE ), |
112 | | - HID_COLLECTION ( HID_COLLECTION_APPLICATION ), |
113 | | - HID_REPORT_ID( REPORT_ID_MOUSE ), |
114 | | - HID_USAGE (HID_USAGE_DESKTOP_POINTER ), |
115 | | - HID_COLLECTION ( HID_COLLECTION_PHYSICAL ), |
116 | | - HID_USAGE_PAGE ( HID_USAGE_PAGE_BUTTON ), |
117 | | - HID_USAGE_MIN ( 1 ), |
118 | | - HID_USAGE_MAX ( 5 ), |
119 | | - HID_LOGICAL_MIN ( 0 ), |
120 | | - HID_LOGICAL_MAX ( 1 ), |
121 | | - |
122 | | - HID_REPORT_COUNT ( 5 ), /* Forward, Backward, Middle, Right, Left */ |
123 | | - HID_REPORT_SIZE ( 1 ), |
124 | | - HID_INPUT ( HID_DATA | HID_VARIABLE | HID_ABSOLUTE ), |
125 | | - |
126 | | - HID_REPORT_COUNT ( 1 ), |
127 | | - HID_REPORT_SIZE ( 3 ), |
128 | | - HID_INPUT ( HID_CONSTANT ), /* 5 bit padding followed 3 bit buttons */ |
129 | | - |
130 | | - HID_USAGE_PAGE ( HID_USAGE_PAGE_DESKTOP ), |
131 | | - HID_USAGE ( HID_USAGE_DESKTOP_X ), |
132 | | - HID_USAGE ( HID_USAGE_DESKTOP_Y ), |
133 | | - HID_LOGICAL_MIN ( 0x81 ), /* -127 */ |
134 | | - HID_LOGICAL_MAX ( 0x7f ), /* 127 */ |
135 | | - |
136 | | - HID_REPORT_COUNT ( 2 ), /* X, Y position */ |
137 | | - HID_REPORT_SIZE ( 8 ), |
138 | | - HID_INPUT ( HID_DATA | HID_VARIABLE | HID_RELATIVE ), /* relative values */ |
139 | | - |
140 | | - HID_USAGE ( HID_USAGE_DESKTOP_WHEEL ), /* mouse scroll */ |
141 | | - HID_LOGICAL_MIN ( 0x81 ), /* -127 */ |
142 | | - HID_LOGICAL_MAX ( 0x7f ), /* 127 */ |
143 | | - HID_REPORT_COUNT( 1 ), |
144 | | - HID_REPORT_SIZE ( 8 ), /* 8-bit value */ |
145 | | - HID_INPUT ( HID_DATA | HID_VARIABLE | HID_RELATIVE ), /* relative values */ |
146 | | - |
147 | | - HID_USAGE_PAGE ( HID_USAGE_PAGE_CONSUMER ), |
148 | | - HID_USAGE_N ( HID_USAGE_CONSUMER_AC_PAN, 2 ), /* Horizontal wheel scroll */ |
149 | | - HID_LOGICAL_MIN ( 0x81 ), /* -127 */ |
150 | | - HID_LOGICAL_MAX ( 0x7f ), /* 127 */ |
151 | | - HID_REPORT_COUNT( 1 ), |
152 | | - HID_REPORT_SIZE ( 8 ), /* 8-bit value */ |
153 | | - HID_INPUT ( HID_DATA | HID_VARIABLE | HID_RELATIVE ), /* relative values */ |
154 | | - HID_COLLECTION_END, |
155 | | - HID_COLLECTION_END, |
156 | | - |
157 | | -#if 0 |
158 | | - //------------- Gamepad Report -------------// |
159 | | - /* Byte 0: 4 pad | 2 Y-axis | 2 X-axis |
160 | | - * Byte 1: Button7-Button0 |
161 | | - */ |
162 | | - HID_USAGE_PAGE ( HID_USAGE_PAGE_DESKTOP ), |
163 | | - HID_USAGE ( HID_USAGE_DESKTOP_GAMEPAD ), |
164 | | - HID_COLLECTION ( HID_COLLECTION_APPLICATION ), |
165 | | - HID_REPORT_ID ( REPORT_ID_GAMEPAD ), |
166 | | - HID_USAGE (HID_USAGE_DESKTOP_POINTER ), |
167 | | - HID_COLLECTION ( HID_COLLECTION_PHYSICAL ), |
168 | | - // X,Y joystick |
169 | | - HID_USAGE ( HID_USAGE_DESKTOP_X ), |
170 | | - HID_USAGE ( HID_USAGE_DESKTOP_Y ), |
171 | | - HID_LOGICAL_MIN ( 0xFF ), /* -1 */ |
172 | | - HID_LOGICAL_MAX ( 0x01 ), /* 1 */ |
173 | | - HID_REPORT_COUNT( 2 ), /* X, Y position */ |
174 | | - HID_REPORT_SIZE ( 2 ), /* 2-bit value */ |
175 | | - HID_INPUT ( HID_DATA | HID_VARIABLE | HID_ABSOLUTE ), /* input values */ |
176 | | - HID_COLLECTION_END, |
177 | | - |
178 | | - /* X,Y padding */ |
179 | | - HID_REPORT_COUNT ( 4 ), |
180 | | - HID_REPORT_SIZE ( 1 ), |
181 | | - HID_INPUT ( HID_CONSTANT | HID_VARIABLE | HID_ABSOLUTE), |
182 | | - |
183 | | - // Buttons |
184 | | - HID_USAGE_PAGE ( HID_USAGE_PAGE_BUTTON ), |
185 | | - HID_USAGE_MIN ( 1 ), |
186 | | - HID_USAGE_MAX ( 8 ), |
187 | | - HID_LOGICAL_MIN ( 0 ), |
188 | | - HID_LOGICAL_MAX ( 1 ), |
189 | | - HID_REPORT_COUNT ( 8 ), // Keyboard |
190 | | - HID_REPORT_SIZE ( 1 ), |
191 | | - HID_INPUT ( HID_DATA | HID_VARIABLE | HID_ABSOLUTE), |
192 | | - HID_COLLECTION_END |
193 | | -#endif |
| 49 | + TUD_HID_REPORT_DESC_KEYBOARD( HID_REPORT_ID(REPORT_ID_KEYBOARD) ), |
| 50 | + TUD_HID_REPORT_DESC_CONSUMER( HID_REPORT_ID(REPORT_ID_CONSUMER_CONTROL) ), |
| 51 | + TUD_HID_REPORT_DESC_MOUSE ( HID_REPORT_ID(REPORT_ID_MOUSE) ) |
194 | 52 | }; |
195 | 53 |
|
196 | 54 | BLEHidAdafruit::BLEHidAdafruit(void) |
|
0 commit comments