1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
#include <stdio.h>
#include <unistd.h>
#include <linux/input.h>
#include <fcntl.h>
#include <sys/time.h>
#include <stdlib.h>
#include <stdint.h>
//magic numbers
#define NUM_EVENTS_PS4 3
#define NUM_EVENTS_WII 4
#define NUM_EVENTS 13 //steam + xbox + ps4 * 6 + wii * 4 + mouse
// WIRED PS4
#define PS4_WIRED_TOUCH_BIT 4
#define PS4_WIRED_GYRO_BIT 8
#define PS4_WIRED_BUTTONS_BIT 16
#define PS4_WIRED_TOUCH_AND_GYRO 12 // 4 + 8
#define PS4_WIRED_TOUCH_AND_BUTTONS 20 // 4 + 16
#define PS4_WIRED_GYRO_AND_BUTTONS 24 // 8 + 16
#define PS4_WIRED_ALL_BITS 28 // 4 + 8 + 16
// Bluetooth PS4
#define PS4_BT_TOUCH_BIT 32
#define PS4_BT_GYRO_BIT 64
#define PS4_BT_BUTTONS_BIT 128
#define PS4_BT_TOUCH_AND_GYRO 96 // 32 + 64
#define PS4_BT_TOUCH_AND_BUTTONS 160 // 32 + 128
#define PS4_BT_GYRO_AND_BUTTONS 192 // 64 + 128
#define PS4_BT_ALL_BITS 224 // 32 + 64 + 128
// NINTENDO WII
#define NINTENDO_GYRO_BIT 256
#define NINTENDO_IR_BIT 512
#define NINTENDO_BUTTONS_BIT 1024
#define NINTENDO_NUNCHUK_BIT 2048
#define NINTENDO_GYRO_AND_IR 768 // 256 + 512
#define NINTENDO_GYRO_AND_BUTTONS 1280 // 256 + 1024
#define NINTENDO_GYRO_AND_NUNCHUK 2304 // 256 + 2048
#define NINTENDO_IR_AND_BUTTONS 1536 // 512 + 1024
#define NINTENDO_IR_AND_NUNCHUK 2560 // 512 + 2048
#define NINTENDO_BUTTONS_AND_NUNCHUK 3072 // 1024 + 2048
#define NINTENDO_GYRO_IR_AND_BUTTONS 1792 // 256 + 512 + 1024
#define NINTENDO_GYRO_IR_AND_NUNCHUK 2816 // 256 + 512 + 2048
#define NINTENDO_GYRO_BUTTONS_AND_NUNCHUK 3328 // 256 + 1024 + 2048
#define NINTENDO_IR_BUTTONS_AND_NUNCHUK 3584 // 512 + 1024 + 2048
#define NINTENDO_ALL_BITS 3840 // 256 + 512 + 1024 + 2048
enum {
IR = 0, TOUCHPAD = 0, GYRO = 1, BUTTONS = 2, NUNCHUK = 3
};
enum {
VALVE_STEAM = 0,
XBOX_360 = 1,
PS4_WIRED_GYRO = 2, PS4_WIRED_BUTTONS = 3, PS4_WIRED_TOUCH = 4,
PS4_BT_GYRO = 5, PS4_BT_BUTTONS = 6, PS4_BT_TOUCH = 7,
WII_GYRO = 8, WII_IR = 9, WII_BUTTONS = 10, WII_NUNCHUK = 11,
MOUSE = 12
};
|