mirror of
https://github.com/jkocon/g-helper.git
synced 2026-02-23 13:00:52 +01:00
Compare commits
9 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1efda38ccf | ||
|
|
88eb4916b6 | ||
|
|
741d9cf1e2 | ||
|
|
45e3d5e75f | ||
|
|
443f6726c7 | ||
|
|
f22f6eb960 | ||
|
|
a83b42c263 | ||
|
|
b97bd9af65 | ||
|
|
a70956eaf8 |
@@ -25,14 +25,22 @@ namespace GHelper.AnimeMatrix
|
||||
BatteryLevel,
|
||||
}
|
||||
|
||||
public class SlashPacket : Packet
|
||||
{
|
||||
public SlashPacket(byte[] command, byte reportID = 0x5E) : base(reportID, 128, command)
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public class SlashDevice : Device
|
||||
{
|
||||
|
||||
internal class SlashPacket : Packet
|
||||
protected virtual byte reportID => 0x5E;
|
||||
|
||||
protected virtual SlashPacket CreatePacket(byte[] command)
|
||||
{
|
||||
public SlashPacket(byte[] command) : base(0x5E, 128, command)
|
||||
{
|
||||
}
|
||||
return new SlashPacket(command, reportID);
|
||||
}
|
||||
|
||||
public static Dictionary<SlashMode, string> Modes = new Dictionary<SlashMode, string>
|
||||
@@ -90,25 +98,25 @@ namespace GHelper.AnimeMatrix
|
||||
|
||||
public void WakeUp()
|
||||
{
|
||||
Set(Packet<SlashPacket>(Encoding.ASCII.GetBytes("ASUS Tech.Inc.")), "SlashWakeUp");
|
||||
Set(Packet<SlashPacket>(0xC2), "SlashWakeUp");
|
||||
Set(Packet<SlashPacket>(0xD1, 0x01, 0x00, 0x01), "SlashWakeUp");
|
||||
Set(CreatePacket(Encoding.ASCII.GetBytes("ASUS Tech.Inc.")), "SlashWakeUp");
|
||||
Set(CreatePacket([0xC2]), "SlashWakeUp");
|
||||
Set(CreatePacket([0xD1, 0x01, 0x00, 0x01 ]), "SlashWakeUp");
|
||||
}
|
||||
|
||||
public void Init()
|
||||
{
|
||||
Set(Packet<SlashPacket>(0xD7, 0x00, 0x00, 0x01, 0xAC), "SlashInit");
|
||||
Set(Packet<SlashPacket>(0xD2, 0x02, 0x01, 0x08, 0xAB), "SlashInit");
|
||||
Set(CreatePacket([0xD7, 0x00, 0x00, 0x01, 0xAC]), "SlashInit");
|
||||
Set(CreatePacket([0xD2, 0x02, 0x01, 0x08, 0xAB]), "SlashInit");
|
||||
}
|
||||
|
||||
public void SetEnabled(bool status = true)
|
||||
{
|
||||
Set(Packet<SlashPacket>(0xD8, 0x02, 0x00, 0x01, status ? (byte)0x00 : (byte)0x80), $"SlashEnable {status}");
|
||||
Set(CreatePacket([0xD8, 0x02, 0x00, 0x01, status ? (byte)0x00 : (byte)0x80]), $"SlashEnable {status}");
|
||||
}
|
||||
|
||||
public void Save()
|
||||
{
|
||||
Set(Packet<SlashPacket>(0xD4, 0x00, 0x00, 0x01, 0xAB), "SlashSave");
|
||||
Set(CreatePacket([0xD4, 0x00, 0x00, 0x01, 0xAB]), "SlashSave");
|
||||
}
|
||||
|
||||
public void SetMode(SlashMode mode)
|
||||
@@ -124,8 +132,8 @@ namespace GHelper.AnimeMatrix
|
||||
modeByte = 0x00;
|
||||
}
|
||||
|
||||
Set(Packet<SlashPacket>(0xD2, 0x03, 0x00, 0x0C), "SlashMode");
|
||||
Set(Packet<SlashPacket>(0xD3, 0x04, 0x00, 0x0C, 0x01, modeByte, 0x02, 0x19, 0x03, 0x13, 0x04, 0x11, 0x05, 0x12, 0x06, 0x13), "SlashMode");
|
||||
Set(CreatePacket([0xD2, 0x03, 0x00, 0x0C]), "SlashMode");
|
||||
Set(CreatePacket([0xD3, 0x04, 0x00, 0x0C, 0x01, modeByte, 0x02, 0x19, 0x03, 0x13, 0x04, 0x11, 0x05, 0x12, 0x06, 0x13]), "SlashMode");
|
||||
}
|
||||
|
||||
public void SetStatic(int brightness = 0)
|
||||
@@ -179,35 +187,35 @@ namespace GHelper.AnimeMatrix
|
||||
|
||||
public void SetCustom(byte[] data)
|
||||
{
|
||||
Set(Packet<SlashPacket>(0xD2, 0x02, 0x01, 0x08, 0xAC), "Static");
|
||||
Set(Packet<SlashPacket>(0xD3, 0x03, 0x01, 0x08, 0xAC, 0xFF, 0xFF, 0x01, 0x05, 0xFF, 0xFF), "StaticSettings");
|
||||
Set(Packet<SlashPacket>(0xD4, 0x00, 0x00, 0x01, 0xAC), "StaticSave");
|
||||
Set(CreatePacket([0xD2, 0x02, 0x01, 0x08, 0xAC]), "Static");
|
||||
Set(CreatePacket([0xD3, 0x03, 0x01, 0x08, 0xAC, 0xFF, 0xFF, 0x01, 0x05, 0xFF, 0xFF]), "StaticSettings");
|
||||
Set(CreatePacket([0xD4, 0x00, 0x00, 0x01, 0xAC]), "StaticSave");
|
||||
|
||||
byte[] payload = new byte[] { 0xD3, 0x00, 0x00, 0x07 };
|
||||
Set(Packet<SlashPacket>(payload.Concat(data.Take(7)).ToArray()), "Static Data");
|
||||
Set(CreatePacket(payload.Concat(data.Take(7)).ToArray()), "Static Data");
|
||||
}
|
||||
|
||||
public void SetOptions(bool status, int brightness = 0, int interval = 0)
|
||||
{
|
||||
byte brightnessByte = (byte)(brightness * 85.333);
|
||||
|
||||
Set(Packet<SlashPacket>(0xD3, 0x03, 0x01, 0x08, 0xAB, 0xFF, 0x01, status ? (byte)0x01 : (byte)0x00, 0x06, brightnessByte, 0xFF, (byte)interval), "SlashOptions");
|
||||
Set(CreatePacket([0xD3, 0x03, 0x01, 0x08, 0xAB, 0xFF, 0x01, status ? (byte)0x01 : (byte)0x00, 0x06, brightnessByte, 0xFF, (byte)interval]), "SlashOptions");
|
||||
}
|
||||
|
||||
public void SetBatterySaver(bool status)
|
||||
{
|
||||
Set(Packet<SlashPacket>(0xD8, 0x01, 0x00, 0x01, status ? (byte)0x80 : (byte)0x00), $"SlashBatterySaver {status}");
|
||||
Set(CreatePacket([0xD8, 0x01, 0x00, 0x01, status ? (byte)0x80 : (byte)0x00]), $"SlashBatterySaver {status}");
|
||||
}
|
||||
|
||||
public void SetLidMode(bool status)
|
||||
{
|
||||
Set(Packet<SlashPacket>(0xD8, 0x00, 0x00, 0x02, 0xA5, status ? (byte)0x80 : (byte)0x00), $"DisableLidClose {status}");
|
||||
Set(CreatePacket([0xD8, 0x00, 0x00, 0x02, 0xA5, status ? (byte)0x80 : (byte)0x00]), $"DisableLidClose {status}");
|
||||
}
|
||||
|
||||
public void SetSleepActive(bool status)
|
||||
{
|
||||
Set(Packet<SlashPacket>(0xD2, 0x02, 0x01, 0x08, 0xA1), "SleepInit");
|
||||
Set(Packet<SlashPacket>(0xD3, 0x03, 0x01, 0x08, 0xA1, 0x00, 0xFF, status ? (byte)0x01 : (byte)0x00, 0x02, 0xFF, 0xFF), $"Sleep {status}");
|
||||
Set(CreatePacket([0xD2, 0x02, 0x01, 0x08, 0xA1]), "SleepInit");
|
||||
Set(CreatePacket([0xD3, 0x03, 0x01, 0x08, 0xA1, 0x00, 0xFF, status ? (byte)0x01 : (byte)0x00, 0x02, 0xFF, 0xFF]), $"Sleep {status}");
|
||||
}
|
||||
|
||||
public void Set(Packet packet, string? log = null)
|
||||
@@ -219,15 +227,15 @@ namespace GHelper.AnimeMatrix
|
||||
|
||||
public class SlashDeviceAura : SlashDevice
|
||||
{
|
||||
public SlashDeviceAura(): base(0x193B)
|
||||
protected override byte reportID => 0x5D;
|
||||
|
||||
public SlashDeviceAura() : base(0x19B6)
|
||||
{
|
||||
}
|
||||
|
||||
internal new class SlashPacket : Packet
|
||||
protected override SlashPacket CreatePacket(byte[] command)
|
||||
{
|
||||
public SlashPacket(byte[] command) : base(0x5D, 128, command)
|
||||
{
|
||||
}
|
||||
return new SlashPacket(command, reportID);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -402,7 +402,7 @@ public static class AppConfig
|
||||
|
||||
public static bool IsSingleColor()
|
||||
{
|
||||
return ContainsModel("GA401") || ContainsModel("FX517Z") || ContainsModel("FX516P") || ContainsModel("X13") || IsARCNM() || ContainsModel("GA502IU");
|
||||
return ContainsModel("GA401") || ContainsModel("FX517Z") || ContainsModel("FX516P") || ContainsModel("X13") || IsARCNM() || ContainsModel("GA502IU") || ContainsModel("FA617N") || ContainsModel("FA617X");
|
||||
}
|
||||
|
||||
public static bool IsSlash()
|
||||
|
||||
@@ -644,7 +644,7 @@ public class AsusACPI
|
||||
|
||||
public bool IsAllAmdPPT()
|
||||
{
|
||||
if (_allAMD is null) _allAMD = DeviceGet(PPT_CPUB0) >= 0 && DeviceGet(PPT_GPUC0) < 0;
|
||||
if (_allAMD is null) _allAMD = DeviceGet(PPT_CPUB0) >= 0 && DeviceGet(PPT_GPUC0) < 0 && !AppConfig.IsAlly();
|
||||
return (bool)_allAMD;
|
||||
}
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<ProduceReferenceAssembly>False</ProduceReferenceAssembly>
|
||||
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
|
||||
<AssemblyVersion>0.182</AssemblyVersion>
|
||||
<AssemblyVersion>0.183</AssemblyVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||
|
||||
@@ -10,7 +10,7 @@ public static class AsusHid
|
||||
public const byte INPUT_ID = 0x5a;
|
||||
public const byte AURA_ID = 0x5d;
|
||||
|
||||
static int[] deviceIds = { 0x1a30, 0x1854, 0x1869, 0x1866, 0x19b6, 0x1822, 0x1837, 0x1854, 0x184a, 0x183d, 0x8502, 0x1807, 0x17e0, 0x18c6, 0x1abe };
|
||||
static int[] deviceIds = { 0x1a30, 0x1854, 0x1869, 0x1866, 0x19b6, 0x1822, 0x1837, 0x1854, 0x184a, 0x183d, 0x8502, 0x1807, 0x17e0, 0x18c6, 0x1abe, 0x1b4c };
|
||||
|
||||
static HidStream? auraStream;
|
||||
|
||||
|
||||
@@ -254,7 +254,7 @@ namespace GHelper.USB
|
||||
msg[6] = mono ? (byte)0 : color.B; // B
|
||||
msg[7] = (byte)speed; // aura.speed as u8;
|
||||
msg[8] = 0x00; // aura.direction as u8;
|
||||
msg[9] = (color.R == 0 && color.G == 0 && color.B == 0) ? (byte)0xFF : (byte)0x00; // random color flag
|
||||
msg[9] = (color.R == 0 && color.G == 0 && color.B == 0) ? (byte)0xFF : (mode == AuraMode.AuraBreathe ? (byte)0x01 : (byte)0x00); // random color flag
|
||||
msg[10] = color2.R; // R
|
||||
msg[11] = mono ? (byte)0 : color2.G; // G
|
||||
msg[12] = mono ? (byte)0 : color2.B; // B
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
Small and lightweight Armoury Crate alternative for Asus laptops offering almost same functionality without extra load and unnecessary services.
|
||||
|
||||
Works with all popular models, such as ROG Zephyrus G14, G15, G16, M16, Flow X13, Flow X16, Flow Z13, TUF Series, Strix / Scar Series, ProArt, Vivobook, Zenbook, ROG Ally and many more!
|
||||
Works with all popular models, such as ROG Zephyrus G14, G15, G16, M16, Flow X13, Flow X16, Flow Z13, TUF Series, Strix or Scar Series, ProArt, Vivobook, Zenbook, ROG Ally and many more!
|
||||
|
||||
# [:floppy_disk:Download](https://github.com/seerge/g-helper/releases/latest/download/GHelper.zip)
|
||||
**⭐ If you like the app - please spread the word about it online**
|
||||
|
||||
Reference in New Issue
Block a user