mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2025-08-05 08:52:36 +00:00
input: More error checking
This commit is contained in:
parent
f85ab38f9e
commit
ecbee1ff55
@ -90,12 +90,24 @@ SDLInputEngine::~SDLInputEngine() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void SDLInputEngine::Init() {
|
void SDLInputEngine::Init() {
|
||||||
int gamepad_count;
|
|
||||||
SDL_JoystickID* gamepads = SDL_GetGamepads(&gamepad_count);
|
|
||||||
if (m_gamepad) {
|
if (m_gamepad) {
|
||||||
SDL_CloseGamepad(m_gamepad);
|
SDL_CloseGamepad(m_gamepad);
|
||||||
|
m_gamepad = nullptr;
|
||||||
|
}
|
||||||
|
int gamepad_count;
|
||||||
|
SDL_JoystickID* gamepads = SDL_GetGamepads(&gamepad_count);
|
||||||
|
if (!gamepads) {
|
||||||
|
LOG_ERROR(Input, "Cannot get gamepad list: {}", std::string_view(SDL_GetError()));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (gamepad_count == 0) {
|
||||||
|
LOG_INFO(Input, "No gamepad found!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
LOG_INFO(Input, "Got {} gamepads. Opening the first one.", gamepad_count);
|
||||||
|
if (!(m_gamepad = SDL_OpenGamepad(gamepads[0]))) {
|
||||||
|
LOG_ERROR(Input, "Failed to open gamepad 0: {}", std::string_view(SDL_GetError()));
|
||||||
}
|
}
|
||||||
m_gamepad = gamepad_count > 0 ? SDL_OpenGamepad(gamepads[0]) : nullptr;
|
|
||||||
if (Config::getIsMotionControlsEnabled()) {
|
if (Config::getIsMotionControlsEnabled()) {
|
||||||
if (SDL_SetGamepadSensorEnabled(m_gamepad, SDL_SENSOR_GYRO, true)) {
|
if (SDL_SetGamepadSensorEnabled(m_gamepad, SDL_SENSOR_GYRO, true)) {
|
||||||
m_gyro_poll_rate = SDL_GetGamepadSensorDataRate(m_gamepad, SDL_SENSOR_GYRO);
|
m_gyro_poll_rate = SDL_GetGamepadSensorDataRate(m_gamepad, SDL_SENSOR_GYRO);
|
||||||
|
Loading…
Reference in New Issue
Block a user