[Qemu-devel] [PATCH 38/42] sdl2: simplify keymap handling

2014-01-28 Thread Gerd Hoffmann
sdl2 gives us scancodes (i.e. identifies keys by location not by keysym
mapped to it).  We can map them directly to QKeyCodes, pass them on to
the new input core and be done with it.

No need to jump though any keymap hops.  Zap the code.
Also operate directly on SDL scancodes for any hotkeys.

Signed-off-by: Gerd Hoffmann kra...@redhat.com
---
 ui/sdl2-keymap.h | 266 +++
 ui/sdl2.c| 147 ++--
 ui/sdl2_scancode_translate.h | 260 --
 3 files changed, 298 insertions(+), 375 deletions(-)
 create mode 100644 ui/sdl2-keymap.h
 delete mode 100644 ui/sdl2_scancode_translate.h

diff --git a/ui/sdl2-keymap.h b/ui/sdl2-keymap.h
new file mode 100644
index 000..5a12f45
--- /dev/null
+++ b/ui/sdl2-keymap.h
@@ -0,0 +1,266 @@
+
+/* map SDL2 scancodes to QKeyCode */
+
+static const int sdl2_scancode_to_qcode[SDL_NUM_SCANCODES] = {
+[SDL_SCANCODE_A] = Q_KEY_CODE_A,
+[SDL_SCANCODE_B] = Q_KEY_CODE_B,
+[SDL_SCANCODE_C] = Q_KEY_CODE_C,
+[SDL_SCANCODE_D] = Q_KEY_CODE_D,
+[SDL_SCANCODE_E] = Q_KEY_CODE_E,
+[SDL_SCANCODE_F] = Q_KEY_CODE_F,
+[SDL_SCANCODE_G] = Q_KEY_CODE_G,
+[SDL_SCANCODE_H] = Q_KEY_CODE_H,
+[SDL_SCANCODE_I] = Q_KEY_CODE_I,
+[SDL_SCANCODE_J] = Q_KEY_CODE_J,
+[SDL_SCANCODE_K] = Q_KEY_CODE_K,
+[SDL_SCANCODE_L] = Q_KEY_CODE_L,
+[SDL_SCANCODE_M] = Q_KEY_CODE_M,
+[SDL_SCANCODE_N] = Q_KEY_CODE_N,
+[SDL_SCANCODE_O] = Q_KEY_CODE_O,
+[SDL_SCANCODE_P] = Q_KEY_CODE_P,
+[SDL_SCANCODE_Q] = Q_KEY_CODE_Q,
+[SDL_SCANCODE_R] = Q_KEY_CODE_R,
+[SDL_SCANCODE_S] = Q_KEY_CODE_S,
+[SDL_SCANCODE_T] = Q_KEY_CODE_T,
+[SDL_SCANCODE_U] = Q_KEY_CODE_U,
+[SDL_SCANCODE_V] = Q_KEY_CODE_V,
+[SDL_SCANCODE_W] = Q_KEY_CODE_W,
+[SDL_SCANCODE_X] = Q_KEY_CODE_X,
+[SDL_SCANCODE_Y] = Q_KEY_CODE_Y,
+[SDL_SCANCODE_Z] = Q_KEY_CODE_Z,
+
+[SDL_SCANCODE_1] = Q_KEY_CODE_1,
+[SDL_SCANCODE_2] = Q_KEY_CODE_2,
+[SDL_SCANCODE_3] = Q_KEY_CODE_3,
+[SDL_SCANCODE_4] = Q_KEY_CODE_4,
+[SDL_SCANCODE_5] = Q_KEY_CODE_5,
+[SDL_SCANCODE_6] = Q_KEY_CODE_6,
+[SDL_SCANCODE_7] = Q_KEY_CODE_7,
+[SDL_SCANCODE_8] = Q_KEY_CODE_8,
+[SDL_SCANCODE_9] = Q_KEY_CODE_9,
+[SDL_SCANCODE_0] = Q_KEY_CODE_0,
+
+[SDL_SCANCODE_RETURN]= Q_KEY_CODE_RET,
+[SDL_SCANCODE_ESCAPE]= Q_KEY_CODE_ESC,
+[SDL_SCANCODE_BACKSPACE] = Q_KEY_CODE_BACKSPACE,
+[SDL_SCANCODE_TAB]   = Q_KEY_CODE_TAB,
+[SDL_SCANCODE_SPACE] = Q_KEY_CODE_SPC,
+[SDL_SCANCODE_MINUS] = Q_KEY_CODE_MINUS,
+[SDL_SCANCODE_EQUALS]= Q_KEY_CODE_EQUAL,
+[SDL_SCANCODE_LEFTBRACKET]   = Q_KEY_CODE_BRACKET_LEFT,
+[SDL_SCANCODE_RIGHTBRACKET]  = Q_KEY_CODE_BRACKET_RIGHT,
+[SDL_SCANCODE_BACKSLASH] = Q_KEY_CODE_BACKSLASH,
+#if 0
+[SDL_SCANCODE_NONUSHASH] = Q_KEY_CODE_NONUSHASH,
+#endif
+[SDL_SCANCODE_SEMICOLON] = Q_KEY_CODE_SEMICOLON,
+[SDL_SCANCODE_APOSTROPHE]= Q_KEY_CODE_APOSTROPHE,
+[SDL_SCANCODE_GRAVE] = Q_KEY_CODE_GRAVE_ACCENT,
+[SDL_SCANCODE_COMMA] = Q_KEY_CODE_COMMA,
+[SDL_SCANCODE_PERIOD]= Q_KEY_CODE_DOT,
+[SDL_SCANCODE_SLASH] = Q_KEY_CODE_SLASH,
+[SDL_SCANCODE_CAPSLOCK]  = Q_KEY_CODE_CAPS_LOCK,
+
+[SDL_SCANCODE_F1]= Q_KEY_CODE_F1,
+[SDL_SCANCODE_F2]= Q_KEY_CODE_F2,
+[SDL_SCANCODE_F3]= Q_KEY_CODE_F3,
+[SDL_SCANCODE_F4]= Q_KEY_CODE_F4,
+[SDL_SCANCODE_F5]= Q_KEY_CODE_F5,
+[SDL_SCANCODE_F6]= Q_KEY_CODE_F6,
+[SDL_SCANCODE_F7]= Q_KEY_CODE_F7,
+[SDL_SCANCODE_F8]= Q_KEY_CODE_F8,
+[SDL_SCANCODE_F9]= Q_KEY_CODE_F9,
+[SDL_SCANCODE_F10]   = Q_KEY_CODE_F10,
+[SDL_SCANCODE_F11]   = Q_KEY_CODE_F11,
+[SDL_SCANCODE_F12]   = Q_KEY_CODE_F12,
+
+[SDL_SCANCODE_PRINTSCREEN]   = Q_KEY_CODE_PRINT,
+[SDL_SCANCODE_SCROLLLOCK]= Q_KEY_CODE_SCROLL_LOCK,
+[SDL_SCANCODE_PAUSE] = Q_KEY_CODE_PAUSE,
+[SDL_SCANCODE_INSERT]= Q_KEY_CODE_INSERT,
+[SDL_SCANCODE_HOME]  = Q_KEY_CODE_HOME,
+[SDL_SCANCODE_PAGEUP]

[Qemu-devel] [PATCH 38/42] sdl2: simplify keymap handling

2013-12-16 Thread Gerd Hoffmann
sdl2 gives us scancodes (i.e. identifies keys by location not by keysym
mapped to it).  We can map them directly to QKeyCodes, pass them on to
the new input core and be done with it.

No need to jump though any keymap hops.  Zap the code.
Also operate directly on SDL scancodes for any hotkeys.

Signed-off-by: Gerd Hoffmann kra...@redhat.com
---
 ui/sdl2-keymap.h | 266 +++
 ui/sdl2.c| 147 ++--
 ui/sdl2_scancode_translate.h | 260 --
 3 files changed, 298 insertions(+), 375 deletions(-)
 create mode 100644 ui/sdl2-keymap.h
 delete mode 100644 ui/sdl2_scancode_translate.h

diff --git a/ui/sdl2-keymap.h b/ui/sdl2-keymap.h
new file mode 100644
index 000..5a12f45
--- /dev/null
+++ b/ui/sdl2-keymap.h
@@ -0,0 +1,266 @@
+
+/* map SDL2 scancodes to QKeyCode */
+
+static const int sdl2_scancode_to_qcode[SDL_NUM_SCANCODES] = {
+[SDL_SCANCODE_A] = Q_KEY_CODE_A,
+[SDL_SCANCODE_B] = Q_KEY_CODE_B,
+[SDL_SCANCODE_C] = Q_KEY_CODE_C,
+[SDL_SCANCODE_D] = Q_KEY_CODE_D,
+[SDL_SCANCODE_E] = Q_KEY_CODE_E,
+[SDL_SCANCODE_F] = Q_KEY_CODE_F,
+[SDL_SCANCODE_G] = Q_KEY_CODE_G,
+[SDL_SCANCODE_H] = Q_KEY_CODE_H,
+[SDL_SCANCODE_I] = Q_KEY_CODE_I,
+[SDL_SCANCODE_J] = Q_KEY_CODE_J,
+[SDL_SCANCODE_K] = Q_KEY_CODE_K,
+[SDL_SCANCODE_L] = Q_KEY_CODE_L,
+[SDL_SCANCODE_M] = Q_KEY_CODE_M,
+[SDL_SCANCODE_N] = Q_KEY_CODE_N,
+[SDL_SCANCODE_O] = Q_KEY_CODE_O,
+[SDL_SCANCODE_P] = Q_KEY_CODE_P,
+[SDL_SCANCODE_Q] = Q_KEY_CODE_Q,
+[SDL_SCANCODE_R] = Q_KEY_CODE_R,
+[SDL_SCANCODE_S] = Q_KEY_CODE_S,
+[SDL_SCANCODE_T] = Q_KEY_CODE_T,
+[SDL_SCANCODE_U] = Q_KEY_CODE_U,
+[SDL_SCANCODE_V] = Q_KEY_CODE_V,
+[SDL_SCANCODE_W] = Q_KEY_CODE_W,
+[SDL_SCANCODE_X] = Q_KEY_CODE_X,
+[SDL_SCANCODE_Y] = Q_KEY_CODE_Y,
+[SDL_SCANCODE_Z] = Q_KEY_CODE_Z,
+
+[SDL_SCANCODE_1] = Q_KEY_CODE_1,
+[SDL_SCANCODE_2] = Q_KEY_CODE_2,
+[SDL_SCANCODE_3] = Q_KEY_CODE_3,
+[SDL_SCANCODE_4] = Q_KEY_CODE_4,
+[SDL_SCANCODE_5] = Q_KEY_CODE_5,
+[SDL_SCANCODE_6] = Q_KEY_CODE_6,
+[SDL_SCANCODE_7] = Q_KEY_CODE_7,
+[SDL_SCANCODE_8] = Q_KEY_CODE_8,
+[SDL_SCANCODE_9] = Q_KEY_CODE_9,
+[SDL_SCANCODE_0] = Q_KEY_CODE_0,
+
+[SDL_SCANCODE_RETURN]= Q_KEY_CODE_RET,
+[SDL_SCANCODE_ESCAPE]= Q_KEY_CODE_ESC,
+[SDL_SCANCODE_BACKSPACE] = Q_KEY_CODE_BACKSPACE,
+[SDL_SCANCODE_TAB]   = Q_KEY_CODE_TAB,
+[SDL_SCANCODE_SPACE] = Q_KEY_CODE_SPC,
+[SDL_SCANCODE_MINUS] = Q_KEY_CODE_MINUS,
+[SDL_SCANCODE_EQUALS]= Q_KEY_CODE_EQUAL,
+[SDL_SCANCODE_LEFTBRACKET]   = Q_KEY_CODE_BRACKET_LEFT,
+[SDL_SCANCODE_RIGHTBRACKET]  = Q_KEY_CODE_BRACKET_RIGHT,
+[SDL_SCANCODE_BACKSLASH] = Q_KEY_CODE_BACKSLASH,
+#if 0
+[SDL_SCANCODE_NONUSHASH] = Q_KEY_CODE_NONUSHASH,
+#endif
+[SDL_SCANCODE_SEMICOLON] = Q_KEY_CODE_SEMICOLON,
+[SDL_SCANCODE_APOSTROPHE]= Q_KEY_CODE_APOSTROPHE,
+[SDL_SCANCODE_GRAVE] = Q_KEY_CODE_GRAVE_ACCENT,
+[SDL_SCANCODE_COMMA] = Q_KEY_CODE_COMMA,
+[SDL_SCANCODE_PERIOD]= Q_KEY_CODE_DOT,
+[SDL_SCANCODE_SLASH] = Q_KEY_CODE_SLASH,
+[SDL_SCANCODE_CAPSLOCK]  = Q_KEY_CODE_CAPS_LOCK,
+
+[SDL_SCANCODE_F1]= Q_KEY_CODE_F1,
+[SDL_SCANCODE_F2]= Q_KEY_CODE_F2,
+[SDL_SCANCODE_F3]= Q_KEY_CODE_F3,
+[SDL_SCANCODE_F4]= Q_KEY_CODE_F4,
+[SDL_SCANCODE_F5]= Q_KEY_CODE_F5,
+[SDL_SCANCODE_F6]= Q_KEY_CODE_F6,
+[SDL_SCANCODE_F7]= Q_KEY_CODE_F7,
+[SDL_SCANCODE_F8]= Q_KEY_CODE_F8,
+[SDL_SCANCODE_F9]= Q_KEY_CODE_F9,
+[SDL_SCANCODE_F10]   = Q_KEY_CODE_F10,
+[SDL_SCANCODE_F11]   = Q_KEY_CODE_F11,
+[SDL_SCANCODE_F12]   = Q_KEY_CODE_F12,
+
+[SDL_SCANCODE_PRINTSCREEN]   = Q_KEY_CODE_PRINT,
+[SDL_SCANCODE_SCROLLLOCK]= Q_KEY_CODE_SCROLL_LOCK,
+[SDL_SCANCODE_PAUSE] = Q_KEY_CODE_PAUSE,
+[SDL_SCANCODE_INSERT]= Q_KEY_CODE_INSERT,
+[SDL_SCANCODE_HOME]  = Q_KEY_CODE_HOME,
+[SDL_SCANCODE_PAGEUP]