directfb_keyboard.h 38 KB

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