Annotation of uae/src/keymap/keymap.c, revision 1.1

1.1     ! root        1:  /*
        !             2:   * UAE - The Un*x Amiga Emulator
        !             3:   *
        !             4:   * Support for platform-independent key-mapping
        !             5:   *
        !             6:   * Copyright 2004 Richard Drummond
        !             7:   */
        !             8: 
        !             9: #include "sysconfig.h"
        !            10: #include "sysdeps.h"
        !            11: 
        !            12: #include "options.h"
        !            13: #include "inputdevice.h"
        !            14: #include "keymap/keymap.h"
        !            15: 
        !            16: /*
        !            17:  * Default mapping of UAE keycodes to UAE input events
        !            18:  *
        !            19:  * This list is ordered by UAEKEY_#? code. Input events correspond
        !            20:  * to Amiga keycodes or UAE commands.
        !            21:  */
        !            22: static const int default_keymap[] = {
        !            23:                                INPUTEVENT_ZERO,
        !            24:     /* UAEKEY_ESCAPE */        INPUTEVENT_KEY_ESC,
        !            25: 
        !            26:     /* UAEKEY_F1 */            INPUTEVENT_KEY_F1,
        !            27:     /* UAEKEY_F2 */            INPUTEVENT_KEY_F2,
        !            28:     /* UAEKEY_F3 */            INPUTEVENT_KEY_F3,
        !            29:     /* UAEKEY_F4 */            INPUTEVENT_KEY_F4,
        !            30:     /* UAEKEY_F5 */            INPUTEVENT_KEY_F5,
        !            31:     /* UAEKEY_F6 */            INPUTEVENT_KEY_F6,
        !            32:     /* UAEKEY_F7 */            INPUTEVENT_KEY_F7,
        !            33:     /* UAEKEY_F8 */            INPUTEVENT_KEY_F8,
        !            34:     /* UAEKEY_F9 */            INPUTEVENT_KEY_F9,
        !            35:     /* UAEKEY_F10 */           INPUTEVENT_KEY_F10,
        !            36:     /* UAEKEY_F11 */           INPUTEVENT_ZERO,
        !            37:     /* UAEKEY_F12 */           INPUTEVENT_ZERO,
        !            38: 
        !            39:     /* UAEKEY_PRINTSCR */      INPUTEVENT_SPC_SCREENSHOT,
        !            40:     /* UAEKEY_SCROLL_LOCK */   INPUTEVENT_SPC_INHIBITSCREEN,
        !            41:     /* UAEKEY_PAUSE */         INPUTEVENT_SPC_PAUSE,
        !            42: 
        !            43:     /* UAEKEY_1 */             INPUTEVENT_KEY_1,
        !            44:     /* UAEKEY_2 */             INPUTEVENT_KEY_2,
        !            45:     /* UAEKEY_3 */             INPUTEVENT_KEY_3,
        !            46:     /* UAEKEY_4 */             INPUTEVENT_KEY_4,
        !            47:     /* UAEKEY_5 */             INPUTEVENT_KEY_5,
        !            48:     /* UAEKEY_6 */             INPUTEVENT_KEY_6,
        !            49:     /* UAEKEY_7 */             INPUTEVENT_KEY_7,
        !            50:     /* UAEKEY_8 */             INPUTEVENT_KEY_8,
        !            51:     /* UAEKEY_9 */             INPUTEVENT_KEY_9,
        !            52:     /* UAEKEY_0        */              INPUTEVENT_KEY_0,
        !            53: 
        !            54:     /* UAEKEY_MINUS */         INPUTEVENT_KEY_SUB,
        !            55:     /* UAEKEY_EQUALS */                INPUTEVENT_KEY_EQUALS,
        !            56: 
        !            57:     /* UAEKEY_BACKSPACE */     INPUTEVENT_KEY_BACKSPACE,
        !            58:     /* UAEKEY_ENTER */         INPUTEVENT_KEY_RETURN,
        !            59:     /* UAEKEY_SPACE */         INPUTEVENT_KEY_SPACE,
        !            60: 
        !            61:     /* UAEKEY_TAB */           INPUTEVENT_KEY_TAB,
        !            62: 
        !            63:     /* UAEKEY_A */             INPUTEVENT_KEY_A,
        !            64:     /* UAEKEY_B */             INPUTEVENT_KEY_B,
        !            65:     /* UAEKEY_C */             INPUTEVENT_KEY_C,
        !            66:     /* UAEKEY_D */             INPUTEVENT_KEY_D,
        !            67:     /* UAEKEY_E */             INPUTEVENT_KEY_E,
        !            68:     /* UAEKEY_F */             INPUTEVENT_KEY_F,
        !            69:     /* UAEKEY_G */             INPUTEVENT_KEY_G,
        !            70:     /* UAEKEY_H */             INPUTEVENT_KEY_H,
        !            71:     /* UAEKEY_I */             INPUTEVENT_KEY_I,
        !            72:     /* UAEKEY_J */             INPUTEVENT_KEY_J,
        !            73:     /* UAEKEY_K */             INPUTEVENT_KEY_K,
        !            74:     /* UAEKEY_L */             INPUTEVENT_KEY_L,
        !            75:     /* UAEKEY_M */             INPUTEVENT_KEY_M,
        !            76:     /* UAEKEY_N */             INPUTEVENT_KEY_N,
        !            77:     /* UAEKEY_O */             INPUTEVENT_KEY_O,
        !            78:     /* UAEKEY_P */             INPUTEVENT_KEY_P,
        !            79:     /* UAEKEY_Q */             INPUTEVENT_KEY_Q,
        !            80:     /* UAEKEY_R */             INPUTEVENT_KEY_R,
        !            81:     /* UAEKEY_S */             INPUTEVENT_KEY_S,
        !            82:     /* UAEKEY_T */             INPUTEVENT_KEY_T,
        !            83:     /* UAEKEY_U */             INPUTEVENT_KEY_U,
        !            84:     /* UAEKEY_V */             INPUTEVENT_KEY_V,
        !            85:     /* UAEKEY_W */             INPUTEVENT_KEY_W,
        !            86:     /* UAEKEY_X */             INPUTEVENT_KEY_X,
        !            87:     /* UAEKEY_Y */             INPUTEVENT_KEY_Y,
        !            88:     /* UAEKEY_Z */             INPUTEVENT_KEY_Z,
        !            89: 
        !            90:     /* UAEKEY_LEFTBRACKET */   INPUTEVENT_KEY_LEFTBRACKET,
        !            91:     /* UAEKEY_RIGHTBRACKET */  INPUTEVENT_KEY_RIGHTBRACKET,
        !            92:     /* UAEKEY_SEMICOLON */     INPUTEVENT_KEY_SEMICOLON,
        !            93:     /* UAEKEY_SINGLEQUOTE */   INPUTEVENT_KEY_SINGLEQUOTE,
        !            94:     /* UAEKEY_GRAVE */         INPUTEVENT_KEY_BACKQUOTE,
        !            95:     /* UAEKEY_BACKSLASH */     INPUTEVENT_KEY_BACKSLASH,
        !            96:     /* UAEKEY_COMMA */         INPUTEVENT_KEY_COMMA,
        !            97:     /* UAEKEY_PERIOD */                INPUTEVENT_KEY_PERIOD,
        !            98:     /* UAEKEY_SLASH */         INPUTEVENT_KEY_DIV,
        !            99:     /* UAEKEY_LTGT */          INPUTEVENT_KEY_30,
        !           100: 
        !           101:     /* UAEKEY_NUMLOCK */       INPUTEVENT_ZERO,
        !           102:     /* UAEKEY_NUMPAD_1 */      INPUTEVENT_KEY_NP_1,
        !           103:     /* UAEKEY_NUMPAD_2 */      INPUTEVENT_KEY_NP_2,
        !           104:     /* UAEKEY_NUMPAD_3 */      INPUTEVENT_KEY_NP_3,
        !           105:     /* UAEKEY_NUMPAD_4 */      INPUTEVENT_KEY_NP_4,
        !           106:     /* UAEKEY_NUMPAD_5 */      INPUTEVENT_KEY_NP_5,
        !           107:     /* UAEKEY_NUMPAD_6 */      INPUTEVENT_KEY_NP_6,
        !           108:     /* UAEKEY_NUMPAD_7 */      INPUTEVENT_KEY_NP_7,
        !           109:     /* UAEKEY_NUMPAD_8 */      INPUTEVENT_KEY_NP_8,
        !           110:     /* UAEKEY_NUMPAD_9 */      INPUTEVENT_KEY_NP_9,
        !           111:     /* UAEKEY_NUMPAD_0 */      INPUTEVENT_KEY_NP_0,
        !           112:     /* UAEKEY_NUMPAD_PERIOD */ INPUTEVENT_KEY_NP_PERIOD,
        !           113:     /* UAEKEY_NUMPAD_PLUS */   INPUTEVENT_KEY_NP_ADD,
        !           114:     /* UAEKEY_NUMPAD_MINUS */  INPUTEVENT_KEY_NP_SUB,
        !           115:     /* UAEKEY_NUMPAD_MULTIPLY */INPUTEVENT_KEY_NP_MUL,
        !           116:     /* UAEKEY_NUMPAD_DIVIDE */ INPUTEVENT_KEY_NP_DIV,
        !           117:     /* UAEKEY_NUMPAD_ENTER */  INPUTEVENT_KEY_ENTER,
        !           118:     /* UAEKEY_NUMPAD_EQUALS */  INPUTEVENT_ZERO,
        !           119:     /* UAEKEY_NUMPAD_LPAREN */  INPUTEVENT_KEY_NP_LPAREN,
        !           120:     /* UAEKEY_NUMPAD_RPAREN */  INPUTEVENT_KEY_NP_RPAREN,
        !           121: 
        !           122:     /* UAEKEY_INSERT */                INPUTEVENT_KEY_HELP,
        !           123:     /* UAEKEY_DELETE */                INPUTEVENT_KEY_DEL,
        !           124:     /* UAEKEY_HOME */          INPUTEVENT_ZERO,
        !           125:     /* UAEKEY_END */           INPUTEVENT_ZERO,
        !           126:     /* UAEKEY_PAGEUP */        INPUTEVENT_KEY_AMIGA_RIGHT,
        !           127:     /* UAEKEY_PAGEDOWN */      INPUTEVENT_KEY_AMIGA_LEFT,
        !           128: 
        !           129:     /* UAEKEY_CURSOR_UP */     INPUTEVENT_KEY_CURSOR_UP,
        !           130:     /* UAEKEY_CURSOR_DOWN */   INPUTEVENT_KEY_CURSOR_DOWN,
        !           131:     /* UAEKEY_CURSOR_LEFT */   INPUTEVENT_KEY_CURSOR_LEFT,
        !           132:     /* UAEKEY_CURSOR_RIGHT */  INPUTEVENT_KEY_CURSOR_RIGHT,
        !           133: 
        !           134:     /* UAEKEY_LEFT_CTRL */     INPUTEVENT_KEY_CTRL,
        !           135:     /* UAEKEY_LEFT_SHIFT */    INPUTEVENT_KEY_SHIFT_LEFT,
        !           136:     /* UAEKEY_LEFT_ALT */      INPUTEVENT_KEY_ALT_LEFT,
        !           137:     /* UAEKEY_LEFT_SUPER */    INPUTEVENT_KEY_AMIGA_LEFT,
        !           138:     /* UAEKEY_RIGHT_SUPER */   INPUTEVENT_KEY_AMIGA_RIGHT,
        !           139:     /* UAEKEY_RIGHT_ALT */     INPUTEVENT_KEY_ALT_RIGHT,
        !           140:     /* UAEKEY_MENU */          INPUTEVENT_KEY_AMIGA_RIGHT,
        !           141:     /* UAEKEY_RIGHT_SHIFT */   INPUTEVENT_KEY_SHIFT_RIGHT,
        !           142:     /* UAEKEY_RIGHT_CTRL */    INPUTEVENT_KEY_CTRL_RIGHT,
        !           143:     /* UAEKEY_CAPSLOCK */      INPUTEVENT_KEY_CAPS_LOCK,
        !           144: 
        !           145:     /* UAEKEY_HELP */          INPUTEVENT_KEY_HELP,
        !           146: 
        !           147:     /* UAEKEY_POWER */         INPUTEVENT_ZERO,
        !           148:     /* UAEKEY_SLEEP */         INPUTEVENT_ZERO,
        !           149:     /* UAEKEY_WAKE */          INPUTEVENT_ZERO
        !           150: };
        !           151: 
        !           152: 
        !           153: /*
        !           154:  * Build a default key translation table using the
        !           155:  * specified host keymap.
        !           156:  */
        !           157: struct uae_input_device_kbr_default *uaekey_make_default_kbr (const struct uaekey_hostmap *hostkeys)
        !           158: {
        !           159:     int i;
        !           160:     int count;
        !           161:     struct uae_input_device_kbr_default *trans;
        !           162: 
        !           163:     for (i = 0; i < 256 && hostkeys[i].hostkey != -1; i++);
        !           164: 
        !           165:     if (i == 256)
        !           166:        abort ();
        !           167: 
        !           168:     count = i;
        !           169: 
        !           170:     trans = (struct uae_input_device_kbr_default*)
        !           171:            malloc (sizeof (struct uae_input_device_kbr_default) * (count + 1));
        !           172: 
        !           173:     if (trans) {
        !           174:        for (i = 0; i < count; i++) {
        !           175:            trans[i].scancode = hostkeys[i].hostkey;
        !           176:            trans[i].event    = default_keymap[hostkeys[i].uaekey];
        !           177:        }
        !           178:        trans[i].scancode = -1;
        !           179:     }
        !           180: 
        !           181:     return trans;
        !           182: };

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.