1bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch// Copyright 2013 The Chromium Authors. All rights reserved.
2bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch// Use of this source code is governed by a BSD-style license that can be
3bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch// found in the LICENSE file.
4bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch
5d0247b1b59f9c528cb6df88b4f2b9afaf80d181eTorne (Richard Coles)#include "ui/events/keycodes/keyboard_code_conversion_android.h"
6bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch
7bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch#include <android/keycodes.h>
8bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch
9bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdochnamespace ui {
10bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch
11bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdochnamespace {
12bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch
13bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch// The Android NDK does not provide values for these yet:
14bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdochenum {
15bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch  AKEYCODE_ESCAPE          = 111,
16bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch  AKEYCODE_FORWARD_DEL     = 112,
17bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch  AKEYCODE_CTRL_LEFT       = 113,
18bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch  AKEYCODE_CTRL_RIGHT      = 114,
19bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch  AKEYCODE_CAPS_LOCK       = 115,
20bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch  AKEYCODE_SCROLL_LOCK     = 116,
21bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch  AKEYCODE_META_LEFT       = 117,
22bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch  AKEYCODE_META_RIGHT      = 118,
23bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch  AKEYCODE_BREAK           = 121,
245d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  AKEYCODE_MOVE_HOME       = 122,
255d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)  AKEYCODE_MOVE_END        = 123,
26bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch  AKEYCODE_INSERT          = 124,
27bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch  AKEYCODE_MEDIA_PLAY      = 126,
28bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch  AKEYCODE_MEDIA_PAUSE     = 127,
29bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch  AKEYCODE_F1              = 131,
30bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch  AKEYCODE_F2              = 132,
31bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch  AKEYCODE_F3              = 133,
32bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch  AKEYCODE_F4              = 134,
33bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch  AKEYCODE_F5              = 135,
34bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch  AKEYCODE_F6              = 136,
35bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch  AKEYCODE_F7              = 137,
36bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch  AKEYCODE_F8              = 138,
37bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch  AKEYCODE_F9              = 139,
38bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch  AKEYCODE_F10             = 140,
39bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch  AKEYCODE_F11             = 141,
40bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch  AKEYCODE_F12             = 142,
41bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch  AKEYCODE_NUM_LOCK        = 143,
42bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch  AKEYCODE_NUMPAD_0        = 144,
43bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch  AKEYCODE_NUMPAD_1        = 145,
44bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch  AKEYCODE_NUMPAD_2        = 146,
45bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch  AKEYCODE_NUMPAD_3        = 147,
46bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch  AKEYCODE_NUMPAD_4        = 148,
47bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch  AKEYCODE_NUMPAD_5        = 149,
48bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch  AKEYCODE_NUMPAD_6        = 150,
49bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch  AKEYCODE_NUMPAD_7        = 151,
50bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch  AKEYCODE_NUMPAD_8        = 152,
51bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch  AKEYCODE_NUMPAD_9        = 153,
52bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch  AKEYCODE_NUMPAD_DIVIDE   = 154,
53bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch  AKEYCODE_NUMPAD_MULTIPLY = 155,
54bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch  AKEYCODE_NUMPAD_SUBTRACT = 156,
55bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch  AKEYCODE_NUMPAD_ADD      = 157,
56bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch  AKEYCODE_NUMPAD_DOT      = 158,
57bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch  AKEYCODE_VOLUME_MUTE     = 164,
58bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch  AKEYCODE_CHANNEL_UP      = 166,
59bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch  AKEYCODE_CHANNEL_DOWN    = 167,
60bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch};
61bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch
62bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch}  // namespace
63bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch
64bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben MurdochKeyboardCode KeyboardCodeFromAndroidKeyCode(int keycode) {
65bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch  // Does not provide all key codes, and does not handle all keys.
66bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch  switch (keycode) {
67bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_DEL:
68bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_BACK;
69bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_TAB:
70bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_TAB;
71bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_CLEAR:
72bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_CLEAR;
73bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_DPAD_CENTER:
74bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_ENTER:
75bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_RETURN;
76bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_SHIFT_LEFT:
77bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_LSHIFT;
78bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_SHIFT_RIGHT:
79bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_RSHIFT;
80bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    // Back will serve as escape, although we may not have access to it.
81bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_BACK:
82bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_ESCAPE;
83bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_SPACE:
84bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_SPACE;
855d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    case AKEYCODE_MOVE_HOME:
86bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_HOME;
87bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_DPAD_LEFT:
88bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_LEFT;
89bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_DPAD_UP:
90bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_UP;
91bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_DPAD_RIGHT:
92bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_RIGHT;
93bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_DPAD_DOWN:
94bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_DOWN;
95bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_0:
96bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_0;
97bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_1:
98bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_1;
99bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_2:
100bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_2;
101bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_3:
102bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_3;
103bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_4:
104bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_4;
105bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_5:
106bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_5;
107bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_6:
108bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_6;
109bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_7:
110bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_7;
111bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_8:
112bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_8;
113bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_9:
114bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_9;
115bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_A:
116bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_A;
117bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_B:
118bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_B;
119bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_C:
120bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_C;
121bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_D:
122bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_D;
123bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_E:
124bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_E;
125bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_F:
126bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_F;
127bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_G:
128bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_G;
129bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_H:
130bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_H;
131bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_I:
132bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_I;
133bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_J:
134bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_J;
135bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_K:
136bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_K;
137bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_L:
138bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_L;
139bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_M:
140bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_M;
141bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_N:
142bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_N;
143bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_O:
144bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_O;
145bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_P:
146bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_P;
147bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_Q:
148bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_Q;
149bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_R:
150bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_R;
151bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_S:
152bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_S;
153bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_T:
154bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_T;
155bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_U:
156bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_U;
157bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_V:
158bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_V;
159bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_W:
160bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_W;
161bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_X:
162bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_X;
163bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_Y:
164bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_Y;
165bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_Z:
166bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_Z;
167bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_VOLUME_DOWN:
168bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_VOLUME_DOWN;
169bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_VOLUME_UP:
170bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_VOLUME_UP;
171bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_MEDIA_NEXT:
172bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_MEDIA_NEXT_TRACK;
173bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_MEDIA_PREVIOUS:
174bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_MEDIA_PREV_TRACK;
175bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_MEDIA_STOP:
176bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_MEDIA_STOP;
177bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_MEDIA_PAUSE:
178bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_MEDIA_PLAY_PAUSE;
179bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    // Colon key.
180bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_SEMICOLON:
181bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_OEM_1;
182bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_COMMA:
183bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_OEM_COMMA;
184bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_MINUS:
185bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_OEM_MINUS;
186bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_EQUALS:
187bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_OEM_PLUS;
188bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_PERIOD:
189bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_OEM_PERIOD;
190bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_SLASH:
191bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_OEM_2;
192bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_LEFT_BRACKET:
193bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_OEM_4;
194bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_BACKSLASH:
195bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_OEM_5;
196bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_RIGHT_BRACKET:
197bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_OEM_6;
198bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_MUTE:
199bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_VOLUME_MUTE:
200bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_VOLUME_MUTE;
201bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_ESCAPE:
202bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_ESCAPE;
203bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_MEDIA_PLAY:
204bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_MEDIA_PLAY_PAUSE:
205bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_MEDIA_PLAY_PAUSE;
2065d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    case AKEYCODE_MOVE_END:
207bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_END;
208bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_ALT_LEFT:
209bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_LMENU;
210bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_ALT_RIGHT:
211bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_RMENU;
212bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_GRAVE:
213bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_OEM_3;
214bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_APOSTROPHE:
215bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_OEM_3;
216bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_MEDIA_REWIND:
217bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_OEM_103;
218bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_MEDIA_FAST_FORWARD:
219bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_OEM_104;
220bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_PAGE_UP:
221bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_PRIOR;
222bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_PAGE_DOWN:
223bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_NEXT;
224bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_FORWARD_DEL:
225bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_DELETE;
226bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_CTRL_LEFT:
227bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_LCONTROL;
228bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_CTRL_RIGHT:
229bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_RCONTROL;
230bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_CAPS_LOCK:
231bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_CAPITAL;
232bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_SCROLL_LOCK:
233bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_SCROLL;
234bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_META_LEFT:
235bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_LWIN;
236bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_META_RIGHT:
237bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_RWIN;
238bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_BREAK:
239bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_PAUSE;
240bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_INSERT:
241bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_INSERT;
242bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_F1:
243bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_F1;
244bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_F2:
245bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_F2;
246bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_F3:
247bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_F3;
248bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_F4:
249bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_F4;
250bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_F5:
251bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_F5;
252bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_F6:
253bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_F6;
254bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_F7:
255bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_F7;
256bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_F8:
257bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_F8;
258bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_F9:
259bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_F9;
260bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_F10:
261bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_F10;
262bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_F11:
263bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_F11;
264bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_F12:
265bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_F12;
266bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_NUM_LOCK:
267bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_NUMLOCK;
268bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_NUMPAD_0:
269bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_NUMPAD0;
270bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_NUMPAD_1:
271bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_NUMPAD1;
272bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_NUMPAD_2:
273bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_NUMPAD2;
274bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_NUMPAD_3:
275bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_NUMPAD3;
276bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_NUMPAD_4:
277bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_NUMPAD4;
278bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_NUMPAD_5:
279bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_NUMPAD5;
280bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_NUMPAD_6:
281bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_NUMPAD6;
282bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_NUMPAD_7:
283bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_NUMPAD7;
284bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_NUMPAD_8:
285bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_NUMPAD8;
286bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_NUMPAD_9:
287bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_NUMPAD9;
288bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_NUMPAD_DIVIDE:
289bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_DIVIDE;
290bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_NUMPAD_MULTIPLY:
291bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_MULTIPLY;
292bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_NUMPAD_SUBTRACT:
293bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_SUBTRACT;
294bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_NUMPAD_ADD:
295bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_ADD;
296bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_NUMPAD_DOT:
297bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_DECIMAL;
298bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_CHANNEL_UP:
299bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_PRIOR;
300bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    case AKEYCODE_CHANNEL_DOWN:
301bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_NEXT;
302bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch    default:
303bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch      return VKEY_UNKNOWN;
304bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch  }
305bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch}
306bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch
307bbcdd45c55eb7c4641ab97aef9889b0fc828e7d3Ben Murdoch}  // namespace ui
308