From nobody Sun Feb 8 21:47:40 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) client-ip=208.118.235.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of gnu.org designates 208.118.235.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [208.118.235.17]) by mx.zohomail.com with SMTPS id 1502708125186420.505044111428; Mon, 14 Aug 2017 03:55:25 -0700 (PDT) Received: from localhost ([::1]:36885 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dhD1n-0002xC-Ub for importer@patchew.org; Mon, 14 Aug 2017 06:55:24 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47674) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dhCx1-0007gu-6t for qemu-devel@nongnu.org; Mon, 14 Aug 2017 06:50:29 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dhCwz-0001yT-AJ for qemu-devel@nongnu.org; Mon, 14 Aug 2017 06:50:27 -0400 Received: from mx1.redhat.com ([209.132.183.28]:55766) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dhCwz-0001y8-0V for qemu-devel@nongnu.org; Mon, 14 Aug 2017 06:50:25 -0400 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id E6EF76773E for ; Mon, 14 Aug 2017 10:50:23 +0000 (UTC) Received: from localhost.localdomain.com (unknown [10.42.22.189]) by smtp.corp.redhat.com (Postfix) with ESMTP id 0BAB94148; Mon, 14 Aug 2017 10:50:22 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com E6EF76773E Authentication-Results: ext-mx02.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx02.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=berrange@redhat.com From: "Daniel P. Berrange" To: qemu-devel@nongnu.org Date: Mon, 14 Aug 2017 11:49:56 +0100 Message-Id: <20170814104958.29434-11-berrange@redhat.com> In-Reply-To: <20170814104958.29434-1-berrange@redhat.com> References: <20170814104958.29434-1-berrange@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.26]); Mon, 14 Aug 2017 10:50:24 +0000 (UTC) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH v2 10/12] ui: convert the SDL2 frontend to keycodemapdb X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Gerd Hoffmann Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" The SDL2 scancodes are conveniently identical to the USB scancodes. Replace the sdl2_scancode_to_qcode table with an automatically generated table. Missing entries in sdl2_scancode_to_qcode now fixed: - 0x32 -> Q_KEY_CODE_BACKSLASH - 0x66 -> Q_KEY_CODE_POWER - 0x67 -> Q_KEY_CODE_KP_EQUALS - 0x74 -> Q_KEY_CODE_OPEN - 0x77 -> Q_KEY_CODE_FRONT - 0x7f -> Q_KEY_CODE_AUDIOMUTE - 0x80 -> Q_KEY_CODE_VOLUMEUP - 0x81 -> Q_KEY_CODE_VOLUMEDOWN - 0x85 -> Q_KEY_CODE_KP_COMMA - 0x87 -> Q_KEY_CODE_RO - 0x89 -> Q_KEY_CODE_YEN - 0x8a -> Q_KEY_CODE_HENKAN - 0x93 -> Q_KEY_CODE_HIRAGANA - 0xe8 -> Q_KEY_CODE_AUDIOPLAY - 0xe9 -> Q_KEY_CODE_AUDIOSTOP - 0xea -> Q_KEY_CODE_AUDIOPREV - 0xeb -> Q_KEY_CODE_AUDIONEXT - 0xed -> Q_KEY_CODE_VOLUMEUP - 0xee -> Q_KEY_CODE_VOLUMEDOWN - 0xef -> Q_KEY_CODE_AUDIOMUTE - 0xf1 -> Q_KEY_CODE_AC_BACK - 0xf2 -> Q_KEY_CODE_AC_FORWARD - 0xf3 -> Q_KEY_CODE_STOP - 0xf4 -> Q_KEY_CODE_FIND - 0xf8 -> Q_KEY_CODE_SLEEP - 0xfa -> Q_KEY_CODE_AC_REFRESH - 0xfb -> Q_KEY_CODE_CALCULATOR And some mistakes corrected: - 0x65 -> Q_KEY_CODE_COMPOSE, not duplicating Q_KEY_CODE_MENU Signed-off-by: Daniel P. Berrange --- include/ui/input.h | 3 + ui/Makefile.objs | 1 + ui/input-keymap.c | 1 + ui/sdl2-input.c | 16 +++- ui/sdl2-keymap.h | 267 -------------------------------------------------= ---- 5 files changed, 16 insertions(+), 272 deletions(-) delete mode 100644 ui/sdl2-keymap.h diff --git a/include/ui/input.h b/include/ui/input.h index df3eb439bf..dcf7e0e731 100644 --- a/include/ui/input.h +++ b/include/ui/input.h @@ -98,4 +98,7 @@ extern const guint16 qemu_input_map_qcode_to_sun[]; extern const guint qemu_input_map_qnum_to_qcode_len; extern const guint16 qemu_input_map_qnum_to_qcode[]; =20 +extern const guint qemu_input_map_usb_to_qcode_len; +extern const guint16 qemu_input_map_usb_to_qcode[]; + #endif /* INPUT_H */ diff --git a/ui/Makefile.objs b/ui/Makefile.objs index d35634cdc7..0e5821f6eb 100644 --- a/ui/Makefile.objs +++ b/ui/Makefile.objs @@ -64,6 +64,7 @@ KEYCODEMAP_FILES =3D \ ui/input-keymap-qcode-to-qnum.c \ ui/input-keymap-qcode-to-sun.c \ ui/input-keymap-qnum-to-qcode.c \ + ui/input-keymap-usb-to-qcode.c \ $(NULL) =20 GENERATED_FILES +=3D $(KEYCODEMAP_FILES) diff --git a/ui/input-keymap.c b/ui/input-keymap.c index de11205dca..ad98b153cf 100644 --- a/ui/input-keymap.c +++ b/ui/input-keymap.c @@ -15,6 +15,7 @@ #include "ui/input-keymap-qcode-to-qnum.c" #include "ui/input-keymap-qcode-to-sun.c" #include "ui/input-keymap-qnum-to-qcode.c" +#include "ui/input-keymap-usb-to-qcode.c" =20 int qemu_input_linux_to_qcode(unsigned int lnx) { diff --git a/ui/sdl2-input.c b/ui/sdl2-input.c index 6e315ae800..605d781971 100644 --- a/ui/sdl2-input.c +++ b/ui/sdl2-input.c @@ -30,8 +30,6 @@ #include "ui/sdl2.h" #include "sysemu/sysemu.h" =20 -#include "sdl2-keymap.h" - static uint8_t modifiers_state[SDL_NUM_SCANCODES]; =20 void sdl2_reset_keys(struct sdl2_console *scon) @@ -39,9 +37,11 @@ void sdl2_reset_keys(struct sdl2_console *scon) QemuConsole *con =3D scon ? scon->dcl.con : NULL; int i; =20 - for (i =3D 0; i < SDL_NUM_SCANCODES; i++) { + for (i =3D 0 ; + i < SDL_NUM_SCANCODES && i < qemu_input_map_usb_to_qcode_len ; + i++) { if (modifiers_state[i]) { - int qcode =3D sdl2_scancode_to_qcode[i]; + int qcode =3D qemu_input_map_usb_to_qcode[i]; qemu_input_event_send_key_qcode(con, qcode, false); modifiers_state[i] =3D 0; } @@ -51,9 +51,15 @@ void sdl2_reset_keys(struct sdl2_console *scon) void sdl2_process_key(struct sdl2_console *scon, SDL_KeyboardEvent *ev) { - int qcode =3D sdl2_scancode_to_qcode[ev->keysym.scancode]; + int qcode; QemuConsole *con =3D scon ? scon->dcl.con : NULL; =20 + if (ev->keysym.scancode >=3D qemu_input_map_usb_to_qcode_len) { + return; + } + + qcode =3D qemu_input_map_usb_to_qcode[ev->keysym.scancode]; + if (!qemu_console_is_graphic(con)) { if (ev->type =3D=3D SDL_KEYDOWN) { switch (ev->keysym.scancode) { diff --git a/ui/sdl2-keymap.h b/ui/sdl2-keymap.h deleted file mode 100644 index cbedaa477d..0000000000 --- a/ui/sdl2-keymap.h +++ /dev/null @@ -1,267 +0,0 @@ - -/* map SDL2 scancodes to QKeyCode */ - -static const int sdl2_scancode_to_qcode[SDL_NUM_SCANCODES] =3D { - [SDL_SCANCODE_A] =3D Q_KEY_CODE_A, - [SDL_SCANCODE_B] =3D Q_KEY_CODE_B, - [SDL_SCANCODE_C] =3D Q_KEY_CODE_C, - [SDL_SCANCODE_D] =3D Q_KEY_CODE_D, - [SDL_SCANCODE_E] =3D Q_KEY_CODE_E, - [SDL_SCANCODE_F] =3D Q_KEY_CODE_F, - [SDL_SCANCODE_G] =3D Q_KEY_CODE_G, - [SDL_SCANCODE_H] =3D Q_KEY_CODE_H, - [SDL_SCANCODE_I] =3D Q_KEY_CODE_I, - [SDL_SCANCODE_J] =3D Q_KEY_CODE_J, - [SDL_SCANCODE_K] =3D Q_KEY_CODE_K, - [SDL_SCANCODE_L] =3D Q_KEY_CODE_L, - [SDL_SCANCODE_M] =3D Q_KEY_CODE_M, - [SDL_SCANCODE_N] =3D Q_KEY_CODE_N, - [SDL_SCANCODE_O] =3D Q_KEY_CODE_O, - [SDL_SCANCODE_P] =3D Q_KEY_CODE_P, - [SDL_SCANCODE_Q] =3D Q_KEY_CODE_Q, - [SDL_SCANCODE_R] =3D Q_KEY_CODE_R, - [SDL_SCANCODE_S] =3D Q_KEY_CODE_S, - [SDL_SCANCODE_T] =3D Q_KEY_CODE_T, - [SDL_SCANCODE_U] =3D Q_KEY_CODE_U, - [SDL_SCANCODE_V] =3D Q_KEY_CODE_V, - [SDL_SCANCODE_W] =3D Q_KEY_CODE_W, - [SDL_SCANCODE_X] =3D Q_KEY_CODE_X, - [SDL_SCANCODE_Y] =3D Q_KEY_CODE_Y, - [SDL_SCANCODE_Z] =3D Q_KEY_CODE_Z, - - [SDL_SCANCODE_1] =3D Q_KEY_CODE_1, - [SDL_SCANCODE_2] =3D Q_KEY_CODE_2, - [SDL_SCANCODE_3] =3D Q_KEY_CODE_3, - [SDL_SCANCODE_4] =3D Q_KEY_CODE_4, - [SDL_SCANCODE_5] =3D Q_KEY_CODE_5, - [SDL_SCANCODE_6] =3D Q_KEY_CODE_6, - [SDL_SCANCODE_7] =3D Q_KEY_CODE_7, - [SDL_SCANCODE_8] =3D Q_KEY_CODE_8, - [SDL_SCANCODE_9] =3D Q_KEY_CODE_9, - [SDL_SCANCODE_0] =3D Q_KEY_CODE_0, - - [SDL_SCANCODE_RETURN] =3D Q_KEY_CODE_RET, - [SDL_SCANCODE_ESCAPE] =3D Q_KEY_CODE_ESC, - [SDL_SCANCODE_BACKSPACE] =3D Q_KEY_CODE_BACKSPACE, - [SDL_SCANCODE_TAB] =3D Q_KEY_CODE_TAB, - [SDL_SCANCODE_SPACE] =3D Q_KEY_CODE_SPC, - [SDL_SCANCODE_MINUS] =3D Q_KEY_CODE_MINUS, - [SDL_SCANCODE_EQUALS] =3D Q_KEY_CODE_EQUAL, - [SDL_SCANCODE_LEFTBRACKET] =3D Q_KEY_CODE_BRACKET_LEFT, - [SDL_SCANCODE_RIGHTBRACKET] =3D Q_KEY_CODE_BRACKET_RIGHT, - [SDL_SCANCODE_BACKSLASH] =3D Q_KEY_CODE_BACKSLASH, -#if 0 - [SDL_SCANCODE_NONUSHASH] =3D Q_KEY_CODE_NONUSHASH, -#endif - [SDL_SCANCODE_SEMICOLON] =3D Q_KEY_CODE_SEMICOLON, - [SDL_SCANCODE_APOSTROPHE] =3D Q_KEY_CODE_APOSTROPHE, - [SDL_SCANCODE_GRAVE] =3D Q_KEY_CODE_GRAVE_ACCENT, - [SDL_SCANCODE_COMMA] =3D Q_KEY_CODE_COMMA, - [SDL_SCANCODE_PERIOD] =3D Q_KEY_CODE_DOT, - [SDL_SCANCODE_SLASH] =3D Q_KEY_CODE_SLASH, - [SDL_SCANCODE_CAPSLOCK] =3D Q_KEY_CODE_CAPS_LOCK, - - [SDL_SCANCODE_F1] =3D Q_KEY_CODE_F1, - [SDL_SCANCODE_F2] =3D Q_KEY_CODE_F2, - [SDL_SCANCODE_F3] =3D Q_KEY_CODE_F3, - [SDL_SCANCODE_F4] =3D Q_KEY_CODE_F4, - [SDL_SCANCODE_F5] =3D Q_KEY_CODE_F5, - [SDL_SCANCODE_F6] =3D Q_KEY_CODE_F6, - [SDL_SCANCODE_F7] =3D Q_KEY_CODE_F7, - [SDL_SCANCODE_F8] =3D Q_KEY_CODE_F8, - [SDL_SCANCODE_F9] =3D Q_KEY_CODE_F9, - [SDL_SCANCODE_F10] =3D Q_KEY_CODE_F10, - [SDL_SCANCODE_F11] =3D Q_KEY_CODE_F11, - [SDL_SCANCODE_F12] =3D Q_KEY_CODE_F12, - - [SDL_SCANCODE_PRINTSCREEN] =3D Q_KEY_CODE_PRINT, - [SDL_SCANCODE_SCROLLLOCK] =3D Q_KEY_CODE_SCROLL_LOCK, - [SDL_SCANCODE_PAUSE] =3D Q_KEY_CODE_PAUSE, - [SDL_SCANCODE_INSERT] =3D Q_KEY_CODE_INSERT, - [SDL_SCANCODE_HOME] =3D Q_KEY_CODE_HOME, - [SDL_SCANCODE_PAGEUP] =3D Q_KEY_CODE_PGUP, - [SDL_SCANCODE_DELETE] =3D Q_KEY_CODE_DELETE, - [SDL_SCANCODE_END] =3D Q_KEY_CODE_END, - [SDL_SCANCODE_PAGEDOWN] =3D Q_KEY_CODE_PGDN, - [SDL_SCANCODE_RIGHT] =3D Q_KEY_CODE_RIGHT, - [SDL_SCANCODE_LEFT] =3D Q_KEY_CODE_LEFT, - [SDL_SCANCODE_DOWN] =3D Q_KEY_CODE_DOWN, - [SDL_SCANCODE_UP] =3D Q_KEY_CODE_UP, - [SDL_SCANCODE_NUMLOCKCLEAR] =3D Q_KEY_CODE_NUM_LOCK, - - [SDL_SCANCODE_KP_DIVIDE] =3D Q_KEY_CODE_KP_DIVIDE, - [SDL_SCANCODE_KP_MULTIPLY] =3D Q_KEY_CODE_KP_MULTIPLY, - [SDL_SCANCODE_KP_MINUS] =3D Q_KEY_CODE_KP_SUBTRACT, - [SDL_SCANCODE_KP_PLUS] =3D Q_KEY_CODE_KP_ADD, - [SDL_SCANCODE_KP_ENTER] =3D Q_KEY_CODE_KP_ENTER, - [SDL_SCANCODE_KP_1] =3D Q_KEY_CODE_KP_1, - [SDL_SCANCODE_KP_2] =3D Q_KEY_CODE_KP_2, - [SDL_SCANCODE_KP_3] =3D Q_KEY_CODE_KP_3, - [SDL_SCANCODE_KP_4] =3D Q_KEY_CODE_KP_4, - [SDL_SCANCODE_KP_5] =3D Q_KEY_CODE_KP_5, - [SDL_SCANCODE_KP_6] =3D Q_KEY_CODE_KP_6, - [SDL_SCANCODE_KP_7] =3D Q_KEY_CODE_KP_7, - [SDL_SCANCODE_KP_8] =3D Q_KEY_CODE_KP_8, - [SDL_SCANCODE_KP_9] =3D Q_KEY_CODE_KP_9, - [SDL_SCANCODE_KP_0] =3D Q_KEY_CODE_KP_0, - [SDL_SCANCODE_KP_PERIOD] =3D Q_KEY_CODE_KP_DECIMAL, - - [SDL_SCANCODE_NONUSBACKSLASH] =3D Q_KEY_CODE_LESS, - [SDL_SCANCODE_APPLICATION] =3D Q_KEY_CODE_MENU, -#if 0 - [SDL_SCANCODE_POWER] =3D Q_KEY_CODE_POWER, - [SDL_SCANCODE_KP_EQUALS] =3D Q_KEY_CODE_KP_EQUALS, - - [SDL_SCANCODE_F13] =3D Q_KEY_CODE_F13, - [SDL_SCANCODE_F14] =3D Q_KEY_CODE_F14, - [SDL_SCANCODE_F15] =3D Q_KEY_CODE_F15, - [SDL_SCANCODE_F16] =3D Q_KEY_CODE_F16, - [SDL_SCANCODE_F17] =3D Q_KEY_CODE_F17, - [SDL_SCANCODE_F18] =3D Q_KEY_CODE_F18, - [SDL_SCANCODE_F19] =3D Q_KEY_CODE_F19, - [SDL_SCANCODE_F20] =3D Q_KEY_CODE_F20, - [SDL_SCANCODE_F21] =3D Q_KEY_CODE_F21, - [SDL_SCANCODE_F22] =3D Q_KEY_CODE_F22, - [SDL_SCANCODE_F23] =3D Q_KEY_CODE_F23, - [SDL_SCANCODE_F24] =3D Q_KEY_CODE_F24, - - [SDL_SCANCODE_EXECUTE] =3D Q_KEY_CODE_EXECUTE, -#endif - [SDL_SCANCODE_HELP] =3D Q_KEY_CODE_HELP, - [SDL_SCANCODE_MENU] =3D Q_KEY_CODE_MENU, -#if 0 - [SDL_SCANCODE_SELECT] =3D Q_KEY_CODE_SELECT, -#endif - [SDL_SCANCODE_STOP] =3D Q_KEY_CODE_STOP, - [SDL_SCANCODE_AGAIN] =3D Q_KEY_CODE_AGAIN, - [SDL_SCANCODE_UNDO] =3D Q_KEY_CODE_UNDO, - [SDL_SCANCODE_CUT] =3D Q_KEY_CODE_CUT, - [SDL_SCANCODE_COPY] =3D Q_KEY_CODE_COPY, - [SDL_SCANCODE_PASTE] =3D Q_KEY_CODE_PASTE, - [SDL_SCANCODE_FIND] =3D Q_KEY_CODE_FIND, -#if 0 - [SDL_SCANCODE_MUTE] =3D Q_KEY_CODE_MUTE, - [SDL_SCANCODE_VOLUMEUP] =3D Q_KEY_CODE_VOLUMEUP, - [SDL_SCANCODE_VOLUMEDOWN] =3D Q_KEY_CODE_VOLUMEDOWN, - - [SDL_SCANCODE_KP_COMMA] =3D Q_KEY_CODE_KP_COMMA, - [SDL_SCANCODE_KP_EQUALSAS400] =3D Q_KEY_CODE_KP_EQUALSAS400, - - [SDL_SCANCODE_INTERNATIONAL1] =3D Q_KEY_CODE_INTERNATIONAL1, - [SDL_SCANCODE_INTERNATIONAL2] =3D Q_KEY_CODE_INTERNATIONAL2, - [SDL_SCANCODE_INTERNATIONAL3] =3D Q_KEY_CODE_INTERNATIONAL3, - [SDL_SCANCODE_INTERNATIONAL4] =3D Q_KEY_CODE_INTERNATIONAL4, - [SDL_SCANCODE_INTERNATIONAL5] =3D Q_KEY_CODE_INTERNATIONAL5, - [SDL_SCANCODE_INTERNATIONAL6] =3D Q_KEY_CODE_INTERNATIONAL6, - [SDL_SCANCODE_INTERNATIONAL7] =3D Q_KEY_CODE_INTERNATIONAL7, - [SDL_SCANCODE_INTERNATIONAL8] =3D Q_KEY_CODE_INTERNATIONAL8, - [SDL_SCANCODE_INTERNATIONAL9] =3D Q_KEY_CODE_INTERNATIONAL9, - [SDL_SCANCODE_LANG1] =3D Q_KEY_CODE_LANG1, - [SDL_SCANCODE_LANG2] =3D Q_KEY_CODE_LANG2, - [SDL_SCANCODE_LANG3] =3D Q_KEY_CODE_LANG3, - [SDL_SCANCODE_LANG4] =3D Q_KEY_CODE_LANG4, - [SDL_SCANCODE_LANG5] =3D Q_KEY_CODE_LANG5, - [SDL_SCANCODE_LANG6] =3D Q_KEY_CODE_LANG6, - [SDL_SCANCODE_LANG7] =3D Q_KEY_CODE_LANG7, - [SDL_SCANCODE_LANG8] =3D Q_KEY_CODE_LANG8, - [SDL_SCANCODE_LANG9] =3D Q_KEY_CODE_LANG9, - [SDL_SCANCODE_ALTERASE] =3D Q_KEY_CODE_ALTERASE, -#endif - [SDL_SCANCODE_SYSREQ] =3D Q_KEY_CODE_SYSRQ, -#if 0 - [SDL_SCANCODE_CANCEL] =3D Q_KEY_CODE_CANCEL, - [SDL_SCANCODE_CLEAR] =3D Q_KEY_CODE_CLEAR, - [SDL_SCANCODE_PRIOR] =3D Q_KEY_CODE_PRIOR, - [SDL_SCANCODE_RETURN2] =3D Q_KEY_CODE_RETURN2, - [SDL_SCANCODE_SEPARATOR] =3D Q_KEY_CODE_SEPARATOR, - [SDL_SCANCODE_OUT] =3D Q_KEY_CODE_OUT, - [SDL_SCANCODE_OPER] =3D Q_KEY_CODE_OPER, - [SDL_SCANCODE_CLEARAGAIN] =3D Q_KEY_CODE_CLEARAGAIN, - [SDL_SCANCODE_CRSEL] =3D Q_KEY_CODE_CRSEL, - [SDL_SCANCODE_EXSEL] =3D Q_KEY_CODE_EXSEL, - [SDL_SCANCODE_KP_00] =3D Q_KEY_CODE_KP_00, - [SDL_SCANCODE_KP_000] =3D Q_KEY_CODE_KP_000, - [SDL_SCANCODE_THOUSANDSSEPARATOR] =3D Q_KEY_CODE_THOUSANDSSEPARATOR, - [SDL_SCANCODE_DECIMALSEPARATOR] =3D Q_KEY_CODE_DECIMALSEPARATOR, - [SDL_SCANCODE_CURRENCYUNIT] =3D Q_KEY_CODE_CURRENCYUNIT, - [SDL_SCANCODE_CURRENCYSUBUNIT] =3D Q_KEY_CODE_CURRENCYSUBUNIT, - [SDL_SCANCODE_KP_LEFTPAREN] =3D Q_KEY_CODE_KP_LEFTPAREN, - [SDL_SCANCODE_KP_RIGHTPAREN] =3D Q_KEY_CODE_KP_RIGHTPAREN, - [SDL_SCANCODE_KP_LEFTBRACE] =3D Q_KEY_CODE_KP_LEFTBRACE, - [SDL_SCANCODE_KP_RIGHTBRACE] =3D Q_KEY_CODE_KP_RIGHTBRACE, - [SDL_SCANCODE_KP_TAB] =3D Q_KEY_CODE_KP_TAB, - [SDL_SCANCODE_KP_BACKSPACE] =3D Q_KEY_CODE_KP_BACKSPACE, - [SDL_SCANCODE_KP_A] =3D Q_KEY_CODE_KP_A, - [SDL_SCANCODE_KP_B] =3D Q_KEY_CODE_KP_B, - [SDL_SCANCODE_KP_C] =3D Q_KEY_CODE_KP_C, - [SDL_SCANCODE_KP_D] =3D Q_KEY_CODE_KP_D, - [SDL_SCANCODE_KP_E] =3D Q_KEY_CODE_KP_E, - [SDL_SCANCODE_KP_F] =3D Q_KEY_CODE_KP_F, - [SDL_SCANCODE_KP_XOR] =3D Q_KEY_CODE_KP_XOR, - [SDL_SCANCODE_KP_POWER] =3D Q_KEY_CODE_KP_POWER, - [SDL_SCANCODE_KP_PERCENT] =3D Q_KEY_CODE_KP_PERCENT, - [SDL_SCANCODE_KP_LESS] =3D Q_KEY_CODE_KP_LESS, - [SDL_SCANCODE_KP_GREATER] =3D Q_KEY_CODE_KP_GREATER, - [SDL_SCANCODE_KP_AMPERSAND] =3D Q_KEY_CODE_KP_AMPERSAND, - [SDL_SCANCODE_KP_DBLAMPERSAND] =3D Q_KEY_CODE_KP_DBLAMPERSAND, - [SDL_SCANCODE_KP_VERTICALBAR] =3D Q_KEY_CODE_KP_VERTICALBAR, - [SDL_SCANCODE_KP_DBLVERTICALBAR] =3D Q_KEY_CODE_KP_DBLVERTICALBAR, - [SDL_SCANCODE_KP_COLON] =3D Q_KEY_CODE_KP_COLON, - [SDL_SCANCODE_KP_HASH] =3D Q_KEY_CODE_KP_HASH, - [SDL_SCANCODE_KP_SPACE] =3D Q_KEY_CODE_KP_SPACE, - [SDL_SCANCODE_KP_AT] =3D Q_KEY_CODE_KP_AT, - [SDL_SCANCODE_KP_EXCLAM] =3D Q_KEY_CODE_KP_EXCLAM, - [SDL_SCANCODE_KP_MEMSTORE] =3D Q_KEY_CODE_KP_MEMSTORE, - [SDL_SCANCODE_KP_MEMRECALL] =3D Q_KEY_CODE_KP_MEMRECALL, - [SDL_SCANCODE_KP_MEMCLEAR] =3D Q_KEY_CODE_KP_MEMCLEAR, - [SDL_SCANCODE_KP_MEMADD] =3D Q_KEY_CODE_KP_MEMADD, - [SDL_SCANCODE_KP_MEMSUBTRACT] =3D Q_KEY_CODE_KP_MEMSUBTRACT, - [SDL_SCANCODE_KP_MEMMULTIPLY] =3D Q_KEY_CODE_KP_MEMMULTIPLY, - [SDL_SCANCODE_KP_MEMDIVIDE] =3D Q_KEY_CODE_KP_MEMDIVIDE, - [SDL_SCANCODE_KP_PLUSMINUS] =3D Q_KEY_CODE_KP_PLUSMINUS, - [SDL_SCANCODE_KP_CLEAR] =3D Q_KEY_CODE_KP_CLEAR, - [SDL_SCANCODE_KP_CLEARENTRY] =3D Q_KEY_CODE_KP_CLEARENTRY, - [SDL_SCANCODE_KP_BINARY] =3D Q_KEY_CODE_KP_BINARY, - [SDL_SCANCODE_KP_OCTAL] =3D Q_KEY_CODE_KP_OCTAL, - [SDL_SCANCODE_KP_DECIMAL] =3D Q_KEY_CODE_KP_DECIMAL, - [SDL_SCANCODE_KP_HEXADECIMAL] =3D Q_KEY_CODE_KP_HEXADECIMAL, -#endif - [SDL_SCANCODE_LCTRL] =3D Q_KEY_CODE_CTRL, - [SDL_SCANCODE_LSHIFT] =3D Q_KEY_CODE_SHIFT, - [SDL_SCANCODE_LALT] =3D Q_KEY_CODE_ALT, - [SDL_SCANCODE_LGUI] =3D Q_KEY_CODE_META_L, - [SDL_SCANCODE_RCTRL] =3D Q_KEY_CODE_CTRL_R, - [SDL_SCANCODE_RSHIFT] =3D Q_KEY_CODE_SHIFT_R, - [SDL_SCANCODE_RALT] =3D Q_KEY_CODE_ALT_R, - [SDL_SCANCODE_RGUI] =3D Q_KEY_CODE_META_R, -#if 0 - [SDL_SCANCODE_MODE] =3D Q_KEY_CODE_MODE, - [SDL_SCANCODE_AUDIONEXT] =3D Q_KEY_CODE_AUDIONEXT, - [SDL_SCANCODE_AUDIOPREV] =3D Q_KEY_CODE_AUDIOPREV, - [SDL_SCANCODE_AUDIOSTOP] =3D Q_KEY_CODE_AUDIOSTOP, - [SDL_SCANCODE_AUDIOPLAY] =3D Q_KEY_CODE_AUDIOPLAY, - [SDL_SCANCODE_AUDIOMUTE] =3D Q_KEY_CODE_AUDIOMUTE, - [SDL_SCANCODE_MEDIASELECT] =3D Q_KEY_CODE_MEDIASELECT, - [SDL_SCANCODE_WWW] =3D Q_KEY_CODE_WWW, - [SDL_SCANCODE_MAIL] =3D Q_KEY_CODE_MAIL, - [SDL_SCANCODE_CALCULATOR] =3D Q_KEY_CODE_CALCULATOR, - [SDL_SCANCODE_COMPUTER] =3D Q_KEY_CODE_COMPUTER, - [SDL_SCANCODE_AC_SEARCH] =3D Q_KEY_CODE_AC_SEARCH, - [SDL_SCANCODE_AC_HOME] =3D Q_KEY_CODE_AC_HOME, - [SDL_SCANCODE_AC_BACK] =3D Q_KEY_CODE_AC_BACK, - [SDL_SCANCODE_AC_FORWARD] =3D Q_KEY_CODE_AC_FORWARD, - [SDL_SCANCODE_AC_STOP] =3D Q_KEY_CODE_AC_STOP, - [SDL_SCANCODE_AC_REFRESH] =3D Q_KEY_CODE_AC_REFRESH, - [SDL_SCANCODE_AC_BOOKMARKS] =3D Q_KEY_CODE_AC_BOOKMARKS, - [SDL_SCANCODE_BRIGHTNESSDOWN] =3D Q_KEY_CODE_BRIGHTNESSDOWN, - [SDL_SCANCODE_BRIGHTNESSUP] =3D Q_KEY_CODE_BRIGHTNESSUP, - [SDL_SCANCODE_DISPLAYSWITCH] =3D Q_KEY_CODE_DISPLAYSWITCH, - [SDL_SCANCODE_KBDILLUMTOGGLE] =3D Q_KEY_CODE_KBDILLUMTOGGLE, - [SDL_SCANCODE_KBDILLUMDOWN] =3D Q_KEY_CODE_KBDILLUMDOWN, - [SDL_SCANCODE_KBDILLUMUP] =3D Q_KEY_CODE_KBDILLUMUP, - [SDL_SCANCODE_EJECT] =3D Q_KEY_CODE_EJECT, - [SDL_SCANCODE_SLEEP] =3D Q_KEY_CODE_SLEEP, - [SDL_SCANCODE_APP1] =3D Q_KEY_CODE_APP1, - [SDL_SCANCODE_APP2] =3D Q_KEY_CODE_APP2, -#endif -}; --=20 2.13.3