1a46c0ec8Sopenharmony_ci/* 2a46c0ec8Sopenharmony_ci * Copyright © 2015 Red Hat, Inc. 3a46c0ec8Sopenharmony_ci * 4a46c0ec8Sopenharmony_ci * Permission is hereby granted, free of charge, to any person obtaining a 5a46c0ec8Sopenharmony_ci * copy of this software and associated documentation files (the "Software"), 6a46c0ec8Sopenharmony_ci * to deal in the Software without restriction, including without limitation 7a46c0ec8Sopenharmony_ci * the rights to use, copy, modify, merge, publish, distribute, sublicense, 8a46c0ec8Sopenharmony_ci * and/or sell copies of the Software, and to permit persons to whom the 9a46c0ec8Sopenharmony_ci * Software is furnished to do so, subject to the following conditions: 10a46c0ec8Sopenharmony_ci * 11a46c0ec8Sopenharmony_ci * The above copyright notice and this permission notice (including the next 12a46c0ec8Sopenharmony_ci * paragraph) shall be included in all copies or substantial portions of the 13a46c0ec8Sopenharmony_ci * Software. 14a46c0ec8Sopenharmony_ci * 15a46c0ec8Sopenharmony_ci * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16a46c0ec8Sopenharmony_ci * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17a46c0ec8Sopenharmony_ci * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 18a46c0ec8Sopenharmony_ci * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19a46c0ec8Sopenharmony_ci * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 20a46c0ec8Sopenharmony_ci * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 21a46c0ec8Sopenharmony_ci * DEALINGS IN THE SOFTWARE. 22a46c0ec8Sopenharmony_ci */ 23a46c0ec8Sopenharmony_ci 24a46c0ec8Sopenharmony_ci#include "config.h" 25a46c0ec8Sopenharmony_ci 26a46c0ec8Sopenharmony_ci#include "litest.h" 27a46c0ec8Sopenharmony_ci#include "litest-int.h" 28a46c0ec8Sopenharmony_ci 29a46c0ec8Sopenharmony_ci/* Recording from https://bugs.freedesktop.org/show_bug.cgi?id=89783 30a46c0ec8Sopenharmony_ci * This is the second of 4 devices exported by this keyboard, the first is 31a46c0ec8Sopenharmony_ci * just a basic keyboard that is identical to the normal litest-keyboard.c 32a46c0ec8Sopenharmony_ci * file. 33a46c0ec8Sopenharmony_ci */ 34a46c0ec8Sopenharmony_ci 35a46c0ec8Sopenharmony_cistatic struct input_id input_id = { 36a46c0ec8Sopenharmony_ci .bustype = 0x3, 37a46c0ec8Sopenharmony_ci .vendor = 0x1532, 38a46c0ec8Sopenharmony_ci .product = 0x11b, 39a46c0ec8Sopenharmony_ci}; 40a46c0ec8Sopenharmony_ci 41a46c0ec8Sopenharmony_cistatic int events[] = { 42a46c0ec8Sopenharmony_ci EV_REL, REL_HWHEEL, 43a46c0ec8Sopenharmony_ci EV_KEY, KEY_ESC, 44a46c0ec8Sopenharmony_ci EV_KEY, KEY_1, 45a46c0ec8Sopenharmony_ci EV_KEY, KEY_2, 46a46c0ec8Sopenharmony_ci EV_KEY, KEY_3, 47a46c0ec8Sopenharmony_ci EV_KEY, KEY_4, 48a46c0ec8Sopenharmony_ci EV_KEY, KEY_5, 49a46c0ec8Sopenharmony_ci EV_KEY, KEY_6, 50a46c0ec8Sopenharmony_ci EV_KEY, KEY_7, 51a46c0ec8Sopenharmony_ci EV_KEY, KEY_8, 52a46c0ec8Sopenharmony_ci EV_KEY, KEY_9, 53a46c0ec8Sopenharmony_ci EV_KEY, KEY_0, 54a46c0ec8Sopenharmony_ci EV_KEY, KEY_MINUS, 55a46c0ec8Sopenharmony_ci EV_KEY, KEY_EQUAL, 56a46c0ec8Sopenharmony_ci EV_KEY, KEY_BACKSPACE, 57a46c0ec8Sopenharmony_ci EV_KEY, KEY_TAB, 58a46c0ec8Sopenharmony_ci EV_KEY, KEY_Q, 59a46c0ec8Sopenharmony_ci EV_KEY, KEY_W, 60a46c0ec8Sopenharmony_ci EV_KEY, KEY_E, 61a46c0ec8Sopenharmony_ci EV_KEY, KEY_R, 62a46c0ec8Sopenharmony_ci EV_KEY, KEY_T, 63a46c0ec8Sopenharmony_ci EV_KEY, KEY_Y, 64a46c0ec8Sopenharmony_ci EV_KEY, KEY_U, 65a46c0ec8Sopenharmony_ci EV_KEY, KEY_I, 66a46c0ec8Sopenharmony_ci EV_KEY, KEY_O, 67a46c0ec8Sopenharmony_ci EV_KEY, KEY_P, 68a46c0ec8Sopenharmony_ci EV_KEY, KEY_LEFTBRACE, 69a46c0ec8Sopenharmony_ci EV_KEY, KEY_RIGHTBRACE, 70a46c0ec8Sopenharmony_ci EV_KEY, KEY_ENTER, 71a46c0ec8Sopenharmony_ci EV_KEY, KEY_LEFTCTRL, 72a46c0ec8Sopenharmony_ci EV_KEY, KEY_A, 73a46c0ec8Sopenharmony_ci EV_KEY, KEY_S, 74a46c0ec8Sopenharmony_ci EV_KEY, KEY_D, 75a46c0ec8Sopenharmony_ci EV_KEY, KEY_F, 76a46c0ec8Sopenharmony_ci EV_KEY, KEY_G, 77a46c0ec8Sopenharmony_ci EV_KEY, KEY_H, 78a46c0ec8Sopenharmony_ci EV_KEY, KEY_J, 79a46c0ec8Sopenharmony_ci EV_KEY, KEY_K, 80a46c0ec8Sopenharmony_ci EV_KEY, KEY_L, 81a46c0ec8Sopenharmony_ci EV_KEY, KEY_SEMICOLON, 82a46c0ec8Sopenharmony_ci EV_KEY, KEY_APOSTROPHE, 83a46c0ec8Sopenharmony_ci EV_KEY, KEY_GRAVE, 84a46c0ec8Sopenharmony_ci EV_KEY, KEY_LEFTSHIFT, 85a46c0ec8Sopenharmony_ci EV_KEY, KEY_BACKSLASH, 86a46c0ec8Sopenharmony_ci EV_KEY, KEY_Z, 87a46c0ec8Sopenharmony_ci EV_KEY, KEY_X, 88a46c0ec8Sopenharmony_ci EV_KEY, KEY_C, 89a46c0ec8Sopenharmony_ci EV_KEY, KEY_V, 90a46c0ec8Sopenharmony_ci EV_KEY, KEY_B, 91a46c0ec8Sopenharmony_ci EV_KEY, KEY_N, 92a46c0ec8Sopenharmony_ci EV_KEY, KEY_M, 93a46c0ec8Sopenharmony_ci EV_KEY, KEY_COMMA, 94a46c0ec8Sopenharmony_ci EV_KEY, KEY_DOT, 95a46c0ec8Sopenharmony_ci EV_KEY, KEY_SLASH, 96a46c0ec8Sopenharmony_ci EV_KEY, KEY_RIGHTSHIFT, 97a46c0ec8Sopenharmony_ci EV_KEY, KEY_KPASTERISK, 98a46c0ec8Sopenharmony_ci EV_KEY, KEY_LEFTALT, 99a46c0ec8Sopenharmony_ci EV_KEY, KEY_SPACE, 100a46c0ec8Sopenharmony_ci EV_KEY, KEY_CAPSLOCK, 101a46c0ec8Sopenharmony_ci EV_KEY, KEY_F1, 102a46c0ec8Sopenharmony_ci EV_KEY, KEY_F2, 103a46c0ec8Sopenharmony_ci EV_KEY, KEY_F3, 104a46c0ec8Sopenharmony_ci EV_KEY, KEY_F4, 105a46c0ec8Sopenharmony_ci EV_KEY, KEY_F5, 106a46c0ec8Sopenharmony_ci EV_KEY, KEY_F6, 107a46c0ec8Sopenharmony_ci EV_KEY, KEY_F7, 108a46c0ec8Sopenharmony_ci EV_KEY, KEY_F8, 109a46c0ec8Sopenharmony_ci EV_KEY, KEY_F9, 110a46c0ec8Sopenharmony_ci EV_KEY, KEY_F10, 111a46c0ec8Sopenharmony_ci EV_KEY, KEY_NUMLOCK, 112a46c0ec8Sopenharmony_ci EV_KEY, KEY_SCROLLLOCK, 113a46c0ec8Sopenharmony_ci EV_KEY, KEY_KP7, 114a46c0ec8Sopenharmony_ci EV_KEY, KEY_KP8, 115a46c0ec8Sopenharmony_ci EV_KEY, KEY_KP9, 116a46c0ec8Sopenharmony_ci EV_KEY, KEY_KPMINUS, 117a46c0ec8Sopenharmony_ci EV_KEY, KEY_KP4, 118a46c0ec8Sopenharmony_ci EV_KEY, KEY_KP5, 119a46c0ec8Sopenharmony_ci EV_KEY, KEY_KP6, 120a46c0ec8Sopenharmony_ci EV_KEY, KEY_KPPLUS, 121a46c0ec8Sopenharmony_ci EV_KEY, KEY_KP1, 122a46c0ec8Sopenharmony_ci EV_KEY, KEY_KP2, 123a46c0ec8Sopenharmony_ci EV_KEY, KEY_KP3, 124a46c0ec8Sopenharmony_ci EV_KEY, KEY_KP0, 125a46c0ec8Sopenharmony_ci EV_KEY, KEY_KPDOT, 126a46c0ec8Sopenharmony_ci EV_KEY, KEY_ZENKAKUHANKAKU, 127a46c0ec8Sopenharmony_ci EV_KEY, KEY_102ND, 128a46c0ec8Sopenharmony_ci EV_KEY, KEY_F11, 129a46c0ec8Sopenharmony_ci EV_KEY, KEY_F12, 130a46c0ec8Sopenharmony_ci EV_KEY, KEY_RO, 131a46c0ec8Sopenharmony_ci EV_KEY, KEY_KATAKANA, 132a46c0ec8Sopenharmony_ci EV_KEY, KEY_HIRAGANA, 133a46c0ec8Sopenharmony_ci EV_KEY, KEY_HENKAN, 134a46c0ec8Sopenharmony_ci EV_KEY, KEY_KATAKANAHIRAGANA, 135a46c0ec8Sopenharmony_ci EV_KEY, KEY_MUHENKAN, 136a46c0ec8Sopenharmony_ci EV_KEY, KEY_KPJPCOMMA, 137a46c0ec8Sopenharmony_ci EV_KEY, KEY_KPENTER, 138a46c0ec8Sopenharmony_ci EV_KEY, KEY_RIGHTCTRL, 139a46c0ec8Sopenharmony_ci EV_KEY, KEY_KPSLASH, 140a46c0ec8Sopenharmony_ci EV_KEY, KEY_SYSRQ, 141a46c0ec8Sopenharmony_ci EV_KEY, KEY_RIGHTALT, 142a46c0ec8Sopenharmony_ci EV_KEY, KEY_HOME, 143a46c0ec8Sopenharmony_ci EV_KEY, KEY_UP, 144a46c0ec8Sopenharmony_ci EV_KEY, KEY_PAGEUP, 145a46c0ec8Sopenharmony_ci EV_KEY, KEY_LEFT, 146a46c0ec8Sopenharmony_ci EV_KEY, KEY_RIGHT, 147a46c0ec8Sopenharmony_ci EV_KEY, KEY_END, 148a46c0ec8Sopenharmony_ci EV_KEY, KEY_DOWN, 149a46c0ec8Sopenharmony_ci EV_KEY, KEY_PAGEDOWN, 150a46c0ec8Sopenharmony_ci EV_KEY, KEY_INSERT, 151a46c0ec8Sopenharmony_ci EV_KEY, KEY_DELETE, 152a46c0ec8Sopenharmony_ci EV_KEY, KEY_MUTE, 153a46c0ec8Sopenharmony_ci EV_KEY, KEY_VOLUMEDOWN, 154a46c0ec8Sopenharmony_ci EV_KEY, KEY_VOLUMEUP, 155a46c0ec8Sopenharmony_ci EV_KEY, KEY_POWER, 156a46c0ec8Sopenharmony_ci EV_KEY, KEY_KPEQUAL, 157a46c0ec8Sopenharmony_ci EV_KEY, KEY_PAUSE, 158a46c0ec8Sopenharmony_ci EV_KEY, KEY_KPCOMMA, 159a46c0ec8Sopenharmony_ci EV_KEY, KEY_HANGEUL, 160a46c0ec8Sopenharmony_ci EV_KEY, KEY_HANJA, 161a46c0ec8Sopenharmony_ci EV_KEY, KEY_YEN, 162a46c0ec8Sopenharmony_ci EV_KEY, KEY_LEFTMETA, 163a46c0ec8Sopenharmony_ci EV_KEY, KEY_RIGHTMETA, 164a46c0ec8Sopenharmony_ci EV_KEY, KEY_COMPOSE, 165a46c0ec8Sopenharmony_ci EV_KEY, KEY_STOP, 166a46c0ec8Sopenharmony_ci EV_KEY, KEY_AGAIN, 167a46c0ec8Sopenharmony_ci EV_KEY, KEY_PROPS, 168a46c0ec8Sopenharmony_ci EV_KEY, KEY_UNDO, 169a46c0ec8Sopenharmony_ci EV_KEY, KEY_FRONT, 170a46c0ec8Sopenharmony_ci EV_KEY, KEY_COPY, 171a46c0ec8Sopenharmony_ci EV_KEY, KEY_OPEN, 172a46c0ec8Sopenharmony_ci EV_KEY, KEY_PASTE, 173a46c0ec8Sopenharmony_ci EV_KEY, KEY_FIND, 174a46c0ec8Sopenharmony_ci EV_KEY, KEY_CUT, 175a46c0ec8Sopenharmony_ci EV_KEY, KEY_HELP, 176a46c0ec8Sopenharmony_ci EV_KEY, KEY_MENU, 177a46c0ec8Sopenharmony_ci EV_KEY, KEY_CALC, 178a46c0ec8Sopenharmony_ci EV_KEY, KEY_SLEEP, 179a46c0ec8Sopenharmony_ci EV_KEY, KEY_WAKEUP, 180a46c0ec8Sopenharmony_ci EV_KEY, KEY_FILE, 181a46c0ec8Sopenharmony_ci EV_KEY, KEY_WWW, 182a46c0ec8Sopenharmony_ci EV_KEY, KEY_COFFEE, 183a46c0ec8Sopenharmony_ci EV_KEY, KEY_MAIL, 184a46c0ec8Sopenharmony_ci EV_KEY, KEY_BOOKMARKS, 185a46c0ec8Sopenharmony_ci EV_KEY, KEY_BACK, 186a46c0ec8Sopenharmony_ci EV_KEY, KEY_FORWARD, 187a46c0ec8Sopenharmony_ci EV_KEY, KEY_EJECTCD, 188a46c0ec8Sopenharmony_ci EV_KEY, KEY_NEXTSONG, 189a46c0ec8Sopenharmony_ci EV_KEY, KEY_PLAYPAUSE, 190a46c0ec8Sopenharmony_ci EV_KEY, KEY_PREVIOUSSONG, 191a46c0ec8Sopenharmony_ci EV_KEY, KEY_STOPCD, 192a46c0ec8Sopenharmony_ci EV_KEY, KEY_RECORD, 193a46c0ec8Sopenharmony_ci EV_KEY, KEY_REWIND, 194a46c0ec8Sopenharmony_ci EV_KEY, KEY_PHONE, 195a46c0ec8Sopenharmony_ci EV_KEY, KEY_CONFIG, 196a46c0ec8Sopenharmony_ci EV_KEY, KEY_HOMEPAGE, 197a46c0ec8Sopenharmony_ci EV_KEY, KEY_REFRESH, 198a46c0ec8Sopenharmony_ci EV_KEY, KEY_EXIT, 199a46c0ec8Sopenharmony_ci EV_KEY, KEY_EDIT, 200a46c0ec8Sopenharmony_ci EV_KEY, KEY_SCROLLUP, 201a46c0ec8Sopenharmony_ci EV_KEY, KEY_SCROLLDOWN, 202a46c0ec8Sopenharmony_ci EV_KEY, KEY_KPLEFTPAREN, 203a46c0ec8Sopenharmony_ci EV_KEY, KEY_KPRIGHTPAREN, 204a46c0ec8Sopenharmony_ci EV_KEY, KEY_NEW, 205a46c0ec8Sopenharmony_ci EV_KEY, KEY_F13, 206a46c0ec8Sopenharmony_ci EV_KEY, KEY_F14, 207a46c0ec8Sopenharmony_ci EV_KEY, KEY_F15, 208a46c0ec8Sopenharmony_ci EV_KEY, KEY_F16, 209a46c0ec8Sopenharmony_ci EV_KEY, KEY_F17, 210a46c0ec8Sopenharmony_ci EV_KEY, KEY_F18, 211a46c0ec8Sopenharmony_ci EV_KEY, KEY_F19, 212a46c0ec8Sopenharmony_ci EV_KEY, KEY_F20, 213a46c0ec8Sopenharmony_ci EV_KEY, KEY_F21, 214a46c0ec8Sopenharmony_ci EV_KEY, KEY_F22, 215a46c0ec8Sopenharmony_ci EV_KEY, KEY_F23, 216a46c0ec8Sopenharmony_ci EV_KEY, KEY_F24, 217a46c0ec8Sopenharmony_ci EV_KEY, KEY_CLOSE, 218a46c0ec8Sopenharmony_ci EV_KEY, KEY_PLAY, 219a46c0ec8Sopenharmony_ci EV_KEY, KEY_FASTFORWARD, 220a46c0ec8Sopenharmony_ci EV_KEY, KEY_BASSBOOST, 221a46c0ec8Sopenharmony_ci EV_KEY, KEY_PRINT, 222a46c0ec8Sopenharmony_ci EV_KEY, KEY_CAMERA, 223a46c0ec8Sopenharmony_ci EV_KEY, KEY_CHAT, 224a46c0ec8Sopenharmony_ci EV_KEY, KEY_SEARCH, 225a46c0ec8Sopenharmony_ci EV_KEY, KEY_FINANCE, 226a46c0ec8Sopenharmony_ci EV_KEY, KEY_BRIGHTNESSDOWN, 227a46c0ec8Sopenharmony_ci EV_KEY, KEY_BRIGHTNESSUP, 228a46c0ec8Sopenharmony_ci EV_KEY, KEY_KBDILLUMTOGGLE, 229a46c0ec8Sopenharmony_ci EV_KEY, KEY_SAVE, 230a46c0ec8Sopenharmony_ci EV_KEY, KEY_DOCUMENTS, 231a46c0ec8Sopenharmony_ci EV_KEY, KEY_UNKNOWN, 232a46c0ec8Sopenharmony_ci EV_KEY, KEY_VIDEO_NEXT, 233a46c0ec8Sopenharmony_ci EV_KEY, KEY_BRIGHTNESS_AUTO, 234a46c0ec8Sopenharmony_ci EV_KEY, BTN_0, 235a46c0ec8Sopenharmony_ci EV_KEY, KEY_SELECT, 236a46c0ec8Sopenharmony_ci EV_KEY, KEY_GOTO, 237a46c0ec8Sopenharmony_ci EV_KEY, KEY_INFO, 238a46c0ec8Sopenharmony_ci EV_KEY, KEY_PROGRAM, 239a46c0ec8Sopenharmony_ci EV_KEY, KEY_PVR, 240a46c0ec8Sopenharmony_ci EV_KEY, KEY_SUBTITLE, 241a46c0ec8Sopenharmony_ci EV_KEY, KEY_ZOOM, 242a46c0ec8Sopenharmony_ci EV_KEY, KEY_KEYBOARD, 243a46c0ec8Sopenharmony_ci EV_KEY, KEY_PC, 244a46c0ec8Sopenharmony_ci EV_KEY, KEY_TV, 245a46c0ec8Sopenharmony_ci EV_KEY, KEY_TV2, 246a46c0ec8Sopenharmony_ci EV_KEY, KEY_VCR, 247a46c0ec8Sopenharmony_ci EV_KEY, KEY_VCR2, 248a46c0ec8Sopenharmony_ci EV_KEY, KEY_SAT, 249a46c0ec8Sopenharmony_ci EV_KEY, KEY_CD, 250a46c0ec8Sopenharmony_ci EV_KEY, KEY_TAPE, 251a46c0ec8Sopenharmony_ci EV_KEY, KEY_TUNER, 252a46c0ec8Sopenharmony_ci EV_KEY, KEY_PLAYER, 253a46c0ec8Sopenharmony_ci EV_KEY, KEY_DVD, 254a46c0ec8Sopenharmony_ci EV_KEY, KEY_AUDIO, 255a46c0ec8Sopenharmony_ci EV_KEY, KEY_VIDEO, 256a46c0ec8Sopenharmony_ci EV_KEY, KEY_MEMO, 257a46c0ec8Sopenharmony_ci EV_KEY, KEY_CALENDAR, 258a46c0ec8Sopenharmony_ci EV_KEY, KEY_RED, 259a46c0ec8Sopenharmony_ci EV_KEY, KEY_GREEN, 260a46c0ec8Sopenharmony_ci EV_KEY, KEY_YELLOW, 261a46c0ec8Sopenharmony_ci EV_KEY, KEY_BLUE, 262a46c0ec8Sopenharmony_ci EV_KEY, KEY_CHANNELUP, 263a46c0ec8Sopenharmony_ci EV_KEY, KEY_CHANNELDOWN, 264a46c0ec8Sopenharmony_ci EV_KEY, KEY_LAST, 265a46c0ec8Sopenharmony_ci EV_KEY, KEY_NEXT, 266a46c0ec8Sopenharmony_ci EV_KEY, KEY_RESTART, 267a46c0ec8Sopenharmony_ci EV_KEY, KEY_SLOW, 268a46c0ec8Sopenharmony_ci EV_KEY, KEY_SHUFFLE, 269a46c0ec8Sopenharmony_ci EV_KEY, KEY_PREVIOUS, 270a46c0ec8Sopenharmony_ci EV_KEY, KEY_VIDEOPHONE, 271a46c0ec8Sopenharmony_ci EV_KEY, KEY_GAMES, 272a46c0ec8Sopenharmony_ci EV_KEY, KEY_ZOOMIN, 273a46c0ec8Sopenharmony_ci EV_KEY, KEY_ZOOMOUT, 274a46c0ec8Sopenharmony_ci EV_KEY, KEY_ZOOMRESET, 275a46c0ec8Sopenharmony_ci EV_KEY, KEY_WORDPROCESSOR, 276a46c0ec8Sopenharmony_ci EV_KEY, KEY_EDITOR, 277a46c0ec8Sopenharmony_ci EV_KEY, KEY_SPREADSHEET, 278a46c0ec8Sopenharmony_ci EV_KEY, KEY_GRAPHICSEDITOR, 279a46c0ec8Sopenharmony_ci EV_KEY, KEY_PRESENTATION, 280a46c0ec8Sopenharmony_ci EV_KEY, KEY_DATABASE, 281a46c0ec8Sopenharmony_ci EV_KEY, KEY_NEWS, 282a46c0ec8Sopenharmony_ci EV_KEY, KEY_VOICEMAIL, 283a46c0ec8Sopenharmony_ci EV_KEY, KEY_ADDRESSBOOK, 284a46c0ec8Sopenharmony_ci EV_KEY, KEY_MESSENGER, 285a46c0ec8Sopenharmony_ci EV_KEY, KEY_DISPLAYTOGGLE, 286a46c0ec8Sopenharmony_ci EV_KEY, KEY_SPELLCHECK, 287a46c0ec8Sopenharmony_ci EV_KEY, KEY_LOGOFF, 288a46c0ec8Sopenharmony_ci EV_KEY, KEY_MEDIA_REPEAT, 289a46c0ec8Sopenharmony_ci EV_KEY, KEY_IMAGES, 290a46c0ec8Sopenharmony_ci EV_KEY, KEY_BUTTONCONFIG, 291a46c0ec8Sopenharmony_ci EV_KEY, KEY_TASKMANAGER, 292a46c0ec8Sopenharmony_ci EV_KEY, KEY_JOURNAL, 293a46c0ec8Sopenharmony_ci EV_KEY, KEY_CONTROLPANEL, 294a46c0ec8Sopenharmony_ci EV_KEY, KEY_APPSELECT, 295a46c0ec8Sopenharmony_ci EV_KEY, KEY_SCREENSAVER, 296a46c0ec8Sopenharmony_ci EV_KEY, KEY_VOICECOMMAND, 297a46c0ec8Sopenharmony_ci EV_KEY, KEY_BRIGHTNESS_MIN, 298a46c0ec8Sopenharmony_ci EV_KEY, KEY_BRIGHTNESS_MAX, 299a46c0ec8Sopenharmony_ci EV_MSC, MSC_SCAN, 300a46c0ec8Sopenharmony_ci -1 , -1, 301a46c0ec8Sopenharmony_ci}; 302a46c0ec8Sopenharmony_ci 303a46c0ec8Sopenharmony_cistatic struct input_absinfo absinfo[] = { 304a46c0ec8Sopenharmony_ci { ABS_VOLUME, 0, 572, 0, 0, 0 }, 305a46c0ec8Sopenharmony_ci { ABS_MISC, 0, 255, 0, 0, 0 }, 306a46c0ec8Sopenharmony_ci { 0x29, 0, 255, 0, 0, 0 }, 307a46c0ec8Sopenharmony_ci { 0x2a, 0, 255, 0, 0, 0 }, 308a46c0ec8Sopenharmony_ci { 0x2b, 0, 255, 0, 0, 0 }, 309a46c0ec8Sopenharmony_ci { 0x2c, 0, 255, 0, 0, 0 }, 310a46c0ec8Sopenharmony_ci { 0x2d, 0, 255, 0, 0, 0 }, 311a46c0ec8Sopenharmony_ci { 0x2e, 0, 255, 0, 0, 0 }, 312a46c0ec8Sopenharmony_ci { 0x2f, 0, 255, 0, 0, 0 }, 313a46c0ec8Sopenharmony_ci { 0x30, 0, 255, 0, 0, 0 }, 314a46c0ec8Sopenharmony_ci { 0x31, 0, 255, 0, 0, 0 }, 315a46c0ec8Sopenharmony_ci { 0x32, 0, 255, 0, 0, 0 }, 316a46c0ec8Sopenharmony_ci { 0x33, 0, 255, 0, 0, 0 }, 317a46c0ec8Sopenharmony_ci { 0x34, 0, 255, 0, 0, 0 }, 318a46c0ec8Sopenharmony_ci { 0x35, 0, 255, 0, 0, 0 }, 319a46c0ec8Sopenharmony_ci { 0x36, 0, 255, 0, 0, 0 }, 320a46c0ec8Sopenharmony_ci { 0x37, 0, 255, 0, 0, 0 }, 321a46c0ec8Sopenharmony_ci { 0x38, 0, 255, 0, 0, 0 }, 322a46c0ec8Sopenharmony_ci { 0x39, 0, 255, 0, 0, 0 }, 323a46c0ec8Sopenharmony_ci { 0x3a, 0, 255, 0, 0, 0 }, 324a46c0ec8Sopenharmony_ci { 0x3b, 0, 255, 0, 0, 0 }, 325a46c0ec8Sopenharmony_ci { 0x3c, 0, 255, 0, 0, 0 }, 326a46c0ec8Sopenharmony_ci { 0x3d, 0, 255, 0, 0, 0 }, 327a46c0ec8Sopenharmony_ci { 0x3e, 0, 255, 0, 0, 0 }, 328a46c0ec8Sopenharmony_ci { 0x3f, 0, 255, 0, 0, 0 }, 329a46c0ec8Sopenharmony_ci { .value = -1 }, 330a46c0ec8Sopenharmony_ci}; 331a46c0ec8Sopenharmony_ci 332a46c0ec8Sopenharmony_ciTEST_DEVICE("blackwidow", 333a46c0ec8Sopenharmony_ci .type = LITEST_KEYBOARD_BLACKWIDOW, 334a46c0ec8Sopenharmony_ci .features = LITEST_KEYS | LITEST_WHEEL, 335a46c0ec8Sopenharmony_ci .interface = NULL, 336a46c0ec8Sopenharmony_ci 337a46c0ec8Sopenharmony_ci .name = "Razer Razer BlackWidow 2013", 338a46c0ec8Sopenharmony_ci .id = &input_id, 339a46c0ec8Sopenharmony_ci .absinfo = absinfo, 340a46c0ec8Sopenharmony_ci .events = events, 341a46c0ec8Sopenharmony_ci) 342