Backlight timeouts

This commit is contained in:
Serge
2023-05-28 12:02:29 +02:00
parent 36c42ed05f
commit 1472004d4b
7 changed files with 90 additions and 14 deletions

View File

@@ -319,7 +319,7 @@ namespace GHelper
Logger.WriteLine("XGM " + device.Attributes.ProductHexId + "|" + device.Capabilities.FeatureReportByteLength + ":" + BitConverter.ToString(msg)); Logger.WriteLine("XGM " + device.Attributes.ProductHexId + "|" + device.Capabilities.FeatureReportByteLength + ":" + BitConverter.ToString(msg));
device.WriteFeatureData(payload); device.WriteFeatureData(payload);
device.CloseDevice(); device.CloseDevice();
return 1; //return 1;
} }
return 0; return 0;

30
app/Extra.Designer.cs generated
View File

@@ -86,6 +86,8 @@ namespace GHelper
checkUSBC = new CheckBox(); checkUSBC = new CheckBox();
checkNoOverdrive = new CheckBox(); checkNoOverdrive = new CheckBox();
checkTopmost = new CheckBox(); checkTopmost = new CheckBox();
numericBacklightPluggedTime = new NumericUpDown();
labelBacklightTimeoutPlugged = new Label();
groupBindings.SuspendLayout(); groupBindings.SuspendLayout();
tableKeys.SuspendLayout(); tableKeys.SuspendLayout();
((System.ComponentModel.ISupportInitialize)pictureHelp).BeginInit(); ((System.ComponentModel.ISupportInitialize)pictureHelp).BeginInit();
@@ -96,6 +98,7 @@ namespace GHelper
panelXMG.SuspendLayout(); panelXMG.SuspendLayout();
tableBacklight.SuspendLayout(); tableBacklight.SuspendLayout();
groupOther.SuspendLayout(); groupOther.SuspendLayout();
((System.ComponentModel.ISupportInitialize)numericBacklightPluggedTime).BeginInit();
SuspendLayout(); SuspendLayout();
// //
// groupBindings // groupBindings
@@ -302,13 +305,15 @@ namespace GHelper
groupLight.Dock = DockStyle.Top; groupLight.Dock = DockStyle.Top;
groupLight.Location = new Point(10, 334); groupLight.Location = new Point(10, 334);
groupLight.Name = "groupLight"; groupLight.Name = "groupLight";
groupLight.Size = new Size(954, 516); groupLight.Size = new Size(954, 563);
groupLight.TabIndex = 1; groupLight.TabIndex = 1;
groupLight.TabStop = false; groupLight.TabStop = false;
groupLight.Text = "Keyboard Backlight"; groupLight.Text = "Keyboard Backlight";
// //
// panelBacklightExtra // panelBacklightExtra
// //
panelBacklightExtra.Controls.Add(numericBacklightPluggedTime);
panelBacklightExtra.Controls.Add(labelBacklightTimeoutPlugged);
panelBacklightExtra.Controls.Add(numericBacklightTime); panelBacklightExtra.Controls.Add(numericBacklightTime);
panelBacklightExtra.Controls.Add(labelBacklightTimeout); panelBacklightExtra.Controls.Add(labelBacklightTimeout);
panelBacklightExtra.Controls.Add(labelBrightness); panelBacklightExtra.Controls.Add(labelBrightness);
@@ -318,7 +323,7 @@ namespace GHelper
panelBacklightExtra.Dock = DockStyle.Top; panelBacklightExtra.Dock = DockStyle.Top;
panelBacklightExtra.Location = new Point(3, 319); panelBacklightExtra.Location = new Point(3, 319);
panelBacklightExtra.Name = "panelBacklightExtra"; panelBacklightExtra.Name = "panelBacklightExtra";
panelBacklightExtra.Size = new Size(948, 194); panelBacklightExtra.Size = new Size(948, 241);
panelBacklightExtra.TabIndex = 43; panelBacklightExtra.TabIndex = 43;
// //
// numericBacklightTime // numericBacklightTime
@@ -668,7 +673,7 @@ namespace GHelper
groupOther.Controls.Add(checkNoOverdrive); groupOther.Controls.Add(checkNoOverdrive);
groupOther.Controls.Add(checkTopmost); groupOther.Controls.Add(checkTopmost);
groupOther.Dock = DockStyle.Top; groupOther.Dock = DockStyle.Top;
groupOther.Location = new Point(10, 850); groupOther.Location = new Point(10, 897);
groupOther.Name = "groupOther"; groupOther.Name = "groupOther";
groupOther.Size = new Size(954, 276); groupOther.Size = new Size(954, 276);
groupOther.TabIndex = 2; groupOther.TabIndex = 2;
@@ -726,6 +731,22 @@ namespace GHelper
checkTopmost.Text = Strings.WindowTop; checkTopmost.Text = Strings.WindowTop;
checkTopmost.UseVisualStyleBackColor = true; checkTopmost.UseVisualStyleBackColor = true;
// //
// numericBacklightPluggedTime
//
numericBacklightPluggedTime.Location = new Point(655, 181);
numericBacklightPluggedTime.Maximum = new decimal(new int[] { 3600, 0, 0, 0 });
numericBacklightPluggedTime.Name = "numericBacklightPluggedTime";
numericBacklightPluggedTime.Size = new Size(240, 39);
numericBacklightPluggedTime.TabIndex = 49;
//
// labelBacklightTimeoutPlugged
//
labelBacklightTimeoutPlugged.Location = new Point(13, 183);
labelBacklightTimeoutPlugged.Name = "labelBacklightTimeoutPlugged";
labelBacklightTimeoutPlugged.Size = new Size(636, 45);
labelBacklightTimeoutPlugged.TabIndex = 48;
labelBacklightTimeoutPlugged.Text = "Seconds to turn off backlight when plugged";
//
// Extra // Extra
// //
AutoScaleDimensions = new SizeF(13F, 32F); AutoScaleDimensions = new SizeF(13F, 32F);
@@ -761,6 +782,7 @@ namespace GHelper
tableBacklight.ResumeLayout(false); tableBacklight.ResumeLayout(false);
groupOther.ResumeLayout(false); groupOther.ResumeLayout(false);
groupOther.PerformLayout(); groupOther.PerformLayout();
((System.ComponentModel.ISupportInitialize)numericBacklightPluggedTime).EndInit();
ResumeLayout(false); ResumeLayout(false);
PerformLayout(); PerformLayout();
} }
@@ -822,5 +844,7 @@ namespace GHelper
private RComboBox comboM2; private RComboBox comboM2;
private TextBox textM2; private TextBox textM2;
private TextBox textM1; private TextBox textM1;
private NumericUpDown numericBacklightPluggedTime;
private Label labelBacklightTimeoutPlugged;
} }
} }

View File

@@ -84,7 +84,9 @@ namespace GHelper
labelSpeed.Text = Properties.Strings.AnimationSpeed; labelSpeed.Text = Properties.Strings.AnimationSpeed;
labelBrightness.Text = Properties.Strings.Brightness; labelBrightness.Text = Properties.Strings.Brightness;
labelBacklightTimeout.Text = Properties.Strings.BacklightTimeout; labelBacklightTimeout.Text = Properties.Strings.BacklightTimeout;
labelBacklightTimeoutPlugged.Text = Properties.Strings.BacklightTimeoutPlugged;
checkKeyboardAuto.Text = Properties.Strings.KeyboardAuto; checkKeyboardAuto.Text = Properties.Strings.KeyboardAuto;
checkNoOverdrive.Text = Properties.Strings.DisableOverdrive; checkNoOverdrive.Text = Properties.Strings.DisableOverdrive;
@@ -209,16 +211,19 @@ namespace GHelper
checkXMG.Checked = !(AppConfig.getConfig("xmg_light") == 0); checkXMG.Checked = !(AppConfig.getConfig("xmg_light") == 0);
checkXMG.CheckedChanged += CheckXMG_CheckedChanged; checkXMG.CheckedChanged += CheckXMG_CheckedChanged;
int kb_timeout = AppConfig.getConfig("keyboard_timeout"); numericBacklightTime.Value = AppConfig.getConfig("keyboard_timeout", 60);
numericBacklightTime.Value = (kb_timeout >= 0) ? kb_timeout : 60; numericBacklightPluggedTime.Value = AppConfig.getConfig("keyboard_ac_timeout", 0);
numericBacklightTime.ValueChanged += NumericBacklightTime_ValueChanged; numericBacklightTime.ValueChanged += NumericBacklightTime_ValueChanged;
numericBacklightPluggedTime.ValueChanged += NumericBacklightTime_ValueChanged;
} }
private void NumericBacklightTime_ValueChanged(object? sender, EventArgs e) private void NumericBacklightTime_ValueChanged(object? sender, EventArgs e)
{ {
AppConfig.setConfig("keyboard_timeout", (int)numericBacklightTime.Value); AppConfig.setConfig("keyboard_timeout", (int)numericBacklightTime.Value);
AppConfig.setConfig("keyboard_ac_timeout", (int)numericBacklightPluggedTime.Value);
Program.inputDispatcher.InitBacklightTimer();
} }
private void CheckXMG_CheckedChanged(object? sender, EventArgs e) private void CheckXMG_CheckedChanged(object? sender, EventArgs e)

View File

@@ -93,8 +93,14 @@ namespace GHelper
private void Timer_Elapsed(object? sender, System.Timers.ElapsedEventArgs e) private void Timer_Elapsed(object? sender, System.Timers.ElapsedEventArgs e)
{ {
TimeSpan iddle = NativeMethods.GetIdleTime(); TimeSpan iddle = NativeMethods.GetIdleTime();
int kb_timeout = AppConfig.getConfig("keyboard_timeout", 60);
int kb_timeout;
if (SystemInformation.PowerStatus.PowerLineStatus == PowerLineStatus.Online)
kb_timeout = AppConfig.getConfig("keyboard_ac_timeout", 0);
else
kb_timeout = AppConfig.getConfig("keyboard_timeout", 60);
if (kb_timeout == 0) return; if (kb_timeout == 0) return;
if (backlight && iddle.TotalSeconds > kb_timeout) if (backlight && iddle.TotalSeconds > kb_timeout)
@@ -109,7 +115,7 @@ namespace GHelper
AsusUSB.ApplyBrightness(AppConfig.getConfig("keyboard_brightness")); AsusUSB.ApplyBrightness(AppConfig.getConfig("keyboard_brightness"));
} }
//Debug.WriteLine(iddle.TotalSeconds); Debug.WriteLine(iddle.TotalSeconds);
} }
public void Init() public void Init()
@@ -121,8 +127,13 @@ namespace GHelper
if (!OptimizationService.IsRunning()) if (!OptimizationService.IsRunning())
listener = new KeyboardListener(HandleEvent); listener = new KeyboardListener(HandleEvent);
timer.Enabled = (AppConfig.getConfig("keyboard_timeout") > 0 && SystemInformation.PowerStatus.PowerLineStatus != PowerLineStatus.Online); InitBacklightTimer();
}
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);
} }

View File

@@ -277,7 +277,7 @@ namespace GHelper.Properties {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Seconds to turn off backlight on battery. /// Looks up a localized string similar to Backlight timeout on battery.
/// </summary> /// </summary>
internal static string BacklightTimeout { internal static string BacklightTimeout {
get { get {
@@ -285,6 +285,15 @@ namespace GHelper.Properties {
} }
} }
/// <summary>
/// Looks up a localized string similar to Backlight timeout when plugged (0 - always on).
/// </summary>
internal static string BacklightTimeoutPlugged {
get {
return ResourceManager.GetString("BacklightTimeoutPlugged", resourceCulture);
}
}
/// <summary> /// <summary>
/// Looks up a localized string similar to Balanced. /// Looks up a localized string similar to Balanced.
/// </summary> /// </summary>
@@ -484,7 +493,7 @@ namespace GHelper.Properties {
} }
/// <summary> /// <summary>
/// Looks up a localized string similar to Fan: . /// Looks up a localized string similar to Fan: .
/// </summary> /// </summary>
internal static string FanSpeed { internal static string FanSpeed {
get { get {

View File

@@ -190,7 +190,10 @@
<value>Awake</value> <value>Awake</value>
</data> </data>
<data name="BacklightTimeout" xml:space="preserve"> <data name="BacklightTimeout" xml:space="preserve">
<value>Seconds to turn off backlight on battery</value> <value>Backlight timeout on battery</value>
</data>
<data name="BacklightTimeoutPlugged" xml:space="preserve">
<value>Backlight timeout when plugged (0 - always on)</value>
</data> </data>
<data name="Balanced" xml:space="preserve"> <data name="Balanced" xml:space="preserve">
<value>Balanced</value> <value>Balanced</value>
@@ -259,7 +262,7 @@
<value>Fans and Power</value> <value>Fans and Power</value>
</data> </data>
<data name="FanSpeed" xml:space="preserve"> <data name="FanSpeed" xml:space="preserve">
<value> Fan: </value> <value>Fan: </value>
</data> </data>
<data name="FansPower" xml:space="preserve"> <data name="FansPower" xml:space="preserve">
<value>Fans + Power</value> <value>Fans + Power</value>

View File

@@ -189,6 +189,12 @@
<data name="Awake" xml:space="preserve"> <data name="Awake" xml:space="preserve">
<value>Робота</value> <value>Робота</value>
</data> </data>
<data name="BacklightTimeout" xml:space="preserve">
<value>Тайм-аут підсвітки на батареї</value>
</data>
<data name="BacklightTimeoutPlugged" xml:space="preserve">
<value>Тайм-аут підсвітки на зарядці (0 - завжди ввімкнено)</value>
</data>
<data name="Balanced" xml:space="preserve"> <data name="Balanced" xml:space="preserve">
<value>Баланс</value> <value>Баланс</value>
</data> </data>
@@ -324,6 +330,9 @@
<data name="Multizone" xml:space="preserve"> <data name="Multizone" xml:space="preserve">
<value>Мультизони</value> <value>Мультизони</value>
</data> </data>
<data name="MuteMic" xml:space="preserve">
<value>Вимкнути мікрофон</value>
</data>
<data name="OpenGHelper" xml:space="preserve"> <data name="OpenGHelper" xml:space="preserve">
<value>Відкрити вікно G-Helper</value> <value>Відкрити вікно G-Helper</value>
</data> </data>
@@ -333,6 +342,9 @@
<data name="OptimizedGPUTooltip" xml:space="preserve"> <data name="OptimizedGPUTooltip" xml:space="preserve">
<value>Вмикає Еко на батареї та Стандартний на зарядці</value> <value>Вмикає Еко на батареї та Стандартний на зарядці</value>
</data> </data>
<data name="OptimizedUSBC" xml:space="preserve">
<value>Вимикати GPU на зарядці від USB-C в режимі Авто</value>
</data>
<data name="Other" xml:space="preserve"> <data name="Other" xml:space="preserve">
<value>Інше</value> <value>Інше</value>
</data> </data>
@@ -387,6 +399,12 @@
<data name="ToggleAura" xml:space="preserve"> <data name="ToggleAura" xml:space="preserve">
<value>Аура</value> <value>Аура</value>
</data> </data>
<data name="ToggleMiniled" xml:space="preserve">
<value>Міні-лед (якщо підтримується)</value>
</data>
<data name="ToggleScreen" xml:space="preserve">
<value>Вимкнути екран</value>
</data>
<data name="Turbo" xml:space="preserve"> <data name="Turbo" xml:space="preserve">
<value>Турбо</value> <value>Турбо</value>
</data> </data>
@@ -405,9 +423,15 @@
<data name="VersionLabel" xml:space="preserve"> <data name="VersionLabel" xml:space="preserve">
<value>Версія</value> <value>Версія</value>
</data> </data>
<data name="VolumeDown" xml:space="preserve">
<value>Зменшення гучності</value>
</data>
<data name="VolumeMute" xml:space="preserve"> <data name="VolumeMute" xml:space="preserve">
<value>Вимкнення звуку</value> <value>Вимкнення звуку</value>
</data> </data>
<data name="VolumeUp" xml:space="preserve">
<value>Збільшення гучності</value>
</data>
<data name="WindowTop" xml:space="preserve"> <data name="WindowTop" xml:space="preserve">
<value>Тримати вікно завжди зверху</value> <value>Тримати вікно завжди зверху</value>
</data> </data>