copied files from d1x
[btb/d2x.git] / arch / win32 / include / key_arch.h
1 /*
2 THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
3 SOFTWARE CORPORATION ("PARALLAX").  PARALLAX, IN DISTRIBUTING THE CODE TO
4 END-USERS, AND SUBJECT TO ALL OF THE TERMS AND CONDITIONS HEREIN, GRANTS A
5 ROYALTY-FREE, PERPETUAL LICENSE TO SUCH END-USERS FOR USE BY SUCH END-USERS
6 IN USING, DISPLAYING,  AND CREATING DERIVATIVE WORKS THEREOF, SO LONG AS
7 SUCH USE, DISPLAY OR CREATION IS FOR NON-COMMERCIAL, ROYALTY OR REVENUE
8 FREE PURPOSES.  IN NO EVENT SHALL THE END-USER USE THE COMPUTER CODE
9 CONTAINED HEREIN FOR REVENUE-BEARING PURPOSES.  THE END-USER UNDERSTANDS
10 AND AGREES TO THE TERMS HEREIN AND ACCEPTS THE SAME BY USE OF THIS FILE.  
11 COPYRIGHT 1993-1998 PARALLAX SOFTWARE CORPORATION.  ALL RIGHTS RESERVED.
12 */
13 /*
14  * $Source: /cvs/cvsroot/d2x/arch/win32/include/key_arch.h,v $
15  * $Revision: 1.1 $
16  * $Author: bradleyb $
17  * $Date: 2002-02-15 07:18:00 $
18  *
19  * Header for keyboard functions
20  *
21  * $Log: not supported by cvs2svn $
22  * Revision 1.2  2001/12/07 05:38:31  donut
23  * Fix mismatched arg types in the win32 code, work around byte being defined by windows headers as well as our own, and allow overriding of make vars.
24  *
25  * Revision 1.1  2000/01/17 05:58:38  donut
26  * switched from multiply reimplemented/reduntant/buggy key.c for each arch to a single main/key.c that calls the much smaller arch-specific parts.  Also adds working emulated key repeat support.
27  *
28  * Revision 1.1.1.1  1999/06/14 22:01:23  donut
29  * Import of d1x 1.37 source.
30  *
31  * Revision 1.19  1994/10/24  13:58:12  john
32  * Hacked in support for pause key onto code 0x61.
33  * 
34  * Revision 1.18  1994/10/21  15:17:10  john
35  * Added KEY_PRINT_SCREEN
36  * 
37  * Revision 1.17  1994/08/31  12:22:13  john
38  * Added KEY_DEBUGGED
39  * 
40  * Revision 1.16  1994/08/24  18:53:50  john
41  * Made Cyberman read like normal mouse; added dpmi module; moved
42  * mouse from assembly to c. Made mouse buttons return time_down.
43  * 
44  * Revision 1.15  1994/08/18  14:56:16  john
45  * *** empty log message ***
46  * 
47  * Revision 1.14  1994/08/08  10:43:24  john
48  * Recorded when a key was pressed for key_inkey_time.
49  * 
50  * Revision 1.13  1994/06/17  17:17:28  john
51  * Added keyd_time_last_key_was_pressed or something like that.
52  * 
53  * Revision 1.12  1994/04/29  12:14:19  john
54  * Locked all memory used during interrupts so that program
55  * won't hang when using virtual memory.
56  * 
57  * Revision 1.11  1994/02/17  15:57:14  john
58  * Changed key libary to C.
59  * 
60  * Revision 1.10  1994/01/31  08:34:09  john
61  * Fixed reversed lshift/rshift keys.
62  * 
63  * Revision 1.9  1994/01/18  10:58:17  john
64  * *** empty log message ***
65  * 
66  * Revision 1.8  1993/10/16  19:24:43  matt
67  * Added new function key_clear_times() & key_clear_counts()
68  * 
69  * Revision 1.7  1993/10/15  10:17:09  john
70  * added keyd_last_key_pressed and released for use with recorder.
71  * 
72  * Revision 1.6  1993/10/06  16:20:37  john
73  * fixed down arrow bug
74  * 
75  * Revision 1.5  1993/10/04  13:26:42  john
76  * changed the #defines for scan codes.
77  * 
78  * Revision 1.4  1993/09/28  11:35:20  john
79  * added key_peekkey
80  * 
81  * Revision 1.3  1993/09/20  18:36:43  john
82  * *** empty log message ***
83  * 
84  * Revision 1.1  1993/07/10  13:10:39  matt
85  * Initial revision
86  * 
87  *
88  */
89
90 #ifndef _WIN32_KEY_H
91 #define _WIN32_KEY_H
92
93 //changed key defines to use DIK_* - 2000/01/14 Matt Mueller.  -heh, a bunch were wrong.
94 #define byte w32_byte
95 #define WIN32_LEAN_AND_MEAN
96 #include <windows.h>
97 #include <dinput.h> // For DIK_*
98 #undef byte
99
100 #define ARCH_KEY_0           DIK_0
101 #define ARCH_KEY_1           DIK_1
102 #define ARCH_KEY_2           DIK_2
103 #define ARCH_KEY_3           DIK_3
104 #define ARCH_KEY_4           DIK_4
105 #define ARCH_KEY_5           DIK_5
106 #define ARCH_KEY_6           DIK_6
107 #define ARCH_KEY_7           DIK_7
108 #define ARCH_KEY_8           DIK_8
109 #define ARCH_KEY_9           DIK_9
110
111 #define ARCH_KEY_A           DIK_A
112 #define ARCH_KEY_B           DIK_B
113 #define ARCH_KEY_C           DIK_C
114 #define ARCH_KEY_D           DIK_D
115 #define ARCH_KEY_E           DIK_E
116 #define ARCH_KEY_F           DIK_F
117 #define ARCH_KEY_G           DIK_G
118 #define ARCH_KEY_H           DIK_H
119 #define ARCH_KEY_I           DIK_I
120 #define ARCH_KEY_J           DIK_J
121 #define ARCH_KEY_K           DIK_K
122 #define ARCH_KEY_L           DIK_L
123 #define ARCH_KEY_M           DIK_M
124 #define ARCH_KEY_N           DIK_N
125 #define ARCH_KEY_O           DIK_O
126 #define ARCH_KEY_P           DIK_P
127 #define ARCH_KEY_Q           DIK_Q
128 #define ARCH_KEY_R           DIK_R
129 #define ARCH_KEY_S           DIK_S
130 #define ARCH_KEY_T           DIK_T
131 #define ARCH_KEY_U           DIK_U
132 #define ARCH_KEY_V           DIK_V
133 #define ARCH_KEY_W           DIK_W
134 #define ARCH_KEY_X           DIK_X
135 #define ARCH_KEY_Y           DIK_Y
136 #define ARCH_KEY_Z           DIK_Z
137
138 #define ARCH_KEY_MINUS       DIK_MINUS
139 #define ARCH_KEY_EQUAL       DIK_EQUALS
140 #define ARCH_KEY_DIVIDE      DIK_SLASH
141 #define ARCH_KEY_SLASH       DIK_BACKSLASH
142 #define ARCH_KEY_COMMA       DIK_COMMA
143 #define ARCH_KEY_PERIOD      DIK_PERIOD
144 #define ARCH_KEY_SEMICOL     DIK_SEMICOLON
145
146 #define ARCH_KEY_LBRACKET    DIK_LBRACKET
147 #define ARCH_KEY_RBRACKET    DIK_RBRACKET
148
149 #define ARCH_KEY_RAPOSTRO    DIK_APOSTROPHE
150 #define ARCH_KEY_LAPOSTRO    DIK_GRAVE
151
152 #define ARCH_KEY_ESC         DIK_ESCAPE
153 #define ARCH_KEY_ENTER       DIK_RETURN
154 #define ARCH_KEY_BACKSP      DIK_BACK
155 #define ARCH_KEY_TAB         DIK_TAB
156 #define ARCH_KEY_SPACEBAR    DIK_SPACE
157
158 #define ARCH_KEY_NUMLOCK     DIK_NUMLOCK
159 #define ARCH_KEY_SCROLLOCK   DIK_SCROLL
160 #define ARCH_KEY_CAPSLOCK    DIK_CAPSLOCK
161
162 #define ARCH_KEY_LSHIFT      DIK_LSHIFT
163 #define ARCH_KEY_RSHIFT      DIK_RSHIFT
164
165 #define ARCH_KEY_LALT        DIK_LALT
166 #define ARCH_KEY_RALT        DIK_RALT
167
168 #define ARCH_KEY_LCTRL       DIK_LCONTROL
169 #define ARCH_KEY_RCTRL       DIK_RCONTROL
170
171 #define ARCH_KEY_F1          DIK_F1
172 #define ARCH_KEY_F2          DIK_F2
173 #define ARCH_KEY_F3          DIK_F3
174 #define ARCH_KEY_F4          DIK_F4
175 #define ARCH_KEY_F5          DIK_F5
176 #define ARCH_KEY_F6          DIK_F6
177 #define ARCH_KEY_F7          DIK_F7
178 #define ARCH_KEY_F8          DIK_F8
179 #define ARCH_KEY_F9          DIK_F9
180 #define ARCH_KEY_F10         DIK_F10
181 #define ARCH_KEY_F11         DIK_F11
182 #define ARCH_KEY_F12         DIK_F12
183
184 #define ARCH_KEY_PAD0        DIK_NUMPAD0
185 #define ARCH_KEY_PAD1        DIK_NUMPAD1
186 #define ARCH_KEY_PAD2        DIK_NUMPAD2
187 #define ARCH_KEY_PAD3        DIK_NUMPAD3
188 #define ARCH_KEY_PAD4        DIK_NUMPAD4
189 #define ARCH_KEY_PAD5        DIK_NUMPAD5
190 #define ARCH_KEY_PAD6        DIK_NUMPAD6
191 #define ARCH_KEY_PAD7        DIK_NUMPAD7
192 #define ARCH_KEY_PAD8        DIK_NUMPAD8
193 #define ARCH_KEY_PAD9        DIK_NUMPAD9
194 #define ARCH_KEY_PADMINUS    DIK_NUMPADMINUS
195 #define ARCH_KEY_PADPLUS     DIK_NUMPADPLUS
196 #define ARCH_KEY_PADPERIOD   DIK_NUMPADPERIOD
197 #define ARCH_KEY_PADDIVIDE   DIK_NUMPADSLASH
198 #define ARCH_KEY_PADMULTIPLY DIK_NUMPADSTAR
199 #define ARCH_KEY_PADENTER    DIK_NUMPADENTER
200
201 #define ARCH_KEY_INSERT      DIK_INSERT
202 #define ARCH_KEY_HOME        DIK_HOME
203 #define ARCH_KEY_PAGEUP      DIK_PGUP
204 #define ARCH_KEY_DELETE      DIK_DELETE
205 #define ARCH_KEY_END         DIK_END
206 #define ARCH_KEY_PAGEDOWN    DIK_PGDN
207 #define ARCH_KEY_UP          DIK_UP
208 #define ARCH_KEY_DOWN        DIK_DOWN
209 #define ARCH_KEY_LEFT        DIK_LEFT
210 #define ARCH_KEY_RIGHT       DIK_RIGHT
211
212 #define ARCH_KEY_PRINT_SCREEN   DIK_SYSRQ
213 //there doesn't seem to be a DIK_PAUSE.
214 #define ARCH_KEY_PAUSE          197
215
216 #endif