1 // Copyright 2017 The Fuchsia Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include <stdint.h> 6 7 // The following are actual report descriptors, either from the standard 8 // documentation or captured from real devices. 9 10 // A boot mouse as defined in the HID documentation (appendix B.2) 11 // Note that it does not have a report id. 12 extern "C" const uint8_t boot_mouse_r_desc[50] = { 13 0x05, 0x01, // Usage Page (Generic Desktop Ctrls) 14 0x09, 0x02, // Usage (Mouse) 15 0xA1, 0x01, // Collection (Application) 16 0x09, 0x01, // Usage (Pointer) 17 0xA1, 0x00, // Collection (Physical) 18 0x05, 0x09, // Usage Page (Button) 19 0x19, 0x01, // Usage Minimum (0x01) 20 0x29, 0x03, // Usage Maximum (0x03) 21 0x15, 0x00, // Logical Minimum (0) 22 0x25, 0x01, // Logical Maximum (1) 23 0x95, 0x03, // Report Count (3) 24 0x75, 0x01, // Report Size (1) 25 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,No Null Position) 26 0x95, 0x01, // Report Count (1) 27 0x75, 0x05, // Report Size (5) 28 0x81, 0x03, // Input (Const,Var,Abs,No Wrap,Linear,No Null Position) 29 0x05, 0x01, // Usage Page (Generic Desktop Ctrls) 30 0x09, 0x30, // Usage (X) 31 0x09, 0x31, // Usage (Y) 32 0x15, 0x81, // Logical Minimum (-127) 33 0x25, 0x7F, // Logical Maximum (127) 34 0x75, 0x08, // Report Size (8) 35 0x95, 0x02, // Report Count (2) 36 0x81, 0x06, // Input (Data,Var,Rel,No Wrap,Linear,No Null Position) 37 0xC0, // End Collection 38 0xC0, // End Collection 39 }; 40 41 // Genuine HP USB 2-Button Optical Mouse P/N: 672652-001. 42 extern "C" const uint8_t hp_mouse_r_desc[46] = { 43 0x05, 0x01, // Usage Page (Generic Desktop Ctrls) 44 0x09, 0x02, // Usage (Mouse) 45 0xA1, 0x01, // Collection (Application) 46 0x09, 0x01, // Usage (Pointer) 47 0xA1, 0x00, // Collection (Physical) 48 0x05, 0x09, // Usage Page (Button) 49 0x19, 0x01, // Usage Minimum (0x01) 50 0x29, 0x03, // Usage Maximum (0x03) 51 0x15, 0x00, // Logical Minimum (0) 52 0x25, 0x01, // Logical Maximum (1) 53 0x95, 0x08, // Report Count (8) 54 0x75, 0x01, // Report Size (1) 55 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 56 0x05, 0x01, // Usage Page (Generic Desktop Ctrls) 57 0x09, 0x30, // Usage (X) 58 0x09, 0x31, // Usage (Y) 59 0x09, 0x38, // Usage (Wheel) 60 0x15, 0x81, // Logical Minimum (-127) 61 0x25, 0x7F, // Logical Maximum (127) 62 0x75, 0x08, // Report Size (8) 63 0x95, 0x03, // Report Count (3) 64 0x81, 0x06, // Input (Data,Var,Rel,No Wrap,Linear,Preferred State,No Null Position) 65 0xC0, // End Collection 66 0xC0, // End Collection 67 }; 68 69 // Composite device by Adafruit. 70 extern "C" const uint8_t trinket_r_desc[173] = { 71 0x05, 0x01, // Usage Page (Generic Desktop Ctrls) 72 0x09, 0x02, // Usage (Mouse) 73 0xA1, 0x01, // Collection (Application) 74 0x09, 0x01, // Usage (Pointer) 75 0xA1, 0x00, // Collection (Physical) 76 0x85, 0x01, // Report ID (1) 77 0x05, 0x09, // Usage Page (Button) 78 0x19, 0x01, // Usage Minimum (0x01) 79 0x29, 0x03, // Usage Maximum (0x03) 80 0x15, 0x00, // Logical Minimum (0) 81 0x25, 0x01, // Logical Maximum (1) 82 0x95, 0x03, // Report Count (3) 83 0x75, 0x01, // Report Size (1) 84 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,No Null Position) 85 0x95, 0x01, // Report Count (1) 86 0x75, 0x05, // Report Size (5) 87 0x81, 0x03, // Input (Const,Var,Abs,No Wrap,Linear,No Null Position) 88 0x05, 0x01, // Usage Page (Generic Desktop Ctrls) 89 0x09, 0x30, // Usage (X) 90 0x09, 0x31, // Usage (Y) 91 0x15, 0x81, // Logical Minimum (-127) 92 0x25, 0x7F, // Logical Maximum (127) 93 0x75, 0x08, // Report Size (8) 94 0x95, 0x02, // Report Count (2) 95 0x81, 0x06, // Input (Data,Var,Rel,No Wrap,Linear,No Null Position) 96 0xC0, // End Collection 97 0xC0, // End Collection 98 // ======== Keyboard ====================================================================== 99 0x05, 0x01, // Usage Page (Generic Desktop Ctrls) 100 0x09, 0x06, // Usage (Keyboard) 101 0xA1, 0x01, // Collection (Application) 102 0x85, 0x02, // Report ID (2) 103 0x75, 0x01, // Report Size (1) 104 0x95, 0x08, // Report Count (8) 105 0x05, 0x07, // Usage Page (Kbrd/Keypad) 106 0x19, 0xE0, // Usage Minimum (0xE0) 107 0x29, 0xE7, // Usage Maximum (0xE7) 108 0x15, 0x00, // Logical Minimum (0) 109 0x25, 0x01, // Logical Maximum (1) 110 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,No Null Position) 111 0x95, 0x01, // Report Count (1) 112 0x75, 0x08, // Report Size (8) 113 0x81, 0x03, // Input (Const,Var,Abs,No Wrap,Linear,No Null Position) 114 0x95, 0x05, // Report Count (5) 115 0x75, 0x01, // Report Size (1) 116 0x05, 0x08, // Usage Page (LEDs) 117 0x19, 0x01, // Usage Minimum (Num Lock) 118 0x29, 0x05, // Usage Maximum (Kana) 119 0x91, 0x02, // Output (Data,Var,Abs,No Wrap,Linear,No Null Position,Non-volatile) 120 0x95, 0x01, // Report Count (1) 121 0x75, 0x03, // Report Size (3) 122 0x91, 0x03, // Output (Const,Var,Abs,No Wrap,Linear,No Null Position,Non-volatile) 123 0x95, 0x05, // Report Count (5) 124 0x75, 0x08, // Report Size (8) 125 0x15, 0x00, // Logical Minimum (0) 126 0x26, 0xA4, 0x00, // Logical Maximum (164) 127 0x05, 0x07, // Usage Page (Kbrd/Keypad) 128 0x19, 0x00, // Usage Minimum (0x00) 129 0x2A, 0xA4, 0x00, // Usage Maximum (0xA4) 130 0x81, 0x00, // Input (Data,Array,Abs,No Wrap,Linear,No Null Position) 131 0xC0, // End Collection 132 // ==== Multimedia Keys ====================================================================== 133 0x05, 0x0C, // Usage Page (Consumer) 134 0x09, 0x01, // Usage (Consumer Control) 135 0xA1, 0x01, // Collection (Application) 136 0x85, 0x03, // Report ID (3) 137 0x19, 0x00, // Usage Minimum (Unassigned) 138 0x2A, 0x3C, 0x02, // Usage Maximum (AC Format) 139 0x15, 0x00, // Logical Minimum (0) 140 0x26, 0x3C, 0x02, // Logical Maximum (572) 141 0x95, 0x01, // Report Count (1) 142 0x75, 0x10, // Report Size (16) 143 0x81, 0x00, // Input (Data,Array,Abs,No Wrap,Linear,No Null Position) 144 0xC0, // End Collection 145 // ======== Power Controls ================================================================== 146 0x05, 0x01, // Usage Page (Generic Desktop Ctrls) 147 0x09, 0x80, // Usage (Sys Control) 148 0xA1, 0x01, // Collection (Application) 149 0x85, 0x04, // Report ID (4) 150 0x95, 0x01, // Report Count (1) 151 0x75, 0x02, // Report Size (2) 152 0x15, 0x01, // Logical Minimum (1) 153 0x25, 0x03, // Logical Maximum (3) 154 0x09, 0x82, // Usage (Sys Sleep) 155 0x09, 0x81, // Usage (Sys Power Down) 156 0x09, 0x83, // Usage (Sys Wake Up) 157 0x81, 0x60, // Input (Data,Array,Abs,No Wrap,Linear,No Null State) 158 0x75, 0x06, // Report Size (6) 159 0x81, 0x03, // Input (Const,Var,Abs,No Wrap,Linear,No Null Position) 160 0xC0, // End Collection 161 }; 162 163 // Playstation controller 3 descriptor 164 extern "C" const uint8_t ps3_ds_r_desc[148] = { 165 0x05, 0x01, // Usage Page (Generic Desktop Ctrls) 166 0x09, 0x04, // Usage (Joystick) 167 0xA1, 0x01, // Collection (Application) 168 0xA1, 0x02, // Collection (Logical) 169 0x85, 0x01, // Report ID (1) 170 0x75, 0x08, // Report Size (8) 171 0x95, 0x01, // Report Count (1) 172 0x15, 0x00, // Logical Minimum (0) 173 0x26, 0xFF, 0x00, // Logical Maximum (255) 174 0x81, 0x03, // Input (Const,Var,Abs,No Wrap,Linear,No Null Position) 175 0x75, 0x01, // Report Size (1) 176 0x95, 0x13, // Report Count (19) 177 0x15, 0x00, // Logical Minimum (0) 178 0x25, 0x01, // Logical Maximum (1) 179 0x35, 0x00, // Physical Minimum (0) 180 0x45, 0x01, // Physical Maximum (1) 181 0x05, 0x09, // Usage Page (Button) 182 0x19, 0x01, // Usage Minimum (0x01) 183 0x29, 0x13, // Usage Maximum (0x13) 184 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,No Null Position) 185 0x75, 0x01, // Report Size (1) 186 0x95, 0x0D, // Report Count (13) 187 0x06, 0x00, 0xFF, // Usage Page (Vendor Defined 0xFF00) 188 0x81, 0x03, // Input (Const,Var,Abs,No Wrap,Linear,No Null Position) 189 0x15, 0x00, // Logical Minimum (0) 190 0x26, 0xFF, 0x00, // Logical Maximum (255) 191 0x05, 0x01, // Usage Page (Generic Desktop Ctrls) 192 0x09, 0x01, // Usage (Pointer) 193 0xA1, 0x00, // Collection (Physical) 194 0x75, 0x08, // Report Size (8) 195 0x95, 0x04, // Report Count (4) 196 0x35, 0x00, // Physical Minimum (0) 197 0x46, 0xFF, 0x00, // Physical Maximum (255) 198 0x09, 0x30, // Usage (X) 199 0x09, 0x31, // Usage (Y) 200 0x09, 0x32, // Usage (Z) 201 0x09, 0x35, // Usage (Rz) 202 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,No Null Position) 203 0xC0, // End Collection 204 0x05, 0x01, // Usage Page (Generic Desktop Ctrls) 205 0x75, 0x08, // Report Size (8) 206 0x95, 0x27, // Report Count (39) 207 0x09, 0x01, // Usage (Pointer) 208 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,No Null Position) 209 0x75, 0x08, // Report Size (8) 210 0x95, 0x30, // Report Count (48) 211 0x09, 0x01, // Usage (Pointer) 212 0x91, 0x02, // Output (Data,Var,Abs,No Wrap,Linear,No Null Position,Non-volatile) 213 0x75, 0x08, // Report Size (8) 214 0x95, 0x30, // Report Count (48) 215 0x09, 0x01, // Usage (Pointer) 216 0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,No Null Position,Non-volatile) 217 0xC0, // End Collection 218 // ======================================================================================== 219 0xA1, 0x02, // Collection (Logical) 220 0x85, 0x02, // Report ID (2) 221 0x75, 0x08, // Report Size (8) 222 0x95, 0x30, // Report Count (48) 223 0x09, 0x01, // Usage (Pointer) 224 0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,No Null Position,Non-volatile) 225 0xC0, // End Collection 226 // ======================================================================================== 227 0xA1, 0x02, // Collection (Logical) 228 0x85, 0xEE, // Report ID (-18) 229 0x75, 0x08, // Report Size (8) 230 0x95, 0x30, // Report Count (48) 231 0x09, 0x01, // Usage (Pointer) 232 0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,No Null Position,Non-volatile) 233 0xC0, // End Collection 234 // ======================================================================================== 235 0xA1, 0x02, // Collection (Logical) 236 0x85, 0xEF, // Report ID (-17) 237 0x75, 0x08, // Report Size (8) 238 0x95, 0x30, // Report Count (48) 239 0x09, 0x01, // Usage (Pointer) 240 0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,No Null Position,Non-volatile) 241 0xC0, // End Collection 242 0xC0, // End Collection 243 }; 244 245 // Touchpad acer12 switch. 246 extern "C" const uint8_t acer12_touch_r_desc[660] = { 247 0x05, 0x0D, // Usage Page (Digitizer) 248 0x09, 0x04, // Usage (Touch Screen) 249 0xA1, 0x01, // Collection (Application) 250 0x85, 0x01, // Report ID (1) 251 0x09, 0x22, // Usage (Finger) 252 0xA1, 0x02, // Collection (Logical) 253 0x09, 0x42, // Usage (Tip Switch) 254 0x15, 0x00, // Logical Minimum (0) 255 0x25, 0x01, // Logical Maximum (1) 256 0x75, 0x01, // Report Size (1) 257 0x95, 0x01, // Report Count (1) 258 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,No Null Position) 259 0x75, 0x01, // Report Size (1) 260 0x81, 0x03, // Input (Const,Var,Abs,No Wrap,Linear,No Null Position) 261 0x75, 0x06, // Report Size (6) 262 0x09, 0x51, // Usage (0x51) 263 0x25, 0x3F, // Logical Maximum (63) 264 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,No Null Position) 265 0x26, 0xFF, 0x00, // Logical Maximum (255) 266 0x75, 0x08, // Report Size (8) 267 0x09, 0x48, // Usage (0x48) 268 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,No Null Position) 269 0x09, 0x49, // Usage (0x49) 270 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,No Null Position) 271 0x95, 0x01, // Report Count (1) 272 0x05, 0x01, // Usage Page (Generic Desktop Ctrls) 273 0xA4, // Push 274 0x26, 0xD0, 0x0B, // Logical Maximum (3024) 275 0x75, 0x10, // Report Size (16) 276 0x55, 0x0F, // Unit Exponent (-1) 277 0x65, 0x11, // Unit (System: SI Linear, Length: Centimeter) 278 0x09, 0x30, // Usage (X) 279 0x35, 0x00, // Physical Minimum (0) 280 0x46, 0xFE, 0x00, // Physical Maximum (254) 281 0x95, 0x02, // Report Count (2) 282 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,No Null Position) 283 0x26, 0x10, 0x08, // Logical Maximum (2064) 284 0x46, 0xA9, 0x00, // Physical Maximum (169) 285 0x09, 0x31, // Usage (Y) 286 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,No Null Position) 287 0xB4, // Pop 288 0xC0, // End Collection 289 0x05, 0x0D, // Usage Page (Digitizer) 290 0x09, 0x22, // Usage (Finger) 291 0xA1, 0x02, // Collection (Logical) 292 0x05, 0x0D, // Usage Page (Digitizer) 293 0x09, 0x42, // Usage (Tip Switch) 294 0x15, 0x00, // Logical Minimum (0) 295 0x25, 0x01, // Logical Maximum (1) 296 0x75, 0x01, // Report Size (1) 297 0x95, 0x01, // Report Count (1) 298 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,No Null Position) 299 0x75, 0x01, // Report Size (1) 300 0x81, 0x03, // Input (Const,Var,Abs,No Wrap,Linear,No Null Position) 301 0x75, 0x06, // Report Size (6) 302 0x09, 0x51, // Usage (0x51) 303 0x25, 0x3F, // Logical Maximum (63) 304 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,No Null Position) 305 0x26, 0xFF, 0x00, // Logical Maximum (255) 306 0x75, 0x08, // Report Size (8) 307 0x09, 0x48, // Usage (0x48) 308 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,No Null Position) 309 0x09, 0x49, // Usage (0x49) 310 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,No Null Position) 311 0x95, 0x01, // Report Count (1) 312 0x05, 0x01, // Usage Page (Generic Desktop Ctrls) 313 0xA4, // Push 314 0x26, 0xD0, 0x0B, // Logical Maximum (3024) 315 0x75, 0x10, // Report Size (16) 316 0x55, 0x0F, // Unit Exponent (-1) 317 0x65, 0x11, // Unit (System: SI Linear, Length: Centimeter) 318 0x09, 0x30, // Usage (X) 319 0x35, 0x00, // Physical Minimum (0) 320 0x46, 0xFE, 0x00, // Physical Maximum (254) 321 0x95, 0x02, // Report Count (2) 322 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,No Null Position) 323 0x26, 0x10, 0x08, // Logical Maximum (2064) 324 0x46, 0xA9, 0x00, // Physical Maximum (169) 325 0x09, 0x31, // Usage (Y) 326 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,No Null Position) 327 0xB4, // Pop 328 0xC0, // End Collection 329 0x05, 0x0D, // Usage Page (Digitizer) 330 0x09, 0x22, // Usage (Finger) 331 0xA1, 0x02, // Collection (Logical) 332 0x05, 0x0D, // Usage Page (Digitizer) 333 0x09, 0x42, // Usage (Tip Switch) 334 0x15, 0x00, // Logical Minimum (0) 335 0x25, 0x01, // Logical Maximum (1) 336 0x75, 0x01, // Report Size (1) 337 0x95, 0x01, // Report Count (1) 338 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,No Null Position) 339 0x75, 0x01, // Report Size (1) 340 0x81, 0x03, // Input (Const,Var,Abs,No Wrap,Linear,No Null Position) 341 0x75, 0x06, // Report Size (6) 342 0x09, 0x51, // Usage (0x51) 343 0x25, 0x3F, // Logical Maximum (63) 344 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,No Null Position) 345 0x26, 0xFF, 0x00, // Logical Maximum (255) 346 0x75, 0x08, // Report Size (8) 347 0x09, 0x48, // Usage (0x48) 348 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,No Null Position) 349 0x09, 0x49, // Usage (0x49) 350 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,No Null Position) 351 0x95, 0x01, // Report Count (1) 352 0x05, 0x01, // Usage Page (Generic Desktop Ctrls) 353 0xA4, // Push 354 0x26, 0xD0, 0x0B, // Logical Maximum (3024) 355 0x75, 0x10, // Report Size (16) 356 0x55, 0x0F, // Unit Exponent (-1) 357 0x65, 0x11, // Unit (System: SI Linear, Length: Centimeter) 358 0x09, 0x30, // Usage (X) 359 0x35, 0x00, // Physical Minimum (0) 360 0x46, 0xFE, 0x00, // Physical Maximum (254) 361 0x95, 0x02, // Report Count (2) 362 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,No Null Position) 363 0x26, 0x10, 0x08, // Logical Maximum (2064) 364 0x46, 0xA9, 0x00, // Physical Maximum (169) 365 0x09, 0x31, // Usage (Y) 366 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,No Null Position) 367 0xB4, // Pop 368 0xC0, // End Collection 369 0x05, 0x0D, // Usage Page (Digitizer) 370 0x09, 0x22, // Usage (Finger) 371 0xA1, 0x02, // Collection (Logical) 372 0x05, 0x0D, // Usage Page (Digitizer) 373 0x09, 0x42, // Usage (Tip Switch) 374 0x15, 0x00, // Logical Minimum (0) 375 0x25, 0x01, // Logical Maximum (1) 376 0x75, 0x01, // Report Size (1) 377 0x95, 0x01, // Report Count (1) 378 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,No Null Position) 379 0x75, 0x01, // Report Size (1) 380 0x81, 0x03, // Input (Const,Var,Abs,No Wrap,Linear,No Null Position) 381 0x75, 0x06, // Report Size (6) 382 0x09, 0x51, // Usage (0x51) 383 0x25, 0x3F, // Logical Maximum (63) 384 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,No Null Position) 385 0x26, 0xFF, 0x00, // Logical Maximum (255) 386 0x75, 0x08, // Report Size (8) 387 0x09, 0x48, // Usage (0x48) 388 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,No Null Position) 389 0x09, 0x49, // Usage (0x49) 390 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,No Null Position) 391 0x95, 0x01, // Report Count (1) 392 0x05, 0x01, // Usage Page (Generic Desktop Ctrls) 393 0xA4, // Push 394 0x26, 0xD0, 0x0B, // Logical Maximum (3024) 395 0x75, 0x10, // Report Size (16) 396 0x55, 0x0F, // Unit Exponent (-1) 397 0x65, 0x11, // Unit (System: SI Linear, Length: Centimeter) 398 0x09, 0x30, // Usage (X) 399 0x35, 0x00, // Physical Minimum (0) 400 0x46, 0xFE, 0x00, // Physical Maximum (254) 401 0x95, 0x02, // Report Count (2) 402 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,No Null Position) 403 0x26, 0x10, 0x08, // Logical Maximum (2064) 404 0x46, 0xA9, 0x00, // Physical Maximum (169) 405 0x09, 0x31, // Usage (Y) 406 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,No Null Position) 407 0xB4, // Pop 408 0xC0, // End Collection 409 0x05, 0x0D, // Usage Page (Digitizer) 410 0x09, 0x22, // Usage (Finger) 411 0xA1, 0x02, // Collection (Logical) 412 0x05, 0x0D, // Usage Page (Digitizer) 413 0x09, 0x42, // Usage (Tip Switch) 414 0x15, 0x00, // Logical Minimum (0) 415 0x25, 0x01, // Logical Maximum (1) 416 0x75, 0x01, // Report Size (1) 417 0x95, 0x01, // Report Count (1) 418 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,No Null Position) 419 0x75, 0x01, // Report Size (1) 420 0x81, 0x03, // Input (Const,Var,Abs,No Wrap,Linear,No Null Position) 421 0x75, 0x06, // Report Size (6) 422 0x09, 0x51, // Usage (0x51) 423 0x25, 0x3F, // Logical Maximum (63) 424 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,No Null Position) 425 0x26, 0xFF, 0x00, // Logical Maximum (255) 426 0x75, 0x08, // Report Size (8) 427 0x09, 0x48, // Usage (0x48) 428 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,No Null Position) 429 0x09, 0x49, // Usage (0x49) 430 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,No Null Position) 431 0x95, 0x01, // Report Count (1) 432 0x05, 0x01, // Usage Page (Generic Desktop Ctrls) 433 0xA4, // Push 434 0x26, 0xD0, 0x0B, // Logical Maximum (3024) 435 0x75, 0x10, // Report Size (16) 436 0x55, 0x0F, // Unit Exponent (-1) 437 0x65, 0x11, // Unit (System: SI Linear, Length: Centimeter) 438 0x09, 0x30, // Usage (X) 439 0x35, 0x00, // Physical Minimum (0) 440 0x46, 0xFE, 0x00, // Physical Maximum (254) 441 0x95, 0x02, // Report Count (2) 442 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,No Null Position) 443 0x26, 0x10, 0x08, // Logical Maximum (2064) 444 0x46, 0xA9, 0x00, // Physical Maximum (169) 445 0x09, 0x31, // Usage (Y) 446 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,No Null Position) 447 0xB4, // Pop 448 0xC0, // End Collection 449 0x05, 0x0D, // Usage Page (Digitizer) 450 0x09, 0x56, // Usage (0x56) 451 0x55, 0x00, // Unit Exponent (0) 452 0x65, 0x00, // Unit (None) 453 0x27, 0xFF, 0xFF, 0xFF, 0x7F, // Logical Maximum (2147483647) 454 0x95, 0x01, // Report Count (1) 455 0x75, 0x20, // Report Size (32) 456 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,No Null Position) 457 0x09, 0x54, // Usage (0x54) 458 0x25, 0x7F, // Logical Maximum (127) 459 0x95, 0x01, // Report Count (1) 460 0x75, 0x08, // Report Size (8) 461 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,No Null Position) 462 0x85, 0x0A, // Report ID (10) 463 0x09, 0x55, // Usage (0x55) 464 0x25, 0x0A, // Logical Maximum (10) 465 0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,No Null Position,Non-volatile) 466 0x85, 0x0E, // Report ID (14) 467 0x06, 0x00, 0xFF, // Usage Page (Vendor Defined 0xFF00) 468 0x09, 0xC5, // Usage (0xC5) 469 0x15, 0x00, // Logical Minimum (0) 470 0x26, 0xFF, 0x00, // Logical Maximum (255) 471 0x75, 0x08, // Report Size (8) 472 0x96, 0x00, 0x01, // Report Count (256) 473 0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,No Null Position,Non-volatile) 474 0xC0, // End Collection 475 // =========================================================================================== 476 0x06, 0xFF, 0x01, // Usage Page (Reserved 0x01FF) 477 0x09, 0x01, // Usage (0x01) 478 0xA1, 0x01, // Collection (Application) 479 0x85, 0x02, // Report ID (2) 480 0x15, 0x00, // Logical Minimum (0) 481 0x26, 0xFF, 0x00, // Logical Maximum (255) 482 0x75, 0x08, // Report Size (8) 483 0x95, 0x40, // Report Count (64) 484 0x09, 0x00, // Usage (0x00) 485 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,No Null Position) 486 0xC0, // End Collection 487 // =========================================================================================== 488 0x06, 0x00, 0xFF, // Usage Page (Vendor Defined 0xFF00) 489 0x09, 0x01, // Usage (0x01) 490 0xA1, 0x01, // Collection (Application) 491 0x85, 0x03, // Report ID (3) 492 0x75, 0x08, // Report Size (8) 493 0x95, 0x20, // Report Count (32) 494 0x09, 0x01, // Usage (0x01) 495 0x91, 0x02, // Output (Data,Var,Abs,No Wrap,Linear,No Null Position,Non-volatile) 496 0xC0, // End Collection 497 // =========================================================================================== 498 0x06, 0x00, 0xFF, // Usage Page (Vendor Defined 0xFF00) 499 0x09, 0x01, // Usage (0x01) 500 0xA1, 0x01, // Collection (Application) 501 0x85, 0x06, // Report ID (6) 502 0x09, 0x03, // Usage (0x03) 503 0x75, 0x08, // Report Size (8) 504 0x95, 0x12, // Report Count (18) 505 0x91, 0x02, // Output (Data,Var,Abs,No Wrap,Linear,No Null Position,Non-volatile) 506 0x09, 0x04, // Usage (0x04) 507 0x75, 0x08, // Report Size (8) 508 0x95, 0x03, // Report Count (3) 509 0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,No Null Position,Non-volatile) 510 0xC0, // End Collection 511 // =========================================================================================== 512 0x06, 0x01, 0xFF, // Usage Page (Vendor Defined 0xFF01) 513 0x09, 0x01, // Usage (0x01) 514 0xA1, 0x01, // Collection (Application) 515 0x85, 0x04, // Report ID (4) 516 0x15, 0x00, // Logical Minimum (0) 517 0x26, 0xFF, 0x00, // Logical Maximum (255) 518 0x75, 0x08, // Report Size (8) 519 0x95, 0x13, // Report Count (19) 520 0x09, 0x00, // Usage (0x00) 521 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,No Null Position) 522 0xC0, // End Collection 523 // =========================================================================================== 524 0x05, 0x0D, // Usage Page (Digitizer) 525 0x09, 0x02, // Usage (Pen) 526 0xA1, 0x01, // Collection (Application) 527 0x85, 0x07, // Report ID (7) 528 0x35, 0x00, // Physical Minimum (0) 529 0x09, 0x20, // Usage (Stylus) 530 0xA1, 0x00, // Collection (Physical) 531 0x09, 0x32, // Usage (In Range) 532 0x09, 0x42, // Usage (Tip Switch) 533 0x09, 0x44, // Usage (Barrel Switch) 534 0x09, 0x3C, // Usage (Invert) 535 0x09, 0x45, // Usage (Eraser) 536 0x15, 0x00, // Logical Minimum (0) 537 0x25, 0x01, // Logical Maximum (1) 538 0x75, 0x01, // Report Size (1) 539 0x95, 0x05, // Report Count (5) 540 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,No Null Position) 541 0x95, 0x03, // Report Count (3) 542 0x81, 0x03, // Input (Const,Var,Abs,No Wrap,Linear,No Null Position) 543 0x05, 0x01, // Usage Page (Generic Desktop Ctrls) 544 0x09, 0x30, // Usage (X) 545 0x75, 0x10, // Report Size (16) 546 0x95, 0x01, // Report Count (1) 547 0xA4, // Push 548 0x55, 0x0F, // Unit Exponent (-1) 549 0x65, 0x11, // Unit (System: SI Linear, Length: Centimeter) 550 0x46, 0xFE, 0x00, // Physical Maximum (254) 551 0x26, 0xC0, 0x0F, // Logical Maximum (4032) 552 0x81, 0x42, // Input (Data,Var,Abs,No Wrap,Linear,Null State) 553 0x09, 0x31, // Usage (Y) 554 0x46, 0xA9, 0x00, // Physical Maximum (169) 555 0x26, 0xC0, 0x0A, // Logical Maximum (2752) 556 0x81, 0x42, // Input (Data,Var,Abs,No Wrap,Linear,Null State) 557 0xB4, // Pop 558 0x05, 0x0D, // Usage Page (Digitizer) 559 0x09, 0x30, // Usage (Tip Pressure) 560 0x26, 0x00, 0x01, // Logical Maximum (256) 561 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,No Null Position) 562 0xC0, // End Collection 563 0xC0, // End Collection 564 // =========================================================================================== 565 0x06, 0x00, 0xFF, // Usage Page (Vendor Defined 0xFF00) 566 0x09, 0x01, // Usage (0x01) 567 0xA1, 0x01, // Collection (Application) 568 0x85, 0x17, // Report ID (23) 569 0x75, 0x08, // Report Size (8) 570 0x95, 0x1F, // Report Count (31) 571 0x09, 0x05, // Usage (0x05) 572 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,No Null Position) 573 0xC0, // End Collection 574 }; 575 576 // Syntetic descriptor for ACPI sensor device. 577 extern "C" const uint8_t eve_tablet_r_desc[28] = { 578 0x05, 0x01, // Usage Page (Generic Desktop Ctrls) 579 0x09, 0x80, // Usage (Sys Control) 580 0xA1, 0x01, // Collection (Application) 581 0x0B, 0x01, 0x00, 0x00, 0xFF, // Usage (0x0-FFFFFF) [Vendor Defined] 582 0x15, 0x00, // Logical Minimum (0) 583 0x25, 0x01, // Logical Maximum (1) 584 0x75, 0x01, // Report Size (1) 585 0x95, 0x01, // Report Count (1) 586 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 587 0x75, 0x07, // Report Size (7) 588 0x95, 0x01, // Report Count (1) 589 0x81, 0x03, // Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 590 0xC0, // End Collection 591 }; 592 593 // Touch screen on Asus VT168H monitor. 594 extern "C" const uint8_t asus_touch_desc[945] = { 595 0x05, 0x0D, // Usage Page (Digitizer) 596 0x09, 0x04, // Usage (Touch Screen) 597 0xA1, 0x01, // Collection (Application) 598 0x85, 0x01, // Report ID (1) 599 0x09, 0x22, // Usage (Finger) 600 0xA1, 0x02, // Collection (Logical) 601 0x09, 0x42, // Usage (Tip Switch) 602 0x15, 0x00, // Logical Minimum (0) 603 0x25, 0x01, // Logical Maximum (1) 604 0x75, 0x01, // Report Size (1) 605 0x95, 0x01, // Report Count (1) 606 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 607 0x75, 0x01, // Report Size (1) 608 0x81, 0x03, // Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 609 0x75, 0x06, // Report Size (6) 610 0x09, 0x51, // Usage (0x51) 611 0x25, 0x3F, // Logical Maximum (63) 612 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 613 0x26, 0xFF, 0x00, // Logical Maximum (255) 614 0x75, 0x08, // Report Size (8) 615 0x09, 0x48, // Usage (0x48) 616 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 617 0x09, 0x49, // Usage (0x49) 618 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 619 0x95, 0x01, // Report Count (1) 620 0x05, 0x01, // Usage Page (Generic Desktop Ctrls) 621 0xA4, // Push 622 0x26, 0xF0, 0x0C, // Logical Maximum (3312) 623 0x75, 0x10, // Report Size (16) 624 0x55, 0x0F, // Unit Exponent (-1) 625 0x65, 0x11, // Unit (System: SI Linear, Length: Centimeter) 626 0x09, 0x30, // Usage (X) 627 0x35, 0x00, // Physical Minimum (0) 628 0x46, 0x59, 0x01, // Physical Maximum (345) 629 0x95, 0x02, // Report Count (2) 630 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 631 0x26, 0x50, 0x07, // Logical Maximum (1872) 632 0x46, 0xC2, 0x00, // Physical Maximum (194) 633 0x09, 0x31, // Usage (Y) 634 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 635 0xB4, // Pop 636 0xC0, // End Collection 637 0x05, 0x0D, // Usage Page (Digitizer) 638 0x09, 0x22, // Usage (Finger) 639 0xA1, 0x02, // Collection (Logical) 640 0x05, 0x0D, // Usage Page (Digitizer) 641 0x09, 0x42, // Usage (Tip Switch) 642 0x15, 0x00, // Logical Minimum (0) 643 0x25, 0x01, // Logical Maximum (1) 644 0x75, 0x01, // Report Size (1) 645 0x95, 0x01, // Report Count (1) 646 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 647 0x75, 0x01, // Report Size (1) 648 0x81, 0x03, // Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 649 0x75, 0x06, // Report Size (6) 650 0x09, 0x51, // Usage (0x51) 651 0x25, 0x3F, // Logical Maximum (63) 652 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 653 0x26, 0xFF, 0x00, // Logical Maximum (255) 654 0x75, 0x08, // Report Size (8) 655 0x09, 0x48, // Usage (0x48) 656 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 657 0x09, 0x49, // Usage (0x49) 658 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 659 0x95, 0x01, // Report Count (1) 660 0x05, 0x01, // Usage Page (Generic Desktop Ctrls) 661 0xA4, // Push 662 0x26, 0xF0, 0x0C, // Logical Maximum (3312) 663 0x75, 0x10, // Report Size (16) 664 0x55, 0x0F, // Unit Exponent (-1) 665 0x65, 0x11, // Unit (System: SI Linear, Length: Centimeter) 666 0x09, 0x30, // Usage (X) 667 0x35, 0x00, // Physical Minimum (0) 668 0x46, 0x59, 0x01, // Physical Maximum (345) 669 0x95, 0x02, // Report Count (2) 670 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 671 0x26, 0x50, 0x07, // Logical Maximum (1872) 672 0x46, 0xC2, 0x00, // Physical Maximum (194) 673 0x09, 0x31, // Usage (Y) 674 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 675 0xB4, // Pop 676 0xC0, // End Collection 677 0x05, 0x0D, // Usage Page (Digitizer) 678 0x09, 0x22, // Usage (Finger) 679 0xA1, 0x02, // Collection (Logical) 680 0x05, 0x0D, // Usage Page (Digitizer) 681 0x09, 0x42, // Usage (Tip Switch) 682 0x15, 0x00, // Logical Minimum (0) 683 0x25, 0x01, // Logical Maximum (1) 684 0x75, 0x01, // Report Size (1) 685 0x95, 0x01, // Report Count (1) 686 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 687 0x75, 0x01, // Report Size (1) 688 0x81, 0x03, // Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 689 0x75, 0x06, // Report Size (6) 690 0x09, 0x51, // Usage (0x51) 691 0x25, 0x3F, // Logical Maximum (63) 692 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 693 0x26, 0xFF, 0x00, // Logical Maximum (255) 694 0x75, 0x08, // Report Size (8) 695 0x09, 0x48, // Usage (0x48) 696 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 697 0x09, 0x49, // Usage (0x49) 698 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 699 0x95, 0x01, // Report Count (1) 700 0x05, 0x01, // Usage Page (Generic Desktop Ctrls) 701 0xA4, // Push 702 0x26, 0xF0, 0x0C, // Logical Maximum (3312) 703 0x75, 0x10, // Report Size (16) 704 0x55, 0x0F, // Unit Exponent (-1) 705 0x65, 0x11, // Unit (System: SI Linear, Length: Centimeter) 706 0x09, 0x30, // Usage (X) 707 0x35, 0x00, // Physical Minimum (0) 708 0x46, 0x59, 0x01, // Physical Maximum (345) 709 0x95, 0x02, // Report Count (2) 710 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 711 0x26, 0x50, 0x07, // Logical Maximum (1872) 712 0x46, 0xC2, 0x00, // Physical Maximum (194) 713 0x09, 0x31, // Usage (Y) 714 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 715 0xB4, // Pop 716 0xC0, // End Collection 717 0x05, 0x0D, // Usage Page (Digitizer) 718 0x09, 0x22, // Usage (Finger) 719 0xA1, 0x02, // Collection (Logical) 720 0x05, 0x0D, // Usage Page (Digitizer) 721 0x09, 0x42, // Usage (Tip Switch) 722 0x15, 0x00, // Logical Minimum (0) 723 0x25, 0x01, // Logical Maximum (1) 724 0x75, 0x01, // Report Size (1) 725 0x95, 0x01, // Report Count (1) 726 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 727 0x75, 0x01, // Report Size (1) 728 0x81, 0x03, // Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 729 0x75, 0x06, // Report Size (6) 730 0x09, 0x51, // Usage (0x51) 731 0x25, 0x3F, // Logical Maximum (63) 732 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 733 0x26, 0xFF, 0x00, // Logical Maximum (255) 734 0x75, 0x08, // Report Size (8) 735 0x09, 0x48, // Usage (0x48) 736 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 737 0x09, 0x49, // Usage (0x49) 738 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 739 0x95, 0x01, // Report Count (1) 740 0x05, 0x01, // Usage Page (Generic Desktop Ctrls) 741 0xA4, // Push 742 0x26, 0xF0, 0x0C, // Logical Maximum (3312) 743 0x75, 0x10, // Report Size (16) 744 0x55, 0x0F, // Unit Exponent (-1) 745 0x65, 0x11, // Unit (System: SI Linear, Length: Centimeter) 746 0x09, 0x30, // Usage (X) 747 0x35, 0x00, // Physical Minimum (0) 748 0x46, 0x59, 0x01, // Physical Maximum (345) 749 0x95, 0x02, // Report Count (2) 750 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 751 0x26, 0x50, 0x07, // Logical Maximum (1872) 752 0x46, 0xC2, 0x00, // Physical Maximum (194) 753 0x09, 0x31, // Usage (Y) 754 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 755 0xB4, // Pop 756 0xC0, // End Collection 757 0x05, 0x0D, // Usage Page (Digitizer) 758 0x09, 0x22, // Usage (Finger) 759 0xA1, 0x02, // Collection (Logical) 760 0x05, 0x0D, // Usage Page (Digitizer) 761 0x09, 0x42, // Usage (Tip Switch) 762 0x15, 0x00, // Logical Minimum (0) 763 0x25, 0x01, // Logical Maximum (1) 764 0x75, 0x01, // Report Size (1) 765 0x95, 0x01, // Report Count (1) 766 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 767 0x75, 0x01, // Report Size (1) 768 0x81, 0x03, // Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 769 0x75, 0x06, // Report Size (6) 770 0x09, 0x51, // Usage (0x51) 771 0x25, 0x3F, // Logical Maximum (63) 772 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 773 0x26, 0xFF, 0x00, // Logical Maximum (255) 774 0x75, 0x08, // Report Size (8) 775 0x09, 0x48, // Usage (0x48) 776 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 777 0x09, 0x49, // Usage (0x49) 778 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 779 0x95, 0x01, // Report Count (1) 780 0x05, 0x01, // Usage Page (Generic Desktop Ctrls) 781 0xA4, // Push 782 0x26, 0xF0, 0x0C, // Logical Maximum (3312) 783 0x75, 0x10, // Report Size (16) 784 0x55, 0x0F, // Unit Exponent (-1) 785 0x65, 0x11, // Unit (System: SI Linear, Length: Centimeter) 786 0x09, 0x30, // Usage (X) 787 0x35, 0x00, // Physical Minimum (0) 788 0x46, 0x59, 0x01, // Physical Maximum (345) 789 0x95, 0x02, // Report Count (2) 790 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 791 0x26, 0x50, 0x07, // Logical Maximum (1872) 792 0x46, 0xC2, 0x00, // Physical Maximum (194) 793 0x09, 0x31, // Usage (Y) 794 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 795 0xB4, // Pop 796 0xC0, // End Collection 797 0x05, 0x0D, // Usage Page (Digitizer) 798 0x09, 0x22, // Usage (Finger) 799 0xA1, 0x02, // Collection (Logical) 800 0x05, 0x0D, // Usage Page (Digitizer) 801 0x09, 0x42, // Usage (Tip Switch) 802 0x15, 0x00, // Logical Minimum (0) 803 0x25, 0x01, // Logical Maximum (1) 804 0x75, 0x01, // Report Size (1) 805 0x95, 0x01, // Report Count (1) 806 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 807 0x75, 0x01, // Report Size (1) 808 0x81, 0x03, // Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 809 0x75, 0x06, // Report Size (6) 810 0x09, 0x51, // Usage (0x51) 811 0x25, 0x3F, // Logical Maximum (63) 812 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 813 0x26, 0xFF, 0x00, // Logical Maximum (255) 814 0x75, 0x08, // Report Size (8) 815 0x09, 0x48, // Usage (0x48) 816 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 817 0x09, 0x49, // Usage (0x49) 818 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 819 0x95, 0x01, // Report Count (1) 820 0x05, 0x01, // Usage Page (Generic Desktop Ctrls) 821 0xA4, // Push 822 0x26, 0xF0, 0x0C, // Logical Maximum (3312) 823 0x75, 0x10, // Report Size (16) 824 0x55, 0x0F, // Unit Exponent (-1) 825 0x65, 0x11, // Unit (System: SI Linear, Length: Centimeter) 826 0x09, 0x30, // Usage (X) 827 0x35, 0x00, // Physical Minimum (0) 828 0x46, 0x59, 0x01, // Physical Maximum (345) 829 0x95, 0x02, // Report Count (2) 830 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 831 0x26, 0x50, 0x07, // Logical Maximum (1872) 832 0x46, 0xC2, 0x00, // Physical Maximum (194) 833 0x09, 0x31, // Usage (Y) 834 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 835 0xB4, // Pop 836 0xC0, // End Collection 837 0x05, 0x0D, // Usage Page (Digitizer) 838 0x09, 0x22, // Usage (Finger) 839 0xA1, 0x02, // Collection (Logical) 840 0x05, 0x0D, // Usage Page (Digitizer) 841 0x09, 0x42, // Usage (Tip Switch) 842 0x15, 0x00, // Logical Minimum (0) 843 0x25, 0x01, // Logical Maximum (1) 844 0x75, 0x01, // Report Size (1) 845 0x95, 0x01, // Report Count (1) 846 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 847 0x75, 0x01, // Report Size (1) 848 0x81, 0x03, // Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 849 0x75, 0x06, // Report Size (6) 850 0x09, 0x51, // Usage (0x51) 851 0x25, 0x3F, // Logical Maximum (63) 852 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 853 0x26, 0xFF, 0x00, // Logical Maximum (255) 854 0x75, 0x08, // Report Size (8) 855 0x09, 0x48, // Usage (0x48) 856 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 857 0x09, 0x49, // Usage (0x49) 858 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 859 0x95, 0x01, // Report Count (1) 860 0x05, 0x01, // Usage Page (Generic Desktop Ctrls) 861 0xA4, // Push 862 0x26, 0xF0, 0x0C, // Logical Maximum (3312) 863 0x75, 0x10, // Report Size (16) 864 0x55, 0x0F, // Unit Exponent (-1) 865 0x65, 0x11, // Unit (System: SI Linear, Length: Centimeter) 866 0x09, 0x30, // Usage (X) 867 0x35, 0x00, // Physical Minimum (0) 868 0x46, 0x59, 0x01, // Physical Maximum (345) 869 0x95, 0x02, // Report Count (2) 870 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 871 0x26, 0x50, 0x07, // Logical Maximum (1872) 872 0x46, 0xC2, 0x00, // Physical Maximum (194) 873 0x09, 0x31, // Usage (Y) 874 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 875 0xB4, // Pop 876 0xC0, // End Collection 877 0x05, 0x0D, // Usage Page (Digitizer) 878 0x09, 0x22, // Usage (Finger) 879 0xA1, 0x02, // Collection (Logical) 880 0x05, 0x0D, // Usage Page (Digitizer) 881 0x09, 0x42, // Usage (Tip Switch) 882 0x15, 0x00, // Logical Minimum (0) 883 0x25, 0x01, // Logical Maximum (1) 884 0x75, 0x01, // Report Size (1) 885 0x95, 0x01, // Report Count (1) 886 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 887 0x75, 0x01, // Report Size (1) 888 0x81, 0x03, // Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 889 0x75, 0x06, // Report Size (6) 890 0x09, 0x51, // Usage (0x51) 891 0x25, 0x3F, // Logical Maximum (63) 892 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 893 0x26, 0xFF, 0x00, // Logical Maximum (255) 894 0x75, 0x08, // Report Size (8) 895 0x09, 0x48, // Usage (0x48) 896 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 897 0x09, 0x49, // Usage (0x49) 898 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 899 0x95, 0x01, // Report Count (1) 900 0x05, 0x01, // Usage Page (Generic Desktop Ctrls) 901 0xA4, // Push 902 0x26, 0xF0, 0x0C, // Logical Maximum (3312) 903 0x75, 0x10, // Report Size (16) 904 0x55, 0x0F, // Unit Exponent (-1) 905 0x65, 0x11, // Unit (System: SI Linear, Length: Centimeter) 906 0x09, 0x30, // Usage (X) 907 0x35, 0x00, // Physical Minimum (0) 908 0x46, 0x59, 0x01, // Physical Maximum (345) 909 0x95, 0x02, // Report Count (2) 910 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 911 0x26, 0x50, 0x07, // Logical Maximum (1872) 912 0x46, 0xC2, 0x00, // Physical Maximum (194) 913 0x09, 0x31, // Usage (Y) 914 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 915 0xB4, // Pop 916 0xC0, // End Collection 917 0x05, 0x0D, // Usage Page (Digitizer) 918 0x09, 0x22, // Usage (Finger) 919 0xA1, 0x02, // Collection (Logical) 920 0x05, 0x0D, // Usage Page (Digitizer) 921 0x09, 0x42, // Usage (Tip Switch) 922 0x15, 0x00, // Logical Minimum (0) 923 0x25, 0x01, // Logical Maximum (1) 924 0x75, 0x01, // Report Size (1) 925 0x95, 0x01, // Report Count (1) 926 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 927 0x75, 0x01, // Report Size (1) 928 0x81, 0x03, // Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 929 0x75, 0x06, // Report Size (6) 930 0x09, 0x51, // Usage (0x51) 931 0x25, 0x3F, // Logical Maximum (63) 932 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 933 0x26, 0xFF, 0x00, // Logical Maximum (255) 934 0x75, 0x08, // Report Size (8) 935 0x09, 0x48, // Usage (0x48) 936 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 937 0x09, 0x49, // Usage (0x49) 938 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 939 0x95, 0x01, // Report Count (1) 940 0x05, 0x01, // Usage Page (Generic Desktop Ctrls) 941 0xA4, // Push 942 0x26, 0xF0, 0x0C, // Logical Maximum (3312) 943 0x75, 0x10, // Report Size (16) 944 0x55, 0x0F, // Unit Exponent (-1) 945 0x65, 0x11, // Unit (System: SI Linear, Length: Centimeter) 946 0x09, 0x30, // Usage (X) 947 0x35, 0x00, // Physical Minimum (0) 948 0x46, 0x59, 0x01, // Physical Maximum (345) 949 0x95, 0x02, // Report Count (2) 950 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 951 0x26, 0x50, 0x07, // Logical Maximum (1872) 952 0x46, 0xC2, 0x00, // Physical Maximum (194) 953 0x09, 0x31, // Usage (Y) 954 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 955 0xB4, // Pop 956 0xC0, // End Collection 957 0x05, 0x0D, // Usage Page (Digitizer) 958 0x09, 0x22, // Usage (Finger) 959 0xA1, 0x02, // Collection (Logical) 960 0x05, 0x0D, // Usage Page (Digitizer) 961 0x09, 0x42, // Usage (Tip Switch) 962 0x15, 0x00, // Logical Minimum (0) 963 0x25, 0x01, // Logical Maximum (1) 964 0x75, 0x01, // Report Size (1) 965 0x95, 0x01, // Report Count (1) 966 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 967 0x75, 0x01, // Report Size (1) 968 0x81, 0x03, // Input (Const,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 969 0x75, 0x06, // Report Size (6) 970 0x09, 0x51, // Usage (0x51) 971 0x25, 0x3F, // Logical Maximum (63) 972 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 973 0x26, 0xFF, 0x00, // Logical Maximum (255) 974 0x75, 0x08, // Report Size (8) 975 0x09, 0x48, // Usage (0x48) 976 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 977 0x09, 0x49, // Usage (0x49) 978 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 979 0x95, 0x01, // Report Count (1) 980 0x05, 0x01, // Usage Page (Generic Desktop Ctrls) 981 0xA4, // Push 982 0x26, 0xF0, 0x0C, // Logical Maximum (3312) 983 0x75, 0x10, // Report Size (16) 984 0x55, 0x0F, // Unit Exponent (-1) 985 0x65, 0x11, // Unit (System: SI Linear, Length: Centimeter) 986 0x09, 0x30, // Usage (X) 987 0x35, 0x00, // Physical Minimum (0) 988 0x46, 0x59, 0x01, // Physical Maximum (345) 989 0x95, 0x02, // Report Count (2) 990 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 991 0x26, 0x50, 0x07, // Logical Maximum (1872) 992 0x46, 0xC2, 0x00, // Physical Maximum (194) 993 0x09, 0x31, // Usage (Y) 994 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 995 0xB4, // Pop 996 0xC0, // End Collection 997 0x05, 0x0D, // Usage Page (Digitizer) 998 0x09, 0x56, // Usage (0x56) 999 0x55, 0x00, // Unit Exponent (0) 1000 0x65, 0x00, // Unit (None) 1001 0x27, 0xFF, 0xFF, 0xFF, 0x7F, // Logical Maximum (2147483646) 1002 0x95, 0x01, // Report Count (1) 1003 0x75, 0x20, // Report Size (32) 1004 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 1005 0x09, 0x54, // Usage (0x54) 1006 0x25, 0x7F, // Logical Maximum (127) 1007 0x95, 0x01, // Report Count (1) 1008 0x75, 0x08, // Report Size (8) 1009 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 1010 0x85, 0x0A, // Report ID (10) 1011 0x09, 0x55, // Usage (0x55) 1012 0x25, 0x0A, // Logical Maximum (10) 1013 0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile) 1014 0x85, 0x44, // Report ID (68) 1015 0x06, 0x00, 0xFF, // Usage Page (Vendor Defined 0xFF00) 1016 0x09, 0xC5, // Usage (0xC5) 1017 0x15, 0x00, // Logical Minimum (0) 1018 0x26, 0xFF, 0x00, // Logical Maximum (255) 1019 0x75, 0x08, // Report Size (8) 1020 0x96, 0x00, 0x01, // Report Count (256) 1021 0xB1, 0x02, // Feature (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile) 1022 0xC0, // End Collection 1023 0x06, 0xFF, 0x01, // Usage Page (Reserved 0x01FF) 1024 0x09, 0x01, // Usage (0x01) 1025 0xA1, 0x01, // Collection (Application) 1026 0x85, 0x02, // Report ID (2) 1027 0x15, 0x00, // Logical Minimum (0) 1028 0x26, 0xFF, 0x00, // Logical Maximum (255) 1029 0x75, 0x08, // Report Size (8) 1030 0x95, 0x40, // Report Count (64) 1031 0x09, 0x00, // Usage (0x00) 1032 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 1033 0xC0, // End Collection 1034 0x06, 0x00, 0xFF, // Usage Page (Vendor Defined 0xFF00) 1035 0x09, 0x01, // Usage (0x01) 1036 0xA1, 0x01, // Collection (Application) 1037 0x85, 0x03, // Report ID (3) 1038 0x75, 0x08, // Report Size (8) 1039 0x95, 0x3F, // Report Count (63) 1040 0x09, 0x01, // Usage (0x01) 1041 0x91, 0x02, // Output (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position,Non-volatile) 1042 0xC0, // End Collection 1043 0x06, 0x01, 0xFF, // Usage Page (Vendor Defined 0xFF01) 1044 0x09, 0x01, // Usage (0x01) 1045 0xA1, 0x01, // Collection (Application) 1046 0x85, 0x04, // Report ID (4) 1047 0x15, 0x00, // Logical Minimum (0) 1048 0x26, 0xFF, 0x00, // Logical Maximum (255) 1049 0x75, 0x08, // Report Size (8) 1050 0x95, 0x13, // Report Count (19) 1051 0x09, 0x00, // Usage (0x00) 1052 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 1053 0xC0, // End Collection 1054 }; 1055 1056 extern "C" const uint8_t eve_touchpad_v2_r_desc[560] = { 1057 0x05, 0x0D, // Usage Page (Digitizer) 1058 0x09, 0x05, // Usage (Touch Pad) 1059 0xA1, 0x01, // Collection (Application) 1060 0x85, 0x01, // Report ID (1) 1061 0x05, 0x09, // Usage Page (Button) 1062 0x19, 0x01, // Usage Minimum (0x01) 1063 0x29, 0x01, // Usage Maximum (0x01) 1064 0x15, 0x00, // Logical Minimum (0) 1065 0x25, 0x01, // Logical Maximum (1) 1066 0x75, 0x01, // Report Size (1) 1067 0x95, 0x01, // Report Count (1) 1068 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 1069 0x05, 0x0D, // Usage Page (Digitizer) 1070 0x09, 0x54, // Usage (0x54) 1071 0x75, 0x07, // Report Size (7) 1072 0x95, 0x01, // Report Count (1) 1073 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 1074 0x05, 0x0D, // Usage Page (Digitizer) 1075 0x09, 0x22, // Usage (Finger) 1076 0xA1, 0x02, // Collection (Logical) 1077 0x09, 0x42, // Usage (Tip Switch) 1078 0x15, 0x00, // Logical Minimum (0) 1079 0x25, 0x01, // Logical Maximum (1) 1080 0x75, 0x01, // Report Size (1) 1081 0x95, 0x01, // Report Count (1) 1082 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 1083 0x09, 0x32, // Usage (In Range) 1084 0x75, 0x07, // Report Size (7) 1085 0x95, 0x01, // Report Count (1) 1086 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 1087 0x09, 0x51, // Usage (0x51) 1088 0x26, 0xFF, 0x7F, // Logical Maximum (32767) 1089 0x75, 0x10, // Report Size (16) 1090 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 1091 0x05, 0x01, // Usage Page (Generic Desktop Ctrls) 1092 0x09, 0x30, // Usage (X) 1093 0x55, 0x0E, // Unit Exponent (-2) 1094 0x65, 0x11, // Unit (System: SI Linear, Length: Centimeter) 1095 0x35, 0x00, // Physical Minimum (0) 1096 0x46, 0x06, 0x04, // Physical Maximum (1030) 1097 0x26, 0x80, 0x33, // Logical Maximum (13184) 1098 0x75, 0x10, // Report Size (16) 1099 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 1100 0x09, 0x31, // Usage (Y) 1101 0x46, 0xA8, 0x02, // Physical Maximum (680) 1102 0x26, 0x00, 0x22, // Logical Maximum (8704) 1103 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 1104 0x05, 0x0D, // Usage Page (Digitizer) 1105 0x26, 0x80, 0x33, // Logical Maximum (13184) 1106 0x09, 0x48, // Usage (0x48) 1107 0x75, 0x10, // Report Size (16) 1108 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 1109 0x26, 0x00, 0x22, // Logical Maximum (8704) 1110 0x09, 0x49, // Usage (0x49) 1111 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 1112 0x09, 0x30, // Usage (Tip Pressure) 1113 0x26, 0xFF, 0x00, // Logical Maximum (255) 1114 0x75, 0x08, // Report Size (8) 1115 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 1116 0x09, 0x3F, // Usage (Azimuth) 1117 0x16, 0x00, 0x00, // Logical Minimum (0) 1118 0x26, 0x68, 0x01, // Logical Maximum (360) 1119 0x75, 0x10, // Report Size (16) 1120 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 1121 0xC0, // End Collection 1122 0x05, 0x0D, // Usage Page (Digitizer) 1123 0x09, 0x22, // Usage (Finger) 1124 0xA1, 0x02, // Collection (Logical) 1125 0x09, 0x42, // Usage (Tip Switch) 1126 0x15, 0x00, // Logical Minimum (0) 1127 0x25, 0x01, // Logical Maximum (1) 1128 0x75, 0x01, // Report Size (1) 1129 0x95, 0x01, // Report Count (1) 1130 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 1131 0x09, 0x32, // Usage (In Range) 1132 0x75, 0x07, // Report Size (7) 1133 0x95, 0x01, // Report Count (1) 1134 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 1135 0x09, 0x51, // Usage (0x51) 1136 0x26, 0xFF, 0x7F, // Logical Maximum (32767) 1137 0x75, 0x10, // Report Size (16) 1138 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 1139 0x05, 0x01, // Usage Page (Generic Desktop Ctrls) 1140 0x09, 0x30, // Usage (X) 1141 0x55, 0x0E, // Unit Exponent (-2) 1142 0x65, 0x11, // Unit (System: SI Linear, Length: Centimeter) 1143 0x35, 0x00, // Physical Minimum (0) 1144 0x46, 0x06, 0x04, // Physical Maximum (1030) 1145 0x26, 0x80, 0x33, // Logical Maximum (13184) 1146 0x75, 0x10, // Report Size (16) 1147 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 1148 0x09, 0x31, // Usage (Y) 1149 0x46, 0xA8, 0x02, // Physical Maximum (680) 1150 0x26, 0x00, 0x22, // Logical Maximum (8704) 1151 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 1152 0x05, 0x0D, // Usage Page (Digitizer) 1153 0x26, 0x80, 0x33, // Logical Maximum (13184) 1154 0x09, 0x48, // Usage (0x48) 1155 0x75, 0x10, // Report Size (16) 1156 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 1157 0x26, 0x00, 0x22, // Logical Maximum (8704) 1158 0x09, 0x49, // Usage (0x49) 1159 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 1160 0x09, 0x30, // Usage (Tip Pressure) 1161 0x26, 0xFF, 0x00, // Logical Maximum (255) 1162 0x75, 0x08, // Report Size (8) 1163 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 1164 0x09, 0x3F, // Usage (Azimuth) 1165 0x16, 0x00, 0x00, // Logical Minimum (0) 1166 0x26, 0x68, 0x01, // Logical Maximum (360) 1167 0x75, 0x10, // Report Size (16) 1168 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 1169 0xC0, // End Collection 1170 0x05, 0x0D, // Usage Page (Digitizer) 1171 0x09, 0x22, // Usage (Finger) 1172 0xA1, 0x02, // Collection (Logical) 1173 0x09, 0x42, // Usage (Tip Switch) 1174 0x15, 0x00, // Logical Minimum (0) 1175 0x25, 0x01, // Logical Maximum (1) 1176 0x75, 0x01, // Report Size (1) 1177 0x95, 0x01, // Report Count (1) 1178 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 1179 0x09, 0x32, // Usage (In Range) 1180 0x75, 0x07, // Report Size (7) 1181 0x95, 0x01, // Report Count (1) 1182 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 1183 0x09, 0x51, // Usage (0x51) 1184 0x26, 0xFF, 0x7F, // Logical Maximum (32767) 1185 0x75, 0x10, // Report Size (16) 1186 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 1187 0x05, 0x01, // Usage Page (Generic Desktop Ctrls) 1188 0x09, 0x30, // Usage (X) 1189 0x55, 0x0E, // Unit Exponent (-2) 1190 0x65, 0x11, // Unit (System: SI Linear, Length: Centimeter) 1191 0x35, 0x00, // Physical Minimum (0) 1192 0x46, 0x06, 0x04, // Physical Maximum (1030) 1193 0x26, 0x80, 0x33, // Logical Maximum (13184) 1194 0x75, 0x10, // Report Size (16) 1195 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 1196 0x09, 0x31, // Usage (Y) 1197 0x46, 0xA8, 0x02, // Physical Maximum (680) 1198 0x26, 0x00, 0x22, // Logical Maximum (8704) 1199 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 1200 0x05, 0x0D, // Usage Page (Digitizer) 1201 0x26, 0x80, 0x33, // Logical Maximum (13184) 1202 0x09, 0x48, // Usage (0x48) 1203 0x75, 0x10, // Report Size (16) 1204 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 1205 0x26, 0x00, 0x22, // Logical Maximum (8704) 1206 0x09, 0x49, // Usage (0x49) 1207 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 1208 0x09, 0x30, // Usage (Tip Pressure) 1209 0x26, 0xFF, 0x00, // Logical Maximum (255) 1210 0x75, 0x08, // Report Size (8) 1211 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 1212 0x09, 0x3F, // Usage (Azimuth) 1213 0x16, 0x00, 0x00, // Logical Minimum (0) 1214 0x26, 0x68, 0x01, // Logical Maximum (360) 1215 0x75, 0x10, // Report Size (16) 1216 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 1217 0xC0, // End Collection 1218 0x05, 0x0D, // Usage Page (Digitizer) 1219 0x09, 0x22, // Usage (Finger) 1220 0xA1, 0x02, // Collection (Logical) 1221 0x09, 0x42, // Usage (Tip Switch) 1222 0x15, 0x00, // Logical Minimum (0) 1223 0x25, 0x01, // Logical Maximum (1) 1224 0x75, 0x01, // Report Size (1) 1225 0x95, 0x01, // Report Count (1) 1226 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 1227 0x09, 0x32, // Usage (In Range) 1228 0x75, 0x07, // Report Size (7) 1229 0x95, 0x01, // Report Count (1) 1230 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 1231 0x09, 0x51, // Usage (0x51) 1232 0x26, 0xFF, 0x7F, // Logical Maximum (32767) 1233 0x75, 0x10, // Report Size (16) 1234 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 1235 0x05, 0x01, // Usage Page (Generic Desktop Ctrls) 1236 0x09, 0x30, // Usage (X) 1237 0x55, 0x0E, // Unit Exponent (-2) 1238 0x65, 0x11, // Unit (System: SI Linear, Length: Centimeter) 1239 0x35, 0x00, // Physical Minimum (0) 1240 0x46, 0x06, 0x04, // Physical Maximum (1030) 1241 0x26, 0x80, 0x33, // Logical Maximum (13184) 1242 0x75, 0x10, // Report Size (16) 1243 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 1244 0x09, 0x31, // Usage (Y) 1245 0x46, 0xA8, 0x02, // Physical Maximum (680) 1246 0x26, 0x00, 0x22, // Logical Maximum (8704) 1247 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 1248 0x05, 0x0D, // Usage Page (Digitizer) 1249 0x26, 0x80, 0x33, // Logical Maximum (13184) 1250 0x09, 0x48, // Usage (0x48) 1251 0x75, 0x10, // Report Size (16) 1252 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 1253 0x26, 0x00, 0x22, // Logical Maximum (8704) 1254 0x09, 0x49, // Usage (0x49) 1255 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 1256 0x09, 0x30, // Usage (Tip Pressure) 1257 0x26, 0xFF, 0x00, // Logical Maximum (255) 1258 0x75, 0x08, // Report Size (8) 1259 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 1260 0x09, 0x3F, // Usage (Azimuth) 1261 0x16, 0x00, 0x00, // Logical Minimum (0) 1262 0x26, 0x68, 0x01, // Logical Maximum (360) 1263 0x75, 0x10, // Report Size (16) 1264 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 1265 0xC0, // End Collection 1266 0x05, 0x0D, // Usage Page (Digitizer) 1267 0x09, 0x22, // Usage (Finger) 1268 0xA1, 0x02, // Collection (Logical) 1269 0x09, 0x42, // Usage (Tip Switch) 1270 0x15, 0x00, // Logical Minimum (0) 1271 0x25, 0x01, // Logical Maximum (1) 1272 0x75, 0x01, // Report Size (1) 1273 0x95, 0x01, // Report Count (1) 1274 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 1275 0x09, 0x32, // Usage (In Range) 1276 0x75, 0x07, // Report Size (7) 1277 0x95, 0x01, // Report Count (1) 1278 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 1279 0x09, 0x51, // Usage (0x51) 1280 0x26, 0xFF, 0x7F, // Logical Maximum (32767) 1281 0x75, 0x10, // Report Size (16) 1282 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 1283 0x05, 0x01, // Usage Page (Generic Desktop Ctrls) 1284 0x09, 0x30, // Usage (X) 1285 0x55, 0x0E, // Unit Exponent (-2) 1286 0x65, 0x11, // Unit (System: SI Linear, Length: Centimeter) 1287 0x35, 0x00, // Physical Minimum (0) 1288 0x46, 0x06, 0x04, // Physical Maximum (1030) 1289 0x26, 0x80, 0x33, // Logical Maximum (13184) 1290 0x75, 0x10, // Report Size (16) 1291 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 1292 0x09, 0x31, // Usage (Y) 1293 0x46, 0xA8, 0x02, // Physical Maximum (680) 1294 0x26, 0x00, 0x22, // Logical Maximum (8704) 1295 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 1296 0x05, 0x0D, // Usage Page (Digitizer) 1297 0x26, 0x80, 0x33, // Logical Maximum (13184) 1298 0x09, 0x48, // Usage (0x48) 1299 0x75, 0x10, // Report Size (16) 1300 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 1301 0x26, 0x00, 0x22, // Logical Maximum (8704) 1302 0x09, 0x49, // Usage (0x49) 1303 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 1304 0x09, 0x30, // Usage (Tip Pressure) 1305 0x26, 0xFF, 0x00, // Logical Maximum (255) 1306 0x75, 0x08, // Report Size (8) 1307 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 1308 0x09, 0x3F, // Usage (Azimuth) 1309 0x16, 0x00, 0x00, // Logical Minimum (0) 1310 0x26, 0x68, 0x01, // Logical Maximum (360) 1311 0x75, 0x10, // Report Size (16) 1312 0x81, 0x02, // Input (Data,Var,Abs,No Wrap,Linear,Preferred State,No Null Position) 1313 0xC0, // End Collection 1314 0xC0, // End Collection 1315 1316 // 560 bytes 1317 }; 1318