mirror of
https://github.com/jkocon/g-helper.git
synced 2026-02-23 13:00:52 +01:00
Compare commits
17 Commits
v0.182
...
ProArtHotk
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
44dddfd4cc | ||
|
|
7af211f656 | ||
|
|
991eab1280 | ||
|
|
59f36e6db3 | ||
|
|
1bbd40fbd5 | ||
|
|
3fd1869d3f | ||
|
|
c64bc4599e | ||
|
|
d94a54f785 | ||
|
|
ff5aac78a3 | ||
|
|
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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -377,6 +377,11 @@ public static class AppConfig
|
||||
return ContainsModel("Vivobook") || ContainsModel("Zenbook");
|
||||
}
|
||||
|
||||
public static bool IsVivoZenPro()
|
||||
{
|
||||
return ContainsModel("Vivobook") || ContainsModel("Zenbook") || ContainsModel("ProArt");
|
||||
}
|
||||
|
||||
// Devices with bugged bios command to change brightness
|
||||
public static bool SwappedBrightness()
|
||||
{
|
||||
@@ -402,7 +407,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()
|
||||
|
||||
@@ -46,6 +46,7 @@ public class AsusACPI
|
||||
|
||||
public const int KB_TouchpadToggle = 0x6b;
|
||||
public const int KB_MuteToggle = 0x7c;
|
||||
public const int KB_NumlockToggle = 0x4e;
|
||||
|
||||
public const int KB_DUO_PgUpDn = 0x4B;
|
||||
public const int KB_DUO_SecondDisplay = 0x6A;
|
||||
@@ -171,8 +172,8 @@ public class AsusACPI
|
||||
private bool? _allAMD = null;
|
||||
private bool? _overdrive = null;
|
||||
|
||||
public static uint GPUEco => (AppConfig.IsVivoZenbook() || AppConfig.IsProArt()) ? GPUEcoVivo : GPUEcoROG;
|
||||
public static uint GPUMux => AppConfig.IsVivoZenbook() ? GPUMuxVivo : GPUMuxROG;
|
||||
public static uint GPUEco => AppConfig.IsVivoZenPro() ? GPUEcoVivo : GPUEcoROG;
|
||||
public static uint GPUMux => AppConfig.IsVivoZenPro() ? GPUMuxVivo : GPUMuxROG;
|
||||
|
||||
[DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Unicode)]
|
||||
private static extern IntPtr CreateFile(
|
||||
@@ -644,7 +645,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;
|
||||
}
|
||||
|
||||
|
||||
@@ -70,13 +70,13 @@ namespace GHelper.Display
|
||||
|
||||
public static SplendidGamut GetDefaultGamut()
|
||||
{
|
||||
return AppConfig.IsVivoZenbook() ? SplendidGamut.VivoNative : SplendidGamut.Native;
|
||||
return AppConfig.IsVivoZenPro() ? SplendidGamut.VivoNative : SplendidGamut.Native;
|
||||
}
|
||||
|
||||
public static Dictionary<SplendidGamut, string> GetGamutModes()
|
||||
{
|
||||
|
||||
bool isVivo = AppConfig.IsVivoZenbook();
|
||||
bool isVivo = AppConfig.IsVivoZenPro();
|
||||
|
||||
Dictionary<SplendidGamut, string> _modes = new Dictionary<SplendidGamut, string>();
|
||||
|
||||
@@ -148,13 +148,13 @@ namespace GHelper.Display
|
||||
|
||||
public static SplendidCommand GetDefaultVisualMode()
|
||||
{
|
||||
return AppConfig.IsVivoZenbook() ? SplendidCommand.VivoNormal : SplendidCommand.Default;
|
||||
return AppConfig.IsVivoZenPro() ? SplendidCommand.VivoNormal : SplendidCommand.Default;
|
||||
}
|
||||
|
||||
public static Dictionary<SplendidCommand, string> GetVisualModes()
|
||||
{
|
||||
|
||||
if (AppConfig.IsVivoZenbook())
|
||||
if (AppConfig.IsVivoZenPro())
|
||||
{
|
||||
return new Dictionary<SplendidCommand, string>
|
||||
{
|
||||
@@ -291,7 +291,7 @@ namespace GHelper.Display
|
||||
private static bool RunSplendid(SplendidCommand command, int? param1 = null, int? param2 = null)
|
||||
{
|
||||
var splendid = GetSplendidPath();
|
||||
bool isVivo = AppConfig.IsVivoZenbook();
|
||||
bool isVivo = AppConfig.IsVivoZenPro();
|
||||
bool isSplenddid = File.Exists(splendid);
|
||||
|
||||
if (isSplenddid)
|
||||
|
||||
@@ -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'">
|
||||
|
||||
@@ -281,6 +281,43 @@ namespace GHelper.Input
|
||||
}
|
||||
}
|
||||
|
||||
if (AppConfig.IsProArt())
|
||||
{
|
||||
switch (e.Key)
|
||||
{
|
||||
case Keys.F2:
|
||||
KeyboardHook.KeyPress(Keys.VolumeDown);
|
||||
return;
|
||||
case Keys.F3:
|
||||
KeyboardHook.KeyPress(Keys.VolumeUp);
|
||||
return;
|
||||
case Keys.F4:
|
||||
HandleEvent(199); // Backlight cycle
|
||||
return;
|
||||
case Keys.F5:
|
||||
SetBrightness(-10);
|
||||
return;
|
||||
case Keys.F6:
|
||||
SetBrightness(+10);
|
||||
return;
|
||||
case Keys.F7:
|
||||
KeyboardHook.KeyKeyPress(Keys.LWin, Keys.P);
|
||||
return;
|
||||
case Keys.F8:
|
||||
HandleEvent(126); // Emojis
|
||||
return;
|
||||
case Keys.F9:
|
||||
KeyProcess("m3"); // MicMute
|
||||
return;
|
||||
case Keys.F10:
|
||||
HandleEvent(133); // Camera Toggle
|
||||
return;
|
||||
case Keys.F11:
|
||||
KeyboardHook.KeyPress(Keys.Snapshot); // PrintScreen
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (AppConfig.IsZ13() || AppConfig.IsDUO())
|
||||
{
|
||||
switch (e.Key)
|
||||
@@ -658,6 +695,7 @@ namespace GHelper.Input
|
||||
switch (EventID)
|
||||
{
|
||||
case 134: // FN + F12 ON OLD DEVICES
|
||||
case 139: // ProArt F12
|
||||
KeyProcess("m4");
|
||||
return;
|
||||
case 124: // M3
|
||||
@@ -691,7 +729,7 @@ namespace GHelper.Input
|
||||
case 78: // Fn + ESC
|
||||
ToggleFnLock();
|
||||
return;
|
||||
case 75: // Fn + ESC
|
||||
case 75: // Fn + Arrow Lock
|
||||
ToggleArrowLock();
|
||||
return;
|
||||
case 189: // Tablet mode
|
||||
@@ -780,6 +818,9 @@ namespace GHelper.Input
|
||||
case 53: // Fn+F6 on GA-502DU model
|
||||
NativeMethods.TurnOffScreen();
|
||||
return;
|
||||
case 126: // Fn+F8 emojis popup
|
||||
KeyboardHook.KeyKeyPress(Keys.LWin, Keys.OemSemicolon);
|
||||
return;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -79,7 +79,7 @@ namespace GHelper.USB
|
||||
public static Color Color1 = Color.White;
|
||||
public static Color Color2 = Color.Black;
|
||||
|
||||
static bool isACPI = AppConfig.IsTUF() || AppConfig.IsVivoZenbook() || AppConfig.IsProArt();
|
||||
static bool isACPI = AppConfig.IsTUF() || AppConfig.IsVivoZenPro();
|
||||
static bool isStrix = AppConfig.IsAdvancedRGB() && !AppConfig.IsNoDirectRGB();
|
||||
|
||||
static bool isStrix4Zone = AppConfig.Is4ZoneRGB();
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user