From 67d0bbedb1b934058cdcdb49d6bc3b4a7e4eb6c8 Mon Sep 17 00:00:00 2001 From: Connor McLaughlin Date: Thu, 17 Sep 2020 19:55:43 +1000 Subject: [PATCH] ControllerInterface: Don't use a minimum strength of 0.01 --- src/frontend-common/sdl_controller_interface.cpp | 5 ++--- src/frontend-common/xinput_controller_interface.cpp | 8 ++------ 2 files changed, 4 insertions(+), 9 deletions(-) diff --git a/src/frontend-common/sdl_controller_interface.cpp b/src/frontend-common/sdl_controller_interface.cpp index 7d3818758..191c75f5e 100644 --- a/src/frontend-common/sdl_controller_interface.cpp +++ b/src/frontend-common/sdl_controller_interface.cpp @@ -394,13 +394,12 @@ void SDLControllerInterface::SetControllerRumbleStrength(int controller_index, c return; // we'll update before this duration is elapsed - static constexpr float MIN_STRENGTH = 0.01f; static constexpr u32 DURATION = 100000; SDL_Haptic* haptic = static_cast(it->haptic); if (it->haptic_left_right_effect >= 0 && num_motors > 1) { - if (strengths[0] >= MIN_STRENGTH || strengths[1] >= MIN_STRENGTH) + if (strengths[0] > 0.0f || strengths[1] > 0.0f) { SDL_HapticEffect ef; ef.type = SDL_HAPTIC_LEFTRIGHT; @@ -421,7 +420,7 @@ void SDLControllerInterface::SetControllerRumbleStrength(int controller_index, c for (u32 i = 0; i < num_motors; i++) max_strength = std::max(max_strength, strengths[i]); - if (max_strength >= MIN_STRENGTH) + if (max_strength > 0.0f) SDL_HapticRumblePlay(haptic, max_strength, DURATION); else SDL_HapticRumbleStop(haptic); diff --git a/src/frontend-common/xinput_controller_interface.cpp b/src/frontend-common/xinput_controller_interface.cpp index 3ef93d90d..cb1e59264 100644 --- a/src/frontend-common/xinput_controller_interface.cpp +++ b/src/frontend-common/xinput_controller_interface.cpp @@ -296,13 +296,9 @@ void XInputControllerInterface::SetControllerRumbleStrength(int controller_index { DebugAssert(static_cast(controller_index) < XUSER_MAX_COUNT); - // we'll update before this duration is elapsed - static constexpr float MIN_STRENGTH = 0.01f; - static constexpr u32 DURATION = 100000; - XINPUT_VIBRATION vib; - vib.wLeftMotorSpeed = (strengths[0] >= MIN_STRENGTH) ? static_cast(strengths[0] * 65535.0f) : 0; - vib.wRightMotorSpeed = (strengths[1] >= MIN_STRENGTH) ? static_cast(strengths[1] * 65535.0f) : 0; + vib.wLeftMotorSpeed = static_cast(strengths[0] * 65535.0f); + vib.wRightMotorSpeed = static_cast(strengths[1] * 65535.0f); m_xinput_set_state(static_cast(controller_index), &vib); }