mirror of
https://github.com/jkocon/g-helper.git
synced 2026-02-23 13:00:52 +01:00
Compare commits
31 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
de4905f84f | ||
|
|
121a9224e9 | ||
|
|
af9626e385 | ||
|
|
6b3db926fc | ||
|
|
8f8be7a13e | ||
|
|
12450dbba4 | ||
|
|
4f6de3c6a3 | ||
|
|
d89420e0f1 | ||
|
|
ddc13e0dec | ||
|
|
61a3d782e8 | ||
|
|
b1c8aa97c8 | ||
|
|
3a50ee1784 | ||
|
|
a69ce3592f | ||
|
|
b49ae96dfe | ||
|
|
4c989c9d75 | ||
|
|
2282e56aad | ||
|
|
982f2e8e32 | ||
|
|
e90f19e3e2 | ||
|
|
6d6a9c68f2 | ||
|
|
8138e44cdd | ||
|
|
ef788798b7 | ||
|
|
07d81e6072 | ||
|
|
708e3aa40f | ||
|
|
3075e22e1e | ||
|
|
b15109d13e | ||
|
|
c491087a29 | ||
|
|
cf08ae0789 | ||
|
|
624f15be65 | ||
|
|
4789d0d782 | ||
|
|
f8fd8a9695 | ||
|
|
91cfb8d38c |
@@ -154,6 +154,11 @@ public static class AppConfig
|
||||
Write();
|
||||
}
|
||||
|
||||
public static void RemoveMode(string name)
|
||||
{
|
||||
Remove(name + "_" + Modes.GetCurrent());
|
||||
}
|
||||
|
||||
public static string GgetParamName(AsusFan device, string paramName = "fan_profile")
|
||||
{
|
||||
int mode = Modes.GetCurrent();
|
||||
@@ -343,7 +348,8 @@ public static class AppConfig
|
||||
return
|
||||
Is("manual_mode") ||
|
||||
ContainsModel("GU604") ||
|
||||
ContainsModel("G733");
|
||||
ContainsModel("G733") ||
|
||||
ContainsModel("FX507Z");
|
||||
}
|
||||
|
||||
public static bool IsFanRequired()
|
||||
@@ -358,7 +364,7 @@ public static class AppConfig
|
||||
|
||||
public static bool IsGPUFixNeeded()
|
||||
{
|
||||
return ContainsModel("GA402X") || ContainsModel("GV302");
|
||||
return ContainsModel("GA402X") || ContainsModel("GV302") || ContainsModel("FX506") || ContainsModel("GU603V");
|
||||
}
|
||||
|
||||
public static bool IsGPUFix()
|
||||
|
||||
257
app/AsusUSB.cs
257
app/AsusUSB.cs
@@ -1,5 +1,9 @@
|
||||
using GHelper.Helpers;
|
||||
using GHelper.Gpu;
|
||||
using GHelper.Helpers;
|
||||
using HidLibrary;
|
||||
using NAudio.Gui;
|
||||
using System.Diagnostics;
|
||||
using System.Drawing;
|
||||
using System.Text;
|
||||
|
||||
namespace GHelper
|
||||
@@ -37,6 +41,7 @@ namespace GHelper
|
||||
public static class AsusUSB
|
||||
{
|
||||
public const int HEATMAP = 20;
|
||||
public const int GPUMODE = 21;
|
||||
|
||||
public const int ASUS_ID = 0x0b05;
|
||||
|
||||
@@ -153,33 +158,40 @@ namespace GHelper
|
||||
};
|
||||
}
|
||||
|
||||
static Dictionary<int, string> _modesSingleColor = new Dictionary<int, string>
|
||||
{
|
||||
{ 0, Properties.Strings.AuraStatic },
|
||||
{ 1, Properties.Strings.AuraBreathe },
|
||||
{ 10, Properties.Strings.AuraStrobe },
|
||||
};
|
||||
|
||||
static Dictionary<int, string> _modes = new Dictionary<int, string>
|
||||
{
|
||||
{ 0, Properties.Strings.AuraStatic },
|
||||
{ 1, Properties.Strings.AuraBreathe },
|
||||
{ 2, Properties.Strings.AuraColorCycle },
|
||||
{ 3, Properties.Strings.AuraRainbow },
|
||||
{ 10, Properties.Strings.AuraStrobe },
|
||||
{ HEATMAP, "Heatmap"}
|
||||
};
|
||||
{
|
||||
{ 0, Properties.Strings.AuraStatic },
|
||||
{ 1, Properties.Strings.AuraBreathe },
|
||||
{ 2, Properties.Strings.AuraColorCycle },
|
||||
{ 3, Properties.Strings.AuraRainbow },
|
||||
{ 10, Properties.Strings.AuraStrobe },
|
||||
{ HEATMAP, "Heatmap"},
|
||||
{ GPUMODE, "GPU Mode" }
|
||||
};
|
||||
|
||||
static Dictionary<int, string> _modesStrix = new Dictionary<int, string>
|
||||
{
|
||||
{ 0, Properties.Strings.AuraStatic },
|
||||
{ 1, Properties.Strings.AuraBreathe },
|
||||
{ 2, Properties.Strings.AuraColorCycle },
|
||||
{ 3, Properties.Strings.AuraRainbow },
|
||||
{ 4, "Star" },
|
||||
{ 5, "Rain" },
|
||||
{ 6, "Highlight" },
|
||||
{ 7, "Laser" },
|
||||
{ 8, "Ripple" },
|
||||
{ 10, Properties.Strings.AuraStrobe},
|
||||
{ 11, "Comet" },
|
||||
{ 12, "Flash" },
|
||||
{ HEATMAP, "Heatmap"}
|
||||
};
|
||||
{
|
||||
{ 0, Properties.Strings.AuraStatic },
|
||||
{ 1, Properties.Strings.AuraBreathe },
|
||||
{ 2, Properties.Strings.AuraColorCycle },
|
||||
{ 3, Properties.Strings.AuraRainbow },
|
||||
{ 4, "Star" },
|
||||
{ 5, "Rain" },
|
||||
{ 6, "Highlight" },
|
||||
{ 7, "Laser" },
|
||||
{ 8, "Ripple" },
|
||||
{ 10, Properties.Strings.AuraStrobe},
|
||||
{ 11, "Comet" },
|
||||
{ 12, "Flash" },
|
||||
{ HEATMAP, "Heatmap"}
|
||||
};
|
||||
|
||||
|
||||
public static Dictionary<int, string> GetModes()
|
||||
@@ -191,9 +203,7 @@ namespace GHelper
|
||||
|
||||
if (isSingleColor)
|
||||
{
|
||||
_modes.Remove(2);
|
||||
_modes.Remove(3);
|
||||
_modes.Remove(HEATMAP);
|
||||
return _modesSingleColor;
|
||||
}
|
||||
|
||||
if (AppConfig.IsAdvantageEdition())
|
||||
@@ -380,63 +390,58 @@ namespace GHelper
|
||||
public static void ApplyAuraPower()
|
||||
{
|
||||
|
||||
Task.Run(async () =>
|
||||
AuraPower flags = new();
|
||||
|
||||
// Keyboard
|
||||
flags.AwakeKeyb = AppConfig.IsNotFalse("keyboard_awake");
|
||||
flags.BootKeyb = AppConfig.IsNotFalse("keyboard_boot");
|
||||
flags.SleepKeyb = AppConfig.IsNotFalse("keyboard_sleep");
|
||||
flags.ShutdownKeyb = AppConfig.IsNotFalse("keyboard_shutdown");
|
||||
|
||||
// Logo
|
||||
flags.AwakeLogo = AppConfig.IsNotFalse("keyboard_awake_logo");
|
||||
flags.BootLogo = AppConfig.IsNotFalse("keyboard_boot_logo");
|
||||
flags.SleepLogo = AppConfig.IsNotFalse("keyboard_sleep_logo");
|
||||
flags.ShutdownLogo = AppConfig.IsNotFalse("keyboard_shutdown_logo");
|
||||
|
||||
// Lightbar
|
||||
flags.AwakeBar = AppConfig.IsNotFalse("keyboard_awake_bar");
|
||||
flags.BootBar = AppConfig.IsNotFalse("keyboard_boot_bar");
|
||||
flags.SleepBar = AppConfig.IsNotFalse("keyboard_sleep_bar");
|
||||
flags.ShutdownBar = AppConfig.IsNotFalse("keyboard_shutdown_bar");
|
||||
|
||||
// Lid
|
||||
flags.AwakeLid = AppConfig.IsNotFalse("keyboard_awake_lid");
|
||||
flags.BootLid = AppConfig.IsNotFalse("keyboard_boot_lid");
|
||||
flags.SleepLid = AppConfig.IsNotFalse("keyboard_sleep_lid");
|
||||
flags.ShutdownLid = AppConfig.IsNotFalse("keyboard_shutdown_lid");
|
||||
|
||||
// Rear Bar
|
||||
flags.AwakeRear = AppConfig.IsNotFalse("keyboard_awake_lid");
|
||||
flags.BootRear = AppConfig.IsNotFalse("keyboard_boot_lid");
|
||||
flags.SleepRear = AppConfig.IsNotFalse("keyboard_sleep_lid");
|
||||
flags.ShutdownRear = AppConfig.IsNotFalse("keyboard_shutdown_lid");
|
||||
|
||||
var devices = GetHidDevices(deviceIds);
|
||||
byte[] msg = AuraPowerMessage(flags);
|
||||
|
||||
foreach (HidDevice device in devices)
|
||||
{
|
||||
|
||||
AuraPower flags = new();
|
||||
|
||||
// Keyboard
|
||||
flags.AwakeKeyb = AppConfig.IsNotFalse("keyboard_awake");
|
||||
flags.BootKeyb = AppConfig.IsNotFalse("keyboard_boot");
|
||||
flags.SleepKeyb = AppConfig.IsNotFalse("keyboard_sleep");
|
||||
flags.ShutdownKeyb = AppConfig.IsNotFalse("keyboard_shutdown");
|
||||
|
||||
// Logo
|
||||
flags.AwakeLogo = AppConfig.IsNotFalse("keyboard_awake_logo");
|
||||
flags.BootLogo = AppConfig.IsNotFalse("keyboard_boot_logo");
|
||||
flags.SleepLogo = AppConfig.IsNotFalse("keyboard_sleep_logo");
|
||||
flags.ShutdownLogo = AppConfig.IsNotFalse("keyboard_shutdown_logo");
|
||||
|
||||
// Lightbar
|
||||
flags.AwakeBar = AppConfig.IsNotFalse("keyboard_awake_bar");
|
||||
flags.BootBar = AppConfig.IsNotFalse("keyboard_boot_bar");
|
||||
flags.SleepBar = AppConfig.IsNotFalse("keyboard_sleep_bar");
|
||||
flags.ShutdownBar = AppConfig.IsNotFalse("keyboard_shutdown_bar");
|
||||
|
||||
// Lid
|
||||
flags.AwakeLid = AppConfig.IsNotFalse("keyboard_awake_lid");
|
||||
flags.BootLid = AppConfig.IsNotFalse("keyboard_boot_lid");
|
||||
flags.SleepLid = AppConfig.IsNotFalse("keyboard_sleep_lid");
|
||||
flags.ShutdownLid = AppConfig.IsNotFalse("keyboard_shutdown_lid");
|
||||
|
||||
// Rear Bar
|
||||
flags.AwakeRear = AppConfig.IsNotFalse("keyboard_awake_lid");
|
||||
flags.BootRear = AppConfig.IsNotFalse("keyboard_boot_lid");
|
||||
flags.SleepRear = AppConfig.IsNotFalse("keyboard_sleep_lid");
|
||||
flags.ShutdownRear = AppConfig.IsNotFalse("keyboard_shutdown_lid");
|
||||
|
||||
var devices = GetHidDevices(deviceIds);
|
||||
byte[] msg = AuraPowerMessage(flags);
|
||||
|
||||
foreach (HidDevice device in devices)
|
||||
device.OpenDevice();
|
||||
if (device.ReadFeatureData(out byte[] data, AURA_HID_ID))
|
||||
{
|
||||
device.OpenDevice();
|
||||
if (device.ReadFeatureData(out byte[] data, AURA_HID_ID))
|
||||
{
|
||||
device.WriteFeatureData(msg);
|
||||
Logger.WriteLine("USB-KB " + device.Attributes.ProductHexId + ":" + BitConverter.ToString(msg));
|
||||
}
|
||||
device.CloseDevice();
|
||||
device.WriteFeatureData(msg);
|
||||
Logger.WriteLine("USB-KB " + device.Attributes.ProductHexId + ":" + BitConverter.ToString(msg));
|
||||
}
|
||||
device.CloseDevice();
|
||||
}
|
||||
|
||||
if (isTuf)
|
||||
Program.acpi.TUFKeyboardPower(
|
||||
flags.AwakeKeyb,
|
||||
flags.BootKeyb,
|
||||
flags.SleepKeyb,
|
||||
flags.ShutdownKeyb);
|
||||
|
||||
});
|
||||
if (isTuf)
|
||||
Program.acpi.TUFKeyboardPower(
|
||||
flags.AwakeKeyb,
|
||||
flags.BootKeyb,
|
||||
flags.SleepKeyb,
|
||||
flags.ShutdownKeyb);
|
||||
|
||||
}
|
||||
|
||||
@@ -524,6 +529,7 @@ namespace GHelper
|
||||
|
||||
else
|
||||
{
|
||||
Debug.WriteLine(color.ToString());
|
||||
auraDevice.Write(AuraMessage(0, color, color, 0));
|
||||
auraDevice.Write(MESSAGE_SET);
|
||||
}
|
||||
@@ -531,6 +537,27 @@ namespace GHelper
|
||||
}
|
||||
|
||||
|
||||
public static void ApplyGPUColor()
|
||||
{
|
||||
if (AppConfig.Get("aura_mode") != GPUMODE) return;
|
||||
|
||||
Logger.WriteLine(GPUModeControl.gpuMode.ToString());
|
||||
|
||||
switch (GPUModeControl.gpuMode)
|
||||
{
|
||||
case AsusACPI.GPUModeUltimate:
|
||||
ApplyColor(Color.Red, true);
|
||||
break;
|
||||
case AsusACPI.GPUModeEco:
|
||||
ApplyColor(Color.Green, true);
|
||||
break;
|
||||
default:
|
||||
ApplyColor(Color.Yellow, true);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static void ApplyAura()
|
||||
{
|
||||
|
||||
@@ -539,56 +566,54 @@ namespace GHelper
|
||||
SetColor(AppConfig.Get("aura_color"));
|
||||
SetColor2(AppConfig.Get("aura_color2"));
|
||||
|
||||
timer.Enabled = false;
|
||||
|
||||
if (Mode == HEATMAP)
|
||||
{
|
||||
SetHeatmap(true);
|
||||
timer.Enabled = true;
|
||||
return;
|
||||
}
|
||||
else
|
||||
}
|
||||
|
||||
if (Mode == GPUMODE)
|
||||
{
|
||||
timer.Enabled = false;
|
||||
ApplyGPUColor();
|
||||
return;
|
||||
}
|
||||
|
||||
Task.Run(async () =>
|
||||
int _speed;
|
||||
switch (Speed)
|
||||
{
|
||||
case 1:
|
||||
_speed = 0xeb;
|
||||
break;
|
||||
case 2:
|
||||
_speed = 0xf5;
|
||||
break;
|
||||
default:
|
||||
_speed = 0xe1;
|
||||
break;
|
||||
}
|
||||
|
||||
byte[] msg;
|
||||
var devices = GetHidDevices(deviceIds);
|
||||
|
||||
int _speed;
|
||||
|
||||
switch (Speed)
|
||||
foreach (HidDevice device in devices)
|
||||
{
|
||||
device.OpenDevice();
|
||||
if (device.ReadFeatureData(out byte[] data, AURA_HID_ID))
|
||||
{
|
||||
case 1:
|
||||
_speed = 0xeb;
|
||||
break;
|
||||
case 2:
|
||||
_speed = 0xf5;
|
||||
break;
|
||||
default:
|
||||
_speed = 0xe1;
|
||||
break;
|
||||
msg = AuraMessage(Mode, Color1, Color2, _speed, isSingleColor);
|
||||
device.WriteFeatureData(msg);
|
||||
device.WriteFeatureData(MESSAGE_APPLY);
|
||||
device.WriteFeatureData(MESSAGE_SET);
|
||||
Logger.WriteLine("USB-KB " + device.Attributes.Version + device.Description + device.DevicePath + ":" + BitConverter.ToString(msg));
|
||||
}
|
||||
device.CloseDevice();
|
||||
}
|
||||
|
||||
byte[] msg;
|
||||
var devices = GetHidDevices(deviceIds);
|
||||
|
||||
foreach (HidDevice device in devices)
|
||||
{
|
||||
device.OpenDevice();
|
||||
if (device.ReadFeatureData(out byte[] data, AURA_HID_ID))
|
||||
{
|
||||
msg = AuraMessage(Mode, Color1, Color2, _speed, isSingleColor);
|
||||
device.WriteFeatureData(msg);
|
||||
device.WriteFeatureData(MESSAGE_APPLY);
|
||||
device.WriteFeatureData(MESSAGE_SET);
|
||||
Logger.WriteLine("USB-KB " + device.Attributes.Version + device.Description + device.DevicePath + ":" + BitConverter.ToString(msg));
|
||||
}
|
||||
device.CloseDevice();
|
||||
}
|
||||
|
||||
if (isTuf)
|
||||
Program.acpi.TUFKeyboardRGB(Mode, Color1, _speed);
|
||||
});
|
||||
if (isTuf)
|
||||
Program.acpi.TUFKeyboardRGB(Mode, Color1, _speed);
|
||||
|
||||
}
|
||||
|
||||
|
||||
24
app/Extra.Designer.cs
generated
24
app/Extra.Designer.cs
generated
@@ -103,7 +103,6 @@ namespace GHelper
|
||||
labelSettings = new Label();
|
||||
panelSettings = new Panel();
|
||||
checkAutoToggleClamshellMode = new CheckBox();
|
||||
checkAutoApplyWindowsPowerMode = new CheckBox();
|
||||
checkTopmost = new CheckBox();
|
||||
checkNoOverdrive = new CheckBox();
|
||||
checkUSBC = new CheckBox();
|
||||
@@ -146,7 +145,7 @@ namespace GHelper
|
||||
panelServices.Controls.Add(labelServices);
|
||||
panelServices.Controls.Add(buttonServices);
|
||||
panelServices.Dock = DockStyle.Top;
|
||||
panelServices.Location = new Point(15, 1321);
|
||||
panelServices.Location = new Point(15, 1279);
|
||||
panelServices.Name = "panelServices";
|
||||
panelServices.Size = new Size(983, 75);
|
||||
panelServices.TabIndex = 5;
|
||||
@@ -1062,7 +1061,6 @@ namespace GHelper
|
||||
panelSettings.AutoSize = true;
|
||||
panelSettings.AutoSizeMode = AutoSizeMode.GrowAndShrink;
|
||||
panelSettings.Controls.Add(checkAutoToggleClamshellMode);
|
||||
panelSettings.Controls.Add(checkAutoApplyWindowsPowerMode);
|
||||
panelSettings.Controls.Add(checkTopmost);
|
||||
panelSettings.Controls.Add(checkNoOverdrive);
|
||||
panelSettings.Controls.Add(checkUSBC);
|
||||
@@ -1073,14 +1071,14 @@ namespace GHelper
|
||||
panelSettings.Location = new Point(15, 921);
|
||||
panelSettings.Name = "panelSettings";
|
||||
panelSettings.Padding = new Padding(20, 5, 11, 5);
|
||||
panelSettings.Size = new Size(983, 346);
|
||||
panelSettings.Size = new Size(983, 304);
|
||||
panelSettings.TabIndex = 3;
|
||||
//
|
||||
// checkAutoToggleClamshellMode
|
||||
//
|
||||
checkAutoToggleClamshellMode.AutoSize = true;
|
||||
checkAutoToggleClamshellMode.Dock = DockStyle.Top;
|
||||
checkAutoToggleClamshellMode.Location = new Point(20, 299);
|
||||
checkAutoToggleClamshellMode.Location = new Point(20, 257);
|
||||
checkAutoToggleClamshellMode.Name = "checkAutoToggleClamshellMode";
|
||||
checkAutoToggleClamshellMode.Padding = new Padding(3);
|
||||
checkAutoToggleClamshellMode.Size = new Size(952, 42);
|
||||
@@ -1088,19 +1086,6 @@ namespace GHelper
|
||||
checkAutoToggleClamshellMode.Text = "Auto Toggle Clamshell Mode";
|
||||
checkAutoToggleClamshellMode.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// checkAutoApplyWindowsPowerMode
|
||||
//
|
||||
checkAutoApplyWindowsPowerMode.AutoSize = true;
|
||||
checkAutoApplyWindowsPowerMode.Dock = DockStyle.Top;
|
||||
checkAutoApplyWindowsPowerMode.Location = new Point(20, 257);
|
||||
checkAutoApplyWindowsPowerMode.Margin = new Padding(4, 3, 4, 3);
|
||||
checkAutoApplyWindowsPowerMode.Name = "checkAutoApplyWindowsPowerMode";
|
||||
checkAutoApplyWindowsPowerMode.Padding = new Padding(3);
|
||||
checkAutoApplyWindowsPowerMode.Size = new Size(952, 42);
|
||||
checkAutoApplyWindowsPowerMode.TabIndex = 7;
|
||||
checkAutoApplyWindowsPowerMode.Text = "Auto Adjust Windows Power Mode";
|
||||
checkAutoApplyWindowsPowerMode.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// checkTopmost
|
||||
//
|
||||
checkTopmost.AutoSize = true;
|
||||
@@ -1185,7 +1170,7 @@ namespace GHelper
|
||||
panelPower.Controls.Add(labelHibernateAfter);
|
||||
panelPower.Controls.Add(pictureHibernate);
|
||||
panelPower.Dock = DockStyle.Top;
|
||||
panelPower.Location = new Point(15, 1267);
|
||||
panelPower.Location = new Point(15, 1225);
|
||||
panelPower.Name = "panelPower";
|
||||
panelPower.Size = new Size(983, 54);
|
||||
panelPower.TabIndex = 4;
|
||||
@@ -1348,7 +1333,6 @@ namespace GHelper
|
||||
private PictureBox pictureSettings;
|
||||
private Label labelSettings;
|
||||
private Panel panelSettings;
|
||||
private CheckBox checkAutoApplyWindowsPowerMode;
|
||||
private CheckBox checkTopmost;
|
||||
private CheckBox checkNoOverdrive;
|
||||
private CheckBox checkUSBC;
|
||||
|
||||
22
app/Extra.cs
22
app/Extra.cs
@@ -118,7 +118,6 @@ namespace GHelper
|
||||
checkNoOverdrive.Text = Properties.Strings.DisableOverdrive;
|
||||
checkTopmost.Text = Properties.Strings.WindowTop;
|
||||
checkUSBC.Text = Properties.Strings.OptimizedUSBC;
|
||||
checkAutoApplyWindowsPowerMode.Text = Properties.Strings.ApplyWindowsPowerPlan;
|
||||
checkAutoToggleClamshellMode.Text = Properties.Strings.ToggleClamshellMode;
|
||||
|
||||
labelBacklightKeyboard.Text = Properties.Strings.Keyboard;
|
||||
@@ -293,9 +292,6 @@ namespace GHelper
|
||||
checkUSBC.Checked = AppConfig.Is("optimized_usbc");
|
||||
checkUSBC.CheckedChanged += CheckUSBC_CheckedChanged;
|
||||
|
||||
checkAutoApplyWindowsPowerMode.Checked = (AppConfig.Get("auto_apply_power_plan") != 0);
|
||||
checkAutoApplyWindowsPowerMode.CheckedChanged += checkAutoApplyWindowsPowerMode_CheckedChanged;
|
||||
|
||||
sliderBrightness.Value = InputDispatcher.GetBacklight();
|
||||
sliderBrightness.ValueChanged += SliderBrightness_ValueChanged;
|
||||
|
||||
@@ -335,16 +331,10 @@ namespace GHelper
|
||||
{
|
||||
try
|
||||
{
|
||||
Task.Run(() =>
|
||||
{
|
||||
int hibernate = PowerNative.GetHibernateAfter();
|
||||
if (hibernate < 0 || hibernate > numericHibernateAfter.Maximum) hibernate = 0;
|
||||
BeginInvoke(delegate
|
||||
{
|
||||
numericHibernateAfter.Value = hibernate;
|
||||
numericHibernateAfter.ValueChanged += NumericHibernateAfter_ValueChanged;
|
||||
});
|
||||
});
|
||||
int hibernate = PowerNative.GetHibernateAfter();
|
||||
if (hibernate < 0 || hibernate > numericHibernateAfter.Maximum) hibernate = 0;
|
||||
numericHibernateAfter.Value = hibernate;
|
||||
numericHibernateAfter.ValueChanged += NumericHibernateAfter_ValueChanged;
|
||||
|
||||
}
|
||||
catch (Exception ex)
|
||||
@@ -563,10 +553,6 @@ namespace GHelper
|
||||
Left = Program.settingsForm.Left - Width - 5;
|
||||
}
|
||||
|
||||
private void checkAutoApplyWindowsPowerMode_CheckedChanged(object? sender, EventArgs e)
|
||||
{
|
||||
AppConfig.Set("auto_apply_power_plan", checkAutoApplyWindowsPowerMode.Checked ? 1 : 0);
|
||||
}
|
||||
|
||||
private void checkAutoToggleClamshellMode_CheckedChanged(object? sender, EventArgs e)
|
||||
{
|
||||
|
||||
221
app/Fans.Designer.cs
generated
221
app/Fans.Designer.cs
generated
@@ -31,14 +31,14 @@ namespace GHelper
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
ChartArea chartArea1 = new ChartArea();
|
||||
Title title1 = new Title();
|
||||
ChartArea chartArea2 = new ChartArea();
|
||||
Title title2 = new Title();
|
||||
ChartArea chartArea3 = new ChartArea();
|
||||
Title title3 = new Title();
|
||||
ChartArea chartArea4 = new ChartArea();
|
||||
Title title4 = new Title();
|
||||
ChartArea chartArea9 = new ChartArea();
|
||||
Title title9 = new Title();
|
||||
ChartArea chartArea10 = new ChartArea();
|
||||
Title title10 = new Title();
|
||||
ChartArea chartArea11 = new ChartArea();
|
||||
Title title11 = new Title();
|
||||
ChartArea chartArea12 = new ChartArea();
|
||||
Title title12 = new Title();
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Fans));
|
||||
panelFans = new Panel();
|
||||
labelTip = new Label();
|
||||
@@ -106,6 +106,11 @@ namespace GHelper
|
||||
panelBoostTitle = new Panel();
|
||||
pictureBoost = new PictureBox();
|
||||
labelBoost = new Label();
|
||||
panelPowerMode = new Panel();
|
||||
comboPowerMode = new RComboBox();
|
||||
panelPowerModeTItle = new Panel();
|
||||
picturePowerMode = new PictureBox();
|
||||
labelPowerModeTitle = new Label();
|
||||
panelGPU = new Panel();
|
||||
panelGPUTemp = new Panel();
|
||||
labelGPUTemp = new Label();
|
||||
@@ -131,6 +136,10 @@ namespace GHelper
|
||||
buttonAdvanced = new RButton();
|
||||
buttonGPU = new RButton();
|
||||
buttonCPU = new RButton();
|
||||
panelGPUClockLimit = new Panel();
|
||||
labelGPUClockLimit = new Label();
|
||||
trackGPUClockLimit = new TrackBar();
|
||||
labelGPUClockLimitTitle = new Label();
|
||||
panelFans.SuspendLayout();
|
||||
tableFanCharts.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)chartGPU).BeginInit();
|
||||
@@ -167,6 +176,9 @@ namespace GHelper
|
||||
panelBoost.SuspendLayout();
|
||||
panelBoostTitle.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)pictureBoost).BeginInit();
|
||||
panelPowerMode.SuspendLayout();
|
||||
panelPowerModeTItle.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)picturePowerMode).BeginInit();
|
||||
panelGPU.SuspendLayout();
|
||||
panelGPUTemp.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)trackGPUTemp).BeginInit();
|
||||
@@ -180,6 +192,8 @@ namespace GHelper
|
||||
((System.ComponentModel.ISupportInitialize)pictureGPU).BeginInit();
|
||||
panelNav.SuspendLayout();
|
||||
tableNav.SuspendLayout();
|
||||
panelGPUClockLimit.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)trackGPUClockLimit).BeginInit();
|
||||
SuspendLayout();
|
||||
//
|
||||
// panelFans
|
||||
@@ -236,8 +250,8 @@ namespace GHelper
|
||||
//
|
||||
// chartGPU
|
||||
//
|
||||
chartArea1.Name = "ChartArea1";
|
||||
chartGPU.ChartAreas.Add(chartArea1);
|
||||
chartArea9.Name = "ChartArea1";
|
||||
chartGPU.ChartAreas.Add(chartArea9);
|
||||
chartGPU.Dock = DockStyle.Fill;
|
||||
chartGPU.Location = new Point(12, 491);
|
||||
chartGPU.Margin = new Padding(2, 10, 2, 10);
|
||||
@@ -245,13 +259,13 @@ namespace GHelper
|
||||
chartGPU.Size = new Size(782, 461);
|
||||
chartGPU.TabIndex = 17;
|
||||
chartGPU.Text = "chartGPU";
|
||||
title1.Name = "Title1";
|
||||
chartGPU.Titles.Add(title1);
|
||||
title9.Name = "Title1";
|
||||
chartGPU.Titles.Add(title9);
|
||||
//
|
||||
// chartCPU
|
||||
//
|
||||
chartArea2.Name = "ChartArea1";
|
||||
chartCPU.ChartAreas.Add(chartArea2);
|
||||
chartArea10.Name = "ChartArea1";
|
||||
chartCPU.ChartAreas.Add(chartArea10);
|
||||
chartCPU.Dock = DockStyle.Fill;
|
||||
chartCPU.Location = new Point(12, 10);
|
||||
chartCPU.Margin = new Padding(2, 10, 2, 10);
|
||||
@@ -259,13 +273,13 @@ namespace GHelper
|
||||
chartCPU.Size = new Size(782, 461);
|
||||
chartCPU.TabIndex = 14;
|
||||
chartCPU.Text = "chartCPU";
|
||||
title2.Name = "Title1";
|
||||
chartCPU.Titles.Add(title2);
|
||||
title10.Name = "Title1";
|
||||
chartCPU.Titles.Add(title10);
|
||||
//
|
||||
// chartXGM
|
||||
//
|
||||
chartArea3.Name = "ChartAreaXGM";
|
||||
chartXGM.ChartAreas.Add(chartArea3);
|
||||
chartArea11.Name = "ChartAreaXGM";
|
||||
chartXGM.ChartAreas.Add(chartArea11);
|
||||
chartXGM.Dock = DockStyle.Fill;
|
||||
chartXGM.Location = new Point(12, 1453);
|
||||
chartXGM.Margin = new Padding(2, 10, 2, 10);
|
||||
@@ -273,14 +287,14 @@ namespace GHelper
|
||||
chartXGM.Size = new Size(782, 464);
|
||||
chartXGM.TabIndex = 14;
|
||||
chartXGM.Text = "chartXGM";
|
||||
title3.Name = "Title4";
|
||||
chartXGM.Titles.Add(title3);
|
||||
title11.Name = "Title4";
|
||||
chartXGM.Titles.Add(title11);
|
||||
chartXGM.Visible = false;
|
||||
//
|
||||
// chartMid
|
||||
//
|
||||
chartArea4.Name = "ChartArea3";
|
||||
chartMid.ChartAreas.Add(chartArea4);
|
||||
chartArea12.Name = "ChartArea3";
|
||||
chartMid.ChartAreas.Add(chartArea12);
|
||||
chartMid.Dock = DockStyle.Fill;
|
||||
chartMid.Location = new Point(12, 972);
|
||||
chartMid.Margin = new Padding(2, 10, 2, 10);
|
||||
@@ -288,8 +302,8 @@ namespace GHelper
|
||||
chartMid.Size = new Size(782, 461);
|
||||
chartMid.TabIndex = 14;
|
||||
chartMid.Text = "chartMid";
|
||||
title4.Name = "Title3";
|
||||
chartMid.Titles.Add(title4);
|
||||
title12.Name = "Title3";
|
||||
chartMid.Titles.Add(title12);
|
||||
chartMid.Visible = false;
|
||||
//
|
||||
// panelTitleFans
|
||||
@@ -491,7 +505,7 @@ namespace GHelper
|
||||
panelAdvanced.Controls.Add(panelTemperature);
|
||||
panelAdvanced.Controls.Add(panelTitleTemp);
|
||||
panelAdvanced.Dock = DockStyle.Top;
|
||||
panelAdvanced.Location = new Point(10, 1272);
|
||||
panelAdvanced.Location = new Point(10, 1520);
|
||||
panelAdvanced.Name = "panelAdvanced";
|
||||
panelAdvanced.Size = new Size(520, 888);
|
||||
panelAdvanced.TabIndex = 14;
|
||||
@@ -786,11 +800,13 @@ namespace GHelper
|
||||
panelPower.Controls.Add(panelTitleCPU);
|
||||
panelPower.Controls.Add(panelBoost);
|
||||
panelPower.Controls.Add(panelBoostTitle);
|
||||
panelPower.Controls.Add(panelPowerMode);
|
||||
panelPower.Controls.Add(panelPowerModeTItle);
|
||||
panelPower.Dock = DockStyle.Top;
|
||||
panelPower.Location = new Point(10, 640);
|
||||
panelPower.Location = new Point(10, 764);
|
||||
panelPower.Margin = new Padding(4);
|
||||
panelPower.Name = "panelPower";
|
||||
panelPower.Size = new Size(520, 632);
|
||||
panelPower.Size = new Size(520, 756);
|
||||
panelPower.TabIndex = 43;
|
||||
//
|
||||
// panelApplyPower
|
||||
@@ -798,7 +814,7 @@ namespace GHelper
|
||||
panelApplyPower.AutoSize = true;
|
||||
panelApplyPower.Controls.Add(checkApplyPower);
|
||||
panelApplyPower.Dock = DockStyle.Top;
|
||||
panelApplyPower.Location = new Point(0, 556);
|
||||
panelApplyPower.Location = new Point(0, 680);
|
||||
panelApplyPower.Name = "panelApplyPower";
|
||||
panelApplyPower.Padding = new Padding(15);
|
||||
panelApplyPower.Size = new Size(520, 76);
|
||||
@@ -825,7 +841,7 @@ namespace GHelper
|
||||
panelB0.Controls.Add(labelLeftB0);
|
||||
panelB0.Controls.Add(trackB0);
|
||||
panelB0.Dock = DockStyle.Top;
|
||||
panelB0.Location = new Point(0, 432);
|
||||
panelB0.Location = new Point(0, 556);
|
||||
panelB0.Margin = new Padding(4);
|
||||
panelB0.MaximumSize = new Size(0, 124);
|
||||
panelB0.Name = "panelB0";
|
||||
@@ -874,7 +890,7 @@ namespace GHelper
|
||||
panelC1.Controls.Add(labelLeftC1);
|
||||
panelC1.Controls.Add(trackC1);
|
||||
panelC1.Dock = DockStyle.Top;
|
||||
panelC1.Location = new Point(0, 308);
|
||||
panelC1.Location = new Point(0, 432);
|
||||
panelC1.Margin = new Padding(4);
|
||||
panelC1.MaximumSize = new Size(0, 124);
|
||||
panelC1.Name = "panelC1";
|
||||
@@ -923,7 +939,7 @@ namespace GHelper
|
||||
panelA0.Controls.Add(labelLeftA0);
|
||||
panelA0.Controls.Add(trackA0);
|
||||
panelA0.Dock = DockStyle.Top;
|
||||
panelA0.Location = new Point(0, 184);
|
||||
panelA0.Location = new Point(0, 308);
|
||||
panelA0.Margin = new Padding(4);
|
||||
panelA0.MaximumSize = new Size(0, 124);
|
||||
panelA0.Name = "panelA0";
|
||||
@@ -971,7 +987,7 @@ namespace GHelper
|
||||
panelTitleCPU.Controls.Add(pictureBoxCPU);
|
||||
panelTitleCPU.Controls.Add(labelPowerLimits);
|
||||
panelTitleCPU.Dock = DockStyle.Top;
|
||||
panelTitleCPU.Location = new Point(0, 124);
|
||||
panelTitleCPU.Location = new Point(0, 248);
|
||||
panelTitleCPU.Margin = new Padding(4);
|
||||
panelTitleCPU.Name = "panelTitleCPU";
|
||||
panelTitleCPU.Size = new Size(520, 60);
|
||||
@@ -1004,7 +1020,7 @@ namespace GHelper
|
||||
//
|
||||
panelBoost.Controls.Add(comboBoost);
|
||||
panelBoost.Dock = DockStyle.Top;
|
||||
panelBoost.Location = new Point(0, 60);
|
||||
panelBoost.Location = new Point(0, 184);
|
||||
panelBoost.Margin = new Padding(4);
|
||||
panelBoost.Name = "panelBoost";
|
||||
panelBoost.Size = new Size(520, 64);
|
||||
@@ -1017,7 +1033,7 @@ namespace GHelper
|
||||
panelBoostTitle.Controls.Add(pictureBoost);
|
||||
panelBoostTitle.Controls.Add(labelBoost);
|
||||
panelBoostTitle.Dock = DockStyle.Top;
|
||||
panelBoostTitle.Location = new Point(0, 0);
|
||||
panelBoostTitle.Location = new Point(0, 124);
|
||||
panelBoostTitle.Margin = new Padding(4);
|
||||
panelBoostTitle.Name = "panelBoostTitle";
|
||||
panelBoostTitle.Size = new Size(520, 60);
|
||||
@@ -1046,6 +1062,66 @@ namespace GHelper
|
||||
labelBoost.TabIndex = 39;
|
||||
labelBoost.Text = "CPU Boost";
|
||||
//
|
||||
// panelPowerMode
|
||||
//
|
||||
panelPowerMode.Controls.Add(comboPowerMode);
|
||||
panelPowerMode.Dock = DockStyle.Top;
|
||||
panelPowerMode.Location = new Point(0, 60);
|
||||
panelPowerMode.Margin = new Padding(4);
|
||||
panelPowerMode.Name = "panelPowerMode";
|
||||
panelPowerMode.Size = new Size(520, 64);
|
||||
panelPowerMode.TabIndex = 49;
|
||||
//
|
||||
// comboPowerMode
|
||||
//
|
||||
comboPowerMode.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
|
||||
comboPowerMode.BorderColor = Color.White;
|
||||
comboPowerMode.ButtonColor = Color.FromArgb(255, 255, 255);
|
||||
comboPowerMode.DropDownStyle = ComboBoxStyle.DropDownList;
|
||||
comboPowerMode.FormattingEnabled = true;
|
||||
comboPowerMode.Items.AddRange(new object[] { "Disabled", "Enabled", "Aggressive", "Efficient Enabled", "Efficient Aggressive", "Aggressive at Guaranteed", "Efficient at Guaranteed" });
|
||||
comboPowerMode.Location = new Point(13, 12);
|
||||
comboPowerMode.Margin = new Padding(4);
|
||||
comboPowerMode.Name = "comboPowerMode";
|
||||
comboPowerMode.Size = new Size(329, 40);
|
||||
comboPowerMode.TabIndex = 42;
|
||||
//
|
||||
// panelPowerModeTItle
|
||||
//
|
||||
panelPowerModeTItle.AutoSize = true;
|
||||
panelPowerModeTItle.AutoSizeMode = AutoSizeMode.GrowAndShrink;
|
||||
panelPowerModeTItle.Controls.Add(picturePowerMode);
|
||||
panelPowerModeTItle.Controls.Add(labelPowerModeTitle);
|
||||
panelPowerModeTItle.Dock = DockStyle.Top;
|
||||
panelPowerModeTItle.Location = new Point(0, 0);
|
||||
panelPowerModeTItle.Margin = new Padding(4);
|
||||
panelPowerModeTItle.Name = "panelPowerModeTItle";
|
||||
panelPowerModeTItle.Size = new Size(520, 60);
|
||||
panelPowerModeTItle.TabIndex = 50;
|
||||
//
|
||||
// picturePowerMode
|
||||
//
|
||||
picturePowerMode.BackgroundImage = Properties.Resources.icons8_gauge_32;
|
||||
picturePowerMode.BackgroundImageLayout = ImageLayout.Zoom;
|
||||
picturePowerMode.InitialImage = null;
|
||||
picturePowerMode.Location = new Point(10, 18);
|
||||
picturePowerMode.Margin = new Padding(4, 2, 4, 10);
|
||||
picturePowerMode.Name = "picturePowerMode";
|
||||
picturePowerMode.Size = new Size(32, 32);
|
||||
picturePowerMode.TabIndex = 40;
|
||||
picturePowerMode.TabStop = false;
|
||||
//
|
||||
// labelPowerModeTitle
|
||||
//
|
||||
labelPowerModeTitle.AutoSize = true;
|
||||
labelPowerModeTitle.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
|
||||
labelPowerModeTitle.Location = new Point(46, 18);
|
||||
labelPowerModeTitle.Margin = new Padding(4, 0, 4, 0);
|
||||
labelPowerModeTitle.Name = "labelPowerModeTitle";
|
||||
labelPowerModeTitle.Size = new Size(271, 32);
|
||||
labelPowerModeTitle.TabIndex = 39;
|
||||
labelPowerModeTitle.Text = "Windows Power Mode";
|
||||
//
|
||||
// panelGPU
|
||||
//
|
||||
panelGPU.AutoSize = true;
|
||||
@@ -1053,13 +1129,14 @@ namespace GHelper
|
||||
panelGPU.Controls.Add(panelGPUBoost);
|
||||
panelGPU.Controls.Add(panelGPUMemory);
|
||||
panelGPU.Controls.Add(panelGPUCore);
|
||||
panelGPU.Controls.Add(panelGPUClockLimit);
|
||||
panelGPU.Controls.Add(panelTitleGPU);
|
||||
panelGPU.Dock = DockStyle.Top;
|
||||
panelGPU.Location = new Point(10, 66);
|
||||
panelGPU.Margin = new Padding(4);
|
||||
panelGPU.Name = "panelGPU";
|
||||
panelGPU.Padding = new Padding(0, 0, 0, 18);
|
||||
panelGPU.Size = new Size(520, 574);
|
||||
panelGPU.Size = new Size(520, 698);
|
||||
panelGPU.TabIndex = 44;
|
||||
panelGPU.Visible = false;
|
||||
//
|
||||
@@ -1071,7 +1148,7 @@ namespace GHelper
|
||||
panelGPUTemp.Controls.Add(labelGPUTempTitle);
|
||||
panelGPUTemp.Controls.Add(trackGPUTemp);
|
||||
panelGPUTemp.Dock = DockStyle.Top;
|
||||
panelGPUTemp.Location = new Point(0, 432);
|
||||
panelGPUTemp.Location = new Point(0, 556);
|
||||
panelGPUTemp.Margin = new Padding(4);
|
||||
panelGPUTemp.MaximumSize = new Size(0, 124);
|
||||
panelGPUTemp.Name = "panelGPUTemp";
|
||||
@@ -1120,7 +1197,7 @@ namespace GHelper
|
||||
panelGPUBoost.Controls.Add(labelGPUBoostTitle);
|
||||
panelGPUBoost.Controls.Add(trackGPUBoost);
|
||||
panelGPUBoost.Dock = DockStyle.Top;
|
||||
panelGPUBoost.Location = new Point(0, 308);
|
||||
panelGPUBoost.Location = new Point(0, 432);
|
||||
panelGPUBoost.Margin = new Padding(4);
|
||||
panelGPUBoost.MaximumSize = new Size(0, 124);
|
||||
panelGPUBoost.Name = "panelGPUBoost";
|
||||
@@ -1169,7 +1246,7 @@ namespace GHelper
|
||||
panelGPUMemory.Controls.Add(labelGPUMemoryTitle);
|
||||
panelGPUMemory.Controls.Add(trackGPUMemory);
|
||||
panelGPUMemory.Dock = DockStyle.Top;
|
||||
panelGPUMemory.Location = new Point(0, 184);
|
||||
panelGPUMemory.Location = new Point(0, 308);
|
||||
panelGPUMemory.Margin = new Padding(4);
|
||||
panelGPUMemory.MaximumSize = new Size(0, 124);
|
||||
panelGPUMemory.Name = "panelGPUMemory";
|
||||
@@ -1218,7 +1295,7 @@ namespace GHelper
|
||||
panelGPUCore.Controls.Add(trackGPUCore);
|
||||
panelGPUCore.Controls.Add(labelGPUCoreTitle);
|
||||
panelGPUCore.Dock = DockStyle.Top;
|
||||
panelGPUCore.Location = new Point(0, 60);
|
||||
panelGPUCore.Location = new Point(0, 184);
|
||||
panelGPUCore.Margin = new Padding(4);
|
||||
panelGPUCore.MaximumSize = new Size(0, 124);
|
||||
panelGPUCore.Name = "panelGPUCore";
|
||||
@@ -1382,6 +1459,56 @@ namespace GHelper
|
||||
buttonCPU.TextImageRelation = TextImageRelation.ImageBeforeText;
|
||||
buttonCPU.UseVisualStyleBackColor = false;
|
||||
//
|
||||
// panelGPUClockLimit
|
||||
//
|
||||
panelGPUClockLimit.AutoSize = true;
|
||||
panelGPUClockLimit.AutoSizeMode = AutoSizeMode.GrowAndShrink;
|
||||
panelGPUClockLimit.Controls.Add(labelGPUClockLimit);
|
||||
panelGPUClockLimit.Controls.Add(trackGPUClockLimit);
|
||||
panelGPUClockLimit.Controls.Add(labelGPUClockLimitTitle);
|
||||
panelGPUClockLimit.Dock = DockStyle.Top;
|
||||
panelGPUClockLimit.Location = new Point(0, 60);
|
||||
panelGPUClockLimit.Margin = new Padding(4);
|
||||
panelGPUClockLimit.MaximumSize = new Size(0, 124);
|
||||
panelGPUClockLimit.Name = "panelGPUClockLimit";
|
||||
panelGPUClockLimit.Size = new Size(520, 124);
|
||||
panelGPUClockLimit.TabIndex = 48;
|
||||
//
|
||||
// labelGPUClockLimit
|
||||
//
|
||||
labelGPUClockLimit.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
|
||||
labelGPUClockLimit.Location = new Point(326, 16);
|
||||
labelGPUClockLimit.Margin = new Padding(4, 0, 4, 0);
|
||||
labelGPUClockLimit.Name = "labelGPUClockLimit";
|
||||
labelGPUClockLimit.Size = new Size(176, 32);
|
||||
labelGPUClockLimit.TabIndex = 29;
|
||||
labelGPUClockLimit.Text = "1500 MHz";
|
||||
labelGPUClockLimit.TextAlign = ContentAlignment.TopRight;
|
||||
//
|
||||
// trackGPUClockLimit
|
||||
//
|
||||
trackGPUClockLimit.LargeChange = 100;
|
||||
trackGPUClockLimit.Location = new Point(6, 48);
|
||||
trackGPUClockLimit.Margin = new Padding(4, 2, 4, 2);
|
||||
trackGPUClockLimit.Maximum = 3000;
|
||||
trackGPUClockLimit.Name = "trackGPUClockLimit";
|
||||
trackGPUClockLimit.RightToLeft = RightToLeft.No;
|
||||
trackGPUClockLimit.Size = new Size(496, 90);
|
||||
trackGPUClockLimit.SmallChange = 10;
|
||||
trackGPUClockLimit.TabIndex = 18;
|
||||
trackGPUClockLimit.TickFrequency = 50;
|
||||
trackGPUClockLimit.TickStyle = TickStyle.TopLeft;
|
||||
//
|
||||
// labelGPUClockLimitTitle
|
||||
//
|
||||
labelGPUClockLimitTitle.AutoSize = true;
|
||||
labelGPUClockLimitTitle.Location = new Point(10, 16);
|
||||
labelGPUClockLimitTitle.Margin = new Padding(4, 0, 4, 0);
|
||||
labelGPUClockLimitTitle.Name = "labelGPUClockLimitTitle";
|
||||
labelGPUClockLimitTitle.Size = new Size(188, 32);
|
||||
labelGPUClockLimitTitle.TabIndex = 17;
|
||||
labelGPUClockLimitTitle.Text = "Core Clock Limit";
|
||||
//
|
||||
// Fans
|
||||
//
|
||||
AutoScaleDimensions = new SizeF(192F, 192F);
|
||||
@@ -1452,6 +1579,10 @@ namespace GHelper
|
||||
panelBoostTitle.ResumeLayout(false);
|
||||
panelBoostTitle.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)pictureBoost).EndInit();
|
||||
panelPowerMode.ResumeLayout(false);
|
||||
panelPowerModeTItle.ResumeLayout(false);
|
||||
panelPowerModeTItle.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)picturePowerMode).EndInit();
|
||||
panelGPU.ResumeLayout(false);
|
||||
panelGPU.PerformLayout();
|
||||
panelGPUTemp.ResumeLayout(false);
|
||||
@@ -1471,6 +1602,9 @@ namespace GHelper
|
||||
((System.ComponentModel.ISupportInitialize)pictureGPU).EndInit();
|
||||
panelNav.ResumeLayout(false);
|
||||
tableNav.ResumeLayout(false);
|
||||
panelGPUClockLimit.ResumeLayout(false);
|
||||
panelGPUClockLimit.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)trackGPUClockLimit).EndInit();
|
||||
ResumeLayout(false);
|
||||
PerformLayout();
|
||||
}
|
||||
@@ -1568,5 +1702,14 @@ namespace GHelper
|
||||
private TrackBar trackTemp;
|
||||
private Panel panelAdvancedAlways;
|
||||
private RCheckBox checkApplyUV;
|
||||
private Panel panelPowerMode;
|
||||
private RComboBox comboPowerMode;
|
||||
private Panel panelPowerModeTItle;
|
||||
private PictureBox picturePowerMode;
|
||||
private Label labelPowerModeTitle;
|
||||
private Panel panelGPUClockLimit;
|
||||
private Label labelGPUClockLimit;
|
||||
private TrackBar trackGPUClockLimit;
|
||||
private Label labelGPUClockLimitTitle;
|
||||
}
|
||||
}
|
||||
69
app/Fans.cs
69
app/Fans.cs
@@ -109,6 +109,9 @@ namespace GHelper
|
||||
checkApplyFans.Click += CheckApplyFans_Click;
|
||||
checkApplyPower.Click += CheckApplyPower_Click;
|
||||
|
||||
trackGPUClockLimit.Minimum = NvidiaGpuControl.MinClockLimit;
|
||||
trackGPUClockLimit.Maximum = NvidiaGpuControl.MaxClockLimit;
|
||||
|
||||
trackGPUCore.Minimum = NvidiaGpuControl.MinCoreOffset;
|
||||
trackGPUCore.Maximum = NvidiaGpuControl.MaxCoreOffset;
|
||||
|
||||
@@ -121,6 +124,7 @@ namespace GHelper
|
||||
trackGPUTemp.Minimum = AsusACPI.MinGPUTemp;
|
||||
trackGPUTemp.Maximum = AsusACPI.MaxGPUTemp;
|
||||
|
||||
trackGPUClockLimit.Scroll += trackGPUClockLimit_Scroll;
|
||||
trackGPUCore.Scroll += trackGPU_Scroll;
|
||||
trackGPUMemory.Scroll += trackGPU_Scroll;
|
||||
|
||||
@@ -131,6 +135,7 @@ namespace GHelper
|
||||
trackGPUMemory.MouseUp += TrackGPU_MouseUp;
|
||||
trackGPUBoost.MouseUp += TrackGPU_MouseUp;
|
||||
trackGPUTemp.MouseUp += TrackGPU_MouseUp;
|
||||
trackGPUClockLimit.MouseUp += TrackGPU_MouseUp;
|
||||
|
||||
//labelInfo.MaximumSize = new Size(280, 0);
|
||||
labelFansResult.Visible = false;
|
||||
@@ -145,11 +150,17 @@ namespace GHelper
|
||||
trackTemp.Minimum = RyzenControl.MinTemp;
|
||||
trackTemp.Maximum = RyzenControl.MaxTemp;
|
||||
|
||||
comboPowerMode.DropDownStyle = ComboBoxStyle.DropDownList;
|
||||
comboPowerMode.DataSource = new BindingSource(PowerNative.powerModes, null);
|
||||
comboPowerMode.DisplayMember = "Value";
|
||||
comboPowerMode.ValueMember = "Key";
|
||||
|
||||
FillModes();
|
||||
InitAll();
|
||||
|
||||
comboBoost.SelectedValueChanged += ComboBoost_Changed;
|
||||
comboPowerMode.SelectedValueChanged += ComboPowerMode_Changed;
|
||||
|
||||
|
||||
comboModes.SelectionChangeCommitted += ComboModes_SelectedValueChanged;
|
||||
comboModes.TextChanged += ComboModes_TextChanged;
|
||||
@@ -201,7 +212,7 @@ namespace GHelper
|
||||
InitMode();
|
||||
InitFans();
|
||||
InitPower();
|
||||
InitBoost();
|
||||
InitPowerPlan();
|
||||
InitUV();
|
||||
InitGPU();
|
||||
}
|
||||
@@ -429,24 +440,29 @@ namespace GHelper
|
||||
|
||||
int gpu_boost = AppConfig.GetMode("gpu_boost");
|
||||
int gpu_temp = AppConfig.GetMode("gpu_temp");
|
||||
|
||||
int core = AppConfig.GetMode("gpu_core");
|
||||
int memory = AppConfig.GetMode("gpu_memory");
|
||||
int clock_limit = AppConfig.GetMode("gpu_clock_limit");
|
||||
|
||||
if (gpu_boost < 0) gpu_boost = AsusACPI.MaxGPUBoost;
|
||||
if (gpu_temp < 0) gpu_temp = AsusACPI.MaxGPUTemp;
|
||||
|
||||
if (core == -1) core = 0;
|
||||
if (memory == -1) memory = 0;
|
||||
if (clock_limit == -1) clock_limit = NvidiaGpuControl.MaxClockLimit;
|
||||
|
||||
//if (readClocks)
|
||||
//{
|
||||
int status = nvControl.GetClocks(out int current_core, out int current_memory);
|
||||
if (status != -1)
|
||||
if (nvControl.GetClocks(out int current_core, out int current_memory))
|
||||
{
|
||||
core = current_core;
|
||||
memory = current_memory;
|
||||
}
|
||||
|
||||
int _clockLimit = nvControl.GetMaxGPUCLock();
|
||||
|
||||
if (_clockLimit == 0) clock_limit = NvidiaGpuControl.MaxClockLimit;
|
||||
else if (_clockLimit > 0) clock_limit = _clockLimit;
|
||||
|
||||
try
|
||||
{
|
||||
labelGPU.Text = nvControl.FullName;
|
||||
@@ -457,6 +473,7 @@ namespace GHelper
|
||||
}
|
||||
|
||||
//}
|
||||
trackGPUClockLimit.Value = Math.Max(Math.Min(clock_limit, NvidiaGpuControl.MaxClockLimit), NvidiaGpuControl.MinClockLimit);
|
||||
|
||||
trackGPUCore.Value = Math.Max(Math.Min(core, NvidiaGpuControl.MaxCoreOffset), NvidiaGpuControl.MinCoreOffset);
|
||||
trackGPUMemory.Value = Math.Max(Math.Min(memory, NvidiaGpuControl.MaxMemoryOffset), NvidiaGpuControl.MinMemoryOffset);
|
||||
@@ -482,8 +499,24 @@ namespace GHelper
|
||||
{
|
||||
labelGPUCore.Text = $"{trackGPUCore.Value} MHz";
|
||||
labelGPUMemory.Text = $"{trackGPUMemory.Value} MHz";
|
||||
|
||||
labelGPUBoost.Text = $"{trackGPUBoost.Value}W";
|
||||
labelGPUTemp.Text = $"{trackGPUTemp.Value}°C";
|
||||
|
||||
if (trackGPUClockLimit.Value >= NvidiaGpuControl.MaxClockLimit)
|
||||
labelGPUClockLimit.Text = "Default";
|
||||
else
|
||||
labelGPUClockLimit.Text = $"{trackGPUClockLimit.Value} MHz";
|
||||
}
|
||||
|
||||
private void trackGPUClockLimit_Scroll(object? sender, EventArgs e)
|
||||
{
|
||||
|
||||
int maxClock = (int)Math.Round((float)trackGPUClockLimit.Value / 50) * 50;
|
||||
|
||||
trackGPUClockLimit.Value = maxClock;
|
||||
AppConfig.SetMode("gpu_clock_limit", maxClock);
|
||||
VisualiseGPUSettings();
|
||||
}
|
||||
|
||||
private void trackGPU_Scroll(object? sender, EventArgs e)
|
||||
@@ -495,6 +528,7 @@ namespace GHelper
|
||||
AppConfig.SetMode("gpu_core", trackGPUCore.Value);
|
||||
AppConfig.SetMode("gpu_memory", trackGPUMemory.Value);
|
||||
|
||||
|
||||
VisualiseGPUSettings();
|
||||
|
||||
}
|
||||
@@ -512,7 +546,7 @@ namespace GHelper
|
||||
if (percentage == 0) return "OFF";
|
||||
|
||||
int Max = MaxRPM;
|
||||
if (device == AsusFan.XGM ) Max = 72;
|
||||
if (device == AsusFan.XGM) Max = 72;
|
||||
|
||||
return (200 * Math.Round((float)(MinRPM * 100 + (Max - MinRPM) * percentage) / 200)).ToString() + unit;
|
||||
}
|
||||
@@ -594,11 +628,26 @@ namespace GHelper
|
||||
}
|
||||
|
||||
|
||||
public void InitBoost()
|
||||
public void InitPowerPlan()
|
||||
{
|
||||
int boost = PowerNative.GetCPUBoost();
|
||||
if (boost >= 0)
|
||||
comboBoost.SelectedIndex = Math.Min(boost, comboBoost.Items.Count - 1);
|
||||
|
||||
string powerMode = PowerNative.GetPowerMode();
|
||||
comboPowerMode.SelectedValue = powerMode;
|
||||
|
||||
}
|
||||
|
||||
private void ComboPowerMode_Changed(object? sender, EventArgs e)
|
||||
{
|
||||
string powerMode = (string)comboPowerMode.SelectedValue;
|
||||
PowerNative.SetPowerMode(powerMode);
|
||||
|
||||
if (PowerNative.GetDefaultPowerMode(Modes.GetCurrentBase()) != powerMode)
|
||||
AppConfig.SetMode("powermode", powerMode);
|
||||
else
|
||||
AppConfig.RemoveMode("powermode");
|
||||
}
|
||||
|
||||
private void ComboBoost_Changed(object? sender, EventArgs e)
|
||||
@@ -871,18 +920,24 @@ namespace GHelper
|
||||
|
||||
modeControl.ResetPerformanceMode();
|
||||
|
||||
InitPowerPlan();
|
||||
|
||||
if (Program.acpi.IsXGConnected()) AsusUSB.ResetXGM();
|
||||
|
||||
|
||||
if (gpuVisible)
|
||||
{
|
||||
trackGPUClockLimit.Value = NvidiaGpuControl.MaxClockLimit;
|
||||
trackGPUCore.Value = 0;
|
||||
trackGPUMemory.Value = 0;
|
||||
trackGPUBoost.Value = AsusACPI.MaxGPUBoost;
|
||||
trackGPUTemp.Value = AsusACPI.MaxGPUTemp;
|
||||
|
||||
AppConfig.SetMode("gpu_clock_limit", trackGPUClockLimit.Value);
|
||||
|
||||
AppConfig.SetMode("gpu_boost", trackGPUBoost.Value);
|
||||
AppConfig.SetMode("gpu_temp", trackGPUTemp.Value);
|
||||
|
||||
AppConfig.SetMode("gpu_core", trackGPUCore.Value);
|
||||
AppConfig.SetMode("gpu_memory", trackGPUMemory.Value);
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing"">Blue</data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<ProduceReferenceAssembly>False</ProduceReferenceAssembly>
|
||||
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
|
||||
<AssemblyVersion>0.109</AssemblyVersion>
|
||||
<AssemblyVersion>0.112</AssemblyVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||
|
||||
@@ -10,6 +10,8 @@ namespace GHelper.Gpu
|
||||
SettingsForm settings;
|
||||
ScreenControl screenControl = new ScreenControl();
|
||||
|
||||
public static int gpuMode;
|
||||
|
||||
public GPUModeControl(SettingsForm settingsForm)
|
||||
{
|
||||
settings = settingsForm;
|
||||
@@ -23,18 +25,16 @@ namespace GHelper.Gpu
|
||||
Logger.WriteLine("Eco flag : " + eco);
|
||||
Logger.WriteLine("Mux flag : " + mux);
|
||||
|
||||
int GpuMode;
|
||||
|
||||
if (mux == 0)
|
||||
{
|
||||
GpuMode = AsusACPI.GPUModeUltimate;
|
||||
gpuMode = AsusACPI.GPUModeUltimate;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (eco == 1)
|
||||
GpuMode = AsusACPI.GPUModeEco;
|
||||
gpuMode = AsusACPI.GPUModeEco;
|
||||
else
|
||||
GpuMode = AsusACPI.GPUModeStandard;
|
||||
gpuMode = AsusACPI.GPUModeStandard;
|
||||
|
||||
// Ultimate mode not supported
|
||||
if (mux != 1) settings.HideUltimateMode();
|
||||
@@ -42,10 +42,13 @@ namespace GHelper.Gpu
|
||||
if (eco < 0 && mux < 0) settings.HideGPUModes();
|
||||
}
|
||||
|
||||
AppConfig.Set("gpu_mode", GpuMode);
|
||||
AppConfig.Set("gpu_mode", gpuMode);
|
||||
|
||||
InitXGM();
|
||||
settings.VisualiseGPUMode(GpuMode);
|
||||
settings.VisualiseGPUMode(gpuMode);
|
||||
|
||||
AsusUSB.ApplyGPUColor();
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -18,6 +18,9 @@ public class NvidiaGpuControl : IGpuControl
|
||||
public const int MinCoreOffset = -250;
|
||||
public const int MinMemoryOffset = -250;
|
||||
|
||||
public const int MinClockLimit = 1000;
|
||||
public const int MaxClockLimit = 3000;
|
||||
|
||||
private static PhysicalGPU? _internalGpu;
|
||||
|
||||
public NvidiaGpuControl()
|
||||
@@ -76,7 +79,7 @@ public class NvidiaGpuControl : IGpuControl
|
||||
}
|
||||
|
||||
|
||||
public int GetClocks(out int core, out int memory)
|
||||
public bool GetClocks(out int core, out int memory)
|
||||
{
|
||||
PhysicalGPU internalGpu = _internalGpu!;
|
||||
|
||||
@@ -95,28 +98,24 @@ public class NvidiaGpuControl : IGpuControl
|
||||
Logger.WriteLine("GPU VOLT:" + delta.IsEditable + " - " + delta.ValueDeltaInMicroVolt.DeltaValue);
|
||||
}
|
||||
|
||||
return 0;
|
||||
return true;
|
||||
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Logger.WriteLine("GET GPU CLOCKS:" + ex.Message);
|
||||
core = memory = 0;
|
||||
return -1;
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
public bool RestartGPU()
|
||||
private bool RunPowershellCommand(string script)
|
||||
{
|
||||
try
|
||||
{
|
||||
|
||||
string script = @"$device = Get-PnpDevice | Where-Object { $_.FriendlyName -imatch 'NVIDIA' -and $_.Class -eq 'Display' }; Disable-PnpDevice $device.InstanceId -Confirm:$false; Start-Sleep -Seconds 5; Enable-PnpDevice $device.InstanceId -Confirm:$false";
|
||||
Logger.WriteLine(script);
|
||||
ProcessHelper.RunCMD("powershell", script);
|
||||
//Thread.Sleep(2000);
|
||||
return true;
|
||||
}
|
||||
catch (Exception ex)
|
||||
@@ -124,27 +123,71 @@ public class NvidiaGpuControl : IGpuControl
|
||||
Logger.WriteLine(ex.ToString());
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public int SetClocksFromConfig()
|
||||
public int GetMaxGPUCLock()
|
||||
{
|
||||
int core = AppConfig.Get("gpu_core", 0);
|
||||
int memory = AppConfig.Get("gpu_memory", 0);
|
||||
int status = SetClocks(core, memory);
|
||||
return status;
|
||||
PhysicalGPU internalGpu = _internalGpu!;
|
||||
try
|
||||
{
|
||||
PrivateClockBoostLockV2 data = GPUApi.GetClockBoostLock(internalGpu.Handle);
|
||||
int limit = (int)data.ClockBoostLocks[0].VoltageInMicroV / 1000;
|
||||
Logger.WriteLine("GET CLOCK LIMIT: " + limit);
|
||||
return limit;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Logger.WriteLine("GET CLOCK LIMIT: " + ex.Message);
|
||||
return -1;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public int SetClocks(int core, int memory, int voltage = 0)
|
||||
|
||||
public int SetMaxGPUClock(int clock)
|
||||
{
|
||||
|
||||
if (clock < MinClockLimit || clock >= MaxClockLimit) clock = 0;
|
||||
|
||||
int _clockLimit = GetMaxGPUCLock();
|
||||
|
||||
if (_clockLimit != clock)
|
||||
{
|
||||
if (clock > 0) RunPowershellCommand($"nvidia-smi -lgc 0,{clock}");
|
||||
else RunPowershellCommand($"nvidia-smi -rgc");
|
||||
return 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
public bool RestartGPU()
|
||||
{
|
||||
return RunPowershellCommand(@"$device = Get-PnpDevice | Where-Object { $_.FriendlyName -imatch 'NVIDIA' -and $_.Class -eq 'Display' }; Disable-PnpDevice $device.InstanceId -Confirm:$false; Start-Sleep -Seconds 5; Enable-PnpDevice $device.InstanceId -Confirm:$false");
|
||||
}
|
||||
|
||||
|
||||
public int SetClocks(int core, int memory)
|
||||
{
|
||||
|
||||
if (core < MinCoreOffset || core > MaxCoreOffset) return 0;
|
||||
if (memory < MinMemoryOffset || memory > MaxMemoryOffset) return 0;
|
||||
|
||||
if (GetClocks(out int currentCore, out int currentMemory))
|
||||
{
|
||||
if (Math.Abs(core - currentCore) < 5 && Math.Abs(memory - currentMemory) < 5) return 0;
|
||||
}
|
||||
|
||||
PhysicalGPU internalGpu = _internalGpu!;
|
||||
|
||||
var coreClock = new PerformanceStates20ClockEntryV1(PublicClockDomain.Graphics, new PerformanceStates20ParameterDelta(core * 1000));
|
||||
var memoryClock = new PerformanceStates20ClockEntryV1(PublicClockDomain.Memory, new PerformanceStates20ParameterDelta(memory * 1000));
|
||||
var voltageEntry = new PerformanceStates20BaseVoltageEntryV1(PerformanceVoltageDomain.Core, new PerformanceStates20ParameterDelta(voltage));
|
||||
//var voltageEntry = new PerformanceStates20BaseVoltageEntryV1(PerformanceVoltageDomain.Core, new PerformanceStates20ParameterDelta(voltage));
|
||||
|
||||
PerformanceStates20ClockEntryV1[] clocks = { coreClock, memoryClock };
|
||||
PerformanceStates20BaseVoltageEntryV1[] voltages = { };
|
||||
@@ -164,8 +207,6 @@ public class NvidiaGpuControl : IGpuControl
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
@@ -132,7 +132,12 @@ namespace GHelper.Helpers
|
||||
cmd.StartInfo.FileName = name;
|
||||
cmd.StartInfo.Arguments = args;
|
||||
cmd.Start();
|
||||
Logger.WriteLine(cmd.StandardOutput.ReadToEnd());
|
||||
|
||||
string result = cmd.StandardOutput.ReadToEnd().Replace(Environment.NewLine, " ").Trim(' ');
|
||||
|
||||
Logger.WriteLine(args);
|
||||
Logger.WriteLine(result);
|
||||
|
||||
cmd.WaitForExit();
|
||||
}
|
||||
|
||||
|
||||
@@ -46,7 +46,12 @@ namespace GHelper.Mode
|
||||
public void ResetPerformanceMode()
|
||||
{
|
||||
ResetRyzen();
|
||||
|
||||
Program.acpi.DeviceSet(AsusACPI.PerformanceMode, Modes.GetCurrentBase(), "Mode");
|
||||
|
||||
// Default power mode
|
||||
AppConfig.RemoveMode("powermode");
|
||||
PowerNative.SetPowerMode(Modes.GetCurrentBase());
|
||||
}
|
||||
|
||||
public void SetPerformanceMode(int mode = -1, bool notify = false)
|
||||
@@ -76,18 +81,21 @@ namespace GHelper.Mode
|
||||
AutoFans();
|
||||
AutoPower(1000);
|
||||
|
||||
if (AppConfig.Get("auto_apply_power_plan") != 0)
|
||||
{
|
||||
if (AppConfig.GetModeString("scheme") is not null)
|
||||
PowerNative.SetPowerScheme(AppConfig.GetModeString("scheme"));
|
||||
else
|
||||
PowerNative.SetPowerScheme(Modes.GetBase(mode));
|
||||
}
|
||||
// Power plan from config or defaulting to balanced
|
||||
if (AppConfig.GetModeString("scheme") is not null)
|
||||
PowerNative.SetPowerPlan(AppConfig.GetModeString("scheme"));
|
||||
else
|
||||
PowerNative.SetBalancedPowerPlan();
|
||||
|
||||
// Windows power mode
|
||||
if (AppConfig.GetModeString("powermode") is not null)
|
||||
PowerNative.SetPowerMode(AppConfig.GetModeString("powermode"));
|
||||
else
|
||||
PowerNative.SetPowerMode(Modes.GetBase(mode));
|
||||
|
||||
// CPU Boost setting override
|
||||
if (AppConfig.GetMode("auto_boost") != -1)
|
||||
{
|
||||
PowerNative.SetCPUBoost(AppConfig.GetMode("auto_boost"));
|
||||
}
|
||||
|
||||
//BatteryControl.SetBatteryChargeLimit();
|
||||
|
||||
@@ -280,35 +288,35 @@ namespace GHelper.Mode
|
||||
|
||||
public void SetGPUClocks(bool launchAsAdmin = true)
|
||||
{
|
||||
|
||||
int gpu_core = AppConfig.GetMode("gpu_core");
|
||||
int gpu_memory = AppConfig.GetMode("gpu_memory");
|
||||
|
||||
if (gpu_core == -1 && gpu_memory == -1) return;
|
||||
|
||||
//if ((gpu_core > -5 && gpu_core < 5) && (gpu_memory > -5 && gpu_memory < 5)) launchAsAdmin = false;
|
||||
|
||||
if (Program.acpi.DeviceGet(AsusACPI.GPUEco) == 1) return;
|
||||
if (HardwareControl.GpuControl is null) return;
|
||||
if (!HardwareControl.GpuControl!.IsNvidia) return;
|
||||
|
||||
using NvidiaGpuControl nvControl = (NvidiaGpuControl)HardwareControl.GpuControl;
|
||||
try
|
||||
Task.Run(() =>
|
||||
{
|
||||
int getStatus = nvControl.GetClocks(out int current_core, out int current_memory);
|
||||
if (getStatus != -1)
|
||||
|
||||
int core = AppConfig.GetMode("gpu_core");
|
||||
int memory = AppConfig.GetMode("gpu_memory");
|
||||
int clock_limit = AppConfig.GetMode("gpu_clock_limit");
|
||||
|
||||
if (core == -1 && memory == -1) return;
|
||||
|
||||
//if ((gpu_core > -5 && gpu_core < 5) && (gpu_memory > -5 && gpu_memory < 5)) launchAsAdmin = false;
|
||||
|
||||
if (Program.acpi.DeviceGet(AsusACPI.GPUEco) == 1) return;
|
||||
if (HardwareControl.GpuControl is null) return;
|
||||
if (!HardwareControl.GpuControl!.IsNvidia) return;
|
||||
|
||||
using NvidiaGpuControl nvControl = (NvidiaGpuControl)HardwareControl.GpuControl;
|
||||
try
|
||||
{
|
||||
if (Math.Abs(gpu_core - current_core) < 5 && Math.Abs(gpu_memory - current_memory) < 5) return;
|
||||
int statusLimit = nvControl.SetMaxGPUClock(clock_limit);
|
||||
int statusClocks = nvControl.SetClocks(core, memory);
|
||||
if ((statusLimit != 0 || statusClocks != 0) && launchAsAdmin) ProcessHelper.RunAsAdmin("gpu");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Logger.WriteLine(ex.ToString());
|
||||
}
|
||||
|
||||
int setStatus = nvControl.SetClocks(gpu_core, gpu_memory);
|
||||
if (launchAsAdmin && setStatus == -1) ProcessHelper.RunAsAdmin("gpu");
|
||||
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Logger.WriteLine(ex.ToString());
|
||||
}
|
||||
settings.GPUInit();
|
||||
});
|
||||
}
|
||||
|
||||
public void SetGPUPower()
|
||||
|
||||
@@ -51,7 +51,8 @@
|
||||
"gpu_memory",
|
||||
"auto_boost",
|
||||
"auto_apply",
|
||||
"auto_apply_power"
|
||||
"auto_apply_power",
|
||||
"powermode"
|
||||
};
|
||||
|
||||
foreach (string clean in cleanup)
|
||||
|
||||
@@ -72,7 +72,24 @@ namespace GHelper.Mode
|
||||
[DllImportAttribute("powrprof.dll", EntryPoint = "PowerSetActiveOverlayScheme")]
|
||||
public static extern uint PowerSetActiveOverlayScheme(Guid OverlaySchemeGuid);
|
||||
|
||||
const string POWER_SILENT = "961cc777-2547-4f9d-8174-7d86181b8a7a";
|
||||
const string POWER_BALANCED = "00000000-0000-0000-0000-000000000000";
|
||||
const string POWER_TURBO = "ded574b5-45a0-4f42-8737-46345c09c238";
|
||||
const string POWER_BETTERPERFORMANCE = "ded574b5-45a0-4f42-8737-46345c09c238";
|
||||
|
||||
static List<string> overlays = new() {
|
||||
POWER_BALANCED,
|
||||
POWER_TURBO,
|
||||
POWER_SILENT,
|
||||
POWER_BETTERPERFORMANCE
|
||||
};
|
||||
|
||||
public static Dictionary<string, string> powerModes = new Dictionary<string, string>
|
||||
{
|
||||
{ POWER_SILENT, "Best Power Efficiency" },
|
||||
{ POWER_BALANCED, "Balanced" },
|
||||
{ POWER_TURBO, "Best Performance" },
|
||||
};
|
||||
static Guid GetActiveScheme()
|
||||
{
|
||||
IntPtr pActiveSchemeGuid;
|
||||
@@ -122,51 +139,67 @@ namespace GHelper.Mode
|
||||
Logger.WriteLine("Boost " + boost);
|
||||
}
|
||||
|
||||
public static void SetPowerScheme(string scheme)
|
||||
public static string GetPowerMode()
|
||||
{
|
||||
List<string> overlays = new() {
|
||||
"00000000-0000-0000-0000-000000000000",
|
||||
"ded574b5-45a0-4f42-8737-46345c09c238",
|
||||
"961cc777-2547-4f9d-8174-7d86181b8a7a",
|
||||
"3af9B8d9-7c97-431d-ad78-34a8bfea439f"
|
||||
};
|
||||
PowerGetEffectiveOverlayScheme(out Guid activeScheme);
|
||||
return activeScheme.ToString();
|
||||
}
|
||||
|
||||
public static void SetPowerMode(string scheme)
|
||||
{
|
||||
|
||||
if (!overlays.Contains(scheme)) return;
|
||||
|
||||
Guid guidScheme = new Guid(scheme);
|
||||
|
||||
if (overlays.Contains(scheme))
|
||||
uint status = PowerGetEffectiveOverlayScheme(out Guid activeScheme);
|
||||
if (status != 0 || activeScheme != guidScheme)
|
||||
{
|
||||
uint status = PowerGetEffectiveOverlayScheme(out Guid activeScheme);
|
||||
if (status != 0 || activeScheme != guidScheme)
|
||||
{
|
||||
PowerSetActiveOverlayScheme(guidScheme);
|
||||
Logger.WriteLine("Power mode: " + scheme);
|
||||
}
|
||||
status = PowerSetActiveOverlayScheme(guidScheme);
|
||||
Logger.WriteLine("Power Mode " + scheme + ":" + (status == 0 ? "OK" : status));
|
||||
}
|
||||
else
|
||||
{
|
||||
PowerSetActiveScheme(IntPtr.Zero, guidScheme);
|
||||
Logger.WriteLine("Power plan: " + scheme);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
public static void SetPowerScheme(int mode)
|
||||
public static void SetBalancedPowerPlan()
|
||||
{
|
||||
Guid activeSchemeGuid = GetActiveScheme();
|
||||
string balanced = "381b4222-f694-41f0-9685-ff5bb260df2e";
|
||||
|
||||
if (activeSchemeGuid.ToString() != balanced && !AppConfig.Is("skip_power_plan"))
|
||||
{
|
||||
SetPowerPlan(balanced);
|
||||
}
|
||||
}
|
||||
|
||||
public static void SetPowerPlan(string scheme)
|
||||
{
|
||||
// Skipping power modes
|
||||
if (overlays.Contains(scheme)) return;
|
||||
|
||||
Guid guidScheme = new Guid(scheme);
|
||||
uint status = PowerSetActiveScheme(IntPtr.Zero, guidScheme);
|
||||
Logger.WriteLine("Power Plan " + scheme + ":" + (status == 0 ? "OK" : status));
|
||||
}
|
||||
|
||||
public static string GetDefaultPowerMode(int mode)
|
||||
{
|
||||
switch (mode)
|
||||
{
|
||||
case 0: // balanced
|
||||
SetPowerScheme("00000000-0000-0000-0000-000000000000");
|
||||
break;
|
||||
case 1: // turbo
|
||||
SetPowerScheme("ded574b5-45a0-4f42-8737-46345c09c238");
|
||||
break;
|
||||
return POWER_TURBO;
|
||||
case 2: //silent
|
||||
SetPowerScheme("961cc777-2547-4f9d-8174-7d86181b8a7a");
|
||||
break;
|
||||
return POWER_SILENT;
|
||||
default: // balanced
|
||||
return POWER_BALANCED;
|
||||
}
|
||||
}
|
||||
|
||||
public static void SetPowerMode(int mode)
|
||||
{
|
||||
SetPowerMode(GetDefaultPowerMode(mode));
|
||||
}
|
||||
|
||||
public static int GetLidAction(bool ac)
|
||||
{
|
||||
Guid activeSchemeGuid = GetActiveScheme();
|
||||
|
||||
@@ -199,10 +199,12 @@ namespace GHelper
|
||||
|
||||
private static void SystemEvents_PowerModeChanged(object sender, PowerModeChangedEventArgs e)
|
||||
{
|
||||
Logger.WriteLine("Power Mode:" + e.Mode.ToString());
|
||||
|
||||
|
||||
if (e.Mode == PowerModes.Suspend) gpuControl.StandardModeFix();
|
||||
if (e.Mode == PowerModes.Suspend)
|
||||
{
|
||||
Logger.WriteLine("Power Mode:" + e.Mode.ToString());
|
||||
gpuControl.StandardModeFix();
|
||||
}
|
||||
|
||||
if (SystemInformation.PowerStatus.PowerLineStatus == isPlugged) return;
|
||||
SetAutoModes(true);
|
||||
|
||||
@@ -286,7 +286,7 @@
|
||||
<value>Descargando</value>
|
||||
</data>
|
||||
<data name="DownloadUpdate" xml:space="preserve">
|
||||
<value>Download</value>
|
||||
<value>Descargar</value>
|
||||
</data>
|
||||
<data name="DriverAndSoftware" xml:space="preserve">
|
||||
<value>Drivers y Software</value>
|
||||
@@ -540,7 +540,7 @@
|
||||
<value>Quitar</value>
|
||||
</data>
|
||||
<data name="RestartGPU" xml:space="preserve">
|
||||
<value>Something is using dGPU and preventing Eco mode. Let G-Helper try to restart dGPU in device manager? (Please proceed at your own risk)</value>
|
||||
<value>Algo está usando la dGPU e impide el modo Eco. ¿Reiniciar dGPU en el administrador de dispositivos? (Proceda bajo su propio riesgo)</value>
|
||||
</data>
|
||||
<data name="RPM" xml:space="preserve">
|
||||
<value>RPM</value>
|
||||
|
||||
@@ -286,7 +286,7 @@
|
||||
<value>Scaricamento</value>
|
||||
</data>
|
||||
<data name="DownloadUpdate" xml:space="preserve">
|
||||
<value>Download</value>
|
||||
<value>Scarica</value>
|
||||
</data>
|
||||
<data name="DriverAndSoftware" xml:space="preserve">
|
||||
<value>Driver e Software</value>
|
||||
@@ -306,7 +306,7 @@ Sei sicuro di voler continuare?</value>
|
||||
<value>Modalità schermo NVIDIA non impostata su Optimus</value>
|
||||
</data>
|
||||
<data name="EnergySettings" xml:space="preserve">
|
||||
<value>Energy Settings</value>
|
||||
<value>Risparmio Energia</value>
|
||||
</data>
|
||||
<data name="Extra" xml:space="preserve">
|
||||
<value>Extra</value>
|
||||
@@ -540,7 +540,7 @@ Sei sicuro di voler continuare?</value>
|
||||
<value>Esci</value>
|
||||
</data>
|
||||
<data name="RestartGPU" xml:space="preserve">
|
||||
<value>Something is using dGPU and preventing Eco mode. Let G-Helper try to restart dGPU in device manager? (Please proceed at your own risk)</value>
|
||||
<value>Qualcosa sta utilizzando la dGPU e impedisce il passaggio alla modalità Eco. Vuoi che G-Helper provi a riavviare la dGPU in gestione dispositivi? (Procedi a tuo rischio)</value>
|
||||
</data>
|
||||
<data name="RPM" xml:space="preserve">
|
||||
<value>RPM</value>
|
||||
|
||||
@@ -163,64 +163,64 @@
|
||||
<value>실행중인 Asus 서비스</value>
|
||||
</data>
|
||||
<data name="AuraBatteryState" xml:space="preserve">
|
||||
<value>Battery State</value>
|
||||
<value>배터리 상태</value>
|
||||
</data>
|
||||
<data name="AuraBreathe" xml:space="preserve">
|
||||
<value>Breathe</value>
|
||||
<value>숨쉬기</value>
|
||||
</data>
|
||||
<data name="AuraClockwise" xml:space="preserve">
|
||||
<value>Clockwise</value>
|
||||
<value>시계 방향</value>
|
||||
</data>
|
||||
<data name="AuraColorCycle" xml:space="preserve">
|
||||
<value>Color Cycle</value>
|
||||
<value>색 순환</value>
|
||||
</data>
|
||||
<data name="AuraComet" xml:space="preserve">
|
||||
<value>Comet</value>
|
||||
<value>혜성</value>
|
||||
</data>
|
||||
<data name="AuraCounterClockwise" xml:space="preserve">
|
||||
<value>Counterclockwise</value>
|
||||
<value>반시계 방향</value>
|
||||
</data>
|
||||
<data name="AuraFast" xml:space="preserve">
|
||||
<value>빠르게</value>
|
||||
</data>
|
||||
<data name="AuraLightingMode" xml:space="preserve">
|
||||
<value>Lighting Mode</value>
|
||||
<value>조명 모드</value>
|
||||
</data>
|
||||
<data name="AuraNormal" xml:space="preserve">
|
||||
<value>보통</value>
|
||||
</data>
|
||||
<data name="AuraRainbow" xml:space="preserve">
|
||||
<value>Rainbow</value>
|
||||
<value>무지개</value>
|
||||
</data>
|
||||
<data name="AuraRandomColor" xml:space="preserve">
|
||||
<value>Random</value>
|
||||
<value>랜덤</value>
|
||||
</data>
|
||||
<data name="AuraReact" xml:space="preserve">
|
||||
<value>React</value>
|
||||
<value>반응</value>
|
||||
</data>
|
||||
<data name="AuraSlow" xml:space="preserve">
|
||||
<value>느리게</value>
|
||||
</data>
|
||||
<data name="AuraStatic" xml:space="preserve">
|
||||
<value>Static</value>
|
||||
<value>정적</value>
|
||||
</data>
|
||||
<data name="AuraStrobe" xml:space="preserve">
|
||||
<value>Strobe</value>
|
||||
<value>섬광</value>
|
||||
</data>
|
||||
<data name="AuraZoneAll" xml:space="preserve">
|
||||
<value>All</value>
|
||||
<value>전체</value>
|
||||
</data>
|
||||
<data name="AuraZoneDock" xml:space="preserve">
|
||||
<value>Dock</value>
|
||||
<value>독</value>
|
||||
</data>
|
||||
<data name="AuraZoneLogo" xml:space="preserve">
|
||||
<value>Logo</value>
|
||||
<value>로고</value>
|
||||
</data>
|
||||
<data name="AuraZoneScroll" xml:space="preserve">
|
||||
<value>Scrollwheel</value>
|
||||
<value>스크롤 휠</value>
|
||||
</data>
|
||||
<data name="AuraZoneUnderglow" xml:space="preserve">
|
||||
<value>Underglow</value>
|
||||
<value>하단 조명</value>
|
||||
</data>
|
||||
<data name="AutoApply" xml:space="preserve">
|
||||
<value>자동 적용</value>
|
||||
@@ -232,28 +232,28 @@
|
||||
<value>배터리 사용 중에만 60Hz 설정</value>
|
||||
</data>
|
||||
<data name="Awake" xml:space="preserve">
|
||||
<value>Awake</value>
|
||||
<value>절전 모드 해제</value>
|
||||
</data>
|
||||
<data name="BacklightTimeout" xml:space="preserve">
|
||||
<value>전원 연결 / 배터리 사용 중 자동 꺼짐 시간 (0 - 항상 켜짐)</value>
|
||||
<value>전원 / 배터리 사용 중 자동 꺼짐 시간 (0 - 항상 켜짐)</value>
|
||||
</data>
|
||||
<data name="Balanced" xml:space="preserve">
|
||||
<value>균형</value>
|
||||
</data>
|
||||
<data name="BatteryCharge" xml:space="preserve">
|
||||
<value>Charge</value>
|
||||
<value>잔량</value>
|
||||
</data>
|
||||
<data name="BatteryChargeLimit" xml:space="preserve">
|
||||
<value>배터리 충전 제한</value>
|
||||
</data>
|
||||
<data name="BatteryHealth" xml:space="preserve">
|
||||
<value>Battery Health</value>
|
||||
<value>배터리 수명</value>
|
||||
</data>
|
||||
<data name="BiosAndDriverUpdates" xml:space="preserve">
|
||||
<value>바이오스/드라이버 업데이트</value>
|
||||
</data>
|
||||
<data name="Boot" xml:space="preserve">
|
||||
<value>Boot</value>
|
||||
<value>부팅</value>
|
||||
</data>
|
||||
<data name="Brightness" xml:space="preserve">
|
||||
<value>밝기</value>
|
||||
@@ -265,7 +265,7 @@
|
||||
<value>밝기 증가</value>
|
||||
</data>
|
||||
<data name="Charging" xml:space="preserve">
|
||||
<value>Charging</value>
|
||||
<value>충전 중</value>
|
||||
</data>
|
||||
<data name="Color" xml:space="preserve">
|
||||
<value>색상</value>
|
||||
@@ -286,7 +286,7 @@
|
||||
<value>방전 중</value>
|
||||
</data>
|
||||
<data name="DownloadUpdate" xml:space="preserve">
|
||||
<value>Download</value>
|
||||
<value>다운로드</value>
|
||||
</data>
|
||||
<data name="DriverAndSoftware" xml:space="preserve">
|
||||
<value>드라이버와 소프트웨어</value>
|
||||
@@ -336,7 +336,7 @@
|
||||
<value>팬 속도/전력</value>
|
||||
</data>
|
||||
<data name="FanSpeed" xml:space="preserve">
|
||||
<value>Fan</value>
|
||||
<value>팬</value>
|
||||
</data>
|
||||
<data name="FansPower" xml:space="preserve">
|
||||
<value>팬 + 전력</value>
|
||||
@@ -375,10 +375,10 @@
|
||||
<value>목표 온도</value>
|
||||
</data>
|
||||
<data name="HibernateAfter" xml:space="preserve">
|
||||
<value>Minutes till Hibernation in sleep on battery (0 - OFF)</value>
|
||||
<value>최대 절전 모드 전환 시간 (0 - 꺼짐)</value>
|
||||
</data>
|
||||
<data name="High" xml:space="preserve">
|
||||
<value>High</value>
|
||||
<value>높게</value>
|
||||
</data>
|
||||
<data name="KeyBindings" xml:space="preserve">
|
||||
<value>키 설정</value>
|
||||
@@ -405,13 +405,13 @@
|
||||
<value>라이트바</value>
|
||||
</data>
|
||||
<data name="Lighting" xml:space="preserve">
|
||||
<value>Lighting</value>
|
||||
<value>조명</value>
|
||||
</data>
|
||||
<data name="Logo" xml:space="preserve">
|
||||
<value>로고</value>
|
||||
</data>
|
||||
<data name="Low" xml:space="preserve">
|
||||
<value>Low</value>
|
||||
<value>낮게</value>
|
||||
</data>
|
||||
<data name="MatrixAudio" xml:space="preserve">
|
||||
<value>오디오 비주얼라이저</value>
|
||||
@@ -447,31 +447,31 @@
|
||||
<value>60Hz 주사율 설정</value>
|
||||
</data>
|
||||
<data name="Minute" xml:space="preserve">
|
||||
<value>Minute</value>
|
||||
<value>분 후</value>
|
||||
</data>
|
||||
<data name="Minutes" xml:space="preserve">
|
||||
<value>Minutes</value>
|
||||
<value>분 후</value>
|
||||
</data>
|
||||
<data name="MouseAngleSnapping" xml:space="preserve">
|
||||
<value>Angle Snapping</value>
|
||||
<value>직선 보정</value>
|
||||
</data>
|
||||
<data name="MouseAutoPowerOff" xml:space="preserve">
|
||||
<value>Auto Power Off After</value>
|
||||
<value>자동 전원 꺼짐</value>
|
||||
</data>
|
||||
<data name="MouseButtonResponse" xml:space="preserve">
|
||||
<value>Button Response</value>
|
||||
<value>버튼 응답</value>
|
||||
</data>
|
||||
<data name="MouseLiftOffDistance" xml:space="preserve">
|
||||
<value>Lift Off Distance</value>
|
||||
<value>들어올림 거리</value>
|
||||
</data>
|
||||
<data name="MouseLowBatteryWarning" xml:space="preserve">
|
||||
<value>Low Battery Warning at</value>
|
||||
<value>배터리 부족 경고 알림</value>
|
||||
</data>
|
||||
<data name="MousePerformance" xml:space="preserve">
|
||||
<value>Performance</value>
|
||||
<value>성능</value>
|
||||
</data>
|
||||
<data name="MouseSynchronize" xml:space="preserve">
|
||||
<value>Synchronize with mouse</value>
|
||||
<value>마우스와 동기화</value>
|
||||
</data>
|
||||
<data name="Multizone" xml:space="preserve">
|
||||
<value>멀티존</value>
|
||||
@@ -480,7 +480,7 @@
|
||||
<value>마이크 음소거</value>
|
||||
</data>
|
||||
<data name="Never" xml:space="preserve">
|
||||
<value>Never</value>
|
||||
<value>사용 안함</value>
|
||||
</data>
|
||||
<data name="NewUpdates" xml:space="preserve">
|
||||
<value>새 업데이트</value>
|
||||
@@ -489,7 +489,7 @@
|
||||
<value>새 업데이트 없음</value>
|
||||
</data>
|
||||
<data name="NotConnected" xml:space="preserve">
|
||||
<value>Not Connected</value>
|
||||
<value>연결되지 않음</value>
|
||||
</data>
|
||||
<data name="OpenGHelper" xml:space="preserve">
|
||||
<value>G-Helper 열기</value>
|
||||
@@ -513,7 +513,7 @@
|
||||
<value>성능 모드</value>
|
||||
</data>
|
||||
<data name="Peripherals" xml:space="preserve">
|
||||
<value>Peripherals</value>
|
||||
<value>주변 장치</value>
|
||||
</data>
|
||||
<data name="PictureGif" xml:space="preserve">
|
||||
<value>사진 / Gif</value>
|
||||
@@ -522,7 +522,7 @@
|
||||
<value>재생 / 정지</value>
|
||||
</data>
|
||||
<data name="PollingRate" xml:space="preserve">
|
||||
<value>Polling Rate</value>
|
||||
<value>폴링레이트</value>
|
||||
</data>
|
||||
<data name="PowerLimits" xml:space="preserve">
|
||||
<value>전력 제한</value>
|
||||
@@ -534,13 +534,13 @@
|
||||
<value>PrintScreen</value>
|
||||
</data>
|
||||
<data name="Profile" xml:space="preserve">
|
||||
<value>Profile</value>
|
||||
<value>프로필</value>
|
||||
</data>
|
||||
<data name="Quit" xml:space="preserve">
|
||||
<value>종료</value>
|
||||
</data>
|
||||
<data name="RestartGPU" xml:space="preserve">
|
||||
<value>Something is using dGPU and preventing Eco mode. Let G-Helper try to restart dGPU in device manager? (Please proceed at your own risk)</value>
|
||||
<value>dGPU가 사용중이기 때문에 Eco 모드로 전환할 수 없습니다. 장치 관리자에서 dGPU를 재시작하시겠습니까?</value>
|
||||
</data>
|
||||
<data name="RPM" xml:space="preserve">
|
||||
<value>RPM</value>
|
||||
@@ -555,13 +555,13 @@
|
||||
<value>Screenpad 밝기 증가</value>
|
||||
</data>
|
||||
<data name="Shutdown" xml:space="preserve">
|
||||
<value>꺼짐</value>
|
||||
<value>시스템 종료</value>
|
||||
</data>
|
||||
<data name="Silent" xml:space="preserve">
|
||||
<value>조용</value>
|
||||
</data>
|
||||
<data name="Sleep" xml:space="preserve">
|
||||
<value>Sleep</value>
|
||||
<value>절전 모드</value>
|
||||
</data>
|
||||
<data name="StandardGPUTooltip" xml:space="preserve">
|
||||
<value>Standard 모드에서 dGPU 켜기</value>
|
||||
@@ -588,19 +588,19 @@
|
||||
<value>서비스 중지 중</value>
|
||||
</data>
|
||||
<data name="ToggleAura" xml:space="preserve">
|
||||
<value>Aura 토글 키</value>
|
||||
<value>Aura 전환 키</value>
|
||||
</data>
|
||||
<data name="ToggleClamshellMode" xml:space="preserve">
|
||||
<value>Auto Toggle Clamshell Mode</value>
|
||||
<value>클램쉘 모드 자동 전환</value>
|
||||
</data>
|
||||
<data name="ToggleFnLock" xml:space="preserve">
|
||||
<value>Fn-Lock 토글 키</value>
|
||||
<value>Fn-Lock 전환 키</value>
|
||||
</data>
|
||||
<data name="ToggleMiniled" xml:space="preserve">
|
||||
<value>Miniled 토글 키 (지원하는 기기만)</value>
|
||||
<value>Miniled 전환 키 (지원하는 기기만)</value>
|
||||
</data>
|
||||
<data name="ToggleScreen" xml:space="preserve">
|
||||
<value>화면 토글 키</value>
|
||||
<value>화면 전환 키</value>
|
||||
</data>
|
||||
<data name="Turbo" xml:space="preserve">
|
||||
<value>터보</value>
|
||||
@@ -618,7 +618,7 @@
|
||||
<value>Ultimate</value>
|
||||
</data>
|
||||
<data name="UndervoltingRisky" xml:space="preserve">
|
||||
<value>언더볼팅은 실험적이며 위험한 기능입니다. 적용 값이 너무 낮은 경우 시스템이 불안정해지고, 종료되거나 데이터 손상을 유발할 수 있습니다. 작은 값부터 적용하여 잘 작동하는지 확인해 보십시오.</value>
|
||||
<value>언더볼팅은 실험적이며 위험한 기능입니다. 적용 값이 너무 낮은 경우 시스템이 불안정해지고, 강제 종료되거나 데이터 손상을 유발할 수 있습니다. 낮은 값부터 적용하여 잘 작동하는지 확인해 보십시오.</value>
|
||||
</data>
|
||||
<data name="Updates" xml:space="preserve">
|
||||
<value>업데이트</value>
|
||||
|
||||
@@ -286,7 +286,7 @@
|
||||
<value>Iškrovimas</value>
|
||||
</data>
|
||||
<data name="DownloadUpdate" xml:space="preserve">
|
||||
<value>Download</value>
|
||||
<value>Atsisiųsti</value>
|
||||
</data>
|
||||
<data name="DriverAndSoftware" xml:space="preserve">
|
||||
<value>Tvarkyklės ir programinė įranga</value>
|
||||
|
||||
@@ -286,7 +286,7 @@
|
||||
<value>Zużycie mocy</value>
|
||||
</data>
|
||||
<data name="DownloadUpdate" xml:space="preserve">
|
||||
<value>Download</value>
|
||||
<value>Pobierz</value>
|
||||
</data>
|
||||
<data name="DriverAndSoftware" xml:space="preserve">
|
||||
<value>Sterowniki i oprogramowanie</value>
|
||||
@@ -375,7 +375,7 @@ Nadal chcesz kontynuować?</value>
|
||||
<value>Temperatura docelowa</value>
|
||||
</data>
|
||||
<data name="HibernateAfter" xml:space="preserve">
|
||||
<value>Minutes till Hibernation in sleep on battery (0 - OFF)</value>
|
||||
<value>Czas przejścia w hibernację na baterii (0 - wcale)</value>
|
||||
</data>
|
||||
<data name="High" xml:space="preserve">
|
||||
<value>Wysoka</value>
|
||||
@@ -540,13 +540,13 @@ Nadal chcesz kontynuować?</value>
|
||||
<value>Zamknij</value>
|
||||
</data>
|
||||
<data name="RestartGPU" xml:space="preserve">
|
||||
<value>Something is using dGPU and preventing Eco mode. Let G-Helper try to restart dGPU in device manager? (Please proceed at your own risk)</value>
|
||||
<value>Coś korzysta z dGPU, uniemożliwiając włączenie trybu Eco. Czy G-Helper ma zresetować dGPU w Menadżerze Urządzeń? (Korzystasz na własne ryzyko)</value>
|
||||
</data>
|
||||
<data name="RPM" xml:space="preserve">
|
||||
<value>RPM</value>
|
||||
</data>
|
||||
<data name="RunOnStartup" xml:space="preserve">
|
||||
<value>Uruchom przy starcie systemu</value>
|
||||
<value>Uruchom przy starcie</value>
|
||||
</data>
|
||||
<data name="ScreenPadDown" xml:space="preserve">
|
||||
<value>Zmniejsz jasność ScreenPad</value>
|
||||
|
||||
@@ -151,7 +151,7 @@
|
||||
<value>应用</value>
|
||||
</data>
|
||||
<data name="ApplyFanCurve" xml:space="preserve">
|
||||
<value>应用自定义扇形曲线</value>
|
||||
<value>应用自定义风扇曲线</value>
|
||||
</data>
|
||||
<data name="ApplyPowerLimits" xml:space="preserve">
|
||||
<value>应用功率限制</value>
|
||||
@@ -286,7 +286,7 @@
|
||||
<value>正在放电</value>
|
||||
</data>
|
||||
<data name="DownloadUpdate" xml:space="preserve">
|
||||
<value>Download</value>
|
||||
<value>下载</value>
|
||||
</data>
|
||||
<data name="DriverAndSoftware" xml:space="preserve">
|
||||
<value>驱动程序和软件</value>
|
||||
@@ -540,7 +540,7 @@
|
||||
<value>退出</value>
|
||||
</data>
|
||||
<data name="RestartGPU" xml:space="preserve">
|
||||
<value>Something is using dGPU and preventing Eco mode. Let G-Helper try to restart dGPU in device manager? (Please proceed at your own risk)</value>
|
||||
<value>有程序正在使用独显并阻止进入集显模式。要让 G-Helper 在设备管理器中重新启动独显吗?(请自行承担风险)</value>
|
||||
</data>
|
||||
<data name="RPM" xml:space="preserve">
|
||||
<value>转/分钟</value>
|
||||
|
||||
@@ -286,7 +286,7 @@
|
||||
<value>正在釋放電力</value>
|
||||
</data>
|
||||
<data name="DownloadUpdate" xml:space="preserve">
|
||||
<value>Download</value>
|
||||
<value>下載</value>
|
||||
</data>
|
||||
<data name="DriverAndSoftware" xml:space="preserve">
|
||||
<value>驅動程式與軟體</value>
|
||||
@@ -540,7 +540,7 @@
|
||||
<value>退出</value>
|
||||
</data>
|
||||
<data name="RestartGPU" xml:space="preserve">
|
||||
<value>Something is using dGPU and preventing Eco mode. Let G-Helper try to restart dGPU in device manager? (Please proceed at your own risk)</value>
|
||||
<value>有其他程式正在使用獨顯導致無法切換至節能模式. 是否讓G-Helper重新啟動獨顯? * 請自行評估風險</value>
|
||||
</data>
|
||||
<data name="RPM" xml:space="preserve">
|
||||
<value>每分鐘轉數</value>
|
||||
|
||||
@@ -551,8 +551,7 @@ namespace GHelper
|
||||
if (colorDlg.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
AppConfig.Set("aura_color2", colorDlg.Color.ToArgb());
|
||||
AsusUSB.ApplyAura();
|
||||
VisualiseAura();
|
||||
SetAura();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -582,6 +581,14 @@ namespace GHelper
|
||||
});
|
||||
}
|
||||
|
||||
public void GPUInit()
|
||||
{
|
||||
Invoke(delegate
|
||||
{
|
||||
if (fans != null && fans.Text != "") fans.InitGPU();
|
||||
});
|
||||
}
|
||||
|
||||
public void FansToggle(int index = 0)
|
||||
{
|
||||
if (fans == null || fans.Text == "")
|
||||
@@ -617,8 +624,7 @@ namespace GHelper
|
||||
if (colorDlg.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
AppConfig.Set("aura_color", colorDlg.Color.ToArgb());
|
||||
AsusUSB.ApplyAura();
|
||||
VisualiseAura();
|
||||
SetAura();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -651,11 +657,23 @@ namespace GHelper
|
||||
|
||||
}
|
||||
|
||||
public void SetAura()
|
||||
{
|
||||
Task.Run(() =>
|
||||
{
|
||||
AsusUSB.ApplyAura();
|
||||
VisualiseAura();
|
||||
});
|
||||
}
|
||||
|
||||
public void VisualiseAura()
|
||||
{
|
||||
pictureColor.BackColor = AsusUSB.Color1;
|
||||
pictureColor2.BackColor = AsusUSB.Color2;
|
||||
pictureColor2.Visible = AsusUSB.HasSecondColor();
|
||||
Invoke(delegate
|
||||
{
|
||||
pictureColor.BackColor = AsusUSB.Color1;
|
||||
pictureColor2.BackColor = AsusUSB.Color2;
|
||||
pictureColor2.Visible = AsusUSB.HasSecondColor();
|
||||
});
|
||||
}
|
||||
|
||||
public void InitMatrix()
|
||||
@@ -687,8 +705,7 @@ namespace GHelper
|
||||
private void ComboKeyboard_SelectedValueChanged(object? sender, EventArgs e)
|
||||
{
|
||||
AppConfig.Set("aura_mode", (int)comboKeyboard.SelectedValue);
|
||||
AsusUSB.ApplyAura();
|
||||
VisualiseAura();
|
||||
SetAura();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# G-Helper - Lightweight control tool for Asus laptops
|
||||
[](https://u24.gov.ua/)
|
||||
[](https://GitHub.com/seerge/g-helper/releases/)
|
||||
[](https://GitHub.com/seerge/g-helper/releases/) [](https://GitHub.com/seerge/g-helper/stargazers/) <sup> Language: English | <a href="https://github.com/seerge/g-helper/blob/main/docs/README.zh-CN.md">[中文]</a></sup>
|
||||
[](https://GitHub.com/seerge/g-helper/releases/)
|
||||
[](https://GitHub.com/seerge/g-helper/releases/) [](https://GitHub.com/seerge/g-helper/stargazers/) <sup> Language: English | <a href="https://github.com/seerge/g-helper/blob/main/docs/README.zh-CN.md">[中文]</a></sup>
|
||||
|
||||
Small and lightweight Armoury Crate alternative for Asus laptops offering almost same functionality without extra bloat and unnecessary services. Works on all popular models, such as ROG Zephyrus G14, G15, G16, M16, Flow X13, Flow X16, Flow Z13, TUF Series, Strix / Scar Series, ProArt, VivoBook and many more!
|
||||
|
||||
@@ -52,13 +52,15 @@ _To keep auto switching and hotkeys working the app needs to stay running in the
|
||||
|
||||
### :rocket: Performance Modes
|
||||
|
||||
<img align="right" width="200" src="https://github.com/seerge/g-helper/assets/5920850/3e119674-db8d-486b-aa65-2bf9b61f9aa6">
|
||||
<img align="right" width="300" src="https://github.com/seerge/g-helper/assets/5920850/3e119674-db8d-486b-aa65-2bf9b61f9aa6">
|
||||
|
||||
All Modes are **baked in BIOS** along with default fan curves and power limits. They are the **same** as in the Armoury Crate.
|
||||
All Modes are **baked in BIOS** along with default fan curves and power limits and they are the **same** as in the Armoury Crate.
|
||||
|
||||
1. **Silent** in BIOS + **Best power efficiency** setting in Windows
|
||||
2. **Balanced** (Performance in AC) in BIOS + **Balanced** setting in Windows
|
||||
3. **Turbo** in BIOS + **Best performance** setting in Windows
|
||||
Each BIOS mode is paired with matching Windows Power Mode. You can adjust this setting under ``Fans + Power``
|
||||
|
||||
1. **Silent** in BIOS + **Best power efficiency** power mode
|
||||
2. **Balanced** (Performance in AC) in BIOS + **Balanced** power mode
|
||||
3. **Turbo** in BIOS + **Best performance** power mode
|
||||
|
||||
|
||||
### :video_game: GPU Modes
|
||||
@@ -225,16 +227,16 @@ By default the app will use your windows language setting. But you can set langu
|
||||
|
||||
### Custom windows power plans with each mode
|
||||
|
||||
You can manually assign a custom power plan (or power mode) GUID to each mode. It can be either "real" power plan that can be switched or "overlay" power plan like the ones g-helper sets by default.
|
||||
You can manually assign a custom power plan GUID to each mode.
|
||||
|
||||
Format is following : ``"scheme_<mode>" : "GUID" ``
|
||||
Where ``mode = 0 (balanced), 1 (turbo), 2 (silent)``
|
||||
|
||||
Default behavior is :
|
||||
Example (for default windows "balanced" power plan):
|
||||
```
|
||||
"scheme_0": "00000000-0000-0000-0000-000000000000",
|
||||
"scheme_1": "ded574b5-45a0-4f42-8737-46345c09c238",
|
||||
"scheme_2": "961cc777-2547-4f9d-8174-7d86181b8a7a",
|
||||
"scheme_0": "381b4222-f694-41f0-9685-ff5bb260df2e",
|
||||
"scheme_1": "381b4222-f694-41f0-9685-ff5bb260df2e",
|
||||
"scheme_2": "381b4222-f694-41f0-9685-ff5bb260df2e",
|
||||
```
|
||||
|
||||
### Disable OSD
|
||||
|
||||
Reference in New Issue
Block a user