Compare commits

..

6 Commits

Author SHA1 Message Date
Serge
02e700c03c Cleanup 2024-02-29 17:03:48 +01:00
Serge
35977d007e GPU Power UI Tweaks 2024-02-29 16:07:11 +01:00
Serge
3b9f8de0ab GPU Power tweaks 2024-02-29 15:54:09 +01:00
Serge
1e3a16ae45 Merge branch 'main' into gpu_tgp 2024-02-28 23:40:57 +01:00
Serge
a520c438da Version bump 2024-02-28 17:15:15 +01:00
Serge
6b45795888 GPU TGP setting for supported models 2024-02-28 15:43:16 +01:00
36 changed files with 1240 additions and 1560 deletions

View File

@@ -16,10 +16,6 @@ body:
required: true required: true
validations: validations:
required: true required: true
- type: markdown
attributes:
value: |
<b>NOTICE:</b> Issues like "my fans are not working properly" will be closed without answer. Neither G-Helper nor Armoury don't control fans in realtime anyhow. Fans are <b>always</b> controlled by BIOS, even when you set a custom fan curve.
- type: textarea - type: textarea
id: description id: description
attributes: attributes:

View File

@@ -365,9 +365,9 @@ public static class AppConfig
return ContainsModel("ProArt"); return ContainsModel("ProArt");
} }
public static bool IsVivoZenbook() public static bool IsVivobook()
{ {
return ContainsModel("Vivobook") || ContainsModel("Zenbook"); return ContainsModel("Vivobook");
} }
// Devices with bugged bios command to change brightness // Devices with bugged bios command to change brightness
@@ -405,12 +405,7 @@ public static class AppConfig
public static bool IsOLED() public static bool IsOLED()
{ {
return ContainsModel("OLED") || IsSlash() || ContainsModel("UX64") || ContainsModel("UX34") || ContainsModel("UX53") || ContainsModel("K360") || ContainsModel("X150") || ContainsModel("M3500") || ContainsModel("K650"); return ContainsModel("OLED") || IsSlash() || ContainsModel("UX64") || ContainsModel("UX34") || ContainsModel("UX53") || ContainsModel("K360") || ContainsModel("X150");
}
public static bool IsNoOverdrive()
{
return Is("no_overdrive") || IsOLED();
} }
public static bool IsStrix() public static bool IsStrix()
@@ -436,7 +431,7 @@ public static class AppConfig
public static bool IsNoDirectRGB() public static bool IsNoDirectRGB()
{ {
return ContainsModel("GA503") || ContainsModel("G533Q") || IsSlash(); return ContainsModel("GA503") || ContainsModel("G533Q");
} }
public static bool IsStrixNumpad() public static bool IsStrixNumpad()
@@ -474,11 +469,6 @@ public static class AppConfig
return ContainsModel("FX507ZC4"); return ContainsModel("FX507ZC4");
} }
public static bool DynamicBoost20()
{
return ContainsModel("GU605");
}
public static bool IsAdvantageEdition() public static bool IsAdvantageEdition()
{ {
return ContainsModel("13QY"); return ContainsModel("13QY");
@@ -524,7 +514,7 @@ public static class AppConfig
try try
{ {
var (bios, model) = GetBiosAndModel(); var (bios, model) = GetBiosAndModel();
return (Int32.Parse(bios) == 317 || Int32.Parse(bios) == 316); return (Int32.Parse(bios) == 317);
} }
catch catch
{ {
@@ -532,19 +522,9 @@ public static class AppConfig
} }
} }
public static bool IsResetRequired()
{
return ContainsModel("GA403");
}
public static bool IsFanRequired() public static bool IsFanRequired()
{ {
return ContainsModel("GA402X") || ContainsModel("G513") || ContainsModel("G713R") || ContainsModel("G713P") || ContainsModel("GU605") || ContainsModel("GA403"); return ContainsModel("GA402X") || ContainsModel("G513") || ContainsModel("G713R") || ContainsModel("G713P");
}
public static bool IsAMDLight()
{
return ContainsModel("GA402X") || ContainsModel("GA403") || ContainsModel("FA507N") || ContainsModel("FA507X") || ContainsModel("FA707N") || ContainsModel("FA707X");
} }
public static bool IsPowerRequired() public static bool IsPowerRequired()
@@ -582,10 +562,6 @@ public static class AppConfig
return ContainsModel("G834") || ContainsModel("G614") || ContainsModel("G834") || ContainsModel("G634"); return ContainsModel("G834") || ContainsModel("G614") || ContainsModel("G834") || ContainsModel("G634");
} }
public static bool IsROG()
{
return ContainsModel("ROG");
}
public static bool IsASUS() public static bool IsASUS()
{ {
return ContainsModel("ROG") || ContainsModel("TUF") || ContainsModel("Vivobook") || ContainsModel("Zenbook"); return ContainsModel("ROG") || ContainsModel("TUF") || ContainsModel("Vivobook") || ContainsModel("Zenbook");

View File

@@ -154,7 +154,7 @@ public class AsusACPI
public static int MaxGPUBoost = 25; public static int MaxGPUBoost = 25;
public static int MinGPUPower = 0; public static int MinGPUPower = 0;
public static int MaxGPUPower = 70; public static int MaxGPUPower = 50;
public const int MinGPUTemp = 75; public const int MinGPUTemp = 75;
public const int MaxGPUTemp = 87; public const int MaxGPUTemp = 87;
@@ -291,6 +291,7 @@ public class AsusACPI
if (AppConfig.IsIntelHX()) if (AppConfig.IsIntelHX())
{ {
MaxTotal = 175; MaxTotal = 175;
MaxGPUPower = 70;
} }
if (AppConfig.DynamicBoost5()) if (AppConfig.DynamicBoost5())
@@ -302,19 +303,6 @@ public class AsusACPI
{ {
MaxGPUBoost = 15; MaxGPUBoost = 15;
} }
if (AppConfig.DynamicBoost20())
{
MaxGPUBoost = 20;
}
if (AppConfig.IsAMDLight())
{
MaxTotal = 90;
}
} }
public void Control(uint dwIoControlCode, byte[] lpInBuffer, byte[] lpOutBuffer) public void Control(uint dwIoControlCode, byte[] lpInBuffer, byte[] lpOutBuffer)
@@ -428,16 +416,9 @@ public class AsusACPI
{ {
return null; return null;
} }
} }
public int SetVivoMode(int mode)
{
if (mode == 1) mode = 2;
else if (mode == 2) mode = 1;
return Program.acpi.DeviceSet(VivoBookMode, mode, "VivoMode");
}
public int SetGPUEco(int eco) public int SetGPUEco(int eco)
{ {
int ecoFlag = DeviceGet(GPUEco); int ecoFlag = DeviceGet(GPUEco);
@@ -568,7 +549,7 @@ public class AsusACPI
break; break;
} }
//Logger.WriteLine($"GetFan {device} :" + BitConverter.ToString(result)); Logger.WriteLine($"GetFan {device} :" + BitConverter.ToString(result));
return result; return result;

View File

@@ -152,7 +152,7 @@
// //
panelProfiles.Controls.Add(comboProfile); panelProfiles.Controls.Add(comboProfile);
panelProfiles.Controls.Add(labelProfile); panelProfiles.Controls.Add(labelProfile);
panelProfiles.Location = new Point(220, 2); panelProfiles.Location = new Point(212, 2);
panelProfiles.Margin = new Padding(2); panelProfiles.Margin = new Padding(2);
panelProfiles.MinimumSize = new Size(227, 0); panelProfiles.MinimumSize = new Size(227, 0);
panelProfiles.Name = "panelProfiles"; panelProfiles.Name = "panelProfiles";
@@ -197,7 +197,7 @@
panelPerformance.Margin = new Padding(2); panelPerformance.Margin = new Padding(2);
panelPerformance.Name = "panelPerformance"; panelPerformance.Name = "panelPerformance";
panelPerformance.Padding = new Padding(0, 7, 0, 17); panelPerformance.Padding = new Padding(0, 7, 0, 17);
panelPerformance.Size = new Size(437, 370); panelPerformance.Size = new Size(420, 370);
panelPerformance.TabIndex = 1; panelPerformance.TabIndex = 1;
// //
// panelPerformanceOther // panelPerformanceOther
@@ -215,7 +215,7 @@
panelPerformanceOther.Margin = new Padding(2); panelPerformanceOther.Margin = new Padding(2);
panelPerformanceOther.Name = "panelPerformanceOther"; panelPerformanceOther.Name = "panelPerformanceOther";
panelPerformanceOther.Padding = new Padding(0, 7, 0, 7); panelPerformanceOther.Padding = new Padding(0, 7, 0, 7);
panelPerformanceOther.Size = new Size(437, 192); panelPerformanceOther.Size = new Size(420, 192);
panelPerformanceOther.TabIndex = 49; panelPerformanceOther.TabIndex = 49;
// //
// panelDeceleration // panelDeceleration
@@ -230,7 +230,7 @@
panelDeceleration.Margin = new Padding(2); panelDeceleration.Margin = new Padding(2);
panelDeceleration.Name = "panelDeceleration"; panelDeceleration.Name = "panelDeceleration";
panelDeceleration.Padding = new Padding(3); panelDeceleration.Padding = new Padding(3);
panelDeceleration.Size = new Size(437, 31); panelDeceleration.Size = new Size(420, 31);
panelDeceleration.TabIndex = 58; panelDeceleration.TabIndex = 58;
// //
// labelDeceleration // labelDeceleration
@@ -279,7 +279,7 @@
panelAcceleration.Margin = new Padding(2); panelAcceleration.Margin = new Padding(2);
panelAcceleration.Name = "panelAcceleration"; panelAcceleration.Name = "panelAcceleration";
panelAcceleration.Padding = new Padding(3); panelAcceleration.Padding = new Padding(3);
panelAcceleration.Size = new Size(437, 31); panelAcceleration.Size = new Size(420, 31);
panelAcceleration.TabIndex = 57; panelAcceleration.TabIndex = 57;
// //
// labelAcceleration // labelAcceleration
@@ -327,7 +327,7 @@
panelLiftOffDistance.Margin = new Padding(2); panelLiftOffDistance.Margin = new Padding(2);
panelLiftOffDistance.Name = "panelLiftOffDistance"; panelLiftOffDistance.Name = "panelLiftOffDistance";
panelLiftOffDistance.Padding = new Padding(3); panelLiftOffDistance.Padding = new Padding(3);
panelLiftOffDistance.Size = new Size(437, 29); panelLiftOffDistance.Size = new Size(420, 29);
panelLiftOffDistance.TabIndex = 56; panelLiftOffDistance.TabIndex = 56;
// //
// labelLiftOffDistance // labelLiftOffDistance
@@ -364,7 +364,7 @@
panelDebounce.Margin = new Padding(2); panelDebounce.Margin = new Padding(2);
panelDebounce.Name = "panelDebounce"; panelDebounce.Name = "panelDebounce";
panelDebounce.Padding = new Padding(3); panelDebounce.Padding = new Padding(3);
panelDebounce.Size = new Size(437, 31); panelDebounce.Size = new Size(420, 31);
panelDebounce.TabIndex = 55; panelDebounce.TabIndex = 55;
// //
// labelButtonDebounce // labelButtonDebounce
@@ -413,7 +413,7 @@
panelAngleSnapping.Margin = new Padding(2); panelAngleSnapping.Margin = new Padding(2);
panelAngleSnapping.Name = "panelAngleSnapping"; panelAngleSnapping.Name = "panelAngleSnapping";
panelAngleSnapping.Padding = new Padding(3); panelAngleSnapping.Padding = new Padding(3);
panelAngleSnapping.Size = new Size(437, 29); panelAngleSnapping.Size = new Size(420, 29);
panelAngleSnapping.TabIndex = 54; panelAngleSnapping.TabIndex = 54;
// //
// sliderAngleAdjustment // sliderAngleAdjustment
@@ -464,7 +464,7 @@
panelPollingRate.Margin = new Padding(2); panelPollingRate.Margin = new Padding(2);
panelPollingRate.Name = "panelPollingRate"; panelPollingRate.Name = "panelPollingRate";
panelPollingRate.Padding = new Padding(3); panelPollingRate.Padding = new Padding(3);
panelPollingRate.Size = new Size(437, 27); panelPollingRate.Size = new Size(420, 27);
panelPollingRate.TabIndex = 53; panelPollingRate.TabIndex = 53;
// //
// labelPollingRate // labelPollingRate
@@ -500,7 +500,7 @@
panelDPISettings.Location = new Point(0, 91); panelDPISettings.Location = new Point(0, 91);
panelDPISettings.Margin = new Padding(2); panelDPISettings.Margin = new Padding(2);
panelDPISettings.Name = "panelDPISettings"; panelDPISettings.Name = "panelDPISettings";
panelDPISettings.Size = new Size(437, 70); panelDPISettings.Size = new Size(420, 70);
panelDPISettings.TabIndex = 44; panelDPISettings.TabIndex = 44;
// //
// sliderDPI // sliderDPI
@@ -512,7 +512,7 @@
sliderDPI.Max = 35000; sliderDPI.Max = 35000;
sliderDPI.Min = 100; sliderDPI.Min = 100;
sliderDPI.Name = "sliderDPI"; sliderDPI.Name = "sliderDPI";
sliderDPI.Size = new Size(437, 20); sliderDPI.Size = new Size(420, 20);
sliderDPI.Step = 50; sliderDPI.Step = 50;
sliderDPI.TabIndex = 43; sliderDPI.TabIndex = 43;
sliderDPI.TabStop = false; sliderDPI.TabStop = false;
@@ -537,7 +537,7 @@
tableLayoutPanel1.Name = "tableLayoutPanel1"; tableLayoutPanel1.Name = "tableLayoutPanel1";
tableLayoutPanel1.RowCount = 1; tableLayoutPanel1.RowCount = 1;
tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Percent, 100F)); tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
tableLayoutPanel1.Size = new Size(437, 23); tableLayoutPanel1.Size = new Size(420, 23);
tableLayoutPanel1.TabIndex = 47; tableLayoutPanel1.TabIndex = 47;
// //
// labelMinDPI // labelMinDPI
@@ -547,7 +547,7 @@
labelMinDPI.Location = new Point(4, 0); labelMinDPI.Location = new Point(4, 0);
labelMinDPI.Margin = new Padding(4, 0, 4, 0); labelMinDPI.Margin = new Padding(4, 0, 4, 0);
labelMinDPI.Name = "labelMinDPI"; labelMinDPI.Name = "labelMinDPI";
labelMinDPI.Size = new Size(158, 23); labelMinDPI.Size = new Size(151, 23);
labelMinDPI.TabIndex = 45; labelMinDPI.TabIndex = 45;
labelMinDPI.Text = "100"; labelMinDPI.Text = "100";
// //
@@ -555,10 +555,10 @@
// //
labelMaxDPI.Dock = DockStyle.Fill; labelMaxDPI.Dock = DockStyle.Fill;
labelMaxDPI.ForeColor = SystemColors.GrayText; labelMaxDPI.ForeColor = SystemColors.GrayText;
labelMaxDPI.Location = new Point(274, 0); labelMaxDPI.Location = new Point(263, 0);
labelMaxDPI.Margin = new Padding(4, 0, 4, 0); labelMaxDPI.Margin = new Padding(4, 0, 4, 0);
labelMaxDPI.Name = "labelMaxDPI"; labelMaxDPI.Name = "labelMaxDPI";
labelMaxDPI.Size = new Size(159, 23); labelMaxDPI.Size = new Size(153, 23);
labelMaxDPI.TabIndex = 46; labelMaxDPI.TabIndex = 46;
labelMaxDPI.Text = " 35000"; labelMaxDPI.Text = " 35000";
labelMaxDPI.TextAlign = ContentAlignment.TopRight; labelMaxDPI.TextAlign = ContentAlignment.TopRight;
@@ -568,12 +568,12 @@
numericUpDownCurrentDPI.BorderStyle = BorderStyle.None; numericUpDownCurrentDPI.BorderStyle = BorderStyle.None;
numericUpDownCurrentDPI.Dock = DockStyle.Fill; numericUpDownCurrentDPI.Dock = DockStyle.Fill;
numericUpDownCurrentDPI.Increment = new decimal(new int[] { 50, 0, 0, 0 }); numericUpDownCurrentDPI.Increment = new decimal(new int[] { 50, 0, 0, 0 });
numericUpDownCurrentDPI.Location = new Point(168, 2); numericUpDownCurrentDPI.Location = new Point(161, 2);
numericUpDownCurrentDPI.Margin = new Padding(2); numericUpDownCurrentDPI.Margin = new Padding(2);
numericUpDownCurrentDPI.Maximum = new decimal(new int[] { 35000, 0, 0, 0 }); numericUpDownCurrentDPI.Maximum = new decimal(new int[] { 35000, 0, 0, 0 });
numericUpDownCurrentDPI.Minimum = new decimal(new int[] { 100, 0, 0, 0 }); numericUpDownCurrentDPI.Minimum = new decimal(new int[] { 100, 0, 0, 0 });
numericUpDownCurrentDPI.Name = "numericUpDownCurrentDPI"; numericUpDownCurrentDPI.Name = "numericUpDownCurrentDPI";
numericUpDownCurrentDPI.Size = new Size(100, 19); numericUpDownCurrentDPI.Size = new Size(96, 19);
numericUpDownCurrentDPI.TabIndex = 47; numericUpDownCurrentDPI.TabIndex = 47;
numericUpDownCurrentDPI.TextAlign = HorizontalAlignment.Center; numericUpDownCurrentDPI.TextAlign = HorizontalAlignment.Center;
numericUpDownCurrentDPI.Value = new decimal(new int[] { 2000, 0, 0, 0 }); numericUpDownCurrentDPI.Value = new decimal(new int[] { 2000, 0, 0, 0 });
@@ -588,13 +588,13 @@
panelDPITile.Margin = new Padding(2); panelDPITile.Margin = new Padding(2);
panelDPITile.Name = "panelDPITile"; panelDPITile.Name = "panelDPITile";
panelDPITile.Padding = new Padding(0, 3, 0, 3); panelDPITile.Padding = new Padding(0, 3, 0, 3);
panelDPITile.Size = new Size(437, 27); panelDPITile.Size = new Size(420, 27);
panelDPITile.TabIndex = 48; panelDPITile.TabIndex = 48;
// //
// pictureDPIColor // pictureDPIColor
// //
pictureDPIColor.Anchor = AnchorStyles.Top | AnchorStyles.Right; pictureDPIColor.Anchor = AnchorStyles.Top | AnchorStyles.Right;
pictureDPIColor.Location = new Point(412, 7); pictureDPIColor.Location = new Point(395, 7);
pictureDPIColor.Margin = new Padding(4); pictureDPIColor.Margin = new Padding(4);
pictureDPIColor.Name = "pictureDPIColor"; pictureDPIColor.Name = "pictureDPIColor";
pictureDPIColor.Size = new Size(10, 10); pictureDPIColor.Size = new Size(10, 10);
@@ -612,7 +612,7 @@
buttonDPIColor.BorderRadius = 2; buttonDPIColor.BorderRadius = 2;
buttonDPIColor.FlatStyle = FlatStyle.Flat; buttonDPIColor.FlatStyle = FlatStyle.Flat;
buttonDPIColor.ForeColor = SystemColors.ControlText; buttonDPIColor.ForeColor = SystemColors.ControlText;
buttonDPIColor.Location = new Point(308, 1); buttonDPIColor.Location = new Point(291, 1);
buttonDPIColor.Margin = new Padding(2, 4, 2, 4); buttonDPIColor.Margin = new Padding(2, 4, 2, 4);
buttonDPIColor.Name = "buttonDPIColor"; buttonDPIColor.Name = "buttonDPIColor";
buttonDPIColor.Secondary = false; buttonDPIColor.Secondary = false;
@@ -653,7 +653,7 @@
tableDPI.RowCount = 1; tableDPI.RowCount = 1;
tableDPI.RowStyles.Add(new RowStyle(SizeType.Absolute, 64F)); tableDPI.RowStyles.Add(new RowStyle(SizeType.Absolute, 64F));
tableDPI.RowStyles.Add(new RowStyle(SizeType.Absolute, 64F)); tableDPI.RowStyles.Add(new RowStyle(SizeType.Absolute, 64F));
tableDPI.Size = new Size(437, 64); tableDPI.Size = new Size(420, 64);
tableDPI.TabIndex = 42; tableDPI.TabIndex = 42;
// //
// buttonDPI2 // buttonDPI2
@@ -669,11 +669,11 @@
buttonDPI2.ForeColor = SystemColors.ControlText; buttonDPI2.ForeColor = SystemColors.ControlText;
buttonDPI2.Image = Properties.Resources.lighting_dot_32; buttonDPI2.Image = Properties.Resources.lighting_dot_32;
buttonDPI2.ImageAlign = ContentAlignment.BottomCenter; buttonDPI2.ImageAlign = ContentAlignment.BottomCenter;
buttonDPI2.Location = new Point(111, 2); buttonDPI2.Location = new Point(107, 2);
buttonDPI2.Margin = new Padding(2); buttonDPI2.Margin = new Padding(2);
buttonDPI2.Name = "buttonDPI2"; buttonDPI2.Name = "buttonDPI2";
buttonDPI2.Secondary = false; buttonDPI2.Secondary = false;
buttonDPI2.Size = new Size(105, 60); buttonDPI2.Size = new Size(101, 60);
buttonDPI2.TabIndex = 4; buttonDPI2.TabIndex = 4;
buttonDPI2.Text = "DPI 2\r\n1000"; buttonDPI2.Text = "DPI 2\r\n1000";
buttonDPI2.TextImageRelation = TextImageRelation.ImageAboveText; buttonDPI2.TextImageRelation = TextImageRelation.ImageAboveText;
@@ -696,7 +696,7 @@
buttonDPI1.Margin = new Padding(2); buttonDPI1.Margin = new Padding(2);
buttonDPI1.Name = "buttonDPI1"; buttonDPI1.Name = "buttonDPI1";
buttonDPI1.Secondary = false; buttonDPI1.Secondary = false;
buttonDPI1.Size = new Size(105, 60); buttonDPI1.Size = new Size(101, 60);
buttonDPI1.TabIndex = 4; buttonDPI1.TabIndex = 4;
buttonDPI1.Text = "DPI 1\r\n800"; buttonDPI1.Text = "DPI 1\r\n800";
buttonDPI1.TextImageRelation = TextImageRelation.ImageAboveText; buttonDPI1.TextImageRelation = TextImageRelation.ImageAboveText;
@@ -715,11 +715,11 @@
buttonDPI3.ForeColor = SystemColors.ControlText; buttonDPI3.ForeColor = SystemColors.ControlText;
buttonDPI3.Image = Properties.Resources.lighting_dot_32; buttonDPI3.Image = Properties.Resources.lighting_dot_32;
buttonDPI3.ImageAlign = ContentAlignment.BottomCenter; buttonDPI3.ImageAlign = ContentAlignment.BottomCenter;
buttonDPI3.Location = new Point(220, 2); buttonDPI3.Location = new Point(212, 2);
buttonDPI3.Margin = new Padding(2); buttonDPI3.Margin = new Padding(2);
buttonDPI3.Name = "buttonDPI3"; buttonDPI3.Name = "buttonDPI3";
buttonDPI3.Secondary = false; buttonDPI3.Secondary = false;
buttonDPI3.Size = new Size(105, 60); buttonDPI3.Size = new Size(101, 60);
buttonDPI3.TabIndex = 5; buttonDPI3.TabIndex = 5;
buttonDPI3.Text = "DPI 3\r\n1200"; buttonDPI3.Text = "DPI 3\r\n1200";
buttonDPI3.TextImageRelation = TextImageRelation.ImageAboveText; buttonDPI3.TextImageRelation = TextImageRelation.ImageAboveText;
@@ -738,11 +738,11 @@
buttonDPI4.ForeColor = SystemColors.ControlText; buttonDPI4.ForeColor = SystemColors.ControlText;
buttonDPI4.Image = Properties.Resources.lighting_dot_32; buttonDPI4.Image = Properties.Resources.lighting_dot_32;
buttonDPI4.ImageAlign = ContentAlignment.BottomCenter; buttonDPI4.ImageAlign = ContentAlignment.BottomCenter;
buttonDPI4.Location = new Point(329, 2); buttonDPI4.Location = new Point(317, 2);
buttonDPI4.Margin = new Padding(2); buttonDPI4.Margin = new Padding(2);
buttonDPI4.Name = "buttonDPI4"; buttonDPI4.Name = "buttonDPI4";
buttonDPI4.Secondary = false; buttonDPI4.Secondary = false;
buttonDPI4.Size = new Size(106, 60); buttonDPI4.Size = new Size(101, 60);
buttonDPI4.TabIndex = 6; buttonDPI4.TabIndex = 6;
buttonDPI4.Text = "DPI 4\r\n1400"; buttonDPI4.Text = "DPI 4\r\n1400";
buttonDPI4.TextImageRelation = TextImageRelation.ImageAboveText; buttonDPI4.TextImageRelation = TextImageRelation.ImageAboveText;
@@ -757,7 +757,7 @@
panelPerformanceHeader.Location = new Point(0, 7); panelPerformanceHeader.Location = new Point(0, 7);
panelPerformanceHeader.Margin = new Padding(2); panelPerformanceHeader.Margin = new Padding(2);
panelPerformanceHeader.Name = "panelPerformanceHeader"; panelPerformanceHeader.Name = "panelPerformanceHeader";
panelPerformanceHeader.Size = new Size(437, 20); panelPerformanceHeader.Size = new Size(420, 20);
panelPerformanceHeader.TabIndex = 41; panelPerformanceHeader.TabIndex = 41;
// //
// pictureKeyboard // pictureKeyboard
@@ -793,7 +793,7 @@
panelLighting.Margin = new Padding(2); panelLighting.Margin = new Padding(2);
panelLighting.Name = "panelLighting"; panelLighting.Name = "panelLighting";
panelLighting.Padding = new Padding(0, 0, 0, 17); panelLighting.Padding = new Padding(0, 0, 0, 17);
panelLighting.Size = new Size(437, 220); panelLighting.Size = new Size(420, 220);
panelLighting.TabIndex = 42; panelLighting.TabIndex = 42;
// //
// panelLightingContent // panelLightingContent
@@ -814,7 +814,7 @@
panelLightingContent.Margin = new Padding(2); panelLightingContent.Margin = new Padding(2);
panelLightingContent.Name = "panelLightingContent"; panelLightingContent.Name = "panelLightingContent";
panelLightingContent.Padding = new Padding(0, 0, 0, 7); panelLightingContent.Padding = new Padding(0, 0, 0, 7);
panelLightingContent.Size = new Size(437, 183); panelLightingContent.Size = new Size(420, 183);
panelLightingContent.TabIndex = 42; panelLightingContent.TabIndex = 42;
// //
// tableLayoutLightingZones // tableLayoutLightingZones
@@ -838,7 +838,7 @@
tableLayoutLightingZones.Name = "tableLayoutLightingZones"; tableLayoutLightingZones.Name = "tableLayoutLightingZones";
tableLayoutLightingZones.RowCount = 1; tableLayoutLightingZones.RowCount = 1;
tableLayoutLightingZones.RowStyles.Add(new RowStyle(SizeType.Absolute, 40F)); tableLayoutLightingZones.RowStyles.Add(new RowStyle(SizeType.Absolute, 40F));
tableLayoutLightingZones.Size = new Size(437, 40); tableLayoutLightingZones.Size = new Size(420, 40);
tableLayoutLightingZones.TabIndex = 56; tableLayoutLightingZones.TabIndex = 56;
// //
// buttonLightingZoneScroll // buttonLightingZoneScroll
@@ -855,11 +855,11 @@
buttonLightingZoneScroll.FlatStyle = FlatStyle.Flat; buttonLightingZoneScroll.FlatStyle = FlatStyle.Flat;
buttonLightingZoneScroll.ForeColor = SystemColors.ControlText; buttonLightingZoneScroll.ForeColor = SystemColors.ControlText;
buttonLightingZoneScroll.ImageAlign = ContentAlignment.BottomCenter; buttonLightingZoneScroll.ImageAlign = ContentAlignment.BottomCenter;
buttonLightingZoneScroll.Location = new Point(176, 2); buttonLightingZoneScroll.Location = new Point(170, 2);
buttonLightingZoneScroll.Margin = new Padding(2); buttonLightingZoneScroll.Margin = new Padding(2);
buttonLightingZoneScroll.Name = "buttonLightingZoneScroll"; buttonLightingZoneScroll.Name = "buttonLightingZoneScroll";
buttonLightingZoneScroll.Secondary = false; buttonLightingZoneScroll.Secondary = false;
buttonLightingZoneScroll.Size = new Size(83, 36); buttonLightingZoneScroll.Size = new Size(80, 36);
buttonLightingZoneScroll.TabIndex = 7; buttonLightingZoneScroll.TabIndex = 7;
buttonLightingZoneScroll.Text = "Scrollwheel"; buttonLightingZoneScroll.Text = "Scrollwheel";
buttonLightingZoneScroll.TextImageRelation = TextImageRelation.ImageAboveText; buttonLightingZoneScroll.TextImageRelation = TextImageRelation.ImageAboveText;
@@ -879,11 +879,11 @@
buttonLightingZoneLogo.FlatStyle = FlatStyle.Flat; buttonLightingZoneLogo.FlatStyle = FlatStyle.Flat;
buttonLightingZoneLogo.ForeColor = SystemColors.ControlText; buttonLightingZoneLogo.ForeColor = SystemColors.ControlText;
buttonLightingZoneLogo.ImageAlign = ContentAlignment.BottomCenter; buttonLightingZoneLogo.ImageAlign = ContentAlignment.BottomCenter;
buttonLightingZoneLogo.Location = new Point(89, 2); buttonLightingZoneLogo.Location = new Point(86, 2);
buttonLightingZoneLogo.Margin = new Padding(2); buttonLightingZoneLogo.Margin = new Padding(2);
buttonLightingZoneLogo.Name = "buttonLightingZoneLogo"; buttonLightingZoneLogo.Name = "buttonLightingZoneLogo";
buttonLightingZoneLogo.Secondary = false; buttonLightingZoneLogo.Secondary = false;
buttonLightingZoneLogo.Size = new Size(83, 36); buttonLightingZoneLogo.Size = new Size(80, 36);
buttonLightingZoneLogo.TabIndex = 4; buttonLightingZoneLogo.TabIndex = 4;
buttonLightingZoneLogo.Text = "Logo"; buttonLightingZoneLogo.Text = "Logo";
buttonLightingZoneLogo.TextImageRelation = TextImageRelation.ImageAboveText; buttonLightingZoneLogo.TextImageRelation = TextImageRelation.ImageAboveText;
@@ -907,7 +907,7 @@
buttonLightingZoneAll.Margin = new Padding(2); buttonLightingZoneAll.Margin = new Padding(2);
buttonLightingZoneAll.Name = "buttonLightingZoneAll"; buttonLightingZoneAll.Name = "buttonLightingZoneAll";
buttonLightingZoneAll.Secondary = false; buttonLightingZoneAll.Secondary = false;
buttonLightingZoneAll.Size = new Size(83, 36); buttonLightingZoneAll.Size = new Size(80, 36);
buttonLightingZoneAll.TabIndex = 4; buttonLightingZoneAll.TabIndex = 4;
buttonLightingZoneAll.Text = "All"; buttonLightingZoneAll.Text = "All";
buttonLightingZoneAll.TextImageRelation = TextImageRelation.ImageAboveText; buttonLightingZoneAll.TextImageRelation = TextImageRelation.ImageAboveText;
@@ -927,11 +927,11 @@
buttonLightingZoneUnderglow.FlatStyle = FlatStyle.Flat; buttonLightingZoneUnderglow.FlatStyle = FlatStyle.Flat;
buttonLightingZoneUnderglow.ForeColor = SystemColors.ControlText; buttonLightingZoneUnderglow.ForeColor = SystemColors.ControlText;
buttonLightingZoneUnderglow.ImageAlign = ContentAlignment.BottomCenter; buttonLightingZoneUnderglow.ImageAlign = ContentAlignment.BottomCenter;
buttonLightingZoneUnderglow.Location = new Point(263, 2); buttonLightingZoneUnderglow.Location = new Point(254, 2);
buttonLightingZoneUnderglow.Margin = new Padding(2); buttonLightingZoneUnderglow.Margin = new Padding(2);
buttonLightingZoneUnderglow.Name = "buttonLightingZoneUnderglow"; buttonLightingZoneUnderglow.Name = "buttonLightingZoneUnderglow";
buttonLightingZoneUnderglow.Secondary = false; buttonLightingZoneUnderglow.Secondary = false;
buttonLightingZoneUnderglow.Size = new Size(83, 36); buttonLightingZoneUnderglow.Size = new Size(80, 36);
buttonLightingZoneUnderglow.TabIndex = 5; buttonLightingZoneUnderglow.TabIndex = 5;
buttonLightingZoneUnderglow.Text = "Underglow"; buttonLightingZoneUnderglow.Text = "Underglow";
buttonLightingZoneUnderglow.TextImageRelation = TextImageRelation.ImageAboveText; buttonLightingZoneUnderglow.TextImageRelation = TextImageRelation.ImageAboveText;
@@ -951,11 +951,11 @@
buttonLightingZoneDock.FlatStyle = FlatStyle.Flat; buttonLightingZoneDock.FlatStyle = FlatStyle.Flat;
buttonLightingZoneDock.ForeColor = SystemColors.ControlText; buttonLightingZoneDock.ForeColor = SystemColors.ControlText;
buttonLightingZoneDock.ImageAlign = ContentAlignment.BottomCenter; buttonLightingZoneDock.ImageAlign = ContentAlignment.BottomCenter;
buttonLightingZoneDock.Location = new Point(350, 2); buttonLightingZoneDock.Location = new Point(338, 2);
buttonLightingZoneDock.Margin = new Padding(2); buttonLightingZoneDock.Margin = new Padding(2);
buttonLightingZoneDock.Name = "buttonLightingZoneDock"; buttonLightingZoneDock.Name = "buttonLightingZoneDock";
buttonLightingZoneDock.Secondary = false; buttonLightingZoneDock.Secondary = false;
buttonLightingZoneDock.Size = new Size(85, 36); buttonLightingZoneDock.Size = new Size(80, 36);
buttonLightingZoneDock.TabIndex = 6; buttonLightingZoneDock.TabIndex = 6;
buttonLightingZoneDock.Text = "Dock"; buttonLightingZoneDock.Text = "Dock";
buttonLightingZoneDock.TextImageRelation = TextImageRelation.ImageAboveText; buttonLightingZoneDock.TextImageRelation = TextImageRelation.ImageAboveText;
@@ -968,10 +968,10 @@
comboBoxAnimationDirection.DropDownStyle = ComboBoxStyle.DropDownList; comboBoxAnimationDirection.DropDownStyle = ComboBoxStyle.DropDownList;
comboBoxAnimationDirection.FlatStyle = FlatStyle.Flat; comboBoxAnimationDirection.FlatStyle = FlatStyle.Flat;
comboBoxAnimationDirection.FormattingEnabled = true; comboBoxAnimationDirection.FormattingEnabled = true;
comboBoxAnimationDirection.Location = new Point(245, 153); comboBoxAnimationDirection.Location = new Point(244, 153);
comboBoxAnimationDirection.Margin = new Padding(11, 0, 11, 0); comboBoxAnimationDirection.Margin = new Padding(11, 0, 11, 0);
comboBoxAnimationDirection.Name = "comboBoxAnimationDirection"; comboBoxAnimationDirection.Name = "comboBoxAnimationDirection";
comboBoxAnimationDirection.Size = new Size(190, 23); comboBoxAnimationDirection.Size = new Size(191, 23);
comboBoxAnimationDirection.TabIndex = 54; comboBoxAnimationDirection.TabIndex = 54;
// //
// labelAnimationDirection // labelAnimationDirection
@@ -1000,10 +1000,10 @@
comboBoxAnimationSpeed.DropDownStyle = ComboBoxStyle.DropDownList; comboBoxAnimationSpeed.DropDownStyle = ComboBoxStyle.DropDownList;
comboBoxAnimationSpeed.FlatStyle = FlatStyle.Flat; comboBoxAnimationSpeed.FlatStyle = FlatStyle.Flat;
comboBoxAnimationSpeed.FormattingEnabled = true; comboBoxAnimationSpeed.FormattingEnabled = true;
comboBoxAnimationSpeed.Location = new Point(245, 125); comboBoxAnimationSpeed.Location = new Point(244, 125);
comboBoxAnimationSpeed.Margin = new Padding(11, 0, 11, 0); comboBoxAnimationSpeed.Margin = new Padding(11, 0, 11, 0);
comboBoxAnimationSpeed.Name = "comboBoxAnimationSpeed"; comboBoxAnimationSpeed.Name = "comboBoxAnimationSpeed";
comboBoxAnimationSpeed.Size = new Size(190, 23); comboBoxAnimationSpeed.Size = new Size(191, 23);
comboBoxAnimationSpeed.TabIndex = 51; comboBoxAnimationSpeed.TabIndex = 51;
// //
// labelAnimationSpeed // labelAnimationSpeed
@@ -1018,7 +1018,7 @@
// pictureBoxLightingColor // pictureBoxLightingColor
// //
pictureBoxLightingColor.Anchor = AnchorStyles.Top | AnchorStyles.Right; pictureBoxLightingColor.Anchor = AnchorStyles.Top | AnchorStyles.Right;
pictureBoxLightingColor.Location = new Point(321, 80); pictureBoxLightingColor.Location = new Point(304, 80);
pictureBoxLightingColor.Margin = new Padding(4); pictureBoxLightingColor.Margin = new Padding(4);
pictureBoxLightingColor.Name = "pictureBoxLightingColor"; pictureBoxLightingColor.Name = "pictureBoxLightingColor";
pictureBoxLightingColor.Size = new Size(13, 13); pictureBoxLightingColor.Size = new Size(13, 13);
@@ -1035,11 +1035,11 @@
buttonLightingColor.BorderRadius = 2; buttonLightingColor.BorderRadius = 2;
buttonLightingColor.FlatStyle = FlatStyle.Flat; buttonLightingColor.FlatStyle = FlatStyle.Flat;
buttonLightingColor.ForeColor = SystemColors.ControlText; buttonLightingColor.ForeColor = SystemColors.ControlText;
buttonLightingColor.Location = new Point(252, 74); buttonLightingColor.Location = new Point(233, 74);
buttonLightingColor.Margin = new Padding(2, 4, 2, 4); buttonLightingColor.Margin = new Padding(2, 4, 2, 4);
buttonLightingColor.Name = "buttonLightingColor"; buttonLightingColor.Name = "buttonLightingColor";
buttonLightingColor.Secondary = false; buttonLightingColor.Secondary = false;
buttonLightingColor.Size = new Size(90, 25); buttonLightingColor.Size = new Size(94, 25);
buttonLightingColor.TabIndex = 49; buttonLightingColor.TabIndex = 49;
buttonLightingColor.Text = Properties.Strings.Color; buttonLightingColor.Text = Properties.Strings.Color;
buttonLightingColor.TextAlign = ContentAlignment.MiddleLeft; buttonLightingColor.TextAlign = ContentAlignment.MiddleLeft;
@@ -1077,13 +1077,13 @@
panelLightingHeader.Location = new Point(0, 0); panelLightingHeader.Location = new Point(0, 0);
panelLightingHeader.Margin = new Padding(2); panelLightingHeader.Margin = new Padding(2);
panelLightingHeader.Name = "panelLightingHeader"; panelLightingHeader.Name = "panelLightingHeader";
panelLightingHeader.Size = new Size(437, 20); panelLightingHeader.Size = new Size(420, 20);
panelLightingHeader.TabIndex = 41; panelLightingHeader.TabIndex = 41;
// //
// sliderBrightness // sliderBrightness
// //
sliderBrightness.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Right; sliderBrightness.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Right;
sliderBrightness.Location = new Point(246, 1); sliderBrightness.Location = new Point(229, 1);
sliderBrightness.Margin = new Padding(1); sliderBrightness.Margin = new Padding(1);
sliderBrightness.Max = 100; sliderBrightness.Max = 100;
sliderBrightness.Min = 0; sliderBrightness.Min = 0;
@@ -1131,7 +1131,7 @@
panelEnergy.Margin = new Padding(2); panelEnergy.Margin = new Padding(2);
panelEnergy.Name = "panelEnergy"; panelEnergy.Name = "panelEnergy";
panelEnergy.Padding = new Padding(0, 0, 0, 17); panelEnergy.Padding = new Padding(0, 0, 0, 17);
panelEnergy.Size = new Size(437, 96); panelEnergy.Size = new Size(420, 96);
panelEnergy.TabIndex = 43; panelEnergy.TabIndex = 43;
// //
// labelLowBatteryWarningValue // labelLowBatteryWarningValue
@@ -1199,7 +1199,7 @@
panelEnergyHeader.Location = new Point(0, 0); panelEnergyHeader.Location = new Point(0, 0);
panelEnergyHeader.Margin = new Padding(2); panelEnergyHeader.Margin = new Padding(2);
panelEnergyHeader.Name = "panelEnergyHeader"; panelEnergyHeader.Name = "panelEnergyHeader";
panelEnergyHeader.Size = new Size(437, 20); panelEnergyHeader.Size = new Size(420, 20);
panelEnergyHeader.TabIndex = 41; panelEnergyHeader.TabIndex = 41;
// //
// pictureBoxEnergy // pictureBoxEnergy
@@ -1240,7 +1240,7 @@
tableLayoutProfiles.RowCount = 1; tableLayoutProfiles.RowCount = 1;
tableLayoutProfiles.RowStyles.Add(new RowStyle(SizeType.Percent, 50F)); tableLayoutProfiles.RowStyles.Add(new RowStyle(SizeType.Percent, 50F));
tableLayoutProfiles.RowStyles.Add(new RowStyle(SizeType.Percent, 50F)); tableLayoutProfiles.RowStyles.Add(new RowStyle(SizeType.Percent, 50F));
tableLayoutProfiles.Size = new Size(437, 38); tableLayoutProfiles.Size = new Size(420, 38);
tableLayoutProfiles.TabIndex = 44; tableLayoutProfiles.TabIndex = 44;
// //
// panelBatteryState // panelBatteryState
@@ -1302,11 +1302,11 @@
buttonSync.BorderRadius = 2; buttonSync.BorderRadius = 2;
buttonSync.FlatStyle = FlatStyle.Flat; buttonSync.FlatStyle = FlatStyle.Flat;
buttonSync.ForeColor = SystemColors.ControlText; buttonSync.ForeColor = SystemColors.ControlText;
buttonSync.Location = new Point(5, 37); buttonSync.Location = new Point(223, 5);
buttonSync.Margin = new Padding(2, 4, 2, 4); buttonSync.Margin = new Padding(2, 4, 2, 4);
buttonSync.Name = "buttonSync"; buttonSync.Name = "buttonSync";
buttonSync.Secondary = false; buttonSync.Secondary = false;
buttonSync.Size = new Size(431, 25); buttonSync.Size = new Size(195, 25);
buttonSync.TabIndex = 46; buttonSync.TabIndex = 46;
buttonSync.Text = "Synchronize with Mouse"; buttonSync.Text = "Synchronize with Mouse";
buttonSync.UseVisualStyleBackColor = false; buttonSync.UseVisualStyleBackColor = false;
@@ -1322,7 +1322,7 @@
panelBottomButtons.Location = new Point(7, 731); panelBottomButtons.Location = new Point(7, 731);
panelBottomButtons.Margin = new Padding(2); panelBottomButtons.Margin = new Padding(2);
panelBottomButtons.Name = "panelBottomButtons"; panelBottomButtons.Name = "panelBottomButtons";
panelBottomButtons.Size = new Size(437, 66); panelBottomButtons.Size = new Size(420, 45);
panelBottomButtons.TabIndex = 47; panelBottomButtons.TabIndex = 47;
// //
// buttonImport // buttonImport
@@ -1335,11 +1335,11 @@
buttonImport.BorderRadius = 2; buttonImport.BorderRadius = 2;
buttonImport.FlatStyle = FlatStyle.Flat; buttonImport.FlatStyle = FlatStyle.Flat;
buttonImport.ForeColor = SystemColors.ControlText; buttonImport.ForeColor = SystemColors.ControlText;
buttonImport.Location = new Point(222, 6); buttonImport.Location = new Point(106, 6);
buttonImport.Margin = new Padding(2, 4, 2, 4); buttonImport.Margin = new Padding(2, 4, 2, 4);
buttonImport.Name = "buttonImport"; buttonImport.Name = "buttonImport";
buttonImport.Secondary = false; buttonImport.Secondary = false;
buttonImport.Size = new Size(214, 25); buttonImport.Size = new Size(102, 25);
buttonImport.TabIndex = 48; buttonImport.TabIndex = 48;
buttonImport.Text = "Import Profile"; buttonImport.Text = "Import Profile";
buttonImport.UseVisualStyleBackColor = false; buttonImport.UseVisualStyleBackColor = false;
@@ -1355,11 +1355,11 @@
buttonExport.BorderRadius = 2; buttonExport.BorderRadius = 2;
buttonExport.FlatStyle = FlatStyle.Flat; buttonExport.FlatStyle = FlatStyle.Flat;
buttonExport.ForeColor = SystemColors.ControlText; buttonExport.ForeColor = SystemColors.ControlText;
buttonExport.Location = new Point(5, 6); buttonExport.Location = new Point(2, 6);
buttonExport.Margin = new Padding(2, 4, 2, 4); buttonExport.Margin = new Padding(2, 4, 2, 4);
buttonExport.Name = "buttonExport"; buttonExport.Name = "buttonExport";
buttonExport.Secondary = false; buttonExport.Secondary = false;
buttonExport.Size = new Size(197, 25); buttonExport.Size = new Size(103, 25);
buttonExport.TabIndex = 47; buttonExport.TabIndex = 47;
buttonExport.Text = "Export Profile"; buttonExport.Text = "Export Profile";
buttonExport.UseVisualStyleBackColor = false; buttonExport.UseVisualStyleBackColor = false;
@@ -1433,7 +1433,7 @@
AutoScroll = true; AutoScroll = true;
AutoSize = true; AutoSize = true;
AutoSizeMode = AutoSizeMode.GrowAndShrink; AutoSizeMode = AutoSizeMode.GrowAndShrink;
ClientSize = new Size(451, 803); ClientSize = new Size(451, 699);
Controls.Add(panelBottomButtons); Controls.Add(panelBottomButtons);
Controls.Add(panelEnergy); Controls.Add(panelEnergy);
Controls.Add(panelLighting); Controls.Add(panelLighting);

View File

@@ -1,549 +0,0 @@
using GHelper.Helpers;
using System.IO.Compression;
namespace GHelper.Display
{
public static class ColorProfileHelper
{
public static string? GetProfileUrl(string model)
{
byte[] data = Convert.FromBase64String("aHR0cHM6Ly9kbGNkbi1yb2dib3hidTEuYXN1cy5jb20vcHViL0FTVVMvQVBTZXJ2aWNlL0dhbWluZy9TWVMvUk9HUy8=");
string baseUrl = System.Text.Encoding.UTF8.GetString(data);
var profiles = new Dictionary<string, string>()
{
{"FA_Series", "2177-APOR41-de476ec68578c865e886ef6872aa56ee.zip"},
{"FA506IC", "7822-ZGQ1KC-bc80be3be7ca585bef60f526b6461c86.zip"},
{"FA506ICB", "13914-2HYCD7-95fabfe5669a204620517f0158c0cea1.zip"},
{"FA506IE", "7828-57N8GH-9fe07a7e4ebde12a8d4682d3ffa66fe4.zip"},
{"FA506IEB", "14661-ZYWH5T-3b45ebeb7fca81d98796d5960e11226c.zip"},
{"FA506IH", "3407-VZBOUN-8a12385fa46e077010677d330e9320d5.zip"},
{"FA506IHR", "7823-15HGA0-44d621a3c0f0dd2c407f67d262871be0.zip"},
{"FA506II", "3410-9ZXQO2-aa08794537699c5dbfcca49b63fb7f8d.zip"},
{"FA506IM", "7824-EKKW9A-21c7e073a81fc868b78e605b17290839.zip"},
{"FA506IR", "7825-G6XND9-c16ea7e98b58e878c61d1071b100ee60.zip"},
{"FA506IU", "3413-AMCR39-2a8b889a8810da4e8692f87e1ae3ea2c.zip"},
{"FA506IV", "3415-VA0CJ6-266febe84bcecc5ed89fdc286f444ce2.zip"},
{"FA506NC", "18359-BM2XCN-3ca9de427310b05afa92dcbe1babf947.zip"},
{"FA506NF", "18361-CU7H6I-55beba8445b9aa0fe9cbeb8ec9a47ccf.zip"},
{"FA506QC", "7829-LBYY5U-b14343c260b738563b69ad0e4f4b88d1.zip"},
{"FA506QE", "7827-75P3DP-b664f4da04e77ed1faa722bf0c781d82.zip"},
{"FA506QM", "9440-87VQKP-48357026f1f3099cfed1161a320587f0.zip"},
{"FA506QR", "7830-KO7FQ6-618480f72c2e68bafc594b5323a5d13c.zip"},
{"FA507NI", "14451-N6AX9R-0bc8e15be5cf889c755aaa7052f6fee8.zip"},
{"FA507NJ", "14454-QXKHOE-d28f2eb001f9b7ce0582cbe33961a6ad.zip"},
{"FA507NU", "14452-EZXLVF-c64dd3d7efede78df653b029888d9d04.zip"},
{"FA507NUR", "18871-WR3YMP-6cbcd0502eb9bf200465e36c4de8c9fd.zip"},
{"FA507NV", "14453-VC333P-41549f64788d59c9711eccec892fa8c1.zip"},
{"FA507NVR", "18872-HVR4UY-220dc7f3f73cf12b2af2505db6ce67ab.zip"},
{"FA507RC", "11448-0TRT8V-7712eb9302300dd82815027efbbe4787.zip"},
{"FA507RE", "11449-ONC7VG-a7ac70468292336f63532c21204d69d4.zip"},
{"FA507RF", "14311-X72FIU-66bf16069a82bdf2cc09f8b92cb25c67.zip"},
{"FA507RH", "11453-W4B8H4-e1645d3ce1e0216a30246ad6a84c3819.zip"},
{"FA507RM", "11452-ZGHOOO-f3bddf2fddd3c027568646bc5afe3c7d.zip"},
{"FA507RR", "11450-UU8KFV-2c718d16687fa3b038e625f504ccd13f.zip"},
{"FA507RW", "11451-XHL0SH-c2702d2047b7b93636cc1372caf25a75.zip"},
{"FA507UI", "17850-4J1GCV-c30e3d47aa82df4e3f0754888903c5dd.zip"},
{"FA507UU", "17851-PIGBD6-45227ab485302ec2cca63f0bbb71d473.zip"},
{"FA507UV", "17852-T32MPT-a2fd989758365b8a04e4dc5bbb146af1.zip"},
{"FA507XI", "14817-A522MM-fad14cb28f00b94735eb55c2b3b7b892.zip"},
{"FA507XJ", "14820-8RT0TF-9d341fae2a290494206deb5fcf1fd427.zip"},
{"FA507XU", "14818-3PA2GD-2d1e2d035309ec7282a1c47e27f7c7fd.zip"},
{"FA507XV", "14819-ET4L73-daf905274776ae9c92a7b74e687dc63d.zip"},
{"FA607PI", "17579-FL63B4-df08bf92fe3c156ce738e43de7824d65.zip"},
{"FA607PU", "17580-WM413K-eff7721ca9ec5b633ef196dbfcd58ff2.zip"},
{"FA607PV", "17581-JNXO2Q-15d026a4ae630d44b28c18aee0a99e51.zip"},
{"FA607RC", "10190-XHDRTQ-0e6c248e3dab6bb07e052edd963c5218.zip"},
{"FA607RE", "10194-AF495K-23a4d74be5132e4babc64bb13237a12b.zip"},
{"FA607RH", "10191-9BS333-c6deb5f9fd5a37d446d2722da54c0ec3.zip"},
{"FA607RM", "10195-4U5EEF-cf98d168cacdd5a60782e881a9c143be.zip"},
{"FA607RR", "10193-FYX2N7-730c76e49ef71a6164804eafd2621dab.zip"},
{"FA607RW", "10192-UFOOP3-f52a50dac189ffa96560f73e04c53a6c.zip"},
{"FA617NS", "15967-YKHJ0B-89095e43578e64c160d2952bb14513f2.zip"},
{"FA617NT", "15970-C1BW39-2ef1c5d5d9a967cf2fc1f511d3db3a43.zip"},
{"FA617XS", "15968-Y9NFXN-cb420fe6e177fc1cf675e9d42a6fd0ea.zip"},
{"FA617XT", "15969-UKYP5L-ad54051ebbad4b17693b65f5bceda799.zip"},
{"FA706IC", "5215-5J3H5Y-d2cdc2f5e03d68e5e5e562581a77c8e6.zip"},
{"FA706IE", "8827-43DTPG-ba6be621f7d0dda88e5391164cbc7a74.zip"},
{"FA706IH", "2610-2EJ0EQ-245d43d7bd14bb3e664fa96e9f5a690e.zip"},
{"FA706IHR", "8828-XBJAQU-5d8064b0fb63ca7866ee4cf821ece676.zip"},
{"FA706II", "2611-HO3IK9-2fb972a395137c940151723b01e9b9cb.zip"},
{"FA706IM", "8829-GWFKN5-5ab773eb09bfb3099137fae3c7d547c1.zip"},
{"FA706IR", "8825-63J2NY-2496ecf21b5fa71e65671531b670cdac.zip"},
{"FA706IU", "2608-EI64MF-64c35bda7789e6e71298e22d793b78d4.zip"},
{"FA706NF", "18362-1V7Z1Z-0bc79f01bdfadc5b39342fba622a5b8d.zip"},
{"FA706QC", "8826-032S4E-868933565b1a7d762bda8cafc1e77458.zip"},
{"FA706QE", "8824-KZNJL9-9d827f4973d4c9787ff050dc1bf35eef.zip"},
{"FA706QM", "8830-6NX7U4-b7bbfe663aa954534d33d2f822181728.zip"},
{"FA706QR", "8823-RXSLAC-a2720365e842af1dd826920fb447fba5.zip"},
{"FA707NI", "14455-19J6WZ-10282c6083ee018a614e75bc809ecf1f.zip"},
{"FA707NJ", "14457-BGJD0K-d963ff94009c9a2a5b99606eac711a95.zip"},
{"FA707NU", "14456-VAZ4LS-1d798d3873c55e9d10b43a3f2b12cd15.zip"},
{"FA707NV", "14458-7G8B40-08117ddb45ed3c6978aa4ad60e3d2c96.zip"},
{"FA707RC", "10196-81D3O0-94ccf4d908c9bcb44f8f9092ef9fa2e2.zip"},
{"FA707RE", "10200-AUS9AW-7f366055be2ae2b4c659aa9590bb4d5e.zip"},
{"FA707RF", "14312-6KGU80-09ba6d3e3b490c3d1dce3d16df62cd8a.zip"},
{"FA707RH", "10197-BB5746-a958ff2eeedcfd1753c2e7151c0a3f96.zip"},
{"FA707RM", "10198-TBWO12-e35e49d79fcc03c5cc84b5b40c222e80.zip"},
{"FA707RR", "10199-LILM59-05448f5e429c6c4be7b531d0b6aa2319.zip"},
{"FA707RW", "10201-0KXC4K-3dca8e95a9e676a1010efc79becde228.zip"},
{"FA707XI", "14821-JO8WIQ-77921f1a7a523fe5674f39f10e66f4a3.zip"},
{"FA707XIN", "14822-7W7Q8W-e2e50358e878b092fc888e8e70575985.zip"},
{"FA707XJ", "14823-MX6CGK-0d0862cd441f96a72b1c8baeaa8aa3b4.zip"},
{"FA707XU", "14824-O2LZZA-f0ea2bf54bbc4fd4e7391048f4a083e4.zip"},
{"FA707XV", "14825-DUSKD1-7d0a055d869a7366105380c44788724b.zip"},
{"FX_Series", "2174-J1XJKV-bd932ade5eebb0b2f1a36eac85bc5c7d.zip"},
{"FX505DD", "3439-CJLCNE-3df3a90619c571de2917a35a402fe6cb.zip"},
{"FX505DT", "3427-H77L9I-2f3f50fbbb1dc4ac6e703b2820acb491.zip"},
{"FX505DU", "3426-9P4PXL-7e640e1e38c6395bc5455bdf838ea83d.zip"},
{"FX505DV", "3425-31OQ2O-3ab11acfb17dca8f339fe0b8a4efa33d.zip"},
{"FX505DY", "162-H1YFBE-1e5c82e28fa35559e5f7a6aa934d7405.zip"},
{"FX505GT", "3423-8CCGEQ-a72ef69d8d5aab7bfd3eb34e2a55cd48.zip"},
{"FX505GU", "3424-9J0I5H-1c209ee72d9f7ba2caa559fddd9f5fdc.zip"},
{"FX506HC", "7821-BDCXZM-23e718ce9f58cbef286e77c7d97752d0.zip"},
{"FX506HCB", "8452-QZYXAU-9385f6b96812173b12dcf23934d2729d.zip"},
{"FX506HE", "7831-C0XU6K-16e393308545bf5fa327997b33edeba9.zip"},
{"FX506HEB", "8453-42FVNT-a7c6b122bb1f2e16340c016d09b43c13.zip"},
{"FX506HF", "14511-KKQA1F-9129e79baf1215ce451e791b51fee304.zip"},
{"FX506HHR", "7832-KJD4ZK-d6e5fcf84caf94be5b312d6233876322.zip"},
{"FX506HM", "7833-2EVLVM-3082377bce59838bf06bd09c3c9911fe.zip"},
{"FX506HMB", "8454-32DRJH-818506f55eef4d13839ea8e8d8765534.zip"},
{"FX506LH", "10917-Y6JJC7-4596433cf10a71242d9a9255c2b31458.zip"},
{"FX506LHB", "16838-WYAR19-d3f87642f6cf12ec77e231b7d405fa61.zip"},
{"FX506LI", "4428-Y7KRBX-df2c328780c4506a2cb2279ddf84ca58.zip"},
{"FX506LU", "4429-34SZ6D-2df0b447ff1dcf6d887cad5c679331de.zip"},
{"FX507VI", "14064-MTRMKH-169de48f4b0b3035315106bde1a1020f.zip"},
{"FX507VI4", "14065-9VTCNA-b5e0ac043ffd3e3ffab879f6401b2e07.zip"},
{"FX507VJ", "14066-W5FPY3-89180f515ba2c785b1f87c895e09cee9.zip"},
{"FX507VJ4", "14067-DKVRHI-bc0fa5ec61259e31536356ec67d27cb5.zip"},
{"FX507VU", "14071-EEJKDG-95e42e7c6ebaea33206a1de566588ae8.zip"},
{"FX507VU4", "14069-1JAF2A-4d328ede6adf0796924734da3e04a18f.zip"},
{"FX507VV", "14068-QO62TU-b6aadf3d84f816a42f111649bb1381ae.zip"},
{"FX507VV4", "14070-WHB99Q-57b4d0c8f9405038db3e298f72474505.zip"},
{"FX507ZC", "11454-8DEVNS-3503e698cf0b56b387bf65ebd0169786.zip"},
{"FX507ZC4", "13785-D9YTVH-2fb9db83c6f04518f230d1d453373e5d.zip"},
{"FX507ZE", "11459-DKP456-c8d8862da76207dc0a3bf2642b98632d.zip"},
{"FX507ZE4", "13786-3YM16F-fa4c0a13c74e6c1253d464bbb035cbc3.zip"},
{"FX507ZH", "11455-OQI6ZD-866eb458d7ab9ac51cb88966b2c4acf1.zip"},
{"FX507ZI4", "14056-D01K4S-bb2cfa4d564b8a6834c78d675aebdd1c.zip"},
{"FX507ZJ4", "14057-YY0XRG-4f7570dee1902f2012b812d50b0d2334.zip"},
{"FX507ZM", "11456-OM12KU-7c91b2d14b093dc2eef17a555e14ada3.zip"},
{"FX507ZR", "11458-P8RTC8-2b3802527c98749fb68397f35c6bb86b.zip"},
{"FX507ZU4", "14058-9ZYS4E-7e244d3e7dc3641d602130563c1c84b7.zip"},
{"FX507ZV4", "14059-VBGCNK-0314facaf02290da1a75d1b00455cb3a.zip"},
{"FX507ZW", "11457-4F1FOO-5f24a98f90735cedf1ad9fb5ac90adbf.zip"},
{"FX516PC", "7788-GJYPET-06cf200d5b8fb92c807de03796535e80.zip"},
{"FX516PE", "7789-WIT1BW-b32fd9546ac9ac5b6878a3f46c30247c.zip"},
{"FX516PH", "7237-G94WZH-30c10f820dcdf03cc661fd9b73c2927a.zip"},
{"FX516PM", "7790-OG0DVJ-e7ad44e2fa38eb4256e09a62a744659a.zip"},
{"FX516PR", "7791-LJ7RQ7-36c58a0b55aeb5c3782302fd58139815.zip"},
{"FX517ZC", "13757-QJDW9D-ab71bd2ecf24d182bf32fbd931b24e58.zip"},
{"FX517ZE", "13758-75WLCE-fac3186e372a6e0e422d3d78de1addb3.zip"},
{"FX517ZH", "11461-A4BH34-2464f8a583b064ab2bdb336dc13d8b2e.zip"},
{"FX517ZM", "13759-694BOG-7b8f61a1d8a387715721fd2b8e0bd766.zip"},
{"FX517ZR", "11463-MCHEWS-7a732705aea49eb663fe1e8930c463de.zip"},
{"FX517ZW", "11464-S41ORA-d99633ecf421ba4ab73800bc9ebf2e5b.zip"},
{"FX607JI", "17739-YJBJMA-59c984b28eeb6c02498190f768b12b52.zip"},
{"FX607JIR", "17740-78V0QP-43bf1ea30f94d3d3a286f42dd90a1816.zip"},
{"FX607JU", "17744-JEFX0I-f1ee2104c17a5cc511efefa3dc7b9601.zip"},
{"FX607JUR", "17743-A2JS5H-224a1f32f7dbfecb0d6b91fdb6ffac8e.zip"},
{"FX607JV", "17741-OWALZC-eb293a03c7b4595270939bccfe891656.zip"},
{"FX607JVR", "17742-3OOC7N-f28635b55ce56f9e32672b2e409a075c.zip"},
{"FX607VI", "14072-0Z0LX5-c3145816b5c9b045a3e829e194425624.zip"},
{"FX607VJ", "14073-H1KA78-95472184994955393ebf635af4a55c71.zip"},
{"FX607VU", "14074-RCMD10-b606bf5fd03bdf6a8aef412202de86ff.zip"},
{"FX607VV", "14075-BX4NJX-a9e24be091f08e6cc3885397f143bdc5.zip"},
{"FX607ZC", "9267-SQXQMT-edf1ee77d7f276d9b2f14fbe80e86459.zip"},
{"FX607ZE", "9268-MI06A0-5f60b76f497adb2c80dc5d34e7ca00ef.zip"},
{"FX607ZH", "9266-75PO51-12f649be993639c1ff986129977bc516.zip"},
{"FX607ZM", "9269-MEPP17-baf25a9abae3ae712da40dc6c4f2de22.zip"},
{"FX607ZR", "9285-7B20C5-9a0ee909d954eda9fd9f334a6b76bdda.zip"},
{"FX607ZW", "9265-9H05OM-5b2735efc15db9c49302451b728338a8.zip"},
{"FX617ZC", "9263-3PLDC1-74d554f08fac5b1689c7dbb581fc97c4.zip"},
{"FX617ZE", "9264-9L5V7F-203b8f8a48d47470aef80dd42bbef60b.zip"},
{"FX617ZH", "9261-DIXTFE-b20887acff77b59a80e62088caf695f3.zip"},
{"FX617ZM", "9262-OXO77E-8476443cfd885a718b915731b9807bc0.zip"},
{"FX617ZR", "9286-VA9VXJ-8c69c08b5812b00656142d93cb5a5013.zip"},
{"FX617ZW", "9260-O8UGYN-9678cab288d9b85ec59961647ca94ff7.zip"},
{"FX705DY", "163-N6IM0Z-3bee0b29abd2d6b419ba322661d64a6a.zip"},
{"FX706HC", "8834-3HMY7W-fb49a16bc9cda208a3acf5f2ea32fc63.zip"},
{"FX706HCB", "8835-FHPH4O-319d35ab96a1eef3b5ae7fefde106cf2.zip"},
{"FX706HE", "8833-SW8GIL-71ae2ebbdb18ec3380cf682be0ca32a3.zip"},
{"FX706HEB", "8836-SUE4HH-55876358bbe39f53ea2010c8f66e9093.zip"},
{"FX706HF", "17052-8B8C18-0c762fb15cd6367d08c954ce5e01f497.zip"},
{"FX706HHR", "7837-S711RT-ed9d8a61e80895a6403dda19ac873f62.zip"},
{"FX706HM", "8832-O7W1D2-853dd8eb62665c369cd2c3b716a53b80.zip"},
{"FX706HMB", "8831-NKXZ56-437ac6d56280dd0734f9f56db3ba6a6f.zip"},
{"FX707VI", "14076-C4CQ2E-0771f0ec46072ac38a7dbb8829783298.zip"},
{"FX707VI4", "14078-UXPPY2-ffe538cd58da15c780e6263c2818f995.zip"},
{"FX707VJ", "14077-6KB0BJ-af4fae81000b0143477091deaca569da.zip"},
{"FX707VJ4", "14080-YBM0VD-bef842b5fcc1b49cb054cfb1eb3d2258.zip"},
{"FX707VU", "14081-I8JRY3-2ab8a5dcab2033a19de169e424da1530.zip"},
{"FX707VU4", "14079-TALDGM-c7d6c6820a223967463a76152e178af4.zip"},
{"FX707VV", "14082-2UYJNX-a21d4e4e856e8a4fe52b30593705d818.zip"},
{"FX707VV4", "14083-79JC8K-74d96cb066ded2d86255755fdc1f3167.zip"},
{"FX707ZC", "9278-7TRFVL-9a0693a78d8d69a265cb7101314dd055.zip"},
{"FX707ZC4", "13358-EPBJ9S-035eca4acee4db9814f693f4aeef0147.zip"},
{"FX707ZE", "9279-QYJXB7-17ff65bda614791358426882d48be6fe.zip"},
{"FX707ZE4", "13357-V3LZL7-64a1ecac6b4657e98a422cd5657cc89b.zip"},
{"FX707ZH", "9280-62FAFQ-3193a4215440ecbe7fece9091fad6205.zip"},
{"FX707ZI4", "14060-EEB7IW-e716f0f9a1f8f91e5ae93d902de96385.zip"},
{"FX707ZJ4", "14061-T7UBPM-91f62b48749f5ed42e3c3d1f2b8bb645.zip"},
{"FX707ZM", "9281-YKO83G-ff6a896b4e055cc6500470636cf9e1ad.zip"},
{"FX707ZR", "9284-GYDQK8-bfdc718699fb7030b0f133402933e12f.zip"},
{"FX707ZU4", "14062-52EB12-8a85d0170af52dfbaf216b98085015d0.zip"},
{"FX707ZV4", "14063-R6EM57-62ad692f855e33bb05aaae1823207415.zip"},
{"FX707ZW", "9282-E6GYQU-5f673e25b2ef5e57c78e36668e9c5e9f.zip"},
{"G_Series", "2176-RS8S2K-e815e5e0be51e1bd76674cd3826cbfec.zip"},
{"G512LH", "3312-AM98EE-e9a32238fa66ffe8683ff0a34019f216.zip"},
{"G512LI", "3310-9MDL49-daee5dd162a699f60f2bb68a3cba7ef7.zip"},
{"G512LU", "4150-SX012C-b6e7d21b645495f57b2fb7bd9734e839.zip"},
{"G512LV", "4151-LUEHCJ-f145d1dd67079a3739a564cb04eaa6ff.zip"},
{"G512LW", "4152-4IMGHN-f0a946d2f21860039a9181b17ca1f1be.zip"},
{"G512LWS", "4153-IZDAY7-3cc48027800d6d123db4f584a5a2e4a4.zip"},
{"G513IC", "7233-I1XU1L-57f580817efeb347c2e64b467b569d48.zip"},
{"G513IE", "7232-7C4QK2-effb8e534fc4639d7fd72e957e1a13fc.zip"},
{"G513IH", "7231-YGY2HL-ef7e448a0e3b2502219c74c2f8a26a72.zip"},
{"G513IM", "7883-JSH1ET-04fb928a7fe54481b8156627d30451ce.zip"},
{"G513IR", "7884-DB01TN-5bdc2457c9a42ad9c0b1ab82139beeac.zip"},
{"G513QC", "7228-I73APA-79e1e7f9582bdc44f510d651e909250b.zip"},
{"G513QE", "7227-9J3H2Y-d222e0119fef169bbe0f20f754743ca7.zip"},
{"G513QH", "7226-MUU2SQ-05a65cada4f1c986b7b2c5e2cf7ea796.zip"},
{"G513QM", "7882-2FWOWK-ca956a4c309edb8cd9d9c24178ec3912.zip"},
{"G513QR", "7885-4VL6WK-6a21c044bb2d69f55febdb6ffcd5b7d8.zip"},
{"G513QY", "7881-S6R4GZ-5832d1de6fc107509803927e4a52ebf7.zip"},
{"G513RC", "14513-WMQ0GS-4018fc7459d96efec72f15f724c33062.zip"},
{"G513RE", "14516-VXJYUR-fbaadee0ba8dea2a24282b2be882d571.zip"},
{"G513RH", "11732-8ODACG-845738811f5dcaee76c7ba113ed0c8bd.zip"},
{"G513RM", "11735-UXEJT9-03457f6d6350f0a860fe6386de27a659.zip"},
{"G513RS", "11733-9SABRD-3a4c8dee5ff96668dc9ff509d626e17e.zip"},
{"G513RW", "11737-VS9IFQ-b9c6657578263ac3ab1062b32ab599bb.zip"},
{"G513RX", "11736-CHOX6M-ca19a5d6e7153102c3825f8b3371b4d7.zip"},
{"G531GD", "3698-YSDO31-352980933199182c587573ecf056711b.zip"},
{"G531GT", "3697-OYLYLQ-4916a89afb3a6964cb2b0ddd8dc45fe1.zip"},
{"G531GU", "744-S7QQP3-8572157fa95e0eb235f29df0227d5064.zip"},
{"G532LU", "4146-NF3MBY-79c262fe416eb469fdff811d501233c9.zip"},
{"G532LV", "4147-F6P59K-328b1796ee854653a1470be865e06d0e.zip"},
{"G532LW", "4148-KUJ0SA-affcc286138b433b9b051dffc8158672.zip"},
{"G532LWS", "4149-RDJKG0-c5f4470225e184cdbc34b9b41c9e2666.zip"},
{"G533QM", "7880-VL41LZ-ea6868a4918e7a2571a169b0b20d53de.zip"},
{"G533QR", "7879-3915UU-cec5ce6e895bc9acf0367b1ae69d7d01.zip"},
{"G533QS", "7878-SLEHTN-4844d16bf258768105873010c17398ea.zip"},
{"G533ZC", "11725-BVSBSP-1f91feb49662e4f4257a27ea081db4ac.zip"},
{"G533ZE", "11730-DEG4Q9-3d77f3901752747e449fdaa5467a250b.zip"},
{"G533ZM", "11726-01FCGK-180459312539e4c38def3c7323a60494.zip"},
{"G533ZS", "11728-KGTOE8-4fe0474fc6e8944dbdcf726bad1a7db1.zip"},
{"G533ZW", "11727-98BKOJ-93e373e64e92c21ff018ba6c66a9de9d.zip"},
{"G533ZX", "11729-XNFMPR-e0aad4e4d4956dba8629f419b1f86026.zip"},
{"G614JF", "14496-NAATJZ-a3847e890e57aa749645b854b28ead79.zip"},
{"G614JI", "14168-4VTU0U-37decb2df809672eccf1156769eda929.zip"},
{"G614JIR", "18120-52TT5M-28a5c8e138ed1660e9eadc81121f789a.zip"},
{"G614JJ", "14497-P0D5PL-abe178509e0316da9ee56b24e15d0384.zip"},
{"G614JU", "14498-5D71EB-2300be03087494ee34356470ca022b7c.zip"},
{"G614JV", "14500-SPJCAL-a8e2e223857c334ba4c20c8122151bb7.zip"},
{"G614JVR", "18121-2WOF0H-4e7045c7a210693fef2b99b8e032316b.zip"},
{"G614JZ", "18199-P9WWOH-093d361358629a2bddd5bff7b5fb7a5f.zip"},
{"G634JY", "14163-JLRBOO-8ea519425efe56cc144e38d22cebd3f0.zip"},
{"G634JYR", "18087-6Z1W8Q-cd92004b6b9392e2cf07317db8ca9c6d.zip"},
{"G634JZ", "15827-MSW5I1-0f39e92313e54afe3e35f5636dc37fd5.zip"},
{"G634JZR", "17891-O7PAGL-5c6e6d059ff7bc1b9245fdf8a8066263.zip"},
{"G703GX", "105-NMT9XG-76a0810ddf16ee376fa049bd179377fc.zip"},
{"G712LU", "3364-3GYELH-a0f545d6a2f5ca2516e91f0495f98110.zip"},
{"G712LV", "3365-UYDEWV-6675727e4e0588b95d9faa2df69b1972.zip"},
{"G712LW", "3366-OK41IE-fc01da1e3d6217e6bce24f3237b5631e.zip"},
{"G712LWS", "3367-N1B9F6-72dd79495de9b660a8b120579c708623.zip"},
{"G713IC", "14187-GKTF5N-c602fb66b48f86aa2ab7b14367dba7b0.zip"},
{"G713IE", "11023-PVEVI5-bfa9a58633213b87629c5117030d54f2.zip"},
{"G713IH", "6317-I3AGUT-a0a1e3b68265d7bd3a2a1657afa0cfb6.zip"},
{"G713IM", "7890-IC1UIL-85b242f2f61aef5cd16166178b6a1adc.zip"},
{"G713IR", "7891-832AOR-104e408922a3f0c4e8d97d03dd000083.zip"},
{"G713PI", "14527-XK0JY1-ffe9b04acfd36ebcf3b1331577515b8c.zip"},
{"G713PU", "14528-AC10R7-ee30e2f76e16c16db44758ac911e9d61.zip"},
{"G713PV", "14530-3ONUVM-abf27eca2271dcdfd150acdf6cc26800.zip"},
{"G713PVN", "14529-YMPI29-b958f3ae6ad8118997c16c87d9840fb9.zip"},
{"G713QC", "5496-KAW7ZL-7a45d99d71ba375d79d047a015c27c2a.zip"},
{"G713QE", "5497-T7QUN2-f5c00e128ed96b9727dcdfb4d857dbb7.zip"},
{"G713QH", "6316-ANOUE8-9b18e7d3aeaeb5cc4520be09df860617.zip"},
{"G713QM", "7892-JCIYF7-acf05d6b34e417efed385e84dc079677.zip"},
{"G713QR", "7888-XIBCC9-d2e608529ce49f0daf90bf3d81cbd69e.zip"},
{"G713QY", "7889-FH9X9W-5c4d00f5506924fc9f29e1c190b1bf51.zip"},
{"G713RC", "14514-8R6TFS-eb95e08804622256fc5be85a1f14301c.zip"},
{"G713RE", "14515-LTB9LQ-a6a522a9d63083e0366d13f40af54ebf.zip"},
{"G713RH", "11305-VO5JTS-7cb1b763f054da29ce2ba1e08c897a60.zip"},
{"G713RM", "11309-GX2AYR-5b172b743c185242080b08dd7e2b7fc7.zip"},
{"G713RS", "11306-E1A3OM-37679d1dfc144d892325420d784f5d8e.zip"},
{"G713RW", "11308-IPZSAB-6c8827c63a27cee6257c755bf0bd9c41.zip"},
{"G713RX", "11307-JGFO1D-cff83a2f34e3c0ed755ed63c20d2905d.zip"},
{"G732LU", "3368-C89MVD-1ecb4a036b697bd4bd027d2bd160d219.zip"},
{"G732LV", "3369-TI19K6-56ca5eb37397117c97e0bae42e82b2b4.zip"},
{"G732LW", "3370-HLPSUS-9c7615d0220bde50de5ecd4c7e51182c.zip"},
{"G732LWS", "3371-B4CG89-c22a9f4deb49d6e1e921ebd5a0cab685.zip"},
{"G732LXS", "3372-OJEP07-c0e21f578660bec502aec19a3645b067.zip"},
{"G733CM", "11332-V8B7E9-2a7f61f88106051be62b57250ed33eaf.zip"},
{"G733CW", "11334-MQ3PJE-f03f2950247ac635dda1b30245d220aa.zip"},
{"G733CX", "11333-XS984I-d48bb5ee3416d47fa203090bc8bce04d.zip"},
{"G733PY", "14531-B4NFUU-4ec97a54081ea4b713975fd1ab7c1b80.zip"},
{"G733PYV", "15178-1CIVEB-5a9d09a4d22d6361992c7cd6ca27fb41.zip"},
{"G733PZ", "14532-4UUM5E-296ee92ca5416a8c59bffd6f101feaa5.zip"},
{"G733PZV", "15179-EDHNHX-ce69d260b1e8077d8d522d3b4326322c.zip"},
{"G733QM", "7893-OW1O2I-a2dcb8ff88cae20c7086bac8d9312dbc.zip"},
{"G733QR", "7887-OA7Z12-bc86110ff0d1f359d9230fca8bbabe51.zip"},
{"G733QS", "7886-V9PIMC-27ca6272c2b093264d88a32f1093a4fe.zip"},
{"G733QSA", "5501-LX7POZ-9289c2079bdb48e2fdd76d7981fb0e5d.zip"},
{"G733ZC", "10077-J3XTHP-525deb09f2ada7dc36dc82772f7a9cce.zip"},
{"G733ZE", "10079-KAW34P-16c4b5e812e10019f21b4d7f879acfaf.zip"},
{"G733ZM", "10078-K6B3CR-63dd00f6ecc3eb61e92439ef5caaea17.zip"},
{"G733ZS", "10081-VM2AN1-517b1e41388f12048ec3a88c780f1d65.zip"},
{"G733ZW", "10080-HY42QH-aa285046069cfe113953b91f1a28d101.zip"},
{"G733ZX", "10082-JS5F1Y-41bccc831aec7bf1c0a59a309bc607c7.zip"},
{"G814JI", "18243-BAU912-671afb033d3b1c44f9852ff608910f42.zip"},
{"G814JIR", "17315-02XE3O-7a00ed5b91bc305aade5a1830691d0d6.zip"},
{"G814JU", "18193-Y5GMF0-843cee9ed982a3d5aba21e99efbc396c.zip"},
{"G814JV", "18194-9Q537I-c5c2ca782d26dcd5346c110767347903.zip"},
{"G814JVR", "17313-P6P61Y-5960dc1d0bd8ba2057bc22aaa8bf89e5.zip"},
{"G814JZ", "18195-V98WBX-19d4c2e52916bf9c96fcaed6f1d9bdda.zip"},
{"G834JY", "15954-HAV3KR-d219c43750d485279e12cf76f5b2569b.zip"},
{"G834JYR", "17314-YYBQF3-a65b1bc3fd1e8de145dc9d606e8c45c8.zip"},
{"G834JZ", "15953-C7XC62-a987058c0a26fa3c929b300d099296a5.zip"},
{"G834JZR", "17316-AFT379-743360d9b36031d91a72fe03e3fafca0.zip"},
{"GA401IC", "5864-KC8TTP-082f9a62dda322ccaed82ff3e3466bf8.zip"},
{"GA401IE", "5866-JO8504-dde5402bdecafc1cef55a7dc3d6167ec.zip"},
{"GA401IHR", "5865-7DV6TB-9833a54c7334dc3aef1b9e99f56b9e95.zip"},
{"GA401QC", "5129-PY283Y-ac372208c57a7f558db6c169cd50d091.zip"},
{"GA401QE", "5130-C2G5CO-8ea0eb1ca537d77d19bad13dee55294c.zip"},
{"GA401QH", "5124-QQ97GA-bbde59c5235d8b72b78059b95e8a23a2.zip"},
{"GA401QM", "4922-222SBA-340a82b955a5f57ff39f6d2d08af365b.zip"},
{"GA402NF", "14160-ORONGT-ca84f0561683e1a07548d0cb7e42c275.zip"},
{"GA402NI", "14159-SDCMA5-300bd29af08b0f5d1527a375f8c326f2.zip"},
{"GA402NJ", "14158-O7H0GR-10db546f9901ac02d3ce8d5a28cb4772.zip"},
{"GA402NU", "14157-QJ4W59-69222faad499f94b4d96f7d85504930d.zip"},
{"GA402NV", "14156-ZKGYBE-ae1ac3947eb8684cabc0cd45f8d4c67e.zip"},
{"GA402NY", "14155-AL3KZU-17ac9e4b88c03ebaf983134f76f9a4b2.zip"},
{"GA402NZ", "14154-SY6J4X-7d8416a09b51e32f856f3353173ccc70.zip"},
{"GA402RI", "10145-9W1623-272e082c57c6e41074b2cace72adc92e.zip"},
{"GA402RJ", "10146-IY7ENY-f6d2d25b5b6b21616ceddc4e9aefa656.zip"},
{"GA402RK", "10151-7RPIER-2588aa83188168f8375ed9bab7bb67d2.zip"},
{"GA402RQ", "10147-9NQMQH-7ff3944c376e91b26c0a1c18122a4262.zip"},
{"GA402RU", "10149-3F10IX-43c96d30b6702261c3cf85467857eec9.zip"},
{"GA402RW", "10150-5H5ISD-1badfa856f0ec8d15d9d5832a8d54fc9.zip"},
{"GA402RX", "10148-QFCU8O-704d371255ae8a72737f5f8eca75eb9d.zip"},
{"GA402XI", "14899-86ZX57-5940ed56b182781334ca2856f6ba0b9e.zip"},
{"GA402XJ", "14901-MDIR3C-5022331539bb187bf041a7e3ab0a46bf.zip"},
{"GA402XU", "14900-KYCOC7-361bb364d26ff834d6bd716d14f70006.zip"},
{"GA402XV", "14902-EL34M9-731ba1cc0d27d2db9a79d872673e7958.zip"},
{"GA402XY", "14903-ICC56W-0456739d8ba5ee543dfba99eb6ad217a.zip"},
{"GA402XZ", "14904-B3K2NR-928b7272790e7da0079c549cd4885d5d.zip"},
{"GA403UI", "18084-XTMSW5-6cad333378f3b1059688a419a8422fc1.zip"},
{"GA403UU", "18086-WXV037-ad90bc3f20ff056c45dbbb848fa72a67.zip"},
{"GA403UV", "18085-G56QVI-3f24b5bd1eaa8dd9086b86092cb62ffb.zip"},
{"GA502II", "3554-REAPZQ-5f94c7ecd52ae2cad50aaac4341bec7b.zip"},
{"GA502IU", "3555-15UWZ4-d1cd040265773efd61bdfd146140a990.zip"},
{"GA502IV", "3556-ULLH3K-1f56134e43e1ffa353256fbeb9840d3f.zip"},
{"GA503IC", "7457-RENJRP-5b833a2bd8e1e13ec41f0acf7ef04fd0.zip"},
{"GA503IE", "7465-QO1Q0F-663f0c9501e649bcb0069413f3081a49.zip"},
{"GA503IH", "7458-D6CHF3-4c6b83cb3efc11713fddd9c41cfd127c.zip"},
{"GA503IM", "7741-F8GHPK-63e17aca55a11e838b1079eb0c6bea16.zip"},
{"GA503QC", "7459-308BEA-bcf2604511112df5fa810faa9cdece89.zip"},
{"GA503QE", "7464-4T2J1D-3920997d2f44d3b40dffd6ba9f028075.zip"},
{"GA503QM", "7739-BSD39S-f9858fd4a68ff8ef60b8abf2cda92dd7.zip"},
{"GA503QN", "7740-QT19P2-33054dbe06ae3baa435a44ce529eddb5.zip"},
{"GA503QR", "7738-QVCIRY-4e612ff997f11448c77068e39ee0681e.zip"},
{"GA503QS", "7737-B5L4LD-4400a4ddc94eebefb0678fb281b63fa0.zip"},
{"GA503RJ", "10630-MSC4Q2-f16f1ef2847069e50aad62083836b220.zip"},
{"GA503RK", "10631-VXWRAN-b2a1aa499bf33f1f9bd3d80e31dd9d69.zip"},
{"GA503RM", "12054-38JGOX-35e7b1afb150daea1eab90ae97f0da7b.zip"},
{"GA503RR", "10632-IOY3C0-bf16d1028f572ede9dd8e1a2fd632ae5.zip"},
{"GA503RS", "11745-689QTC-6c441a7161a34b871918fce5997c4e2e.zip"},
{"GA503RW", "12055-SG6VTH-91cc5782da63cf3dcc16804a47db25a2.zip"},
{"GA503RX", "12056-MR9J0D-b7dad63f751d2e53aeee479524986bdd.zip"},
{"GL_Series", "2167-P7ELNB-44d357ee720a0c48c2eb37eee785316c.zip"},
{"GL503GE", "57-YI7HPS-9ed36ba45ff6398f3648a44ced4e5e61.zip"},
{"GL504GM", "58-JOZ3S5-998677afd41375cb8fd60ace8d11a788.zip"},
{"GL504GS", "59-KS4SJK-b1c9807c7d7dc847fa895516b3b9a8cb.zip"},
{"GL504GV", "167-OX51EF-b8b5c713bff267d315e0255370956e75.zip"},
{"GL504GW", "168-NMGNB6-1f6d79b87d077c235c57d4505ce802e7.zip"},
{"GL703GE", "60-M0UOZ3-1474ef8209bf010de4c6e6ae94ce351d.zip"},
{"GL703GM", "61-WJGLV3-b8005e077aa4825799459412849e346c.zip"},
{"GL703GS", "62-HU12J1-a88023229e3a2dbc5fc1aca1b07e4d76.zip"},
{"GL704GV", "106-3IHGVF-5d15db39c04a44e3503d3536d4f0c132.zip"},
{"GL704GW", "107-NZ7VZL-cae8497c2eb8479f4808d2b61e7c8e70.zip"},
{"GM_Series", "2169-K05CUW-841a5508c96649de28d613e32dfb7fcf.zip"},
{"GM501GM", "63-3CL0UZ-eee6728dd2517d6e3af581f1caef0114.zip"},
{"GM501GS", "64-GH66XC-5e69efa00bbe486efd897414ed329545.zip"},
{"GU_Series", "2170-FYLCER-f45e5d5e38121b7bfe275b780e739a8e.zip"},
{"GU501GM", "65-LSRZXK-658dc6e1c89a7787201ec7c74eebf2d5.zip"},
{"GU502DU", "4004-T40IY1-74f962c9d9d27544c964bdb347074472.zip"},
{"GU603HE", "11674-VGXXML-41035c5f9dbf4e0b64a74eb3f89d95e4.zip"},
{"GU603HM", "11676-GO5KVF-581b4f49e0e12d9d6654ab2c1db9ab11.zip"},
{"GU603HR", "11675-AZPXHF-48a9979ce428acfcc57c4e295f8a9840.zip"},
{"GU603VI", "14579-CUHZFU-ea9e6cf216e1359b0f3e300e137720f7.zip"},
{"GU603VJ", "14580-18G1FP-4456270d80c37a0597b3bfc559222f64.zip"},
{"GU603VQ", "14581-8YY8TX-e7aa10a20a41245500f40841b2298a42.zip"},
{"GU603VU", "14582-9I3GQS-564dd1ba9ee37dc03bef022bd2e29049.zip"},
{"GU603VV", "14583-XH4I69-879293a1a305dc952afb15b481722e09.zip"},
{"GU603ZE", "9817-3EENL9-3187794df7ec8ddef2fe04d0787eff63.zip"},
{"GU603ZEB", "9818-KOP3C1-11ab717fddedafb9066b362d8da5af85.zip"},
{"GU603ZI", "14431-H4XZCU-1c907d4e22bbd5000a6c81cfc2e1dae4.zip"},
{"GU603ZJ", "14432-Y5HC6R-b50edb7a5ad9469b89c35e5cd9fc114f.zip"},
{"GU603ZM", "9819-718DH0-30bf094253e5178aba765436bb8b150f.zip"},
{"GU603ZQ", "14434-3KPJU7-211e518352b0660babc4816fa5dd80bd.zip"},
{"GU603ZR", "9820-LIQ8FP-6a60aee97d7028e7ea63bd2ab6c2b099.zip"},
{"GU603ZU", "14435-2ZW8FL-65ab99a80fe08d8d088d8fdc998076f4.zip"},
{"GU603ZV", "14433-FEY59U-cd0508e779a6b3874a61668f39ff78e0.zip"},
{"GU603ZW", "9822-3R2PGP-f2d24c6931e733a5e0e41dc8560b80cc.zip"},
{"GU603ZX", "9821-AQYG62-f42f167ec7b4f4fe003f05b1c1c61d58.zip"},
{"GU604VI", "14284-R38BM3-e2591bfa2582ce68b2c8aba63beac5e3.zip"},
{"GU604VY", "14282-78N7V4-25e76896744c53317fa41a80788a2241.zip"},
{"GU604VZ", "14283-U4JX5C-f31dff75d52f48ceca0102fd1bc76e31.zip"},
{"GU605MI", "17935-R3OAJH-55a4fbb2be67a37226accd279357268b.zip"},
{"GU605MU", "17936-VBZ5PL-ad3a380f62bc87ee738c09c8e5255f91.zip"},
{"GU605MV", "17938-7DGM0T-caed792b162e94846167888f36fc632e.zip"},
{"GU605MY", "17937-HZWNQ4-72d9c4fed1b31f188874cd6461ffba83.zip"},
{"GU605MZ", "17939-IEJ2X5-fe077100dc4eafbae46d7eb831a791a8.zip"},
{"GV301QC", "5128-RN42GR-9a6049e7adabd1ff2aeed24293fe03a8.zip"},
{"GV301QCZ", "6778-152PHS-7a9ad124aef1059471542dfc8912ed7b.zip"},
{"GV301QE", "5125-PD15GR-9a7f72cbf5bd97d283464d8e407f0231.zip"},
{"GV301QEZ", "6780-N3Y08B-222db095847d99663a575be36fbcf410.zip"},
{"GV301QH", "5077-0BEYRT-ff8e30857ab4af017381f5703b39abed.zip"},
{"GV301QHZ", "6779-9XZE32-329974b938dff4baf3097e3d745839eb.zip"},
{"GV301RA", "10272-1B7YAA-45e3697377ff2e7dd68c57f5919eecd2.zip"},
{"GV301RC", "10273-UJ0Q76-53bdfe00929ccf3f594f813ba235438b.zip"},
{"GV301RE", "10274-1J3P7N-42dabc435e4daa40d4be2fa482624321.zip"},
{"GV302NA", "14663-N4C4U4-1654950fbc1fad0e37a016c4a1e8a934.zip"},
{"GV302NF", "14668-GMKBGC-1bd7957eb1a688f8eb0e6fb85395b839.zip"},
{"GV302NI", "14664-ZQXAM8-1dec6b07c9589698c8cccdbc3a3211a6.zip"},
{"GV302NJ", "14667-OFKJGT-60db594b4af90c481212ee31ffa96d38.zip"},
{"GV302NU", "14666-6M0N3K-3d08325f6c4b3fcacf53a2f863a0e6c5.zip"},
{"GV302NV", "14665-DWLIIQ-9b3b8b0aaca3a071f82cbb30fbbe2fd1.zip"},
{"GV302XA", "14934-AU5P0J-1873c4e95dadcf72b1fad550108a0eb5.zip"},
{"GV302XF", "14935-D5PHI6-aa9715b2328c499c8cd72b4958ba6641.zip"},
{"GV302XI", "14936-CHYX8S-f5fe72833a34f1f002dae6789f2760fe.zip"},
{"GV302XJ", "14937-LMH57E-651161fb27c3ef9904e15fc42e5d8352.zip"},
{"GV302XU", "14938-4DXJJV-82feb9f0156bb914ccbde2de6d59ad14.zip"},
{"GV302XV", "14939-KLW56G-32ffda0b7ee35bbe4ca5789da7210cc9.zip"},
{"GV601RA", "11078-109U4J-33e9d7342819b8a7a534632df659e509.zip"},
{"GV601RE", "11079-U5MUWC-8c22738f13a798376733fead5f091a4b.zip"},
{"GV601RM", "11082-XN5PLH-5c405808680f6bfc36c5069bcd5dc366.zip"},
{"GV601RW", "11081-FK9JFY-b82e25b8f9bcd2ad1d3ae23c7cb327d0.zip"},
{"GV601RX", "11080-45B7E2-b64fdbf32877dc996b4efe274ff51f41.zip"},
{"GV601VI", "14446-JS3QXL-72327a76c47c2ffdeaad392197a4b2ce.zip"},
{"GV601VJ", "14448-TIX8CU-ed84b2ee1d92d2f38a891ed1c684eddf.zip"},
{"GV601VQ", "14447-7C8UIX-13cc4d4632406ca5976358a4080f26af.zip"},
{"GV601VU", "14450-0SP39K-8071216d3c679d013fffe57eca9f790c.zip"},
{"GV601VV", "14449-QZS5FH-6a7771cbbf9bcc641a5418f250ef3b43.zip"},
{"GX_Series", "2171-LHV7R6-bf1d918fd26714f10c3f3de990e30a1b.zip"},
{"GX501GI", "66-U9BQN2-9a12abd42e07169ec6ebf4d4a6d2c148.zip"},
{"GX502LWS", "3552-YRITSK-6f08012703e7718be25477f20ccd4d7e.zip"},
{"GX502LXS", "3553-3ACO9T-20757861512ff920da316c949249b62d.zip"},
{"GX531GM", "67-ER25S2-71ec74e4e8d14fc9c6cc8608d1616e5f.zip"},
{"GX531GS", "68-V9PHXL-3cabb33363337795287458e3b10114f8.zip"},
{"GX531GV", "108-VCV90K-00cec46bd49df326109c060367eaa57c.zip"},
{"GX531GW", "109-0GH5PV-ce1ff55527d5da0b547df776af887276.zip"},
{"GX531GX", "110-A0TZ36-4cf1c1cdeee6e0e27567e317444c62cb.zip"},
{"GX550LWS", "3671-DEEX56-d93255f509e16f740c71e8c358e8ff36.zip"},
{"GX550LXS", "3672-O3V2FT-6572c1aa661e3f406ce6e840075d81ab.zip"},
{"GX551QM", "8108-47QAG6-7d57f542a91fca797f6bad910af5b864.zip"},
{"GX551QR", "8109-ADSI6K-87224022e84f6a6c0ed2820cc4642a66.zip"},
{"GX551QS", "8110-NLPALF-6ec9938f67229be071cdb8c436303734.zip"},
{"GX650PI", "14591-ODJA1G-23aaf98034a279ae87f93f67db9b3b95.zip"},
{"GX650PU", "14592-A6IJIM-e847943987f3cf4f1d0278fe1d5ee984.zip"},
{"GX650PV", "14595-XKP10A-e14bb5df924255dc965bb975e1d64434.zip"},
{"GX650PY", "14593-KC9ZMM-6e519dbcdd0139ed1d8e7649e407d8a8.zip"},
{"GX650PZ", "14594-AETGOJ-4ba96caa5ae0ee68d8b457e0fbc03a17.zip"},
{"GX650RM", "11320-E8SQ6M-5673cb197e000111c0d406b1156d44af.zip"},
{"GX650RS", "11321-UEO888-cbff96301261591d9130980fcc5950e5.zip"},
{"GX650RW", "11322-YIN6KH-2a804a1dd4da59662e6746f83d636452.zip"},
{"GX650RX", "11323-64AK0P-9929933ff3fda3dcabfef096d7242a7c.zip"},
{"GX701GV", "166-EI8VY0-1568b74c5bbf22297720b548ce6bcefa.zip"},
{"GX701GW", "165-C6KON3-9b95db9f024e457420793b4915749fbd.zip"},
{"GX701GX", "164-I4CRXM-b5e8ddc68c884eda5cf4676dd2683624.zip"},
{"GX701LV", "3309-DPFMBZ-ffda0b00117a5f1c69a091158b631bbe.zip"},
{"GX701LWS", "3308-PQVG48-ad364af358f946382f840c969c73d49b.zip"},
{"GX701LXS", "3307-AY5DMD-681ac8295b6f98fda4c66b891f19be4d.zip"},
{"GX703HM", "7962-KBDQY2-ff82594ee47f5c1058bc2115b6a74841.zip"},
{"GX703HMD", "7963-A3TM3L-5f39a856e3f694e9db1ed5a5410baa39.zip"},
{"GX703HR", "7967-5LQ4FV-7b6af6e1dc3a6c0786bec0ec084ee5c2.zip"},
{"GX703HRD", "7964-TFYJ6L-4bec23647da2f9bc8403d060635dbdda.zip"},
{"GX703HS", "7965-3HSRRO-c1869c30564e2db44a97c1e8953093b9.zip"},
{"GX703HSD", "7966-9CCDGL-96f0c0f9e1e50ee66894e7b168e59cc3.zip"},
{"GZ_Series", "2172-Z8OHBD-393c5060aaa27883e2fcbebc7e53997e.zip"},
{"GZ301VF", "13604-50UADT-4df87ac6eab6ac261647875d727db9d4.zip"},
{"GZ301VFC", "13787-WB73LI-b148b7cf3c90bc90fca4938bfc6fbbe5.zip"},
{"GZ301VI", "13601-DPC6YI-17ac748ec814ec3152ad973f3a0cff4b.zip"},
{"GZ301VIC", "13790-Z6V8RW-7a4f735f65c545158c7ba715694aa3c7.zip"},
{"GZ301VJ", "13600-UNQHZ7-e7d0cbf757eeed28dba9295b517ef835.zip"},
{"GZ301VJC", "13788-QVWJWQ-a13027f81094f94eea1d86152fe69ba9.zip"},
{"GZ301VQ", "13789-K6I7SO-4a8594363610c383e39940ff135c0d7e.zip"},
{"GZ301VQC", "13791-DBRKCU-a10ec3e290c5dc93bbb45f52c714a9b8.zip"},
{"GZ301VU", "13602-6JQ2BK-4353d6c0b83589477ff4570b49258217.zip"},
{"GZ301VUC", "13792-009F1L-4ee6b0014eca72c7d0217219ebe9e365.zip"},
{"GZ301VV", "13603-OOLT27-8788c068fdad2a64da9925a5411b30af.zip"},
{"GZ301VVC", "13793-8DIIWY-72aca4ea0f1db6c991b3e24da5a7907c.zip"},
{"GZ301ZA", "10139-YXT5A7-521746c1b4991657abc37999a318219e.zip"},
{"GZ301ZC", "10140-QA59M0-be0cf751aba85c98832f4a0f16456330.zip"},
{"GZ301ZE", "10141-P1OXLB-318b5c3601e0d5c55d3b4307eba08ab2.zip"},
{"GZ301ZH", "10142-ELMX6M-f9c50110ca0a763bf4b6d1e9dd9e3afa.zip"},
{"NR2301L", "14736-3DM4T5-41c1b0b5c2d726da7c66e0c39ea08017.zip"},
{"RC71L", "17126-IIDPFS-718c077a118724bb0045b35e30d5ac4e.zip"},
{"RC71X", "15182-KWVC62-c754d9ea39f9160df7e21e4538ce60df.zip"},
};
if (profiles.ContainsKey(model))
{
return baseUrl + profiles[model];
}
else
{
return null;
}
}
public static bool ProfileExists()
{
(string bios, string model) = AppConfig.GetBiosAndModel();
return (GetProfileUrl(model) is not null);
}
public static async Task InstallProfile()
{
ProcessHelper.RunAsAdmin();
(string bios, string model) = AppConfig.GetBiosAndModel();
string? profileUrl = GetProfileUrl(model);
if (profileUrl == null)
{
Logger.WriteLine($"No ICC Profile found for {model}");
return;
}
await DownloadAndExtractZip(profileUrl, VisualControl.GetGameVisualPath());
}
static async Task DownloadAndExtractZip(string zipUrl, string extractPath)
{
using (HttpClient client = new HttpClient())
{
try
{
Logger.WriteLine($"Getting: {zipUrl}");
byte[] zipData = await client.GetByteArrayAsync(zipUrl);
Directory.CreateDirectory(extractPath);
string tempZipPath = Path.Combine(extractPath, "temp.zip");
await File.WriteAllBytesAsync(tempZipPath, zipData);
ZipFile.ExtractToDirectory(tempZipPath, extractPath, true);
File.Delete(tempZipPath);
}
catch (Exception ex)
{
Logger.WriteLine($"Error: {ex.Message}");
}
}
}
}
}

View File

@@ -1,5 +1,4 @@
using GHelper.Helpers; using System.Runtime.InteropServices;
using System.Management;
namespace GHelper.Display namespace GHelper.Display
{ {
@@ -8,6 +7,7 @@ namespace GHelper.Display
public const int MAX_REFRESH = 1000; public const int MAX_REFRESH = 1000;
public static DisplayGammaRamp? gammaRamp;
public void AutoScreen(bool force = false) public void AutoScreen(bool force = false)
{ {
@@ -24,6 +24,69 @@ namespace GHelper.Display
} }
} }
public void SaveGamma()
{
var screenName = ScreenNative.FindLaptopScreen();
if (screenName is null) return;
try
{
var handle = ScreenNative.CreateDC(screenName, screenName, null, IntPtr.Zero);
var gammaRamp = new GammaRamp();
if (ScreenNative.GetDeviceGammaRamp(handle, ref gammaRamp))
{
var gamma = new DisplayGammaRamp(gammaRamp);
Logger.WriteLine("Gamma R: " + string.Join("-", gamma.Red));
Logger.WriteLine("Gamma G: " + string.Join("-", gamma.Green));
Logger.WriteLine("Gamma B: " + string.Join("-", gamma.Blue));
}
}
catch (Exception ex)
{
Logger.WriteLine(ex.ToString());
}
}
public void SetGamma(int brightness = 100)
{
var bright = Math.Round((float)brightness / 200 + 0.5, 2);
var screenName = ScreenNative.FindLaptopScreen();
if (screenName is null) return;
try
{
var handle = ScreenNative.CreateDC(screenName, screenName, null, IntPtr.Zero);
if (gammaRamp is null)
{
var gammaDump = new GammaRamp();
if (ScreenNative.GetDeviceGammaRamp(handle, ref gammaDump))
{
gammaRamp = new DisplayGammaRamp(gammaDump);
Logger.WriteLine("Gamma R: " + string.Join("-", gammaRamp.Red));
Logger.WriteLine("Gamma G: " + string.Join("-", gammaRamp.Green));
Logger.WriteLine("Gamma B: " + string.Join("-", gammaRamp.Blue));
}
}
if (gammaRamp is null || !gammaRamp.IsOriginal())
{
Logger.WriteLine("Default Gamma");
gammaRamp = new DisplayGammaRamp();
}
var ramp = gammaRamp.AsBrightnessRamp(bright);
bool result = ScreenNative.SetDeviceGammaRamp(handle, ref ramp);
Logger.WriteLine("Brightness " + bright.ToString() + ": " + result);
} catch (Exception ex)
{
Logger.WriteLine(ex.ToString());
}
//ScreenBrightness.Set(60 + (int)(40 * bright));
}
public void SetScreen(int frequency = -1, int overdrive = -1, int miniled = -1) public void SetScreen(int frequency = -1, int overdrive = -1, int miniled = -1)
{ {
@@ -45,8 +108,8 @@ namespace GHelper.Display
if (overdrive >= 0) if (overdrive >= 0)
{ {
if (AppConfig.IsNoOverdrive()) overdrive = 0; if (AppConfig.Get("no_overdrive") == 1) overdrive = 0;
if (!AppConfig.IsOLED()) Program.acpi.DeviceSet(AsusACPI.ScreenOverdrive, overdrive, "ScreenOverdrive"); Program.acpi.DeviceSet(AsusACPI.ScreenOverdrive, overdrive, "ScreenOverdrive");
} }
@@ -98,9 +161,9 @@ namespace GHelper.Display
int maxFrequency = ScreenNative.GetMaxRefreshRate(laptopScreen); int maxFrequency = ScreenNative.GetMaxRefreshRate(laptopScreen);
bool screenAuto = AppConfig.Is("screen_auto"); bool screenAuto = AppConfig.Is("screen_auto");
bool overdriveSetting = !AppConfig.IsNoOverdrive(); bool overdriveSetting = !AppConfig.Is("no_overdrive");
int overdrive = AppConfig.IsNoOverdrive() ? 0 : Program.acpi.DeviceGet(AsusACPI.ScreenOverdrive); int overdrive = Program.acpi.DeviceGet(AsusACPI.ScreenOverdrive);
int miniled1 = Program.acpi.DeviceGet(AsusACPI.ScreenMiniled1); int miniled1 = Program.acpi.DeviceGet(AsusACPI.ScreenMiniled1);
int miniled2 = Program.acpi.DeviceGet(AsusACPI.ScreenMiniled2); int miniled2 = Program.acpi.DeviceGet(AsusACPI.ScreenMiniled2);

View File

@@ -1,266 +0,0 @@
using GHelper.Helpers;
using System.Management;
namespace GHelper.Display
{
public enum SplendidGamut : int
{
Native = 50,
sRGB = 51,
DCIP3 = 53,
DisplayP3 = 54
}
public enum SplendidCommand : int
{
None = -1,
Init = 10,
DimmingAsus = 9,
DimmingVisual = 19,
GamutMode = 200,
Default = 11,
Racing = 21,
Scenery = 22,
RTS = 23,
FPS = 24,
Cinema = 25,
Vivid = 13,
Eyecare = 17,
}
public static class VisualControl
{
public static DisplayGammaRamp? gammaRamp;
private static int _brightness = 100;
private static bool _init = true;
private static string? _splendidPath = null;
private static System.Timers.Timer brightnessTimer = new System.Timers.Timer(200);
public const int DefaultColorTemp = 50;
static VisualControl()
{
brightnessTimer.Elapsed += BrightnessTimerTimer_Elapsed;
}
public static string GetGameVisualPath()
{
return Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) + "\\ASUS\\GameVisual";
}
public static Dictionary<SplendidGamut, string> GetGamutModes()
{
Dictionary<SplendidGamut, string> _modes = new Dictionary<SplendidGamut, string>();
string gameVisualPath = GetGameVisualPath();
if (!Directory.Exists(gameVisualPath))
{
Logger.WriteLine(gameVisualPath + " doesn't exit");
return _modes;
}
try
{
DirectoryInfo d = new DirectoryInfo(GetGameVisualPath());
FileInfo[] icms = d.GetFiles("*.icm");
if (icms.Length == 0) return _modes;
_modes.Add(SplendidGamut.Native, "Gamut: Native");
foreach (FileInfo icm in icms)
{
if (icm.Name.Contains("sRGB")) _modes.Add(SplendidGamut.sRGB, "Gamut: sRGB");
if (icm.Name.Contains("DCIP3")) _modes.Add(SplendidGamut.DCIP3, "Gamut: DCIP3");
if (icm.Name.Contains("DisplayP3")) _modes.Add(SplendidGamut.DisplayP3, "Gamut: DisplayP3");
}
return _modes;
}
catch
{
return _modes;
}
}
public static Dictionary<SplendidCommand, string> GetVisualModes()
{
return new Dictionary<SplendidCommand, string>
{
{ SplendidCommand.Default, "Default"},
{ SplendidCommand.Racing, "Racing"},
{ SplendidCommand.Scenery, "Scenery"},
{ SplendidCommand.RTS, "RTS/RPG"},
{ SplendidCommand.FPS, "FPS"},
{ SplendidCommand.Cinema, "Cinema"},
{ SplendidCommand.Vivid, "Vivid" },
{ SplendidCommand.Eyecare, "Eyecare"}
};
}
public static Dictionary<int, string> GetTemperatures()
{
return new Dictionary<int, string>
{
{ 0, "Warmest"},
{ 15, "Warmer"},
{ 30, "Warm"},
{ 50, "Neutral"},
{ 70, "Cold"},
{ 85, "Colder"},
{ 100, "Coldest"},
};
}
public static void SetGamut(int mode = 50)
{
if (RunSplendid(SplendidCommand.GamutMode, 0, mode)) return;
if (_init)
{
_init = false;
RunSplendid(SplendidCommand.Init);
RunSplendid(SplendidCommand.GamutMode, 0, mode);
}
}
public static void SetVisual(SplendidCommand mode = SplendidCommand.Default, int whiteBalance = DefaultColorTemp, bool init = false)
{
if (mode == SplendidCommand.None) return;
if (mode == SplendidCommand.Default && init) return; // Skip default setting on init
if (whiteBalance != DefaultColorTemp && !init) ProcessHelper.RunAsAdmin();
int balance = mode == SplendidCommand.Eyecare ? 2 : whiteBalance;
if (RunSplendid(mode, 0, balance)) return;
if (_init)
{
_init = false;
RunSplendid(SplendidCommand.Init);
RunSplendid(mode, 0, balance);
}
}
private static string GetSplendidPath()
{
if (_splendidPath == null)
{
try
{
using (var searcher = new ManagementObjectSearcher(@"Select * from Win32_SystemDriver WHERE Name='ATKWMIACPIIO'"))
{
foreach (var driver in searcher.Get())
{
string path = driver["PathName"].ToString();
_splendidPath = Path.GetDirectoryName(path) + "\\AsusSplendid.exe";
break;
}
}
}
catch (Exception ex)
{
Logger.WriteLine(ex.Message);
}
}
return _splendidPath;
}
private static bool RunSplendid(SplendidCommand command, int? param1 = null, int? param2 = null)
{
var splendid = GetSplendidPath();
bool isGameVisual = Directory.Exists(GetGameVisualPath());
bool isSplenddid = File.Exists(splendid);
if (isSplenddid)
{
if (command == SplendidCommand.DimmingVisual && !isGameVisual) command = SplendidCommand.DimmingAsus;
var result = ProcessHelper.RunCMD(splendid, (int)command + " " + param1 + " " + param2);
if (result.Contains("file not exist") || (result.Length == 0 && isGameVisual)) return false;
}
return true;
}
private static void BrightnessTimerTimer_Elapsed(object? sender, System.Timers.ElapsedEventArgs e)
{
brightnessTimer.Stop();
if (RunSplendid(SplendidCommand.DimmingVisual, 0, (int)(40 + _brightness * 0.6))) return;
if (_init)
{
_init = false;
RunSplendid(SplendidCommand.Init);
RunSplendid(SplendidCommand.Init, 4);
if (RunSplendid(SplendidCommand.DimmingVisual, 0, (int)(40 + _brightness * 0.6))) return;
}
// GammaRamp Fallback
SetGamma(_brightness);
}
public static int SetBrightness(int brightness = -1, int delta = 0)
{
if (!AppConfig.IsOLED()) return -1;
if (brightness < 0) brightness = AppConfig.Get("brightness", 100);
_brightness = Math.Max(0, Math.Min(100, brightness + delta));
AppConfig.Set("brightness", _brightness);
brightnessTimer.Start();
Program.settingsForm.VisualiseBrightness();
return _brightness;
}
public static void SetGamma(int brightness = 100)
{
var bright = Math.Round((float)brightness / 200 + 0.5, 2);
var screenName = ScreenNative.FindLaptopScreen();
if (screenName is null) return;
try
{
var handle = ScreenNative.CreateDC(screenName, screenName, null, IntPtr.Zero);
if (gammaRamp is null)
{
var gammaDump = new GammaRamp();
if (ScreenNative.GetDeviceGammaRamp(handle, ref gammaDump))
{
gammaRamp = new DisplayGammaRamp(gammaDump);
//Logger.WriteLine("Gamma R: " + string.Join("-", gammaRamp.Red));
//Logger.WriteLine("Gamma G: " + string.Join("-", gammaRamp.Green));
//Logger.WriteLine("Gamma B: " + string.Join("-", gammaRamp.Blue));
}
}
if (gammaRamp is null || !gammaRamp.IsOriginal())
{
Logger.WriteLine("Not default Gamma");
gammaRamp = new DisplayGammaRamp();
}
var ramp = gammaRamp.AsBrightnessRamp(bright);
bool result = ScreenNative.SetDeviceGammaRamp(handle, ref ramp);
Logger.WriteLine("Gamma " + bright.ToString() + ": " + result);
}
catch (Exception ex)
{
Logger.WriteLine(ex.ToString());
}
//ScreenBrightness.Set(60 + (int)(40 * bright));
}
}
}

View File

@@ -210,11 +210,6 @@ namespace GHelper
checkUSBC.Visible = false; checkUSBC.Visible = false;
} }
if (AppConfig.IsOLED())
{
checkNoOverdrive.Visible = false;
}
// Change text and hide irrelevant options on the ROG Ally, // Change text and hide irrelevant options on the ROG Ally,
// which is a bit of a special case piece of hardware. // which is a bit of a special case piece of hardware.
if (AppConfig.IsAlly()) if (AppConfig.IsAlly())
@@ -362,7 +357,7 @@ namespace GHelper
checkTopmost.Checked = AppConfig.Is("topmost"); checkTopmost.Checked = AppConfig.Is("topmost");
checkTopmost.CheckedChanged += CheckTopmost_CheckedChanged; ; checkTopmost.CheckedChanged += CheckTopmost_CheckedChanged; ;
checkNoOverdrive.Checked = AppConfig.IsNoOverdrive(); checkNoOverdrive.Checked = AppConfig.Is("no_overdrive");
checkNoOverdrive.CheckedChanged += CheckNoOverdrive_CheckedChanged; checkNoOverdrive.CheckedChanged += CheckNoOverdrive_CheckedChanged;
checkUSBC.Checked = AppConfig.Is("optimized_usbc"); checkUSBC.Checked = AppConfig.Is("optimized_usbc");

View File

@@ -9,7 +9,7 @@ namespace GHelper.Fan
public const int XGM_FAN_MAX = 72; public const int XGM_FAN_MAX = 72;
public const int INADEQUATE_MAX = 104; public const int INADEQUATE_MAX = 92;
const int FAN_COUNT = 3; const int FAN_COUNT = 3;
@@ -67,8 +67,6 @@ namespace GHelper.Fan
if (AppConfig.ContainsModel("GV601")) return new int[3] { 78, 59, 85 }; if (AppConfig.ContainsModel("GV601")) return new int[3] { 78, 59, 85 };
if (AppConfig.ContainsModel("GA403")) return new int[3] { 68, 68, 80 };
return new int[3] { DEFAULT_FAN_MAX, DEFAULT_FAN_MAX, DEFAULT_FAN_MAX }; return new int[3] { DEFAULT_FAN_MAX, DEFAULT_FAN_MAX, DEFAULT_FAN_MAX };
} }

View File

@@ -32,7 +32,6 @@ namespace GHelper
FanSensorControl fanSensorControl; FanSensorControl fanSensorControl;
static int gpuPowerBase = 0; static int gpuPowerBase = 0;
static bool isGPUPower => gpuPowerBase > 0;
public Fans() public Fans()
{ {
@@ -49,7 +48,7 @@ namespace GHelper
labelPowerLimits.Text = Properties.Strings.PowerLimits; labelPowerLimits.Text = Properties.Strings.PowerLimits;
checkApplyPower.Text = Properties.Strings.ApplyPowerLimits; checkApplyPower.Text = Properties.Strings.ApplyPowerLimits;
labelFans.Text = "BIOS " + Properties.Strings.FanCurves; labelFans.Text = Properties.Strings.FanCurves;
labelBoost.Text = Properties.Strings.CPUBoost; labelBoost.Text = Properties.Strings.CPUBoost;
buttonReset.Text = Properties.Strings.FactoryDefaults; buttonReset.Text = Properties.Strings.FactoryDefaults;
checkApplyFans.Text = Properties.Strings.ApplyFanCurve; checkApplyFans.Text = Properties.Strings.ApplyFanCurve;
@@ -524,39 +523,6 @@ namespace GHelper
modeControl.SetGPUClocks(true); modeControl.SetGPUClocks(true);
} }
private void InitGPUPower()
{
gpuPowerBase = Program.acpi.DeviceGet(AsusACPI.GPU_BASE);
Logger.WriteLine($"ReadGPUPowerBase: {gpuPowerBase}");
panelGPUPower.Visible = isGPUPower;
if (!isGPUPower) return;
int maxGPUPower = NvidiaSmi.GetMaxGPUPower();
if (maxGPUPower > 0)
{
AsusACPI.MaxGPUPower = maxGPUPower - gpuPowerBase - AsusACPI.MaxGPUBoost;
trackGPUPower.Minimum = AsusACPI.MinGPUPower;
trackGPUPower.Maximum = AsusACPI.MaxGPUPower;
}
Task.Run(async () =>
{
await Task.Delay(TimeSpan.FromMilliseconds(200));
int gpuPowerVar = Program.acpi.DeviceGet(AsusACPI.GPU_POWER);
Logger.WriteLine($"ReadGPUPower ({Modes.GetCurrentBase()}): {gpuPowerVar}");
int gpu_power = AppConfig.GetMode("gpu_power");
if (gpu_power < 0) gpu_power = (gpuPowerVar >= 0) ? gpuPowerVar : AsusACPI.MaxGPUPower;
Invoke(delegate
{
trackGPUPower.Value = Math.Max(Math.Min(gpu_power, AsusACPI.MaxGPUPower), AsusACPI.MinGPUPower);
VisualiseGPUSettings();
});
});
}
public void InitGPU() public void InitGPU()
{ {
@@ -582,8 +548,12 @@ namespace GHelper
{ {
gpuVisible = buttonGPU.Visible = true; gpuVisible = buttonGPU.Visible = true;
gpuPowerBase = Program.acpi.DeviceGet(AsusACPI.GPU_BASE);
int gpuPowerVar = Program.acpi.DeviceGet(AsusACPI.GPU_POWER);
int gpu_boost = AppConfig.GetMode("gpu_boost"); int gpu_boost = AppConfig.GetMode("gpu_boost");
int gpu_temp = AppConfig.GetMode("gpu_temp"); int gpu_temp = AppConfig.GetMode("gpu_temp");
int gpu_power = AppConfig.GetMode("gpu_power");
int core = AppConfig.GetMode("gpu_core"); int core = AppConfig.GetMode("gpu_core");
int memory = AppConfig.GetMode("gpu_memory"); int memory = AppConfig.GetMode("gpu_memory");
@@ -591,6 +561,7 @@ namespace GHelper
if (gpu_boost < 0) gpu_boost = AsusACPI.MaxGPUBoost; if (gpu_boost < 0) gpu_boost = AsusACPI.MaxGPUBoost;
if (gpu_temp < 0) gpu_temp = AsusACPI.MaxGPUTemp; if (gpu_temp < 0) gpu_temp = AsusACPI.MaxGPUTemp;
if (gpu_power < 0) gpu_power = (gpuPowerVar >= 0) ? gpuPowerVar : AsusACPI.MaxGPUPower;
if (core == -1) core = 0; if (core == -1) core = 0;
if (memory == -1) memory = 0; if (memory == -1) memory = 0;
@@ -627,13 +598,14 @@ namespace GHelper
trackGPUBoost.Value = Math.Max(Math.Min(gpu_boost, AsusACPI.MaxGPUBoost), AsusACPI.MinGPUBoost); trackGPUBoost.Value = Math.Max(Math.Min(gpu_boost, AsusACPI.MaxGPUBoost), AsusACPI.MinGPUBoost);
trackGPUTemp.Value = Math.Max(Math.Min(gpu_temp, AsusACPI.MaxGPUTemp), AsusACPI.MinGPUTemp); trackGPUTemp.Value = Math.Max(Math.Min(gpu_temp, AsusACPI.MaxGPUTemp), AsusACPI.MinGPUTemp);
trackGPUPower.Value = Math.Max(Math.Min(gpu_power, AsusACPI.MaxGPUPower), AsusACPI.MinGPUPower);
panelGPUBoost.Visible = (Program.acpi.DeviceGet(AsusACPI.PPT_GPUC0) >= 0); panelGPUBoost.Visible = (Program.acpi.DeviceGet(AsusACPI.PPT_GPUC0) >= 0);
panelGPUTemp.Visible = (Program.acpi.DeviceGet(AsusACPI.PPT_GPUC2) >= 0); panelGPUTemp.Visible = (Program.acpi.DeviceGet(AsusACPI.PPT_GPUC2) >= 0);
VisualiseGPUSettings(); panelGPUPower.Visible = gpuPowerBase > 0 && gpuPowerVar >= 0;
InitGPUPower(); VisualiseGPUSettings();
} }
catch (Exception ex) catch (Exception ex)
@@ -689,8 +661,7 @@ namespace GHelper
{ {
AppConfig.SetMode("gpu_boost", trackGPUBoost.Value); AppConfig.SetMode("gpu_boost", trackGPUBoost.Value);
AppConfig.SetMode("gpu_temp", trackGPUTemp.Value); AppConfig.SetMode("gpu_temp", trackGPUTemp.Value);
AppConfig.SetMode("gpu_power", trackGPUPower.Value);
if (isGPUPower) AppConfig.SetMode("gpu_power", trackGPUPower.Value);
VisualiseGPUSettings(); VisualiseGPUSettings();
} }
@@ -791,10 +762,7 @@ namespace GHelper
private void TrackPower_MouseUp(object? sender, MouseEventArgs e) private void TrackPower_MouseUp(object? sender, MouseEventArgs e)
{ {
Task.Run(() => modeControl.AutoPower();
{
modeControl.AutoPower(true);
});
} }
@@ -1037,7 +1005,7 @@ namespace GHelper
try try
{ {
if (chartCount > 2) if (chartCount > 2)
Size = MinimumSize = new Size(Size.Width, Math.Max(MinimumSize.Height, (int)(ControlHelper.GetDpiScale(this).Value * (chartCount * 200 + 100)))); Size = MinimumSize = new Size(Size.Width, (int)(ControlHelper.GetDpiScale(this).Value * (chartCount * 200 + 100)));
} }
catch (Exception ex) catch (Exception ex)
{ {
@@ -1108,6 +1076,7 @@ namespace GHelper
} }
private void ButtonReset_Click(object? sender, EventArgs e) private void ButtonReset_Click(object? sender, EventArgs e)
{ {
@@ -1142,23 +1111,25 @@ namespace GHelper
if (gpuVisible) if (gpuVisible)
{ {
int gpuPowerVar = Program.acpi.DeviceGet(AsusACPI.GPU_POWER);
trackGPUClockLimit.Value = NvidiaGpuControl.MaxClockLimit; trackGPUClockLimit.Value = NvidiaGpuControl.MaxClockLimit;
trackGPUCore.Value = 0; trackGPUCore.Value = 0;
trackGPUMemory.Value = 0; trackGPUMemory.Value = 0;
trackGPUBoost.Value = AsusACPI.MaxGPUBoost; trackGPUBoost.Value = AsusACPI.MaxGPUBoost;
trackGPUTemp.Value = AsusACPI.MaxGPUTemp; trackGPUTemp.Value = AsusACPI.MaxGPUTemp;
trackGPUPower.Value = (gpuPowerVar >= 0) ? gpuPowerVar : AsusACPI.MaxGPUPower;
AppConfig.SetMode("gpu_boost", trackGPUBoost.Value); AppConfig.SetMode("gpu_boost", trackGPUBoost.Value);
AppConfig.SetMode("gpu_temp", trackGPUTemp.Value); AppConfig.SetMode("gpu_temp", trackGPUTemp.Value);
AppConfig.RemoveMode("gpu_power"); AppConfig.RemoveMode("gpu_power");
AppConfig.RemoveMode("gpu_clock_limit"); AppConfig.RemoveMode("gpu_clock_limit");
AppConfig.RemoveMode("gpu_core"); AppConfig.RemoveMode("gpu_core");
AppConfig.RemoveMode("gpu_memory"); AppConfig.RemoveMode("gpu_memory");
InitGPUPower();
VisualiseGPUSettings(); VisualiseGPUSettings();
modeControl.SetGPUClocks(true); modeControl.SetGPUClocks(true);
modeControl.SetGPUPower(); modeControl.SetGPUPower();

View File

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

View File

@@ -30,20 +30,6 @@ public static class NvidiaSmi
return false; // Return false if the "Display Active" status is not found return false; // Return false if the "Display Active" status is not found
} }
public static int GetMaxGPUPower()
{
string output = RunNvidiaSmiCommand("--query-gpu=power.max_limit --format csv,noheader,nounits");
output = output.Trim().Trim('\n', '\r');
if (float.TryParse(output, out float floatValue))
{
int intValue = (int)floatValue;
return intValue;
}
return -1;
}
private static string RunNvidiaSmiCommand(string arguments = "-i 0 -q") private static string RunNvidiaSmiCommand(string arguments = "-i 0 -q")
{ {
ProcessStartInfo startInfo = new ProcessStartInfo ProcessStartInfo startInfo = new ProcessStartInfo

View File

@@ -122,7 +122,7 @@ namespace GHelper.Helpers
} }
} }
public static string RunCMD(string name, string args) public static void RunCMD(string name, string args)
{ {
var cmd = new Process(); var cmd = new Process();
cmd.StartInfo.UseShellExecute = false; cmd.StartInfo.UseShellExecute = false;
@@ -133,13 +133,13 @@ namespace GHelper.Helpers
cmd.StartInfo.Arguments = args; cmd.StartInfo.Arguments = args;
cmd.Start(); cmd.Start();
Logger.WriteLine(name + " " + args); Logger.WriteLine(args);
string result = cmd.StandardOutput.ReadToEnd().Replace(Environment.NewLine, " ").Trim(' '); string result = cmd.StandardOutput.ReadToEnd().Replace(Environment.NewLine, " ").Trim(' ');
Logger.WriteLine(result); Logger.WriteLine(result);
cmd.WaitForExit(); cmd.WaitForExit();
return result;
} }

View File

@@ -85,7 +85,7 @@ namespace GHelper.Input
InitBacklightTimer(); InitBacklightTimer();
if (AppConfig.IsVivoZenbook()) Program.acpi.DeviceSet(AsusACPI.FnLock, AppConfig.Is("fn_lock") ? 1 : 0, "FnLock"); if (AppConfig.ContainsModel("VivoBook")) Program.acpi.DeviceSet(AsusACPI.FnLock, AppConfig.Is("fn_lock") ? 1 : 0, "FnLock");
} }
@@ -151,7 +151,7 @@ namespace GHelper.Input
// FN-Lock group // FN-Lock group
if (AppConfig.Is("fn_lock") && !AppConfig.IsVivoZenbook()) if (AppConfig.Is("fn_lock") && !AppConfig.ContainsModel("VivoBook"))
for (Keys i = Keys.F1; i <= Keys.F11; i++) hook.RegisterHotKey(ModifierKeys.None, i); for (Keys i = Keys.F1; i <= Keys.F11; i++) hook.RegisterHotKey(ModifierKeys.None, i);
// Arrow-lock group // Arrow-lock group
@@ -244,13 +244,6 @@ namespace GHelper.Input
} }
static void SetBrightnessDimming(int delta)
{
int brightness = VisualControl.SetBrightness(delta: delta);
if (brightness >= 0)
Program.toast.RunToast(brightness + "%", (delta < 0) ? ToastIcon.BrightnessDown : ToastIcon.BrightnessUp);
}
public void KeyPressed(object sender, KeyPressedEventArgs e) public void KeyPressed(object sender, KeyPressedEventArgs e)
{ {
@@ -507,7 +500,7 @@ namespace GHelper.Input
case "micmute": case "micmute":
bool muteStatus = Audio.ToggleMute(); bool muteStatus = Audio.ToggleMute();
Program.toast.RunToast(muteStatus ? "Muted" : "Unmuted", muteStatus ? ToastIcon.MicrophoneMute : ToastIcon.Microphone); Program.toast.RunToast(muteStatus ? "Muted" : "Unmuted", muteStatus ? ToastIcon.MicrophoneMute : ToastIcon.Microphone);
if (AppConfig.IsVivoZenbook()) Program.acpi.DeviceSet(AsusACPI.MicMuteLed, muteStatus ? 1 : 0, "MicmuteLed"); if (AppConfig.IsVivobook()) Program.acpi.DeviceSet(AsusACPI.MicMuteLed, muteStatus ? 1 : 0, "MicmuteLed");
break; break;
case "brightness_up": case "brightness_up":
SetBrightness(+10); SetBrightness(+10);
@@ -575,7 +568,7 @@ namespace GHelper.Input
int fnLock = AppConfig.Is("fn_lock") ? 0 : 1; int fnLock = AppConfig.Is("fn_lock") ? 0 : 1;
AppConfig.Set("fn_lock", fnLock); AppConfig.Set("fn_lock", fnLock);
if (AppConfig.IsVivoZenbook()) if (AppConfig.ContainsModel("VivoBook"))
Program.acpi.DeviceSet(AsusACPI.FnLock, fnLock == 1 ? 1 : 0, "FnLock"); Program.acpi.DeviceSet(AsusACPI.FnLock, fnLock == 1 ? 1 : 0, "FnLock");
else else
Program.settingsForm.BeginInvoke(Program.inputDispatcher.RegisterKeys); Program.settingsForm.BeginInvoke(Program.inputDispatcher.RegisterKeys);
@@ -683,8 +676,7 @@ namespace GHelper.Input
return; return;
case 51: // Fn+F6 on old TUFs case 51: // Fn+F6 on old TUFs
case 53: // Fn+F6 on GA-502DU model case 53: // Fn+F6 on GA-502DU model
SleepEvent(); NativeMethods.TurnOffScreen();
//NativeMethods.TurnOffScreen();
return; return;
} }
} }
@@ -705,14 +697,8 @@ namespace GHelper.Input
if (AppConfig.IsDUO()) SetScreenpad(-10); if (AppConfig.IsDUO()) SetScreenpad(-10);
else Program.settingsForm.BeginInvoke(Program.settingsForm.CycleMatrix, -1); else Program.settingsForm.BeginInvoke(Program.settingsForm.CycleMatrix, -1);
} }
else if (Control.ModifierKeys == Keys.Control && AppConfig.IsOLED())
{
SetBrightnessDimming(-10);
}
else else
{
Program.acpi.DeviceSet(AsusACPI.UniversalControl, AsusACPI.Brightness_Down, "Brightness"); Program.acpi.DeviceSet(AsusACPI.UniversalControl, AsusACPI.Brightness_Down, "Brightness");
}
break; break;
case 32: // FN+F8 case 32: // FN+F8
if (Control.ModifierKeys == Keys.Shift) if (Control.ModifierKeys == Keys.Shift)
@@ -720,14 +706,8 @@ namespace GHelper.Input
if (AppConfig.IsDUO()) SetScreenpad(10); if (AppConfig.IsDUO()) SetScreenpad(10);
else Program.settingsForm.BeginInvoke(Program.settingsForm.CycleMatrix, 1); else Program.settingsForm.BeginInvoke(Program.settingsForm.CycleMatrix, 1);
} }
else if (Control.ModifierKeys == Keys.Control && AppConfig.IsOLED())
{
SetBrightnessDimming(10);
}
else else
{
Program.acpi.DeviceSet(AsusACPI.UniversalControl, AsusACPI.Brightness_Up, "Brightness"); Program.acpi.DeviceSet(AsusACPI.UniversalControl, AsusACPI.Brightness_Up, "Brightness");
}
break; break;
case 133: // Camera Toggle case 133: // Camera Toggle
ToggleCamera(); ToggleCamera();

View File

@@ -62,47 +62,33 @@ namespace GHelper.Mode
if (!Modes.Exists(mode)) mode = 0; if (!Modes.Exists(mode)) mode = 0;
customFans = false;
customPower = 0;
settings.ShowMode(mode); settings.ShowMode(mode);
SetModeLabel();
Modes.SetCurrent(mode); Modes.SetCurrent(mode);
int status = Program.acpi.DeviceSet(AsusACPI.PerformanceMode, AppConfig.IsManualModeRequired() ? AsusACPI.PerformanceManual : Modes.GetBase(mode), "Mode");
Task.Run(async () => // Vivobook fallback
if (status != 1)
{ {
bool reset = AppConfig.IsResetRequired() && (Modes.GetBase(oldMode) == Modes.GetBase(mode)) && customPower > 0; int vivoMode = Modes.GetBase(mode);
if (vivoMode == 1) vivoMode = 2;
customFans = false; else if (vivoMode == 2) vivoMode = 1;
customPower = 0; Program.acpi.DeviceSet(AsusACPI.VivoBookMode, vivoMode, "VivoMode");
SetModeLabel(); }
// Workaround for not properly resetting limits on G14 2024
if (reset)
{
Program.acpi.DeviceSet(AsusACPI.PerformanceMode, (Modes.GetBase(oldMode) != 1) ? AsusACPI.PerformanceTurbo : AsusACPI.PerformanceBalanced, "Reset");
await Task.Delay(TimeSpan.FromMilliseconds(1500));
}
int status = Program.acpi.DeviceSet(AsusACPI.PerformanceMode, AppConfig.IsManualModeRequired() ? AsusACPI.PerformanceManual : Modes.GetBase(mode), "Mode");
// Vivobook fallback
if (status != 1) Program.acpi.SetVivoMode(Modes.GetBase(mode));
SetGPUClocks();
await Task.Delay(TimeSpan.FromMilliseconds(100));
AutoFans();
await Task.Delay(TimeSpan.FromMilliseconds(1000));
AutoPower();
});
if (AppConfig.Is("xgm_fan") && Program.acpi.IsXGConnected()) XGM.Reset(); if (AppConfig.Is("xgm_fan") && Program.acpi.IsXGConnected()) XGM.Reset();
if (notify) if (notify)
Program.toast.RunToast(Modes.GetCurrentName(), SystemInformation.PowerStatus.PowerLineStatus == PowerLineStatus.Online ? ToastIcon.Charger : ToastIcon.Battery); Program.toast.RunToast(Modes.GetCurrentName(), SystemInformation.PowerStatus.PowerLineStatus == PowerLineStatus.Online ? ToastIcon.Charger : ToastIcon.Battery);
SetGPUClocks();
AutoFans();
AutoPower(1000);
// Power plan from config or defaulting to balanced // Power plan from config or defaulting to balanced
if (AppConfig.GetModeString("scheme") is not null) if (AppConfig.GetModeString("scheme") is not null)
@@ -159,17 +145,18 @@ namespace GHelper.Mode
Program.acpi.SetFanCurve(AsusFan.Mid, AppConfig.GetFanConfig(AsusFan.Mid)); Program.acpi.SetFanCurve(AsusFan.Mid, AppConfig.GetFanConfig(AsusFan.Mid));
// Alternative way to set fan curve // something went wrong, resetting to default profile
if (cpuResult != 1 || gpuResult != 1) if (cpuResult != 1 || gpuResult != 1)
{ {
cpuResult = Program.acpi.SetFanRange(AsusFan.CPU, AppConfig.GetFanConfig(AsusFan.CPU)); cpuResult = Program.acpi.SetFanRange(AsusFan.CPU, AppConfig.GetFanConfig(AsusFan.CPU));
gpuResult = Program.acpi.SetFanRange(AsusFan.GPU, AppConfig.GetFanConfig(AsusFan.GPU)); gpuResult = Program.acpi.SetFanRange(AsusFan.GPU, AppConfig.GetFanConfig(AsusFan.GPU));
// Something went wrong, resetting to default profile
if (cpuResult != 1 || gpuResult != 1) if (cpuResult != 1 || gpuResult != 1)
{ {
Program.acpi.DeviceSet(AsusACPI.PerformanceMode, Modes.GetCurrentBase(), "Reset Mode"); int mode = Modes.GetCurrentBase();
settings.LabelFansResult("Model doesn't support custom fan curves"); Logger.WriteLine("ASUS BIOS rejected fan curve, resetting mode to " + mode);
Program.acpi.DeviceSet(AsusACPI.PerformanceMode, mode, "Reset Mode");
settings.LabelFansResult("ASUS BIOS rejected fan curve");
} }
} }
else else
@@ -195,25 +182,52 @@ namespace GHelper.Mode
} }
public void AutoPower(bool launchAsAdmin = false) public void AutoPower(int delay = 0)
{ {
customPower = 0; customPower = 0;
bool applyPower = AppConfig.IsMode("auto_apply_power"); bool applyPower = AppConfig.IsMode("auto_apply_power");
bool applyFans = AppConfig.IsMode("auto_apply"); bool applyFans = AppConfig.IsMode("auto_apply");
//bool applyGPU = true;
if (applyPower && !applyFans && (AppConfig.IsFanRequired() || AppConfig.IsManualModeRequired())) if (applyPower && !applyFans)
{ {
AutoFans(true); // force fan curve for misbehaving bios PPTs on some models
Thread.Sleep(500); if (AppConfig.IsFanRequired())
{
delay = 500;
AutoFans(true);
}
// Fix for models that don't support PPT settings in all modes, setting a "manual" mode for them
if (AppConfig.IsManualModeRequired())
{
AutoFans(true);
}
} }
if (applyPower) SetPower(launchAsAdmin); if (delay > 0)
{
var timer = new System.Timers.Timer(delay);
timer.Elapsed += delegate
{
timer.Stop();
timer.Dispose();
Thread.Sleep(500); if (applyPower) SetPower();
SetGPUPower(); Thread.Sleep(500);
AutoRyzen(); SetGPUPower();
AutoRyzen();
};
timer.Start();
}
else
{
if (applyPower) SetPower(true);
SetGPUPower();
AutoRyzen();
}
} }

View File

@@ -37,12 +37,7 @@
} }
public override int DPIIncrements() public override int DPIIncrements()
{ {
return 50; return 100;
}
public override int MinDPI()
{
return 50;
} }
public override bool HasDebounceSetting() public override bool HasDebounceSetting()

View File

@@ -7,10 +7,6 @@
{ {
} }
public StrixImpactII(ushort pid) : base(0x0B05, pid, "mi_00", false)
{
}
public override int DPIProfileCount() public override int DPIProfileCount()
{ {
return 4; return 4;
@@ -178,19 +174,4 @@
} }
} }
} }
public class StrixImpactIIElectroPunk : StrixImpactII
{
public StrixImpactIIElectroPunk() : base(0x1956)
{
}
public override string GetDisplayName()
{
return "ROG Strix Impact II Electro Punk";
}
}
} }

View File

@@ -209,7 +209,6 @@ namespace GHelper.Peripherals
DetectMouse(new PugioII()); DetectMouse(new PugioII());
DetectMouse(new PugioIIWired()); DetectMouse(new PugioIIWired());
DetectMouse(new StrixImpactII()); DetectMouse(new StrixImpactII());
DetectMouse(new StrixImpactIIElectroPunk());
DetectMouse(new Chakram()); DetectMouse(new Chakram());
DetectMouse(new ChakramWired()); DetectMouse(new ChakramWired());
DetectMouse(new ChakramCore()); DetectMouse(new ChakramCore());

View File

@@ -32,7 +32,7 @@ namespace GHelper
public static ModeControl modeControl = new ModeControl(); public static ModeControl modeControl = new ModeControl();
public static GPUModeControl gpuControl = new GPUModeControl(settingsForm); public static GPUModeControl gpuControl = new GPUModeControl(settingsForm);
public static AllyControl allyControl = new AllyControl(settingsForm); public static AllyControl allyControl = new AllyControl(settingsForm);
public static ScreenControl screenControl = new ScreenControl(); public static ScreenControl screenControl = new ScreenControl();
public static ClamshellModeControl clamshellControl = new ClamshellModeControl(); public static ClamshellModeControl clamshellControl = new ClamshellModeControl();
public static ToastForm toast = new ToastForm(); public static ToastForm toast = new ToastForm();
@@ -215,8 +215,6 @@ namespace GHelper
isPlugged = SystemInformation.PowerStatus.PowerLineStatus; isPlugged = SystemInformation.PowerStatus.PowerLineStatus;
Logger.WriteLine("AutoSetting for " + isPlugged.ToString()); Logger.WriteLine("AutoSetting for " + isPlugged.ToString());
BatteryControl.AutoBattery(init);
inputDispatcher.Init(); inputDispatcher.Init();
modeControl.AutoPerformance(powerChanged); modeControl.AutoPerformance(powerChanged);
@@ -229,6 +227,8 @@ namespace GHelper
screenControl.AutoScreen(); screenControl.AutoScreen();
} }
BatteryControl.AutoBattery(init);
settingsForm.matrixControl.SetDevice(true); settingsForm.matrixControl.SetDevice(true);
if (AppConfig.IsAlly()) if (AppConfig.IsAlly())

View File

@@ -250,16 +250,6 @@ namespace GHelper.Properties {
} }
} }
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap icons8_color_32 {
get {
object obj = ResourceManager.GetObject("icons8-color-32", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary> /// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap. /// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary> /// </summary>

View File

@@ -124,9 +124,6 @@
<data name="icons8_charged_battery_96" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="icons8_charged_battery_96" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-charged-battery-96.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\icons8-charged-battery-96.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="icons8-search-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-search-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="icons8_edit_32" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="icons8_edit_32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-edit-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\icons8-edit-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
@@ -139,9 +136,6 @@
<data name="icons8-bicycle-48 (1)" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="icons8-bicycle-48 (1)" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-bicycle-48 (1).png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\icons8-bicycle-48 (1).png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="standard" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\standard.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="eco" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="eco" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\eco.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\eco.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
@@ -199,6 +193,9 @@
<data name="icons8_remove_64" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="icons8_remove_64" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-remove-64.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\icons8-remove-64.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="icons8_share_32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-share-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="icons8_function" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="icons8_function" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-function-mac-96.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\icons8-function-mac-96.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
@@ -277,8 +274,8 @@
<data name="icons8_rocket_32" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="icons8_rocket_32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-rocket-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\icons8-rocket-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="icons8-fiat-500-48" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="icons8-project-management-48 (1)" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-fiat-500-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\icons8-project-management-48 (1).png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="icons8_mauszeiger_50" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="icons8_mauszeiger_50" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-mauszeiger-50.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\icons8-mauszeiger-50.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@@ -292,6 +289,9 @@
<data name="icons8_video_48" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="icons8_video_48" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-video-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\icons8-video-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="icons8-fiat-500-48" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-fiat-500-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="dot_eco" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="dot_eco" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\dot-eco.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\dot-eco.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
@@ -307,9 +307,6 @@
<data name="icons8_voltage_32" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="icons8_voltage_32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-voltage-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\icons8-voltage-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="icons8-project-management-48 (1)" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-project-management-48 (1).png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="icons8-software-32-white" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="icons8-software-32-white" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-software-32-white.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\icons8-software-32-white.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
@@ -328,8 +325,8 @@
<data name="icons8_software_32" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="icons8_software_32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-software-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\icons8-software-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="icons8_share_32" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="standard" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-share-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\standard.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="icons8-soonvibes-32" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="icons8-soonvibes-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-soonvibes-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\icons8-soonvibes-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@@ -340,7 +337,7 @@
<data name="icons8-charging-battery-32" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="icons8-charging-battery-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-charging-battery-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\icons8-charging-battery-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="icons8-color-32" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="icons8-search-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-color-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\icons8-search-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
</root> </root>

View File

@@ -726,15 +726,6 @@ namespace GHelper.Properties {
} }
} }
/// <summary>
/// Looks up a localized string similar to Download Color Profiles.
/// </summary>
internal static string DownloadColorProfiles {
get {
return ResourceManager.GetString("DownloadColorProfiles", resourceCulture);
}
}
/// <summary> /// <summary>
/// Looks up a localized string similar to Download. /// Looks up a localized string similar to Download.
/// </summary> /// </summary>
@@ -917,15 +908,6 @@ namespace GHelper.Properties {
} }
} }
/// <summary>
/// Looks up a localized string similar to Flicker-free Dimming.
/// </summary>
internal static string FlickerFreeDimming {
get {
return ResourceManager.GetString("FlickerFreeDimming", resourceCulture);
}
}
/// <summary> /// <summary>
/// Looks up a localized string similar to Process Fn+F hotkeys without Fn. /// Looks up a localized string similar to Process Fn+F hotkeys without Fn.
/// </summary> /// </summary>
@@ -1889,15 +1871,6 @@ namespace GHelper.Properties {
} }
} }
/// <summary>
/// Looks up a localized string similar to Visual Mode.
/// </summary>
internal static string ViualMode {
get {
return ResourceManager.GetString("ViualMode", resourceCulture);
}
}
/// <summary> /// <summary>
/// Looks up a localized string similar to Volume Down. /// Looks up a localized string similar to Volume Down.
/// </summary> /// </summary>

View File

@@ -124,10 +124,10 @@
<value>Verbindung zu ASUS ACPI fehlgeschlagen. G-Helper kann nicht ausgeführt werden. Bitte installiere ASUS System Control Interface.</value> <value>Verbindung zu ASUS ACPI fehlgeschlagen. G-Helper kann nicht ausgeführt werden. Bitte installiere ASUS System Control Interface.</value>
</data> </data>
<data name="AlertAPUMemoryRestart" xml:space="preserve"> <data name="AlertAPUMemoryRestart" xml:space="preserve">
<value>Gerät neu starten, um Änderungen anzuwenden</value> <value>Restart your device to apply changes</value>
</data> </data>
<data name="AlertAPUMemoryRestartTitle" xml:space="preserve"> <data name="AlertAPUMemoryRestartTitle" xml:space="preserve">
<value>Jetzt neu starten?</value> <value>Restart now?</value>
</data> </data>
<data name="AlertDGPU" xml:space="preserve"> <data name="AlertDGPU" xml:space="preserve">
<value>Die GPU wird gerade verwendet. Trotzdem deaktivieren?</value> <value>Die GPU wird gerade verwendet. Trotzdem deaktivieren?</value>
@@ -250,7 +250,7 @@
<value>Im Betrieb</value> <value>Im Betrieb</value>
</data> </data>
<data name="BacklightTimeout" xml:space="preserve"> <data name="BacklightTimeout" xml:space="preserve">
<value>Timeout angeschlossen / bei Akku (0 = An)</value> <value>Timeout angeschlossen / bei Akku (0 - AN)</value>
</data> </data>
<data name="BacklightTimeoutBattery" xml:space="preserve"> <data name="BacklightTimeoutBattery" xml:space="preserve">
<value>Backlight Timeout when on battery</value> <value>Backlight Timeout when on battery</value>
@@ -289,7 +289,7 @@
<value>Hochfahren</value> <value>Hochfahren</value>
</data> </data>
<data name="BootSound" xml:space="preserve"> <data name="BootSound" xml:space="preserve">
<value>Boot-Sound</value> <value>Boot Sound</value>
</data> </data>
<data name="Brightness" xml:space="preserve"> <data name="Brightness" xml:space="preserve">
<value>Helligkeit</value> <value>Helligkeit</value>
@@ -310,7 +310,7 @@
<value>Farbe</value> <value>Farbe</value>
</data> </data>
<data name="Contrast" xml:space="preserve"> <data name="Contrast" xml:space="preserve">
<value>Kontrast</value> <value>Contrast</value>
</data> </data>
<data name="Controller" xml:space="preserve"> <data name="Controller" xml:space="preserve">
<value>Controller</value> <value>Controller</value>
@@ -328,7 +328,7 @@
<value>Standard</value> <value>Standard</value>
</data> </data>
<data name="DisableController" xml:space="preserve"> <data name="DisableController" xml:space="preserve">
<value>Controller deaktivieren</value> <value>Disable Controller</value>
</data> </data>
<data name="DisableOnLidClose" xml:space="preserve"> <data name="DisableOnLidClose" xml:space="preserve">
<value>Disable on lid close</value> <value>Disable on lid close</value>
@@ -352,7 +352,7 @@
<value>Eco</value> <value>Eco</value>
</data> </data>
<data name="EnableGPUOnShutdown" xml:space="preserve"> <data name="EnableGPUOnShutdown" xml:space="preserve">
<value>Aktiviere GPU beim Herunterfahren (verhindert Problem im Eco-Modus)</value> <value>Enable GPU on shutdown (prevents issue with Eco mode)</value>
</data> </data>
<data name="EnableOptimusText" xml:space="preserve"> <data name="EnableOptimusText" xml:space="preserve">
<value>Die dGPU zu deaktivieren, indem Sie in den Eco-Modus wechseln während der Anzeigemodus nicht auf Optimus eingestellt ist, kann zu Problemen mit der Helligkeitseinstellung führen. <value>Die dGPU zu deaktivieren, indem Sie in den Eco-Modus wechseln während der Anzeigemodus nicht auf Optimus eingestellt ist, kann zu Problemen mit der Helligkeitseinstellung führen.
@@ -366,7 +366,7 @@ Trotzdem fortfahren?</value>
<value>Energieeinstellungen</value> <value>Energieeinstellungen</value>
</data> </data>
<data name="Export" xml:space="preserve"> <data name="Export" xml:space="preserve">
<value>Profil exportieren</value> <value>Export Profile</value>
</data> </data>
<data name="Extra" xml:space="preserve"> <data name="Extra" xml:space="preserve">
<value>Extra</value> <value>Extra</value>
@@ -441,10 +441,10 @@ Trotzdem fortfahren?</value>
<value>Hoch</value> <value>Hoch</value>
</data> </data>
<data name="ImageRotation" xml:space="preserve"> <data name="ImageRotation" xml:space="preserve">
<value>Bilddrehung</value> <value>Image Rotation</value>
</data> </data>
<data name="Import" xml:space="preserve"> <data name="Import" xml:space="preserve">
<value>Profil importieren</value> <value>Import Profile</value>
</data> </data>
<data name="KeyBindings" xml:space="preserve"> <data name="KeyBindings" xml:space="preserve">
<value>Tastenbelegung</value> <value>Tastenbelegung</value>
@@ -534,7 +534,7 @@ Trotzdem fortfahren?</value>
<value>Tastenreaktionsgeschwindigkeit</value> <value>Tastenreaktionsgeschwindigkeit</value>
</data> </data>
<data name="MouseImportFailed" xml:space="preserve"> <data name="MouseImportFailed" xml:space="preserve">
<value>Import fehlgeschlagen. Die ausgewählte Datei ist kein gültiges Mausprofil oder beschädigt.</value> <value>Import failed. Selected file is not a valid mouse profile or corrutpted.</value>
</data> </data>
<data name="MouseLiftOffDistance" xml:space="preserve"> <data name="MouseLiftOffDistance" xml:space="preserve">
<value>Lift Off Distance</value> <value>Lift Off Distance</value>
@@ -621,7 +621,7 @@ Trotzdem fortfahren?</value>
<value>Schließen</value> <value>Schließen</value>
</data> </data>
<data name="Reset" xml:space="preserve"> <data name="Reset" xml:space="preserve">
<value>Zurücksetzen</value> <value>Reset</value>
</data> </data>
<data name="RestartGPU" xml:space="preserve"> <data name="RestartGPU" xml:space="preserve">
<value>Ein Prozess verhindert den Wechsel in den Eco-Modus. dGPU neu starten? Fortfahren auf eigene Gefahr.</value> <value>Ein Prozess verhindert den Wechsel in den Eco-Modus. dGPU neu starten? Fortfahren auf eigene Gefahr.</value>
@@ -639,7 +639,7 @@ Trotzdem fortfahren?</value>
<value>Beim Start ausführen</value> <value>Beim Start ausführen</value>
</data> </data>
<data name="ScalingQuality" xml:space="preserve"> <data name="ScalingQuality" xml:space="preserve">
<value>Skalierungsqualität</value> <value>Scaling Quality</value>
</data> </data>
<data name="ScreenPadDown" xml:space="preserve"> <data name="ScreenPadDown" xml:space="preserve">
<value>Screenpad Helligkeit verringern</value> <value>Screenpad Helligkeit verringern</value>
@@ -720,7 +720,7 @@ Trotzdem fortfahren?</value>
<value>Version</value> <value>Version</value>
</data> </data>
<data name="VibrationStrength" xml:space="preserve"> <data name="VibrationStrength" xml:space="preserve">
<value>Vibrationsstärke</value> <value>Vibration Strength</value>
</data> </data>
<data name="VolumeDown" xml:space="preserve"> <data name="VolumeDown" xml:space="preserve">
<value>Lautstärke verringern</value> <value>Lautstärke verringern</value>

View File

@@ -339,9 +339,6 @@
<data name="Discharging" xml:space="preserve"> <data name="Discharging" xml:space="preserve">
<value>Discharging</value> <value>Discharging</value>
</data> </data>
<data name="DownloadColorProfiles" xml:space="preserve">
<value>Download Color Profiles</value>
</data>
<data name="DownloadUpdate" xml:space="preserve"> <data name="DownloadUpdate" xml:space="preserve">
<value>Download</value> <value>Download</value>
</data> </data>
@@ -404,9 +401,6 @@ Do you still want to continue?</value>
<data name="FansPower" xml:space="preserve"> <data name="FansPower" xml:space="preserve">
<value>Fans + Power</value> <value>Fans + Power</value>
</data> </data>
<data name="FlickerFreeDimming" xml:space="preserve">
<value>Flicker-free Dimming</value>
</data>
<data name="FnLock" xml:space="preserve"> <data name="FnLock" xml:space="preserve">
<value>Process Fn+F hotkeys without Fn</value> <value>Process Fn+F hotkeys without Fn</value>
</data> </data>
@@ -728,9 +722,6 @@ Do you still want to continue?</value>
<data name="VibrationStrength" xml:space="preserve"> <data name="VibrationStrength" xml:space="preserve">
<value>Vibration Strength</value> <value>Vibration Strength</value>
</data> </data>
<data name="ViualMode" xml:space="preserve">
<value>Visual Mode</value>
</data>
<data name="VolumeDown" xml:space="preserve"> <data name="VolumeDown" xml:space="preserve">
<value>Volume Down</value> <value>Volume Down</value>
</data> </data>

View File

@@ -352,7 +352,7 @@
<value>集显模式</value> <value>集显模式</value>
</data> </data>
<data name="EnableGPUOnShutdown" xml:space="preserve"> <data name="EnableGPUOnShutdown" xml:space="preserve">
<value>在关闭时启用 GPU (防止与 Eco 模式出现问题)</value> <value>Enable GPU on shutdown (prevents issue with Eco mode)</value>
</data> </data>
<data name="EnableOptimusText" xml:space="preserve"> <data name="EnableOptimusText" xml:space="preserve">
<value>NVIDIA 控制面板中的显示模式未设置为 Optimus 时,通过集显模式禁用独立显卡可能会使亮度控制出现问题,直到下次重启后才能恢复。 <value>NVIDIA 控制面板中的显示模式未设置为 Optimus 时,通过集显模式禁用独立显卡可能会使亮度控制出现问题,直到下次重启后才能恢复。

Binary file not shown.

Before

Width:  |  Height:  |  Size: 408 B

View File

@@ -13,7 +13,7 @@ namespace Ryzen
internal class RyzenControl internal class RyzenControl
{ {
public static int MinCPUUV => AppConfig.Get("min_uv", -40); public static int MinCPUUV => AppConfig.Get("min_uv", -30);
public const int MaxCPUUV = 0; public const int MaxCPUUV = 0;
public const int MinIGPUUV = -20; public const int MinIGPUUV = -20;

File diff suppressed because it is too large Load Diff

152
app/Settings.Designer.cs generated
View File

@@ -123,11 +123,6 @@ namespace GHelper
pictureAlly = new PictureBox(); pictureAlly = new PictureBox();
labelAlly = new Label(); labelAlly = new Label();
panelGamma = new Panel(); panelGamma = new Panel();
tableVisual = new TableLayoutPanel();
buttonInstallColor = new RButton();
comboVisual = new RComboBox();
comboColorTemp = new RComboBox();
comboGamut = new RComboBox();
sliderGamma = new Slider(); sliderGamma = new Slider();
panelGammaTitle = new Panel(); panelGammaTitle = new Panel();
labelGamma = new Label(); labelGamma = new Label();
@@ -173,7 +168,6 @@ namespace GHelper
panelAllyTitle.SuspendLayout(); panelAllyTitle.SuspendLayout();
((System.ComponentModel.ISupportInitialize)pictureAlly).BeginInit(); ((System.ComponentModel.ISupportInitialize)pictureAlly).BeginInit();
panelGamma.SuspendLayout(); panelGamma.SuspendLayout();
tableVisual.SuspendLayout();
panelGammaTitle.SuspendLayout(); panelGammaTitle.SuspendLayout();
((System.ComponentModel.ISupportInitialize)pictureGamma).BeginInit(); ((System.ComponentModel.ISupportInitialize)pictureGamma).BeginInit();
SuspendLayout(); SuspendLayout();
@@ -187,7 +181,7 @@ namespace GHelper
panelMatrix.Controls.Add(tableLayoutMatrix); panelMatrix.Controls.Add(tableLayoutMatrix);
panelMatrix.Controls.Add(panelMatrixTitle); panelMatrix.Controls.Add(panelMatrixTitle);
panelMatrix.Dock = DockStyle.Top; panelMatrix.Dock = DockStyle.Top;
panelMatrix.Location = new Point(11, 1007); panelMatrix.Location = new Point(11, 950);
panelMatrix.Margin = new Padding(0); panelMatrix.Margin = new Padding(0);
panelMatrix.Name = "panelMatrix"; panelMatrix.Name = "panelMatrix";
panelMatrix.Padding = new Padding(20, 20, 20, 10); panelMatrix.Padding = new Padding(20, 20, 20, 10);
@@ -362,7 +356,7 @@ namespace GHelper
panelBattery.Controls.Add(sliderBattery); panelBattery.Controls.Add(sliderBattery);
panelBattery.Controls.Add(panelBatteryTitle); panelBattery.Controls.Add(panelBatteryTitle);
panelBattery.Dock = DockStyle.Top; panelBattery.Dock = DockStyle.Top;
panelBattery.Location = new Point(11, 1683); panelBattery.Location = new Point(11, 1626);
panelBattery.Margin = new Padding(0); panelBattery.Margin = new Padding(0);
panelBattery.Name = "panelBattery"; panelBattery.Name = "panelBattery";
panelBattery.Padding = new Padding(20, 20, 20, 10); panelBattery.Padding = new Padding(20, 20, 20, 10);
@@ -454,7 +448,7 @@ namespace GHelper
panelFooter.AutoSizeMode = AutoSizeMode.GrowAndShrink; panelFooter.AutoSizeMode = AutoSizeMode.GrowAndShrink;
panelFooter.Controls.Add(tableButtons); panelFooter.Controls.Add(tableButtons);
panelFooter.Dock = DockStyle.Top; panelFooter.Dock = DockStyle.Top;
panelFooter.Location = new Point(11, 1858); panelFooter.Location = new Point(11, 1801);
panelFooter.Margin = new Padding(0); panelFooter.Margin = new Padding(0);
panelFooter.Name = "panelFooter"; panelFooter.Name = "panelFooter";
panelFooter.Padding = new Padding(20); panelFooter.Padding = new Padding(20);
@@ -1033,8 +1027,8 @@ namespace GHelper
panelScreen.Location = new Point(11, 651); panelScreen.Location = new Point(11, 651);
panelScreen.Margin = new Padding(0); panelScreen.Margin = new Padding(0);
panelScreen.Name = "panelScreen"; panelScreen.Name = "panelScreen";
panelScreen.Padding = new Padding(20, 10, 20, 0); panelScreen.Padding = new Padding(20, 20, 20, 0);
panelScreen.Size = new Size(827, 166); panelScreen.Size = new Size(827, 176);
panelScreen.TabIndex = 2; panelScreen.TabIndex = 2;
panelScreen.TabStop = true; panelScreen.TabStop = true;
// //
@@ -1042,7 +1036,7 @@ namespace GHelper
// //
labelTipScreen.Dock = DockStyle.Top; labelTipScreen.Dock = DockStyle.Top;
labelTipScreen.ForeColor = SystemColors.GrayText; labelTipScreen.ForeColor = SystemColors.GrayText;
labelTipScreen.Location = new Point(20, 130); labelTipScreen.Location = new Point(20, 140);
labelTipScreen.Margin = new Padding(4, 0, 4, 0); labelTipScreen.Margin = new Padding(4, 0, 4, 0);
labelTipScreen.Name = "labelTipScreen"; labelTipScreen.Name = "labelTipScreen";
labelTipScreen.Size = new Size(787, 36); labelTipScreen.Size = new Size(787, 36);
@@ -1062,7 +1056,7 @@ namespace GHelper
tableScreen.Controls.Add(button120Hz, 2, 0); tableScreen.Controls.Add(button120Hz, 2, 0);
tableScreen.Controls.Add(buttonMiniled, 3, 0); tableScreen.Controls.Add(buttonMiniled, 3, 0);
tableScreen.Dock = DockStyle.Top; tableScreen.Dock = DockStyle.Top;
tableScreen.Location = new Point(20, 50); tableScreen.Location = new Point(20, 60);
tableScreen.Margin = new Padding(8, 4, 8, 4); tableScreen.Margin = new Padding(8, 4, 8, 4);
tableScreen.Name = "tableScreen"; tableScreen.Name = "tableScreen";
tableScreen.RowCount = 1; tableScreen.RowCount = 1;
@@ -1154,7 +1148,7 @@ namespace GHelper
panelScreenTitle.Controls.Add(pictureScreen); panelScreenTitle.Controls.Add(pictureScreen);
panelScreenTitle.Controls.Add(labelSreen); panelScreenTitle.Controls.Add(labelSreen);
panelScreenTitle.Dock = DockStyle.Top; panelScreenTitle.Dock = DockStyle.Top;
panelScreenTitle.Location = new Point(20, 10); panelScreenTitle.Location = new Point(20, 20);
panelScreenTitle.Margin = new Padding(4); panelScreenTitle.Margin = new Padding(4);
panelScreenTitle.Name = "panelScreenTitle"; panelScreenTitle.Name = "panelScreenTitle";
panelScreenTitle.Size = new Size(787, 40); panelScreenTitle.Size = new Size(787, 40);
@@ -1201,7 +1195,7 @@ namespace GHelper
panelKeyboard.Controls.Add(tableLayoutKeyboard); panelKeyboard.Controls.Add(tableLayoutKeyboard);
panelKeyboard.Controls.Add(panelKeyboardTitle); panelKeyboard.Controls.Add(panelKeyboardTitle);
panelKeyboard.Dock = DockStyle.Top; panelKeyboard.Dock = DockStyle.Top;
panelKeyboard.Location = new Point(11, 1341); panelKeyboard.Location = new Point(11, 1284);
panelKeyboard.Margin = new Padding(0); panelKeyboard.Margin = new Padding(0);
panelKeyboard.Name = "panelKeyboard"; panelKeyboard.Name = "panelKeyboard";
panelKeyboard.Padding = new Padding(20); panelKeyboard.Padding = new Padding(20);
@@ -1377,7 +1371,7 @@ namespace GHelper
panelVersion.Controls.Add(labelCharge); panelVersion.Controls.Add(labelCharge);
panelVersion.Controls.Add(checkStartup); panelVersion.Controls.Add(checkStartup);
panelVersion.Dock = DockStyle.Top; panelVersion.Dock = DockStyle.Top;
panelVersion.Location = new Point(11, 1802); panelVersion.Location = new Point(11, 1745);
panelVersion.Margin = new Padding(4); panelVersion.Margin = new Padding(4);
panelVersion.Name = "panelVersion"; panelVersion.Name = "panelVersion";
panelVersion.Size = new Size(827, 56); panelVersion.Size = new Size(827, 56);
@@ -1402,7 +1396,7 @@ namespace GHelper
panelPeripherals.Controls.Add(tableLayoutPeripherals); panelPeripherals.Controls.Add(tableLayoutPeripherals);
panelPeripherals.Controls.Add(panelPeripheralsTile); panelPeripherals.Controls.Add(panelPeripheralsTile);
panelPeripherals.Dock = DockStyle.Top; panelPeripherals.Dock = DockStyle.Top;
panelPeripherals.Location = new Point(11, 1485); panelPeripherals.Location = new Point(11, 1428);
panelPeripherals.Margin = new Padding(0); panelPeripherals.Margin = new Padding(0);
panelPeripherals.Name = "panelPeripherals"; panelPeripherals.Name = "panelPeripherals";
panelPeripherals.Padding = new Padding(20, 20, 20, 10); panelPeripherals.Padding = new Padding(20, 20, 20, 10);
@@ -1544,7 +1538,7 @@ namespace GHelper
panelAlly.Controls.Add(tableLayoutAlly); panelAlly.Controls.Add(tableLayoutAlly);
panelAlly.Controls.Add(panelAllyTitle); panelAlly.Controls.Add(panelAllyTitle);
panelAlly.Dock = DockStyle.Top; panelAlly.Dock = DockStyle.Top;
panelAlly.Location = new Point(11, 1201); panelAlly.Location = new Point(11, 1144);
panelAlly.Margin = new Padding(0); panelAlly.Margin = new Padding(0);
panelAlly.Name = "panelAlly"; panelAlly.Name = "panelAlly";
panelAlly.Padding = new Padding(20, 20, 20, 0); panelAlly.Padding = new Padding(20, 20, 20, 0);
@@ -1676,125 +1670,30 @@ namespace GHelper
// //
panelGamma.AutoSize = true; panelGamma.AutoSize = true;
panelGamma.AutoSizeMode = AutoSizeMode.GrowAndShrink; panelGamma.AutoSizeMode = AutoSizeMode.GrowAndShrink;
panelGamma.Controls.Add(tableVisual);
panelGamma.Controls.Add(sliderGamma); panelGamma.Controls.Add(sliderGamma);
panelGamma.Controls.Add(panelGammaTitle); panelGamma.Controls.Add(panelGammaTitle);
panelGamma.Dock = DockStyle.Top; panelGamma.Dock = DockStyle.Top;
panelGamma.Location = new Point(11, 817); panelGamma.Location = new Point(11, 827);
panelGamma.Margin = new Padding(0); panelGamma.Margin = new Padding(0);
panelGamma.Name = "panelGamma"; panelGamma.Name = "panelGamma";
panelGamma.Padding = new Padding(20, 10, 20, 10); panelGamma.Padding = new Padding(20, 20, 20, 10);
panelGamma.Size = new Size(827, 190); panelGamma.Size = new Size(827, 123);
panelGamma.TabIndex = 9; panelGamma.TabIndex = 9;
panelGamma.Visible = false; panelGamma.Visible = false;
// //
// tableVisual
//
tableVisual.AutoSize = true;
tableVisual.AutoSizeMode = AutoSizeMode.GrowAndShrink;
tableVisual.ColumnCount = 3;
tableVisual.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 33.3333321F));
tableVisual.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 33.3333321F));
tableVisual.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 33.3333321F));
tableVisual.Controls.Add(buttonInstallColor, 0, 0);
tableVisual.Controls.Add(comboVisual, 0, 0);
tableVisual.Controls.Add(comboColorTemp, 1, 0);
tableVisual.Controls.Add(comboGamut, 2, 0);
tableVisual.Dock = DockStyle.Top;
tableVisual.Location = new Point(20, 94);
tableVisual.Margin = new Padding(8);
tableVisual.Name = "tableVisual";
tableVisual.RowCount = 1;
tableVisual.RowStyles.Add(new RowStyle(SizeType.Percent, 100F));
tableVisual.RowStyles.Add(new RowStyle(SizeType.Absolute, 20F));
tableVisual.Size = new Size(787, 86);
tableVisual.TabIndex = 41;
tableVisual.Visible = false;
//
// buttonInstallColor
//
buttonInstallColor.Activated = false;
buttonInstallColor.BackColor = SystemColors.ControlLight;
buttonInstallColor.BorderColor = Color.Transparent;
buttonInstallColor.BorderRadius = 2;
buttonInstallColor.Dock = DockStyle.Top;
buttonInstallColor.FlatAppearance.BorderSize = 0;
buttonInstallColor.FlatStyle = FlatStyle.Flat;
buttonInstallColor.Image = Properties.Resources.icons8_color_32;
buttonInstallColor.ImageAlign = ContentAlignment.MiddleRight;
buttonInstallColor.Location = new Point(266, 8);
buttonInstallColor.Margin = new Padding(4, 8, 4, 8);
buttonInstallColor.Name = "buttonInstallColor";
buttonInstallColor.Secondary = true;
buttonInstallColor.Size = new Size(254, 50);
buttonInstallColor.TabIndex = 38;
buttonInstallColor.Text = "Install Colors";
buttonInstallColor.TextImageRelation = TextImageRelation.ImageBeforeText;
buttonInstallColor.UseVisualStyleBackColor = false;
buttonInstallColor.Visible = false;
//
// comboVisual
//
comboVisual.BorderColor = Color.White;
comboVisual.ButtonColor = Color.FromArgb(255, 255, 255);
comboVisual.Dock = DockStyle.Top;
comboVisual.FlatStyle = FlatStyle.Flat;
comboVisual.Font = new Font("Segoe UI", 9F, FontStyle.Regular, GraphicsUnit.Point);
comboVisual.FormattingEnabled = true;
comboVisual.ItemHeight = 32;
comboVisual.Location = new Point(4, 11);
comboVisual.Margin = new Padding(4, 11, 4, 8);
comboVisual.Name = "comboVisual";
comboVisual.Size = new Size(254, 40);
comboVisual.TabIndex = 14;
comboVisual.Visible = false;
//
// comboColorTemp
//
comboColorTemp.BorderColor = Color.White;
comboColorTemp.ButtonColor = Color.FromArgb(255, 255, 255);
comboColorTemp.Dock = DockStyle.Top;
comboColorTemp.FlatStyle = FlatStyle.Flat;
comboColorTemp.Font = new Font("Segoe UI", 9F, FontStyle.Regular, GraphicsUnit.Point);
comboColorTemp.FormattingEnabled = true;
comboColorTemp.ItemHeight = 32;
comboColorTemp.Location = new Point(531, 11);
comboColorTemp.Margin = new Padding(7, 11, 7, 8);
comboColorTemp.Name = "comboColorTemp";
comboColorTemp.Size = new Size(249, 40);
comboColorTemp.TabIndex = 15;
comboColorTemp.Visible = false;
//
// comboGamut
//
comboGamut.BorderColor = Color.White;
comboGamut.ButtonColor = Color.FromArgb(255, 255, 255);
comboGamut.Dock = DockStyle.Top;
comboGamut.FlatStyle = FlatStyle.Flat;
comboGamut.Font = new Font("Segoe UI", 9F, FontStyle.Regular, GraphicsUnit.Point);
comboGamut.FormattingEnabled = true;
comboGamut.ItemHeight = 32;
comboGamut.Location = new Point(4, 77);
comboGamut.Margin = new Padding(4, 11, 4, 8);
comboGamut.Name = "comboGamut";
comboGamut.Size = new Size(254, 40);
comboGamut.TabIndex = 13;
comboGamut.Visible = false;
//
// sliderGamma // sliderGamma
// //
sliderGamma.Dock = DockStyle.Top; sliderGamma.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
sliderGamma.Location = new Point(20, 54); sliderGamma.Location = new Point(40, 69);
sliderGamma.Margin = new Padding(4); sliderGamma.Margin = new Padding(4);
sliderGamma.Max = 100; sliderGamma.Max = 100;
sliderGamma.Min = 0; sliderGamma.Min = 0;
sliderGamma.Name = "sliderGamma"; sliderGamma.Name = "sliderGamma";
sliderGamma.Size = new Size(787, 40); sliderGamma.Size = new Size(752, 40);
sliderGamma.Step = 5; sliderGamma.Step = 10;
sliderGamma.TabIndex = 20; sliderGamma.TabIndex = 20;
sliderGamma.Text = "sliderGamma"; sliderGamma.Text = "sliderGamma";
sliderGamma.Value = 100; sliderGamma.Value = 100;
sliderGamma.Visible = false;
// //
// panelGammaTitle // panelGammaTitle
// //
@@ -1802,7 +1701,7 @@ namespace GHelper
panelGammaTitle.Controls.Add(pictureGamma); panelGammaTitle.Controls.Add(pictureGamma);
panelGammaTitle.Controls.Add(labelGammaTitle); panelGammaTitle.Controls.Add(labelGammaTitle);
panelGammaTitle.Dock = DockStyle.Top; panelGammaTitle.Dock = DockStyle.Top;
panelGammaTitle.Location = new Point(20, 10); panelGammaTitle.Location = new Point(20, 20);
panelGammaTitle.Margin = new Padding(4); panelGammaTitle.Margin = new Padding(4);
panelGammaTitle.Name = "panelGammaTitle"; panelGammaTitle.Name = "panelGammaTitle";
panelGammaTitle.Padding = new Padding(0, 0, 0, 4); panelGammaTitle.Padding = new Padding(0, 0, 0, 4);
@@ -1837,7 +1736,7 @@ namespace GHelper
labelGammaTitle.Location = new Point(43, 0); labelGammaTitle.Location = new Point(43, 0);
labelGammaTitle.Margin = new Padding(8, 0, 8, 0); labelGammaTitle.Margin = new Padding(8, 0, 8, 0);
labelGammaTitle.Name = "labelGammaTitle"; labelGammaTitle.Name = "labelGammaTitle";
labelGammaTitle.Size = new Size(506, 32); labelGammaTitle.Size = new Size(307, 32);
labelGammaTitle.TabIndex = 37; labelGammaTitle.TabIndex = 37;
labelGammaTitle.Text = "Flicker-free Dimming"; labelGammaTitle.Text = "Flicker-free Dimming";
// //
@@ -1847,7 +1746,7 @@ namespace GHelper
AutoScaleMode = AutoScaleMode.Dpi; AutoScaleMode = AutoScaleMode.Dpi;
AutoSize = true; AutoSize = true;
AutoSizeMode = AutoSizeMode.GrowAndShrink; AutoSizeMode = AutoSizeMode.GrowAndShrink;
ClientSize = new Size(849, 1759); ClientSize = new Size(849, 2119);
Controls.Add(panelFooter); Controls.Add(panelFooter);
Controls.Add(panelVersion); Controls.Add(panelVersion);
Controls.Add(panelBattery); Controls.Add(panelBattery);
@@ -1927,8 +1826,6 @@ namespace GHelper
panelAllyTitle.PerformLayout(); panelAllyTitle.PerformLayout();
((System.ComponentModel.ISupportInitialize)pictureAlly).EndInit(); ((System.ComponentModel.ISupportInitialize)pictureAlly).EndInit();
panelGamma.ResumeLayout(false); panelGamma.ResumeLayout(false);
panelGamma.PerformLayout();
tableVisual.ResumeLayout(false);
panelGammaTitle.ResumeLayout(false); panelGammaTitle.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)pictureGamma).EndInit(); ((System.ComponentModel.ISupportInitialize)pictureGamma).EndInit();
ResumeLayout(false); ResumeLayout(false);
@@ -2034,10 +1931,5 @@ namespace GHelper
private Label labelGammaTitle; private Label labelGammaTitle;
private CheckBox checkMatrixLid; private CheckBox checkMatrixLid;
private Panel panelMatrixAuto; private Panel panelMatrixAuto;
private TableLayoutPanel tableVisual;
private RComboBox comboVisual;
private RComboBox comboGamut;
private RComboBox comboColorTemp;
private RButton buttonInstallColor;
} }
} }

View File

@@ -24,7 +24,7 @@ namespace GHelper
public GPUModeControl gpuControl; public GPUModeControl gpuControl;
public AllyControl allyControl; public AllyControl allyControl;
ScreenControl screenControl = new ScreenControl(); ScreenControl screenControl = new ScreenControl();
AutoUpdateControl updateControl; AutoUpdateControl updateControl;
AsusMouseSettings? mouseSettings; AsusMouseSettings? mouseSettings;
@@ -48,8 +48,6 @@ namespace GHelper
bool batteryMouseOver = false; bool batteryMouseOver = false;
bool batteryFullMouseOver = false; bool batteryFullMouseOver = false;
bool sliderGammaIgnore = false;
public SettingsForm() public SettingsForm()
{ {
@@ -118,7 +116,7 @@ namespace GHelper
buttonScreenAuto.AccessibleName = Properties.Strings.AutoMode; buttonScreenAuto.AccessibleName = Properties.Strings.AutoMode;
//button60Hz.AccessibleName = "60Hz Refresh Rate"; //button60Hz.AccessibleName = "60Hz Refresh Rate";
//button120Hz.AccessibleName = "Maximum Refresh Rate"; //button120Hz.AccessibleName = "Maximum Refresh Rate";
panelKeyboard.AccessibleName = Properties.Strings.LaptopKeyboard; panelKeyboard.AccessibleName = Properties.Strings.LaptopKeyboard;
buttonKeyboard.AccessibleName = Properties.Strings.ExtraSettings; buttonKeyboard.AccessibleName = Properties.Strings.ExtraSettings;
buttonKeyboardColor.AccessibleName = Properties.Strings.LaptopKeyboard + " " + Properties.Strings.Color; buttonKeyboardColor.AccessibleName = Properties.Strings.LaptopKeyboard + " " + Properties.Strings.Color;
@@ -221,7 +219,7 @@ namespace GHelper
sliderBattery.ValueChanged += SliderBattery_ValueChanged; sliderBattery.ValueChanged += SliderBattery_ValueChanged;
Program.trayIcon.MouseMove += TrayIcon_MouseMove; Program.trayIcon.MouseMove += TrayIcon_MouseMove;
sensorTimer = new System.Timers.Timer(AppConfig.Get("sensor_timer", 1000)); sensorTimer = new System.Timers.Timer(AppConfig.Get("sensor_timer",1000));
sensorTimer.Elapsed += OnTimedEvent; sensorTimer.Elapsed += OnTimedEvent;
sensorTimer.Enabled = true; sensorTimer.Enabled = true;
@@ -256,125 +254,17 @@ namespace GHelper
VisualiseFnLock(); VisualiseFnLock();
buttonFnLock.Click += ButtonFnLock_Click; buttonFnLock.Click += ButtonFnLock_Click;
panelGamma.Visible = AppConfig.IsOLED();
sliderGamma.ValueChanged += SliderGamma_ValueChanged;
labelGamma.Text = "100%";
panelPerformance.Focus(); panelPerformance.Focus();
InitVisual();
}
public void InitVisual()
{
bool dimming = false;
if (AppConfig.IsOLED())
{
dimming = true;
labelGammaTitle.Text = Properties.Strings.FlickerFreeDimming;
panelGamma.Visible = true;
sliderGamma.Visible = true;
VisualiseBrightness();
sliderGamma.ValueChanged += SliderGamma_ValueChanged;
sliderGamma.MouseUp += SliderGamma_ValueChanged;
}
if (!dimming) labelGammaTitle.Text = Properties.Strings.ViualMode;
else labelGammaTitle.Text += " / " + Properties.Strings.ViualMode;
var gamuts = VisualControl.GetGamutModes();
if (gamuts.Count < 1)
{
if (ColorProfileHelper.ProfileExists())
{
tableVisual.ColumnCount = 2;
buttonInstallColor.Text = Properties.Strings.DownloadColorProfiles;
buttonInstallColor.Visible = true;
buttonInstallColor.Click += ButtonInstallColorProfile_Click;
panelGamma.Visible = true;
tableVisual.Visible = true;
}
return;
} else
{
tableVisual.ColumnCount = 3;
buttonInstallColor.Visible = false;
}
panelGamma.Visible = true;
tableVisual.Visible = true;
var visualValue = (SplendidCommand)AppConfig.Get("visual", (int)SplendidCommand.Default);
var colorTempValue = AppConfig.Get("color_temp", VisualControl.DefaultColorTemp);
comboVisual.DropDownStyle = ComboBoxStyle.DropDownList;
comboVisual.DataSource = new BindingSource(VisualControl.GetVisualModes(), null);
comboVisual.DisplayMember = "Value";
comboVisual.ValueMember = "Key";
comboVisual.SelectedValue = visualValue;
comboColorTemp.DropDownStyle = ComboBoxStyle.DropDownList;
comboColorTemp.DataSource = new BindingSource(VisualControl.GetTemperatures(), null);
comboColorTemp.DisplayMember = "Value";
comboColorTemp.ValueMember = "Key";
comboColorTemp.SelectedValue = colorTempValue;
VisualControl.SetVisual(visualValue, colorTempValue, true);
comboVisual.SelectedValueChanged += ComboVisual_SelectedValueChanged;
comboVisual.Visible = true;
comboColorTemp.SelectedValueChanged += ComboVisual_SelectedValueChanged;
comboColorTemp.Visible = true;
if (gamuts.Count <= 1) return;
comboGamut.DropDownStyle = ComboBoxStyle.DropDownList;
comboGamut.DataSource = new BindingSource(gamuts, null);
comboGamut.DisplayMember = "Value";
comboGamut.ValueMember = "Key";
comboGamut.SelectedValue = (SplendidGamut)AppConfig.Get("gamut", (int)SplendidGamut.Native);
comboGamut.SelectedValueChanged += ComboGamut_SelectedValueChanged;
comboGamut.Visible = true;
}
private async void ButtonInstallColorProfile_Click(object? sender, EventArgs e)
{
await ColorProfileHelper.InstallProfile();
InitVisual();
}
private void ComboGamut_SelectedValueChanged(object? sender, EventArgs e)
{
AppConfig.Set("gamut", (int)comboGamut.SelectedValue);
VisualControl.SetGamut((int)comboGamut.SelectedValue);
}
private void ComboVisual_SelectedValueChanged(object? sender, EventArgs e)
{
AppConfig.Set("visual", (int)comboVisual.SelectedValue);
AppConfig.Set("color_temp", (int)comboColorTemp.SelectedValue);
VisualControl.SetVisual((SplendidCommand)comboVisual.SelectedValue, (int)comboColorTemp.SelectedValue);
}
public void VisualiseBrightness()
{
Invoke(delegate
{
sliderGammaIgnore = true;
sliderGamma.Value = AppConfig.Get("brightness", 100);
labelGamma.Text = sliderGamma.Value + "%";
sliderGammaIgnore = false;
});
} }
private void SliderGamma_ValueChanged(object? sender, EventArgs e) private void SliderGamma_ValueChanged(object? sender, EventArgs e)
{ {
if (sliderGammaIgnore) return; screenControl.SetGamma(sliderGamma.Value);
VisualControl.SetBrightness(sliderGamma.Value); labelGamma.Text = sliderGamma.Value + "%";
} }
private void ButtonOverlay_Click(object? sender, EventArgs e) private void ButtonOverlay_Click(object? sender, EventArgs e)
@@ -448,7 +338,7 @@ namespace GHelper
public void VisualiseBacklight(int backlight) public void VisualiseBacklight(int backlight)
{ {
buttonBacklight.Text = Math.Round((double)backlight * 33.33).ToString() + "%"; buttonBacklight.Text = Math.Round((double)backlight*33.33).ToString() + "%";
} }
public void VisualiseFPSLimit(int limit) public void VisualiseFPSLimit(int limit)
@@ -945,7 +835,7 @@ namespace GHelper
FansToggle(); FansToggle();
} }
private void SetColorPicker(string colorField = "aura_color") private void SetColorPicker(string colorField = "aura_color")
{ {
ColorDialog colorDlg = new ColorDialog(); ColorDialog colorDlg = new ColorDialog();
colorDlg.AllowFullOpen = true; colorDlg.AllowFullOpen = true;
@@ -1050,7 +940,7 @@ namespace GHelper
buttonMatrix.Visible = false; buttonMatrix.Visible = false;
checkMatrixLid.Visible = true; checkMatrixLid.Visible = true;
} }
comboMatrix.SelectedIndex = Math.Min(AppConfig.Get("matrix_brightness", 0), comboMatrix.Items.Count - 1); comboMatrix.SelectedIndex = Math.Min(AppConfig.Get("matrix_brightness", 0), comboMatrix.Items.Count - 1);
comboMatrixRunning.SelectedIndex = Math.Min(AppConfig.Get("matrix_running", 0), comboMatrixRunning.Items.Count - 1); comboMatrixRunning.SelectedIndex = Math.Min(AppConfig.Get("matrix_running", 0), comboMatrixRunning.Items.Count - 1);
@@ -1383,13 +1273,11 @@ namespace GHelper
{ {
if (InvokeRequired) if (InvokeRequired)
{ {
Invoke(delegate Invoke(delegate {
{
labelPerf.Text = modeText; labelPerf.Text = modeText;
panelPerformance.AccessibleName = labelPerf.Text; panelPerformance.AccessibleName = labelPerf.Text;
}); });
} } else
else
{ {
labelPerf.Text = modeText; labelPerf.Text = modeText;
panelPerformance.AccessibleName = labelPerf.Text; panelPerformance.AccessibleName = labelPerf.Text;
@@ -1564,7 +1452,7 @@ namespace GHelper
break; break;
} }
VisualizeXGM(GPUMode); VisualizeXGM(GPUMode);
@@ -1738,7 +1626,7 @@ namespace GHelper
return; return;
} }
mouseSettings = new AsusMouseSettings(am); mouseSettings = new AsusMouseSettings(am);
mouseSettings.TopMost = AppConfig.Is("topmost"); mouseSettings.TopMost = true;
mouseSettings.FormClosed += MouseSettings_FormClosed; mouseSettings.FormClosed += MouseSettings_FormClosed;
mouseSettings.Disposed += MouseSettings_Disposed; mouseSettings.Disposed += MouseSettings_Disposed;
if (!mouseSettings.IsDisposed) if (!mouseSettings.IsDisposed)

View File

@@ -1,12 +1,10 @@
using System.ComponentModel; using System.ComponentModel;
using System.Drawing.Drawing2D;
using System.Runtime.InteropServices; using System.Runtime.InteropServices;
namespace GHelper.UI namespace GHelper.UI
{ {
public class RComboBox : ComboBox public class RComboBox : ComboBox
{ {
private Color borderColor = Color.Gray; private Color borderColor = Color.Gray;
[DefaultValue(typeof(Color), "Gray")] [DefaultValue(typeof(Color), "Gray")]
public Color BorderColor public Color BorderColor
@@ -54,67 +52,6 @@ namespace GHelper.UI
} }
public static GraphicsPath RoundedRect(Rectangle bounds, int radiusL, int radiusR)
{
int diameterL = radiusL * 2;
int diameterR = radiusR * 2;
Size sizeL = new Size(diameterL, diameterL);
Size sizeR = new Size(diameterR, diameterR);
Rectangle arcL = new Rectangle(bounds.Location, sizeL);
Rectangle arcR = new Rectangle(bounds.Location, sizeR);
GraphicsPath path = new GraphicsPath();
// top left arc
path.AddArc(arcL, 180, 90);
// top right arc
arcR.X = bounds.Right - diameterR;
arcR.Y = bounds.Top;
path.AddArc(arcR, 270, 90);
// bottom right arc
arcR.Y = bounds.Bottom - diameterR;
arcR.X = bounds.Right - diameterR;
path.AddArc(arcR, 0, 90);
// bottom left arc
arcL.X = bounds.Left;
arcL.Y = bounds.Bottom - diameterL;
path.AddArc(arcL, 90, 90);
path.CloseFigure();
return path;
}
public static void DrawRoundedRectangle(Graphics graphics, Pen pen, Rectangle bounds, int cornerRadiusL = 5, int cornerRadiusR = 5)
{
if (graphics == null)
throw new ArgumentNullException(nameof(graphics));
if (pen == null)
throw new ArgumentNullException(nameof(pen));
using (GraphicsPath path = RoundedRect(bounds, cornerRadiusL, cornerRadiusR))
{
graphics.DrawPath(pen, path);
}
}
public static void FillRoundedRectangle(Graphics graphics, Brush brush, Rectangle bounds, int cornerRadiusL = 5, int cornerRadiusR = 5)
{
if (graphics == null)
throw new ArgumentNullException(nameof(graphics));
if (brush == null)
throw new ArgumentNullException(nameof(brush));
using (GraphicsPath path = RoundedRect(bounds, cornerRadiusL, cornerRadiusR))
{
graphics.FillPath(brush, path);
}
}
protected override void WndProc(ref Message m) protected override void WndProc(ref Message m)
{ {
if (m.Msg == WM_PAINT && DropDownStyle != ComboBoxStyle.Simple) if (m.Msg == WM_PAINT && DropDownStyle != ComboBoxStyle.Simple)
@@ -174,25 +111,20 @@ namespace GHelper.UI
{ {
using (var b = new SolidBrush(buttonColor)) using (var b = new SolidBrush(buttonColor))
{ {
//FillRoundedRectangle(g, b, dropDownRect, 1, 3);
g.FillRectangle(b, dropDownRect); g.FillRectangle(b, dropDownRect);
} }
using (var b = new SolidBrush(arrowColor)) using (var b = new SolidBrush(arrowColor))
{ {
g.FillPolygon(b, arrow); g.FillPolygon(b, arrow);
} }
using (var p = new Pen(innerBorderColor, 2)) using (var p = new Pen(innerBorderColor))
{ {
DrawRoundedRectangle(g, p, innerBorder, 3, 1); g.DrawRectangle(p, innerBorder);
//DrawRoundedRectangle(g, p, innerInnerBorder, 3, 1); g.DrawRectangle(p, innerInnerBorder);
//g.DrawRectangle(p, innerBorder);
//g.DrawRectangle(p, innerInnerBorder);
} }
using (var p = new Pen(outerBorderColor)) using (var p = new Pen(outerBorderColor))
{ {
DrawRoundedRectangle(g, p, outerBorder, 4, 4); g.DrawRectangle(p, outerBorder);
//g.DrawRectangle(p, outerBorder);
} }
} }
if (shoulEndPaint) if (shoulEndPaint)

View File

@@ -97,16 +97,16 @@ public static class AsusHid
try try
{ {
stream.Write(data); stream.Write(data);
if (log is not null) Logger.WriteLine($"{log} {device.ProductID.ToString("X")}: {BitConverter.ToString(data)}"); Logger.WriteLine($"{log} {device.ProductID.ToString("X")}: {BitConverter.ToString(data)}");
} }
catch (Exception ex) catch (Exception ex)
{ {
if (log is not null) Logger.WriteLine($"Error writing {log} {device.ProductID.ToString("X")}: {ex.Message} {BitConverter.ToString(data)} "); Logger.WriteLine($"Error writing {log} {device.ProductID.ToString("X")}: {ex.Message} {BitConverter.ToString(data)} ");
} }
} }
catch (Exception ex) catch (Exception ex)
{ {
if (log is not null) Logger.WriteLine($"Error opening {log} {device.ProductID.ToString("X")}: {ex.Message}"); Logger.WriteLine($"Error opening {log} {device.ProductID.ToString("X")}: {ex.Message}");
} }
} }

View File

@@ -79,7 +79,7 @@ namespace GHelper.USB
public static Color Color1 = Color.White; public static Color Color1 = Color.White;
public static Color Color2 = Color.Black; public static Color Color2 = Color.Black;
static bool isACPI = AppConfig.IsTUF() || AppConfig.IsVivoZenbook() || AppConfig.IsProArt(); static bool isACPI = AppConfig.IsTUF() || AppConfig.IsVivobook() || AppConfig.IsProArt();
static bool isStrix = AppConfig.IsStrix() && !AppConfig.IsNoDirectRGB(); static bool isStrix = AppConfig.IsStrix() && !AppConfig.IsNoDirectRGB();
static bool isStrix4Zone = AppConfig.IsStrixLimitedRGB(); static bool isStrix4Zone = AppConfig.IsStrixLimitedRGB();
@@ -598,7 +598,7 @@ namespace GHelper.USB
if (AppConfig.IsNoDirectRGB()) if (AppConfig.IsNoDirectRGB())
{ {
AsusHid.Write(new List<byte[]> { AuraMessage(AuraMode.AuraStatic, color, color, 0xeb, isSingleColor), MESSAGE_SET }, null); AsusHid.Write(new List<byte[]> { AuraMessage(AuraMode.AuraStatic, color, color, 0xeb, isSingleColor), MESSAGE_SET });
return; return;
} }
@@ -670,7 +670,7 @@ namespace GHelper.USB
{ {
CustomRGB.ApplyAmbient(true); CustomRGB.ApplyAmbient(true);
timer.Enabled = true; timer.Enabled = true;
timer.Interval = AppConfig.Get("aura_refresh", AppConfig.IsStrix() ? 100 : 300); timer.Interval = AppConfig.Get("aura_refresh", AppConfig.ContainsModel("GU604") ? 400 : 120);
return; return;
} }

View File

@@ -36,7 +36,7 @@ namespace GHelper
(bios, model) = AppConfig.GetBiosAndModel(); (bios, model) = AppConfig.GetBiosAndModel();
buttonRefresh.TabStop = false; buttonRefresh.TabStop = false;
updatesCount = 0; updatesCount = 0;
labelUpdates.ForeColor = colorEco; labelUpdates.ForeColor = colorEco;
labelUpdates.Text = Properties.Strings.NoNewUpdates; labelUpdates.Text = Properties.Strings.NoNewUpdates;
@@ -161,36 +161,24 @@ namespace GHelper
}); });
} }
private void _VisualiseNewDriver(int position, int newer, TableLayoutPanel table) public void VisualiseNewDriver(int position, int newer, TableLayoutPanel table)
{ {
var label = table.GetControlFromPosition(3, position) as LinkLabel; var label = table.GetControlFromPosition(3, position) as LinkLabel;
if (label != null) if (label != null)
{
if (newer == DRIVER_NEWER)
{
label.AccessibleName = label.AccessibleName + Properties.Strings.NewUpdates;
label.Font = new Font(label.Font, FontStyle.Underline | FontStyle.Bold);
label.LinkColor = colorTurbo;
}
if (newer == DRIVER_NOT_FOUND) label.LinkColor = Color.Gray;
}
}
public void VisualiseNewDriver(int position, int newer, TableLayoutPanel table)
{
if (InvokeRequired)
{ {
Invoke(delegate Invoke(delegate
{ {
_VisualiseNewDriver(position, newer, table); if (newer == DRIVER_NEWER)
}); {
} else label.AccessibleName = label.AccessibleName + Properties.Strings.NewUpdates;
{ label.Font = new Font(label.Font, FontStyle.Underline | FontStyle.Bold);
_VisualiseNewDriver(position, newer, table); label.LinkColor = colorTurbo;
} }
if (newer == DRIVER_NOT_FOUND) label.LinkColor = Color.Gray;
});
}
} }
public void VisualiseNewCount(int updatesCount, TableLayoutPanel table) public void VisualiseNewCount(int updatesCount, TableLayoutPanel table)
@@ -206,7 +194,7 @@ namespace GHelper
}); });
} }
public async void DriversAsync(string url, int type, TableLayoutPanel table) public async void DriversAsync(string url, int type, TableLayoutPanel table)
{ {
try try
@@ -279,7 +267,7 @@ namespace GHelper
foreach (var localVersion in localVersions) foreach (var localVersion in localVersions)
{ {
newer = Math.Min(newer, new Version(driver.version).CompareTo(new Version(localVersion))); newer = Math.Min(newer, new Version(driver.version).CompareTo(new Version(localVersion)));
Logger.WriteLine(driver.title + " " + deviceID + " " + driver.version + " vs " + localVersion + " = " + newer); Logger.WriteLine(driver.title + " " + deviceID + " "+ driver.version + " vs " + localVersion + " = " + newer);
} }
} }

View File

@@ -1,5 +1,5 @@
{ {
"sdk": { "sdk": {
"version": "7.0.406" "version": "7.0.400"
} }
} }

View File

@@ -6,7 +6,7 @@
Small and lightweight Armoury Crate alternative for Asus laptops offering almost same functionality without extra bloat and unnecessary services. Small and lightweight Armoury Crate alternative for Asus laptops offering almost same functionality without extra bloat and unnecessary services.
Works with all popular models, such as ROG Zephyrus G14, G15, G16, M16, Flow X13, Flow X16, Flow Z13, TUF Series, Strix / Scar Series, ProArt, VivoBook, Ally and many more! Works with all popular models, such as ROG Zephyrus G14, G15, G16, M16, Flow X13, Flow X16, Flow Z13, TUF Series, Strix / Scar Series, ProArt, VivoBook, Ally and many more!
# [:floppy_disk:Download](https://github.com/seerge/g-helper/releases/download/v0.158/GHelper.zip) # [:floppy_disk:Download](https://github.com/seerge/g-helper/releases/latest/download/GHelper.zip)
- [FAQ](https://github.com/seerge/g-helper/wiki/FAQ) - [FAQ](https://github.com/seerge/g-helper/wiki/FAQ)
- [Setup and Requirements](https://github.com/seerge/g-helper/wiki/Requirements) - [Setup and Requirements](https://github.com/seerge/g-helper/wiki/Requirements)