mirror of
https://github.com/yuzu-emu/yuzu-android.git
synced 2025-06-28 05:07:51 -05:00
core: hid: Skip duplicated vibrations
This commit is contained in:
@ -1245,7 +1245,12 @@ bool EmulatedController::SetVibration(DeviceIndex device_index, const VibrationV
|
||||
return false;
|
||||
}
|
||||
|
||||
last_vibration_value = vibration;
|
||||
// Skip duplicated vibrations
|
||||
if (last_vibration_value[index] == vibration) {
|
||||
return Settings::values.vibration_enabled.GetValue();
|
||||
}
|
||||
|
||||
last_vibration_value[index] = vibration;
|
||||
|
||||
if (!Settings::values.vibration_enabled) {
|
||||
return false;
|
||||
@ -1276,7 +1281,10 @@ bool EmulatedController::SetVibration(DeviceIndex device_index, const VibrationV
|
||||
}
|
||||
|
||||
VibrationValue EmulatedController::GetActualVibrationValue(DeviceIndex device_index) const {
|
||||
return last_vibration_value;
|
||||
if (device_index >= DeviceIndex::MaxDeviceIndex) {
|
||||
return Core::HID::DEFAULT_VIBRATION_VALUE;
|
||||
}
|
||||
return last_vibration_value[static_cast<std::size_t>(device_index)];
|
||||
}
|
||||
|
||||
bool EmulatedController::IsVibrationEnabled(std::size_t device_index) {
|
||||
|
@ -581,7 +581,8 @@ private:
|
||||
f32 motion_sensitivity{Core::HID::MotionInput::IsAtRestStandard};
|
||||
u32 turbo_button_state{0};
|
||||
std::size_t nfc_handles{0};
|
||||
VibrationValue last_vibration_value{DEFAULT_VIBRATION_VALUE};
|
||||
std::array<VibrationValue, 2> last_vibration_value{DEFAULT_VIBRATION_VALUE,
|
||||
DEFAULT_VIBRATION_VALUE};
|
||||
|
||||
// Temporary values to avoid doing changes while the controller is in configuring mode
|
||||
NpadStyleIndex tmp_npad_type{NpadStyleIndex::None};
|
||||
|
Reference in New Issue
Block a user