blob: f300e68407b9d6e00996aeabcbdbab3a087b92c9 [file] [log] [blame]
The Android Open Source Project8b23a6c2009-03-03 19:30:32 -08001/* Copyright (C) 2007-2008 The Android Open Source Project
2**
3** This software is licensed under the terms of the GNU General Public
4** License version 2, as published by the Free Software Foundation, and
5** may be copied, distributed, and modified under those terms.
6**
7** This program is distributed in the hope that it will be useful,
8** but WITHOUT ANY WARRANTY; without even the implied warranty of
9** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10** GNU General Public License for more details.
11*/
12#ifndef _android_charmap_h
13#define _android_charmap_h
14
15#include "linux_keycodes.h"
16
17/* Keep it consistent with linux/input.h */
18typedef enum {
19 kKeyCodeSoftLeft = KEY_SOFT1,
20 kKeyCodeSoftRight = KEY_SOFT2,
21 kKeyCodeHome = KEY_HOME,
22 kKeyCodeBack = KEY_BACK,
23 kKeyCodeCall = KEY_SEND,
24 kKeyCodeEndCall = KEY_END,
25 kKeyCode0 = KEY_0,
26 kKeyCode1 = KEY_1,
27 kKeyCode2 = KEY_2,
28 kKeyCode3 = KEY_3,
29 kKeyCode4 = KEY_4,
30 kKeyCode5 = KEY_5,
31 kKeyCode6 = KEY_6,
32 kKeyCode7 = KEY_7,
33 kKeyCode8 = KEY_8,
34 kKeyCode9 = KEY_9,
35 kKeyCodeStar = KEY_STAR,
36 kKeyCodePound = KEY_SHARP,
37 kKeyCodeDpadUp = KEY_UP,
38 kKeyCodeDpadDown = KEY_DOWN,
39 kKeyCodeDpadLeft = KEY_LEFT,
40 kKeyCodeDpadRight = KEY_RIGHT,
41 kKeyCodeDpadCenter = KEY_CENTER,
42 kKeyCodeVolumeUp = KEY_VOLUMEUP,
43 kKeyCodeVolumeDown = KEY_VOLUMEDOWN,
44 kKeyCodePower = KEY_POWER,
45 kKeyCodeCamera = KEY_CAMERA,
46 kKeyCodeClear = KEY_CLEAR,
47 kKeyCodeA = KEY_A,
48 kKeyCodeB = KEY_B,
49 kKeyCodeC = KEY_C,
50 kKeyCodeD = KEY_D,
51 kKeyCodeE = KEY_E,
52 kKeyCodeF = KEY_F,
53 kKeyCodeG = KEY_G,
54 kKeyCodeH = KEY_H,
55 kKeyCodeI = KEY_I,
56 kKeyCodeJ = KEY_J,
57 kKeyCodeK = KEY_K,
58 kKeyCodeL = KEY_L,
59 kKeyCodeM = KEY_M,
60 kKeyCodeN = KEY_N,
61 kKeyCodeO = KEY_O,
62 kKeyCodeP = KEY_P,
63 kKeyCodeQ = KEY_Q,
64 kKeyCodeR = KEY_R,
65 kKeyCodeS = KEY_S,
66 kKeyCodeT = KEY_T,
67 kKeyCodeU = KEY_U,
68 kKeyCodeV = KEY_V,
69 kKeyCodeW = KEY_W,
70 kKeyCodeX = KEY_X,
71 kKeyCodeY = KEY_Y,
72 kKeyCodeZ = KEY_Z,
73
74 kKeyCodeComma = KEY_COMMA,
75 kKeyCodePeriod = KEY_DOT,
76 kKeyCodeAltLeft = KEY_LEFTALT,
77 kKeyCodeAltRight = KEY_RIGHTALT,
78 kKeyCodeCapLeft = KEY_LEFTSHIFT,
79 kKeyCodeCapRight = KEY_RIGHTSHIFT,
80 kKeyCodeTab = KEY_TAB,
81 kKeyCodeSpace = KEY_SPACE,
82 kKeyCodeSym = KEY_COMPOSE,
83 kKeyCodeExplorer = KEY_WWW,
84 kKeyCodeEnvelope = KEY_MAIL,
85 kKeyCodeNewline = KEY_ENTER,
86 kKeyCodeDel = KEY_BACKSPACE,
87 kKeyCodeGrave = 399,
88 kKeyCodeMinus = KEY_MINUS,
89 kKeyCodeEquals = KEY_EQUAL,
90 kKeyCodeLeftBracket = KEY_LEFTBRACE,
91 kKeyCodeRightBracket = KEY_RIGHTBRACE,
92 kKeyCodeBackslash = KEY_BACKSLASH,
93 kKeyCodeSemicolon = KEY_SEMICOLON,
94 kKeyCodeApostrophe = KEY_APOSTROPHE,
95 kKeyCodeSlash = KEY_SLASH,
96 kKeyCodeAt = KEY_EMAIL,
97 kKeyCodeNum = KEY_NUM,
98 kKeyCodeHeadsetHook = KEY_HEADSETHOOK,
99 kKeyCodeFocus = KEY_FOCUS,
100 kKeyCodePlus = KEY_PLUS,
101 kKeyCodeMenu = KEY_MENU,
102 kKeyCodeNotification = KEY_NOTIFICATION,
103 kKeyCodeSearch = KEY_SEARCH,
104
105 kKeyCodeBtnMouse = BTN_MOUSE,
106
107 kKeyCodeOrientation0 = 77,
108 kKeyCodeOrientation90 = 78,
109 kKeyCodeOrientation180 = 79,
110 kKeyCodeOrientation270 = 80
111} AndroidKeyCode;
112
113
114/* this defines a structure used to describe an Android keyboard charmap */
115typedef struct AKeyEntry {
116 unsigned short code;
117 unsigned short base;
118 unsigned short caps;
119 unsigned short fn;
120 unsigned short caps_fn;
121 unsigned short number;
122} AKeyEntry;
123
124typedef struct {
125 const AKeyEntry* entries;
126 int num_entries;
127 char name[ 32 ];
128} AKeyCharmap;
129
130extern const int android_charmap_count;
131extern const AKeyCharmap* android_charmaps[];
132
133#endif /* _android_charmap_h */