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));
device.WriteFeatureData(payload);
device.CloseDevice();
return 1;
//return 1;
}
return 0;

30
app/Extra.Designer.cs generated
View File

@@ -86,6 +86,8 @@ namespace GHelper
checkUSBC = new CheckBox();
checkNoOverdrive = new CheckBox();
checkTopmost = new CheckBox();
numericBacklightPluggedTime = new NumericUpDown();
labelBacklightTimeoutPlugged = new Label();
groupBindings.SuspendLayout();
tableKeys.SuspendLayout();
((System.ComponentModel.ISupportInitialize)pictureHelp).BeginInit();
@@ -96,6 +98,7 @@ namespace GHelper
panelXMG.SuspendLayout();
tableBacklight.SuspendLayout();
groupOther.SuspendLayout();
((System.ComponentModel.ISupportInitialize)numericBacklightPluggedTime).BeginInit();
SuspendLayout();
//
// groupBindings
@@ -302,13 +305,15 @@ namespace GHelper
groupLight.Dock = DockStyle.Top;
groupLight.Location = new Point(10, 334);
groupLight.Name = "groupLight";
groupLight.Size = new Size(954, 516);
groupLight.Size = new Size(954, 563);
groupLight.TabIndex = 1;
groupLight.TabStop = false;
groupLight.Text = "Keyboard Backlight";
//
// panelBacklightExtra
//
panelBacklightExtra.Controls.Add(numericBacklightPluggedTime);
panelBacklightExtra.Controls.Add(labelBacklightTimeoutPlugged);
panelBacklightExtra.Controls.Add(numericBacklightTime);
panelBacklightExtra.Controls.Add(labelBacklightTimeout);
panelBacklightExtra.Controls.Add(labelBrightness);
@@ -318,7 +323,7 @@ namespace GHelper
panelBacklightExtra.Dock = DockStyle.Top;
panelBacklightExtra.Location = new Point(3, 319);
panelBacklightExtra.Name = "panelBacklightExtra";
panelBacklightExtra.Size = new Size(948, 194);
panelBacklightExtra.Size = new Size(948, 241);
panelBacklightExtra.TabIndex = 43;
//
// numericBacklightTime
@@ -668,7 +673,7 @@ namespace GHelper
groupOther.Controls.Add(checkNoOverdrive);
groupOther.Controls.Add(checkTopmost);
groupOther.Dock = DockStyle.Top;
groupOther.Location = new Point(10, 850);
groupOther.Location = new Point(10, 897);
groupOther.Name = "groupOther";
groupOther.Size = new Size(954, 276);
groupOther.TabIndex = 2;
@@ -726,6 +731,22 @@ namespace GHelper
checkTopmost.Text = Strings.WindowTop;
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
//
AutoScaleDimensions = new SizeF(13F, 32F);
@@ -761,6 +782,7 @@ namespace GHelper
tableBacklight.ResumeLayout(false);
groupOther.ResumeLayout(false);
groupOther.PerformLayout();
((System.ComponentModel.ISupportInitialize)numericBacklightPluggedTime).EndInit();
ResumeLayout(false);
PerformLayout();
}
@@ -822,5 +844,7 @@ namespace GHelper
private RComboBox comboM2;
private TextBox textM2;
private TextBox textM1;
private NumericUpDown numericBacklightPluggedTime;
private Label labelBacklightTimeoutPlugged;
}
}

View File

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

View File

@@ -93,7 +93,13 @@ namespace GHelper
private void Timer_Elapsed(object? sender, System.Timers.ElapsedEventArgs e)
{
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;
@@ -109,7 +115,7 @@ namespace GHelper
AsusUSB.ApplyBrightness(AppConfig.getConfig("keyboard_brightness"));
}
//Debug.WriteLine(iddle.TotalSeconds);
Debug.WriteLine(iddle.TotalSeconds);
}
public void Init()
@@ -121,8 +127,13 @@ namespace GHelper
if (!OptimizationService.IsRunning())
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>
/// 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>
internal static string BacklightTimeout {
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>
/// Looks up a localized string similar to Balanced.
/// </summary>

View File

@@ -190,7 +190,10 @@
<value>Awake</value>
</data>
<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 name="Balanced" xml:space="preserve">
<value>Balanced</value>

View File

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