From 45be5d966043378b9abc2e7236848b5d3a441a70 Mon Sep 17 00:00:00 2001 From: Rye Date: Sat, 1 Nov 2025 03:59:16 -0400 Subject: [PATCH] Fix SDL3 device init --- libndofdev/ndofdev.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/libndofdev/ndofdev.c b/libndofdev/ndofdev.c index ff5a962..17ce31b 100644 --- a/libndofdev/ndofdev.c +++ b/libndofdev/ndofdev.c @@ -261,8 +261,24 @@ int ndof_init_first(NDOF_Device *in_out_dev, void *param) } else { #ifdef USE_SDL3 + if(!SDL_HasJoystick()) + { + return -1; + } + + int count = 0; + SDL_JoystickID *ids = SDL_GetJoysticks(&count); + if(0 >= count) + { + return -1; + } + + // Get ID of first device + SDL_JoystickID first_device = ids[0]; + SDL_free(ids); + // SpaceNavigator not found, use SDL Joystick - SDL_Joystick *j = SDL_OpenJoystick(0); + SDL_Joystick *j = SDL_OpenJoystick(first_device); if(j) { in_out_dev->axes_count = SDL_GetNumJoystickAxes(j) + SDL_GetNumJoystickHats(j) * 2; // each hat has 2 axes