#include #include #include #include #include #include #include //magic numbers #define NUM_EVENTS_PS4 3 #define NUM_EVENTS_WII 4 #define NUM_EVENTS 13 //steam + xbox + ps4 * 6 + wii * 4 + mouse #define BUFSIZE 40 //VALVE STEAM CONTROLLER #define STEAM_BIT 1 //MICROSOFT XBOX 360 CONTROLLER #define XBOX_360_BIT 2 // 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 }; struct event_pairs { int event_fptr_index; int event_user_num; };