1 /*
2  * OpenBOR - http://www.LavaLit.com
3  * -----------------------------------------------------------------------
4  * Licensed under the BSD license, see LICENSE in OpenBOR root for details.
5  *
6  * Copyright (c) 2004 - 2011 OpenBOR Team
7  */
8 
9 #ifndef	CONTROL_H
10 #define	CONTROL_H
11 
12 #define PSP_DPAD_UP         0x00000001
13 #define PSP_DPAD_RIGHT      0x00000002
14 #define PSP_DPAD_DOWN       0x00000004
15 #define PSP_DPAD_LEFT       0x00000008
16 #define PSP_CROSS           0x00000010
17 #define PSP_CIRCLE          0x00000020
18 #define PSP_SQUARE          0x00000040
19 #define PSP_TRIANGLE        0x00000080
20 #define PSP_LEFT_TRIGGER    0x00000100
21 #define PSP_RIGHT_TRIGGER   0x00000200
22 #define PSP_START           0x00000400
23 #define PSP_SELECT          0x00000800
24 #define PSP_NOTE			0x00001000
25 #define PSP_HOME			0x00002000
26 #define PSP_HOLD			0x00004000
27 #define PSP_SCREEN			0x00008000
28 #define PSP_VOLUP			0x00010000
29 #define PSP_VOLDOWN			0x00020000
30 
31 #define	CONTROL_ESC					14
32 
33 #define	CONTROL_DEFAULT1_UP			1
34 #define	CONTROL_DEFAULT1_RIGHT		2
35 #define	CONTROL_DEFAULT1_DOWN		3
36 #define	CONTROL_DEFAULT1_LEFT		4
37 #define CONTROL_DEFAULT1_FIRE1		5
38 #define CONTROL_DEFAULT1_FIRE2		6
39 #define	CONTROL_DEFAULT1_FIRE3		7
40 #define	CONTROL_DEFAULT1_FIRE4		8
41 #define	CONTROL_DEFAULT1_FIRE5		9
42 #define	CONTROL_DEFAULT1_FIRE6		10
43 #define CONTROL_DEFAULT1_START		11
44 #define CONTROL_DEFAULT1_SCREENSHOT 12
45 
46 #define	CONTROL_DEFAULT2_UP			(1+18)
47 #define	CONTROL_DEFAULT2_RIGHT		(2+18)
48 #define	CONTROL_DEFAULT2_DOWN		(3+18)
49 #define	CONTROL_DEFAULT2_LEFT		(4+18)
50 #define CONTROL_DEFAULT2_FIRE1		(5+18)
51 #define CONTROL_DEFAULT2_FIRE2		(6+18)
52 #define	CONTROL_DEFAULT2_FIRE3		(7+18)
53 #define	CONTROL_DEFAULT2_FIRE4		(8+18)
54 #define	CONTROL_DEFAULT2_FIRE5		(9+18)
55 #define	CONTROL_DEFAULT2_FIRE6		(10+18)
56 #define CONTROL_DEFAULT2_START		(11+18)
57 #define CONTROL_DEFAULT2_SCREENSHOT (12+18)
58 
59 #define	CONTROL_DEFAULT3_UP			(1+(18*2))
60 #define	CONTROL_DEFAULT3_RIGHT		(2+(18*2))
61 #define	CONTROL_DEFAULT3_DOWN		(3+(18*2))
62 #define	CONTROL_DEFAULT3_LEFT		(4+(18*2))
63 #define CONTROL_DEFAULT3_FIRE1		(5+(18*2))
64 #define CONTROL_DEFAULT3_FIRE2		(6+(18*2))
65 #define	CONTROL_DEFAULT3_FIRE3		(7+(18*2))
66 #define	CONTROL_DEFAULT3_FIRE4		(8+(18*2))
67 #define	CONTROL_DEFAULT3_FIRE5		(9+(18*2))
68 #define	CONTROL_DEFAULT3_FIRE6		(10+(18*2))
69 #define CONTROL_DEFAULT3_START		(11+(18*2))
70 #define CONTROL_DEFAULT3_SCREENSHOT (12+(18*2))
71 
72 #define	CONTROL_DEFAULT4_UP			(1+(18*3))
73 #define	CONTROL_DEFAULT4_RIGHT		(2+(18*3))
74 #define	CONTROL_DEFAULT4_DOWN		(3+(18*3))
75 #define	CONTROL_DEFAULT4_LEFT		(4+(18*3))
76 #define CONTROL_DEFAULT4_FIRE1		(5+(18*3))
77 #define CONTROL_DEFAULT4_FIRE2		(6+(18*3))
78 #define	CONTROL_DEFAULT4_FIRE3		(7+(18*3))
79 #define	CONTROL_DEFAULT4_FIRE4		(8+(18*3))
80 #define	CONTROL_DEFAULT4_FIRE5		(9+(18*3))
81 #define	CONTROL_DEFAULT4_FIRE6		(10+(18*3))
82 #define CONTROL_DEFAULT4_START		(11+(18*3))
83 #define CONTROL_DEFAULT4_SCREENSHOT (12+(18*3))
84 
85 typedef struct
86 {
87 	int	settings[32];
88 	unsigned long keyflags, newkeyflags;
89 	int kb_break;
90 }
91 s_playercontrols;
92 
93 void control_exit();
94 void control_init(int joy_enable);
95 int control_usejoy(int enable);
96 int control_getjoyenabled();
97 int keyboard_getlastkey();
98 void control_setkey(s_playercontrols * pcontrols, unsigned int flag, int key);
99 int control_scankey();
100 char* control_getkeyname(unsigned int keycode);
101 void control_update(s_playercontrols ** playercontrols, int numplayers);
102 void control_rumble(int port, int msec);
103 unsigned long getPad(int port);
104 
105 #endif
106 
107