mirror of
https://github.com/Ryubing/Ryujinx.git
synced 2025-03-10 09:04:23 +00:00
Fully disconnect gamepad handler for rainbow color if configuration is set with UseRainbowLed false
Also check if its even enabled before setting the rainbow color Fixes strobing
This commit is contained in:
parent
1ce37ec317
commit
3541e282ea
@ -5,17 +5,29 @@ namespace Ryujinx.Common.Utilities
|
||||
{
|
||||
public class Rainbow
|
||||
{
|
||||
public const float Speed = 1;
|
||||
public static float Speed { get; set; } = 1;
|
||||
|
||||
public static Color Color { get; private set; } = Color.Blue;
|
||||
|
||||
private static float _lastHue;
|
||||
|
||||
public static void Tick()
|
||||
{
|
||||
float currentHue = Color.GetHue();
|
||||
float nextHue = currentHue;
|
||||
|
||||
if (currentHue >= 360)
|
||||
nextHue = 0;
|
||||
else
|
||||
nextHue += Speed;
|
||||
|
||||
Color = HsbToRgb(
|
||||
(Color.GetHue() + Speed) / 360,
|
||||
nextHue / 360,
|
||||
1,
|
||||
1
|
||||
);
|
||||
|
||||
_lastHue = currentHue;
|
||||
|
||||
RainbowColorUpdated?.Invoke(Color.ToArgb());
|
||||
}
|
||||
|
@ -226,6 +226,13 @@ namespace Ryujinx.Input.SDL2
|
||||
|
||||
private static Vector3 GsToMs2(Vector3 gs) => gs / SDL_STANDARD_GRAVITY;
|
||||
|
||||
private void RainbowColorChanged(int packedRgb)
|
||||
{
|
||||
if (!_configuration.Led.UseRainbow) return;
|
||||
|
||||
SetLed((uint)packedRgb);
|
||||
}
|
||||
|
||||
public void SetConfiguration(InputConfig configuration)
|
||||
{
|
||||
lock (_userMappingLock)
|
||||
@ -237,10 +244,12 @@ namespace Ryujinx.Input.SDL2
|
||||
if (_configuration.Led.TurnOffLed)
|
||||
(this as IGamepad).ClearLed();
|
||||
else if (_configuration.Led.UseRainbow)
|
||||
Rainbow.RainbowColorUpdated += clr => SetLed((uint)clr);
|
||||
Rainbow.RainbowColorUpdated += RainbowColorChanged;
|
||||
else
|
||||
SetLed(_configuration.Led.LedColor);
|
||||
|
||||
if (!_configuration.Led.UseRainbow)
|
||||
Rainbow.RainbowColorUpdated -= RainbowColorChanged;
|
||||
}
|
||||
|
||||
_buttonsUserMapping.Clear();
|
||||
|
Loading…
x
Reference in New Issue
Block a user