From 16e085d9f198aa4d3eaf9573c4cad2bb2a1e85a8 Mon Sep 17 00:00:00 2001 From: Serge <5920850+seerge@users.noreply.github.com> Date: Sun, 11 Jun 2023 00:27:58 +0200 Subject: [PATCH] Custom modes --- app/AnimeMatrix/AniMatrix.cs | 10 +- app/AppConfig.cs | 90 +++++++------ app/Extra.cs | 114 ++++++++-------- app/Fans.Designer.cs | 178 +++++++++++++++++------- app/Fans.cs | 138 ++++++++++++------- app/Fans.resx | 29 ++++ app/GHelper.csproj | 2 +- app/Gpu/NvidiaGpuControl.cs | 4 +- app/HardwareControl.cs | 10 +- app/InputDispatcher.cs | 40 +++--- app/Modes.cs | 141 +++++++++++++++++++ app/NativeMethods.cs | 4 +- app/ProcessHelper.cs | 10 +- app/Program.cs | 4 +- app/Resources/icons8-add-64.png | Bin 0 -> 607 bytes app/Resources/icons8-remove-64.png | Bin 0 -> 597 bytes app/Settings.cs | 210 ++++++++++++++--------------- 17 files changed, 639 insertions(+), 345 deletions(-) create mode 100644 app/Modes.cs create mode 100644 app/Resources/icons8-add-64.png create mode 100644 app/Resources/icons8-remove-64.png diff --git a/app/AnimeMatrix/AniMatrix.cs b/app/AnimeMatrix/AniMatrix.cs index 72affaac..a52b70f3 100644 --- a/app/AnimeMatrix/AniMatrix.cs +++ b/app/AnimeMatrix/AniMatrix.cs @@ -42,10 +42,10 @@ namespace GHelper.AnimeMatrix if (!IsValid) return; - int brightness = AppConfig.getConfig("matrix_brightness"); - int running = AppConfig.getConfig("matrix_running"); + int brightness = AppConfig.Get("matrix_brightness"); + int running = AppConfig.Get("matrix_running"); - bool auto = AppConfig.getConfig("matrix_auto") == 1; + bool auto = AppConfig.Is("matrix_auto"); if (brightness < 0) brightness = 0; if (running < 0) running = 0; @@ -75,7 +75,7 @@ namespace GHelper.AnimeMatrix switch (running) { case 2: - SetMatrixPicture(AppConfig.getConfigString("matrix_picture")); + SetMatrixPicture(AppConfig.GetString("matrix_picture")); break; case 3: SetMatrixClock(); @@ -110,7 +110,7 @@ namespace GHelper.AnimeMatrix { //if (!IsValid) return; - switch (AppConfig.getConfig("matrix_running")) + switch (AppConfig.Get("matrix_running")) { case 2: mat.PresentNextFrame(); diff --git a/app/AppConfig.cs b/app/AppConfig.cs index ff2df7a8..061721b0 100644 --- a/app/AppConfig.cs +++ b/app/AppConfig.cs @@ -1,4 +1,5 @@ -using System.Diagnostics; +using GHelper; +using System.Diagnostics; using System.Management; using System.Text.Json; @@ -28,12 +29,12 @@ public static class AppConfig } catch { - initConfig(); + Init(); } } else { - initConfig(); + Init(); } } @@ -64,7 +65,7 @@ public static class AppConfig } - private static void initConfig() + private static void Init() { config = new Dictionary(); config["performance_mode"] = 0; @@ -72,41 +73,27 @@ public static class AppConfig File.WriteAllText(configFile, jsonString); } - public static int getConfig(string name, int empty = -1) + public static int Get(string name, int empty = -1) { if (config.ContainsKey(name)) return int.Parse(config[name].ToString()); else return empty; } - public static bool isConfig(string name) + public static bool Is(string name) { - return getConfig(name) == 1; + return Get(name) == 1; } - public static string getConfigString(string name, string empty = null) + public static string GetString(string name, string empty = null) { if (config.ContainsKey(name)) return config[name].ToString(); else return empty; } - public static void setConfig(string name, int value) + private static void Write() { - config[name] = value; - string jsonString = JsonSerializer.Serialize(config, new JsonSerializerOptions { WriteIndented = true }); - try - { - File.WriteAllText(configFile, jsonString); - } catch (Exception e) - { - Debug.Write(e.ToString()); - } - } - - public static void setConfig(string name, string value) - { - config[name] = value; string jsonString = JsonSerializer.Serialize(config, new JsonSerializerOptions { WriteIndented = true }); try { @@ -118,9 +105,26 @@ public static class AppConfig } } - public static string getParamName(AsusFan device, string paramName = "fan_profile") + public static void Set(string name, int value) { - int mode = getConfig("performance_mode"); + config[name] = value; + Write(); + } + + public static void Set(string name, string value) + { + config[name] = value; + Write(); + } + public static void Remove(string name) + { + config.Remove(name); + Write(); + } + + public static string GgetParamName(AsusFan device, string paramName = "fan_profile") + { + int mode = Modes.GetCurrent(); string name; switch (device) @@ -143,9 +147,9 @@ public static class AppConfig return paramName + "_" + name + "_" + mode; } - public static byte[] getFanConfig(AsusFan device) + public static byte[] GetFanConfig(AsusFan device) { - string curveString = getConfigString(getParamName(device)); + string curveString = GetString(GgetParamName(device)); byte[] curve = { }; if (curveString is not null) @@ -154,10 +158,10 @@ public static class AppConfig return curve; } - public static void setFanConfig(AsusFan device, byte[] curve) + public static void SetFanConfig(AsusFan device, byte[] curve) { string bitCurve = BitConverter.ToString(curve); - setConfig(getParamName(device), bitCurve); + Set(GgetParamName(device), bitCurve); } @@ -169,9 +173,9 @@ public static class AppConfig return array; } - public static byte[] getDefaultCurve(AsusFan device) + public static byte[] GetDefaultCurve(AsusFan device) { - int mode = getConfig("performance_mode"); + int mode = Modes.GetCurrentBase(); byte[] curve; switch (mode) @@ -199,29 +203,29 @@ public static class AppConfig return curve; } - public static string getConfigPerfString(string name) + public static string GetModeString(string name) { - int mode = getConfig("performance_mode"); - return getConfigString(name + "_" + mode); + return GetString(name + "_" + Modes.GetCurrent()); } - public static int getConfigPerf(string name) + public static int GetMode(string name) { - int mode = getConfig("performance_mode"); - return getConfig(name + "_" + mode); + return Get(name + "_" + Modes.GetCurrent()); } - public static bool isConfigPerf(string name) + public static bool IsMode(string name) { - int mode = getConfig("performance_mode"); - return getConfig(name + "_" + mode) == 1; + return Get(name + "_" + Modes.GetCurrent()) == 1; } - public static void setConfigPerf(string name, int value) + public static void SetMode(string name, int value) { - int mode = getConfig("performance_mode"); - setConfig(name + "_" + mode, value); + Set(name + "_" + Modes.GetCurrent(), value); } + public static void SetMode(string name, string value) + { + Set(name + "_" + Modes.GetCurrent(), value); + } } diff --git a/app/Extra.cs b/app/Extra.cs index 7e48f43b..08909292 100644 --- a/app/Extra.cs +++ b/app/Extra.cs @@ -55,7 +55,7 @@ namespace GHelper combo.DisplayMember = "Value"; combo.ValueMember = "Key"; - string action = AppConfig.getConfigString(name); + string action = AppConfig.GetString(name); combo.SelectedValue = (action is not null) ? action : ""; if (combo.SelectedValue is null) combo.SelectedValue = ""; @@ -63,17 +63,17 @@ namespace GHelper combo.SelectedValueChanged += delegate { if (combo.SelectedValue is not null) - AppConfig.setConfig(name, combo.SelectedValue.ToString()); + AppConfig.Set(name, combo.SelectedValue.ToString()); if (name == "m1" || name == "m2") Program.inputDispatcher.RegisterKeys(); }; - txbox.Text = AppConfig.getConfigString(name + "_custom"); + txbox.Text = AppConfig.GetString(name + "_custom"); txbox.TextChanged += delegate { - AppConfig.setConfig(name + "_custom", txbox.Text); + AppConfig.Set(name + "_custom", txbox.Text); }; } @@ -130,28 +130,28 @@ namespace GHelper comboKeyboardSpeed.SelectedValueChanged += ComboKeyboardSpeed_SelectedValueChanged; // Keyboard - checkAwake.Checked = !(AppConfig.getConfig("keyboard_awake") == 0); - checkBoot.Checked = !(AppConfig.getConfig("keyboard_boot") == 0); - checkSleep.Checked = !(AppConfig.getConfig("keyboard_sleep") == 0); - checkShutdown.Checked = !(AppConfig.getConfig("keyboard_shutdown") == 0); + checkAwake.Checked = !(AppConfig.Get("keyboard_awake") == 0); + checkBoot.Checked = !(AppConfig.Get("keyboard_boot") == 0); + checkSleep.Checked = !(AppConfig.Get("keyboard_sleep") == 0); + checkShutdown.Checked = !(AppConfig.Get("keyboard_shutdown") == 0); // Lightbar - checkAwakeBar.Checked = !(AppConfig.getConfig("keyboard_awake_bar") == 0); - checkBootBar.Checked = !(AppConfig.getConfig("keyboard_boot_bar") == 0); - checkSleepBar.Checked = !(AppConfig.getConfig("keyboard_sleep_bar") == 0); - checkShutdownBar.Checked = !(AppConfig.getConfig("keyboard_shutdown_bar") == 0); + checkAwakeBar.Checked = !(AppConfig.Get("keyboard_awake_bar") == 0); + checkBootBar.Checked = !(AppConfig.Get("keyboard_boot_bar") == 0); + checkSleepBar.Checked = !(AppConfig.Get("keyboard_sleep_bar") == 0); + checkShutdownBar.Checked = !(AppConfig.Get("keyboard_shutdown_bar") == 0); // Lid - checkAwakeLid.Checked = !(AppConfig.getConfig("keyboard_awake_lid") == 0); - checkBootLid.Checked = !(AppConfig.getConfig("keyboard_boot_lid") == 0); - checkSleepLid.Checked = !(AppConfig.getConfig("keyboard_sleep_lid") == 0); - checkShutdownLid.Checked = !(AppConfig.getConfig("keyboard_shutdown_lid") == 0); + checkAwakeLid.Checked = !(AppConfig.Get("keyboard_awake_lid") == 0); + checkBootLid.Checked = !(AppConfig.Get("keyboard_boot_lid") == 0); + checkSleepLid.Checked = !(AppConfig.Get("keyboard_sleep_lid") == 0); + checkShutdownLid.Checked = !(AppConfig.Get("keyboard_shutdown_lid") == 0); // Logo - checkAwakeLogo.Checked = !(AppConfig.getConfig("keyboard_awake_logo") == 0); - checkBootLogo.Checked = !(AppConfig.getConfig("keyboard_boot_logo") == 0); - checkSleepLogo.Checked = !(AppConfig.getConfig("keyboard_sleep_logo") == 0); - checkShutdownLogo.Checked = !(AppConfig.getConfig("keyboard_shutdown_logo") == 0); + checkAwakeLogo.Checked = !(AppConfig.Get("keyboard_awake_logo") == 0); + checkBootLogo.Checked = !(AppConfig.Get("keyboard_boot_logo") == 0); + checkSleepLogo.Checked = !(AppConfig.Get("keyboard_sleep_logo") == 0); + checkShutdownLogo.Checked = !(AppConfig.Get("keyboard_shutdown_logo") == 0); checkAwake.CheckedChanged += CheckPower_CheckedChanged; checkBoot.CheckedChanged += CheckPower_CheckedChanged; @@ -197,35 +197,35 @@ namespace GHelper } } - checkTopmost.Checked = (AppConfig.getConfig("topmost") == 1); + checkTopmost.Checked = AppConfig.Is("topmost"); checkTopmost.CheckedChanged += CheckTopmost_CheckedChanged; ; - checkNoOverdrive.Checked = (AppConfig.getConfig("no_overdrive") == 1); + checkNoOverdrive.Checked = AppConfig.Is("no_overdrive"); checkNoOverdrive.CheckedChanged += CheckNoOverdrive_CheckedChanged; - checkUSBC.Checked = (AppConfig.getConfig("optimized_usbc") == 1); + checkUSBC.Checked = AppConfig.Is("optimized_usbc"); checkUSBC.CheckedChanged += CheckUSBC_CheckedChanged; - checkAutoApplyWindowsPowerMode.Checked = (AppConfig.getConfig("auto_apply_power_plan") != 0); + checkAutoApplyWindowsPowerMode.Checked = (AppConfig.Get("auto_apply_power_plan") != 0); checkAutoApplyWindowsPowerMode.CheckedChanged += checkAutoApplyWindowsPowerMode_CheckedChanged; trackBrightness.Value = InputDispatcher.GetBacklight(); trackBrightness.Scroll += TrackBrightness_Scroll; panelXMG.Visible = (Program.acpi.DeviceGet(AsusACPI.GPUXGConnected) == 1); - checkXMG.Checked = !(AppConfig.getConfig("xmg_light") == 0); + checkXMG.Checked = !(AppConfig.Get("xmg_light") == 0); checkXMG.CheckedChanged += CheckXMG_CheckedChanged; - numericBacklightTime.Value = AppConfig.getConfig("keyboard_timeout", 60); - numericBacklightPluggedTime.Value = AppConfig.getConfig("keyboard_ac_timeout", 0); + numericBacklightTime.Value = AppConfig.Get("keyboard_timeout", 60); + numericBacklightPluggedTime.Value = AppConfig.Get("keyboard_ac_timeout", 0); numericBacklightTime.ValueChanged += NumericBacklightTime_ValueChanged; numericBacklightPluggedTime.ValueChanged += NumericBacklightTime_ValueChanged; - checkGpuApps.Checked = AppConfig.isConfig("kill_gpu_apps"); + checkGpuApps.Checked = AppConfig.Is("kill_gpu_apps"); checkGpuApps.CheckedChanged += CheckGpuApps_CheckedChanged; - checkFnLock.Checked = AppConfig.isConfig("fn_lock"); + checkFnLock.Checked = AppConfig.Is("fn_lock"); checkFnLock.CheckedChanged += CheckFnLock_CheckedChanged; ; pictureHelp.Click += PictureHelp_Click; @@ -325,7 +325,7 @@ namespace GHelper private void CheckFnLock_CheckedChanged(object? sender, EventArgs e) { int fnLock = checkFnLock.Checked ? 1 : 0; - AppConfig.setConfig("fn_lock", fnLock); + AppConfig.Set("fn_lock", fnLock); Program.acpi.DeviceSet(AsusACPI.FnLock, (fnLock == 1) ? 0 : 1, "FnLock"); Program.inputDispatcher.RegisterKeys(); @@ -333,31 +333,31 @@ namespace GHelper private void CheckGpuApps_CheckedChanged(object? sender, EventArgs e) { - AppConfig.setConfig("kill_gpu_apps", (checkGpuApps.Checked ? 1 : 0)); + AppConfig.Set("kill_gpu_apps", (checkGpuApps.Checked ? 1 : 0)); } private void NumericBacklightTime_ValueChanged(object? sender, EventArgs e) { - AppConfig.setConfig("keyboard_timeout", (int)numericBacklightTime.Value); - AppConfig.setConfig("keyboard_ac_timeout", (int)numericBacklightPluggedTime.Value); + AppConfig.Set("keyboard_timeout", (int)numericBacklightTime.Value); + AppConfig.Set("keyboard_ac_timeout", (int)numericBacklightPluggedTime.Value); Program.inputDispatcher.InitBacklightTimer(); } private void CheckXMG_CheckedChanged(object? sender, EventArgs e) { - AppConfig.setConfig("xmg_light", (checkXMG.Checked ? 1 : 0)); + AppConfig.Set("xmg_light", (checkXMG.Checked ? 1 : 0)); AsusUSB.ApplyXGMLight(checkXMG.Checked); } private void CheckUSBC_CheckedChanged(object? sender, EventArgs e) { - AppConfig.setConfig("optimized_usbc", (checkUSBC.Checked ? 1 : 0)); + AppConfig.Set("optimized_usbc", (checkUSBC.Checked ? 1 : 0)); } private void TrackBrightness_Scroll(object? sender, EventArgs e) { - AppConfig.setConfig("keyboard_brightness", trackBrightness.Value); - AppConfig.setConfig("keyboard_brightness_ac", trackBrightness.Value); + AppConfig.Set("keyboard_brightness", trackBrightness.Value); + AppConfig.Set("keyboard_brightness_ac", trackBrightness.Value); AsusUSB.ApplyBrightness(trackBrightness.Value, "Slider"); } @@ -368,38 +368,38 @@ namespace GHelper private void CheckNoOverdrive_CheckedChanged(object? sender, EventArgs e) { - AppConfig.setConfig("no_overdrive", (checkNoOverdrive.Checked ? 1 : 0)); + AppConfig.Set("no_overdrive", (checkNoOverdrive.Checked ? 1 : 0)); Program.settingsForm.AutoScreen(true); } private void CheckTopmost_CheckedChanged(object? sender, EventArgs e) { - AppConfig.setConfig("topmost", (checkTopmost.Checked ? 1 : 0)); + AppConfig.Set("topmost", (checkTopmost.Checked ? 1 : 0)); Program.settingsForm.TopMost = checkTopmost.Checked; } private void CheckPower_CheckedChanged(object? sender, EventArgs e) { - AppConfig.setConfig("keyboard_awake", (checkAwake.Checked ? 1 : 0)); - AppConfig.setConfig("keyboard_boot", (checkBoot.Checked ? 1 : 0)); - AppConfig.setConfig("keyboard_sleep", (checkSleep.Checked ? 1 : 0)); - AppConfig.setConfig("keyboard_shutdown", (checkShutdown.Checked ? 1 : 0)); + AppConfig.Set("keyboard_awake", (checkAwake.Checked ? 1 : 0)); + AppConfig.Set("keyboard_boot", (checkBoot.Checked ? 1 : 0)); + AppConfig.Set("keyboard_sleep", (checkSleep.Checked ? 1 : 0)); + AppConfig.Set("keyboard_shutdown", (checkShutdown.Checked ? 1 : 0)); - AppConfig.setConfig("keyboard_awake_bar", (checkAwakeBar.Checked ? 1 : 0)); - AppConfig.setConfig("keyboard_boot_bar", (checkBootBar.Checked ? 1 : 0)); - AppConfig.setConfig("keyboard_sleep_bar", (checkSleepBar.Checked ? 1 : 0)); - AppConfig.setConfig("keyboard_shutdown_bar", (checkShutdownBar.Checked ? 1 : 0)); + AppConfig.Set("keyboard_awake_bar", (checkAwakeBar.Checked ? 1 : 0)); + AppConfig.Set("keyboard_boot_bar", (checkBootBar.Checked ? 1 : 0)); + AppConfig.Set("keyboard_sleep_bar", (checkSleepBar.Checked ? 1 : 0)); + AppConfig.Set("keyboard_shutdown_bar", (checkShutdownBar.Checked ? 1 : 0)); - AppConfig.setConfig("keyboard_awake_lid", (checkAwakeLid.Checked ? 1 : 0)); - AppConfig.setConfig("keyboard_boot_lid", (checkBootLid.Checked ? 1 : 0)); - AppConfig.setConfig("keyboard_sleep_lid", (checkSleepLid.Checked ? 1 : 0)); - AppConfig.setConfig("keyboard_shutdown_lid", (checkShutdownLid.Checked ? 1 : 0)); + AppConfig.Set("keyboard_awake_lid", (checkAwakeLid.Checked ? 1 : 0)); + AppConfig.Set("keyboard_boot_lid", (checkBootLid.Checked ? 1 : 0)); + AppConfig.Set("keyboard_sleep_lid", (checkSleepLid.Checked ? 1 : 0)); + AppConfig.Set("keyboard_shutdown_lid", (checkShutdownLid.Checked ? 1 : 0)); - AppConfig.setConfig("keyboard_awake_logo", (checkAwakeLogo.Checked ? 1 : 0)); - AppConfig.setConfig("keyboard_boot_logo", (checkBootLogo.Checked ? 1 : 0)); - AppConfig.setConfig("keyboard_sleep_logo", (checkSleepLogo.Checked ? 1 : 0)); - AppConfig.setConfig("keyboard_shutdown_logo", (checkShutdownLogo.Checked ? 1 : 0)); + AppConfig.Set("keyboard_awake_logo", (checkAwakeLogo.Checked ? 1 : 0)); + AppConfig.Set("keyboard_boot_logo", (checkBootLogo.Checked ? 1 : 0)); + AppConfig.Set("keyboard_sleep_logo", (checkSleepLogo.Checked ? 1 : 0)); + AppConfig.Set("keyboard_shutdown_logo", (checkShutdownLogo.Checked ? 1 : 0)); List flags = new List(); @@ -429,7 +429,7 @@ namespace GHelper private void ComboKeyboardSpeed_SelectedValueChanged(object? sender, EventArgs e) { - AppConfig.setConfig("aura_speed", (int)comboKeyboardSpeed.SelectedValue); + AppConfig.Set("aura_speed", (int)comboKeyboardSpeed.SelectedValue); Program.settingsForm.SetAura(); } @@ -450,7 +450,7 @@ namespace GHelper private void checkAutoApplyWindowsPowerMode_CheckedChanged(object? sender, EventArgs e) { - AppConfig.setConfig("auto_apply_power_plan", checkAutoApplyWindowsPowerMode.Checked ? 1 : 0); + AppConfig.Set("auto_apply_power_plan", checkAutoApplyWindowsPowerMode.Checked ? 1 : 0); } } } diff --git a/app/Fans.Designer.cs b/app/Fans.Designer.cs index e05e203b..01179a04 100644 --- a/app/Fans.Designer.cs +++ b/app/Fans.Designer.cs @@ -39,6 +39,7 @@ namespace GHelper Title title3 = new Title(); ChartArea chartArea4 = new ChartArea(); Title title4 = new Title(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Fans)); panelFans = new Panel(); labelTip = new Label(); tableFanCharts = new TableLayoutPanel(); @@ -47,14 +48,17 @@ namespace GHelper chartXGM = new Chart(); chartMid = new Chart(); panelTitleFans = new Panel(); - labelBoost = new Label(); - comboBoost = new RComboBox(); + buttonRemove = new RButton(); + buttonAdd = new RButton(); + comboModes = new RComboBox(); picturePerf = new PictureBox(); labelFans = new Label(); panelApplyFans = new Panel(); labelFansResult = new Label(); checkApplyFans = new RCheckBox(); buttonReset = new RButton(); + labelBoost = new Label(); + comboBoost = new RComboBox(); panelSliders = new Panel(); panelPower = new Panel(); panelApplyPower = new Panel(); @@ -72,6 +76,7 @@ namespace GHelper labelA0 = new Label(); labelLeftA0 = new Label(); trackA0 = new TrackBar(); + panelBoost = new Panel(); panelTitleCPU = new Panel(); pictureBox1 = new PictureBox(); labelPowerLimits = new Label(); @@ -113,6 +118,7 @@ namespace GHelper ((System.ComponentModel.ISupportInitialize)trackC1).BeginInit(); panelA0.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)trackA0).BeginInit(); + panelBoost.SuspendLayout(); panelTitleCPU.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)pictureBox1).BeginInit(); panelGPU.SuspendLayout(); @@ -239,8 +245,9 @@ namespace GHelper // // panelTitleFans // - panelTitleFans.Controls.Add(labelBoost); - panelTitleFans.Controls.Add(comboBoost); + panelTitleFans.Controls.Add(buttonRemove); + panelTitleFans.Controls.Add(buttonAdd); + panelTitleFans.Controls.Add(comboModes); panelTitleFans.Controls.Add(picturePerf); panelTitleFans.Controls.Add(labelFans); panelTitleFans.Dock = DockStyle.Top; @@ -249,28 +256,50 @@ namespace GHelper panelTitleFans.Size = new Size(805, 66); panelTitleFans.TabIndex = 42; // - // labelBoost + // buttonRemove // - labelBoost.Anchor = AnchorStyles.Top | AnchorStyles.Right; - labelBoost.Location = new Point(356, 20); - labelBoost.Name = "labelBoost"; - labelBoost.Size = new Size(140, 32); - labelBoost.TabIndex = 43; - labelBoost.Text = "CPU Boost"; - labelBoost.TextAlign = ContentAlignment.MiddleRight; + buttonRemove.Activated = false; + buttonRemove.Anchor = AnchorStyles.Bottom | AnchorStyles.Left; + buttonRemove.BackColor = SystemColors.ControlLight; + buttonRemove.BorderColor = Color.Transparent; + buttonRemove.BorderRadius = 2; + buttonRemove.FlatStyle = FlatStyle.Flat; + buttonRemove.Image = (Image)resources.GetObject("buttonRemove.Image"); + buttonRemove.Location = new Point(370, 14); + buttonRemove.Margin = new Padding(4, 2, 4, 2); + buttonRemove.Name = "buttonRemove"; + buttonRemove.Secondary = true; + buttonRemove.Size = new Size(52, 44); + buttonRemove.TabIndex = 44; + buttonRemove.UseVisualStyleBackColor = false; // - // comboBoost + // buttonAdd // - comboBoost.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right; - comboBoost.BorderColor = Color.White; - comboBoost.ButtonColor = Color.FromArgb(255, 255, 255); - comboBoost.DropDownStyle = ComboBoxStyle.DropDownList; - comboBoost.FormattingEnabled = true; - comboBoost.Items.AddRange(new object[] { "Disabled", "Enabled", "Aggressive", "Efficient Enabled", "Efficient Aggressive" }); - comboBoost.Location = new Point(506, 16); - comboBoost.Name = "comboBoost"; - comboBoost.Size = new Size(287, 40); - comboBoost.TabIndex = 42; + buttonAdd.Activated = false; + buttonAdd.Anchor = AnchorStyles.Bottom | AnchorStyles.Left; + buttonAdd.BackColor = SystemColors.ControlLight; + buttonAdd.BorderColor = Color.Transparent; + buttonAdd.BorderRadius = 2; + buttonAdd.FlatStyle = FlatStyle.Flat; + buttonAdd.Image = (Image)resources.GetObject("buttonAdd.Image"); + buttonAdd.Location = new Point(737, 14); + buttonAdd.Margin = new Padding(4, 2, 4, 2); + buttonAdd.Name = "buttonAdd"; + buttonAdd.Secondary = true; + buttonAdd.Size = new Size(52, 44); + buttonAdd.TabIndex = 43; + buttonAdd.UseVisualStyleBackColor = false; + // + // comboModes + // + comboModes.Anchor = AnchorStyles.Top | AnchorStyles.Right; + comboModes.BorderColor = Color.White; + comboModes.ButtonColor = Color.FromArgb(255, 255, 255); + comboModes.FormattingEnabled = true; + comboModes.Location = new Point(429, 16); + comboModes.Name = "comboModes"; + comboModes.Size = new Size(302, 40); + comboModes.TabIndex = 42; // // picturePerf // @@ -288,12 +317,12 @@ namespace GHelper // labelFans.AutoSize = true; labelFans.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point); - labelFans.Location = new Point(62, 20); + labelFans.Location = new Point(58, 20); labelFans.Margin = new Padding(4, 0, 4, 0); labelFans.Name = "labelFans"; - labelFans.Size = new Size(138, 32); + labelFans.Size = new Size(90, 32); labelFans.TabIndex = 40; - labelFans.Text = "Fan Curves"; + labelFans.Text = "Profile"; // // panelApplyFans // @@ -348,6 +377,28 @@ namespace GHelper buttonReset.Text = Properties.Strings.FactoryDefaults; buttonReset.UseVisualStyleBackColor = false; // + // labelBoost + // + labelBoost.Location = new Point(10, 12); + labelBoost.Name = "labelBoost"; + labelBoost.Size = new Size(201, 40); + labelBoost.TabIndex = 43; + labelBoost.Text = "CPU Boost"; + labelBoost.TextAlign = ContentAlignment.MiddleLeft; + // + // comboBoost + // + comboBoost.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right; + comboBoost.BorderColor = Color.White; + comboBoost.ButtonColor = Color.FromArgb(255, 255, 255); + comboBoost.DropDownStyle = ComboBoxStyle.DropDownList; + comboBoost.FormattingEnabled = true; + comboBoost.Items.AddRange(new object[] { "Disabled", "Enabled", "Aggressive", "Efficient Enabled", "Efficient Aggressive" }); + comboBoost.Location = new Point(226, 12); + comboBoost.Name = "comboBoost"; + comboBoost.Size = new Size(287, 40); + comboBoost.TabIndex = 42; + // // panelSliders // panelSliders.Controls.Add(panelPower); @@ -369,18 +420,19 @@ namespace GHelper panelPower.Controls.Add(panelB0); panelPower.Controls.Add(panelC1); panelPower.Controls.Add(panelA0); + panelPower.Controls.Add(panelBoost); panelPower.Controls.Add(panelTitleCPU); panelPower.Dock = DockStyle.Fill; - panelPower.Location = new Point(10, 652); + panelPower.Location = new Point(10, 584); panelPower.Name = "panelPower"; - panelPower.Size = new Size(523, 658); + panelPower.Size = new Size(523, 726); panelPower.TabIndex = 43; // // panelApplyPower // panelApplyPower.Controls.Add(checkApplyPower); panelApplyPower.Dock = DockStyle.Bottom; - panelApplyPower.Location = new Point(0, 568); + panelApplyPower.Location = new Point(0, 636); panelApplyPower.Name = "panelApplyPower"; panelApplyPower.Padding = new Padding(10); panelApplyPower.Size = new Size(523, 90); @@ -403,11 +455,11 @@ namespace GHelper // labelInfo // labelInfo.Dock = DockStyle.Top; - labelInfo.Location = new Point(0, 482); + labelInfo.Location = new Point(0, 506); labelInfo.Margin = new Padding(4, 0, 4, 0); labelInfo.Name = "labelInfo"; labelInfo.Padding = new Padding(5); - labelInfo.Size = new Size(523, 149); + labelInfo.Size = new Size(523, 100); labelInfo.TabIndex = 43; labelInfo.Text = "Experimental Feature"; // @@ -419,10 +471,11 @@ namespace GHelper panelB0.Controls.Add(labelLeftB0); panelB0.Controls.Add(trackB0); panelB0.Dock = DockStyle.Top; - panelB0.Location = new Point(0, 346); + panelB0.Location = new Point(0, 381); panelB0.Margin = new Padding(4); + panelB0.MaximumSize = new Size(0, 125); panelB0.Name = "panelB0"; - panelB0.Size = new Size(523, 136); + panelB0.Size = new Size(523, 125); panelB0.TabIndex = 41; // // labelB0 @@ -469,10 +522,11 @@ namespace GHelper panelC1.Controls.Add(labelLeftC1); panelC1.Controls.Add(trackC1); panelC1.Dock = DockStyle.Top; - panelC1.Location = new Point(0, 206); + panelC1.Location = new Point(0, 256); panelC1.Margin = new Padding(4); + panelC1.MaximumSize = new Size(0, 125); panelC1.Name = "panelC1"; - panelC1.Size = new Size(523, 140); + panelC1.Size = new Size(523, 125); panelC1.TabIndex = 45; // // labelC1 @@ -484,7 +538,7 @@ namespace GHelper labelC1.Name = "labelC1"; labelC1.Size = new Size(119, 32); labelC1.TabIndex = 13; - labelC1.Text = "APU"; + labelC1.Text = "C1"; labelC1.TextAlign = ContentAlignment.TopRight; // // labelLeftC1 @@ -493,9 +547,9 @@ namespace GHelper labelLeftC1.Location = new Point(10, 8); labelLeftC1.Margin = new Padding(4, 0, 4, 0); labelLeftC1.Name = "labelLeftC1"; - labelLeftC1.Size = new Size(58, 32); + labelLeftC1.Size = new Size(42, 32); labelLeftC1.TabIndex = 12; - labelLeftC1.Text = "APU"; + labelLeftC1.Text = "C1"; // // trackC1 // @@ -519,10 +573,11 @@ namespace GHelper panelA0.Controls.Add(labelLeftA0); panelA0.Controls.Add(trackA0); panelA0.Dock = DockStyle.Top; - panelA0.Location = new Point(0, 66); + panelA0.Location = new Point(0, 131); panelA0.Margin = new Padding(4); + panelA0.MaximumSize = new Size(0, 125); panelA0.Name = "panelA0"; - panelA0.Size = new Size(523, 140); + panelA0.Size = new Size(523, 125); panelA0.TabIndex = 40; // // labelA0 @@ -561,6 +616,16 @@ namespace GHelper trackA0.TickStyle = TickStyle.TopLeft; trackA0.Value = 125; // + // panelBoost + // + panelBoost.Controls.Add(comboBoost); + panelBoost.Controls.Add(labelBoost); + panelBoost.Dock = DockStyle.Top; + panelBoost.Location = new Point(0, 66); + panelBoost.Name = "panelBoost"; + panelBoost.Size = new Size(523, 65); + panelBoost.TabIndex = 13; + // // panelTitleCPU // panelTitleCPU.AutoSize = true; @@ -589,12 +654,12 @@ namespace GHelper // labelPowerLimits.AutoSize = true; labelPowerLimits.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point); - labelPowerLimits.Location = new Point(62, 20); + labelPowerLimits.Location = new Point(57, 20); labelPowerLimits.Margin = new Padding(4, 0, 4, 0); labelPowerLimits.Name = "labelPowerLimits"; - labelPowerLimits.Size = new Size(229, 32); + labelPowerLimits.Size = new Size(160, 32); labelPowerLimits.TabIndex = 39; - labelPowerLimits.Text = "Power Limits (PPT)"; + labelPowerLimits.Text = "Power Limits"; // // panelGPU // @@ -608,7 +673,7 @@ namespace GHelper panelGPU.Location = new Point(10, 0); panelGPU.Name = "panelGPU"; panelGPU.Padding = new Padding(0, 0, 0, 18); - panelGPU.Size = new Size(523, 652); + panelGPU.Size = new Size(523, 584); panelGPU.TabIndex = 44; // // panelGPUTemp @@ -619,9 +684,10 @@ namespace GHelper panelGPUTemp.Controls.Add(labelGPUTempTitle); panelGPUTemp.Controls.Add(trackGPUTemp); panelGPUTemp.Dock = DockStyle.Top; - panelGPUTemp.Location = new Point(0, 485); + panelGPUTemp.Location = new Point(0, 441); + panelGPUTemp.MaximumSize = new Size(0, 125); panelGPUTemp.Name = "panelGPUTemp"; - panelGPUTemp.Size = new Size(523, 149); + panelGPUTemp.Size = new Size(523, 125); panelGPUTemp.TabIndex = 47; // // labelGPUTemp @@ -666,9 +732,10 @@ namespace GHelper panelGPUBoost.Controls.Add(labelGPUBoostTitle); panelGPUBoost.Controls.Add(trackGPUBoost); panelGPUBoost.Dock = DockStyle.Top; - panelGPUBoost.Location = new Point(0, 345); + panelGPUBoost.Location = new Point(0, 316); + panelGPUBoost.MaximumSize = new Size(0, 125); panelGPUBoost.Name = "panelGPUBoost"; - panelGPUBoost.Size = new Size(523, 140); + panelGPUBoost.Size = new Size(523, 125); panelGPUBoost.TabIndex = 46; // // labelGPUBoost @@ -713,9 +780,10 @@ namespace GHelper panelGPUMemory.Controls.Add(labelGPUMemoryTitle); panelGPUMemory.Controls.Add(trackGPUMemory); panelGPUMemory.Dock = DockStyle.Top; - panelGPUMemory.Location = new Point(0, 205); + panelGPUMemory.Location = new Point(0, 191); + panelGPUMemory.MaximumSize = new Size(0, 125); panelGPUMemory.Name = "panelGPUMemory"; - panelGPUMemory.Size = new Size(523, 140); + panelGPUMemory.Size = new Size(523, 125); panelGPUMemory.TabIndex = 45; // // labelGPUMemory @@ -761,8 +829,9 @@ namespace GHelper panelGPUCore.Controls.Add(labelGPUCoreTitle); panelGPUCore.Dock = DockStyle.Top; panelGPUCore.Location = new Point(0, 66); + panelGPUCore.MaximumSize = new Size(0, 125); panelGPUCore.Name = "panelGPUCore"; - panelGPUCore.Size = new Size(523, 139); + panelGPUCore.Size = new Size(523, 125); panelGPUCore.TabIndex = 44; // // labelGPUCore @@ -829,7 +898,7 @@ namespace GHelper // labelGPU.AutoSize = true; labelGPU.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point); - labelGPU.Location = new Point(62, 20); + labelGPU.Location = new Point(55, 20); labelGPU.Margin = new Padding(4, 0, 4, 0); labelGPU.Name = "labelGPU"; labelGPU.Size = new Size(162, 32); @@ -881,6 +950,7 @@ namespace GHelper panelA0.ResumeLayout(false); panelA0.PerformLayout(); ((System.ComponentModel.ISupportInitialize)trackA0).EndInit(); + panelBoost.ResumeLayout(false); panelTitleCPU.ResumeLayout(false); panelTitleCPU.PerformLayout(); ((System.ComponentModel.ISupportInitialize)pictureBox1).EndInit(); @@ -962,5 +1032,9 @@ namespace GHelper private Label labelC1; private Label labelLeftC1; private TrackBar trackC1; + private Panel panelBoost; + private RComboBox comboModes; + private RButton buttonAdd; + private RButton buttonRemove; } } \ No newline at end of file diff --git a/app/Fans.cs b/app/Fans.cs index d786aec9..809b9e6a 100644 --- a/app/Fans.cs +++ b/app/Fans.cs @@ -2,6 +2,7 @@ using GHelper.Gpu; using System; using System.Diagnostics; +using System.Net.Sockets; using System.Windows.Forms.DataVisualization.Charting; namespace GHelper @@ -127,18 +128,65 @@ namespace GHelper labelInfo.Text = Properties.Strings.PPTExperimental; labelFansResult.Visible = false; + FillModes(); + + InitMode(); InitFans(); InitPower(); InitBoost(); InitGPU(true); comboBoost.SelectedValueChanged += ComboBoost_Changed; + comboModes.SelectedValueChanged += ComboModes_SelectedValueChanged; Shown += Fans_Shown; + buttonAdd.Click += ButtonAdd_Click; + buttonRemove.Click += ButtonRemove_Click; + } + + + private void ButtonRemove_Click(object? sender, EventArgs e) + { + int mode = Modes.GetCurrent(); + if (!Modes.IsCurrentCustom()) return; + + Modes.Remove(mode); + FillModes(); + + Program.settingsForm.SetPerformanceMode(AsusACPI.PerformanceBalanced); } + private void FillModes() + { + comboModes.DropDownStyle = ComboBoxStyle.DropDownList; + comboModes.DataSource = new BindingSource(Modes.GetList(), null); + comboModes.DisplayMember = "Value"; + comboModes.ValueMember = "Key"; + } + + private void ButtonAdd_Click(object? sender, EventArgs e) + { + int mode = Modes.Add(); + FillModes(); + Program.settingsForm.SetPerformanceMode(mode); + } + + public void InitMode() + { + int mode = Modes.GetCurrent(); + comboModes.SelectedValue = mode; + buttonRemove.Visible = Modes.IsCurrentCustom(); + } + + private void ComboModes_SelectedValueChanged(object? sender, EventArgs e) + { + int selectedMode = (int)comboModes.SelectedValue; + if (selectedMode == Modes.GetCurrent()) return; + + Program.settingsForm.SetPerformanceMode((int)selectedMode); + } private void TrackGPU_MouseUp(object? sender, MouseEventArgs e) { @@ -171,10 +219,10 @@ namespace GHelper { gpuVisible = panelGPU.Visible = true; - int gpu_boost = AppConfig.getConfigPerf("gpu_boost"); - int gpu_temp = AppConfig.getConfigPerf("gpu_temp"); - int core = AppConfig.getConfigPerf("gpu_core"); - int memory = AppConfig.getConfigPerf("gpu_memory"); + int gpu_boost = AppConfig.GetMode("gpu_boost"); + int gpu_temp = AppConfig.GetMode("gpu_temp"); + int core = AppConfig.GetMode("gpu_core"); + int memory = AppConfig.GetMode("gpu_memory"); if (gpu_boost < 0) gpu_boost = AsusACPI.MaxGPUBoost; if (gpu_temp < 0) gpu_temp = AsusACPI.MaxGPUTemp; @@ -236,8 +284,8 @@ namespace GHelper TrackBar track = (TrackBar)sender; track.Value = (int)Math.Round((float)track.Value / 5) * 5; - AppConfig.setConfigPerf("gpu_core", trackGPUCore.Value); - AppConfig.setConfigPerf("gpu_memory", trackGPUMemory.Value); + AppConfig.SetMode("gpu_core", trackGPUCore.Value); + AppConfig.SetMode("gpu_memory", trackGPUMemory.Value); VisualiseGPUSettings(); @@ -245,8 +293,8 @@ namespace GHelper private void trackGPUPower_Scroll(object? sender, EventArgs e) { - AppConfig.setConfigPerf("gpu_boost", trackGPUBoost.Value); - AppConfig.setConfigPerf("gpu_temp", trackGPUTemp.Value); + AppConfig.SetMode("gpu_boost", trackGPUBoost.Value); + AppConfig.SetMode("gpu_temp", trackGPUTemp.Value); VisualiseGPUSettings(); } @@ -279,9 +327,6 @@ namespace GHelper break; } - if (Program.settingsForm.perfName.Length > 0) - labelFans.Text = Properties.Strings.FanProfiles + ": " + Program.settingsForm.perfName; - chart.Titles[0].Text = title; chart.ChartAreas[0].AxisX.Minimum = 10; @@ -349,10 +394,10 @@ namespace GHelper private void ComboBoost_Changed(object? sender, EventArgs e) { - if (AppConfig.getConfigPerf("auto_boost") != comboBoost.SelectedIndex) + if (AppConfig.GetMode("auto_boost") != comboBoost.SelectedIndex) { NativeMethods.SetCPUBoost(comboBoost.SelectedIndex); - AppConfig.setConfigPerf("auto_boost", comboBoost.SelectedIndex); + AppConfig.SetMode("auto_boost", comboBoost.SelectedIndex); } } @@ -361,7 +406,7 @@ namespace GHelper if (sender is null) return; CheckBox chk = (CheckBox)sender; - AppConfig.setConfigPerf("auto_apply_power", chk.Checked ? 1 : 0); + AppConfig.SetMode("auto_apply_power", chk.Checked ? 1 : 0); Program.settingsForm.SetPerformanceMode(); } @@ -371,7 +416,7 @@ namespace GHelper if (sender is null) return; CheckBox chk = (CheckBox)sender; - AppConfig.setConfigPerf("auto_apply", chk.Checked ? 1 : 0); + AppConfig.SetMode("auto_apply", chk.Checked ? 1 : 0); Program.settingsForm.SetPerformanceMode(); } @@ -424,7 +469,7 @@ namespace GHelper int limit_cpu; int limit_fast; - bool apply = AppConfig.isConfigPerf("auto_apply_power"); + bool apply = AppConfig.IsMode("auto_apply_power"); if (changed) { @@ -434,9 +479,9 @@ namespace GHelper } else { - limit_total = AppConfig.getConfigPerf("limit_total"); - limit_cpu = AppConfig.getConfigPerf("limit_cpu"); - limit_fast = AppConfig.getConfigPerf("limit_fast"); + limit_total = AppConfig.GetMode("limit_total"); + limit_cpu = AppConfig.GetMode("limit_cpu"); + limit_fast = AppConfig.GetMode("limit_fast"); } if (limit_total < 0) limit_total = AsusACPI.DefaultTotal; @@ -462,9 +507,9 @@ namespace GHelper labelB0.Text = trackB0.Value.ToString() + "W"; labelC1.Text = trackC1.Value.ToString() + "W"; - AppConfig.setConfigPerf("limit_total", limit_total); - AppConfig.setConfigPerf("limit_cpu", limit_cpu); - AppConfig.setConfigPerf("limit_fast", limit_fast); + AppConfig.SetMode("limit_total", limit_total); + AppConfig.SetMode("limit_cpu", limit_cpu); + AppConfig.SetMode("limit_fast", limit_fast); } @@ -484,7 +529,7 @@ namespace GHelper // Middle / system fan check if (!AsusACPI.IsEmptyCurve(Program.acpi.GetFanCurve(AsusFan.Mid))) { - AppConfig.setConfig("mid_fan", 1); + AppConfig.Set("mid_fan", 1); chartCount++; chartMid.Visible = true; SetChart(chartMid, AsusFan.Mid); @@ -492,13 +537,13 @@ namespace GHelper } else { - AppConfig.setConfig("mid_fan", 0); + AppConfig.Set("mid_fan", 0); } // XG Mobile Fan check if (Program.acpi.IsXGConnected()) { - AppConfig.setConfig("xgm_fan", 1); + AppConfig.Set("xgm_fan", 1); chartCount++; chartXGM.Visible = true; SetChart(chartXGM, AsusFan.XGM); @@ -506,7 +551,7 @@ namespace GHelper } else { - AppConfig.setConfig("xgm_fan", 0); + AppConfig.Set("xgm_fan", 0); } try @@ -526,9 +571,7 @@ namespace GHelper LoadProfile(seriesCPU, AsusFan.CPU); LoadProfile(seriesGPU, AsusFan.GPU); - int auto_apply = AppConfig.getConfigPerf("auto_apply"); - - checkApplyFans.Checked = (auto_apply == 1); + checkApplyFans.Checked = AppConfig.IsMode("auto_apply"); } @@ -542,15 +585,14 @@ namespace GHelper series.Points.Clear(); - int mode = AppConfig.getConfig("performance_mode"); - byte[] curve = AppConfig.getFanConfig(device); + byte[] curve = AppConfig.GetFanConfig(device); if (reset || AsusACPI.IsInvalidCurve(curve)) { - curve = Program.acpi.GetFanCurve(device, mode); + curve = Program.acpi.GetFanCurve(device, Modes.GetCurrentBase()); if (AsusACPI.IsInvalidCurve(curve)) - curve = AppConfig.getDefaultCurve(device); + curve = AppConfig.GetDefaultCurve(device); curve = AsusACPI.FixFanCurve(curve); @@ -581,7 +623,7 @@ namespace GHelper i++; } - AppConfig.setFanConfig(device, curve); + AppConfig.SetFanConfig(device, curve); //Program.wmi.SetFanCurve(device, curve); } @@ -593,21 +635,21 @@ namespace GHelper LoadProfile(seriesCPU, AsusFan.CPU, true); LoadProfile(seriesGPU, AsusFan.GPU, true); - if (AppConfig.isConfig("mid_fan")) + if (AppConfig.Is("mid_fan")) LoadProfile(seriesMid, AsusFan.Mid, true); - if (AppConfig.isConfig("xgm_fan")) + if (AppConfig.Is("xgm_fan")) LoadProfile(seriesXGM, AsusFan.XGM, true); checkApplyFans.Checked = false; checkApplyPower.Checked = false; - AppConfig.setConfigPerf("auto_apply", 0); - AppConfig.setConfigPerf("auto_apply_power", 0); + AppConfig.SetMode("auto_apply", 0); + AppConfig.SetMode("auto_apply_power", 0); - Program.acpi.DeviceSet(AsusACPI.PerformanceMode, AppConfig.getConfig("performance_mode"), "Mode"); - - if (Program.acpi.IsXGConnected()) + Program.acpi.DeviceSet(AsusACPI.PerformanceMode, Modes.GetCurrentBase(), "Mode"); + + if (Program.acpi.IsXGConnected()) AsusUSB.ResetXGM(); if (gpuVisible) @@ -617,10 +659,10 @@ namespace GHelper trackGPUBoost.Value = AsusACPI.MaxGPUBoost; trackGPUTemp.Value = AsusACPI.MaxGPUTemp; - AppConfig.setConfigPerf("gpu_boost", trackGPUBoost.Value); - AppConfig.setConfigPerf("gpu_temp", trackGPUTemp.Value); - AppConfig.setConfigPerf("gpu_core", trackGPUCore.Value); - AppConfig.setConfigPerf("gpu_memory", trackGPUMemory.Value); + AppConfig.SetMode("gpu_boost", trackGPUBoost.Value); + AppConfig.SetMode("gpu_temp", trackGPUTemp.Value); + AppConfig.SetMode("gpu_core", trackGPUCore.Value); + AppConfig.SetMode("gpu_memory", trackGPUMemory.Value); VisualiseGPUSettings(); Program.settingsForm.SetGPUClocks(true); @@ -639,10 +681,10 @@ namespace GHelper SaveProfile(seriesCPU, AsusFan.CPU); SaveProfile(seriesGPU, AsusFan.GPU); - if (AppConfig.isConfig("mid_fan")) + if (AppConfig.Is("mid_fan")) SaveProfile(seriesMid, AsusFan.Mid); - if (AppConfig.isConfig("xgm_fan")) + if (AppConfig.Is("xgm_fan")) SaveProfile(seriesXGM, AsusFan.XGM); Program.settingsForm.AutoFans(); @@ -734,7 +776,7 @@ namespace GHelper for (int i = 0; i < series.Points.Count; i++) { series.Points[i].XValue = Math.Max(20, Math.Min(100, series.Points[i].XValue + deltaX)); - series.Points[i].YValues[0] = Math.Max(0, Math.Min(100, series.Points[i].YValues[0]+deltaY)); + series.Points[i].YValues[0] = Math.Max(0, Math.Min(100, series.Points[i].YValues[0] + deltaY)); } } diff --git a/app/Fans.resx b/app/Fans.resx index a395bffc..a9316039 100644 --- a/app/Fans.resx +++ b/app/Fans.resx @@ -117,4 +117,33 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAL + DwAACw8BkvkDpQAAAclJREFUWEftls0uBEEQx+fkI1zWjeAusTyBeAC8EC68Ahu8DImvp8ANF44EB/x/ + na3LRM9099YSyf6TXzJdU13T011d3dVI/02rYl+ciQfx0YdnbLzDx13r4lJ8JXIh6DOwJsWJ+BQEfhIH + YkMsiLE+PGM7FPjgSx/6EqNIM+JaEOxFbIsp0SZ8dsSroC8xOiJLjNo+fiOWRa6WxK2wQWTNBFNnH5/F + UCj62iCOMKSI5GH9mPaSP6+LGCwHMdcwtMmynTX3ErGIeR5aDVoROJLJKQmXKmLZ7uAbUVFIcGKreasn + iL0XWhFRzXBiT3trUxD7NLQiehQ4zYeWrxYFsSnbUb0LnKhudWHPoa5xgf0ttCL68wHYElDbvWVLcB9a + EQ0zCbcEsRuT0LYhp5q3krbhsArRtHgWxG4sRIjLBI4cqV7aFcRsLcXIDiMOkC6GAZV9GKFjwYg5Sucw + FIq+d4JYyccx4vJwJWwQJRdNZs8+zoVkQmSJa5QNgikkJ0imNuHDmtuVjBjZVzITM8HUsX4EI5PZThws + FBa7lPLMPuedZTt96Jv95z+J5CGDCZwCvskJlyP2MIWEakZJ5ewAnrHxzmPnjPRbqqpvzOytki4+4b0A + AAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAL + DwAACw8BkvkDpQAAAddJREFUWEftlssuBUEQhmflEjbsCPYSlycQD4AXwoZXQPAyJG5PgR02LAkW+L/O + qc3J6emqOXOI5PzJl0z3VNfUdFdXdzXUf9Oq2Bfn4lF8duCZPt5h07rWxZX4dnIpGNO3xsWp+BI4fhYH + YkPMi5EOPNN3KLDBljGMxUcjTYsbgbNXsS0mREnY7Ig3wVh8TImQiNo+fiuWRFSL4k5YEKGZYOrs4zN0 + NBRjLYhjOjwieVg/pr3Jn3cLHywHPtfoKMmynTVvS/jC50Vq1WhFYEgmexIOWygJX7Y7+EZWFBKM2Goe + eQNARwLbvdTKiGqGEXvao0gAmwLbs9TK6ElgNJdaZUUCWBDYUraz+hAYUd16yT5YopdGBe/eUyujPw/A + loDa7lHdB7tlS/CQWhkNMgm3BLa1SWjbkFPNo0gArm04qEI0KV4EtrWFCHGZwJAjtS3tCnwWSzGyw4gD + ZJmOPhU+jNCJIGKO0lk6Goqx9wJf7uMYcXm4FhZEk4sms2cf50IyJkLiGmVBMIXkBMlUEjasuV3J8BG+ + kpmYCaaO9cMZmcx24mChsNillGf2Oe8s2xnD2PCf9xLJQwbj2AO27oSLiD1MIaGaUVI5O4Bn+njXxs4Z + 6rdUVT8f7bmGe+JHiAAAAABJRU5ErkJggg== + + \ No newline at end of file diff --git a/app/GHelper.csproj b/app/GHelper.csproj index 8fd5f1a2..c66db409 100644 --- a/app/GHelper.csproj +++ b/app/GHelper.csproj @@ -16,7 +16,7 @@ AnyCPU False True - 0.82 + 0.83 diff --git a/app/Gpu/NvidiaGpuControl.cs b/app/Gpu/NvidiaGpuControl.cs index 1daac8e8..e4be904b 100644 --- a/app/Gpu/NvidiaGpuControl.cs +++ b/app/Gpu/NvidiaGpuControl.cs @@ -111,8 +111,8 @@ public class NvidiaGpuControl : IGpuControl public int SetClocksFromConfig() { - int core = AppConfig.getConfig("gpu_core"); - int memory = AppConfig.getConfig("gpu_memory"); + int core = AppConfig.Get("gpu_core",0); + int memory = AppConfig.Get("gpu_memory",0); int status = SetClocks(core, memory); return status; } diff --git a/app/HardwareControl.cs b/app/HardwareControl.cs index 7875f994..ec76f837 100644 --- a/app/HardwareControl.cs +++ b/app/HardwareControl.cs @@ -19,7 +19,7 @@ public static class HardwareControl public static int GetFanMax() { int max = 58; - int configMax = AppConfig.getConfig("fan_max"); + int configMax = AppConfig.Get("fan_max"); if (configMax > 100) configMax = 0; // skipping inadvequate settings if (AppConfig.ContainsModel("401")) max = 72; @@ -29,7 +29,7 @@ public static class HardwareControl public static void SetFanMax(int fan) { - AppConfig.setConfig("fan_max", fan); + AppConfig.Set("fan_max", fan); } public static string FormatFan(int fan) { @@ -43,7 +43,7 @@ public static class HardwareControl int fanMax = GetFanMax(); if (fan > fanMax && fan < 110) SetFanMax(fan); - if (AppConfig.getConfig("fan_rpm") == 1) + if (AppConfig.Is("fan_rpm")) return GHelper.Properties.Strings.FanSpeed + (fan * 100).ToString() + "RPM"; else return GHelper.Properties.Strings.FanSpeed + Math.Min(Math.Round((float)fan / fanMax * 100), 100).ToString() + "%"; // relatively to 6000 rpm @@ -189,7 +189,7 @@ public static class HardwareControl List tokill = new() { "EADesktop", "RadeonSoftware", "epicgameslauncher", "ASUSSmartDisplayControl" }; - if (AppConfig.isConfig("kill_gpu_apps")) + if (AppConfig.Is("kill_gpu_apps")) { tokill.Add("nvdisplay.container"); tokill.Add("nvcontainer"); @@ -198,7 +198,7 @@ public static class HardwareControl foreach (string kill in tokill) ProcessHelper.KillByName(kill); - if (AppConfig.isConfig("kill_gpu_apps") && GpuControl is not null) + if (AppConfig.Is("kill_gpu_apps") && GpuControl is not null) { GpuControl.KillGPUApps(); } diff --git a/app/InputDispatcher.cs b/app/InputDispatcher.cs index ba31d6eb..afb294d6 100644 --- a/app/InputDispatcher.cs +++ b/app/InputDispatcher.cs @@ -86,9 +86,9 @@ namespace GHelper int kb_timeout; if (SystemInformation.PowerStatus.PowerLineStatus == PowerLineStatus.Online) - kb_timeout = AppConfig.getConfig("keyboard_ac_timeout", 0); + kb_timeout = AppConfig.Get("keyboard_ac_timeout", 0); else - kb_timeout = AppConfig.getConfig("keyboard_timeout", 60); + kb_timeout = AppConfig.Get("keyboard_timeout", 60); if (kb_timeout == 0) return; @@ -123,8 +123,8 @@ namespace GHelper public void InitBacklightTimer() { - timer.Enabled = (AppConfig.getConfig("keyboard_timeout") > 0 && SystemInformation.PowerStatus.PowerLineStatus != PowerLineStatus.Online) || - (AppConfig.getConfig("keyboard_ac_timeout") > 0 && SystemInformation.PowerStatus.PowerLineStatus == PowerLineStatus.Online); + timer.Enabled = (AppConfig.Get("keyboard_timeout") > 0 && SystemInformation.PowerStatus.PowerLineStatus != PowerLineStatus.Online) || + (AppConfig.Get("keyboard_ac_timeout") > 0 && SystemInformation.PowerStatus.PowerLineStatus == PowerLineStatus.Online); } @@ -134,11 +134,11 @@ namespace GHelper hook.UnregisterAll(); // CTRL + SHIFT + F5 to cycle profiles - if (AppConfig.getConfig("keybind_profile") != -1) keyProfile = (Keys)AppConfig.getConfig("keybind_profile"); - if (AppConfig.getConfig("keybind_app") != -1) keyApp = (Keys)AppConfig.getConfig("keybind_app"); + if (AppConfig.Get("keybind_profile") != -1) keyProfile = (Keys)AppConfig.Get("keybind_profile"); + if (AppConfig.Get("keybind_app") != -1) keyApp = (Keys)AppConfig.Get("keybind_app"); - string actionM1 = AppConfig.getConfigString("m1"); - string actionM2 = AppConfig.getConfigString("m2"); + string actionM1 = AppConfig.GetString("m1"); + string actionM2 = AppConfig.GetString("m2"); if (keyProfile != Keys.None) hook.RegisterHotKey(ModifierKeys.Shift | ModifierKeys.Control, keyProfile); if (keyApp != Keys.None) hook.RegisterHotKey(ModifierKeys.Shift | ModifierKeys.Control, keyApp); @@ -149,14 +149,14 @@ namespace GHelper // FN-Lock group - if (AppConfig.isConfig("fn_lock") && !AppConfig.ContainsModel("VivoBook")) + if (AppConfig.Is("fn_lock") && !AppConfig.ContainsModel("VivoBook")) for (Keys i = Keys.F1; i <= Keys.F11; i++) hook.RegisterHotKey(ModifierKeys.None, i); } static void CustomKey(string configKey = "m3") { - string command = AppConfig.getConfigString(configKey + "_custom"); + string command = AppConfig.GetString(configKey + "_custom"); int intKey; try @@ -202,7 +202,7 @@ namespace GHelper } } - if (AppConfig.ContainsModel("GA401I")) + if (AppConfig.ContainsModel("GA401I") && !AppConfig.ContainsModel("GA401IHR")) { switch (e.Key) { @@ -284,7 +284,7 @@ namespace GHelper public static void KeyProcess(string name = "m3") { - string action = AppConfig.getConfigString(name); + string action = AppConfig.GetString(name); if (action is null || action.Length <= 1) { @@ -366,8 +366,8 @@ namespace GHelper static void ToggleFnLock() { - int fnLock = AppConfig.isConfig("fn_lock") ? 0 : 1; - AppConfig.setConfig("fn_lock", fnLock); + int fnLock = AppConfig.Is("fn_lock") ? 0 : 1; + AppConfig.Set("fn_lock", fnLock); if (AppConfig.ContainsModel("VivoBook")) Program.acpi.DeviceSet(AsusACPI.FnLock, (fnLock == 1) ? 0 : 1, "FnLock"); @@ -458,8 +458,8 @@ namespace GHelper public static int GetBacklight() { - int backlight_power = AppConfig.getConfig("keyboard_brightness", 1); - int backlight_battery = AppConfig.getConfig("keyboard_brightness_ac", 1); + int backlight_power = AppConfig.Get("keyboard_brightness", 1); + int backlight_battery = AppConfig.Get("keyboard_brightness_ac", 1); bool onBattery = SystemInformation.PowerStatus.PowerLineStatus != PowerLineStatus.Online; int backlight; @@ -480,8 +480,8 @@ namespace GHelper public static void SetBacklight(int delta) { - int backlight_power = AppConfig.getConfig("keyboard_brightness", 1); - int backlight_battery = AppConfig.getConfig("keyboard_brightness_ac", 1); + int backlight_power = AppConfig.Get("keyboard_brightness", 1); + int backlight_battery = AppConfig.Get("keyboard_brightness_ac", 1); bool onBattery = SystemInformation.PowerStatus.PowerLineStatus != PowerLineStatus.Online; int backlight = onBattery ? backlight_battery : backlight_power; @@ -492,9 +492,9 @@ namespace GHelper backlight = Math.Max(Math.Min(3, backlight + delta), 0); if (onBattery) - AppConfig.setConfig("keyboard_brightness_ac", backlight); + AppConfig.Set("keyboard_brightness_ac", backlight); else - AppConfig.setConfig("keyboard_brightness", backlight); + AppConfig.Set("keyboard_brightness", backlight); if (!OptimizationService.IsRunning()) { diff --git a/app/Modes.cs b/app/Modes.cs new file mode 100644 index 00000000..ed0fb855 --- /dev/null +++ b/app/Modes.cs @@ -0,0 +1,141 @@ +namespace GHelper +{ + internal class Modes + { + + const int maxModes = 20; + + public static Dictionary GetList() + { + Dictionary modes = new Dictionary + { + {2, Properties.Strings.Silent}, + {0, Properties.Strings.Balanced}, + {1, Properties.Strings.Turbo} + }; + + for (int i = 3; i < maxModes; i++) + { + if (Exists(i)) + modes.Add(i, GetName(i)); + } + + return modes; + } + + public static void Remove(int mode) + { + List cleanup = new() { + "mode_base", + "mode_name", + "limit_total", + "limit_fast", + "limit_cpu", + "limit_total", + "fan_profile_cpu", + "fan_profile_gpu", + "fan_profile_mid", + "gpu_boost", + "gpu_temp", + "gpu_core", + "gpu_memory", + "auto_boost", + "auto_apply", + "auto_apply_power" + }; + + foreach (string clean in cleanup) + { + AppConfig.Remove(clean + "_" + mode); + } + } + + public static int Add() + { + for (int i = 3; i < maxModes; i++) + { + if (!Exists(i)) + { + int modeBase = GetCurrentBase(); + string nameName = "Custom " + (i - 2); + AppConfig.Set("mode_base_" + i, modeBase); + AppConfig.Set("mode_name_" + i, nameName); + return i; + } + } + + return -1; + } + + public static int GetCurrent() + { + return AppConfig.Get("performance_mode"); + } + + public static bool IsCurrentCustom() + { + return GetCurrent() > 2; + } + + public static void SetCurrent(int mode) + { + AppConfig.Set("performance_" + (int)SystemInformation.PowerStatus.PowerLineStatus, mode); + AppConfig.Set("performance_mode", mode); + } + + public static int GetCurrentBase() + { + return GetBase(GetCurrent()); + } + + public static string GetCurrentName() + { + return GetName(GetCurrent()); + } + + public static bool Exists(int mode) + { + return GetBase(mode) >= 0; + } + + public static int GetBase(int mode) + { + if (mode >= 0 && mode <= 2) + return mode; + else + return AppConfig.Get("mode_base_" + mode); + } + + public static string GetName(int mode) + { + switch (mode) + { + case 0: + return Properties.Strings.Balanced; + case 1: + return Properties.Strings.Turbo; + case 2: + return Properties.Strings.Silent; + default: + return AppConfig.GetString("mode_name_" + mode); + } + } + + + public static int GetNext(bool back = false) + { + int mode = GetCurrent(); + if (back) + { + mode--; + if (mode < 0) mode = 2; + } + else + { + mode++; + if (mode > 2) mode = 0; + } + return mode; + } + } +} diff --git a/app/NativeMethods.cs b/app/NativeMethods.cs index a8dee772..4836039a 100644 --- a/app/NativeMethods.cs +++ b/app/NativeMethods.cs @@ -636,7 +636,7 @@ public class NativeMethods var devices = GetAllDevices().ToArray(); int count = 0, displayNum = -1; - string internalName = AppConfig.getConfigString("internal_display"); + string internalName = AppConfig.GetString("internal_display"); foreach (var device in devices) { @@ -645,7 +645,7 @@ public class NativeMethods device.monitorFriendlyDeviceName == internalName) { displayNum = count; - AppConfig.setConfig("internal_display", device.monitorFriendlyDeviceName); + AppConfig.Set("internal_display", device.monitorFriendlyDeviceName); } count++; //Logger.WriteLine(device.monitorFriendlyDeviceName + ":" + device.outputTechnology.ToString()); diff --git a/app/ProcessHelper.cs b/app/ProcessHelper.cs index 1a1b02ad..2c762f97 100644 --- a/app/ProcessHelper.cs +++ b/app/ProcessHelper.cs @@ -57,8 +57,14 @@ namespace GHelper startInfo.FileName = Application.ExecutablePath; startInfo.Arguments = param; startInfo.Verb = "runas"; - Process.Start(startInfo); - Application.Exit(); + try + { + Process.Start(startInfo); + Application.Exit(); + } catch (Exception ex) + { + Logger.WriteLine(ex.Message); + } } } diff --git a/app/Program.cs b/app/Program.cs index 297776ce..c9ca2c53 100644 --- a/app/Program.cs +++ b/app/Program.cs @@ -38,7 +38,7 @@ namespace GHelper string action = ""; if (args.Length > 0) action = args[0]; - string language = AppConfig.getConfigString("language"); + string language = AppConfig.GetString("language"); if (language != null && language.Length > 0) Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo(language); @@ -147,7 +147,7 @@ namespace GHelper inputDispatcher.Init(); - settingsForm.SetBatteryChargeLimit(AppConfig.getConfig("charge_limit")); + settingsForm.SetBatteryChargeLimit(AppConfig.Get("charge_limit")); settingsForm.AutoPerformance(powerChanged); bool switched = settingsForm.AutoGPUMode(); diff --git a/app/Resources/icons8-add-64.png b/app/Resources/icons8-add-64.png new file mode 100644 index 0000000000000000000000000000000000000000..b760134486c9c61436cae0806b5b7dfc555d2eda GIT binary patch literal 607 zcmV-l0-*hgP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGf6951U69E94oEQKA0rW{kK~z{r?U&0g z1VI#rhlNYn5Qz|MMdI=VVoR{%Y48>Zo%;~ZLLhmVKZd=?lcymD(?Lw$9xs;d%z0T5iIXZAk4(O6A?lP2J$1dKOAo2YmRc4ol9=A5 z7;H0Q0~zB&gG6seuqo*=TWLQR3PRf(Nvz=Q82ETNk=6;z;20P^yEz{uZ88czqpTAQ zAvr-Z`JfJSZl7eti2fuq7zu`s`6C#aye{V?YrB1vay&2j&9a>~w2gl9EJz+Qn7|=Y tHz?uqmd!kPhkbuccICPJ=PyvHd;pA4mHPC8XI}sS002ovPDHLkV1l8A0)+qo literal 0 HcmV?d00001 diff --git a/app/Resources/icons8-remove-64.png b/app/Resources/icons8-remove-64.png new file mode 100644 index 0000000000000000000000000000000000000000..1fe1a6a3092582f8371b0c5a4d4fdea61cca5b2c GIT binary patch literal 597 zcmV-b0;>IqP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGf6951U69E94oEQKA0qRLaK~z{r?U&0g z1VI#rhlNYn5Qz|MMdI=VVoR_ZPlLBW@B|`Z&Dw1*HY8ZG!H%%O|Ft?3Dr35;rx3|} z$(QObRi|sJPFJ;3gTJQ9m7z??vYeE|vPZ(5ypV@-SDwnGOvxkp7AOOuPu;Z3P5CMb z%r9M$vvN?jIJu^7RnmsG^r0^?3ehc3B*7l#qU?})&}KgKoC^nUXzM*35%j$utdQcWD`t z#JSeC@h-HO2uBMy);D(WQq zFoF%qh&f98sVE42uO+d9k7MBD;aJ)rEQ4cU_Uz$&khIAt_>8haFoom<$&?3eSabU% zBS!QmnZZmjb*vx3$mBISC)wNWqm=7;$=@v7=|kV>UtSH8hYTigh_nq#xN2KwEqI6X j{xR8+XR^V6pj3JXjM0(;P8{Dv00000NkvXXu0mjfCb$XA literal 0 HcmV?d00001 diff --git a/app/Settings.cs b/app/Settings.cs index 3666a00e..8a7b1db8 100644 --- a/app/Settings.cs +++ b/app/Settings.cs @@ -23,7 +23,7 @@ namespace GHelper public string versionUrl = "http://github.com/seerge/g-helper/releases"; - public string perfName = "Balanced"; + public string modeName = "Balanced"; public AniMatrix matrix; public Fans fans; @@ -176,7 +176,7 @@ namespace GHelper labelModel.Text = model + (ProcessHelper.IsUserAdministrator() ? "." : ""); - TopMost = AppConfig.isConfig("topmost"); + TopMost = AppConfig.Is("topmost"); SetContextMenu(); @@ -247,7 +247,7 @@ namespace GHelper public void SetContextMenu() { - var mode = AppConfig.getConfig("performance_mode"); + var mode = Modes.GetCurrent(); contextMenuStrip.Items.Clear(); Padding padding = new Padding(15, 5, 5, 5); @@ -354,12 +354,12 @@ namespace GHelper else { Program.acpi.DeviceSet(AsusACPI.GPUXG, 1, "GPU XGM"); - AsusUSB.ApplyXGMLight(AppConfig.isConfig("xmg_light")); + AsusUSB.ApplyXGMLight(AppConfig.Is("xmg_light")); await Task.Delay(TimeSpan.FromSeconds(15)); - if (AppConfig.isConfigPerf("auto_apply")) - AsusUSB.SetXGMFan(AppConfig.getFanConfig(AsusFan.XGM)); + if (AppConfig.IsMode("auto_apply")) + AsusUSB.SetXGMFan(AppConfig.GetFanConfig(AsusFan.XGM)); } BeginInvoke(delegate @@ -410,13 +410,13 @@ namespace GHelper if (gitVersion.CompareTo(appVersion) > 0) { SetVersionLabel(Properties.Strings.DownloadUpdate + ": " + tag, url); - if (AppConfig.getConfigString("skip_version") != tag) + if (AppConfig.GetString("skip_version") != tag) { DialogResult dialogResult = MessageBox.Show(Properties.Strings.DownloadUpdate + ": G-Helper " + tag + "?", "Update", MessageBoxButtons.YesNo); if (dialogResult == DialogResult.Yes) AutoUpdate(url); else - AppConfig.setConfig("skip_version", tag); + AppConfig.Set("skip_version", tag); } } @@ -557,14 +557,14 @@ namespace GHelper private void ButtonOptimized_Click(object? sender, EventArgs e) { - AppConfig.setConfig("gpu_auto", (AppConfig.getConfig("gpu_auto") == 1) ? 0 : 1); + AppConfig.Set("gpu_auto", (AppConfig.Get("gpu_auto") == 1) ? 0 : 1); VisualiseGPUMode(); AutoGPUMode(); } private void ButtonScreenAuto_Click(object? sender, EventArgs e) { - AppConfig.setConfig("screen_auto", 1); + AppConfig.Set("screen_auto", 1); InitScreen(); AutoScreen(); } @@ -589,7 +589,7 @@ namespace GHelper { if (sender is null) return; CheckBox check = (CheckBox)sender; - AppConfig.setConfig("matrix_auto", check.Checked ? 1 : 0); + AppConfig.Set("matrix_auto", check.Checked ? 1 : 0); matrix?.SetMatrix(); } @@ -616,8 +616,8 @@ namespace GHelper if (fileName is not null) { - AppConfig.setConfig("matrix_picture", fileName); - AppConfig.setConfig("matrix_running", 2); + AppConfig.Set("matrix_picture", fileName); + AppConfig.Set("matrix_running", 2); matrix?.SetMatrixPicture(fileName); BeginInvoke(delegate @@ -631,21 +631,21 @@ namespace GHelper private void ComboMatrixRunning_SelectedValueChanged(object? sender, EventArgs e) { - AppConfig.setConfig("matrix_running", comboMatrixRunning.SelectedIndex); + AppConfig.Set("matrix_running", comboMatrixRunning.SelectedIndex); matrix?.SetMatrix(); } private void ComboMatrix_SelectedValueChanged(object? sender, EventArgs e) { - AppConfig.setConfig("matrix_brightness", comboMatrix.SelectedIndex); + AppConfig.Set("matrix_brightness", comboMatrix.SelectedIndex); matrix?.SetMatrix(); } private void LabelCPUFan_Click(object? sender, EventArgs e) { - AppConfig.setConfig("fan_rpm", (AppConfig.getConfig("fan_rpm") == 1) ? 0 : 1); + AppConfig.Set("fan_rpm", (AppConfig.Get("fan_rpm") == 1) ? 0 : 1); RefreshSensors(true); } @@ -658,7 +658,7 @@ namespace GHelper if (colorDlg.ShowDialog() == DialogResult.OK) { - AppConfig.setConfig("aura_color2", colorDlg.Color.ToArgb()); + AppConfig.Set("aura_color2", colorDlg.Color.ToArgb()); SetAura(); } } @@ -714,17 +714,17 @@ namespace GHelper if (colorDlg.ShowDialog() == DialogResult.OK) { - AppConfig.setConfig("aura_color", colorDlg.Color.ToArgb()); + AppConfig.Set("aura_color", colorDlg.Color.ToArgb()); SetAura(); } } public void InitAura() { - AsusUSB.Mode = AppConfig.getConfig("aura_mode"); - AsusUSB.Speed = AppConfig.getConfig("aura_speed"); - AsusUSB.SetColor(AppConfig.getConfig("aura_color")); - AsusUSB.SetColor2(AppConfig.getConfig("aura_color2")); + AsusUSB.Mode = AppConfig.Get("aura_mode"); + AsusUSB.Speed = AppConfig.Get("aura_speed"); + AsusUSB.SetColor(AppConfig.Get("aura_color")); + AsusUSB.SetColor2(AppConfig.Get("aura_color2")); comboKeyboard.DropDownStyle = ComboBoxStyle.DropDownList; comboKeyboard.DataSource = new BindingSource(AsusUSB.GetModes(), null); @@ -760,13 +760,13 @@ namespace GHelper return; } - int brightness = AppConfig.getConfig("matrix_brightness"); - int running = AppConfig.getConfig("matrix_running"); + int brightness = AppConfig.Get("matrix_brightness"); + int running = AppConfig.Get("matrix_running"); comboMatrix.SelectedIndex = (brightness != -1) ? Math.Min(brightness, comboMatrix.Items.Count - 1) : 0; comboMatrixRunning.SelectedIndex = (running != -1) ? Math.Min(running, comboMatrixRunning.Items.Count - 1) : 0; - checkMatrix.Checked = (AppConfig.getConfig("matrix_auto") == 1); + checkMatrix.Checked = (AppConfig.Get("matrix_auto") == 1); checkMatrix.CheckedChanged += CheckMatrix_CheckedChanged; } @@ -774,10 +774,10 @@ namespace GHelper public void SetAura() { - AsusUSB.Mode = AppConfig.getConfig("aura_mode"); - AsusUSB.Speed = AppConfig.getConfig("aura_speed"); - AsusUSB.SetColor(AppConfig.getConfig("aura_color")); - AsusUSB.SetColor2(AppConfig.getConfig("aura_color2")); + AsusUSB.Mode = AppConfig.Get("aura_mode"); + AsusUSB.Speed = AppConfig.Get("aura_speed"); + AsusUSB.SetColor(AppConfig.Get("aura_color")); + AsusUSB.SetColor2(AppConfig.Get("aura_color2")); pictureColor.BackColor = AsusUSB.Color1; pictureColor2.BackColor = AsusUSB.Color2; @@ -797,27 +797,27 @@ namespace GHelper private void ComboKeyboard_SelectedValueChanged(object? sender, EventArgs e) { - AppConfig.setConfig("aura_mode", (int)comboKeyboard.SelectedValue); + AppConfig.Set("aura_mode", (int)comboKeyboard.SelectedValue); SetAura(); } private void Button120Hz_Click(object? sender, EventArgs e) { - AppConfig.setConfig("screen_auto", 0); + AppConfig.Set("screen_auto", 0); SetScreen(1000, 1); } private void Button60Hz_Click(object? sender, EventArgs e) { - AppConfig.setConfig("screen_auto", 0); + AppConfig.Set("screen_auto", 0); SetScreen(60, 0); } public void ToogleMiniled() { - int miniled = (AppConfig.getConfig("miniled") == 1) ? 0 : 1; - AppConfig.setConfig("miniled", miniled); + int miniled = (AppConfig.Get("miniled") == 1) ? 0 : 1; + AppConfig.Set("miniled", miniled); SetScreen(-1, -1, miniled); } @@ -847,7 +847,7 @@ namespace GHelper if (overdrive >= 0) { - if (AppConfig.getConfig("no_overdrive") == 1) overdrive = 0; + if (AppConfig.Get("no_overdrive") == 1) overdrive = 0; Program.acpi.DeviceSet(AsusACPI.ScreenOverdrive, overdrive, "ScreenOverdrive"); } @@ -867,8 +867,8 @@ namespace GHelper int frequency = NativeMethods.GetRefreshRate(); int maxFrequency = NativeMethods.GetRefreshRate(true); - bool screenAuto = (AppConfig.getConfig("screen_auto") == 1); - bool overdriveSetting = (AppConfig.getConfig("no_overdrive") != 1); + bool screenAuto = (AppConfig.Get("screen_auto") == 1); + bool overdriveSetting = (AppConfig.Get("no_overdrive") != 1); int overdrive = Program.acpi.DeviceGet(AsusACPI.ScreenOverdrive); int miniled = Program.acpi.DeviceGet(AsusACPI.ScreenMiniled); @@ -914,15 +914,15 @@ namespace GHelper if (miniled >= 0) { buttonMiniled.Activated = (miniled == 1); - AppConfig.setConfig("miniled", miniled); + AppConfig.Set("miniled", miniled); } else { buttonMiniled.Visible = false; } - AppConfig.setConfig("frequency", frequency); - AppConfig.setConfig("overdrive", overdrive); + AppConfig.Set("frequency", frequency); + AppConfig.Set("overdrive", overdrive); } private void ButtonQuit_Click(object? sender, EventArgs e) @@ -1034,15 +1034,15 @@ namespace GHelper private void SetPerformanceLabel() { - labelPerf.Text = Properties.Strings.PerformanceMode + (customFans ? "+" : "") + ((customPower > 0) ? " " + customPower + "W" : ""); + labelPerf.Text = Properties.Strings.PerformanceMode + ": " + Modes.GetCurrentName() + (customFans ? "+" : "") + ((customPower > 0) ? " " + customPower + "W" : ""); } public void SetPower() { - int limit_total = AppConfig.getConfigPerf("limit_total"); - int limit_cpu = AppConfig.getConfigPerf("limit_cpu"); - int limit_fast = AppConfig.getConfigPerf("limit_fast"); + int limit_total = AppConfig.GetMode("limit_total"); + int limit_cpu = AppConfig.GetMode("limit_cpu"); + int limit_fast = AppConfig.GetMode("limit_fast"); if (limit_total > AsusACPI.MaxTotal) return; if (limit_total < AsusACPI.MinTotal) return; @@ -1081,8 +1081,8 @@ namespace GHelper public void SetGPUClocks(bool launchAsAdmin = true) { - int gpu_core = AppConfig.getConfigPerf("gpu_core"); - int gpu_memory = AppConfig.getConfigPerf("gpu_memory"); + int gpu_core = AppConfig.GetMode("gpu_core"); + int gpu_memory = AppConfig.GetMode("gpu_memory"); if (gpu_core == -1 && gpu_memory == -1) return; @@ -1114,8 +1114,8 @@ namespace GHelper public void SetGPUPower() { - int gpu_boost = AppConfig.getConfigPerf("gpu_boost"); - int gpu_temp = AppConfig.getConfigPerf("gpu_temp"); + int gpu_boost = AppConfig.GetMode("gpu_boost"); + int gpu_temp = AppConfig.GetMode("gpu_temp"); if (gpu_boost < AsusACPI.MinGPUBoost || gpu_boost > AsusACPI.MaxGPUBoost) return; @@ -1144,28 +1144,28 @@ namespace GHelper { customFans = false; - if (AppConfig.isConfigPerf("auto_apply") || force) + if (AppConfig.IsMode("auto_apply") || force) { bool xgmFan = false; - if (AppConfig.isConfig("xgm_fan") && Program.acpi.IsXGConnected()) + if (AppConfig.Is("xgm_fan") && Program.acpi.IsXGConnected()) { - AsusUSB.SetXGMFan(AppConfig.getFanConfig(AsusFan.XGM)); + AsusUSB.SetXGMFan(AppConfig.GetFanConfig(AsusFan.XGM)); xgmFan = true; } - int cpuResult = Program.acpi.SetFanCurve(AsusFan.CPU, AppConfig.getFanConfig(AsusFan.CPU)); - int gpuResult = Program.acpi.SetFanCurve(AsusFan.GPU, AppConfig.getFanConfig(AsusFan.GPU)); + int cpuResult = Program.acpi.SetFanCurve(AsusFan.CPU, AppConfig.GetFanConfig(AsusFan.CPU)); + int gpuResult = Program.acpi.SetFanCurve(AsusFan.GPU, AppConfig.GetFanConfig(AsusFan.GPU)); - if (AppConfig.isConfig("mid_fan")) - Program.acpi.SetFanCurve(AsusFan.Mid, AppConfig.getFanConfig(AsusFan.Mid)); + if (AppConfig.Is("mid_fan")) + Program.acpi.SetFanCurve(AsusFan.Mid, AppConfig.GetFanConfig(AsusFan.Mid)); // something went wrong, resetting to default profile if (cpuResult != 1 || gpuResult != 1) { - int mode = AppConfig.getConfig("performance_mode"); + int mode = Modes.GetCurrentBase(); Logger.WriteLine("ASUS BIOS rejected fan curve, resetting mode to " + mode); Program.acpi.DeviceSet(AsusACPI.PerformanceMode, mode, "Reset Mode"); LabelFansResult("ASUS BIOS rejected fan curve"); @@ -1177,7 +1177,7 @@ namespace GHelper } // force set PPTs for missbehaving bios on FX507/517 series - if ((AppConfig.ContainsModel("FX507") || AppConfig.ContainsModel("FX517") || xgmFan) && !AppConfig.isConfigPerf("auto_apply_power")) + if ((AppConfig.ContainsModel("FX507") || AppConfig.ContainsModel("FX517") || xgmFan) && !AppConfig.IsMode("auto_apply_power")) { Task.Run(async () => { @@ -1195,11 +1195,11 @@ namespace GHelper private static bool isManualModeRequired() { - if (!AppConfig.isConfigPerf("auto_apply_power")) + if (!AppConfig.IsMode("auto_apply_power")) return false; return - AppConfig.isConfig("manual_mode") || + AppConfig.Is("manual_mode") || AppConfig.ContainsModel("GU604") || AppConfig.ContainsModel("FX517") || AppConfig.ContainsModel("G733"); @@ -1210,8 +1210,8 @@ namespace GHelper customPower = 0; - bool applyPower = AppConfig.isConfigPerf("auto_apply_power"); - bool applyFans = AppConfig.isConfigPerf("auto_apply"); + bool applyPower = AppConfig.IsMode("auto_apply_power"); + bool applyFans = AppConfig.IsMode("auto_apply"); //bool applyGPU = true; if (applyPower) @@ -1251,11 +1251,11 @@ namespace GHelper } - public void SetPerformanceMode(int PerformanceMode = -1, bool notify = false) + public void SetPerformanceMode(int mode = -1, bool notify = false) { - int oldMode = AppConfig.getConfig("performance_mode"); - if (PerformanceMode < 0) PerformanceMode = oldMode; + int oldMode = Modes.GetCurrent(); + if (mode < 0) mode = oldMode; buttonSilent.Activated = false; buttonBalanced.Activated = false; @@ -1265,43 +1265,47 @@ namespace GHelper menuBalanced.Checked = false; menuTurbo.Checked = false; - switch (PerformanceMode) + switch (mode) { case AsusACPI.PerformanceSilent: buttonSilent.Activated = true; menuSilent.Checked = true; - perfName = Properties.Strings.Silent; break; case AsusACPI.PerformanceTurbo: buttonTurbo.Activated = true; menuTurbo.Checked = true; - perfName = Properties.Strings.Turbo; break; - default: + case AsusACPI.PerformanceBalanced: buttonBalanced.Activated = true; menuBalanced.Checked = true; - perfName = Properties.Strings.Balanced; - PerformanceMode = AsusACPI.PerformanceBalanced; + break; + default: + if (!Modes.Exists(mode)) + { + buttonBalanced.Activated = true; + menuBalanced.Checked = true; + mode = AsusACPI.PerformanceBalanced; + } break; } - var powerStatus = SystemInformation.PowerStatus.PowerLineStatus; - AppConfig.setConfig("performance_" + (int)powerStatus, PerformanceMode); - AppConfig.setConfig("performance_mode", PerformanceMode); + Modes.SetCurrent(mode); + + SetPerformanceLabel(); if (isManualModeRequired()) Program.acpi.DeviceSet(AsusACPI.PerformanceMode, AsusACPI.PerformanceManual, "Manual Mode"); else - Program.acpi.DeviceSet(AsusACPI.PerformanceMode, PerformanceMode, "Mode"); + Program.acpi.DeviceSet(AsusACPI.PerformanceMode, Modes.GetBase(mode), "Mode"); - if (AppConfig.isConfig("xgm_fan") && Program.acpi.IsXGConnected()) AsusUSB.ResetXGM(); + if (AppConfig.Is("xgm_fan") && Program.acpi.IsXGConnected()) AsusUSB.ResetXGM(); if (notify) { try { - toast.RunToast(perfName, powerStatus == PowerLineStatus.Online ? ToastIcon.Charger : ToastIcon.Battery); + toast.RunToast(Modes.GetCurrentName(), SystemInformation.PowerStatus.PowerLineStatus == PowerLineStatus.Online ? ToastIcon.Charger : ToastIcon.Battery); } catch { @@ -1314,17 +1318,17 @@ namespace GHelper AutoFans(); AutoPower(1000); - if (AppConfig.getConfig("auto_apply_power_plan") != 0) + if (AppConfig.Get("auto_apply_power_plan") != 0) { - if (AppConfig.getConfigPerfString("scheme") is not null) - NativeMethods.SetPowerScheme(AppConfig.getConfigPerfString("scheme")); + if (AppConfig.GetModeString("scheme") is not null) + NativeMethods.SetPowerScheme(AppConfig.GetModeString("scheme")); else - NativeMethods.SetPowerScheme(PerformanceMode); + NativeMethods.SetPowerScheme(Modes.GetBase(mode)); } - if (AppConfig.getConfigPerf("auto_boost") != -1) + if (AppConfig.GetMode("auto_boost") != -1) { - NativeMethods.SetCPUBoost(AppConfig.getConfigPerf("auto_boost")); + NativeMethods.SetCPUBoost(AppConfig.GetMode("auto_boost")); } if (NativeMethods.PowerGetEffectiveOverlayScheme(out Guid activeScheme) == 0) @@ -1334,6 +1338,7 @@ namespace GHelper if (fans != null && fans.Text != "") { + fans.InitMode(); fans.InitFans(); fans.InitPower(); fans.InitBoost(); @@ -1344,14 +1349,7 @@ namespace GHelper public void CyclePerformanceMode() { - int mode = AppConfig.getConfig("performance_mode"); - - if (Control.ModifierKeys == Keys.Shift) - mode = (mode == 0) ? 2 : mode - 1; - else - mode++; - - SetPerformanceMode(mode, true); + SetPerformanceMode(Modes.GetNext(Control.ModifierKeys == Keys.Shift), true); } @@ -1360,7 +1358,7 @@ namespace GHelper InputDispatcher.SetBacklightAuto(true); if (Program.acpi.IsXGConnected()) - AsusUSB.ApplyXGMLight(AppConfig.isConfig("xmg_light")); + AsusUSB.ApplyXGMLight(AppConfig.Is("xmg_light")); if (AppConfig.ContainsModel("X16") || AppConfig.ContainsModel("X13")) InputDispatcher.TabletMode(); @@ -1370,17 +1368,17 @@ namespace GHelper { var Plugged = SystemInformation.PowerStatus.PowerLineStatus; - int mode = AppConfig.getConfig("performance_" + (int)Plugged); + int mode = AppConfig.Get("performance_" + (int)Plugged); if (mode != -1) SetPerformanceMode(mode, powerChanged); else - SetPerformanceMode(AppConfig.getConfig("performance_mode")); + SetPerformanceMode(Modes.GetCurrent()); } public void AutoScreen(bool force = false) { - if (force || AppConfig.getConfig("screen_auto") == 1) + if (force || AppConfig.Is("screen_auto")) { if (SystemInformation.PowerStatus.PowerLineStatus == PowerLineStatus.Online) SetScreen(1000, 1); @@ -1389,7 +1387,7 @@ namespace GHelper } else { - SetScreen(overdrive: AppConfig.getConfig("overdrive")); + SetScreen(overdrive: AppConfig.Get("overdrive")); } @@ -1398,7 +1396,7 @@ namespace GHelper public static bool IsPlugged() { - bool optimizedUSBC = AppConfig.getConfig("optimized_usbc") != 1; + bool optimizedUSBC = AppConfig.Get("optimized_usbc") != 1; return SystemInformation.PowerStatus.PowerLineStatus == PowerLineStatus.Online && (optimizedUSBC || Program.acpi.DeviceGet(AsusACPI.ChargerMode) < AsusACPI.ChargerUSB); @@ -1408,10 +1406,10 @@ namespace GHelper public bool AutoGPUMode() { - bool GpuAuto = AppConfig.getConfig("gpu_auto") == 1; + bool GpuAuto = AppConfig.Is("gpu_auto"); bool ForceGPU = AppConfig.ContainsModel("503"); - int GpuMode = AppConfig.getConfig("gpu_mode"); + int GpuMode = AppConfig.Get("gpu_mode"); if (!GpuAuto && !ForceGPU) return false; @@ -1453,7 +1451,7 @@ namespace GHelper public bool ReEnableGPU() { - if (AppConfig.getConfig("gpu_reenable") != 1) return false; + if (AppConfig.Get("gpu_reenable") != 1) return false; if (Screen.AllScreens.Length <= 1) return false; Logger.WriteLine("Re-enabling gpu for 503 model"); @@ -1538,7 +1536,7 @@ namespace GHelper } - AppConfig.setConfig("gpu_mode", GpuMode); + AppConfig.Set("gpu_mode", GpuMode); ButtonEnabled(buttonOptimized, true); ButtonEnabled(buttonEco, true); @@ -1640,8 +1638,8 @@ namespace GHelper public void SetGPUMode(int GPUMode) { - int CurrentGPU = AppConfig.getConfig("gpu_mode"); - AppConfig.setConfig("gpu_auto", 0); + int CurrentGPU = AppConfig.Get("gpu_mode"); + AppConfig.Set("gpu_auto", 0); if (CurrentGPU == GPUMode) { @@ -1688,7 +1686,7 @@ namespace GHelper if (changed) { - AppConfig.setConfig("gpu_mode", GPUMode); + AppConfig.Set("gpu_mode", GPUMode); } if (restart) @@ -1704,9 +1702,9 @@ namespace GHelper { if (GPUMode == -1) - GPUMode = AppConfig.getConfig("gpu_mode"); + GPUMode = AppConfig.Get("gpu_mode"); - bool GPUAuto = (AppConfig.getConfig("gpu_auto") == 1); + bool GPUAuto = AppConfig.Is("gpu_auto"); buttonEco.Activated = false; buttonStandard.Activated = false; @@ -1802,7 +1800,7 @@ namespace GHelper Debug.WriteLine(ex); } - AppConfig.setConfig("charge_limit", limit); + AppConfig.Set("charge_limit", limit); }