annotate src/video/ataricommon/SDL_atarievents.c @ 2993:2fad80c77c17

Technically more correct
author Sam Lantinga <slouken@libsdl.org>
date Sun, 04 Jan 2009 19:26:50 +0000
parents 99210400e8b9
children
rev   line source
281
c5010ab8ba35 Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
1 /*
c5010ab8ba35 Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
2 SDL - Simple DirectMedia Layer
2859
99210400e8b9 Updated copyright date
Sam Lantinga <slouken@libsdl.org>
parents: 2043
diff changeset
3 Copyright (C) 1997-2009 Sam Lantinga
281
c5010ab8ba35 Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
4
c5010ab8ba35 Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
5 This library is free software; you can redistribute it and/or
1312
c9b51268668f Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents: 1221
diff changeset
6 modify it under the terms of the GNU Lesser General Public
281
c5010ab8ba35 Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
7 License as published by the Free Software Foundation; either
1312
c9b51268668f Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents: 1221
diff changeset
8 version 2.1 of the License, or (at your option) any later version.
281
c5010ab8ba35 Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
9
c5010ab8ba35 Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
10 This library is distributed in the hope that it will be useful,
c5010ab8ba35 Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
c5010ab8ba35 Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
1312
c9b51268668f Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents: 1221
diff changeset
13 Lesser General Public License for more details.
281
c5010ab8ba35 Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
14
1312
c9b51268668f Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents: 1221
diff changeset
15 You should have received a copy of the GNU Lesser General Public
c9b51268668f Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents: 1221
diff changeset
16 License along with this library; if not, write to the Free Software
c9b51268668f Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents: 1221
diff changeset
17 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
281
c5010ab8ba35 Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
18
c5010ab8ba35 Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
19 Sam Lantinga
c5010ab8ba35 Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
20 slouken@libsdl.org
c5010ab8ba35 Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
21 */
1402
d910939febfa Use consistent identifiers for the various platforms we support.
Sam Lantinga <slouken@libsdl.org>
parents: 1361
diff changeset
22 #include "SDL_config.h"
281
c5010ab8ba35 Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
23
c5010ab8ba35 Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
24 /*
c5010ab8ba35 Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
25 * Atari keyboard events manager
c5010ab8ba35 Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
26 *
c5010ab8ba35 Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
27 * Patrice Mandin
c5010ab8ba35 Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
28 *
c5010ab8ba35 Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
29 * This routines choose what the final event manager will be
c5010ab8ba35 Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
30 */
c5010ab8ba35 Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
31
557
0ce5a68278fd Updated Atari port for new system headers (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents: 297
diff changeset
32 #include <mint/cookie.h>
2030
d774e9d7c2a8 Forward keyboard reworking from 1.2
Patrice Mandin <patmandin@gmail.com>
parents: 1895
diff changeset
33 #include <mint/ostruct.h>
d774e9d7c2a8 Forward keyboard reworking from 1.2
Patrice Mandin <patmandin@gmail.com>
parents: 1895
diff changeset
34 #include <mint/osbind.h>
281
c5010ab8ba35 Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
35
1361
19418e4422cb New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents: 1358
diff changeset
36 #include "../../events/SDL_sysevents.h"
19418e4422cb New configure-based build system. Still work in progress, but much improved
Sam Lantinga <slouken@libsdl.org>
parents: 1358
diff changeset
37 #include "../../events/SDL_events_c.h"
281
c5010ab8ba35 Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
38
2030
d774e9d7c2a8 Forward keyboard reworking from 1.2
Patrice Mandin <patmandin@gmail.com>
parents: 1895
diff changeset
39 #include "SDL_atarikeys.h"
281
c5010ab8ba35 Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
40 #include "SDL_atarievents_c.h"
c5010ab8ba35 Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
41 #include "SDL_biosevents_c.h"
c5010ab8ba35 Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
42 #include "SDL_gemdosevents_c.h"
c5010ab8ba35 Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
43 #include "SDL_ikbdevents_c.h"
c5010ab8ba35 Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
44
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
45 enum
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
46 {
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
47 MCH_ST = 0,
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
48 MCH_STE,
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
49 MCH_TT,
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
50 MCH_F30,
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
51 MCH_CLONE,
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
52 MCH_ARANYM
281
c5010ab8ba35 Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
53 };
c5010ab8ba35 Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
54
2030
d774e9d7c2a8 Forward keyboard reworking from 1.2
Patrice Mandin <patmandin@gmail.com>
parents: 1895
diff changeset
55 #ifndef KT_NOCHANGE
d774e9d7c2a8 Forward keyboard reworking from 1.2
Patrice Mandin <patmandin@gmail.com>
parents: 1895
diff changeset
56 # define KT_NOCHANGE -1
d774e9d7c2a8 Forward keyboard reworking from 1.2
Patrice Mandin <patmandin@gmail.com>
parents: 1895
diff changeset
57 #endif
d774e9d7c2a8 Forward keyboard reworking from 1.2
Patrice Mandin <patmandin@gmail.com>
parents: 1895
diff changeset
58
d774e9d7c2a8 Forward keyboard reworking from 1.2
Patrice Mandin <patmandin@gmail.com>
parents: 1895
diff changeset
59 /* The translation tables from a console scancode to a SDL keysym */
d774e9d7c2a8 Forward keyboard reworking from 1.2
Patrice Mandin <patmandin@gmail.com>
parents: 1895
diff changeset
60 static SDLKey keymap[ATARIBIOS_MAXKEYS];
d774e9d7c2a8 Forward keyboard reworking from 1.2
Patrice Mandin <patmandin@gmail.com>
parents: 1895
diff changeset
61 static unsigned char *keytab_normal;
d774e9d7c2a8 Forward keyboard reworking from 1.2
Patrice Mandin <patmandin@gmail.com>
parents: 1895
diff changeset
62
2032
ddf89133aebc Started work to update for 1.3 api
Patrice Mandin <patmandin@gmail.com>
parents: 2030
diff changeset
63 void (*SDL_Atari_ShutdownEvents) (void);
281
c5010ab8ba35 Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
64
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
65 static void
2032
ddf89133aebc Started work to update for 1.3 api
Patrice Mandin <patmandin@gmail.com>
parents: 2030
diff changeset
66 SDL_Atari_InitializeEvents(_THIS)
281
c5010ab8ba35 Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
67 {
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
68 const char *envr;
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
69 unsigned long cookie_mch;
281
c5010ab8ba35 Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
70
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
71 /* Test if we are on an Atari machine or not */
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
72 if (Getcookie(C__MCH, &cookie_mch) == C_NOTFOUND) {
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
73 cookie_mch = 0;
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
74 }
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
75 cookie_mch >>= 16;
281
c5010ab8ba35 Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
76
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
77 /* Default is Ikbd, the faster except for clones */
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
78 switch (cookie_mch) {
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
79 case MCH_ST:
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
80 case MCH_STE:
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
81 case MCH_TT:
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
82 case MCH_F30:
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
83 case MCH_ARANYM:
2032
ddf89133aebc Started work to update for 1.3 api
Patrice Mandin <patmandin@gmail.com>
parents: 2030
diff changeset
84 _this->PumpEvents = AtariIkbd_PumpEvents;
ddf89133aebc Started work to update for 1.3 api
Patrice Mandin <patmandin@gmail.com>
parents: 2030
diff changeset
85 SDL_Atari_ShutdownEvents = AtariIkbd_ShutdownEvents;
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
86 break;
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
87 default:
2032
ddf89133aebc Started work to update for 1.3 api
Patrice Mandin <patmandin@gmail.com>
parents: 2030
diff changeset
88 _this->PumpEvents = AtariGemdos_PumpEvents;
ddf89133aebc Started work to update for 1.3 api
Patrice Mandin <patmandin@gmail.com>
parents: 2030
diff changeset
89 SDL_Atari_ShutdownEvents = AtariGemdos_ShutdownEvents;
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
90 break;
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
91 }
281
c5010ab8ba35 Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
92
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
93 envr = SDL_getenv("SDL_ATARI_EVENTSDRIVER");
281
c5010ab8ba35 Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
94
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
95 if (!envr) {
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
96 return;
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
97 }
281
c5010ab8ba35 Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
98
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
99 if (SDL_strcmp(envr, "ikbd") == 0) {
2032
ddf89133aebc Started work to update for 1.3 api
Patrice Mandin <patmandin@gmail.com>
parents: 2030
diff changeset
100 _this->PumpEvents = AtariIkbd_PumpEvents;
ddf89133aebc Started work to update for 1.3 api
Patrice Mandin <patmandin@gmail.com>
parents: 2030
diff changeset
101 SDL_Atari_ShutdownEvents = AtariIkbd_ShutdownEvents;
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
102 }
281
c5010ab8ba35 Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
103
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
104 if (SDL_strcmp(envr, "gemdos") == 0) {
2032
ddf89133aebc Started work to update for 1.3 api
Patrice Mandin <patmandin@gmail.com>
parents: 2030
diff changeset
105 _this->PumpEvents = AtariGemdos_PumpEvents;
ddf89133aebc Started work to update for 1.3 api
Patrice Mandin <patmandin@gmail.com>
parents: 2030
diff changeset
106 SDL_Atari_ShutdownEvents = AtariGemdos_ShutdownEvents;
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
107 }
281
c5010ab8ba35 Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
108
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
109 if (SDL_strcmp(envr, "bios") == 0) {
2032
ddf89133aebc Started work to update for 1.3 api
Patrice Mandin <patmandin@gmail.com>
parents: 2030
diff changeset
110 _this->PumpEvents = AtariBios_PumpEvents;
ddf89133aebc Started work to update for 1.3 api
Patrice Mandin <patmandin@gmail.com>
parents: 2030
diff changeset
111 SDL_Atari_ShutdownEvents = AtariBios_ShutdownEvents;
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
112 }
281
c5010ab8ba35 Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
113
2032
ddf89133aebc Started work to update for 1.3 api
Patrice Mandin <patmandin@gmail.com>
parents: 2030
diff changeset
114 SDL_Atari_InitInternalKeymap(_this);
281
c5010ab8ba35 Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
115 }
c5010ab8ba35 Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
116
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
117 void
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
118 Atari_PumpEvents(_THIS)
281
c5010ab8ba35 Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
119 {
2034
59e1a50193aa Oops, don't need to check that
Patrice Mandin <patmandin@gmail.com>
parents: 2032
diff changeset
120 Atari_InitializeEvents(_this);
281
c5010ab8ba35 Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
121
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
122 /* Call choosen routine */
2032
ddf89133aebc Started work to update for 1.3 api
Patrice Mandin <patmandin@gmail.com>
parents: 2030
diff changeset
123 _this->PumpEvents(_this);
281
c5010ab8ba35 Added initial support for Atari (thanks Patrice!)
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
124 }
1209
a55ac374271c Added preliminary missingtranslation from Atari to Unicode charset
Patrice Mandin <patmandin@gmail.com>
parents: 1079
diff changeset
125
2030
d774e9d7c2a8 Forward keyboard reworking from 1.2
Patrice Mandin <patmandin@gmail.com>
parents: 1895
diff changeset
126 void
d774e9d7c2a8 Forward keyboard reworking from 1.2
Patrice Mandin <patmandin@gmail.com>
parents: 1895
diff changeset
127 SDL_Atari_InitInternalKeymap(_THIS)
d774e9d7c2a8 Forward keyboard reworking from 1.2
Patrice Mandin <patmandin@gmail.com>
parents: 1895
diff changeset
128 {
d774e9d7c2a8 Forward keyboard reworking from 1.2
Patrice Mandin <patmandin@gmail.com>
parents: 1895
diff changeset
129 int i;
d774e9d7c2a8 Forward keyboard reworking from 1.2
Patrice Mandin <patmandin@gmail.com>
parents: 1895
diff changeset
130 _KEYTAB *key_tables;
d774e9d7c2a8 Forward keyboard reworking from 1.2
Patrice Mandin <patmandin@gmail.com>
parents: 1895
diff changeset
131
d774e9d7c2a8 Forward keyboard reworking from 1.2
Patrice Mandin <patmandin@gmail.com>
parents: 1895
diff changeset
132 /* Read system tables for scancode -> ascii translation */
d774e9d7c2a8 Forward keyboard reworking from 1.2
Patrice Mandin <patmandin@gmail.com>
parents: 1895
diff changeset
133 key_tables = (_KEYTAB *) Keytbl(KT_NOCHANGE, KT_NOCHANGE, KT_NOCHANGE);
d774e9d7c2a8 Forward keyboard reworking from 1.2
Patrice Mandin <patmandin@gmail.com>
parents: 1895
diff changeset
134 keytab_normal = key_tables->unshift;
d774e9d7c2a8 Forward keyboard reworking from 1.2
Patrice Mandin <patmandin@gmail.com>
parents: 1895
diff changeset
135
d774e9d7c2a8 Forward keyboard reworking from 1.2
Patrice Mandin <patmandin@gmail.com>
parents: 1895
diff changeset
136 /* Initialize keymap */
2043
adf732f1f016 Formatting update
Sam Lantinga <slouken@libsdl.org>
parents: 2034
diff changeset
137 for (i = 0; i < ATARIBIOS_MAXKEYS; i++)
2030
d774e9d7c2a8 Forward keyboard reworking from 1.2
Patrice Mandin <patmandin@gmail.com>
parents: 1895
diff changeset
138 keymap[i] = SDLK_UNKNOWN;
d774e9d7c2a8 Forward keyboard reworking from 1.2
Patrice Mandin <patmandin@gmail.com>
parents: 1895
diff changeset
139
d774e9d7c2a8 Forward keyboard reworking from 1.2
Patrice Mandin <patmandin@gmail.com>
parents: 1895
diff changeset
140 /* Functions keys */
2043
adf732f1f016 Formatting update
Sam Lantinga <slouken@libsdl.org>
parents: 2034
diff changeset
141 for (i = 0; i < 10; i++)
adf732f1f016 Formatting update
Sam Lantinga <slouken@libsdl.org>
parents: 2034
diff changeset
142 keymap[SCANCODE_F1 + i] = SDLK_F1 + i;
2030
d774e9d7c2a8 Forward keyboard reworking from 1.2
Patrice Mandin <patmandin@gmail.com>
parents: 1895
diff changeset
143
d774e9d7c2a8 Forward keyboard reworking from 1.2
Patrice Mandin <patmandin@gmail.com>
parents: 1895
diff changeset
144 /* Cursor keypad */
d774e9d7c2a8 Forward keyboard reworking from 1.2
Patrice Mandin <patmandin@gmail.com>
parents: 1895
diff changeset
145 keymap[SCANCODE_HELP] = SDLK_HELP;
d774e9d7c2a8 Forward keyboard reworking from 1.2
Patrice Mandin <patmandin@gmail.com>
parents: 1895
diff changeset
146 keymap[SCANCODE_UNDO] = SDLK_UNDO;
d774e9d7c2a8 Forward keyboard reworking from 1.2
Patrice Mandin <patmandin@gmail.com>
parents: 1895
diff changeset
147 keymap[SCANCODE_INSERT] = SDLK_INSERT;
d774e9d7c2a8 Forward keyboard reworking from 1.2
Patrice Mandin <patmandin@gmail.com>
parents: 1895
diff changeset
148 keymap[SCANCODE_CLRHOME] = SDLK_HOME;
d774e9d7c2a8 Forward keyboard reworking from 1.2
Patrice Mandin <patmandin@gmail.com>
parents: 1895
diff changeset
149 keymap[SCANCODE_UP] = SDLK_UP;
d774e9d7c2a8 Forward keyboard reworking from 1.2
Patrice Mandin <patmandin@gmail.com>
parents: 1895
diff changeset
150 keymap[SCANCODE_DOWN] = SDLK_DOWN;
d774e9d7c2a8 Forward keyboard reworking from 1.2
Patrice Mandin <patmandin@gmail.com>
parents: 1895
diff changeset
151 keymap[SCANCODE_RIGHT] = SDLK_RIGHT;
d774e9d7c2a8 Forward keyboard reworking from 1.2
Patrice Mandin <patmandin@gmail.com>
parents: 1895
diff changeset
152 keymap[SCANCODE_LEFT] = SDLK_LEFT;
d774e9d7c2a8 Forward keyboard reworking from 1.2
Patrice Mandin <patmandin@gmail.com>
parents: 1895
diff changeset
153
d774e9d7c2a8 Forward keyboard reworking from 1.2
Patrice Mandin <patmandin@gmail.com>
parents: 1895
diff changeset
154 /* Special keys */
d774e9d7c2a8 Forward keyboard reworking from 1.2
Patrice Mandin <patmandin@gmail.com>
parents: 1895
diff changeset
155 keymap[SCANCODE_ESCAPE] = SDLK_ESCAPE;
d774e9d7c2a8 Forward keyboard reworking from 1.2
Patrice Mandin <patmandin@gmail.com>
parents: 1895
diff changeset
156 keymap[SCANCODE_BACKSPACE] = SDLK_BACKSPACE;
d774e9d7c2a8 Forward keyboard reworking from 1.2
Patrice Mandin <patmandin@gmail.com>
parents: 1895
diff changeset
157 keymap[SCANCODE_TAB] = SDLK_TAB;
d774e9d7c2a8 Forward keyboard reworking from 1.2
Patrice Mandin <patmandin@gmail.com>
parents: 1895
diff changeset
158 keymap[SCANCODE_ENTER] = SDLK_RETURN;
d774e9d7c2a8 Forward keyboard reworking from 1.2
Patrice Mandin <patmandin@gmail.com>
parents: 1895
diff changeset
159 keymap[SCANCODE_DELETE] = SDLK_DELETE;
d774e9d7c2a8 Forward keyboard reworking from 1.2
Patrice Mandin <patmandin@gmail.com>
parents: 1895
diff changeset
160 keymap[SCANCODE_LEFTCONTROL] = SDLK_LCTRL;
d774e9d7c2a8 Forward keyboard reworking from 1.2
Patrice Mandin <patmandin@gmail.com>
parents: 1895
diff changeset
161 keymap[SCANCODE_LEFTSHIFT] = SDLK_LSHIFT;
d774e9d7c2a8 Forward keyboard reworking from 1.2
Patrice Mandin <patmandin@gmail.com>
parents: 1895
diff changeset
162 keymap[SCANCODE_RIGHTSHIFT] = SDLK_RSHIFT;
d774e9d7c2a8 Forward keyboard reworking from 1.2
Patrice Mandin <patmandin@gmail.com>
parents: 1895
diff changeset
163 keymap[SCANCODE_LEFTALT] = SDLK_LALT;
d774e9d7c2a8 Forward keyboard reworking from 1.2
Patrice Mandin <patmandin@gmail.com>
parents: 1895
diff changeset
164 keymap[SCANCODE_CAPSLOCK] = SDLK_CAPSLOCK;
d774e9d7c2a8 Forward keyboard reworking from 1.2
Patrice Mandin <patmandin@gmail.com>
parents: 1895
diff changeset
165 }
d774e9d7c2a8 Forward keyboard reworking from 1.2
Patrice Mandin <patmandin@gmail.com>
parents: 1895
diff changeset
166
1221
8ef3e7e92a91 Use a simple table for Unicode translation
Patrice Mandin <patmandin@gmail.com>
parents: 1209
diff changeset
167 /* Atari to Unicode charset translation table */
8ef3e7e92a91 Use a simple table for Unicode translation
Patrice Mandin <patmandin@gmail.com>
parents: 1209
diff changeset
168
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
169 Uint16 SDL_AtariToUnicodeTable[256] = {
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
170 /* Standard ASCII characters from 0x00 to 0x7e */
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
171 /* Unicode stuff from 0x7f to 0xff */
1221
8ef3e7e92a91 Use a simple table for Unicode translation
Patrice Mandin <patmandin@gmail.com>
parents: 1209
diff changeset
172
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
173 0x0000, 0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007,
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
174 0x0008, 0x0009, 0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F,
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
175 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016, 0x0017,
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
176 0x0018, 0x0019, 0x001A, 0x001B, 0x001C, 0x001D, 0x001E, 0x001F,
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
177 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027,
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
178 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F,
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
179 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037,
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
180 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F,
1209
a55ac374271c Added preliminary missingtranslation from Atari to Unicode charset
Patrice Mandin <patmandin@gmail.com>
parents: 1079
diff changeset
181
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
182 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047,
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
183 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F,
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
184 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
185 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F,
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
186 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067,
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
187 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F,
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
188 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077,
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
189 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x0394,
1221
8ef3e7e92a91 Use a simple table for Unicode translation
Patrice Mandin <patmandin@gmail.com>
parents: 1209
diff changeset
190
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
191 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7,
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
192 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x00EC, 0x00C4, 0x00C5,
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
193 0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00F2, 0x00FB, 0x00F9,
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
194 0x00FF, 0x00D6, 0x00DC, 0x00A2, 0x00A3, 0x00A5, 0x00DF, 0x0192,
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
195 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA,
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
196 0x00BF, 0x2310, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB,
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
197 0x00C3, 0x00F5, 0x00D8, 0x00F8, 0x0153, 0x0152, 0x00C0, 0x00C3,
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
198 0x00D5, 0x00A8, 0x00B4, 0x2020, 0x00B6, 0x00A9, 0x00AE, 0x2122,
1221
8ef3e7e92a91 Use a simple table for Unicode translation
Patrice Mandin <patmandin@gmail.com>
parents: 1209
diff changeset
199
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
200 0x0133, 0x0132, 0x05D0, 0x05D1, 0x05D2, 0x05D3, 0x05D4, 0x05D5,
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
201 0x05D6, 0x05D7, 0x05D8, 0x05D9, 0x05DB, 0x05DC, 0x05DE, 0x05E0,
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
202 0x05E1, 0x05E2, 0x05E4, 0x05E6, 0x05E7, 0x05E8, 0x05E9, 0x05EA,
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
203 0x05DF, 0x05DA, 0x05DD, 0x05E3, 0x05E5, 0x00A7, 0x2038, 0x221E,
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
204 0x03B1, 0x03B2, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4,
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
205 0x03A6, 0x0398, 0x03A9, 0x03B4, 0x222E, 0x03C6, 0x2208, 0x2229,
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
206 0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248,
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
207 0x00B0, 0x2022, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x00B3, 0x00AF
1221
8ef3e7e92a91 Use a simple table for Unicode translation
Patrice Mandin <patmandin@gmail.com>
parents: 1209
diff changeset
208 };
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
209
2030
d774e9d7c2a8 Forward keyboard reworking from 1.2
Patrice Mandin <patmandin@gmail.com>
parents: 1895
diff changeset
210 SDL_keysym *
2043
adf732f1f016 Formatting update
Sam Lantinga <slouken@libsdl.org>
parents: 2034
diff changeset
211 SDL_Atari_TranslateKey(int scancode, SDL_keysym * keysym, SDL_bool pressed)
2030
d774e9d7c2a8 Forward keyboard reworking from 1.2
Patrice Mandin <patmandin@gmail.com>
parents: 1895
diff changeset
212 {
d774e9d7c2a8 Forward keyboard reworking from 1.2
Patrice Mandin <patmandin@gmail.com>
parents: 1895
diff changeset
213 int asciicode = 0;
d774e9d7c2a8 Forward keyboard reworking from 1.2
Patrice Mandin <patmandin@gmail.com>
parents: 1895
diff changeset
214
d774e9d7c2a8 Forward keyboard reworking from 1.2
Patrice Mandin <patmandin@gmail.com>
parents: 1895
diff changeset
215 /* Set the keysym information */
d774e9d7c2a8 Forward keyboard reworking from 1.2
Patrice Mandin <patmandin@gmail.com>
parents: 1895
diff changeset
216 keysym->scancode = scancode;
d774e9d7c2a8 Forward keyboard reworking from 1.2
Patrice Mandin <patmandin@gmail.com>
parents: 1895
diff changeset
217 keysym->mod = KMOD_NONE;
d774e9d7c2a8 Forward keyboard reworking from 1.2
Patrice Mandin <patmandin@gmail.com>
parents: 1895
diff changeset
218 keysym->sym = keymap[scancode];
d774e9d7c2a8 Forward keyboard reworking from 1.2
Patrice Mandin <patmandin@gmail.com>
parents: 1895
diff changeset
219 keysym->unicode = 0;
d774e9d7c2a8 Forward keyboard reworking from 1.2
Patrice Mandin <patmandin@gmail.com>
parents: 1895
diff changeset
220
d774e9d7c2a8 Forward keyboard reworking from 1.2
Patrice Mandin <patmandin@gmail.com>
parents: 1895
diff changeset
221 if (keysym->sym == SDLK_UNKNOWN) {
2043
adf732f1f016 Formatting update
Sam Lantinga <slouken@libsdl.org>
parents: 2034
diff changeset
222 keysym->sym = asciicode = keytab_normal[scancode];
2030
d774e9d7c2a8 Forward keyboard reworking from 1.2
Patrice Mandin <patmandin@gmail.com>
parents: 1895
diff changeset
223 }
d774e9d7c2a8 Forward keyboard reworking from 1.2
Patrice Mandin <patmandin@gmail.com>
parents: 1895
diff changeset
224
d774e9d7c2a8 Forward keyboard reworking from 1.2
Patrice Mandin <patmandin@gmail.com>
parents: 1895
diff changeset
225 if (SDL_TranslateUNICODE && pressed) {
d774e9d7c2a8 Forward keyboard reworking from 1.2
Patrice Mandin <patmandin@gmail.com>
parents: 1895
diff changeset
226 keysym->unicode = SDL_AtariToUnicodeTable[asciicode];
d774e9d7c2a8 Forward keyboard reworking from 1.2
Patrice Mandin <patmandin@gmail.com>
parents: 1895
diff changeset
227 }
d774e9d7c2a8 Forward keyboard reworking from 1.2
Patrice Mandin <patmandin@gmail.com>
parents: 1895
diff changeset
228
2043
adf732f1f016 Formatting update
Sam Lantinga <slouken@libsdl.org>
parents: 2034
diff changeset
229 return (keysym);
2030
d774e9d7c2a8 Forward keyboard reworking from 1.2
Patrice Mandin <patmandin@gmail.com>
parents: 1895
diff changeset
230 }
d774e9d7c2a8 Forward keyboard reworking from 1.2
Patrice Mandin <patmandin@gmail.com>
parents: 1895
diff changeset
231
1895
c121d94672cb SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
Sam Lantinga <slouken@libsdl.org>
parents: 1402
diff changeset
232 /* vi: set ts=4 sw=4 expandtab: */