Advertisement
ZoriaRPG

std_keyboard.zh 24-JAN-2017

Jan 24th, 2017
221
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 31.06 KB | None | 0 0
  1. //std_keyboard.zh for ZC 2.future 2.54
  2. //Beta 52, or later.
  3. //Version ID: 24JAN2017
  4.  
  5. /*
  6.  
  7. Constants that define the keyboard layout. I need to check an EU and a US keyboard
  8. visually to verify if I set the proper symbols;  and I do not think that ZScript
  9. can handle some symbols on the UK layout.
  10.  
  11. */
  12.  
  13. const int KEYBOARD_TYPE = 0; //0 == US, 1 == UK, 2 == EU/GR
  14. const int KEYBOARD_LAYOUT_US = 0;
  15. const int KEYBOARD_LAYOUT_UK = 1;
  16. const int KEYBOARD_LAYOUT_EU = 2;
  17.  
  18. //Special Circumstance Characters to store in strings if needed.
  19. const int CHAR_ERROR        = -1;
  20. const int CHAR_BACKSPC      = -2;
  21. const int CHAR_DELETE       = -4;
  22. const int CHAR_HOMEKEY      = -8;
  23. const int CHAR_ENDKEY       = -16;
  24. const int CHAR_PAGEUP       = -32;
  25. const int CHAR_PAGEDOWN     = -64;
  26. const int CHAR_ARROW_U      = -128;
  27. const int CHAR_ARROW_L      = -256;
  28.  
  29. const int CHAR_ARROW_D      = -512;
  30. const int CHAR_ARROW_R      = -1024;
  31. const int CHAR_PRINTSCREEN  = -2048;
  32. const int CHAR_PAUSE        = -4096;
  33.  
  34. const int CHAR_NONE = 0;
  35.  
  36. //8192 for special modifiers?
  37.  
  38. const int ___KEY_TIMER = 255; //Index of ____STD_GRAM[]
  39. // I think that an internal ZScript array Game->UserRAM[256] would be useful for this, as its pointer
  40. // would never change.
  41. const float KEYBOARD_REPEAT_RATE = 6; //frames per keypress. 3 == 1/20 second
  42. //const int SFX_KEYPRESS = 58; //Do we want this in the header?
  43.  
  44.  
  45. //Checks if a key was pressed. If it was, it returns its char value.
  46. //Returns CHAR_NONE / false if key was not pressed.
  47. int CheckKeyToChar(int key){
  48.     if KeyPress(key) {
  49.         return KeyToChar(key);
  50.     }
  51.     else return CHAR_NONE;
  52. }
  53.  
  54. /*
  55.  
  56. These functions are meant to return ReadKey and Keypress, while setting the appropriate
  57. input blockers. I would like to add bool Game->ReadingKeyboard, which while true, stops
  58. key presses from being read as joystick inputs.
  59.  
  60. */
  61.  
  62. bool ReadKey(int key){
  63.     NoInput();
  64.     return Game->ReadKey[key];
  65. }
  66.  
  67. bool KeyPress(int key){ return Game->KeyPress[key]; }
  68.  
  69. int GetKeyPress(int key){
  70.     if ( ReadKey(key) ) return KeyToChar(key);
  71.     else return -1; //Is this safe? Should we return 0, which is null?
  72. }
  73.  
  74. //Returns modifier keys
  75. bool PressShift() { return (( Game->KeyPress[KEY_LSHIFT] || Game->KeyPress[KEY_RSHIFT] ) != 0);}
  76. bool PressControl(){ return (( Game->KeyPress[KEY_LCONTROL] || Game->KeyPress[KEY_RCONTROL] ) != 0);}
  77. bool CapsLock() { return Game->KeyPress[KEY_CAPSLOCK]; }
  78. bool NumLock() { return Game->KeyPress[KEY_NUMLOCK]; }
  79. bool PressWin() { return (( Game->KeyPress[KEY_LWIN] || Game->KeyPress[KEY_RWIN] ) != 0);}
  80. bool PressApple() { return (( Game->KeyPress[KEY_LWIN] || Game->KeyPress[KEY_RWIN] ) != 0);}
  81. bool PressCommand() { return Game->KeyPress[KEY_COMMAND]; }
  82. bool PressAltGR() { return Game->KeyPress[KEY_ALTGR]; }
  83.  
  84. //Is this Linux only?
  85. bool PressLinuxMenu() { return Game->KeyPress[KEY_MENU]; }
  86.  
  87. //Note that these keys are used by the ZC Ui. You can read them this way, but you should not expect
  88. //a user to utilise them, for input, without some kind of interupt system.
  89. bool FKey(int f){ if ( f > 0 && f < 13 ) return Game->KeyPress[46+f]; else return false; }
  90. bool EscKey() { return Game->KeyPress[KEY_ESC]; }
  91.  
  92.  
  93.  
  94. //converts a key to its proper char (int, in ZScript).
  95. int KeyToChar(int key) { return KeyToChar(key,false); }
  96. //bool caps ==true : caps acts as shift, == false, standard
  97. int KeyToChar(int key, bool caps){
  98.     if ( key >= 1 && key <= 26 && ( Game->KeyPress[KEY_LSHIFT] || Game->KeyPress[KEY_RSHIFT] || Game->KeyPress[KEY_CAPSLOCK] ) ) {
  99.         if ( key == KEY_A ) return 'A';
  100.         if ( key == KEY_B ) return 'B';
  101.         if ( key == KEY_C ) return 'C';
  102.         if ( key == KEY_D ) return 'D';
  103.         if ( key == KEY_E ) return 'E';
  104.         if ( key == KEY_F ) return 'F';
  105.         if ( key == KEY_G ) return 'G';
  106.         if ( key == KEY_H ) return 'H';
  107.         if ( key == KEY_I ) return 'I';
  108.         if ( key == KEY_J ) return 'J';
  109.         if ( key == KEY_K ) return 'K';
  110.         if ( key == KEY_L ) return 'L';
  111.         if ( key == KEY_M ) return 'M';
  112.         if ( key == KEY_N ) return 'N';
  113.         if ( key == KEY_O ) return 'O';
  114.         if ( key == KEY_P ) return 'P';
  115.         if ( key == KEY_Q ) return 'Q';
  116.         if ( key == KEY_R ) return 'R';
  117.         if ( key == KEY_S ) return 'S';
  118.         if ( key == KEY_T ) return 'T';
  119.         if ( key == KEY_U ) return 'U';
  120.         if ( key == KEY_V ) return 'V';
  121.         if ( key == KEY_W ) return 'W';
  122.         if ( key == KEY_X ) return 'X';
  123.         if ( key == KEY_Y ) return 'Y';
  124.         if ( key == KEY_Z ) return 'Z';
  125.         //Shiften numeric row
  126.                                        
  127.         if (  key > 26 && ( Game->KeyPress[KEY_LSHIFT] || Game->KeyPress[KEY_RSHIFT]
  128.             //if bool caps is set, and caps lock is on, read as shift
  129.             || ( Game->KeyPress[KEY_CAPSLOCK] && caps ) ) ){
  130.             if ( key == KEY_1 ) return '!';
  131.             if ( key == KEY_0 ) return ')';
  132.             if ( key == KEY_2 ) {
  133.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  134.                     return '@';
  135.                 }
  136.                
  137.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  138.                     return CHAR_DQUOTE;
  139.                 }
  140.                
  141.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  142.                     return CHAR_DQUOTE;
  143.                 }
  144.             }
  145.             if ( key == KEY_3 ) {
  146.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  147.                     return '#';
  148.                 }
  149.                
  150.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  151.                     return CHAR_POUNDS;
  152.                 }
  153.                
  154.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  155.                     return '#';
  156.                 }
  157.             }
  158.             if ( key == KEY_4 ) {
  159.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  160.                     return '$';
  161.                 }
  162.                
  163.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  164.                     return '$';
  165.                 }
  166.                
  167.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  168.                     return CHAR_EURO;
  169.                 }
  170.             }
  171.             if ( key == KEY_5 ) {
  172.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  173.                     return '%';
  174.                 }
  175.                
  176.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  177.                     return '%';
  178.                 }
  179.                
  180.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  181.                     return '%';
  182.                 }
  183.             }
  184.             if ( key == KEY_6 ) {
  185.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  186.                     return '^';
  187.                 }
  188.                
  189.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  190.                     return '^';
  191.                 }
  192.                
  193.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  194.                     return '^';
  195.                 }
  196.             }
  197.             if ( key == KEY_7 ) {
  198.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  199.                     return '&';
  200.                 }
  201.                
  202.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  203.                     return '&';
  204.                 }
  205.                
  206.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  207.                     return '&';
  208.                 }
  209.             }
  210.             if ( key == KEY_8 ) {
  211.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  212.                     return '*';
  213.                 }
  214.                
  215.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  216.                     return '*';
  217.                 }
  218.                
  219.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  220.                     return '*';
  221.                 }
  222.             }
  223.             if ( key == KEY_9 ) {
  224.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  225.                     return '(';
  226.                 }
  227.                
  228.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  229.                     return '(';
  230.                 }
  231.                
  232.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  233.                     return '(';
  234.                 }
  235.             }
  236.             if ( key == KEY_TILDE ) {
  237.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  238.                     return '~';
  239.                 }
  240.                
  241.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  242.                     return '~';
  243.                 }
  244.                
  245.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  246.                     return '~';
  247.                 }
  248.             }
  249.             if ( key == KEY_MINUS ) {
  250.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  251.                     return '_';
  252.                 }
  253.                
  254.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  255.                     return '_';
  256.                 }
  257.                
  258.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  259.                     return '_';
  260.                 }
  261.             }
  262.             if ( key == KEY_EQUALS ) {
  263.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  264.                     return '+';
  265.                 }
  266.                
  267.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  268.                     return '+';
  269.                 }
  270.                
  271.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  272.                     return '+';
  273.                 }
  274.             }
  275.             if ( key == KEY_BACKSPACE ) { //-2 is backspace
  276.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  277.                     return -2;
  278.                 }
  279.                
  280.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  281.                     return -2;
  282.                 }
  283.                
  284.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  285.                     return -2;
  286.                 }
  287.             }
  288.             if ( key == KEY_TAB ) {
  289.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  290.                     return CHAR_TAB;
  291.                 }
  292.                
  293.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  294.                     return CHAR_TAB;
  295.                 }
  296.                
  297.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  298.                     return CHAR_TAB;
  299.                 }
  300.             }
  301.             if ( key == KEY_OPENBRACE ) {
  302.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  303.                     return '{';
  304.                 }
  305.                
  306.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  307.                     return '{';
  308.                 }
  309.                
  310.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  311.                     return '{';
  312.                 }
  313.             }
  314.             if ( key == KEY_CLOSEBRACE ) {
  315.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  316.                     return '}';
  317.                 }
  318.                
  319.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  320.                     return '}';
  321.                 }
  322.                
  323.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  324.                     return '}';
  325.                 }
  326.             }
  327.             if ( key == KEY_ENTER ) {
  328.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  329.                     return CHAR_CR;
  330.                 }
  331.                
  332.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  333.                     return CHAR_CR;
  334.                 }
  335.                
  336.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  337.                     return CHAR_CR;
  338.                 }
  339.             }
  340.             if ( key == KEY_COLON ) {
  341.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  342.                     return ':';
  343.                 }
  344.                
  345.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  346.                     return ':';
  347.                 }
  348.                
  349.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  350.                     return ':';
  351.                 }
  352.             }
  353.             if ( key == KEY_QUOTE ) {
  354.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  355.                     return '"';
  356.                 }
  357.                
  358.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  359.                     return '@';
  360.                 }
  361.                
  362.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  363.                     return '@';
  364.                 }
  365.             }
  366.             if ( key == KEY_BACKSLASH ) {
  367.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  368.                     return '|';
  369.                 }
  370.                
  371.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  372.                     return '|';
  373.                 }
  374.                
  375.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  376.                     return '|';
  377.                 }
  378.             }
  379.             if ( key == KEY_BACKSLASH2 ) {
  380.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  381.                     return '|';
  382.                 }
  383.                
  384.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  385.                     return '|';
  386.                 }
  387.                
  388.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  389.                     return '|';
  390.                 }
  391.             }
  392.             if ( key == KEY_COMMA ) {
  393.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  394.                     return '<';
  395.                 }
  396.                
  397.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  398.                     return '<';
  399.                 }
  400.                
  401.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  402.                     return '<';
  403.                 }
  404.             }
  405.             if ( key == KEY_STOP ) {
  406.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  407.                     return '>';
  408.                 }
  409.                
  410.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  411.                     return '>';
  412.                 }
  413.                
  414.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  415.                     return '>';
  416.                 }
  417.             }
  418.             if ( key == KEY_SLASH ) {
  419.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  420.                     return '?';
  421.                 }
  422.                
  423.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  424.                     return '?';
  425.                 }
  426.                
  427.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  428.                     return '?';
  429.                 }
  430.             }
  431.             if ( key == KEY_SPACE ) {
  432.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  433.                     return ' ';
  434.                 }
  435.                
  436.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  437.                     return ' ';
  438.                 }
  439.                
  440.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  441.                     return ' ';
  442.                 }
  443.             }
  444.             if ( key == KEY_DEL ) { //-4 is delete
  445.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  446.                     return -4;
  447.                 }
  448.                
  449.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  450.                     return -4;
  451.                 }
  452.                
  453.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  454.                     return -4;
  455.                 }
  456.             }
  457.             if ( key == KEY_HOME ) { //-8 is home
  458.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  459.                     return -8;
  460.                 }
  461.                
  462.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  463.                     return -8;
  464.                 }
  465.                
  466.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  467.                     return -8;
  468.                 }
  469.             }
  470.             if ( key == KEY_END ) { //-16 is 'end'
  471.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  472.                     return -16;
  473.                 }
  474.                
  475.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  476.                     return -16;
  477.                 }
  478.                
  479.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  480.                     return -16;
  481.                 }
  482.             }
  483.             if ( key == KEY_PGUP ) { //-32
  484.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  485.                     return -32;
  486.                 }
  487.                
  488.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  489.                     return -32;
  490.                 }
  491.                
  492.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  493.                     return -32;
  494.                 }
  495.             }
  496.             if ( key == KEY_PGDN ) { //-64
  497.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  498.                     return -64;
  499.                 }
  500.                
  501.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  502.                     return -64;
  503.                 }
  504.                
  505.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  506.                     return -64;
  507.                 }
  508.             }
  509.             if ( key == KEY_UP ) { //ARROWS
  510.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  511.                     return -128;
  512.                 }
  513.                
  514.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  515.                     return -128;
  516.                 }
  517.                
  518.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  519.                     return -128;
  520.                 }
  521.             }
  522.             if ( key == KEY_LEFT ) { //ARROWS
  523.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  524.                     return -256;
  525.                 }
  526.                
  527.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  528.                     return -256;
  529.                 }
  530.                
  531.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  532.                     return -256;
  533.                 }
  534.             }
  535.             if ( key == KEY_DOWN ) { //ARROWS
  536.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  537.                     return -512;
  538.                 }
  539.                
  540.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  541.                     return -512;
  542.                 }
  543.                
  544.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  545.                     return -512;
  546.                 }
  547.             }
  548.             if ( key == KEY_RIGHT ) { //ARROWS
  549.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  550.                     return -1024;
  551.                 }
  552.                
  553.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  554.                     return -1024;
  555.                 }
  556.                
  557.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  558.                     return -1024;
  559.                 }
  560.             }
  561.             if ( key == KEY_SLASH_PAD ) { //Start Numeric Pad
  562.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  563.                     return '/';
  564.                 }
  565.                
  566.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  567.                     return '/';
  568.                 }
  569.                
  570.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  571.                     return '/';
  572.                 }
  573.             }
  574.             if ( key == KEY_ASTERISK ) {
  575.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  576.                     return '*';
  577.                 }
  578.                
  579.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  580.                     return '*';
  581.                 }
  582.                
  583.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  584.                     return '*';
  585.                 }
  586.             }
  587.             if ( key == KEY_MINUS_PAD ) {
  588.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  589.                     return '-';
  590.                 }
  591.                
  592.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  593.                     return '-';
  594.                 }
  595.                
  596.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  597.                     return '-';
  598.                 }
  599.             }
  600.             if ( key == KEY_PLUS_PAD ) {
  601.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  602.                     return '+';
  603.                 }
  604.                
  605.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  606.                     return '+';
  607.                 }
  608.                
  609.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  610.                     return '+';
  611.                 }
  612.             }
  613.             if ( key == KEY_DEL_PAD ) {
  614.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  615.                     return -4;
  616.                 }
  617.                
  618.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  619.                     return -4;
  620.                 }
  621.                
  622.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  623.                     return -4;
  624.                 }
  625.             }
  626.             if ( key == KEY_ENTER_PAD ) {
  627.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  628.                     return CHAR_CR;
  629.                 }
  630.                
  631.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  632.                     return CHAR_CR;
  633.                 }
  634.                
  635.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  636.                     return CHAR_CR;
  637.                 }
  638.             }
  639.             if ( key == KEY_PRTSCR ) {
  640.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  641.                     return -2048;
  642.                 }
  643.                
  644.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  645.                     return -2048;
  646.                 }
  647.                
  648.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  649.                     return -2048;
  650.                 }
  651.             }
  652.             if ( key == KEY_PAUSE ) {
  653.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  654.                     return -4096;
  655.                 }
  656.                
  657.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  658.                     return -4096;
  659.                 }
  660.                
  661.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  662.                     return -4096;
  663.                 }
  664.             }
  665.             if ( key == KEY_CIRCUMFLEX ) {
  666.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  667.                     return '^';
  668.                 }
  669.                
  670.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  671.                     return '^';
  672.                 }
  673.                
  674.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  675.                     return '^';
  676.                 }
  677.             }
  678.             if ( key == KEY_COLON2 ) {
  679.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  680.                     return ':';
  681.                 }
  682.                
  683.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  684.                     return ':';
  685.                 }
  686.                
  687.                 if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  688.                     return ':';
  689.                 }
  690.             }
  691.            
  692.         }
  693.        
  694.        
  695.        
  696.         /*
  697.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  698.            
  699.         }
  700.        
  701.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  702.            
  703.         }
  704.        
  705.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  706.            
  707.         }
  708.         */
  709.     }//End modifier keys
  710.    
  711.     //otherwise no modifier
  712.     if ( key == KEY_A ) return 'a';
  713.     if ( key == KEY_B ) return 'b';
  714.     if ( key == KEY_C ) return 'c';
  715.     if ( key == KEY_D ) return 'd';
  716.     if ( key == KEY_E ) return 'e';
  717.     if ( key == KEY_F ) return 'f';
  718.     if ( key == KEY_G ) return 'g';
  719.     if ( key == KEY_H ) return 'h';
  720.     if ( key == KEY_I ) return 'i';
  721.     if ( key == KEY_J ) return 'j';
  722.     if ( key == KEY_K ) return 'k';
  723.     if ( key == KEY_L ) return 'l';
  724.     if ( key == KEY_M ) return 'm';
  725.     if ( key == KEY_N ) return 'n';
  726.     if ( key == KEY_O ) return 'o';
  727.     if ( key == KEY_P ) return 'p';
  728.     if ( key == KEY_Q ) return 'q';
  729.     if ( key == KEY_R ) return 'r';
  730.     if ( key == KEY_S ) return 's';
  731.     if ( key == KEY_T ) return 't';
  732.     if ( key == KEY_U ) return 'u';
  733.     if ( key == KEY_V ) return 'v';
  734.     if ( key == KEY_W ) return 'w';
  735.     if ( key == KEY_X ) return 'x';
  736.     if ( key == KEY_Y ) return 'y';
  737.     if ( key == KEY_Z ) return 'z';
  738.    
  739.     if ( key == KEY_0 || key == KEY_0_PAD ) return '0';
  740.     if ( key == KEY_1 || key == KEY_1_PAD ) return '1';
  741.     if ( key == KEY_2 || key == KEY_2_PAD ) return '2';
  742.     if ( key == KEY_3 || key == KEY_3_PAD ) return '3';
  743.     if ( key == KEY_4 || key == KEY_4_PAD ) return '4';
  744.     if ( key == KEY_5 || key == KEY_5_PAD ) return '5';
  745.     if ( key == KEY_6 || key == KEY_6_PAD ) return '6';
  746.     if ( key == KEY_7 || key == KEY_7_PAD ) return '7';
  747.     if ( key == KEY_8 || key == KEY_8_PAD ) return '8';
  748.     if ( key == KEY_9 || key == KEY_9_PAD ) return '9';
  749.    
  750.  
  751.     if ( key == KEY_TILDE ) {
  752.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  753.             return '`';
  754.         }
  755.        
  756.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  757.             return '`';
  758.         }
  759.        
  760.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  761.             return '`';
  762.         }
  763.     }
  764.     if ( key == KEY_MINUS ) {
  765.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  766.             return '-';
  767.         }
  768.        
  769.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  770.             return '-';
  771.         }
  772.        
  773.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  774.             return '-';
  775.         }
  776.     }
  777.     if ( key == KEY_EQUALS ) {
  778.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  779.             return '=';
  780.         }
  781.        
  782.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  783.             return '=';
  784.         }
  785.        
  786.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  787.             return '=';
  788.         }
  789.     }
  790.     if ( key == KEY_BACKSPACE ) { //-2 is backspace
  791.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  792.             return -2;
  793.         }
  794.        
  795.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  796.             return -2;
  797.         }
  798.        
  799.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  800.             return -2;
  801.         }
  802.     }
  803.     if ( key == KEY_TAB ) {
  804.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  805.             return CHAR_TAB;
  806.         }
  807.        
  808.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  809.             return CHAR_TAB;
  810.         }
  811.        
  812.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  813.             return CHAR_TAB;
  814.         }
  815.     }
  816.     if ( key == KEY_OPENBRACE ) {
  817.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  818.             return '[';
  819.         }
  820.        
  821.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  822.             return '[';
  823.         }
  824.        
  825.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  826.             return '[';
  827.         }
  828.     }
  829.     if ( key == KEY_CLOSEBRACE ) {
  830.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  831.             return ']';
  832.         }
  833.        
  834.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  835.             return ']';
  836.         }
  837.        
  838.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  839.             return ']';
  840.         }
  841.     }
  842.     if ( key == KEY_ENTER ) {
  843.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  844.             return CHAR_LF;
  845.         }
  846.        
  847.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  848.             return CHAR_LF;
  849.         }
  850.        
  851.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  852.             return CHAR_LF;
  853.         }
  854.     }
  855.     if ( key == KEY_COLON ) {
  856.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  857.             return CHAR_SCOLON;
  858.         }
  859.        
  860.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  861.             return CHAR_SCOLON;
  862.         }
  863.        
  864.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  865.             return CHAR_SCOLON;
  866.         }
  867.     }
  868.     if ( key == KEY_QUOTE ) {
  869.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  870.             return CHAR_QUOTE;
  871.         }
  872.        
  873.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  874.             return CHAR_QUOTE;
  875.         }
  876.        
  877.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  878.             return CHAR_QUOTE;
  879.         }
  880.     }
  881.     if ( key == KEY_BACKSLASH ) {
  882.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  883.             return CHAR_BSLASH;
  884.         }
  885.        
  886.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  887.             return CHAR_BSLASH;
  888.         }
  889.        
  890.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  891.             return CHAR_BSLASH;
  892.         }
  893.     }
  894.     if ( key == KEY_BACKSLASH2 ) {
  895.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  896.             return CHAR_BSLASH;
  897.         }
  898.        
  899.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  900.             return CHAR_BSLASH;
  901.         }
  902.        
  903.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  904.             return CHAR_BSLASH;
  905.         }
  906.     }
  907.     if ( key == KEY_COMMA ) {
  908.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  909.             return ',';
  910.         }
  911.        
  912.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  913.             return ',';
  914.         }
  915.        
  916.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  917.             return ',';
  918.         }
  919.     }
  920.     if ( key == KEY_STOP ) {
  921.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  922.             return '.';
  923.         }
  924.        
  925.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  926.             return '.';
  927.         }
  928.        
  929.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  930.             return '.';
  931.         }
  932.     }
  933.     if ( key == KEY_SLASH ) {
  934.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  935.             return '/';
  936.         }
  937.        
  938.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  939.             return '/';
  940.         }
  941.        
  942.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  943.             return '/';
  944.         }
  945.     }
  946.     if ( key == KEY_SPACE ) {
  947.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  948.             return ' ';
  949.         }
  950.        
  951.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  952.             return ' ';
  953.         }
  954.        
  955.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  956.             return ' ';
  957.         }
  958.     }
  959.     if ( key == KEY_DEL ) { //-4 is delete
  960.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  961.             return -4;
  962.         }
  963.        
  964.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  965.             return -4;
  966.         }
  967.        
  968.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  969.             return -4;
  970.         }
  971.     }
  972.     if ( key == KEY_HOME ) { //-8 is home
  973.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  974.             return -8;
  975.         }
  976.        
  977.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  978.             return -8;
  979.         }
  980.        
  981.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  982.             return -8;
  983.         }
  984.     }
  985.     if ( key == KEY_END ) { //-16 is 'end'
  986.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  987.             return -16;
  988.         }
  989.        
  990.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  991.             return -16;
  992.         }
  993.        
  994.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  995.             return -16;
  996.         }
  997.     }
  998.     if ( key == KEY_PGUP ) { //-32
  999.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  1000.             return -32;
  1001.         }
  1002.        
  1003.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  1004.             return -32;
  1005.         }
  1006.        
  1007.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  1008.             return -32;
  1009.         }
  1010.     }
  1011.     if ( key == KEY_PGDN ) { //-64
  1012.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  1013.             return -64;
  1014.         }
  1015.        
  1016.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  1017.             return -64;
  1018.         }
  1019.        
  1020.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  1021.             return -64;
  1022.         }
  1023.     }
  1024.     if ( key == KEY_UP ) { //ARROWS
  1025.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  1026.             return -128;
  1027.         }
  1028.        
  1029.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  1030.             return -128;
  1031.         }
  1032.        
  1033.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  1034.             return -128;
  1035.         }
  1036.     }
  1037.     if ( key == KEY_LEFT ) { //ARROWS
  1038.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  1039.             return -256;
  1040.         }
  1041.        
  1042.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  1043.             return -256;
  1044.         }
  1045.        
  1046.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  1047.             return -256;
  1048.         }
  1049.     }
  1050.     if ( key == KEY_DOWN ) { //ARROWS
  1051.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  1052.             return -512;
  1053.         }
  1054.        
  1055.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  1056.             return -512;
  1057.         }
  1058.        
  1059.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  1060.             return -512;
  1061.         }
  1062.     }
  1063.     if ( key == KEY_RIGHT ) { //ARROWS
  1064.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  1065.             return -1024;
  1066.         }
  1067.        
  1068.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  1069.             return -1024;
  1070.         }
  1071.        
  1072.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  1073.             return -1024;
  1074.         }
  1075.     }
  1076.     if ( key == KEY_SLASH_PAD ) { //Start Numeric Pad
  1077.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  1078.             return '/';
  1079.         }
  1080.        
  1081.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  1082.             return '/';
  1083.         }
  1084.        
  1085.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  1086.             return '/';
  1087.         }
  1088.     }
  1089.     if ( key == KEY_ASTERISK ) {
  1090.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  1091.             return '*';
  1092.         }
  1093.        
  1094.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  1095.             return '*';
  1096.         }
  1097.        
  1098.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  1099.             return '*';
  1100.         }
  1101.     }
  1102.     if ( key == KEY_MINUS_PAD ) {
  1103.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  1104.             return '-';
  1105.         }
  1106.        
  1107.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  1108.             return '-';
  1109.         }
  1110.        
  1111.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  1112.             return '-';
  1113.         }
  1114.     }
  1115.     if ( key == KEY_PLUS_PAD ) {
  1116.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  1117.             return '+';
  1118.         }
  1119.        
  1120.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  1121.             return '+';
  1122.         }
  1123.        
  1124.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  1125.             return '+';
  1126.         }
  1127.     }
  1128.     if ( key == KEY_DEL_PAD ) {
  1129.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  1130.             return -4;
  1131.         }
  1132.        
  1133.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  1134.             return -4;
  1135.         }
  1136.        
  1137.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  1138.             return -4;
  1139.         }
  1140.     }
  1141.     if ( key == KEY_ENTER_PAD ) {
  1142.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  1143.             return CHAR_LF;
  1144.         }
  1145.        
  1146.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  1147.             return CHAR_LF;
  1148.         }
  1149.        
  1150.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  1151.             return CHAR_LF;
  1152.         }
  1153.     }
  1154.     if ( key == KEY_PRTSCR ) {
  1155.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  1156.             return -2048;
  1157.         }
  1158.        
  1159.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  1160.             return -2048;
  1161.         }
  1162.        
  1163.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  1164.             return -2048;
  1165.         }
  1166.     }
  1167.     if ( key == KEY_PAUSE ) {
  1168.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  1169.             return -4096;
  1170.         }
  1171.        
  1172.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  1173.             return -4096;
  1174.         }
  1175.        
  1176.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  1177.             return -4096;
  1178.         }
  1179.     }
  1180.     if ( key == KEY_CIRCUMFLEX ) {
  1181.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  1182.             return '^';
  1183.         }
  1184.        
  1185.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  1186.             return '^';
  1187.         }
  1188.        
  1189.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  1190.             return '^';
  1191.         }
  1192.     }
  1193.     if ( key == KEY_COLON2 ) {
  1194.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_US ) {
  1195.             return ':';
  1196.         }
  1197.        
  1198.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_UK ) {
  1199.             return ':';
  1200.         }
  1201.        
  1202.         if ( KEYBOARD_TYPE == KEYBOARD_LAYOUT_EU ) {
  1203.             return ':';
  1204.         }
  1205.     }
  1206.    
  1207. }
  1208.  
  1209. //Key Constants -- !DO NOT MODIFY
  1210.  
  1211. const int KEY_A            = 1;
  1212. const int KEY_B            = 2;
  1213. const int KEY_C            = 3;
  1214. const int KEY_D            = 4;
  1215. const int KEY_E            = 5;
  1216. const int KEY_F            = 6;
  1217. const int KEY_G            = 7;
  1218. const int KEY_H            = 8;
  1219. const int KEY_I            = 9;
  1220. const int KEY_J            = 10;
  1221. const int KEY_K            = 11;
  1222. const int KEY_L            = 12;
  1223. const int KEY_M            = 13;
  1224. const int KEY_N            = 14;
  1225. const int KEY_O            = 15;
  1226. const int KEY_P            = 16;
  1227. const int KEY_Q            = 17;
  1228. const int KEY_R            = 18;
  1229. const int KEY_S            = 19;
  1230. const int KEY_T            = 20;
  1231. const int KEY_U            = 21;
  1232. const int KEY_V            = 22;
  1233. const int KEY_W            = 23;
  1234. const int KEY_X            = 24;
  1235. const int KEY_Y            = 25;
  1236. const int KEY_Z            = 26;
  1237. const int KEY_0            = 27;
  1238. const int KEY_1            = 28;
  1239. const int KEY_2            = 29;
  1240. const int KEY_3            = 30;
  1241. const int KEY_4            = 31;
  1242. const int KEY_5            = 32;
  1243. const int KEY_6            = 33;
  1244. const int KEY_7            = 34;
  1245. const int KEY_8            = 35;
  1246. const int KEY_9            = 36;
  1247. const int KEY_0_PAD        = 37;
  1248. const int KEY_1_PAD        = 38;
  1249. const int KEY_2_PAD        = 39;
  1250. const int KEY_3_PAD        = 40;
  1251. const int KEY_4_PAD        = 41;
  1252. const int KEY_5_PAD        = 42;
  1253. const int KEY_6_PAD        = 43;
  1254. const int KEY_7_PAD        = 44;
  1255. const int KEY_8_PAD        = 45;
  1256. const int KEY_9_PAD        = 46;
  1257. const int KEY_F1           = 47;
  1258. const int KEY_F2           = 48;
  1259. const int KEY_F3           = 49;
  1260. const int KEY_F4           = 50;
  1261. const int KEY_F5           = 51;
  1262. const int KEY_F6           = 52;
  1263. const int KEY_F7           = 53;
  1264. const int KEY_F8           = 54;
  1265. const int KEY_F9           = 55;
  1266. const int KEY_F10          = 56;
  1267. const int KEY_F11          = 57;
  1268. const int KEY_F12          = 58;
  1269. const int KEY_ESC          = 59;
  1270. const int KEY_TILDE        = 60;
  1271. const int KEY_MINUS        = 61;
  1272. const int KEY_EQUALS       = 62;
  1273. const int KEY_BACKSPACE    = 63;
  1274. const int KEY_TAB          = 64;
  1275. const int KEY_OPENBRACE    = 65;
  1276. const int KEY_CLOSEBRACE   = 66;
  1277. const int KEY_ENTER        = 67;
  1278. const int KEY_COLON        = 68;
  1279. const int KEY_QUOTE        = 69;
  1280. const int KEY_BACKSLASH    = 70;
  1281. const int KEY_BACKSLASH2   = 71;
  1282. const int KEY_COMMA        = 72;
  1283. const int KEY_STOP         = 73;
  1284. const int KEY_SLASH        = 74;
  1285. const int KEY_SPACE        = 75;
  1286. const int KEY_INSERT       = 76;
  1287. const int KEY_DEL          = 77;
  1288. const int KEY_HOME         = 78;
  1289. const int KEY_END          = 79;
  1290. const int KEY_PGUP         = 80;
  1291. const int KEY_PGDN         = 81;
  1292. const int KEY_LEFT         = 82;
  1293. const int KEY_RIGHT        = 83;
  1294. const int KEY_UP           = 84;
  1295. const int KEY_DOWN         = 85;
  1296. const int KEY_SLASH_PAD    = 86;
  1297. const int KEY_ASTERISK     = 87;
  1298. const int KEY_MINUS_PAD    = 88;
  1299. const int KEY_PLUS_PAD     = 89;
  1300. const int KEY_DEL_PAD      = 90;
  1301. const int KEY_ENTER_PAD    = 91;
  1302. const int KEY_PRTSCR       = 92;
  1303. const int KEY_PAUSE        = 93;
  1304. const int KEY_ABNT_C1      = 94;
  1305. const int KEY_YEN          = 95;
  1306. const int KEY_KANA         = 96;
  1307. const int KEY_CONVERT      = 97;
  1308. const int KEY_NOCONVERT    = 98;
  1309. const int KEY_AT           = 99;
  1310. const int KEY_CIRCUMFLEX   = 100;
  1311. const int KEY_COLON2       = 101;
  1312. const int KEY_KANJI        = 102;
  1313. const int KEY_EQUALS_PAD   = 103;  /* MacOS X */
  1314. const int KEY_BACKQUOTE    = 104;  /* MacOS X */
  1315. const int KEY_SEMICOLON    = 105;  /* MacOS X */
  1316. const int KEY_COMMAND      = 106;  /* MacOS X */
  1317. const int KEY_UNKNOWN1     = 107;
  1318. const int KEY_UNKNOWN2     = 108;
  1319. const int KEY_UNKNOWN3     = 109;
  1320. const int KEY_UNKNOWN4     = 110;
  1321. const int KEY_UNKNOWN5     = 111;
  1322. const int KEY_UNKNOWN6     = 112;
  1323. const int KEY_UNKNOWN7     = 113;
  1324. const int KEY_UNKNOWN8     = 114;
  1325.  
  1326. const int KEY_MODIFIERS    = 115;
  1327.  
  1328. const int KEY_LSHIFT       = 115;
  1329. const int KEY_RSHIFT       = 116;
  1330. const int KEY_LCONTROL     = 117;
  1331. const int KEY_RCONTROL     = 118;
  1332. const int KEY_ALT          = 119;
  1333. const int KEY_ALTGR        = 120;
  1334. const int KEY_LWIN         = 121;
  1335. const int KEY_RWIN         = 122;
  1336. const int KEY_MENU         = 123;
  1337. const int KEY_SCRLOCK      = 124;
  1338. const int KEY_NUMLOCK      = 125;
  1339. const int KEY_CAPSLOCK     = 126;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement