|
|
@ -456,10 +456,10 @@ typedef struct CoreData { |
|
|
|
char currentButtonState[MAX_GAMEPADS][MAX_GAMEPAD_BUTTONS]; // Current gamepad buttons state |
|
|
|
char previousButtonState[MAX_GAMEPADS][MAX_GAMEPAD_BUTTONS]; // Previous gamepad buttons state |
|
|
|
float axisState[MAX_GAMEPADS][MAX_GAMEPAD_AXIS]; // Gamepad axis state |
|
|
|
#if defined(PLATFORM_RPI) || defined(PLATFORM_DRM) |
|
|
|
#if defined(PLATFORM_RPI) || defined(PLATFORM_DRM) || defined(PLATFORM_WEB) |
|
|
|
pthread_t threadId; // Gamepad reading thread id |
|
|
|
int streamId[MAX_GAMEPADS]; // Gamepad device file descriptor |
|
|
|
char name[64]; // Gamepad name holder |
|
|
|
char name[n">MAX_GAMEPADS][64]; // Gamepad name holder |
|
|
|
#endif |
|
|
|
} Gamepad; |
|
|
|
} Input; |
|
|
@ -3273,8 +3273,11 @@ const char *GetGamepadName(int gamepad) |
|
|
|
else return NULL; |
|
|
|
#endif |
|
|
|
#if defined(PLATFORM_RPI) || defined(PLATFORM_DRM) |
|
|
|
if (CORE.Input.Gamepad.ready[gamepad]) ioctl(CORE.Input.Gamepad.streamId[gamepad], JSIOCGNAME(64), &CORE.Input.Gamepad.name); |
|
|
|
return CORE.Input.Gamepad.name; |
|
|
|
if (CORE.Input.Gamepad.ready[gamepad]) ioctl(CORE.Input.Gamepad.streamId[gamepad], JSIOCGNAME(64), &CORE.Input.Gamepad.name[gamepad]); |
|
|
|
return CORE.Input.Gamepad.name[gamepad]; |
|
|
|
#endif |
|
|
|
#if defined(PLATFORM_WEB) |
|
|
|
return CORE.Input.Gamepad.name[gamepad]; |
|
|
|
#endif |
|
|
|
return NULL; |
|
|
|
} |
|
|
@ -5400,7 +5403,11 @@ static EM_BOOL EmscriptenGamepadCallback(int eventType, const EmscriptenGamepadE |
|
|
|
for (int i = 0; i < gamepadEvent->numButtons; ++i) TRACELOGD("Button %d: Digital: %d, Analog: %g", i, gamepadEvent->digitalButton[i], gamepadEvent->analogButton[i]); |
|
|
|
*/ |
|
|
|
|
|
|
|
if ((gamepadEvent->connected) && (gamepadEvent->index < MAX_GAMEPADS)) CORE.Input.Gamepad.ready[gamepadEvent->index] = true; |
|
|
|
if ((gamepadEvent->connected) && (gamepadEvent->index < MAX_GAMEPADS)) |
|
|
|
{ |
|
|
|
CORE.Input.Gamepad.ready[gamepadEvent->index] = true; |
|
|
|
sprintf(CORE.Input.Gamepad.name[gamepadEvent->index],"%s",gamepadEvent->id); |
|
|
|
} |
|
|
|
else CORE.Input.Gamepad.ready[gamepadEvent->index] = false; |
|
|
|
|
|
|
|
// TODO: Test gamepadEvent->index |
|
|
|