/*
   (c) Copyright 2001-2009  The world wide DirectFB Open Source Community (directfb.org)
   (c) Copyright 2000-2004  Convergence (integrated media) GmbH

   All rights reserved.

   Written by Denis Oliver Kropp <dok@directfb.org>,
              Andreas Hundt <andi@fischlustig.de>,
              Sven Neumann <neo@directfb.org>,
              Ville Syrjälä <syrjala@sci.fi> and
              Claudio Ciccani <klan@users.sf.net>.

   This library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2 of the License, or (at your option) any later version.

   This library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with this library; if not, write to the
   Free Software Foundation, Inc., 59 Temple Place - Suite 330,
   Boston, MA 02111-1307, USA.
*/

#ifndef __DIRECTFB_KEYBOARD_H__
#define __DIRECTFB_KEYBOARD_H__

#ifdef __cplusplus
extern "C"
{
#endif

#include <u_btn_map.h>

/*
 * DirectFB key types (for advanced mapping)
 */
typedef enum {
     DIKT_UNICODE        = 0x0000UL,     /* Unicode 3.x character,(compatible to Latin-1) */
     DIKT_SPECIAL        = 0xF000UL,     /* Special key (e.g. Cursor Up or Menu) */
     DIKT_FUNCTION       = 0xF100UL,     /* Function key (F1 - Fn) */
     DIKT_MODIFIER       = 0xF200UL,     /* Modifier key */
     DIKT_LOCK           = 0xF300UL,     /* Lock key (e.g. CapsLock) */
     DIKT_DEAD           = 0xF400UL,     /* Dead key (e.g. dead grave) */
     DIKT_CUSTOM         = 0xF500UL,     /* Custom key (vendor specific) */
     DIKT_IDENTIFIER     = 0xF600UL,     /* DirectFB key identifier */
     DIKT_MTK            = 0xF700UL      /* DirectFB MTK key identifier */
} DFBInputDeviceKeyType;

#define DFB_KEY(type,index)        (unsigned long int)((DIKT_##type) | (index))

#define DFB_KEY_TYPE(symbol)       ((((symbol) & ~0xFFF) == 0xF000) ? (symbol) & 0xFF00 : DIKT_UNICODE)
#define DFB_KEY_INDEX(symbol)      ((symbol) & 0x00FF)

#define DFB_KEY_IS_ASCII(symbol)   ((symbol) < 128)

#define DFB_FUNCTION_KEY(n)        (DFB_KEY( FUNCTION, n ))
#define DFB_MODIFIER_KEY(i)        (DFB_KEY( MODIFIER, (1 << i) ))
#define DFB_CUSTOM_KEY(n)          (DFB_KEY( CUSTOM, n ))
#ifdef KEY_FROM_DFB /* MHF Linux - Bin Zhang */
#define DFB_MTK_KEY(n)             (DFB_KEY( MTK, n ))
#endif

#define DFB_LOWER_CASE(symbol)     (((symbol) >= 'A' && (symbol) <= 'Z') ?\
                                    ((symbol) | 0x20) : (symbol))
#define DFB_UPPER_CASE(symbol)     (((symbol) >= 'a' && (symbol) <= 'z') ?\
                                    ((symbol) & ~0x20) : (symbol))

/*
 * DirectFB modifier key identifiers (for advanced mapping)
 */
typedef enum {
     DIMKI_SHIFT,                       /* Shift modifier key */
     DIMKI_CONTROL,                     /* Control modifier key */
     DIMKI_ALT,                         /* Alt modifier key */
     DIMKI_ALTGR,                       /* AltGr modifier key */
     DIMKI_META,                        /* Meta modifier key */
     DIMKI_SUPER,                       /* Super modifier key */
     DIMKI_HYPER,                       /* Hyper modifier key */

     DIMKI_FIRST    = DIMKI_SHIFT,
     DIMKI_LAST     = DIMKI_HYPER
} DFBInputDeviceModifierKeyIdentifier;

/*
 * DirectFB key identifiers (for basic mapping)
 */
typedef enum {
     DIKI_UNKNOWN = DFB_KEY( IDENTIFIER, 0 ),

     DIKI_A,
     DIKI_B,
     DIKI_C,
     DIKI_D,
     DIKI_E,
     DIKI_F,
     DIKI_G,
     DIKI_H,
     DIKI_I,
     DIKI_J,
     DIKI_K,
     DIKI_L,
     DIKI_M,
     DIKI_N,
     DIKI_O,
     DIKI_P,
     DIKI_Q,
     DIKI_R,
     DIKI_S,
     DIKI_T,
     DIKI_U,
     DIKI_V,
     DIKI_W,
     DIKI_X,
     DIKI_Y,
     DIKI_Z,

     DIKI_0,
     DIKI_1,
     DIKI_2,
     DIKI_3,
     DIKI_4,
     DIKI_5,
     DIKI_6,
     DIKI_7,
     DIKI_8,
     DIKI_9,

     DIKI_F1,
     DIKI_F2,
     DIKI_F3,
     DIKI_F4,
     DIKI_F5,
     DIKI_F6,
     DIKI_F7,
     DIKI_F8,
     DIKI_F9,
     DIKI_F10,
     DIKI_F11,
     DIKI_F12,

     DIKI_SHIFT_L,
     DIKI_SHIFT_R,
     DIKI_CONTROL_L,
     DIKI_CONTROL_R,
     DIKI_ALT_L,
     DIKI_ALT_R,
     DIKI_META_L,
     DIKI_META_R,
     DIKI_SUPER_L,
     DIKI_SUPER_R,
     DIKI_HYPER_L,
     DIKI_HYPER_R,

     DIKI_CAPS_LOCK,
     DIKI_NUM_LOCK,
     DIKI_SCROLL_LOCK,

     DIKI_ESCAPE,
     DIKI_LEFT,
     DIKI_RIGHT,
     DIKI_UP,
     DIKI_DOWN,
     DIKI_TAB,
     DIKI_ENTER,
     DIKI_SPACE,
     DIKI_BACKSPACE,
     DIKI_INSERT,
     DIKI_DELETE,
     DIKI_HOME,
     DIKI_END,
     DIKI_PAGE_UP,
     DIKI_PAGE_DOWN,
     DIKI_PRINT,
     DIKI_PAUSE,

     /*  The labels on these keys depend on the type of keyboard.
      *  We've choosen the names from a US keyboard layout. The
      *  comments refer to the ISO 9995 terminology.
      */
     DIKI_QUOTE_LEFT,    /*  TLDE  */
     DIKI_MINUS_SIGN,    /*  AE11  */
     DIKI_EQUALS_SIGN,   /*  AE12  */
     DIKI_BRACKET_LEFT,  /*  AD11  */
     DIKI_BRACKET_RIGHT, /*  AD12  */
     DIKI_BACKSLASH,     /*  BKSL  */
     DIKI_SEMICOLON,     /*  AC10  */
     DIKI_QUOTE_RIGHT,   /*  AC11  */
     DIKI_COMMA,         /*  AB08  */
     DIKI_PERIOD,        /*  AB09  */
     DIKI_SLASH,         /*  AB10  */

     DIKI_LESS_SIGN,     /*  103rd  */

     DIKI_KP_DIV,
     DIKI_KP_MULT,
     DIKI_KP_MINUS,
     DIKI_KP_PLUS,
     DIKI_KP_ENTER,
     DIKI_KP_SPACE,
     DIKI_KP_TAB,
     DIKI_KP_F1,
     DIKI_KP_F2,
     DIKI_KP_F3,
     DIKI_KP_F4,
     DIKI_KP_EQUAL,
     DIKI_KP_SEPARATOR,

     DIKI_KP_DECIMAL,
     DIKI_KP_0,
     DIKI_KP_1,
     DIKI_KP_2,
     DIKI_KP_3,
     DIKI_KP_4,
     DIKI_KP_5,
     DIKI_KP_6,
     DIKI_KP_7,
     DIKI_KP_8,
     DIKI_KP_9,

     DIKI_KEYDEF_END,
     DIKI_NUMBER_OF_KEYS = DIKI_KEYDEF_END - DFB_KEY( IDENTIFIER, 0 )

} DFBInputDeviceKeyIdentifier;

/*
 * DirectFB key symbols (for advanced mapping)
 */
typedef enum {
     /*
      * Unicode excerpt - Controls and Basic Latin
      *
      * Any Unicode 3.x character can be used as a DirectFB key symbol,
      * the values of this enum are compatible with Unicode.
      */
     DIKS_NULL                     = DFB_KEY( UNICODE, 0x00 ),
     DIKS_BACKSPACE                = DFB_KEY( UNICODE, 0x08 ),
     DIKS_TAB                      = DFB_KEY( UNICODE, 0x09 ),
     DIKS_RETURN                   = DFB_KEY( UNICODE, 0x0D ),
     DIKS_CANCEL                   = DFB_KEY( UNICODE, 0x18 ),
     DIKS_ESCAPE                   = DFB_KEY( UNICODE, 0x1B ),
     DIKS_SPACE                    = DFB_KEY( UNICODE, 0x20 ),
     DIKS_EXCLAMATION_MARK         = DFB_KEY( UNICODE, 0x21 ),
     DIKS_QUOTATION                = DFB_KEY( UNICODE, 0x22 ),
     DIKS_NUMBER_SIGN              = DFB_KEY( UNICODE, 0x23 ),
     DIKS_DOLLAR_SIGN              = DFB_KEY( UNICODE, 0x24 ),
     DIKS_PERCENT_SIGN             = DFB_KEY( UNICODE, 0x25 ),
     DIKS_AMPERSAND                = DFB_KEY( UNICODE, 0x26 ),
     DIKS_APOSTROPHE               = DFB_KEY( UNICODE, 0x27 ),
     DIKS_PARENTHESIS_LEFT         = DFB_KEY( UNICODE, 0x28 ),
     DIKS_PARENTHESIS_RIGHT        = DFB_KEY( UNICODE, 0x29 ),
     DIKS_ASTERISK                 = DFB_KEY( UNICODE, 0x2A ),
     DIKS_PLUS_SIGN                = DFB_KEY( UNICODE, 0x2B ),
     DIKS_COMMA                    = DFB_KEY( UNICODE, 0x2C ),
     DIKS_MINUS_SIGN               = DFB_KEY( UNICODE, 0x2D ),
     DIKS_PERIOD                   = DFB_KEY( UNICODE, 0x2E ),
     DIKS_SLASH                    = DFB_KEY( UNICODE, 0x2F ),
     DIKS_0                        = DFB_KEY( UNICODE, 0x30 ),
     DIKS_1                        = DFB_KEY( UNICODE, 0x31 ),
     DIKS_2                        = DFB_KEY( UNICODE, 0x32 ),
     DIKS_3                        = DFB_KEY( UNICODE, 0x33 ),
     DIKS_4                        = DFB_KEY( UNICODE, 0x34 ),
     DIKS_5                        = DFB_KEY( UNICODE, 0x35 ),
     DIKS_6                        = DFB_KEY( UNICODE, 0x36 ),
     DIKS_7                        = DFB_KEY( UNICODE, 0x37 ),
     DIKS_8                        = DFB_KEY( UNICODE, 0x38 ),
     DIKS_9                        = DFB_KEY( UNICODE, 0x39 ),
     DIKS_COLON                    = DFB_KEY( UNICODE, 0x3A ),
     DIKS_SEMICOLON                = DFB_KEY( UNICODE, 0x3B ),
     DIKS_LESS_THAN_SIGN           = DFB_KEY( UNICODE, 0x3C ),
     DIKS_EQUALS_SIGN              = DFB_KEY( UNICODE, 0x3D ),
     DIKS_GREATER_THAN_SIGN        = DFB_KEY( UNICODE, 0x3E ),
     DIKS_QUESTION_MARK            = DFB_KEY( UNICODE, 0x3F ),
     DIKS_AT                       = DFB_KEY( UNICODE, 0x40 ),
     DIKS_CAPITAL_A                = DFB_KEY( UNICODE, 0x41 ),
     DIKS_CAPITAL_B                = DFB_KEY( UNICODE, 0x42 ),
     DIKS_CAPITAL_C                = DFB_KEY( UNICODE, 0x43 ),
     DIKS_CAPITAL_D                = DFB_KEY( UNICODE, 0x44 ),
     DIKS_CAPITAL_E                = DFB_KEY( UNICODE, 0x45 ),
     DIKS_CAPITAL_F                = DFB_KEY( UNICODE, 0x46 ),
     DIKS_CAPITAL_G                = DFB_KEY( UNICODE, 0x47 ),
     DIKS_CAPITAL_H                = DFB_KEY( UNICODE, 0x48 ),
     DIKS_CAPITAL_I                = DFB_KEY( UNICODE, 0x49 ),
     DIKS_CAPITAL_J                = DFB_KEY( UNICODE, 0x4A ),
     DIKS_CAPITAL_K                = DFB_KEY( UNICODE, 0x4B ),
     DIKS_CAPITAL_L                = DFB_KEY( UNICODE, 0x4C ),
     DIKS_CAPITAL_M                = DFB_KEY( UNICODE, 0x4D ),
     DIKS_CAPITAL_N                = DFB_KEY( UNICODE, 0x4E ),
     DIKS_CAPITAL_O                = DFB_KEY( UNICODE, 0x4F ),
     DIKS_CAPITAL_P                = DFB_KEY( UNICODE, 0x50 ),
     DIKS_CAPITAL_Q                = DFB_KEY( UNICODE, 0x51 ),
     DIKS_CAPITAL_R                = DFB_KEY( UNICODE, 0x52 ),
     DIKS_CAPITAL_S                = DFB_KEY( UNICODE, 0x53 ),
     DIKS_CAPITAL_T                = DFB_KEY( UNICODE, 0x54 ),
     DIKS_CAPITAL_U                = DFB_KEY( UNICODE, 0x55 ),
     DIKS_CAPITAL_V                = DFB_KEY( UNICODE, 0x56 ),
     DIKS_CAPITAL_W                = DFB_KEY( UNICODE, 0x57 ),
     DIKS_CAPITAL_X                = DFB_KEY( UNICODE, 0x58 ),
     DIKS_CAPITAL_Y                = DFB_KEY( UNICODE, 0x59 ),
     DIKS_CAPITAL_Z                = DFB_KEY( UNICODE, 0x5A ),
     DIKS_SQUARE_BRACKET_LEFT      = DFB_KEY( UNICODE, 0x5B ),
     DIKS_BACKSLASH                = DFB_KEY( UNICODE, 0x5C ),
     DIKS_SQUARE_BRACKET_RIGHT     = DFB_KEY( UNICODE, 0x5D ),
     DIKS_CIRCUMFLEX_ACCENT        = DFB_KEY( UNICODE, 0x5E ),
     DIKS_UNDERSCORE               = DFB_KEY( UNICODE, 0x5F ),
     DIKS_GRAVE_ACCENT             = DFB_KEY( UNICODE, 0x60 ),
     DIKS_SMALL_A                  = DFB_KEY( UNICODE, 0x61 ),
     DIKS_SMALL_B                  = DFB_KEY( UNICODE, 0x62 ),
     DIKS_SMALL_C                  = DFB_KEY( UNICODE, 0x63 ),
     DIKS_SMALL_D                  = DFB_KEY( UNICODE, 0x64 ),
     DIKS_SMALL_E                  = DFB_KEY( UNICODE, 0x65 ),
     DIKS_SMALL_F                  = DFB_KEY( UNICODE, 0x66 ),
     DIKS_SMALL_G                  = DFB_KEY( UNICODE, 0x67 ),
     DIKS_SMALL_H                  = DFB_KEY( UNICODE, 0x68 ),
     DIKS_SMALL_I                  = DFB_KEY( UNICODE, 0x69 ),
     DIKS_SMALL_J                  = DFB_KEY( UNICODE, 0x6A ),
     DIKS_SMALL_K                  = DFB_KEY( UNICODE, 0x6B ),
     DIKS_SMALL_L                  = DFB_KEY( UNICODE, 0x6C ),
     DIKS_SMALL_M                  = DFB_KEY( UNICODE, 0x6D ),
     DIKS_SMALL_N                  = DFB_KEY( UNICODE, 0x6E ),
     DIKS_SMALL_O                  = DFB_KEY( UNICODE, 0x6F ),
     DIKS_SMALL_P                  = DFB_KEY( UNICODE, 0x70 ),
     DIKS_SMALL_Q                  = DFB_KEY( UNICODE, 0x71 ),
     DIKS_SMALL_R                  = DFB_KEY( UNICODE, 0x72 ),
     DIKS_SMALL_S                  = DFB_KEY( UNICODE, 0x73 ),
     DIKS_SMALL_T                  = DFB_KEY( UNICODE, 0x74 ),
     DIKS_SMALL_U                  = DFB_KEY( UNICODE, 0x75 ),
     DIKS_SMALL_V                  = DFB_KEY( UNICODE, 0x76 ),
     DIKS_SMALL_W                  = DFB_KEY( UNICODE, 0x77 ),
     DIKS_SMALL_X                  = DFB_KEY( UNICODE, 0x78 ),
     DIKS_SMALL_Y                  = DFB_KEY( UNICODE, 0x79 ),
     DIKS_SMALL_Z                  = DFB_KEY( UNICODE, 0x7A ),
     DIKS_CURLY_BRACKET_LEFT       = DFB_KEY( UNICODE, 0x7B ),
     DIKS_VERTICAL_BAR             = DFB_KEY( UNICODE, 0x7C ),
     DIKS_CURLY_BRACKET_RIGHT      = DFB_KEY( UNICODE, 0x7D ),
     DIKS_TILDE                    = DFB_KEY( UNICODE, 0x7E ),
     DIKS_DELETE                   = DFB_KEY( UNICODE, 0x7F ),

     DIKS_ENTER                    = DIKS_RETURN,


     /*
      * Unicode private area - DirectFB Special for Portuguese
      */
    
    DIKS_SUPPERSCRIPT_ONE          = DFB_KEY(UNICODE,   0x00B9),
    DIKS_SUPPERSCRIPT_TWO          = DFB_KEY(UNICODE,   0x00B2),
    DIKS_SUPPERSCRIPT_THREE        = DFB_KEY(UNICODE,   0x00B3),
    DIKS_ACUTE_ACCENT              = DFB_KEY(UNICODE,   0x00B4),
    DIKS_FULLWIDTH_GRAVE_ACCENT    = DFB_KEY(UNICODE,   0xFF40),
    DIKS_FULLWIDTH_TILDE           = DFB_KEY(UNICODE,   0xFF5E),
    DIKS_POUND_SIGN                = DFB_KEY(UNICODE,   0x00A3),
    DIKS_CENT_SIGN                 = DFB_KEY(UNICODE,   0x00A2),
    DIKS_NOT_SIGN                  = DFB_KEY(UNICODE,   0x00AC),
    DIKS_DIAERESIS_SIGN            = DFB_KEY(UNICODE,   0x00A8),
    DIKS_SECTION_SIGN              = DFB_KEY(UNICODE,   0x00A7),
    DIKS_SOLIDUS_SIGN              = DFB_KEY(UNICODE,   0x002F),
    DIKS_REVERSE_SOLIDUS_SIGN      = DFB_KEY(UNICODE,   0x005C),
    DIKS_EURO_SIGN                 = DFB_KEY(UNICODE,   0x20AC),
    DIKS_RUPEE_SIGN                = DFB_KEY(UNICODE,   0x20A8),
    DIKS_CRUZEIRO_SIGN             = DFB_KEY(UNICODE,   0x20A2),
    DIKS_FEMININE_ORDINAL_INDICATOR= DFB_KEY(UNICODE,   0x00AA),
    DIKS_MASCULINE_ORDINAL_INDICATOR= DFB_KEY(UNICODE,   0x00BA),
    DIKS_CAPITAL_C_WITH_CEDILLA    = DFB_KEY(UNICODE,   0x00C7),
    DIKS_SMALL_C_WITH_CEDILLA      = DFB_KEY(UNICODE,   0x00E7),
    DIKS_CAPITAL_A_WITH_GRAVE      = DFB_KEY(UNICODE,   0x00C0),
    DIKS_SMALL_A_WITH_GRAVE        = DFB_KEY(UNICODE,   0x00E0),
    DIKS_SMALL_E_WITH_GRAVE        = DFB_KEY(UNICODE,   0x00E8), 
    DIKS_CAPITAL_E_WITH_GRAVE      = DFB_KEY(UNICODE,   0x00C8),
    DIKS_SMALL_I_WITH_GRAVE        = DFB_KEY(UNICODE,   0x00EC), 
    DIKS_CAPITAL_I_WITH_GRAVE      = DFB_KEY(UNICODE,   0x00CC),
    DIKS_SMALL_O_WITH_GRAVE        = DFB_KEY(UNICODE,   0x00F2), 
    DIKS_CAPITAL_O_WITH_GRAVE      = DFB_KEY(UNICODE,   0x00D2),
    DIKS_SMALL_U_WITH_GRAVE        = DFB_KEY(UNICODE,   0x00F9), 
    DIKS_CAPITAL_U_WITH_GRAVE      = DFB_KEY(UNICODE,   0x00D9),
    DIKS_CAPITAL_A_WITH_ACUTE      = DFB_KEY(UNICODE,   0x00C1),
    DIKS_SMALL_A_WITH_ACUTE        = DFB_KEY(UNICODE,   0x00E1),   
    DIKS_CAPITAL_A_WITH_CIRCUMFLEX = DFB_KEY(UNICODE,   0x00C2),
    DIKS_SMALL_A_WITH_CIRCUMFLEX   = DFB_KEY(UNICODE,   0x00E2),    
    DIKS_CAPITAL_A_WITH_TILDE      = DFB_KEY(UNICODE,   0x00C3),
    DIKS_SMALL_A_WITH_TILDE        = DFB_KEY(UNICODE,   0x00E3),  
    DIKS_CAPITAL_N_WITH_TILDE      = DFB_KEY(UNICODE,   0x00D1),
    DIKS_SMALL_N_WITH_TILDE        = DFB_KEY(UNICODE,   0x00F1),     
    DIKS_CAPITAL_E_WITH_ACUTE      = DFB_KEY(UNICODE,   0x00C9),
    DIKS_SMALL_E_WITH_ACUTE        = DFB_KEY(UNICODE,   0x00E9), 
    DIKS_CAPITAL_E_WITH_CIRCUMFLEX = DFB_KEY(UNICODE,   0x00CA),
    DIKS_SMALL_E_WITH_CIRCUMFLEX   = DFB_KEY(UNICODE,   0x00EA), 
    DIKS_CAPITAL_I_WITH_CIRCUMFLEX = DFB_KEY(UNICODE,   0x00CE),
    DIKS_SMALL_I_WITH_CIRCUMFLEX   = DFB_KEY(UNICODE,   0x00EE),
    DIKS_CAPITAL_I_WITH_ACUTE      = DFB_KEY(UNICODE,   0x00CD),
    DIKS_SMALL_I_WITH_ACUTE        = DFB_KEY(UNICODE,   0x00ED),  
    DIKS_CAPITAL_O_WITH_ACUTE      = DFB_KEY(UNICODE,   0x00D3),
    DIKS_SMALL_O_WITH_ACUTE        = DFB_KEY(UNICODE,   0x00F3), 
    DIKS_CAPITAL_O_WITH_CIRCUMFLEX = DFB_KEY(UNICODE,   0x00D4),
    DIKS_SMALL_O_WITH_CIRCUMFLEX   = DFB_KEY(UNICODE,   0x00F4),
    DIKS_CAPITAL_U_WITH_CIRCUMFLEX = DFB_KEY(UNICODE,   0x00DB),
    DIKS_SMALL_U_WITH_CIRCUMFLEX   = DFB_KEY(UNICODE,   0x00FB),
    DIKS_CAPITAL_O_WITH_TILDE      = DFB_KEY(UNICODE,   0x00D5),
    DIKS_SMALL_O_WITH_TILDE        = DFB_KEY(UNICODE,   0x00F5),  
    DIKS_CAPITAL_U_WITH_ACUTE      = DFB_KEY(UNICODE,   0x00DA),
    DIKS_SMALL_U_WITH_ACUTE        = DFB_KEY(UNICODE,   0x00FA),  
    DIKS_CAPITAL_U_WITH_DIAERESIS  = DFB_KEY(UNICODE,   0x00DC),
    DIKS_SMALL_U_WITH_DIAERESIS    = DFB_KEY(UNICODE,   0x00FC), 
    DIKS_SMALL_A_WITH_DIAERESIS    = DFB_KEY(UNICODE,   0x00E4), 
    DIKS_CAPITAL_A_WITH_DIAERESIS    = DFB_KEY(UNICODE,   0x00C4), 
    DIKS_SMALL_E_WITH_DIAERESIS    = DFB_KEY(UNICODE,   0x00EB), 
    DIKS_CAPITAL_E_WITH_DIAERESIS    = DFB_KEY(UNICODE,   0x00CB), 
    DIKS_SMALL_I_WITH_DIAERESIS    = DFB_KEY(UNICODE,   0x00EF), 
    DIKS_CAPITAL_I_WITH_DIAERESIS    = DFB_KEY(UNICODE,   0x00CF), 
    DIKS_SMALL_O_WITH_DIAERESIS    = DFB_KEY(UNICODE,   0x00F6), 
    DIKS_CAPITAL_O_WITH_DIAERESIS    = DFB_KEY(UNICODE,   0x00D6),     
    DIKS_SMALL_Y_WITH_DIAERESIS    = DFB_KEY(UNICODE,   0x00FF), 
    DIKS_SMALL_Y_WITH_ACUTE    = DFB_KEY(UNICODE,   0x00FD), 
    /* for eu slovak. */
    DIKS_SMALL_A_WITH_DEGREE    = DFB_KEY(UNICODE,   0x00E5),
    DIKS_CAPITAL_A_WITH_DEGREE    = DFB_KEY(UNICODE,   0x00C5),
    DIKS_SMALL_E_WITH_DEGREE    = DFB_KEY(UNICODE,   0x0117),
    DIKS_CAPITAL_E_WITH_DEGREE    = DFB_KEY(UNICODE,   0x0116),
    DIKS_SMALL_G_WITH_DEGREE    = DFB_KEY(UNICODE,   0x0121),
    DIKS_SMALL_U_WITH_DEGREE        = DFB_KEY(UNICODE,   0x016F),  
    DIKS_CAPITAL_U_WITH_DEGREE  = DFB_KEY(UNICODE,   0x016E),
    DIKS_SMALL_Z_WITH_DEGREE    = DFB_KEY(UNICODE,   0x017C),
    DIKS_CAPITAL_Z_WITH_DEGREE    = DFB_KEY(UNICODE,   0x017B),

    /* for eu bosnia */

    /* for Greek */
    DIKS_SMALL_OMEGA                = DFB_KEY(UNICODE, 0x03C9),
    DIKS_SMALL_ALPHA                = DFB_KEY(UNICODE, 0x03B1),
    DIKS_SMALL_ETA                  = DFB_KEY(UNICODE, 0x03B7),
    DIKS_SMALL_EPSILON              = DFB_KEY(UNICODE, 0x03B5),
    DIKS_SMALL_IOTA                 = DFB_KEY(UNICODE, 0x03B9),
    DIKS_SMALL_UPSILON              = DFB_KEY(UNICODE, 0x03C5),
    DIKS_SMALL_OMICRON              = DFB_KEY(UNICODE, 0x03BF),
                                    
    DIKS_CAPITAL_OMEGA              = DFB_KEY(UNICODE, 0x03A9),
    DIKS_CAPITAL_ALPHA              = DFB_KEY(UNICODE, 0x0391),
    DIKS_CAPITAL_ETA                = DFB_KEY(UNICODE, 0x0397),
    DIKS_CAPITAL_EPSILON            = DFB_KEY(UNICODE, 0x0395),
    DIKS_CAPITAL_IOTA               = DFB_KEY(UNICODE, 0x0399),
    DIKS_CAPITAL_UPSILON            = DFB_KEY(UNICODE, 0x03A5),
    DIKS_CAPITAL_OMICRON            = DFB_KEY(UNICODE, 0x039F),

    DIKS_SMALL_IOTA_WITH_DIALYTIKA  = DFB_KEY(UNICODE, 0x0390),
    DIKS_SMALL_UPSILON_DIALYTIKA    = DFB_KEY(UNICODE, 0x03B0),

    DIKS_SMALL_IOTA_DIAERESIS       = DFB_KEY(UNICODE, 0x03CA),
    DIKS_SMALL_UPSILON_DIAERESIS    = DFB_KEY(UNICODE, 0x03CB),
    DIKS_CAPITAL_IOTA_DIAERESIS     = DFB_KEY(UNICODE, 0x03AA),
    DIKS_CAPITAL_UPSILON_DIAERESIS  = DFB_KEY(UNICODE, 0x03AB),

    DIKS_SMALL_OMEGA_WITH_TONOS     = DFB_KEY(UNICODE, 0x03CE),
    DIKS_SMALL_ALPHA_WITH_TONOS     = DFB_KEY(UNICODE, 0x03AC),
    DIKS_SMALL_ETA_WITH_TONOS       = DFB_KEY(UNICODE, 0x03AE),
    DIKS_SMALL_EPSILON_WITH_TONOS   = DFB_KEY(UNICODE, 0x03AD),
    DIKS_SMALL_IOTA_WITH_TONOS      = DFB_KEY(UNICODE, 0x03AF),
    DIKS_SMALL_UPSILON_WITH_TONOS   = DFB_KEY(UNICODE, 0x03CD),
    DIKS_SMALL_OMICRON_WITH_TONOS   = DFB_KEY(UNICODE, 0x03CC),

    DIKS_CAPITAL_OMEGA_WITH_TONOS   = DFB_KEY(UNICODE, 0x038F),
    DIKS_CAPITAL_ALPHA_WITH_TONOS   = DFB_KEY(UNICODE, 0x0386),
    DIKS_CAPITAL_ETA_WITH_TONOS     = DFB_KEY(UNICODE, 0x0389),
    DIKS_CAPITAL_EPSILON_WITH_TONOS = DFB_KEY(UNICODE, 0x0388),
    DIKS_CAPITAL_IOTA_WITH_TONOS    = DFB_KEY(UNICODE, 0x038A),
    DIKS_CAPITAL_UPSILON_WITH_TONOS = DFB_KEY(UNICODE, 0x038E),
    DIKS_CAPITAL_OMICRON_WITH_TONOS = DFB_KEY(UNICODE, 0x038C),
    
    DIKS_GREEK_TONOS                = DFB_KEY(UNICODE, 0x0384),
    DIKS_GREEK_DIALYTIKA            = DFB_KEY(UNICODE, 0x0385),

    /* for ductch */
    DIKS_CEDILLA                    = DFB_KEY(UNICODE, 0x00B8),

    DIKS_SMALL_W_WITH_ACUTE         = DFB_KEY(UNICODE, 0x1E83),
    DIKS_CAPITAL_W_WITH_ACUTE       = DFB_KEY(UNICODE, 0x1E82),
    DIKS_CAPITAL_Y_WITH_ACUTE       = DFB_KEY(UNICODE, 0x00DD),
    
    DIKS_SMALL_W_WITH_GRAVE         = DFB_KEY(UNICODE, 0x1E81),
    DIKS_SMALL_Y_WITH_GRAVE         = DFB_KEY(UNICODE, 0x1EF3),
    DIKS_CAPITAL_W_WITH_GRAVE       = DFB_KEY(UNICODE, 0x1E80),
    DIKS_CAPITAL_Y_WITH_GRAVE       = DFB_KEY(UNICODE, 0x1EF2),
    
    DIKS_SMALL_W_WITH_CIRCUMFLEX    = DFB_KEY(UNICODE, 0x0175),
    DIKS_SMALL_Y_WITH_CIRCUMFLEX    = DFB_KEY(UNICODE, 0x0177),
    DIKS_CAPITAL_W_WITH_CIRCUMFLEX  = DFB_KEY(UNICODE, 0x0174),
    DIKS_CAPITAL_Y_WITH_CIRCUMFLEX  = DFB_KEY(UNICODE, 0x0176),
    
    DIKS_SMALL_W_WITH_DIAERESIS     = DFB_KEY(UNICODE, 0x1E85),
    DIKS_CAPITAL_W_WITH_DIAERESIS   = DFB_KEY(UNICODE, 0x00FF),
    DIKS_CAPITAL_Y_WITH_DIAERESIS   = DFB_KEY(UNICODE, 0x0178),
    
    /* for Turkey */
    DIKS_SMALL_I_TURKEY             = DFB_KEY(UNICODE, 0x0131),
    DIKS_CAPITAL_I_TURKEY           = DFB_KEY(UNICODE, 0x0130),

    /* for Czech */
    DIKS_SMALL_C_WITH_ACUTE         = DFB_KEY(UNICODE, 0x0107),
    DIKS_SMALL_L_WITH_ACUTE         = DFB_KEY(UNICODE, 0x013A),
    DIKS_SMALL_N_WITH_ACUTE         = DFB_KEY(UNICODE, 0x0144),
    DIKS_SMALL_R_WITH_ACUTE         = DFB_KEY(UNICODE, 0x0155),
    DIKS_SMALL_S_WITH_ACUTE         = DFB_KEY(UNICODE, 0x015B),
    DIKS_SMALL_Z_WITH_ACUTE         = DFB_KEY(UNICODE, 0x017A),

    DIKS_CAPITAL_C_WITH_ACUTE       = DFB_KEY(UNICODE, 0x0106),
    DIKS_CAPITAL_L_WITH_ACUTE       = DFB_KEY(UNICODE, 0x0139),
    DIKS_CAPITAL_N_WITH_ACUTE       = DFB_KEY(UNICODE, 0x0143),
    DIKS_CAPITAL_R_WITH_ACUTE       = DFB_KEY(UNICODE, 0x0154),
    DIKS_CAPITAL_S_WITH_ACUTE       = DFB_KEY(UNICODE, 0x015A),
    DIKS_CAPITAL_Z_WITH_ACUTE       = DFB_KEY(UNICODE, 0x0179),
    
    DIKS_CARON                      = DFB_KEY(UNICODE, 0x02C7),

    DIKS_SMALL_C_WITH_CARON         = DFB_KEY(UNICODE, 0x010d),
    DIKS_SMALL_D_WITH_CARON         = DFB_KEY(UNICODE, 0x010f),
    DIKS_SMALL_E_WITH_CARON         = DFB_KEY(UNICODE, 0x011b),
    DIKS_SMALL_L_WITH_CARON         = DFB_KEY(UNICODE, 0x013e),
    DIKS_SMALL_N_WITH_CARON         = DFB_KEY(UNICODE, 0x0148),
    DIKS_SMALL_R_WITH_CARON         = DFB_KEY(UNICODE, 0x0159),
    DIKS_SMALL_S_WITH_CARON         = DFB_KEY(UNICODE, 0x0161),  
    DIKS_SMALL_T_WITH_CARON         = DFB_KEY(UNICODE, 0x0165),
    DIKS_SMALL_Z_WITH_CARON         = DFB_KEY(UNICODE, 0x017e),
    DIKS_CAPITAL_C_WITH_CARON       = DFB_KEY(UNICODE, 0x010c),
    DIKS_CAPITAL_D_WITH_CARON       = DFB_KEY(UNICODE, 0x010e),
    DIKS_CAPITAL_E_WITH_CARON       = DFB_KEY(UNICODE, 0x011a),
    DIKS_CAPITAL_L_WITH_CARON       = DFB_KEY(UNICODE, 0x013d),
    DIKS_CAPITAL_N_WITH_CARON       = DFB_KEY(UNICODE, 0x0147),
    DIKS_CAPITAL_R_WITH_CARON       = DFB_KEY(UNICODE, 0x0158),
    DIKS_CAPITAL_S_WITH_CARON       = DFB_KEY(UNICODE, 0x0160),
    DIKS_CAPITAL_T_WITH_CARON       = DFB_KEY(UNICODE, 0x0164),
    DIKS_CAPITAL_Z_WITH_CARON       = DFB_KEY(UNICODE, 0x017d),
    
    DIKS_SMALL_G_WITH_CEDILLA       = DFB_KEY(UNICODE, 0x0123),
    DIKS_SMALL_L_WITH_CEDILLA       = DFB_KEY(UNICODE, 0x013c),   
    DIKS_SMALL_K_WITH_CEDILLA       = DFB_KEY(UNICODE, 0x0137),
    DIKS_SMALL_N_WITH_CEDILLA       = DFB_KEY(UNICODE, 0x0146),
    DIKS_SMALL_R_WITH_CEDILLA       = DFB_KEY(UNICODE, 0x0157),
    DIKS_SMALL_S_WITH_CEDILLA       = DFB_KEY(UNICODE, 0x015f),
    DIKS_SMALL_T_WITH_CEDILLA       = DFB_KEY(UNICODE, 0x0163),
    DIKS_CAPITAL_G_WITH_CEDILLA     = DFB_KEY(UNICODE, 0x0122),
    DIKS_CAPITAL_L_WITH_CEDILLA     = DFB_KEY(UNICODE, 0x013b),
    DIKS_CAPITAL_K_WITH_CEDILLA     = DFB_KEY(UNICODE, 0x0136),
    DIKS_CAPITAL_N_WITH_CEDILLA     = DFB_KEY(UNICODE, 0x0145),
    DIKS_CAPITAL_R_WITH_CEDILLA     = DFB_KEY(UNICODE, 0x0156),
    DIKS_CAPITAL_S_WITH_CEDILLA     = DFB_KEY(UNICODE, 0x015e),
    DIKS_CAPITAL_T_WITH_CEDILLA     = DFB_KEY(UNICODE, 0x0162),
    
    DIKS_BREVE                      = DFB_KEY(UNICODE, 0x02d8),
    DIKS_SMALL_A_WITH_BREVE         = DFB_KEY(UNICODE, 0x0103),
    DIKS_SMALL_G_WITH_BREVE         = DFB_KEY(UNICODE, 0x011f),
    DIKS_CAPITAL_A_WITH_BREVE       = DFB_KEY(UNICODE, 0x0102),
    DIKS_CAPITAL_G_WITH_BREVE       = DFB_KEY(UNICODE, 0x011e),
    
    DIKS_OGONEK                     = DFB_KEY(UNICODE, 0x02db),
    DIKS_SMALL_A_WITH_OGONEK        = DFB_KEY(UNICODE, 0x0105),
    DIKS_SMALL_E_WITH_OGONEK        = DFB_KEY(UNICODE, 0x0119),
    DIKS_SMALL_I_WITH_OGONEK        = DFB_KEY(UNICODE, 0x012f),
    DIKS_SMALL_U_WITH_OGONEK        = DFB_KEY(UNICODE, 0x0173),
    DIKS_CAPITAL_A_WITH_OGONEK      = DFB_KEY(UNICODE, 0x0104),
    DIKS_CAPITAL_E_WITH_OGONEK      = DFB_KEY(UNICODE, 0x0118),
    DIKS_CAPITAL_I_WITH_OGONEK      = DFB_KEY(UNICODE, 0x012e),
    DIKS_CAPITAL_U_WITH_OGONEK      = DFB_KEY(UNICODE, 0x0172),
    
    DIKS_ABOVEDOT                   = DFB_KEY(UNICODE, 0x00b7),
    DIKS_SMALL_E_WITH_ABOVEDOT      = DFB_KEY(UNICODE, 0x0117),
    DIKS_SMALL_I_WITH_ABOVEDOT      = DFB_KEY(UNICODE, 0x0131),
    DIKS_SMALL_Z_WITH_ABOVEDOT      = DFB_KEY(UNICODE, 0x017c),
    DIKS_CAPITAL_E_WITH_ABOVEDOT    = DFB_KEY(UNICODE, 0x0116),    
    DIKS_CAPITAL_I_WITH_ABOVEDOT    = DFB_KEY(UNICODE, 0x0130),
    DIKS_CAPITAL_Z_WITH_ABOVEDOT    = DFB_KEY(UNICODE, 0x017b),
    
    DIKS_DOUBLEACUTE                = DFB_KEY(UNICODE, 0x02dd),
    DIKS_SMALL_U_WITH_DOUBLEACUTE   = DFB_KEY(UNICODE, 0x0171),
    DIKS_SMALL_O_WITH_DOUBLEACUTE   = DFB_KEY(UNICODE, 0x0151),
    DIKS_CAPITAL_U_WITH_DOUBLEACUTE = DFB_KEY(UNICODE, 0x0170),
    DIKS_CAPITAL_O_WITH_DOUBLEACUTE = DFB_KEY(UNICODE, 0x0150),
    
    /* For Cyrillic */
    DIKS_SMALL_CYRILLIC_K           = DFB_KEY(UNICODE, 0x043a),
    DIKS_CAPITAL_CYRILLIC_K         = DFB_KEY(UNICODE, 0x041a),
    DIKS_SMALL_CYRILLIC_R           = DFB_KEY(UNICODE, 0x0433),
    DIKS_CAPITAL_CYRILLIC_R         = DFB_KEY(UNICODE, 0x0413),
    DIKS_SMALL_CYRILLIC_K_WITH_AP   = DFB_KEY(UNICODE, 0x045c),
    DIKS_CAPITAL_CYRILLIC_K_WITH_AP = DFB_KEY(UNICODE, 0x040c),
    DIKS_SMALL_CYRILLIC_R_WITH_AP   = DFB_KEY(UNICODE, 0x0453),
    DIKS_CAPITAL_CYRILLIC_R_WITH_AP = DFB_KEY(UNICODE, 0x0403),
    
    /* for special por&spa issue.*/
    DIKS_LEFT_DOUBLE_QUOTATION    = DFB_KEY(UNICODE,   0x201C), 
    DIKS_RIGHT_SIGLE_QUOTATION    = DFB_KEY(UNICODE,   0x2019), 
    DIKS_DEGREE_SIGN              = DFB_KEY(UNICODE,   0x00B0), 
    DIKS_RIGHT_DOUBLE_QUOTATION   = DFB_KEY(UNICODE,   0x201D), 
    DIKS_INVERTED_EXCLAMATION_MARK   = DFB_KEY(UNICODE,   0x00A1), 
    DIKS_INVERTED_QUESTION_MARK   = DFB_KEY(UNICODE,   0x00BF), 
     /*
      * Unicode private area - DirectFB Special keys
      */
     DIKS_CURSOR_LEFT              = DFB_KEY( SPECIAL, 0x00 ),
     DIKS_CURSOR_RIGHT             = DFB_KEY( SPECIAL, 0x01 ),
     DIKS_CURSOR_UP                = DFB_KEY( SPECIAL, 0x02 ),
     DIKS_CURSOR_DOWN              = DFB_KEY( SPECIAL, 0x03 ),
     DIKS_INSERT                   = DFB_KEY( SPECIAL, 0x04 ),
     DIKS_HOME                     = DFB_KEY( SPECIAL, 0x05 ),
     DIKS_END                      = DFB_KEY( SPECIAL, 0x06 ),
     DIKS_PAGE_UP                  = DFB_KEY( SPECIAL, 0x07 ),
     DIKS_PAGE_DOWN                = DFB_KEY( SPECIAL, 0x08 ),
     DIKS_PRINT                    = DFB_KEY( SPECIAL, 0x09 ),
     DIKS_PAUSE                    = DFB_KEY( SPECIAL, 0x0A ),
     DIKS_OK                       = DFB_KEY( SPECIAL, 0x0B ),
     DIKS_SELECT                   = DFB_KEY( SPECIAL, 0x0C ),
     DIKS_GOTO                     = DFB_KEY( SPECIAL, 0x0D ),
     DIKS_CLEAR                    = DFB_KEY( SPECIAL, 0x0E ),
     DIKS_POWER                    = DFB_KEY( SPECIAL, 0x0F ),
     DIKS_POWER2                   = DFB_KEY( SPECIAL, 0x10 ),
     DIKS_OPTION                   = DFB_KEY( SPECIAL, 0x11 ),
     DIKS_MENU                     = DFB_KEY( SPECIAL, 0x12 ),
     DIKS_HELP                     = DFB_KEY( SPECIAL, 0x13 ),
     DIKS_INFO                     = DFB_KEY( SPECIAL, 0x14 ),
     DIKS_TIME                     = DFB_KEY( SPECIAL, 0x15 ),
     DIKS_VENDOR                   = DFB_KEY( SPECIAL, 0x16 ),

     DIKS_ARCHIVE                  = DFB_KEY( SPECIAL, 0x17 ),
     DIKS_PROGRAM                  = DFB_KEY( SPECIAL, 0x18 ),
     DIKS_CHANNEL                  = DFB_KEY( SPECIAL, 0x19 ),
     DIKS_FAVORITES                = DFB_KEY( SPECIAL, 0x1A ),
     DIKS_EPG                      = DFB_KEY( SPECIAL, 0x1B ),
     DIKS_PVR                      = DFB_KEY( SPECIAL, 0x1C ),
     DIKS_MHP                      = DFB_KEY( SPECIAL, 0x1D ),
     DIKS_LANGUAGE                 = DFB_KEY( SPECIAL, 0x1E ),
     DIKS_TITLE                    = DFB_KEY( SPECIAL, 0x1F ),
     DIKS_SUBTITLE                 = DFB_KEY( SPECIAL, 0x20 ),
     DIKS_ANGLE                    = DFB_KEY( SPECIAL, 0x21 ),
     DIKS_ZOOM                     = DFB_KEY( SPECIAL, 0x22 ),
     DIKS_MODE                     = DFB_KEY( SPECIAL, 0x23 ),
     DIKS_KEYBOARD                 = DFB_KEY( SPECIAL, 0x24 ),
     DIKS_PC                       = DFB_KEY( SPECIAL, 0x25 ),
     DIKS_SCREEN                   = DFB_KEY( SPECIAL, 0x26 ),

     DIKS_TV                       = DFB_KEY( SPECIAL, 0x27 ),
     DIKS_TV2                      = DFB_KEY( SPECIAL, 0x28 ),
     DIKS_VCR                      = DFB_KEY( SPECIAL, 0x29 ),
     DIKS_VCR2                     = DFB_KEY( SPECIAL, 0x2A ),
     DIKS_SAT                      = DFB_KEY( SPECIAL, 0x2B ),
     DIKS_SAT2                     = DFB_KEY( SPECIAL, 0x2C ),
     DIKS_CD                       = DFB_KEY( SPECIAL, 0x2D ),
     DIKS_TAPE                     = DFB_KEY( SPECIAL, 0x2E ),
     DIKS_RADIO                    = DFB_KEY( SPECIAL, 0x2F ),
     DIKS_TUNER                    = DFB_KEY( SPECIAL, 0x30 ),
     DIKS_PLAYER                   = DFB_KEY( SPECIAL, 0x31 ),
     DIKS_TEXT                     = DFB_KEY( SPECIAL, 0x32 ),
     DIKS_DVD                      = DFB_KEY( SPECIAL, 0x33 ),
     DIKS_AUX                      = DFB_KEY( SPECIAL, 0x34 ),
     DIKS_MP3                      = DFB_KEY( SPECIAL, 0x35 ),
     DIKS_PHONE                    = DFB_KEY( SPECIAL, 0x36 ),
     DIKS_AUDIO                    = DFB_KEY( SPECIAL, 0x37 ),
     DIKS_VIDEO                    = DFB_KEY( SPECIAL, 0x38 ),

     DIKS_INTERNET                 = DFB_KEY( SPECIAL, 0x39 ),
     DIKS_MAIL                     = DFB_KEY( SPECIAL, 0x3A ),
     DIKS_NEWS                     = DFB_KEY( SPECIAL, 0x3B ),
     DIKS_DIRECTORY                = DFB_KEY( SPECIAL, 0x3C ),
     DIKS_LIST                     = DFB_KEY( SPECIAL, 0x3D ),
     DIKS_CALCULATOR               = DFB_KEY( SPECIAL, 0x3E ),
     DIKS_MEMO                     = DFB_KEY( SPECIAL, 0x3F ),
     DIKS_CALENDAR                 = DFB_KEY( SPECIAL, 0x40 ),
     DIKS_EDITOR                   = DFB_KEY( SPECIAL, 0x41 ),

     DIKS_RED                      = DFB_KEY( SPECIAL, 0x42 ),
     DIKS_GREEN                    = DFB_KEY( SPECIAL, 0x43 ),
     DIKS_YELLOW                   = DFB_KEY( SPECIAL, 0x44 ),
     DIKS_BLUE                     = DFB_KEY( SPECIAL, 0x45 ),

     DIKS_CHANNEL_UP               = DFB_KEY( SPECIAL, 0x46 ),
     DIKS_CHANNEL_DOWN             = DFB_KEY( SPECIAL, 0x47 ),
     DIKS_BACK                     = DFB_KEY( SPECIAL, 0x48 ),
     DIKS_FORWARD                  = DFB_KEY( SPECIAL, 0x49 ),
     DIKS_FIRST                    = DFB_KEY( SPECIAL, 0x4A ),
     DIKS_LAST                     = DFB_KEY( SPECIAL, 0x4B ),
     DIKS_VOLUME_UP                = DFB_KEY( SPECIAL, 0x4C ),
     DIKS_VOLUME_DOWN              = DFB_KEY( SPECIAL, 0x4D ),
     DIKS_MUTE                     = DFB_KEY( SPECIAL, 0x4E ),
     DIKS_AB                       = DFB_KEY( SPECIAL, 0x4F ),
     DIKS_PLAYPAUSE                = DFB_KEY( SPECIAL, 0x50 ),
     DIKS_PLAY                     = DFB_KEY( SPECIAL, 0x51 ),
     DIKS_STOP                     = DFB_KEY( SPECIAL, 0x52 ),
     DIKS_RESTART                  = DFB_KEY( SPECIAL, 0x53 ),
     DIKS_SLOW                     = DFB_KEY( SPECIAL, 0x54 ),
     DIKS_FAST                     = DFB_KEY( SPECIAL, 0x55 ),
     DIKS_RECORD                   = DFB_KEY( SPECIAL, 0x56 ),
     DIKS_EJECT                    = DFB_KEY( SPECIAL, 0x57 ),
     DIKS_SHUFFLE                  = DFB_KEY( SPECIAL, 0x58 ),
     DIKS_REWIND                   = DFB_KEY( SPECIAL, 0x59 ),
     DIKS_FASTFORWARD              = DFB_KEY( SPECIAL, 0x5A ),
     DIKS_PREVIOUS                 = DFB_KEY( SPECIAL, 0x5B ),
     DIKS_NEXT                     = DFB_KEY( SPECIAL, 0x5C ),
     DIKS_BEGIN                    = DFB_KEY( SPECIAL, 0x5D ),

     DIKS_DIGITS                   = DFB_KEY( SPECIAL, 0x5E ),
     DIKS_TEEN                     = DFB_KEY( SPECIAL, 0x5F ),
     DIKS_TWEN                     = DFB_KEY( SPECIAL, 0x60 ),

     DIKS_BREAK                    = DFB_KEY( SPECIAL, 0x61 ),
     DIKS_EXIT                     = DFB_KEY( SPECIAL, 0x62 ),
     DIKS_SETUP                    = DFB_KEY( SPECIAL, 0x63 ),

     DIKS_CURSOR_LEFT_UP           = DFB_KEY( SPECIAL, 0x64 ),
     DIKS_CURSOR_LEFT_DOWN         = DFB_KEY( SPECIAL, 0x65 ),
     DIKS_CURSOR_UP_RIGHT          = DFB_KEY( SPECIAL, 0x66 ),
     DIKS_CURSOR_DOWN_RIGHT        = DFB_KEY( SPECIAL, 0x67 ),
     DIKS_SHARE                    = DFB_KEY( SPECIAL, 0x68 ),

     /*
      * Unicode private area - DirectFB Function keys
      *
      * More function keys are available via DFB_FUNCTION_KEY(n).
      */
     DIKS_F1                       = DFB_FUNCTION_KEY(  1 ),
     DIKS_F2                       = DFB_FUNCTION_KEY(  2 ),
     DIKS_F3                       = DFB_FUNCTION_KEY(  3 ),
     DIKS_F4                       = DFB_FUNCTION_KEY(  4 ),
     DIKS_F5                       = DFB_FUNCTION_KEY(  5 ),
     DIKS_F6                       = DFB_FUNCTION_KEY(  6 ),
     DIKS_F7                       = DFB_FUNCTION_KEY(  7 ),
     DIKS_F8                       = DFB_FUNCTION_KEY(  8 ),
     DIKS_F9                       = DFB_FUNCTION_KEY(  9 ),
     DIKS_F10                      = DFB_FUNCTION_KEY( 10 ),
     DIKS_F11                      = DFB_FUNCTION_KEY( 11 ),
     DIKS_F12                      = DFB_FUNCTION_KEY( 12 ),

     /*
      * Unicode private area - DirectFB Modifier keys
      */
     DIKS_SHIFT                    = DFB_MODIFIER_KEY( DIMKI_SHIFT ),
     DIKS_CONTROL                  = DFB_MODIFIER_KEY( DIMKI_CONTROL ),
     DIKS_ALT                      = DFB_MODIFIER_KEY( DIMKI_ALT ),
     DIKS_ALTGR                    = DFB_MODIFIER_KEY( DIMKI_ALTGR ),
     DIKS_META                     = DFB_MODIFIER_KEY( DIMKI_META ),
     DIKS_SUPER                    = DFB_MODIFIER_KEY( DIMKI_SUPER ),
     DIKS_HYPER                    = DFB_MODIFIER_KEY( DIMKI_HYPER ),

     /*
      * Unicode private area - DirectFB Lock keys
      */
     DIKS_CAPS_LOCK                = DFB_KEY( LOCK, 0x00 ),
     DIKS_NUM_LOCK                 = DFB_KEY( LOCK, 0x01 ),
     DIKS_SCROLL_LOCK              = DFB_KEY( LOCK, 0x02 ),

     /*
      * Unicode private area - DirectFB Dead keys
      */
     DIKS_DEAD_ABOVEDOT            = DFB_KEY( DEAD, 0x00 ),
     DIKS_DEAD_ABOVERING           = DFB_KEY( DEAD, 0x01 ),
     DIKS_DEAD_ACUTE               = DFB_KEY( DEAD, 0x02 ),
     DIKS_DEAD_BREVE               = DFB_KEY( DEAD, 0x03 ),
     DIKS_DEAD_CARON               = DFB_KEY( DEAD, 0x04 ),
     DIKS_DEAD_CEDILLA             = DFB_KEY( DEAD, 0x05 ),
     DIKS_DEAD_CIRCUMFLEX          = DFB_KEY( DEAD, 0x06 ),
     DIKS_DEAD_DIAERESIS           = DFB_KEY( DEAD, 0x07 ),
     DIKS_DEAD_DOUBLEACUTE         = DFB_KEY( DEAD, 0x08 ),
     DIKS_DEAD_GRAVE               = DFB_KEY( DEAD, 0x09 ),
     DIKS_DEAD_IOTA                = DFB_KEY( DEAD, 0x0A ),
     DIKS_DEAD_MACRON              = DFB_KEY( DEAD, 0x0B ),
     DIKS_DEAD_OGONEK              = DFB_KEY( DEAD, 0x0C ),
     DIKS_DEAD_SEMIVOICED_SOUND    = DFB_KEY( DEAD, 0x0D ),
     DIKS_DEAD_TILDE               = DFB_KEY( DEAD, 0x0E ),
     DIKS_DEAD_VOICED_SOUND        = DFB_KEY( DEAD, 0x0F ),
     DIKS_DEAD_DEGREE              = DFB_KEY( DEAD, 0x10 ),
     DIKS_DEAD_DEGREE_LAT          = DFB_KEY( DEAD, 0x11 ),
     DIKS_DEAD_DEGREE_CZE          = DFB_KEY( DEAD, 0x12 ),
     DIKS_DEAD_GRC_TONOS           = DFB_KEY( DEAD, 0x13 ),
     DIKS_DEAD_GRC_DIAERESIS       = DFB_KEY( DEAD, 0x14 ),
     DIKS_DEAD_GRC_DIALYTIKA       = DFB_KEY( DEAD, 0x15 ),
     DIKS_DEAD_ACUTE_CZE           = DFB_KEY( DEAD, 0x16 ),
     DIKS_DEAD_CEDILLA_CZE         = DFB_KEY( DEAD, 0x17 ),
     DIKS_DEAD_MIDDLEDOT           = DFB_KEY( DEAD, 0x18 ),
     DIKS_DEAD_APOSTROPHE          = DFB_KEY( DEAD, 0x19 ),

     /*
      * Unicode private area - DirectFB Custom keys
      *
      * More custom keys are available via DFB_CUSTOM_KEY(n).
      */
     DIKS_CUSTOM0                  = DFB_CUSTOM_KEY( 0 ),
     DIKS_CUSTOM1                  = DFB_CUSTOM_KEY( 1 ),
     DIKS_CUSTOM2                  = DFB_CUSTOM_KEY( 2 ),
     DIKS_CUSTOM3                  = DFB_CUSTOM_KEY( 3 ),
     DIKS_CUSTOM4                  = DFB_CUSTOM_KEY( 4 ),
     DIKS_CUSTOM5                  = DFB_CUSTOM_KEY( 5 ),
     DIKS_CUSTOM6                  = DFB_CUSTOM_KEY( 6 ),
     DIKS_CUSTOM7                  = DFB_CUSTOM_KEY( 7 ),
     DIKS_CUSTOM8                  = DFB_CUSTOM_KEY( 8 ),
     DIKS_CUSTOM9                  = DFB_CUSTOM_KEY( 9 ),
     DIKS_CUSTOM10                 = DFB_CUSTOM_KEY( 10 ),
     DIKS_CUSTOM11                 = DFB_CUSTOM_KEY( 11 ),
     DIKS_CUSTOM12                 = DFB_CUSTOM_KEY( 12 ),
     DIKS_CUSTOM13                 = DFB_CUSTOM_KEY( 13 ),
     DIKS_CUSTOM14                 = DFB_CUSTOM_KEY( 14 ),
     DIKS_CUSTOM15                 = DFB_CUSTOM_KEY( 15 ),
     DIKS_CUSTOM16                 = DFB_CUSTOM_KEY( 16 ),
     DIKS_CUSTOM17                 = DFB_CUSTOM_KEY( 17 ),
     DIKS_CUSTOM18                 = DFB_CUSTOM_KEY( 18 ),
     DIKS_CUSTOM19                 = DFB_CUSTOM_KEY( 19 ),
     DIKS_CUSTOM20                 = DFB_CUSTOM_KEY( 20 ),
     DIKS_CUSTOM21                 = DFB_CUSTOM_KEY( 21 ),
     DIKS_CUSTOM22                 = DFB_CUSTOM_KEY( 22 ),
     DIKS_CUSTOM23                 = DFB_CUSTOM_KEY( 23 ),
     DIKS_CUSTOM24                 = DFB_CUSTOM_KEY( 24 ),
     DIKS_CUSTOM25                 = DFB_CUSTOM_KEY( 25 ),
     DIKS_CUSTOM26                 = DFB_CUSTOM_KEY( 26 ),
     DIKS_CUSTOM27                 = DFB_CUSTOM_KEY( 27 ),
     DIKS_CUSTOM28                 = DFB_CUSTOM_KEY( 28 ),
     DIKS_CUSTOM29                 = DFB_CUSTOM_KEY( 29 ),
     DIKS_CUSTOM30                 = DFB_CUSTOM_KEY( 30 ),
     DIKS_CUSTOM31                 = DFB_CUSTOM_KEY( 31 ),
     DIKS_CUSTOM32                 = DFB_CUSTOM_KEY( 32 ),
     DIKS_CUSTOM33                 = DFB_CUSTOM_KEY( 33 ),
     DIKS_CUSTOM34                 = DFB_CUSTOM_KEY( 34 ),
     DIKS_CUSTOM35                 = DFB_CUSTOM_KEY( 35 ),
     DIKS_CUSTOM36                 = DFB_CUSTOM_KEY( 36 ),
     DIKS_CUSTOM37                 = DFB_CUSTOM_KEY( 37 ),
     DIKS_CUSTOM38                 = DFB_CUSTOM_KEY( 38 ),
     DIKS_CUSTOM39                 = DFB_CUSTOM_KEY( 39 ),
     DIKS_CUSTOM40                 = DFB_CUSTOM_KEY( 40 ),
     DIKS_CUSTOM41                 = DFB_CUSTOM_KEY( 41 ),
     DIKS_CUSTOM42                 = DFB_CUSTOM_KEY( 42 ),
     DIKS_CUSTOM43                 = DFB_CUSTOM_KEY( 43 ),
     DIKS_CUSTOM44                 = DFB_CUSTOM_KEY( 44 ),
     DIKS_CUSTOM45                 = DFB_CUSTOM_KEY( 45 ),
     DIKS_CUSTOM46                 = DFB_CUSTOM_KEY( 46 ),
     DIKS_CUSTOM47                 = DFB_CUSTOM_KEY( 47 ),
     DIKS_CUSTOM48                 = DFB_CUSTOM_KEY( 48 ),
     DIKS_CUSTOM49                 = DFB_CUSTOM_KEY( 49 ),
     DIKS_CUSTOM50                 = DFB_CUSTOM_KEY( 50 ),
     DIKS_CUSTOM51                 = DFB_CUSTOM_KEY( 51 ),
     DIKS_CUSTOM52                 = DFB_CUSTOM_KEY( 52 ),
     DIKS_CUSTOM53                 = DFB_CUSTOM_KEY( 53 ),
     DIKS_CUSTOM54                 = DFB_CUSTOM_KEY( 54 ),
     DIKS_CUSTOM55                 = DFB_CUSTOM_KEY( 55 ),
     DIKS_CUSTOM56                 = DFB_CUSTOM_KEY( 56 ),
     DIKS_CUSTOM57                 = DFB_CUSTOM_KEY( 57 ),
     DIKS_CUSTOM58                 = DFB_CUSTOM_KEY( 58 ),
     DIKS_CUSTOM59                 = DFB_CUSTOM_KEY( 59 ),
     DIKS_CUSTOM60                 = DFB_CUSTOM_KEY( 60 ),
     DIKS_CUSTOM61                 = DFB_CUSTOM_KEY( 61 ),
     DIKS_CUSTOM62                 = DFB_CUSTOM_KEY( 62 ),
     DIKS_CUSTOM63                 = DFB_CUSTOM_KEY( 63 ),
     DIKS_CUSTOM64                 = DFB_CUSTOM_KEY( 64 ),
     DIKS_CUSTOM65                 = DFB_CUSTOM_KEY( 65 ),
     DIKS_CUSTOM66                 = DFB_CUSTOM_KEY( 66 ),
     DIKS_CUSTOM67                 = DFB_CUSTOM_KEY( 67 ),
     DIKS_CUSTOM68                 = DFB_CUSTOM_KEY( 68 ),
     DIKS_CUSTOM69                 = DFB_CUSTOM_KEY( 69 ),
     DIKS_CUSTOM70                 = DFB_CUSTOM_KEY( 70 ),
     DIKS_CUSTOM71                 = DFB_CUSTOM_KEY( 71 ),
     DIKS_CUSTOM72                 = DFB_CUSTOM_KEY( 72 ),
     DIKS_CUSTOM73                 = DFB_CUSTOM_KEY( 73 ),
     DIKS_CUSTOM74                 = DFB_CUSTOM_KEY( 74 ),
     DIKS_CUSTOM75                 = DFB_CUSTOM_KEY( 75 ),
     DIKS_CUSTOM76                 = DFB_CUSTOM_KEY( 76 ),
     DIKS_CUSTOM77                 = DFB_CUSTOM_KEY( 77 ),
     DIKS_CUSTOM78                 = DFB_CUSTOM_KEY( 78 ),
     DIKS_CUSTOM79                 = DFB_CUSTOM_KEY( 79 ),
     DIKS_CUSTOM80                 = DFB_CUSTOM_KEY( 80 ),
     DIKS_CUSTOM81                 = DFB_CUSTOM_KEY( 81 ),
     DIKS_CUSTOM82                 = DFB_CUSTOM_KEY( 82 ),
     DIKS_CUSTOM83                 = DFB_CUSTOM_KEY( 83 ),
     DIKS_CUSTOM84                 = DFB_CUSTOM_KEY( 84 ),
     DIKS_CUSTOM85                 = DFB_CUSTOM_KEY( 85 ),
     DIKS_CUSTOM86                 = DFB_CUSTOM_KEY( 86 ),
     DIKS_CUSTOM87                 = DFB_CUSTOM_KEY( 87 ),
     DIKS_CUSTOM88                 = DFB_CUSTOM_KEY( 88 ),
     DIKS_CUSTOM89                 = DFB_CUSTOM_KEY( 89 ),
     DIKS_CUSTOM90                 = DFB_CUSTOM_KEY( 90 ),
     DIKS_CUSTOM91                 = DFB_CUSTOM_KEY( 91 ),
     DIKS_CUSTOM92                 = DFB_CUSTOM_KEY( 92 ),
     DIKS_CUSTOM93                 = DFB_CUSTOM_KEY( 93 ),
     DIKS_CUSTOM94                 = DFB_CUSTOM_KEY( 94 ),
     DIKS_CUSTOM95                 = DFB_CUSTOM_KEY( 95 ),
     DIKS_CUSTOM96                 = DFB_CUSTOM_KEY( 96 ),
     DIKS_CUSTOM97                 = DFB_CUSTOM_KEY( 97 ),
     DIKS_CUSTOM98                 = DFB_CUSTOM_KEY( 98 ),
     DIKS_CUSTOM99                 = DFB_CUSTOM_KEY( 99 ),
     DIKS_CUSTOM100                = DFB_CUSTOM_KEY( 100 ),
     DIKS_CUSTOM101                = DFB_CUSTOM_KEY( 101 ),
     DIKS_CUSTOM102                = DFB_CUSTOM_KEY( 102 ),
     DIKS_CUSTOM103                = DFB_CUSTOM_KEY( 103 ),
     DIKS_CUSTOM104                = DFB_CUSTOM_KEY( 104 ),
     DIKS_CUSTOM105                = DFB_CUSTOM_KEY( 105 ),
     DIKS_CUSTOM106                = DFB_CUSTOM_KEY( 106 ),
     DIKS_CUSTOM107                = DFB_CUSTOM_KEY( 107 ),
     DIKS_CUSTOM108                = DFB_CUSTOM_KEY( 108 ),
     DIKS_CUSTOM109                = DFB_CUSTOM_KEY( 109 ),
     DIKS_CUSTOM110                = DFB_CUSTOM_KEY( 110 ),
     DIKS_CUSTOM111                = DFB_CUSTOM_KEY( 111 ),
     DIKS_CUSTOM112                = DFB_CUSTOM_KEY( 112 ),
     DIKS_CUSTOM113                = DFB_CUSTOM_KEY( 113 ),
     DIKS_CUSTOM114                = DFB_CUSTOM_KEY( 114 ),
     DIKS_CUSTOM115                = DFB_CUSTOM_KEY( 115 ),
     DIKS_CUSTOM116                = DFB_CUSTOM_KEY( 116 ),
     DIKS_CUSTOM117                = DFB_CUSTOM_KEY( 117 ),
     DIKS_CUSTOM118                = DFB_CUSTOM_KEY( 118 ),
     DIKS_CUSTOM119                = DFB_CUSTOM_KEY( 119 ),
     DIKS_CUSTOM120                = DFB_CUSTOM_KEY( 120 ),
     DIKS_CUSTOM121                = DFB_CUSTOM_KEY( 121 ),
     DIKS_CUSTOM122                = DFB_CUSTOM_KEY( 122 ),
     DIKS_CUSTOM123                = DFB_CUSTOM_KEY( 123 ),
     DIKS_CUSTOM124                = DFB_CUSTOM_KEY( 124 ),
     DIKS_CUSTOM125                = DFB_CUSTOM_KEY( 125 ),
     DIKS_CUSTOM126                = DFB_CUSTOM_KEY( 126 ),
     DIKS_CUSTOM127                = DFB_CUSTOM_KEY( 127 ),
     DIKS_CUSTOM128                = DFB_CUSTOM_KEY( 128 ),
     DIKS_CUSTOM129                = DFB_CUSTOM_KEY( 129 ),
     DIKS_CUSTOM130                = DFB_CUSTOM_KEY( 130 ),
     DIKS_CUSTOM131                = DFB_CUSTOM_KEY( 131 ),
     DIKS_CUSTOM132                = DFB_CUSTOM_KEY( 132 ),
     DIKS_CUSTOM133                = DFB_CUSTOM_KEY( 133 ),
     DIKS_CUSTOM134                = DFB_CUSTOM_KEY( 134 ),
     DIKS_CUSTOM135                = DFB_CUSTOM_KEY( 135 ),
     DIKS_CUSTOM136                = DFB_CUSTOM_KEY( 136 ),
     DIKS_CUSTOM137                = DFB_CUSTOM_KEY( 137 ),
     DIKS_CUSTOM138                = DFB_CUSTOM_KEY( 138 ),
     DIKS_CUSTOM139                = DFB_CUSTOM_KEY( 139 ),
     DIKS_CUSTOM140                = DFB_CUSTOM_KEY( 140 ),
     DIKS_CUSTOM141                = DFB_CUSTOM_KEY( 141 ),
     DIKS_CUSTOM142                = DFB_CUSTOM_KEY( 142 ),
     DIKS_CUSTOM143                = DFB_CUSTOM_KEY( 143 ),
     DIKS_CUSTOM144                = DFB_CUSTOM_KEY( 144 ),
     DIKS_CUSTOM145                = DFB_CUSTOM_KEY( 145 ),
     DIKS_CUSTOM146                = DFB_CUSTOM_KEY( 146 ),
     DIKS_CUSTOM147                = DFB_CUSTOM_KEY( 147 ),
     DIKS_CUSTOM148                = DFB_CUSTOM_KEY( 148 ),
     DIKS_CUSTOM149                = DFB_CUSTOM_KEY( 149 ),
     DIKS_CUSTOM150                = DFB_CUSTOM_KEY( 150 ),
     DIKS_CUSTOM151                = DFB_CUSTOM_KEY( 151 ),
     DIKS_CUSTOM152                = DFB_CUSTOM_KEY( 152 ),
     DIKS_CUSTOM153                = DFB_CUSTOM_KEY( 153 ),
     DIKS_CUSTOM154                = DFB_CUSTOM_KEY( 154 ),
     DIKS_CUSTOM155                = DFB_CUSTOM_KEY( 155 ),
     DIKS_CUSTOM156                = DFB_CUSTOM_KEY( 156 ),
     DIKS_CUSTOM157                = DFB_CUSTOM_KEY( 157 ),
     DIKS_CUSTOM158                = DFB_CUSTOM_KEY( 158 ),
     DIKS_CUSTOM159                = DFB_CUSTOM_KEY( 159 ),
     DIKS_CUSTOM160                = DFB_CUSTOM_KEY( 160 ),
     DIKS_CUSTOM161                = DFB_CUSTOM_KEY( 161 ),
     DIKS_CUSTOM162                = DFB_CUSTOM_KEY( 162 ),
     DIKS_CUSTOM163                = DFB_CUSTOM_KEY( 163 ),
     DIKS_CUSTOM164                = DFB_CUSTOM_KEY( 164 ),
     DIKS_CUSTOM165                = DFB_CUSTOM_KEY( 165 ),
     DIKS_CUSTOM166                = DFB_CUSTOM_KEY( 166 ),
     DIKS_CUSTOM167                = DFB_CUSTOM_KEY( 167 ),
     DIKS_CUSTOM168                = DFB_CUSTOM_KEY( 168 ),
     DIKS_CUSTOM169                = DFB_CUSTOM_KEY( 169 ),
     DIKS_CUSTOM170                = DFB_CUSTOM_KEY( 170 ),
     DIKS_CUSTOM171                = DFB_CUSTOM_KEY( 171 ),
     DIKS_CUSTOM172                = DFB_CUSTOM_KEY( 172 ),
     DIKS_CUSTOM173                = DFB_CUSTOM_KEY( 173 ),
     DIKS_CUSTOM174                = DFB_CUSTOM_KEY( 174 ),
     DIKS_CUSTOM175                = DFB_CUSTOM_KEY( 175 ),
     DIKS_CUSTOM176                = DFB_CUSTOM_KEY( 176 ),
     DIKS_CUSTOM177                = DFB_CUSTOM_KEY( 177 ),
     DIKS_CUSTOM178                = DFB_CUSTOM_KEY( 178 ),
     DIKS_CUSTOM179                = DFB_CUSTOM_KEY( 179 ),
     DIKS_CUSTOM180                = DFB_CUSTOM_KEY( 180 ),
     DIKS_CUSTOM181                = DFB_CUSTOM_KEY( 181 ),
     DIKS_CUSTOM182                = DFB_CUSTOM_KEY( 182 ),
     DIKS_CUSTOM183                = DFB_CUSTOM_KEY( 183 ),
     DIKS_CUSTOM184                = DFB_CUSTOM_KEY( 184 ),
     DIKS_CUSTOM185                = DFB_CUSTOM_KEY( 185 ),
     DIKS_CUSTOM186                = DFB_CUSTOM_KEY( 186 ),
     DIKS_CUSTOM187                = DFB_CUSTOM_KEY( 187 ),
     DIKS_CUSTOM188                = DFB_CUSTOM_KEY( 188 ),
     DIKS_CUSTOM189                = DFB_CUSTOM_KEY( 189 ),
     DIKS_CUSTOM190                = DFB_CUSTOM_KEY( 190 ),
     DIKS_CUSTOM191                = DFB_CUSTOM_KEY( 191 ),
     DIKS_CUSTOM192                = DFB_CUSTOM_KEY( 192 ),
     DIKS_CUSTOM193                = DFB_CUSTOM_KEY( 193 ),
     DIKS_CUSTOM194                = DFB_CUSTOM_KEY( 194 ),
     DIKS_CUSTOM195                = DFB_CUSTOM_KEY( 195 ),
     DIKS_CUSTOM196                = DFB_CUSTOM_KEY( 196 ),
     DIKS_CUSTOM197                = DFB_CUSTOM_KEY( 197 ),
     DIKS_CUSTOM198                = DFB_CUSTOM_KEY( 198 ),
     DIKS_CUSTOM199                = DFB_CUSTOM_KEY( 199 ),
     DIKS_CUSTOM200                = DFB_CUSTOM_KEY( 200 ),
     DIKS_CUSTOM201                = DFB_CUSTOM_KEY( 201 ),
     DIKS_CUSTOM202                = DFB_CUSTOM_KEY( 202 ),
     DIKS_CUSTOM203                = DFB_CUSTOM_KEY( 203 ),
     DIKS_CUSTOM204                = DFB_CUSTOM_KEY( 204 ),
     DIKS_CUSTOM205                = DFB_CUSTOM_KEY( 205 ),
     DIKS_CUSTOM206                = DFB_CUSTOM_KEY( 206 ),
     DIKS_CUSTOM207                = DFB_CUSTOM_KEY( 207 ),
     DIKS_CUSTOM208                = DFB_CUSTOM_KEY( 208 ),
     DIKS_CUSTOM209                = DFB_CUSTOM_KEY( 209 ),
     DIKS_CUSTOM210                = DFB_CUSTOM_KEY( 210 ),
     DIKS_CUSTOM211                = DFB_CUSTOM_KEY( 211 ),
     DIKS_CUSTOM212                = DFB_CUSTOM_KEY( 212 ),
     DIKS_CUSTOM213                = DFB_CUSTOM_KEY( 213 ),
     DIKS_CUSTOM214                = DFB_CUSTOM_KEY( 214 ),
     DIKS_CUSTOM215                = DFB_CUSTOM_KEY( 215 ),
     DIKS_CUSTOM216                = DFB_CUSTOM_KEY( 216 ),
     DIKS_CUSTOM217                = DFB_CUSTOM_KEY( 217 ),
     DIKS_CUSTOM218                = DFB_CUSTOM_KEY( 218 ),
     DIKS_CUSTOM219                = DFB_CUSTOM_KEY( 219 ),
     DIKS_CUSTOM220                = DFB_CUSTOM_KEY( 220 ),
     DIKS_CUSTOM221                = DFB_CUSTOM_KEY( 221 ),
     DIKS_CUSTOM222                = DFB_CUSTOM_KEY( 222 ),
     DIKS_CUSTOM223                = DFB_CUSTOM_KEY( 223 ),
     DIKS_CUSTOM224                = DFB_CUSTOM_KEY( 224 ),
     DIKS_CUSTOM225                = DFB_CUSTOM_KEY( 225 ),
     DIKS_CUSTOM226                = DFB_CUSTOM_KEY( 226 ),
     DIKS_CUSTOM227                = DFB_CUSTOM_KEY( 227 ),
     DIKS_CUSTOM228                = DFB_CUSTOM_KEY( 228 ),
     DIKS_CUSTOM229                = DFB_CUSTOM_KEY( 229 ),
     DIKS_CUSTOM230                = DFB_CUSTOM_KEY( 230 ),
     DIKS_CUSTOM231                = DFB_CUSTOM_KEY( 231 ),
     DIKS_CUSTOM232                = DFB_CUSTOM_KEY( 232 ),
     DIKS_CUSTOM233                = DFB_CUSTOM_KEY( 233 ),
     DIKS_CUSTOM234                = DFB_CUSTOM_KEY( 234 ),
     DIKS_CUSTOM235                = DFB_CUSTOM_KEY( 235 ),
     DIKS_CUSTOM236                = DFB_CUSTOM_KEY( 236 ),
     DIKS_CUSTOM237                = DFB_CUSTOM_KEY( 237 ),
     DIKS_CUSTOM238                = DFB_CUSTOM_KEY( 238 ),
     DIKS_CUSTOM239                = DFB_CUSTOM_KEY( 239 ),
     DIKS_CUSTOM240                = DFB_CUSTOM_KEY( 240 ),
     DIKS_CUSTOM241                = DFB_CUSTOM_KEY( 241 ),
     DIKS_CUSTOM242                = DFB_CUSTOM_KEY( 242 ),
     DIKS_CUSTOM243                = DFB_CUSTOM_KEY( 243 ),
     DIKS_CUSTOM244                = DFB_CUSTOM_KEY( 244 ),
     DIKS_CUSTOM245                = DFB_CUSTOM_KEY( 245 ),
     DIKS_CUSTOM246                = DFB_CUSTOM_KEY( 246 ),
     DIKS_CUSTOM247                = DFB_CUSTOM_KEY( 247 ),
     DIKS_CUSTOM248                = DFB_CUSTOM_KEY( 248 ),
     DIKS_CUSTOM249                = DFB_CUSTOM_KEY( 249 ),
     DIKS_CUSTOM250                = DFB_CUSTOM_KEY( 250 ),
     DIKS_CUSTOM251                = DFB_CUSTOM_KEY( 251 ),
     DIKS_CUSTOM252                = DFB_CUSTOM_KEY( 252 ),
     DIKS_CUSTOM253                = DFB_CUSTOM_KEY( 253 ),
     DIKS_CUSTOM254                = DFB_CUSTOM_KEY( 254 ),
     DIKS_CUSTOM255                = DFB_CUSTOM_KEY( 255 ),
     DFB_BTN_DIGIT_0                   = BTN_DIGIT_0,
     DFB_BTN_DIGIT_1                   = BTN_DIGIT_1,
     DFB_BTN_DIGIT_2                   = BTN_DIGIT_2,
     DFB_BTN_DIGIT_3                   = BTN_DIGIT_3,
     DFB_BTN_DIGIT_4                   = BTN_DIGIT_4,
     DFB_BTN_DIGIT_5                   = BTN_DIGIT_5,
     DFB_BTN_DIGIT_6                   = BTN_DIGIT_6,
     DFB_BTN_DIGIT_7                   = BTN_DIGIT_7,
     DFB_BTN_DIGIT_8                   = BTN_DIGIT_8,
     DFB_BTN_DIGIT_9                   = BTN_DIGIT_9,
     DFB_BTN_DIGIT_PLUS_5              = BTN_DIGIT_PLUS_5,     
     DFB_BTN_DIGIT_PLUS_10             = BTN_DIGIT_PLUS_10,
     DFB_BTN_DIGIT_PLUS_20             = BTN_DIGIT_PLUS_20,          
     DFB_BTN_DIGIT_PLUS_100            = BTN_DIGIT_PLUS_100,     
     DFB_BTN_DIGIT_DOT                 = BTN_DIGIT_DOT,
     DFB_BTN_CURSOR_LEFT               = BTN_CURSOR_LEFT,     
     DFB_BTN_CURSOR_RIGHT              = BTN_CURSOR_RIGHT,
     DFB_BTN_CURSOR_UP                 = BTN_CURSOR_UP,
     DFB_BTN_CURSOR_DOWN               = BTN_CURSOR_DOWN,
     DFB_BTN_SELECT                    = BTN_SELECT,
     DFB_BTN_EXIT                      = BTN_EXIT,
     DFB_BTN_CLEAR                     = BTN_CLEAR,
     DFB_BTN_ENTER                     = BTN_ENTER,
     DFB_BTN_RETURN                    = BTN_RETURN,
     DFB_BTN_PRG_UP                    = BTN_PRG_UP,     
     DFB_BTN_PRG_DOWN                  = BTN_PRG_DOWN,
     DFB_BTN_PREV_PRG                  = BTN_PREV_PRG,
     DFB_BTN_CH_LIST                   = BTN_CH_LIST,
     DFB_BTN_FAV_CH                    = BTN_FAV_CH,
     DFB_BTN_FAV_CH_UP                 = BTN_FAV_CH_UP,     
     DFB_BTN_FAV_CH_DOWN               = BTN_FAV_CH_DOWN,
     DFB_BTN_FAVORITE                  = BTN_FAVORITE,     
     DFB_BTN_PIP                       = BTN_PIP,
     DFB_BTN_PIP_CH_UP                 = BTN_PIP_CH_UP,
     DFB_BTN_PIP_CH_DOWN               = BTN_PIP_CH_DOWN,     
     DFB_BTN_PIP_SIZE                  = BTN_PIP_SIZE,
     DFB_BTN_PIP_POS                   = BTN_PIP_POS,
     DFB_BTN_PIP_INPUT_SRC             = BTN_PIP_INPUT_SRC,
     DFB_BTN_POP                       = BTN_POP,
     DFB_BTN_PIP_POP                   = BTN_PIP_POP,
     DFB_BTN_SWAP                      = BTN_SWAP,
     DFB_BTN_FREEZE                    = BTN_FREEZE,
     DFB_BTN_ZOOM                      = BTN_ZOOM,     
     DFB_BTN_ZOOM_IN                   = BTN_ZOOM_IN,
     DFB_BTN_ZOOM_OUT                  = BTN_ZOOM_OUT,
     DFB_BTN_ASPECT                    = BTN_ASPECT,
     DFB_BTN_P_EFFECT                  = BTN_P_EFFECT,     
     DFB_BTN_PRG_INFO                  = BTN_PRG_INFO,     
     DFB_BTN_BANNER                    = BTN_BANNER,
     DFB_BTN_PRG_DETAIL                = BTN_PRG_DETAIL,
     DFB_BTN_CC                        = BTN_CC,
     DFB_BTN_ADD_ERASE                 = BTN_ADD_ERASE,     
     DFB_BTN_SLEEP                     = BTN_SLEEP,               
     DFB_BTN_TIMER                     = BTN_TIMER,
     DFB_BTN_AUTO_SYNC                 = BTN_AUTO_SYNC,
     DFB_BTN_INPUT_SRC                 = BTN_INPUT_SRC,
     DFB_BTN_TV                        = BTN_TV,
     DFB_BTN_TV_ANA                    = BTN_TV_ANA,
     DFB_BTN_TV_DIG                    = BTN_TV_DIG,
     DFB_BTN_TUNER_TER_ANA             = BTN_TUNER_TER_ANA,
     DFB_BTN_TUNER_CAB_ANA             = BTN_TUNER_CAB_ANA,
     DFB_BTN_TUNER_SAT_ANA             = BTN_TUNER_SAT_ANA,
     DFB_BTN_TUNER_TER_DIG             = BTN_TUNER_TER_DIG,
     DFB_BTN_TUNER_CAB_DIG             = BTN_TUNER_CAB_DIG,
     DFB_BTN_TUNER_SAT_DIG             = BTN_TUNER_SAT_DIG,
     DFB_BTN_COMPOSITE                 = BTN_COMPOSITE,
     DFB_BTN_COMPOSITE_1               = BTN_COMPOSITE_1,
     DFB_BTN_COMPOSITE_2               = BTN_COMPOSITE_2,
     DFB_BTN_COMPOSITE_3               = BTN_COMPOSITE_3,
     DFB_BTN_COMPOSITE_4               = BTN_COMPOSITE_4,
     DFB_BTN_S_VIDEO                   = BTN_S_VIDEO,
     DFB_BTN_S_VIDEO_1                 = BTN_S_VIDEO_1,
     DFB_BTN_S_VIDEO_2                 = BTN_S_VIDEO_2,
     DFB_BTN_S_VIDEO_3                 = BTN_S_VIDEO_3,
     DFB_BTN_S_VIDEO_4                 = BTN_S_VIDEO_4,                    
     DFB_BTN_COMPONENT                 = BTN_COMPONENT,     
     DFB_BTN_COMPONENT_1               = BTN_COMPONENT_1,
     DFB_BTN_COMPONENT_2               = BTN_COMPONENT_2,
     DFB_BTN_COMPONENT_3               = BTN_COMPONENT_3,
     DFB_BTN_COMPONENT_4               = BTN_COMPONENT_4,               
     DFB_BTN_VGA                       = BTN_VGA,
     DFB_BTN_DVI                       = BTN_DVI,
     DFB_BTN_DVI_1                     = BTN_DVI_1,
     DFB_BTN_DVI_2                     = BTN_DVI_2,
     DFB_BTN_DVI_3                     = BTN_DVI_3,
     DFB_BTN_DVI_4                     = BTN_DVI_4,
     DFB_BTN_HDMI                      = BTN_HDMI,
     DFB_BTN_HDMI_1                    = BTN_HDMI_1,
     DFB_BTN_HDMI_2                    = BTN_HDMI_2,
     DFB_BTN_HDMI_3                    = BTN_HDMI_3,
     DFB_BTN_HDMI_4                    = BTN_HDMI_4,
     DFB_BTN_HDMI_5                    = BTN_HDMI_5,
     DFB_BTN_SCART                     = BTN_SCART,
     DFB_BTN_SCART_1                   = BTN_SCART_1,
     DFB_BTN_SCART_2                   = BTN_SCART_2,
     DFB_BTN_SCART_3                   = BTN_SCART_3,
     DFB_BTN_SCART_4                   = BTN_SCART_4,                    
     DFB_BTN_DVD                       = BTN_DVD,
     DFB_BTN_ILINK                     = BTN_ILINK,     
     DFB_BTN_POWER_SAVING              = BTN_POWER_SAVING,
     DFB_BTN_DTV_RADIO_ATV             = BTN_DTV_RADIO_ATV,
     DFB_BTN_INP_SRC_1                 = BTN_INP_SRC_1,
     DFB_BTN_INP_SRC_2                 = BTN_INP_SRC_2,
     DFB_BTN_INP_SRC_3                 = BTN_INP_SRC_3,
     DFB_BTN_INP_SRC_4                 = BTN_INP_SRC_4,
     DFB_BTN_INP_SRC_5                 = BTN_INP_SRC_5,
     DFB_BTN_INP_SRC_6                 = BTN_INP_SRC_6,
     DFB_BTN_INP_SRC_7                 = BTN_INP_SRC_7,
     DFB_BTN_INP_SRC_8                 = BTN_INP_SRC_8,
     DFB_BTN_INP_SRC_9                 = BTN_INP_SRC_9,
     DFB_BTN_INP_SRC_10                = BTN_INP_SRC_10,
     DFB_BTN_INP_SRC_11                = BTN_INP_SRC_11,
     DFB_BTN_INP_SRC_12                = BTN_INP_SRC_12,
     DFB_BTN_INP_SRC_13                = BTN_INP_SRC_13,
     DFB_BTN_INP_SRC_14                = BTN_INP_SRC_14,
     DFB_BTN_INP_SRC_15                = BTN_INP_SRC_15,
     DFB_BTN_VOL_UP                    = BTN_VOL_UP,
     DFB_BTN_VOL_DOWN                  = BTN_VOL_DOWN,
     DFB_BTN_MUTE                      = BTN_MUTE,
     DFB_BTN_MTS                       = BTN_MTS,
     DFB_BTN_AUDIO                     = BTN_AUDIO,
     DFB_BTN_MTS_AUDIO                 = BTN_MTS_AUDIO,
     DFB_BTN_PIP_AUDIO                 = BTN_PIP_AUDIO,
     DFB_BTN_S_EFFECT                  = BTN_S_EFFECT,     
     DFB_BTN_TOOLS                     = BTN_TOOLS,
     DFB_BTN_TTX                       = BTN_TTX,
     DFB_BTN_INDEX                     = BTN_INDEX,
     DFB_BTN_REVEAL                    = BTN_REVEAL,     
     DFB_BTN_MIX                       = BTN_MIX,
     DFB_BTN_SUBPAGE                   = BTN_SUBPAGE,
     DFB_BTN_SIZE                      = BTN_SIZE,
     DFB_BTN_WIDE_MODE                 = BTN_WIDE_MODE,     
     DFB_BTN_POWER                     = BTN_POWER,
     DFB_BTN_MENU                      = BTN_MENU,
     DFB_BTN_EPG                       = BTN_EPG,     
     DFB_BTN_MEM_CARD                  = BTN_MEM_CARD,          
     DFB_BTN_TEXT                      = BTN_TEXT,
     DFB_BTN_POWER_ON                  = BTN_POWER_ON,
     DFB_BTN_POWER_OFF                 = BTN_POWER_OFF,
     DFB_BTN_PLAY                      = BTN_PLAY,
     DFB_BTN_PAUASE                    = BTN_PAUSE,
     DFB_BTN_STOP                      = BTN_STOP,
     DFB_BTN_RESUME                    = BTN_RESUME,
     DFB_BTN_RECORD                    = BTN_RECORD,
     DFB_BTN_NEXT                      = BTN_NEXT,
     DFB_BTN_PREV                      = BTN_PREV,
     DFB_BTN_FF                        = BTN_FF,
     DFB_BTN_FR                        = BTN_FR,
     DFB_BTN_SF                        = BTN_SF,
     DFB_BTN_SR                        = BTN_SR,
     DFB_BTN_STEPF                     = BTN_STEPF,
     DFB_BTN_STEPR                     = BTN_STEPR,
     DFB_BTN_PLAY_PAUSE                = BTN_PLAY_PAUSE,
     DFB_BTN_PAUSE_STEP                = BTN_PAUSE_STEP,
     DFB_BTN_STOP_RESUME               = BTN_STOP_RESUME,
     DFB_BTN_PLAY_ENTER                = BTN_PLAY_ENTER,
     DFB_BTN_CEC_MENU                  = BTN_CEC_MENU,
     DFB_BTN_TIMESHIFT                 = BTN_TIMESHIFT,
     DFB_BTN_EJECT                     = BTN_EJECT,
     DFB_BTN_TITLE_MENU                = BTN_TITLE_MENU,     
     DFB_BTN_ROOT_MENU                 = BTN_ROOT_MENU,
     DFB_BTN_GOTO                      = BTN_GOTO,
     DFB_BTN_MARK                      = BTN_MARK,
     DFB_BTN_DIGEST                    = BTN_DIGEST,
     DFB_BTN_PROGRAM                   = BTN_PROGRAM,
     DFB_BTN_VRMT                      = BTN_VRMT,
     DFB_BTN_PBC                       = BTN_PBC,
     DFB_BTN_REPEAT                    = BTN_REPEAT,     
     DFB_BTN_REPEAT_A                  = BTN_REPEAT_A,
     DFB_BTN_REPEAT_B                  = BTN_REPEAT_B,
     DFB_BTN_REPEAT_A_B                = BTN_REPEAT_A_B,
     DFB_BTN_SUB_TITLE                 = BTN_SUB_TITLE,
     DFB_BTN_ANGLE                     = BTN_ANGLE,
     DFB_BTN_DISPLAY                   = BTN_DISPLAY,
     DFB_BTN_RANDOM                    = BTN_RANDOM,
     DFB_BTN_PAL_NTSC                  = BTN_PAL_NTSC,
     DFB_BTN_SURROUND                  = BTN_SURROUND,
     DFB_BTN_EQUALIZER                 = BTN_EQUALIZER,
     DFB_BTN_HOME_DLIST                = BTN_HOME_DLIST,
     DFB_BTN_NEXT_DLIST                = BTN_NEXT_DLIST,
     DFB_BTN_PREV_DLIST                = BTN_PREV_DLIST,
     DFB_BTN_KARAOKE                   = BTN_KARAOKE,
     DFB_BTN_AUD_KEY_PLUS              = BTN_AUD_KEY_PLUS,
     DFB_BTN_AUD_KEY_MINUS             = BTN_AUD_KEY_MINUS,
     DFB_BTN_AUD_KEY_RESUME            = BTN_AUD_KEY_RESUME,
     DFB_BTN_ECHO_PLUS                 = BTN_ECHO_PLUS,
     DFB_BTN_ECHO_MINUS                = BTN_ECHO_MINUS,
     DFB_BTN_VOCAL_ASSIST              = BTN_VOCAL_ASSIST,
     DFB_BTN_MENU_PBC                  = BTN_MENU_PBC,
     DFB_BTN_TITLE_PBC                 = BTN_TITLE_PBC,
     DFB_BTN_RED                       = BTN_RED,
     DFB_BTN_GREEN                     = BTN_GREEN,
     DFB_BTN_YELLOW                    = BTN_YELLOW,
     DFB_BTN_BLUE                      = BTN_BLUE,
     DFB_BTN_3D                        = BTN_3D,   
     DFB_BTN_SHOW_VOL_BAR                  = BTN_SHOW_VOL_BAR,
     DFB_BTN_FACTORY_MODE_1               = BTN_FACTORY_MODE_1,     
     DFB_BTN_FACTORY_MODE_2               = BTN_FACTORY_MODE_2,     
     DFB_BTN_FACTORY_MODE_3               = BTN_FACTORY_MODE_3,     
     DFB_BTN_FACTORY_MODE_4               = BTN_FACTORY_MODE_4,     
     DFB_BTN_FACTORY_MODE_5               = BTN_FACTORY_MODE_5,     
     DFB_BTN_FACTORY_MODE_6               = BTN_FACTORY_MODE_6,     
     DFB_BTN_FACTORY_MODE_7               = BTN_FACTORY_MODE_7,     
     DFB_BTN_FACTORY_MODE_8               = BTN_FACTORY_MODE_8,     
     DFB_BTN_FUNCTION_1                   = BTN_FUNCTION_1,         
     DFB_BTN_FUNCTION_2                   = BTN_FUNCTION_2,         
     DFB_BTN_FUNCTION_3                   = BTN_FUNCTION_3,         
     DFB_BTN_FUNCTION_4                   = BTN_FUNCTION_4,         
     DFB_BTN_FUNCTION_5                   = BTN_FUNCTION_5,         
     DFB_BTN_FUNCTION_6                   = BTN_FUNCTION_6,         
     DFB_BTN_FUNCTION_7                   = BTN_FUNCTION_7,         
     DFB_BTN_FUNCTION_8                   = BTN_FUNCTION_8,         
     DFB_BTN_FUNCTION_9                   = BTN_FUNCTION_9,         
     DFB_BTN_FUNCTION_10                  = BTN_FUNCTION_10,        
     DFB_BTN_FUNCTION_11                  = BTN_FUNCTION_11,        
     DFB_BTN_FUNCTION_12                  = BTN_FUNCTION_12,        
     DFB_BTN_CUSTOM_1                     = BTN_CUSTOM_1,           
     DFB_BTN_CUSTOM_2                     = BTN_CUSTOM_2,           
     DFB_BTN_CUSTOM_3                     = BTN_CUSTOM_3,           
     DFB_BTN_CUSTOM_4                     = BTN_CUSTOM_4,           
     DFB_BTN_CUSTOM_5                     = BTN_CUSTOM_5,           
     DFB_BTN_CUSTOM_6                     = BTN_CUSTOM_6,           
     DFB_BTN_CUSTOM_7                     = BTN_CUSTOM_7,           
     DFB_BTN_CUSTOM_8                     = BTN_CUSTOM_8,           
     DFB_BTN_CUSTOM_9                     = BTN_CUSTOM_9,           
     DFB_BTN_CUSTOM_10                    = BTN_CUSTOM_10,          
     DFB_BTN_CUSTOM_11                    = BTN_CUSTOM_11,          
     DFB_BTN_CUSTOM_12                    = BTN_CUSTOM_12,          
     DFB_BTN_CUSTOM_13                    = BTN_CUSTOM_13,          
     DFB_BTN_CUSTOM_14                    = BTN_CUSTOM_14,          
     DFB_BTN_CUSTOM_15                    = BTN_CUSTOM_15,          
     DFB_BTN_CUSTOM_16                    = BTN_CUSTOM_16,          
     DFB_BTN_CUSTOM_17                    = BTN_CUSTOM_17,          
     DFB_BTN_CUSTOM_18                    = BTN_CUSTOM_18,          
     DFB_BTN_CUSTOM_19                    = BTN_CUSTOM_19,          
     DFB_BTN_CUSTOM_20                    = BTN_CUSTOM_20,          
     DFB_BTN_CUSTOM_21                    = BTN_CUSTOM_21,          
     DFB_BTN_CUSTOM_22                    = BTN_CUSTOM_22,          
     DFB_BTN_CUSTOM_23                    = BTN_CUSTOM_23,          
     DFB_BTN_CUSTOM_24                    = BTN_CUSTOM_24,          
     DFB_BTN_CUSTOM_25                    = BTN_CUSTOM_25,          
     DFB_BTN_CUSTOM_26                    = BTN_CUSTOM_26,          
     DFB_BTN_CUSTOM_27                    = BTN_CUSTOM_27,          
     DFB_BTN_CUSTOM_28                    = BTN_CUSTOM_28,          
     DFB_BTN_CUSTOM_29                    = BTN_CUSTOM_29,          
     DFB_BTN_CUSTOM_30                    = BTN_CUSTOM_30,          
     DFB_BTN_CUSTOM_31                    = BTN_CUSTOM_31,         
     DFB_BTN_CUSTOM_32                    = BTN_CUSTOM_32,         
     DFB_BTN_CUSTOM_33                    = BTN_CUSTOM_33,          
     DFB_BTN_CUSTOM_34                    = BTN_CUSTOM_34,          
     DFB_BTN_CUSTOM_35                    = BTN_CUSTOM_35,         
     DFB_BTN_CUSTOM_36                    = BTN_CUSTOM_36,          
     DFB_BTN_CUSTOM_37                    = BTN_CUSTOM_37,          
     DFB_BTN_CUSTOM_38                    = BTN_CUSTOM_38,          
     DFB_BTN_CUSTOM_39                    = BTN_CUSTOM_39,          
     DFB_BTN_CUSTOM_40                    = BTN_CUSTOM_40,         
     DFB_BTN_CUSTOM_41                    = BTN_CUSTOM_41,          
     DFB_BTN_CUSTOM_42                    = BTN_CUSTOM_42,          
     DFB_BTN_CUSTOM_43                    = BTN_CUSTOM_43,          
     DFB_BTN_CUSTOM_44                    = BTN_CUSTOM_44,          
     DFB_BTN_CUSTOM_45                    = BTN_CUSTOM_45,          
     DFB_BTN_CUSTOM_46                    = BTN_CUSTOM_46,         
     DFB_BTN_CUSTOM_47                    = BTN_CUSTOM_47,          
     DFB_BTN_CUSTOM_48                    = BTN_CUSTOM_48,          
     DFB_BTN_CUSTOM_49                    = BTN_CUSTOM_49,          
     DFB_BTN_CUSTOM_50                    = BTN_CUSTOM_50,          
     DFB_BTN_CUSTOM_51                    = BTN_CUSTOM_51,          
     DFB_BTN_CUSTOM_52                    = BTN_CUSTOM_52,          
     DFB_BTN_CUSTOM_53                    = BTN_CUSTOM_53,          
     DFB_BTN_CUSTOM_54                    = BTN_CUSTOM_54,          
     DFB_BTN_CUSTOM_55                    = BTN_CUSTOM_55,          
     DFB_BTN_CUSTOM_56                    = BTN_CUSTOM_56,          
     DFB_BTN_CUSTOM_57                    = BTN_CUSTOM_57,          
     DFB_BTN_CUSTOM_58                    = BTN_CUSTOM_58,          
     DFB_BTN_CUSTOM_59                    = BTN_CUSTOM_59,          
     DFB_BTN_CUSTOM_60                    = BTN_CUSTOM_60,          
     DFB_BTN_CUSTOM_61                    = BTN_CUSTOM_61,          
     DFB_BTN_CUSTOM_62                    = BTN_CUSTOM_62,          
     DFB_BTN_CUSTOM_63                    = BTN_CUSTOM_63,          
     DFB_BTN_CUSTOM_64                    = BTN_CUSTOM_64,          
     DFB_BTN_CUSTOM_65                    = BTN_CUSTOM_65,          
     DFB_BTN_CUSTOM_66                    = BTN_CUSTOM_66,          
     DFB_BTN_CUSTOM_67                    = BTN_CUSTOM_67,          
     DFB_BTN_CUSTOM_68                    = BTN_CUSTOM_68,          
     DFB_BTN_CUSTOM_69                    = BTN_CUSTOM_69,          
     DFB_BTN_CUSTOM_70                    = BTN_CUSTOM_70,          
     DFB_BTN_CUSTOM_71                    = BTN_CUSTOM_71,          
     DFB_BTN_CUSTOM_72                    = BTN_CUSTOM_72,          
     DFB_BTN_CUSTOM_73                    = BTN_CUSTOM_73,          
     DFB_BTN_CUSTOM_74                    = BTN_CUSTOM_74,          
     DFB_BTN_CUSTOM_75                    = BTN_CUSTOM_75,          
     DFB_BTN_CUSTOM_76                    = BTN_CUSTOM_76,          
     DFB_BTN_CUSTOM_77                    = BTN_CUSTOM_77,          
     DFB_BTN_CUSTOM_78                    = BTN_CUSTOM_78,          
     DFB_BTN_CUSTOM_79                    = BTN_CUSTOM_79,         
     DFB_BTN_CUSTOM_80                    = BTN_CUSTOM_80,          
     DFB_BTN_CUSTOM_81                    = BTN_CUSTOM_81,          
     DFB_BTN_CUSTOM_82                    = BTN_CUSTOM_82,          
     DFB_BTN_CUSTOM_83                    = BTN_CUSTOM_83,          
     DFB_BTN_CUSTOM_84                    = BTN_CUSTOM_84,          
     DFB_BTN_CUSTOM_85                    = BTN_CUSTOM_85,          
     DFB_BTN_CUSTOM_86                    = BTN_CUSTOM_86,          
     DFB_BTN_CUSTOM_87                    = BTN_CUSTOM_87,          
     DFB_BTN_CUSTOM_88                    = BTN_CUSTOM_88,          
     DFB_BTN_CUSTOM_89                    = BTN_CUSTOM_89,          
     DFB_BTN_CUSTOM_90                    = BTN_CUSTOM_90,          
     DFB_BTN_CUSTOM_91                    = BTN_CUSTOM_91,         
     DFB_BTN_CUSTOM_92                    = BTN_CUSTOM_92,          
     DFB_BTN_CUSTOM_93                    = BTN_CUSTOM_93,          
     DFB_BTN_CUSTOM_94                    = BTN_CUSTOM_94,          
     DFB_BTN_CUSTOM_95                    = BTN_CUSTOM_95,         
     DFB_BTN_CUSTOM_96                    = BTN_CUSTOM_96,          
     DFB_BTN_CUSTOM_97                    = BTN_CUSTOM_97,          
     DFB_BTN_CUSTOM_98                    = BTN_CUSTOM_98,          
     DFB_BTN_CUSTOM_99                    = BTN_CUSTOM_99,          
     DFB_BTN_CUSTOM_100                   = BTN_CUSTOM_100,         
     DFB_BTN_CUSTOM_101                   = BTN_CUSTOM_101,         
     DFB_BTN_CUSTOM_102                   = BTN_CUSTOM_102,        
     DFB_BTN_CUSTOM_103                   = BTN_CUSTOM_103,         
     DFB_BTN_CUSTOM_104                   = BTN_CUSTOM_104,         
     DFB_BTN_CUSTOM_105                   = BTN_CUSTOM_105,         
     DFB_BTN_CUSTOM_106                   = BTN_CUSTOM_106,         
     DFB_BTN_CUSTOM_107                   = BTN_CUSTOM_107,         
     DFB_BTN_CUSTOM_108                   = BTN_CUSTOM_108,         
     DFB_BTN_CUSTOM_109                   = BTN_CUSTOM_109,         
     DFB_BTN_CUSTOM_110                   = BTN_CUSTOM_110,         
     DFB_BTN_CUSTOM_111                   = BTN_CUSTOM_111,         
     DFB_BTN_CUSTOM_112                   = BTN_CUSTOM_112,         
     DFB_BTN_CUSTOM_113                   = BTN_CUSTOM_113,         
     DFB_BTN_CUSTOM_114                   = BTN_CUSTOM_114,        
     DFB_BTN_CUSTOM_115                   = BTN_CUSTOM_115,        
     DFB_BTN_CUSTOM_116                   = BTN_CUSTOM_116,         
     DFB_BTN_CUSTOM_117                   = BTN_CUSTOM_117,         
     DFB_BTN_CUSTOM_118                   = BTN_CUSTOM_118,         
     DFB_BTN_CUSTOM_119                   = BTN_CUSTOM_119,         
     DFB_BTN_CUSTOM_120                   = BTN_CUSTOM_120,         
     DFB_BTN_CUSTOM_121                   = BTN_CUSTOM_121,         
     DFB_BTN_CUSTOM_122                   = BTN_CUSTOM_122,         
     DFB_BTN_CUSTOM_123                   = BTN_CUSTOM_123,         
     DFB_BTN_CUSTOM_124                   = BTN_CUSTOM_124,         
     DFB_BTN_CUSTOM_125                   = BTN_CUSTOM_125,         
     DFB_BTN_CUSTOM_126                   = BTN_CUSTOM_126,         
     DFB_BTN_CUSTOM_127                   = BTN_CUSTOM_127,         
     DFB_BTN_CUSTOM_128                   = BTN_CUSTOM_128,         
     DFB_BTN_CUSTOM_129                   = BTN_CUSTOM_129,         
     DFB_BTN_CUSTOM_130                   = BTN_CUSTOM_130,         
     DFB_BTN_CUSTOM_131                   = BTN_CUSTOM_131,         
     DFB_BTN_CUSTOM_132                   = BTN_CUSTOM_132,         
     DFB_BTN_CUSTOM_133                   = BTN_CUSTOM_133,         
     DFB_BTN_CUSTOM_134                   = BTN_CUSTOM_134,         
     DFB_BTN_CUSTOM_135                   = BTN_CUSTOM_135,         
     DFB_BTN_CUSTOM_136                   = BTN_CUSTOM_136,         
     DFB_BTN_CUSTOM_137                   = BTN_CUSTOM_137,         
     DFB_BTN_CUSTOM_138                   = BTN_CUSTOM_138,         
     DFB_BTN_CUSTOM_139                   = BTN_CUSTOM_139,         
     DFB_BTN_CUSTOM_140                   = BTN_CUSTOM_140,         
     DFB_BTN_CUSTOM_141                   = BTN_CUSTOM_141,         
     DFB_BTN_CUSTOM_142                   = BTN_CUSTOM_142,         
     DFB_BTN_CUSTOM_143                   = BTN_CUSTOM_143,        
     DFB_BTN_CUSTOM_144                   = BTN_CUSTOM_144,         
     DFB_BTN_CUSTOM_145                   = BTN_CUSTOM_145,         
     DFB_BTN_CUSTOM_146                   = BTN_CUSTOM_146,         
     DFB_BTN_CUSTOM_147                   = BTN_CUSTOM_147,         
     DFB_BTN_CUSTOM_148                   = BTN_CUSTOM_148,         
     DFB_BTN_CUSTOM_149                   = BTN_CUSTOM_149,         
     DFB_BTN_CUSTOM_150                   = BTN_CUSTOM_150,
     DFB_BTN_NETFLIX                      = BTN_NETFLIX,         
     DFB_BTN_FACTORY_FRNT_PANEL           = BTN_FACTORY_FRNT_PANEL,      
     DFB_BTN_INVALID                      = BTN_INVALID,
     DFB_BTN_WIDGET                       = BTN_WIDGET,
	 DFB_BTN_AMAZON                       = BTN_AMAZON,
	 DFB_BTN_MGO                          = BTN_MGO,
	 DFB_BTN_VUDU                         = BTN_VUDU,
	 DFB_BTN_IHEART_RADIO                 = BTN_IHEART_RADIO,
	 DFB_BTN_NETWORK                      = BTN_NETWORK,
	 DFB_BTN_LIST                         = BTN_LIST,
     DFB_BTN_KB_NULL                      = BTN_KB_NULL,
     DFB_BTN_KB_BACKSPACE                 = BTN_KB_BACKSPACE,            
     DFB_BTN_KB_TAB                       = BTN_KB_TAB,
     DFB_BTN_KB_RETURN                    = BTN_KB_RETURN,
     DFB_BTN_KB_CANCEL                    = BTN_KB_CANCEL,
     DFB_BTN_KB_ESCAPE                    = BTN_KB_ESCAPE,
     DFB_BTN_KB_SPACE                     = BTN_KB_SPACE,
     DFB_BTN_KB_EXCLAMATION_MARK          = BTN_KB_EXCLAMATION_MARK,
     DFB_BTN_KB_QUOTATION                 = BTN_KB_QUOTATION,
     DFB_BTN_KB_NUMBER_SIGN               = BTN_KB_NUMBER_SIGN,
     DFB_BTN_KB_DOLLAR_SIGN               = BTN_KB_DOLLAR_SIGN,
     DFB_BTN_KB_PERCENT_SIGN              = BTN_KB_PERCENT_SIGN,
     DFB_BTN_KB_AMPERSAND                 = BTN_KB_AMPERSAND,
     DFB_BTN_KB_APOSTROPHE                = BTN_KB_APOSTROPHE,
     DFB_BTN_KB_PARENTHESIS_LEFT          = BTN_KB_PARENTHESIS_LEFT,
     DFB_BTN_KB_PARENTHESIS_RIGHT         = BTN_KB_PARENTHESIS_RIGHT,
     DFB_BTN_KB_ASTERISK                  = BTN_KB_ASTERISK,
     DFB_BTN_KB_PLUS_SIGN                 = BTN_KB_PLUS_SIGN,
     DFB_BTN_KB_COMMA                     = BTN_KB_COMMA,
     DFB_BTN_KB_MINUS_SIGN                = BTN_KB_MINUS_SIGN,
     DFB_BTN_KB_PERIOD                    = BTN_KB_PERIOD,
     DFB_BTN_KB_SLASH                     = BTN_KB_SLASH,
     DFB_BTN_KB_0                         = BTN_KB_0,
     DFB_BTN_KB_1                         = BTN_KB_1,
     DFB_BTN_KB_2                         = BTN_KB_2,
     DFB_BTN_KB_3                         = BTN_KB_3,
     DFB_BTN_KB_4                         = BTN_KB_4,
     DFB_BTN_KB_5                         = BTN_KB_5,
     DFB_BTN_KB_6                         = BTN_KB_6,
     DFB_BTN_KB_7                         = BTN_KB_7,
     DFB_BTN_KB_8                         = BTN_KB_8,
     DFB_BTN_KB_9                         = BTN_KB_9,
     DFB_BTN_KB_COLON                     = BTN_KB_COLON,
     DFB_BTN_KB_SEMICOLON                 = BTN_KB_SEMICOLON,
     DFB_BTN_KB_LESS_THAN_SIGN            = BTN_KB_LESS_THAN_SIGN,
     DFB_BTN_KB_EQUALS_SIGN               = BTN_KB_EQUALS_SIGN,
     DFB_BTN_KB_GREATER_THAN_SIGN         = BTN_KB_GREATER_THAN_SIGN,
     DFB_BTN_KB_QUESTION_MARK             = BTN_KB_QUESTION_MARK,
     DFB_BTN_KB_AT                        = BTN_KB_AT,
     DFB_BTN_KB_CAPITAL_A                 = BTN_KB_CAPITAL_A,
     DFB_BTN_KB_CAPITAL_B                 = BTN_KB_CAPITAL_B,
     DFB_BTN_KB_CAPITAL_C                 = BTN_KB_CAPITAL_C,
     DFB_BTN_KB_CAPITAL_D                 = BTN_KB_CAPITAL_D,
     DFB_BTN_KB_CAPITAL_E                 = BTN_KB_CAPITAL_E,
     DFB_BTN_KB_CAPITAL_F                 = BTN_KB_CAPITAL_F,
     DFB_BTN_KB_CAPITAL_G                 = BTN_KB_CAPITAL_G,
     DFB_BTN_KB_CAPITAL_H                 = BTN_KB_CAPITAL_H,
     DFB_BTN_KB_CAPITAL_I                 = BTN_KB_CAPITAL_I,
     DFB_BTN_KB_CAPITAL_J                 = BTN_KB_CAPITAL_J,
     DFB_BTN_KB_CAPITAL_K                 = BTN_KB_CAPITAL_K,
     DFB_BTN_KB_CAPITAL_L                 = BTN_KB_CAPITAL_L,
     DFB_BTN_KB_CAPITAL_M                 = BTN_KB_CAPITAL_M,
     DFB_BTN_KB_CAPITAL_N                 = BTN_KB_CAPITAL_N,
     DFB_BTN_KB_CAPITAL_O                 = BTN_KB_CAPITAL_O,
     DFB_BTN_KB_CAPITAL_P                 = BTN_KB_CAPITAL_P,
     DFB_BTN_KB_CAPITAL_Q                 = BTN_KB_CAPITAL_Q,
     DFB_BTN_KB_CAPITAL_R                 = BTN_KB_CAPITAL_R,
     DFB_BTN_KB_CAPITAL_S                 = BTN_KB_CAPITAL_S,
     DFB_BTN_KB_CAPITAL_T                 = BTN_KB_CAPITAL_T,
     DFB_BTN_KB_CAPITAL_U                 = BTN_KB_CAPITAL_U,
     DFB_BTN_KB_CAPITAL_V                 = BTN_KB_CAPITAL_V,
     DFB_BTN_KB_CAPITAL_W                 = BTN_KB_CAPITAL_W,
     DFB_BTN_KB_CAPITAL_X                 = BTN_KB_CAPITAL_X,
     DFB_BTN_KB_CAPITAL_Y                 = BTN_KB_CAPITAL_Y,
     DFB_BTN_KB_CAPITAL_Z                 = BTN_KB_CAPITAL_Z,
     DFB_BTN_KB_SQUARE_BRACKET_LEFT       = BTN_KB_SQUARE_BRACKET_LEFT,
     DFB_BTN_KB_BACKSLASH                 = BTN_KB_BACKSLASH,
     DFB_BTN_KB_SQUARE_BRACKET_RIGHT      = BTN_KB_SQUARE_BRACKET_RIGHT,
     DFB_BTN_KB_CIRCUMFLEX_ACCENT         = BTN_KB_CIRCUMFLEX_ACCENT,
     DFB_BTN_KB_UNDERSCORE                = BTN_KB_UNDERSCORE,
     DFB_BTN_KB_GRAVE_ACCENT              = BTN_KB_GRAVE_ACCENT,
     DFB_BTN_KB_SMALL_A                   = BTN_KB_SMALL_A,
     DFB_BTN_KB_SMALL_B                   = BTN_KB_SMALL_B,
     DFB_BTN_KB_SMALL_C                   = BTN_KB_SMALL_C,
     DFB_BTN_KB_SMALL_D                   = BTN_KB_SMALL_D,
     DFB_BTN_KB_SMALL_E                   = BTN_KB_SMALL_E,
     DFB_BTN_KB_SMALL_F                   = BTN_KB_SMALL_F,
     DFB_BTN_KB_SMALL_G                   = BTN_KB_SMALL_G,
     DFB_BTN_KB_SMALL_H                   = BTN_KB_SMALL_H,
     DFB_BTN_KB_SMALL_I                   = BTN_KB_SMALL_I,
     DFB_BTN_KB_SMALL_J                   = BTN_KB_SMALL_J,
     DFB_BTN_KB_SMALL_K                   = BTN_KB_SMALL_K,
     DFB_BTN_KB_SMALL_L                   = BTN_KB_SMALL_L,
     DFB_BTN_KB_SMALL_M                   = BTN_KB_SMALL_M,
     DFB_BTN_KB_SMALL_N                   = BTN_KB_SMALL_N,
     DFB_BTN_KB_SMALL_O                   = BTN_KB_SMALL_O,
     DFB_BTN_KB_SMALL_P                   = BTN_KB_SMALL_P,
     DFB_BTN_KB_SMALL_Q                   = BTN_KB_SMALL_Q,
     DFB_BTN_KB_SMALL_R                   = BTN_KB_SMALL_R,
     DFB_BTN_KB_SMALL_S                   = BTN_KB_SMALL_S,
     DFB_BTN_KB_SMALL_T                   = BTN_KB_SMALL_T,
     DFB_BTN_KB_SMALL_U                   = BTN_KB_SMALL_U,
     DFB_BTN_KB_SMALL_V                   = BTN_KB_SMALL_V,
     DFB_BTN_KB_SMALL_W                   = BTN_KB_SMALL_W,
     DFB_BTN_KB_SMALL_X                   = BTN_KB_SMALL_X,
     DFB_BTN_KB_SMALL_Y                   = BTN_KB_SMALL_Y,
     DFB_BTN_KB_SMALL_Z                   = BTN_KB_SMALL_Z,
     DFB_BTN_KB_CURLY_BRACKET_LEFT        = BTN_KB_CURLY_BRACKET_LEFT,
     DFB_BTN_KB_VERTICAL_BAR              = BTN_KB_VERTICAL_BAR,
     DFB_BTN_KB_CURLY_BRACKET_RIGHT       = BTN_KB_CURLY_BRACKET_RIGHT,
     DFB_BTN_KB_TILDE                     = BTN_KB_TILDE,
     DFB_BTN_KB_DELETE                    = BTN_KB_DELETE,
     DFB_BTN_KB_CURSOR_LEFT               = BTN_KB_CURSOR_LEFT,
     DFB_BTN_KB_CURSOR_RIGHT              = BTN_KB_CURSOR_RIGHT,
     DFB_BTN_KB_CURSOR_UP                 = BTN_KB_CURSOR_UP,
     DFB_BTN_KB_CURSOR_DOWN               = BTN_KB_CURSOR_DOWN,
     DFB_BTN_KB_INSERT                    = BTN_KB_INSERT,
     DFB_BTN_KB_HOME                      = BTN_KB_HOME,
     DFB_BTN_KB_END                       = BTN_KB_END,
     DFB_BTN_KB_PAGE_UP                   = BTN_KB_PAGE_UP,
     DFB_BTN_KB_PAGE_DOWN                 = BTN_KB_PAGE_DOWN,
     DFB_BTN_KB_PRINT                     = BTN_KB_PRINT,
     DFB_BTN_KB_PAUSE                     = BTN_KB_PAUSE,
     DFB_BTN_KB_F1                        = BTN_KB_F1,
     DFB_BTN_KB_F2                        = BTN_KB_F2,
     DFB_BTN_KB_F3                        = BTN_KB_F3,
     DFB_BTN_KB_F4                        = BTN_KB_F4,
     DFB_BTN_KB_F5                        = BTN_KB_F5,
     DFB_BTN_KB_F6                        = BTN_KB_F6,
     DFB_BTN_KB_F7                        = BTN_KB_F7,
     DFB_BTN_KB_F8                        = BTN_KB_F8,
     DFB_BTN_KB_F9                        = BTN_KB_F9,
     DFB_BTN_KB_F10                       = BTN_KB_F10,
     DFB_BTN_KB_F11                       = BTN_KB_F11,
     DFB_BTN_KB_F12                       = BTN_KB_F12,
     DFB_BTN_KB_CAPS_LOCK                 = BTN_KB_CAPS_LOCK,
     DFB_BTN_KB_NUM_LOCK                  = BTN_KB_NUM_LOCK,
     DFB_BTN_KB_SCROLL_LOCK               = BTN_KB_SCROLL_LOCK,
     DFB_BTN_KB_DOT_COM                   = BTN_KB_DOT_COM,
     DFB_BTN_KB_ENTER                     = DFB_BTN_KB_RETURN,
                                                                                                           
     DFB_BTN_KB_SHIFT                     = BTN_KB_SHIFT,
     DFB_BTN_KB_CONTROL                   = BTN_KB_CONTROL,
     DFB_BTN_KB_ALT                       = BTN_KB_ALT,
     DFB_BTN_KB_ALTGR                     = BTN_KB_ALTGR,
     DFB_BTN_KB_META                      = BTN_KB_META,
     DFB_BTN_KB_SUPER                     = BTN_KB_SUPER,
     DFB_BTN_KB_HYPER                     = BTN_KB_HYPER,
     
     DFB_FP_BTN_MENU                      = (BTN_MENU | KEY_SRC_FRONT_PANEL),
     DFB_FP_BTN_PRG_UP                    = (BTN_PRG_UP | KEY_SRC_FRONT_PANEL),
     DFB_FP_BTN_PRG_DOWN                  = (BTN_PRG_DOWN | KEY_SRC_FRONT_PANEL),
     DFB_FP_BTN_VOL_UP                    = (BTN_VOL_UP | KEY_SRC_FRONT_PANEL),
     DFB_FP_BTN_VOL_DOWN                  = (BTN_VOL_DOWN | KEY_SRC_FRONT_PANEL),
     DFB_FP_BTN_POWER                     = (BTN_POWER | KEY_SRC_FRONT_PANEL),
     DFB_FP_BTN_INPUT_SRC                 = (BTN_INPUT_SRC | KEY_SRC_FRONT_PANEL),
     DFB_FP_BTN_INPUT_EXIT                    = (BTN_EXIT | KEY_SRC_FRONT_PANEL)
} DFBInputDeviceKeySymbol;

/*
 * Flags specifying the key locks that are currently active.
 */
typedef enum {
     DILS_SCROLL         = 0x00000001,  /* scroll-lock active? */
     DILS_NUM            = 0x00000002,  /* num-lock active? */
     DILS_CAPS           = 0x00000004   /* caps-lock active? */
} DFBInputDeviceLockState;

/*
 * Groups and levels as an index to the symbol array.
 */
typedef enum {
     DIKSI_BASE          = 0x00,   /* base group, base level(no modifier pressed) */
     DIKSI_BASE_SHIFT    = 0x01,   /* base group, shifted level (with Shift pressed) */
     DIKSI_ALT           = 0x02,   /* alternative group, base level(with AltGr pressed) */
     DIKSI_ALT_SHIFT     = 0x03,   /* alternative group, shifted level (with AltGr and Shift pressed) */
     DIKSI_LAST          = DIKSI_ALT_SHIFT,
     DIKSI_MAX
} DFBInputDeviceKeymapSymbolIndex;

/*
 * One entry in the keymap of an input device.
 */
typedef struct {
     int                         code;                  /* hardware
                                                           key code */
     DFBInputDeviceLockState     locks;                 /* locks activating
                                                           shifted level */
     DFBInputDeviceKeyIdentifier identifier;            /* basic mapping */
     DFBInputDeviceKeySymbol     symbols[DIKSI_LAST+1]; /* advanced key
                                                           mapping */
} DFBInputDeviceKeymapEntry;


#define  DFB_KEY_LAN_TYPE_DEFAULT           "eng"
#ifdef CC_LMP_CUST
	#define  DFB_KEY_LAN_PATH_DEFAULT       "/basic/keymaprc"
#else
	#define  DFB_KEY_LAN_PATH_DEFAULT       "/etc/keymaprc"
#endif



#define DFB_KEY_LAN_SUPPORT     dfb_key_lan_inited()

extern char *dfb_key_lan_lookup_keysymbol( unsigned int u4_sybmol );
extern DFBResult dfb_key_lan_lookup_entry( unsigned int u4_key_code,DFBInputDeviceKeymapEntry* pt_entry );
extern char * dfb_key_lan_modi_name(int i4_idx);
extern int dfb_key_lan_get_modi_max(void);

extern unsigned int dfb_key_lan_get_modi( unsigned int u4_idx);
extern unsigned int dfb_key_lan_get_modi_mask( unsigned int u4_idx);
extern unsigned int dfb_key_lan_lookup_modi_id( unsigned int u4_val);
extern int dfb_key_lan_inited(void);
extern void dfb_key_lan_load_keymap_init(void);
extern int dfb_key_lan_write_keymap(void);
extern void dfb_key_lan_set_reload_fg (int i4_fg);
extern int dfb_key_lan_get_reload_fg(void);

extern DFBResult dfb_key_lan_set_type(char * ps_type);
extern char* dfb_key_lan_get_type(void);
extern DFBResult dfb_key_lan_set_path(char * ps_path);
extern char* dfb_key_lan_get_path(void);
extern DFBResult dfb_key_lan_load_keymap(char *type,char *ps_path );

#ifdef __cplusplus
}
#endif

#endif

