using MainShell.Hardware; using MainShell.Models; using Stylet; using System; using System.Collections.Generic; using System.ComponentModel; using System.Diagnostics; using System.Linq; using System.Text; using System.Threading.Tasks; namespace MainShell.ToolBox.ViewModel { public class UpCamLightViewModel : PropertyChangedBase { private UpCamLightConfig _upCamLightConfig = new UpCamLightConfig(); public UpCamLightConfig UpCamLightConfig { get { return _upCamLightConfig; } set { SetAndNotify(ref _upCamLightConfig, value); } } private readonly HardwareManager _hardwareManager; public UpCamLightViewModel(HardwareManager hardwareManager) { this._hardwareManager = hardwareManager; _upCamLightConfig.PropertyChanged -= UpCamLightConfig_PropertyChanged; _upCamLightConfig.PropertyChanged += UpCamLightConfig_PropertyChanged; } private void UpCamLightConfig_PropertyChanged(object sender, PropertyChangedEventArgs e) { if (e.PropertyName == nameof(UpCamLightConfig.RingBlueLight)) { Debug.WriteLine("RingBlueLight changed to: " + UpCamLightConfig.RingBlueLight); _hardwareManager.Up_RingBlueLight.SetIntensity(UpCamLightConfig.RingBlueLight); } else if (e.PropertyName == nameof(UpCamLightConfig.RingRedLight)) { _hardwareManager.Up_RingRedLight.SetIntensity(UpCamLightConfig.RingRedLight); } else if (e.PropertyName == nameof(UpCamLightConfig.PointBlueLight)) { _hardwareManager.Up_PointBlueLight.SetIntensity(UpCamLightConfig.PointBlueLight); } else if (e.PropertyName == nameof(UpCamLightConfig.PointRedLight)) { _hardwareManager.Up_PointRedLight.SetIntensity(UpCamLightConfig.PointRedLight); } else if (e.PropertyName == nameof(UpCamLightConfig.RedBackLight)) { _hardwareManager.Up_RedBackLight.SetIntensity(UpCamLightConfig.RedBackLight); } } } }