1 /* 2 (c) Copyright 2001-2009 The world wide DirectFB Open Source Community (directfb.org) 3 (c) Copyright 2000-2004 Convergence (integrated media) GmbH 4 5 All rights reserved. 6 7 Written by Denis Oliver Kropp <dok@directfb.org>, 8 Andreas Hundt <andi@fischlustig.de>, 9 Sven Neumann <neo@directfb.org>, 10 Ville Syrjälä <syrjala@sci.fi> and 11 Claudio Ciccani <klan@users.sf.net>. 12 13 This library is free software; you can redistribute it and/or 14 modify it under the terms of the GNU Lesser General Public 15 License as published by the Free Software Foundation; either 16 version 2 of the License, or (at your option) any later version. 17 18 This library is distributed in the hope that it will be useful, 19 but WITHOUT ANY WARRANTY; without even the implied warranty of 20 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 21 Lesser General Public License for more details. 22 23 You should have received a copy of the GNU Lesser General Public 24 License along with this library; if not, write to the 25 Free Software Foundation, Inc., 59 Temple Place - Suite 330, 26 Boston, MA 02111-1307, USA. 27 */ 28 29 #ifndef __DIRECTFB_KEYBOARD_H__ 30 #define __DIRECTFB_KEYBOARD_H__ 31 32 #ifdef __cplusplus 33 extern "C" 34 { 35 #endif 36 37 38 /* 39 * DirectFB key types (for advanced mapping) 40 */ 41 typedef enum { 42 DIKT_UNICODE = 0x0000, /* Unicode 3.x character 43 (compatible to Latin-1) */ 44 DIKT_SPECIAL = 0xF000, /* Special key (e.g. Cursor Up or Menu) */ 45 DIKT_FUNCTION = 0xF100, /* Function key (F1 - Fn) */ 46 DIKT_MODIFIER = 0xF200, /* Modifier key */ 47 DIKT_LOCK = 0xF300, /* Lock key (e.g. CapsLock) */ 48 DIKT_DEAD = 0xF400, /* Dead key (e.g. dead grave) */ 49 DIKT_CUSTOM = 0xF500, /* Custom key (vendor specific) */ 50 DIKT_IDENTIFIER = 0xF600 /* DirectFB key identifier */ 51 } DFBInputDeviceKeyType; 52 53 #define DFB_KEY(type,index) ((DIKT_##type) | (index)) 54 55 #define DFB_KEY_TYPE(symbol) ((((symbol) & ~0xFFF) == 0xF000) ? (symbol) & 0xFF00 : DIKT_UNICODE) 56 #define DFB_KEY_INDEX(symbol) ((symbol) & 0x00FF) 57 58 #define DFB_KEY_IS_ASCII(symbol) ((symbol) < 128) 59 60 #define DFB_FUNCTION_KEY(n) (DFB_KEY( FUNCTION, n )) 61 #define DFB_MODIFIER_KEY(i) (DFB_KEY( MODIFIER, (1 << i) )) 62 #define DFB_CUSTOM_KEY(n) (DFB_KEY( CUSTOM, n )) 63 64 #define DFB_LOWER_CASE(symbol) (((symbol) >= 'A' && (symbol) <= 'Z') ?\ 65 ((symbol) | 0x20) : (symbol)) 66 #define DFB_UPPER_CASE(symbol) (((symbol) >= 'a' && (symbol) <= 'z') ?\ 67 ((symbol) & ~0x20) : (symbol)) 68 69 /* 70 * DirectFB modifier key identifiers (for advanced mapping) 71 */ 72 typedef enum { 73 DIMKI_SHIFT, /* Shift modifier key */ 74 DIMKI_CONTROL, /* Control modifier key */ 75 DIMKI_ALT, /* Alt modifier key */ 76 DIMKI_ALTGR, /* AltGr modifier key */ 77 DIMKI_META, /* Meta modifier key */ 78 DIMKI_SUPER, /* Super modifier key */ 79 DIMKI_HYPER, /* Hyper modifier key */ 80 81 DIMKI_FIRST = DIMKI_SHIFT, 82 DIMKI_LAST = DIMKI_HYPER 83 } DFBInputDeviceModifierKeyIdentifier; 84 85 /* 86 * DirectFB key identifiers (for basic mapping) 87 */ 88 typedef enum { 89 DIKI_UNKNOWN = DFB_KEY( IDENTIFIER, 0 ), 90 91 DIKI_A, 92 DIKI_B, 93 DIKI_C, 94 DIKI_D, 95 DIKI_E, 96 DIKI_F, 97 DIKI_G, 98 DIKI_H, 99 DIKI_I, 100 DIKI_J, 101 DIKI_K, 102 DIKI_L, 103 DIKI_M, 104 DIKI_N, 105 DIKI_O, 106 DIKI_P, 107 DIKI_Q, 108 DIKI_R, 109 DIKI_S, 110 DIKI_T, 111 DIKI_U, 112 DIKI_V, 113 DIKI_W, 114 DIKI_X, 115 DIKI_Y, 116 DIKI_Z, 117 118 DIKI_0, 119 DIKI_1, 120 DIKI_2, 121 DIKI_3, 122 DIKI_4, 123 DIKI_5, 124 DIKI_6, 125 DIKI_7, 126 DIKI_8, 127 DIKI_9, 128 129 DIKI_F1, 130 DIKI_F2, 131 DIKI_F3, 132 DIKI_F4, 133 DIKI_F5, 134 DIKI_F6, 135 DIKI_F7, 136 DIKI_F8, 137 DIKI_F9, 138 DIKI_F10, 139 DIKI_F11, 140 DIKI_F12, 141 142 DIKI_SHIFT_L, 143 DIKI_SHIFT_R, 144 DIKI_CONTROL_L, 145 DIKI_CONTROL_R, 146 DIKI_ALT_L, 147 DIKI_ALT_R, 148 DIKI_META_L, 149 DIKI_META_R, 150 DIKI_SUPER_L, 151 DIKI_SUPER_R, 152 DIKI_HYPER_L, 153 DIKI_HYPER_R, 154 155 DIKI_CAPS_LOCK, 156 DIKI_NUM_LOCK, 157 DIKI_SCROLL_LOCK, 158 159 DIKI_ESCAPE, 160 DIKI_LEFT, 161 DIKI_RIGHT, 162 DIKI_UP, 163 DIKI_DOWN, 164 DIKI_TAB, 165 DIKI_ENTER, 166 DIKI_SPACE, 167 DIKI_BACKSPACE, 168 DIKI_INSERT, 169 DIKI_DELETE, 170 DIKI_HOME, 171 DIKI_END, 172 DIKI_PAGE_UP, 173 DIKI_PAGE_DOWN, 174 DIKI_PRINT, 175 DIKI_PAUSE, 176 177 /* The labels on these keys depend on the type of keyboard. 178 * We've choosen the names from a US keyboard layout. The 179 * comments refer to the ISO 9995 terminology. 180 */ 181 DIKI_QUOTE_LEFT, /* TLDE */ 182 DIKI_MINUS_SIGN, /* AE11 */ 183 DIKI_EQUALS_SIGN, /* AE12 */ 184 DIKI_BRACKET_LEFT, /* AD11 */ 185 DIKI_BRACKET_RIGHT, /* AD12 */ 186 DIKI_BACKSLASH, /* BKSL */ 187 DIKI_SEMICOLON, /* AC10 */ 188 DIKI_QUOTE_RIGHT, /* AC11 */ 189 DIKI_COMMA, /* AB08 */ 190 DIKI_PERIOD, /* AB09 */ 191 DIKI_SLASH, /* AB10 */ 192 193 DIKI_LESS_SIGN, /* 103rd */ 194 195 DIKI_KP_DIV, 196 DIKI_KP_MULT, 197 DIKI_KP_MINUS, 198 DIKI_KP_PLUS, 199 DIKI_KP_ENTER, 200 DIKI_KP_SPACE, 201 DIKI_KP_TAB, 202 DIKI_KP_F1, 203 DIKI_KP_F2, 204 DIKI_KP_F3, 205 DIKI_KP_F4, 206 DIKI_KP_EQUAL, 207 DIKI_KP_SEPARATOR, 208 209 DIKI_KP_DECIMAL, 210 DIKI_KP_0, 211 DIKI_KP_1, 212 DIKI_KP_2, 213 DIKI_KP_3, 214 DIKI_KP_4, 215 DIKI_KP_5, 216 DIKI_KP_6, 217 DIKI_KP_7, 218 DIKI_KP_8, 219 DIKI_KP_9, 220 221 DIKI_KEYDEF_END, 222 DIKI_NUMBER_OF_KEYS = DIKI_KEYDEF_END - DFB_KEY( IDENTIFIER, 0 ) 223 224 } DFBInputDeviceKeyIdentifier; 225 226 /* 227 * DirectFB key symbols (for advanced mapping) 228 */ 229 typedef enum { 230 /* 231 * Unicode excerpt - Controls and Basic Latin 232 * 233 * Any Unicode 3.x character can be used as a DirectFB key symbol, 234 * the values of this enum are compatible with Unicode. 235 */ 236 DIKS_NULL = DFB_KEY( UNICODE, 0x00 ), 237 DIKS_BACKSPACE = DFB_KEY( UNICODE, 0x08 ), 238 DIKS_TAB = DFB_KEY( UNICODE, 0x09 ), 239 DIKS_RETURN = DFB_KEY( UNICODE, 0x0D ), 240 DIKS_CANCEL = DFB_KEY( UNICODE, 0x18 ), 241 DIKS_ESCAPE = DFB_KEY( UNICODE, 0x1B ), 242 DIKS_SPACE = DFB_KEY( UNICODE, 0x20 ), 243 DIKS_EXCLAMATION_MARK = DFB_KEY( UNICODE, 0x21 ), 244 DIKS_QUOTATION = DFB_KEY( UNICODE, 0x22 ), 245 DIKS_NUMBER_SIGN = DFB_KEY( UNICODE, 0x23 ), 246 DIKS_DOLLAR_SIGN = DFB_KEY( UNICODE, 0x24 ), 247 DIKS_PERCENT_SIGN = DFB_KEY( UNICODE, 0x25 ), 248 DIKS_AMPERSAND = DFB_KEY( UNICODE, 0x26 ), 249 DIKS_APOSTROPHE = DFB_KEY( UNICODE, 0x27 ), 250 DIKS_PARENTHESIS_LEFT = DFB_KEY( UNICODE, 0x28 ), 251 DIKS_PARENTHESIS_RIGHT = DFB_KEY( UNICODE, 0x29 ), 252 DIKS_ASTERISK = DFB_KEY( UNICODE, 0x2A ), 253 DIKS_PLUS_SIGN = DFB_KEY( UNICODE, 0x2B ), 254 DIKS_COMMA = DFB_KEY( UNICODE, 0x2C ), 255 DIKS_MINUS_SIGN = DFB_KEY( UNICODE, 0x2D ), 256 DIKS_PERIOD = DFB_KEY( UNICODE, 0x2E ), 257 DIKS_SLASH = DFB_KEY( UNICODE, 0x2F ), 258 DIKS_0 = DFB_KEY( UNICODE, 0x30 ), 259 DIKS_1 = DFB_KEY( UNICODE, 0x31 ), 260 DIKS_2 = DFB_KEY( UNICODE, 0x32 ), 261 DIKS_3 = DFB_KEY( UNICODE, 0x33 ), 262 DIKS_4 = DFB_KEY( UNICODE, 0x34 ), 263 DIKS_5 = DFB_KEY( UNICODE, 0x35 ), 264 DIKS_6 = DFB_KEY( UNICODE, 0x36 ), 265 DIKS_7 = DFB_KEY( UNICODE, 0x37 ), 266 DIKS_8 = DFB_KEY( UNICODE, 0x38 ), 267 DIKS_9 = DFB_KEY( UNICODE, 0x39 ), 268 DIKS_COLON = DFB_KEY( UNICODE, 0x3A ), 269 DIKS_SEMICOLON = DFB_KEY( UNICODE, 0x3B ), 270 DIKS_LESS_THAN_SIGN = DFB_KEY( UNICODE, 0x3C ), 271 DIKS_EQUALS_SIGN = DFB_KEY( UNICODE, 0x3D ), 272 DIKS_GREATER_THAN_SIGN = DFB_KEY( UNICODE, 0x3E ), 273 DIKS_QUESTION_MARK = DFB_KEY( UNICODE, 0x3F ), 274 DIKS_AT = DFB_KEY( UNICODE, 0x40 ), 275 DIKS_CAPITAL_A = DFB_KEY( UNICODE, 0x41 ), 276 DIKS_CAPITAL_B = DFB_KEY( UNICODE, 0x42 ), 277 DIKS_CAPITAL_C = DFB_KEY( UNICODE, 0x43 ), 278 DIKS_CAPITAL_D = DFB_KEY( UNICODE, 0x44 ), 279 DIKS_CAPITAL_E = DFB_KEY( UNICODE, 0x45 ), 280 DIKS_CAPITAL_F = DFB_KEY( UNICODE, 0x46 ), 281 DIKS_CAPITAL_G = DFB_KEY( UNICODE, 0x47 ), 282 DIKS_CAPITAL_H = DFB_KEY( UNICODE, 0x48 ), 283 DIKS_CAPITAL_I = DFB_KEY( UNICODE, 0x49 ), 284 DIKS_CAPITAL_J = DFB_KEY( UNICODE, 0x4A ), 285 DIKS_CAPITAL_K = DFB_KEY( UNICODE, 0x4B ), 286 DIKS_CAPITAL_L = DFB_KEY( UNICODE, 0x4C ), 287 DIKS_CAPITAL_M = DFB_KEY( UNICODE, 0x4D ), 288 DIKS_CAPITAL_N = DFB_KEY( UNICODE, 0x4E ), 289 DIKS_CAPITAL_O = DFB_KEY( UNICODE, 0x4F ), 290 DIKS_CAPITAL_P = DFB_KEY( UNICODE, 0x50 ), 291 DIKS_CAPITAL_Q = DFB_KEY( UNICODE, 0x51 ), 292 DIKS_CAPITAL_R = DFB_KEY( UNICODE, 0x52 ), 293 DIKS_CAPITAL_S = DFB_KEY( UNICODE, 0x53 ), 294 DIKS_CAPITAL_T = DFB_KEY( UNICODE, 0x54 ), 295 DIKS_CAPITAL_U = DFB_KEY( UNICODE, 0x55 ), 296 DIKS_CAPITAL_V = DFB_KEY( UNICODE, 0x56 ), 297 DIKS_CAPITAL_W = DFB_KEY( UNICODE, 0x57 ), 298 DIKS_CAPITAL_X = DFB_KEY( UNICODE, 0x58 ), 299 DIKS_CAPITAL_Y = DFB_KEY( UNICODE, 0x59 ), 300 DIKS_CAPITAL_Z = DFB_KEY( UNICODE, 0x5A ), 301 DIKS_SQUARE_BRACKET_LEFT = DFB_KEY( UNICODE, 0x5B ), 302 DIKS_BACKSLASH = DFB_KEY( UNICODE, 0x5C ), 303 DIKS_SQUARE_BRACKET_RIGHT = DFB_KEY( UNICODE, 0x5D ), 304 DIKS_CIRCUMFLEX_ACCENT = DFB_KEY( UNICODE, 0x5E ), 305 DIKS_UNDERSCORE = DFB_KEY( UNICODE, 0x5F ), 306 DIKS_GRAVE_ACCENT = DFB_KEY( UNICODE, 0x60 ), 307 DIKS_SMALL_A = DFB_KEY( UNICODE, 0x61 ), 308 DIKS_SMALL_B = DFB_KEY( UNICODE, 0x62 ), 309 DIKS_SMALL_C = DFB_KEY( UNICODE, 0x63 ), 310 DIKS_SMALL_D = DFB_KEY( UNICODE, 0x64 ), 311 DIKS_SMALL_E = DFB_KEY( UNICODE, 0x65 ), 312 DIKS_SMALL_F = DFB_KEY( UNICODE, 0x66 ), 313 DIKS_SMALL_G = DFB_KEY( UNICODE, 0x67 ), 314 DIKS_SMALL_H = DFB_KEY( UNICODE, 0x68 ), 315 DIKS_SMALL_I = DFB_KEY( UNICODE, 0x69 ), 316 DIKS_SMALL_J = DFB_KEY( UNICODE, 0x6A ), 317 DIKS_SMALL_K = DFB_KEY( UNICODE, 0x6B ), 318 DIKS_SMALL_L = DFB_KEY( UNICODE, 0x6C ), 319 DIKS_SMALL_M = DFB_KEY( UNICODE, 0x6D ), 320 DIKS_SMALL_N = DFB_KEY( UNICODE, 0x6E ), 321 DIKS_SMALL_O = DFB_KEY( UNICODE, 0x6F ), 322 DIKS_SMALL_P = DFB_KEY( UNICODE, 0x70 ), 323 DIKS_SMALL_Q = DFB_KEY( UNICODE, 0x71 ), 324 DIKS_SMALL_R = DFB_KEY( UNICODE, 0x72 ), 325 DIKS_SMALL_S = DFB_KEY( UNICODE, 0x73 ), 326 DIKS_SMALL_T = DFB_KEY( UNICODE, 0x74 ), 327 DIKS_SMALL_U = DFB_KEY( UNICODE, 0x75 ), 328 DIKS_SMALL_V = DFB_KEY( UNICODE, 0x76 ), 329 DIKS_SMALL_W = DFB_KEY( UNICODE, 0x77 ), 330 DIKS_SMALL_X = DFB_KEY( UNICODE, 0x78 ), 331 DIKS_SMALL_Y = DFB_KEY( UNICODE, 0x79 ), 332 DIKS_SMALL_Z = DFB_KEY( UNICODE, 0x7A ), 333 DIKS_CURLY_BRACKET_LEFT = DFB_KEY( UNICODE, 0x7B ), 334 DIKS_VERTICAL_BAR = DFB_KEY( UNICODE, 0x7C ), 335 DIKS_CURLY_BRACKET_RIGHT = DFB_KEY( UNICODE, 0x7D ), 336 DIKS_TILDE = DFB_KEY( UNICODE, 0x7E ), 337 DIKS_DELETE = DFB_KEY( UNICODE, 0x7F ), 338 339 DIKS_ENTER = DIKS_RETURN, 340 341 /* 342 * Unicode private area - DirectFB Special keys 343 */ 344 DIKS_CURSOR_LEFT = DFB_KEY( SPECIAL, 0x00 ), 345 DIKS_CURSOR_RIGHT = DFB_KEY( SPECIAL, 0x01 ), 346 DIKS_CURSOR_UP = DFB_KEY( SPECIAL, 0x02 ), 347 DIKS_CURSOR_DOWN = DFB_KEY( SPECIAL, 0x03 ), 348 DIKS_INSERT = DFB_KEY( SPECIAL, 0x04 ), 349 DIKS_HOME = DFB_KEY( SPECIAL, 0x05 ), 350 DIKS_END = DFB_KEY( SPECIAL, 0x06 ), 351 DIKS_PAGE_UP = DFB_KEY( SPECIAL, 0x07 ), 352 DIKS_PAGE_DOWN = DFB_KEY( SPECIAL, 0x08 ), 353 DIKS_PRINT = DFB_KEY( SPECIAL, 0x09 ), 354 DIKS_PAUSE = DFB_KEY( SPECIAL, 0x0A ), 355 DIKS_OK = DFB_KEY( SPECIAL, 0x0B ), 356 DIKS_SELECT = DFB_KEY( SPECIAL, 0x0C ), 357 DIKS_GOTO = DFB_KEY( SPECIAL, 0x0D ), 358 DIKS_CLEAR = DFB_KEY( SPECIAL, 0x0E ), 359 DIKS_POWER = DFB_KEY( SPECIAL, 0x0F ), 360 DIKS_POWER2 = DFB_KEY( SPECIAL, 0x10 ), 361 DIKS_OPTION = DFB_KEY( SPECIAL, 0x11 ), 362 DIKS_MENU = DFB_KEY( SPECIAL, 0x12 ), 363 DIKS_HELP = DFB_KEY( SPECIAL, 0x13 ), 364 DIKS_INFO = DFB_KEY( SPECIAL, 0x14 ), 365 DIKS_TIME = DFB_KEY( SPECIAL, 0x15 ), 366 DIKS_VENDOR = DFB_KEY( SPECIAL, 0x16 ), 367 368 DIKS_ARCHIVE = DFB_KEY( SPECIAL, 0x17 ), 369 DIKS_PROGRAM = DFB_KEY( SPECIAL, 0x18 ), 370 DIKS_CHANNEL = DFB_KEY( SPECIAL, 0x19 ), 371 DIKS_FAVORITES = DFB_KEY( SPECIAL, 0x1A ), 372 DIKS_EPG = DFB_KEY( SPECIAL, 0x1B ), 373 DIKS_PVR = DFB_KEY( SPECIAL, 0x1C ), 374 DIKS_MHP = DFB_KEY( SPECIAL, 0x1D ), 375 DIKS_LANGUAGE = DFB_KEY( SPECIAL, 0x1E ), 376 DIKS_TITLE = DFB_KEY( SPECIAL, 0x1F ), 377 DIKS_SUBTITLE = DFB_KEY( SPECIAL, 0x20 ), 378 DIKS_ANGLE = DFB_KEY( SPECIAL, 0x21 ), 379 DIKS_ZOOM = DFB_KEY( SPECIAL, 0x22 ), 380 DIKS_MODE = DFB_KEY( SPECIAL, 0x23 ), 381 DIKS_KEYBOARD = DFB_KEY( SPECIAL, 0x24 ), 382 DIKS_PC = DFB_KEY( SPECIAL, 0x25 ), 383 DIKS_SCREEN = DFB_KEY( SPECIAL, 0x26 ), 384 385 DIKS_TV = DFB_KEY( SPECIAL, 0x27 ), 386 DIKS_TV2 = DFB_KEY( SPECIAL, 0x28 ), 387 DIKS_VCR = DFB_KEY( SPECIAL, 0x29 ), 388 DIKS_VCR2 = DFB_KEY( SPECIAL, 0x2A ), 389 DIKS_SAT = DFB_KEY( SPECIAL, 0x2B ), 390 DIKS_SAT2 = DFB_KEY( SPECIAL, 0x2C ), 391 DIKS_CD = DFB_KEY( SPECIAL, 0x2D ), 392 DIKS_TAPE = DFB_KEY( SPECIAL, 0x2E ), 393 DIKS_RADIO = DFB_KEY( SPECIAL, 0x2F ), 394 DIKS_TUNER = DFB_KEY( SPECIAL, 0x30 ), 395 DIKS_PLAYER = DFB_KEY( SPECIAL, 0x31 ), 396 DIKS_TEXT = DFB_KEY( SPECIAL, 0x32 ), 397 DIKS_DVD = DFB_KEY( SPECIAL, 0x33 ), 398 DIKS_AUX = DFB_KEY( SPECIAL, 0x34 ), 399 DIKS_MP3 = DFB_KEY( SPECIAL, 0x35 ), 400 DIKS_PHONE = DFB_KEY( SPECIAL, 0x36 ), 401 DIKS_AUDIO = DFB_KEY( SPECIAL, 0x37 ), 402 DIKS_VIDEO = DFB_KEY( SPECIAL, 0x38 ), 403 404 DIKS_INTERNET = DFB_KEY( SPECIAL, 0x39 ), 405 DIKS_MAIL = DFB_KEY( SPECIAL, 0x3A ), 406 DIKS_NEWS = DFB_KEY( SPECIAL, 0x3B ), 407 DIKS_DIRECTORY = DFB_KEY( SPECIAL, 0x3C ), 408 DIKS_LIST = DFB_KEY( SPECIAL, 0x3D ), 409 DIKS_CALCULATOR = DFB_KEY( SPECIAL, 0x3E ), 410 DIKS_MEMO = DFB_KEY( SPECIAL, 0x3F ), 411 DIKS_CALENDAR = DFB_KEY( SPECIAL, 0x40 ), 412 DIKS_EDITOR = DFB_KEY( SPECIAL, 0x41 ), 413 414 DIKS_RED = DFB_KEY( SPECIAL, 0x42 ), 415 DIKS_GREEN = DFB_KEY( SPECIAL, 0x43 ), 416 DIKS_YELLOW = DFB_KEY( SPECIAL, 0x44 ), 417 DIKS_BLUE = DFB_KEY( SPECIAL, 0x45 ), 418 419 DIKS_CHANNEL_UP = DFB_KEY( SPECIAL, 0x46 ), 420 DIKS_CHANNEL_DOWN = DFB_KEY( SPECIAL, 0x47 ), 421 DIKS_BACK = DFB_KEY( SPECIAL, 0x48 ), 422 DIKS_FORWARD = DFB_KEY( SPECIAL, 0x49 ), 423 DIKS_FIRST = DFB_KEY( SPECIAL, 0x4A ), 424 DIKS_LAST = DFB_KEY( SPECIAL, 0x4B ), 425 DIKS_VOLUME_UP = DFB_KEY( SPECIAL, 0x4C ), 426 DIKS_VOLUME_DOWN = DFB_KEY( SPECIAL, 0x4D ), 427 DIKS_MUTE = DFB_KEY( SPECIAL, 0x4E ), 428 DIKS_AB = DFB_KEY( SPECIAL, 0x4F ), 429 DIKS_PLAYPAUSE = DFB_KEY( SPECIAL, 0x50 ), 430 DIKS_PLAY = DFB_KEY( SPECIAL, 0x51 ), 431 DIKS_STOP = DFB_KEY( SPECIAL, 0x52 ), 432 DIKS_RESTART = DFB_KEY( SPECIAL, 0x53 ), 433 DIKS_SLOW = DFB_KEY( SPECIAL, 0x54 ), 434 DIKS_FAST = DFB_KEY( SPECIAL, 0x55 ), 435 DIKS_RECORD = DFB_KEY( SPECIAL, 0x56 ), 436 DIKS_EJECT = DFB_KEY( SPECIAL, 0x57 ), 437 DIKS_SHUFFLE = DFB_KEY( SPECIAL, 0x58 ), 438 DIKS_REWIND = DFB_KEY( SPECIAL, 0x59 ), 439 DIKS_FASTFORWARD = DFB_KEY( SPECIAL, 0x5A ), 440 DIKS_PREVIOUS = DFB_KEY( SPECIAL, 0x5B ), 441 DIKS_NEXT = DFB_KEY( SPECIAL, 0x5C ), 442 DIKS_BEGIN = DFB_KEY( SPECIAL, 0x5D ), 443 444 DIKS_DIGITS = DFB_KEY( SPECIAL, 0x5E ), 445 DIKS_TEEN = DFB_KEY( SPECIAL, 0x5F ), 446 DIKS_TWEN = DFB_KEY( SPECIAL, 0x60 ), 447 448 DIKS_BREAK = DFB_KEY( SPECIAL, 0x61 ), 449 DIKS_EXIT = DFB_KEY( SPECIAL, 0x62 ), 450 DIKS_SETUP = DFB_KEY( SPECIAL, 0x63 ), 451 452 DIKS_CURSOR_LEFT_UP = DFB_KEY( SPECIAL, 0x64 ), 453 DIKS_CURSOR_LEFT_DOWN = DFB_KEY( SPECIAL, 0x65 ), 454 DIKS_CURSOR_UP_RIGHT = DFB_KEY( SPECIAL, 0x66 ), 455 DIKS_CURSOR_DOWN_RIGHT = DFB_KEY( SPECIAL, 0x67 ), 456 457 /* 458 * Unicode private area - DirectFB Function keys 459 * 460 * More function keys are available via DFB_FUNCTION_KEY(n). 461 */ 462 DIKS_F1 = DFB_FUNCTION_KEY( 1 ), 463 DIKS_F2 = DFB_FUNCTION_KEY( 2 ), 464 DIKS_F3 = DFB_FUNCTION_KEY( 3 ), 465 DIKS_F4 = DFB_FUNCTION_KEY( 4 ), 466 DIKS_F5 = DFB_FUNCTION_KEY( 5 ), 467 DIKS_F6 = DFB_FUNCTION_KEY( 6 ), 468 DIKS_F7 = DFB_FUNCTION_KEY( 7 ), 469 DIKS_F8 = DFB_FUNCTION_KEY( 8 ), 470 DIKS_F9 = DFB_FUNCTION_KEY( 9 ), 471 DIKS_F10 = DFB_FUNCTION_KEY( 10 ), 472 DIKS_F11 = DFB_FUNCTION_KEY( 11 ), 473 DIKS_F12 = DFB_FUNCTION_KEY( 12 ), 474 475 /* 476 * Unicode private area - DirectFB Modifier keys 477 */ 478 DIKS_SHIFT = DFB_MODIFIER_KEY( DIMKI_SHIFT ), 479 DIKS_CONTROL = DFB_MODIFIER_KEY( DIMKI_CONTROL ), 480 DIKS_ALT = DFB_MODIFIER_KEY( DIMKI_ALT ), 481 DIKS_ALTGR = DFB_MODIFIER_KEY( DIMKI_ALTGR ), 482 DIKS_META = DFB_MODIFIER_KEY( DIMKI_META ), 483 DIKS_SUPER = DFB_MODIFIER_KEY( DIMKI_SUPER ), 484 DIKS_HYPER = DFB_MODIFIER_KEY( DIMKI_HYPER ), 485 486 /* 487 * Unicode private area - DirectFB Lock keys 488 */ 489 DIKS_CAPS_LOCK = DFB_KEY( LOCK, 0x00 ), 490 DIKS_NUM_LOCK = DFB_KEY( LOCK, 0x01 ), 491 DIKS_SCROLL_LOCK = DFB_KEY( LOCK, 0x02 ), 492 493 /* 494 * Unicode private area - DirectFB Dead keys 495 */ 496 DIKS_DEAD_ABOVEDOT = DFB_KEY( DEAD, 0x00 ), 497 DIKS_DEAD_ABOVERING = DFB_KEY( DEAD, 0x01 ), 498 DIKS_DEAD_ACUTE = DFB_KEY( DEAD, 0x02 ), 499 DIKS_DEAD_BREVE = DFB_KEY( DEAD, 0x03 ), 500 DIKS_DEAD_CARON = DFB_KEY( DEAD, 0x04 ), 501 DIKS_DEAD_CEDILLA = DFB_KEY( DEAD, 0x05 ), 502 DIKS_DEAD_CIRCUMFLEX = DFB_KEY( DEAD, 0x06 ), 503 DIKS_DEAD_DIAERESIS = DFB_KEY( DEAD, 0x07 ), 504 DIKS_DEAD_DOUBLEACUTE = DFB_KEY( DEAD, 0x08 ), 505 DIKS_DEAD_GRAVE = DFB_KEY( DEAD, 0x09 ), 506 DIKS_DEAD_IOTA = DFB_KEY( DEAD, 0x0A ), 507 DIKS_DEAD_MACRON = DFB_KEY( DEAD, 0x0B ), 508 DIKS_DEAD_OGONEK = DFB_KEY( DEAD, 0x0C ), 509 DIKS_DEAD_SEMIVOICED_SOUND = DFB_KEY( DEAD, 0x0D ), 510 DIKS_DEAD_TILDE = DFB_KEY( DEAD, 0x0E ), 511 DIKS_DEAD_VOICED_SOUND = DFB_KEY( DEAD, 0x0F ), 512 513 /* 514 * Unicode private area - DirectFB Custom keys 515 * 516 * More custom keys are available via DFB_CUSTOM_KEY(n). 517 */ 518 DIKS_CUSTOM0 = DFB_CUSTOM_KEY( 0 ), 519 DIKS_CUSTOM1 = DFB_CUSTOM_KEY( 1 ), 520 DIKS_CUSTOM2 = DFB_CUSTOM_KEY( 2 ), 521 DIKS_CUSTOM3 = DFB_CUSTOM_KEY( 3 ), 522 DIKS_CUSTOM4 = DFB_CUSTOM_KEY( 4 ), 523 DIKS_CUSTOM5 = DFB_CUSTOM_KEY( 5 ), 524 DIKS_CUSTOM6 = DFB_CUSTOM_KEY( 6 ), 525 DIKS_CUSTOM7 = DFB_CUSTOM_KEY( 7 ), 526 DIKS_CUSTOM8 = DFB_CUSTOM_KEY( 8 ), 527 DIKS_CUSTOM9 = DFB_CUSTOM_KEY( 9 ), 528 DIKS_CUSTOM10 = DFB_CUSTOM_KEY( 10 ), 529 DIKS_CUSTOM11 = DFB_CUSTOM_KEY( 11 ), 530 DIKS_CUSTOM12 = DFB_CUSTOM_KEY( 12 ), 531 DIKS_CUSTOM13 = DFB_CUSTOM_KEY( 13 ), 532 DIKS_CUSTOM14 = DFB_CUSTOM_KEY( 14 ), 533 DIKS_CUSTOM15 = DFB_CUSTOM_KEY( 15 ), 534 DIKS_CUSTOM16 = DFB_CUSTOM_KEY( 16 ), 535 DIKS_CUSTOM17 = DFB_CUSTOM_KEY( 17 ), 536 DIKS_CUSTOM18 = DFB_CUSTOM_KEY( 18 ), 537 DIKS_CUSTOM19 = DFB_CUSTOM_KEY( 19 ), 538 DIKS_CUSTOM20 = DFB_CUSTOM_KEY( 20 ), 539 DIKS_CUSTOM21 = DFB_CUSTOM_KEY( 21 ), 540 DIKS_CUSTOM22 = DFB_CUSTOM_KEY( 22 ), 541 DIKS_CUSTOM23 = DFB_CUSTOM_KEY( 23 ), 542 DIKS_CUSTOM24 = DFB_CUSTOM_KEY( 24 ), 543 DIKS_CUSTOM25 = DFB_CUSTOM_KEY( 25 ), 544 DIKS_CUSTOM26 = DFB_CUSTOM_KEY( 26 ), 545 DIKS_CUSTOM27 = DFB_CUSTOM_KEY( 27 ), 546 DIKS_CUSTOM28 = DFB_CUSTOM_KEY( 28 ), 547 DIKS_CUSTOM29 = DFB_CUSTOM_KEY( 29 ), 548 DIKS_CUSTOM30 = DFB_CUSTOM_KEY( 30 ), 549 DIKS_CUSTOM31 = DFB_CUSTOM_KEY( 31 ), 550 DIKS_CUSTOM32 = DFB_CUSTOM_KEY( 32 ), 551 DIKS_CUSTOM33 = DFB_CUSTOM_KEY( 33 ), 552 DIKS_CUSTOM34 = DFB_CUSTOM_KEY( 34 ), 553 DIKS_CUSTOM35 = DFB_CUSTOM_KEY( 35 ), 554 DIKS_CUSTOM36 = DFB_CUSTOM_KEY( 36 ), 555 DIKS_CUSTOM37 = DFB_CUSTOM_KEY( 37 ), 556 DIKS_CUSTOM38 = DFB_CUSTOM_KEY( 38 ), 557 DIKS_CUSTOM39 = DFB_CUSTOM_KEY( 39 ), 558 DIKS_CUSTOM40 = DFB_CUSTOM_KEY( 40 ), 559 DIKS_CUSTOM41 = DFB_CUSTOM_KEY( 41 ), 560 DIKS_CUSTOM42 = DFB_CUSTOM_KEY( 42 ), 561 DIKS_CUSTOM43 = DFB_CUSTOM_KEY( 43 ), 562 DIKS_CUSTOM44 = DFB_CUSTOM_KEY( 44 ), 563 DIKS_CUSTOM45 = DFB_CUSTOM_KEY( 45 ), 564 DIKS_CUSTOM46 = DFB_CUSTOM_KEY( 46 ), 565 DIKS_CUSTOM47 = DFB_CUSTOM_KEY( 47 ), 566 DIKS_CUSTOM48 = DFB_CUSTOM_KEY( 48 ), 567 DIKS_CUSTOM49 = DFB_CUSTOM_KEY( 49 ), 568 DIKS_CUSTOM50 = DFB_CUSTOM_KEY( 50 ), 569 DIKS_CUSTOM51 = DFB_CUSTOM_KEY( 51 ), 570 DIKS_CUSTOM52 = DFB_CUSTOM_KEY( 52 ), 571 DIKS_CUSTOM53 = DFB_CUSTOM_KEY( 53 ), 572 DIKS_CUSTOM54 = DFB_CUSTOM_KEY( 54 ), 573 DIKS_CUSTOM55 = DFB_CUSTOM_KEY( 55 ), 574 DIKS_CUSTOM56 = DFB_CUSTOM_KEY( 56 ), 575 DIKS_CUSTOM57 = DFB_CUSTOM_KEY( 57 ), 576 DIKS_CUSTOM58 = DFB_CUSTOM_KEY( 58 ), 577 DIKS_CUSTOM59 = DFB_CUSTOM_KEY( 59 ), 578 DIKS_CUSTOM60 = DFB_CUSTOM_KEY( 60 ), 579 DIKS_CUSTOM61 = DFB_CUSTOM_KEY( 61 ), 580 DIKS_CUSTOM62 = DFB_CUSTOM_KEY( 62 ), 581 DIKS_CUSTOM63 = DFB_CUSTOM_KEY( 63 ), 582 DIKS_CUSTOM64 = DFB_CUSTOM_KEY( 64 ), 583 DIKS_CUSTOM65 = DFB_CUSTOM_KEY( 65 ), 584 DIKS_CUSTOM66 = DFB_CUSTOM_KEY( 66 ), 585 DIKS_CUSTOM67 = DFB_CUSTOM_KEY( 67 ), 586 DIKS_CUSTOM68 = DFB_CUSTOM_KEY( 68 ), 587 DIKS_CUSTOM69 = DFB_CUSTOM_KEY( 69 ), 588 DIKS_CUSTOM70 = DFB_CUSTOM_KEY( 70 ), 589 DIKS_CUSTOM71 = DFB_CUSTOM_KEY( 71 ), 590 DIKS_CUSTOM72 = DFB_CUSTOM_KEY( 72 ), 591 DIKS_CUSTOM73 = DFB_CUSTOM_KEY( 73 ), 592 DIKS_CUSTOM74 = DFB_CUSTOM_KEY( 74 ), 593 DIKS_CUSTOM75 = DFB_CUSTOM_KEY( 75 ), 594 DIKS_CUSTOM76 = DFB_CUSTOM_KEY( 76 ), 595 DIKS_CUSTOM77 = DFB_CUSTOM_KEY( 77 ), 596 DIKS_CUSTOM78 = DFB_CUSTOM_KEY( 78 ), 597 DIKS_CUSTOM79 = DFB_CUSTOM_KEY( 79 ), 598 DIKS_CUSTOM80 = DFB_CUSTOM_KEY( 80 ), 599 DIKS_CUSTOM81 = DFB_CUSTOM_KEY( 81 ), 600 DIKS_CUSTOM82 = DFB_CUSTOM_KEY( 82 ), 601 DIKS_CUSTOM83 = DFB_CUSTOM_KEY( 83 ), 602 DIKS_CUSTOM84 = DFB_CUSTOM_KEY( 84 ), 603 DIKS_CUSTOM85 = DFB_CUSTOM_KEY( 85 ), 604 DIKS_CUSTOM86 = DFB_CUSTOM_KEY( 86 ), 605 DIKS_CUSTOM87 = DFB_CUSTOM_KEY( 87 ), 606 DIKS_CUSTOM88 = DFB_CUSTOM_KEY( 88 ), 607 DIKS_CUSTOM89 = DFB_CUSTOM_KEY( 89 ), 608 DIKS_CUSTOM90 = DFB_CUSTOM_KEY( 90 ), 609 DIKS_CUSTOM91 = DFB_CUSTOM_KEY( 91 ), 610 DIKS_CUSTOM92 = DFB_CUSTOM_KEY( 92 ), 611 DIKS_CUSTOM93 = DFB_CUSTOM_KEY( 93 ), 612 DIKS_CUSTOM94 = DFB_CUSTOM_KEY( 94 ), 613 DIKS_CUSTOM95 = DFB_CUSTOM_KEY( 95 ), 614 DIKS_CUSTOM96 = DFB_CUSTOM_KEY( 96 ), 615 DIKS_CUSTOM97 = DFB_CUSTOM_KEY( 97 ), 616 DIKS_CUSTOM98 = DFB_CUSTOM_KEY( 98 ), 617 DIKS_CUSTOM99 = DFB_CUSTOM_KEY( 99 ), 618 DIKS_CUSTOM100 = DFB_CUSTOM_KEY( 100 ), 619 DIKS_CUSTOM101 = DFB_CUSTOM_KEY( 101 ), 620 DIKS_CUSTOM102 = DFB_CUSTOM_KEY( 102 ), 621 DIKS_CUSTOM103 = DFB_CUSTOM_KEY( 103 ), 622 DIKS_CUSTOM104 = DFB_CUSTOM_KEY( 104 ), 623 DIKS_CUSTOM105 = DFB_CUSTOM_KEY( 105 ), 624 DIKS_CUSTOM106 = DFB_CUSTOM_KEY( 106 ), 625 DIKS_CUSTOM107 = DFB_CUSTOM_KEY( 107 ), 626 DIKS_CUSTOM108 = DFB_CUSTOM_KEY( 108 ), 627 DIKS_CUSTOM109 = DFB_CUSTOM_KEY( 109 ), 628 DIKS_CUSTOM110 = DFB_CUSTOM_KEY( 110 ), 629 DIKS_CUSTOM111 = DFB_CUSTOM_KEY( 111 ), 630 DIKS_CUSTOM112 = DFB_CUSTOM_KEY( 112 ), 631 DIKS_CUSTOM113 = DFB_CUSTOM_KEY( 113 ), 632 DIKS_CUSTOM114 = DFB_CUSTOM_KEY( 114 ), 633 DIKS_CUSTOM115 = DFB_CUSTOM_KEY( 115 ), 634 DIKS_CUSTOM116 = DFB_CUSTOM_KEY( 116 ), 635 DIKS_CUSTOM117 = DFB_CUSTOM_KEY( 117 ), 636 DIKS_CUSTOM118 = DFB_CUSTOM_KEY( 118 ), 637 DIKS_CUSTOM119 = DFB_CUSTOM_KEY( 119 ), 638 DIKS_CUSTOM120 = DFB_CUSTOM_KEY( 120 ), 639 DIKS_CUSTOM121 = DFB_CUSTOM_KEY( 121 ), 640 DIKS_CUSTOM122 = DFB_CUSTOM_KEY( 122 ), 641 DIKS_CUSTOM123 = DFB_CUSTOM_KEY( 123 ), 642 DIKS_CUSTOM124 = DFB_CUSTOM_KEY( 124 ), 643 DIKS_CUSTOM125 = DFB_CUSTOM_KEY( 125 ), 644 DIKS_CUSTOM126 = DFB_CUSTOM_KEY( 126 ), 645 DIKS_CUSTOM127 = DFB_CUSTOM_KEY( 127 ), 646 DIKS_CUSTOM128 = DFB_CUSTOM_KEY( 128 ), 647 DIKS_CUSTOM129 = DFB_CUSTOM_KEY( 129 ), 648 DIKS_CUSTOM130 = DFB_CUSTOM_KEY( 130 ), 649 DIKS_CUSTOM131 = DFB_CUSTOM_KEY( 131 ), 650 DIKS_CUSTOM132 = DFB_CUSTOM_KEY( 132 ), 651 DIKS_CUSTOM133 = DFB_CUSTOM_KEY( 133 ), 652 DIKS_CUSTOM134 = DFB_CUSTOM_KEY( 134 ), 653 DIKS_CUSTOM135 = DFB_CUSTOM_KEY( 135 ), 654 DIKS_CUSTOM136 = DFB_CUSTOM_KEY( 136 ), 655 DIKS_CUSTOM137 = DFB_CUSTOM_KEY( 137 ), 656 DIKS_CUSTOM138 = DFB_CUSTOM_KEY( 138 ), 657 DIKS_CUSTOM139 = DFB_CUSTOM_KEY( 139 ), 658 DIKS_CUSTOM140 = DFB_CUSTOM_KEY( 140 ), 659 DIKS_CUSTOM141 = DFB_CUSTOM_KEY( 141 ), 660 DIKS_CUSTOM142 = DFB_CUSTOM_KEY( 142 ), 661 DIKS_CUSTOM143 = DFB_CUSTOM_KEY( 143 ), 662 DIKS_CUSTOM144 = DFB_CUSTOM_KEY( 144 ), 663 DIKS_CUSTOM145 = DFB_CUSTOM_KEY( 145 ), 664 DIKS_CUSTOM146 = DFB_CUSTOM_KEY( 146 ), 665 DIKS_CUSTOM147 = DFB_CUSTOM_KEY( 147 ), 666 DIKS_CUSTOM148 = DFB_CUSTOM_KEY( 148 ), 667 DIKS_CUSTOM149 = DFB_CUSTOM_KEY( 149 ), 668 DIKS_CUSTOM150 = DFB_CUSTOM_KEY( 150 ), 669 DIKS_CUSTOM151 = DFB_CUSTOM_KEY( 151 ), 670 DIKS_CUSTOM152 = DFB_CUSTOM_KEY( 152 ), 671 DIKS_CUSTOM153 = DFB_CUSTOM_KEY( 153 ), 672 DIKS_CUSTOM154 = DFB_CUSTOM_KEY( 154 ), 673 DIKS_CUSTOM155 = DFB_CUSTOM_KEY( 155 ), 674 DIKS_CUSTOM156 = DFB_CUSTOM_KEY( 156 ), 675 DIKS_CUSTOM157 = DFB_CUSTOM_KEY( 157 ), 676 DIKS_CUSTOM158 = DFB_CUSTOM_KEY( 158 ), 677 DIKS_CUSTOM159 = DFB_CUSTOM_KEY( 159 ), 678 DIKS_CUSTOM160 = DFB_CUSTOM_KEY( 160 ), 679 DIKS_CUSTOM161 = DFB_CUSTOM_KEY( 161 ), 680 DIKS_CUSTOM162 = DFB_CUSTOM_KEY( 162 ), 681 DIKS_CUSTOM163 = DFB_CUSTOM_KEY( 163 ), 682 DIKS_CUSTOM164 = DFB_CUSTOM_KEY( 164 ), 683 DIKS_CUSTOM165 = DFB_CUSTOM_KEY( 165 ), 684 DIKS_CUSTOM166 = DFB_CUSTOM_KEY( 166 ), 685 DIKS_CUSTOM167 = DFB_CUSTOM_KEY( 167 ), 686 DIKS_CUSTOM168 = DFB_CUSTOM_KEY( 168 ), 687 DIKS_CUSTOM169 = DFB_CUSTOM_KEY( 169 ), 688 DIKS_CUSTOM170 = DFB_CUSTOM_KEY( 170 ), 689 DIKS_CUSTOM171 = DFB_CUSTOM_KEY( 171 ), 690 DIKS_CUSTOM172 = DFB_CUSTOM_KEY( 172 ), 691 DIKS_CUSTOM173 = DFB_CUSTOM_KEY( 173 ), 692 DIKS_CUSTOM174 = DFB_CUSTOM_KEY( 174 ), 693 DIKS_CUSTOM175 = DFB_CUSTOM_KEY( 175 ), 694 DIKS_CUSTOM176 = DFB_CUSTOM_KEY( 176 ), 695 DIKS_CUSTOM177 = DFB_CUSTOM_KEY( 177 ), 696 DIKS_CUSTOM178 = DFB_CUSTOM_KEY( 178 ), 697 DIKS_CUSTOM179 = DFB_CUSTOM_KEY( 179 ), 698 DIKS_CUSTOM180 = DFB_CUSTOM_KEY( 180 ), 699 DIKS_CUSTOM181 = DFB_CUSTOM_KEY( 181 ), 700 DIKS_CUSTOM182 = DFB_CUSTOM_KEY( 182 ), 701 DIKS_CUSTOM183 = DFB_CUSTOM_KEY( 183 ), 702 DIKS_CUSTOM184 = DFB_CUSTOM_KEY( 184 ), 703 DIKS_CUSTOM185 = DFB_CUSTOM_KEY( 185 ), 704 DIKS_CUSTOM186 = DFB_CUSTOM_KEY( 186 ), 705 DIKS_CUSTOM187 = DFB_CUSTOM_KEY( 187 ), 706 DIKS_CUSTOM188 = DFB_CUSTOM_KEY( 188 ), 707 DIKS_CUSTOM189 = DFB_CUSTOM_KEY( 189 ), 708 DIKS_CUSTOM190 = DFB_CUSTOM_KEY( 190 ), 709 DIKS_CUSTOM191 = DFB_CUSTOM_KEY( 191 ), 710 DIKS_CUSTOM192 = DFB_CUSTOM_KEY( 192 ), 711 DIKS_CUSTOM193 = DFB_CUSTOM_KEY( 193 ), 712 DIKS_CUSTOM194 = DFB_CUSTOM_KEY( 194 ), 713 DIKS_CUSTOM195 = DFB_CUSTOM_KEY( 195 ), 714 DIKS_CUSTOM196 = DFB_CUSTOM_KEY( 196 ), 715 DIKS_CUSTOM197 = DFB_CUSTOM_KEY( 197 ), 716 DIKS_CUSTOM198 = DFB_CUSTOM_KEY( 198 ), 717 DIKS_CUSTOM199 = DFB_CUSTOM_KEY( 199 ), 718 DIKS_CUSTOM200 = DFB_CUSTOM_KEY( 200 ), 719 DIKS_CUSTOM201 = DFB_CUSTOM_KEY( 201 ), 720 DIKS_CUSTOM202 = DFB_CUSTOM_KEY( 202 ), 721 DIKS_CUSTOM203 = DFB_CUSTOM_KEY( 203 ), 722 DIKS_CUSTOM204 = DFB_CUSTOM_KEY( 204 ), 723 DIKS_CUSTOM205 = DFB_CUSTOM_KEY( 205 ), 724 DIKS_CUSTOM206 = DFB_CUSTOM_KEY( 206 ), 725 DIKS_CUSTOM207 = DFB_CUSTOM_KEY( 207 ), 726 DIKS_CUSTOM208 = DFB_CUSTOM_KEY( 208 ), 727 DIKS_CUSTOM209 = DFB_CUSTOM_KEY( 209 ), 728 DIKS_CUSTOM210 = DFB_CUSTOM_KEY( 210 ), 729 DIKS_CUSTOM211 = DFB_CUSTOM_KEY( 211 ), 730 DIKS_CUSTOM212 = DFB_CUSTOM_KEY( 212 ), 731 DIKS_CUSTOM213 = DFB_CUSTOM_KEY( 213 ), 732 DIKS_CUSTOM214 = DFB_CUSTOM_KEY( 214 ), 733 DIKS_CUSTOM215 = DFB_CUSTOM_KEY( 215 ), 734 DIKS_CUSTOM216 = DFB_CUSTOM_KEY( 216 ), 735 DIKS_CUSTOM217 = DFB_CUSTOM_KEY( 217 ), 736 DIKS_CUSTOM218 = DFB_CUSTOM_KEY( 218 ), 737 DIKS_CUSTOM219 = DFB_CUSTOM_KEY( 219 ), 738 DIKS_CUSTOM220 = DFB_CUSTOM_KEY( 220 ), 739 DIKS_CUSTOM221 = DFB_CUSTOM_KEY( 221 ), 740 DIKS_CUSTOM222 = DFB_CUSTOM_KEY( 222 ), 741 DIKS_CUSTOM223 = DFB_CUSTOM_KEY( 223 ), 742 DIKS_CUSTOM224 = DFB_CUSTOM_KEY( 224 ), 743 DIKS_CUSTOM225 = DFB_CUSTOM_KEY( 225 ), 744 DIKS_CUSTOM226 = DFB_CUSTOM_KEY( 226 ), 745 DIKS_CUSTOM227 = DFB_CUSTOM_KEY( 227 ), 746 DIKS_CUSTOM228 = DFB_CUSTOM_KEY( 228 ), 747 DIKS_CUSTOM229 = DFB_CUSTOM_KEY( 229 ), 748 DIKS_CUSTOM230 = DFB_CUSTOM_KEY( 230 ), 749 DIKS_CUSTOM231 = DFB_CUSTOM_KEY( 231 ), 750 DIKS_CUSTOM232 = DFB_CUSTOM_KEY( 232 ), 751 DIKS_CUSTOM233 = DFB_CUSTOM_KEY( 233 ), 752 DIKS_CUSTOM234 = DFB_CUSTOM_KEY( 234 ), 753 DIKS_CUSTOM235 = DFB_CUSTOM_KEY( 235 ), 754 DIKS_CUSTOM236 = DFB_CUSTOM_KEY( 236 ), 755 DIKS_CUSTOM237 = DFB_CUSTOM_KEY( 237 ), 756 DIKS_CUSTOM238 = DFB_CUSTOM_KEY( 238 ), 757 DIKS_CUSTOM239 = DFB_CUSTOM_KEY( 239 ), 758 DIKS_CUSTOM240 = DFB_CUSTOM_KEY( 240 ), 759 DIKS_CUSTOM241 = DFB_CUSTOM_KEY( 241 ), 760 DIKS_CUSTOM242 = DFB_CUSTOM_KEY( 242 ), 761 DIKS_CUSTOM243 = DFB_CUSTOM_KEY( 243 ), 762 DIKS_CUSTOM244 = DFB_CUSTOM_KEY( 244 ), 763 DIKS_CUSTOM245 = DFB_CUSTOM_KEY( 245 ), 764 DIKS_CUSTOM246 = DFB_CUSTOM_KEY( 246 ), 765 DIKS_CUSTOM247 = DFB_CUSTOM_KEY( 247 ), 766 DIKS_CUSTOM248 = DFB_CUSTOM_KEY( 248 ), 767 DIKS_CUSTOM249 = DFB_CUSTOM_KEY( 249 ), 768 DIKS_CUSTOM250 = DFB_CUSTOM_KEY( 250 ), 769 DIKS_CUSTOM251 = DFB_CUSTOM_KEY( 251 ), 770 DIKS_CUSTOM252 = DFB_CUSTOM_KEY( 252 ), 771 DIKS_CUSTOM253 = DFB_CUSTOM_KEY( 253 ), 772 DIKS_CUSTOM254 = DFB_CUSTOM_KEY( 254 ), 773 DIKS_CUSTOM255 = DFB_CUSTOM_KEY( 255 ) 774 } DFBInputDeviceKeySymbol; 775 776 /* 777 * Flags specifying the key locks that are currently active. 778 */ 779 typedef enum { 780 DILS_SCROLL = 0x00000001, /* scroll-lock active? */ 781 DILS_NUM = 0x00000002, /* num-lock active? */ 782 DILS_CAPS = 0x00000004 /* caps-lock active? */ 783 } DFBInputDeviceLockState; 784 785 /* 786 * Groups and levels as an index to the symbol array. 787 */ 788 typedef enum { 789 DIKSI_BASE = 0x00, /* base group, base level 790 (no modifier pressed) */ 791 DIKSI_BASE_SHIFT = 0x01, /* base group, shifted level 792 (with Shift pressed) */ 793 DIKSI_ALT = 0x02, /* alternative group, base level 794 (with AltGr pressed) */ 795 DIKSI_ALT_SHIFT = 0x03, /* alternative group, shifted level 796 (with AltGr and Shift pressed) */ 797 798 DIKSI_LAST = DIKSI_ALT_SHIFT 799 } DFBInputDeviceKeymapSymbolIndex; 800 801 /* 802 * One entry in the keymap of an input device. 803 */ 804 typedef struct { 805 int code; /* hardware 806 key code */ 807 DFBInputDeviceLockState locks; /* locks activating 808 shifted level */ 809 DFBInputDeviceKeyIdentifier identifier; /* basic mapping */ 810 DFBInputDeviceKeySymbol symbols[DIKSI_LAST+1]; /* advanced key 811 mapping */ 812 } DFBInputDeviceKeymapEntry; 813 814 815 #ifdef __cplusplus 816 } 817 #endif 818 819 #endif 820 821