1 /*
2  * OpenBOR - http://www.chronocrash.com
3  * -----------------------------------------------------------------------
4  * Licensed under a BSD-style license, see LICENSE in OpenBOR root for details.
5  *
6  * Copyright (c) 2004 - 2017 OpenBOR Team
7  */
8 
9 #ifndef	CONTROL_H
10 #define	CONTROL_H
11 
12 #include <stdint.h>
13 
14 #define VITA_DPAD_UP         0x00000001
15 #define VITA_DPAD_RIGHT      0x00000002
16 #define VITA_DPAD_DOWN       0x00000004
17 #define VITA_DPAD_LEFT       0x00000008
18 #define VITA_CROSS           0x00000010
19 #define VITA_CIRCLE          0x00000020
20 #define VITA_SQUARE          0x00000040
21 #define VITA_TRIANGLE        0x00000080
22 #define VITA_LEFT_TRIGGER    0x00000100
23 #define VITA_RIGHT_TRIGGER   0x00000200
24 #define VITA_START           0x00000400
25 #define VITA_SELECT          0x00000800
26 #define VITA_L1              0x00001000
27 #define VITA_R1              0x00002000
28 #define VITA_L3              0x00004000
29 #define VITA_R3              0x00008000
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		7
38 #define CONTROL_DEFAULT1_FIRE2		6
39 #define	CONTROL_DEFAULT1_FIRE3		9
40 #define	CONTROL_DEFAULT1_FIRE4		10
41 #define	CONTROL_DEFAULT1_FIRE5		5
42 #define	CONTROL_DEFAULT1_FIRE6		8
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		(7+18)
51 #define CONTROL_DEFAULT2_FIRE2		(6+18)
52 #define	CONTROL_DEFAULT2_FIRE3		(9+18)
53 #define	CONTROL_DEFAULT2_FIRE4		(10+18)
54 #define	CONTROL_DEFAULT2_FIRE5		(5+18)
55 #define	CONTROL_DEFAULT2_FIRE6		(8+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		(7+(18*2))
64 #define CONTROL_DEFAULT3_FIRE2		(6+(18*2))
65 #define	CONTROL_DEFAULT3_FIRE3		(9+(18*2))
66 #define	CONTROL_DEFAULT3_FIRE4		(10+(18*2))
67 #define	CONTROL_DEFAULT3_FIRE5		(5+(18*2))
68 #define	CONTROL_DEFAULT3_FIRE6		(8+(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		(7+(18*3))
77 #define CONTROL_DEFAULT4_FIRE2		(6+(18*3))
78 #define	CONTROL_DEFAULT4_FIRE3		(9+(18*3))
79 #define	CONTROL_DEFAULT4_FIRE4		(10+(18*3))
80 #define	CONTROL_DEFAULT4_FIRE5		(5+(18*3))
81 #define	CONTROL_DEFAULT4_FIRE6		(8+(18*3))
82 #define CONTROL_DEFAULT4_START		(11+(18*3))
83 #define CONTROL_DEFAULT4_SCREENSHOT (12+(18*3))
84 
85 #define	CONTROL_NONE				(1+(18*99)) //Kratus (20-04-21) value used to clear all keys
86 
87 typedef struct
88 {
89 	int	settings[32];
90 	unsigned int keyflags, newkeyflags;
91 	int kb_break;
92 }
93 s_playercontrols;
94 
95 void control_exit();
96 void control_init(int joy_enable);
97 int control_usejoy(int enable);
98 int control_getjoyenabled();
99 int keyboard_getlastkey();
100 void control_setkey(s_playercontrols * pcontrols, unsigned int flag, int key);
101 int control_scankey();
102 char* control_getkeyname(unsigned int keycode);
103 void control_update(s_playercontrols ** playercontrols, int numplayers);
104 void control_rumble(int port, int ratio, int msec);
105 
106 #endif
107 
108