Implemented GetGamepadName() for emscripten (#1986)
* implemented GetGamepadName for emscripten * updated gamepad to use existing name as arary * removed unnecessary platform_web check
This commit is contained in:
parent
024adc2538
commit
e9d3d4fa1f
1 changed files with 12 additions and 5 deletions
17
src/core.c
17
src/core.c
|
@ -456,10 +456,10 @@ typedef struct CoreData {
|
||||||
char currentButtonState[MAX_GAMEPADS][MAX_GAMEPAD_BUTTONS]; // Current gamepad buttons state
|
char currentButtonState[MAX_GAMEPADS][MAX_GAMEPAD_BUTTONS]; // Current gamepad buttons state
|
||||||
char previousButtonState[MAX_GAMEPADS][MAX_GAMEPAD_BUTTONS]; // Previous gamepad buttons state
|
char previousButtonState[MAX_GAMEPADS][MAX_GAMEPAD_BUTTONS]; // Previous gamepad buttons state
|
||||||
float axisState[MAX_GAMEPADS][MAX_GAMEPAD_AXIS]; // Gamepad axis 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
|
pthread_t threadId; // Gamepad reading thread id
|
||||||
int streamId[MAX_GAMEPADS]; // Gamepad device file descriptor
|
int streamId[MAX_GAMEPADS]; // Gamepad device file descriptor
|
||||||
char name[64]; // Gamepad name holder
|
char name[MAX_GAMEPADS][64]; // Gamepad name holder
|
||||||
#endif
|
#endif
|
||||||
} Gamepad;
|
} Gamepad;
|
||||||
} Input;
|
} Input;
|
||||||
|
@ -3273,8 +3273,11 @@ const char *GetGamepadName(int gamepad)
|
||||||
else return NULL;
|
else return NULL;
|
||||||
#endif
|
#endif
|
||||||
#if defined(PLATFORM_RPI) || defined(PLATFORM_DRM)
|
#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);
|
if (CORE.Input.Gamepad.ready[gamepad]) ioctl(CORE.Input.Gamepad.streamId[gamepad], JSIOCGNAME(64), &CORE.Input.Gamepad.name[gamepad]);
|
||||||
return CORE.Input.Gamepad.name;
|
return CORE.Input.Gamepad.name[gamepad];
|
||||||
|
#endif
|
||||||
|
#if defined(PLATFORM_WEB)
|
||||||
|
return CORE.Input.Gamepad.name[gamepad];
|
||||||
#endif
|
#endif
|
||||||
return NULL;
|
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]);
|
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;
|
else CORE.Input.Gamepad.ready[gamepadEvent->index] = false;
|
||||||
|
|
||||||
// TODO: Test gamepadEvent->index
|
// TODO: Test gamepadEvent->index
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue