Compare commits

..

15 Commits

Author SHA1 Message Date
Serge
4ba11f1f9f Version bump 2023-12-11 13:53:12 +01:00
Serge
382080922d White only keyboard detection for GA503R https://github.com/seerge/g-helper/issues/1714 2023-12-09 17:51:12 +01:00
Serge
d439d20c13 Merge branch 'main' of https://github.com/seerge/g-helper 2023-12-09 14:42:16 +01:00
Serge
24199b3036 Matrix Contrast slider https://github.com/seerge/g-helper/issues/1713 2023-12-09 14:42:14 +01:00
Serge
d45ce23d9a Update README.md 2023-12-09 00:58:00 +01:00
Serge
34ae2e536d New Crowdin updates (#1708)
* New translations strings.resx (French)

* New translations strings.resx (Chinese Simplified)
2023-12-08 13:44:42 +01:00
Serge
64e3b3bbd6 Added M16 2023 to the list of devices that support GPU enabling on shutdown https://www.reddit.com/r/ZephyrusM16/comments/18chukc/comment/kcd132i/?context=3 2023-12-07 14:31:05 +01:00
Serge
f3fd590be4 Version Bump 2023-12-07 11:25:08 +01:00
Serge
6a9d47a61d UI Fixes https://github.com/seerge/g-helper/issues/1701 2023-12-07 11:12:57 +01:00
Serge
3848ef9a43 New translations strings.resx (Polish) (#1692) 2023-12-03 21:55:37 +01:00
Serge
84c7fdb3bf Removed ACPI requirement for non-asus models https://github.com/seerge/g-helper/issues/1676 2023-12-03 12:17:07 +01:00
Serge
013c83fd60 Merge branch 'main' of https://github.com/seerge/g-helper 2023-12-03 11:23:17 +01:00
Serge
b31ed8338a G14 2023 white-only / RGB detection https://github.com/seerge/g-helper/issues/1686 2023-12-03 11:23:14 +01:00
Serge
6f9eb1e9c5 New translations strings.resx (Spanish) (#1681) 2023-12-01 22:56:15 +01:00
Hamza Rizwan
f19ea5eaf6 Update AppConfig.cs (#1682)
Added "G713RC" to the list of limited Strix RGB models
2023-12-01 22:56:01 +01:00
16 changed files with 178 additions and 74 deletions

View File

@@ -347,7 +347,10 @@ namespace GHelper.AnimeMatrix
int matrixX = AppConfig.Get("matrix_x", 0);
int matrixY = AppConfig.Get("matrix_y", 0);
int matrixZoom = AppConfig.Get("matrix_zoom", 100);
int matrixContrast = AppConfig.Get("matrix_contrast", 100);
int matrixSpeed = AppConfig.Get("matrix_speed", 50);
MatrixRotation rotation = (MatrixRotation)AppConfig.Get("matrix_rotation", 0);
@@ -368,9 +371,9 @@ namespace GHelper.AnimeMatrix
image.SelectActiveFrame(dimension, i);
if (rotation == MatrixRotation.Planar)
device.GenerateFrame(image, matrixZoom, matrixX, matrixY, matrixQuality);
device.GenerateFrame(image, matrixZoom, matrixX, matrixY, matrixQuality, matrixContrast);
else
device.GenerateFrameDiagonal(image, matrixZoom, matrixX, matrixY, matrixQuality);
device.GenerateFrameDiagonal(image, matrixZoom, matrixX, matrixY, matrixQuality, matrixContrast);
device.AddFrame();
}
@@ -385,9 +388,9 @@ namespace GHelper.AnimeMatrix
else
{
if (rotation == MatrixRotation.Planar)
device.GenerateFrame(image, matrixZoom, matrixX, matrixY, matrixQuality);
device.GenerateFrame(image, matrixZoom, matrixX, matrixY, matrixQuality, matrixContrast);
else
device.GenerateFrameDiagonal(image, matrixZoom, matrixX, matrixY, matrixQuality);
device.GenerateFrameDiagonal(image, matrixZoom, matrixX, matrixY, matrixQuality, matrixContrast);
device.Present();
}

View File

@@ -399,21 +399,21 @@ namespace Starlight.AnimeMatrix
}
private void SetBitmapDiagonal(Bitmap bmp, int deltaX = 0, int deltaY = 0)
private void SetBitmapDiagonal(Bitmap bmp, int deltaX = 0, int deltaY = 0, int contrast = 100)
{
for (int y = 0; y < bmp.Height; y++)
{
for (int x = 0; x < bmp.Width; x++)
{
var pixel = bmp.GetPixel(x, y);
var color = (pixel.R + pixel.G + pixel.B) / 3;
var color = Math.Min((pixel.R + pixel.G + pixel.B) * contrast / 300, 255);
if (color > 20)
SetLedDiagonal(x, y, (byte)color, deltaX + (FullRows / 2) + 1, deltaY - (FullRows / 2) - 1);
}
}
}
private void SetBitmapLinear(Bitmap bmp)
private void SetBitmapLinear(Bitmap bmp, int contrast = 100)
{
for (int y = 0; y < bmp.Height; y++)
{
@@ -421,7 +421,7 @@ namespace Starlight.AnimeMatrix
if (x % 2 == y % 2)
{
var pixel = bmp.GetPixel(x, y);
var color = (pixel.R + pixel.G + pixel.B) / 3;
var color = Math.Min((pixel.R + pixel.G + pixel.B) * contrast / 300, 255);
if (color > 20)
SetLedPlanar(x / 2, y, (byte)color);
}
@@ -468,7 +468,7 @@ namespace Starlight.AnimeMatrix
Present();
}
public void GenerateFrame(Image image, float zoom = 100, int panX = 0, int panY = 0, InterpolationMode quality = InterpolationMode.Default)
public void GenerateFrame(Image image, float zoom = 100, int panX = 0, int panY = 0, InterpolationMode quality = InterpolationMode.Default, int contrast = 100)
{
int width = MaxColumns / 2 * 6;
int height = MaxRows;
@@ -495,11 +495,11 @@ namespace Starlight.AnimeMatrix
}
Clear();
SetBitmapLinear(bmp);
SetBitmapLinear(bmp, contrast);
}
}
public void GenerateFrameDiagonal(Image image, float zoom = 100, int panX = 0, int panY = 0, InterpolationMode quality = InterpolationMode.Default)
public void GenerateFrameDiagonal(Image image, float zoom = 100, int panX = 0, int panY = 0, InterpolationMode quality = InterpolationMode.Default, int contrast = 100)
{
int width = MaxRows - FullRows;
int height = MaxRows - FullRows*2;
@@ -523,7 +523,7 @@ namespace Starlight.AnimeMatrix
}
Clear();
SetBitmapDiagonal(bmp, -panX, height + panY);
SetBitmapDiagonal(bmp, -panX, height + panY, contrast);
}
}

View File

@@ -355,7 +355,7 @@ public static class AppConfig
public static bool IsStrixLimitedRGB()
{
return ContainsModel("G614JV") || ContainsModel("G614JZ") || ContainsModel("G512LI") || ContainsModel("G513RS") || ContainsModel("G513RM") || ContainsModel("G713PV") || ContainsModel("G513IE") || ContainsModel("G513QM");
return ContainsModel("G614JV") || ContainsModel("G614JZ") || ContainsModel("G512LI") || ContainsModel("G513RS") || ContainsModel("G513RM") || ContainsModel("G713PV") || ContainsModel("G513IE") || ContainsModel("G513QM") || ContainsModel("G713RC");
}
public static bool IsStrixNumpad()
@@ -428,7 +428,7 @@ public static class AppConfig
public static bool IsGPUFixNeeded()
{
return ContainsModel("GA402X") || ContainsModel("GV302") || ContainsModel("GV301") || ContainsModel("GZ301") || ContainsModel("FX506") || ContainsModel("GU603V") || ContainsModel("GU603Z");
return ContainsModel("GA402X") || ContainsModel("GV302") || ContainsModel("GV301") || ContainsModel("GZ301") || ContainsModel("FX506") || ContainsModel("GU603") || ContainsModel("GU604") || ContainsModel("G614J");
}
public static bool IsGPUFix()
@@ -451,4 +451,8 @@ public static class AppConfig
return ContainsModel("FA507");
}
public static bool IsASUS()
{
return ContainsModel("ROG") || ContainsModel("TUF") || ContainsModel("Vivobook") || ContainsModel("Zenbook");
}
}

View File

@@ -1,5 +1,4 @@
using FftSharp;
using GHelper;
using GHelper;
using GHelper.USB;
using System.Management;
using System.Runtime.InteropServices;
@@ -37,7 +36,7 @@ public class AsusACPI
const uint INIT = 0x54494E49;
public const uint UniversalControl = 0x00100021;
public const int KB_Light_Up = 0xc4;
public const int KB_Light_Down = 0xc5;
public const int Brightness_Down = 0x10;
@@ -186,6 +185,7 @@ public class AsusACPI
private static extern bool WaitForSingleObject(IntPtr hHandle, int dwMilliseconds);
private IntPtr eventHandle;
private bool _connected = false;
// still works only with asus optimization service on , if someone knows how to get ACPI events from asus without that - let me know
public void RunListener()
@@ -212,22 +212,33 @@ public class AsusACPI
}
}
public bool IsConnected()
{
return _connected;
}
public AsusACPI()
{
handle = CreateFile(
FILE_NAME,
GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_READ | FILE_SHARE_WRITE,
IntPtr.Zero,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
IntPtr.Zero
);
if (handle == new IntPtr(-1))
try
{
throw new Exception("Can't connect to ACPI");
handle = CreateFile(
FILE_NAME,
GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_READ | FILE_SHARE_WRITE,
IntPtr.Zero,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
IntPtr.Zero
);
//handle = new IntPtr(-1);
//throw new Exception("ERROR");
_connected = true;
}
catch (Exception ex)
{
Logger.WriteLine($"Can't connect to ACPI: {ex.Message}");
}
if (AppConfig.IsAdvantageEdition()) MaxTotal = 250;
@@ -390,7 +401,7 @@ public class AsusACPI
byte min = (byte)(curve[8] * 255 / 100);
byte max = (byte)(curve[15] * 255 / 100);
byte[] range = { min, max};
byte[] range = { min, max };
int result;
switch (device)
@@ -422,7 +433,7 @@ public class AsusACPI
// it seems to be a bug, when some old model's bios can go nuts if fan is set to 100%
for (int i = 8; i < curve.Length; i++) curve[i] = (byte)(Math.Max((byte)0, Math.Min((byte)100, curve[i])) * fanScale / 100);
for (int i = 8; i < curve.Length; i++) curve[i] = (byte)(Math.Max((byte)0, Math.Min((byte)100, curve[i])) * fanScale / 100);
switch (device)
{
@@ -575,7 +586,7 @@ public class AsusACPI
switch (memory)
{
case 256:
case 256:
return 0;
case 258:
return 1;
@@ -626,7 +637,7 @@ public class AsusACPI
{
byte[] setting = new byte[6];
setting[0] = (byte)0xb4;
setting[1] = (byte)mode;
setting[2] = color.R;

View File

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

View File

@@ -181,6 +181,12 @@ namespace GHelper.Gpu
Program.modeControl.SetGPUClocks(false);
}
if (AppConfig.Is("mode_reapply"))
{
await Task.Delay(TimeSpan.FromMilliseconds(3000));
Program.modeControl.AutoPerformance();
}
});

67
app/Matrix.Designer.cs generated
View File

@@ -35,6 +35,10 @@
panelMain = new Panel();
panelButtons = new Panel();
buttonReset = new UI.RButton();
panelContrast = new Panel();
labelContrast = new Label();
labelContrastTitle = new Label();
trackContrast = new TrackBar();
panelRotation = new Panel();
comboRotation = new UI.RComboBox();
labelRotation = new Label();
@@ -49,6 +53,8 @@
panelPicture.SuspendLayout();
panelMain.SuspendLayout();
panelButtons.SuspendLayout();
panelContrast.SuspendLayout();
((System.ComponentModel.ISupportInitialize)trackContrast).BeginInit();
panelRotation.SuspendLayout();
panelScaling.SuspendLayout();
panelZoom.SuspendLayout();
@@ -111,6 +117,7 @@
//
panelMain.AutoSize = true;
panelMain.Controls.Add(panelButtons);
panelMain.Controls.Add(panelContrast);
panelMain.Controls.Add(panelRotation);
panelMain.Controls.Add(panelScaling);
panelMain.Controls.Add(panelZoom);
@@ -118,7 +125,7 @@
panelMain.Dock = DockStyle.Top;
panelMain.Location = new Point(20, 20);
panelMain.Name = "panelMain";
panelMain.Size = new Size(834, 814);
panelMain.Size = new Size(834, 959);
panelMain.TabIndex = 5;
//
// panelButtons
@@ -126,7 +133,7 @@
panelButtons.Controls.Add(buttonReset);
panelButtons.Controls.Add(buttonPicture);
panelButtons.Dock = DockStyle.Top;
panelButtons.Location = new Point(0, 720);
panelButtons.Location = new Point(0, 865);
panelButtons.Name = "panelButtons";
panelButtons.Size = new Size(834, 94);
panelButtons.TabIndex = 6;
@@ -150,6 +157,53 @@
buttonReset.TextImageRelation = TextImageRelation.ImageBeforeText;
buttonReset.UseVisualStyleBackColor = false;
//
// panelContrast
//
panelContrast.AutoSize = true;
panelContrast.Controls.Add(labelContrast);
panelContrast.Controls.Add(labelContrastTitle);
panelContrast.Controls.Add(trackContrast);
panelContrast.Dock = DockStyle.Top;
panelContrast.Location = new Point(0, 720);
panelContrast.Name = "panelContrast";
panelContrast.Size = new Size(834, 145);
panelContrast.TabIndex = 6;
//
// labelContrast
//
labelContrast.Anchor = AnchorStyles.Top | AnchorStyles.Right;
labelContrast.AutoSize = true;
labelContrast.Font = new Font("Segoe UI", 9F, FontStyle.Regular, GraphicsUnit.Point);
labelContrast.Location = new Point(705, 17);
labelContrast.Name = "labelContrast";
labelContrast.Size = new Size(103, 32);
labelContrast.TabIndex = 4;
labelContrast.Text = "Contrast";
//
// labelContrastTitle
//
labelContrastTitle.AutoSize = true;
labelContrastTitle.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
labelContrastTitle.Location = new Point(16, 17);
labelContrastTitle.Name = "labelContrastTitle";
labelContrastTitle.Size = new Size(111, 32);
labelContrastTitle.TabIndex = 3;
labelContrastTitle.Text = "Contrast";
//
// trackContrast
//
trackContrast.LargeChange = 50;
trackContrast.Location = new Point(16, 52);
trackContrast.Maximum = 200;
trackContrast.Minimum = 10;
trackContrast.Name = "trackContrast";
trackContrast.Size = new Size(782, 90);
trackContrast.SmallChange = 10;
trackContrast.TabIndex = 2;
trackContrast.TickFrequency = 20;
trackContrast.TickStyle = TickStyle.TopLeft;
trackContrast.Value = 100;
//
// panelRotation
//
panelRotation.Controls.Add(comboRotation);
@@ -256,7 +310,7 @@
AutoScaleDimensions = new SizeF(192F, 192F);
AutoScaleMode = AutoScaleMode.Dpi;
AutoSize = true;
ClientSize = new Size(874, 978);
ClientSize = new Size(874, 1006);
Controls.Add(panelMain);
MaximizeBox = false;
MinimizeBox = false;
@@ -272,6 +326,9 @@
panelMain.ResumeLayout(false);
panelMain.PerformLayout();
panelButtons.ResumeLayout(false);
panelContrast.ResumeLayout(false);
panelContrast.PerformLayout();
((System.ComponentModel.ISupportInitialize)trackContrast).EndInit();
panelRotation.ResumeLayout(false);
panelRotation.PerformLayout();
panelScaling.ResumeLayout(false);
@@ -300,5 +357,9 @@
private Panel panelRotation;
private UI.RComboBox comboRotation;
private Label labelRotation;
private Panel panelContrast;
private Label labelContrast;
private Label labelContrastTitle;
private TrackBar trackContrast;
}
}

View File

@@ -37,9 +37,13 @@ namespace GHelper
trackZoom.MouseUp += TrackZoom_MouseUp;
trackZoom.ValueChanged += TrackZoom_Changed;
trackZoom.Value = Math.Min(trackZoom.Maximum, AppConfig.Get("matrix_zoom", 100));
VisualiseZoom();
trackContrast.MouseUp += TrackContrast_MouseUp; ;
trackContrast.ValueChanged += TrackContrast_ValueChanged; ;
trackContrast.Value = Math.Min(trackContrast.Maximum, AppConfig.Get("matrix_contrast", 100));
VisualiseMatrix();
comboScaling.DropDownStyle = ComboBoxStyle.DropDownList;
comboScaling.SelectedIndex = AppConfig.Get("matrix_quality", 0);
@@ -55,6 +59,17 @@ namespace GHelper
}
private void TrackContrast_ValueChanged(object? sender, EventArgs e)
{
VisualiseMatrix();
}
private void TrackContrast_MouseUp(object? sender, MouseEventArgs e)
{
AppConfig.Set("matrix_contrast", trackContrast.Value);
SetMatrixPicture();
}
private void ComboRotation_SelectedValueChanged(object? sender, EventArgs e)
{
AppConfig.Set("matrix_rotation", comboRotation.SelectedIndex);
@@ -77,18 +92,21 @@ namespace GHelper
GC.Collect(GC.MaxGeneration, GCCollectionMode.Forced);
}
private void VisualiseZoom()
private void VisualiseMatrix()
{
labelZoom.Text = trackZoom.Value + "%";
labelContrast.Text = trackContrast.Value + "%";
}
private void ButtonReset_Click(object? sender, EventArgs e)
{
AppConfig.Set("matrix_contrast", 100);
AppConfig.Set("matrix_zoom", 100);
AppConfig.Set("matrix_x", 0);
AppConfig.Set("matrix_y", 0);
trackZoom.Value = 100;
trackContrast.Value = 100;
SetMatrixPicture();
@@ -102,7 +120,7 @@ namespace GHelper
private void TrackZoom_Changed(object? sender, EventArgs e)
{
VisualiseZoom();
VisualiseMatrix();
}
@@ -195,7 +213,6 @@ namespace GHelper
int matrixY = AppConfig.Get("matrix_y", 0);
int matrixZoom = AppConfig.Get("matrix_zoom", 100);
float scale = Math.Min((float)panelPicture.Width / (float)width, (float)panelPicture.Height / (float)height) * matrixZoom / 100;
pictureMatrix.Width = (int)(width * scale);

View File

@@ -64,11 +64,12 @@ namespace GHelper
ProcessHelper.CheckAlreadyRunning();
try
{
acpi = new AsusACPI();
}
catch
Logger.WriteLine("------------");
Logger.WriteLine("App launched: " + AppConfig.GetModel() + " :" + Assembly.GetExecutingAssembly().GetName().Version.ToString() + CultureInfo.CurrentUICulture + (ProcessHelper.IsUserAdministrator() ? "." : ""));
acpi = new AsusACPI();
if (!acpi.IsConnected() && AppConfig.IsASUS())
{
DialogResult dialogResult = MessageBox.Show(Properties.Strings.ACPIError, Properties.Strings.StartupError, MessageBoxButtons.YesNo);
if (dialogResult == DialogResult.Yes)
@@ -80,9 +81,6 @@ namespace GHelper
return;
}
Logger.WriteLine("------------");
Logger.WriteLine("App launched: " + AppConfig.GetModel() + " :" + Assembly.GetExecutingAssembly().GetName().Version.ToString() + CultureInfo.CurrentUICulture + (ProcessHelper.IsUserAdministrator() ? "." : ""));
Application.EnableVisualStyles();
HardwareControl.RecreateGpuControl();
@@ -154,6 +152,7 @@ namespace GHelper
}
private static void SystemEvents_SessionEnding(object sender, SessionEndingEventArgs e)
{
gpuControl.StandardModeFix();

View File

@@ -124,10 +124,10 @@
<value>No se pudo conectar con ASUS ACPI. La aplicación no puede funcionar sin el recurso. Instale Asus System Control Interface</value>
</data>
<data name="AlertAPUMemoryRestart" xml:space="preserve">
<value>Restart your device to apply changes</value>
<value>Reinicia el dispositivo para aplicar los cambios</value>
</data>
<data name="AlertAPUMemoryRestartTitle" xml:space="preserve">
<value>Restart now?</value>
<value>¿Reiniciar ahora?</value>
</data>
<data name="AlertDGPU" xml:space="preserve">
<value>Detectado uso intensivo de la GPU, ¿deshabilitarla?</value>
@@ -169,7 +169,7 @@
<value>Autoajustar plan de energía Windows</value>
</data>
<data name="APUMemory" xml:space="preserve">
<value>Memory Assigned to GPU</value>
<value>Memoria asignada a GPU</value>
</data>
<data name="AsusServicesRunning" xml:space="preserve">
<value>Servicios de Asus en ejecución</value>

View File

@@ -414,7 +414,7 @@ Voulez-vous continuer ?</value>
<value>Arrêter toutes les applications utilisant la dGPU lors du passage au mode Eco</value>
</data>
<data name="LaptopBacklight" xml:space="preserve">
<value>Rétroéclairage de l'ordinateur</value>
<value>Rétroéclairage du clavier</value>
</data>
<data name="LaptopKeyboard" xml:space="preserve">
<value>Clavier de l'ordinateur</value>

View File

@@ -124,10 +124,10 @@
<value>Nie można odnaleźć sterownika ASUS ACPI. Aplikacja nie może bez niego funkcjonować. Spróbuj zainstalować Asus System Control Interface</value>
</data>
<data name="AlertAPUMemoryRestart" xml:space="preserve">
<value>Restart your device to apply changes</value>
<value>Uruchom ponownie, aby zastosować ustawienia</value>
</data>
<data name="AlertAPUMemoryRestartTitle" xml:space="preserve">
<value>Restart now?</value>
<value>Uruchomić ponownie teraz?</value>
</data>
<data name="AlertDGPU" xml:space="preserve">
<value>Wygląda na to, że GPU jest mocno obciążone. Wyłączyć?</value>
@@ -169,7 +169,7 @@
<value>Dostosuj systemowy Tryb Zasilania</value>
</data>
<data name="APUMemory" xml:space="preserve">
<value>Memory Assigned to GPU</value>
<value>Pamięć przypisana do GPU</value>
</data>
<data name="AsusServicesRunning" xml:space="preserve">
<value>Uruchomione usługi Asus</value>

View File

@@ -124,10 +124,10 @@
<value>无法连接到ASUS ACPI。 没有它应用程序将无法运行。 请尝试安装Asus System Control Interface驱动。</value>
</data>
<data name="AlertAPUMemoryRestart" xml:space="preserve">
<value>Restart your device to apply changes</value>
<value>重新启动您的设备以应用更改</value>
</data>
<data name="AlertAPUMemoryRestartTitle" xml:space="preserve">
<value>Restart now?</value>
<value>现在重启?</value>
</data>
<data name="AlertDGPU" xml:space="preserve">
<value>看起来 GPU 正在被重度使用,是否禁用?</value>
@@ -169,7 +169,7 @@
<value>自动调整Windows电源模式</value>
</data>
<data name="APUMemory" xml:space="preserve">
<value>Memory Assigned to GPU</value>
<value>分配给 GPU 的内存</value>
</data>
<data name="AsusServicesRunning" xml:space="preserve">
<value>正在运行的 Asus 服务</value>

View File

@@ -130,12 +130,14 @@ namespace GHelper.USB
timer.Elapsed += Timer_Elapsed;
isSingleColor = AppConfig.IsSingleColor(); // Mono Color
if (AppConfig.ContainsModel("GA402X") || AppConfig.ContainsModel("GA402N"))
if (AppConfig.ContainsModel("GA402X") || AppConfig.ContainsModel("GA402N") || AppConfig.ContainsModel("GA503R"))
{
var device = AsusHid.FindDevices(AsusHid.AURA_ID).FirstOrDefault();
if (device is null) return;
Logger.WriteLine($"GA402: {device.ReleaseNumberBcd} {device.ReleaseNumber}");
if (device.ReleaseNumberBcd >= 22) isSingleColor = true;
Logger.WriteLine($"USB Version: {device.ReleaseNumberBcd} {device.ReleaseNumber}");
if (device.ReleaseNumberBcd >= 22 && device.ReleaseNumberBcd <= 25) isSingleColor = true;
if (AppConfig.ContainsModel("GA503R") && device.ReleaseNumberBcd == 3) isSingleColor = true;
}
}

View File

@@ -55,10 +55,10 @@ namespace GHelper
tableBios.AutoSize = true;
tableBios.AutoSizeMode = AutoSizeMode.GrowAndShrink;
tableBios.ColumnCount = 4;
tableBios.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 20F));
tableBios.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 23F));
tableBios.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 40F));
tableBios.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 15F));
tableBios.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 25F));
tableBios.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 22F));
tableBios.Dock = DockStyle.Top;
tableBios.Location = new Point(20, 20);
tableBios.Margin = new Padding(4);
@@ -99,14 +99,14 @@ namespace GHelper
panelBiosTitle.Location = new Point(0, 0);
panelBiosTitle.Margin = new Padding(4);
panelBiosTitle.Name = "panelBiosTitle";
panelBiosTitle.Size = new Size(1256, 62);
panelBiosTitle.Size = new Size(1294, 62);
panelBiosTitle.TabIndex = 3;
//
// labelUpdates
//
labelUpdates.Anchor = AnchorStyles.Top | AnchorStyles.Right;
labelUpdates.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
labelUpdates.Location = new Point(810, 23);
labelUpdates.Location = new Point(848, 23);
labelUpdates.Name = "labelUpdates";
labelUpdates.Size = new Size(245, 32);
labelUpdates.TabIndex = 4;
@@ -122,7 +122,7 @@ namespace GHelper
buttonRefresh.FlatAppearance.BorderSize = 0;
buttonRefresh.FlatStyle = FlatStyle.Flat;
buttonRefresh.Image = Properties.Resources.icons8_refresh_32;
buttonRefresh.Location = new Point(1183, 14);
buttonRefresh.Location = new Point(1221, 14);
buttonRefresh.Name = "buttonRefresh";
buttonRefresh.Secondary = true;
buttonRefresh.Size = new Size(52, 46);
@@ -138,7 +138,7 @@ namespace GHelper
panelBios.Margin = new Padding(4);
panelBios.Name = "panelBios";
panelBios.Padding = new Padding(20);
panelBios.Size = new Size(1256, 40);
panelBios.Size = new Size(1294, 40);
panelBios.TabIndex = 4;
//
// panelDrivers
@@ -150,7 +150,7 @@ namespace GHelper
panelDrivers.Margin = new Padding(4);
panelDrivers.Name = "panelDrivers";
panelDrivers.Padding = new Padding(20);
panelDrivers.Size = new Size(1256, 40);
panelDrivers.Size = new Size(1294, 40);
panelDrivers.TabIndex = 6;
//
// tableDrivers
@@ -158,10 +158,10 @@ namespace GHelper
tableDrivers.AutoSize = true;
tableDrivers.AutoSizeMode = AutoSizeMode.GrowAndShrink;
tableDrivers.ColumnCount = 4;
tableDrivers.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 20F));
tableDrivers.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 23F));
tableDrivers.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 40F));
tableDrivers.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 15F));
tableDrivers.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 25F));
tableDrivers.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 22F));
tableDrivers.Dock = DockStyle.Top;
tableDrivers.Location = new Point(20, 20);
tableDrivers.Margin = new Padding(4);
@@ -178,7 +178,7 @@ namespace GHelper
panelDriversTitle.Location = new Point(0, 102);
panelDriversTitle.Margin = new Padding(4);
panelDriversTitle.Name = "panelDriversTitle";
panelDriversTitle.Size = new Size(1256, 44);
panelDriversTitle.Size = new Size(1294, 44);
panelDriversTitle.TabIndex = 5;
//
// labelDrivers
@@ -208,7 +208,7 @@ namespace GHelper
AutoScaleDimensions = new SizeF(192F, 192F);
AutoScaleMode = AutoScaleMode.Dpi;
AutoScroll = true;
ClientSize = new Size(1256, 690);
ClientSize = new Size(1294, 690);
Controls.Add(panelDrivers);
Controls.Add(panelDriversTitle);
Controls.Add(panelBios);

View File

@@ -80,6 +80,7 @@ Each BIOS mode is paired with matching Windows Power Mode. You can adjust this s
- ROG Harpe Ace Aim Lab Edition
- ROG Keris Wireless
- ROG Chakram X (P708)
- ROG Chakram Core (P511)
- ROG Strix III Gladius III Aimpoint Wireless (P711)
- ROG Gladius III
- ROG Gladius III Wireless