add auto update, add LG expert actions and auto set current device

This commit is contained in:
Vincent Maas committed 2022-12-04 10:13:53 +01:00
1 parent cb09d5c540
commit 43f038e9ee
13 files changed
+437 -127

No files matched your search

+2 -2
View File
@@ -19,8 +19,8 @@
<PublisherName>Maassoft</PublisherName>
<Company>Maassoft</Company>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>8.1.0.0</ApplicationVersion>
<Version>8.1.0.0</Version>
<ApplicationVersion>8.2.0.0</ApplicationVersion>
<Version>8.2.0.0</Version>
<UseApplicationTrust>false</UseApplicationTrust>
<PublishWizardCompleted>true</PublishWizardCompleted>
<BootstrapperEnabled>false</BootstrapperEnabled>
+101 -1
View File
@@ -12,11 +12,13 @@ using System.Diagnostics;
using System.Drawing;
using System.Globalization;
using System.IO;
using System.IO.Compression;
using System.Linq;
using System.Net.Http;
using System.Net.NetworkInformation;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Security.Cryptography;
using System.Security.Principal;
using System.ServiceProcess;
using System.Text;
@@ -25,6 +27,7 @@ using System.Threading.Tasks;
using System.Windows.Forms;
using Windows.Devices.Enumeration;
using Windows.Devices.Enumeration.Pnp;
using Task = System.Threading.Tasks.Task;
namespace ColorControl.Common
{
@@ -52,7 +55,7 @@ namespace ColorControl.Common
private static bool WinKeyDown = false;
private static Keys[] KeysWithoutModifiers = new[] { Keys.F13, Keys.F14, Keys.F15, Keys.F16, Keys.F17, Keys.F18, Keys.F19, Keys.F20, Keys.F21, Keys.F22, Keys.F23, Keys.F24 };
private static string SERVICE_NAME = "Color Control Service";
public static string SERVICE_NAME = "Color Control Service";
public static string ELEVATION_MSG = @"Elevation is needed in some cases where ColorControl needs administrator rights.
Some operations like installing a service, changing the priority of a process or creating a temporary IP-route for improved WOL-functionality will not work without those rights.
@@ -1138,5 +1141,102 @@ The best and suggested method to provide this is via a Windows Service. Only whe
var base64EncodedBytes = Convert.FromBase64String(base64EncodedData);
return Encoding.UTF8.GetString(base64EncodedBytes);
}
public static async Task DownloadFileAsync(string url, string filePath)
{
var httpClient = new HttpClient();
using var stream = await httpClient.GetStreamAsync(url);
using var fileStream = new FileStream(filePath, FileMode.OpenOrCreate);
await stream.CopyToAsync(fileStream);
}
public static void UnZipFile(string zipFile, string filePath)
{
ZipFile.ExtractToDirectory(zipFile, filePath);
}
public static void UpdateFiles(string clientPath, string updatePath)
{
var infos = new List<FileSystemInfo>();
GetFileSystemInfos(updatePath, infos);
foreach (var info in infos)
{
var subPath = info.FullName.Replace(updatePath, "");
if (subPath[0] == '\\')
{
subPath = subPath.Substring(1);
}
var targetPath = Path.Combine(clientPath, subPath);
//Logger.Debug($"Path: {updatePath}, info: {info.FullName}, target: {targetPath}");
if (info is DirectoryInfo)
{
if (!Directory.Exists(targetPath))
{
Directory.CreateDirectory(targetPath);
}
continue;
}
var fileInfo = info as FileInfo;
var oldPath = targetPath + ".old";
if (File.Exists(oldPath))
{
File.Delete(oldPath);
}
if (File.Exists(targetPath))
{
if (CompareFiles(fileInfo.FullName, targetPath))
{
continue;
}
File.Move(targetPath, targetPath + ".old");
}
fileInfo.CopyTo(targetPath);
}
}
public static void GetFileSystemInfos(string path, List<FileSystemInfo> infos)
{
var directory = new DirectoryInfo(path);
foreach (var dir in directory.GetDirectories())
{
infos.Add(dir);
GetFileSystemInfos(dir.FullName, infos);
}
foreach (var file in directory.GetFiles())
{
infos.Add(file);
}
}
public static string SHA256CheckSum(string filePath)
{
using (SHA256 SHA256 = SHA256.Create())
{
using (FileStream fileStream = File.OpenRead(filePath))
return Convert.ToBase64String(SHA256.ComputeHash(fileStream));
}
}
public static bool CompareFiles(string filePath1, string filePath2)
{
return SHA256CheckSum(filePath1) == SHA256CheckSum(filePath2);
}
}
}
+1
View File
@@ -22,6 +22,7 @@ namespace ColorControl
public bool MinimizeOnClose { get; set; }
public bool MinimizeToTray { get; set; }
public bool CheckForUpdates { get; set; }
public bool AutoInstallUpdates { get; set; }
public int DisplaySettingsDelay { get; set; }
public string ScreenSaverShortcut { get; set; }
public int FormWidth { get; set; }
+1 -1
View File
@@ -100,7 +100,7 @@ namespace ColorControl.Forms
else
{
range = new List<int>();
for (var i = 0; i <= 10; i++)
for (var i = min < 0 ? -10 : 0; i <= 10; i++)
{
range.Add(i * (max / 10));
}
+100 -108
View File
@@ -217,6 +217,7 @@
this.lblFixChromeFontsDescription = new System.Windows.Forms.Label();
this.chkFixChromeFonts = new System.Windows.Forms.CheckBox();
this.grpLGOptions = new System.Windows.Forms.GroupBox();
this.chkLgSetSelectedDeviceByPowerOn = new System.Windows.Forms.CheckBox();
this.lblGameBarShortcut = new System.Windows.Forms.Label();
this.edtLgGameBarShortcut = new System.Windows.Forms.TextBox();
this.lblLgOptionShutdownDelayHelp = new System.Windows.Forms.Label();
@@ -227,10 +228,8 @@
this.lblLgMaxPowerOnRetriesDescription = new System.Windows.Forms.Label();
this.edtLgMaxPowerOnRetries = new System.Windows.Forms.NumericUpDown();
this.lblLgMaxPowerOnRetries = new System.Windows.Forms.Label();
this.grpHDROptions = new System.Windows.Forms.GroupBox();
this.edtDelayDisplaySettings = new System.Windows.Forms.NumericUpDown();
this.label6 = new System.Windows.Forms.Label();
this.grpGeneralOptions = new System.Windows.Forms.GroupBox();
this.chkAutoInstallUpdates = new System.Windows.Forms.CheckBox();
this.btnStartStopService = new System.Windows.Forms.Button();
this.btnElevationInfo = new System.Windows.Forms.Button();
this.rbElevationService = new System.Windows.Forms.RadioButton();
@@ -260,6 +259,7 @@
this.mnuNvSettings = new System.Windows.Forms.ContextMenuStrip(this.components);
this.miNvProfileInspector = new System.Windows.Forms.ToolStripMenuItem();
this.miNvSettings = new System.Windows.Forms.ToolStripMenuItem();
this.btnUpdate = new System.Windows.Forms.Button();
this.tcMain.SuspendLayout();
this.tabNVIDIA.SuspendLayout();
this.mnuNvPresets.SuspendLayout();
@@ -282,8 +282,6 @@
this.grpLGOptions.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.edtLgOptionShutdownDelay)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.edtLgMaxPowerOnRetries)).BeginInit();
this.grpHDROptions.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.edtDelayDisplaySettings)).BeginInit();
this.grpGeneralOptions.SuspendLayout();
this.tabLog.SuspendLayout();
this.tabInfo.SuspendLayout();
@@ -308,7 +306,7 @@
this.tcMain.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
this.tcMain.Name = "tcMain";
this.tcMain.SelectedIndex = 0;
this.tcMain.Size = new System.Drawing.Size(1122, 553);
this.tcMain.Size = new System.Drawing.Size(1122, 567);
this.tcMain.TabIndex = 1;
this.tcMain.SelectedIndexChanged += new System.EventHandler(this.tabControl1_SelectedIndexChanged);
//
@@ -332,7 +330,7 @@
this.tabNVIDIA.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
this.tabNVIDIA.Name = "tabNVIDIA";
this.tabNVIDIA.Padding = new System.Windows.Forms.Padding(4, 3, 4, 3);
this.tabNVIDIA.Size = new System.Drawing.Size(1114, 525);
this.tabNVIDIA.Size = new System.Drawing.Size(1114, 539);
this.tabNVIDIA.TabIndex = 0;
this.tabNVIDIA.Text = "NVIDIA controller";
this.tabNVIDIA.UseVisualStyleBackColor = true;
@@ -803,7 +801,7 @@
this.tabAMD.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
this.tabAMD.Name = "tabAMD";
this.tabAMD.Padding = new System.Windows.Forms.Padding(4, 3, 4, 3);
this.tabAMD.Size = new System.Drawing.Size(1114, 525);
this.tabAMD.Size = new System.Drawing.Size(1114, 539);
this.tabAMD.TabIndex = 5;
this.tabAMD.Text = "AMD controller";
this.tabAMD.UseVisualStyleBackColor = true;
@@ -1132,7 +1130,7 @@
this.tabLG.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
this.tabLG.Name = "tabLG";
this.tabLG.Padding = new System.Windows.Forms.Padding(4, 3, 4, 3);
this.tabLG.Size = new System.Drawing.Size(1114, 525);
this.tabLG.Size = new System.Drawing.Size(1114, 539);
this.tabLG.TabIndex = 1;
this.tabLG.Text = "LG controller";
this.tabLG.UseVisualStyleBackColor = true;
@@ -1195,7 +1193,7 @@
this.scLgController.Panel1.Controls.Add(this.lblLgError);
this.scLgController.Panel1MinSize = 750;
this.scLgController.Panel2MinSize = 150;
this.scLgController.Size = new System.Drawing.Size(1106, 519);
this.scLgController.Size = new System.Drawing.Size(1106, 533);
this.scLgController.SplitterDistance = 894;
this.scLgController.SplitterWidth = 5;
this.scLgController.TabIndex = 43;
@@ -1203,7 +1201,7 @@
// btnLgSettings
//
this.btnLgSettings.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.btnLgSettings.Location = new System.Drawing.Point(804, 264);
this.btnLgSettings.Location = new System.Drawing.Point(804, 278);
this.btnLgSettings.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
this.btnLgSettings.Name = "btnLgSettings";
this.btnLgSettings.Size = new System.Drawing.Size(88, 27);
@@ -1216,7 +1214,7 @@
//
this.chkLgQuickAccess.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.chkLgQuickAccess.AutoSize = true;
this.chkLgQuickAccess.Location = new System.Drawing.Point(341, 300);
this.chkLgQuickAccess.Location = new System.Drawing.Point(341, 314);
this.chkLgQuickAccess.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
this.chkLgQuickAccess.Name = "chkLgQuickAccess";
this.chkLgQuickAccess.Size = new System.Drawing.Size(96, 19);
@@ -1256,7 +1254,7 @@
this.edtLgPresetDescription.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.edtLgPresetDescription.Enabled = false;
this.edtLgPresetDescription.Location = new System.Drawing.Point(100, 469);
this.edtLgPresetDescription.Location = new System.Drawing.Point(100, 483);
this.edtLgPresetDescription.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
this.edtLgPresetDescription.Multiline = true;
this.edtLgPresetDescription.Name = "edtLgPresetDescription";
@@ -1267,7 +1265,7 @@
//
this.lblLgPresetDescription.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.lblLgPresetDescription.AutoSize = true;
this.lblLgPresetDescription.Location = new System.Drawing.Point(6, 474);
this.lblLgPresetDescription.Location = new System.Drawing.Point(6, 488);
this.lblLgPresetDescription.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.lblLgPresetDescription.Name = "lblLgPresetDescription";
this.lblLgPresetDescription.Size = new System.Drawing.Size(70, 15);
@@ -1300,7 +1298,7 @@
// btnLgPresetEditTriggerConditions
//
this.btnLgPresetEditTriggerConditions.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.btnLgPresetEditTriggerConditions.Location = new System.Drawing.Point(804, 327);
this.btnLgPresetEditTriggerConditions.Location = new System.Drawing.Point(804, 341);
this.btnLgPresetEditTriggerConditions.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
this.btnLgPresetEditTriggerConditions.Name = "btnLgPresetEditTriggerConditions";
this.btnLgPresetEditTriggerConditions.Size = new System.Drawing.Size(88, 27);
@@ -1313,7 +1311,7 @@
//
this.edtLgPresetTriggerConditions.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.edtLgPresetTriggerConditions.Enabled = false;
this.edtLgPresetTriggerConditions.Location = new System.Drawing.Point(601, 329);
this.edtLgPresetTriggerConditions.Location = new System.Drawing.Point(601, 343);
this.edtLgPresetTriggerConditions.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
this.edtLgPresetTriggerConditions.Name = "edtLgPresetTriggerConditions";
this.edtLgPresetTriggerConditions.ReadOnly = true;
@@ -1324,7 +1322,7 @@
//
this.lblLgPresetExcludedProcesses.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.lblLgPresetExcludedProcesses.AutoSize = true;
this.lblLgPresetExcludedProcesses.Location = new System.Drawing.Point(475, 394);
this.lblLgPresetExcludedProcesses.Location = new System.Drawing.Point(475, 408);
this.lblLgPresetExcludedProcesses.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.lblLgPresetExcludedProcesses.Name = "lblLgPresetExcludedProcesses";
this.lblLgPresetExcludedProcesses.Size = new System.Drawing.Size(112, 15);
@@ -1335,7 +1333,7 @@
//
this.edtLgPresetExcludedProcesses.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.edtLgPresetExcludedProcesses.Enabled = false;
this.edtLgPresetExcludedProcesses.Location = new System.Drawing.Point(601, 391);
this.edtLgPresetExcludedProcesses.Location = new System.Drawing.Point(601, 405);
this.edtLgPresetExcludedProcesses.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
this.edtLgPresetExcludedProcesses.Name = "edtLgPresetExcludedProcesses";
this.edtLgPresetExcludedProcesses.Size = new System.Drawing.Size(289, 23);
@@ -1345,7 +1343,7 @@
//
this.lblLgPresetIncludedProcesses.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.lblLgPresetIncludedProcesses.AutoSize = true;
this.lblLgPresetIncludedProcesses.Location = new System.Drawing.Point(475, 364);
this.lblLgPresetIncludedProcesses.Location = new System.Drawing.Point(475, 378);
this.lblLgPresetIncludedProcesses.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.lblLgPresetIncludedProcesses.Name = "lblLgPresetIncludedProcesses";
this.lblLgPresetIncludedProcesses.Size = new System.Drawing.Size(110, 15);
@@ -1356,7 +1354,7 @@
//
this.edtLgPresetIncludedProcesses.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.edtLgPresetIncludedProcesses.Enabled = false;
this.edtLgPresetIncludedProcesses.Location = new System.Drawing.Point(601, 361);
this.edtLgPresetIncludedProcesses.Location = new System.Drawing.Point(601, 375);
this.edtLgPresetIncludedProcesses.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
this.edtLgPresetIncludedProcesses.Name = "edtLgPresetIncludedProcesses";
this.edtLgPresetIncludedProcesses.Size = new System.Drawing.Size(289, 23);
@@ -1366,7 +1364,7 @@
//
this.lblLgPresetTriggerCondition.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.lblLgPresetTriggerCondition.AutoSize = true;
this.lblLgPresetTriggerCondition.Location = new System.Drawing.Point(475, 333);
this.lblLgPresetTriggerCondition.Location = new System.Drawing.Point(475, 347);
this.lblLgPresetTriggerCondition.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.lblLgPresetTriggerCondition.Name = "lblLgPresetTriggerCondition";
this.lblLgPresetTriggerCondition.Size = new System.Drawing.Size(63, 15);
@@ -1379,7 +1377,7 @@
this.cbxLgPresetTrigger.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cbxLgPresetTrigger.Enabled = false;
this.cbxLgPresetTrigger.FormattingEnabled = true;
this.cbxLgPresetTrigger.Location = new System.Drawing.Point(601, 298);
this.cbxLgPresetTrigger.Location = new System.Drawing.Point(601, 312);
this.cbxLgPresetTrigger.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
this.cbxLgPresetTrigger.Name = "cbxLgPresetTrigger";
this.cbxLgPresetTrigger.Size = new System.Drawing.Size(289, 23);
@@ -1389,7 +1387,7 @@
//
this.lblLgPresetTrigger.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.lblLgPresetTrigger.AutoSize = true;
this.lblLgPresetTrigger.Location = new System.Drawing.Point(475, 301);
this.lblLgPresetTrigger.Location = new System.Drawing.Point(475, 315);
this.lblLgPresetTrigger.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.lblLgPresetTrigger.Name = "lblLgPresetTrigger";
this.lblLgPresetTrigger.Size = new System.Drawing.Size(46, 15);
@@ -1499,7 +1497,7 @@
this.cbxLgApps.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cbxLgApps.Enabled = false;
this.cbxLgApps.FormattingEnabled = true;
this.cbxLgApps.Location = new System.Drawing.Point(100, 360);
this.cbxLgApps.Location = new System.Drawing.Point(100, 374);
this.cbxLgApps.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
this.cbxLgApps.Name = "cbxLgApps";
this.cbxLgApps.Size = new System.Drawing.Size(233, 23);
@@ -1518,7 +1516,7 @@
this.lvLgPresets.MultiSelect = false;
this.lvLgPresets.Name = "lvLgPresets";
this.lvLgPresets.ShowItemToolTips = true;
this.lvLgPresets.Size = new System.Drawing.Size(883, 106);
this.lvLgPresets.Size = new System.Drawing.Size(883, 120);
this.lvLgPresets.TabIndex = 8;
this.lvLgPresets.UseCompatibleStateImageBehavior = false;
this.lvLgPresets.View = System.Windows.Forms.View.Details;
@@ -1531,7 +1529,7 @@
//
this.label5.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.label5.AutoSize = true;
this.label5.Location = new System.Drawing.Point(6, 364);
this.label5.Location = new System.Drawing.Point(6, 378);
this.label5.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.label5.Name = "label5";
this.label5.Size = new System.Drawing.Size(32, 15);
@@ -1544,7 +1542,7 @@
this.cbxLgPresetDevice.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cbxLgPresetDevice.Enabled = false;
this.cbxLgPresetDevice.FormattingEnabled = true;
this.cbxLgPresetDevice.Location = new System.Drawing.Point(100, 328);
this.cbxLgPresetDevice.Location = new System.Drawing.Point(100, 342);
this.cbxLgPresetDevice.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
this.cbxLgPresetDevice.Name = "cbxLgPresetDevice";
this.cbxLgPresetDevice.Size = new System.Drawing.Size(370, 23);
@@ -1554,7 +1552,7 @@
//
this.btnDeleteLg.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.btnDeleteLg.Enabled = false;
this.btnDeleteLg.Location = new System.Drawing.Point(289, 264);
this.btnDeleteLg.Location = new System.Drawing.Point(289, 278);
this.btnDeleteLg.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
this.btnDeleteLg.Name = "btnDeleteLg";
this.btnDeleteLg.Size = new System.Drawing.Size(88, 27);
@@ -1567,7 +1565,7 @@
//
this.btnApplyLg.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.btnApplyLg.Enabled = false;
this.btnApplyLg.Location = new System.Drawing.Point(6, 264);
this.btnApplyLg.Location = new System.Drawing.Point(6, 278);
this.btnApplyLg.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
this.btnApplyLg.Name = "btnApplyLg";
this.btnApplyLg.Size = new System.Drawing.Size(88, 27);
@@ -1590,7 +1588,7 @@
//
this.lblLgPresetDevice.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.lblLgPresetDevice.AutoSize = true;
this.lblLgPresetDevice.Location = new System.Drawing.Point(6, 331);
this.lblLgPresetDevice.Location = new System.Drawing.Point(6, 345);
this.lblLgPresetDevice.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.lblLgPresetDevice.Name = "lblLgPresetDevice";
this.lblLgPresetDevice.Size = new System.Drawing.Size(45, 15);
@@ -1600,7 +1598,7 @@
// btnAddLg
//
this.btnAddLg.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.btnAddLg.Location = new System.Drawing.Point(195, 264);
this.btnAddLg.Location = new System.Drawing.Point(195, 278);
this.btnAddLg.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
this.btnAddLg.Name = "btnAddLg";
this.btnAddLg.Size = new System.Drawing.Size(88, 27);
@@ -1613,7 +1611,7 @@
//
this.edtShortcutLg.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.edtShortcutLg.Enabled = false;
this.edtShortcutLg.Location = new System.Drawing.Point(100, 391);
this.edtShortcutLg.Location = new System.Drawing.Point(100, 405);
this.edtShortcutLg.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
this.edtShortcutLg.Name = "edtShortcutLg";
this.edtShortcutLg.ReadOnly = true;
@@ -1646,7 +1644,7 @@
// btnLgRefreshApps
//
this.btnLgRefreshApps.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.btnLgRefreshApps.Location = new System.Drawing.Point(341, 358);
this.btnLgRefreshApps.Location = new System.Drawing.Point(341, 372);
this.btnLgRefreshApps.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
this.btnLgRefreshApps.Name = "btnLgRefreshApps";
this.btnLgRefreshApps.Size = new System.Drawing.Size(88, 27);
@@ -1659,7 +1657,7 @@
//
this.label2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(6, 395);
this.label2.Location = new System.Drawing.Point(6, 409);
this.label2.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(55, 15);
@@ -1670,7 +1668,7 @@
//
this.label1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(6, 301);
this.label1.Location = new System.Drawing.Point(6, 315);
this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(42, 15);
@@ -1692,7 +1690,7 @@
//
this.edtNameLg.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.edtNameLg.Enabled = false;
this.edtNameLg.Location = new System.Drawing.Point(100, 298);
this.edtNameLg.Location = new System.Drawing.Point(100, 312);
this.edtNameLg.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
this.edtNameLg.Name = "edtNameLg";
this.edtNameLg.Size = new System.Drawing.Size(233, 23);
@@ -1702,7 +1700,7 @@
//
this.btnSetShortcutLg.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.btnSetShortcutLg.Enabled = false;
this.btnSetShortcutLg.Location = new System.Drawing.Point(384, 264);
this.btnSetShortcutLg.Location = new System.Drawing.Point(384, 278);
this.btnSetShortcutLg.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
this.btnSetShortcutLg.Name = "btnSetShortcutLg";
this.btnSetShortcutLg.Size = new System.Drawing.Size(88, 27);
@@ -1716,7 +1714,7 @@
this.edtStepsLg.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.edtStepsLg.Enabled = false;
this.edtStepsLg.Location = new System.Drawing.Point(100, 420);
this.edtStepsLg.Location = new System.Drawing.Point(100, 434);
this.edtStepsLg.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
this.edtStepsLg.Multiline = true;
this.edtStepsLg.Name = "edtStepsLg";
@@ -1728,7 +1726,7 @@
this.btnLgAddButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.btnLgAddButton.ContextMenuStrip = this.mnuLgButtons;
this.btnLgAddButton.Enabled = false;
this.btnLgAddButton.Location = new System.Drawing.Point(802, 419);
this.btnLgAddButton.Location = new System.Drawing.Point(802, 433);
this.btnLgAddButton.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
this.btnLgAddButton.Name = "btnLgAddButton";
this.btnLgAddButton.Size = new System.Drawing.Size(88, 27);
@@ -1785,7 +1783,7 @@
//
this.btnCloneLg.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.btnCloneLg.Enabled = false;
this.btnCloneLg.Location = new System.Drawing.Point(100, 264);
this.btnCloneLg.Location = new System.Drawing.Point(100, 278);
this.btnCloneLg.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
this.btnCloneLg.Name = "btnCloneLg";
this.btnCloneLg.Size = new System.Drawing.Size(88, 27);
@@ -1798,7 +1796,7 @@
//
this.lblStepsLg.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.lblStepsLg.AutoSize = true;
this.lblStepsLg.Location = new System.Drawing.Point(6, 425);
this.lblStepsLg.Location = new System.Drawing.Point(6, 439);
this.lblStepsLg.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.lblStepsLg.Name = "lblStepsLg";
this.lblStepsLg.Size = new System.Drawing.Size(38, 15);
@@ -1878,7 +1876,7 @@
this.tabGameLauncher.Location = new System.Drawing.Point(4, 24);
this.tabGameLauncher.Name = "tabGameLauncher";
this.tabGameLauncher.Padding = new System.Windows.Forms.Padding(3);
this.tabGameLauncher.Size = new System.Drawing.Size(1114, 525);
this.tabGameLauncher.Size = new System.Drawing.Size(1114, 539);
this.tabGameLauncher.TabIndex = 6;
this.tabGameLauncher.Text = "Game Launcher";
this.tabGameLauncher.UseVisualStyleBackColor = true;
@@ -2228,13 +2226,12 @@
this.tabOptions.Controls.Add(this.grpNvidiaOptions);
this.tabOptions.Controls.Add(this.grpMiscellaneousOptions);
this.tabOptions.Controls.Add(this.grpLGOptions);
this.tabOptions.Controls.Add(this.grpHDROptions);
this.tabOptions.Controls.Add(this.grpGeneralOptions);
this.tabOptions.Location = new System.Drawing.Point(4, 24);
this.tabOptions.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
this.tabOptions.Name = "tabOptions";
this.tabOptions.Padding = new System.Windows.Forms.Padding(4, 3, 4, 3);
this.tabOptions.Size = new System.Drawing.Size(1114, 525);
this.tabOptions.Size = new System.Drawing.Size(1114, 539);
this.tabOptions.TabIndex = 2;
this.tabOptions.Text = "Options";
this.tabOptions.UseVisualStyleBackColor = true;
@@ -2254,7 +2251,7 @@
this.grpNvidiaOptions.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
this.grpNvidiaOptions.Name = "grpNvidiaOptions";
this.grpNvidiaOptions.Padding = new System.Windows.Forms.Padding(4, 3, 4, 3);
this.grpNvidiaOptions.Size = new System.Drawing.Size(569, 351);
this.grpNvidiaOptions.Size = new System.Drawing.Size(569, 365);
this.grpNvidiaOptions.TabIndex = 6;
this.grpNvidiaOptions.TabStop = false;
this.grpNvidiaOptions.Text = "NVIDIA options - test dithering";
@@ -2325,7 +2322,7 @@
this.pbGradient.Location = new System.Drawing.Point(7, 106);
this.pbGradient.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
this.pbGradient.Name = "pbGradient";
this.pbGradient.Size = new System.Drawing.Size(555, 236);
this.pbGradient.Size = new System.Drawing.Size(555, 250);
this.pbGradient.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage;
this.pbGradient.TabIndex = 0;
this.pbGradient.TabStop = false;
@@ -2337,18 +2334,18 @@
this.grpMiscellaneousOptions.Controls.Add(this.edtBlankScreenSaverShortcut);
this.grpMiscellaneousOptions.Controls.Add(this.lblFixChromeFontsDescription);
this.grpMiscellaneousOptions.Controls.Add(this.chkFixChromeFonts);
this.grpMiscellaneousOptions.Location = new System.Drawing.Point(7, 365);
this.grpMiscellaneousOptions.Location = new System.Drawing.Point(7, 402);
this.grpMiscellaneousOptions.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
this.grpMiscellaneousOptions.Name = "grpMiscellaneousOptions";
this.grpMiscellaneousOptions.Padding = new System.Windows.Forms.Padding(4, 3, 4, 3);
this.grpMiscellaneousOptions.Size = new System.Drawing.Size(522, 150);
this.grpMiscellaneousOptions.Size = new System.Drawing.Size(522, 131);
this.grpMiscellaneousOptions.TabIndex = 5;
this.grpMiscellaneousOptions.TabStop = false;
this.grpMiscellaneousOptions.Text = "Miscellaneous";
//
// btnSetShortcutScreenSaver
//
this.btnSetShortcutScreenSaver.Location = new System.Drawing.Point(180, 104);
this.btnSetShortcutScreenSaver.Location = new System.Drawing.Point(181, 98);
this.btnSetShortcutScreenSaver.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
this.btnSetShortcutScreenSaver.Name = "btnSetShortcutScreenSaver";
this.btnSetShortcutScreenSaver.Size = new System.Drawing.Size(40, 27);
@@ -2360,7 +2357,7 @@
// label11
//
this.label11.AutoSize = true;
this.label11.Location = new System.Drawing.Point(4, 85);
this.label11.Location = new System.Drawing.Point(7, 80);
this.label11.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.label11.Name = "label11";
this.label11.Size = new System.Drawing.Size(238, 15);
@@ -2369,7 +2366,7 @@
//
// edtBlankScreenSaverShortcut
//
this.edtBlankScreenSaverShortcut.Location = new System.Drawing.Point(7, 106);
this.edtBlankScreenSaverShortcut.Location = new System.Drawing.Point(7, 101);
this.edtBlankScreenSaverShortcut.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
this.edtBlankScreenSaverShortcut.Name = "edtBlankScreenSaverShortcut";
this.edtBlankScreenSaverShortcut.ReadOnly = true;
@@ -2402,6 +2399,7 @@
//
// grpLGOptions
//
this.grpLGOptions.Controls.Add(this.chkLgSetSelectedDeviceByPowerOn);
this.grpLGOptions.Controls.Add(this.lblGameBarShortcut);
this.grpLGOptions.Controls.Add(this.edtLgGameBarShortcut);
this.grpLGOptions.Controls.Add(this.lblLgOptionShutdownDelayHelp);
@@ -2412,15 +2410,27 @@
this.grpLGOptions.Controls.Add(this.lblLgMaxPowerOnRetriesDescription);
this.grpLGOptions.Controls.Add(this.edtLgMaxPowerOnRetries);
this.grpLGOptions.Controls.Add(this.lblLgMaxPowerOnRetries);
this.grpLGOptions.Location = new System.Drawing.Point(7, 169);
this.grpLGOptions.Location = new System.Drawing.Point(8, 187);
this.grpLGOptions.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
this.grpLGOptions.Name = "grpLGOptions";
this.grpLGOptions.Padding = new System.Windows.Forms.Padding(4, 3, 4, 3);
this.grpLGOptions.Size = new System.Drawing.Size(522, 190);
this.grpLGOptions.Size = new System.Drawing.Size(522, 209);
this.grpLGOptions.TabIndex = 4;
this.grpLGOptions.TabStop = false;
this.grpLGOptions.Text = "LG controller";
//
// chkLgSetSelectedDeviceByPowerOn
//
this.chkLgSetSelectedDeviceByPowerOn.AutoSize = true;
this.chkLgSetSelectedDeviceByPowerOn.Location = new System.Drawing.Point(8, 180);
this.chkLgSetSelectedDeviceByPowerOn.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
this.chkLgSetSelectedDeviceByPowerOn.Name = "chkLgSetSelectedDeviceByPowerOn";
this.chkLgSetSelectedDeviceByPowerOn.Size = new System.Drawing.Size(302, 19);
this.chkLgSetSelectedDeviceByPowerOn.TabIndex = 60;
this.chkLgSetSelectedDeviceByPowerOn.Text = "Automatically set selected device to last powered on";
this.chkLgSetSelectedDeviceByPowerOn.UseVisualStyleBackColor = true;
this.chkLgSetSelectedDeviceByPowerOn.CheckedChanged += new System.EventHandler(this.chkLgSetSelectedDeviceByWol_CheckedChanged);
//
// lblGameBarShortcut
//
this.lblGameBarShortcut.AutoSize = true;
@@ -2544,53 +2554,9 @@
this.lblLgMaxPowerOnRetries.TabIndex = 0;
this.lblLgMaxPowerOnRetries.Text = "Maximum number of retries powering on after startup/resume:";
//
// grpHDROptions
//
this.grpHDROptions.Controls.Add(this.edtDelayDisplaySettings);
this.grpHDROptions.Controls.Add(this.label6);
this.grpHDROptions.Location = new System.Drawing.Point(537, 365);
this.grpHDROptions.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
this.grpHDROptions.Name = "grpHDROptions";
this.grpHDROptions.Padding = new System.Windows.Forms.Padding(4, 3, 4, 3);
this.grpHDROptions.Size = new System.Drawing.Size(569, 83);
this.grpHDROptions.TabIndex = 3;
this.grpHDROptions.TabStop = false;
this.grpHDROptions.Text = "HDR";
this.grpHDROptions.Visible = false;
//
// edtDelayDisplaySettings
//
this.edtDelayDisplaySettings.Increment = new decimal(new int[] {
100,
0,
0,
0});
this.edtDelayDisplaySettings.Location = new System.Drawing.Point(345, 20);
this.edtDelayDisplaySettings.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
this.edtDelayDisplaySettings.Maximum = new decimal(new int[] {
5000,
0,
0,
0});
this.edtDelayDisplaySettings.Name = "edtDelayDisplaySettings";
this.edtDelayDisplaySettings.ReadOnly = true;
this.edtDelayDisplaySettings.Size = new System.Drawing.Size(86, 23);
this.edtDelayDisplaySettings.TabIndex = 1;
this.edtDelayDisplaySettings.TextAlign = System.Windows.Forms.HorizontalAlignment.Right;
this.edtDelayDisplaySettings.ValueChanged += new System.EventHandler(this.edtDelayDisplaySettings_ValueChanged);
//
// label6
//
this.label6.AutoSize = true;
this.label6.Location = new System.Drawing.Point(7, 22);
this.label6.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.label6.Name = "label6";
this.label6.Size = new System.Drawing.Size(197, 15);
this.label6.TabIndex = 0;
this.label6.Text = "Delay opening display settings (ms):";
//
// grpGeneralOptions
//
this.grpGeneralOptions.Controls.Add(this.chkAutoInstallUpdates);
this.grpGeneralOptions.Controls.Add(this.btnStartStopService);
this.grpGeneralOptions.Controls.Add(this.btnElevationInfo);
this.grpGeneralOptions.Controls.Add(this.rbElevationService);
@@ -2608,11 +2574,23 @@
this.grpGeneralOptions.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
this.grpGeneralOptions.Name = "grpGeneralOptions";
this.grpGeneralOptions.Padding = new System.Windows.Forms.Padding(4, 3, 4, 3);
this.grpGeneralOptions.Size = new System.Drawing.Size(522, 156);
this.grpGeneralOptions.Size = new System.Drawing.Size(522, 174);
this.grpGeneralOptions.TabIndex = 2;
this.grpGeneralOptions.TabStop = false;
this.grpGeneralOptions.Text = "General";
//
// chkAutoInstallUpdates
//
this.chkAutoInstallUpdates.AutoSize = true;
this.chkAutoInstallUpdates.Location = new System.Drawing.Point(7, 147);
this.chkAutoInstallUpdates.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
this.chkAutoInstallUpdates.Name = "chkAutoInstallUpdates";
this.chkAutoInstallUpdates.Size = new System.Drawing.Size(179, 19);
this.chkAutoInstallUpdates.TabIndex = 66;
this.chkAutoInstallUpdates.Text = "Automatically install updates";
this.chkAutoInstallUpdates.UseVisualStyleBackColor = true;
this.chkAutoInstallUpdates.CheckedChanged += new System.EventHandler(this.chkAutoInstallUpdates_CheckedChanged);
//
// btnStartStopService
//
this.btnStartStopService.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
@@ -2780,7 +2758,7 @@
this.tabLog.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
this.tabLog.Name = "tabLog";
this.tabLog.Padding = new System.Windows.Forms.Padding(4, 3, 4, 3);
this.tabLog.Size = new System.Drawing.Size(1114, 525);
this.tabLog.Size = new System.Drawing.Size(1114, 539);
this.tabLog.TabIndex = 3;
this.tabLog.Text = "Log";
this.tabLog.UseVisualStyleBackColor = true;
@@ -2843,7 +2821,7 @@
this.tabInfo.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
this.tabInfo.Name = "tabInfo";
this.tabInfo.Padding = new System.Windows.Forms.Padding(4, 3, 4, 3);
this.tabInfo.Size = new System.Drawing.Size(1114, 525);
this.tabInfo.Size = new System.Drawing.Size(1114, 539);
this.tabInfo.TabIndex = 4;
this.tabInfo.Text = "Info";
this.tabInfo.UseVisualStyleBackColor = true;
@@ -2955,12 +2933,28 @@
this.miNvSettings.Text = "Settings";
this.miNvSettings.Click += new System.EventHandler(this.miNvSettings_Click);
//
// btnUpdate
//
this.btnUpdate.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnUpdate.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnUpdate.ForeColor = System.Drawing.Color.Red;
this.btnUpdate.Location = new System.Drawing.Point(1055, 0);
this.btnUpdate.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.btnUpdate.Name = "btnUpdate";
this.btnUpdate.Size = new System.Drawing.Size(77, 26);
this.btnUpdate.TabIndex = 61;
this.btnUpdate.Text = "Update";
this.btnUpdate.UseVisualStyleBackColor = true;
this.btnUpdate.Visible = false;
this.btnUpdate.Click += new System.EventHandler(this.btnUpdate_Click);
//
// MainForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.BackColor = System.Drawing.SystemColors.Control;
this.ClientSize = new System.Drawing.Size(1150, 580);
this.ClientSize = new System.Drawing.Size(1150, 594);
this.Controls.Add(this.btnUpdate);
this.Controls.Add(this.tcMain);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Margin = new System.Windows.Forms.Padding(4, 3, 4, 3);
@@ -2974,6 +2968,7 @@
this.Shown += new System.EventHandler(this.MainForm_Shown);
this.ResizeBegin += new System.EventHandler(this.MainForm_ResizeBegin);
this.ResizeEnd += new System.EventHandler(this.MainForm_ResizeEnd);
this.Click += new System.EventHandler(this.MainForm_Click);
this.Resize += new System.EventHandler(this.MainForm_Resize);
this.tcMain.ResumeLayout(false);
this.tabNVIDIA.ResumeLayout(false);
@@ -3004,9 +2999,6 @@
this.grpLGOptions.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.edtLgOptionShutdownDelay)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.edtLgMaxPowerOnRetries)).EndInit();
this.grpHDROptions.ResumeLayout(false);
this.grpHDROptions.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.edtDelayDisplaySettings)).EndInit();
this.grpGeneralOptions.ResumeLayout(false);
this.grpGeneralOptions.PerformLayout();
this.tabLog.ResumeLayout(false);
@@ -3050,9 +3042,6 @@
private System.Windows.Forms.GroupBox grpGeneralOptions;
private System.Windows.Forms.CheckBox chkStartMinimized;
private System.Windows.Forms.CheckBox chkStartAfterLogin;
private System.Windows.Forms.GroupBox grpHDROptions;
private System.Windows.Forms.NumericUpDown edtDelayDisplaySettings;
private System.Windows.Forms.Label label6;
private System.Windows.Forms.ToolStripMenuItem mnuNvDisplay;
private System.Windows.Forms.ToolStripMenuItem miNvPrimaryDisplay;
private System.Windows.Forms.TabPage tabLog;
@@ -3252,6 +3241,9 @@
private System.Windows.Forms.Label lblShowLog;
private System.Windows.Forms.ComboBox cbxLogType;
private System.Windows.Forms.ComboBox cbxGameStepType;
private System.Windows.Forms.CheckBox chkAutoInstallUpdates;
private System.Windows.Forms.CheckBox chkLgSetSelectedDeviceByPowerOn;
private System.Windows.Forms.Button btnUpdate;
}
}
+119 -4
View File
@@ -74,6 +74,7 @@ namespace ColorControl
private bool _checkedForUpdates = false;
private string _updateHtmlUrl;
private bool _updatingDitherSettings;
private string _downloadUrl;
private LgGameBar _gameBarForm;
@@ -274,6 +275,7 @@ namespace ColorControl
{
_lgService = new LgService(_dataDir, StartUpParams.RunningFromScheduledTask);
_lgService.RefreshDevices(afterStartUp: true).ContinueWith((_) => BeginInvoke(() => AfterLgServiceRefreshDevices()));
_lgService.SelectedDeviceChangedEvent += _lgService_SelectedDeviceChangedEvent;
FillLgPresets();
@@ -281,6 +283,7 @@ namespace ColorControl
edtLgOptionShutdownDelay.Value = _lgService.Config.ShutdownDelay;
edtLgDeviceFilter.Text = _lgService.Config.DeviceSearchKey;
chkLgShowAdvancedActions.Checked = _lgService.Config.ShowAdvancedActions;
chkLgSetSelectedDeviceByPowerOn.Checked = _lgService.Config.SetSelectedDeviceByPowerOn;
InitSortState(lvLgPresets, _config.LgPresetsSortState);
@@ -323,6 +326,22 @@ namespace ColorControl
}
}
private void _lgService_SelectedDeviceChangedEvent(object sender, EventArgs e)
{
BeginInvoke(() => SetLgDevicesSelectedIndex(sender));
}
private void SetLgDevicesSelectedIndex(object sender)
{
if (sender == null)
{
cbxLgDevices.SelectedIndex = -1;
return;
}
cbxLgDevices.SelectedIndex = cbxLgDevices.Items.IndexOf(sender);
}
private void InitSortState(ListView listView, ListViewSortState sortState)
{
var sorter = new ListViewColumnSorter();
@@ -472,7 +491,7 @@ namespace ColorControl
private void UpdateDisplayInfoItems()
{
var displays = _nvService?.GetDisplayInfos();
if (displays == null)
if (displays == null || Program.IsRestarting)
{
return;
}
@@ -865,7 +884,8 @@ namespace ColorControl
chkMinimizeOnClose.Checked = _config.MinimizeOnClose;
chkMinimizeToSystemTray.Checked = _config.MinimizeToTray;
chkCheckForUpdates.Checked = _config.CheckForUpdates;
edtDelayDisplaySettings.Value = _config.DisplaySettingsDelay;
chkAutoInstallUpdates.Checked = _config.AutoInstallUpdates;
chkAutoInstallUpdates.Enabled = _config.CheckForUpdates && _config.ElevationMethod == ElevationMethod.UseService;
edtBlankScreenSaverShortcut.Text = _config.ScreenSaverShortcut;
chkGdiScaling.Checked = _config.UseGdiScaling;
@@ -2064,7 +2084,6 @@ NOTE: installing the service may cause a User Account Control popup.");
private void edtDelayDisplaySettings_ValueChanged(object sender, EventArgs e)
{
_config.DisplaySettingsDelay = (int)edtDelayDisplaySettings.Value;
}
private bool ApplyNvPreset(NvPreset preset)
@@ -2655,17 +2674,73 @@ Do you want to continue?";
{
_updateHtmlUrl = latest.html_url.Value;
if (latest.assets != null && Utils.IsServiceRunning())
{
var asset = latest.assets[0];
_downloadUrl = asset.browser_download_url.Value;
if (_config.AutoInstallUpdates)
{
InstallUpdate(_downloadUrl);
return;
}
btnUpdate.Visible = true;
if (_trayIcon.Visible)
{
_trayIcon.ShowBalloonTip(5000, "Update available", $"Version {newVersion} is available. Click on the Update-button to update", ToolTipIcon.Info);
}
else
{
MessageForms.InfoOk($"New version {newVersion} is available. Click on the Update-button to update", "Update available", $"https://github.com/Maassoft/ColorControl/releases/tag/v{newVersion}");
}
return;
}
if (_trayIcon.Visible)
{
_trayIcon.ShowBalloonTip(5000, "Update available", $"Version {newVersion} is available. Click to open the GitHub page", ToolTipIcon.Info);
}
else
{
MessageForms.InfoOk($"New version {newVersion} is available. Click on the Help-button to open the GitHub page.", "Update available", "https://github.com/Maassoft/ColorControl/releases/tag/v4.0.0.0");
MessageForms.InfoOk($"New version {newVersion} is available. Click on the Help-button to open the GitHub page.", "Update available", $"https://github.com/Maassoft/ColorControl/releases/tag/v{newVersion}");
}
}
}
private void InstallUpdate(string downloadUrl)
{
var message = new SvcInstallUpdateMessage
{
DownloadUrl = downloadUrl,
ClientPath = new FileInfo(Application.ExecutablePath).Directory.FullName
};
var result = PipeUtils.SendMessage(message);
if (!result.Result)
{
MessageForms.ErrorOk($"Error while updating: {result.ErrorMessage}");
return;
}
PipeUtils.SendMessage(SvcMessageType.RestartAfterUpdate);
if (MessageForms.QuestionYesNo("Update installed successfully. Do you want to restart the application?") == DialogResult.Yes)
{
Program.Restart();
}
else
{
_downloadUrl = null;
btnUpdate.Visible = true;
}
}
private void ApplyNvPresetOnStartup(int attempts = 5)
{
@@ -3453,6 +3528,7 @@ Do you want to continue?"
if (_initialized)
{
_config.CheckForUpdates = chkCheckForUpdates.Checked;
chkAutoInstallUpdates.Enabled = _config.CheckForUpdates && _config.ElevationMethod == ElevationMethod.UseService;
}
}
@@ -3469,6 +3545,7 @@ Do you want to continue?"
@"Are you sure you want to enable the advanced actions under the Expert-button?
These actions include:
- InStart service menu
- EzAdjust service menu
- Software Update-app with firmware downgrade functionality enabled
These features may cause irreversible damage to your tv and will void your warranty.
@@ -4386,5 +4463,43 @@ Currently ColorControl is {(Utils.IsAdministrator() ? "" : "not ")}running as ad
{
SaveGamePreset();
}
private void MainForm_Click(object sender, EventArgs e)
{
//PipeUtils.SendMessage(SvcMessageType.RestartAfterUpdate);
//Program.Restart();
//Environment.Exit(0);
//InstallUpdate("");
}
private void chkAutoInstallUpdates_CheckedChanged(object sender, EventArgs e)
{
if (_initialized)
{
_config.AutoInstallUpdates = chkAutoInstallUpdates.Checked;
}
}
private void chkLgSetSelectedDeviceByWol_CheckedChanged(object sender, EventArgs e)
{
if (!_initialized)
{
return;
}
_lgService.Config.SetSelectedDeviceByPowerOn = chkLgSetSelectedDeviceByPowerOn.Checked;
}
private void btnUpdate_Click(object sender, EventArgs e)
{
if (_downloadUrl != null)
{
InstallUpdate(_downloadUrl);
return;
}
Program.Restart();
}
}
}
+25 -4
View File
@@ -30,7 +30,10 @@ namespace ColorControl
public static string MutexId { get; private set; }
public static bool IsRestarting { get; private set; }
private static readonly Logger Logger = LogManager.GetCurrentClassLogger();
private static Mutex _mutex;
/// <summary>
/// The main entry point for the application.
@@ -40,10 +43,13 @@ namespace ColorControl
{
DataDir = Utils.GetDataPath();
//Utils.UpdateFiles(@"H:\temp\ColorControl\ColorControl", @"C:\Users\vinni\source\repos\ColorControl\ColorControl\bin\Debug\net6.0-windows10.0.20348.0");
var runAsService = args.Contains("--service") || Process.GetCurrentProcess().Parent()?.ProcessName?.Equals("services", StringComparison.InvariantCultureIgnoreCase) == true;
InitLogger(runAsService);
Logger.Debug($"Using data path: {DataDir}");
Logger.Debug("Parent process: " + Process.GetCurrentProcess().Parent()?.ProcessName);
if (runAsService)
@@ -85,7 +91,7 @@ namespace ColorControl
Utils.CloseConsole();
}
var mutex = new Mutex(true, MutexId, out var mutexCreated);
_mutex = new Mutex(true, MutexId, out var mutexCreated);
try
{
if (!mutexCreated)
@@ -102,7 +108,7 @@ namespace ColorControl
}
else
{
mutex.WaitOne();
_mutex.WaitOne();
try
{
if (Debugger.IsAttached)
@@ -114,7 +120,7 @@ namespace ColorControl
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new MainForm(AppContext));
if (Debugger.IsAttached)
if (Debugger.IsAttached && !IsRestarting)
{
Utils.StopService();
}
@@ -129,11 +135,26 @@ namespace ColorControl
{
if (mutexCreated)
{
mutex.Dispose();
_mutex?.Close();
}
}
}
public static void Restart()
{
IsRestarting = true;
_mutex?.Close();
_mutex = null;
Thread.Sleep(1000);
Application.Restart();
Thread.Sleep(1000);
Environment.Exit(0);
}
private static void InitLogger(bool runAsService)
{
var config = new NLog.Config.LoggingConfiguration();
+11
View File
@@ -193,10 +193,21 @@ namespace ColorControl.Services.LG
AddGenericPictureAction("uhdDeepColorHDMI2", typeof(OffToOn), category: "other");
AddGenericPictureAction("uhdDeepColorHDMI3", typeof(OffToOn), category: "other");
AddGenericPictureAction("uhdDeepColorHDMI4", typeof(OffToOn), category: "other");
AddGenericPictureAction("lowLevelAdjustment", minValue: -30, maxValue: 30, category: "other", title: "Fine Tune Dark Areas", fromModelYear: ModelYear.Series2019);
AddGenericPictureAction("blackStabilizer", minValue: -30, maxValue: 30, category: "other", title: "Black Stabilizer", fromModelYear: ModelYear.Series2021);
AddGenericPictureAction("whiteStabilizer", minValue: -30, maxValue: 30, category: "other", title: "White Stabilizer", fromModelYear: ModelYear.Series2021);
AddGenericPictureAction("blueLight", typeof(BlueLight), category: "other", title: "Reduce Blue Light", fromModelYear: ModelYear.Series2021);
AddGenericPictureAction("gameMode_hdmi1", typeof(OffToOn), category: "other", title: "Game Optimizer HDMI1", fromModelYear: ModelYear.Series2021);
AddGenericPictureAction("gameMode_hdmi2", typeof(OffToOn), category: "other", title: "Game Optimizer HDMI2", fromModelYear: ModelYear.Series2021);
AddGenericPictureAction("gameMode_hdmi3", typeof(OffToOn), category: "other", title: "Game Optimizer HDMI3", fromModelYear: ModelYear.Series2021);
AddGenericPictureAction("gameMode_hdmi4", typeof(OffToOn), category: "other", title: "Game Optimizer HDMI4", fromModelYear: ModelYear.Series2021);
AddGenericPictureAction("gameOptimization", typeof(OffToOn), category: "other", title: "VRR & G-Sync", fromModelYear: ModelYear.Series2021);
AddGenericPictureAction("inputOptimization", typeof(InputOptimization), category: "other", title: "Prevent Input Delay(Input Lag)", fromModelYear: ModelYear.Series2021);
AddGenericPictureAction("gameOptimizationHDMI1", typeof(OffToOn), category: "other");
AddGenericPictureAction("gameOptimizationHDMI2", typeof(OffToOn), category: "other");
AddGenericPictureAction("gameOptimizationHDMI3", typeof(OffToOn), category: "other");
AddGenericPictureAction("gameOptimizationHDMI4", typeof(OffToOn), category: "other");
AddGenericPictureAction("freesync", typeof(OffToOn), category: "other", title: "AMD FreeSync Premium", fromModelYear: ModelYear.Series2020);
AddGenericPictureAction("freesyncOLEDHDMI1", typeof(OffToOn), category: "other", fromModelYear: ModelYear.Series2020);
AddGenericPictureAction("freesyncOLEDHDMI2", typeof(OffToOn), category: "other", fromModelYear: ModelYear.Series2020);
AddGenericPictureAction("freesyncOLEDHDMI3", typeof(OffToOn), category: "other", fromModelYear: ModelYear.Series2020);
+10 -5
View File
@@ -62,8 +62,11 @@ namespace ColorControl.Services.LG
{
_selectedDevice = value;
Config.PreferredMacAddress = _selectedDevice != null ? _selectedDevice.MacAddress : null;
SelectedDeviceChangedEvent?.Invoke(_selectedDevice, EventArgs.Empty);
}
}
public event EventHandler SelectedDeviceChangedEvent;
public LgServiceConfig Config { get; private set; }
public ProcessMonitorContext MonitorContext { get; private set; }
@@ -492,11 +495,13 @@ namespace ColorControl.Services.LG
return;
}
//if (device.CurrentState == LgDevice.PowerState.Active)
//{
// _monitorTask = null;
// MonitorProcesses();
//}
if (device.CurrentState == LgDevice.PowerState.Active)
{
if (Config.SetSelectedDeviceByPowerOn)
{
SelectedDevice = device;
}
}
}
private void MonitorProcesses()
@@ -16,6 +16,7 @@ namespace ColorControl.Services.LG
public int GameBarTop { get; set; }
public int GameBarLeft { get; set; }
public int ShutdownDelay { get; set; }
public bool SetSelectedDeviceByPowerOn { get; set; }
public LgServiceConfig()
{
@@ -53,7 +53,7 @@ namespace ColorControl.Svc
try
{
var result = HandleMessage(message);
var result = await HandleMessageAsync(message);
var resultJson = JsonConvert.SerializeObject(result);
@@ -95,7 +95,7 @@ namespace ColorControl.Svc
}
}
private SvcResultMessage HandleMessage(string json)
private async Task<SvcResultMessage> HandleMessageAsync(string json)
{
var message = JsonConvert.DeserializeObject<SvcMessage>(json);
@@ -105,6 +105,8 @@ namespace ColorControl.Svc
SvcMessageType.GetLog => HandleGetLogMessage(message),
SvcMessageType.ClearLog => HandleClearLogMessage(message),
SvcMessageType.ExecuteRpc => HandleExecuteRpcCommand(message),
SvcMessageType.ExecuteUpdate => await HandleExecuteUpdateCommandAsync(JsonConvert.DeserializeObject<SvcInstallUpdateMessage>(json)),
SvcMessageType.RestartAfterUpdate => HandleRestartAfterUpdateMessage(),
_ => SvcResultMessage.FromResult(false, "Unexpected message type")
};
@@ -150,6 +152,34 @@ namespace ColorControl.Svc
return SvcResultMessage.FromResult(true);
}
private async Task<SvcResultMessage> HandleExecuteUpdateCommandAsync(SvcInstallUpdateMessage message)
{
var localFile = Path.Combine(Program.DataDir, "update.zip");
await Utils.DownloadFileAsync(message.DownloadUrl, localFile);
var updatePath = Path.Combine(Program.DataDir, "ColorControl");
var directory = new DirectoryInfo(updatePath);
if (directory.Exists)
{
directory.Delete(true);
}
Utils.UnZipFile(localFile, Program.DataDir);
Utils.UpdateFiles(message.ClientPath, updatePath);
return SvcResultMessage.FromResult(true);
}
private SvcResultMessage HandleRestartAfterUpdateMessage()
{
Utils.StartProcess("cmd.exe", $@"/C net stop ""{Utils.SERVICE_NAME}"" && net start ""{Utils.SERVICE_NAME}""", true);
return SvcResultMessage.FromResult(true);
}
private async Task WakeDevicesAsync()
{
if (!UserSessionInfo.UserLocalSession)
+14
View File
@@ -6,6 +6,8 @@
GetLog = 2,
ClearLog = 3,
ExecuteRpc = 10,
ExecuteUpdate = 20,
RestartAfterUpdate = 21,
}
public class SvcMessage
@@ -14,4 +16,16 @@
public string Data { get; set; }
}
public class SvcInstallUpdateMessage : SvcMessage
{
public SvcInstallUpdateMessage()
{
MessageType = SvcMessageType.ExecuteUpdate;
}
public string DownloadUrl { get; set; }
public string ClientPath { get; set; }
}
}
+20
View File
@@ -170,6 +170,21 @@ namespace LgTv
twinZoom
}
public enum InputOptimization
{
auto,
on,
standard,
boost
}
public enum BlueLight
{
off,
level1,
level2
}
public enum HdmiIcon
{
[Description("HDMI")]
@@ -691,6 +706,11 @@ namespace LgTv
key = keys[0];
var childKey = keys[1];
if (value is string strValue && strValue != "false" && strValue != "true" && Utils.ParseInt(strValue, int.MinValue) == int.MinValue)
{
value = $"\"{value}\"";
}
jsonValue = @"{ """ + childKey + @""": " + value + " }";
}
else if (value is bool)