Files
GSS2Rework/GSS2.UI.Core/ViewModels/IlluminatorControllerViewModel.cs
T
amkovkov 821144a691 fix: typos
TOO many typos
2026-03-11 12:46:21 +03:00

75 lines
2.2 KiB
C#

using Microsoft.Extensions.Logging;
using CommunityToolkit.Mvvm.ComponentModel;
using Avalonia.Layout;
using GSS2.Core.Hardware;
namespace GSS2.UI.Core.ViewModels;
public partial class IlluminatorControllerViewModel : ViewModelBase
{
private readonly ILogger<IlluminatorControllerViewModel> _logger;
private readonly IlluminatorService _illuminatorService;
private bool _whiteIntensityChanging = false;
private bool _uv365IntensityChanging = false;
private bool _uv254IntensityChanging = false;
[ObservableProperty] private double _whiteIntensity;
[ObservableProperty] private double _uv365Intensity;
[ObservableProperty] private double _uv254Intensity;
[ObservableProperty] private bool _enabled;
[ObservableProperty] Orientation _orientation;
public IlluminatorControllerViewModel(ILogger<IlluminatorControllerViewModel> logger, IlluminatorService illuminatorService)
{
_logger = logger;
_logger.LogInformation("Initialization");
_illuminatorService = illuminatorService;
WhiteIntensity = 0;
Uv365Intensity = 0;
Uv254Intensity = 0;
Orientation = Orientation.Horizontal;
Enabled = false;
_logger.LogInformation("Initialized");
}
partial void OnWhiteIntensityChanged(double value)
{
if (_whiteIntensityChanging)
return;
_whiteIntensityChanging = true;
_illuminatorService.SetIntensity(white: value);
_whiteIntensityChanging = false;
}
partial void OnUv365IntensityChanged(double value)
{
if (_uv365IntensityChanging)
return;
_uv365IntensityChanging = true;
_illuminatorService.SetIntensity(uv365: value);
_uv365IntensityChanging = false;
}
partial void OnUv254IntensityChanged(double value)
{
if (_uv254IntensityChanging)
return;
_uv254IntensityChanging = true;
_illuminatorService.SetIntensity(uv254: value);
_uv254IntensityChanging = false;
}
partial void OnEnabledChanged(bool value)
{
if (value)
_illuminatorService.TurnOn();
else
_illuminatorService.TurnOff();
}
}