2
* FreeRDP: A Remote Desktop Protocol Client
3
* XKB-based Keyboard Mapping to Microsoft Keyboard System
5
* Copyright 2009 Marc-Andre Moreau <marcandre.moreau@gmail.com>
7
* Licensed under the Apache License, Version 2.0 (the "License");
8
* you may not use this file except in compliance with the License.
9
* You may obtain a copy of the License at
11
* http://www.apache.org/licenses/LICENSE-2.0
13
* Unless required by applicable law or agreed to in writing, software
14
* distributed under the License is distributed on an "AS IS" BASIS,
15
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
* See the License for the specific language governing permissions and
17
* limitations under the License.
20
/* Keyboard layout IDs used in the RDP protocol */
22
#ifndef __LAYOUT_IDS_H
23
#define __LAYOUT_IDS_H
25
#include <freerdp/api.h>
26
#include <freerdp/kbd/kbd.h>
28
/* Keyboard layout IDs */
30
#define KBD_ARABIC_101 0x00000401
31
#define KBD_BULGARIAN 0x00000402
32
#define KBD_CHINESE_TRADITIONAL_US 0x00000404
33
#define KBD_CZECH 0x00000405
34
#define KBD_DANISH 0x00000406
35
#define KBD_GERMAN 0x00000407
36
#define KBD_GREEK 0x00000408
37
#define KBD_US 0x00000409
38
#define KBD_SPANISH 0x0000040A
39
#define KBD_FINNISH 0x0000040B
40
#define KBD_FRENCH 0x0000040C
41
#define KBD_HEBREW 0x0000040D
42
#define KBD_HUNGARIAN 0x0000040E
43
#define KBD_ICELANDIC 0x0000040F
44
#define KBD_ITALIAN 0x00000410
45
#define KBD_JAPANESE 0x00000411
46
#define KBD_KOREAN 0x00000412
47
#define KBD_DUTCH 0x00000413
48
#define KBD_NORWEGIAN 0x00000414
49
#define KBD_POLISH_PROGRAMMERS 0x00000415
50
#define KBD_PORTUGUESE_BRAZILIAN_ABNT 0x00000416
51
#define KBD_ROMANIAN 0x00000418
52
#define KBD_RUSSIAN 0x00000419
53
#define KBD_CROATIAN 0x0000041A
54
#define KBD_SLOVAK 0x0000041B
55
#define KBD_ALBANIAN 0x0000041C
56
#define KBD_SWEDISH 0x0000041D
57
#define KBD_THAI_KEDMANEE 0x0000041E
58
#define KBD_TURKISH_Q 0x0000041F
59
#define KBD_URDU 0x00000420
60
#define KBD_UKRAINIAN 0x00000422
61
#define KBD_BELARUSIAN 0x00000423
62
#define KBD_SLOVENIAN 0x00000424
63
#define KBD_ESTONIAN 0x00000425
64
#define KBD_LATVIAN 0x00000426
65
#define KBD_LITHUANIAN_IBM 0x00000427
66
#define KBD_FARSI 0x00000429
67
#define KBD_VIETNAMESE 0x0000042A
68
#define KBD_ARMENIAN_EASTERN 0x0000042B
69
#define KBD_AZERI_LATIN 0x0000042C
70
#define KBD_FYRO_MACEDONIAN 0x0000042F
71
#define KBD_GEORGIAN 0x00000437
72
#define KBD_FAEROESE 0x00000438
73
#define KBD_DEVANAGARI_INSCRIPT 0x00000439
74
#define KBD_MALTESE_47_KEY 0x0000043A
75
#define KBD_NORWEGIAN_WITH_SAMI 0x0000043B
76
#define KBD_KAZAKH 0x0000043F
77
#define KBD_KYRGYZ_CYRILLIC 0x00000440
78
#define KBD_TATAR 0x00000444
79
#define KBD_BENGALI 0x00000445
80
#define KBD_PUNJABI 0x00000446
81
#define KBD_GUJARATI 0x00000447
82
#define KBD_TAMIL 0x00000449
83
#define KBD_TELUGU 0x0000044A
84
#define KBD_KANNADA 0x0000044B
85
#define KBD_MALAYALAM 0x0000044C
86
#define KBD_MARATHI 0x0000044E
87
#define KBD_MONGOLIAN_CYRILLIC 0x00000450
88
#define KBD_UNITED_KINGDOM_EXTENDED 0x00000452
89
#define KBD_SYRIAC 0x0000045A
90
#define KBD_NEPALI 0x00000461
91
#define KBD_PASHTO 0x00000463
92
#define KBD_DIVEHI_PHONETIC 0x00000465
93
#define KBD_LUXEMBOURGISH 0x0000046E
94
#define KBD_MAORI 0x00000481
95
#define KBD_CHINESE_SIMPLIFIED_US 0x00000804
96
#define KBD_SWISS_GERMAN 0x00000807
97
#define KBD_UNITED_KINGDOM 0x00000809
98
#define KBD_LATIN_AMERICAN 0x0000080A
99
#define KBD_BELGIAN_FRENCH 0x0000080C
100
#define KBD_BELGIAN_PERIOD 0x00000813
101
#define KBD_PORTUGUESE 0x00000816
102
#define KBD_SERBIAN_LATIN 0x0000081A
103
#define KBD_AZERI_CYRILLIC 0x0000082C
104
#define KBD_SWEDISH_WITH_SAMI 0x0000083B
105
#define KBD_UZBEK_CYRILLIC 0x00000843
106
#define KBD_INUKTITUT_LATIN 0x0000085D
107
#define KBD_CANADIAN_FRENCH_LEGACY 0x00000C0C
108
#define KBD_SERBIAN_CYRILLIC 0x00000C1A
109
#define KBD_CANADIAN_FRENCH 0x00001009
110
#define KBD_SWISS_FRENCH 0x0000100C
111
#define KBD_BOSNIAN 0x0000141A
112
#define KBD_IRISH 0x00001809
113
#define KBD_BOSNIAN_CYRILLIC 0x0000201A
115
/* Keyboard layout variant IDs */
117
#define KBD_ARABIC_102 0x00010401
118
#define KBD_BULGARIAN_LATIN 0x00010402
119
#define KBD_CZECH_QWERTY 0x00010405
120
#define KBD_GERMAN_IBM 0x00010407
121
#define KBD_GREEK_220 0x00010408
122
#define KBD_UNITED_STATES_DVORAK 0x00010409
123
#define KBD_SPANISH_VARIATION 0x0001040A
124
#define KBD_HUNGARIAN_101_KEY 0x0001040E
125
#define KBD_ITALIAN_142 0x00010410
126
#define KBD_POLISH_214 0x00010415
127
#define KBD_PORTUGUESE_BRAZILIAN_ABNT2 0x00010416
128
#define KBD_RUSSIAN_TYPEWRITER 0x00010419
129
#define KBD_SLOVAK_QWERTY 0x0001041B
130
#define KBD_THAI_PATTACHOTE 0x0001041E
131
#define KBD_TURKISH_F 0x0001041F
132
#define KBD_LATVIAN_QWERTY 0x00010426
133
#define KBD_LITHUANIAN 0x00010427
134
#define KBD_ARMENIAN_WESTERN 0x0001042B
135
#define KBD_HINDI_TRADITIONAL 0x00010439
136
#define KBD_MALTESE_48_KEY 0x0001043A
137
#define KBD_SAMI_EXTENDED_NORWAY 0x0001043B
138
#define KBD_BENGALI_INSCRIPT 0x00010445
139
#define KBD_SYRIAC_PHONETIC 0x0001045A
140
#define KBD_DIVEHI_TYPEWRITER 0x00010465
141
#define KBD_BELGIAN_COMMA 0x0001080C
142
#define KBD_FINNISH_WITH_SAMI 0x0001083B
143
#define KBD_CANADIAN_MULTILINGUAL_STANDARD 0x00011009
144
#define KBD_GAELIC 0x00011809
145
#define KBD_ARABIC_102_AZERTY 0x00020401
146
#define KBD_CZECH_PROGRAMMERS 0x00020405
147
#define KBD_GREEK_319 0x00020408
148
#define KBD_UNITED_STATES_INTERNATIONAL 0x00020409
149
#define KBD_THAI_KEDMANEE_NON_SHIFTLOCK 0x0002041E
150
#define KBD_SAMI_EXTENDED_FINLAND_SWEDEN 0x0002083B
151
#define KBD_GREEK_220_LATIN 0x00030408
152
#define KBD_UNITED_STATES_DVORAK_FOR_LEFT_HAND 0x00030409
153
#define KBD_THAI_PATTACHOTE_NON_SHIFTLOCK 0x0003041E
154
#define KBD_GREEK_319_LATIN 0x00040408
155
#define KBD_UNITED_STATES_DVORAK_FOR_RIGHT_HAND 0x00040409
156
#define KBD_GREEK_LATIN 0x00050408
157
#define KBD_US_ENGLISH_TABLE_FOR_IBM_ARABIC_238_L 0x00050409
158
#define KBD_GREEK_POLYTONIC 0x00060408
159
#define KBD_GERMAN_NEO 0xB0000407
161
/* Global Input Method Editor (IME) IDs */
163
#define KBD_CHINESE_TRADITIONAL_PHONETIC 0xE0010404
164
#define KBD_JAPANESE_INPUT_SYSTEM_MS_IME2002 0xE0010411
165
#define KBD_KOREAN_INPUT_SYSTEM_IME_2000 0xE0010412
166
#define KBD_CHINESE_SIMPLIFIED_QUANPIN 0xE0010804
167
#define KBD_CHINESE_TRADITIONAL_CHANGJIE 0xE0020404
168
#define KBD_CHINESE_SIMPLIFIED_SHUANGPIN 0xE0020804
169
#define KBD_CHINESE_TRADITIONAL_QUICK 0xE0030404
170
#define KBD_CHINESE_SIMPLIFIED_ZHENGMA 0xE0030804
171
#define KBD_CHINESE_TRADITIONAL_BIG5_CODE 0xE0040404
172
#define KBD_CHINESE_TRADITIONAL_ARRAY 0xE0050404
173
#define KBD_CHINESE_SIMPLIFIED_NEIMA 0xE0050804
174
#define KBD_CHINESE_TRADITIONAL_DAYI 0xE0060404
175
#define KBD_CHINESE_TRADITIONAL_UNICODE 0xE0070404
176
#define KBD_CHINESE_TRADITIONAL_NEW_PHONETIC 0xE0080404
177
#define KBD_CHINESE_TRADITIONAL_NEW_CHANGJIE 0xE0090404
178
#define KBD_CHINESE_TRADITIONAL_MICROSOFT_PINYIN_IME_3 0xE00E0804
179
#define KBD_CHINESE_TRADITIONAL_ALPHANUMERIC 0xE00F0404
181
FREERDP_API rdpKeyboardLayout* get_keyboard_layouts(int types);
182
FREERDP_API const char* get_layout_name(uint32 keyboardLayoutID);