Annotation of uae/src/keymap/quartz_rawkeys.c, revision 1.1.1.1

1.1       root        1:  /*
                      2:   * UAE - The Un*x Amiga Emulator
                      3:   *
                      4:   * Support for mapping Quartz keycodes to platform-independent
                      5:   * UAE key codes.
                      6:   *
                      7:   * Copyright 2004 Richard Drummond
                      8:   */
                      9: 
                     10: #if defined __APPLE__
                     11: 
                     12: #include "sysconfig.h"
                     13: #include "sysdeps.h"
                     14: 
                     15: #include "options.h"
                     16: #include "inputdevice.h"
                     17: #include "keymap.h"
                     18: #include "keymap_common.h"
                     19: 
                     20: /*
                     21:  * MacOS raw key codes
                     22:  */
                     23: #define RAWKEY_ESCAPE          53
                     24: 
                     25: #define RAWKEY_F1              122
                     26: #define RAWKEY_F2              120
                     27: #define RAWKEY_F3              99
                     28: #define RAWKEY_F4              118
                     29: #define RAWKEY_F5              96
                     30: #define RAWKEY_F6              97
                     31: #define RAWKEY_F7              98
                     32: #define RAWKEY_F8              100
                     33: #define RAWKEY_F9              101
                     34: #define RAWKEY_F10             109
                     35: #define RAWKEY_F11             103
                     36: #define RAWKEY_F12             111
                     37: 
                     38: #define RAWKEY_PRINTSCR                105
                     39: #define RAWKEY_SCROLL_LOCK      107
                     40: #define RAWKEY_PAUSE            113
                     41: 
                     42: #define RAWKEY_1               18
                     43: #define RAWKEY_2               19
                     44: #define RAWKEY_3               20
                     45: #define RAWKEY_4               21
                     46: #define RAWKEY_5               23
                     47: #define RAWKEY_6               22
                     48: #define RAWKEY_7               26
                     49: #define RAWKEY_8               28
                     50: #define RAWKEY_9               25
                     51: #define RAWKEY_0               29
                     52: 
                     53: #define RAWKEY_TAB             48
                     54: #define RAWKEY_ENTER           36
                     55: #define RAWKEY_BACKSPACE       51
                     56: #define RAWKEY_SPACE            49
                     57: 
                     58: #define RAWKEY_A               0
                     59: #define RAWKEY_B               11
                     60: #define RAWKEY_C               8
                     61: #define RAWKEY_D               2
                     62: #define RAWKEY_E               14
                     63: #define RAWKEY_F               3
                     64: #define RAWKEY_G               5
                     65: #define RAWKEY_H               4
                     66: #define RAWKEY_I               34
                     67: #define RAWKEY_J               38
                     68: #define RAWKEY_K               40
                     69: #define RAWKEY_L               37
                     70: #define RAWKEY_M               46
                     71: #define RAWKEY_N               45
                     72: #define RAWKEY_O               31
                     73: #define RAWKEY_P               35
                     74: #define RAWKEY_Q               12
                     75: #define RAWKEY_R               15
                     76: #define RAWKEY_S               1
                     77: #define RAWKEY_T               17
                     78: #define RAWKEY_U               32
                     79: #define RAWKEY_V               9
                     80: #define RAWKEY_W               13
                     81: #define RAWKEY_X               7
                     82: #define RAWKEY_Y               16
                     83: #define RAWKEY_Z               6
                     84: 
                     85: #define RAWKEY_MINUS           27
                     86: #define RAWKEY_EQUALS          24
                     87: #define RAWKEY_LEFTBRACKET     33
                     88: #define RAWKEY_RIGHTBRACKET    30
                     89: #define RAWKEY_BACKSLASH       42
                     90: #define RAWKEY_SEMICOLON       41
                     91: #define RAWKEY_SINGLEQUOTE     39
                     92: #define RAWKEY_COMMA           43
                     93: #define RAWKEY_PERIOD          47
                     94: #define RAWKEY_SLASH           44
                     95: #define RAWKEY_GRAVE           50
                     96: #define RAWKEY_LTGT            10
                     97: 
                     98: #define RAWKEY_NUMPAD_1                83
                     99: #define RAWKEY_NUMPAD_2                84
                    100: #define RAWKEY_NUMPAD_3                85
                    101: #define RAWKEY_NUMPAD_4                86
                    102: #define RAWKEY_NUMPAD_5                87
                    103: #define RAWKEY_NUMPAD_6                88
                    104: #define RAWKEY_NUMPAD_7                89
                    105: #define RAWKEY_NUMPAD_8                91
                    106: #define RAWKEY_NUMPAD_9                92
                    107: #define RAWKEY_NUMPAD_0                82
                    108: #define RAWKEY_NUMPAD_EQUALS   81
                    109: #define RAWKEY_NUMPAD_DIVIDE   75
                    110: #define RAWKEY_NUMPAD_MULTIPLY 67
                    111: #define RAWKEY_NUMPAD_MINUS    78
                    112: #define RAWKEY_NUMPAD_PLUS     69
                    113: #define RAWKEY_NUMPAD_PERIOD   65
                    114: #define RAWKEY_NUMPAD_ENTER    76
                    115: #define RAWKEY_NUMLOCK         71
                    116: 
                    117: #define RAWKEY_INSERT          114
                    118: #define RAWKEY_DELETE          117
                    119: #define RAWKEY_HOME            115
                    120: #define RAWKEY_END             119
                    121: #define RAWKEY_PAGEUP          116
                    122: #define RAWKEY_PAGEDOWN                121
                    123: 
                    124: #define RAWKEY_CURSOR_UP       126
                    125: #define RAWKEY_CURSOR_DOWN     125
                    126: #define RAWKEY_CURSOR_LEFT     123
                    127: #define RAWKEY_CURSOR_RIGHT    124
                    128: 
                    129: /*
                    130:  * MacOS X support for modifier keys is a bit iffy.
                    131:  *
                    132:  * Under SDL (up to 1.2.7 anyway) my ADB keyboard, doesn't
                    133:  * report key codes for modifier keys. Thus we need the
                    134:  * modifier hack (see SDL gfx driver) to generate raw key
                    135:  * codes from modifier presses.
                    136:  *
                    137:  * Also, unless you have SDL 1.2.8 and OS 10.3, left and right
                    138:  * keys are differentiated. On some keyboards they'll never
                    139:  * be differentiated.
                    140:  */
                    141: #define RAWKEY_LEFT_CTRL       59
                    142: #define RAWKEY_LEFT_SHIFT      56
                    143: #define RAWKEY_LEFT_ALT                58
                    144: #define RAWKEY_LEFT_SUPER      55
                    145: #define RAWKEY_RIGHT_SUPER     54
                    146: #define RAWKEY_RIGHT_ALT       61
                    147: #define RAWKEY_RIGHT_SHIFT     60
                    148: #define RAWKEY_RIGHT_CTRL      62
                    149: #define RAWKEY_CAPSLOCK                57
                    150: 
                    151: #define RAWKEY_POWER            127
                    152: 
                    153: /*
                    154:  * Mapping from raw key codes to UAE key codes
                    155:  */
                    156: const struct uaekey_hostmap quartz_keymap[] =
                    157: {
                    158:     {RAWKEYS_COMMON},
                    159: 
                    160:     {RAWKEY_F11,               UAEKEY_F11},
                    161:     {RAWKEY_F12,               UAEKEY_F12},
                    162: 
                    163:     {RAWKEY_PRINTSCR,          UAEKEY_PRINTSCR},
                    164:     {RAWKEY_SCROLL_LOCK,       UAEKEY_SCROLL_LOCK},
                    165:     {RAWKEY_PAUSE,             UAEKEY_PAUSE},
                    166: 
                    167:     {RAWKEY_NUMPAD_EQUALS,     UAEKEY_NUMPAD_EQUALS},
                    168: 
                    169:     {RAWKEY_POWER,             UAEKEY_POWER},
                    170: 
                    171:     {RAWKEYS_END}
                    172: };
                    173: 
                    174: /*
                    175:  * Mapping of uae modifier key codes to Quartz modifier keys
                    176:  */
                    177: const int quartz_modkeytable[] = {
                    178:     /* UAEMODKEY_LSHIFT */     RAWKEY_LEFT_SHIFT,
                    179:     /* UAEMODKEY_LCTRL */      RAWKEY_LEFT_CTRL,
                    180:     /* UAEMODKEY_LALT */       RAWKEY_LEFT_ALT,
                    181:     /* UAEMODKEY_LSUPER */     RAWKEY_LEFT_SUPER,
                    182:     /* UAEMODKEY_RSUPER */     RAWKEY_RIGHT_SUPER,
                    183:     /* UAEMODKEY_RALT */       RAWKEY_RIGHT_ALT,
                    184:     /* UAEMODKEY_RCTRL */      RAWKEY_RIGHT_CTRL,
                    185:     /* UAEMODKEY_RSHIFT */     RAWKEY_RIGHT_SHIFT,
                    186:     /* UAEMODKEY_CAPSLOCK */   RAWKEY_CAPSLOCK
                    187: };
                    188: 
                    189: 
                    190: /*
                    191:  * Hot-key sequences
                    192:  */
                    193: 
                    194: /*
                    195:  * F12 is used to eject a CD-ROM on OS X. Don't use
                    196:  * it as the initiator for control seqeuences.
                    197:  */
                    198: #define HOTKEY_MODIFIER                RAWKEY_F11
                    199: 
                    200: #include "hotkeys.h"
                    201: #include "hotkeys_common.h"
                    202: 
                    203: struct uae_hotkeyseq quartz_hotkeys[] =
                    204: {
                    205:      { DEFAULT_HOTKEYS },
                    206:      { HOTKEYS_END }
                    207: };
                    208: 
                    209: #endif

unix.superglobalmegacorp.com

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