From 02fb15fb60274a684497293fecba400e37687d95 Mon Sep 17 00:00:00 2001 From: "Daniel P. Berrange" Date: Thu, 2 Mar 2017 10:46:53 +0000 Subject: [PATCH] util: switch over to use keycodemapdb GIT submodule A long time ago we imported the keymaps.csv file from GTK-VNC so we can do conversions between keycode sets. Meanwhile lots of bug fixes have gone into this CSV file and libvirt hasn't kept in sync. The keymaps.csv file and associated generator script has been pulled out of GTK-VNC into a dedicated GIT repo for use as a submodule. This allows GTK-VNC, SPICE-GTK, QEMU and libvirt to share the same master database and tools and pushing updates merely requires a submodule commit update as with gnulib. The test suite is updated to cover some extra boundary conditions. Signed-off-by: Daniel P. Berrange --- .gitignore | 3 +- .gitmodules | 3 + src/Makefile.am | 45 +++- src/keycodemapdb | 1 + src/util/keymaps.csv | 464 ---------------------------------- src/util/virkeycode-mapgen.py | 97 ------- src/util/virkeycode.c | 90 ++++--- tests/virkeycodetest.c | 5 + 8 files changed, 89 insertions(+), 619 deletions(-) create mode 160000 src/keycodemapdb delete mode 100644 src/util/keymaps.csv delete mode 100755 src/util/virkeycode-mapgen.py diff --git a/.gitignore b/.gitignore index d7927e1d4b..7a1b44ab46 100644 --- a/.gitignore +++ b/.gitignore @@ -159,7 +159,8 @@ /src/test_libvirt*.aug /src/test_virtlockd.aug /src/test_virtlogd.aug -/src/util/virkeymaps.h +/src/util/virkeycodetable*.h +/src/util/virkeynametable*.h /src/virt-aa-helper /src/virtlockd /src/virtlogd diff --git a/.gitmodules b/.gitmodules index 7acb1ea19c..cfee24d7b8 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,6 @@ [submodule "gnulib"] path = .gnulib url = git://git.sv.gnu.org/gnulib.git +[submodule "keycodemapdb"] + path = src/keycodemapdb + url = https://gitlab.com/keycodemap/keycodemapdb.git diff --git a/src/Makefile.am b/src/Makefile.am index 5def294505..ebe822d9da 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -52,7 +52,7 @@ AM_LDFLAGS = $(DRIVER_MODULES_LDFLAGS) \ $(MINGW_EXTRA_LDFLAGS) \ $(NULL) -EXTRA_DIST = $(conf_DATA) util/keymaps.csv +EXTRA_DIST = $(conf_DATA) BUILT_SOURCES = CLEANFILES = @@ -135,7 +135,6 @@ UTIL_SOURCES = \ util/virjson.c util/virjson.h \ util/virkeycode.c util/virkeycode.h \ util/virkeyfile.c util/virkeyfile.h \ - util/virkeymaps.h \ util/virlease.c util/virlease.h \ util/virlockspace.c util/virlockspace.h \ util/virlog.c util/virlog.h \ @@ -195,16 +194,42 @@ UTIL_SOURCES = \ util/virmdev.c util/virmdev.h \ $(NULL) -EXTRA_DIST += $(srcdir)/util/keymaps.csv $(srcdir)/util/virkeycode-mapgen.py +EXTRA_DIST += \ + $(srcdir)/keycodemapdb/data/keymaps.csv \ + $(srcdir)/keycodemapdb/tools/keymap-gen \ + $(NULL) -BUILT_SOURCES += util/virkeymaps.h -MAINTAINERCLEANFILES += util/virkeymaps.h +util/virkeycodetable_%.h: $(srcdir)/keycodemapdb/data/keymaps.csv \ + $(srcdir)/keycodemapdb/tools/keymap-gen Makefile.am + $(AM_V_GEN)export NAME=`echo $@ | sed -e 's,util/virkeycodetable_,,' \ + -e 's,\.h,,'` && \ + $(MKDIR_P) util/ && \ + $(PYTHON) $(srcdir)/keycodemapdb/tools/keymap-gen \ + --lang stdc --varname virKeyCodeTable_$$NAME code-table \ + $(srcdir)/keycodemapdb/data/keymaps.csv $$NAME > $@-tmp && \ + mv $@-tmp $@ || rm -f $@-tmp -util/virkeymaps.h: $(srcdir)/util/keymaps.csv \ - $(srcdir)/util/virkeycode-mapgen.py - $(MKDIR_P) util/ - $(AM_V_GEN)$(PYTHON) $(srcdir)/util/virkeycode-mapgen.py \ - <$(srcdir)/util/keymaps.csv >util/virkeymaps.h +util/virkeynametable_%.h: $(srcdir)/keycodemapdb/data/keymaps.csv \ + $(srcdir)/keycodemapdb/tools/keymap-gen Makefile.am + $(AM_V_GEN)export NAME=`echo $@ | sed -e 's,util/virkeynametable_,,' \ + -e 's,\.h,,'` && \ + $(MKDIR_P) util/ && \ + $(PYTHON) $(srcdir)/keycodemapdb/tools/keymap-gen \ + --lang stdc --varname virKeyNameTable_$$NAME name-table \ + $(srcdir)/keycodemapdb/data/keymaps.csv $$NAME > $@-tmp && \ + mv $@-tmp $@ || rm -f $@-tmp + +KEYCODES = linux osx atset1 atset2 atset3 xt xtkbd usb win32 rfb +KEYNAMES = linux osx win32 + +KEYTABLES = \ + $(KEYCODES:%=util/virkeycodetable_%.h) \ + $(KEYNAMES:%=util/virkeynametable_%.h) \ + $(NULL) + +UTIL_SOURCES += $(KEYTABLES) +BUILT_SOURCES += $(KEYTABLES) +MAINTAINERCLEANFILES += $(KEYTABLES) # Internal generic driver infrastructure DATATYPES_SOURCES = datatypes.h datatypes.c diff --git a/src/keycodemapdb b/src/keycodemapdb new file mode 160000 index 0000000000..bd754b861e --- /dev/null +++ b/src/keycodemapdb @@ -0,0 +1 @@ +Subproject commit bd754b861e7de5c7919aa249a975913cb207b85d diff --git a/src/util/keymaps.csv b/src/util/keymaps.csv deleted file mode 100644 index 98c723b651..0000000000 --- a/src/util/keymaps.csv +++ /dev/null @@ -1,464 +0,0 @@ -"Linux Name","Linux Keycode","OS-X Name","OS-X Keycode","AT set1 keycode","AT set2 keycode","AT set3 keycode",XT,"XT KBD","USB Keycodes","Win32 Name","Win32 Keycode","Xwin XT","Xfree86 KBD XT" -KEY_RESERVED,0,,,,,,,,,,,, -KEY_ESC,1,Escape,0x35,1,118,8,1,1,41,VK_ESCAPE,0x1b,1,1 -KEY_1,2,ANSI_1,0x12,2,22,22,2,2,30,VK_1,0x31,2,2 -KEY_2,3,ANSI_2,0x13,3,30,30,3,3,31,VK_2,0x32,3,3 -KEY_3,4,ANSI_3,0x14,4,38,38,4,4,32,VK_3,0x33,4,4 -KEY_4,5,ANSI_4,0x15,5,37,37,5,5,33,VK_4,0x34,5,5 -KEY_5,6,ANSI_5,0x17,6,46,46,6,6,34,VK_5,0x35,6,6 -KEY_6,7,ANSI_6,0x16,7,54,54,7,7,35,VK_6,0x36,7,7 -KEY_7,8,ANSI_7,0x1a,8,61,61,8,8,36,VK_7,0x37,8,8 -KEY_8,9,ANSI_8,0x1c,9,62,62,9,9,37,VK_8,0x38,9,9 -KEY_9,10,ANSI_9,0x19,10,70,70,10,10,38,VK_9,0x39,10,10 -KEY_0,11,ANSI_0,0x1d,11,69,69,11,11,39,VK_0,0x30,11,11 -KEY_MINUS,12,ANSI_Minus,0x1b,12,78,78,12,12,45,VK_OEM_MINUS,0xbd,12,12 -KEY_EQUAL,13,ANSI_Equal,0x18,13,85,85,13,13,46,VK_OEM_PLUS,0xbb,13,13 -KEY_BACKSPACE,14,Delete,0x33,14,102,102,14,14,42,VK_BACK,0x08,14,14 -KEY_TAB,15,Tab,0x30,15,13,13,15,15,43,VK_TAB,0x09,15,15 -KEY_Q,16,ANSI_Q,0xc,16,21,21,16,16,20,VK_Q,0x51,16,16 -KEY_W,17,ANSI_W,0xd,17,29,29,17,17,26,VK_W,0x57,17,17 -KEY_E,18,ANSI_E,0xe,18,36,36,18,18,8,VK_E,0x45,18,18 -KEY_R,19,ANSI_R,0xf,19,45,45,19,19,21,VK_R,0x52,19,19 -KEY_T,20,ANSI_T,0x11,20,44,44,20,20,23,VK_T,0x54,20,20 -KEY_Y,21,ANSI_Y,0x10,21,53,53,21,21,28,VK_Y,0x59,21,21 -KEY_U,22,ANSI_U,0x20,22,60,60,22,22,24,VK_U,0x55,22,22 -KEY_I,23,ANSI_I,0x22,23,67,67,23,23,12,VK_I,0x49,23,23 -KEY_O,24,ANSI_O,0x1f,24,68,68,24,24,18,VK_O,0x4f,24,24 -KEY_P,25,ANSI_P,0x23,25,77,77,25,25,19,VK_P,0x50,25,25 -KEY_LEFTBRACE,26,ANSI_LeftBracket,0x21,26,84,84,26,26,47,VK_OEM_4,0xdb,26,26 -KEY_RIGHTBRACE,27,ANSI_RightBracket,0x1e,27,91,91,27,27,48,VK_OEM_6,0xdd,27,27 -KEY_ENTER,28,Return,0x24,28,90,90,28,28,40,VK_RETURN,0x0d,28,28 -KEY_LEFTCTRL,29,Control,0x3b,29,20,17,29,29,224,VK_LCONTROL,0xa2,29,29 -KEY_LEFTCTRL,29,Control,0x3b,29,20,17,29,29,224,VK_CONTROL,0x11,29,29 -KEY_A,30,ANSI_A,0x0,30,28,28,30,30,4,VK_A,0x41,30,30 -KEY_S,31,ANSI_S,0x1,31,27,27,31,31,22,VK_S,0x53,31,31 -KEY_D,32,ANSI_D,0x2,32,35,35,32,32,7,VK_D,0x44,32,32 -KEY_F,33,ANSI_F,0x3,33,43,43,33,33,9,VK_F,0x46,33,33 -KEY_G,34,ANSI_G,0x5,34,52,52,34,34,10,VK_G,0x47,34,34 -KEY_H,35,ANSI_H,0x4,35,51,51,35,35,11,VK_H,0x48,35,35 -KEY_J,36,ANSI_J,0x26,36,59,59,36,36,13,VK_J,0x4a,36,36 -KEY_K,37,ANSI_K,0x28,37,66,66,37,37,14,VK_K,0x4b,37,37 -KEY_L,38,ANSI_L,0x25,38,75,75,38,38,15,VK_L,0x4c,38,38 -KEY_SEMICOLON,39,ANSI_Semicolon,0x29,39,76,76,39,39,51,VK_OEM_1,0xba,39,39 -KEY_APOSTROPHE,40,ANSI_Quote,0x27,40,82,82,40,40,52,VK_OEM_2,0xbf,40,40 -KEY_GRAVE,41,ANSI_Grave,0x32,41,14,14,41,41,53,VK_OEM_3,0xc0,41,41 -KEY_SHIFT,42,Shift,0x38,42,18,18,42,42,225,VK_SHIFT,0x10,42,42 -KEY_LEFTSHIFT,42,Shift,0x38,42,18,18,42,42,225,VK_LSHIFT,0xa0,42,42 -KEY_BACKSLASH,43,ANSI_Backslash,0x2a,43,93,93,43,43,50,VK_OEM_5,0xdc,43,43 -KEY_Z,44,ANSI_Z,0x6,44,26,26,44,44,29,VK_Z,0x5a,44,44 -KEY_X,45,ANSI_X,0x7,45,34,34,45,45,27,VK_X,0x58,45,45 -KEY_C,46,ANSI_C,0x8,46,33,33,46,46,6,VK_C,0x43,46,46 -KEY_V,47,ANSI_V,0x9,47,42,42,47,47,25,VK_V,0x56,47,47 -KEY_B,48,ANSI_B,0xb,48,50,50,48,48,5,VK_B,0x42,48,48 -KEY_N,49,ANSI_N,0x2d,49,49,49,49,49,17,VK_N,0x4e,49,49 -KEY_M,50,ANSI_M,0x2e,50,58,58,50,50,16,VK_M,0x4d,50,50 -KEY_COMMA,51,ANSI_Comma,0x2b,51,65,65,51,51,54,VK_OEM_COMMA,0xbc,51,51 -KEY_DOT,52,ANSI_Period,0x2f,52,73,73,52,52,55,VK_OEM_PERIOD,0xbe,52,52 -KEY_SLASH,53,ANSI_Slash,0x2c,53,74,74,53,53,56,VK_OEM_2,0xbf,53,53 -KEY_RIGHTSHIFT,54,RightShift,0x3c,54,89,89,54,54,229,VK_RSHIFT,0xa1,54,54 -KEY_KPASTERISK,55,ANSI_KeypadMultiply,0x43,55,124,126,55,55,85,VK_MULTIPLY,0x6a,55,55 -KEY_LEFTALT,56,Option,0x3a,56,17,25,56,56,226,VK_LMENU,0xa4,56,56 -KEY_LEFTALT,56,Option,0x3a,56,17,25,56,56,226,VK_MENU,0x12,56,56 -KEY_SPACE,57,Space,0x31,57,41,41,57,57,44,VK_SPACE,0x20,57,57 -KEY_CAPSLOCK,58,CapsLock,0x39,58,88,20,58,58,57,VK_CAPITAL,0x14,58,58 -KEY_F1,59,F1,0x7a,59,5,7,59,59,58,VK_F1,0x70,59,59 -KEY_F2,60,F2,0x78,60,6,15,60,60,59,VK_F2,0x71,60,60 -KEY_F3,61,F3,0x63,61,4,23,61,61,60,VK_F3,0x72,61,61 -KEY_F4,62,F4,0x76,62,12,31,62,62,61,VK_F4,0x73,62,62 -KEY_F5,63,F5,0x60,63,3,39,63,63,62,VK_F5,0x74,63,63 -KEY_F6,64,F6,0x61,64,11,47,64,64,63,VK_F6,0x75,64,64 -KEY_F7,65,F7,0x62,65,259,55,65,65,64,VK_F7,0x76,65,65 -KEY_F8,66,F8,0x64,66,10,63,66,66,65,VK_F8,0x77,66,66 -KEY_F9,67,F9,0x65,67,1,71,67,67,66,VK_F9,0x78,67,67 -KEY_F10,68,F10,0x6d,68,9,79,68,68,67,VK_F10,0x79,68,68 -KEY_NUMLOCK,69,,,69,119,118,69,69,83,VK_NUMLOCK,0x90,69,69 -KEY_SCROLLLOCK,70,,,70,126,95,70,70,71,VK_SCROLL,0x91,70,70 -KEY_KP7,71,ANSI_Keypad7,0x59,71,108,108,71,71,95,VK_NUMPAD7,0x67,71,71 -KEY_KP8,72,ANSI_Keypad8,0x5b,72,117,117,72,72,96,VK_NUMPAD8,0x68,72,72 -KEY_KP9,73,ANSI_Keypad9,0x5c,73,125,125,73,73,97,VK_NUMPAD9,0x69,73,73 -KEY_KPMINUS,74,ANSI_KeypadMinus,0x4e,74,123,132,74,74,86,VK_SUBTRACT,0x6d,74,74 -KEY_KP4,75,ANSI_Keypad4,0x56,75,107,107,75,75,92,VK_NUMPAD4,0x64,75,75 -KEY_KP5,76,ANSI_Keypad5,0x57,76,115,115,76,76,93,VK_NUMPAD5,0x65,76,76 -KEY_KP6,77,ANSI_Keypad6,0x58,77,116,116,77,77,94,VK_NUMPAD6,0x66,77,77 -KEY_KPPLUS,78,ANSI_KeypadPlus,0x45,78,121,124,78,78,87,VK_ADD,0x6b,78,78 -KEY_KP1,79,ANSI_Keypad1,0x53,79,105,105,79,79,89,VK_NUMPAD1,0x61,79,79 -KEY_KP2,80,ANSI_Keypad2,0x54,80,114,114,80,80,90,VK_NUMPAD2,0x62,80,80 -KEY_KP3,81,ANSI_Keypad3,0x55,81,122,122,81,81,91,VK_NUMPAD3,0x63,81,81 -KEY_KP0,82,ANSI_Keypad0,0x52,82,112,112,82,82,98,VK_NUMPAD0,0x60,82,82 -KEY_KPDOT,83,ANSI_KeypadDecimal,0x41,83,113,113,83,83,99,VK_DECIMAL,0x6e,83,83 -,84,,,,,,,84,,,,, -KEY_ZENKAKUHANKAKU,85,,,118,95,,,118,148,,,, -KEY_102ND,86,,,86,97,19,,86,100,VK_OEM_102,0xe1,, -KEY_F11,87,F11,0x67,87,120,86,101,87,68,VK_F11,0x7a,, -KEY_F12,88,F12,0x6f,88,7,94,102,88,69,VK_F12,0x7b,, -KEY_RO,89,,,115,81,,,115,135,,,, -KEY_KATAKANA,90,JIS_Kana????,0x68,120,99,,,120,146,VK_KANA,0x15,, -KEY_HIRAGANA,91,,,119,98,,,119,147,,,, -KEY_HENKAN,92,,,121,100,134,,121,138,,,, -KEY_KATAKANAHIRAGANA,93,,,112,19,135,,112,136,,,0xc8,0xc8 -KEY_MUHENKAN,94,,,123,103,133,,123,139,,,, -KEY_KPJPCOMMA,95,JIS_KeypadComma,0x5f,92,39,,,92,140,,,, -KEY_KPENTER,96,ANSI_KeypadEnter,0x4c,,158,121,,284,88,,,0x64,0x64 -KEY_RIGHTCTRL,97,RightControl,0x3e,,,88,,285,228,VK_RCONTROL,0xa3,0x65,0x65 -KEY_KPSLASH,98,ANSI_KeypadDivide,0x4b,,181,119,,309,84,VK_DIVIDE,0x6f,0x68,0x68 -KEY_SYSRQ,99,,,84,260,87,,84,70,"VK_SNAPSHOT ???",0x2c,0x67,0x67 -KEY_RIGHTALT,100,RightOption,0x3d,,,57,,312,230,VK_RMENU,0xa5,0x69,0x69 -KEY_LINEFEED,101,,,,,,,91,,,,, -KEY_HOME,102,Home,0x73,,224,110,,327,74,VK_HOME,0x24,0x59,0x59 -KEY_UP,103,UpArrow,0x7e,,236,99,109,328,82,VK_UP,0x26,0x5a,0x5a -KEY_PAGEUP,104,PageUp,0x74,,201,111,,329,75,VK_PRIOR,0x21,0x5b,0x5b -KEY_LEFT,105,LeftArrow,0x7b,,203,97,111,331,80,VK_LEFT,0x25,0x5c,0x5c -KEY_RIGHT,106,RightArrow,0x7c,,205,106,112,333,79,VK_RIGHT,0x27,0x5e,0x5e -KEY_END,107,End,0x77,,225,101,,335,77,VK_END,0x23,0x5f,0x5f -KEY_DOWN,108,DownArrow,0x7d,,254,96,110,336,81,VK_DOWN,0x28,0x60,0x60 -KEY_PAGEDOWN,109,PageDown,0x79,,243,109,,337,78,VK_NEXT,0x22,0x61,0x61 -KEY_INSERT,110,,,,210,103,107,338,73,VK_INSERT,0x2d,0x62,0x62 -KEY_DELETE,111,ForwardDelete,0x75,,244,100,108,339,76,VK_DELETE,0x2e,0x63,0x63 -KEY_MACRO,112,,,,239,142,,367,,,,, -KEY_MUTE,113,Mute,0x4a,,251,156,,288,239,VK_VOLUME_MUTE,0xad,, -KEY_VOLUMEDOWN,114,VolumeDown,0x49,,,157,,302,238,VK_VOLUME_DOWN,0xae,, -KEY_VOLUMEUP,115,VolumeUp,0x48,,233,149,,304,237,VK_VOLUME_UP,0xaf,, -KEY_POWER,116,,,,,,,350,102,,,, -KEY_KPEQUAL,117,ANSI_KeypadEquals,0x51,89,15,,,89,103,,,0x76,0x76 -KEY_KPPLUSMINUS,118,,,,206,,,334,,,,, -KEY_PAUSE,119,,,,198,98,,326,72,VK_PAUSE,0x013,0x66,0x66 -KEY_SCALE,120,,,,,,,267,,,,, -KEY_KPCOMMA,121,ANSI_KeypadClear????,0x47,126,109,,,126,133,VK_SEPARATOR??,0x6c,, -KEY_HANGEUL,122,,,,,,,,144,VK_HANGEUL,0x15,, -KEY_HANJA,123,,,,,,,269,145,VK_HANJA,0x19,, -KEY_YEN,124,JIS_Yen,0x5d,125,106,,,125,137,,,0x7d,0x7d -KEY_LEFTMETA,125,Command,0x37,,,139,,347,227,VK_LWIN,0x5b,0x6b,0x6b -KEY_RIGHTMETA,126,,,,,140,,348,231,VK_RWIN,0x5c,0x6c,0x6c -KEY_COMPOSE,127,Function,0x3f,,,141,,349,101,VK_APPS,0x5d,0x6d,0x6d -KEY_STOP,128,,,,,10,,360,243,VK_BROWSER_STOP,0xa9,, -KEY_AGAIN,129,,,,,11,,261,121,,,, -KEY_PROPS,130,,,,,12,,262,118,,,, -KEY_UNDO,131,,,,,16,,263,122,,,, -KEY_FRONT,132,,,,,,,268,119,,,, -KEY_COPY,133,,,,,24,,376,124,,,, -KEY_OPEN,134,,,,,32,,100,116,,,, -KEY_PASTE,135,,,,,40,,101,125,,,, -KEY_FIND,136,,,,,48,,321,244,,,, -KEY_CUT,137,,,,,56,,316,123,,,, -KEY_HELP,138,,,,,9,,373,117,VK_HELP,0x2f,, -KEY_MENU,139,,,,,145,,286,,,,, -KEY_CALC,140,,,,174,163,,289,251,,,, -KEY_SETUP,141,,,,,,,102,,,,, -KEY_SLEEP,142,,,,,,,351,248,VK_SLEEP,0x5f,, -KEY_WAKEUP,143,,,,,,,355,,,,, -KEY_FILE,144,,,,,,,103,,,,, -KEY_SENDFILE,145,,,,,,,104,,,,, -KEY_DELETEFILE,146,,,,,,,105,,,,, -KEY_XFER,147,,,,,162,,275,,,,, -KEY_PROG1,148,,,,,160,,287,,,,, -KEY_PROG2,149,,,,,161,,279,,,,, -KEY_WWW,150,,,,,,,258,240,,,, -KEY_MSDOS,151,,,,,,,106,,,,, -KEY_SCREENLOCK,152,,,,,150,,274,249,,,, -KEY_DIRECTION,153,,,,,,,107,,,,, -KEY_CYCLEWINDOWS,154,,,,,155,,294,,,,, -KEY_MAIL,155,,,,,,,364,,,,, -KEY_BOOKMARKS,156,,,,,,,358,,,,, -KEY_COMPUTER,157,,,,,,,363,,,,, -KEY_BACK,158,,,,,,,362,241,VK_BROWSER_BACK,0xa6,, -KEY_FORWARD,159,,,,,,,361,242,VK_BROWSER_FORWARD,0xa7,, -KEY_CLOSECD,160,,,,,154,,291,,,,, -KEY_EJECTCD,161,,,,,,,108,236,,,, -KEY_EJECTCLOSECD,162,,,,,,,381,,,,, -KEY_NEXTSONG,163,,,,241,147,,281,235,VK_MEDIA_NEXT_TRACK,0xb0,, -KEY_PLAYPAUSE,164,,,,173,,,290,232,VK_MEDIA_PLAY_PAUSE,0xb3,, -KEY_PREVIOUSSONG,165,,,,250,148,,272,234,VK_MEDIA_PREV_TRACK,0xb1,, -KEY_STOPCD,166,,,,164,152,,292,233,VK_MEDIA_STOP,0xb2,, -KEY_RECORD,167,,,,,158,,305,,,,, -KEY_REWIND,168,,,,,159,,280,,,,, -KEY_PHONE,169,,,,,,,99,,,,, -KEY_ISO,170,ISO_Section,0xa,,,,,112,,,,, -KEY_CONFIG,171,,,,,,,257,,,,, -KEY_HOMEPAGE,172,,,,178,151,,306,,VK_BROWSER_HOME,0xac,, -KEY_REFRESH,173,,,,,,,359,250,VK_BROWSER_REFRESH,0xa8,, -KEY_EXIT,174,,,,,,,113,,,,, -KEY_MOVE,175,,,,,,,114,,,,, -KEY_EDIT,176,,,,,,,264,247,,,, -KEY_SCROLLUP,177,,,,,,,117,245,,,, -KEY_SCROLLDOWN,178,,,,,,,271,246,,,, -KEY_KPLEFTPAREN,179,,,,,,,374,182,,,, -KEY_KPRIGHTPAREN,180,,,,,,,379,183,,,, -KEY_NEW,181,,,,,,,265,,,,, -KEY_REDO,182,,,,,,,266,,,,, -KEY_F13,183,F13,0x69,93,47,127,,93,104,VK_F13,0x7c,0x6e,0x6e -KEY_F14,184,F14,0x6b,94,55,128,,94,105,VK_F14,0x7d,0x6f,0x6f -KEY_F15,185,F15,0x71,95,63,129,,95,106,VK_F15,0x7e,0x70,0x70 -KEY_F16,186,F16,0x6a,,,130,,85,107,VK_F16,0x7f,0x71,0x71 -KEY_F17,187,F17,0x40,,,131,,259,108,VK_F17,0x80,0x72,0x72 -KEY_F18,188,F18,0x4f,,,,,375,109,VK_F18,0x81,, -KEY_F19,189,F19,0x50,,,,,260,110,VK_F19,0x82,, -KEY_F20,190,F20,0x5a,,,,,90,111,VK_F20,0x83,, -KEY_F21,191,,,,,,,116,112,VK_F21,0x84,, -KEY_F22,192,,,,,,,377,113,VK_F22,0x85,, -KEY_F23,193,,,,,,,109,114,VK_F23,0x86,, -KEY_F24,194,,,,,,,111,115,VK_F24,0x87,, -,195,,,,,,,277,,,,, -,196,,,,,,,278,,,,, -,197,,,,,,,282,,,,, -,198,,,,,,,283,,,,, -,199,,,,,,,295,,,,, -KEY_PLAYCD,200,,,,,,,296,,,,, -KEY_PAUSECD,201,,,,,,,297,,,,, -KEY_PROG3,202,,,,,,,299,,,,, -KEY_PROG4,203,,,,,,,300,,,,, -KEY_DASHBOARD,204,,,,,,,301,,,,, -KEY_SUSPEND,205,,,,,,,293,,,,, -KEY_CLOSE,206,,,,,,,303,,,,, -KEY_PLAY,207,,,,,,,307,,VK_PLAY,0xfa,, -KEY_FASTFORWARD,208,,,,,,,308,,,,, -KEY_BASSBOOST,209,,,,,,,310,,,,, -KEY_PRINT,210,,,,,,,313,,VK_PRINT,0x2a,, -KEY_HP,211,,,,,,,314,,,,, -KEY_CAMERA,212,,,,,,,315,,,,, -KEY_SOUND,213,,,,,,,317,,,,, -KEY_QUESTION,214,,,,,,,318,,,,, -KEY_EMAIL,215,,,,,,,319,,VK_LAUNCH_MAIL,0xb4,, -KEY_CHAT,216,,,,,,,320,,,,, -KEY_SEARCH,217,,,,,,,357,,VK_BROWSER_SEARCH,0xaa,, -KEY_CONNECT,218,,,,,,,322,,,,, -KEY_FINANCE,219,,,,,,,323,,,,, -KEY_SPORT,220,,,,,,,324,,,,, -KEY_SHOP,221,,,,,,,325,,,,, -KEY_ALTERASE,222,,,,,,,276,,,,, -KEY_CANCEL,223,,,,,,,330,,,,, -KEY_BRIGHTNESSDOWN,224,,,,,,,332,,,,, -KEY_BRIGHTNESSUP,225,,,,,,,340,,,,, -KEY_MEDIA,226,,,,,,,365,,,,, -KEY_SWITCHVIDEOMODE,227,,,,,,,342,,,,, -KEY_KBDILLUMTOGGLE,228,,,,,,,343,,,,, -KEY_KBDILLUMDOWN,229,,,,,,,344,,,,, -KEY_KBDILLUMUP,230,,,,,,,345,,,,, -KEY_SEND,231,,,,,,,346,,,,, -KEY_REPLY,232,,,,,,,356,,,,, -KEY_FORWARDMAIL,233,,,,,,,270,,,,, -KEY_SAVE,234,,,,,,,341,,,,, -KEY_DOCUMENTS,235,,,,,,,368,,,,, -KEY_BATTERY,236,,,,,,,369,,,,, -KEY_BLUETOOTH,237,,,,,,,370,,,,, -KEY_WLAN,238,,,,,,,371,,,,, -KEY_UWB,239,,,,,,,372,,,,, -KEY_UNKNOWN,240,,,,,,,,,,,, -KEY_VIDEO_NEXT,241,,,,,,,,,,,, -KEY_VIDEO_PREV,242,,,,,,,,,,,, -KEY_BRIGHTNESS_CYCLE,243,,,,,,,,,,,, -KEY_BRIGHTNESS_ZERO,244,,,,,,,,,,,, -KEY_DISPLAY_OFF,245,,,,,,,,,,,, -KEY_WIMAX,246,,,,,,,,,,,, -,247,,,,,,,,,,,, -,248,,,,,,,,,,,, -,249,,,,,,,,,,,, -,250,,,,,,,,,,,, -,251,,,,,,,,,,,, -,252,,,,,,,,,,,, -,253,,,,,,,,,,,, -,254,,,,,,,,,,,, -,255,,,,182,,,,,,,, -BTN_MISC,0x100,,,,,,,,,,,, -BTN_0,0x100,,,,,,,,,VK_LBUTTON,0x01,, -BTN_1,0x101,,,,,,,,,VK_RBUTTON,0x02,, -BTN_2,0x102,,,,,,,,,VK_MBUTTON,0x04,, -BTN_3,0x103,,,,,,,,,VK_XBUTTON1,0x05,, -BTN_4,0x104,,,,,,,,,VK_XBUTTON2,0x06,, -BTN_5,0x105,,,,,,,,,,,, -BTN_6,0x106,,,,,,,,,,,, -BTN_7,0x107,,,,,,,,,,,, -BTN_8,0x108,,,,,,,,,,,, -BTN_9,0x109,,,,,,,,,,,, -BTN_MOUSE,0x110,,,,,,,,,,,, -BTN_LEFT,0x110,,,,,,,,,,,, -BTN_RIGHT,0x111,,,,,,,,,,,, -BTN_MIDDLE,0x112,,,,,,,,,,,, -BTN_SIDE,0x113,,,,,,,,,,,, -BTN_EXTRA,0x114,,,,,,,,,,,, -BTN_FORWARD,0x115,,,,,,,,,,,, -BTN_BACK,0x116,,,,,,,,,,,, -BTN_TASK,0x117,,,,,,,,,,,, -BTN_JOYSTICK,0x120,,,,,,,,,,,, -BTN_TRIGGER,0x120,,,,,,,,,,,, -BTN_THUMB,0x121,,,,,,,,,,,, -BTN_THUMB2,0x122,,,,,,,,,,,, -BTN_TOP,0x123,,,,,,,,,,,, -BTN_TOP2,0x124,,,,,,,,,,,, -BTN_PINKIE,0x125,,,,,,,,,,,, -BTN_BASE,0x126,,,,,,,,,,,, -BTN_BASE2,0x127,,,,,,,,,,,, -BTN_BASE3,0x128,,,,,,,,,,,, -BTN_BASE4,0x129,,,,,,,,,,,, -BTN_BASE5,0x12a,,,,,,,,,,,, -BTN_BASE6,0x12b,,,,,,,,,,,, -BTN_DEAD,0x12f,,,,,,,,,,,, -BTN_GAMEPAD,0x130,,,,,,,,,,,, -BTN_A,0x130,,,,,,,,,,,, -BTN_B,0x131,,,,,,,,,,,, -BTN_C,0x132,,,,,,,,,,,, -BTN_X,0x133,,,,,,,,,,,, -BTN_Y,0x134,,,,,,,,,,,, -BTN_Z,0x135,,,,,,,,,,,, -BTN_TL,0x136,,,,,,,,,,,, -BTN_TR,0x137,,,,,,,,,,,, -BTN_TL2,0x138,,,,,,,,,,,, -BTN_TR2,0x139,,,,,,,,,,,, -BTN_SELECT,0x13a,,,,,,,,,,,, -BTN_START,0x13b,,,,,,,,,,,, -BTN_MODE,0x13c,,,,,,,,,,,, -BTN_THUMBL,0x13d,,,,,,,,,,,, -BTN_THUMBR,0x13e,,,,,,,,,,,, -BTN_DIGI,0x140,,,,,,,,,,,, -BTN_TOOL_PEN,0x140,,,,,,,,,,,, -BTN_TOOL_RUBBER,0x141,,,,,,,,,,,, -BTN_TOOL_BRUSH,0x142,,,,,,,,,,,, -BTN_TOOL_PENCIL,0x143,,,,,,,,,,,, -BTN_TOOL_AIRBRUSH,0x144,,,,,,,,,,,, -BTN_TOOL_FINGER,0x145,,,,,,,,,,,, -BTN_TOOL_MOUSE,0x146,,,,,,,,,,,, -BTN_TOOL_LENS,0x147,,,,,,,,,,,, -BTN_TOUCH,0x14a,,,,,,,,,,,, -BTN_STYLUS,0x14b,,,,,,,,,,,, -BTN_STYLUS2,0x14c,,,,,,,,,,,, -BTN_TOOL_DOUBLETAP,0x14d,,,,,,,,,,,, -BTN_TOOL_TRIPLETAP,0x14e,,,,,,,,,,,, -BTN_TOOL_QUADTAP,0x14f,,,,,,,,,,,, -BTN_WHEEL,0x150,,,,,,,,,,,, -BTN_GEAR_DOWN,0x150,,,,,,,,,,,, -BTN_GEAR_UP,0x151,,,,,,,,,,,, -KEY_OK,0x160,,,,,,,,,,,, -KEY_SELECT,0x161,,,,,,,,,VK_SELECT,0x29,, -KEY_GOTO,0x162,,,,,,,,,,,, -KEY_CLEAR,0x163,,,,,,,,,,,, -KEY_POWER2,0x164,,,,,,,,,,,, -KEY_OPTION,0x165,,,,,,,,,,,, -KEY_INFO,0x166,,,,,,,,,,,, -KEY_TIME,0x167,,,,,,,,,,,, -KEY_VENDOR,0x168,,,,,,,,,,,, -KEY_ARCHIVE,0x169,,,,,,,,,,,, -KEY_PROGRAM,0x16a,,,,,,,,,,,, -KEY_CHANNEL,0x16b,,,,,,,,,,,, -KEY_FAVORITES,0x16c,,,,,,,,,VK_BROWSER_FAVOURITES,0xab,, -KEY_EPG,0x16d,,,,,,,,,,,, -KEY_PVR,0x16e,,,,,,,,,,,, -KEY_MHP,0x16f,,,,,,,,,,,, -KEY_LANGUAGE,0x170,,,,,,,,,,,, -KEY_TITLE,0x171,,,,,,,,,,,, -KEY_SUBTITLE,0x172,,,,,,,,,,,, -KEY_ANGLE,0x173,,,,,,,,,,,, -KEY_ZOOM,0x174,,,,,,,,,VK_ZOOM,0xfb,, -KEY_MODE,0x175,,,,,,,,,,,, -KEY_KEYBOARD,0x176,,,,,,,,,,,, -KEY_SCREEN,0x177,,,,,,,,,,,, -KEY_PC,0x178,,,,,,,,,,,, -KEY_TV,0x179,,,,,,,,,,,, -KEY_TV2,0x17a,,,,,,,,,,,, -KEY_VCR,0x17b,,,,,,,,,,,, -KEY_VCR2,0x17c,,,,,,,,,,,, -KEY_SAT,0x17d,,,,,,,,,,,, -KEY_SAT2,0x17e,,,,,,,,,,,, -KEY_CD,0x17f,,,,,,,,,,,, -KEY_TAPE,0x180,,,,,,,,,,,, -KEY_RADIO,0x181,,,,,,,,,,,, -KEY_TUNER,0x182,,,,,,,,,,,, -KEY_PLAYER,0x183,,,,,,,,,,,, -KEY_TEXT,0x184,,,,,,,,,,,, -KEY_DVD,0x185,,,,,,,,,,,, -KEY_AUX,0x186,,,,,,,,,,,, -KEY_MP3,0x187,,,,,,,,,,,, -KEY_AUDIO,0x188,,,,,,,,,,,, -KEY_VIDEO,0x189,,,,,,,,,,,, -KEY_DIRECTORY,0x18a,,,,,,,,,,,, -KEY_LIST,0x18b,,,,,,,,,,,, -KEY_MEMO,0x18c,,,,,,,,,,,, -KEY_CALENDAR,0x18d,,,,,,,,,,,, -KEY_RED,0x18e,,,,,,,,,,,, -KEY_GREEN,0x18f,,,,,,,,,,,, -KEY_YELLOW,0x190,,,,,,,,,,,, -KEY_BLUE,0x191,,,,,,,,,,,, -KEY_CHANNELUP,0x192,,,,,,,,,,,, -KEY_CHANNELDOWN,0x193,,,,,,,,,,,, -KEY_FIRST,0x194,,,,,,,,,,,, -KEY_LAST,0x195,,,,,,,,,,,, -KEY_AB,0x196,,,,,,,,,,,, -KEY_NEXT,0x197,,,,,,,,,,,, -KEY_RESTART,0x198,,,,,,,,,,,, -KEY_SLOW,0x199,,,,,,,,,,,, -KEY_SHUFFLE,0x19a,,,,,,,,,,,, -KEY_BREAK,0x19b,,,,,,,,,,,, -KEY_PREVIOUS,0x19c,,,,,,,,,,,, -KEY_DIGITS,0x19d,,,,,,,,,,,, -KEY_TEEN,0x19e,,,,,,,,,,,, -KEY_TWEN,0x19f,,,,,,,,,,,, -KEY_VIDEOPHONE,0x1a0,,,,,,,,,,,, -KEY_GAMES,0x1a1,,,,,,,,,,,, -KEY_ZOOMIN,0x1a2,,,,,,,,,,,, -KEY_ZOOMOUT,0x1a3,,,,,,,,,,,, -KEY_ZOOMRESET,0x1a4,,,,,,,,,,,, -KEY_WORDPROCESSOR,0x1a5,,,,,,,,,,,, -KEY_EDITOR,0x1a6,,,,,,,,,,,, -KEY_SPREADSHEET,0x1a7,,,,,,,,,,,, -KEY_GRAPHICSEDITOR,0x1a8,,,,,,,,,,,, -KEY_PRESENTATION,0x1a9,,,,,,,,,,,, -KEY_DATABASE,0x1aa,,,,,,,,,,,, -KEY_NEWS,0x1ab,,,,,,,,,,,, -KEY_VOICEMAIL,0x1ac,,,,,,,,,,,, -KEY_ADDRESSBOOK,0x1ad,,,,,,,,,,,, -KEY_MESSENGER,0x1ae,,,,,,,,,,,, -KEY_DISPLAYTOGGLE,0x1af,,,,,,,,,,,, -KEY_SPELLCHECK,0x1b0,,,,,,,,,,,, -KEY_LOGOFF,0x1b1,,,,,,,,,,,, -KEY_DOLLAR,0x1b2,,,,,,,,,,,, -KEY_EURO,0x1b3,,,,,,,,,,,, -KEY_FRAMEBACK,0x1b4,,,,,,,,,,,, -KEY_FRAMEFORWARD,0x1b5,,,,,,,,,,,, -KEY_CONTEXT_MENU,0x1b6,,,,,,,,,,,, -KEY_MEDIA_REPEAT,0x1b7,,,,,,,,,,,, -KEY_DEL_EOL,0x1c0,,,,,,,,,,,, -KEY_DEL_EOS,0x1c1,,,,,,,,,,,, -KEY_INS_LINE,0x1c2,,,,,,,,,,,, -KEY_DEL_LINE,0x1c3,,,,,,,,,,,, -KEY_FN,0x1d0,,,,,,,,,,,, -KEY_FN_ESC,0x1d1,,,,,,,,,,,, -KEY_FN_F1,0x1d2,,,,,,,,,,,, -KEY_FN_F2,0x1d3,,,,,,,,,,,, -KEY_FN_F3,0x1d4,,,,,,,,,,,, -KEY_FN_F4,0x1d5,,,,,,,,,,,, -KEY_FN_F5,0x1d6,,,,,,,,,,,, -KEY_FN_F6,0x1d7,,,,,,,,,,,, -KEY_FN_F7,0x1d8,,,,,,,,,,,, -KEY_FN_F8,0x1d9,,,,,,,,,,,, -KEY_FN_F9,0x1da,,,,,,,,,,,, -KEY_FN_F10,0x1db,,,,,,,,,,,, -KEY_FN_F11,0x1dc,,,,,,,,,,,, -KEY_FN_F12,0x1dd,,,,,,,,,,,, -KEY_FN_1,0x1de,,,,,,,,,,,, -KEY_FN_2,0x1df,,,,,,,,,,,, -KEY_FN_D,0x1e0,,,,,,,,,,,, -KEY_FN_E,0x1e1,,,,,,,,,,,, -KEY_FN_F,0x1e2,,,,,,,,,,,, -KEY_FN_S,0x1e3,,,,,,,,,,,, -KEY_FN_B,0x1e4,,,,,,,,,,,, -KEY_BRL_DOT1,0x1f1,,,,,,,,,,,, -KEY_BRL_DOT2,0x1f2,,,,,,,,,,,, -KEY_BRL_DOT3,0x1f3,,,,,,,,,,,, -KEY_BRL_DOT4,0x1f4,,,,,,,,,,,, -KEY_BRL_DOT5,0x1f5,,,,,,,,,,,, -KEY_BRL_DOT6,0x1f6,,,,,,,,,,,, -KEY_BRL_DOT7,0x1f7,,,,,,,,,,,, -KEY_BRL_DOT8,0x1f8,,,,,,,,,,,, -KEY_BRL_DOT9,0x1f9,,,,,,,,,,,, -KEY_BRL_DOT10,0x1fa,,,,,,,,,,,, -KEY_NUMERIC_0,0x200,,,,,,,,,,,, -KEY_NUMERIC_1,0x201,,,,,,,,,,,, -KEY_NUMERIC_2,0x202,,,,,,,,,,,, -KEY_NUMERIC_3,0x203,,,,,,,,,,,, -KEY_NUMERIC_4,0x204,,,,,,,,,,,, -KEY_NUMERIC_5,0x205,,,,,,,,,,,, -KEY_NUMERIC_6,0x206,,,,,,,,,,,, -KEY_NUMERIC_7,0x207,,,,,,,,,,,, -KEY_NUMERIC_8,0x208,,,,,,,,,,,, -KEY_NUMERIC_9,0x209,,,,,,,,,,,, -KEY_NUMERIC_STAR,0x20a,,,,,,,,,,,, -KEY_NUMERIC_POUND,0x20b,,,,,,,,,,,, -KEY_RFKILL,0x20c,,,,,,,,,,,, diff --git a/src/util/virkeycode-mapgen.py b/src/util/virkeycode-mapgen.py deleted file mode 100755 index 8360bfe525..0000000000 --- a/src/util/virkeycode-mapgen.py +++ /dev/null @@ -1,97 +0,0 @@ -#!/usr/bin/python - -""" -Generate the big keycodes table for virkeys. -It read keymaps.csv from stdin and put the generated code to stdout. - -Please keep keymaps.csv be exactly the same as: -http://git.gnome.org/browse/gtk-vnc/plain/src/keymaps.csv. -If anything inconsistent happens, please change this file -instead of keymaps.csv which is a mirror. -""" - -import sys -import re - -cols = ( - ["linux", True], - ["linux", False], - ["os_x", True], - ["os_x", False], - ["atset1", False], - - ["atset2", False], - ["atset3", False], - ["xt", False], - ["xt_kbd", False], - ["usb", False], - - ["win32", True], - ["win32", False], - [None, False], - [None, False], - ["rfb", False], -) - -xtkbdkey_index = 8 - -def quotestring(str): - if str[0] != '"': - return '"' + str + '"' - return str - -print ''' -/* Generated file, DON'T edit it */ - -#ifndef VIRT_KEY_INTERNAL -# error do not use this; it is not a public header -#endif - -''' - -sys.stdin.readline() # eat the fist line. - -keycodes = [] - -max = 0 - -for line in sys.stdin.xreadlines(): - values = re.match("([^,]*)," * 13 + "([^,]*)$", line[0:-1]).groups() - - data = [] - for v in values: - data.append(v) - - # RFB keycodes are XT kbd keycodes with a slightly - # different encoding of 0xe0 scan codes. RFB uses - # the high bit of the first byte, instead of the low - # bit of the second byte. - rfbkey = int(data[xtkbdkey_index] or '0') - rfbkey = (rfbkey & 0x100) >> 1 | (rfbkey & 0x7f) - data.append("%d" % rfbkey) - - keycodes.append(data) - max = max + 1 - -print "#define VIR_KEYMAP_ENTRY_MAX " + str(max) - -for i in range(len(cols)): - col=cols[i] - name=col[0] - isname=col[1] - - if name is None: - continue - - if isname: - print "const char *virKeymapNames_" + name + "[] = {" - else: - print "int virKeymapValues_" + name + "[] = {" - - for entry in keycodes: - if isname: - print " " + quotestring(entry[i] or "NULL") + "," - else: - print " " + (entry[i] or "-1") + "," - - print "};\n" diff --git a/src/util/virkeycode.c b/src/util/virkeycode.c index 7880a0aba2..e09aaadaa7 100644 --- a/src/util/virkeycode.c +++ b/src/util/virkeycode.c @@ -22,57 +22,53 @@ #include #include +#include "virkeycodetable_atset1.h" +#include "virkeycodetable_atset2.h" +#include "virkeycodetable_atset3.h" +#include "virkeycodetable_linux.h" +#include "virkeycodetable_osx.h" +#include "virkeycodetable_rfb.h" +#include "virkeycodetable_usb.h" +#include "virkeycodetable_win32.h" +#include "virkeycodetable_xt.h" +#include "virkeycodetable_xtkbd.h" +#include "virkeynametable_linux.h" +#include "virkeynametable_osx.h" +#include "virkeynametable_win32.h" -#define VIRT_KEY_INTERNAL -#include "virkeymaps.h" - -static const char **virKeymapNames[] = { - [VIR_KEYCODE_SET_LINUX] = - virKeymapNames_linux, - [VIR_KEYCODE_SET_XT] = - NULL, - [VIR_KEYCODE_SET_ATSET1] = - NULL, - [VIR_KEYCODE_SET_ATSET2] = - NULL, - [VIR_KEYCODE_SET_ATSET3] = - NULL, - [VIR_KEYCODE_SET_OSX] = - virKeymapNames_os_x, - [VIR_KEYCODE_SET_XT_KBD] = - NULL, - [VIR_KEYCODE_SET_USB] = - NULL, - [VIR_KEYCODE_SET_WIN32] = - virKeymapNames_win32, - [VIR_KEYCODE_SET_RFB] = - NULL, +static const char **virKeymapNames[VIR_KEYCODE_SET_LAST] = { + [VIR_KEYCODE_SET_LINUX] = virKeyNameTable_linux, + [VIR_KEYCODE_SET_OSX] = virKeyNameTable_osx, + [VIR_KEYCODE_SET_WIN32] = virKeyNameTable_win32, }; -verify(ARRAY_CARDINALITY(virKeymapNames) == VIR_KEYCODE_SET_LAST); -static int *virKeymapValues[] = { - [VIR_KEYCODE_SET_LINUX] = - virKeymapValues_linux, - [VIR_KEYCODE_SET_XT] = - virKeymapValues_xt, - [VIR_KEYCODE_SET_ATSET1] = - virKeymapValues_atset1, - [VIR_KEYCODE_SET_ATSET2] = - virKeymapValues_atset2, - [VIR_KEYCODE_SET_ATSET3] = - virKeymapValues_atset3, - [VIR_KEYCODE_SET_OSX] = - virKeymapValues_os_x, - [VIR_KEYCODE_SET_XT_KBD] = - virKeymapValues_xt_kbd, - [VIR_KEYCODE_SET_USB] = - virKeymapValues_usb, - [VIR_KEYCODE_SET_WIN32] = - virKeymapValues_win32, - [VIR_KEYCODE_SET_RFB] = - virKeymapValues_rfb, +static const unsigned short *virKeymapValues[VIR_KEYCODE_SET_LAST] = { + [VIR_KEYCODE_SET_LINUX] = virKeyCodeTable_linux, + [VIR_KEYCODE_SET_XT] = virKeyCodeTable_xt, + [VIR_KEYCODE_SET_ATSET1] = virKeyCodeTable_atset1, + [VIR_KEYCODE_SET_ATSET2] = virKeyCodeTable_atset2, + [VIR_KEYCODE_SET_ATSET3] = virKeyCodeTable_atset3, + [VIR_KEYCODE_SET_OSX] = virKeyCodeTable_osx, + [VIR_KEYCODE_SET_XT_KBD] = virKeyCodeTable_xtkbd, + [VIR_KEYCODE_SET_USB] = virKeyCodeTable_usb, + [VIR_KEYCODE_SET_WIN32] = virKeyCodeTable_win32, + [VIR_KEYCODE_SET_RFB] = virKeyCodeTable_rfb, }; -verify(ARRAY_CARDINALITY(virKeymapValues) == VIR_KEYCODE_SET_LAST); + +#define VIR_KEYMAP_ENTRY_MAX ARRAY_CARDINALITY(virKeyCodeTable_linux) + +verify(VIR_KEYMAP_ENTRY_MAX == ARRAY_CARDINALITY(virKeyCodeTable_xt)); +verify(VIR_KEYMAP_ENTRY_MAX == ARRAY_CARDINALITY(virKeyCodeTable_atset1)); +verify(VIR_KEYMAP_ENTRY_MAX == ARRAY_CARDINALITY(virKeyCodeTable_atset2)); +verify(VIR_KEYMAP_ENTRY_MAX == ARRAY_CARDINALITY(virKeyCodeTable_atset3)); +verify(VIR_KEYMAP_ENTRY_MAX == ARRAY_CARDINALITY(virKeyCodeTable_osx)); +verify(VIR_KEYMAP_ENTRY_MAX == ARRAY_CARDINALITY(virKeyCodeTable_xtkbd)); +verify(VIR_KEYMAP_ENTRY_MAX == ARRAY_CARDINALITY(virKeyCodeTable_usb)); +verify(VIR_KEYMAP_ENTRY_MAX == ARRAY_CARDINALITY(virKeyCodeTable_win32)); +verify(VIR_KEYMAP_ENTRY_MAX == ARRAY_CARDINALITY(virKeyCodeTable_rfb)); +verify(VIR_KEYMAP_ENTRY_MAX == ARRAY_CARDINALITY(virKeyNameTable_linux)); +verify(VIR_KEYMAP_ENTRY_MAX == ARRAY_CARDINALITY(virKeyNameTable_osx)); +verify(VIR_KEYMAP_ENTRY_MAX == ARRAY_CARDINALITY(virKeyNameTable_win32)); VIR_ENUM_IMPL(virKeycodeSet, VIR_KEYCODE_SET_LAST, "linux", diff --git a/tests/virkeycodetest.c b/tests/virkeycodetest.c index d4cb973dbe..d754385bec 100644 --- a/tests/virkeycodetest.c +++ b/tests/virkeycodetest.c @@ -57,6 +57,9 @@ static int testKeycodeMapping(const void *data ATTRIBUTE_UNUSED) TRANSLATE(LINUX, RFB, 88, 88); TRANSLATE(LINUX, RFB, 160, 163); TRANSLATE(ATSET2, ATSET3, 259, 55); + TRANSLATE(OSX, WIN32, 90, 131); + TRANSLATE(OSX, ATSET1, 90, 0); + TRANSLATE(OSX, ATSET1, 3200, -1); #undef TRANSLATE @@ -82,6 +85,8 @@ static int testKeycodeStrings(const void *data ATTRIBUTE_UNUSED) } while (0) TRANSLATE(LINUX, "KEY_DELETE", 111); + TRANSLATE(LINUX, "KEY_RFKILL", 524); + TRANSLATE(LINUX, "KEY_WIBBLE", -1); TRANSLATE(OSX, "Function", 0x3f); TRANSLATE(WIN32, "VK_UP", 0x26);