mirror of
https://github.com/jkocon/g-helper.git
synced 2026-02-23 13:00:52 +01:00
Compare commits
62 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0d3332faf3 | ||
|
|
aa74730e12 | ||
|
|
9b5e2acf90 | ||
|
|
3fafe63c42 | ||
|
|
6c0252156c | ||
|
|
3a750c08b5 | ||
|
|
e28f51cce6 | ||
|
|
b0c48b9e63 | ||
|
|
ec17d8cb80 | ||
|
|
42ac2d627c | ||
|
|
3c241cafba | ||
|
|
873fcc0591 | ||
|
|
73d5a0bb90 | ||
|
|
ff5ac7de7e | ||
|
|
917fe112b8 | ||
|
|
4855733274 | ||
|
|
740a34fa9c | ||
|
|
534dc3d344 | ||
|
|
a52a87bcfd | ||
|
|
cdeb4951dc | ||
|
|
77d89505b3 | ||
|
|
4be790dce0 | ||
|
|
c9698a1613 | ||
|
|
819506e7ee | ||
|
|
489616d255 | ||
|
|
1103ab70f6 | ||
|
|
dbf0cbc3ac | ||
|
|
a45d693937 | ||
|
|
0db49af310 | ||
|
|
28daaf9a4c | ||
|
|
38d02ee7f9 | ||
|
|
c6d1b29a49 | ||
|
|
79cd773632 | ||
|
|
897de4ed27 | ||
|
|
afa6dbb542 | ||
|
|
80fbee2609 | ||
|
|
e1c83da19b | ||
|
|
59b5888632 | ||
|
|
cd74c62908 | ||
|
|
000fbe466f | ||
|
|
ab08bd8ab4 | ||
|
|
9f157d323e | ||
|
|
9c236ca17b | ||
|
|
ba8effcaad | ||
|
|
28f8cc95fd | ||
|
|
07f1edb02f | ||
|
|
6758d9224d | ||
|
|
5e51511df0 | ||
|
|
e71d283474 | ||
|
|
d0f0bd9155 | ||
|
|
ef769982e0 | ||
|
|
68fb3b10a6 | ||
|
|
0a89062b52 | ||
|
|
fa4b614bb0 | ||
|
|
6f526c1e82 | ||
|
|
389ee0d132 | ||
|
|
ffd9bf6673 | ||
|
|
80f61912f3 | ||
|
|
2833373f9e | ||
|
|
cf94973419 | ||
|
|
421dc0c05c | ||
|
|
38965bad9f |
@@ -616,9 +616,9 @@ namespace GHelper.Ally
|
||||
|
||||
}
|
||||
|
||||
public static void ApplyXBoxStatus()
|
||||
public static void DisableXBoxController(bool disabled)
|
||||
{
|
||||
AsusHid.WriteInput(new byte[] { AsusHid.INPUT_ID, 0xD1, 0x0B, 0x01, AppConfig.Is("controller_disabled") ? (byte)0x02 : (byte)0x01 }, "Status");
|
||||
AsusHid.WriteInput([AsusHid.INPUT_ID, 0xD1, 0x0B, 0x01, disabled ? (byte)0x02 : (byte)0x01], $"ControllerDisabled: {disabled}");
|
||||
}
|
||||
|
||||
public static void ApplyMode(ControllerMode applyMode = ControllerMode.Auto, bool init = false)
|
||||
@@ -651,7 +651,7 @@ namespace GHelper.Ally
|
||||
InputDispatcher.SetBacklightAuto(true);
|
||||
}
|
||||
|
||||
AsusHid.WriteInput(new byte[] { AsusHid.INPUT_ID, 0xD1, 0x01, 0x01, (byte)_applyMode }, "Controller");
|
||||
AsusHid.WriteInput([AsusHid.INPUT_ID, 0xD1, 0x01, 0x01, (byte)_applyMode], "Controller");
|
||||
//AsusHid.WriteInput(CommandSave, null);
|
||||
|
||||
BindZone(BindingZone.M1M2);
|
||||
@@ -668,6 +668,13 @@ namespace GHelper.Ally
|
||||
|
||||
SetDeadzones();
|
||||
|
||||
if (init && AppConfig.Is("controller_disabled"))
|
||||
{
|
||||
Thread.Sleep(500);
|
||||
DisableXBoxController(false);
|
||||
DisableXBoxController(true);
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -111,8 +111,6 @@ namespace GHelper.AnimeMatrix
|
||||
deviceSlash.SetEnabled(true);
|
||||
deviceSlash.Init();
|
||||
|
||||
deviceSlash.SetLidMode(false);
|
||||
|
||||
switch ((SlashMode)running)
|
||||
{
|
||||
case SlashMode.Static:
|
||||
@@ -150,6 +148,11 @@ namespace GHelper.AnimeMatrix
|
||||
{
|
||||
bool matrixLid = AppConfig.Is("matrix_lid");
|
||||
|
||||
if (deviceSlash is not null)
|
||||
{
|
||||
deviceSlash.SetLidMode(!matrixLid && AppConfig.Is("slash_sleep"));
|
||||
}
|
||||
|
||||
if (matrixLid || force)
|
||||
{
|
||||
Logger.WriteLine($"Matrix LidClosed: {lidClose}");
|
||||
|
||||
@@ -209,7 +209,7 @@ namespace GHelper.AnimeMatrix
|
||||
|
||||
public void SetLidMode(bool status)
|
||||
{
|
||||
Set(CreatePacket([0xD8, 0x00, 0x00, 0x02, 0xA5, status ? (byte)0x80 : (byte)0x00]), $"DisableLidClose {status}");
|
||||
Set(CreatePacket([0xD8, 0x00, 0x00, 0x02, 0xA5, status ? (byte)0x80 : (byte)0x00]), $"SlashLidCloseAnimation {status}");
|
||||
}
|
||||
|
||||
public void SetSleepActive(bool status)
|
||||
|
||||
@@ -12,7 +12,7 @@ public static class AppConfig
|
||||
private static string? _bios;
|
||||
|
||||
private static Dictionary<string, object> config = new Dictionary<string, object>();
|
||||
private static System.Timers.Timer timer = new System.Timers.Timer(1000);
|
||||
private static System.Timers.Timer timer = new System.Timers.Timer(2000);
|
||||
|
||||
static AppConfig()
|
||||
{
|
||||
@@ -92,7 +92,9 @@ public static class AppConfig
|
||||
|
||||
Thread.Sleep(500);
|
||||
|
||||
if (File.ReadAllText(backup).Contains("}"))
|
||||
var backupText = File.ReadAllText(backup);
|
||||
|
||||
if (backupText.Contains("{") && backupText.Contains("}"))
|
||||
{
|
||||
File.Copy(backup, configFile, true);
|
||||
}
|
||||
@@ -219,6 +221,7 @@ public static class AppConfig
|
||||
|
||||
private static void Write()
|
||||
{
|
||||
timer.Stop();
|
||||
timer.Start();
|
||||
}
|
||||
|
||||
@@ -302,27 +305,32 @@ public static class AppConfig
|
||||
|
||||
switch (mode)
|
||||
{
|
||||
case 1:
|
||||
if (device == AsusFan.GPU)
|
||||
curve = StringToBytes("14-3F-44-48-4C-50-54-62-16-1F-26-2D-39-47-55-5F");
|
||||
else
|
||||
curve = StringToBytes("14-3F-44-48-4C-50-54-62-11-1A-22-29-34-43-51-5A");
|
||||
break;
|
||||
case 2:
|
||||
if (device == AsusFan.GPU)
|
||||
curve = StringToBytes("3C-41-42-46-47-4B-4C-62-08-11-11-1D-1D-26-26-2D");
|
||||
else
|
||||
curve = StringToBytes("3C-41-42-46-47-4B-4C-62-03-0C-0C-16-16-22-22-29");
|
||||
break;
|
||||
case AsusACPI.PerformanceTurbo:
|
||||
switch (device)
|
||||
{
|
||||
case AsusFan.GPU:
|
||||
return StringToBytes("14-3F-44-48-4C-50-54-62-16-1F-26-2D-39-47-55-5F");
|
||||
default:
|
||||
return StringToBytes("14-3F-44-48-4C-50-54-62-11-1A-22-29-34-43-51-5A");
|
||||
}
|
||||
case AsusACPI.PerformanceSilent:
|
||||
switch (device)
|
||||
{
|
||||
case AsusFan.GPU:
|
||||
return StringToBytes("3C-41-42-46-47-4B-4C-62-08-11-11-1D-1D-26-26-2D");
|
||||
default:
|
||||
return StringToBytes("3C-41-42-46-47-4B-4C-62-03-0C-0C-16-16-22-22-29");
|
||||
}
|
||||
default:
|
||||
if (device == AsusFan.GPU)
|
||||
curve = StringToBytes("3A-3D-40-44-48-4D-51-62-0C-16-1D-1F-26-2D-34-4A");
|
||||
else
|
||||
curve = StringToBytes("3A-3D-40-44-48-4D-51-62-08-11-16-1A-22-29-30-45");
|
||||
break;
|
||||
switch (device)
|
||||
{
|
||||
case AsusFan.GPU:
|
||||
return StringToBytes("3A-3D-40-44-48-4D-51-62-0C-16-1D-1F-26-2D-34-4A");
|
||||
default:
|
||||
return StringToBytes("3A-3D-40-44-48-4D-51-62-08-11-16-1A-22-29-30-45");
|
||||
}
|
||||
}
|
||||
|
||||
return curve;
|
||||
}
|
||||
|
||||
public static string GetModeString(string name)
|
||||
@@ -411,7 +419,7 @@ public static class AppConfig
|
||||
// G14 2020 has no aura, but media keys instead
|
||||
public static bool NoAura()
|
||||
{
|
||||
return (ContainsModel("GA401I") && !ContainsModel("GA401IHR")) || ContainsModel("HN7306");
|
||||
return (ContainsModel("GA401I") && !ContainsModel("GA401IHR")) || ContainsModel("GA502IU") || ContainsModel("HN7306");
|
||||
}
|
||||
|
||||
public static bool MediaKeys()
|
||||
@@ -421,7 +429,7 @@ public static class AppConfig
|
||||
|
||||
public static bool IsSingleColor()
|
||||
{
|
||||
return ContainsModel("GA401") || ContainsModel("FX517Z") || ContainsModel("FX516P") || ContainsModel("X13") || IsARCNM() || ContainsModel("GA502IU") || ContainsModel("FA617N") || ContainsModel("FA617X") || NoAura();
|
||||
return ContainsModel("GA401") || ContainsModel("FX517Z") || ContainsModel("FX516P") || ContainsModel("X13") || IsARCNM() || ContainsModel("FA617N") || ContainsModel("FA617X") || NoAura();
|
||||
}
|
||||
|
||||
public static bool IsSlash()
|
||||
@@ -446,7 +454,7 @@ public static class AppConfig
|
||||
|
||||
public static bool IsOLED()
|
||||
{
|
||||
return ContainsModel("OLED") || IsSlash() || ContainsModel("M7600") || ContainsModel("UX64") || ContainsModel("UX34") || ContainsModel("UX53") || ContainsModel("K360") || ContainsModel("X150") || ContainsModel("M350") || ContainsModel("K650") || ContainsModel("UM53") || ContainsModel("K660") || ContainsModel("UX84") || ContainsModel("M650") || ContainsModel("M550") || ContainsModel("K340") || ContainsModel("K350") || ContainsModel("M140") || ContainsModel("UM340") || ContainsModel("S540") || ContainsModel("M7400") || ContainsModel("N650") || ContainsModel("HN7306") || ContainsModel("H7606");
|
||||
return ContainsModel("OLED") || IsSlash() || ContainsModel("M7600") || ContainsModel("UX64") || ContainsModel("UX34") || ContainsModel("UX53") || ContainsModel("K360") || ContainsModel("X150") || ContainsModel("M350") || ContainsModel("K650") || ContainsModel("UM53") || ContainsModel("K660") || ContainsModel("UX84") || ContainsModel("M650") || ContainsModel("M550") || ContainsModel("K340") || ContainsModel("K350") || ContainsModel("M140") || ContainsModel("UM340") || ContainsModel("S540") || ContainsModel("M7400") || ContainsModel("N650") || ContainsModel("HN7306") || ContainsModel("H7606") || ContainsModel("UX5406") || ContainsModel("UM5606");
|
||||
}
|
||||
|
||||
public static bool IsNoOverdrive()
|
||||
@@ -632,7 +640,7 @@ public static class AppConfig
|
||||
|
||||
public static bool IsForceSetGPUMode()
|
||||
{
|
||||
return Is("gpu_mode_force_set") || ContainsModel("503");
|
||||
return Is("gpu_mode_force_set") || (ContainsModel("503") && IsNotFalse("gpu_mode_force_set"));
|
||||
}
|
||||
|
||||
public static bool IsNoGPUModes()
|
||||
@@ -688,7 +696,12 @@ public static class AppConfig
|
||||
|
||||
public static bool IsForceMiniled()
|
||||
{
|
||||
return ContainsModel("G834JYR") || Is("force_miniled");
|
||||
return ContainsModel("G834JYR") || ContainsModel("G834JZR") || Is("force_miniled");
|
||||
}
|
||||
|
||||
public static bool SaveDimming()
|
||||
{
|
||||
return Is("save_dimming");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -114,7 +114,7 @@ public class AsusACPI
|
||||
public const int APU_MEM = 0x000600C1;
|
||||
|
||||
public const int TUF_KB_BRIGHTNESS = 0x00050021;
|
||||
public const int VIVO_KB_BRIGHTNESS = 0x0005002F;
|
||||
public const int KBD_BACKLIGHT_OOBE = 0x0005002F;
|
||||
|
||||
public const int TUF_KB = 0x00100056;
|
||||
public const int TUF_KB2 = 0x0010005a;
|
||||
@@ -788,7 +788,6 @@ public class AsusACPI
|
||||
{
|
||||
int param = 0x80 | (brightness & 0x7F);
|
||||
DeviceSet(TUF_KB_BRIGHTNESS, param, "TUF Brightness");
|
||||
if (AppConfig.IsVivoZenPro()) DeviceSet(VIVO_KB_BRIGHTNESS, param, "VIVO Brightness");
|
||||
|
||||
}
|
||||
|
||||
@@ -831,6 +830,7 @@ public class AsusACPI
|
||||
state = state | 0x01 << 8;
|
||||
|
||||
DeviceSet(TUF_KB_STATE, state, "TUF_KB");
|
||||
if (AppConfig.IsVivoZenPro() && DeviceGet(KBD_BACKLIGHT_OOBE) >= 0) DeviceSet(KBD_BACKLIGHT_OOBE, 1, "VIVO OOBE");
|
||||
}
|
||||
|
||||
public void SubscribeToEvents(Action<object, EventArrivedEventArgs> EventHandler)
|
||||
|
||||
@@ -326,7 +326,8 @@ namespace GHelper
|
||||
return;
|
||||
}
|
||||
|
||||
LightingMode lm = supportedLightingModes[comboBoxLightingMode.SelectedIndex];
|
||||
var index = comboBoxLightingMode.SelectedIndex;
|
||||
LightingMode lm = supportedLightingModes[index < supportedLightingModes.Count ? index : 0 ];
|
||||
|
||||
LightingSetting? ls = mouse.LightingSettingForZone(visibleZone);
|
||||
if (ls.LightingMode == lm)
|
||||
|
||||
@@ -145,7 +145,7 @@ namespace GHelper.AutoUpdate
|
||||
Logger.WriteLine(ex.Message);
|
||||
}
|
||||
|
||||
Environment.Exit(0);
|
||||
Application.Exit();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -39,8 +39,8 @@ namespace GHelper.Battery
|
||||
if (AppConfig.IsChargeLimit6080())
|
||||
{
|
||||
if (limit > 85) limit = 100;
|
||||
else if (limit >= 80) limit = 80;
|
||||
else if (limit < 60) limit = 60;
|
||||
else limit = 80;
|
||||
}
|
||||
|
||||
Program.acpi.DeviceSet(AsusACPI.BatteryLimit, limit, "BatteryLimit");
|
||||
|
||||
@@ -13,19 +13,28 @@ namespace GHelper.Display
|
||||
var profiles = new Dictionary<string, string>()
|
||||
{
|
||||
{"FA_Series", "2177-APOR41-de476ec68578c865e886ef6872aa56ee.zip"},
|
||||
{"FA401UI", "19767-N39QWK-05990dae2bf601e9db8b998bfad49f57.zip"},
|
||||
{"FA401UU", "19768-K9LFCV-5224d6f68051d884a3adaa588e6300c3.zip"},
|
||||
{"FA401UV", "19769-8MSQD6-d06ff0a176407b4eaeed468a3bff2bc1.zip"},
|
||||
{"FA401WI", "19937-J3GRCD-e37d8c1557b9f11d8fb493a78b50fe2d.zip"},
|
||||
{"FA401WU", "19938-5PIL7F-a3c8522c89e03fc25e2f7290ee5c5f22.zip"},
|
||||
{"FA401WV", "19939-KIX4CK-3462e49f2c6388228b427b85332538b7.zip"},
|
||||
{"FA506IC", "7822-ZGQ1KC-bc80be3be7ca585bef60f526b6461c86.zip"},
|
||||
{"FA506ICB", "13914-2HYCD7-95fabfe5669a204620517f0158c0cea1.zip"},
|
||||
{"FA506IE", "7828-57N8GH-9fe07a7e4ebde12a8d4682d3ffa66fe4.zip"},
|
||||
{"FA506IEB", "14661-ZYWH5T-3b45ebeb7fca81d98796d5960e11226c.zip"},
|
||||
{"FA506IH", "3407-VZBOUN-8a12385fa46e077010677d330e9320d5.zip"},
|
||||
{"FA506IHR", "7823-15HGA0-44d621a3c0f0dd2c407f67d262871be0.zip"},
|
||||
{"FA506IHRB", "19343-MBMUPH-190cdb28402ba8efd3e11561c9b2eeb9.zip"},
|
||||
{"FA506II", "3410-9ZXQO2-aa08794537699c5dbfcca49b63fb7f8d.zip"},
|
||||
{"FA506IM", "7824-EKKW9A-21c7e073a81fc868b78e605b17290839.zip"},
|
||||
{"FA506IR", "7825-G6XND9-c16ea7e98b58e878c61d1071b100ee60.zip"},
|
||||
{"FA506IU", "3413-AMCR39-2a8b889a8810da4e8692f87e1ae3ea2c.zip"},
|
||||
{"FA506IV", "3415-VA0CJ6-266febe84bcecc5ed89fdc286f444ce2.zip"},
|
||||
{"FA506NC", "18359-BM2XCN-3ca9de427310b05afa92dcbe1babf947.zip"},
|
||||
{"FA506NCR", "19230-KJ866Z-1980e6f6a843b6b31111e38973fa1cda.zip"},
|
||||
{"FA506NF", "18361-CU7H6I-55beba8445b9aa0fe9cbeb8ec9a47ccf.zip"},
|
||||
{"FA506NFR", "19231-GARR16-f7052f6be62ddce2048ebcd6ba808563.zip"},
|
||||
{"FA506QC", "7829-LBYY5U-b14343c260b738563b69ad0e4f4b88d1.zip"},
|
||||
{"FA506QE", "7827-75P3DP-b664f4da04e77ed1faa722bf0c781d82.zip"},
|
||||
{"FA506QM", "9440-87VQKP-48357026f1f3099cfed1161a320587f0.zip"},
|
||||
@@ -33,9 +42,9 @@ namespace GHelper.Display
|
||||
{"FA507NI", "14451-N6AX9R-0bc8e15be5cf889c755aaa7052f6fee8.zip"},
|
||||
{"FA507NJ", "14454-QXKHOE-d28f2eb001f9b7ce0582cbe33961a6ad.zip"},
|
||||
{"FA507NU", "14452-EZXLVF-c64dd3d7efede78df653b029888d9d04.zip"},
|
||||
{"FA507NUR", "18871-WR3YMP-6cbcd0502eb9bf200465e36c4de8c9fd.zip"},
|
||||
{"FA507NUR", "19358-JYO79G-f8bc53beeadfdfef80dc6a4eb85c69e2.zip"},
|
||||
{"FA507NV", "14453-VC333P-41549f64788d59c9711eccec892fa8c1.zip"},
|
||||
{"FA507NVR", "18872-HVR4UY-220dc7f3f73cf12b2af2505db6ce67ab.zip"},
|
||||
{"FA507NVR", "19359-YWEAES-37feeb146db89c3549bac528d67ae209.zip"},
|
||||
{"FA507RC", "11448-0TRT8V-7712eb9302300dd82815027efbbe4787.zip"},
|
||||
{"FA507RE", "11449-ONC7VG-a7ac70468292336f63532c21204d69d4.zip"},
|
||||
{"FA507RF", "14311-X72FIU-66bf16069a82bdf2cc09f8b92cb25c67.zip"},
|
||||
@@ -50,17 +59,24 @@ namespace GHelper.Display
|
||||
{"FA507XJ", "14820-8RT0TF-9d341fae2a290494206deb5fcf1fd427.zip"},
|
||||
{"FA507XU", "14818-3PA2GD-2d1e2d035309ec7282a1c47e27f7c7fd.zip"},
|
||||
{"FA507XV", "14819-ET4L73-daf905274776ae9c92a7b74e687dc63d.zip"},
|
||||
{"FA607PI", "17579-FL63B4-df08bf92fe3c156ce738e43de7824d65.zip"},
|
||||
{"FA607PU", "17580-WM413K-eff7721ca9ec5b633ef196dbfcd58ff2.zip"},
|
||||
{"FA607PV", "17581-JNXO2Q-15d026a4ae630d44b28c18aee0a99e51.zip"},
|
||||
{"FA607NU", "20567-VB45RR-ceeec88490fec992f2f8948ece38952e.zip"},
|
||||
{"FA607NUR", "20570-XEDISK-5e1220f6a19492a3e6319697497deaa3.zip"},
|
||||
{"FA607PI", "19157-PL5PW6-2fde4880a46a6b7357d96eaa7a4ec946.zip"},
|
||||
{"FA607PU", "19158-AWQ1FA-f1ed2d008bef71741a9b09b35730b9e7.zip"},
|
||||
{"FA607PV", "19159-V6UKPP-92f56a3aa89b834d1ab12f229a8ae1a7.zip"},
|
||||
{"FA607RC", "10190-XHDRTQ-0e6c248e3dab6bb07e052edd963c5218.zip"},
|
||||
{"FA607RE", "10194-AF495K-23a4d74be5132e4babc64bb13237a12b.zip"},
|
||||
{"FA607RH", "10191-9BS333-c6deb5f9fd5a37d446d2722da54c0ec3.zip"},
|
||||
{"FA607RM", "10195-4U5EEF-cf98d168cacdd5a60782e881a9c143be.zip"},
|
||||
{"FA607RR", "10193-FYX2N7-730c76e49ef71a6164804eafd2621dab.zip"},
|
||||
{"FA607RW", "10192-UFOOP3-f52a50dac189ffa96560f73e04c53a6c.zip"},
|
||||
{"FA617NS", "15967-YKHJ0B-89095e43578e64c160d2952bb14513f2.zip"},
|
||||
{"FA617NT", "15970-C1BW39-2ef1c5d5d9a967cf2fc1f511d3db3a43.zip"},
|
||||
{"FA608WI", "20103-UE0O65-d6707b2a2f666d671d728661c981883a.zip"},
|
||||
{"FA608WU", "20102-IQVJL2-edc900ffe25635856729d26dbeac272f.zip"},
|
||||
{"FA608WV", "20104-EE3Q5U-a7695b4d1668b1a8dda2576f64bffad2.zip"},
|
||||
{"FA617NS", "20225-0J8FEF-cb6ef3732560ed38542d5047e78596f0.zip"},
|
||||
{"FA617NSR", "20226-B5TAVP-f153443e85ccad055fa12d58eec69c5c.zip"},
|
||||
{"FA617NT", "20224-YN6NKP-1d0e927ae5c1bb7d15e36b63176460e2.zip"},
|
||||
{"FA617NTR", "20227-KL8UNI-2b4063b7a52b142fb75e9136570afbf9.zip"},
|
||||
{"FA617XS", "15968-Y9NFXN-cb420fe6e177fc1cf675e9d42a6fd0ea.zip"},
|
||||
{"FA617XT", "15969-UKYP5L-ad54051ebbad4b17693b65f5bceda799.zip"},
|
||||
{"FA706IC", "5215-5J3H5Y-d2cdc2f5e03d68e5e5e562581a77c8e6.zip"},
|
||||
@@ -72,6 +88,7 @@ namespace GHelper.Display
|
||||
{"FA706IR", "8825-63J2NY-2496ecf21b5fa71e65671531b670cdac.zip"},
|
||||
{"FA706IU", "2608-EI64MF-64c35bda7789e6e71298e22d793b78d4.zip"},
|
||||
{"FA706NF", "18362-1V7Z1Z-0bc79f01bdfadc5b39342fba622a5b8d.zip"},
|
||||
{"FA706NFR", "19232-FE6TXN-d062445db610ce901453145ebc518efe.zip"},
|
||||
{"FA706QC", "8826-032S4E-868933565b1a7d762bda8cafc1e77458.zip"},
|
||||
{"FA706QE", "8824-KZNJL9-9d827f4973d4c9787ff050dc1bf35eef.zip"},
|
||||
{"FA706QM", "8830-6NX7U4-b7bbfe663aa954534d33d2f822181728.zip"},
|
||||
@@ -79,7 +96,9 @@ namespace GHelper.Display
|
||||
{"FA707NI", "14455-19J6WZ-10282c6083ee018a614e75bc809ecf1f.zip"},
|
||||
{"FA707NJ", "14457-BGJD0K-d963ff94009c9a2a5b99606eac711a95.zip"},
|
||||
{"FA707NU", "14456-VAZ4LS-1d798d3873c55e9d10b43a3f2b12cd15.zip"},
|
||||
{"FA707NUR", "20568-IPF4CY-f7bd11b80ffa20b77b75e6a89213db48.zip"},
|
||||
{"FA707NV", "14458-7G8B40-08117ddb45ed3c6978aa4ad60e3d2c96.zip"},
|
||||
{"FA707NVR", "20569-1MFNC4-e41979f29c26628eacf1e9067dd3544d.zip"},
|
||||
{"FA707RC", "10196-81D3O0-94ccf4d908c9bcb44f8f9092ef9fa2e2.zip"},
|
||||
{"FA707RE", "10200-AUS9AW-7f366055be2ae2b4c659aa9590bb4d5e.zip"},
|
||||
{"FA707RF", "14312-6KGU80-09ba6d3e3b490c3d1dce3d16df62cd8a.zip"},
|
||||
@@ -92,6 +111,9 @@ namespace GHelper.Display
|
||||
{"FA707XJ", "14823-MX6CGK-0d0862cd441f96a72b1c8baeaa8aa3b4.zip"},
|
||||
{"FA707XU", "14824-O2LZZA-f0ea2bf54bbc4fd4e7391048f4a083e4.zip"},
|
||||
{"FA707XV", "14825-DUSKD1-7d0a055d869a7366105380c44788724b.zip"},
|
||||
{"FA808WI", "19512-TZ3G4D-60c6849ce49cca1d2177f31ead77df5a.zip"},
|
||||
{"FA808WU", "19510-ASGCD8-0558641c1b976b901c52d1d72f0bddd7.zip"},
|
||||
{"FA808WV", "19511-QDVPAJ-f3990996e7a9c0d472b46af286d529f1.zip"},
|
||||
{"FX_Series", "2174-J1XJKV-bd932ade5eebb0b2f1a36eac85bc5c7d.zip"},
|
||||
{"FX505DD", "3439-CJLCNE-3df3a90619c571de2917a35a402fe6cb.zip"},
|
||||
{"FX505DT", "3427-H77L9I-2f3f50fbbb1dc4ac6e703b2820acb491.zip"},
|
||||
@@ -143,15 +165,18 @@ namespace GHelper.Display
|
||||
{"FX517ZM", "13759-694BOG-7b8f61a1d8a387715721fd2b8e0bd766.zip"},
|
||||
{"FX517ZR", "11463-MCHEWS-7a732705aea49eb663fe1e8930c463de.zip"},
|
||||
{"FX517ZW", "11464-S41ORA-d99633ecf421ba4ab73800bc9ebf2e5b.zip"},
|
||||
{"FX607JI", "17739-YJBJMA-59c984b28eeb6c02498190f768b12b52.zip"},
|
||||
{"FX607JIR", "17740-78V0QP-43bf1ea30f94d3d3a286f42dd90a1816.zip"},
|
||||
{"FX607JU", "17744-JEFX0I-f1ee2104c17a5cc511efefa3dc7b9601.zip"},
|
||||
{"FX607JUR", "17743-A2JS5H-224a1f32f7dbfecb0d6b91fdb6ffac8e.zip"},
|
||||
{"FX607JV", "17741-OWALZC-eb293a03c7b4595270939bccfe891656.zip"},
|
||||
{"FX607JVR", "17742-3OOC7N-f28635b55ce56f9e32672b2e409a075c.zip"},
|
||||
{"FX607JI", "19085-6NMHTY-9137eab4a853f284c0ac1f8890735c7b.zip"},
|
||||
{"FX607JIR", "19088-H9SUHL-c75a1547f17e7c69e0a870425d3592b8.zip"},
|
||||
{"FX607JU", "19086-N1S5J4-c4fc8458bcbefa107fc1c2e1dbe44255.zip"},
|
||||
{"FX607JUR", "19087-ZBS95F-bc3055487fdc07870c12341042a37222.zip"},
|
||||
{"FX607JV", "19089-LLP8ZE-c52cc4765390eba2eae3c798a367df25.zip"},
|
||||
{"FX607JVR", "19090-XQYJEH-a5aaa078def637077c4d1d3a619ae198.zip"},
|
||||
{"FX607VB", "20704-FGKI8R-ac8a18cb35a009bcdb6d18ec7537879a.zip"},
|
||||
{"FX607VF", "20706-OMC7L2-e66289430eb7decd16fe4c6353edb8c4.zip"},
|
||||
{"FX607VI", "14072-0Z0LX5-c3145816b5c9b045a3e829e194425624.zip"},
|
||||
{"FX607VJ", "14073-H1KA78-95472184994955393ebf635af4a55c71.zip"},
|
||||
{"FX607VU", "14074-RCMD10-b606bf5fd03bdf6a8aef412202de86ff.zip"},
|
||||
{"FX607VU", "20707-N1HJ0V-31f1da0a565763c625714c39b7bb5bae.zip"},
|
||||
{"FX607VUR", "20705-ON83H2-dd9e78d43fb57f06d0e8ef0d9d1e849e.zip"},
|
||||
{"FX607VV", "14075-BX4NJX-a9e24be091f08e6cc3885397f143bdc5.zip"},
|
||||
{"FX607ZC", "9267-SQXQMT-edf1ee77d7f276d9b2f14fbe80e86459.zip"},
|
||||
{"FX607ZE", "9268-MI06A0-5f60b76f497adb2c80dc5d34e7ca00ef.zip"},
|
||||
@@ -237,14 +262,14 @@ namespace GHelper.Display
|
||||
{"G533ZX", "11729-XNFMPR-e0aad4e4d4956dba8629f419b1f86026.zip"},
|
||||
{"G614JF", "14496-NAATJZ-a3847e890e57aa749645b854b28ead79.zip"},
|
||||
{"G614JI", "14168-4VTU0U-37decb2df809672eccf1156769eda929.zip"},
|
||||
{"G614JIR", "18120-52TT5M-28a5c8e138ed1660e9eadc81121f789a.zip"},
|
||||
{"G614JIR", "19126-IMXGO5-4cce9f45ad28fa60d016f8d212c50b10.zip"},
|
||||
{"G614JJ", "14497-P0D5PL-abe178509e0316da9ee56b24e15d0384.zip"},
|
||||
{"G614JU", "14498-5D71EB-2300be03087494ee34356470ca022b7c.zip"},
|
||||
{"G614JV", "14500-SPJCAL-a8e2e223857c334ba4c20c8122151bb7.zip"},
|
||||
{"G614JVR", "18121-2WOF0H-4e7045c7a210693fef2b99b8e032316b.zip"},
|
||||
{"G614JVR", "19129-EA1WB4-4666564ee013c4df53be44bcdd20bec0.zip"},
|
||||
{"G614JZ", "18199-P9WWOH-093d361358629a2bddd5bff7b5fb7a5f.zip"},
|
||||
{"G634JY", "14163-JLRBOO-8ea519425efe56cc144e38d22cebd3f0.zip"},
|
||||
{"G634JYR", "18087-6Z1W8Q-cd92004b6b9392e2cf07317db8ca9c6d.zip"},
|
||||
{"G634JYR", "19130-MUAT65-0eced7ca55a61cc41341faa3a48d34f3.zip"},
|
||||
{"G634JZ", "15827-MSW5I1-0f39e92313e54afe3e35f5636dc37fd5.zip"},
|
||||
{"G634JZR", "17891-O7PAGL-5c6e6d059ff7bc1b9245fdf8a8066263.zip"},
|
||||
{"G703GX", "105-NMT9XG-76a0810ddf16ee376fa049bd179377fc.zip"},
|
||||
@@ -297,15 +322,15 @@ namespace GHelper.Display
|
||||
{"G733ZW", "10080-HY42QH-aa285046069cfe113953b91f1a28d101.zip"},
|
||||
{"G733ZX", "10082-JS5F1Y-41bccc831aec7bf1c0a59a309bc607c7.zip"},
|
||||
{"G814JI", "18243-BAU912-671afb033d3b1c44f9852ff608910f42.zip"},
|
||||
{"G814JIR", "17315-02XE3O-7a00ed5b91bc305aade5a1830691d0d6.zip"},
|
||||
{"G814JIR", "19802-1CGBPH-f1d31bab157b36d109e1e10591d49f4b.zip"},
|
||||
{"G814JU", "18193-Y5GMF0-843cee9ed982a3d5aba21e99efbc396c.zip"},
|
||||
{"G814JV", "18194-9Q537I-c5c2ca782d26dcd5346c110767347903.zip"},
|
||||
{"G814JVR", "17313-P6P61Y-5960dc1d0bd8ba2057bc22aaa8bf89e5.zip"},
|
||||
{"G814JVR", "19801-JK7M4V-617e0c975bf6e2a6f67802d825fa6aa4.zip"},
|
||||
{"G814JZ", "18195-V98WBX-19d4c2e52916bf9c96fcaed6f1d9bdda.zip"},
|
||||
{"G834JY", "15954-HAV3KR-d219c43750d485279e12cf76f5b2569b.zip"},
|
||||
{"G834JYR", "17314-YYBQF3-a65b1bc3fd1e8de145dc9d606e8c45c8.zip"},
|
||||
{"G834JYR", "19121-GX7FZU-7c449cf7db0033db75da0f4a464ee4d9.zip"},
|
||||
{"G834JZ", "15953-C7XC62-a987058c0a26fa3c929b300d099296a5.zip"},
|
||||
{"G834JZR", "17316-AFT379-743360d9b36031d91a72fe03e3fafca0.zip"},
|
||||
{"G834JZR", "19122-CAYURL-f71108b839d923ae92f3f83451ddfa69.zip"},
|
||||
{"GA401IC", "5864-KC8TTP-082f9a62dda322ccaed82ff3e3466bf8.zip"},
|
||||
{"GA401IE", "5866-JO8504-dde5402bdecafc1cef55a7dc3d6167ec.zip"},
|
||||
{"GA401IHR", "5865-7DV6TB-9833a54c7334dc3aef1b9e99f56b9e95.zip"},
|
||||
@@ -333,9 +358,9 @@ namespace GHelper.Display
|
||||
{"GA402XV", "14902-EL34M9-731ba1cc0d27d2db9a79d872673e7958.zip"},
|
||||
{"GA402XY", "14903-ICC56W-0456739d8ba5ee543dfba99eb6ad217a.zip"},
|
||||
{"GA402XZ", "14904-B3K2NR-928b7272790e7da0079c549cd4885d5d.zip"},
|
||||
{"GA403UI", "18084-XTMSW5-6cad333378f3b1059688a419a8422fc1.zip"},
|
||||
{"GA403UU", "18086-WXV037-ad90bc3f20ff056c45dbbb848fa72a67.zip"},
|
||||
{"GA403UV", "18085-G56QVI-3f24b5bd1eaa8dd9086b86092cb62ffb.zip"},
|
||||
{"GA403UI", "19112-NB8TJ1-e1de0121e30431cc5520ea6eccb6e46f.zip"},
|
||||
{"GA403UU", "19113-C86SAH-4338dac48ad593c4079515b7599b8943.zip"},
|
||||
{"GA403UV", "19114-6KR0FP-4740ed98a2ca06bc26c363de380a037d.zip"},
|
||||
{"GA502II", "3554-REAPZQ-5f94c7ecd52ae2cad50aaac4341bec7b.zip"},
|
||||
{"GA502IU", "3555-15UWZ4-d1cd040265773efd61bdfd146140a990.zip"},
|
||||
{"GA502IV", "3556-ULLH3K-1f56134e43e1ffa353256fbeb9840d3f.zip"},
|
||||
@@ -356,6 +381,9 @@ namespace GHelper.Display
|
||||
{"GA503RS", "11745-689QTC-6c441a7161a34b871918fce5997c4e2e.zip"},
|
||||
{"GA503RW", "12055-SG6VTH-91cc5782da63cf3dcc16804a47db25a2.zip"},
|
||||
{"GA503RX", "12056-MR9J0D-b7dad63f751d2e53aeee479524986bdd.zip"},
|
||||
{"GA605WI", "20014-K4K912-2a2e5a66fac3cc97fb13394a189bd75e.zip"},
|
||||
{"GA605WU", "20015-HJM11B-a724c1fe216b73c0b3b24475047f4615.zip"},
|
||||
{"GA605WV", "20016-BWVQPK-01624c1cdd5a3c05252bad472fab1240.zip"},
|
||||
{"GL_Series", "2167-P7ELNB-44d357ee720a0c48c2eb37eee785316c.zip"},
|
||||
{"GL503GE", "57-YI7HPS-9ed36ba45ff6398f3648a44ced4e5e61.zip"},
|
||||
{"GL504GM", "58-JOZ3S5-998677afd41375cb8fd60ace8d11a788.zip"},
|
||||
@@ -395,11 +423,11 @@ namespace GHelper.Display
|
||||
{"GU604VI", "14284-R38BM3-e2591bfa2582ce68b2c8aba63beac5e3.zip"},
|
||||
{"GU604VY", "14282-78N7V4-25e76896744c53317fa41a80788a2241.zip"},
|
||||
{"GU604VZ", "14283-U4JX5C-f31dff75d52f48ceca0102fd1bc76e31.zip"},
|
||||
{"GU605MI", "17935-R3OAJH-55a4fbb2be67a37226accd279357268b.zip"},
|
||||
{"GU605MU", "17936-VBZ5PL-ad3a380f62bc87ee738c09c8e5255f91.zip"},
|
||||
{"GU605MV", "17938-7DGM0T-caed792b162e94846167888f36fc632e.zip"},
|
||||
{"GU605MY", "17937-HZWNQ4-72d9c4fed1b31f188874cd6461ffba83.zip"},
|
||||
{"GU605MZ", "17939-IEJ2X5-fe077100dc4eafbae46d7eb831a791a8.zip"},
|
||||
{"GU605MI", "19271-93QRMU-eab4115ee09fb9bbd86facec08a822a1.zip"},
|
||||
{"GU605MU", "19272-RDZDEJ-4380e52eab6a3742613c2f694a19da1e.zip"},
|
||||
{"GU605MV", "19274-1T9PKS-d05273f430d255ad1779cf6a7eb57db3.zip"},
|
||||
{"GU605MY", "19273-F4A493-2bc9083d99e7827b4580311d34f8998b.zip"},
|
||||
{"GU605MZ", "19275-52DG5X-1072d6f4fdc5b9cbb304da7146f05a79.zip"},
|
||||
{"GV301QC", "5128-RN42GR-9a6049e7adabd1ff2aeed24293fe03a8.zip"},
|
||||
{"GV301QCZ", "6778-152PHS-7a9ad124aef1059471542dfc8912ed7b.zip"},
|
||||
{"GV301QE", "5125-PD15GR-9a7f72cbf5bd97d283464d8e407f0231.zip"},
|
||||
@@ -486,6 +514,7 @@ namespace GHelper.Display
|
||||
{"NR2301L", "14736-3DM4T5-41c1b0b5c2d726da7c66e0c39ea08017.zip"},
|
||||
{"RC71L", "17126-IIDPFS-718c077a118724bb0045b35e30d5ac4e.zip"},
|
||||
{"RC71X", "15182-KWVC62-c754d9ea39f9160df7e21e4538ce60df.zip"},
|
||||
{"RC72LA", "19770-DOSUSI-85f700513af330af6e20fcfdabaeb87f.zip"},
|
||||
};
|
||||
|
||||
if (profiles.ContainsKey(model))
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using GHelper.Helpers;
|
||||
using Microsoft.Win32;
|
||||
using System.Management;
|
||||
|
||||
namespace GHelper.Display
|
||||
@@ -37,6 +38,7 @@ namespace GHelper.Display
|
||||
Cinema = 25,
|
||||
Vivid = 13,
|
||||
Eyecare = 17,
|
||||
Disabled = 18,
|
||||
}
|
||||
public static class VisualControl
|
||||
{
|
||||
@@ -44,6 +46,7 @@ namespace GHelper.Display
|
||||
|
||||
private static int _brightness = 100;
|
||||
private static bool _init = true;
|
||||
private static bool _download = true;
|
||||
private static string? _splendidPath = null;
|
||||
|
||||
private static System.Timers.Timer brightnessTimer = new System.Timers.Timer(200);
|
||||
@@ -98,7 +101,7 @@ namespace GHelper.Display
|
||||
foreach (FileInfo icm in icms)
|
||||
{
|
||||
//Logger.WriteLine(icm.FullName);
|
||||
|
||||
|
||||
if (icm.Name.Contains("sRGB"))
|
||||
{
|
||||
try
|
||||
@@ -106,7 +109,7 @@ namespace GHelper.Display
|
||||
_modes.Add(isVivo ? SplendidGamut.VivoSRGB : SplendidGamut.sRGB, "Gamut: sRGB");
|
||||
Logger.WriteLine(icm.FullName + " sRGB");
|
||||
}
|
||||
catch
|
||||
catch
|
||||
{
|
||||
}
|
||||
}
|
||||
@@ -174,7 +177,8 @@ namespace GHelper.Display
|
||||
{ SplendidCommand.FPS, "FPS"},
|
||||
{ SplendidCommand.Cinema, "Cinema"},
|
||||
{ SplendidCommand.Vivid, "Vivid" },
|
||||
{ SplendidCommand.Eyecare, "Eyecare"}
|
||||
{ SplendidCommand.Eyecare, "Eyecare"},
|
||||
{ SplendidCommand.Disabled, "Disabled"}
|
||||
};
|
||||
}
|
||||
|
||||
@@ -204,6 +208,20 @@ namespace GHelper.Display
|
||||
};
|
||||
}
|
||||
|
||||
const string GameVisualKey = @"HKEY_CURRENT_USER\Software\ASUS\ARMOURY CRATE Service\GameVisual";
|
||||
const string GameVisualValue = "ActiveGVStatus";
|
||||
|
||||
public static bool IsEnabled()
|
||||
{
|
||||
var status = (int?)Registry.GetValue(GameVisualKey, GameVisualValue, 1);
|
||||
return status > 0;
|
||||
}
|
||||
|
||||
public static void SetRegStatus(int status = 1)
|
||||
{
|
||||
Registry.SetValue(GameVisualKey, GameVisualValue, status, RegistryValueKind.DWord);
|
||||
}
|
||||
|
||||
public static void SetGamut(int mode = -1)
|
||||
{
|
||||
if (skipGamut) return;
|
||||
@@ -211,9 +229,19 @@ namespace GHelper.Display
|
||||
|
||||
AppConfig.Set("gamut", mode);
|
||||
|
||||
if (RunSplendid(SplendidCommand.GamutMode, 0, mode)) return;
|
||||
|
||||
if (_init)
|
||||
var result = RunSplendid(SplendidCommand.GamutMode, 0, mode);
|
||||
if (result == 0) return;
|
||||
if (result == -1)
|
||||
{
|
||||
Logger.WriteLine("Gamut setting refused, reverting.");
|
||||
RunSplendid(SplendidCommand.GamutMode, 0, (int)GetDefaultGamut());
|
||||
if (ProcessHelper.IsUserAdministrator() && _download)
|
||||
{
|
||||
_download = false;
|
||||
ColorProfileHelper.InstallProfile();
|
||||
}
|
||||
}
|
||||
if (result == 1 && _init)
|
||||
{
|
||||
_init = false;
|
||||
RunSplendid(SplendidCommand.Init);
|
||||
@@ -224,7 +252,7 @@ namespace GHelper.Display
|
||||
public static void SetVisual(SplendidCommand mode = SplendidCommand.Default, int whiteBalance = DefaultColorTemp, bool init = false)
|
||||
{
|
||||
if (mode == SplendidCommand.None) return;
|
||||
if ((mode == SplendidCommand.Default || mode == SplendidCommand.VivoNormal) && init) return; // Skip default setting on init
|
||||
if ((mode == SplendidCommand.Disabled || mode == SplendidCommand.Default || mode == SplendidCommand.VivoNormal) && init) return; // Skip default setting on init
|
||||
|
||||
if (!forceVisual && ScreenCCD.GetHDRStatus(true)) return;
|
||||
if (!forceVisual && ScreenNative.GetRefreshRate(ScreenNative.FindLaptopScreen(true)) < 0) return;
|
||||
@@ -234,12 +262,16 @@ namespace GHelper.Display
|
||||
|
||||
if (whiteBalance != DefaultColorTemp && !init) ProcessHelper.RunAsAdmin();
|
||||
|
||||
int? balance;
|
||||
int? balance = null;
|
||||
int command = 0;
|
||||
|
||||
switch (mode)
|
||||
{
|
||||
case SplendidCommand.Disabled:
|
||||
command = 2;
|
||||
break;
|
||||
case SplendidCommand.Eyecare:
|
||||
balance = 2;
|
||||
balance = 4;
|
||||
break;
|
||||
case SplendidCommand.VivoNormal:
|
||||
case SplendidCommand.VivoVivid:
|
||||
@@ -253,9 +285,19 @@ namespace GHelper.Display
|
||||
break;
|
||||
}
|
||||
|
||||
if (RunSplendid(mode, 0, balance)) return;
|
||||
|
||||
if (_init)
|
||||
int result = RunSplendid(mode, command, balance);
|
||||
if (result == 0) return;
|
||||
if (result == -1)
|
||||
{
|
||||
Logger.WriteLine("Visual mode setting refused, reverting.");
|
||||
RunSplendid(SplendidCommand.Default, 0, DefaultColorTemp);
|
||||
if (ProcessHelper.IsUserAdministrator() && _download)
|
||||
{
|
||||
_download = false;
|
||||
ColorProfileHelper.InstallProfile();
|
||||
}
|
||||
}
|
||||
if (result == 1 && _init)
|
||||
{
|
||||
_init = false;
|
||||
RunSplendid(SplendidCommand.Init);
|
||||
@@ -288,7 +330,7 @@ namespace GHelper.Display
|
||||
return _splendidPath;
|
||||
}
|
||||
|
||||
private static bool RunSplendid(SplendidCommand command, int? param1 = null, int? param2 = null)
|
||||
private static int RunSplendid(SplendidCommand command, int? param1 = null, int? param2 = null)
|
||||
{
|
||||
var splendid = GetSplendidPath();
|
||||
bool isVivo = AppConfig.IsVivoZenPro();
|
||||
@@ -298,10 +340,16 @@ namespace GHelper.Display
|
||||
{
|
||||
if (command == SplendidCommand.DimmingVisual && isVivo) command = SplendidCommand.DimmingVivo;
|
||||
var result = ProcessHelper.RunCMD(splendid, (int)command + " " + param1 + " " + param2);
|
||||
if (result.Contains("file not exist") || (result.Length == 0 && !isVivo)) return false;
|
||||
if (result.Contains("file not exist") || (result.Length == 0 && !isVivo)) return 1;
|
||||
if (result.Contains("return code: -1")) return -1;
|
||||
if (result.Contains("Visual is disabled"))
|
||||
{
|
||||
SetRegStatus(1);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
return 0;
|
||||
}
|
||||
|
||||
private static void BrightnessTimerTimer_Elapsed(object? sender, System.Timers.ElapsedEventArgs e)
|
||||
@@ -309,28 +357,46 @@ namespace GHelper.Display
|
||||
brightnessTimer.Stop();
|
||||
|
||||
|
||||
if (RunSplendid(SplendidCommand.DimmingVisual, 0, (int)(40 + _brightness * 0.6))) return;
|
||||
if (RunSplendid(SplendidCommand.DimmingVisual, 0, (int)(40 + _brightness * 0.6)) == 0) return;
|
||||
|
||||
if (_init)
|
||||
{
|
||||
_init = false;
|
||||
RunSplendid(SplendidCommand.Init);
|
||||
RunSplendid(SplendidCommand.Init, 4);
|
||||
if (RunSplendid(SplendidCommand.DimmingVisual, 0, (int)(40 + _brightness * 0.6))) return;
|
||||
if (RunSplendid(SplendidCommand.DimmingVisual, 0, (int)(40 + _brightness * 0.6)) == 0) return;
|
||||
}
|
||||
|
||||
// GammaRamp Fallback
|
||||
SetGamma(_brightness);
|
||||
}
|
||||
|
||||
public static void InitBrightness()
|
||||
{
|
||||
if (!AppConfig.IsOLED()) return;
|
||||
if (!AppConfig.SaveDimming()) return;
|
||||
|
||||
int brightness = GetBrightness();
|
||||
if (brightness >= 0) SetBrightness(brightness);
|
||||
}
|
||||
|
||||
private static bool IsOnBattery()
|
||||
{
|
||||
return AppConfig.SaveDimming() && SystemInformation.PowerStatus.PowerLineStatus != PowerLineStatus.Online;
|
||||
}
|
||||
|
||||
public static int GetBrightness()
|
||||
{
|
||||
return AppConfig.Get(IsOnBattery() ? "brightness_battery" : "brightness", 100);
|
||||
}
|
||||
|
||||
public static int SetBrightness(int brightness = -1, int delta = 0)
|
||||
{
|
||||
if (!AppConfig.IsOLED()) return -1;
|
||||
|
||||
if (brightness < 0) brightness = AppConfig.Get("brightness", 100);
|
||||
if (brightness < 0) brightness = GetBrightness();
|
||||
|
||||
_brightness = Math.Max(0, Math.Min(100, brightness + delta));
|
||||
AppConfig.Set("brightness", _brightness);
|
||||
AppConfig.Set(IsOnBattery() ? "brightness_battery" : "brightness", _brightness);
|
||||
|
||||
brightnessTimer.Start();
|
||||
|
||||
|
||||
@@ -76,7 +76,8 @@ namespace GHelper
|
||||
customActions.Remove("fnlock");
|
||||
break;
|
||||
case "fnv":
|
||||
customActions[""] = EMPTY;
|
||||
customActions[""] = Properties.Strings.VisualMode;
|
||||
customActions.Remove("visual");
|
||||
break;
|
||||
case "fne":
|
||||
customActions[""] = "Calculator";
|
||||
@@ -504,7 +505,10 @@ namespace GHelper
|
||||
return;
|
||||
}
|
||||
|
||||
eCoresMax = Math.Max(8, eCoresMax);
|
||||
if (eCoresMax == 0) eCoresMax = 8;
|
||||
if (pCoresMax == 0) pCoresMax = 6;
|
||||
|
||||
eCoresMax = Math.Max(4, eCoresMax);
|
||||
pCoresMax = Math.Max(6, pCoresMax);
|
||||
|
||||
panelCores.Visible = true;
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<ProduceReferenceAssembly>False</ProduceReferenceAssembly>
|
||||
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
|
||||
<AssemblyVersion>0.188</AssemblyVersion>
|
||||
<AssemblyVersion>0.196</AssemblyVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||
@@ -63,8 +63,8 @@
|
||||
<PackageReference Include="NAudio" Version="2.1.0" />
|
||||
<PackageReference Include="NvAPIWrapper.Net" Version="0.8.1.101" />
|
||||
<PackageReference Include="System.Management" Version="8.0.0" />
|
||||
<PackageReference Include="TaskScheduler" Version="2.10.1" />
|
||||
<PackageReference Include="WinForms.DataVisualization" Version="1.8.0" />
|
||||
<PackageReference Include="TaskScheduler" Version="2.11.0" />
|
||||
<PackageReference Include="WinForms.DataVisualization" Version="1.9.2" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
||||
@@ -92,13 +92,16 @@ namespace GHelper.Gpu
|
||||
{
|
||||
if (AppConfig.NoAutoUltimate())
|
||||
{
|
||||
int standardStatus = Program.acpi.SetGPUEco(0);
|
||||
if (standardStatus == 0)
|
||||
Program.acpi.SetGPUEco(0);
|
||||
Thread.Sleep(500);
|
||||
|
||||
int eco = Program.acpi.DeviceGet(AsusACPI.GPUEco);
|
||||
Logger.WriteLine("Eco flag : " + eco);
|
||||
if (eco == 1)
|
||||
{
|
||||
settings.VisualiseGPUMode();
|
||||
return;
|
||||
}
|
||||
Thread.Sleep(100);
|
||||
}
|
||||
status = Program.acpi.DeviceSet(AsusACPI.GPUMux, 0, "GPUMux");
|
||||
restart = true;
|
||||
|
||||
@@ -41,7 +41,7 @@ public static class NvidiaSmi
|
||||
public static int GetMaxGPUPower()
|
||||
{
|
||||
string output = RunNvidiaSmiCommand("--query-gpu=power.max_limit --format csv,noheader,nounits");
|
||||
output = output.Trim().Trim('\n', '\r');
|
||||
output = output.Trim().Trim('\n', '\r').Replace(".00","").Replace(",00", "");
|
||||
|
||||
if (float.TryParse(output, out float floatValue))
|
||||
{
|
||||
|
||||
@@ -94,7 +94,7 @@ namespace GHelper
|
||||
private void CheckController_CheckedChanged(object? sender, EventArgs e)
|
||||
{
|
||||
AppConfig.Set("controller_disabled", checkController.Checked ? 1 : 0);
|
||||
AllyControl.ApplyXBoxStatus();
|
||||
AllyControl.DisableXBoxController(checkController.Checked);
|
||||
}
|
||||
|
||||
private void ComboBinding(RComboBox combo)
|
||||
|
||||
@@ -24,7 +24,7 @@ public static class HardwareControl
|
||||
public static decimal? fullCapacity;
|
||||
public static decimal? chargeCapacity;
|
||||
|
||||
|
||||
public static string? batteryCharge;
|
||||
|
||||
public static string? cpuFan;
|
||||
public static string? gpuFan;
|
||||
@@ -34,6 +34,20 @@ public static class HardwareControl
|
||||
|
||||
static long lastUpdate;
|
||||
|
||||
static bool _chargeWatt = AppConfig.Is("charge_watt");
|
||||
public static bool chargeWatt
|
||||
{
|
||||
get
|
||||
{
|
||||
return _chargeWatt;
|
||||
}
|
||||
set
|
||||
{
|
||||
AppConfig.Set("charge_watt", value ? 1 : 0);
|
||||
_chargeWatt = value;
|
||||
}
|
||||
}
|
||||
|
||||
private static int GetGpuUse()
|
||||
{
|
||||
try
|
||||
@@ -226,8 +240,16 @@ public static class HardwareControl
|
||||
|
||||
if (fullCapacity > 0 && chargeCapacity > 0)
|
||||
{
|
||||
batteryCapacity = Math.Min(100, ((decimal)chargeCapacity / (decimal)fullCapacity) * 100);
|
||||
batteryCapacity = Math.Min(100, (decimal)chargeCapacity / (decimal)fullCapacity * 100);
|
||||
if (batteryCapacity > 99) BatteryControl.UnSetBatteryLimitFull();
|
||||
if (chargeWatt)
|
||||
{
|
||||
batteryCharge = Math.Round((decimal)chargeCapacity / 1000, 1).ToString() + "Wh";
|
||||
}
|
||||
else
|
||||
{
|
||||
batteryCharge = Math.Round(batteryCapacity, 1) + "%";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
using GHelper.Helpers;
|
||||
using Microsoft.Win32.TaskScheduler;
|
||||
using System.Diagnostics;
|
||||
using System.Security.Principal;
|
||||
|
||||
public class Startup
|
||||
{
|
||||
|
||||
static string taskName = "GHelper";
|
||||
static string chargeTaskName = taskName + "Charge";
|
||||
static string strExeFilePath = Application.ExecutablePath.Trim();
|
||||
|
||||
public static bool IsScheduled()
|
||||
{
|
||||
@@ -32,7 +33,6 @@ public class Startup
|
||||
{
|
||||
try
|
||||
{
|
||||
string strExeFilePath = Application.ExecutablePath.Trim();
|
||||
string action = task.Definition.Actions.FirstOrDefault()!.ToString().Trim();
|
||||
if (!strExeFilePath.Equals(action, StringComparison.OrdinalIgnoreCase) && !File.Exists(action))
|
||||
{
|
||||
@@ -41,11 +41,60 @@ public class Startup
|
||||
UnSchedule();
|
||||
Schedule();
|
||||
}
|
||||
} catch (Exception ex)
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Logger.WriteLine($"Can't check startup task: {ex.Message}");
|
||||
}
|
||||
|
||||
if (taskService.RootFolder.AllTasks.FirstOrDefault(t => t.Name == chargeTaskName) == null) ScheduleCharge();
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void UnscheduleCharge()
|
||||
{
|
||||
using (TaskService taskService = new TaskService())
|
||||
{
|
||||
try
|
||||
{
|
||||
taskService.RootFolder.DeleteTask(chargeTaskName);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Logger.WriteLine("Can't remove charge limit task: " + e.Message);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static void ScheduleCharge()
|
||||
{
|
||||
|
||||
if (strExeFilePath is null) return;
|
||||
|
||||
using (TaskDefinition td = TaskService.Instance.NewTask())
|
||||
{
|
||||
td.RegistrationInfo.Description = "G-Helper Charge Limit";
|
||||
td.Triggers.Add(new BootTrigger());
|
||||
td.Actions.Add(strExeFilePath, "charge");
|
||||
|
||||
td.Principal.RunLevel = TaskRunLevel.LUA;
|
||||
td.Principal.LogonType = TaskLogonType.S4U;
|
||||
td.Principal.UserId = WindowsIdentity.GetCurrent().Name;
|
||||
|
||||
td.Settings.StopIfGoingOnBatteries = false;
|
||||
td.Settings.DisallowStartIfOnBatteries = false;
|
||||
td.Settings.ExecutionTimeLimit = TimeSpan.Zero;
|
||||
|
||||
try
|
||||
{
|
||||
TaskService.Instance.RootFolder.RegisterTaskDefinition(chargeTaskName, td);
|
||||
Logger.WriteLine("Charge limit task scheduled: " + strExeFilePath);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Logger.WriteLine("Can't create a charge limit task: " + e.Message);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -53,29 +102,20 @@ public class Startup
|
||||
public static void Schedule()
|
||||
{
|
||||
|
||||
string strExeFilePath = Application.ExecutablePath;
|
||||
|
||||
if (strExeFilePath is null) return;
|
||||
|
||||
var userId = WindowsIdentity.GetCurrent().Name;
|
||||
|
||||
using (TaskDefinition td = TaskService.Instance.NewTask())
|
||||
{
|
||||
|
||||
td.RegistrationInfo.Description = "G-Helper Auto Start";
|
||||
td.Triggers.Add(new LogonTrigger { UserId = userId, Delay = TimeSpan.FromSeconds(1) });
|
||||
td.Triggers.Add(new LogonTrigger { UserId = WindowsIdentity.GetCurrent().Name, Delay = TimeSpan.FromSeconds(1) });
|
||||
td.Actions.Add(strExeFilePath);
|
||||
|
||||
if (ProcessHelper.IsUserAdministrator())
|
||||
if (ProcessHelper.IsUserAdministrator())
|
||||
td.Principal.RunLevel = TaskRunLevel.Highest;
|
||||
|
||||
td.Settings.StopIfGoingOnBatteries = false;
|
||||
td.Settings.DisallowStartIfOnBatteries = false;
|
||||
td.Settings.ExecutionTimeLimit = TimeSpan.Zero;
|
||||
|
||||
Debug.WriteLine(strExeFilePath);
|
||||
Debug.WriteLine(userId);
|
||||
|
||||
try
|
||||
{
|
||||
TaskService.Instance.RootFolder.RegisterTaskDefinition(taskName, td);
|
||||
@@ -87,8 +127,12 @@ public class Startup
|
||||
else
|
||||
ProcessHelper.RunAsAdmin();
|
||||
}
|
||||
|
||||
Logger.WriteLine("Startup task scheduled: " + strExeFilePath);
|
||||
}
|
||||
|
||||
ScheduleCharge();
|
||||
|
||||
}
|
||||
|
||||
public static void UnSchedule()
|
||||
@@ -107,5 +151,7 @@ public class Startup
|
||||
ProcessHelper.RunAsAdmin();
|
||||
}
|
||||
}
|
||||
|
||||
UnscheduleCharge();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,21 +2,31 @@
|
||||
|
||||
public static class TouchscreenHelper
|
||||
{
|
||||
public static bool? ToggleTouchscreen()
|
||||
|
||||
public static bool? GetStatus()
|
||||
{
|
||||
try
|
||||
{
|
||||
ProcessHelper.RunAsAdmin();
|
||||
return ProcessHelper.RunCMD("powershell", "(Get-PnpDevice -FriendlyName '*touch*screen*').Status").Contains("OK");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Logger.WriteLine($"Can't get touchscreen status: {ex.Message}");
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
var status = !ProcessHelper.RunCMD("powershell", "(Get-PnpDevice -FriendlyName '*touch*screen*').Status").Contains("OK");
|
||||
public static void ToggleTouchscreen(bool status)
|
||||
{
|
||||
try
|
||||
{
|
||||
ProcessHelper.RunAsAdmin();
|
||||
ProcessHelper.RunCMD("powershell", (status ? "Enable-PnpDevice" : "Disable-PnpDevice") + " -InstanceId (Get-PnpDevice -FriendlyName '*touch*screen*').InstanceId -Confirm:$false");
|
||||
|
||||
return status;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Logger.WriteLine($"Can't toggle touchscreen: {ex.Message}");
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -228,24 +228,31 @@ namespace GHelper.Input
|
||||
}
|
||||
|
||||
|
||||
static void SetBrightness(int delta)
|
||||
static void SetBrightness(bool up, bool hotkey = false)
|
||||
{
|
||||
int brightness = -1;
|
||||
|
||||
if (isTUF) brightness = ScreenBrightness.Get();
|
||||
if (AppConfig.SwappedBrightness()) delta = -delta;
|
||||
if (AppConfig.SwappedBrightness() && !hotkey) up = !up;
|
||||
|
||||
Program.acpi.DeviceSet(AsusACPI.UniversalControl, delta > 0 ? AsusACPI.Brightness_Up : AsusACPI.Brightness_Down, "Brightness");
|
||||
int step = AppConfig.Get("brightness_step", 10);
|
||||
if (step != 10)
|
||||
{
|
||||
Program.toast.RunToast(ScreenBrightness.Adjust(up ? step : -step) + "%", up ? ToastIcon.BrightnessUp : ToastIcon.BrightnessDown);
|
||||
return;
|
||||
}
|
||||
|
||||
Program.acpi.DeviceSet(AsusACPI.UniversalControl, up ? AsusACPI.Brightness_Up : AsusACPI.Brightness_Down, "Brightness");
|
||||
|
||||
if (isTUF)
|
||||
{
|
||||
if (AppConfig.SwappedBrightness()) return;
|
||||
if (delta < 0 && brightness <= 0) return;
|
||||
if (delta > 0 && brightness >= 100) return;
|
||||
if (!up && brightness <= 0) return;
|
||||
if (up && brightness >= 100) return;
|
||||
|
||||
Thread.Sleep(100);
|
||||
if (brightness == ScreenBrightness.Get())
|
||||
Program.toast.RunToast(ScreenBrightness.Adjust(delta) + "%", (delta < 0) ? ToastIcon.BrightnessDown : ToastIcon.BrightnessUp);
|
||||
Program.toast.RunToast(ScreenBrightness.Adjust(up ? step : -step) + "%", up ? ToastIcon.BrightnessUp : ToastIcon.BrightnessDown);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -275,7 +282,7 @@ namespace GHelper.Input
|
||||
KeyboardHook.KeyPress(Keys.VolumeUp);
|
||||
return;
|
||||
case Keys.F4:
|
||||
KeyProcess("m3");
|
||||
ToggleMic();
|
||||
return;
|
||||
}
|
||||
}
|
||||
@@ -294,10 +301,10 @@ namespace GHelper.Input
|
||||
HandleEvent(199); // Backlight cycle
|
||||
return;
|
||||
case Keys.F5:
|
||||
SetBrightness(-10);
|
||||
SetBrightness(false);
|
||||
return;
|
||||
case Keys.F6:
|
||||
SetBrightness(+10);
|
||||
SetBrightness(true);
|
||||
return;
|
||||
case Keys.F7:
|
||||
KeyboardHook.KeyKeyPress(Keys.LWin, Keys.P);
|
||||
@@ -306,7 +313,7 @@ namespace GHelper.Input
|
||||
HandleEvent(126); // Emojis
|
||||
return;
|
||||
case Keys.F9:
|
||||
KeyProcess("m3"); // MicMute
|
||||
ToggleMic(); // MicMute
|
||||
return;
|
||||
case Keys.F10:
|
||||
HandleEvent(133); // Camera Toggle
|
||||
@@ -365,10 +372,10 @@ namespace GHelper.Input
|
||||
KeyboardHook.KeyPress(Keys.Snapshot);
|
||||
break;
|
||||
case Keys.F7:
|
||||
SetBrightness(-10);
|
||||
SetBrightness(false);
|
||||
break;
|
||||
case Keys.F8:
|
||||
SetBrightness(+10);
|
||||
SetBrightness(true);
|
||||
break;
|
||||
case Keys.F9:
|
||||
KeyboardHook.KeyKeyPress(Keys.LWin, Keys.P);
|
||||
@@ -407,7 +414,7 @@ namespace GHelper.Input
|
||||
{
|
||||
if (e.Key == keyProfile) modeControl.CyclePerformanceMode();
|
||||
if (e.Key == keyApp) Program.SettingsToggle();
|
||||
if (e.Key == Keys.F20) KeyProcess("m3");
|
||||
if (e.Key == Keys.F20) ToggleMic();
|
||||
}
|
||||
|
||||
if (e.Modifier == (ModifierKeys.Control | ModifierKeys.Shift | ModifierKeys.Alt))
|
||||
@@ -417,10 +424,10 @@ namespace GHelper.Input
|
||||
switch (e.Key)
|
||||
{
|
||||
case Keys.F1:
|
||||
SetBrightness(-10);
|
||||
SetBrightness(false);
|
||||
break;
|
||||
case Keys.F2:
|
||||
SetBrightness(10);
|
||||
SetBrightness(true);
|
||||
break;
|
||||
case Keys.F3:
|
||||
Program.settingsForm.gpuControl.ToggleXGM(true);
|
||||
@@ -462,11 +469,11 @@ namespace GHelper.Input
|
||||
{
|
||||
case Keys.VolumeDown:
|
||||
// Screen brightness down on CTRL+VolDown
|
||||
SetBrightness(-10);
|
||||
SetBrightness(false);
|
||||
break;
|
||||
case Keys.VolumeUp:
|
||||
// Screen brightness up on CTRL+VolUp
|
||||
SetBrightness(+10);
|
||||
SetBrightness(true);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -504,6 +511,8 @@ namespace GHelper.Input
|
||||
action = "micmute";
|
||||
if (name == "fnc")
|
||||
action = "fnlock";
|
||||
if (name == "fnv")
|
||||
action = "visual";
|
||||
if (name == "fne")
|
||||
action = "calculator";
|
||||
}
|
||||
@@ -558,15 +567,13 @@ namespace GHelper.Input
|
||||
ToggleFnLock();
|
||||
break;
|
||||
case "micmute":
|
||||
bool muteStatus = Audio.ToggleMute();
|
||||
Program.toast.RunToast(muteStatus ? Properties.Strings.Muted : Properties.Strings.Unmuted, muteStatus ? ToastIcon.MicrophoneMute : ToastIcon.Microphone);
|
||||
if (AppConfig.IsVivoZenbook()) Program.acpi.DeviceSet(AsusACPI.MicMuteLed, muteStatus ? 1 : 0, "MicmuteLed");
|
||||
ToggleMic();
|
||||
break;
|
||||
case "brightness_up":
|
||||
SetBrightness(+10);
|
||||
SetBrightness(true);
|
||||
break;
|
||||
case "brightness_down":
|
||||
SetBrightness(-10);
|
||||
SetBrightness(false);
|
||||
break;
|
||||
case "screenpad_up":
|
||||
SetScreenpad(10);
|
||||
@@ -584,15 +591,27 @@ namespace GHelper.Input
|
||||
Program.settingsForm.BeginInvoke(Program.settingsForm.allyControl.ToggleModeHotkey);
|
||||
break;
|
||||
case "touchscreen":
|
||||
var touchscreenStatus = TouchscreenHelper.ToggleTouchscreen();
|
||||
if (touchscreenStatus is not null)
|
||||
Program.toast.RunToast(Properties.Strings.Touchscreen + " " + ((bool)touchscreenStatus ? Properties.Strings.On : Properties.Strings.Off), ToastIcon.Touchpad);
|
||||
var status = !TouchscreenHelper.GetStatus();
|
||||
Logger.WriteLine("Touchscreen status: " + status);
|
||||
if (status is not null)
|
||||
{
|
||||
Program.toast.RunToast(Properties.Strings.Touchscreen + " " + ((bool)status ? Properties.Strings.On : Properties.Strings.Off), ToastIcon.Touchpad);
|
||||
TouchscreenHelper.ToggleTouchscreen((bool)status);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void ToggleMic()
|
||||
{
|
||||
bool muteStatus = Audio.ToggleMute();
|
||||
Program.toast.RunToast(muteStatus ? Properties.Strings.Muted : Properties.Strings.Unmuted, muteStatus ? ToastIcon.MicrophoneMute : ToastIcon.Microphone);
|
||||
if (AppConfig.IsVivoZenbook()) Program.acpi.DeviceSet(AsusACPI.MicMuteLed, muteStatus ? 1 : 0, "MicmuteLed");
|
||||
}
|
||||
|
||||
static bool GetTouchpadState()
|
||||
{
|
||||
using (var key = Registry.CurrentUser.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\PrecisionTouchPad\Status", false))
|
||||
@@ -777,7 +796,7 @@ namespace GHelper.Input
|
||||
}
|
||||
else
|
||||
{
|
||||
Program.acpi.DeviceSet(AsusACPI.UniversalControl, AsusACPI.Brightness_Down, "Brightness");
|
||||
SetBrightness(false, true);
|
||||
}
|
||||
break;
|
||||
case 32: // FN+F8
|
||||
@@ -792,7 +811,7 @@ namespace GHelper.Input
|
||||
}
|
||||
else
|
||||
{
|
||||
Program.acpi.DeviceSet(AsusACPI.UniversalControl, AsusACPI.Brightness_Up, "Brightness");
|
||||
SetBrightness(true, true);
|
||||
}
|
||||
break;
|
||||
case 133: // Camera Toggle
|
||||
|
||||
@@ -270,9 +270,6 @@ namespace GHelper.Mode
|
||||
var stapmResult = SendCommand.set_stapm_limit((uint)limit_total * 1000);
|
||||
if (init) Logger.WriteLine($"STAPM: {limit_total} {stapmResult}");
|
||||
|
||||
var stapmResult2 = SendCommand.set_stapm2_limit((uint)limit_total * 1000);
|
||||
if (init) Logger.WriteLine($"STAPM2: {limit_total} {stapmResult2}");
|
||||
|
||||
var slowResult = SendCommand.set_slow_limit((uint)limit_slow * 1000);
|
||||
if (init) Logger.WriteLine($"SLOW: {limit_slow} {slowResult}");
|
||||
|
||||
|
||||
@@ -86,7 +86,7 @@
|
||||
|
||||
public override int DPIIncrements()
|
||||
{
|
||||
return 100;
|
||||
return 50;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -53,6 +53,13 @@ namespace GHelper
|
||||
string action = "";
|
||||
if (args.Length > 0) action = args[0];
|
||||
|
||||
if (action == "charge")
|
||||
{
|
||||
BatteryLimit();
|
||||
Application.Exit();
|
||||
return;
|
||||
}
|
||||
|
||||
string language = AppConfig.GetString("language");
|
||||
|
||||
if (language != null && language.Length > 0)
|
||||
@@ -205,7 +212,7 @@ namespace GHelper
|
||||
if (settingsForm.matrixForm is not null && settingsForm.matrixForm.Text != "")
|
||||
settingsForm.matrixForm.InitTheme();
|
||||
|
||||
if (settingsForm.handheldForm is not null && settingsForm.handheldForm.Text != "")
|
||||
if (settingsForm.handheldForm is not null && settingsForm.handheldForm.Text != "")
|
||||
settingsForm.handheldForm.InitTheme();
|
||||
|
||||
break;
|
||||
@@ -243,11 +250,14 @@ namespace GHelper
|
||||
if (AppConfig.IsAlly())
|
||||
{
|
||||
allyControl.Init();
|
||||
} else
|
||||
}
|
||||
else
|
||||
{
|
||||
settingsForm.AutoKeyboard();
|
||||
}
|
||||
|
||||
VisualControl.InitBrightness();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -268,6 +278,7 @@ namespace GHelper
|
||||
}
|
||||
|
||||
if (SystemInformation.PowerStatus.PowerLineStatus == isPlugged) return;
|
||||
if (AppConfig.Is("disable_power_event")) return;
|
||||
SetAutoModes(true);
|
||||
}
|
||||
|
||||
@@ -288,7 +299,7 @@ namespace GHelper
|
||||
}
|
||||
else
|
||||
{
|
||||
var screen = Screen.PrimaryScreen;
|
||||
var screen = Screen.PrimaryScreen;
|
||||
if (screen is null) screen = Screen.FromControl(settingsForm);
|
||||
|
||||
settingsForm.Location = screen.WorkingArea.Location;
|
||||
@@ -299,7 +310,7 @@ namespace GHelper
|
||||
settingsForm.Activate();
|
||||
|
||||
settingsForm.Left = screen.WorkingArea.Width - 10 - settingsForm.Width;
|
||||
|
||||
|
||||
if (AppConfig.IsAlly())
|
||||
settingsForm.Top = Math.Max(10, screen.Bounds.Height - 110 - settingsForm.Height);
|
||||
else
|
||||
@@ -328,6 +339,23 @@ namespace GHelper
|
||||
Application.Exit();
|
||||
}
|
||||
|
||||
static void BatteryLimit()
|
||||
{
|
||||
try
|
||||
{
|
||||
int limit = AppConfig.Get("charge_limit");
|
||||
if (limit > 0 && limit < 100)
|
||||
{
|
||||
Logger.WriteLine($"------- Startup Battery Limit {limit} -------");
|
||||
acpi = new AsusACPI();
|
||||
acpi.DeviceSet(AsusACPI.BatteryLimit, limit, "Limit");
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Logger.WriteLine("Startup Battery Limit Error: " + ex.Message);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -250,13 +250,13 @@
|
||||
<value>Pabudęs</value>
|
||||
</data>
|
||||
<data name="BacklightLow" xml:space="preserve">
|
||||
<value>Low</value>
|
||||
<value>Žem.</value>
|
||||
</data>
|
||||
<data name="BacklightMax" xml:space="preserve">
|
||||
<value>Max</value>
|
||||
<value>Maks.</value>
|
||||
</data>
|
||||
<data name="BacklightMid" xml:space="preserve">
|
||||
<value>Mid</value>
|
||||
<value>Vid.</value>
|
||||
</data>
|
||||
<data name="BacklightOff" xml:space="preserve">
|
||||
<value>Išjungta</value>
|
||||
@@ -265,10 +265,10 @@
|
||||
<value>Laiko riba su lizdu / akumuliatoriumi (0 – ĮJUNGTA)</value>
|
||||
</data>
|
||||
<data name="BacklightTimeoutBattery" xml:space="preserve">
|
||||
<value>Backlight Timeout when on battery</value>
|
||||
<value>Foninio apšvietimo laikas akumuliatoriaus režimu</value>
|
||||
</data>
|
||||
<data name="BacklightTimeoutPlugged" xml:space="preserve">
|
||||
<value>Backlight Timeout when plugged</value>
|
||||
<value>Foninio apšvietimo laikas įkraunant</value>
|
||||
</data>
|
||||
<data name="Balanced" xml:space="preserve">
|
||||
<value>Balansuotas</value>
|
||||
@@ -519,7 +519,7 @@ Vis tiek norite tęsti?</value>
|
||||
<value>Kairiojo jungiklio nejautrumo zonos</value>
|
||||
</data>
|
||||
<data name="LTDeadzones" xml:space="preserve">
|
||||
<value>Left Trigger Deadzones</value>
|
||||
<value>Kairiojo jungiklio nejautrumo zonos</value>
|
||||
</data>
|
||||
<data name="MatrixAudio" xml:space="preserve">
|
||||
<value>Garso vizualizatorius</value>
|
||||
@@ -585,13 +585,13 @@ Vis tiek norite tęsti?</value>
|
||||
<value>Sinchronizuoti su pele</value>
|
||||
</data>
|
||||
<data name="Multizone" xml:space="preserve">
|
||||
<value>Multi Zone</value>
|
||||
<value>Kelios zonos</value>
|
||||
</data>
|
||||
<data name="MultizoneStrong" xml:space="preserve">
|
||||
<value>Multi Zone Strong</value>
|
||||
<value>Kelių zonų stiprumas</value>
|
||||
</data>
|
||||
<data name="Muted" xml:space="preserve">
|
||||
<value>Muted</value>
|
||||
<value>Išjungta</value>
|
||||
</data>
|
||||
<data name="MuteMic" xml:space="preserve">
|
||||
<value>Mikrofono nutildymas</value>
|
||||
@@ -615,7 +615,7 @@ Vis tiek norite tęsti?</value>
|
||||
<value>Įjungta</value>
|
||||
</data>
|
||||
<data name="OneZone" xml:space="preserve">
|
||||
<value>One Zone</value>
|
||||
<value>Viena zona</value>
|
||||
</data>
|
||||
<data name="OpenGHelper" xml:space="preserve">
|
||||
<value>Atidaryti G-Helper langą</value>
|
||||
@@ -675,16 +675,16 @@ Vis tiek norite tęsti?</value>
|
||||
<value>RPM</value>
|
||||
</data>
|
||||
<data name="RSDeadzones" xml:space="preserve">
|
||||
<value>Right Stick Deadzones</value>
|
||||
<value>Dešiniojo jungiklio nejautrumo zonos</value>
|
||||
</data>
|
||||
<data name="RTDeadzones" xml:space="preserve">
|
||||
<value>Right Trigger Deadzones</value>
|
||||
<value>Dešiniojo jungiklio nejautrumo zonos</value>
|
||||
</data>
|
||||
<data name="RunOnStartup" xml:space="preserve">
|
||||
<value>Paleisti įjungus sistemą</value>
|
||||
</data>
|
||||
<data name="ScalingQuality" xml:space="preserve">
|
||||
<value>Scaling Quality</value>
|
||||
<value>Mastelio kokybė</value>
|
||||
</data>
|
||||
<data name="ScreenPadDown" xml:space="preserve">
|
||||
<value>Ekrano skydelio ryškumo mažinimas</value>
|
||||
@@ -741,10 +741,10 @@ Vis tiek norite tęsti?</value>
|
||||
<value>Perjungti ekraną</value>
|
||||
</data>
|
||||
<data name="ToggleTouchscreen" xml:space="preserve">
|
||||
<value>Toggle Touchscreen</value>
|
||||
<value>Valdyti jutiklinį ekraną</value>
|
||||
</data>
|
||||
<data name="Touchscreen" xml:space="preserve">
|
||||
<value>Touchscreen</value>
|
||||
<value>Jutiklinis ekranas</value>
|
||||
</data>
|
||||
<data name="Turbo" xml:space="preserve">
|
||||
<value>Turbo</value>
|
||||
@@ -765,7 +765,7 @@ Vis tiek norite tęsti?</value>
|
||||
<value>Įtampos mažinimas yra eksperimentinė ir pavojinga funkcija. Jei pritaikytos reikšmės yra per mažos jūsų aparatinei įrangai, ji gali tapti nestabili, išsijungti arba pažeisti duomenų vientisumą. Jei norite pabandyti, iš pirmo pradėkite nuo mažų reikšmių, spustelėkite „Taikyti“ ir išbandykite, kas jums tinka.</value>
|
||||
</data>
|
||||
<data name="Unmuted" xml:space="preserve">
|
||||
<value>Unmuted</value>
|
||||
<value>Įjungta</value>
|
||||
</data>
|
||||
<data name="Updates" xml:space="preserve">
|
||||
<value>Naujinimai</value>
|
||||
@@ -798,24 +798,24 @@ Vis tiek norite tęsti?</value>
|
||||
<value>Visada rodyti programėlės langą viršuje</value>
|
||||
</data>
|
||||
<data name="Zoom" xml:space="preserve">
|
||||
<value>Zoom</value>
|
||||
<value>Mastelis</value>
|
||||
</data>
|
||||
<data name="Donate" xml:space="preserve">
|
||||
<value>Donate</value>
|
||||
<value>Paremti</value>
|
||||
</data>
|
||||
<data name="Legend" xml:space="preserve">
|
||||
<value>Legend</value>
|
||||
<value>Legenda</value>
|
||||
</data>
|
||||
<data name="LegendGray" xml:space="preserve">
|
||||
<value>Can't check local version</value>
|
||||
<value>Nepavyko patikrinti vietinės versijos</value>
|
||||
<comment>Can't check local version</comment>
|
||||
</data>
|
||||
<data name="LegendRed" xml:space="preserve">
|
||||
<value>Update Available</value>
|
||||
<value>Išleista nauja versija</value>
|
||||
<comment>Update Available</comment>
|
||||
</data>
|
||||
<data name="LegendGreen" xml:space="preserve">
|
||||
<value>Updated</value>
|
||||
<value>Atnaujinta</value>
|
||||
<comment>Updated</comment>
|
||||
</data>
|
||||
</root>
|
||||
@@ -744,7 +744,7 @@ Nadal chcesz kontynuować?</value>
|
||||
<value>Włącz/wyłącz ekran dotykowy</value>
|
||||
</data>
|
||||
<data name="Touchscreen" xml:space="preserve">
|
||||
<value>Touchscreen</value>
|
||||
<value>Ekran dotykowy</value>
|
||||
</data>
|
||||
<data name="Turbo" xml:space="preserve">
|
||||
<value>Turbo</value>
|
||||
@@ -801,21 +801,21 @@ Nadal chcesz kontynuować?</value>
|
||||
<value>Przybliżenie</value>
|
||||
</data>
|
||||
<data name="Donate" xml:space="preserve">
|
||||
<value>Donate</value>
|
||||
<value>Wesprzyj</value>
|
||||
</data>
|
||||
<data name="Legend" xml:space="preserve">
|
||||
<value>Legend</value>
|
||||
<value>Legenda</value>
|
||||
</data>
|
||||
<data name="LegendGray" xml:space="preserve">
|
||||
<value>Can't check local version</value>
|
||||
<value>Brak informacji</value>
|
||||
<comment>Can't check local version</comment>
|
||||
</data>
|
||||
<data name="LegendRed" xml:space="preserve">
|
||||
<value>Update Available</value>
|
||||
<value>Dostępna aktualizacja</value>
|
||||
<comment>Update Available</comment>
|
||||
</data>
|
||||
<data name="LegendGreen" xml:space="preserve">
|
||||
<value>Updated</value>
|
||||
<value>Wersja aktualna</value>
|
||||
<comment>Updated</comment>
|
||||
</data>
|
||||
</root>
|
||||
@@ -157,7 +157,7 @@
|
||||
<value>程式正在執行</value>
|
||||
</data>
|
||||
<data name="AppAlreadyRunningText" xml:space="preserve">
|
||||
<value>G-Helper正在執行。 請檢查右下系統匣。</value>
|
||||
<value>G-Helper 正在執行。 請檢查右下系統匣。</value>
|
||||
</data>
|
||||
<data name="Apply" xml:space="preserve">
|
||||
<value>套用</value>
|
||||
@@ -169,10 +169,10 @@
|
||||
<value>套用功率限制</value>
|
||||
</data>
|
||||
<data name="ApplyWindowsPowerPlan" xml:space="preserve">
|
||||
<value>自動調整Windows電源模式</value>
|
||||
<value>自動調整 Windows 電源模式</value>
|
||||
</data>
|
||||
<data name="APUMemory" xml:space="preserve">
|
||||
<value>分配給GPU的記憶體</value>
|
||||
<value>分配給 GPU 的記憶體</value>
|
||||
</data>
|
||||
<data name="AsusServicesRunning" xml:space="preserve">
|
||||
<value>執行中的華碩服務</value>
|
||||
@@ -295,7 +295,7 @@
|
||||
<value>次要</value>
|
||||
</data>
|
||||
<data name="BiosAndDriverUpdates" xml:space="preserve">
|
||||
<value>BIOS與驅動程式更新</value>
|
||||
<value>BIOS 與驅動程式更新</value>
|
||||
</data>
|
||||
<data name="Boot" xml:space="preserve">
|
||||
<value>開機時</value>
|
||||
@@ -744,7 +744,7 @@
|
||||
<value>切換螢幕觸控</value>
|
||||
</data>
|
||||
<data name="Touchscreen" xml:space="preserve">
|
||||
<value>Touchscreen</value>
|
||||
<value>觸控螢幕</value>
|
||||
</data>
|
||||
<data name="Turbo" xml:space="preserve">
|
||||
<value>極速</value>
|
||||
@@ -801,21 +801,21 @@
|
||||
<value>縮放</value>
|
||||
</data>
|
||||
<data name="Donate" xml:space="preserve">
|
||||
<value>Donate</value>
|
||||
<value>捐贈</value>
|
||||
</data>
|
||||
<data name="Legend" xml:space="preserve">
|
||||
<value>Legend</value>
|
||||
</data>
|
||||
<data name="LegendGray" xml:space="preserve">
|
||||
<value>Can't check local version</value>
|
||||
<value>無法檢查本機版本</value>
|
||||
<comment>Can't check local version</comment>
|
||||
</data>
|
||||
<data name="LegendRed" xml:space="preserve">
|
||||
<value>Update Available</value>
|
||||
<value>有可用的更新</value>
|
||||
<comment>Update Available</comment>
|
||||
</data>
|
||||
<data name="LegendGreen" xml:space="preserve">
|
||||
<value>Updated</value>
|
||||
<value>已更新</value>
|
||||
<comment>Updated</comment>
|
||||
</data>
|
||||
</root>
|
||||
@@ -40,7 +40,8 @@ namespace Ryzen
|
||||
//PHEONIX - 9
|
||||
//RAPHAEL/DRAGON RANGE - 10
|
||||
//MENDOCINO - 11
|
||||
//HAWKPOINT/STRIXPOINT - 12
|
||||
//HAWKPOINT - 12
|
||||
//STRIXPOINT - 13
|
||||
|
||||
public static void Init()
|
||||
{
|
||||
@@ -129,7 +130,7 @@ namespace Ryzen
|
||||
|
||||
if (CPUModel.Contains("Family " + Convert.ToString(26)) && CPUModel.Contains("Model " + Convert.ToString(36)))
|
||||
{
|
||||
FAMID = 12; //STRIXPOINT
|
||||
FAMID = 13; //STRIXPOINT
|
||||
}
|
||||
|
||||
Logger.WriteLine($"CPU: {FAMID} - {CPUName} - {CPUModel}");
|
||||
@@ -243,6 +244,16 @@ namespace Ryzen
|
||||
Smu.PSMU_ADDR_RSP = 0x3B10a80;
|
||||
Smu.PSMU_ADDR_ARG = 0x3B10a88;
|
||||
}
|
||||
else if (FAMID == 13)
|
||||
{
|
||||
Smu.MP1_ADDR_MSG = 0x3B10928;
|
||||
Smu.MP1_ADDR_RSP = 0x3B10978;
|
||||
Smu.MP1_ADDR_ARG = 0x3B10998;
|
||||
|
||||
Smu.PSMU_ADDR_MSG = 0x3B10a20;
|
||||
Smu.PSMU_ADDR_RSP = 0x3B10a80;
|
||||
Smu.PSMU_ADDR_ARG = 0x3B10a88;
|
||||
}
|
||||
else if (FAMID == 4 || FAMID == 6)
|
||||
{
|
||||
Smu.MP1_ADDR_MSG = 0x3B10530;
|
||||
|
||||
@@ -21,7 +21,8 @@ namespace Ryzen
|
||||
//PHEONIX - 9
|
||||
//RAPHAEL/DRAGON RANGE - 10
|
||||
//MENDOCINO - 11
|
||||
//HAWKPOINT/STRIXPOINT - 12
|
||||
//HAWKPOINT - 12
|
||||
//STRIXPOINT - 13
|
||||
|
||||
public static Smu RyzenAccess = new Smu(false);
|
||||
public static int FAMID = RyzenControl.FAMID;
|
||||
@@ -49,7 +50,8 @@ namespace Ryzen
|
||||
case 9:
|
||||
case 11:
|
||||
case 12:
|
||||
RyzenAccess.SendMp1(0x14, ref Args);
|
||||
case 13:
|
||||
result = RyzenAccess.SendMp1(0x14, ref Args);
|
||||
result = RyzenAccess.SendPsmu(0x31, ref Args);
|
||||
break;
|
||||
default:
|
||||
@@ -61,32 +63,6 @@ namespace Ryzen
|
||||
|
||||
}
|
||||
|
||||
//STAMP2 Limit
|
||||
public static Smu.Status? set_stapm2_limit(uint value)
|
||||
{
|
||||
RyzenAccess.Initialize();
|
||||
uint[] Args = new uint[6];
|
||||
Args[0] = value;
|
||||
Smu.Status? result = null;
|
||||
|
||||
switch (FAMID)
|
||||
{
|
||||
case 3:
|
||||
case 5:
|
||||
case 7:
|
||||
case 8:
|
||||
case 9:
|
||||
case 11:
|
||||
case 12:
|
||||
result = RyzenAccess.SendPsmu(0x31, ref Args);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
RyzenAccess.Deinitialize();
|
||||
return result;
|
||||
}
|
||||
|
||||
//Fast Limit
|
||||
public static Smu.Status? set_fast_limit(uint value)
|
||||
{
|
||||
@@ -109,7 +85,9 @@ namespace Ryzen
|
||||
case 9:
|
||||
case 11:
|
||||
case 12:
|
||||
case 13:
|
||||
result = RyzenAccess.SendMp1(0x15, ref Args);
|
||||
result = RyzenAccess.SendPsmu(0x32, ref Args);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@@ -140,7 +118,10 @@ namespace Ryzen
|
||||
case 9:
|
||||
case 11:
|
||||
case 12:
|
||||
case 13:
|
||||
result = RyzenAccess.SendMp1(0x16, ref Args);
|
||||
result = RyzenAccess.SendPsmu(0x33, ref Args);
|
||||
result = RyzenAccess.SendPsmu(0x34, ref Args);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@@ -176,11 +157,12 @@ namespace Ryzen
|
||||
case 9:
|
||||
case 11:
|
||||
case 12:
|
||||
case 13:
|
||||
result = RyzenAccess.SendMp1(0x19, ref Args);
|
||||
break;
|
||||
case 4:
|
||||
case 6:
|
||||
RyzenAccess.SendMp1(0x23, ref Args);
|
||||
result = RyzenAccess.SendMp1(0x23, ref Args);
|
||||
result = RyzenAccess.SendPsmu(0x56, ref Args);
|
||||
break;
|
||||
case 10:
|
||||
@@ -194,37 +176,6 @@ namespace Ryzen
|
||||
return result;
|
||||
}
|
||||
|
||||
//Skin Temp limit
|
||||
public static Smu.Status? set_apu_skin_temp_limit(uint value)
|
||||
{
|
||||
RyzenAccess.Initialize();
|
||||
uint[] Args = new uint[6];
|
||||
Args[0] = value;
|
||||
|
||||
Smu.Status? result = null;
|
||||
|
||||
switch (FAMID)
|
||||
{
|
||||
case 5:
|
||||
case 8:
|
||||
case 9:
|
||||
case 11:
|
||||
case 12:
|
||||
result = RyzenAccess.SendMp1(0x33, ref Args);
|
||||
break;
|
||||
case 3:
|
||||
case 7:
|
||||
result = RyzenAccess.SendMp1(0x38, ref Args);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
RyzenAccess.Deinitialize();
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
//Set All Core Curve Optimiser
|
||||
public static Smu.Status? set_coall(int value)
|
||||
{
|
||||
@@ -241,12 +192,12 @@ namespace Ryzen
|
||||
{
|
||||
case 3:
|
||||
case 7:
|
||||
RyzenAccess.SendMp1(0x55, ref Args);
|
||||
result = RyzenAccess.SendMp1(0x55, ref Args);
|
||||
result = RyzenAccess.SendPsmu(0xB1, ref Args);
|
||||
break;
|
||||
case 4:
|
||||
case 6:
|
||||
RyzenAccess.SendMp1(0x36, ref Args);
|
||||
result = RyzenAccess.SendMp1(0x36, ref Args);
|
||||
result = RyzenAccess.SendPsmu(0xB, ref Args);
|
||||
break;
|
||||
case 5:
|
||||
@@ -254,6 +205,7 @@ namespace Ryzen
|
||||
case 9:
|
||||
case 11:
|
||||
case 12:
|
||||
case 13:
|
||||
result = RyzenAccess.SendPsmu(0x5D, ref Args);
|
||||
break;
|
||||
case 10:
|
||||
@@ -285,7 +237,7 @@ namespace Ryzen
|
||||
{
|
||||
case 3:
|
||||
case 7:
|
||||
RyzenAccess.SendMp1(0x64, ref Args);
|
||||
result = RyzenAccess.SendMp1(0x64, ref Args);
|
||||
result = RyzenAccess.SendPsmu(0x57, ref Args);
|
||||
break;
|
||||
case 5:
|
||||
@@ -293,6 +245,7 @@ namespace Ryzen
|
||||
case 9:
|
||||
case 11:
|
||||
case 12:
|
||||
case 13:
|
||||
result = RyzenAccess.SendPsmu(0xb7, ref Args);
|
||||
break;
|
||||
default:
|
||||
|
||||
@@ -235,6 +235,7 @@ namespace GHelper
|
||||
|
||||
labelCharge.MouseEnter += PanelBattery_MouseEnter;
|
||||
labelCharge.MouseLeave += PanelBattery_MouseLeave;
|
||||
labelBattery.Click += LabelBattery_Click;
|
||||
|
||||
buttonPeripheral1.Click += ButtonPeripheral_Click;
|
||||
buttonPeripheral2.Click += ButtonPeripheral_Click;
|
||||
@@ -284,6 +285,12 @@ namespace GHelper
|
||||
InitVisual();
|
||||
}
|
||||
|
||||
private void LabelBattery_Click(object? sender, EventArgs e)
|
||||
{
|
||||
HardwareControl.chargeWatt = !HardwareControl.chargeWatt;
|
||||
RefreshSensors(true);
|
||||
}
|
||||
|
||||
private void ButtonDonate_Click(object? sender, EventArgs e)
|
||||
{
|
||||
AppConfig.Set("donate_click", 1);
|
||||
@@ -453,7 +460,7 @@ namespace GHelper
|
||||
Invoke(delegate
|
||||
{
|
||||
sliderGammaIgnore = true;
|
||||
sliderGamma.Value = AppConfig.Get("brightness", 100);
|
||||
sliderGamma.Value = VisualControl.GetBrightness();
|
||||
labelGamma.Text = sliderGamma.Value + "%";
|
||||
sliderGammaIgnore = false;
|
||||
});
|
||||
@@ -1420,7 +1427,9 @@ namespace GHelper
|
||||
cpuTemp = ": " + Math.Round((decimal)HardwareControl.cpuTemp).ToString() + "°C";
|
||||
|
||||
if (HardwareControl.batteryCapacity > 0)
|
||||
charge = Properties.Strings.BatteryCharge + ": " + Math.Round(HardwareControl.batteryCapacity, 1) + "% ";
|
||||
{
|
||||
charge = Properties.Strings.BatteryCharge + ": " + HardwareControl.batteryCharge;
|
||||
}
|
||||
|
||||
if (HardwareControl.batteryRate < 0)
|
||||
battery = Properties.Strings.Discharging + ": " + Math.Round(-(decimal)HardwareControl.batteryRate, 1).ToString() + "W";
|
||||
|
||||
@@ -211,17 +211,26 @@ namespace GHelper
|
||||
|
||||
public void VisualiseNewCount(int updatesCount, TableLayoutPanel table)
|
||||
{
|
||||
Invoke(delegate
|
||||
if (InvokeRequired)
|
||||
{
|
||||
labelUpdates.Text = $"{Properties.Strings.NewUpdates}: {updatesCount}";
|
||||
labelUpdates.ForeColor = colorTurbo;
|
||||
labelUpdates.Font = new Font(labelUpdates.Font, FontStyle.Bold);
|
||||
|
||||
panelBios.AccessibleName = labelUpdates.Text;
|
||||
|
||||
});
|
||||
Invoke(delegate
|
||||
{
|
||||
_VisualiseNewCount(updatesCount, table);
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
_VisualiseNewCount(updatesCount, table);
|
||||
}
|
||||
}
|
||||
|
||||
public void _VisualiseNewCount(int updatesCount, TableLayoutPanel table)
|
||||
{
|
||||
labelUpdates.Text = $"{Properties.Strings.NewUpdates}: {updatesCount}";
|
||||
labelUpdates.ForeColor = colorTurbo;
|
||||
labelUpdates.Font = new Font(labelUpdates.Font, FontStyle.Bold);
|
||||
panelBios.AccessibleName = labelUpdates.Text;
|
||||
}
|
||||
|
||||
static string CleanupDeviceId(string input)
|
||||
{
|
||||
|
||||
@@ -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 or Scar Series, ProArt, Vivobook, Zenbook, ROG Ally / Ally X and many more!
|
||||
Works with all popular models, such as ROG Zephyrus G14, G15, G16, M16, Flow X13, Flow X16, Flow Z13, DUO, TUF Series, Strix or Scar Series, ProArt, Vivobook, Zenbook, ROG Ally or Ally X 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