From 6b3db926fc3f984ebccd88fc1cb872a5795044c6 Mon Sep 17 00:00:00 2001 From: Serge <5920850+seerge@users.noreply.github.com> Date: Mon, 14 Aug 2023 17:19:22 +0200 Subject: [PATCH] GPU Aura Mode --- app/AsusUSB.cs | 168 ++++++++++++++++++-------------------- app/Gpu/GPUModeControl.cs | 15 ++-- app/Settings.cs | 27 ++++-- 3 files changed, 107 insertions(+), 103 deletions(-) diff --git a/app/AsusUSB.cs b/app/AsusUSB.cs index 055119c0..b090a6d1 100644 --- a/app/AsusUSB.cs +++ b/app/AsusUSB.cs @@ -2,6 +2,7 @@ using GHelper.Helpers; using HidLibrary; using NAudio.Gui; +using System.Diagnostics; using System.Drawing; using System.Text; @@ -389,63 +390,58 @@ namespace GHelper public static void ApplyAuraPower() { - Task.Run(async () => + AuraPower flags = new(); + + // Keyboard + flags.AwakeKeyb = AppConfig.IsNotFalse("keyboard_awake"); + flags.BootKeyb = AppConfig.IsNotFalse("keyboard_boot"); + flags.SleepKeyb = AppConfig.IsNotFalse("keyboard_sleep"); + flags.ShutdownKeyb = AppConfig.IsNotFalse("keyboard_shutdown"); + + // Logo + flags.AwakeLogo = AppConfig.IsNotFalse("keyboard_awake_logo"); + flags.BootLogo = AppConfig.IsNotFalse("keyboard_boot_logo"); + flags.SleepLogo = AppConfig.IsNotFalse("keyboard_sleep_logo"); + flags.ShutdownLogo = AppConfig.IsNotFalse("keyboard_shutdown_logo"); + + // Lightbar + flags.AwakeBar = AppConfig.IsNotFalse("keyboard_awake_bar"); + flags.BootBar = AppConfig.IsNotFalse("keyboard_boot_bar"); + flags.SleepBar = AppConfig.IsNotFalse("keyboard_sleep_bar"); + flags.ShutdownBar = AppConfig.IsNotFalse("keyboard_shutdown_bar"); + + // Lid + flags.AwakeLid = AppConfig.IsNotFalse("keyboard_awake_lid"); + flags.BootLid = AppConfig.IsNotFalse("keyboard_boot_lid"); + flags.SleepLid = AppConfig.IsNotFalse("keyboard_sleep_lid"); + flags.ShutdownLid = AppConfig.IsNotFalse("keyboard_shutdown_lid"); + + // Rear Bar + flags.AwakeRear = AppConfig.IsNotFalse("keyboard_awake_lid"); + flags.BootRear = AppConfig.IsNotFalse("keyboard_boot_lid"); + flags.SleepRear = AppConfig.IsNotFalse("keyboard_sleep_lid"); + flags.ShutdownRear = AppConfig.IsNotFalse("keyboard_shutdown_lid"); + + var devices = GetHidDevices(deviceIds); + byte[] msg = AuraPowerMessage(flags); + + foreach (HidDevice device in devices) { - - AuraPower flags = new(); - - // Keyboard - flags.AwakeKeyb = AppConfig.IsNotFalse("keyboard_awake"); - flags.BootKeyb = AppConfig.IsNotFalse("keyboard_boot"); - flags.SleepKeyb = AppConfig.IsNotFalse("keyboard_sleep"); - flags.ShutdownKeyb = AppConfig.IsNotFalse("keyboard_shutdown"); - - // Logo - flags.AwakeLogo = AppConfig.IsNotFalse("keyboard_awake_logo"); - flags.BootLogo = AppConfig.IsNotFalse("keyboard_boot_logo"); - flags.SleepLogo = AppConfig.IsNotFalse("keyboard_sleep_logo"); - flags.ShutdownLogo = AppConfig.IsNotFalse("keyboard_shutdown_logo"); - - // Lightbar - flags.AwakeBar = AppConfig.IsNotFalse("keyboard_awake_bar"); - flags.BootBar = AppConfig.IsNotFalse("keyboard_boot_bar"); - flags.SleepBar = AppConfig.IsNotFalse("keyboard_sleep_bar"); - flags.ShutdownBar = AppConfig.IsNotFalse("keyboard_shutdown_bar"); - - // Lid - flags.AwakeLid = AppConfig.IsNotFalse("keyboard_awake_lid"); - flags.BootLid = AppConfig.IsNotFalse("keyboard_boot_lid"); - flags.SleepLid = AppConfig.IsNotFalse("keyboard_sleep_lid"); - flags.ShutdownLid = AppConfig.IsNotFalse("keyboard_shutdown_lid"); - - // Rear Bar - flags.AwakeRear = AppConfig.IsNotFalse("keyboard_awake_lid"); - flags.BootRear = AppConfig.IsNotFalse("keyboard_boot_lid"); - flags.SleepRear = AppConfig.IsNotFalse("keyboard_sleep_lid"); - flags.ShutdownRear = AppConfig.IsNotFalse("keyboard_shutdown_lid"); - - var devices = GetHidDevices(deviceIds); - byte[] msg = AuraPowerMessage(flags); - - foreach (HidDevice device in devices) + device.OpenDevice(); + if (device.ReadFeatureData(out byte[] data, AURA_HID_ID)) { - device.OpenDevice(); - if (device.ReadFeatureData(out byte[] data, AURA_HID_ID)) - { - device.WriteFeatureData(msg); - Logger.WriteLine("USB-KB " + device.Attributes.ProductHexId + ":" + BitConverter.ToString(msg)); - } - device.CloseDevice(); + device.WriteFeatureData(msg); + Logger.WriteLine("USB-KB " + device.Attributes.ProductHexId + ":" + BitConverter.ToString(msg)); } + device.CloseDevice(); + } - if (isTuf) - Program.acpi.TUFKeyboardPower( - flags.AwakeKeyb, - flags.BootKeyb, - flags.SleepKeyb, - flags.ShutdownKeyb); - - }); + if (isTuf) + Program.acpi.TUFKeyboardPower( + flags.AwakeKeyb, + flags.BootKeyb, + flags.SleepKeyb, + flags.ShutdownKeyb); } @@ -533,6 +529,7 @@ namespace GHelper else { + Debug.WriteLine(color.ToString()); auraDevice.Write(AuraMessage(0, color, color, 0)); auraDevice.Write(MESSAGE_SET); } @@ -544,7 +541,9 @@ namespace GHelper { if (AppConfig.Get("aura_mode") != GPUMODE) return; - switch (GPUModeControl.GpuMode) + Logger.WriteLine(GPUModeControl.gpuMode.ToString()); + + switch (GPUModeControl.gpuMode) { case AsusACPI.GPUModeUltimate: ApplyColor(Color.Red, true); @@ -582,46 +581,39 @@ namespace GHelper return; } - - Task.Run(async () => + int _speed; + switch (Speed) { + case 1: + _speed = 0xeb; + break; + case 2: + _speed = 0xf5; + break; + default: + _speed = 0xe1; + break; + } + byte[] msg; + var devices = GetHidDevices(deviceIds); - int _speed; - - switch (Speed) + foreach (HidDevice device in devices) + { + device.OpenDevice(); + if (device.ReadFeatureData(out byte[] data, AURA_HID_ID)) { - case 1: - _speed = 0xeb; - break; - case 2: - _speed = 0xf5; - break; - default: - _speed = 0xe1; - break; + msg = AuraMessage(Mode, Color1, Color2, _speed, isSingleColor); + device.WriteFeatureData(msg); + device.WriteFeatureData(MESSAGE_APPLY); + device.WriteFeatureData(MESSAGE_SET); + Logger.WriteLine("USB-KB " + device.Attributes.Version + device.Description + device.DevicePath + ":" + BitConverter.ToString(msg)); } + device.CloseDevice(); + } - byte[] msg; - var devices = GetHidDevices(deviceIds); - - foreach (HidDevice device in devices) - { - device.OpenDevice(); - if (device.ReadFeatureData(out byte[] data, AURA_HID_ID)) - { - msg = AuraMessage(Mode, Color1, Color2, _speed, isSingleColor); - device.WriteFeatureData(msg); - device.WriteFeatureData(MESSAGE_APPLY); - device.WriteFeatureData(MESSAGE_SET); - Logger.WriteLine("USB-KB " + device.Attributes.Version + device.Description + device.DevicePath + ":" + BitConverter.ToString(msg)); - } - device.CloseDevice(); - } - - if (isTuf) - Program.acpi.TUFKeyboardRGB(Mode, Color1, _speed); - }); + if (isTuf) + Program.acpi.TUFKeyboardRGB(Mode, Color1, _speed); } diff --git a/app/Gpu/GPUModeControl.cs b/app/Gpu/GPUModeControl.cs index 8ec42adb..95333314 100644 --- a/app/Gpu/GPUModeControl.cs +++ b/app/Gpu/GPUModeControl.cs @@ -10,7 +10,7 @@ namespace GHelper.Gpu SettingsForm settings; ScreenControl screenControl = new ScreenControl(); - public static int GpuMode; + public static int gpuMode; public GPUModeControl(SettingsForm settingsForm) { @@ -27,14 +27,14 @@ namespace GHelper.Gpu if (mux == 0) { - GpuMode = AsusACPI.GPUModeUltimate; + gpuMode = AsusACPI.GPUModeUltimate; } else { if (eco == 1) - GpuMode = AsusACPI.GPUModeEco; + gpuMode = AsusACPI.GPUModeEco; else - GpuMode = AsusACPI.GPUModeStandard; + gpuMode = AsusACPI.GPUModeStandard; // Ultimate mode not supported if (mux != 1) settings.HideUltimateMode(); @@ -42,10 +42,13 @@ namespace GHelper.Gpu if (eco < 0 && mux < 0) settings.HideGPUModes(); } - AppConfig.Set("gpu_mode", GpuMode); + AppConfig.Set("gpu_mode", gpuMode); InitXGM(); - settings.VisualiseGPUMode(GpuMode); + settings.VisualiseGPUMode(gpuMode); + + AsusUSB.ApplyGPUColor(); + } diff --git a/app/Settings.cs b/app/Settings.cs index d24e1300..d320d708 100644 --- a/app/Settings.cs +++ b/app/Settings.cs @@ -551,8 +551,7 @@ namespace GHelper if (colorDlg.ShowDialog() == DialogResult.OK) { AppConfig.Set("aura_color2", colorDlg.Color.ToArgb()); - AsusUSB.ApplyAura(); - VisualiseAura(); + SetAura(); } } @@ -625,8 +624,7 @@ namespace GHelper if (colorDlg.ShowDialog() == DialogResult.OK) { AppConfig.Set("aura_color", colorDlg.Color.ToArgb()); - AsusUSB.ApplyAura(); - VisualiseAura(); + SetAura(); } } @@ -659,11 +657,23 @@ namespace GHelper } + public void SetAura() + { + Task.Run(() => + { + AsusUSB.ApplyAura(); + VisualiseAura(); + }); + } + public void VisualiseAura() { - pictureColor.BackColor = AsusUSB.Color1; - pictureColor2.BackColor = AsusUSB.Color2; - pictureColor2.Visible = AsusUSB.HasSecondColor(); + Invoke(delegate + { + pictureColor.BackColor = AsusUSB.Color1; + pictureColor2.BackColor = AsusUSB.Color2; + pictureColor2.Visible = AsusUSB.HasSecondColor(); + }); } public void InitMatrix() @@ -695,8 +705,7 @@ namespace GHelper private void ComboKeyboard_SelectedValueChanged(object? sender, EventArgs e) { AppConfig.Set("aura_mode", (int)comboKeyboard.SelectedValue); - AsusUSB.ApplyAura(); - VisualiseAura(); + SetAura(); }