1 /* $Id: tenm_input.h,v 1.28 2002/07/13 07:50:20 oohara Exp $ */
2 
3 #ifndef __TENM_INPUT_H__
4 #define __TENM_INPUT_H__
5 
6 #include <SDL.h>
7 
8 typedef SDLKey tenm_key;
9 
10 /* we assume int is at least 32 bit long, so 16 is a safe value */
11 #define TENM_NUMBER_KEY_MAX 16
12 
13 /* renaming key flags just for its own sake --- well, it will save you
14  * when you try to port this to non-SDL system
15  */
16 #define TENM_KEY_BACKSPACE SDLK_BACKSPACE
17 #define TENM_KEY_TAB SDLK_TAB
18 #define TENM_KEY_CLEAR SDLK_CLEAR
19 #define TENM_KEY_RETURN SDLK_RETURN
20 #define TENM_KEY_PAUSE SDLK_PAUSE
21 #define TENM_KEY_ESCAPE SDLK_ESCAPE
22 #define TENM_KEY_SPACE SDLK_SPACE
23 #define TENM_KEY_EXCLAIM SDLK_EXCLAIM
24 #define TENM_KEY_QUOTEDBL SDLK_QUOTEDBL
25 #define TENM_KEY_HASH SDLK_HASH
26 #define TENM_KEY_DOLLAR SDLK_DOLLAR
27 #define TENM_KEY_AMPERSAND SDLK_AMPERSAND
28 #define TENM_KEY_QUOTE SDLK_QUOTE
29 #define TENM_KEY_LEFTPAREN SDLK_LEFTPAREN
30 #define TENM_KEY_RIGHTPAREN SDLK_RIGHTPAREN
31 #define TENM_KEY_ASTERISK SDLK_ASTERISK
32 #define TENM_KEY_PLUS SDLK_PLUS
33 #define TENM_KEY_COMMA SDLK_COMMA
34 #define TENM_KEY_MINUS SDLK_MINUS
35 #define TENM_KEY_PERIOD SDLK_PERIOD
36 #define TENM_KEY_SLASH SDLK_SLASH
37 #define TENM_KEY_0 SDLK_0
38 #define TENM_KEY_1 SDLK_1
39 #define TENM_KEY_2 SDLK_2
40 #define TENM_KEY_3 SDLK_3
41 #define TENM_KEY_4 SDLK_4
42 #define TENM_KEY_5 SDLK_5
43 #define TENM_KEY_6 SDLK_6
44 #define TENM_KEY_7 SDLK_7
45 #define TENM_KEY_8 SDLK_8
46 #define TENM_KEY_9 SDLK_9
47 #define TENM_KEY_COLON SDLK_COLON
48 #define TENM_KEY_SEMICOLON SDLK_SEMICOLON
49 #define TENM_KEY_LESS SDLK_LESS
50 #define TENM_KEY_EQUALS SDLK_EQUALS
51 #define TENM_KEY_GREATER SDLK_GREATER
52 #define TENM_KEY_QUESTION SDLK_QUESTION
53 #define TENM_KEY_AT SDLK_AT
54 #define TENM_KEY_LEFTBRACKET SDLK_LEFTBRACKET
55 #define TENM_KEY_BACKSLASH SDLK_BACKSLASH
56 #define TENM_KEY_RIGHTBRACKET SDLK_RIGHTBRACKET
57 #define TENM_KEY_CARET SDLK_CARET
58 #define TENM_KEY_UNDERSCORE SDLK_UNDERSCORE
59 #define TENM_KEY_BACKQUOTE SDLK_BACKQUOTE
60 #define TENM_KEY_a SDLK_a
61 #define TENM_KEY_b SDLK_b
62 #define TENM_KEY_c SDLK_c
63 #define TENM_KEY_d SDLK_d
64 #define TENM_KEY_e SDLK_e
65 #define TENM_KEY_f SDLK_f
66 #define TENM_KEY_g SDLK_g
67 #define TENM_KEY_h SDLK_h
68 #define TENM_KEY_i SDLK_i
69 #define TENM_KEY_j SDLK_j
70 #define TENM_KEY_k SDLK_k
71 #define TENM_KEY_l SDLK_l
72 #define TENM_KEY_m SDLK_m
73 #define TENM_KEY_n SDLK_n
74 #define TENM_KEY_o SDLK_o
75 #define TENM_KEY_p SDLK_p
76 #define TENM_KEY_q SDLK_q
77 #define TENM_KEY_r SDLK_r
78 #define TENM_KEY_s SDLK_s
79 #define TENM_KEY_t SDLK_t
80 #define TENM_KEY_u SDLK_u
81 #define TENM_KEY_v SDLK_v
82 #define TENM_KEY_w SDLK_w
83 #define TENM_KEY_x SDLK_x
84 #define TENM_KEY_y SDLK_y
85 #define TENM_KEY_z SDLK_z
86 #define TENM_KEY_DELETE SDLK_DELETE
87 #define TENM_KEY_KP0 SDLK_KP0
88 #define TENM_KEY_KP1 SDLK_KP1
89 #define TENM_KEY_KP2 SDLK_KP2
90 #define TENM_KEY_KP3 SDLK_KP3
91 #define TENM_KEY_KP4 SDLK_KP4
92 #define TENM_KEY_KP5 SDLK_KP5
93 #define TENM_KEY_KP6 SDLK_KP6
94 #define TENM_KEY_KP7 SDLK_KP7
95 #define TENM_KEY_KP8 SDLK_KP8
96 #define TENM_KEY_KP9 SDLK_KP9
97 #define TENM_KEY_KP_PERIOD SDLK_KP_PERIOD
98 #define TENM_KEY_KP_DIVIDE SDLK_KP_DIVIDE
99 #define TENM_KEY_KP_MULTIPLY SDLK_KP_MULTIPLY
100 #define TENM_KEY_KP_MINUS SDLK_KP_MINUS
101 #define TENM_KEY_KP_PLUS SDLK_KP_PLUS
102 #define TENM_KEY_KP_ENTER SDLK_KP_ENTER
103 #define TENM_KEY_KP_EQUALS SDLK_KP_EQUALS
104 #define TENM_KEY_UP SDLK_UP
105 #define TENM_KEY_DOWN SDLK_DOWN
106 #define TENM_KEY_RIGHT SDLK_RIGHT
107 #define TENM_KEY_LEFT SDLK_LEFT
108 #define TENM_KEY_INSERT SDLK_INSERT
109 #define TENM_KEY_HOME SDLK_HOME
110 #define TENM_KEY_END SDLK_END
111 #define TENM_KEY_PAGEUP SDLK_PAGEUP
112 #define TENM_KEY_PAGEDOWN SDLK_PAGEDOWN
113 #define TENM_KEY_F1 SDLK_F1
114 #define TENM_KEY_F2 SDLK_F2
115 #define TENM_KEY_F3 SDLK_F3
116 #define TENM_KEY_F4 SDLK_F4
117 #define TENM_KEY_F5 SDLK_F5
118 #define TENM_KEY_F6 SDLK_F6
119 #define TENM_KEY_F7 SDLK_F7
120 #define TENM_KEY_F8 SDLK_F8
121 #define TENM_KEY_F9 SDLK_F9
122 #define TENM_KEY_F10 SDLK_F10
123 #define TENM_KEY_F11 SDLK_F11
124 #define TENM_KEY_F12 SDLK_F12
125 #define TENM_KEY_F13 SDLK_F13
126 #define TENM_KEY_F14 SDLK_F14
127 #define TENM_KEY_F15 SDLK_F15
128 #define TENM_KEY_NUMLOCK SDLK_NUMLOCK
129 #define TENM_KEY_CAPSLOCK SDLK_CAPSLOCK
130 #define TENM_KEY_SCROLLOCK SDLK_SCROLLOCK
131 #define TENM_KEY_RSHIFT SDLK_RSHIFT
132 #define TENM_KEY_LSHIFT SDLK_LSHIFT
133 #define TENM_KEY_RCTRL SDLK_RCTRL
134 #define TENM_KEY_LCTRL SDLK_LCTRL
135 #define TENM_KEY_RALT SDLK_RALT
136 #define TENM_KEY_LALT SDLK_LALT
137 #define TENM_KEY_RMETA SDLK_RMETA
138 #define TENM_KEY_LMETA SDLK_LMETA
139 #define TENM_KEY_LSUPER SDLK_LSUPER
140 #define TENM_KEY_RSUPER SDLK_RSUPER
141 #define TENM_KEY_MODE SDLK_MODE
142 #define TENM_KEY_HELP SDLK_HELP
143 #define TENM_KEY_PRINT SDLK_PRINT
144 #define TENM_KEY_SYSREQ SDLK_SYSREQ
145 #define TENM_KEY_BREAK SDLK_BREAK
146 #define TENM_KEY_MENU SDLK_MENU
147 #define TENM_KEY_POWER SDLK_POWER
148 #define TENM_KEY_EURO SDLK_EURO
149 
150 /* for the return value of tenm_joystick_init() */
151 #define TENM_JOYSTICK_INIT_SUCCESS 0
152 #define TENM_JOYSTICK_INIT_NO_JOYSTICK 1
153 #define TENM_JOYSTICK_INIT_ERROR 2
154 
155 /* for direction (arg 1) of tenm_joystick_map_axis() */
156 #define TENM_JOYSTICK_UP 0
157 #define TENM_JOYSTICK_DOWN 1
158 #define TENM_JOYSTICK_RIGHT 2
159 #define TENM_JOYSTICK_LEFT 3
160 
161 int tenm_set_key(int number_key, ...);
162 
163 void tenm_set_focus_handler(void (*handler)(int));
164 
165 int tenm_joystick_init(int range);
166 int tenm_joystick_map_axis(int direction, tenm_key key);
167 int tenm_joystick_map_button(int button_index, tenm_key key);
168 
169 int tenm_get_key_status(void);
170 
171 int tenm_event_handle(void);
172 
173 #endif /* not __TENM_INPUT_H__ */
174