mirror of
https://github.com/jkocon/g-helper.git
synced 2026-02-23 13:00:52 +01:00
Compare commits
35 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f3723e9d6f | ||
|
|
d47990c056 | ||
|
|
c2a68d3022 | ||
|
|
26e26b9701 | ||
|
|
a315f27a4f | ||
|
|
26642a0020 | ||
|
|
6f1236b16c | ||
|
|
f07c481b3b | ||
|
|
c30fcd6ba7 | ||
|
|
53bb4b8760 | ||
|
|
34ec26dba0 | ||
|
|
b6c7da53c1 | ||
|
|
344a0269ef | ||
|
|
5157357c8b | ||
|
|
ad622f3924 | ||
|
|
2799936909 | ||
|
|
134ca5d680 | ||
|
|
d076765d5c | ||
|
|
9514caef94 | ||
|
|
64b5547126 | ||
|
|
d133abba1c | ||
|
|
bf4eae6081 | ||
|
|
8ff9b07a60 | ||
|
|
1011469628 | ||
|
|
22434ff86a | ||
|
|
7f0c3143f4 | ||
|
|
4216c2d73d | ||
|
|
34161eee7c | ||
|
|
6129f79b68 | ||
|
|
01fc5a3265 | ||
|
|
fd5c7cd8e4 | ||
|
|
ced4eac341 | ||
|
|
51c7738f15 | ||
|
|
b62fe46759 | ||
|
|
51c099163e |
13
.github/FUNDING.yml
vendored
13
.github/FUNDING.yml
vendored
@@ -1,13 +0,0 @@
|
||||
# These are supported funding model platforms
|
||||
|
||||
github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
|
||||
patreon: # Replace with a single Patreon username
|
||||
open_collective: # Replace with a single Open Collective username
|
||||
ko_fi: # Replace with a single Ko-fi username
|
||||
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
|
||||
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
|
||||
liberapay: # Replace with a single Liberapay username
|
||||
issuehunt: # Replace with a single IssueHunt username
|
||||
otechie: # Replace with a single Otechie username
|
||||
lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., cloud-foundry
|
||||
custom: https://www.paypal.com/donate/?hosted_button_id=4HMSHS4EBQWTA
|
||||
@@ -14,6 +14,7 @@ namespace GHelper.AnimeMatrix
|
||||
SettingsForm settings;
|
||||
|
||||
System.Timers.Timer matrixTimer = default!;
|
||||
System.Timers.Timer slashTimer = default!;
|
||||
|
||||
public AnimeMatrixDevice? deviceMatrix;
|
||||
public SlashDevice? deviceSlash;
|
||||
@@ -45,6 +46,7 @@ namespace GHelper.AnimeMatrix
|
||||
|
||||
matrixTimer = new System.Timers.Timer(100);
|
||||
matrixTimer.Elapsed += MatrixTimer_Elapsed;
|
||||
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
@@ -101,7 +103,7 @@ namespace GHelper.AnimeMatrix
|
||||
|
||||
deviceSlash.SetEnabled(true);
|
||||
deviceSlash.Init();
|
||||
|
||||
|
||||
switch ((SlashMode)running)
|
||||
{
|
||||
case SlashMode.Static:
|
||||
@@ -114,12 +116,18 @@ namespace GHelper.AnimeMatrix
|
||||
deviceSlash.SetStatic(brightness);
|
||||
}
|
||||
break;
|
||||
case SlashMode.BatteryLevel:
|
||||
// call tick to immediately update the pattern
|
||||
SlashTimer_start();
|
||||
SlashTimer_tick();
|
||||
break;
|
||||
default:
|
||||
deviceSlash.SetMode((SlashMode)running);
|
||||
deviceSlash.SetOptions(true, brightness, inteval);
|
||||
deviceSlash.Save();
|
||||
break;
|
||||
}
|
||||
// kill the timer if we are not displaying battery pattern
|
||||
|
||||
deviceSlash.SetSleepActive(true);
|
||||
}
|
||||
@@ -237,7 +245,6 @@ namespace GHelper.AnimeMatrix
|
||||
matrixTimer.Stop();
|
||||
}
|
||||
|
||||
|
||||
private void MatrixTimer_Elapsed(object? sender, ElapsedEventArgs e)
|
||||
{
|
||||
|
||||
@@ -255,13 +262,58 @@ namespace GHelper.AnimeMatrix
|
||||
|
||||
}
|
||||
|
||||
|
||||
public void SetMatrixClock()
|
||||
{
|
||||
deviceMatrix.SetBuiltInAnimation(false);
|
||||
StartMatrixTimer(1000);
|
||||
Logger.WriteLine("Matrix Clock");
|
||||
}
|
||||
|
||||
|
||||
private void SlashTimer_start(int interval = 60000)
|
||||
{
|
||||
// 100% to 0% in 1hr = 1% every 36 seconds
|
||||
// 1 bracket every 14.2857 * 36s = 514s ~ 8m 30s
|
||||
// only ~5 actually distinguishable levels, so refresh every <= 514/5 ~ 100s
|
||||
// default is 60s
|
||||
|
||||
// create the timer if first call
|
||||
// this way, the timer only spawns if user tries to use battery pattern
|
||||
if(slashTimer == default(System.Timers.Timer))
|
||||
{
|
||||
slashTimer = new System.Timers.Timer(interval);
|
||||
slashTimer.Elapsed += SlashTimer_elapsed;
|
||||
slashTimer.AutoReset = true;
|
||||
}
|
||||
// only write if interval changed
|
||||
if(slashTimer.Interval != interval)
|
||||
{
|
||||
slashTimer.Interval = interval;
|
||||
}
|
||||
|
||||
slashTimer.Start();
|
||||
}
|
||||
|
||||
private void SlashTimer_elapsed(object? sender, ElapsedEventArgs e)
|
||||
{
|
||||
SlashTimer_tick();
|
||||
}
|
||||
|
||||
private void SlashTimer_tick()
|
||||
{
|
||||
if (deviceSlash is null) return;
|
||||
|
||||
//kill timer if called but not in battery pattern mode
|
||||
if((SlashMode)AppConfig.Get("matrix_running", 0) != SlashMode.BatteryLevel)
|
||||
{
|
||||
slashTimer.Stop();
|
||||
slashTimer.Dispose();
|
||||
return;
|
||||
}
|
||||
|
||||
deviceSlash.SetBatteryPattern(AppConfig.Get("matrix_brightness", 0));
|
||||
}
|
||||
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
@@ -397,7 +449,6 @@ namespace GHelper.AnimeMatrix
|
||||
deviceMatrix.Present();
|
||||
}
|
||||
|
||||
|
||||
public void OpenMatrixPicture()
|
||||
{
|
||||
string fileName = null;
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
using GHelper.AnimeMatrix.Communication;
|
||||
using System.Management;
|
||||
using System.Text;
|
||||
using System.Timers;
|
||||
|
||||
namespace GHelper.AnimeMatrix
|
||||
{
|
||||
@@ -20,7 +22,8 @@ namespace GHelper.AnimeMatrix
|
||||
GameOver,
|
||||
Start,
|
||||
Buzzer,
|
||||
Static
|
||||
Static,
|
||||
BatteryLevel,
|
||||
}
|
||||
|
||||
internal class SlashPacket : Packet
|
||||
@@ -54,7 +57,9 @@ namespace GHelper.AnimeMatrix
|
||||
{ SlashMode.GameOver, "Game Over"},
|
||||
{ SlashMode.Start, "Start"},
|
||||
{ SlashMode.Buzzer, "Buzzer"},
|
||||
|
||||
{ SlashMode.Static, "Static"},
|
||||
{ SlashMode.BatteryLevel, "Battery Level"}
|
||||
};
|
||||
|
||||
private static Dictionary<SlashMode, byte> modeCodes = new Dictionary<SlashMode, byte>
|
||||
@@ -127,7 +132,50 @@ namespace GHelper.AnimeMatrix
|
||||
public void SetStatic(int brightness = 0)
|
||||
{
|
||||
SetCustom(Enumerable.Repeat((byte)(brightness * 85.333), 7).ToArray());
|
||||
}
|
||||
|
||||
public static double GetBatteryChargePercentage()
|
||||
{
|
||||
double batteryCharge = 0;
|
||||
try
|
||||
{
|
||||
ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_Battery");
|
||||
foreach (ManagementObject battery in searcher.Get())
|
||||
{
|
||||
batteryCharge = Convert.ToDouble(battery["EstimatedChargeRemaining"]);
|
||||
break; // Assuming only one battery
|
||||
}
|
||||
}
|
||||
catch (ManagementException e)
|
||||
{
|
||||
Console.WriteLine("An error occurred while querying for WMI data: " + e.Message);
|
||||
}
|
||||
return batteryCharge;
|
||||
}
|
||||
|
||||
private byte[] GetBatteryPattern(int brightness, double percentage)
|
||||
{
|
||||
// because 7 segments, within each led segment represents a percentage bracket of (100/7 = 14.2857%)
|
||||
// set brightness to reflect battery's percentage within that range
|
||||
|
||||
int bracket = (int)Math.Floor(percentage / 14.2857);
|
||||
if(bracket >= 7) return Enumerable.Repeat((byte)(brightness * 85.333), 7).ToArray();
|
||||
|
||||
byte[] batteryPattern = Enumerable.Repeat((byte)(0x00), 7).ToArray();
|
||||
for (int i = 6; i > 6-bracket; i--)
|
||||
{
|
||||
batteryPattern[i] = (byte)(brightness * 85.333);
|
||||
}
|
||||
|
||||
//set the "selected" bracket to the percentage of that bracket filled from 0 to 255 as a hex
|
||||
batteryPattern[6-bracket] = (byte)(((percentage % 14.2857) * brightness * 85.333) / 14.2857);
|
||||
|
||||
return batteryPattern;
|
||||
}
|
||||
|
||||
public void SetBatteryPattern(int brightness)
|
||||
{
|
||||
SetCustom(GetBatteryPattern(brightness, 100*(GetBatteryChargePercentage()/AppConfig.Get("charge_limit",100))));
|
||||
}
|
||||
|
||||
public void SetCustom(byte[] data)
|
||||
|
||||
@@ -109,7 +109,8 @@ public static class AppConfig
|
||||
break;
|
||||
}
|
||||
}
|
||||
} catch (Exception ex)
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Logger.WriteLine(ex.Message);
|
||||
}
|
||||
@@ -337,7 +338,7 @@ public static class AppConfig
|
||||
|
||||
public static bool IsAlly()
|
||||
{
|
||||
return ContainsModel("RC71");
|
||||
return ContainsModel("RC71") || ContainsModel("RC72");
|
||||
}
|
||||
|
||||
public static bool NoMKeys()
|
||||
@@ -625,6 +626,21 @@ public static class AppConfig
|
||||
return IsAlly() || Is("stop_ac");
|
||||
}
|
||||
|
||||
public static bool IsChargeLimit80()
|
||||
{
|
||||
return ContainsModel("GA403UI");
|
||||
}
|
||||
|
||||
public static bool IsChargeLimit6080()
|
||||
{
|
||||
return ContainsModel("GA403UU") || ContainsModel("GA403UV") || ContainsModel("GU605") || ContainsModel("GA503R") || (IsTUF() && !(ContainsModel("FX507Z") || ContainsModel("FA617")));
|
||||
|
||||
}
|
||||
|
||||
// 2024 Models support Dynamic Lighting
|
||||
public static bool IsDynamicLighting()
|
||||
{
|
||||
return IsSlash() || ContainsModel("JIR") || ContainsModel("JZR") || ContainsModel("JVR") || ContainsModel("JYR") || ContainsModel("FA607P") || ContainsModel("FX607J") || ContainsModel("FA507U");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
using GHelper.Helpers;
|
||||
using System.Diagnostics;
|
||||
using System.Diagnostics;
|
||||
|
||||
namespace GHelper.Battery
|
||||
{
|
||||
@@ -37,6 +36,17 @@ namespace GHelper.Battery
|
||||
if (limit < 0) limit = AppConfig.Get("charge_limit");
|
||||
if (limit < 40 || limit > 100) return;
|
||||
|
||||
if (AppConfig.IsChargeLimit80())
|
||||
{
|
||||
limit = (limit <= 80) ? 80 : 100;
|
||||
}
|
||||
|
||||
if (AppConfig.IsChargeLimit6080())
|
||||
{
|
||||
if (limit > 80) limit = 100;
|
||||
else if (limit < 60) limit = 60;
|
||||
}
|
||||
|
||||
Program.acpi.DeviceSet(AsusACPI.BatteryLimit, limit, "BatteryLimit");
|
||||
|
||||
AppConfig.Set("charge_limit", limit);
|
||||
|
||||
220
app/Fans.Designer.cs
generated
220
app/Fans.Designer.cs
generated
@@ -82,6 +82,10 @@ namespace GHelper
|
||||
labelTemp = new Label();
|
||||
labelLeftTemp = new Label();
|
||||
trackTemp = new TrackBar();
|
||||
panelSkin = new Panel();
|
||||
labelSkin = new Label();
|
||||
labelSkinTitle = new Label();
|
||||
trackSkin = new TrackBar();
|
||||
panelTitleTemp = new Panel();
|
||||
pictureTemp = new PictureBox();
|
||||
labelTempLimit = new Label();
|
||||
@@ -119,10 +123,6 @@ namespace GHelper
|
||||
picturePowerMode = new PictureBox();
|
||||
labelPowerModeTitle = new Label();
|
||||
panelGPU = new Panel();
|
||||
panelGPUPower = new Panel();
|
||||
labelGPUPower = new Label();
|
||||
labelGPUPowerTitle = new Label();
|
||||
trackGPUPower = new TrackBar();
|
||||
panelGPUTemp = new Panel();
|
||||
labelGPUTemp = new Label();
|
||||
labelGPUTempTitle = new Label();
|
||||
@@ -131,6 +131,10 @@ namespace GHelper
|
||||
labelGPUBoost = new Label();
|
||||
labelGPUBoostTitle = new Label();
|
||||
trackGPUBoost = new TrackBar();
|
||||
panelGPUPower = new Panel();
|
||||
labelGPUPower = new Label();
|
||||
labelGPUPowerTitle = new Label();
|
||||
trackGPUPower = new TrackBar();
|
||||
panelGPUMemory = new Panel();
|
||||
labelGPUMemory = new Label();
|
||||
labelGPUMemoryTitle = new Label();
|
||||
@@ -172,6 +176,8 @@ namespace GHelper
|
||||
((System.ComponentModel.ISupportInitialize)pictureUV).BeginInit();
|
||||
panelTemperature.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)trackTemp).BeginInit();
|
||||
panelSkin.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)trackSkin).BeginInit();
|
||||
panelTitleTemp.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)pictureTemp).BeginInit();
|
||||
panelDownload.SuspendLayout();
|
||||
@@ -194,12 +200,12 @@ namespace GHelper
|
||||
panelPowerModeTItle.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)picturePowerMode).BeginInit();
|
||||
panelGPU.SuspendLayout();
|
||||
panelGPUPower.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)trackGPUPower).BeginInit();
|
||||
panelGPUTemp.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)trackGPUTemp).BeginInit();
|
||||
panelGPUBoost.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)trackGPUBoost).BeginInit();
|
||||
panelGPUPower.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)trackGPUPower).BeginInit();
|
||||
panelGPUMemory.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)trackGPUMemory).BeginInit();
|
||||
panelGPUCore.SuspendLayout();
|
||||
@@ -223,11 +229,10 @@ namespace GHelper
|
||||
panelFans.Dock = DockStyle.Fill;
|
||||
panelFans.Location = new Point(530, 0);
|
||||
panelFans.Margin = new Padding(0);
|
||||
//panelFans.MaximumSize = new Size(816, 0);
|
||||
panelFans.MinimumSize = new Size(816, 0);
|
||||
panelFans.Name = "panelFans";
|
||||
panelFans.Padding = new Padding(0, 0, 10, 0);
|
||||
panelFans.Size = new Size(816, 2119);
|
||||
panelFans.Size = new Size(820, 2119);
|
||||
panelFans.TabIndex = 12;
|
||||
//
|
||||
// labelTip
|
||||
@@ -261,7 +266,7 @@ namespace GHelper
|
||||
tableFanCharts.RowStyles.Add(new RowStyle(SizeType.Percent, 25F));
|
||||
tableFanCharts.RowStyles.Add(new RowStyle(SizeType.Percent, 25F));
|
||||
tableFanCharts.RowStyles.Add(new RowStyle(SizeType.Percent, 25F));
|
||||
tableFanCharts.Size = new Size(806, 1937);
|
||||
tableFanCharts.Size = new Size(810, 1937);
|
||||
tableFanCharts.TabIndex = 36;
|
||||
//
|
||||
// chartGPU
|
||||
@@ -272,7 +277,7 @@ namespace GHelper
|
||||
chartGPU.Location = new Point(12, 493);
|
||||
chartGPU.Margin = new Padding(2, 10, 2, 10);
|
||||
chartGPU.Name = "chartGPU";
|
||||
chartGPU.Size = new Size(782, 463);
|
||||
chartGPU.Size = new Size(786, 463);
|
||||
chartGPU.TabIndex = 17;
|
||||
chartGPU.Text = "chartGPU";
|
||||
title1.Name = "Title1";
|
||||
@@ -286,7 +291,7 @@ namespace GHelper
|
||||
chartCPU.Location = new Point(12, 10);
|
||||
chartCPU.Margin = new Padding(2, 10, 2, 10);
|
||||
chartCPU.Name = "chartCPU";
|
||||
chartCPU.Size = new Size(782, 463);
|
||||
chartCPU.Size = new Size(786, 463);
|
||||
chartCPU.TabIndex = 14;
|
||||
chartCPU.Text = "chartCPU";
|
||||
title2.Name = "Title1";
|
||||
@@ -300,7 +305,7 @@ namespace GHelper
|
||||
chartXGM.Location = new Point(12, 1459);
|
||||
chartXGM.Margin = new Padding(2, 10, 2, 10);
|
||||
chartXGM.Name = "chartXGM";
|
||||
chartXGM.Size = new Size(782, 463);
|
||||
chartXGM.Size = new Size(786, 463);
|
||||
chartXGM.TabIndex = 14;
|
||||
chartXGM.Text = "chartXGM";
|
||||
title3.Name = "Title4";
|
||||
@@ -315,7 +320,7 @@ namespace GHelper
|
||||
chartMid.Location = new Point(12, 976);
|
||||
chartMid.Margin = new Padding(2, 10, 2, 10);
|
||||
chartMid.Name = "chartMid";
|
||||
chartMid.Size = new Size(782, 463);
|
||||
chartMid.Size = new Size(786, 463);
|
||||
chartMid.TabIndex = 14;
|
||||
chartMid.Text = "chartMid";
|
||||
title4.Name = "Title3";
|
||||
@@ -334,7 +339,7 @@ namespace GHelper
|
||||
panelTitleFans.Location = new Point(0, 0);
|
||||
panelTitleFans.Margin = new Padding(4);
|
||||
panelTitleFans.Name = "panelTitleFans";
|
||||
panelTitleFans.Size = new Size(806, 66);
|
||||
panelTitleFans.Size = new Size(810, 66);
|
||||
panelTitleFans.TabIndex = 42;
|
||||
//
|
||||
// buttonRename
|
||||
@@ -346,7 +351,7 @@ namespace GHelper
|
||||
buttonRename.BorderRadius = 2;
|
||||
buttonRename.FlatStyle = FlatStyle.Flat;
|
||||
buttonRename.Image = Properties.Resources.icons8_edit_32;
|
||||
buttonRename.Location = new Point(376, 10);
|
||||
buttonRename.Location = new Point(380, 10);
|
||||
buttonRename.Margin = new Padding(4, 2, 4, 2);
|
||||
buttonRename.Name = "buttonRename";
|
||||
buttonRename.Secondary = true;
|
||||
@@ -363,7 +368,7 @@ namespace GHelper
|
||||
buttonRemove.BorderRadius = 2;
|
||||
buttonRemove.FlatStyle = FlatStyle.Flat;
|
||||
buttonRemove.Image = Properties.Resources.icons8_remove_64;
|
||||
buttonRemove.Location = new Point(322, 10);
|
||||
buttonRemove.Location = new Point(326, 10);
|
||||
buttonRemove.Margin = new Padding(4, 2, 4, 2);
|
||||
buttonRemove.Name = "buttonRemove";
|
||||
buttonRemove.Secondary = true;
|
||||
@@ -380,7 +385,7 @@ namespace GHelper
|
||||
buttonAdd.BorderRadius = 2;
|
||||
buttonAdd.FlatStyle = FlatStyle.Flat;
|
||||
buttonAdd.Image = Properties.Resources.icons8_add_64;
|
||||
buttonAdd.Location = new Point(744, 10);
|
||||
buttonAdd.Location = new Point(748, 10);
|
||||
buttonAdd.Margin = new Padding(4, 2, 4, 2);
|
||||
buttonAdd.Name = "buttonAdd";
|
||||
buttonAdd.Secondary = true;
|
||||
@@ -395,7 +400,7 @@ namespace GHelper
|
||||
comboModes.ButtonColor = Color.FromArgb(255, 255, 255);
|
||||
comboModes.FlatStyle = FlatStyle.Flat;
|
||||
comboModes.FormattingEnabled = true;
|
||||
comboModes.Location = new Point(436, 14);
|
||||
comboModes.Location = new Point(440, 14);
|
||||
comboModes.Margin = new Padding(0);
|
||||
comboModes.Name = "comboModes";
|
||||
comboModes.Size = new Size(302, 40);
|
||||
@@ -434,7 +439,7 @@ namespace GHelper
|
||||
panelApplyFans.Location = new Point(0, 2003);
|
||||
panelApplyFans.Margin = new Padding(4);
|
||||
panelApplyFans.Name = "panelApplyFans";
|
||||
panelApplyFans.Size = new Size(806, 116);
|
||||
panelApplyFans.Size = new Size(810, 116);
|
||||
panelApplyFans.TabIndex = 43;
|
||||
//
|
||||
// buttonCalibrate
|
||||
@@ -470,7 +475,7 @@ namespace GHelper
|
||||
checkApplyFans.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;
|
||||
checkApplyFans.AutoSize = true;
|
||||
checkApplyFans.BackColor = SystemColors.ControlLight;
|
||||
checkApplyFans.Location = new Point(450, 42);
|
||||
checkApplyFans.Location = new Point(454, 42);
|
||||
checkApplyFans.Margin = new Padding(0);
|
||||
checkApplyFans.Name = "checkApplyFans";
|
||||
checkApplyFans.Padding = new Padding(16, 6, 16, 6);
|
||||
@@ -535,13 +540,14 @@ namespace GHelper
|
||||
panelAdvanced.Controls.Add(panelUViGPU);
|
||||
panelAdvanced.Controls.Add(panelUV);
|
||||
panelAdvanced.Controls.Add(panelTitleAdvanced);
|
||||
panelAdvanced.Controls.Add(panelSkin);
|
||||
panelAdvanced.Controls.Add(panelTemperature);
|
||||
panelAdvanced.Controls.Add(panelTitleTemp);
|
||||
panelAdvanced.Controls.Add(panelDownload);
|
||||
panelAdvanced.Dock = DockStyle.Top;
|
||||
panelAdvanced.Location = new Point(10, 1768);
|
||||
panelAdvanced.Name = "panelAdvanced";
|
||||
panelAdvanced.Size = new Size(520, 992);
|
||||
panelAdvanced.Size = new Size(520, 1116);
|
||||
panelAdvanced.TabIndex = 14;
|
||||
panelAdvanced.Visible = false;
|
||||
//
|
||||
@@ -550,7 +556,7 @@ namespace GHelper
|
||||
panelAdvancedAlways.AutoSize = true;
|
||||
panelAdvancedAlways.Controls.Add(checkApplyUV);
|
||||
panelAdvancedAlways.Dock = DockStyle.Top;
|
||||
panelAdvancedAlways.Location = new Point(0, 931);
|
||||
panelAdvancedAlways.Location = new Point(0, 1055);
|
||||
panelAdvancedAlways.Name = "panelAdvancedAlways";
|
||||
panelAdvancedAlways.Padding = new Padding(16, 0, 16, 15);
|
||||
panelAdvancedAlways.Size = new Size(520, 61);
|
||||
@@ -576,7 +582,7 @@ namespace GHelper
|
||||
panelAdvancedApply.AutoSize = true;
|
||||
panelAdvancedApply.Controls.Add(buttonApplyAdvanced);
|
||||
panelAdvancedApply.Dock = DockStyle.Top;
|
||||
panelAdvancedApply.Location = new Point(0, 851);
|
||||
panelAdvancedApply.Location = new Point(0, 975);
|
||||
panelAdvancedApply.Name = "panelAdvancedApply";
|
||||
panelAdvancedApply.Padding = new Padding(15);
|
||||
panelAdvancedApply.Size = new Size(520, 80);
|
||||
@@ -605,7 +611,7 @@ namespace GHelper
|
||||
labelRisky.BackColor = Color.IndianRed;
|
||||
labelRisky.Dock = DockStyle.Top;
|
||||
labelRisky.ForeColor = SystemColors.ControlLightLight;
|
||||
labelRisky.Location = new Point(0, 608);
|
||||
labelRisky.Location = new Point(0, 732);
|
||||
labelRisky.Margin = new Padding(0);
|
||||
labelRisky.Name = "labelRisky";
|
||||
labelRisky.Padding = new Padding(10, 10, 10, 5);
|
||||
@@ -621,7 +627,7 @@ namespace GHelper
|
||||
panelUViGPU.Controls.Add(labelLeftUViGPU);
|
||||
panelUViGPU.Controls.Add(trackUViGPU);
|
||||
panelUViGPU.Dock = DockStyle.Top;
|
||||
panelUViGPU.Location = new Point(0, 484);
|
||||
panelUViGPU.Location = new Point(0, 608);
|
||||
panelUViGPU.Margin = new Padding(4);
|
||||
panelUViGPU.MaximumSize = new Size(0, 124);
|
||||
panelUViGPU.Name = "panelUViGPU";
|
||||
@@ -669,7 +675,7 @@ namespace GHelper
|
||||
panelUV.Controls.Add(labelLeftUV);
|
||||
panelUV.Controls.Add(trackUV);
|
||||
panelUV.Dock = DockStyle.Top;
|
||||
panelUV.Location = new Point(0, 360);
|
||||
panelUV.Location = new Point(0, 484);
|
||||
panelUV.Margin = new Padding(4);
|
||||
panelUV.MaximumSize = new Size(0, 124);
|
||||
panelUV.Name = "panelUV";
|
||||
@@ -714,7 +720,7 @@ namespace GHelper
|
||||
panelTitleAdvanced.Controls.Add(pictureUV);
|
||||
panelTitleAdvanced.Controls.Add(labelTitleUV);
|
||||
panelTitleAdvanced.Dock = DockStyle.Top;
|
||||
panelTitleAdvanced.Location = new Point(0, 294);
|
||||
panelTitleAdvanced.Location = new Point(0, 418);
|
||||
panelTitleAdvanced.Name = "panelTitleAdvanced";
|
||||
panelTitleAdvanced.Size = new Size(520, 66);
|
||||
panelTitleAdvanced.TabIndex = 48;
|
||||
@@ -790,6 +796,54 @@ namespace GHelper
|
||||
trackTemp.TickFrequency = 5;
|
||||
trackTemp.TickStyle = TickStyle.TopLeft;
|
||||
//
|
||||
// panelSkin
|
||||
//
|
||||
panelSkin.AutoSize = true;
|
||||
panelSkin.AutoSizeMode = AutoSizeMode.GrowAndShrink;
|
||||
panelSkin.Controls.Add(labelSkin);
|
||||
panelSkin.Controls.Add(labelSkinTitle);
|
||||
panelSkin.Controls.Add(trackSkin);
|
||||
panelSkin.Dock = DockStyle.Top;
|
||||
panelSkin.Location = new Point(0, 294);
|
||||
panelSkin.Margin = new Padding(4);
|
||||
panelSkin.MaximumSize = new Size(0, 124);
|
||||
panelSkin.Name = "panelSkin";
|
||||
panelSkin.Size = new Size(520, 124);
|
||||
panelSkin.TabIndex = 53;
|
||||
//
|
||||
// labelSkin
|
||||
//
|
||||
labelSkin.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
|
||||
labelSkin.Location = new Point(347, 13);
|
||||
labelSkin.Margin = new Padding(4, 0, 4, 0);
|
||||
labelSkin.Name = "labelSkin";
|
||||
labelSkin.Size = new Size(148, 32);
|
||||
labelSkin.TabIndex = 13;
|
||||
labelSkin.Text = "T";
|
||||
labelSkin.TextAlign = ContentAlignment.TopRight;
|
||||
//
|
||||
// labelSkinTitle
|
||||
//
|
||||
labelSkinTitle.AutoSize = true;
|
||||
labelSkinTitle.Location = new Point(10, 10);
|
||||
labelSkinTitle.Margin = new Padding(4, 0, 4, 0);
|
||||
labelSkinTitle.Name = "labelSkinTitle";
|
||||
labelSkinTitle.Size = new Size(235, 32);
|
||||
labelSkinTitle.TabIndex = 12;
|
||||
labelSkinTitle.Text = "APU Skin Temp Limit";
|
||||
//
|
||||
// trackSkin
|
||||
//
|
||||
trackSkin.Location = new Point(6, 48);
|
||||
trackSkin.Margin = new Padding(4, 2, 4, 2);
|
||||
trackSkin.Maximum = 0;
|
||||
trackSkin.Minimum = -40;
|
||||
trackSkin.Name = "trackSkin";
|
||||
trackSkin.Size = new Size(508, 90);
|
||||
trackSkin.TabIndex = 11;
|
||||
trackSkin.TickFrequency = 5;
|
||||
trackSkin.TickStyle = TickStyle.TopLeft;
|
||||
//
|
||||
// panelTitleTemp
|
||||
//
|
||||
panelTitleTemp.Controls.Add(pictureTemp);
|
||||
@@ -1257,55 +1311,6 @@ namespace GHelper
|
||||
panelGPU.TabIndex = 44;
|
||||
panelGPU.Visible = false;
|
||||
//
|
||||
// panelGPUPower
|
||||
//
|
||||
panelGPUPower.AutoSize = true;
|
||||
panelGPUPower.AutoSizeMode = AutoSizeMode.GrowAndShrink;
|
||||
panelGPUPower.Controls.Add(labelGPUPower);
|
||||
panelGPUPower.Controls.Add(labelGPUPowerTitle);
|
||||
panelGPUPower.Controls.Add(trackGPUPower);
|
||||
panelGPUPower.Dock = DockStyle.Top;
|
||||
panelGPUPower.Location = new Point(0, 432);
|
||||
panelGPUPower.Margin = new Padding(4);
|
||||
panelGPUPower.MaximumSize = new Size(0, 124);
|
||||
panelGPUPower.Name = "panelGPUPower";
|
||||
panelGPUPower.Size = new Size(520, 124);
|
||||
panelGPUPower.TabIndex = 49;
|
||||
//
|
||||
// labelGPUPower
|
||||
//
|
||||
labelGPUPower.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
|
||||
labelGPUPower.Location = new Point(374, 14);
|
||||
labelGPUPower.Margin = new Padding(4, 0, 4, 0);
|
||||
labelGPUPower.Name = "labelGPUPower";
|
||||
labelGPUPower.Size = new Size(124, 32);
|
||||
labelGPUPower.TabIndex = 44;
|
||||
labelGPUPower.Text = "105W";
|
||||
labelGPUPower.TextAlign = ContentAlignment.TopRight;
|
||||
//
|
||||
// labelGPUPowerTitle
|
||||
//
|
||||
labelGPUPowerTitle.AutoSize = true;
|
||||
labelGPUPowerTitle.Location = new Point(10, 14);
|
||||
labelGPUPowerTitle.Margin = new Padding(4, 0, 4, 0);
|
||||
labelGPUPowerTitle.Name = "labelGPUPowerTitle";
|
||||
labelGPUPowerTitle.Size = new Size(130, 32);
|
||||
labelGPUPowerTitle.TabIndex = 43;
|
||||
labelGPUPowerTitle.Text = "GPU Power";
|
||||
//
|
||||
// trackGPUPower
|
||||
//
|
||||
trackGPUPower.Location = new Point(6, 48);
|
||||
trackGPUPower.Margin = new Padding(4, 2, 4, 2);
|
||||
trackGPUPower.Maximum = 25;
|
||||
trackGPUPower.Minimum = 5;
|
||||
trackGPUPower.Name = "trackGPUPower";
|
||||
trackGPUPower.Size = new Size(496, 90);
|
||||
trackGPUPower.TabIndex = 42;
|
||||
trackGPUPower.TickFrequency = 5;
|
||||
trackGPUPower.TickStyle = TickStyle.TopLeft;
|
||||
trackGPUPower.Value = 25;
|
||||
//
|
||||
// panelGPUTemp
|
||||
//
|
||||
panelGPUTemp.AutoSize = true;
|
||||
@@ -1404,6 +1409,55 @@ namespace GHelper
|
||||
trackGPUBoost.TickStyle = TickStyle.TopLeft;
|
||||
trackGPUBoost.Value = 25;
|
||||
//
|
||||
// panelGPUPower
|
||||
//
|
||||
panelGPUPower.AutoSize = true;
|
||||
panelGPUPower.AutoSizeMode = AutoSizeMode.GrowAndShrink;
|
||||
panelGPUPower.Controls.Add(labelGPUPower);
|
||||
panelGPUPower.Controls.Add(labelGPUPowerTitle);
|
||||
panelGPUPower.Controls.Add(trackGPUPower);
|
||||
panelGPUPower.Dock = DockStyle.Top;
|
||||
panelGPUPower.Location = new Point(0, 432);
|
||||
panelGPUPower.Margin = new Padding(4);
|
||||
panelGPUPower.MaximumSize = new Size(0, 124);
|
||||
panelGPUPower.Name = "panelGPUPower";
|
||||
panelGPUPower.Size = new Size(520, 124);
|
||||
panelGPUPower.TabIndex = 49;
|
||||
//
|
||||
// labelGPUPower
|
||||
//
|
||||
labelGPUPower.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
|
||||
labelGPUPower.Location = new Point(374, 14);
|
||||
labelGPUPower.Margin = new Padding(4, 0, 4, 0);
|
||||
labelGPUPower.Name = "labelGPUPower";
|
||||
labelGPUPower.Size = new Size(124, 32);
|
||||
labelGPUPower.TabIndex = 44;
|
||||
labelGPUPower.Text = "105W";
|
||||
labelGPUPower.TextAlign = ContentAlignment.TopRight;
|
||||
//
|
||||
// labelGPUPowerTitle
|
||||
//
|
||||
labelGPUPowerTitle.AutoSize = true;
|
||||
labelGPUPowerTitle.Location = new Point(10, 14);
|
||||
labelGPUPowerTitle.Margin = new Padding(4, 0, 4, 0);
|
||||
labelGPUPowerTitle.Name = "labelGPUPowerTitle";
|
||||
labelGPUPowerTitle.Size = new Size(130, 32);
|
||||
labelGPUPowerTitle.TabIndex = 43;
|
||||
labelGPUPowerTitle.Text = "GPU Power";
|
||||
//
|
||||
// trackGPUPower
|
||||
//
|
||||
trackGPUPower.Location = new Point(6, 48);
|
||||
trackGPUPower.Margin = new Padding(4, 2, 4, 2);
|
||||
trackGPUPower.Maximum = 25;
|
||||
trackGPUPower.Minimum = 5;
|
||||
trackGPUPower.Name = "trackGPUPower";
|
||||
trackGPUPower.Size = new Size(496, 90);
|
||||
trackGPUPower.TabIndex = 42;
|
||||
trackGPUPower.TickFrequency = 5;
|
||||
trackGPUPower.TickStyle = TickStyle.TopLeft;
|
||||
trackGPUPower.Value = 25;
|
||||
//
|
||||
// panelGPUMemory
|
||||
//
|
||||
panelGPUMemory.AutoSize = true;
|
||||
@@ -1685,7 +1739,6 @@ namespace GHelper
|
||||
Controls.Add(panelFans);
|
||||
Controls.Add(panelSliders);
|
||||
Margin = new Padding(4, 2, 4, 2);
|
||||
MaximizeBox = true;
|
||||
MinimizeBox = false;
|
||||
MinimumSize = new Size(26, 1100);
|
||||
Name = "Fans";
|
||||
@@ -1723,6 +1776,9 @@ namespace GHelper
|
||||
panelTemperature.ResumeLayout(false);
|
||||
panelTemperature.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)trackTemp).EndInit();
|
||||
panelSkin.ResumeLayout(false);
|
||||
panelSkin.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)trackSkin).EndInit();
|
||||
panelTitleTemp.ResumeLayout(false);
|
||||
panelTitleTemp.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)pictureTemp).EndInit();
|
||||
@@ -1756,15 +1812,15 @@ namespace GHelper
|
||||
((System.ComponentModel.ISupportInitialize)picturePowerMode).EndInit();
|
||||
panelGPU.ResumeLayout(false);
|
||||
panelGPU.PerformLayout();
|
||||
panelGPUPower.ResumeLayout(false);
|
||||
panelGPUPower.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)trackGPUPower).EndInit();
|
||||
panelGPUTemp.ResumeLayout(false);
|
||||
panelGPUTemp.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)trackGPUTemp).EndInit();
|
||||
panelGPUBoost.ResumeLayout(false);
|
||||
panelGPUBoost.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)trackGPUBoost).EndInit();
|
||||
panelGPUPower.ResumeLayout(false);
|
||||
panelGPUPower.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)trackGPUPower).EndInit();
|
||||
panelGPUMemory.ResumeLayout(false);
|
||||
panelGPUMemory.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)trackGPUMemory).EndInit();
|
||||
@@ -1896,5 +1952,9 @@ namespace GHelper
|
||||
private Label labelGPUPower;
|
||||
private Label labelGPUPowerTitle;
|
||||
private TrackBar trackGPUPower;
|
||||
private Panel panelSkin;
|
||||
private Label labelSkin;
|
||||
private Label labelSkinTitle;
|
||||
private TrackBar trackSkin;
|
||||
}
|
||||
}
|
||||
24
app/Fans.cs
24
app/Fans.cs
@@ -184,6 +184,9 @@ namespace GHelper
|
||||
trackTemp.Minimum = RyzenControl.MinTemp;
|
||||
trackTemp.Maximum = RyzenControl.MaxTemp;
|
||||
|
||||
trackSkin.Minimum = RyzenControl.MinSkin;
|
||||
trackSkin.Maximum = RyzenControl.MaxSkin;
|
||||
|
||||
comboPowerMode.DropDownStyle = ComboBoxStyle.DropDownList;
|
||||
comboPowerMode.DataSource = new BindingSource(PowerNative.powerModes, null);
|
||||
comboPowerMode.DisplayMember = "Value";
|
||||
@@ -211,6 +214,7 @@ namespace GHelper
|
||||
trackUV.Scroll += TrackUV_Scroll;
|
||||
trackUViGPU.Scroll += TrackUV_Scroll;
|
||||
trackTemp.Scroll += TrackUV_Scroll;
|
||||
trackSkin.Scroll += TrackUV_Scroll;
|
||||
|
||||
buttonApplyAdvanced.Click += ButtonApplyAdvanced_Click;
|
||||
|
||||
@@ -248,6 +252,7 @@ namespace GHelper
|
||||
panelUV.Visible = true;
|
||||
panelTitleAdvanced.Visible = true;
|
||||
panelTemperature.Visible = true;
|
||||
panelSkin.Visible = true;
|
||||
panelTitleTemp.Visible = true;
|
||||
|
||||
VisualiseAdvanced();
|
||||
@@ -381,11 +386,15 @@ namespace GHelper
|
||||
int temp = AppConfig.GetMode("cpu_temp");
|
||||
if (temp < RyzenControl.MinTemp || temp > RyzenControl.MaxTemp) temp = RyzenControl.MaxTemp;
|
||||
|
||||
int skin = AppConfig.GetMode("skin_temp");
|
||||
if (skin < RyzenControl.MinSkin || skin > RyzenControl.MaxSkin) skin = RyzenControl.MaxSkin;
|
||||
|
||||
checkApplyUV.Enabled = checkApplyUV.Checked = AppConfig.IsMode("auto_uv");
|
||||
|
||||
trackUV.Value = cpuUV;
|
||||
trackUViGPU.Value = igpuUV;
|
||||
trackTemp.Value = temp;
|
||||
trackSkin.Value = skin;
|
||||
|
||||
VisualiseAdvanced();
|
||||
|
||||
@@ -404,6 +413,7 @@ namespace GHelper
|
||||
panelUViGPU.Visible = false;
|
||||
panelTitleTemp.Visible = false;
|
||||
panelTemperature.Visible = false;
|
||||
panelSkin.Visible = false;
|
||||
panelAdvancedAlways.Visible = false;
|
||||
panelAdvancedApply.Visible = false;
|
||||
panelDownload.Visible = true;
|
||||
@@ -428,7 +438,9 @@ namespace GHelper
|
||||
|
||||
labelUV.Text = trackUV.Value.ToString();
|
||||
labelUViGPU.Text = trackUViGPU.Value.ToString();
|
||||
|
||||
labelTemp.Text = (trackTemp.Value < RyzenControl.MaxTemp) ? trackTemp.Value.ToString() + "°C" : "Default";
|
||||
labelSkin.Text = (trackSkin.Value < RyzenControl.MaxSkin) ? trackSkin.Value.ToString() + "°C" : "Default";
|
||||
}
|
||||
|
||||
private void AdvancedScroll()
|
||||
@@ -438,6 +450,7 @@ namespace GHelper
|
||||
|
||||
VisualiseAdvanced();
|
||||
|
||||
AppConfig.SetMode("skin_temp", trackSkin.Value);
|
||||
AppConfig.SetMode("cpu_temp", trackTemp.Value);
|
||||
AppConfig.SetMode("cpu_uv", trackUV.Value);
|
||||
AppConfig.SetMode("igpu_uv", trackUViGPU.Value);
|
||||
@@ -1140,9 +1153,11 @@ namespace GHelper
|
||||
trackUV.Value = RyzenControl.MaxCPUUV;
|
||||
trackUViGPU.Value = RyzenControl.MaxIGPUUV;
|
||||
trackTemp.Value = RyzenControl.MaxTemp;
|
||||
trackSkin.Value = RyzenControl.MaxSkin;
|
||||
|
||||
AdvancedScroll();
|
||||
AppConfig.SetMode("cpu_temp", -1);
|
||||
AppConfig.RemoveMode("cpu_temp");
|
||||
AppConfig.RemoveMode("skin_temp");
|
||||
|
||||
modeControl.ResetPerformanceMode();
|
||||
|
||||
@@ -1160,8 +1175,11 @@ namespace GHelper
|
||||
trackGPUBoost.Value = AsusACPI.MaxGPUBoost;
|
||||
trackGPUTemp.Value = AsusACPI.MaxGPUTemp;
|
||||
|
||||
AppConfig.SetMode("gpu_boost", trackGPUBoost.Value);
|
||||
AppConfig.SetMode("gpu_temp", trackGPUTemp.Value);
|
||||
//AppConfig.SetMode("gpu_boost", trackGPUBoost.Value);
|
||||
//AppConfig.SetMode("gpu_temp", trackGPUTemp.Value);
|
||||
|
||||
AppConfig.RemoveMode("gpu_boost");
|
||||
AppConfig.RemoveMode("gpu_temp");
|
||||
|
||||
AppConfig.RemoveMode("gpu_power");
|
||||
AppConfig.RemoveMode("gpu_clock_limit");
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<ProduceReferenceAssembly>False</ProduceReferenceAssembly>
|
||||
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
|
||||
<AssemblyVersion>0.173</AssemblyVersion>
|
||||
<AssemblyVersion>0.175</AssemblyVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||
|
||||
@@ -322,7 +322,6 @@ namespace GHelper.Gpu
|
||||
Program.acpi.DeviceSet(AsusACPI.GPUXG, 1, "GPU XGM");
|
||||
|
||||
InitXGM();
|
||||
|
||||
XGM.Light(AppConfig.Is("xmg_light"));
|
||||
|
||||
await Task.Delay(TimeSpan.FromSeconds(15));
|
||||
|
||||
24
app/Helpers/DynamicLightingHelper.cs
Normal file
24
app/Helpers/DynamicLightingHelper.cs
Normal file
@@ -0,0 +1,24 @@
|
||||
using Microsoft.Win32;
|
||||
|
||||
namespace GHelper.Helpers
|
||||
{
|
||||
public static class DynamicLightingHelper
|
||||
{
|
||||
|
||||
public static bool IsEnabled()
|
||||
{
|
||||
using var key = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Lighting");
|
||||
var registryValueObject = key?.GetValue("AmbientLightingEnabled");
|
||||
|
||||
if (registryValueObject == null) return true;
|
||||
return (int)registryValueObject > 0;
|
||||
}
|
||||
|
||||
public static void OpenSettings()
|
||||
{
|
||||
ProcessHelper.RunCMD("explorer","ms-settings:personalization-lighting");
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -73,6 +73,8 @@ namespace GHelper.Helpers
|
||||
protected override void PerformPaint(PaintEventArgs e)
|
||||
{
|
||||
Brush brush = new SolidBrush(Color.FromArgb(150, Color.Black));
|
||||
|
||||
e.Graphics.SmoothingMode = SmoothingMode.AntiAlias;
|
||||
e.Graphics.FillRoundedRectangle(brush, Bound, 10);
|
||||
|
||||
StringFormat format = new StringFormat();
|
||||
|
||||
@@ -31,6 +31,7 @@ namespace GHelper.Mode
|
||||
private void ReapplyTimer_Elapsed(object? sender, System.Timers.ElapsedEventArgs e)
|
||||
{
|
||||
SetCPUTemp(AppConfig.GetMode("cpu_temp"));
|
||||
SetSkinTemp(AppConfig.GetMode("skin_temp"));
|
||||
SetRyzenPower();
|
||||
}
|
||||
|
||||
@@ -406,9 +407,15 @@ namespace GHelper.Mode
|
||||
{
|
||||
var resultCPU = SendCommand.set_tctl_temp((uint)cpuTemp);
|
||||
if (init) Logger.WriteLine($"CPU Temp: {cpuTemp} {resultCPU}");
|
||||
}
|
||||
}
|
||||
|
||||
var restultAPU = SendCommand.set_apu_skin_temp_limit((uint)cpuTemp);
|
||||
if (init) Logger.WriteLine($"APU Temp: {cpuTemp} {restultAPU}");
|
||||
public void SetSkinTemp(int? skinTemp, bool init = false)
|
||||
{
|
||||
if (skinTemp >= RyzenControl.MinSkin && skinTemp < RyzenControl.MaxSkin)
|
||||
{
|
||||
var restultAPU = SendCommand.set_apu_skin_temp_limit((uint)skinTemp);
|
||||
if (init) Logger.WriteLine($"APU Skin Temp: {skinTemp} {restultAPU}");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -452,6 +459,7 @@ namespace GHelper.Mode
|
||||
SetUV(AppConfig.GetMode("cpu_uv", 0));
|
||||
SetUViGPU(AppConfig.GetMode("igpu_uv", 0));
|
||||
SetCPUTemp(AppConfig.GetMode("cpu_temp"), true);
|
||||
SetSkinTemp(AppConfig.GetMode("skin_temp"), true);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
||||
@@ -297,4 +297,166 @@
|
||||
return 3;
|
||||
}
|
||||
}
|
||||
|
||||
//P504
|
||||
public class GladiusIIOriginPink : GladiusIIOrigin
|
||||
{
|
||||
public GladiusIIOriginPink() : base(0x18CD, "mi_02")
|
||||
{
|
||||
|
||||
}
|
||||
public override string GetDisplayName()
|
||||
{
|
||||
return "Gladius II PNK LTD";
|
||||
}
|
||||
public override int ProfileCount()
|
||||
{
|
||||
return 3;
|
||||
}
|
||||
|
||||
public override LightingZone[] SupportedLightingZones()
|
||||
{
|
||||
return new LightingZone[] { LightingZone.Scrollwheel, LightingZone.Underglow };
|
||||
}
|
||||
|
||||
protected override byte[] GetUpdateLightingModePacket(LightingSetting lightingSetting, LightingZone zone)
|
||||
{
|
||||
/*
|
||||
* This mouse uses different speed values for rainbow mode compared to others.
|
||||
* 51 28 03 00 03 04 FF 00 00 00 00 [8C] 00 00 00 00
|
||||
* 51 28 03 00 03 04 FF 00 00 00 00 [64] 00 00 00 00
|
||||
* 51 28 03 00 03 04 FF 00 00 00 00 [3F] 00 00 00 00
|
||||
*/
|
||||
|
||||
byte speed = (byte)(SupportsAnimationSpeed(lightingSetting.LightingMode) ? lightingSetting.AnimationSpeed : 0x00);
|
||||
|
||||
if (lightingSetting.LightingMode == LightingMode.Rainbow)
|
||||
{
|
||||
speed = 0x64;
|
||||
|
||||
switch (lightingSetting.AnimationSpeed)
|
||||
{
|
||||
case AnimationSpeed.Slow:
|
||||
speed = 0x8C;
|
||||
break;
|
||||
case AnimationSpeed.Medium:
|
||||
speed = 0x64;
|
||||
break;
|
||||
case AnimationSpeed.Fast:
|
||||
speed = 0x3F;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
return new byte[] { reportId, 0x51, 0x28, (byte)zone, 0x00,
|
||||
IndexForLightingMode(lightingSetting.LightingMode),
|
||||
(byte)lightingSetting.Brightness,
|
||||
0x00, // this mouse has 2 colors per LED capability, but we do not suppor this yet, so we disable it
|
||||
lightingSetting.RGBColor.R, lightingSetting.RGBColor.G, lightingSetting.RGBColor.B,
|
||||
0x00, 0x00, 0x00, //this would be the second set of RGB Colors if we ever support this
|
||||
(byte)(SupportsAnimationDirection(lightingSetting.LightingMode) ? lightingSetting.AnimationDirection : 0x00),
|
||||
(byte)((lightingSetting.RandomColor && SupportsRandomColor(lightingSetting.LightingMode)) ? 0x01: 0x00),
|
||||
speed
|
||||
};
|
||||
}
|
||||
|
||||
protected LightingSetting? ParseLightingSetting(byte[] packet, LightingZone zone)
|
||||
{
|
||||
if (packet[1] != 0x12 || packet[2] != 0x03)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
//skip first block as it seems to be empty. Maybe only filled to certain configurations.
|
||||
int offset = 5 + 9 + (((int)zone) * 9);
|
||||
|
||||
LightingSetting setting = new LightingSetting();
|
||||
|
||||
setting.LightingMode = LightingModeForIndex(packet[offset + 0]);
|
||||
setting.Brightness = packet[offset + 1];
|
||||
//Offset 2 is a bool that says whether dual color RGB is in use. Unsupported for now by GHelper
|
||||
|
||||
setting.RGBColor = Color.FromArgb(packet[offset + 3], packet[offset + 4], packet[offset + 5]);
|
||||
|
||||
//Offset 7 - 9 are the second RGB colors, unuse as not supported yet
|
||||
|
||||
|
||||
return setting;
|
||||
}
|
||||
|
||||
public override void ReadLightingSetting()
|
||||
{
|
||||
if (!HasRGB())
|
||||
{
|
||||
return;
|
||||
}
|
||||
//Mouse sends all lighting zones in one response Direction, Random col, Speed
|
||||
//First block seems emtpy?
|
||||
//00 12 03 00 00 [00 00 00 00 00 00 00 00 00] [03 04 01 00 00 00 00 00 00] [03 04 01 00 00 00 00 00 00] [00 01 8c]
|
||||
//Length 9, offset 5
|
||||
//Direction
|
||||
byte[]? response = WriteForResponse(GetReadLightingModePacket(LightingZone.All));
|
||||
if (response is null) return;
|
||||
|
||||
LightingZone[] lz = SupportedLightingZones();
|
||||
for (int i = 0; i < lz.Length; ++i)
|
||||
{
|
||||
LightingSetting? ls = ParseLightingSetting(response, lz[i]);
|
||||
if (ls is null)
|
||||
{
|
||||
Logger.WriteLine(GetDisplayName() + ": Failed to read RGB Setting for Zone " + lz[i].ToString());
|
||||
continue;
|
||||
}
|
||||
ls.AnimationDirection = SupportsAnimationDirection(ls.LightingMode)
|
||||
? (AnimationDirection)response[32]
|
||||
: AnimationDirection.Clockwise;
|
||||
|
||||
ls.RandomColor = SupportsRandomColor(ls.LightingMode) && response[33] == 0x01;
|
||||
|
||||
//Rainbow uses different speed values for whatever reason
|
||||
if (response[12] == 0x03)
|
||||
{
|
||||
byte speed = response[34];
|
||||
|
||||
switch (speed)
|
||||
{
|
||||
case 0x3F:
|
||||
ls.AnimationSpeed = AnimationSpeed.Fast;
|
||||
break;
|
||||
|
||||
case 0x64:
|
||||
ls.AnimationSpeed = AnimationSpeed.Medium;
|
||||
break;
|
||||
|
||||
case 0x8C:
|
||||
ls.AnimationSpeed = AnimationSpeed.Slow;
|
||||
break;
|
||||
|
||||
default:
|
||||
ls.AnimationSpeed = AnimationSpeed.Medium;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
ls.AnimationSpeed = SupportsAnimationSpeed(ls.LightingMode)
|
||||
? (AnimationSpeed)response[34]
|
||||
: AnimationSpeed.Medium;
|
||||
|
||||
if (ls.AnimationSpeed != AnimationSpeed.Fast
|
||||
&& ls.AnimationSpeed != AnimationSpeed.Medium
|
||||
&& ls.AnimationSpeed != AnimationSpeed.Slow)
|
||||
{
|
||||
ls.AnimationSpeed = AnimationSpeed.Medium;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Logger.WriteLine(GetDisplayName() + ": Read RGB Setting for Zone " + lz[i].ToString() + ": " + ls.ToString());
|
||||
LightingSetting[i] = ls;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -99,6 +99,18 @@
|
||||
{
|
||||
return true;
|
||||
}
|
||||
// 3.00.06 - 4.00.01 or newer firmware
|
||||
protected override PollingRate ParsePollingRate(byte[] packet)
|
||||
{
|
||||
if (packet[1] == 0x12 && packet[2] == 0x04 && packet[3] == 0x00)
|
||||
{
|
||||
if ((int)packet[13] > 7)
|
||||
return (PollingRate)packet[13] - 96;
|
||||
return (PollingRate)packet[13];
|
||||
}
|
||||
|
||||
return PollingRate.PR125Hz;
|
||||
}
|
||||
}
|
||||
|
||||
public class KerisWirelssAimpointWired : KerisWirelssAimpoint
|
||||
|
||||
@@ -159,15 +159,31 @@
|
||||
}
|
||||
}
|
||||
|
||||
public class ROGKerisWirelessWiredC : ROGKerisWireless
|
||||
//P509
|
||||
public class ROGKeris : ROGKerisWireless
|
||||
{
|
||||
public ROGKerisWirelessWiredC() : base(0x195C, false)
|
||||
public ROGKeris() : base(0x195C, false)
|
||||
{
|
||||
}
|
||||
|
||||
public override string GetDisplayName()
|
||||
{
|
||||
return "ROG Keris (Wired)";
|
||||
return "ROG Keris";
|
||||
}
|
||||
|
||||
public override bool HasBattery()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool HasLowBatteryWarning()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
public override bool HasAutoPowerOff()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -188,10 +188,11 @@ namespace GHelper.Peripherals
|
||||
DetectMouse(new GladiusIIIAimpoint());
|
||||
DetectMouse(new GladiusIIIAimpointWired());
|
||||
DetectMouse(new GladiusIIOrigin());
|
||||
DetectMouse(new GladiusIIOriginPink());
|
||||
DetectMouse(new GladiusII());
|
||||
DetectMouse(new ROGKerisWireless());
|
||||
DetectMouse(new ROGKerisWirelessWired());
|
||||
DetectMouse(new ROGKerisWirelessWiredC());
|
||||
DetectMouse(new ROGKeris());
|
||||
DetectMouse(new ROGKerisWirelessEvaEdition());
|
||||
DetectMouse(new ROGKerisWirelessEvaEditionWired());
|
||||
DetectMouse(new TUFM4Wirelss());
|
||||
|
||||
@@ -624,7 +624,7 @@ Do you still want to continue?</value>
|
||||
<value>Optimized</value>
|
||||
</data>
|
||||
<data name="OptimizedGPUTooltip" xml:space="preserve">
|
||||
<value>Switch to Eco on battery and to Standard when plugged</value>
|
||||
<value>Switch to Eco on battery and to Standard when plugged in</value>
|
||||
</data>
|
||||
<data name="OptimizedUSBC" xml:space="preserve">
|
||||
<value>Keep GPU disabled on USB-C charger in Optimized mode</value>
|
||||
@@ -800,4 +800,4 @@ Do you still want to continue?</value>
|
||||
<data name="Zoom" xml:space="preserve">
|
||||
<value>Zoom</value>
|
||||
</data>
|
||||
</root>
|
||||
</root>
|
||||
|
||||
@@ -21,6 +21,8 @@ namespace Ryzen
|
||||
|
||||
public static int MinTemp => AppConfig.Get("min_temp", 75);
|
||||
public const int MaxTemp = 98;
|
||||
public static int MinSkin => 25;
|
||||
public const int MaxSkin = 46;
|
||||
|
||||
public static int FAMID { get; protected set; }
|
||||
|
||||
|
||||
75
app/Settings.Designer.cs
generated
75
app/Settings.Designer.cs
generated
@@ -68,6 +68,7 @@ namespace GHelper
|
||||
panelGPU = new Panel();
|
||||
labelTipGPU = new Label();
|
||||
tableAMD = new TableLayoutPanel();
|
||||
buttonAutoTDP = new RButton();
|
||||
buttonOverlay = new RButton();
|
||||
buttonFPS = new RButton();
|
||||
tableGPU = new TableLayoutPanel();
|
||||
@@ -94,6 +95,7 @@ namespace GHelper
|
||||
pictureScreen = new PictureBox();
|
||||
labelSreen = new Label();
|
||||
panelKeyboard = new Panel();
|
||||
labelDynamicLighting = new Label();
|
||||
tableLayoutKeyboard = new TableLayoutPanel();
|
||||
buttonKeyboard = new RButton();
|
||||
panelColor = new Panel();
|
||||
@@ -135,7 +137,6 @@ namespace GHelper
|
||||
labelGamma = new Label();
|
||||
pictureGamma = new PictureBox();
|
||||
labelGammaTitle = new Label();
|
||||
buttonAutoTDP = new RButton();
|
||||
panelMatrix.SuspendLayout();
|
||||
panelMatrixAuto.SuspendLayout();
|
||||
tableLayoutMatrix.SuspendLayout();
|
||||
@@ -370,7 +371,7 @@ namespace GHelper
|
||||
panelBattery.Controls.Add(sliderBattery);
|
||||
panelBattery.Controls.Add(panelBatteryTitle);
|
||||
panelBattery.Dock = DockStyle.Top;
|
||||
panelBattery.Location = new Point(11, 1725);
|
||||
panelBattery.Location = new Point(11, 1765);
|
||||
panelBattery.Margin = new Padding(0);
|
||||
panelBattery.Name = "panelBattery";
|
||||
panelBattery.Padding = new Padding(20, 20, 20, 11);
|
||||
@@ -462,7 +463,7 @@ namespace GHelper
|
||||
panelFooter.AutoSizeMode = AutoSizeMode.GrowAndShrink;
|
||||
panelFooter.Controls.Add(tableButtons);
|
||||
panelFooter.Dock = DockStyle.Top;
|
||||
panelFooter.Location = new Point(11, 1901);
|
||||
panelFooter.Location = new Point(11, 1941);
|
||||
panelFooter.Margin = new Padding(0);
|
||||
panelFooter.Name = "panelFooter";
|
||||
panelFooter.Padding = new Padding(20);
|
||||
@@ -780,6 +781,28 @@ namespace GHelper
|
||||
tableAMD.TabIndex = 24;
|
||||
tableAMD.Visible = false;
|
||||
//
|
||||
// buttonAutoTDP
|
||||
//
|
||||
buttonAutoTDP.Activated = false;
|
||||
buttonAutoTDP.BackColor = SystemColors.ControlLightLight;
|
||||
buttonAutoTDP.BorderColor = Color.Transparent;
|
||||
buttonAutoTDP.BorderRadius = 5;
|
||||
buttonAutoTDP.Dock = DockStyle.Fill;
|
||||
buttonAutoTDP.FlatAppearance.BorderSize = 0;
|
||||
buttonAutoTDP.FlatStyle = FlatStyle.Flat;
|
||||
buttonAutoTDP.ForeColor = SystemColors.ControlText;
|
||||
buttonAutoTDP.Image = Properties.Resources.icons8_gauge_32;
|
||||
buttonAutoTDP.ImageAlign = ContentAlignment.MiddleRight;
|
||||
buttonAutoTDP.Location = new Point(528, 4);
|
||||
buttonAutoTDP.Margin = new Padding(4);
|
||||
buttonAutoTDP.Name = "buttonAutoTDP";
|
||||
buttonAutoTDP.Secondary = false;
|
||||
buttonAutoTDP.Size = new Size(255, 72);
|
||||
buttonAutoTDP.TabIndex = 13;
|
||||
buttonAutoTDP.Text = "AutoTDP";
|
||||
buttonAutoTDP.TextImageRelation = TextImageRelation.ImageBeforeText;
|
||||
buttonAutoTDP.UseVisualStyleBackColor = false;
|
||||
//
|
||||
// buttonOverlay
|
||||
//
|
||||
buttonOverlay.Activated = false;
|
||||
@@ -1077,6 +1100,7 @@ namespace GHelper
|
||||
tableScreen.Name = "tableScreen";
|
||||
tableScreen.RowCount = 1;
|
||||
tableScreen.RowStyles.Add(new RowStyle(SizeType.Absolute, 80F));
|
||||
tableScreen.RowStyles.Add(new RowStyle(SizeType.Absolute, 20F));
|
||||
tableScreen.Size = new Size(787, 100);
|
||||
tableScreen.TabIndex = 23;
|
||||
//
|
||||
@@ -1229,6 +1253,7 @@ namespace GHelper
|
||||
panelKeyboard.AccessibleRole = AccessibleRole.Grouping;
|
||||
panelKeyboard.AutoSize = true;
|
||||
panelKeyboard.AutoSizeMode = AutoSizeMode.GrowAndShrink;
|
||||
panelKeyboard.Controls.Add(labelDynamicLighting);
|
||||
panelKeyboard.Controls.Add(tableLayoutKeyboard);
|
||||
panelKeyboard.Controls.Add(panelKeyboardTitle);
|
||||
panelKeyboard.Dock = DockStyle.Top;
|
||||
@@ -1236,10 +1261,25 @@ namespace GHelper
|
||||
panelKeyboard.Margin = new Padding(0);
|
||||
panelKeyboard.Name = "panelKeyboard";
|
||||
panelKeyboard.Padding = new Padding(20);
|
||||
panelKeyboard.Size = new Size(827, 132);
|
||||
panelKeyboard.Size = new Size(827, 172);
|
||||
panelKeyboard.TabIndex = 4;
|
||||
panelKeyboard.TabStop = true;
|
||||
//
|
||||
// labelDynamicLighting
|
||||
//
|
||||
labelDynamicLighting.Cursor = Cursors.Hand;
|
||||
labelDynamicLighting.Dock = DockStyle.Top;
|
||||
labelDynamicLighting.Font = new Font("Segoe UI", 9F, FontStyle.Regular, GraphicsUnit.Point);
|
||||
labelDynamicLighting.ForeColor = SystemColors.GrayText;
|
||||
labelDynamicLighting.Location = new Point(20, 112);
|
||||
labelDynamicLighting.Margin = new Padding(4, 0, 4, 0);
|
||||
labelDynamicLighting.Name = "labelDynamicLighting";
|
||||
labelDynamicLighting.Padding = new Padding(4);
|
||||
labelDynamicLighting.Size = new Size(787, 40);
|
||||
labelDynamicLighting.TabIndex = 43;
|
||||
labelDynamicLighting.Text = "Please disable Windows > Dynamic Lighting";
|
||||
labelDynamicLighting.Visible = false;
|
||||
//
|
||||
// tableLayoutKeyboard
|
||||
//
|
||||
tableLayoutKeyboard.AutoSize = true;
|
||||
@@ -1416,7 +1456,7 @@ namespace GHelper
|
||||
panelVersion.Controls.Add(labelCharge);
|
||||
panelVersion.Controls.Add(checkStartup);
|
||||
panelVersion.Dock = DockStyle.Top;
|
||||
panelVersion.Location = new Point(11, 1845);
|
||||
panelVersion.Location = new Point(11, 1885);
|
||||
panelVersion.Margin = new Padding(4);
|
||||
panelVersion.Name = "panelVersion";
|
||||
panelVersion.Size = new Size(827, 56);
|
||||
@@ -1442,7 +1482,7 @@ namespace GHelper
|
||||
panelPeripherals.Controls.Add(tableLayoutPeripherals);
|
||||
panelPeripherals.Controls.Add(panelPeripheralsTile);
|
||||
panelPeripherals.Dock = DockStyle.Top;
|
||||
panelPeripherals.Location = new Point(11, 1526);
|
||||
panelPeripherals.Location = new Point(11, 1566);
|
||||
panelPeripherals.Margin = new Padding(0);
|
||||
panelPeripherals.Name = "panelPeripherals";
|
||||
panelPeripherals.Padding = new Padding(20, 20, 20, 11);
|
||||
@@ -1895,28 +1935,6 @@ namespace GHelper
|
||||
labelGammaTitle.TabIndex = 37;
|
||||
labelGammaTitle.Text = "Flicker-free Dimming";
|
||||
//
|
||||
// buttonAutoTDP
|
||||
//
|
||||
buttonAutoTDP.Activated = false;
|
||||
buttonAutoTDP.BackColor = SystemColors.ControlLightLight;
|
||||
buttonAutoTDP.BorderColor = Color.Transparent;
|
||||
buttonAutoTDP.BorderRadius = 5;
|
||||
buttonAutoTDP.Dock = DockStyle.Fill;
|
||||
buttonAutoTDP.FlatAppearance.BorderSize = 0;
|
||||
buttonAutoTDP.FlatStyle = FlatStyle.Flat;
|
||||
buttonAutoTDP.ForeColor = SystemColors.ControlText;
|
||||
buttonAutoTDP.Image = Properties.Resources.icons8_gauge_32;
|
||||
buttonAutoTDP.ImageAlign = ContentAlignment.MiddleRight;
|
||||
buttonAutoTDP.Location = new Point(528, 4);
|
||||
buttonAutoTDP.Margin = new Padding(4);
|
||||
buttonAutoTDP.Name = "buttonAutoTDP";
|
||||
buttonAutoTDP.Secondary = false;
|
||||
buttonAutoTDP.Size = new Size(255, 72);
|
||||
buttonAutoTDP.TabIndex = 13;
|
||||
buttonAutoTDP.Text = "AutoTDP";
|
||||
buttonAutoTDP.TextImageRelation = TextImageRelation.ImageBeforeText;
|
||||
buttonAutoTDP.UseVisualStyleBackColor = false;
|
||||
//
|
||||
// SettingsForm
|
||||
//
|
||||
AutoScaleDimensions = new SizeF(192F, 192F);
|
||||
@@ -2120,5 +2138,6 @@ namespace GHelper
|
||||
private Label labelVisual;
|
||||
private RButton buttonFHD;
|
||||
private RButton buttonAutoTDP;
|
||||
private Label labelDynamicLighting;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@ namespace GHelper
|
||||
|
||||
public GPUModeControl gpuControl;
|
||||
public AllyControl allyControl;
|
||||
ScreenControl screenControl = new ScreenControl();
|
||||
ScreenControl screenControl = new ScreenControl();
|
||||
AutoUpdateControl updateControl;
|
||||
|
||||
AsusMouseSettings? mouseSettings;
|
||||
@@ -224,6 +224,7 @@ namespace GHelper
|
||||
|
||||
sliderBattery.MouseUp += SliderBattery_MouseUp;
|
||||
sliderBattery.KeyUp += SliderBattery_KeyUp;
|
||||
sliderBattery.ValueChanged += SliderBattery_ValueChanged;
|
||||
|
||||
Program.trayIcon.MouseMove += TrayIcon_MouseMove;
|
||||
|
||||
@@ -251,7 +252,7 @@ namespace GHelper
|
||||
|
||||
buttonFPS.Click += ButtonFPS_Click;
|
||||
buttonOverlay.Click += ButtonOverlay_Click;
|
||||
|
||||
|
||||
buttonAutoTDP.Click += ButtonAutoTDP_Click;
|
||||
buttonAutoTDP.BorderColor = colorTurbo;
|
||||
|
||||
@@ -268,15 +269,27 @@ namespace GHelper
|
||||
labelVisual.Click += LabelVisual_Click;
|
||||
labelCharge.Click += LabelCharge_Click;
|
||||
|
||||
labelDynamicLighting.Click += LabelDynamicLighting_Click;
|
||||
|
||||
panelPerformance.Focus();
|
||||
InitVisual();
|
||||
}
|
||||
|
||||
private void LabelDynamicLighting_Click(object? sender, EventArgs e)
|
||||
{
|
||||
DynamicLightingHelper.OpenSettings();
|
||||
}
|
||||
|
||||
private void ButtonFHD_Click(object? sender, EventArgs e)
|
||||
{
|
||||
screenControl.ToogleFHD();
|
||||
}
|
||||
|
||||
private void SliderBattery_ValueChanged(object? sender, EventArgs e)
|
||||
{
|
||||
VisualiseBatteryTitle(sliderBattery.Value);
|
||||
}
|
||||
|
||||
private void SliderBattery_KeyUp(object? sender, KeyEventArgs e)
|
||||
{
|
||||
BatteryControl.SetBatteryChargeLimit(sliderBattery.Value);
|
||||
@@ -319,7 +332,8 @@ namespace GHelper
|
||||
sliderGamma.ValueChanged += SliderGamma_ValueChanged;
|
||||
sliderGamma.MouseUp += SliderGamma_ValueChanged;
|
||||
|
||||
} else
|
||||
}
|
||||
else
|
||||
{
|
||||
labelGammaTitle.Text = Properties.Strings.VisualMode;
|
||||
}
|
||||
@@ -331,7 +345,8 @@ namespace GHelper
|
||||
{
|
||||
tableVisual.ColumnCount = 3;
|
||||
buttonInstallColor.Visible = false;
|
||||
} else
|
||||
}
|
||||
else
|
||||
{
|
||||
// If it's possible to retrieve color profiles
|
||||
if (ColorProfileHelper.ProfileExists())
|
||||
@@ -391,7 +406,7 @@ namespace GHelper
|
||||
public void CycleVisualMode()
|
||||
{
|
||||
|
||||
if (comboVisual.Items.Count < 1) return ;
|
||||
if (comboVisual.Items.Count < 1) return;
|
||||
|
||||
if (comboVisual.SelectedIndex < comboVisual.Items.Count - 1)
|
||||
comboVisual.SelectedIndex += 1;
|
||||
@@ -794,7 +809,7 @@ namespace GHelper
|
||||
|
||||
private void ButtonFHD_MouseHover(object? sender, EventArgs e)
|
||||
{
|
||||
labelTipScreen.Text = "Switch to "+ ((buttonFHD.Text == "FHD") ? "UHD" : "FHD") + " Mode";
|
||||
labelTipScreen.Text = "Switch to " + ((buttonFHD.Text == "FHD") ? "UHD" : "FHD") + " Mode";
|
||||
}
|
||||
|
||||
private void Button120Hz_MouseHover(object? sender, EventArgs e)
|
||||
@@ -1071,21 +1086,26 @@ namespace GHelper
|
||||
});
|
||||
}
|
||||
|
||||
private void _VisualiseAura()
|
||||
{
|
||||
pictureColor.BackColor = Aura.Color1;
|
||||
pictureColor2.BackColor = Aura.Color2;
|
||||
pictureColor2.Visible = Aura.HasSecondColor();
|
||||
|
||||
if (AppConfig.IsDynamicLighting())
|
||||
{
|
||||
labelDynamicLighting.Visible = DynamicLightingHelper.IsEnabled();
|
||||
labelDynamicLighting.ForeColor = colorStandard;
|
||||
this.OnResize(null);
|
||||
}
|
||||
}
|
||||
|
||||
public void VisualiseAura()
|
||||
{
|
||||
if (InvokeRequired)
|
||||
Invoke(delegate
|
||||
{
|
||||
pictureColor.BackColor = Aura.Color1;
|
||||
pictureColor2.BackColor = Aura.Color2;
|
||||
pictureColor2.Visible = Aura.HasSecondColor();
|
||||
});
|
||||
Invoke(_VisualiseAura);
|
||||
else
|
||||
{
|
||||
pictureColor.BackColor = Aura.Color1;
|
||||
pictureColor2.BackColor = Aura.Color2;
|
||||
pictureColor2.Visible = Aura.HasSecondColor();
|
||||
}
|
||||
_VisualiseAura();
|
||||
}
|
||||
|
||||
public void InitMatrix()
|
||||
@@ -1266,7 +1286,8 @@ namespace GHelper
|
||||
labelVisual.Width = tableVisual.Width;
|
||||
labelVisual.Height = tableVisual.Height;
|
||||
labelVisual.Visible = true;
|
||||
} else
|
||||
}
|
||||
else
|
||||
{
|
||||
labelVisual.Visible = false;
|
||||
}
|
||||
@@ -1293,6 +1314,8 @@ namespace GHelper
|
||||
if (updatesForm != null && updatesForm.Text != "") updatesForm.Close();
|
||||
if (matrixForm != null && matrixForm.Text != "") matrixForm.Close();
|
||||
if (handheldForm != null && handheldForm.Text != "") handheldForm.Close();
|
||||
if (mouseSettings != null && mouseSettings.Text != "") mouseSettings.Close();
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -1710,9 +1733,14 @@ namespace GHelper
|
||||
but.BackColor = but.Enabled ? Color.FromArgb(255, but.BackColor) : Color.FromArgb(100, but.BackColor);
|
||||
}
|
||||
|
||||
public void VisualiseBattery(int limit)
|
||||
public void VisualiseBatteryTitle(int limit)
|
||||
{
|
||||
labelBatteryTitle.Text = Properties.Strings.BatteryChargeLimit + ": " + limit.ToString() + "%";
|
||||
}
|
||||
|
||||
public void VisualiseBattery(int limit)
|
||||
{
|
||||
VisualiseBatteryTitle(limit);
|
||||
sliderBattery.Value = limit;
|
||||
|
||||
sliderBattery.AccessibleName = Properties.Strings.BatteryChargeLimit + ": " + limit.ToString() + "%";
|
||||
|
||||
@@ -7,7 +7,6 @@ Small and lightweight Armoury Crate alternative for Asus laptops offering almost
|
||||
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!
|
||||
|
||||
# [:floppy_disk:Download](https://github.com/seerge/g-helper/releases/latest/download/GHelper.zip)
|
||||
### 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)
|
||||
|
||||
- [FAQ](https://github.com/seerge/g-helper/wiki/FAQ)
|
||||
- [Setup and Requirements](https://github.com/seerge/g-helper/wiki/Requirements)
|
||||
@@ -23,8 +22,8 @@ Works with all popular models, such as ROG Zephyrus G14, G15, G16, M16, Flow X13
|
||||
| [Josh Cravey](https://www.youtube.com/watch?v=hqe-PjuE-K8) | [cbutters Tech](https://www.youtube.com/watch?v=6aVdwJKZSSc) |
|
||||
|
||||
## 📰 Articles
|
||||
1. https://binaryfork.com/ghelper-armoury-crate-alternative-10216/
|
||||
2. https://www.digitaltrends.com/computing/g-helper-armoury-crate-alternative/
|
||||
1. https://www.digitaltrends.com/computing/g-helper-armoury-crate-alternative/
|
||||
2. https://binaryfork.com/ghelper-armoury-crate-alternative-10216/
|
||||
|
||||
## :gift: Advantages
|
||||
|
||||
@@ -95,6 +94,7 @@ Each BIOS mode is paired with matching Windows Power Mode. You can adjust this s
|
||||
- ROG Gladius III
|
||||
- ROG Gladius III Wireless
|
||||
- ROG Harpe Ace Aim Lab Edition
|
||||
- ROG Keris (P509)
|
||||
- ROG Keris Wireless
|
||||
- ROG Strix Carry (P508)
|
||||
- ROG Strix III Gladius III Aimpoint Wireless (P711)
|
||||
@@ -137,13 +137,6 @@ Huge thanks to [@IceStormNG](https://github.com/IceStormNG) 👑 for contributio
|
||||
- ``M + X`` - Screenshot
|
||||
- ``M + Right Stick Click`` - Controller Mode
|
||||
|
||||
------------------
|
||||
#### If you like the app you can make a Donation
|
||||
|
||||
| [Paypal in EUR](https://www.paypal.com/donate/?hosted_button_id=4HMSHS4EBQWTA) | [Paypal in USD](https://www.paypal.com/donate/?hosted_button_id=SRM6QUX6ACXDY) |
|
||||
| ------------------------------------------ | ----------------------------------------------- |
|
||||
| [](https://www.paypal.com/donate/?hosted_button_id=4HMSHS4EBQWTA) | [](https://www.paypal.com/donate/?hosted_button_id=SRM6QUX6ACXDY) |
|
||||
|
||||
------------------
|
||||
|
||||
### 🔖 Important Notice
|
||||
|
||||
Reference in New Issue
Block a user