FX707 fix, AuraPower refactoring

This commit is contained in:
Serge
2023-07-30 13:32:01 +02:00
parent 40859a06d0
commit 9cb2904632
2 changed files with 81 additions and 67 deletions

View File

@@ -5,47 +5,32 @@ using System.Text;
namespace GHelper namespace GHelper
{ {
[Flags]
public enum AuraDev19b6 : uint public class AuraPower
{ {
BootLogo = 1, public bool BootLogo;
BootKeyb = 1 << 1, public bool BootKeyb;
AwakeLogo = 1 << 2, public bool AwakeLogo;
AwakeKeyb = 1 << 3, public bool AwakeKeyb;
SleepLogo = 1 << 4, public bool SleepLogo;
SleepKeyb = 1 << 5, public bool SleepKeyb;
ShutdownLogo = 1 << 6, public bool ShutdownLogo;
ShutdownKeyb = 1 << 7, public bool ShutdownKeyb;
BootBar = 1 << (7 + 2), public bool BootBar;
AwakeBar = 1 << (7 + 3), public bool AwakeBar;
SleepBar = 1 << (7 + 4), public bool SleepBar;
ShutdownBar = 1 << (7 + 5), public bool ShutdownBar;
BootLid = 1 << (15 + 1), public bool BootLid;
AwakeLid = 1 << (15 + 2), public bool AwakeLid;
SleepLid = 1 << (15 + 3), public bool SleepLid;
ShutdownLid = 1 << (15 + 4), public bool ShutdownLid;
BootRear = 1 << (23 + 1),
AwakeRear = 1 << (23 + 2),
SleepRear = 1 << (23 + 3),
ShutdownRear = 1 << (23 + 4),
}
public static class AuraDev19b6Extensions
{
public static byte[] ToBytes(this AuraDev19b6[] controls)
{
uint a = 0;
foreach (var n in controls)
{
a |= (uint)n;
}
return new byte[] { 0x5d, 0xbd, 0x01, (byte)(a & 0xff), (byte)((a & 0xff00) >> 8), (byte)((a & 0xff0000) >> 16), (byte)((a & 0xff000000) >> 24) };
}
public bool BootRear;
public bool AwakeRear;
public bool SleepRear;
public bool ShutdownRear;
} }
@@ -81,6 +66,37 @@ namespace GHelper
static System.Timers.Timer timer = new System.Timers.Timer(2000); static System.Timers.Timer timer = new System.Timers.Timer(2000);
static HidDevice? auraDevice = null; static HidDevice? auraDevice = null;
static byte[] AuraPowerMessage(AuraPower flags)
{
byte keyb = 0, bar = 0, lid = 0, rear = 0;
if (flags.BootLogo) keyb |= 1 << 0;
if (flags.BootKeyb) keyb |= 1 << 1;
if (flags.AwakeLogo) keyb |= 1 << 2;
if (flags.AwakeKeyb) keyb |= 1 << 3;
if (flags.SleepLogo) keyb |= 1 << 4;
if (flags.SleepKeyb) keyb |= 1 << 5;
if (flags.ShutdownLogo) keyb |= 1 << 6;
if (flags.ShutdownKeyb) keyb |= 1 << 7;
if (flags.BootBar) bar |= 1 << 1;
if (flags.AwakeBar) bar |= 1 << 2;
if (flags.SleepBar) bar |= 1 << 3;
if (flags.ShutdownBar) bar |= 1 << 4;
if (flags.BootLid) lid |= 1 << 0;
if (flags.AwakeLid) lid |= 1 << 1;
if (flags.SleepLid) lid |= 1 << 2;
if (flags.ShutdownLid) lid |= 1 << 3;
if (flags.BootRear) rear |= 1 << 0;
if (flags.AwakeRear) rear |= 1 << 1;
if (flags.SleepRear) rear |= 1 << 2;
if (flags.ShutdownRear) rear |= 1 << 3;
return new byte[] { 0x5d, 0xbd, 0x01, keyb, bar, lid, rear, 0xFF };
}
static AsusUSB() static AsusUSB()
{ {
timer.Elapsed += Timer_Elapsed; timer.Elapsed += Timer_Elapsed;
@@ -349,41 +365,39 @@ namespace GHelper
Task.Run(async () => Task.Run(async () =>
{ {
List<AuraDev19b6> flags = new(); AuraPower flags = new();
// Keyboard // Keyboard
if (AppConfig.IsNotFalse("keyboard_awake")) flags.Add(AuraDev19b6.AwakeKeyb); flags.AwakeKeyb = AppConfig.IsNotFalse("keyboard_awake");
if (AppConfig.IsNotFalse("keyboard_boot")) flags.Add(AuraDev19b6.BootKeyb); flags.BootKeyb = AppConfig.IsNotFalse("keyboard_boot");
if (AppConfig.IsNotFalse("keyboard_sleep")) flags.Add(AuraDev19b6.SleepKeyb); flags.SleepKeyb = AppConfig.IsNotFalse("keyboard_sleep");
if (AppConfig.IsNotFalse("keyboard_shutdown")) flags.Add(AuraDev19b6.ShutdownKeyb); flags.ShutdownKeyb = AppConfig.IsNotFalse("keyboard_shutdown");
// Logo // Logo
if (AppConfig.IsNotFalse("keyboard_awake_logo")) flags.Add(AuraDev19b6.AwakeLogo); flags.AwakeLogo = AppConfig.IsNotFalse("keyboard_awake_logo");
if (AppConfig.IsNotFalse("keyboard_boot_logo")) flags.Add(AuraDev19b6.BootLogo); flags.BootLogo = AppConfig.IsNotFalse("keyboard_boot_logo");
if (AppConfig.IsNotFalse("keyboard_sleep_logo")) flags.Add(AuraDev19b6.SleepLogo); flags.SleepLogo = AppConfig.IsNotFalse("keyboard_sleep_logo");
if (AppConfig.IsNotFalse("keyboard_shutdown_logo")) flags.Add(AuraDev19b6.ShutdownLogo); flags.ShutdownLogo = AppConfig.IsNotFalse("keyboard_shutdown_logo");
// Lightbar // Lightbar
if (AppConfig.IsNotFalse("keyboard_awake_bar")) flags.Add(AuraDev19b6.AwakeBar); flags.AwakeBar = AppConfig.IsNotFalse("keyboard_awake_bar");
if (AppConfig.IsNotFalse("keyboard_boot_bar")) flags.Add(AuraDev19b6.BootBar); flags.BootBar = AppConfig.IsNotFalse("keyboard_boot_bar");
if (AppConfig.IsNotFalse("keyboard_sleep_bar")) flags.Add(AuraDev19b6.SleepBar); flags.SleepBar = AppConfig.IsNotFalse("keyboard_sleep_bar");
if (AppConfig.IsNotFalse("keyboard_shutdown_bar")) flags.Add(AuraDev19b6.ShutdownBar); flags.ShutdownBar = AppConfig.IsNotFalse("keyboard_shutdown_bar");
// Lid // Lid
if (AppConfig.IsNotFalse("keyboard_awake_lid")) flags.Add(AuraDev19b6.AwakeLid); flags.AwakeLid = AppConfig.IsNotFalse("keyboard_awake_lid");
if (AppConfig.IsNotFalse("keyboard_boot_lid")) flags.Add(AuraDev19b6.BootLid); flags.BootLid = AppConfig.IsNotFalse("keyboard_boot_lid");
if (AppConfig.IsNotFalse("keyboard_sleep_lid")) flags.Add(AuraDev19b6.SleepLid); flags.SleepLid = AppConfig.IsNotFalse("keyboard_sleep_lid");
if (AppConfig.IsNotFalse("keyboard_shutdown_lid")) flags.Add(AuraDev19b6.ShutdownLid); flags.ShutdownLid = AppConfig.IsNotFalse("keyboard_shutdown_lid");
if (AppConfig.IsNotFalse("keyboard_awake_lid")) flags.Add(AuraDev19b6.AwakeRear);
if (AppConfig.IsNotFalse("keyboard_boot_lid")) flags.Add(AuraDev19b6.BootRear);
if (AppConfig.IsNotFalse("keyboard_sleep_lid")) flags.Add(AuraDev19b6.SleepRear);
if (AppConfig.IsNotFalse("keyboard_shutdown_lid")) flags.Add(AuraDev19b6.ShutdownRear);
byte[] msg = AuraDev19b6Extensions.ToBytes(flags.ToArray());
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); var devices = GetHidDevices(deviceIds);
byte[] msg = AuraPowerMessage(flags);
foreach (HidDevice device in devices) foreach (HidDevice device in devices)
{ {
@@ -398,10 +412,10 @@ namespace GHelper
if (isTuf) if (isTuf)
Program.acpi.TUFKeyboardPower( Program.acpi.TUFKeyboardPower(
flags.Contains(AuraDev19b6.AwakeKeyb), flags.AwakeKeyb,
flags.Contains(AuraDev19b6.BootKeyb), flags.BootKeyb,
flags.Contains(AuraDev19b6.SleepKeyb), flags.SleepKeyb,
flags.Contains(AuraDev19b6.ShutdownKeyb)); flags.ShutdownKeyb);
}); });
@@ -458,7 +472,7 @@ namespace GHelper
//Logger.WriteLine(BitConverter.ToString(msg)); //Logger.WriteLine(BitConverter.ToString(msg));
if (init) if (init)
{ {
auraDevice.Write(AuraMessage(0,color,color, 0xe1)); auraDevice.Write(AuraMessage(0, color, color, 0xe1));
auraDevice.WriteFeatureData(MESSAGE_APPLY); auraDevice.WriteFeatureData(MESSAGE_APPLY);
auraDevice.WriteFeatureData(MESSAGE_SET); auraDevice.WriteFeatureData(MESSAGE_SET);
auraDevice.Write(new byte[] { AURA_HID_ID, 0xbc }); auraDevice.Write(new byte[] { AURA_HID_ID, 0xbc });

View File

@@ -143,7 +143,7 @@ namespace GHelper.Mode
} }
// force set PPTs for missbehaving bios on FX507/517 series // force set PPTs for missbehaving bios on FX507/517 series
if ((AppConfig.ContainsModel("FX507") || AppConfig.ContainsModel("FX517") || xgmFan) && !AppConfig.IsMode("auto_apply_power")) if ((AppConfig.ContainsModel("FX507") || AppConfig.ContainsModel("FX517") || AppConfig.ContainsModel("FX707") || xgmFan) && !AppConfig.IsMode("auto_apply_power"))
{ {
Task.Run(async () => Task.Run(async () =>
{ {