From a323bd85ab877437930b5e3e9feef8465d2f35a5 Mon Sep 17 00:00:00 2001 From: IceStormNG Date: Thu, 27 Jul 2023 10:19:17 +0200 Subject: [PATCH] Mouse refreshes battery again during "ReadSensors". But it does that nonblocking and event driven. --- app/Peripherals/PeripheralsProvider.cs | 15 +++++++++++++++ app/Settings.cs | 1 + 2 files changed, 16 insertions(+) diff --git a/app/Peripherals/PeripheralsProvider.cs b/app/Peripherals/PeripheralsProvider.cs index 2673e57f..23b91e16 100644 --- a/app/Peripherals/PeripheralsProvider.cs +++ b/app/Peripherals/PeripheralsProvider.cs @@ -63,6 +63,9 @@ namespace GHelper.Peripherals { lock (_LOCK) { + am.Disconnect -= Mouse_Disconnect; + am.MouseReadyChanged -= MouseReadyChanged; + am.BatteryUpdated -= BatteryUpdated; ConnectedMice.Remove(am); } if (DeviceChanged is not null) @@ -110,6 +113,8 @@ namespace GHelper.Peripherals am.Disconnect += Mouse_Disconnect; + am.MouseReadyChanged += MouseReadyChanged; + am.BatteryUpdated += BatteryUpdated; if (DeviceChanged is not null) { DeviceChanged(am, EventArgs.Empty); @@ -117,6 +122,16 @@ namespace GHelper.Peripherals UpdateSettingsView(); } + private static void BatteryUpdated(object? sender, EventArgs e) + { + UpdateSettingsView(); + } + + private static void MouseReadyChanged(object? sender, EventArgs e) + { + UpdateSettingsView(); + } + private static void Mouse_Disconnect(object? sender, EventArgs e) { if (sender is null) diff --git a/app/Settings.cs b/app/Settings.cs index 2ffd86be..bf05341c 100644 --- a/app/Settings.cs +++ b/app/Settings.cs @@ -814,6 +814,7 @@ namespace GHelper string battery = ""; HardwareControl.ReadSensors(); + Task.Run((Action)PeripheralsProvider.RefreshBatteryForAllDevices); if (HardwareControl.cpuTemp > 0) cpuTemp = ": " + Math.Round((decimal)HardwareControl.cpuTemp).ToString() + "°C";