Задача в чем - необходимо корректно обрабатывать отключение и подключение джойстиков в системе. Для работы с джойстиками используется SDL1.2
Программное обеспечение требует пары джойстиков. Соответственно если хотя бы одного нет, то нужно детектировать его подключение. Перебрав все доступное API джойстиков пришел к выводу, что для решения задачи необходима переинициализация всей системы
SDL_QuitSubSystem(SDL_INIT_JOYSTICK);
SDL_InitSubSystem(SDL_INIT_JOYSTICK);
Это делаем и все бы здорово, но рассмотрим ситуацию, когда один джойстик подключен, а другой нет.
Фиксируем состояние осей рабочего джойстика, например, в положении (32767,32767), затем срабатывает переинициализация и, до тех пор, пока оси не сдвинутся с места (32767,32767), то функция SDL_JoystickGetAxis() будет выдавать нулевое положение (0, 0).
SDL_JoystickUpdate() после переинициализации не помогает.
В доках пишут - если эта функция SDL_JoystickGetAxis() выдает ноль, то смотри SDL_GetError(). Там все чисто.
Как бы это обойти или что я делаю не так? Мне необходимо истинное положение джойстика после инициализации.