|
|
|
|
@ -286,40 +286,42 @@ GamepadLayout GameController::getLayout(const SDL_Event &event)
|
|
|
|
|
} |
|
|
|
|
#else |
|
|
|
|
#if SDL_VERSION_ATLEAST(2, 0, 12) |
|
|
|
|
const int index = event.cdevice.which; |
|
|
|
|
const SDL_GameControllerType gamepadType = SDL_GameControllerTypeForIndex(index); |
|
|
|
|
switch (gamepadType) { |
|
|
|
|
case SDL_CONTROLLER_TYPE_NINTENDO_SWITCH_PRO: |
|
|
|
|
GameController *controller = Get(event); |
|
|
|
|
if (controller != nullptr) { |
|
|
|
|
const SDL_GameControllerType gamepadType = SDL_GameControllerGetType(controller->sdl_game_controller_); |
|
|
|
|
switch (gamepadType) { |
|
|
|
|
case SDL_CONTROLLER_TYPE_NINTENDO_SWITCH_PRO: |
|
|
|
|
#if SDL_VERSION_ATLEAST(2, 24, 0) |
|
|
|
|
case SDL_CONTROLLER_TYPE_NINTENDO_SWITCH_JOYCON_LEFT: |
|
|
|
|
case SDL_CONTROLLER_TYPE_NINTENDO_SWITCH_JOYCON_RIGHT: |
|
|
|
|
case SDL_CONTROLLER_TYPE_NINTENDO_SWITCH_JOYCON_PAIR: |
|
|
|
|
case SDL_CONTROLLER_TYPE_NINTENDO_SWITCH_JOYCON_LEFT: |
|
|
|
|
case SDL_CONTROLLER_TYPE_NINTENDO_SWITCH_JOYCON_RIGHT: |
|
|
|
|
case SDL_CONTROLLER_TYPE_NINTENDO_SWITCH_JOYCON_PAIR: |
|
|
|
|
#endif |
|
|
|
|
return GamepadLayout::Nintendo; |
|
|
|
|
case SDL_CONTROLLER_TYPE_PS3: |
|
|
|
|
case SDL_CONTROLLER_TYPE_PS4: |
|
|
|
|
return GamepadLayout::Nintendo; |
|
|
|
|
case SDL_CONTROLLER_TYPE_PS3: |
|
|
|
|
case SDL_CONTROLLER_TYPE_PS4: |
|
|
|
|
#if SDL_VERSION_ATLEAST(2, 0, 14) |
|
|
|
|
case SDL_CONTROLLER_TYPE_PS5: |
|
|
|
|
case SDL_CONTROLLER_TYPE_PS5: |
|
|
|
|
#endif |
|
|
|
|
return GamepadLayout::PlayStation; |
|
|
|
|
case SDL_CONTROLLER_TYPE_XBOXONE: |
|
|
|
|
case SDL_CONTROLLER_TYPE_XBOX360: |
|
|
|
|
return GamepadLayout::PlayStation; |
|
|
|
|
case SDL_CONTROLLER_TYPE_XBOXONE: |
|
|
|
|
case SDL_CONTROLLER_TYPE_XBOX360: |
|
|
|
|
#if SDL_VERSION_ATLEAST(2, 0, 16) |
|
|
|
|
case SDL_CONTROLLER_TYPE_GOOGLE_STADIA: |
|
|
|
|
case SDL_CONTROLLER_TYPE_AMAZON_LUNA: |
|
|
|
|
case SDL_CONTROLLER_TYPE_GOOGLE_STADIA: |
|
|
|
|
case SDL_CONTROLLER_TYPE_AMAZON_LUNA: |
|
|
|
|
#if SDL_VERSION_ATLEAST(2, 24, 0) |
|
|
|
|
case SDL_CONTROLLER_TYPE_NVIDIA_SHIELD: |
|
|
|
|
case SDL_CONTROLLER_TYPE_NVIDIA_SHIELD: |
|
|
|
|
#endif |
|
|
|
|
#endif |
|
|
|
|
return GamepadLayout::Xbox; |
|
|
|
|
return GamepadLayout::Xbox; |
|
|
|
|
#if SDL_VERSION_ATLEAST(2, 0, 14) |
|
|
|
|
case SDL_CONTROLLER_TYPE_VIRTUAL: |
|
|
|
|
case SDL_CONTROLLER_TYPE_VIRTUAL: |
|
|
|
|
#endif |
|
|
|
|
case SDL_CONTROLLER_TYPE_UNKNOWN: |
|
|
|
|
case SDL_CONTROLLER_TYPE_UNKNOWN: |
|
|
|
|
#if SDL_VERSION_ATLEAST(2, 30, 0) |
|
|
|
|
case SDL_CONTROLLER_TYPE_MAX: |
|
|
|
|
case SDL_CONTROLLER_TYPE_MAX: |
|
|
|
|
#endif |
|
|
|
|
break; |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
#endif |
|
|
|
|
return GamepadLayout::Generic; |
|
|
|
|
|