summaryrefslogtreecommitdiff
path: root/src/input_common/drivers
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/input_common/drivers/gc_adapter.cpp8
-rw-r--r--src/input_common/drivers/gc_adapter.h2
-rw-r--r--src/input_common/drivers/sdl_driver.cpp8
-rw-r--r--src/input_common/drivers/sdl_driver.h2
4 files changed, 14 insertions, 6 deletions
diff --git a/src/input_common/drivers/gc_adapter.cpp b/src/input_common/drivers/gc_adapter.cpp
index 6721ba4f7..2aa5a16a6 100644
--- a/src/input_common/drivers/gc_adapter.cpp
+++ b/src/input_common/drivers/gc_adapter.cpp
@@ -322,13 +322,17 @@ bool GCAdapter::GetGCEndpoint(libusb_device* device) {
322 return true; 322 return true;
323} 323}
324 324
325bool GCAdapter::SetRumble(const PadIdentifier& identifier, const Input::VibrationStatus vibration) { 325Input::VibrationError GCAdapter::SetRumble(const PadIdentifier& identifier, const Input::VibrationStatus vibration) {
326 const auto mean_amplitude = (vibration.low_amplitude + vibration.high_amplitude) * 0.5f; 326 const auto mean_amplitude = (vibration.low_amplitude + vibration.high_amplitude) * 0.5f;
327 const auto processed_amplitude = 327 const auto processed_amplitude =
328 static_cast<u8>((mean_amplitude + std::pow(mean_amplitude, 0.3f)) * 0.5f * 0x8); 328 static_cast<u8>((mean_amplitude + std::pow(mean_amplitude, 0.3f)) * 0.5f * 0x8);
329 329
330 pads[identifier.port].rumble_amplitude = processed_amplitude; 330 pads[identifier.port].rumble_amplitude = processed_amplitude;
331 return rumble_enabled; 331
332 if (!rumble_enabled) {
333 return Input::VibrationError::Disabled;
334 }
335 return Input::VibrationError::None;
332} 336}
333 337
334void GCAdapter::UpdateVibrations() { 338void GCAdapter::UpdateVibrations() {
diff --git a/src/input_common/drivers/gc_adapter.h b/src/input_common/drivers/gc_adapter.h
index c0bf1ed7a..dd23dd9f3 100644
--- a/src/input_common/drivers/gc_adapter.h
+++ b/src/input_common/drivers/gc_adapter.h
@@ -24,7 +24,7 @@ public:
24 explicit GCAdapter(const std::string input_engine_); 24 explicit GCAdapter(const std::string input_engine_);
25 ~GCAdapter(); 25 ~GCAdapter();
26 26
27 bool SetRumble(const PadIdentifier& identifier, 27 Input::VibrationError SetRumble(const PadIdentifier& identifier,
28 const Input::VibrationStatus vibration) override; 28 const Input::VibrationStatus vibration) override;
29 29
30 /// Used for automapping features 30 /// Used for automapping features
diff --git a/src/input_common/drivers/sdl_driver.cpp b/src/input_common/drivers/sdl_driver.cpp
index efb4a2106..f7f03c5f2 100644
--- a/src/input_common/drivers/sdl_driver.cpp
+++ b/src/input_common/drivers/sdl_driver.cpp
@@ -506,7 +506,8 @@ std::vector<Common::ParamPackage> SDLDriver::GetInputDevices() const {
506 } 506 }
507 return devices; 507 return devices;
508} 508}
509bool SDLDriver::SetRumble(const PadIdentifier& identifier, const Input::VibrationStatus vibration) { 509Input::VibrationError SDLDriver::SetRumble(const PadIdentifier& identifier,
510 const Input::VibrationStatus vibration) {
510 const auto joystick = 511 const auto joystick =
511 GetSDLJoystickByGUID(identifier.guid.Format(), static_cast<int>(identifier.port)); 512 GetSDLJoystickByGUID(identifier.guid.Format(), static_cast<int>(identifier.port));
512 const auto process_amplitude = [](f32 amplitude) { 513 const auto process_amplitude = [](f32 amplitude) {
@@ -519,7 +520,10 @@ bool SDLDriver::SetRumble(const PadIdentifier& identifier, const Input::Vibratio
519 .high_frequency = vibration.high_frequency, 520 .high_frequency = vibration.high_frequency,
520 }; 521 };
521 522
522 return joystick->RumblePlay(new_vibration); 523 if (!joystick->RumblePlay(new_vibration)) {
524 return Input::VibrationError::Unknown;
525 }
526 return Input::VibrationError::None;
523} 527}
524Common::ParamPackage SDLDriver::BuildAnalogParamPackageForButton(int port, std::string guid, 528Common::ParamPackage SDLDriver::BuildAnalogParamPackageForButton(int port, std::string guid,
525 s32 axis, float value) const { 529 s32 axis, float value) const {
diff --git a/src/input_common/drivers/sdl_driver.h b/src/input_common/drivers/sdl_driver.h
index d8d350184..f66b33c77 100644
--- a/src/input_common/drivers/sdl_driver.h
+++ b/src/input_common/drivers/sdl_driver.h
@@ -58,7 +58,7 @@ public:
58 std::string GetHatButtonName(u8 direction_value) const override; 58 std::string GetHatButtonName(u8 direction_value) const override;
59 u8 GetHatButtonId(const std::string direction_name) const override; 59 u8 GetHatButtonId(const std::string direction_name) const override;
60 60
61 bool SetRumble(const PadIdentifier& identifier, 61 Input::VibrationError SetRumble(const PadIdentifier& identifier,
62 const Input::VibrationStatus vibration) override; 62 const Input::VibrationStatus vibration) override;
63 63
64private: 64private: