From 5134aaca9d471d9b7f6c2d9d1267f8f0a731b6fa Mon Sep 17 00:00:00 2001 From: Serge <5920850+seerge@users.noreply.github.com> Date: Mon, 22 May 2023 11:18:57 +0200 Subject: [PATCH] Native brightness OSD --- app/AnimeMatrix/AniMatrix.cs | 7 +++- app/AsusUSB.cs | 54 +++++++++++++++++------------- app/HardwareControl.cs | 2 +- app/InputDispatcher.cs | 12 ++++--- app/Program.cs | 4 +-- app/Properties/Strings.Designer.cs | 2 +- app/Properties/Strings.resx | 2 +- app/Properties/Strings.uk.resx | 2 +- app/Settings.cs | 1 + 9 files changed, 50 insertions(+), 36 deletions(-) diff --git a/app/AnimeMatrix/AniMatrix.cs b/app/AnimeMatrix/AniMatrix.cs index 95a8a86c..ea511ebb 100644 --- a/app/AnimeMatrix/AniMatrix.cs +++ b/app/AnimeMatrix/AniMatrix.cs @@ -26,7 +26,7 @@ namespace GHelper.AnimeMatrix try { mat = new AnimeMatrixDevice(); - mat.WakeUp(); + Task.Run(mat.WakeUp); matrixTimer = new System.Timers.Timer(100); matrixTimer.Elapsed += MatrixTimer_Elapsed; } @@ -123,6 +123,11 @@ namespace GHelper.AnimeMatrix } + public void Dispose() + { + StopMatrixAudio(); + } + void StopMatrixAudio() { if (AudioDevice is not null) diff --git a/app/AsusUSB.cs b/app/AsusUSB.cs index a36fa7a0..bff33656 100644 --- a/app/AsusUSB.cs +++ b/app/AsusUSB.cs @@ -193,10 +193,11 @@ namespace GHelper return null; } - public static void TouchpadToggle() + public static bool TouchpadToggle() { HidDevice? input = GetInputDevice(); - if (input != null) input.WriteFeatureData(new byte[] { HID_ID,0xf4,0x6b}); + if (input != null) return input.WriteFeatureData(new byte[] { HID_ID,0xf4,0x6b}); + return false; } public static void RunListener(Action KeyHandler) @@ -249,36 +250,41 @@ namespace GHelper public static void Init() { - - var devices = GetHidDevices(deviceIds); - foreach (HidDevice device in devices) + Task.Run(() => { - device.OpenDevice(); - device.WriteFeatureData(LED_INIT1); - device.WriteFeatureData(LED_INIT2); - device.WriteFeatureData(LED_INIT3); - device.WriteFeatureData(LED_INIT4); - device.WriteFeatureData(LED_INIT5); - device.CloseDevice(); - } + var devices = GetHidDevices(deviceIds); + foreach (HidDevice device in devices) + { + device.OpenDevice(); + device.WriteFeatureData(LED_INIT1); + device.WriteFeatureData(LED_INIT2); + device.WriteFeatureData(LED_INIT3); + device.WriteFeatureData(LED_INIT4); + device.WriteFeatureData(LED_INIT5); + device.CloseDevice(); + } + }); } public static void ApplyBrightness(int brightness) { - byte[] msg = { 0x5d, 0xba, 0xc5, 0xc4, (byte)brightness }; - - var devices = GetHidDevices(deviceIds); - foreach (HidDevice device in devices) + Task.Run(() => { - device.OpenDevice(); - device.WriteFeatureData(msg); - Logger.WriteLine("USB-KB " + device.Capabilities.FeatureReportByteLength + ":" + BitConverter.ToString(msg)); - device.CloseDevice(); - } + byte[] msg = { 0x5d, 0xba, 0xc5, 0xc4, (byte)brightness }; - if (AppConfig.ContainsModel("TUF")) - Program.acpi.TUFKeyboardBrightness(brightness); + var devices = GetHidDevices(deviceIds); + foreach (HidDevice device in devices) + { + device.OpenDevice(); + device.WriteFeatureData(msg); + Logger.WriteLine("USB-KB " + device.Capabilities.FeatureReportByteLength + ":" + BitConverter.ToString(msg)); + device.CloseDevice(); + } + + if (AppConfig.ContainsModel("TUF")) + Program.acpi.TUFKeyboardBrightness(brightness); + }); } diff --git a/app/HardwareControl.cs b/app/HardwareControl.cs index bd55eda0..8ac3e237 100644 --- a/app/HardwareControl.cs +++ b/app/HardwareControl.cs @@ -41,7 +41,7 @@ public static class HardwareControl if (fan > fanMax && fan < 110) SetFanMax(fan); if (AppConfig.getConfig("fan_rpm") == 1) - return GHelper.Properties.Strings.FanSpeed + (fan * 100).ToString() + GHelper.Properties.Strings.RPM; + return GHelper.Properties.Strings.FanSpeed + (fan * 100).ToString() + "RPM"; else return GHelper.Properties.Strings.FanSpeed + Math.Min(Math.Round((float)fan / fanMax * 100), 100).ToString() + "%"; // relatively to 6000 rpm } diff --git a/app/InputDispatcher.cs b/app/InputDispatcher.cs index 558fb4e9..98e0648d 100644 --- a/app/InputDispatcher.cs +++ b/app/InputDispatcher.cs @@ -213,16 +213,18 @@ namespace GHelper Program.settingsForm.BeginInvoke(Program.settingsForm.RunToast, backlightNames[backlight], ToastIcon.BacklightUp); break; case 16: // FN+F7 - brightness = ScreenBrightness.Adjust(-10); - Program.settingsForm.BeginInvoke(Program.settingsForm.RunToast, brightness + "%", ToastIcon.BrightnessDown); + Program.acpi.DeviceSet(AsusACPI.UniversalControl, 0x10, "Brightness"); + //brightness = ScreenBrightness.Adjust(-10); + //Program.settingsForm.BeginInvoke(Program.settingsForm.RunToast, brightness + "%", ToastIcon.BrightnessDown); break; case 32: // FN+F8 - brightness = ScreenBrightness.Adjust(+10); - Program.settingsForm.BeginInvoke(Program.settingsForm.RunToast, brightness + "%", ToastIcon.BrightnessUp); + Program.acpi.DeviceSet(AsusACPI.UniversalControl, 0x20, "Brightness"); + //brightness = ScreenBrightness.Adjust(+10); + //Program.settingsForm.BeginInvoke(Program.settingsForm.RunToast, brightness + "%", ToastIcon.BrightnessUp); break; case 107: // FN+F10 bool touchpadState = GetTouchpadState(); - AsusUSB.TouchpadToggle(); + if (!AsusUSB.TouchpadToggle()) Program.acpi.DeviceSet(AsusACPI.UniversalControl, 0x6B, "Touchpad"); Program.settingsForm.BeginInvoke(Program.settingsForm.RunToast, touchpadState ? "Off" : "On", ToastIcon.Touchpad); break; case 108: // FN+F11 diff --git a/app/Program.cs b/app/Program.cs index 570b9ea4..f74dfb01 100644 --- a/app/Program.cs +++ b/app/Program.cs @@ -44,7 +44,7 @@ namespace GHelper Thread.CurrentThread.CurrentUICulture = CultureInfo.CurrentUICulture; Debug.WriteLine(CultureInfo.CurrentUICulture); - //Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture("es"); + //Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture("uk"); CheckProcesses(); @@ -65,7 +65,7 @@ namespace GHelper } Logger.WriteLine("------------"); - Logger.WriteLine("App launched: " + AppConfig.GetModel() + " :" + Assembly.GetExecutingAssembly().GetName().Version.ToString() + (IsUserAdministrator() ? "A" : "")); + Logger.WriteLine("App launched: " + AppConfig.GetModel() + " :" + Assembly.GetExecutingAssembly().GetName().Version.ToString() + CultureInfo.CurrentUICulture + (IsUserAdministrator() ? "A" : "")); Application.EnableVisualStyles(); diff --git a/app/Properties/Strings.Designer.cs b/app/Properties/Strings.Designer.cs index dfa06e71..10bc4f80 100644 --- a/app/Properties/Strings.Designer.cs +++ b/app/Properties/Strings.Designer.cs @@ -169,7 +169,7 @@ namespace GHelper.Properties { } /// - /// Looks up a localized string similar to Auto adjust Windows Power Mode. + /// Looks up a localized string similar to Auto adjust Windows Power Modes. /// internal static string ApplyWindowsPowerPlan { get { diff --git a/app/Properties/Strings.resx b/app/Properties/Strings.resx index b541851a..eb95ab75 100644 --- a/app/Properties/Strings.resx +++ b/app/Properties/Strings.resx @@ -154,7 +154,7 @@ Apply Power Limits - Auto adjust Windows Power Mode + Auto adjust Windows Power Modes Breathe diff --git a/app/Properties/Strings.uk.resx b/app/Properties/Strings.uk.resx index 35fc4d6f..a42c7f2f 100644 --- a/app/Properties/Strings.uk.resx +++ b/app/Properties/Strings.uk.resx @@ -154,7 +154,7 @@ Застосувати потужність - Автоматично застосовувати Windows Power Mode + Автоматично застосовувати Windows Power Modes Дихання diff --git a/app/Settings.cs b/app/Settings.cs index 2edb3d95..596d6b31 100644 --- a/app/Settings.cs +++ b/app/Settings.cs @@ -889,6 +889,7 @@ namespace GHelper private void ButtonQuit_Click(object? sender, EventArgs e) { + matrix.Dispose(); Close(); Program.trayIcon.Visible = false; Application.Exit();