Update axisCount to be array
This commit is contained in:
parent
2503ff9f95
commit
8489d81075
|
|
@ -181,7 +181,7 @@ typedef struct CoreData {
|
||||||
} Touch;
|
} Touch;
|
||||||
struct {
|
struct {
|
||||||
int lastButtonPressed; // Register last gamepad button pressed
|
int lastButtonPressed; // Register last gamepad button pressed
|
||||||
int axisCount; // Register number of available gamepad axis
|
int axisCount[MAX_GAMEPADS]; // Register number of available gamepad axis
|
||||||
bool ready[MAX_GAMEPADS]; // Flag to know if gamepad is ready
|
bool ready[MAX_GAMEPADS]; // Flag to know if gamepad is ready
|
||||||
char name[MAX_GAMEPADS][64]; // Gamepad name holder
|
char name[MAX_GAMEPADS][64]; // Gamepad name holder
|
||||||
char currentButtonState[MAX_GAMEPADS][MAX_GAMEPAD_BUTTONS]; // Current gamepad buttons state
|
char currentButtonState[MAX_GAMEPADS][MAX_GAMEPAD_BUTTONS]; // Current gamepad buttons state
|
||||||
|
|
|
||||||
|
|
@ -763,7 +763,7 @@ const char *GetGamepadName(int gamepad)
|
||||||
// Get gamepad axis count
|
// Get gamepad axis count
|
||||||
int GetGamepadAxisCount(int gamepad)
|
int GetGamepadAxisCount(int gamepad)
|
||||||
{
|
{
|
||||||
return CORE.Input.Gamepad.axisCount;
|
return CORE.Input.Gamepad.axisCount[gamepad];
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set internal gamepad mappings
|
// Set internal gamepad mappings
|
||||||
|
|
@ -861,7 +861,11 @@ void PollInputEvents(void)
|
||||||
|
|
||||||
// Reset last gamepad button/axis registered state
|
// Reset last gamepad button/axis registered state
|
||||||
CORE.Input.Gamepad.lastButtonPressed = 0; // GAMEPAD_BUTTON_UNKNOWN
|
CORE.Input.Gamepad.lastButtonPressed = 0; // GAMEPAD_BUTTON_UNKNOWN
|
||||||
CORE.Input.Gamepad.axisCount = 0;
|
|
||||||
|
for (int i = 0; i < MAX_GAMEPADS; i++)
|
||||||
|
{
|
||||||
|
CORE.Input.Gamepad.axisCount[i] = 0;
|
||||||
|
}
|
||||||
|
|
||||||
// Register previous keys states
|
// Register previous keys states
|
||||||
for (int i = 0; i < MAX_KEYBOARD_KEYS; i++)
|
for (int i = 0; i < MAX_KEYBOARD_KEYS; i++)
|
||||||
|
|
@ -1519,16 +1523,19 @@ static void InitDrmJoystick(int index, const char *path)
|
||||||
// Get the bits describing the absolute axes of the device.
|
// Get the bits describing the absolute axes of the device.
|
||||||
unsigned long abs_bits[ABS_MAX / 8 + 1] = {0};
|
unsigned long abs_bits[ABS_MAX / 8 + 1] = {0};
|
||||||
ioctl(platform.gamepadStreamFd[index], EVIOCGBIT(EV_ABS, sizeof(abs_bits)), &abs_bits);
|
ioctl(platform.gamepadStreamFd[index], EVIOCGBIT(EV_ABS, sizeof(abs_bits)), &abs_bits);
|
||||||
|
ioctl(platform.gamepadStreamFd[index], EVIOCGNAME(64), &CORE.Input.Gamepad.name[index]);
|
||||||
|
|
||||||
// Count the axes present on the device.
|
// Count the axes present on the device.
|
||||||
CORE.Input.Gamepad.axisCount = 0;
|
CORE.Input.Gamepad.axisCount[index] = 0;
|
||||||
for (int axis = 0; axis < ABS_MAX; axis++)
|
for (int axis = 0; axis < ABS_MAX; axis++)
|
||||||
{
|
{
|
||||||
if (MI_IS_BIT_SET(abs_bits, axis)) {
|
if (MI_IS_BIT_SET(abs_bits, axis)) {
|
||||||
CORE.Input.Gamepad.axisCount++;
|
CORE.Input.Gamepad.axisCount[index]++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TraceLog(LOG_INFO, TextFormat("Gamepad [%d] %s has %d axes", index, CORE.Input.Gamepad.name[index], CORE.Input.Gamepad.axisCount[index]));
|
||||||
|
|
||||||
CORE.Input.Gamepad.ready[index] = true;
|
CORE.Input.Gamepad.ready[index] = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user