annotate src/video/ataricommon/SDL_atarievents.c @ 2825:620a91b6d263

Date: Tue, 02 Dec 2008 23:38:26 +0100 From: Couriersud Subject: Re: SDL: Keyboard layout unknown I have attached a diff which will add an additional keyboard layout to the x11 driver. The issue arose, when I moved to ubuntu intrepid. I was only able to map the keys available on my keyboard. The differences to the existing keyboard was the mapping of HOME,UP,DOWN and some other keys. Now only one issue remains. Dead keys (e.g. ^, ` ') on european keyboards do not generate a "scancode" event. Just a text event when the key is composed (e.g. ?? ?? ??).
author Sam Lantinga <slouken@libsdl.org>
date Wed, 03 Dec 2008 04:32:24 +0000
parents adf732f1f016
children 99210400e8b9
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
1312
c9b51268668f Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents: 1221
diff changeset
3 Copyright (C) 1997-2006 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: */