~ubuntu-branches/ubuntu/karmic/e-uae/karmic

« back to all changes in this revision

Viewing changes to src/keymap/quartz_rawkeys.c

  • Committer: Bazaar Package Importer
  • Author(s): Stephan Suerken
  • Date: 2008-07-05 14:02:02 UTC
  • Revision ID: james.westby@ubuntu.com-20080705140202-u5aagnhtg31pmjc3
Tags: upstream-0.8.29-WIP4
ImportĀ upstreamĀ versionĀ 0.8.29-WIP4

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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