mirror of
https://github.com/Oibaf66/uae-wii.git
synced 2024-06-03 00:58:47 +02:00
210 lines
4.6 KiB
C
210 lines
4.6 KiB
C
/*
|
|
* UAE - The Un*x Amiga Emulator
|
|
*
|
|
* Support for mapping Quartz keycodes to platform-independent
|
|
* UAE key codes.
|
|
*
|
|
* Copyright 2004 Richard Drummond
|
|
*/
|
|
|
|
#if defined __APPLE__
|
|
|
|
#include "sysconfig.h"
|
|
#include "sysdeps.h"
|
|
|
|
#include "options.h"
|
|
#include "inputdevice.h"
|
|
#include "keymap.h"
|
|
#include "keymap_common.h"
|
|
|
|
/*
|
|
* MacOS raw key codes
|
|
*/
|
|
#define RAWKEY_ESCAPE 53
|
|
|
|
#define RAWKEY_F1 122
|
|
#define RAWKEY_F2 120
|
|
#define RAWKEY_F3 99
|
|
#define RAWKEY_F4 118
|
|
#define RAWKEY_F5 96
|
|
#define RAWKEY_F6 97
|
|
#define RAWKEY_F7 98
|
|
#define RAWKEY_F8 100
|
|
#define RAWKEY_F9 101
|
|
#define RAWKEY_F10 109
|
|
#define RAWKEY_F11 103
|
|
#define RAWKEY_F12 111
|
|
|
|
#define RAWKEY_PRINTSCR 105
|
|
#define RAWKEY_SCROLL_LOCK 107
|
|
#define RAWKEY_PAUSE 113
|
|
|
|
#define RAWKEY_1 18
|
|
#define RAWKEY_2 19
|
|
#define RAWKEY_3 20
|
|
#define RAWKEY_4 21
|
|
#define RAWKEY_5 23
|
|
#define RAWKEY_6 22
|
|
#define RAWKEY_7 26
|
|
#define RAWKEY_8 28
|
|
#define RAWKEY_9 25
|
|
#define RAWKEY_0 29
|
|
|
|
#define RAWKEY_TAB 48
|
|
#define RAWKEY_ENTER 36
|
|
#define RAWKEY_BACKSPACE 51
|
|
#define RAWKEY_SPACE 49
|
|
|
|
#define RAWKEY_A 0
|
|
#define RAWKEY_B 11
|
|
#define RAWKEY_C 8
|
|
#define RAWKEY_D 2
|
|
#define RAWKEY_E 14
|
|
#define RAWKEY_F 3
|
|
#define RAWKEY_G 5
|
|
#define RAWKEY_H 4
|
|
#define RAWKEY_I 34
|
|
#define RAWKEY_J 38
|
|
#define RAWKEY_K 40
|
|
#define RAWKEY_L 37
|
|
#define RAWKEY_M 46
|
|
#define RAWKEY_N 45
|
|
#define RAWKEY_O 31
|
|
#define RAWKEY_P 35
|
|
#define RAWKEY_Q 12
|
|
#define RAWKEY_R 15
|
|
#define RAWKEY_S 1
|
|
#define RAWKEY_T 17
|
|
#define RAWKEY_U 32
|
|
#define RAWKEY_V 9
|
|
#define RAWKEY_W 13
|
|
#define RAWKEY_X 7
|
|
#define RAWKEY_Y 16
|
|
#define RAWKEY_Z 6
|
|
|
|
#define RAWKEY_MINUS 27
|
|
#define RAWKEY_EQUALS 24
|
|
#define RAWKEY_LEFTBRACKET 33
|
|
#define RAWKEY_RIGHTBRACKET 30
|
|
#define RAWKEY_BACKSLASH 42
|
|
#define RAWKEY_SEMICOLON 41
|
|
#define RAWKEY_SINGLEQUOTE 39
|
|
#define RAWKEY_COMMA 43
|
|
#define RAWKEY_PERIOD 47
|
|
#define RAWKEY_SLASH 44
|
|
#define RAWKEY_GRAVE 50
|
|
#define RAWKEY_LTGT 10
|
|
|
|
#define RAWKEY_NUMPAD_1 83
|
|
#define RAWKEY_NUMPAD_2 84
|
|
#define RAWKEY_NUMPAD_3 85
|
|
#define RAWKEY_NUMPAD_4 86
|
|
#define RAWKEY_NUMPAD_5 87
|
|
#define RAWKEY_NUMPAD_6 88
|
|
#define RAWKEY_NUMPAD_7 89
|
|
#define RAWKEY_NUMPAD_8 91
|
|
#define RAWKEY_NUMPAD_9 92
|
|
#define RAWKEY_NUMPAD_0 82
|
|
#define RAWKEY_NUMPAD_EQUALS 81
|
|
#define RAWKEY_NUMPAD_DIVIDE 75
|
|
#define RAWKEY_NUMPAD_MULTIPLY 67
|
|
#define RAWKEY_NUMPAD_MINUS 78
|
|
#define RAWKEY_NUMPAD_PLUS 69
|
|
#define RAWKEY_NUMPAD_PERIOD 65
|
|
#define RAWKEY_NUMPAD_ENTER 76
|
|
#define RAWKEY_NUMLOCK 71
|
|
|
|
#define RAWKEY_INSERT 114
|
|
#define RAWKEY_DELETE 117
|
|
#define RAWKEY_HOME 115
|
|
#define RAWKEY_END 119
|
|
#define RAWKEY_PAGEUP 116
|
|
#define RAWKEY_PAGEDOWN 121
|
|
|
|
#define RAWKEY_CURSOR_UP 126
|
|
#define RAWKEY_CURSOR_DOWN 125
|
|
#define RAWKEY_CURSOR_LEFT 123
|
|
#define RAWKEY_CURSOR_RIGHT 124
|
|
|
|
/*
|
|
* MacOS X support for modifier keys is a bit iffy.
|
|
*
|
|
* Under SDL (up to 1.2.7 anyway) my ADB keyboard, doesn't
|
|
* report key codes for modifier keys. Thus we need the
|
|
* modifier hack (see SDL gfx driver) to generate raw key
|
|
* codes from modifier presses.
|
|
*
|
|
* Also, unless you have SDL 1.2.8 and OS 10.3, left and right
|
|
* keys are differentiated. On some keyboards they'll never
|
|
* be differentiated.
|
|
*/
|
|
#define RAWKEY_LEFT_CTRL 59
|
|
#define RAWKEY_LEFT_SHIFT 56
|
|
#define RAWKEY_LEFT_ALT 58
|
|
#define RAWKEY_LEFT_SUPER 55
|
|
#define RAWKEY_RIGHT_SUPER 54
|
|
#define RAWKEY_RIGHT_ALT 61
|
|
#define RAWKEY_RIGHT_SHIFT 60
|
|
#define RAWKEY_RIGHT_CTRL 62
|
|
#define RAWKEY_CAPSLOCK 57
|
|
|
|
#define RAWKEY_POWER 127
|
|
|
|
/*
|
|
* Mapping from raw key codes to UAE key codes
|
|
*/
|
|
const struct uaekey_hostmap quartz_keymap[] =
|
|
{
|
|
{RAWKEYS_COMMON},
|
|
|
|
{RAWKEY_F11, UAEKEY_F11},
|
|
{RAWKEY_F12, UAEKEY_F12},
|
|
|
|
{RAWKEY_PRINTSCR, UAEKEY_PRINTSCR},
|
|
{RAWKEY_SCROLL_LOCK, UAEKEY_SCROLL_LOCK},
|
|
{RAWKEY_PAUSE, UAEKEY_PAUSE},
|
|
|
|
{RAWKEY_NUMPAD_EQUALS, UAEKEY_NUMPAD_EQUALS},
|
|
|
|
{RAWKEY_POWER, UAEKEY_POWER},
|
|
|
|
{RAWKEYS_END}
|
|
};
|
|
|
|
/*
|
|
* Mapping of uae modifier key codes to Quartz modifier keys
|
|
*/
|
|
const int quartz_modkeytable[] = {
|
|
/* UAEMODKEY_LSHIFT */ RAWKEY_LEFT_SHIFT,
|
|
/* UAEMODKEY_LCTRL */ RAWKEY_LEFT_CTRL,
|
|
/* UAEMODKEY_LALT */ RAWKEY_LEFT_ALT,
|
|
/* UAEMODKEY_LSUPER */ RAWKEY_LEFT_SUPER,
|
|
/* UAEMODKEY_RSUPER */ RAWKEY_RIGHT_SUPER,
|
|
/* UAEMODKEY_RALT */ RAWKEY_RIGHT_ALT,
|
|
/* UAEMODKEY_RCTRL */ RAWKEY_RIGHT_CTRL,
|
|
/* UAEMODKEY_RSHIFT */ RAWKEY_RIGHT_SHIFT,
|
|
/* UAEMODKEY_CAPSLOCK */ RAWKEY_CAPSLOCK
|
|
};
|
|
|
|
|
|
/*
|
|
* Hot-key sequences
|
|
*/
|
|
|
|
/*
|
|
* F12 is used to eject a CD-ROM on OS X. Don't use
|
|
* it as the initiator for control seqeuences.
|
|
*/
|
|
#define HOTKEY_MODIFIER RAWKEY_F11
|
|
|
|
#include "hotkeys.h"
|
|
#include "hotkeys_common.h"
|
|
|
|
struct uae_hotkeyseq quartz_hotkeys[] =
|
|
{
|
|
{ DEFAULT_HOTKEYS },
|
|
{ HOTKEYS_END }
|
|
};
|
|
|
|
#endif
|