summaryrefslogtreecommitdiff
path: root/controller_info.h
blob: 0bef6842400e764cd9c438271456b8a4dd19a6c6 (plain)
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
#ifndef CONTROLLER_INFO_H_
#define CONTROLLER_INFO_H_
#include <stdint.h>

enum {
	TYPE_UNKNOWN,
	TYPE_GENERIC_MAPPING,
	TYPE_XBOX,
	TYPE_PSX,
	TYPE_NINTENDO,
	TYPE_SEGA
};

enum {
	SUBTYPE_UNKNOWN,
	SUBTYPE_XBOX,
	SUBTYPE_X360,
	SUBTYPE_XBONE,
	SUBTYPE_PS2,
	SUBTYPE_PS3,
	SUBTYPE_PS4,
	SUBTYPE_WIIU,
	SUBTYPE_SWITCH,
	SUBTYPE_GENESIS,
	SUBTYPE_SATURN
};

enum {
	VARIANT_NORMAL,
	VARIANT_6B_BUMPERS, //C and Z positions are RB and LB respectively
	VARIANT_6B_RIGHT //C and Z positions are RT and RB respectively
};

typedef struct {
	char const *name;
	uint8_t    type;
	uint8_t    subtype;
	uint8_t    variant;
} controller_info;

controller_info get_controller_info(int index);
const char *get_button_label(controller_info *info, int button);
const char *get_axis_label(controller_info *info, int axis);

#endif //CONTROLLER_INFO_H_