mirror of
https://github.com/Maassoft/ColorControl.git
synced 2026-10-22 08:32:18 -05:00
add auto update, add LG expert actions and auto set current device
This commit is contained in:
1 parent
cb09d5c540
commit
43f038e9ee
13 files changed
+437
-127
No files matched your search
@@ -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>
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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; }
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
|
||||
Generated
+100
-108
@@ -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
@@ -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
@@ -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();
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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; }
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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)
|
||||
|
||||
Reference in new issue
Block a user