| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- using Avalonia.Media;
- using CommunityToolkit.Mvvm.ComponentModel;
- using CommunityToolkit.Mvvm.Input;
- using Gommon;
- using Humanizer;
- using Ryujinx.Ava.UI.Helpers;
- using Ryujinx.Ava.Utilities.Configuration;
- using System;
- using System.Globalization;
- using System.Linq;
- namespace Ryujinx.Ava.UI.ViewModels.Input
- {
- public partial class LedInputViewModel : BaseModel
- {
- public required InputViewModel ParentModel { get; init; }
-
- public RelayCommand LedDisabledChanged => Commands.Create(() =>
- {
- if (!EnableLedChanging) return;
- if (TurnOffLed)
- ParentModel.SelectedGamepad.ClearLed();
- else
- ParentModel.SelectedGamepad.SetLed(LedColor.ToUInt32());
- });
-
- [ObservableProperty] private bool _enableLedChanging;
- [ObservableProperty] private Color _ledColor;
- public string RainbowSpeedText => RainbowSpeed.ToString(CultureInfo.CurrentCulture);
-
- public float RainbowSpeed
- {
- get => ConfigurationState.Instance.Hid.RainbowSpeed;
- set
- {
- ConfigurationState.Instance.Hid.RainbowSpeed.Value = value;
- OnPropertyChanged();
- OnPropertyChanged(nameof(RainbowSpeedText));
- }
- }
-
- public bool ShowLedColorPicker => !TurnOffLed && !UseRainbowLed;
-
- private bool _turnOffLed;
-
- public bool TurnOffLed
- {
- get => _turnOffLed;
- set
- {
- _turnOffLed = value;
- OnPropertyChanged();
- OnPropertyChanged(nameof(ShowLedColorPicker));
- }
- }
-
- private bool _useRainbowLed;
-
- public bool UseRainbowLed
- {
- get => _useRainbowLed;
- set
- {
- _useRainbowLed = value;
- OnPropertyChanged();
- OnPropertyChanged(nameof(ShowLedColorPicker));
- }
- }
- }
- }
|