switch(event->type)
{
#if defined(TARGET_SDL2)
+ case SDL_CONTROLLERDEVICEADDED:
+#if 1
+ Error(ERR_DEBUG, "SDL_CONTROLLERDEVICEADDED: device %d added",
+ event->cdevice.which);
+#endif
+ InitJoysticks();
+ break;
+
+ case SDL_CONTROLLERDEVICEREMOVED:
+#if 1
+ Error(ERR_DEBUG, "SDL_CONTROLLERDEVICEREMOVED: device %d removed",
+ event->cdevice.which);
+#endif
+ InitJoysticks();
+ break;
+
case SDL_CONTROLLERAXISMOTION:
#if 1
Error(ERR_DEBUG, "SDL_CONTROLLERAXISMOTION: device %d, axis %d: %d",
static boolean sdl_joystick_subsystem_initialized = FALSE;
boolean print_warning = !sdl_joystick_subsystem_initialized;
#if defined(TARGET_SDL2)
- char *mappings_file = "gamecontrollerdb.txt";
+ char *mappings_file_base = getPath2(options.ro_base_directory,
+ GAMECONTROLLER_BASENAME);
+ char *mappings_file_user = getPath2(getUserGameDataDir(),
+ GAMECONTROLLER_BASENAME);
int num_mappings;
#endif
int i;
}
#if defined(TARGET_SDL2)
- num_mappings = SDL_GameControllerAddMappingsFromFile(mappings_file);
+ num_mappings = SDL_GameControllerAddMappingsFromFile(mappings_file_base);
+
+ if (num_mappings != -1)
+ Error(ERR_INFO, "%d game controller base mapping(s) added", num_mappings);
+ else
+ Error(ERR_WARN, "no game controller base mappings found");
+
+ num_mappings = SDL_GameControllerAddMappingsFromFile(mappings_file_user);
if (num_mappings != -1)
- Error(ERR_INFO, "%d game controller mapping(s) added", num_mappings);
+ Error(ERR_INFO, "%d game controller user mapping(s) added", num_mappings);
else
- Error(ERR_WARN, "no game controller mappings found");
+ Error(ERR_WARN, "no game controller user mappings found");
Error(ERR_INFO, "%d joystick(s) found:", SDL_NumJoysticks());
+ checked_free(mappings_file_base);
+ checked_free(mappings_file_user);
+
for (i = 0; i < SDL_NumJoysticks(); i++)
{
const char *name, *type;