Dynamic lighting detection

This commit is contained in:
Serge
2024-06-01 16:14:24 +02:00
parent ad622f3924
commit 5157357c8b
4 changed files with 107 additions and 47 deletions

View File

@@ -636,5 +636,9 @@ public static class AppConfig
return ContainsModel("GU605") || (IsTUF() && !(ContainsModel("FX507Z") || ContainsModel("FA617"))); return ContainsModel("GU605") || (IsTUF() && !(ContainsModel("FX507Z") || ContainsModel("FA617")));
} }
public static bool IsDynamicLighting()
{
return true || IsSlash() || ContainsModel("JIR") || ContainsModel("JZR") || ContainsModel("FA607") || ContainsModel("FX607");
}
} }

View File

@@ -0,0 +1,24 @@
using Microsoft.Win32;
namespace GHelper.Helpers
{
public static class DynamicLightingHelper
{
public static bool IsEnabled()
{
using var key = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Lighting");
var registryValueObject = key?.GetValue("AmbientLightingEnabled");
if (registryValueObject == null) return true;
return (int)registryValueObject > 0;
}
public static void OpenSettings()
{
ProcessHelper.RunCMD("explorer","ms-settings:personalization-lighting");
}
}
}

View File

@@ -68,6 +68,7 @@ namespace GHelper
panelGPU = new Panel(); panelGPU = new Panel();
labelTipGPU = new Label(); labelTipGPU = new Label();
tableAMD = new TableLayoutPanel(); tableAMD = new TableLayoutPanel();
buttonAutoTDP = new RButton();
buttonOverlay = new RButton(); buttonOverlay = new RButton();
buttonFPS = new RButton(); buttonFPS = new RButton();
tableGPU = new TableLayoutPanel(); tableGPU = new TableLayoutPanel();
@@ -94,6 +95,7 @@ namespace GHelper
pictureScreen = new PictureBox(); pictureScreen = new PictureBox();
labelSreen = new Label(); labelSreen = new Label();
panelKeyboard = new Panel(); panelKeyboard = new Panel();
labelDynamicLighting = new Label();
tableLayoutKeyboard = new TableLayoutPanel(); tableLayoutKeyboard = new TableLayoutPanel();
buttonKeyboard = new RButton(); buttonKeyboard = new RButton();
panelColor = new Panel(); panelColor = new Panel();
@@ -135,7 +137,6 @@ namespace GHelper
labelGamma = new Label(); labelGamma = new Label();
pictureGamma = new PictureBox(); pictureGamma = new PictureBox();
labelGammaTitle = new Label(); labelGammaTitle = new Label();
buttonAutoTDP = new RButton();
panelMatrix.SuspendLayout(); panelMatrix.SuspendLayout();
panelMatrixAuto.SuspendLayout(); panelMatrixAuto.SuspendLayout();
tableLayoutMatrix.SuspendLayout(); tableLayoutMatrix.SuspendLayout();
@@ -370,7 +371,7 @@ namespace GHelper
panelBattery.Controls.Add(sliderBattery); panelBattery.Controls.Add(sliderBattery);
panelBattery.Controls.Add(panelBatteryTitle); panelBattery.Controls.Add(panelBatteryTitle);
panelBattery.Dock = DockStyle.Top; panelBattery.Dock = DockStyle.Top;
panelBattery.Location = new Point(11, 1725); panelBattery.Location = new Point(11, 1765);
panelBattery.Margin = new Padding(0); panelBattery.Margin = new Padding(0);
panelBattery.Name = "panelBattery"; panelBattery.Name = "panelBattery";
panelBattery.Padding = new Padding(20, 20, 20, 11); panelBattery.Padding = new Padding(20, 20, 20, 11);
@@ -462,7 +463,7 @@ namespace GHelper
panelFooter.AutoSizeMode = AutoSizeMode.GrowAndShrink; panelFooter.AutoSizeMode = AutoSizeMode.GrowAndShrink;
panelFooter.Controls.Add(tableButtons); panelFooter.Controls.Add(tableButtons);
panelFooter.Dock = DockStyle.Top; panelFooter.Dock = DockStyle.Top;
panelFooter.Location = new Point(11, 1901); panelFooter.Location = new Point(11, 1941);
panelFooter.Margin = new Padding(0); panelFooter.Margin = new Padding(0);
panelFooter.Name = "panelFooter"; panelFooter.Name = "panelFooter";
panelFooter.Padding = new Padding(20); panelFooter.Padding = new Padding(20);
@@ -780,6 +781,28 @@ namespace GHelper
tableAMD.TabIndex = 24; tableAMD.TabIndex = 24;
tableAMD.Visible = false; tableAMD.Visible = false;
// //
// buttonAutoTDP
//
buttonAutoTDP.Activated = false;
buttonAutoTDP.BackColor = SystemColors.ControlLightLight;
buttonAutoTDP.BorderColor = Color.Transparent;
buttonAutoTDP.BorderRadius = 5;
buttonAutoTDP.Dock = DockStyle.Fill;
buttonAutoTDP.FlatAppearance.BorderSize = 0;
buttonAutoTDP.FlatStyle = FlatStyle.Flat;
buttonAutoTDP.ForeColor = SystemColors.ControlText;
buttonAutoTDP.Image = Properties.Resources.icons8_gauge_32;
buttonAutoTDP.ImageAlign = ContentAlignment.MiddleRight;
buttonAutoTDP.Location = new Point(528, 4);
buttonAutoTDP.Margin = new Padding(4);
buttonAutoTDP.Name = "buttonAutoTDP";
buttonAutoTDP.Secondary = false;
buttonAutoTDP.Size = new Size(255, 72);
buttonAutoTDP.TabIndex = 13;
buttonAutoTDP.Text = "AutoTDP";
buttonAutoTDP.TextImageRelation = TextImageRelation.ImageBeforeText;
buttonAutoTDP.UseVisualStyleBackColor = false;
//
// buttonOverlay // buttonOverlay
// //
buttonOverlay.Activated = false; buttonOverlay.Activated = false;
@@ -1077,6 +1100,7 @@ namespace GHelper
tableScreen.Name = "tableScreen"; tableScreen.Name = "tableScreen";
tableScreen.RowCount = 1; tableScreen.RowCount = 1;
tableScreen.RowStyles.Add(new RowStyle(SizeType.Absolute, 80F)); tableScreen.RowStyles.Add(new RowStyle(SizeType.Absolute, 80F));
tableScreen.RowStyles.Add(new RowStyle(SizeType.Absolute, 20F));
tableScreen.Size = new Size(787, 100); tableScreen.Size = new Size(787, 100);
tableScreen.TabIndex = 23; tableScreen.TabIndex = 23;
// //
@@ -1229,6 +1253,7 @@ namespace GHelper
panelKeyboard.AccessibleRole = AccessibleRole.Grouping; panelKeyboard.AccessibleRole = AccessibleRole.Grouping;
panelKeyboard.AutoSize = true; panelKeyboard.AutoSize = true;
panelKeyboard.AutoSizeMode = AutoSizeMode.GrowAndShrink; panelKeyboard.AutoSizeMode = AutoSizeMode.GrowAndShrink;
panelKeyboard.Controls.Add(labelDynamicLighting);
panelKeyboard.Controls.Add(tableLayoutKeyboard); panelKeyboard.Controls.Add(tableLayoutKeyboard);
panelKeyboard.Controls.Add(panelKeyboardTitle); panelKeyboard.Controls.Add(panelKeyboardTitle);
panelKeyboard.Dock = DockStyle.Top; panelKeyboard.Dock = DockStyle.Top;
@@ -1236,10 +1261,25 @@ namespace GHelper
panelKeyboard.Margin = new Padding(0); panelKeyboard.Margin = new Padding(0);
panelKeyboard.Name = "panelKeyboard"; panelKeyboard.Name = "panelKeyboard";
panelKeyboard.Padding = new Padding(20); panelKeyboard.Padding = new Padding(20);
panelKeyboard.Size = new Size(827, 132); panelKeyboard.Size = new Size(827, 172);
panelKeyboard.TabIndex = 4; panelKeyboard.TabIndex = 4;
panelKeyboard.TabStop = true; panelKeyboard.TabStop = true;
// //
// labelDynamicLighting
//
labelDynamicLighting.Cursor = Cursors.Hand;
labelDynamicLighting.Dock = DockStyle.Top;
labelDynamicLighting.Font = new Font("Segoe UI", 9F, FontStyle.Underline, GraphicsUnit.Point);
labelDynamicLighting.ForeColor = SystemColors.GrayText;
labelDynamicLighting.Location = new Point(20, 112);
labelDynamicLighting.Margin = new Padding(4, 0, 4, 0);
labelDynamicLighting.Name = "labelDynamicLighting";
labelDynamicLighting.Padding = new Padding(4);
labelDynamicLighting.Size = new Size(787, 40);
labelDynamicLighting.TabIndex = 43;
labelDynamicLighting.Text = "Please disable Windows > Dynamic Lighting";
labelDynamicLighting.Visible = false;
//
// tableLayoutKeyboard // tableLayoutKeyboard
// //
tableLayoutKeyboard.AutoSize = true; tableLayoutKeyboard.AutoSize = true;
@@ -1416,7 +1456,7 @@ namespace GHelper
panelVersion.Controls.Add(labelCharge); panelVersion.Controls.Add(labelCharge);
panelVersion.Controls.Add(checkStartup); panelVersion.Controls.Add(checkStartup);
panelVersion.Dock = DockStyle.Top; panelVersion.Dock = DockStyle.Top;
panelVersion.Location = new Point(11, 1845); panelVersion.Location = new Point(11, 1885);
panelVersion.Margin = new Padding(4); panelVersion.Margin = new Padding(4);
panelVersion.Name = "panelVersion"; panelVersion.Name = "panelVersion";
panelVersion.Size = new Size(827, 56); panelVersion.Size = new Size(827, 56);
@@ -1442,7 +1482,7 @@ namespace GHelper
panelPeripherals.Controls.Add(tableLayoutPeripherals); panelPeripherals.Controls.Add(tableLayoutPeripherals);
panelPeripherals.Controls.Add(panelPeripheralsTile); panelPeripherals.Controls.Add(panelPeripheralsTile);
panelPeripherals.Dock = DockStyle.Top; panelPeripherals.Dock = DockStyle.Top;
panelPeripherals.Location = new Point(11, 1526); panelPeripherals.Location = new Point(11, 1566);
panelPeripherals.Margin = new Padding(0); panelPeripherals.Margin = new Padding(0);
panelPeripherals.Name = "panelPeripherals"; panelPeripherals.Name = "panelPeripherals";
panelPeripherals.Padding = new Padding(20, 20, 20, 11); panelPeripherals.Padding = new Padding(20, 20, 20, 11);
@@ -1895,28 +1935,6 @@ namespace GHelper
labelGammaTitle.TabIndex = 37; labelGammaTitle.TabIndex = 37;
labelGammaTitle.Text = "Flicker-free Dimming"; labelGammaTitle.Text = "Flicker-free Dimming";
// //
// buttonAutoTDP
//
buttonAutoTDP.Activated = false;
buttonAutoTDP.BackColor = SystemColors.ControlLightLight;
buttonAutoTDP.BorderColor = Color.Transparent;
buttonAutoTDP.BorderRadius = 5;
buttonAutoTDP.Dock = DockStyle.Fill;
buttonAutoTDP.FlatAppearance.BorderSize = 0;
buttonAutoTDP.FlatStyle = FlatStyle.Flat;
buttonAutoTDP.ForeColor = SystemColors.ControlText;
buttonAutoTDP.Image = Properties.Resources.icons8_gauge_32;
buttonAutoTDP.ImageAlign = ContentAlignment.MiddleRight;
buttonAutoTDP.Location = new Point(528, 4);
buttonAutoTDP.Margin = new Padding(4);
buttonAutoTDP.Name = "buttonAutoTDP";
buttonAutoTDP.Secondary = false;
buttonAutoTDP.Size = new Size(255, 72);
buttonAutoTDP.TabIndex = 13;
buttonAutoTDP.Text = "AutoTDP";
buttonAutoTDP.TextImageRelation = TextImageRelation.ImageBeforeText;
buttonAutoTDP.UseVisualStyleBackColor = false;
//
// SettingsForm // SettingsForm
// //
AutoScaleDimensions = new SizeF(192F, 192F); AutoScaleDimensions = new SizeF(192F, 192F);
@@ -2120,5 +2138,6 @@ namespace GHelper
private Label labelVisual; private Label labelVisual;
private RButton buttonFHD; private RButton buttonFHD;
private RButton buttonAutoTDP; private RButton buttonAutoTDP;
private Label labelDynamicLighting;
} }
} }

View File

@@ -12,7 +12,6 @@ using GHelper.Peripherals;
using GHelper.Peripherals.Mouse; using GHelper.Peripherals.Mouse;
using GHelper.UI; using GHelper.UI;
using GHelper.USB; using GHelper.USB;
using System.Collections.Generic;
using System.Diagnostics; using System.Diagnostics;
using System.Timers; using System.Timers;
@@ -25,7 +24,7 @@ namespace GHelper
public GPUModeControl gpuControl; public GPUModeControl gpuControl;
public AllyControl allyControl; public AllyControl allyControl;
ScreenControl screenControl = new ScreenControl(); ScreenControl screenControl = new ScreenControl();
AutoUpdateControl updateControl; AutoUpdateControl updateControl;
AsusMouseSettings? mouseSettings; AsusMouseSettings? mouseSettings;
@@ -253,7 +252,7 @@ namespace GHelper
buttonFPS.Click += ButtonFPS_Click; buttonFPS.Click += ButtonFPS_Click;
buttonOverlay.Click += ButtonOverlay_Click; buttonOverlay.Click += ButtonOverlay_Click;
buttonAutoTDP.Click += ButtonAutoTDP_Click; buttonAutoTDP.Click += ButtonAutoTDP_Click;
buttonAutoTDP.BorderColor = colorTurbo; buttonAutoTDP.BorderColor = colorTurbo;
@@ -270,10 +269,16 @@ namespace GHelper
labelVisual.Click += LabelVisual_Click; labelVisual.Click += LabelVisual_Click;
labelCharge.Click += LabelCharge_Click; labelCharge.Click += LabelCharge_Click;
labelDynamicLighting.Click += LabelDynamicLighting_Click;
panelPerformance.Focus(); panelPerformance.Focus();
InitVisual(); InitVisual();
} }
private void LabelDynamicLighting_Click(object? sender, EventArgs e)
{
DynamicLightingHelper.OpenSettings();
}
private void ButtonFHD_Click(object? sender, EventArgs e) private void ButtonFHD_Click(object? sender, EventArgs e)
{ {
@@ -327,7 +332,8 @@ namespace GHelper
sliderGamma.ValueChanged += SliderGamma_ValueChanged; sliderGamma.ValueChanged += SliderGamma_ValueChanged;
sliderGamma.MouseUp += SliderGamma_ValueChanged; sliderGamma.MouseUp += SliderGamma_ValueChanged;
} else }
else
{ {
labelGammaTitle.Text = Properties.Strings.VisualMode; labelGammaTitle.Text = Properties.Strings.VisualMode;
} }
@@ -339,7 +345,8 @@ namespace GHelper
{ {
tableVisual.ColumnCount = 3; tableVisual.ColumnCount = 3;
buttonInstallColor.Visible = false; buttonInstallColor.Visible = false;
} else }
else
{ {
// If it's possible to retrieve color profiles // If it's possible to retrieve color profiles
if (ColorProfileHelper.ProfileExists()) if (ColorProfileHelper.ProfileExists())
@@ -399,7 +406,7 @@ namespace GHelper
public void CycleVisualMode() public void CycleVisualMode()
{ {
if (comboVisual.Items.Count < 1) return ; if (comboVisual.Items.Count < 1) return;
if (comboVisual.SelectedIndex < comboVisual.Items.Count - 1) if (comboVisual.SelectedIndex < comboVisual.Items.Count - 1)
comboVisual.SelectedIndex += 1; comboVisual.SelectedIndex += 1;
@@ -802,7 +809,7 @@ namespace GHelper
private void ButtonFHD_MouseHover(object? sender, EventArgs e) private void ButtonFHD_MouseHover(object? sender, EventArgs e)
{ {
labelTipScreen.Text = "Switch to "+ ((buttonFHD.Text == "FHD") ? "UHD" : "FHD") + " Mode"; labelTipScreen.Text = "Switch to " + ((buttonFHD.Text == "FHD") ? "UHD" : "FHD") + " Mode";
} }
private void Button120Hz_MouseHover(object? sender, EventArgs e) private void Button120Hz_MouseHover(object? sender, EventArgs e)
@@ -1079,21 +1086,26 @@ namespace GHelper
}); });
} }
private void _VisualiseAura()
{
pictureColor.BackColor = Aura.Color1;
pictureColor2.BackColor = Aura.Color2;
pictureColor2.Visible = Aura.HasSecondColor();
if (AppConfig.IsDynamicLighting())
{
labelDynamicLighting.Visible = DynamicLightingHelper.IsEnabled();
labelDynamicLighting.ForeColor = colorStandard;
this.OnResize(null);
}
}
public void VisualiseAura() public void VisualiseAura()
{ {
if (InvokeRequired) if (InvokeRequired)
Invoke(delegate Invoke(_VisualiseAura);
{
pictureColor.BackColor = Aura.Color1;
pictureColor2.BackColor = Aura.Color2;
pictureColor2.Visible = Aura.HasSecondColor();
});
else else
{ _VisualiseAura();
pictureColor.BackColor = Aura.Color1;
pictureColor2.BackColor = Aura.Color2;
pictureColor2.Visible = Aura.HasSecondColor();
}
} }
public void InitMatrix() public void InitMatrix()
@@ -1274,7 +1286,8 @@ namespace GHelper
labelVisual.Width = tableVisual.Width; labelVisual.Width = tableVisual.Width;
labelVisual.Height = tableVisual.Height; labelVisual.Height = tableVisual.Height;
labelVisual.Visible = true; labelVisual.Visible = true;
} else }
else
{ {
labelVisual.Visible = false; labelVisual.Visible = false;
} }