2
* UAE - The Un*x Amiga Emulator
4
* Support for mapping Quartz keycodes to platform-independent
7
* Copyright 2004 Richard Drummond
12
#include "sysconfig.h"
16
#include "inputdevice.h"
18
#include "keymap_common.h"
23
#define RAWKEY_ESCAPE 53
34
#define RAWKEY_F10 109
35
#define RAWKEY_F11 103
36
#define RAWKEY_F12 111
38
#define RAWKEY_PRINTSCR 105
39
#define RAWKEY_SCROLL_LOCK 107
40
#define RAWKEY_PAUSE 113
54
#define RAWKEY_ENTER 36
55
#define RAWKEY_BACKSPACE 51
56
#define RAWKEY_SPACE 49
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
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
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
124
#define RAWKEY_CURSOR_UP 126
125
#define RAWKEY_CURSOR_DOWN 125
126
#define RAWKEY_CURSOR_LEFT 123
127
#define RAWKEY_CURSOR_RIGHT 124
130
* MacOS X support for modifier keys is a bit iffy.
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.
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
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
151
#define RAWKEY_POWER 127
154
* Mapping from raw key codes to UAE key codes
156
const struct uaekey_hostmap quartz_keymap[] =
160
{RAWKEY_F11, UAEKEY_F11},
161
{RAWKEY_F12, UAEKEY_F12},
163
{RAWKEY_PRINTSCR, UAEKEY_PRINTSCR},
164
{RAWKEY_SCROLL_LOCK, UAEKEY_SCROLL_LOCK},
165
{RAWKEY_PAUSE, UAEKEY_PAUSE},
167
{RAWKEY_NUMPAD_EQUALS, UAEKEY_NUMPAD_EQUALS},
169
{RAWKEY_POWER, UAEKEY_POWER},
175
* Mapping of uae modifier key codes to Quartz modifier keys
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
195
* F12 is used to eject a CD-ROM on OS X. Don't use
196
* it as the initiator for control seqeuences.
198
#define HOTKEY_MODIFIER RAWKEY_F11
201
#include "hotkeys_common.h"
203
struct uae_hotkeyseq quartz_hotkeys[] =