GPU Aura Mode

This commit is contained in:
Serge
2023-08-14 17:19:22 +02:00
parent 8f8be7a13e
commit 6b3db926fc
3 changed files with 107 additions and 103 deletions

View File

@@ -2,6 +2,7 @@
using GHelper.Helpers; using GHelper.Helpers;
using HidLibrary; using HidLibrary;
using NAudio.Gui; using NAudio.Gui;
using System.Diagnostics;
using System.Drawing; using System.Drawing;
using System.Text; using System.Text;
@@ -389,63 +390,58 @@ namespace GHelper
public static void ApplyAuraPower() 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)
{ {
device.OpenDevice();
AuraPower flags = new(); if (device.ReadFeatureData(out byte[] data, AURA_HID_ID))
// 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(); device.WriteFeatureData(msg);
if (device.ReadFeatureData(out byte[] data, AURA_HID_ID)) Logger.WriteLine("USB-KB " + device.Attributes.ProductHexId + ":" + BitConverter.ToString(msg));
{
device.WriteFeatureData(msg);
Logger.WriteLine("USB-KB " + device.Attributes.ProductHexId + ":" + BitConverter.ToString(msg));
}
device.CloseDevice();
} }
device.CloseDevice();
}
if (isTuf) if (isTuf)
Program.acpi.TUFKeyboardPower( Program.acpi.TUFKeyboardPower(
flags.AwakeKeyb, flags.AwakeKeyb,
flags.BootKeyb, flags.BootKeyb,
flags.SleepKeyb, flags.SleepKeyb,
flags.ShutdownKeyb); flags.ShutdownKeyb);
});
} }
@@ -533,6 +529,7 @@ namespace GHelper
else else
{ {
Debug.WriteLine(color.ToString());
auraDevice.Write(AuraMessage(0, color, color, 0)); auraDevice.Write(AuraMessage(0, color, color, 0));
auraDevice.Write(MESSAGE_SET); auraDevice.Write(MESSAGE_SET);
} }
@@ -544,7 +541,9 @@ namespace GHelper
{ {
if (AppConfig.Get("aura_mode") != GPUMODE) return; if (AppConfig.Get("aura_mode") != GPUMODE) return;
switch (GPUModeControl.GpuMode) Logger.WriteLine(GPUModeControl.gpuMode.ToString());
switch (GPUModeControl.gpuMode)
{ {
case AsusACPI.GPUModeUltimate: case AsusACPI.GPUModeUltimate:
ApplyColor(Color.Red, true); ApplyColor(Color.Red, true);
@@ -582,46 +581,39 @@ namespace GHelper
return; return;
} }
int _speed;
Task.Run(async () => switch (Speed)
{ {
case 1:
_speed = 0xeb;
break;
case 2:
_speed = 0xf5;
break;
default:
_speed = 0xe1;
break;
}
byte[] msg;
var devices = GetHidDevices(deviceIds);
int _speed; foreach (HidDevice device in devices)
{
switch (Speed) device.OpenDevice();
if (device.ReadFeatureData(out byte[] data, AURA_HID_ID))
{ {
case 1: msg = AuraMessage(Mode, Color1, Color2, _speed, isSingleColor);
_speed = 0xeb; device.WriteFeatureData(msg);
break; device.WriteFeatureData(MESSAGE_APPLY);
case 2: device.WriteFeatureData(MESSAGE_SET);
_speed = 0xf5; Logger.WriteLine("USB-KB " + device.Attributes.Version + device.Description + device.DevicePath + ":" + BitConverter.ToString(msg));
break;
default:
_speed = 0xe1;
break;
} }
device.CloseDevice();
}
byte[] msg; if (isTuf)
var devices = GetHidDevices(deviceIds); Program.acpi.TUFKeyboardRGB(Mode, Color1, _speed);
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);
});
} }

View File

@@ -10,7 +10,7 @@ namespace GHelper.Gpu
SettingsForm settings; SettingsForm settings;
ScreenControl screenControl = new ScreenControl(); ScreenControl screenControl = new ScreenControl();
public static int GpuMode; public static int gpuMode;
public GPUModeControl(SettingsForm settingsForm) public GPUModeControl(SettingsForm settingsForm)
{ {
@@ -27,14 +27,14 @@ namespace GHelper.Gpu
if (mux == 0) if (mux == 0)
{ {
GpuMode = AsusACPI.GPUModeUltimate; gpuMode = AsusACPI.GPUModeUltimate;
} }
else else
{ {
if (eco == 1) if (eco == 1)
GpuMode = AsusACPI.GPUModeEco; gpuMode = AsusACPI.GPUModeEco;
else else
GpuMode = AsusACPI.GPUModeStandard; gpuMode = AsusACPI.GPUModeStandard;
// Ultimate mode not supported // Ultimate mode not supported
if (mux != 1) settings.HideUltimateMode(); if (mux != 1) settings.HideUltimateMode();
@@ -42,10 +42,13 @@ namespace GHelper.Gpu
if (eco < 0 && mux < 0) settings.HideGPUModes(); if (eco < 0 && mux < 0) settings.HideGPUModes();
} }
AppConfig.Set("gpu_mode", GpuMode); AppConfig.Set("gpu_mode", gpuMode);
InitXGM(); InitXGM();
settings.VisualiseGPUMode(GpuMode); settings.VisualiseGPUMode(gpuMode);
AsusUSB.ApplyGPUColor();
} }

View File

@@ -551,8 +551,7 @@ namespace GHelper
if (colorDlg.ShowDialog() == DialogResult.OK) if (colorDlg.ShowDialog() == DialogResult.OK)
{ {
AppConfig.Set("aura_color2", colorDlg.Color.ToArgb()); AppConfig.Set("aura_color2", colorDlg.Color.ToArgb());
AsusUSB.ApplyAura(); SetAura();
VisualiseAura();
} }
} }
@@ -625,8 +624,7 @@ namespace GHelper
if (colorDlg.ShowDialog() == DialogResult.OK) if (colorDlg.ShowDialog() == DialogResult.OK)
{ {
AppConfig.Set("aura_color", colorDlg.Color.ToArgb()); AppConfig.Set("aura_color", colorDlg.Color.ToArgb());
AsusUSB.ApplyAura(); SetAura();
VisualiseAura();
} }
} }
@@ -659,11 +657,23 @@ namespace GHelper
} }
public void SetAura()
{
Task.Run(() =>
{
AsusUSB.ApplyAura();
VisualiseAura();
});
}
public void VisualiseAura() public void VisualiseAura()
{ {
pictureColor.BackColor = AsusUSB.Color1; Invoke(delegate
pictureColor2.BackColor = AsusUSB.Color2; {
pictureColor2.Visible = AsusUSB.HasSecondColor(); pictureColor.BackColor = AsusUSB.Color1;
pictureColor2.BackColor = AsusUSB.Color2;
pictureColor2.Visible = AsusUSB.HasSecondColor();
});
} }
public void InitMatrix() public void InitMatrix()
@@ -695,8 +705,7 @@ namespace GHelper
private void ComboKeyboard_SelectedValueChanged(object? sender, EventArgs e) private void ComboKeyboard_SelectedValueChanged(object? sender, EventArgs e)
{ {
AppConfig.Set("aura_mode", (int)comboKeyboard.SelectedValue); AppConfig.Set("aura_mode", (int)comboKeyboard.SelectedValue);
AsusUSB.ApplyAura(); SetAura();
VisualiseAura();
} }