Dualsense: Release LEDs on when the handler is destroyed

This commit is contained in:
Megamouse 2022-10-22 01:58:45 +02:00
parent 3320d1e1c7
commit 615ff08d1a
2 changed files with 8 additions and 1 deletions

View file

@ -913,6 +913,7 @@ dualsense_pad_handler::~dualsense_pad_handler()
// Disable vibration
controller.second->small_motor = 0;
controller.second->large_motor = 0;
controller.second->release_leds = true;
send_output_report(controller.second.get());
}
}
@ -939,6 +940,11 @@ int dualsense_pad_handler::send_output_report(DualSenseDevice* device)
common.valid_flag_2 |= VALID_FLAG_2_LIGHTBAR_SETUP_CONTROL_ENABLE;
common.lightbar_setup = LIGHTBAR_SETUP_LIGHT_OUT; // Fade light out.
}
else if (device->release_leds)
{
common.valid_flag_1 |= VALID_FLAG_1_RELEASE_LEDS;
device->release_leds = false;
}
else
{
common.valid_flag_0 |= VALID_FLAG_0_COMPATIBLE_VIBRATION;
@ -1109,7 +1115,7 @@ void dualsense_pad_handler::apply_pad_data(const pad_ensemble& binding)
dualsense_dev->update_player_leds = true;
}
dualsense_dev->new_output_data |= dualsense_dev->update_player_leds || dualsense_dev->update_lightbar || dualsense_dev->large_motor != speed_large || dualsense_dev->small_motor != speed_small;
dualsense_dev->new_output_data |= dualsense_dev->release_leds || dualsense_dev->update_player_leds || dualsense_dev->update_lightbar || dualsense_dev->large_motor != speed_large || dualsense_dev->small_motor != speed_small;
dualsense_dev->large_motor = speed_large;
dualsense_dev->small_motor = speed_small;