提交 02fb15fb 编写于 作者: D Daniel P. Berrange

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: NDaniel P. Berrange <berrange@redhat.com>
上级 ab54d5f1
......@@ -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
......
[submodule "gnulib"]
path = .gnulib
url = git://git.sv.gnu.org/gnulib.git
[submodule "keycodemapdb"]
path = src/keycodemapdb
url = https://gitlab.com/keycodemap/keycodemapdb.git
......@@ -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/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/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_SOURCES += $(KEYTABLES)
BUILT_SOURCES += $(KEYTABLES)
MAINTAINERCLEANFILES += $(KEYTABLES)
# Internal generic driver infrastructure
DATATYPES_SOURCES = datatypes.h datatypes.c
......
Subproject commit bd754b861e7de5c7919aa249a975913cb207b85d
"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,,,,,,,,,,,,
#!/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"
......@@ -22,57 +22,53 @@
#include <string.h>
#include <stddef.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,
#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"
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",
......
......@@ -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);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册