b722dc97803f056271f5c8773f06a8364f244491
[sdk/emulator/qemu.git] / tizen / src / skin / maruskin_keymap.h
1 /*
2  * keymap
3  *
4  * Copyright (C) 2011 - 2012 Samsung Electronics Co., Ltd. All rights reserved.
5  *
6  * Contact:
7  * GiWoong Kim <giwoong.kim@samsung.com>
8  * YeongKyoon Lee <yeongkyoon.lee@samsung.com>
9  * HyunJun Son
10  *
11  * This program is free software; you can redistribute it and/or
12  * modify it under the terms of the GNU General Public License
13  * as published by the Free Software Foundation; either version 2
14  * of the License, or (at your option) any later version.
15  *
16  * This program is distributed in the hope that it will be useful,
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19  * GNU General Public License for more details.
20  *
21  * You should have received a copy of the GNU General Public License
22  * along with this program; if not, write to the Free Software
23  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
24  *
25  * Contributors:
26  * - S-Core Co., Ltd
27  *
28  */
29
30
31 #ifndef MARUSKIN_KEYMAP_H_
32 #define MARUSKIN_KEYMAP_H_
33
34
35 /* keep it consistent with emulator-skin(swt) virtual keycode */
36 #define JAVA_KEYCODE_BIT (1 << 24)
37 #define JAVA_KEYCODE_NO_FOCUS (1 << 19)
38 #define JAVA_KEYCODE_BIT_CTRL (1 << 18)
39 #define JAVA_KEYCODE_BIT_SHIFT (1 << 17)
40 #define JAVA_KEYCODE_BIT_ALT (1 << 16)
41
42 //key location
43 #define JAVA_KEYLOCATION_KEYPAD (1 << 1)
44 #define JAVA_KEYLOCATION_LEFT (1 << 14)
45 #define JAVA_KEYLOCATION_RIGHT (1 << 17)
46
47 #define JAVA_KEY_MASK 0xFFFF;
48
49 enum JAVA_KEYCODE {
50     JAVA_KEY_ARROW_UP = 1,
51     JAVA_KEY_ARROW_DOWN,
52     JAVA_KEY_ARROW_LEFT,
53     JAVA_KEY_ARROW_RIGHT,
54     JAVA_KEY_PAGE_UP,
55     JAVA_KEY_PAGE_DOWN,
56     JAVA_KEY_HOME,
57     JAVA_KEY_END,
58     JAVA_KEY_INSERT,
59     JAVA_KEY_F1 = 10,
60     JAVA_KEY_ESC = 27,
61     JAVA_KEY_F20 = 29,
62     JAVA_KEY_KEYPAD_MULTIPLY = 42,
63     JAVA_KEY_KEYPAD_ADD = 43,
64     JAVA_KEY_KEYPAD_SUBTRACT = 45,
65     JAVA_KEY_KEYPAD_DECIMAL = 46,
66     JAVA_KEY_KEYPAD_DIVIDE = 47,
67     JAVA_KEY_KEYPAD_0 = 48,
68     JAVA_KEY_KEYPAD_1 = 49,
69     JAVA_KEY_KEYPAD_2 = 50,
70     JAVA_KEY_KEYPAD_3 = 51,
71     JAVA_KEY_KEYPAD_4 = 52,
72     JAVA_KEY_KEYPAD_5 = 53,
73     JAVA_KEY_KEYPAD_6 = 54,
74     JAVA_KEY_KEYPAD_7 = 55,
75     JAVA_KEY_KEYPAD_8 = 56,
76     JAVA_KEY_KEYPAD_9 = 57,
77     JAVA_KEY_KEYPAD_CR = 80,
78     JAVA_KEY_CAPS_LOCK = 82,
79     JAVA_KEY_NUM_LOCK,
80     JAVA_KEY_SCROLL_LOCK,
81     JAVA_KEY_PAUSE,
82     JAVA_KEY_BREAK,
83     JAVA_KEY_PRINT_SCREEN,
84     JAVA_KEY_DELETE = 127
85 };
86
87
88 #define KEY_MAX 0777
89
90 #define KEY_F0 0410
91 #define KEY_F(n) (KEY_F0 + (n))
92
93 #define KEY_DOWN 0402
94 #define KEY_UP 0403
95 #define KEY_LEFT 0404
96 #define KEY_RIGHT 0405
97
98 #define KEY_BTAB 0541
99
100
101 #define SHIFT 0
102 static const int vkkey2scancode[KEY_MAX] = {
103     [0 ... (KEY_MAX - 1)] = -1,
104
105     [JAVA_KEY_ESC] = 1, /* Escape */
106     ['1'] = 2,
107     ['2'] = 3,
108     ['3'] = 4,
109     ['4'] = 5,
110     ['5'] = 6,
111     ['6'] = 7,
112     ['7'] = 8,
113     ['8'] = 9,
114     ['9'] = 10,
115     ['0'] = 11,
116     ['-'] = 12,
117     ['='] = 13,
118     [JAVA_KEY_DELETE] = 83, /* Delete */
119     [0x008] = 14, /* Backspace */
120
121     ['\t'] = 15, /* Tab */
122     ['q'] = 16,
123     ['w'] = 17,
124     ['e'] = 18,
125     ['r'] = 19,
126     ['t'] = 20,
127     ['y'] = 21,
128     ['u'] = 22,
129     ['i'] = 23,
130     ['o'] = 24,
131     ['p'] = 25,
132     ['['] = 26,
133     [']'] = 27,
134     ['\n'] = 28, /* Return */
135     ['\r'] = 28, /* Return */
136
137     ['a'] = 30,
138     ['s'] = 31,
139     ['d'] = 32,
140     ['f'] = 33,
141     ['g'] = 34,
142     ['h'] = 35,
143     ['j'] = 36,
144     ['k'] = 37,
145     ['l'] = 38,
146     [';'] = 39,
147     ['\''] = 40, /* Single quote */
148     ['`'] = 41,
149     ['\\'] = 43, /* Backslash */
150
151     ['z'] = 44,
152     ['x'] = 45,
153     ['c'] = 46,
154     ['v'] = 47,
155     ['b'] = 48,
156     ['n'] = 49,
157     ['m'] = 50,
158     [','] = 51,
159     ['.'] = 52,
160     ['/'] = 53,
161
162     [' '] = 57, /* Space */
163
164     [KEY_F(1)] = 59, /* Function Key 1 */
165     [KEY_F(2)] = 60, /* Function Key 2 */
166     [KEY_F(3)] = 61, /* Function Key 3 */
167     [KEY_F(4)] = 62, /* Function Key 4 */
168     [KEY_F(5)] = 63, /* Function Key 5 */
169     [KEY_F(6)] = 64, /* Function Key 6 */
170     [KEY_F(7)] = 65, /* Function Key 7 */
171     [KEY_F(8)] = 66, /* Function Key 8 */
172     [KEY_F(9)] = 67, /* Function Key 9 */
173     [KEY_F(10)] = 68, /* Function Key 10 */
174     [KEY_F(11)] = 87, /* Function Key 11 */
175     [KEY_F(12)] = 88, /* Function Key 12 */
176
177     [KEY_UP] = 72, /* Up Arrow */
178     [KEY_LEFT] = 75, /* Left Arrow */
179     [KEY_RIGHT] = 77, /* Right Arrow */
180     [KEY_DOWN] = 80, /* Down Arrow */
181
182     ['!'] = 2 | SHIFT,
183     ['@'] = 3 | SHIFT,
184     ['#'] = 4 | SHIFT,
185     ['$'] = 5 | SHIFT,
186     ['%'] = 6 | SHIFT,
187     ['^'] = 7 | SHIFT,
188     ['&'] = 8 | SHIFT,
189     ['*'] = 9 | SHIFT,
190     ['('] = 10 | SHIFT,
191     [')'] = 11 | SHIFT,
192     ['_'] = 12 | SHIFT,
193     ['+'] = 13 | SHIFT,
194
195     [KEY_BTAB] = 15 | SHIFT, /* Shift + Tab */
196     ['Q'] = 16 | SHIFT,
197     ['W'] = 17 | SHIFT,
198     ['E'] = 18 | SHIFT,
199     ['R'] = 19 | SHIFT,
200     ['T'] = 20 | SHIFT,
201     ['Y'] = 21 | SHIFT,
202     ['U'] = 22 | SHIFT,
203     ['I'] = 23 | SHIFT,
204     ['O'] = 24 | SHIFT,
205     ['P'] = 25 | SHIFT,
206     ['{'] = 26 | SHIFT,
207     ['}'] = 27 | SHIFT,
208
209     ['A'] = 30 | SHIFT,
210     ['S'] = 31 | SHIFT,
211     ['D'] = 32 | SHIFT,
212     ['F'] = 33 | SHIFT,
213     ['G'] = 34 | SHIFT,
214     ['H'] = 35 | SHIFT,
215     ['J'] = 36 | SHIFT,
216     ['K'] = 37 | SHIFT,
217     ['L'] = 38 | SHIFT,
218     [':'] = 39 | SHIFT,
219     ['"'] = 40 | SHIFT,
220     ['~'] = 41 | SHIFT,
221     ['|'] = 43 | SHIFT,
222
223     ['Z'] = 44 | SHIFT,
224     ['X'] = 45 | SHIFT,
225     ['C'] = 46 | SHIFT,
226     ['V'] = 47 | SHIFT,
227     ['B'] = 48 | SHIFT,
228     ['N'] = 49 | SHIFT,
229     ['M'] = 50 | SHIFT,
230     ['<'] = 51 | SHIFT,
231     ['>'] = 52 | SHIFT,
232     ['?'] = 53 | SHIFT,
233 };
234
235 int javakeycode_to_scancode(
236     int event_type, int java_keycode, int state_mask, int key_location);
237
238 #endif /* MARUSKIN_KEYMAP_H_ */