Compare commits

...

96 Commits

Author SHA1 Message Date
Serge
8f70f2a65f Max fan speeds for FX607J 2024-04-21 13:36:01 +02:00
Serge
e193290736 Tray icons update 2024-04-21 13:27:57 +02:00
Serge
23ee21e351 BW Icons update https://github.com/seerge/g-helper/issues/2463 2024-04-21 11:03:37 +02:00
Serge
1e18b94a9c Added UM340 to OLED list https://github.com/seerge/g-helper/discussions/2462 2024-04-20 23:55:29 +02:00
Serge
bdba153ddc Slash Lighting tweaks https://github.com/seerge/g-helper/issues/2381 2024-04-20 18:57:10 +02:00
Serge
c65002cbae Per-led static slash lighting brightness https://github.com/seerge/g-helper/issues/2448 2024-04-19 19:29:20 +02:00
Serge
b6682522d8 Static white for Slash Lighting https://github.com/seerge/g-helper/issues/2448 2024-04-19 16:40:52 +02:00
Serge
c6247f630c Slash lighting tweaks 2024-04-19 14:48:02 +02:00
Serge
cd4936c839 Merge branch 'main' of https://github.com/seerge/g-helper 2024-04-19 11:50:58 +02:00
Serge
5dc9061162 Version Bump 2024-04-19 11:50:56 +02:00
Serge
81b128e76c New translations strings.resx (Chinese Traditional) (#2450) 2024-04-19 11:42:36 +02:00
Serge
5fc999efe8 Fn-lock tweak 2024-04-18 18:14:09 +02:00
Serge
ae41aedb1e Support for inverted fn-lock https://github.com/seerge/g-helper/issues/2445 2024-04-18 18:03:56 +02:00
Serge
51bf22e6a6 Static mode for Slash Lighting https://github.com/seerge/g-helper/issues/2448 2024-04-18 12:52:49 +02:00
Serge
ad3d31cba4 Slash lightning tweak https://github.com/seerge/g-helper/issues/2447 2024-04-18 10:55:00 +02:00
Serge
f13209f403 G614JVR backlight tweaks https://github.com/seerge/g-helper/issues/2444 2024-04-17 17:05:26 +02:00
Serge
2a949732a2 OLED settings for M140 https://github.com/seerge/g-helper/issues/2445 2024-04-17 11:01:00 +02:00
Serge
fc1f594a61 Max fan speeds for GU605 2024-04-16 16:24:55 +02:00
Serge
300eb7af70 Aura cleanup 2024-04-15 19:32:29 +02:00
Serge
55f45fba03 Merge branch 'main' of https://github.com/seerge/g-helper 2024-04-15 12:18:21 +02:00
Serge
b41055ce0f Updates tweaks 2024-04-15 12:18:18 +02:00
Serge
ebb8cda8f0 New translations strings.resx (Turkish) (#2434) 2024-04-15 12:17:59 +02:00
Serge
f983bdac42 Updates fix 2024-04-15 00:17:00 +02:00
Serge
04143abf7c Updates fix 2024-04-15 00:05:43 +02:00
Serge
b219ff5af4 Updates tweak 2024-04-14 23:25:10 +02:00
Serge
df20fa63a9 Clock reset fix 2024-04-14 22:46:14 +02:00
Serge
501dcb3235 Updates UI tweaks 2024-04-14 15:46:02 +02:00
Serge
322c5dd7c5 Updates section fix 2024-04-14 15:20:47 +02:00
Serge
f68b9218b6 Keyboard control for power sliders 2024-04-14 14:49:11 +02:00
Serge
f35ad1804c Power limits UI tweaks 2024-04-14 14:38:11 +02:00
Serge
5739b63225 Mouse Events support https://github.com/seerge/g-helper/issues/2430 2024-04-14 12:16:35 +02:00
Serge
4cdfb6710b Merge branch 'main' of https://github.com/seerge/g-helper 2024-04-13 15:52:32 +02:00
Serge
db9e4d75cb Power limits improvement for https://github.com/seerge/g-helper/issues/2429 https://github.com/seerge/g-helper/issues/2429 2024-04-13 15:52:29 +02:00
Serge
2d52345f11 Update README.md 2024-04-11 23:49:56 +02:00
Serge
64745ca01e Aura tweaks 2024-04-11 20:05:21 +02:00
Serge
4b42106c31 Added G614J / G814J to the list of devices that require fans curve to be applied in order to make custom power liimits work 2024-04-11 15:06:00 +02:00
Serge
387e869833 UI Tweaks 2024-04-11 13:05:41 +02:00
Serge
2a8e24bc74 Merge branch 'main' of https://github.com/seerge/g-helper 2024-04-11 11:55:19 +02:00
Serge
5c000c0bb0 Typo fix 2024-04-11 11:55:17 +02:00
Serge
1f22887197 Update README.md 2024-04-10 12:17:06 +02:00
Serge
a3913e0ea8 Update README.md 2024-04-10 12:16:40 +02:00
Serge
2aa34edfb2 Version bump 2024-04-07 13:56:02 +02:00
Serge
d7fe4a3bee ModeToggle delay https://github.com/seerge/g-helper/issues/2391 2024-04-05 14:50:21 +02:00
Serge
f072dbe020 Refresh rate hotkey https://github.com/seerge/g-helper/issues/2389 2024-04-05 14:06:59 +02:00
Serge
ccfd514081 Merge branch 'main' of https://github.com/seerge/g-helper 2024-04-05 13:53:28 +02:00
Serge
558f8b2cc0 Slash lightning tweaks https://github.com/seerge/g-helper/issues/2381 2024-04-05 13:53:25 +02:00
Serge
bbf4c10a2e New Crowdin updates (#2383)
* New translations strings.resx (Turkish)

* New translations strings.resx (Turkish)
2024-04-04 17:41:43 +02:00
Serge
fe4e2ea478 New Crowdin updates (#2382)
* New translations strings.resx (Turkish)

* New translations strings.resx (Turkish)
2024-04-04 13:00:03 +02:00
Serge
8d7108bc1e New translations strings.resx (Spanish) (#2374) 2024-04-03 13:23:46 +02:00
Serge
3e28d3f027 New Crowdin updates (#2369)
* New translations strings.resx (Polish)

* New translations strings.resx (French)
2024-04-03 09:52:47 +02:00
Serge
0e42f7955e New translations strings.resx (German) (#2367) 2024-04-02 20:26:11 +02:00
Serge
fff3c2924e Corrected vivobook dimming 2024-04-02 18:15:38 +02:00
Serge
65716048ff Merge branch 'main' of https://github.com/seerge/g-helper 2024-04-02 14:48:30 +02:00
Serge
2e0eed3ab9 Dimming hotkeys for Vivobooks 2024-04-02 14:48:27 +02:00
Serge
bde76ead7e New translations strings.resx (Chinese Simplified) (#2363) 2024-04-02 10:52:34 +02:00
Serge
ebb8de4103 UI tweaks 2024-04-01 18:33:24 +02:00
Serge
8a4d553591 UI Tweaks 2024-04-01 18:24:51 +02:00
Serge
c25ec71104 Merge branch 'main' of https://github.com/seerge/g-helper 2024-04-01 18:23:21 +02:00
Serge
6a9cf45490 Aura fix for GU502 https://github.com/seerge/g-helper/issues/2359 2024-04-01 18:23:19 +02:00
Serge
11da574c48 New Crowdin updates (#2356)
* New translations strings.resx (Romanian)

* New translations strings.resx (French)

* New translations strings.resx (Spanish)

* New translations strings.resx (German)

* New translations strings.resx (Hungarian)

* New translations strings.resx (Italian)

* New translations strings.resx (Korean)

* New translations strings.resx (Lithuanian)

* New translations strings.resx (Polish)

* New translations strings.resx (Portuguese)

* New translations strings.resx (Turkish)

* New translations strings.resx (Ukrainian)

* New translations strings.resx (Chinese Simplified)

* New translations strings.resx (Chinese Traditional)

* New translations strings.resx (Vietnamese)

* New translations strings.resx (Portuguese, Brazilian)

* New translations strings.resx (Indonesian)
2024-04-01 16:12:19 +02:00
Serge
98a22802a0 Version bump 2024-04-01 15:56:48 +02:00
Serge
5594be868b Cleanup 2024-04-01 15:23:17 +02:00
Serge
13c2e725fa Ryzen power cleanup 2024-04-01 15:08:38 +02:00
Serge
11e0dc2df3 Reapply timer 2024-04-01 14:55:00 +02:00
Serge
6758bde975 Re-apply ryzen power limits for old models https://github.com/seerge/g-helper/issues/2355 2024-04-01 14:46:36 +02:00
Serge
ed92dd236f SPPT tweak for old devices https://github.com/seerge/g-helper/issues/2355 2024-04-01 14:31:28 +02:00
Serge
3fc5d6a124 Added option to lock screen https://github.com/seerge/g-helper/issues/2352 2024-04-01 14:22:29 +02:00
Serge
351566e24a Nvidia-smi tweaks 2024-04-01 14:14:28 +02:00
Serge
65b40a4f7a Disregard inadequate nvidia-smi readings for GPU power 2024-04-01 14:03:17 +02:00
Serge
e2a8688581 UI Tweaks 2024-04-01 12:16:25 +02:00
Serge
9445c1c60b Aura tweaks for Strix 2024 https://github.com/seerge/g-helper/issues/2344 2024-04-01 11:23:58 +02:00
Serge
9be602b230 Minor tweaks 2024-04-01 11:23:19 +02:00
Serge
2f83ae7cf6 Correct BIOS versions for swapped fan curves 2024-03-31 22:32:28 +02:00
Serge
ead49d117e UI Tweaks 2024-03-31 20:13:26 +02:00
Serge
9c0e2b4123 UI Tweaks 2024-03-31 20:09:30 +02:00
Serge
0355ca1420 Visual modes for Vivobooks https://github.com/seerge/g-helper/issues/2342 2024-03-31 19:25:01 +02:00
Serge
b5274ae9be Vivobook Visual modes and gamuts https://github.com/seerge/g-helper/issues/2342 2024-03-31 16:42:05 +02:00
Serge
0fc261cfa7 Battery report cleanup 2024-03-31 11:58:01 +02:00
Serge
efa2f0760a Battery report tweaks https://github.com/seerge/g-helper/issues/2311 2024-03-31 11:54:56 +02:00
Serge
822391c98f Added S15 OLED https://github.com/seerge/g-helper/issues/2342 2024-03-31 11:39:37 +02:00
Serge
22ffa19114 Merge branch 'main' of https://github.com/seerge/g-helper 2024-03-30 20:23:26 +01:00
Serge
af90645d6d Ally UI fix https://github.com/seerge/g-helper/issues/2341 2024-03-30 20:23:24 +01:00
Serge
a5590a9ed6 New Crowdin updates (#2323)
* New translations strings.resx (Polish)

* New translations strings.resx (Ukrainian)
2024-03-30 18:26:40 +01:00
Serge
ed8f056c6e Minor UI fix https://github.com/seerge/g-helper/issues/2339 2024-03-30 16:23:30 +01:00
Serge
0b2c962386 Maximize button for Fans+Power https://github.com/seerge/g-helper/issues/2312 2024-03-28 14:43:04 +01:00
Serge
77e63f7703 Version bump 2024-03-28 12:57:18 +01:00
Serge
8e686aded3 Merge branch 'main' of https://github.com/seerge/g-helper 2024-03-28 12:56:19 +01:00
Serge
f866f724b2 Generate battery report in user home directory https://github.com/seerge/g-helper/issues/2311 2024-03-28 12:56:17 +01:00
Serge
29408c4256 Update README.md 2024-03-28 03:37:59 +01:00
Serge
c77a87f435 Improved HDR detection 2024-03-27 23:56:13 +01:00
Serge
66a1774d78 Merge branch 'main' of https://github.com/seerge/g-helper 2024-03-27 18:25:56 +01:00
Serge
2532aadb13 Generate battery report when clicking on battery health #2311 2024-03-27 18:25:54 +01:00
Serge
2ba6c9de20 New Crowdin updates (#2310)
* New translations strings.resx (Romanian)

* New translations strings.resx (French)

* New translations strings.resx (Spanish)

* New translations strings.resx (German)

* New translations strings.resx (Hungarian)

* New translations strings.resx (Italian)

* New translations strings.resx (Korean)

* New translations strings.resx (Lithuanian)

* New translations strings.resx (Polish)

* New translations strings.resx (Portuguese)

* New translations strings.resx (Turkish)

* New translations strings.resx (Ukrainian)

* New translations strings.resx (Chinese Simplified)

* New translations strings.resx (Chinese Traditional)

* New translations strings.resx (Vietnamese)

* New translations strings.resx (Portuguese, Brazilian)

* New translations strings.resx (Indonesian)

* New translations strings.resx (Spanish)

* New translations strings.resx (Chinese Traditional)
2024-03-27 18:19:45 +01:00
Vaibhav Garg
e6938ea5cf Add Delay to Screenpad Actions (#2305)
* Add Delay to Screenpad Actions

Added "screenpad_delay" config

* revert .net version

revert .net version
2024-03-27 18:19:36 +01:00
Serge
5bf60e24b5 Improved USB-C charger detection for Optimized mode https://github.com/seerge/g-helper/issues/2143 2024-03-27 18:19:21 +01:00
Serge
731a6c845f Allow clicking on visual-modes label to enable them again 2024-03-27 18:11:57 +01:00
54 changed files with 827 additions and 300 deletions

View File

@@ -59,16 +59,6 @@ namespace GHelper.AnimeMatrix
if (deviceSlash is not null) SetSlash(wakeUp); if (deviceSlash is not null) SetSlash(wakeUp);
} }
public void SetLidMode(bool force = false)
{
if (AppConfig.Is("matrix_lid") || force)
{
Logger.WriteLine($"Matrix LidClosed: {lidClose}");
SetDevice(true);
}
}
public void SetSlash(bool wakeUp = false) public void SetSlash(bool wakeUp = false)
{ {
if (deviceSlash is null) return; if (deviceSlash is null) return;
@@ -108,16 +98,48 @@ namespace GHelper.AnimeMatrix
} }
deviceSlash.Init(); deviceSlash.Init();
deviceSlash.SetMode((SlashMode)running);
deviceSlash.SetOptions(true, brightness, inteval); switch ((SlashMode)running)
deviceSlash.Save(); {
case SlashMode.Static:
deviceSlash.SetStatic(brightness);
break;
default:
deviceSlash.SetMode((SlashMode)running);
deviceSlash.SetOptions(true, brightness, inteval);
deviceSlash.Save();
break;
}
} }
}); });
} }
public void SetLidMode(bool force = false)
{
bool matrixLid = AppConfig.Is("matrix_lid");
if (deviceSlash is not null)
{
deviceSlash.SetLidMode(matrixLid);
deviceSlash.SetSleepActive(!matrixLid);
}
if (matrixLid || force)
{
Logger.WriteLine($"Matrix LidClosed: {lidClose}");
SetDevice(true);
}
}
public void SetBatteryAuto() public void SetBatteryAuto()
{ {
if (deviceSlash is not null) deviceSlash.SetBatterySaver(AppConfig.Is("matrix_auto")); if (deviceSlash is not null)
{
bool auto = AppConfig.Is("matrix_auto");
deviceSlash.SetBatterySaver(auto);
if (!auto) SetSlash();
}
if (deviceMatrix is not null) SetMatrix(); if (deviceMatrix is not null) SetMatrix();
} }

View File

@@ -19,7 +19,8 @@ namespace GHelper.AnimeMatrix
Ramp, Ramp,
GameOver, GameOver,
Start, Start,
Buzzer Buzzer,
Static
} }
internal class SlashPacket : Packet internal class SlashPacket : Packet
@@ -53,6 +54,7 @@ namespace GHelper.AnimeMatrix
{ SlashMode.GameOver, "Game Over"}, { SlashMode.GameOver, "Game Over"},
{ SlashMode.Start, "Start"}, { SlashMode.Start, "Start"},
{ SlashMode.Buzzer, "Buzzer"}, { SlashMode.Buzzer, "Buzzer"},
{ SlashMode.Static, "Static"},
}; };
private static Dictionary<SlashMode, byte> modeCodes = new Dictionary<SlashMode, byte> private static Dictionary<SlashMode, byte> modeCodes = new Dictionary<SlashMode, byte>
@@ -115,6 +117,17 @@ namespace GHelper.AnimeMatrix
Set(Packet<SlashPacket>(0xD3, 0x04, 0x00, 0x0C, 0x01, modeByte, 0x02, 0x19, 0x03, 0x13, 0x04, 0x11, 0x05, 0x12, 0x06, 0x13), "SlashMode"); Set(Packet<SlashPacket>(0xD3, 0x04, 0x00, 0x0C, 0x01, modeByte, 0x02, 0x19, 0x03, 0x13, 0x04, 0x11, 0x05, 0x12, 0x06, 0x13), "SlashMode");
} }
public void SetStatic(int brightness = 0)
{
byte brightnessByte = (byte)(brightness * 85.333);
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(Packet<SlashPacket>(0xD3, 0x00, 0x00, 0x07, brightnessByte, brightnessByte, brightnessByte, brightnessByte, brightnessByte, brightnessByte, brightnessByte), "Static White");
}
public void SetOptions(bool status, int brightness = 0, int interval = 0) public void SetOptions(bool status, int brightness = 0, int interval = 0)
{ {
byte brightnessByte = (byte)(brightness * 85.333); byte brightnessByte = (byte)(brightness * 85.333);
@@ -124,18 +137,24 @@ namespace GHelper.AnimeMatrix
public void SetBatterySaver(bool status) public void SetBatterySaver(bool status)
{ {
Set(Packet<SlashPacket>(0xD8, 0x01, 0x00, 0x01, status ? (byte)0x80 : (byte)0x00), "SlashBatterySaver"); Set(Packet<SlashPacket>(0xD8, 0x01, 0x00, 0x01, status ? (byte)0x80 : (byte)0x00), $"SlashBatterySaver {status}");
} }
public void SetLidMode(bool status) public void SetLidMode(bool status)
{ {
Set(Packet<SlashPacket>(0xD8, 0x00, 0x00, 0x02, 0xA5, status ? (byte)0x80 : (byte)0x00)); Set(Packet<SlashPacket>(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}");
} }
public void Set(Packet packet, string? log = null) public void Set(Packet packet, string? log = null)
{ {
_usbProvider?.Set(packet.Data); _usbProvider?.Set(packet.Data);
if (log is not null) Logger.WriteLine("Slash:" + BitConverter.ToString(packet.Data)); if (log is not null) Logger.WriteLine($"{log}:" + BitConverter.ToString(packet.Data).Substring(0,48));
} }

View File

@@ -404,9 +404,14 @@ public static class AppConfig
return ContainsModel("GA503") || IsSlash(); return ContainsModel("GA503") || IsSlash();
} }
public static bool IsInvertedFNLock()
{
return ContainsModel("M140");
}
public static bool IsOLED() 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("K340"); 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("K340") || ContainsModel("K350") || ContainsModel("M140") || ContainsModel("UM340");
} }
public static bool IsNoOverdrive() public static bool IsNoOverdrive()
@@ -426,7 +431,7 @@ public static class AppConfig
public static bool IsStrixLimitedRGB() public static bool IsStrixLimitedRGB()
{ {
return (ContainsModel("G614JV") || ContainsModel("G614JZ") || ContainsModel("G512LI") || ContainsModel("G513R") || ContainsModel("G713PV") || ContainsModel("G513IE") || ContainsModel("G713RC") || ContainsModel("G513QM") || ContainsModel("G531G")) && !Is("per_key_rgb"); return (ContainsModel("G614JV_") || ContainsModel("G614JZ") || ContainsModel("G512LI") || ContainsModel("G513R") || ContainsModel("G713PV") || ContainsModel("G513IE") || ContainsModel("G713RC") || ContainsModel("G513QM") || ContainsModel("G531G")) && !Is("per_key_rgb");
} }
@@ -442,7 +447,7 @@ public static class AppConfig
public static bool IsNoDirectRGB() public static bool IsNoDirectRGB()
{ {
return ContainsModel("GA503") || ContainsModel("G533Q") || IsSlash(); return ContainsModel("GA503") || ContainsModel("G533Q") || ContainsModel("GU502") || IsSlash();
} }
public static bool IsStrixNumpad() public static bool IsStrixNumpad()
@@ -535,7 +540,10 @@ public static class AppConfig
try try
{ {
var (bios, model) = GetBiosAndModel(); var (bios, model) = GetBiosAndModel();
return (Int32.Parse(bios) == 317 || Int32.Parse(bios) == 316); var biosVersion = Int32.Parse(bios);
if (ContainsModel("GA503RM") && biosVersion == 317) return true;
if ((ContainsModel("GA503RS") || ContainsModel("GA503RW")) && biosVersion == 316) return true;
return false;
} }
catch catch
{ {
@@ -550,7 +558,7 @@ public static class AppConfig
public static bool IsFanRequired() public static bool IsFanRequired()
{ {
return ContainsModel("GA402X") || ContainsModel("G513") || ContainsModel("G713R") || ContainsModel("G713P") || ContainsModel("GU605") || ContainsModel("GA403") || ContainsModel("G634J") || ContainsModel("G834J"); return ContainsModel("GA402X") || ContainsModel("G513") || ContainsModel("G713R") || ContainsModel("G713P") || ContainsModel("GU605") || ContainsModel("GA403") || ContainsModel("G634J") || ContainsModel("G834J") || ContainsModel("G614J") || ContainsModel("G814J") || ContainsModel("FX507V");
} }
public static bool IsAMDLight() public static bool IsAMDLight()
@@ -588,11 +596,6 @@ public static class AppConfig
return ContainsModel("G814") || ContainsModel("G614") || ContainsModel("G834") || ContainsModel("G634"); return ContainsModel("G814") || ContainsModel("G614") || ContainsModel("G834") || ContainsModel("G634");
} }
public static bool IsNewAura()
{
return ContainsModel("G834") || ContainsModel("G614") || ContainsModel("G834") || ContainsModel("G634");
}
public static bool IsNoFNV() public static bool IsNoFNV()
{ {
return ContainsModel("FX507") || ContainsModel("FX707"); return ContainsModel("FX507") || ContainsModel("FX707");

View File

@@ -866,14 +866,23 @@ namespace GHelper
private void VisualizeCurrentDPIProfile() private void VisualizeCurrentDPIProfile()
{ {
if (mouse.DpiProfile > mouse.DpiSettings.Count()) if (mouse.DpiProfile > mouse.DpiSettings.Length)
{ {
Logger.WriteLine($"Wrong mouse DPI: {mouse.DpiProfile}"); Logger.WriteLine($"Wrong mouse DPI: {mouse.DpiProfile}");
return; return;
} }
AsusMouseDPI dpi = mouse.DpiSettings[mouse.DpiProfile - 1]; AsusMouseDPI dpi;
try
{
dpi = mouse.DpiSettings[mouse.DpiProfile - 1];
} catch (Exception ex)
{
Logger.WriteLine($"Wrong mouse DPI: {mouse.DpiProfile} {mouse.DpiSettings.Length} {ex.Message}");
return;
}
if (dpi is null) if (dpi is null)
{ {
return; return;

View File

@@ -1,4 +1,7 @@
namespace GHelper.Battery using GHelper.Helpers;
using System.Diagnostics;
namespace GHelper.Battery
{ {
internal class BatteryControl internal class BatteryControl
{ {
@@ -42,5 +45,25 @@
Program.settingsForm.VisualiseBattery(limit); Program.settingsForm.VisualiseBattery(limit);
} }
public static void BatteryReport()
{
var reportDir = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile);
try
{
var cmd = new Process();
cmd.StartInfo.WorkingDirectory = reportDir;
cmd.StartInfo.UseShellExecute = false;
cmd.StartInfo.CreateNoWindow = true;
cmd.StartInfo.FileName = "powershell";
cmd.StartInfo.Arguments = "powercfg /batteryreport; explorer battery-report.html";
cmd.Start();
}
catch (Exception ex)
{
Logger.WriteLine(ex.Message);
}
}
} }
} }

View File

@@ -6,7 +6,7 @@ namespace GHelper.Display
public class ScreenCCD public class ScreenCCD
{ {
public static bool GetHDRStatus(bool log = false) public static bool GetHDRStatus(bool log = true)
{ {
var err = GetDisplayConfigBufferSizes(QDC.QDC_ONLY_ACTIVE_PATHS, out var pathCount, out var modeCount); var err = GetDisplayConfigBufferSizes(QDC.QDC_ONLY_ACTIVE_PATHS, out var pathCount, out var modeCount);
if (err != 0) if (err != 0)
@@ -46,8 +46,8 @@ namespace GHelper.Display
info.outputTechnology == DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY.DISPLAYCONFIG_OUTPUT_TECHNOLOGY_DISPLAYPORT_EMBEDDED || info.outputTechnology == DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY.DISPLAYCONFIG_OUTPUT_TECHNOLOGY_DISPLAYPORT_EMBEDDED ||
info.monitorFriendlyDeviceName == internalName) info.monitorFriendlyDeviceName == internalName)
{ {
if (log) Logger.WriteLine(info.monitorFriendlyDeviceName + " HDR: " + colorInfo.advancedColorEnabled); if (log) Logger.WriteLine(info.monitorFriendlyDeviceName + " HDR: " + colorInfo.advancedColorEnabled + " " + colorInfo.bitsPerColorChannel + " " + colorInfo.value + " " + colorInfo.wideColorEnforced);
return colorInfo.advancedColorEnabled; return colorInfo.advancedColorEnabled && (colorInfo.bitsPerColorChannel > 8 || !colorInfo.wideColorEnforced);
} }
} }

View File

@@ -21,6 +21,16 @@
} }
} }
public void ToggleScreenRate()
{
var laptopScreen = ScreenNative.FindLaptopScreen(true);
var refreshRate = ScreenNative.GetRefreshRate(laptopScreen);
if (refreshRate < 0) return;
ScreenNative.SetRefreshRate(laptopScreen, refreshRate > 60 ? 60 : ScreenNative.GetMaxRefreshRate(laptopScreen));
InitScreen();
}
public void SetScreen(int frequency = -1, int overdrive = -1, int miniled = -1) public void SetScreen(int frequency = -1, int overdrive = -1, int miniled = -1)
{ {

View File

@@ -5,6 +5,10 @@ namespace GHelper.Display
{ {
public enum SplendidGamut : int public enum SplendidGamut : int
{ {
VivoNative = 0,
VivoSRGB = 1,
VivoDCIP3 = 3,
ViviDisplayP3 = 4,
Native = 50, Native = 50,
sRGB = 51, sRGB = 51,
DCIP3 = 53, DCIP3 = 53,
@@ -15,8 +19,13 @@ namespace GHelper.Display
{ {
None = -1, None = -1,
VivoNormal = 1,
VivoVivid = 2,
VivoManual = 6,
VivoEycare = 7,
Init = 10, Init = 10,
DimmingAsus = 9, DimmingVivo = 9,
DimmingVisual = 19, DimmingVisual = 19,
GamutMode = 200, GamutMode = 200,
@@ -40,6 +49,8 @@ namespace GHelper.Display
private static System.Timers.Timer brightnessTimer = new System.Timers.Timer(200); private static System.Timers.Timer brightnessTimer = new System.Timers.Timer(200);
public const int DefaultColorTemp = 50; public const int DefaultColorTemp = 50;
public static bool forceVisual = false;
static VisualControl() static VisualControl()
{ {
brightnessTimer.Elapsed += BrightnessTimerTimer_Elapsed; brightnessTimer.Elapsed += BrightnessTimerTimer_Elapsed;
@@ -50,29 +61,44 @@ namespace GHelper.Display
return Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) + "\\ASUS\\GameVisual"; return Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) + "\\ASUS\\GameVisual";
} }
public static string GetVivobookPath()
{
return Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) + "\\ASUS\\ASUS System Control Interface\\ASUSOptimization\\Splendid";
}
public static SplendidGamut GetDefaultGamut()
{
return AppConfig.IsVivoZenbook() ? SplendidGamut.VivoNative : SplendidGamut.Native;
}
public static Dictionary<SplendidGamut, string> GetGamutModes() public static Dictionary<SplendidGamut, string> GetGamutModes()
{ {
bool isVivo = AppConfig.IsVivoZenbook();
Dictionary<SplendidGamut, string> _modes = new Dictionary<SplendidGamut, string>(); Dictionary<SplendidGamut, string> _modes = new Dictionary<SplendidGamut, string>();
string gameVisualPath = GetGameVisualPath(); string iccPath = isVivo ? GetVivobookPath() : GetGameVisualPath();
if (!Directory.Exists(gameVisualPath))
if (!Directory.Exists(iccPath))
{ {
Logger.WriteLine(gameVisualPath + " doesn't exit"); Logger.WriteLine(iccPath + " doesn't exit");
return _modes; return _modes;
} }
try try
{ {
DirectoryInfo d = new DirectoryInfo(GetGameVisualPath()); DirectoryInfo d = new DirectoryInfo(iccPath);
FileInfo[] icms = d.GetFiles("*.icm"); FileInfo[] icms = d.GetFiles("*.icm");
if (icms.Length == 0) return _modes; if (icms.Length == 0) return _modes;
_modes.Add(SplendidGamut.Native, "Gamut: Native"); _modes.Add(isVivo ? SplendidGamut.VivoNative : SplendidGamut.Native, "Gamut: Native");
foreach (FileInfo icm in icms) foreach (FileInfo icm in icms)
{ {
if (icm.Name.Contains("sRGB")) _modes.Add(SplendidGamut.sRGB, "Gamut: sRGB"); //Logger.WriteLine(icm.FullName);
if (icm.Name.Contains("DCIP3")) _modes.Add(SplendidGamut.DCIP3, "Gamut: DCIP3"); if (icm.Name.Contains("sRGB")) _modes.Add(isVivo ? SplendidGamut.VivoSRGB : SplendidGamut.sRGB, "Gamut: sRGB");
if (icm.Name.Contains("DisplayP3")) _modes.Add(SplendidGamut.DisplayP3, "Gamut: DisplayP3"); if (icm.Name.Contains("DCIP3")) _modes.Add(isVivo ? SplendidGamut.VivoDCIP3 : SplendidGamut.DCIP3, "Gamut: DCIP3");
if (icm.Name.Contains("DisplayP3")) _modes.Add(isVivo ? SplendidGamut.ViviDisplayP3 : SplendidGamut.DisplayP3, "Gamut: DisplayP3");
} }
return _modes; return _modes;
} }
@@ -83,8 +109,25 @@ namespace GHelper.Display
} }
public static SplendidCommand GetDefaultVisualMode()
{
return AppConfig.IsVivoZenbook() ? SplendidCommand.VivoNormal : SplendidCommand.Default;
}
public static Dictionary<SplendidCommand, string> GetVisualModes() public static Dictionary<SplendidCommand, string> GetVisualModes()
{ {
if (AppConfig.IsVivoZenbook())
{
return new Dictionary<SplendidCommand, string>
{
{ SplendidCommand.VivoNormal, "Default" },
{ SplendidCommand.VivoVivid, "Vivid" },
{ SplendidCommand.VivoManual, "Manual" },
{ SplendidCommand.VivoEycare, "Eyecare" },
};
}
return new Dictionary<SplendidCommand, string> return new Dictionary<SplendidCommand, string>
{ {
{ SplendidCommand.Default, "Default"}, { SplendidCommand.Default, "Default"},
@@ -112,6 +155,18 @@ namespace GHelper.Display
}; };
} }
public static Dictionary<int, string> GetEyeCares()
{
return new Dictionary<int, string>
{
{ 0, "0"},
{ 1, "1"},
{ 2, "2"},
{ 3, "3"},
{ 4, "4"},
};
}
public static void SetGamut(int mode = 50) public static void SetGamut(int mode = 50)
{ {
if (RunSplendid(SplendidCommand.GamutMode, 0, mode)) return; if (RunSplendid(SplendidCommand.GamutMode, 0, mode)) return;
@@ -129,12 +184,29 @@ namespace GHelper.Display
if (mode == SplendidCommand.None) return; if (mode == SplendidCommand.None) return;
if (mode == SplendidCommand.Default && init) return; // Skip default setting on init if (mode == SplendidCommand.Default && init) return; // Skip default setting on init
if (ScreenCCD.GetHDRStatus(true)) return; if (!forceVisual && ScreenCCD.GetHDRStatus(true)) return;
if (ScreenNative.GetRefreshRate(ScreenNative.FindLaptopScreen(true)) < 0) return; if (!forceVisual && ScreenNative.GetRefreshRate(ScreenNative.FindLaptopScreen(true)) < 0) return;
if (whiteBalance != DefaultColorTemp && !init) ProcessHelper.RunAsAdmin(); if (whiteBalance != DefaultColorTemp && !init) ProcessHelper.RunAsAdmin();
int balance = mode == SplendidCommand.Eyecare ? 2 : whiteBalance; int? balance;
switch (mode) {
case SplendidCommand.Eyecare:
balance = 2;
break;
case SplendidCommand.VivoNormal:
case SplendidCommand.VivoVivid:
balance = null;
break;
case SplendidCommand.VivoEycare:
balance = Math.Abs(whiteBalance - 50) * 4 / 50;
break;
default:
balance = whiteBalance;
break;
}
if (RunSplendid(mode, 0, balance)) return; if (RunSplendid(mode, 0, balance)) return;
if (_init) if (_init)
@@ -173,14 +245,14 @@ namespace GHelper.Display
private static bool RunSplendid(SplendidCommand command, int? param1 = null, int? param2 = null) private static bool RunSplendid(SplendidCommand command, int? param1 = null, int? param2 = null)
{ {
var splendid = GetSplendidPath(); var splendid = GetSplendidPath();
bool isGameVisual = Directory.Exists(GetGameVisualPath()); bool isVivo = AppConfig.IsVivoZenbook();
bool isSplenddid = File.Exists(splendid); bool isSplenddid = File.Exists(splendid);
if (isSplenddid) if (isSplenddid)
{ {
if (command == SplendidCommand.DimmingVisual && !isGameVisual) command = SplendidCommand.DimmingAsus; if (command == SplendidCommand.DimmingVisual && isVivo) command = SplendidCommand.DimmingVivo;
var result = ProcessHelper.RunCMD(splendid, (int)command + " " + param1 + " " + param2); var result = ProcessHelper.RunCMD(splendid, (int)command + " " + param1 + " " + param2);
if (result.Contains("file not exist") || (result.Length == 0 && isGameVisual)) return false; if (result.Contains("file not exist") || (result.Length == 0 && !isVivo)) return false;
} }
return true; return true;

View File

@@ -30,6 +30,7 @@ namespace GHelper
{"aura", Properties.Strings.ToggleAura}, {"aura", Properties.Strings.ToggleAura},
{"performance", Properties.Strings.PerformanceMode}, {"performance", Properties.Strings.PerformanceMode},
{"screen", Properties.Strings.ToggleScreen}, {"screen", Properties.Strings.ToggleScreen},
{"lock", Properties.Strings.LockScreen},
{"miniled", Properties.Strings.ToggleMiniled}, {"miniled", Properties.Strings.ToggleMiniled},
{"fnlock", Properties.Strings.ToggleFnLock}, {"fnlock", Properties.Strings.ToggleFnLock},
{"brightness_down", Properties.Strings.BrightnessDown}, {"brightness_down", Properties.Strings.BrightnessDown},

View File

@@ -58,6 +58,8 @@ namespace GHelper.Fan
if (AppConfig.ContainsModel("FA507R")) return new int[3] { 63, 57, DEFAULT_FAN_MAX }; if (AppConfig.ContainsModel("FA507R")) return new int[3] { 63, 57, DEFAULT_FAN_MAX };
if (AppConfig.ContainsModel("FA507X")) return new int[3] { 63, 68, DEFAULT_FAN_MAX }; if (AppConfig.ContainsModel("FA507X")) return new int[3] { 63, 68, DEFAULT_FAN_MAX };
if (AppConfig.ContainsModel("FX607J")) return new int[3] { 74, 72, DEFAULT_FAN_MAX };
if (AppConfig.ContainsModel("GX650")) return new int[3] { 62, 62, DEFAULT_FAN_MAX }; if (AppConfig.ContainsModel("GX650")) return new int[3] { 62, 62, DEFAULT_FAN_MAX };
if (AppConfig.ContainsModel("G732")) return new int[3] { 61, 60, DEFAULT_FAN_MAX }; if (AppConfig.ContainsModel("G732")) return new int[3] { 61, 60, DEFAULT_FAN_MAX };
@@ -68,6 +70,7 @@ namespace GHelper.Fan
if (AppConfig.ContainsModel("GV601")) return new int[3] { 78, 59, 85 }; if (AppConfig.ContainsModel("GV601")) return new int[3] { 78, 59, 85 };
if (AppConfig.ContainsModel("GA403")) return new int[3] { 68, 68, 80 }; if (AppConfig.ContainsModel("GA403")) return new int[3] { 68, 68, 80 };
if (AppConfig.ContainsModel("GU605")) return new int[3] { 62, 62, 92 };
return new int[3] { DEFAULT_FAN_MAX, DEFAULT_FAN_MAX, DEFAULT_FAN_MAX }; return new int[3] { DEFAULT_FAN_MAX, DEFAULT_FAN_MAX, DEFAULT_FAN_MAX };
} }

6
app/Fans.Designer.cs generated
View File

@@ -220,10 +220,10 @@ namespace GHelper
panelFans.Controls.Add(tableFanCharts); panelFans.Controls.Add(tableFanCharts);
panelFans.Controls.Add(panelTitleFans); panelFans.Controls.Add(panelTitleFans);
panelFans.Controls.Add(panelApplyFans); panelFans.Controls.Add(panelApplyFans);
panelFans.Dock = DockStyle.Left; panelFans.Dock = DockStyle.Fill;
panelFans.Location = new Point(530, 0); panelFans.Location = new Point(530, 0);
panelFans.Margin = new Padding(0); panelFans.Margin = new Padding(0);
panelFans.MaximumSize = new Size(816, 0); //panelFans.MaximumSize = new Size(816, 0);
panelFans.MinimumSize = new Size(816, 0); panelFans.MinimumSize = new Size(816, 0);
panelFans.Name = "panelFans"; panelFans.Name = "panelFans";
panelFans.Padding = new Padding(0, 0, 10, 0); panelFans.Padding = new Padding(0, 0, 10, 0);
@@ -1685,7 +1685,7 @@ namespace GHelper
Controls.Add(panelFans); Controls.Add(panelFans);
Controls.Add(panelSliders); Controls.Add(panelSliders);
Margin = new Padding(4, 2, 4, 2); Margin = new Padding(4, 2, 4, 2);
MaximizeBox = false; MaximizeBox = true;
MinimizeBox = false; MinimizeBox = false;
MinimumSize = new Size(26, 1100); MinimumSize = new Size(26, 1100);
Name = "Fans"; Name = "Fans";

View File

@@ -73,8 +73,6 @@ namespace GHelper
labelTip.Visible = false; labelTip.Visible = false;
labelTip.BackColor = Color.Transparent; labelTip.BackColor = Color.Transparent;
FormClosing += Fans_FormClosing;
seriesCPU = chartCPU.Series.Add("CPU"); seriesCPU = chartCPU.Series.Add("CPU");
seriesGPU = chartGPU.Series.Add("GPU"); seriesGPU = chartGPU.Series.Add("GPU");
seriesMid = chartMid.Series.Add("Mid"); seriesMid = chartMid.Series.Add("Mid");
@@ -120,16 +118,21 @@ namespace GHelper
trackFast.Maximum = AsusACPI.MaxTotal; trackFast.Maximum = AsusACPI.MaxTotal;
trackFast.Minimum = AsusACPI.MinTotal; trackFast.Minimum = AsusACPI.MinTotal;
trackFast.Scroll += TrackPower_Scroll; trackTotal.Scroll += TrackTotal_Scroll;
trackCPU.Scroll += TrackPower_Scroll; trackSlow.Scroll += TrackSlow_Scroll;
trackTotal.Scroll += TrackPower_Scroll; trackFast.Scroll += TrackFast_Scroll;
trackSlow.Scroll += TrackPower_Scroll; trackCPU.Scroll += TrackCPU_Scroll;
trackFast.MouseUp += TrackPower_MouseUp; trackFast.MouseUp += TrackPower_MouseUp;
trackCPU.MouseUp += TrackPower_MouseUp; trackCPU.MouseUp += TrackPower_MouseUp;
trackTotal.MouseUp += TrackPower_MouseUp; trackTotal.MouseUp += TrackPower_MouseUp;
trackSlow.MouseUp += TrackPower_MouseUp; trackSlow.MouseUp += TrackPower_MouseUp;
trackFast.KeyUp += TrackPower_KeyUp;
trackCPU.KeyUp += TrackPower_KeyUp;
trackTotal.KeyUp += TrackPower_KeyUp;
trackSlow.KeyUp += TrackPower_KeyUp;
checkApplyFans.Click += CheckApplyFans_Click; checkApplyFans.Click += CheckApplyFans_Click;
checkApplyPower.Click += CheckApplyPower_Click; checkApplyPower.Click += CheckApplyPower_Click;
@@ -232,6 +235,7 @@ namespace GHelper
} }
private void ButtonDownload_Click(object? sender, EventArgs e) private void ButtonDownload_Click(object? sender, EventArgs e)
{ {
RyzenControl.DownloadRing(); RyzenControl.DownloadRing();
@@ -799,6 +803,14 @@ namespace GHelper
} }
private void TrackPower_KeyUp(object? sender, KeyEventArgs e)
{
Task.Run(() =>
{
modeControl.AutoPower(true);
});
}
public void InitPowerPlan() public void InitPowerPlan()
{ {
int boost = PowerNative.GetCPUBoost(); int boost = PowerNative.GetCPUBoost();
@@ -883,18 +895,8 @@ namespace GHelper
}); });
} }
private void Fans_FormClosing(object? sender, FormClosingEventArgs e)
{
/*
if (e.CloseReason == CloseReason.UserClosing)
{
e.Cancel = true;
Hide();
}*/
}
public void InitPower()
public void InitPower(bool changed = false)
{ {
bool modeA = Program.acpi.DeviceGet(AsusACPI.PPT_APUA0) >= 0 || RyzenControl.IsAMD(); bool modeA = Program.acpi.DeviceGet(AsusACPI.PPT_APUA0) >= 0 || RyzenControl.IsAMD();
@@ -921,57 +923,37 @@ namespace GHelper
if (RyzenControl.IsAMD()) if (RyzenControl.IsAMD())
{ {
labelLeftTotal.Text = "CPU Sustained (SPL)"; labelLeftTotal.Text = "SPL (CPU sustained)";
labelLeftSlow.Text = "CPU Slow (sPPT)"; labelLeftSlow.Text = "sPPT (CPU 2 min boost)";
labelLeftFast.Text = "CPU Fast (fPPT)"; labelLeftFast.Text = "fPPT (CPU 2 sec boost)";
panelFast.Visible = modeC1; panelFast.Visible = modeC1;
} }
else else
{ {
labelLeftTotal.Text = "CPU Slow (PL1)"; labelLeftTotal.Text = "PL1 (CPU sustained)";
labelLeftSlow.Text = "CPU Fast (PL2)"; labelLeftSlow.Text = "PL2 (CPU 2 min boost)";
panelFast.Visible = false; panelFast.Visible = false;
} }
} }
int limit_total; checkApplyPower.Checked = AppConfig.IsMode("auto_apply_power");
int limit_slow;
int limit_cpu;
int limit_fast;
bool apply = AppConfig.IsMode("auto_apply_power"); int limit_total = AppConfig.GetMode("limit_total", AsusACPI.DefaultTotal);
int limit_slow = AppConfig.GetMode("limit_slow", limit_total);
int limit_fast = AppConfig.GetMode("limit_fast", limit_total);
int limit_cpu = AppConfig.GetMode("limit_cpu", AsusACPI.DefaultCPU);
if (changed)
{
limit_total = trackTotal.Value;
limit_slow = trackSlow.Value;
limit_cpu = trackCPU.Value;
limit_fast = trackFast.Value;
}
else
{
limit_total = AppConfig.GetMode("limit_total");
limit_slow = AppConfig.GetMode("limit_slow");
limit_cpu = AppConfig.GetMode("limit_cpu");
limit_fast = AppConfig.GetMode("limit_fast");
}
if (limit_total < 0) limit_total = AsusACPI.DefaultTotal;
if (limit_total > AsusACPI.MaxTotal) limit_total = AsusACPI.MaxTotal; if (limit_total > AsusACPI.MaxTotal) limit_total = AsusACPI.MaxTotal;
if (limit_total < AsusACPI.MinTotal) limit_total = AsusACPI.MinTotal; if (limit_total < AsusACPI.MinTotal) limit_total = AsusACPI.MinTotal;
if (limit_cpu < 0) limit_cpu = AsusACPI.DefaultCPU;
if (limit_cpu > AsusACPI.MaxCPU) limit_cpu = AsusACPI.MaxCPU; if (limit_cpu > AsusACPI.MaxCPU) limit_cpu = AsusACPI.MaxCPU;
if (limit_cpu < AsusACPI.MinCPU) limit_cpu = AsusACPI.MinCPU; if (limit_cpu < AsusACPI.MinCPU) limit_cpu = AsusACPI.MinCPU;
if (limit_cpu > limit_total) limit_cpu = limit_total;
if (limit_slow < 0) limit_slow = limit_total;
if (limit_slow > AsusACPI.MaxTotal) limit_slow = AsusACPI.MaxTotal; if (limit_slow > AsusACPI.MaxTotal) limit_slow = AsusACPI.MaxTotal;
if (limit_slow < AsusACPI.MinTotal) limit_slow = AsusACPI.MinTotal; if (limit_slow < AsusACPI.MinTotal) limit_slow = AsusACPI.MinTotal;
if (limit_fast < 0) limit_fast = AsusACPI.DefaultTotal;
if (limit_fast > AsusACPI.MaxTotal) limit_fast = AsusACPI.MaxTotal; if (limit_fast > AsusACPI.MaxTotal) limit_fast = AsusACPI.MaxTotal;
if (limit_fast < AsusACPI.MinTotal) limit_fast = AsusACPI.MinTotal; if (limit_fast < AsusACPI.MinTotal) limit_fast = AsusACPI.MinTotal;
@@ -980,27 +962,50 @@ namespace GHelper
trackCPU.Value = limit_cpu; trackCPU.Value = limit_cpu;
trackFast.Value = limit_fast; trackFast.Value = limit_fast;
checkApplyPower.Checked = apply; SavePower();
}
private void SavePower()
{
labelTotal.Text = trackTotal.Value.ToString() + "W"; labelTotal.Text = trackTotal.Value.ToString() + "W";
labelSlow.Text = trackSlow.Value.ToString() + "W"; labelSlow.Text = trackSlow.Value.ToString() + "W";
labelCPU.Text = trackCPU.Value.ToString() + "W"; labelCPU.Text = trackCPU.Value.ToString() + "W";
labelFast.Text = trackFast.Value.ToString() + "W"; labelFast.Text = trackFast.Value.ToString() + "W";
AppConfig.SetMode("limit_total", limit_total); AppConfig.SetMode("limit_total", trackTotal.Value);
AppConfig.SetMode("limit_slow", limit_slow); AppConfig.SetMode("limit_slow", trackSlow.Value);
AppConfig.SetMode("limit_cpu", limit_cpu); AppConfig.SetMode("limit_cpu", trackCPU.Value);
AppConfig.SetMode("limit_fast", limit_fast); AppConfig.SetMode("limit_fast", trackFast.Value);
} }
private void TrackTotal_Scroll(object? sender, EventArgs e)
private void TrackPower_Scroll(object? sender, EventArgs e)
{ {
InitPower(true); if (trackTotal.Value > trackSlow.Value) trackSlow.Value = trackTotal.Value;
if (trackTotal.Value > trackFast.Value) trackFast.Value = trackTotal.Value;
if (trackTotal.Value < trackCPU.Value) trackCPU.Value = trackTotal.Value;
SavePower();
} }
private void TrackSlow_Scroll(object? sender, EventArgs e)
{
if (trackSlow.Value < trackTotal.Value) trackTotal.Value = trackSlow.Value;
if (trackSlow.Value > trackFast.Value) trackFast.Value = trackSlow.Value;
SavePower();
}
private void TrackFast_Scroll(object? sender, EventArgs e)
{
if (trackFast.Value < trackSlow.Value) trackSlow.Value = trackFast.Value;
if (trackFast.Value < trackTotal.Value) trackTotal.Value = trackFast.Value;
SavePower();
}
private void TrackCPU_Scroll(object? sender, EventArgs e)
{
if (trackCPU.Value > trackTotal.Value) trackTotal.Value = trackCPU.Value;
SavePower();
}
public void InitFans() public void InitFans()
{ {
@@ -1161,7 +1166,7 @@ namespace GHelper
InitGPUPower(); InitGPUPower();
VisualiseGPUSettings(); VisualiseGPUSettings();
modeControl.SetGPUClocks(true); modeControl.SetGPUClocks(true, true);
modeControl.SetGPUPower(); modeControl.SetGPUPower();
} }
@@ -1261,7 +1266,7 @@ namespace GHelper
labelTip.Text = Math.Floor(curPoint.XValue) + "C, " + ChartYLabel((int)curPoint.YValues[0], device, " " + Properties.Strings.RPM); labelTip.Text = Math.Floor(curPoint.XValue) + "C, " + ChartYLabel((int)curPoint.YValues[0], device, " " + Properties.Strings.RPM);
labelTip.Top = e.Y + ((Control)sender).Top; labelTip.Top = e.Y + ((Control)sender).Top;
labelTip.Left = e.X - 50; labelTip.Left = Math.Min(chart.Width - labelTip.Width - 20, e.X - 50);
} }
catch catch

View File

@@ -15,7 +15,7 @@
<PlatformTarget>AnyCPU</PlatformTarget> <PlatformTarget>AnyCPU</PlatformTarget>
<ProduceReferenceAssembly>False</ProduceReferenceAssembly> <ProduceReferenceAssembly>False</ProduceReferenceAssembly>
<AllowUnsafeBlocks>True</AllowUnsafeBlocks> <AllowUnsafeBlocks>True</AllowUnsafeBlocks>
<AssemblyVersion>0.163</AssemblyVersion> <AssemblyVersion>0.167</AssemblyVersion>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">

View File

@@ -190,7 +190,7 @@ namespace GHelper.Gpu
int chargerMode = Program.acpi.DeviceGet(AsusACPI.ChargerMode); int chargerMode = Program.acpi.DeviceGet(AsusACPI.ChargerMode);
Logger.WriteLine("ChargerStatus: " + chargerMode); Logger.WriteLine("ChargerStatus: " + chargerMode);
if (chargerMode < 0) return true; if (chargerMode <= 0) return true;
return (chargerMode & AsusACPI.ChargerBarrel) > 0; return (chargerMode & AsusACPI.ChargerBarrel) > 0;
} }

View File

@@ -30,6 +30,14 @@ public static class NvidiaSmi
return false; // Return false if the "Display Active" status is not found return false; // Return false if the "Display Active" status is not found
} }
public static int GetDefaultMaxGPUPower()
{
if (AppConfig.ContainsModel("GU605")) return 125;
if (AppConfig.ContainsModel("GA403")) return 90;
if (AppConfig.ContainsModel("FA607")) return 140;
else return 175;
}
public static int GetMaxGPUPower() public static int GetMaxGPUPower()
{ {
string output = RunNvidiaSmiCommand("--query-gpu=power.max_limit --format csv,noheader,nounits"); string output = RunNvidiaSmiCommand("--query-gpu=power.max_limit --format csv,noheader,nounits");
@@ -38,10 +46,10 @@ public static class NvidiaSmi
if (float.TryParse(output, out float floatValue)) if (float.TryParse(output, out float floatValue))
{ {
int intValue = (int)floatValue; int intValue = (int)floatValue;
return intValue; if (intValue >= 50 && intValue <= 175) return intValue;
} }
return -1; return GetDefaultMaxGPUPower();
} }
private static string RunNvidiaSmiCommand(string arguments = "-i 0 -q") private static string RunNvidiaSmiCommand(string arguments = "-i 0 -q")

View File

@@ -971,7 +971,7 @@
// //
// checkController // checkController
// //
checkController.Anchor = AnchorStyles.Bottom | AnchorStyles.Right; checkController.Anchor = AnchorStyles.Bottom | AnchorStyles.Left;
checkController.AutoSize = true; checkController.AutoSize = true;
checkController.BackColor = SystemColors.ControlLight; checkController.BackColor = SystemColors.ControlLight;
checkController.Location = new Point(650, 41); checkController.Location = new Point(650, 41);

View File

@@ -85,7 +85,8 @@ namespace GHelper.Input
InitBacklightTimer(); InitBacklightTimer();
if (AppConfig.IsVivoZenbook()) Program.acpi.DeviceSet(AsusACPI.FnLock, AppConfig.Is("fn_lock") ? 1 : 0, "FnLock"); if (AppConfig.IsVivoZenbook())
Program.acpi.DeviceSet(AsusACPI.FnLock, AppConfig.Is("fn_lock") ^ AppConfig.IsInvertedFNLock() ? 1 : 0, "FnLock");
} }
@@ -118,6 +119,8 @@ namespace GHelper.Input
if (!AppConfig.Is("skip_hotkeys")) if (!AppConfig.Is("skip_hotkeys"))
{ {
hook.RegisterHotKey(ModifierKeys.Shift | ModifierKeys.Control | ModifierKeys.Alt, Keys.F13);
hook.RegisterHotKey(ModifierKeys.Shift | ModifierKeys.Control | ModifierKeys.Alt, Keys.F14); hook.RegisterHotKey(ModifierKeys.Shift | ModifierKeys.Control | ModifierKeys.Alt, Keys.F14);
hook.RegisterHotKey(ModifierKeys.Shift | ModifierKeys.Control | ModifierKeys.Alt, Keys.F15); hook.RegisterHotKey(ModifierKeys.Shift | ModifierKeys.Control | ModifierKeys.Alt, Keys.F15);
@@ -128,6 +131,7 @@ namespace GHelper.Input
hook.RegisterHotKey(ModifierKeys.Shift | ModifierKeys.Control | ModifierKeys.Alt, Keys.F20); hook.RegisterHotKey(ModifierKeys.Shift | ModifierKeys.Control | ModifierKeys.Alt, Keys.F20);
hook.RegisterHotKey(ModifierKeys.Control, Keys.VolumeDown); hook.RegisterHotKey(ModifierKeys.Control, Keys.VolumeDown);
hook.RegisterHotKey(ModifierKeys.Control, Keys.VolumeUp); hook.RegisterHotKey(ModifierKeys.Control, Keys.VolumeUp);
hook.RegisterHotKey(ModifierKeys.Shift, Keys.VolumeDown); hook.RegisterHotKey(ModifierKeys.Shift, Keys.VolumeDown);
@@ -385,6 +389,9 @@ namespace GHelper.Input
case Keys.F4: case Keys.F4:
Program.settingsForm.BeginInvoke(Program.settingsForm.allyControl.ToggleModeHotkey); Program.settingsForm.BeginInvoke(Program.settingsForm.allyControl.ToggleModeHotkey);
break; break;
case Keys.F13:
ToggleScreenRate();
break;
case Keys.F14: case Keys.F14:
Program.settingsForm.gpuControl.SetGPUMode(AsusACPI.GPUModeEco); Program.settingsForm.gpuControl.SetGPUMode(AsusACPI.GPUModeEco);
break; break;
@@ -473,6 +480,10 @@ namespace GHelper.Input
case "screenshot": case "screenshot":
KeyboardHook.KeyPress(Keys.Snapshot); KeyboardHook.KeyPress(Keys.Snapshot);
break; break;
case "lock":
Logger.WriteLine("Screen lock");
NativeMethods.LockScreen();
break;
case "screen": case "screen":
Logger.WriteLine("Screen off toggle"); Logger.WriteLine("Screen off toggle");
NativeMethods.TurnOffScreen(); NativeMethods.TurnOffScreen();
@@ -575,17 +586,17 @@ namespace GHelper.Input
public static void ToggleFnLock() public static void ToggleFnLock()
{ {
int fnLock = AppConfig.Is("fn_lock") ? 0 : 1; bool fnLock = !AppConfig.Is("fn_lock");
AppConfig.Set("fn_lock", fnLock); AppConfig.Set("fn_lock", fnLock ? 1 : 0);
if (AppConfig.IsVivoZenbook()) if (AppConfig.IsVivoZenbook())
Program.acpi.DeviceSet(AsusACPI.FnLock, fnLock == 1 ? 1 : 0, "FnLock"); Program.acpi.DeviceSet(AsusACPI.FnLock, fnLock ^ AppConfig.IsInvertedFNLock() ? 1 : 0, "FnLock");
else else
Program.settingsForm.BeginInvoke(Program.inputDispatcher.RegisterKeys); Program.settingsForm.BeginInvoke(Program.inputDispatcher.RegisterKeys);
Program.settingsForm.BeginInvoke(Program.settingsForm.VisualiseFnLock); Program.settingsForm.BeginInvoke(Program.settingsForm.VisualiseFnLock);
Program.toast.RunToast(fnLock == 1 ? Properties.Strings.FnLockOn : Properties.Strings.FnLockOff, ToastIcon.FnLock); Program.toast.RunToast(fnLock ? Properties.Strings.FnLockOn : Properties.Strings.FnLockOff, ToastIcon.FnLock);
} }
public static void TabletMode() public static void TabletMode()
@@ -687,6 +698,18 @@ namespace GHelper.Input
case 199: // ON Z13 - FN+F11 - cycles backlight case 199: // ON Z13 - FN+F11 - cycles backlight
SetBacklight(4); SetBacklight(4);
return; return;
case 46: // Fn + F4 Vivobook Brightness down
if (Control.ModifierKeys == Keys.Control && AppConfig.IsOLED())
{
SetBrightnessDimming(-10);
}
break;
case 47: // Fn + F5 Vivobook Brightness up
if (Control.ModifierKeys == Keys.Control && AppConfig.IsOLED())
{
SetBrightnessDimming(10);
}
break;
} }
} }
@@ -809,17 +832,23 @@ namespace GHelper.Input
public static void ToggleScreenpad() public static void ToggleScreenpad()
{ {
int toggle = AppConfig.Is("screenpad_toggle") ? 0 : 1; int toggle = AppConfig.Is("screenpad_toggle") ? 0 : 1;
int brightness = AppConfig.Get("screenpad", 100); int brightness = toggle == 0 ? -10 : AppConfig.Get("screenpad", 100);
Program.acpi.DeviceSet(AsusACPI.ScreenPadToggle, toggle, "ScreenpadToggle"); Debug.WriteLine($"Screenpad toggle = {toggle}");
if (toggle > 0) Program.acpi.DeviceSet(AsusACPI.ScreenPadBrightness, Math.Max(brightness * 255 / 100, 0), "Screenpad");
ApplyScreenpadAction(brightness, true);
AppConfig.Set("screenpad_toggle", toggle); AppConfig.Set("screenpad_toggle", toggle);
Program.toast.RunToast($"Screen Pad " + (toggle == 1 ? "On" : "Off"), toggle > 0 ? ToastIcon.BrightnessUp : ToastIcon.BrightnessDown); Program.toast.RunToast($"Screen Pad " + (toggle == 1 ? "On" : "Off"), toggle > 0 ? ToastIcon.BrightnessUp : ToastIcon.BrightnessDown);
} }
public static void ToggleScreenRate()
{
AppConfig.Set("screen_auto", 0);
screenControl.ToggleScreenRate();
}
public static void ToggleCamera() public static void ToggleCamera()
{ {
if (!ProcessHelper.IsUserAdministrator()) return; if (!ProcessHelper.IsUserAdministrator()) return;
@@ -851,6 +880,37 @@ namespace GHelper.Input
} }
private static System.Threading.Timer screenpadActionTimer;
private static int screenpadBrightnessToSet;
public static void ApplyScreenpadAction(int brightness, bool doToggle = false)
{
var delay = AppConfig.Get("screenpad_delay", 1500);
//Action
Action<int> action = (b) =>
{
if (b >= 0) Program.acpi.DeviceSet(AsusACPI.ScreenPadToggle, 1, "ScreenpadOn");
Program.acpi.DeviceSet(AsusACPI.ScreenPadBrightness, Math.Max(b * 255 / 100, 0), "Screenpad");
if (b < 0) Program.acpi.DeviceSet(AsusACPI.ScreenPadToggle, 0, "ScreenpadOff");
};
if(delay <= 0 || (brightness > 0 && brightness < 100 && doToggle == false)) //instant action
{
action(brightness);
}
else //delayed action
{
//Timer Approach
if (screenpadActionTimer == null)
{
screenpadActionTimer = new System.Threading.Timer(_ => action(screenpadBrightnessToSet), null, Timeout.Infinite, Timeout.Infinite);
}
//Start Timer
screenpadBrightnessToSet = brightness;
screenpadActionTimer.Change(delay, Timeout.Infinite);
}
}
public static void SetScreenpad(int delta) public static void SetScreenpad(int delta)
{ {
int brightness = AppConfig.Get("screenpad", 100); int brightness = AppConfig.Get("screenpad", 100);
@@ -860,7 +920,6 @@ namespace GHelper.Input
if (brightness < 0) brightness = 100; if (brightness < 0) brightness = 100;
else if (brightness >= 100) brightness = 0; else if (brightness >= 100) brightness = 0;
else brightness = -10; else brightness = -10;
} }
else else
{ {
@@ -869,11 +928,7 @@ namespace GHelper.Input
AppConfig.Set("screenpad", brightness); AppConfig.Set("screenpad", brightness);
if (brightness >= 0) Program.acpi.DeviceSet(AsusACPI.ScreenPadToggle, 1, "ScreenpadOn"); ApplyScreenpadAction(brightness);
Program.acpi.DeviceSet(AsusACPI.ScreenPadBrightness, Math.Max(brightness * 255 / 100, 0), "Screenpad");
if (brightness < 0) Program.acpi.DeviceSet(AsusACPI.ScreenPadToggle, 0, "ScreenpadOff");
string toast; string toast;
@@ -882,10 +937,8 @@ namespace GHelper.Input
else toast = brightness.ToString() + "%"; else toast = brightness.ToString() + "%";
Program.toast.RunToast($"Screen Pad {toast}", delta > 0 ? ToastIcon.BrightnessUp : ToastIcon.BrightnessDown); Program.toast.RunToast($"Screen Pad {toast}", delta > 0 ? ToastIcon.BrightnessUp : ToastIcon.BrightnessDown);
} }
static void LaunchProcess(string command = "") static void LaunchProcess(string command = "")
{ {

View File

@@ -21,12 +21,35 @@ public sealed class KeyboardHook : IDisposable
private const byte VK_LWIN = 0x5B; private const byte VK_LWIN = 0x5B;
private const byte VK_LCONTROL = 0xA2; private const byte VK_LCONTROL = 0xA2;
[DllImport("user32.dll")]
public static extern void mouse_event(uint dwFlags, uint dx, uint dy, uint cButtons, uint dwExtraInfo);
//Mouse actions
private const int MOUSEEVENTF_LEFTDOWN = 0x02;
private const int MOUSEEVENTF_LEFTUP = 0x04;
private const int MOUSEEVENTF_RIGHTDOWN = 0x08;
private const int MOUSEEVENTF_RIGHTUP = 0x10;
private const int MOUSEEVENTF_MIDDOWN = 0x20;
private const int MOUSEEVENTF_MIDTUP = 0x40;
public static void KeyPress(Keys key) public static void KeyPress(Keys key)
{ {
switch (key)
{
case Keys.LButton:
mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, (uint)Cursor.Position.X, (uint)Cursor.Position.Y, 0, 0);
return;
case Keys.RButton:
mouse_event(MOUSEEVENTF_RIGHTDOWN | MOUSEEVENTF_RIGHTUP, (uint)Cursor.Position.X, (uint)Cursor.Position.Y, 0, 0);
return;
case Keys.MButton:
mouse_event(MOUSEEVENTF_MIDDOWN | MOUSEEVENTF_MIDTUP, (uint)Cursor.Position.X, (uint)Cursor.Position.Y, 0, 0);
return;
}
keybd_event((byte)key, 0, KEYEVENTF_EXTENDEDKEY, IntPtr.Zero); keybd_event((byte)key, 0, KEYEVENTF_EXTENDEDKEY, IntPtr.Zero);
Thread.Sleep(1); Thread.Sleep(1);
keybd_event((byte)key, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, IntPtr.Zero); keybd_event((byte)key, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, IntPtr.Zero);
} }

View File

@@ -15,19 +15,23 @@ namespace GHelper.Mode
private int _cpuUV = 0; private int _cpuUV = 0;
private int _igpuUV = 0; private int _igpuUV = 0;
private bool _ryzenPower = false;
static System.Timers.Timer reapplyTimer = default!; static System.Timers.Timer reapplyTimer = default!;
static System.Timers.Timer modeToggleTimer = default!;
public ModeControl() public ModeControl()
{ {
reapplyTimer = new System.Timers.Timer(AppConfig.GetMode("reapply_time", 30) * 1000); reapplyTimer = new System.Timers.Timer(AppConfig.GetMode("reapply_time", 30) * 1000);
reapplyTimer.Elapsed += ReapplyTimer_Elapsed;
reapplyTimer.Enabled = false; reapplyTimer.Enabled = false;
reapplyTimer.Elapsed += ReapplyTimer_Elapsed;
} }
private void ReapplyTimer_Elapsed(object? sender, System.Timers.ElapsedEventArgs e) private void ReapplyTimer_Elapsed(object? sender, System.Timers.ElapsedEventArgs e)
{ {
SetCPUTemp(AppConfig.GetMode("cpu_temp"), false); SetCPUTemp(AppConfig.GetMode("cpu_temp"));
SetRyzenPower();
} }
public void AutoPerformance(bool powerChanged = false) public void AutoPerformance(bool powerChanged = false)
@@ -54,6 +58,11 @@ namespace GHelper.Mode
PowerNative.SetPowerMode(Modes.GetCurrentBase()); PowerNative.SetPowerMode(Modes.GetCurrentBase());
} }
public void Toast()
{
Program.toast.RunToast(Modes.GetCurrentName(), SystemInformation.PowerStatus.PowerLineStatus == PowerLineStatus.Online ? ToastIcon.Charger : ToastIcon.Battery);
}
public void SetPerformanceMode(int mode = -1, bool notify = false) public void SetPerformanceMode(int mode = -1, bool notify = false)
{ {
@@ -99,10 +108,7 @@ namespace GHelper.Mode
if (AppConfig.Is("xgm_fan") && Program.acpi.IsXGConnected()) XGM.Reset(); if (AppConfig.Is("xgm_fan") && Program.acpi.IsXGConnected()) XGM.Reset();
if (notify) if (notify) Toast();
Program.toast.RunToast(Modes.GetCurrentName(), SystemInformation.PowerStatus.PowerLineStatus == PowerLineStatus.Online ? ToastIcon.Charger : ToastIcon.Battery);
// Power plan from config or defaulting to balanced // Power plan from config or defaulting to balanced
if (AppConfig.GetModeString("scheme") is not null) if (AppConfig.GetModeString("scheme") is not null)
@@ -133,9 +139,34 @@ namespace GHelper.Mode
} }
private void ModeToggleTimer_Elapsed(object? sender, System.Timers.ElapsedEventArgs e)
{
modeToggleTimer.Stop();
Logger.WriteLine($"Timed mode: {Modes.GetCurrent()}");
SetPerformanceMode();
}
public void CyclePerformanceMode(bool back = false) public void CyclePerformanceMode(bool back = false)
{ {
SetPerformanceMode(Modes.GetNext(back), true); int delay = AppConfig.Get("mode_delay");
if (delay > 0)
{
if (modeToggleTimer is null)
{
modeToggleTimer = new System.Timers.Timer(delay);
modeToggleTimer.Elapsed += ModeToggleTimer_Elapsed;
}
modeToggleTimer.Stop();
modeToggleTimer.Start();
Modes.SetCurrent(Modes.GetNext(back));
Toast();
} else
{
SetPerformanceMode(Modes.GetNext(back), true);
}
} }
public void AutoFans(bool force = false) public void AutoFans(bool force = false)
@@ -222,6 +253,34 @@ namespace GHelper.Mode
settings.SetModeLabel(Properties.Strings.PerformanceMode + ": " + Modes.GetCurrentName() + (customFans ? "+" : "") + ((customPower > 0) ? " " + customPower + "W" : "")); settings.SetModeLabel(Properties.Strings.PerformanceMode + ": " + Modes.GetCurrentName() + (customFans ? "+" : "") + ((customPower > 0) ? " " + customPower + "W" : ""));
} }
public void SetRyzenPower(bool init = false)
{
if (init) _ryzenPower = true;
if (!_ryzenPower) return;
if (!RyzenControl.IsRingExsists()) return;
if (!AppConfig.IsMode("auto_apply_power")) return;
int limit_total = AppConfig.GetMode("limit_total");
int limit_slow = AppConfig.GetMode("limit_slow", limit_total);
if (limit_total > AsusACPI.MaxTotal) return;
if (limit_total < AsusACPI.MinTotal) return;
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}");
var fastResult = SendCommand.set_fast_limit((uint)limit_slow * 1000);
if (init) Logger.WriteLine($"FAST: {limit_slow} {fastResult}");
}
public void SetPower(bool launchAsAdmin = false) public void SetPower(bool launchAsAdmin = false)
{ {
@@ -258,19 +317,7 @@ namespace GHelper.Mode
if (ProcessHelper.IsUserAdministrator()) if (ProcessHelper.IsUserAdministrator())
{ {
var stapmResult = SendCommand.set_stapm_limit((uint)limit_total * 1000); SetRyzenPower(true);
Logger.WriteLine($"STAPM: {limit_total} {stapmResult}");
var stapmResult2 = SendCommand.set_stapm2_limit((uint)limit_total * 1000);
Logger.WriteLine($"STAPM2: {limit_total} {stapmResult2}");
var slowResult = SendCommand.set_slow_limit((uint)limit_total * 1000);
Logger.WriteLine($"SLOW: {limit_total} {slowResult}");
var fastResult = SendCommand.set_fast_limit((uint)limit_total * 1000);
Logger.WriteLine($"FAST: {limit_total} {fastResult}");
customPower = limit_total;
} }
else if (launchAsAdmin) else if (launchAsAdmin)
{ {
@@ -295,7 +342,7 @@ namespace GHelper.Mode
} }
public void SetGPUClocks(bool launchAsAdmin = true) public void SetGPUClocks(bool launchAsAdmin = true, bool reset = false)
{ {
Task.Run(() => Task.Run(() =>
{ {
@@ -304,6 +351,8 @@ namespace GHelper.Mode
int memory = AppConfig.GetMode("gpu_memory"); int memory = AppConfig.GetMode("gpu_memory");
int clock_limit = AppConfig.GetMode("gpu_clock_limit"); int clock_limit = AppConfig.GetMode("gpu_clock_limit");
if (reset) core = memory = clock_limit = 0;
if (core == -1 && memory == -1 && clock_limit == -1) return; if (core == -1 && memory == -1 && clock_limit == -1) return;
//if ((gpu_core > -5 && gpu_core < 5) && (gpu_memory > -5 && gpu_memory < 5)) launchAsAdmin = false; //if ((gpu_core > -5 && gpu_core < 5) && (gpu_memory > -5 && gpu_memory < 5)) launchAsAdmin = false;
@@ -351,22 +400,15 @@ namespace GHelper.Mode
} }
public void SetCPUTemp(int? cpuTemp, bool log = true) public void SetCPUTemp(int? cpuTemp, bool init = false)
{ {
if (cpuTemp >= RyzenControl.MinTemp && cpuTemp < RyzenControl.MaxTemp) if (cpuTemp >= RyzenControl.MinTemp && cpuTemp < RyzenControl.MaxTemp)
{ {
var resultCPU = SendCommand.set_tctl_temp((uint)cpuTemp); var resultCPU = SendCommand.set_tctl_temp((uint)cpuTemp);
if (log) Logger.WriteLine($"CPU Temp: {cpuTemp} {resultCPU}"); if (init) Logger.WriteLine($"CPU Temp: {cpuTemp} {resultCPU}");
var restultAPU = SendCommand.set_apu_skin_temp_limit((uint)cpuTemp); var restultAPU = SendCommand.set_apu_skin_temp_limit((uint)cpuTemp);
if (log) Logger.WriteLine($"APU Temp: {cpuTemp} {restultAPU}"); if (init) Logger.WriteLine($"APU Temp: {cpuTemp} {restultAPU}");
reapplyTimer.Enabled = AppConfig.IsMode("auto_uv");
}
else
{
reapplyTimer.Enabled = false;
} }
} }
@@ -409,18 +451,21 @@ namespace GHelper.Mode
{ {
SetUV(AppConfig.GetMode("cpu_uv", 0)); SetUV(AppConfig.GetMode("cpu_uv", 0));
SetUViGPU(AppConfig.GetMode("igpu_uv", 0)); SetUViGPU(AppConfig.GetMode("igpu_uv", 0));
SetCPUTemp(AppConfig.GetMode("cpu_temp")); SetCPUTemp(AppConfig.GetMode("cpu_temp"), true);
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.WriteLine("UV Error: " + ex.ToString()); Logger.WriteLine("UV Error: " + ex.ToString());
} }
reapplyTimer.Enabled = AppConfig.IsMode("auto_uv");
} }
public void ResetRyzen() public void ResetRyzen()
{ {
if (_cpuUV != 0) SetUV(0); if (_cpuUV != 0) SetUV(0);
if (_igpuUV != 0) SetUViGPU(0); if (_igpuUV != 0) SetUViGPU(0);
reapplyTimer.Enabled = false;
} }
public void AutoRyzen() public void AutoRyzen()

View File

@@ -27,14 +27,25 @@ public class NativeMethods
private const int MONITOR_OFF = 2; private const int MONITOR_OFF = 2;
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)] [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
private static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam); private static extern IntPtr SendMessage(nint hWnd, int hMsg, int wParam, int lParam);
[DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)] [DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
private static extern uint FormatMessage(uint dwFlags, IntPtr lpSource, uint dwMessageId, uint dwLanguageId, out string lpBuffer, uint nSize, IntPtr Arguments); private static extern uint FormatMessage(uint dwFlags, IntPtr lpSource, uint dwMessageId, uint dwLanguageId, out string lpBuffer, uint nSize, IntPtr Arguments);
[DllImport("user32.dll", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
private static extern bool LockWorkStation();
public static void LockScreen()
{
LockWorkStation();
}
public static void TurnOffScreen() public static void TurnOffScreen()
{ {
IntPtr result = SendMessage(-1, WM_SYSCOMMAND, (IntPtr)SC_MONITORPOWER, (IntPtr)MONITOR_OFF); Form f = new Form();
IntPtr result = SendMessage(f.Handle, WM_SYSCOMMAND, SC_MONITORPOWER, MONITOR_OFF);
if (result == IntPtr.Zero) if (result == IntPtr.Zero)
{ {
int error = Marshal.GetLastWin32Error(); int error = Marshal.GetLastWin32Error();

View File

@@ -139,12 +139,6 @@
<data name="icons8-bicycle-48 (1)" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="icons8-bicycle-48 (1)" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-bicycle-48 (1).png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\icons8-bicycle-48 (1).png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="standard" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\standard.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="eco" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\eco.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="icons8_mute_unmute_96" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="icons8_mute_unmute_96" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-mute-unmute-96.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\icons8-mute-unmute-96.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
@@ -226,9 +220,6 @@
<data name="icons8-hibernate-32" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="icons8-hibernate-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-hibernate-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\icons8-hibernate-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="ultimate" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\ultimate.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="icons8-keyboard-32" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="icons8-keyboard-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-keyboard-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\icons8-keyboard-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
@@ -349,10 +340,19 @@
<data name="dark_standard" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="dark_standard" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\dark-standard.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\dark-standard.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="eco" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\eco.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="light_eco" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="light_eco" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\light-eco.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\light-eco.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="light_standard" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="light_standard" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\light-standard.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\light-standard.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="standard" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\standard.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="ultimate" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\ultimate.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root> </root>

View File

@@ -1223,6 +1223,15 @@ namespace GHelper.Properties {
} }
} }
/// <summary>
/// Looks up a localized string similar to Lock Screen.
/// </summary>
internal static string LockScreen {
get {
return ResourceManager.GetString("LockScreen", resourceCulture);
}
}
/// <summary> /// <summary>
/// Looks up a localized string similar to Logo. /// Looks up a localized string similar to Logo.
/// </summary> /// </summary>

View File

@@ -494,6 +494,9 @@ Trotzdem fortfahren?</value>
<data name="LaptopScreen" xml:space="preserve"> <data name="LaptopScreen" xml:space="preserve">
<value>Laptopbildschirm</value> <value>Laptopbildschirm</value>
</data> </data>
<data name="LEDStatusIndicators" xml:space="preserve">
<value>LED-Statusanzeige</value>
</data>
<data name="Lid" xml:space="preserve"> <data name="Lid" xml:space="preserve">
<value>Deckel</value> <value>Deckel</value>
</data> </data>
@@ -503,6 +506,9 @@ Trotzdem fortfahren?</value>
<data name="Lighting" xml:space="preserve"> <data name="Lighting" xml:space="preserve">
<value>Beleuchtung</value> <value>Beleuchtung</value>
</data> </data>
<data name="LockScreen" xml:space="preserve">
<value>Lock Screen</value>
</data>
<data name="Logo" xml:space="preserve"> <data name="Logo" xml:space="preserve">
<value>Logo</value> <value>Logo</value>
</data> </data>
@@ -768,10 +774,10 @@ Trotzdem fortfahren?</value>
<value>Darstellungsmodus</value> <value>Darstellungsmodus</value>
</data> </data>
<data name="VisualModesHDR" xml:space="preserve"> <data name="VisualModesHDR" xml:space="preserve">
<value>Visual Modes are not available when HDR is active</value> <value>Darstellungsmodi sind nicht verfügbar, wenn HDR aktiv ist.</value>
</data> </data>
<data name="VisualModesScreen" xml:space="preserve"> <data name="VisualModesScreen" xml:space="preserve">
<value>Visual Modes are not available when laptop screen is off</value> <value>Darstellungsmodi sind nicht verfügbar, wenn Laptop-Bildschirm aus ist.</value>
</data> </data>
<data name="VolumeDown" xml:space="preserve"> <data name="VolumeDown" xml:space="preserve">
<value>Lautstärke verringern</value> <value>Lautstärke verringern</value>

View File

@@ -494,6 +494,9 @@
<data name="LaptopScreen" xml:space="preserve"> <data name="LaptopScreen" xml:space="preserve">
<value>Pantalla del portátil</value> <value>Pantalla del portátil</value>
</data> </data>
<data name="LEDStatusIndicators" xml:space="preserve">
<value>Indicadores de estado LED</value>
</data>
<data name="Lid" xml:space="preserve"> <data name="Lid" xml:space="preserve">
<value>Tapa</value> <value>Tapa</value>
</data> </data>
@@ -503,6 +506,9 @@
<data name="Lighting" xml:space="preserve"> <data name="Lighting" xml:space="preserve">
<value>Iluminación</value> <value>Iluminación</value>
</data> </data>
<data name="LockScreen" xml:space="preserve">
<value>Pantalla de bloqueo</value>
</data>
<data name="Logo" xml:space="preserve"> <data name="Logo" xml:space="preserve">
<value>Logo</value> <value>Logo</value>
</data> </data>
@@ -768,10 +774,10 @@
<value>Modo visual</value> <value>Modo visual</value>
</data> </data>
<data name="VisualModesHDR" xml:space="preserve"> <data name="VisualModesHDR" xml:space="preserve">
<value>Visual Modes are not available when HDR is active</value> <value>Los modos visuales no están disponibles cuando el HDR está activo</value>
</data> </data>
<data name="VisualModesScreen" xml:space="preserve"> <data name="VisualModesScreen" xml:space="preserve">
<value>Visual Modes are not available when laptop screen is off</value> <value>Los modos visuales no están disponibles cuando la pantalla portátil está apagada</value>
</data> </data>
<data name="VolumeDown" xml:space="preserve"> <data name="VolumeDown" xml:space="preserve">
<value>Bajar volumen</value> <value>Bajar volumen</value>

View File

@@ -494,6 +494,9 @@ Voulez-vous continuer ?</value>
<data name="LaptopScreen" xml:space="preserve"> <data name="LaptopScreen" xml:space="preserve">
<value>Écran</value> <value>Écran</value>
</data> </data>
<data name="LEDStatusIndicators" xml:space="preserve">
<value>LED Status Indicators</value>
</data>
<data name="Lid" xml:space="preserve"> <data name="Lid" xml:space="preserve">
<value>Capot</value> <value>Capot</value>
</data> </data>
@@ -503,6 +506,9 @@ Voulez-vous continuer ?</value>
<data name="Lighting" xml:space="preserve"> <data name="Lighting" xml:space="preserve">
<value>Éclairage</value> <value>Éclairage</value>
</data> </data>
<data name="LockScreen" xml:space="preserve">
<value>Lock Screen</value>
</data>
<data name="Logo" xml:space="preserve"> <data name="Logo" xml:space="preserve">
<value>Logo</value> <value>Logo</value>
</data> </data>
@@ -768,10 +774,10 @@ Voulez-vous continuer ?</value>
<value>Mode d'affichage</value> <value>Mode d'affichage</value>
</data> </data>
<data name="VisualModesHDR" xml:space="preserve"> <data name="VisualModesHDR" xml:space="preserve">
<value>Visual Modes are not available when HDR is active</value> <value>Les modes visuels ne sont pas disponibles lorsque le HDR est actif</value>
</data> </data>
<data name="VisualModesScreen" xml:space="preserve"> <data name="VisualModesScreen" xml:space="preserve">
<value>Visual Modes are not available when laptop screen is off</value> <value>Les modes visuels ne sont pas disponibles lorsque l'écran de l'ordinateur portable est éteint</value>
</data> </data>
<data name="VolumeDown" xml:space="preserve"> <data name="VolumeDown" xml:space="preserve">
<value>Vol-</value> <value>Vol-</value>

View File

@@ -494,6 +494,9 @@ Do you still want to continue?</value>
<data name="LaptopScreen" xml:space="preserve"> <data name="LaptopScreen" xml:space="preserve">
<value>Laptop kijelző</value> <value>Laptop kijelző</value>
</data> </data>
<data name="LEDStatusIndicators" xml:space="preserve">
<value>LED Status Indicators</value>
</data>
<data name="Lid" xml:space="preserve"> <data name="Lid" xml:space="preserve">
<value>Fedél</value> <value>Fedél</value>
</data> </data>
@@ -503,6 +506,9 @@ Do you still want to continue?</value>
<data name="Lighting" xml:space="preserve"> <data name="Lighting" xml:space="preserve">
<value>Világítás</value> <value>Világítás</value>
</data> </data>
<data name="LockScreen" xml:space="preserve">
<value>Lock Screen</value>
</data>
<data name="Logo" xml:space="preserve"> <data name="Logo" xml:space="preserve">
<value>Logó</value> <value>Logó</value>
</data> </data>

View File

@@ -494,6 +494,9 @@ Apakah Anda masih ingin melanjutkan?</value>
<data name="LaptopScreen" xml:space="preserve"> <data name="LaptopScreen" xml:space="preserve">
<value>Layar Laptop</value> <value>Layar Laptop</value>
</data> </data>
<data name="LEDStatusIndicators" xml:space="preserve">
<value>LED Status Indicators</value>
</data>
<data name="Lid" xml:space="preserve"> <data name="Lid" xml:space="preserve">
<value>Lid</value> <value>Lid</value>
</data> </data>
@@ -503,6 +506,9 @@ Apakah Anda masih ingin melanjutkan?</value>
<data name="Lighting" xml:space="preserve"> <data name="Lighting" xml:space="preserve">
<value>Lighting</value> <value>Lighting</value>
</data> </data>
<data name="LockScreen" xml:space="preserve">
<value>Lock Screen</value>
</data>
<data name="Logo" xml:space="preserve"> <data name="Logo" xml:space="preserve">
<value>Logo</value> <value>Logo</value>
</data> </data>

View File

@@ -494,6 +494,9 @@ Sei sicuro di voler continuare?</value>
<data name="LaptopScreen" xml:space="preserve"> <data name="LaptopScreen" xml:space="preserve">
<value>Schermo Laptop</value> <value>Schermo Laptop</value>
</data> </data>
<data name="LEDStatusIndicators" xml:space="preserve">
<value>LED Status Indicators</value>
</data>
<data name="Lid" xml:space="preserve"> <data name="Lid" xml:space="preserve">
<value>Lid</value> <value>Lid</value>
</data> </data>
@@ -503,6 +506,9 @@ Sei sicuro di voler continuare?</value>
<data name="Lighting" xml:space="preserve"> <data name="Lighting" xml:space="preserve">
<value>Illuminazione</value> <value>Illuminazione</value>
</data> </data>
<data name="LockScreen" xml:space="preserve">
<value>Lock Screen</value>
</data>
<data name="Logo" xml:space="preserve"> <data name="Logo" xml:space="preserve">
<value>Logo</value> <value>Logo</value>
</data> </data>

View File

@@ -494,6 +494,9 @@
<data name="LaptopScreen" xml:space="preserve"> <data name="LaptopScreen" xml:space="preserve">
<value>화면</value> <value>화면</value>
</data> </data>
<data name="LEDStatusIndicators" xml:space="preserve">
<value>LED Status Indicators</value>
</data>
<data name="Lid" xml:space="preserve"> <data name="Lid" xml:space="preserve">
<value>덮개</value> <value>덮개</value>
</data> </data>
@@ -503,6 +506,9 @@
<data name="Lighting" xml:space="preserve"> <data name="Lighting" xml:space="preserve">
<value>조명</value> <value>조명</value>
</data> </data>
<data name="LockScreen" xml:space="preserve">
<value>Lock Screen</value>
</data>
<data name="Logo" xml:space="preserve"> <data name="Logo" xml:space="preserve">
<value>로고</value> <value>로고</value>
</data> </data>

View File

@@ -494,6 +494,9 @@ Vis tiek norite tęsti?</value>
<data name="LaptopScreen" xml:space="preserve"> <data name="LaptopScreen" xml:space="preserve">
<value>Ekranas</value> <value>Ekranas</value>
</data> </data>
<data name="LEDStatusIndicators" xml:space="preserve">
<value>LED Status Indicators</value>
</data>
<data name="Lid" xml:space="preserve"> <data name="Lid" xml:space="preserve">
<value>Dangtis</value> <value>Dangtis</value>
</data> </data>
@@ -503,6 +506,9 @@ Vis tiek norite tęsti?</value>
<data name="Lighting" xml:space="preserve"> <data name="Lighting" xml:space="preserve">
<value>Apšvietimas</value> <value>Apšvietimas</value>
</data> </data>
<data name="LockScreen" xml:space="preserve">
<value>Lock Screen</value>
</data>
<data name="Logo" xml:space="preserve"> <data name="Logo" xml:space="preserve">
<value>Logotipas</value> <value>Logotipas</value>
</data> </data>

View File

@@ -494,6 +494,9 @@ Nadal chcesz kontynuować?</value>
<data name="LaptopScreen" xml:space="preserve"> <data name="LaptopScreen" xml:space="preserve">
<value>Ekran laptopa</value> <value>Ekran laptopa</value>
</data> </data>
<data name="LEDStatusIndicators" xml:space="preserve">
<value>Wskaźniki stanu</value>
</data>
<data name="Lid" xml:space="preserve"> <data name="Lid" xml:space="preserve">
<value>Pokrywa</value> <value>Pokrywa</value>
</data> </data>
@@ -503,6 +506,9 @@ Nadal chcesz kontynuować?</value>
<data name="Lighting" xml:space="preserve"> <data name="Lighting" xml:space="preserve">
<value>Oświetlenie</value> <value>Oświetlenie</value>
</data> </data>
<data name="LockScreen" xml:space="preserve">
<value>Ekran blokady</value>
</data>
<data name="Logo" xml:space="preserve"> <data name="Logo" xml:space="preserve">
<value>Logo</value> <value>Logo</value>
</data> </data>
@@ -768,10 +774,10 @@ Nadal chcesz kontynuować?</value>
<value>Tryb wyświetlania</value> <value>Tryb wyświetlania</value>
</data> </data>
<data name="VisualModesHDR" xml:space="preserve"> <data name="VisualModesHDR" xml:space="preserve">
<value>Visual Modes are not available when HDR is active</value> <value>Tryby wyświetlania nie są dostępne, kiedy HDR jest włączone</value>
</data> </data>
<data name="VisualModesScreen" xml:space="preserve"> <data name="VisualModesScreen" xml:space="preserve">
<value>Visual Modes are not available when laptop screen is off</value> <value>Tryby wyświetlania nie są dostępne, kiedy ekran laptopa jest wyłączony</value>
</data> </data>
<data name="VolumeDown" xml:space="preserve"> <data name="VolumeDown" xml:space="preserve">
<value>Zmniejsz głośność</value> <value>Zmniejsz głośność</value>

View File

@@ -494,6 +494,9 @@ Do you still want to continue?</value>
<data name="LaptopScreen" xml:space="preserve"> <data name="LaptopScreen" xml:space="preserve">
<value>Tela</value> <value>Tela</value>
</data> </data>
<data name="LEDStatusIndicators" xml:space="preserve">
<value>LED Status Indicators</value>
</data>
<data name="Lid" xml:space="preserve"> <data name="Lid" xml:space="preserve">
<value>Tampa</value> <value>Tampa</value>
</data> </data>
@@ -503,6 +506,9 @@ Do you still want to continue?</value>
<data name="Lighting" xml:space="preserve"> <data name="Lighting" xml:space="preserve">
<value>Lighting</value> <value>Lighting</value>
</data> </data>
<data name="LockScreen" xml:space="preserve">
<value>Lock Screen</value>
</data>
<data name="Logo" xml:space="preserve"> <data name="Logo" xml:space="preserve">
<value>Logo</value> <value>Logo</value>
</data> </data>

View File

@@ -494,6 +494,9 @@ Quer prosseguir?</value>
<data name="LaptopScreen" xml:space="preserve"> <data name="LaptopScreen" xml:space="preserve">
<value>Ecrã</value> <value>Ecrã</value>
</data> </data>
<data name="LEDStatusIndicators" xml:space="preserve">
<value>LED Status Indicators</value>
</data>
<data name="Lid" xml:space="preserve"> <data name="Lid" xml:space="preserve">
<value>Tampa</value> <value>Tampa</value>
</data> </data>
@@ -503,6 +506,9 @@ Quer prosseguir?</value>
<data name="Lighting" xml:space="preserve"> <data name="Lighting" xml:space="preserve">
<value>Iluminação</value> <value>Iluminação</value>
</data> </data>
<data name="LockScreen" xml:space="preserve">
<value>Lock Screen</value>
</data>
<data name="Logo" xml:space="preserve"> <data name="Logo" xml:space="preserve">
<value>Logo</value> <value>Logo</value>
</data> </data>

View File

@@ -506,6 +506,9 @@ Do you still want to continue?</value>
<data name="Lighting" xml:space="preserve"> <data name="Lighting" xml:space="preserve">
<value>Lighting</value> <value>Lighting</value>
</data> </data>
<data name="LockScreen" xml:space="preserve">
<value>Lock Screen</value>
</data>
<data name="Logo" xml:space="preserve"> <data name="Logo" xml:space="preserve">
<value>Logo</value> <value>Logo</value>
</data> </data>

View File

@@ -494,6 +494,9 @@
<data name="LaptopScreen" xml:space="preserve"> <data name="LaptopScreen" xml:space="preserve">
<value>Ecran Laptop</value> <value>Ecran Laptop</value>
</data> </data>
<data name="LEDStatusIndicators" xml:space="preserve">
<value>LED Status Indicators</value>
</data>
<data name="Lid" xml:space="preserve"> <data name="Lid" xml:space="preserve">
<value>Capac</value> <value>Capac</value>
</data> </data>
@@ -503,6 +506,9 @@
<data name="Lighting" xml:space="preserve"> <data name="Lighting" xml:space="preserve">
<value>Iluminare</value> <value>Iluminare</value>
</data> </data>
<data name="LockScreen" xml:space="preserve">
<value>Lock Screen</value>
</data>
<data name="Logo" xml:space="preserve"> <data name="Logo" xml:space="preserve">
<value>Logo-ul</value> <value>Logo-ul</value>
</data> </data>

View File

@@ -121,7 +121,7 @@
<value>Hızlandırma</value> <value>Hızlandırma</value>
</data> </data>
<data name="ACPIError" xml:space="preserve"> <data name="ACPIError" xml:space="preserve">
<value>ASUS ACPI'ye bağlanılamıyor. Uygulama o olmadan çalışamaz. Asus Sistem Kontrol Arayüzü'yüklemeyi deneyin.</value> <value>ASUS ACPI bağlanılamıyor. Uygulama onsuz çalışamaz. Asus Sistem Kontrol Arayüzünü kurmayı deneyin</value>
</data> </data>
<data name="AlertAPUMemoryRestart" xml:space="preserve"> <data name="AlertAPUMemoryRestart" xml:space="preserve">
<value>Değişiklikleri uygulamak için cihazınızı yeniden başlatın</value> <value>Değişiklikleri uygulamak için cihazınızı yeniden başlatın</value>
@@ -130,7 +130,7 @@
<value>Şimdi yeniden başlatılsın mı?</value> <value>Şimdi yeniden başlatılsın mı?</value>
</data> </data>
<data name="AlertDGPU" xml:space="preserve"> <data name="AlertDGPU" xml:space="preserve">
<value>Görünüşe göre GPU yoğun bir şekilde kullanılıyor, devre dışı bırakılsın mı?</value> <value>GPU yoğun kullanımda gibi, devre dışı bırakılsın mı?</value>
</data> </data>
<data name="AlertDGPUTitle" xml:space="preserve"> <data name="AlertDGPUTitle" xml:space="preserve">
<value>Eko Modu</value> <value>Eko Modu</value>
@@ -139,7 +139,7 @@
<value>Ultimate Modu kapatmak yeniden başlatmayı gerektirir</value> <value>Ultimate Modu kapatmak yeniden başlatmayı gerektirir</value>
</data> </data>
<data name="AlertUltimateOn" xml:space="preserve"> <data name="AlertUltimateOn" xml:space="preserve">
<value>Ultimate Modu etkinleştirmek yeniden başlatmayı gerektirir</value> <value>Ultimate Mod için yeniden başlatılmalı</value>
</data> </data>
<data name="AlertUltimateTitle" xml:space="preserve"> <data name="AlertUltimateTitle" xml:space="preserve">
<value>Şimdi yeniden başlatılsın mı?</value> <value>Şimdi yeniden başlatılsın mı?</value>
@@ -169,10 +169,10 @@
<value>Güç Sınırlarını Uygula</value> <value>Güç Sınırlarını Uygula</value>
</data> </data>
<data name="ApplyWindowsPowerPlan" xml:space="preserve"> <data name="ApplyWindowsPowerPlan" xml:space="preserve">
<value>Windows Güç Modunu otomatik ayarla</value> <value>Windows Güç Modlarını otomatik ayarla</value>
</data> </data>
<data name="APUMemory" xml:space="preserve"> <data name="APUMemory" xml:space="preserve">
<value>GPU'ya Atanan Bellek</value> <value>GPU için Atanan Bellek</value>
</data> </data>
<data name="AsusServicesRunning" xml:space="preserve"> <data name="AsusServicesRunning" xml:space="preserve">
<value>Çalışan Asus Hizmetleri</value> <value>Çalışan Asus Hizmetleri</value>
@@ -244,7 +244,7 @@
<value>Otomatik</value> <value>Otomatik</value>
</data> </data>
<data name="AutoRefreshTooltip" xml:space="preserve"> <data name="AutoRefreshTooltip" xml:space="preserve">
<value>Pil tasarrufu için 60Hz kullanılır ve şarja takıldığında eski haline getirir</value> <value>Pil tasarrufu için 60Hz kullanılır, şarja takıldığında eski haline gelir</value>
</data> </data>
<data name="Awake" xml:space="preserve"> <data name="Awake" xml:space="preserve">
<value>Uyanırken</value> <value>Uyanırken</value>
@@ -262,7 +262,7 @@
<value>Kapalı</value> <value>Kapalı</value>
</data> </data>
<data name="BacklightTimeout" xml:space="preserve"> <data name="BacklightTimeout" xml:space="preserve">
<value>Pildeyken klavye ışığının kapanma süresi</value> <value>Pilde klavye ışığı kapanma süresi</value>
</data> </data>
<data name="BacklightTimeoutBattery" xml:space="preserve"> <data name="BacklightTimeoutBattery" xml:space="preserve">
<value>Pildeyken Arka Işık Zaman Aşımı</value> <value>Pildeyken Arka Işık Zaman Aşımı</value>
@@ -283,7 +283,7 @@
<value>Pil Sağlığı</value> <value>Pil Sağlığı</value>
</data> </data>
<data name="BatteryLimitFull" xml:space="preserve"> <data name="BatteryLimitFull" xml:space="preserve">
<value>Bir seferlik %100 şarj etme</value> <value>Tek seferlik %100'e kadar şarj</value>
</data> </data>
<data name="Binding" xml:space="preserve"> <data name="Binding" xml:space="preserve">
<value>Tuş Atamaları</value> <value>Tuş Atamaları</value>
@@ -298,13 +298,13 @@
<value>BIOS ve Sürücü Güncellemeleri</value> <value>BIOS ve Sürücü Güncellemeleri</value>
</data> </data>
<data name="Boot" xml:space="preserve"> <data name="Boot" xml:space="preserve">
<value>Boot</value> <value>ılışta</value>
</data> </data>
<data name="BootSound" xml:space="preserve"> <data name="BootSound" xml:space="preserve">
<value>Boot Sesi</value> <value>Önyükleme Sesi</value>
</data> </data>
<data name="Brightness" xml:space="preserve"> <data name="Brightness" xml:space="preserve">
<value>Parlaklığı</value> <value>Parlaklık</value>
</data> </data>
<data name="BrightnessDown" xml:space="preserve"> <data name="BrightnessDown" xml:space="preserve">
<value>Parlaklığı Azalt</value> <value>Parlaklığı Azalt</value>
@@ -313,10 +313,10 @@
<value>Parlaklığı Artır</value> <value>Parlaklığı Artır</value>
</data> </data>
<data name="BWTrayIcon" xml:space="preserve"> <data name="BWTrayIcon" xml:space="preserve">
<value>Siyah-beyaz tepsi simgesi</value> <value>Siyah ve beyaz tepsi simgesi</value>
</data> </data>
<data name="Calibrate" xml:space="preserve"> <data name="Calibrate" xml:space="preserve">
<value>Kalibre Et</value> <value>Kalibrasyon</value>
</data> </data>
<data name="Charging" xml:space="preserve"> <data name="Charging" xml:space="preserve">
<value>Şarj oluyor</value> <value>Şarj oluyor</value>
@@ -331,7 +331,7 @@
<value>Kontrolcü</value> <value>Kontrolcü</value>
</data> </data>
<data name="CPUBoost" xml:space="preserve"> <data name="CPUBoost" xml:space="preserve">
<value>CPU Desteği</value> <value>CPU Artışı</value>
</data> </data>
<data name="Custom" xml:space="preserve"> <data name="Custom" xml:space="preserve">
<value>Özel</value> <value>Özel</value>
@@ -352,7 +352,7 @@
<value>Ekran overdrive özelliğini devre dışı bırak</value> <value>Ekran overdrive özelliğini devre dışı bırak</value>
</data> </data>
<data name="Discharging" xml:space="preserve"> <data name="Discharging" xml:space="preserve">
<value>Şarj azalıyor</value> <value>Şarj Azalıyor</value>
</data> </data>
<data name="DownloadColorProfiles" xml:space="preserve"> <data name="DownloadColorProfiles" xml:space="preserve">
<value>Renk Profillerini İndir</value> <value>Renk Profillerini İndir</value>
@@ -364,13 +364,13 @@
<value>Sürücüler ve Yazılımlar</value> <value>Sürücüler ve Yazılımlar</value>
</data> </data>
<data name="EcoGPUTooltip" xml:space="preserve"> <data name="EcoGPUTooltip" xml:space="preserve">
<value>Pil tasarrufu için harici GPU'yu devre dışı bırakır</value> <value>Pil tasarrufu için dGPU devre dışı bırakılır</value>
</data> </data>
<data name="EcoMode" xml:space="preserve"> <data name="EcoMode" xml:space="preserve">
<value>Eko</value> <value>Eko</value>
</data> </data>
<data name="EnableGPUOnShutdown" xml:space="preserve"> <data name="EnableGPUOnShutdown" xml:space="preserve">
<value>Kapanma sırasında harici GPU'yu etkinleştir (Eco moduyla ilgili sorunları önler)</value> <value>Kapatma sırasında GPU'yu etkinleştir (Eco modundaki sorunları önler)</value>
</data> </data>
<data name="EnableOptimusText" xml:space="preserve"> <data name="EnableOptimusText" xml:space="preserve">
<value>NVIDIA Denetim Masası'ndaki Görüntü Modu Optimus olarak ayarlı değilken Eko moduna geçilerek harici GPU'nun devre dışı bırakılması, bir sonraki yeniden başlatmaya kadar parlaklık ayarlarında sorunlara neden olabilir. <value>NVIDIA Denetim Masası'ndaki Görüntü Modu Optimus olarak ayarlı değilken Eko moduna geçilerek harici GPU'nun devre dışı bırakılması, bir sonraki yeniden başlatmaya kadar parlaklık ayarlarında sorunlara neden olabilir.
@@ -387,10 +387,10 @@ Yine de devam etmek istiyor musunuz?</value>
<value>Profili Dışa Aktar</value> <value>Profili Dışa Aktar</value>
</data> </data>
<data name="Extra" xml:space="preserve"> <data name="Extra" xml:space="preserve">
<value>Ekstra</value> <value>Ek Özellikler</value>
</data> </data>
<data name="ExtraSettings" xml:space="preserve"> <data name="ExtraSettings" xml:space="preserve">
<value>Ekstra Ayarlar</value> <value>Ek Ayarlar</value>
</data> </data>
<data name="FactoryDefaults" xml:space="preserve"> <data name="FactoryDefaults" xml:space="preserve">
<value>Fabrika Ayarları</value> <value>Fabrika Ayarları</value>
@@ -420,10 +420,10 @@ Yine de devam etmek istiyor musunuz?</value>
<value>Fanlar + Güç</value> <value>Fanlar + Güç</value>
</data> </data>
<data name="FlickerFreeDimming" xml:space="preserve"> <data name="FlickerFreeDimming" xml:space="preserve">
<value>Flicker-free Dimming</value> <value>Titreşimsiz Karartma</value>
</data> </data>
<data name="FnLock" xml:space="preserve"> <data name="FnLock" xml:space="preserve">
<value>Fn+F kısayol tuşlarını FN tuşuna basmadan çalıştır</value> <value>Fn+F kısayolunu Fn tuşuna basmadan çalıştır</value>
</data> </data>
<data name="FnLockOff" xml:space="preserve"> <data name="FnLockOff" xml:space="preserve">
<value>FN-Lock Kapalı</value> <value>FN-Lock Kapalı</value>
@@ -447,13 +447,13 @@ Yine de devam etmek istiyor musunuz?</value>
<value>GPU Modu</value> <value>GPU Modu</value>
</data> </data>
<data name="GPUModeEco" xml:space="preserve"> <data name="GPUModeEco" xml:space="preserve">
<value>sadece dahili GPU</value> <value>Sadece iGPU</value>
</data> </data>
<data name="GPUModeStandard" xml:space="preserve"> <data name="GPUModeStandard" xml:space="preserve">
<value>dahili + harici GPU</value> <value>iGPU + dGPU</value>
</data> </data>
<data name="GPUModeUltimate" xml:space="preserve"> <data name="GPUModeUltimate" xml:space="preserve">
<value>sadece harici GPU</value> <value>Ayrıcalıklı dGPU</value>
</data> </data>
<data name="GPUPower" xml:space="preserve"> <data name="GPUPower" xml:space="preserve">
<value>GPU Gücü</value> <value>GPU Gücü</value>
@@ -471,7 +471,7 @@ Yine de devam etmek istiyor musunuz?</value>
<value>Yüksek</value> <value>Yüksek</value>
</data> </data>
<data name="ImageRotation" xml:space="preserve"> <data name="ImageRotation" xml:space="preserve">
<value>Görüntü Rotasyonu</value> <value>Görüntü Döndürme</value>
</data> </data>
<data name="Import" xml:space="preserve"> <data name="Import" xml:space="preserve">
<value>Profili İçe Aktar</value> <value>Profili İçe Aktar</value>
@@ -483,7 +483,7 @@ Yine de devam etmek istiyor musunuz?</value>
<value>Klavye</value> <value>Klavye</value>
</data> </data>
<data name="KillGpuApps" xml:space="preserve"> <data name="KillGpuApps" xml:space="preserve">
<value>Eco'ya geçerken harici GPU'yu kullanan tüm uygulamaları durdur</value> <value>Eco moda geçerken GPU kullanan tüm uygulamaları durdur</value>
</data> </data>
<data name="LaptopBacklight" xml:space="preserve"> <data name="LaptopBacklight" xml:space="preserve">
<value>Laptop Aydınlatması</value> <value>Laptop Aydınlatması</value>
@@ -494,6 +494,9 @@ Yine de devam etmek istiyor musunuz?</value>
<data name="LaptopScreen" xml:space="preserve"> <data name="LaptopScreen" xml:space="preserve">
<value>Laptop Ekranı</value> <value>Laptop Ekranı</value>
</data> </data>
<data name="LEDStatusIndicators" xml:space="preserve">
<value>LED Durum Göstergeleri</value>
</data>
<data name="Lid" xml:space="preserve"> <data name="Lid" xml:space="preserve">
<value>Kapak</value> <value>Kapak</value>
</data> </data>
@@ -503,6 +506,9 @@ Yine de devam etmek istiyor musunuz?</value>
<data name="Lighting" xml:space="preserve"> <data name="Lighting" xml:space="preserve">
<value>Işıklandırma</value> <value>Işıklandırma</value>
</data> </data>
<data name="LockScreen" xml:space="preserve">
<value>Kilit Ekranı</value>
</data>
<data name="Logo" xml:space="preserve"> <data name="Logo" xml:space="preserve">
<value>Logo</value> <value>Logo</value>
</data> </data>
@@ -510,7 +516,7 @@ Yine de devam etmek istiyor musunuz?</value>
<value>Düşük</value> <value>Düşük</value>
</data> </data>
<data name="LSDeadzones" xml:space="preserve"> <data name="LSDeadzones" xml:space="preserve">
<value>Sol Joystick Ölü Bölgeleri</value> <value>Sol Çubuk Ölü Bölgeleri</value>
</data> </data>
<data name="LTDeadzones" xml:space="preserve"> <data name="LTDeadzones" xml:space="preserve">
<value>Sol Tetik Ölü Bölgeleri</value> <value>Sol Tetik Ölü Bölgeleri</value>
@@ -519,7 +525,7 @@ Yine de devam etmek istiyor musunuz?</value>
<value>Ses Görselleştirici</value> <value>Ses Görselleştirici</value>
</data> </data>
<data name="MatrixBanner" xml:space="preserve"> <data name="MatrixBanner" xml:space="preserve">
<value>Binary Banner</value> <value>İkili Afiş</value>
</data> </data>
<data name="MatrixBright" xml:space="preserve"> <data name="MatrixBright" xml:space="preserve">
<value>Parlak</value> <value>Parlak</value>
@@ -543,7 +549,7 @@ Yine de devam etmek istiyor musunuz?</value>
<value>Resim</value> <value>Resim</value>
</data> </data>
<data name="MaxRefreshTooltip" xml:space="preserve"> <data name="MaxRefreshTooltip" xml:space="preserve">
<value>Daha düşük gecikme için maksimum yenileme hızı</value> <value>En düşük gecikme için en yüksek yenileme hızı</value>
</data> </data>
<data name="MinRefreshTooltip" xml:space="preserve"> <data name="MinRefreshTooltip" xml:space="preserve">
<value>Pil tasarrufu için 60Hz yenileme hızı</value> <value>Pil tasarrufu için 60Hz yenileme hızı</value>
@@ -555,7 +561,7 @@ Yine de devam etmek istiyor musunuz?</value>
<value>Dakika</value> <value>Dakika</value>
</data> </data>
<data name="MouseAngleSnapping" xml:space="preserve"> <data name="MouseAngleSnapping" xml:space="preserve">
<value>Angle Snapping</value> <value>Açılı Yakalama</value>
</data> </data>
<data name="MouseAutoPowerOff" xml:space="preserve"> <data name="MouseAutoPowerOff" xml:space="preserve">
<value>Sonrasında Otomatik Kapat</value> <value>Sonrasında Otomatik Kapat</value>
@@ -576,7 +582,7 @@ Yine de devam etmek istiyor musunuz?</value>
<value>Performans</value> <value>Performans</value>
</data> </data>
<data name="MouseSynchronize" xml:space="preserve"> <data name="MouseSynchronize" xml:space="preserve">
<value>Fare ile senkronize edin</value> <value>Fare ile eşitle</value>
</data> </data>
<data name="Multizone" xml:space="preserve"> <data name="Multizone" xml:space="preserve">
<value>Çok Bölgeli</value> <value>Çok Bölgeli</value>
@@ -585,7 +591,7 @@ Yine de devam etmek istiyor musunuz?</value>
<value>Çok Bölgeli (Güçlü)</value> <value>Çok Bölgeli (Güçlü)</value>
</data> </data>
<data name="Muted" xml:space="preserve"> <data name="Muted" xml:space="preserve">
<value>Ses kapalı</value> <value>Susturuldu</value>
</data> </data>
<data name="MuteMic" xml:space="preserve"> <data name="MuteMic" xml:space="preserve">
<value>Mikrofonu Sustur</value> <value>Mikrofonu Sustur</value>
@@ -597,10 +603,10 @@ Yine de devam etmek istiyor musunuz?</value>
<value>Yeni güncellemeler</value> <value>Yeni güncellemeler</value>
</data> </data>
<data name="NoNewUpdates" xml:space="preserve"> <data name="NoNewUpdates" xml:space="preserve">
<value>Güncelleme yok</value> <value>Yeni güncelleme yok</value>
</data> </data>
<data name="NotConnected" xml:space="preserve"> <data name="NotConnected" xml:space="preserve">
<value>Bağlantı Yok</value> <value>Bağlı Değil</value>
</data> </data>
<data name="Off" xml:space="preserve"> <data name="Off" xml:space="preserve">
<value>Kapalı</value> <value>Kapalı</value>
@@ -615,13 +621,13 @@ Yine de devam etmek istiyor musunuz?</value>
<value>G-Helper penceresini aç</value> <value>G-Helper penceresini aç</value>
</data> </data>
<data name="Optimized" xml:space="preserve"> <data name="Optimized" xml:space="preserve">
<value>Optimize edilmiş</value> <value>İyileştirilmiş</value>
</data> </data>
<data name="OptimizedGPUTooltip" xml:space="preserve"> <data name="OptimizedGPUTooltip" xml:space="preserve">
<value>Pille çalışırken Eko moda ve şarjdayken Standart moda geçiş yapın</value> <value>Pil ile çalışırken Eko moda, şarjda Standart moda geçiş yap</value>
</data> </data>
<data name="OptimizedUSBC" xml:space="preserve"> <data name="OptimizedUSBC" xml:space="preserve">
<value>Optimize edilmiş modda USB-c şarj cihazında GPU'yu devre dışı bırak</value> <value>İyileştirilmiş modda USB-C şarj cihazı bağlıyken, GPU devre dışı kalsın</value>
</data> </data>
<data name="Other" xml:space="preserve"> <data name="Other" xml:space="preserve">
<value>Diğer</value> <value>Diğer</value>
@@ -651,13 +657,13 @@ Yine de devam etmek istiyor musunuz?</value>
<value>Güç Sınırları deneysel bir özelliktir. Riski göze alarak dikkatli kullanın!</value> <value>Güç Sınırları deneysel bir özelliktir. Riski göze alarak dikkatli kullanın!</value>
</data> </data>
<data name="PrintScreen" xml:space="preserve"> <data name="PrintScreen" xml:space="preserve">
<value>Ekran Görüntüsü Al</value> <value>PrintScreen</value>
</data> </data>
<data name="Profile" xml:space="preserve"> <data name="Profile" xml:space="preserve">
<value>Profil</value> <value>Profil</value>
</data> </data>
<data name="Quit" xml:space="preserve"> <data name="Quit" xml:space="preserve">
<value>Çıkış Yap</value> <value>Çıkış</value>
</data> </data>
<data name="Reset" xml:space="preserve"> <data name="Reset" xml:space="preserve">
<value>Sıfırla</value> <value>Sıfırla</value>
@@ -669,7 +675,7 @@ Yine de devam etmek istiyor musunuz?</value>
<value>RPM</value> <value>RPM</value>
</data> </data>
<data name="RSDeadzones" xml:space="preserve"> <data name="RSDeadzones" xml:space="preserve">
<value>Sağ Joystick Ölü Bölgeleri</value> <value>Sağ Çubuk Ölü Bölgeleri</value>
</data> </data>
<data name="RTDeadzones" xml:space="preserve"> <data name="RTDeadzones" xml:space="preserve">
<value>Sağ Tetik Ölü Bölgeleri</value> <value>Sağ Tetik Ölü Bölgeleri</value>
@@ -687,7 +693,7 @@ Yine de devam etmek istiyor musunuz?</value>
<value>Screenpad Parlaklığını Artır</value> <value>Screenpad Parlaklığını Artır</value>
</data> </data>
<data name="Shutdown" xml:space="preserve"> <data name="Shutdown" xml:space="preserve">
<value>Kapatma</value> <value>Kapanış</value>
</data> </data>
<data name="Silent" xml:space="preserve"> <data name="Silent" xml:space="preserve">
<value>Sessiz</value> <value>Sessiz</value>
@@ -696,7 +702,7 @@ Yine de devam etmek istiyor musunuz?</value>
<value>Uyku</value> <value>Uyku</value>
</data> </data>
<data name="StandardGPUTooltip" xml:space="preserve"> <data name="StandardGPUTooltip" xml:space="preserve">
<value>Standart kullanım için harici GPU'yu etkinleştirir</value> <value>Standart kullanım için dGPU etkinleştirilir</value>
</data> </data>
<data name="StandardMode" xml:space="preserve"> <data name="StandardMode" xml:space="preserve">
<value>Standart</value> <value>Standart</value>
@@ -744,13 +750,13 @@ Yine de devam etmek istiyor musunuz?</value>
<value>Pille çalışırken kapat</value> <value>Pille çalışırken kapat</value>
</data> </data>
<data name="UltimateGPUTooltip" xml:space="preserve"> <data name="UltimateGPUTooltip" xml:space="preserve">
<value>Dizüstü ekranını harici GPU'ya yönlendirerek FPS'yi maksimize eder</value> <value>Dizüstü ekranını dGPU üstüne yönlendirerek FPS en üst düzeye çıkar</value>
</data> </data>
<data name="UltimateMode" xml:space="preserve"> <data name="UltimateMode" xml:space="preserve">
<value>Ultimate</value> <value>Ultimate</value>
</data> </data>
<data name="UndervoltingRisky" xml:space="preserve"> <data name="UndervoltingRisky" xml:space="preserve">
<value>Undervolting deneysel ve riskli bir özelliktir. Uygulanan değerler cihazınız için çok düşükse, cihazınız stabil çalışmayabilir, kapanabilir veya veri kaybına uğrayabilir. Yine de denemek istiyorsanız, önce küçük değerlerden başlayıp Uygula'ya tıklayın ve sizin için uygun olanı test edin.</value> <value>Düşük voltaj deneysel ve riskli bir özelliktir. Uygulanan değerler cihaz için çok düşükse, cihazı stabil çalışmayabilir, kapanabilir veya veri kaybına uğrayabilir. Yine de denemek istiyorsanız, önce küçük değerlerden başlayın ve sizin için uygun olanı test edin.</value>
</data> </data>
<data name="Unmuted" xml:space="preserve"> <data name="Unmuted" xml:space="preserve">
<value>Ses açık</value> <value>Ses açık</value>
@@ -762,16 +768,16 @@ Yine de devam etmek istiyor musunuz?</value>
<value>Sürüm</value> <value>Sürüm</value>
</data> </data>
<data name="VibrationStrength" xml:space="preserve"> <data name="VibrationStrength" xml:space="preserve">
<value>Titreşim Şiddeti</value> <value>Titreşim Yoğunluğu</value>
</data> </data>
<data name="VisualMode" xml:space="preserve"> <data name="VisualMode" xml:space="preserve">
<value>Görüntü Modu</value> <value>Görsel Mod</value>
</data> </data>
<data name="VisualModesHDR" xml:space="preserve"> <data name="VisualModesHDR" xml:space="preserve">
<value>Visual Modes are not available when HDR is active</value> <value>HDR etkin olduğunda Görsel Modlar kullanılamaz</value>
</data> </data>
<data name="VisualModesScreen" xml:space="preserve"> <data name="VisualModesScreen" xml:space="preserve">
<value>Visual Modes are not available when laptop screen is off</value> <value>Bilgisayar ekranı kapalı olduğunda Görsel Modlar kullanılamaz</value>
</data> </data>
<data name="VolumeDown" xml:space="preserve"> <data name="VolumeDown" xml:space="preserve">
<value>Sesi Azalt</value> <value>Sesi Azalt</value>
@@ -786,6 +792,6 @@ Yine de devam etmek istiyor musunuz?</value>
<value>Uygulama penceresini her zaman en üstte tut</value> <value>Uygulama penceresini her zaman en üstte tut</value>
</data> </data>
<data name="Zoom" xml:space="preserve"> <data name="Zoom" xml:space="preserve">
<value>Yakınlaştırma</value> <value>Yakınlaştır</value>
</data> </data>
</root> </root>

View File

@@ -494,6 +494,9 @@
<data name="LaptopScreen" xml:space="preserve"> <data name="LaptopScreen" xml:space="preserve">
<value>Дисплей</value> <value>Дисплей</value>
</data> </data>
<data name="LEDStatusIndicators" xml:space="preserve">
<value>LED-Індикатори стану</value>
</data>
<data name="Lid" xml:space="preserve"> <data name="Lid" xml:space="preserve">
<value>Кришка</value> <value>Кришка</value>
</data> </data>
@@ -503,6 +506,9 @@
<data name="Lighting" xml:space="preserve"> <data name="Lighting" xml:space="preserve">
<value>Ілюмінація</value> <value>Ілюмінація</value>
</data> </data>
<data name="LockScreen" xml:space="preserve">
<value>Lock Screen</value>
</data>
<data name="Logo" xml:space="preserve"> <data name="Logo" xml:space="preserve">
<value>Лого</value> <value>Лого</value>
</data> </data>
@@ -768,10 +774,10 @@
<value>Візуальний режим</value> <value>Візуальний режим</value>
</data> </data>
<data name="VisualModesHDR" xml:space="preserve"> <data name="VisualModesHDR" xml:space="preserve">
<value>Visual Modes are not available when HDR is active</value> <value>Візуальні режими недоступні, коли HDR активний</value>
</data> </data>
<data name="VisualModesScreen" xml:space="preserve"> <data name="VisualModesScreen" xml:space="preserve">
<value>Visual Modes are not available when laptop screen is off</value> <value>Візуальні режими недоступні, коли екран вимкнений</value>
</data> </data>
<data name="VolumeDown" xml:space="preserve"> <data name="VolumeDown" xml:space="preserve">
<value>Зменшення гучності</value> <value>Зменшення гучності</value>

View File

@@ -494,6 +494,9 @@ Do you still want to continue?</value>
<data name="LaptopScreen" xml:space="preserve"> <data name="LaptopScreen" xml:space="preserve">
<value>Màn hình Laptop</value> <value>Màn hình Laptop</value>
</data> </data>
<data name="LEDStatusIndicators" xml:space="preserve">
<value>LED Status Indicators</value>
</data>
<data name="Lid" xml:space="preserve"> <data name="Lid" xml:space="preserve">
<value>Màn gập</value> <value>Màn gập</value>
</data> </data>
@@ -503,6 +506,9 @@ Do you still want to continue?</value>
<data name="Lighting" xml:space="preserve"> <data name="Lighting" xml:space="preserve">
<value>Lighting</value> <value>Lighting</value>
</data> </data>
<data name="LockScreen" xml:space="preserve">
<value>Lock Screen</value>
</data>
<data name="Logo" xml:space="preserve"> <data name="Logo" xml:space="preserve">
<value>Logo</value> <value>Logo</value>
</data> </data>

View File

@@ -494,6 +494,9 @@
<data name="LaptopScreen" xml:space="preserve"> <data name="LaptopScreen" xml:space="preserve">
<value>笔记本屏幕</value> <value>笔记本屏幕</value>
</data> </data>
<data name="LEDStatusIndicators" xml:space="preserve">
<value>LED 状态指示器</value>
</data>
<data name="Lid" xml:space="preserve"> <data name="Lid" xml:space="preserve">
<value>盖子</value> <value>盖子</value>
</data> </data>
@@ -503,6 +506,9 @@
<data name="Lighting" xml:space="preserve"> <data name="Lighting" xml:space="preserve">
<value>背光</value> <value>背光</value>
</data> </data>
<data name="LockScreen" xml:space="preserve">
<value>锁定屏幕</value>
</data>
<data name="Logo" xml:space="preserve"> <data name="Logo" xml:space="preserve">
<value>徽标</value> <value>徽标</value>
</data> </data>
@@ -579,10 +585,10 @@
<value>和鼠标同步</value> <value>和鼠标同步</value>
</data> </data>
<data name="Multizone" xml:space="preserve"> <data name="Multizone" xml:space="preserve">
<value>Multi Zone</value> <value>多区</value>
</data> </data>
<data name="MultizoneStrong" xml:space="preserve"> <data name="MultizoneStrong" xml:space="preserve">
<value>Multi Zone Strong</value> <value>多区强化</value>
</data> </data>
<data name="Muted" xml:space="preserve"> <data name="Muted" xml:space="preserve">
<value>麦克风关闭</value> <value>麦克风关闭</value>
@@ -609,7 +615,7 @@
<value>开</value> <value>开</value>
</data> </data>
<data name="OneZone" xml:space="preserve"> <data name="OneZone" xml:space="preserve">
<value>One Zone</value> <value>单区</value>
</data> </data>
<data name="OpenGHelper" xml:space="preserve"> <data name="OpenGHelper" xml:space="preserve">
<value>打开G-Helper窗口</value> <value>打开G-Helper窗口</value>
@@ -765,13 +771,13 @@
<value>震动强度</value> <value>震动强度</value>
</data> </data>
<data name="VisualMode" xml:space="preserve"> <data name="VisualMode" xml:space="preserve">
<value>Visual Mode</value> <value>色域模式</value>
</data> </data>
<data name="VisualModesHDR" xml:space="preserve"> <data name="VisualModesHDR" xml:space="preserve">
<value>Visual Modes are not available when HDR is active</value> <value>HDR 开启时不支持色域模式</value>
</data> </data>
<data name="VisualModesScreen" xml:space="preserve"> <data name="VisualModesScreen" xml:space="preserve">
<value>Visual Modes are not available when laptop screen is off</value> <value>笔记本自带屏幕关闭时不支持色域模式</value>
</data> </data>
<data name="VolumeDown" xml:space="preserve"> <data name="VolumeDown" xml:space="preserve">
<value>音量降低</value> <value>音量降低</value>
@@ -786,6 +792,6 @@
<value>窗口置顶</value> <value>窗口置顶</value>
</data> </data>
<data name="Zoom" xml:space="preserve"> <data name="Zoom" xml:space="preserve">
<value>Zoom</value> <value>缩放</value>
</data> </data>
</root> </root>

View File

@@ -494,6 +494,9 @@
<data name="LaptopScreen" xml:space="preserve"> <data name="LaptopScreen" xml:space="preserve">
<value>螢幕顯示</value> <value>螢幕顯示</value>
</data> </data>
<data name="LEDStatusIndicators" xml:space="preserve">
<value>LED狀態指示器</value>
</data>
<data name="Lid" xml:space="preserve"> <data name="Lid" xml:space="preserve">
<value>螢幕背蓋</value> <value>螢幕背蓋</value>
</data> </data>
@@ -503,6 +506,9 @@
<data name="Lighting" xml:space="preserve"> <data name="Lighting" xml:space="preserve">
<value>亮度</value> <value>亮度</value>
</data> </data>
<data name="LockScreen" xml:space="preserve">
<value>鎖定螢幕</value>
</data>
<data name="Logo" xml:space="preserve"> <data name="Logo" xml:space="preserve">
<value>Logo</value> <value>Logo</value>
</data> </data>
@@ -768,10 +774,10 @@
<value>色域模式</value> <value>色域模式</value>
</data> </data>
<data name="VisualModesHDR" xml:space="preserve"> <data name="VisualModesHDR" xml:space="preserve">
<value>Visual Modes are not available when HDR is active</value> <value>HDR開啟時不支援色域模式</value>
</data> </data>
<data name="VisualModesScreen" xml:space="preserve"> <data name="VisualModesScreen" xml:space="preserve">
<value>Visual Modes are not available when laptop screen is off</value> <value>筆電螢幕闔上時不支援色域模式</value>
</data> </data>
<data name="VolumeDown" xml:space="preserve"> <data name="VolumeDown" xml:space="preserve">
<value>音量降低</value> <value>音量降低</value>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.4 KiB

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.4 KiB

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.4 KiB

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.4 KiB

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.4 KiB

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.4 KiB

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.4 KiB

After

Width:  |  Height:  |  Size: 7.7 KiB

View File

@@ -1368,7 +1368,7 @@ namespace GHelper
// //
pictureKeyboard.BackgroundImage = Properties.Resources.icons8_keyboard_32__1_; pictureKeyboard.BackgroundImage = Properties.Resources.icons8_keyboard_32__1_;
pictureKeyboard.BackgroundImageLayout = ImageLayout.Zoom; pictureKeyboard.BackgroundImageLayout = ImageLayout.Zoom;
pictureKeyboard.Location = new Point(8, 3); pictureKeyboard.Location = new Point(8, 0);
pictureKeyboard.Margin = new Padding(4); pictureKeyboard.Margin = new Padding(4);
pictureKeyboard.Name = "pictureKeyboard"; pictureKeyboard.Name = "pictureKeyboard";
pictureKeyboard.Size = new Size(32, 32); pictureKeyboard.Size = new Size(32, 32);
@@ -1379,7 +1379,7 @@ namespace GHelper
// //
labelKeyboard.AutoSize = true; labelKeyboard.AutoSize = true;
labelKeyboard.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point); labelKeyboard.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
labelKeyboard.Location = new Point(40, 0); labelKeyboard.Location = new Point(43, 0);
labelKeyboard.Margin = new Padding(4, 0, 4, 0); labelKeyboard.Margin = new Padding(4, 0, 4, 0);
labelKeyboard.Name = "labelKeyboard"; labelKeyboard.Name = "labelKeyboard";
labelKeyboard.Size = new Size(210, 32); labelKeyboard.Size = new Size(210, 32);
@@ -1399,6 +1399,7 @@ namespace GHelper
// //
// labelCharge // labelCharge
// //
labelCharge.Cursor = Cursors.Hand;
labelCharge.Dock = DockStyle.Right; labelCharge.Dock = DockStyle.Right;
labelCharge.ForeColor = SystemColors.ControlDark; labelCharge.ForeColor = SystemColors.ControlDark;
labelCharge.Location = new Point(366, 0); labelCharge.Location = new Point(366, 0);
@@ -1705,12 +1706,13 @@ namespace GHelper
// //
// labelVisual // labelVisual
// //
labelVisual.Cursor = Cursors.Hand;
labelVisual.ForeColor = SystemColors.GrayText; labelVisual.ForeColor = SystemColors.GrayText;
labelVisual.Location = new Point(20, 170); labelVisual.Location = new Point(20, 170);
labelVisual.Margin = new Padding(4, 0, 4, 0); labelVisual.Margin = new Padding(4, 0, 4, 0);
labelVisual.Name = "labelVisual"; labelVisual.Name = "labelVisual";
labelVisual.Padding = new Padding(4); labelVisual.Padding = new Padding(4);
labelVisual.Size = new Size(787, 52); labelVisual.Size = new Size(800, 52);
labelVisual.TabIndex = 42; labelVisual.TabIndex = 42;
labelVisual.Text = "Visual Modes are not available when HDR is active"; labelVisual.Text = "Visual Modes are not available when HDR is active";
labelVisual.Visible = false; labelVisual.Visible = false;
@@ -1864,7 +1866,7 @@ namespace GHelper
labelGammaTitle.Location = new Point(43, 0); labelGammaTitle.Location = new Point(43, 0);
labelGammaTitle.Margin = new Padding(4, 0, 4, 0); labelGammaTitle.Margin = new Padding(4, 0, 4, 0);
labelGammaTitle.Name = "labelGammaTitle"; labelGammaTitle.Name = "labelGammaTitle";
labelGammaTitle.Size = new Size(507, 32); labelGammaTitle.Size = new Size(540, 32);
labelGammaTitle.TabIndex = 37; labelGammaTitle.TabIndex = 37;
labelGammaTitle.Text = "Flicker-free Dimming"; labelGammaTitle.Text = "Flicker-free Dimming";
// //
@@ -1874,7 +1876,7 @@ namespace GHelper
AutoScaleMode = AutoScaleMode.Dpi; AutoScaleMode = AutoScaleMode.Dpi;
AutoSize = true; AutoSize = true;
AutoSizeMode = AutoSizeMode.GrowAndShrink; AutoSizeMode = AutoSizeMode.GrowAndShrink;
ClientSize = new Size(849, 1559); ClientSize = new Size(849, 2045);
Controls.Add(panelFooter); Controls.Add(panelFooter);
Controls.Add(panelVersion); Controls.Add(panelVersion);
Controls.Add(panelBattery); Controls.Add(panelBattery);

View File

@@ -138,9 +138,9 @@ namespace GHelper
buttonOptimized.BorderColor = colorEco; buttonOptimized.BorderColor = colorEco;
buttonXGM.BorderColor = colorTurbo; buttonXGM.BorderColor = colorTurbo;
button60Hz.BorderColor = SystemColors.ActiveBorder; button60Hz.BorderColor = colorGray;
button120Hz.BorderColor = SystemColors.ActiveBorder; button120Hz.BorderColor = colorGray;
buttonScreenAuto.BorderColor = SystemColors.ActiveBorder; buttonScreenAuto.BorderColor = colorGray;
buttonMiniled.BorderColor = colorTurbo; buttonMiniled.BorderColor = colorTurbo;
buttonSilent.Click += ButtonSilent_Click; buttonSilent.Click += ButtonSilent_Click;
@@ -256,10 +256,23 @@ namespace GHelper
VisualiseFnLock(); VisualiseFnLock();
buttonFnLock.Click += ButtonFnLock_Click; buttonFnLock.Click += ButtonFnLock_Click;
labelVisual.Click += LabelVisual_Click;
labelCharge.Click += LabelCharge_Click;
panelPerformance.Focus(); panelPerformance.Focus();
InitVisual(); InitVisual();
} }
private void LabelCharge_Click(object? sender, EventArgs e)
{
BatteryControl.BatteryReport();
}
private void LabelVisual_Click(object? sender, EventArgs e)
{
labelVisual.Visible = false;
VisualControl.forceVisual = true;
}
public void InitVisual() public void InitVisual()
{ {
@@ -310,7 +323,7 @@ namespace GHelper
panelGamma.Visible = true; panelGamma.Visible = true;
tableVisual.Visible = true; tableVisual.Visible = true;
var visualValue = (SplendidCommand)AppConfig.Get("visual", (int)SplendidCommand.Default); var visualValue = (SplendidCommand)AppConfig.Get("visual", (int)VisualControl.GetDefaultVisualMode());
var colorTempValue = AppConfig.Get("color_temp", VisualControl.DefaultColorTemp); var colorTempValue = AppConfig.Get("color_temp", VisualControl.DefaultColorTemp);
comboVisual.DropDownStyle = ComboBoxStyle.DropDownList; comboVisual.DropDownStyle = ComboBoxStyle.DropDownList;
@@ -339,7 +352,7 @@ namespace GHelper
comboGamut.DataSource = new BindingSource(gamuts, null); comboGamut.DataSource = new BindingSource(gamuts, null);
comboGamut.DisplayMember = "Value"; comboGamut.DisplayMember = "Value";
comboGamut.ValueMember = "Key"; comboGamut.ValueMember = "Key";
comboGamut.SelectedValue = (SplendidGamut)AppConfig.Get("gamut", (int)SplendidGamut.Native); comboGamut.SelectedValue = (SplendidGamut)AppConfig.Get("gamut", (int)VisualControl.GetDefaultGamut());
comboGamut.SelectedValueChanged += ComboGamut_SelectedValueChanged; comboGamut.SelectedValueChanged += ComboGamut_SelectedValueChanged;
comboGamut.Visible = true; comboGamut.Visible = true;
@@ -1054,7 +1067,7 @@ namespace GHelper
if (matrixControl.IsSlash) if (matrixControl.IsSlash)
{ {
labelMatrix.Text = "Slash Lightning"; labelMatrix.Text = "Slash Lighting";
comboMatrixRunning.Items.Clear(); comboMatrixRunning.Items.Clear();
foreach (var item in SlashDevice.Modes) foreach (var item in SlashDevice.Modes)
@@ -1664,7 +1677,7 @@ namespace GHelper
sliderBattery.Value = limit; sliderBattery.Value = limit;
sliderBattery.AccessibleName = Properties.Strings.BatteryChargeLimit + ": " + limit.ToString() + "%"; sliderBattery.AccessibleName = Properties.Strings.BatteryChargeLimit + ": " + limit.ToString() + "%";
sliderBattery.AccessibilityObject.Select(AccessibleSelection.TakeFocus); //sliderBattery.AccessibilityObject.Select(AccessibleSelection.TakeFocus);
VisualiseBatteryFull(); VisualiseBatteryFull();
} }

View File

@@ -10,6 +10,7 @@ namespace GHelper.UI
public static Color colorStandard = Color.FromArgb(255, 58, 174, 239); public static Color colorStandard = Color.FromArgb(255, 58, 174, 239);
public static Color colorTurbo = Color.FromArgb(255, 255, 32, 32); public static Color colorTurbo = Color.FromArgb(255, 255, 32, 32);
public static Color colorCustom = Color.FromArgb(255, 255, 128, 0); public static Color colorCustom = Color.FromArgb(255, 255, 128, 0);
public static Color colorGray = Color.FromArgb(255, 168, 168, 168);
public static Color buttonMain; public static Color buttonMain;

View File

@@ -268,25 +268,6 @@ namespace GHelper.USB
Encoding.ASCII.GetBytes("]ASUS Tech.Inc."), Encoding.ASCII.GetBytes("]ASUS Tech.Inc."),
new byte[] { AsusHid.AURA_ID, 0x05, 0x20, 0x31, 0, 0x1A }, new byte[] { AsusHid.AURA_ID, 0x05, 0x20, 0x31, 0, 0x1A },
}, "Init"); }, "Init");
// Random data AC sends to keyboard on start, that seem to wake up keyboard on 2024
if (AppConfig.IsNewAura())
{
AsusHid.Write(new List<byte[]> {
new byte[] { AsusHid.AURA_ID, 0x9F, 0x01 },
new byte[] { AsusHid.AURA_ID, 0xBF },
new byte[] { AsusHid.AURA_ID, 0x05, 0x20, 0x31, 0, 0x10 },
new byte[] { AsusHid.AURA_ID, 0x05, 0x20, 0x31, 0, 0x20 },
new byte[] { AsusHid.AURA_ID, 0xC0, 0x03, 0x01 },
new byte[] { AsusHid.AURA_ID, 0x9E, 0x01, 0x20 },
Encoding.ASCII.GetBytes("]ASUS Tech.Inc."),
new byte[] { AsusHid.AURA_ID, 0x05, 0x20, 0x31, 0, 0x1A },
new byte[] { AsusHid.AURA_ID, 0xC0, 0x00, 0x01 },
}, "Init");
}
} }
@@ -438,8 +419,8 @@ namespace GHelper.USB
105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 139, 121, 122, 123, 124, 125, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 139, 121, 122, 123, 124, 125,
/* LCTL LFNC LWIN LALT SPC RALT RFNC RCTL ARWL ARWD ARWR PRT15 NM0 NMPD NMER */ /* LCTL LFNC LWIN LALT SPC RALT RFNC RCTL ARWL ARWD ARWR PRT15 NM0 NMPD NMER */
126, 127, 128, 129, 131, 135, 136, 137, 159, 160, 161, 142, 144, 145, 146, 126, 127, 128, 129, 131, 135, 136, 137, 159, 160, 161, 142, 144, 145, 146,
/* LB1 LB2 LB3 LB4 LB5 LB6 */ /* LB1 LB2 LB3 ARW? ARWL? ARWD? ARWR? LB4 LB5 LB6 */
174, 173, 172, 171, 170, 169, 174, 173, 172, 120, 140, 141, 143, 171, 170, 169,
/* KSTN LOGO LIDL LIDR */ /* KSTN LOGO LIDL LIDR */
0, 167, 176, 177, 0, 167, 176, 177,
@@ -462,8 +443,8 @@ namespace GHelper.USB
0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3,
/* LCTL LFNC LWIN LALT SPC RALT RFNC RCTL ARWL ARWD ARWR PRT15 NM0 NMPD NMER */ /* LCTL LFNC LWIN LALT SPC RALT RFNC RCTL ARWL ARWD ARWR PRT15 NM0 NMPD NMER */
0, 0, 0, 0, 1, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 1, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3,
/* LB1 LB1 LB3 LB4 LB5 LB6 */ /* LB1 LB1 LB3 ARW? ARW? ARW? ARW? LB4 LB5 LB6 */
5, 5, 4, 6, 7, 7, 5, 5, 4, 3, 3, 3, 3, 6, 7, 7,
/* KSTN LOGO LIDL LIDR */ /* KSTN LOGO LIDL LIDR */
3, 0, 0, 3, 3, 0, 0, 3,
@@ -486,8 +467,8 @@ namespace GHelper.USB
0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3,
/* LCTL LFNC LWIN LALT SPC RALT RFNC RCTL ARWL ARWD ARWR PRT15 NM0 NMPD NMER */ /* LCTL LFNC LWIN LALT SPC RALT RFNC RCTL ARWL ARWD ARWR PRT15 NM0 NMPD NMER */
0, 0, 0, 0, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 0, 0, 0, 0, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3,
/* LB1 LB1 LB3 LB4 LB5 LB6 */ /* LB1 LB1 LB3 ARW? ARW? ARW? ARW? LB4 LB5 LB6 */
5, 5, 4, 6, 7, 7, 5, 5, 4, 2, 2, 2, 3, 6, 7, 7,
/* KSTN LOGO LIDL LIDR */ /* KSTN LOGO LIDL LIDR */
3, 0, 0, 3, 3, 0, 0, 3,
@@ -611,6 +592,7 @@ namespace GHelper.USB
if (init || initDirect) if (init || initDirect)
{ {
initDirect = false; initDirect = false;
Init();
AsusHid.WriteAura(new byte[] { AsusHid.AURA_ID, 0xbc, 1 }); AsusHid.WriteAura(new byte[] { AsusHid.AURA_ID, 0xbc, 1 });
} }

112
app/Updates.Designer.cs generated
View File

@@ -42,12 +42,18 @@ namespace GHelper
panelDriversTitle = new Panel(); panelDriversTitle = new Panel();
labelDrivers = new Label(); labelDrivers = new Label();
pictureDrivers = new PictureBox(); pictureDrivers = new PictureBox();
tableLayoutLegend = new TableLayoutPanel();
labelLegendGreen = new Label();
labelLegendGray = new Label();
labelLegendRed = new Label();
labelLegend = new Label();
((System.ComponentModel.ISupportInitialize)pictureBios).BeginInit(); ((System.ComponentModel.ISupportInitialize)pictureBios).BeginInit();
panelBiosTitle.SuspendLayout(); panelBiosTitle.SuspendLayout();
panelBios.SuspendLayout(); panelBios.SuspendLayout();
panelDrivers.SuspendLayout(); panelDrivers.SuspendLayout();
panelDriversTitle.SuspendLayout(); panelDriversTitle.SuspendLayout();
((System.ComponentModel.ISupportInitialize)pictureDrivers).BeginInit(); ((System.ComponentModel.ISupportInitialize)pictureDrivers).BeginInit();
tableLayoutLegend.SuspendLayout();
SuspendLayout(); SuspendLayout();
// //
// tableBios // tableBios
@@ -99,14 +105,14 @@ namespace GHelper
panelBiosTitle.Location = new Point(0, 0); panelBiosTitle.Location = new Point(0, 0);
panelBiosTitle.Margin = new Padding(4); panelBiosTitle.Margin = new Padding(4);
panelBiosTitle.Name = "panelBiosTitle"; panelBiosTitle.Name = "panelBiosTitle";
panelBiosTitle.Size = new Size(1294, 62); panelBiosTitle.Size = new Size(1236, 60);
panelBiosTitle.TabIndex = 3; panelBiosTitle.TabIndex = 3;
// //
// labelUpdates // labelUpdates
// //
labelUpdates.Anchor = AnchorStyles.Top | AnchorStyles.Right; labelUpdates.Anchor = AnchorStyles.Top | AnchorStyles.Right;
labelUpdates.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point); labelUpdates.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
labelUpdates.Location = new Point(848, 23); labelUpdates.Location = new Point(919, 19);
labelUpdates.Name = "labelUpdates"; labelUpdates.Name = "labelUpdates";
labelUpdates.Size = new Size(245, 32); labelUpdates.Size = new Size(245, 32);
labelUpdates.TabIndex = 4; labelUpdates.TabIndex = 4;
@@ -122,7 +128,7 @@ namespace GHelper
buttonRefresh.FlatAppearance.BorderSize = 0; buttonRefresh.FlatAppearance.BorderSize = 0;
buttonRefresh.FlatStyle = FlatStyle.Flat; buttonRefresh.FlatStyle = FlatStyle.Flat;
buttonRefresh.Image = Properties.Resources.icons8_refresh_32; buttonRefresh.Image = Properties.Resources.icons8_refresh_32;
buttonRefresh.Location = new Point(1221, 14); buttonRefresh.Location = new Point(1172, 11);
buttonRefresh.Name = "buttonRefresh"; buttonRefresh.Name = "buttonRefresh";
buttonRefresh.Secondary = true; buttonRefresh.Secondary = true;
buttonRefresh.Size = new Size(52, 46); buttonRefresh.Size = new Size(52, 46);
@@ -134,11 +140,11 @@ namespace GHelper
panelBios.AutoSize = true; panelBios.AutoSize = true;
panelBios.Controls.Add(tableBios); panelBios.Controls.Add(tableBios);
panelBios.Dock = DockStyle.Top; panelBios.Dock = DockStyle.Top;
panelBios.Location = new Point(0, 62); panelBios.Location = new Point(0, 60);
panelBios.Margin = new Padding(4); panelBios.Margin = new Padding(4);
panelBios.Name = "panelBios"; panelBios.Name = "panelBios";
panelBios.Padding = new Padding(20); panelBios.Padding = new Padding(20);
panelBios.Size = new Size(1294, 40); panelBios.Size = new Size(1236, 40);
panelBios.TabIndex = 4; panelBios.TabIndex = 4;
// //
// panelDrivers // panelDrivers
@@ -146,11 +152,11 @@ namespace GHelper
panelDrivers.AutoSize = true; panelDrivers.AutoSize = true;
panelDrivers.Controls.Add(tableDrivers); panelDrivers.Controls.Add(tableDrivers);
panelDrivers.Dock = DockStyle.Top; panelDrivers.Dock = DockStyle.Top;
panelDrivers.Location = new Point(0, 146); panelDrivers.Location = new Point(0, 144);
panelDrivers.Margin = new Padding(4); panelDrivers.Margin = new Padding(4);
panelDrivers.Name = "panelDrivers"; panelDrivers.Name = "panelDrivers";
panelDrivers.Padding = new Padding(20); panelDrivers.Padding = new Padding(20);
panelDrivers.Size = new Size(1294, 40); panelDrivers.Size = new Size(1236, 40);
panelDrivers.TabIndex = 6; panelDrivers.TabIndex = 6;
// //
// tableDrivers // tableDrivers
@@ -175,10 +181,10 @@ namespace GHelper
panelDriversTitle.Controls.Add(labelDrivers); panelDriversTitle.Controls.Add(labelDrivers);
panelDriversTitle.Controls.Add(pictureDrivers); panelDriversTitle.Controls.Add(pictureDrivers);
panelDriversTitle.Dock = DockStyle.Top; panelDriversTitle.Dock = DockStyle.Top;
panelDriversTitle.Location = new Point(0, 102); panelDriversTitle.Location = new Point(0, 100);
panelDriversTitle.Margin = new Padding(4); panelDriversTitle.Margin = new Padding(4);
panelDriversTitle.Name = "panelDriversTitle"; panelDriversTitle.Name = "panelDriversTitle";
panelDriversTitle.Size = new Size(1294, 44); panelDriversTitle.Size = new Size(1236, 44);
panelDriversTitle.TabIndex = 5; panelDriversTitle.TabIndex = 5;
// //
// labelDrivers // labelDrivers
@@ -203,12 +209,91 @@ namespace GHelper
pictureDrivers.TabIndex = 2; pictureDrivers.TabIndex = 2;
pictureDrivers.TabStop = false; pictureDrivers.TabStop = false;
// //
// tableLayoutLegend
//
tableLayoutLegend.AutoSize = true;
tableLayoutLegend.AutoSizeMode = AutoSizeMode.GrowAndShrink;
tableLayoutLegend.ColumnCount = 4;
tableLayoutLegend.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 15.151515F));
tableLayoutLegend.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 28.2828274F));
tableLayoutLegend.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 28.2828274F));
tableLayoutLegend.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 28.2828274F));
tableLayoutLegend.Controls.Add(labelLegendGreen, 0, 0);
tableLayoutLegend.Controls.Add(labelLegendGray, 0, 0);
tableLayoutLegend.Controls.Add(labelLegendRed, 1, 0);
tableLayoutLegend.Controls.Add(labelLegend, 0, 0);
tableLayoutLegend.Dock = DockStyle.Bottom;
tableLayoutLegend.Location = new Point(0, 608);
tableLayoutLegend.Margin = new Padding(0);
tableLayoutLegend.Name = "tableLayoutLegend";
tableLayoutLegend.Padding = new Padding(10, 0, 10, 20);
tableLayoutLegend.RowCount = 1;
tableLayoutLegend.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
tableLayoutLegend.Size = new Size(1236, 82);
tableLayoutLegend.TabIndex = 7;
//
// labelLegendGreen
//
labelLegendGreen.AutoSize = true;
labelLegendGreen.BackColor = Color.Green;
labelLegendGreen.Dock = DockStyle.Top;
labelLegendGreen.ForeColor = Color.White;
labelLegendGreen.Location = new Point(547, 10);
labelLegendGreen.Margin = new Padding(10);
labelLegendGreen.Name = "labelLegendGreen";
labelLegendGreen.Padding = new Padding(5);
labelLegendGreen.Size = new Size(323, 42);
labelLegendGreen.TabIndex = 4;
labelLegendGreen.Text = "Updated";
//
// labelLegendGray
//
labelLegendGray.AutoSize = true;
labelLegendGray.BackColor = Color.Gray;
labelLegendGray.Dock = DockStyle.Top;
labelLegendGray.ForeColor = Color.White;
labelLegendGray.Location = new Point(204, 10);
labelLegendGray.Margin = new Padding(10);
labelLegendGray.Name = "labelLegendGray";
labelLegendGray.Padding = new Padding(5);
labelLegendGray.Size = new Size(323, 42);
labelLegendGray.TabIndex = 3;
labelLegendGray.Text = "Can't check local version";
//
// labelLegendRed
//
labelLegendRed.AutoSize = true;
labelLegendRed.BackColor = Color.Red;
labelLegendRed.Dock = DockStyle.Top;
labelLegendRed.ForeColor = Color.White;
labelLegendRed.Location = new Point(890, 10);
labelLegendRed.Margin = new Padding(10);
labelLegendRed.Name = "labelLegendRed";
labelLegendRed.Padding = new Padding(5);
labelLegendRed.Size = new Size(326, 42);
labelLegendRed.TabIndex = 1;
labelLegendRed.Text = "Update Available";
//
// labelLegend
//
labelLegend.AutoSize = true;
labelLegend.Dock = DockStyle.Top;
labelLegend.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
labelLegend.Location = new Point(20, 10);
labelLegend.Margin = new Padding(10);
labelLegend.Name = "labelLegend";
labelLegend.Padding = new Padding(5);
labelLegend.Size = new Size(164, 42);
labelLegend.TabIndex = 0;
labelLegend.Text = "Legend";
//
// Updates // Updates
// //
AutoScaleDimensions = new SizeF(192F, 192F); AutoScaleDimensions = new SizeF(192F, 192F);
AutoScaleMode = AutoScaleMode.Dpi; AutoScaleMode = AutoScaleMode.Dpi;
AutoScroll = true; AutoScroll = true;
ClientSize = new Size(1294, 690); ClientSize = new Size(1236, 690);
Controls.Add(tableLayoutLegend);
Controls.Add(panelDrivers); Controls.Add(panelDrivers);
Controls.Add(panelDriversTitle); Controls.Add(panelDriversTitle);
Controls.Add(panelBios); Controls.Add(panelBios);
@@ -229,6 +314,8 @@ namespace GHelper
panelDriversTitle.ResumeLayout(false); panelDriversTitle.ResumeLayout(false);
panelDriversTitle.PerformLayout(); panelDriversTitle.PerformLayout();
((System.ComponentModel.ISupportInitialize)pictureDrivers).EndInit(); ((System.ComponentModel.ISupportInitialize)pictureDrivers).EndInit();
tableLayoutLegend.ResumeLayout(false);
tableLayoutLegend.PerformLayout();
ResumeLayout(false); ResumeLayout(false);
PerformLayout(); PerformLayout();
} }
@@ -247,5 +334,10 @@ namespace GHelper
private PictureBox pictureDrivers; private PictureBox pictureDrivers;
private RButton buttonRefresh; private RButton buttonRefresh;
private Label labelUpdates; private Label labelUpdates;
private TableLayoutPanel tableLayoutLegend;
private Label labelLegend;
private Label labelLegendRed;
private Label labelLegendGray;
private Label labelLegendGreen;
} }
} }

View File

@@ -54,12 +54,15 @@ namespace GHelper
tableBios.Visible = false; tableBios.Visible = false;
tableDrivers.Visible = false; tableDrivers.Visible = false;
labelLegendGreen.BackColor = colorEco;
labelLegendRed.BackColor = colorTurbo;
ClearTable(tableBios); ClearTable(tableBios);
ClearTable(tableDrivers); ClearTable(tableDrivers);
Task.Run(async () => Task.Run(async () =>
{ {
DriversAsync($"https://rog.asus.com/support/webapi/product/GetPDBIOS?website=global&model={model}&cpu=", 1, tableBios); DriversAsync($"https://rog.asus.com/support/webapi/product/GetPDBIOS?website=global&model={model}&cpu={model}", 1, tableBios);
}); });
Task.Run(async () => Task.Run(async () =>
@@ -230,11 +233,23 @@ namespace GHelper
AutomaticDecompression = DecompressionMethods.All AutomaticDecompression = DecompressionMethods.All
})) }))
{ {
Logger.WriteLine(url);
httpClient.DefaultRequestHeaders.AcceptEncoding.ParseAdd("gzip, deflate, br"); httpClient.DefaultRequestHeaders.AcceptEncoding.ParseAdd("gzip, deflate, br");
httpClient.DefaultRequestHeaders.Add("User-Agent", "C# App"); httpClient.DefaultRequestHeaders.Add("User-Agent", "C# App");
var json = await httpClient.GetStringAsync(url); var json = await httpClient.GetStringAsync(url);
var data = JsonSerializer.Deserialize<JsonElement>(json); var data = JsonSerializer.Deserialize<JsonElement>(json);
var result = data.GetProperty("Result");
// fallback for bugged API
if (result.ToString() == "" || result.GetProperty("Obj").GetArrayLength() == 0)
{
var urlFallback = url + "&tag=" + new Random().Next(10, 99);
Logger.WriteLine(urlFallback);
json = await httpClient.GetStringAsync(urlFallback);
data = JsonSerializer.Deserialize<JsonElement>(json);
}
var groups = data.GetProperty("Result").GetProperty("Obj"); var groups = data.GetProperty("Result").GetProperty("Obj");

View File

@@ -1,7 +1,7 @@
# G-Helper - Lightweight control tool for Asus laptops # G-Helper - Lightweight control tool for Asus laptops
[![United24](https://raw.githubusercontent.com/seerge/g-helper/main/docs/ua.png)](https://u24.gov.ua/) [![United24](https://raw.githubusercontent.com/seerge/g-helper/main/docs/ua.png)](https://u24.gov.ua/)
[![GitHub release](https://img.shields.io/github/release/seerge/g-helper)](https://GitHub.com/seerge/g-helper/releases/) [![GitHub release](https://img.shields.io/github/release/seerge/g-helper)](https://GitHub.com/seerge/g-helper/releases/)
[![Github all releases](https://img.shields.io/github/downloads/seerge/g-helper/total)](https://GitHub.com/seerge/g-helper/releases/) [![GitHub stars](https://img.shields.io/github/stars/seerge/g-helper.svg?style=social)](https://GitHub.com/seerge/g-helper/stargazers/) [![Github all releases](https://img.shields.io/github/downloads/seerge/g-helper/total)](https://GitHub.com/seerge/g-helper/releases/) [![GitHub stars](https://img.shields.io/github/stars/seerge/g-helper.svg?style=social)](https://GitHub.com/seerge/g-helper/stargazers/) <sup>[中文版点这里](https://github.com/seerge/g-helper/blob/main/docs/README.zh-CN.md)</sup>
Small and lightweight Armoury Crate alternative for Asus laptops offering almost same functionality without extra load and unnecessary services. 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 / Scar Series, ProArt, Vivobook, Zenbook, ROG Ally and many more!
@@ -13,7 +13,7 @@ Works with all popular models, such as ROG Zephyrus G14, G15, G16, M16, Flow X13
- [Troubleshooting](https://github.com/seerge/g-helper/wiki/Troubleshooting) - [Troubleshooting](https://github.com/seerge/g-helper/wiki/Troubleshooting)
- [Power User Settings](https://github.com/seerge/g-helper/wiki/Power-user-settings) - [Power User Settings](https://github.com/seerge/g-helper/wiki/Power-user-settings)
### Support project in [:euro: EUR](https://www.paypal.com/donate/?hosted_button_id=4HMSHS4EBQWTA) or [💵 USD](https://www.paypal.com/donate/?hosted_button_id=SRM6QUX6ACXDY) ### Support project : [:euro: Paypal EUR](https://www.paypal.com/donate/?hosted_button_id=4HMSHS4EBQWTA) | [💵 Paypal USD](https://www.paypal.com/donate/?hosted_button_id=SRM6QUX6ACXDY) | [🪙 Stripe](https://buy.stripe.com/00gaFJ9Lf79v7WobII)
[![G-Helper Download](https://github.com/seerge/g-helper/assets/5920850/4d98465a-63a5-4498-ae14-afb3e67e7e82)](https://github.com/seerge/g-helper/releases/latest/download/GHelper.zip) [![G-Helper Download](https://github.com/seerge/g-helper/assets/5920850/4d98465a-63a5-4498-ae14-afb3e67e7e82)](https://github.com/seerge/g-helper/releases/latest/download/GHelper.zip)
@@ -38,7 +38,7 @@ Works with all popular models, such as ROG Zephyrus G14, G15, G16, M16, Flow X13
2. GPU modes: Eco - Standard - Ultimate - Optimized 2. GPU modes: Eco - Standard - Ultimate - Optimized
3. Screen refresh rate control with display overdrive (OD) 3. Screen refresh rate control with display overdrive (OD)
4. Custom fan curve editor, power limits and turbo boost selection for every performance mode 4. Custom fan curve editor, power limits and turbo boost selection for every performance mode
5. Anime Matrix or Slash Lightning control including animated GIFs, clock and Audio visualizer 5. Anime Matrix or Slash Lighting control including animated GIFs, clock and Audio visualizer
6. Backlight animation modes and colors 6. Backlight animation modes and colors
7. Custom hotkeys (M-keys, FN+X keys) 7. Custom hotkeys (M-keys, FN+X keys)
8. Monitor CPU and GPU temperature, fan speeds and battery status 8. Monitor CPU and GPU temperature, fan speeds and battery status
@@ -113,9 +113,10 @@ Huge thanks to [@IceStormNG](https://github.com/IceStormNG) 👑 for contributio
- ``Ctrl + M1 / M2`` - Screen brightness Down / Up - ``Ctrl + M1 / M2`` - Screen brightness Down / Up
- ``Shift + M1 / M2`` - Backlight brightness Down / Up - ``Shift + M1 / M2`` - Backlight brightness Down / Up
- ``Fn + C`` - Fn-Lock - ``Fn + C`` - Fn-Lock
- ``Fn + Shift + F7 / F8`` - Matrix / Slash Lightning brightness Down / Up - ``Fn + Shift + F7 / F8`` - Matrix / Slash Lighting brightness Down / Up
- ``Fn + Shift + F7 / F8`` - Screenpad brightness Down / Up - ``Fn + Shift + F7 / F8`` - Screenpad brightness Down / Up
- ``Ctrl + Shift + F20`` - Mute Microphone - ``Ctrl + Shift + F20`` - Mute Microphone
- ``Ctrl + Shift + Alt + F13`` - Toggle Display Refresh Rate
- ``Ctrl + Shift + Alt + F14`` - Eco GPU Mode - ``Ctrl + Shift + Alt + F14`` - Eco GPU Mode
- ``Ctrl + Shift + Alt + F15`` - Standard GPU Mode - ``Ctrl + Shift + Alt + F15`` - Standard GPU Mode
- ``Ctrl + Shift + Alt + F16`` - Silent - ``Ctrl + Shift + Alt + F16`` - Silent