diff --git a/app/AnimeMatrix/AnimeMatrixDevice.cs b/app/AnimeMatrix/AnimeMatrixDevice.cs index 18baad05..1ab03b53 100644 --- a/app/AnimeMatrix/AnimeMatrixDevice.cs +++ b/app/AnimeMatrix/AnimeMatrixDevice.cs @@ -1,14 +1,10 @@ // Source thanks to https://github.com/vddCore/Starlight with some adjustments from me using Starlight.Communication; -using System.Management; using System.Drawing.Drawing2D; -using System.Text; using System.Globalization; -using System; -using System.Drawing; -using OSD; -using System.Diagnostics; +using System.Management; +using System.Text; namespace Starlight.AnimeMatrix { @@ -331,7 +327,7 @@ namespace Starlight.AnimeMatrix int second = DateTime.Now.Second; if (CultureInfo.CurrentCulture.DateTimeFormat.ShortTimePattern.Contains("H")) - PresentTextDiagonal(DateTime.Now.ToString("H" + ((second % 2 == 0)?":":" ") + "mm")); + PresentTextDiagonal(DateTime.Now.ToString("H" + ((second % 2 == 0) ? ":" : " ") + "mm")); else PresentTextDiagonal(DateTime.Now.ToString("h" + ((second % 2 == 0) ? ":" : " ") + "mmtt")); } @@ -348,14 +344,14 @@ namespace Starlight.AnimeMatrix using (Font font = new Font("Arial", 24F, GraphicsUnit.Pixel)) { SizeF textSize = g.MeasureString(text1, font); - g.DrawString(text1, font, Brushes.White, (MaxColumns*3 - textSize.Width)+3, -3); + g.DrawString(text1, font, Brushes.White, (MaxColumns * 3 - textSize.Width) + 3, -3); } if (text2.Length > 0) using (Font font = new Font("Arial", 18F, GraphicsUnit.Pixel)) { SizeF textSize = g.MeasureString(text2, font); - g.DrawString(text2, font, Brushes.White, (MaxColumns * 3 - textSize.Width)+1, 25); + g.DrawString(text2, font, Brushes.White, (MaxColumns * 3 - textSize.Width) + 1, 25); } } @@ -369,7 +365,7 @@ namespace Starlight.AnimeMatrix public void GenerateFrame(Image image, InterpolationMode interpolation = InterpolationMode.High) { - int width = MaxColumns/2 * 6; + int width = MaxColumns / 2 * 6; int height = MaxRows; int targetWidth = MaxColumns * 2; @@ -396,7 +392,7 @@ namespace Starlight.AnimeMatrix for (int y = 0; y < bmp.Height; y++) { for (int x = 0; x < bmp.Width; x++) - if (x % 2 == (y+dx) % 2) + if (x % 2 == (y + dx) % 2) { var pixel = bmp.GetPixel(x, y); var color = (pixel.R + pixel.G + pixel.B) / 3; @@ -411,9 +407,9 @@ namespace Starlight.AnimeMatrix public void SetLedDiagonal(int x, int y, byte color, int delta = 10) { //x+=delta; - y-=delta; + y -= delta; - int dx = (x - y)/2; + int dx = (x - y) / 2; int dy = x + y; SetLedPlanar(dx, dy, color); } @@ -442,11 +438,11 @@ namespace Starlight.AnimeMatrix 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; - SetLedDiagonal(x, y, (byte)color); - } + { + var pixel = bmp.GetPixel(x, y); + var color = (pixel.R + pixel.G + pixel.B) / 3; + SetLedDiagonal(x, y, (byte)color); + } } } diff --git a/app/Aura.cs b/app/Aura.cs index 607b3848..e5519813 100644 --- a/app/Aura.cs +++ b/app/Aura.cs @@ -208,25 +208,37 @@ namespace GHelper List flags = new List(); - if (awake) flags.Add(AuraDev19b6.AwakeKeyb); - if (boot) flags.Add(AuraDev19b6.BootKeyb); - if (sleep) flags.Add(AuraDev19b6.SleepKeyb); - if (shutdown) flags.Add(AuraDev19b6.ShutdownKeyb); + if (awake) + { + flags.Add(AuraDev19b6.AwakeKeyb); + flags.Add(AuraDev19b6.AwakeBar); + flags.Add(AuraDev19b6.AwakeLid); + flags.Add(AuraDev19b6.AwakeLogo); + } - flags.Add(AuraDev19b6.AwakeBar); - flags.Add(AuraDev19b6.BootBar); - flags.Add(AuraDev19b6.SleepBar); - flags.Add(AuraDev19b6.ShutdownBar); + if (boot) + { + flags.Add(AuraDev19b6.BootKeyb); + flags.Add(AuraDev19b6.BootBar); + flags.Add(AuraDev19b6.BootLid); + flags.Add(AuraDev19b6.BootLogo); + } - flags.Add(AuraDev19b6.AwakeLid); - flags.Add(AuraDev19b6.BootLid); - flags.Add(AuraDev19b6.SleepLid); - flags.Add(AuraDev19b6.ShutdownLid); + if (sleep) + { + flags.Add(AuraDev19b6.SleepKeyb); + flags.Add(AuraDev19b6.SleepBar); + flags.Add(AuraDev19b6.SleepLid); + flags.Add(AuraDev19b6.SleepLogo); + } - flags.Add(AuraDev19b6.AwakeLogo); - flags.Add(AuraDev19b6.BootLogo); - flags.Add(AuraDev19b6.SleepLogo); - flags.Add(AuraDev19b6.ShutdownLogo); + if (shutdown) + { + flags.Add(AuraDev19b6.ShutdownKeyb); + flags.Add(AuraDev19b6.ShutdownBar); + flags.Add(AuraDev19b6.ShutdownLid); + flags.Add(AuraDev19b6.ShutdownLogo); + } byte[] msg = AuraDev19b6Extensions.ToBytes(flags.ToArray()); diff --git a/app/ControlHelper.cs b/app/ControlHelper.cs index 9da58eb2..1bf6f844 100644 --- a/app/ControlHelper.cs +++ b/app/ControlHelper.cs @@ -1,8 +1,7 @@ using CustomControls; -using WinFormsSliderBar; using System.Drawing.Drawing2D; using System.Windows.Forms.DataVisualization.Charting; -using System.Windows.Forms; +using WinFormsSliderBar; public static class ControlHelper { @@ -87,7 +86,7 @@ public static class ControlHelper } var sl = control as Slider; - if (sl != null) + if (sl != null) { sl.borderColor = RForm.buttonMain; } diff --git a/app/CustomControls.cs b/app/CustomControls.cs index 5707676b..85e259c2 100644 --- a/app/CustomControls.cs +++ b/app/CustomControls.cs @@ -30,6 +30,11 @@ namespace CustomControls public bool darkTheme = false; + public RForm() + { + DoubleBuffered = true; + } + public static void InitColors(bool darkTheme) { if (darkTheme) @@ -97,7 +102,7 @@ namespace CustomControls } - public class RComboBox : ComboBox + public class RComboBox : ComboBox { private Color borderColor = Color.Gray; [DefaultValue(typeof(Color), "Gray")] @@ -332,8 +337,9 @@ namespace CustomControls public RButton() { - this.FlatStyle = FlatStyle.Flat; - this.FlatAppearance.BorderSize = 0; + DoubleBuffered = true; + FlatStyle = FlatStyle.Flat; + FlatAppearance.BorderSize = 0; } private GraphicsPath GetFigurePath(Rectangle rect, int radius) diff --git a/app/Fans.cs b/app/Fans.cs index c4386479..180d74f8 100644 --- a/app/Fans.cs +++ b/app/Fans.cs @@ -1,7 +1,6 @@ -using System.Diagnostics; +using CustomControls; +using System.Diagnostics; using System.Windows.Forms.DataVisualization.Charting; -using CustomControls; -using GHelper.Gpu; namespace GHelper { diff --git a/app/HardwareMonitor.cs b/app/HardwareMonitor.cs index 08d7f50d..00846dd2 100644 --- a/app/HardwareMonitor.cs +++ b/app/HardwareMonitor.cs @@ -155,14 +155,16 @@ public static class HardwareMonitor } _gpuControl.Dispose(); + + /* _gpuControl = new AmdGpuControl(); if (_gpuControl.IsValid) { GpuControl = _gpuControl; return; } - _gpuControl.Dispose(); + */ GpuControl = null; } diff --git a/app/Program.cs b/app/Program.cs index 25cc54ff..b7fb4e55 100644 --- a/app/Program.cs +++ b/app/Program.cs @@ -5,7 +5,6 @@ using System.Management; using System.Reflection; using System.Runtime.InteropServices; using System.Security.Principal; -using System.Windows.Forms; using Tools; namespace GHelper @@ -173,11 +172,15 @@ namespace GHelper SettingsToggle(); } + settingsForm.RefreshSensors(); + Application.Run(); } + + static void SystemEvents_UserPreferenceChanged(object sender, UserPreferenceChangedEventArgs e) { @@ -373,6 +376,7 @@ namespace GHelper { SettingsToggle(); } + } diff --git a/app/Settings.cs b/app/Settings.cs index 84c8a7a4..5d278dc2 100644 --- a/app/Settings.cs +++ b/app/Settings.cs @@ -1,11 +1,11 @@ using CustomControls; using Starlight.AnimeMatrix; +using System; using System.Diagnostics; using System.Drawing.Imaging; -using System.Globalization; using System.Reflection; +using System.Runtime.CompilerServices; using System.Text.Json; -using System.Threading; using System.Timers; using Tools; @@ -16,7 +16,7 @@ namespace GHelper { private ContextMenuStrip contextMenuStrip = new CustomContextMenu(); - private ToolStripMenuItem menuSilent, menuBalanced, menuTurbo; + private ToolStripMenuItem menuSilent, menuBalanced, menuTurbo, menuEco, menuStandard, menuUltimate, menuOptimized; public static System.Timers.Timer aTimer = default!; public static Point trayPoint; @@ -132,6 +132,7 @@ namespace GHelper aTimer = new System.Timers.Timer(1000); aTimer.Elapsed += OnTimedEvent; + aTimer.Enabled = true; SetVersionLabel(Properties.Strings.VersionLabel + ": " + Assembly.GetExecutingAssembly().GetName().Version); @@ -141,7 +142,7 @@ namespace GHelper labelModel.Text = model; - this.TopMost = Program.config.getConfig("topmost") == 1; + TopMost = Program.config.getConfig("topmost") == 1; SetContextMenu(); @@ -151,18 +152,49 @@ namespace GHelper CheckForUpdatesAsync(); }); - } - - private void SetContextMenu() + + public void SetContextMenu() { + contextMenuStrip.Items.Clear(); + Padding padding = new Padding(5, 5, 5, 5); - var menuTitle = new ToolStripMenuItem(Properties.Strings.PerformanceMode); - menuTitle.Margin = padding; - menuTitle.Enabled = false; - contextMenuStrip.Items.Add(menuTitle); + /* + TableLayoutPanel[] tables = { tablePerf, tableGPU }; + string[] titles = { Properties.Strings.PerformanceMode, Properties.Strings.GPUMode}; + + int index = 0; + foreach (TableLayoutPanel table in tables) + { + + var title = new ToolStripMenuItem(titles[index]); + title.Margin = padding; + title.Enabled = false; + contextMenuStrip.Items.Add(title); + + foreach (Control control in table.Controls) + { + var button = control as RButton; + if (button != null && !button.Secondary && button.Enabled) + { + var menu = new ToolStripMenuItem(button.Text); + menu.Margin = padding; + menu.Checked = button.Activated; + menu.Click += delegate { button.PerformClick(); }; + contextMenuStrip.Items.Add(menu); + } + } + contextMenuStrip.Items.Add("-"); + index++; + }*/ + + + var title = new ToolStripMenuItem(Properties.Strings.PerformanceMode); + title.Margin = padding; + title.Enabled = false; + contextMenuStrip.Items.Add(title); menuSilent = new ToolStripMenuItem(Properties.Strings.Silent); menuSilent.Click += ButtonSilent_Click; @@ -180,6 +212,40 @@ namespace GHelper menuTurbo.Margin = padding; contextMenuStrip.Items.Add(menuTurbo); + contextMenuStrip.Items.Add("-"); + + var titleGPU = new ToolStripMenuItem(Properties.Strings.GPUMode); + titleGPU.Margin = padding; + titleGPU.Enabled = false; + contextMenuStrip.Items.Add(titleGPU); + + menuEco = new ToolStripMenuItem(Properties.Strings.EcoMode); + menuEco.Click += ButtonEco_Click; + menuEco.Margin = padding; + contextMenuStrip.Items.Add(menuEco); + + menuStandard = new ToolStripMenuItem(Properties.Strings.StandardMode); + menuStandard.Click += ButtonStandard_Click; + menuStandard.Margin = padding; + contextMenuStrip.Items.Add(menuStandard); + + menuUltimate = new ToolStripMenuItem(Properties.Strings.UltimateMode); + menuUltimate.Click += ButtonUltimate_Click; + menuUltimate.Margin = padding; + contextMenuStrip.Items.Add(menuUltimate); + + menuOptimized = new ToolStripMenuItem(Properties.Strings.Optimized); + menuOptimized.Click += ButtonOptimized_Click; + menuOptimized.Margin = padding; + contextMenuStrip.Items.Add(menuOptimized); + + contextMenuStrip.Items.Add("-"); + + var quit = new ToolStripMenuItem(Properties.Strings.Quit); + quit.Click += ButtonQuit_Click; + quit.Margin = padding; + contextMenuStrip.Items.Add(quit); + contextMenuStrip.ShowCheckMargin = true; contextMenuStrip.RenderMode = ToolStripRenderMode.System; @@ -199,7 +265,8 @@ namespace GHelper if (Program.wmi.DeviceGet(ASUSWmi.GPUXG) == 1) { Program.wmi.DeviceSet(ASUSWmi.GPUXG, 0, "GPU XGM"); - } else + } + else { Program.wmi.DeviceSet(ASUSWmi.GPUXG, 1, "GPU XGM"); } @@ -562,7 +629,7 @@ namespace GHelper break; default: mat.SetBuiltInAnimation(true, animation); - Logger.WriteLine("Matrix builtin "+animation.AsByte); + Logger.WriteLine("Matrix builtin " + animation.AsByte); break; } @@ -802,7 +869,7 @@ namespace GHelper ButtonEnabled(buttonMiniled, screenEnabled); labelSreen.Text = screenEnabled - ? Properties.Strings.LaptopScreen + ": " + frequency + "Hz" + ((overdrive == 1) ? " + " + Properties.Strings.Overdrive : "") + ? Properties.Strings.LaptopScreen + ": " + frequency + "Hz" + ((overdrive == 1 && overdriveSetting) ? " + " + Properties.Strings.Overdrive : "") : Properties.Strings.LaptopScreen + ": " + Properties.Strings.TurnedOff; button60Hz.Activated = false; @@ -826,7 +893,8 @@ namespace GHelper { button120Hz.Text = maxFrequency.ToString() + "Hz" + (overdriveSetting ? " + OD" : ""); panelScreen.Visible = true; - } else if (maxFrequency > 0) + } + else if (maxFrequency > 0) { panelScreen.Visible = false; } @@ -876,8 +944,7 @@ namespace GHelper SetGPUMode(ASUSWmi.GPUModeEco); } - - private void RefreshSensors(bool force = false) + public void RefreshSensors(bool force = false) { if (!force && Math.Abs(DateTimeOffset.Now.ToUnixTimeMilliseconds() - lastRefresh) < 2000) return; @@ -893,7 +960,7 @@ namespace GHelper cpuTemp = ": " + Math.Round((decimal)HardwareMonitor.cpuTemp).ToString() + "°C "; if (HardwareMonitor.batteryDischarge > 0) - battery = Properties.Strings.Discharging +": " + Math.Round((decimal)HardwareMonitor.batteryDischarge, 1).ToString() + "W"; + battery = Properties.Strings.Discharging + ": " + Math.Round((decimal)HardwareMonitor.batteryDischarge, 1).ToString() + "W"; if (HardwareMonitor.gpuTemp > 0) { @@ -930,11 +997,7 @@ namespace GHelper this.Top = Screen.FromControl(this).WorkingArea.Height - 10 - this.Height; this.Activate(); - Task.Run(async () => - { - await Task.Delay(TimeSpan.FromSeconds(1)); - aTimer.Enabled = true; - }); + aTimer.Enabled = true; } else @@ -946,7 +1009,7 @@ namespace GHelper private void SetPerformanceLabel() { - labelPerf.Text = Properties.Strings.PerformanceMode + (customFans?"+":"") + ((customPower > 0) ? " "+customPower+"W" : ""); + labelPerf.Text = Properties.Strings.PerformanceMode + (customFans ? "+" : "") + ((customPower > 0) ? " " + customPower + "W" : ""); } public void SetPower() @@ -1074,30 +1137,27 @@ namespace GHelper buttonBalanced.Activated = false; buttonTurbo.Activated = false; - menuSilent.Checked = false; - menuBalanced.Checked = false; - menuTurbo.Checked = false; - switch (PerformanceMode) { case ASUSWmi.PerformanceSilent: buttonSilent.Activated = true; - menuSilent.Checked = true; perfName = Properties.Strings.Silent; break; case ASUSWmi.PerformanceTurbo: buttonTurbo.Activated = true; - menuTurbo.Checked = true; perfName = Properties.Strings.Turbo; break; default: buttonBalanced.Activated = true; - menuBalanced.Checked = true; PerformanceMode = ASUSWmi.PerformanceBalanced; perfName = Properties.Strings.Balanced; break; } + menuSilent.Checked = buttonSilent.Activated; + menuBalanced.Checked = buttonBalanced.Activated; + menuTurbo.Checked = buttonTurbo.Activated; + int oldMode = Program.config.getConfig("performance_mode"); Program.config.setConfig("performance_" + (int)SystemInformation.PowerStatus.PowerLineStatus, PerformanceMode); Program.config.setConfig("performance_mode", PerformanceMode); @@ -1121,7 +1181,7 @@ namespace GHelper if (Program.config.getConfigPerfString("scheme") is not null) NativeMethods.SetPowerScheme(Program.config.getConfigPerfString("scheme")); - else + else NativeMethods.SetPowerScheme(PerformanceMode); if (Program.config.getConfigPerf("auto_boost") != -1) @@ -1195,8 +1255,8 @@ namespace GHelper public static bool IsPlugged() { bool optimizedUSBC = Program.config.getConfig("optimized_usbc") != 1; - - return SystemInformation.PowerStatus.PowerLineStatus == PowerLineStatus.Online && + + return SystemInformation.PowerStatus.PowerLineStatus == PowerLineStatus.Online && (optimizedUSBC || Program.wmi.DeviceGet(ASUSWmi.ChargerMode) != ASUSWmi.ChargerUSB); } @@ -1268,6 +1328,7 @@ namespace GHelper tablePerf.ColumnCount = 0; tableGPU.ColumnCount = 0; tableScreen.ColumnCount = 0; + menuUltimate.Visible = false; } //tableLayoutMatrix.ColumnCount = 0; @@ -1278,7 +1339,7 @@ namespace GHelper int connected = Program.wmi.DeviceGet(ASUSWmi.GPUXGConnected); int enabled = Program.wmi.DeviceGet(ASUSWmi.GPUXG); - buttonXGM.Visible = (connected == 1); + buttonXGM.Enabled = buttonXGM.Visible = (connected == 1); buttonXGM.Activated = (enabled == 1); } @@ -1332,7 +1393,7 @@ namespace GHelper ButtonEnabled(buttonStandard, false); ButtonEnabled(buttonUltimate, false); - labelGPU.Text = Properties.Strings.GPUMode + ": "+ Properties.Strings.GPUChanging + " ..."; + labelGPU.Text = Properties.Strings.GPUMode + ": " + Properties.Strings.GPUChanging + " ..."; Thread t = new Thread(() => { @@ -1461,6 +1522,10 @@ namespace GHelper break; } + menuEco.Checked = buttonEco.Activated; + menuStandard.Checked = buttonStandard.Activated; + menuUltimate.Checked = buttonUltimate.Activated; + menuOptimized.Checked = buttonOptimized.Activated; } diff --git a/app/app.manifest b/app/app.manifest index 296860c6..e16db2fe 100644 --- a/app/app.manifest +++ b/app/app.manifest @@ -4,9 +4,7 @@ - - -