1 /* keypress values */
2 #define MVLEFT 1
3 #define MVRIGHT 2
4 #define MVUP 3		/* rotate */
5 #define MVDOWN 4	/* softdrop */
6 #define A_BTN 5		/* rotate clockwise */
7 #define B_BTN 6		/* rotate anticlockwise */
8 #define HARDDROP ' '
9 #define STARTBTN '\n'
10 #define ESC '\033'
11 #define DEL 0x7F
12 #define BACKSPACE '\b'
13 
14 /* keypress bit flags */
15 #define IN_GAME 0x100
16 #define PLAYER_1 0x200
17 #define PLAYER_2 0x400
18 
19 #define SINGLE_PL 0x800
20 
21 #define DAS_INITIAL_DELAY 266
22 #define DAS_DELAY 100
23 
24 extern const char input_chr9[9][4];
25 
26 #if SOCKET
27 #define NUM_INPUTDEVS 4
28 #elif JOYSTICK
29 #define NUM_INPUTDEVS 3
30 #else
31 #define NUM_INPUTDEVS 1
32 #endif
33 
34 #define socket_fd inputdevs_fd[3]
35 
36 extern int inputdevs_fd[4];
37 extern char inputdevs_player[4];
38 
39 extern int num_joyst;
40 extern int autorep_a_b_btns;
41 extern int edit_mode;
42 
43 void init_inputdevs();
44 
45 /* prepare for two-player game */
46 void initplayerinput();
47 
48 /* returns NUM_INPUTDEV if no input is ready */
49 int inpselect_dev(int tm);
50 
51 /* wait msec < 1000 milliseconds for input on file descriptor */
52 int waitinput(int fd, unsigned msec);
53 
54 int getkeypress(int tm, int flags);
55 int getkeypress_block(int flags);
56 
57 void spawn_discard_drops(int pl);
58 
59 int setkeymapping(int dev, int keypress);
60 const char *getkeyfor_str(int dev, int keypress);
61 
62 /* processkey_ingame flags */
63 #define DISCARD_MOVES 1
64 #define DISCARD_DROPS 2
65 #define NO_PAUSE 8
66 
67 int processkey_ingame(int keypress, int flags);
68