1 /* 2 * Copyright 2024 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 use crate::input::KeyboardType; 18 19 // TODO(b/263559234): Categorize some of these to KeyboardType::None based on ability to produce 20 // key events at all. (Requires setup allowing InputDevice to dynamically add/remove 21 // KeyboardInputMapper based on blocklist and KeyEvents in case a KeyboardType::None device ends 22 // up producing a key event) 23 pub static CLASSIFIED_DEVICES: &[( 24 /* vendorId */ u16, 25 /* productId */ u16, 26 KeyboardType, 27 /* is_finalized */ bool, 28 )] = &[ 29 // HP X4000 Wireless Mouse 30 (0x03f0, 0xa407, KeyboardType::NonAlphabetic, true), 31 // Microsoft Wireless Mobile Mouse 6000 32 (0x045e, 0x0745, KeyboardType::NonAlphabetic, true), 33 // Microsoft Surface Precision Mouse 34 (0x045e, 0x0821, KeyboardType::NonAlphabetic, true), 35 // Microsoft Pro IntelliMouse 36 (0x045e, 0x082a, KeyboardType::NonAlphabetic, true), 37 // Microsoft Bluetooth Mouse 38 (0x045e, 0x082f, KeyboardType::NonAlphabetic, true), 39 // Xbox One Elite Series 2 gamepad 40 (0x045e, 0x0b05, KeyboardType::NonAlphabetic, true), 41 // Logitech T400 42 (0x046d, 0x4026, KeyboardType::NonAlphabetic, true), 43 // Logitech M720 Triathlon (Unifying) 44 (0x046d, 0x405e, KeyboardType::NonAlphabetic, true), 45 // Logitech MX Master 2S (Unifying) 46 (0x046d, 0x4069, KeyboardType::NonAlphabetic, true), 47 // Logitech M585 (Unifying) 48 (0x046d, 0x406b, KeyboardType::NonAlphabetic, true), 49 // Logitech MX Anywhere 2 (Unifying) 50 (0x046d, 0x4072, KeyboardType::NonAlphabetic, true), 51 // Logitech Pebble M350 52 (0x046d, 0x4080, KeyboardType::NonAlphabetic, true), 53 // Logitech T630 Ultrathin 54 (0x046d, 0xb00d, KeyboardType::NonAlphabetic, true), 55 // Logitech M558 56 (0x046d, 0xb011, KeyboardType::NonAlphabetic, true), 57 // Logitech MX Master (Bluetooth) 58 (0x046d, 0xb012, KeyboardType::NonAlphabetic, true), 59 // Logitech MX Anywhere 2 (Bluetooth) 60 (0x046d, 0xb013, KeyboardType::NonAlphabetic, true), 61 // Logitech M720 Triathlon (Bluetooth) 62 (0x046d, 0xb015, KeyboardType::NonAlphabetic, true), 63 // Logitech M535 64 (0x046d, 0xb016, KeyboardType::NonAlphabetic, true), 65 // Logitech MX Master / Anywhere 2 (Bluetooth) 66 (0x046d, 0xb017, KeyboardType::NonAlphabetic, true), 67 // Logitech MX Master 2S (Bluetooth) 68 (0x046d, 0xb019, KeyboardType::NonAlphabetic, true), 69 // Logitech MX Anywhere 2S (Bluetooth) 70 (0x046d, 0xb01a, KeyboardType::NonAlphabetic, true), 71 // Logitech M585/M590 (Bluetooth) 72 (0x046d, 0xb01b, KeyboardType::NonAlphabetic, true), 73 // Logitech G603 Lightspeed Gaming Mouse (Bluetooth) 74 (0x046d, 0xb01c, KeyboardType::NonAlphabetic, true), 75 // Logitech MX Master (Bluetooth) 76 (0x046d, 0xb01e, KeyboardType::NonAlphabetic, true), 77 // Logitech MX Anywhere 2 (Bluetooth) 78 (0x046d, 0xb01f, KeyboardType::NonAlphabetic, true), 79 // Logitech MX Master 3 (Bluetooth) 80 (0x046d, 0xb023, KeyboardType::NonAlphabetic, true), 81 // Logitech G604 Lightspeed Gaming Mouse (Bluetooth) 82 (0x046d, 0xb024, KeyboardType::NonAlphabetic, true), 83 // Logitech Spotlight Presentation Remote (Bluetooth) 84 (0x046d, 0xb503, KeyboardType::NonAlphabetic, true), 85 // Logitech R500 (Bluetooth) 86 (0x046d, 0xb505, KeyboardType::NonAlphabetic, true), 87 // Logitech M500s 88 (0x046d, 0xc093, KeyboardType::NonAlphabetic, true), 89 // Logitech Spotlight Presentation Remote (USB dongle) 90 (0x046d, 0xc53e, KeyboardType::NonAlphabetic, true), 91 // Elecom Enelo IR LED Mouse 350 92 (0x056e, 0x0134, KeyboardType::NonAlphabetic, true), 93 // Elecom EPRIM Blue LED 5 button mouse 228 94 (0x056e, 0x0141, KeyboardType::NonAlphabetic, true), 95 // Elecom Blue LED Mouse 203 96 (0x056e, 0x0159, KeyboardType::NonAlphabetic, true), 97 // Zebra LS2208 barcode scanner 98 (0x05e0, 0x1200, KeyboardType::NonAlphabetic, true), 99 // RDing FootSwitch1F1 100 (0x0c45, 0x7403, KeyboardType::NonAlphabetic, true), 101 // SteelSeries Sensei RAW Frost Blue 102 (0x1038, 0x1369, KeyboardType::NonAlphabetic, true), 103 // SteelSeries Rival 3 Wired 104 (0x1038, 0x1824, KeyboardType::NonAlphabetic, true), 105 // SteelSeries Rival 3 Wireless (USB dongle) 106 (0x1038, 0x1830, KeyboardType::NonAlphabetic, true), 107 // Yubico.com Yubikey 108 (0x1050, 0x0010, KeyboardType::NonAlphabetic, true), 109 // Yubico.com Yubikey 4 OTP+U2F+CCID 110 (0x1050, 0x0407, KeyboardType::NonAlphabetic, true), 111 // Lenovo USB-C Wired Compact Mouse 112 (0x17ef, 0x6123, KeyboardType::NonAlphabetic, true), 113 // Corsair Katar Pro Wireless (USB dongle) 114 (0x1b1c, 0x1b94, KeyboardType::NonAlphabetic, true), 115 // Corsair Katar Pro Wireless (Bluetooth) 116 (0x1bae, 0x1b1c, KeyboardType::NonAlphabetic, true), 117 // Kensington Pro Fit Full-size 118 (0x1bcf, 0x08a0, KeyboardType::NonAlphabetic, true), 119 // Huion HS64 120 (0x256c, 0x006d, KeyboardType::NonAlphabetic, true), 121 // XP-Pen Star G640 122 (0x28bd, 0x0914, KeyboardType::NonAlphabetic, true), 123 // XP-Pen Artist 12 Pro 124 (0x28bd, 0x091f, KeyboardType::NonAlphabetic, true), 125 // XP-Pen Deco mini7W 126 (0x28bd, 0x0928, KeyboardType::NonAlphabetic, true), 127 ]; 128