Steel Play MetalTech P4 (wired) support (added the new vPidInfo device name property value)

This commit is contained in:
mika-n 2019-09-07 17:21:10 +03:00
commit e9ac995c7e
12 changed files with 5565 additions and 1404 deletions

View File

@ -140,6 +140,8 @@ namespace DS4Windows
private object busEvtQueueLock = new object();
public ControlService()
{
Crc32Algorithm.InitializeTable(DS4Device.DefaultPolynomial);
//sp.Stream = Properties.Resources.EE;
// Cause thread affinity to not be tied to main GUI thread
tempThread = new Thread(() => {
@ -401,7 +403,8 @@ namespace DS4Windows
DS4Device device = devEnum.Current;
//DS4Device device = devices.ElementAt(i);
if (showlog)
LogDebug(Properties.Resources.FoundController + device.getMacAddress() + " (" + device.getConnectionType() + ")");
LogDebug(Properties.Resources.FoundController + " " + device.getMacAddress() + " (" + device.getConnectionType() + ") (" +
device.DisplayName + ")");
Task task = new Task(() => { Thread.Sleep(5); WarnExclusiveModeFailure(device); });
task.Start();
@ -664,7 +667,9 @@ namespace DS4Windows
{
if (DS4Controllers[Index] == null)
{
LogDebug(Properties.Resources.FoundController + device.getMacAddress() + " (" + device.getConnectionType() + ")");
//LogDebug(Properties.Resources.FoundController + device.getMacAddress() + " (" + device.getConnectionType() + ")");
LogDebug(Properties.Resources.FoundController + " " + device.getMacAddress() + " (" + device.getConnectionType() + ") (" +
device.DisplayName + ")");
Task task = new Task(() => { Thread.Sleep(5); WarnExclusiveModeFailure(device); });
task.Start();
DS4Controllers[Index] = device;

View File

@ -76,10 +76,17 @@ namespace DS4Windows
else if (counters[deviceNum] > 180000)
counters[deviceNum] = 0;
double maxSat = GetMaxSatRainbow(deviceNum);
if (getLedAsBatteryIndicator(deviceNum))
color = HuetoRGB((float)counters[deviceNum] % 360, (byte)(device.getBattery() * 2.55));
{
byte useSat = (byte)(maxSat == 1.0 ?
device.getBattery() * 2.55 :
device.getBattery() * 2.55 * maxSat);
color = HuetoRGB((float)counters[deviceNum] % 360, useSat);
}
else
color = HuetoRGB((float)counters[deviceNum] % 360, 255);
color = HuetoRGB((float)counters[deviceNum] % 360,
(byte)(maxSat == 1.0 ? 255 : 255 * maxSat));
}
else if (getLedAsBatteryIndicator(deviceNum))

View File

@ -759,6 +759,12 @@ namespace DS4Windows
return m_Config.rainbow[index];
}
public static double[] MaxSatRainbow => m_Config.maxRainbowSat;
public static double GetMaxSatRainbow(int index)
{
return m_Config.maxRainbowSat[index];
}
public static bool[] FlushHIDQueue => m_Config.flushHIDQueue;
public static bool getFlushHIDQueue(int index)
{
@ -1879,6 +1885,8 @@ namespace DS4Windows
new DS4Color(Color.Blue)
};
public double[] maxRainbowSat = new double[5] { 1.0, 1.0, 1.0, 1.0, 1.0 };
public int[] chargingType = new int[5] { 0, 0, 0, 0, 0 };
public string[] launchProgram = new string[5] { string.Empty, string.Empty, string.Empty, string.Empty, string.Empty };
public bool[] dinputOnly = new bool[5] { false, false, false, false, false };
@ -2217,6 +2225,7 @@ namespace DS4Windows
XmlNode xmlR2Maxzone = m_Xdoc.CreateNode(XmlNodeType.Element, "R2MaxZone", null); xmlR2Maxzone.InnerText = r2ModInfo[device].maxZone.ToString(); Node.AppendChild(xmlR2Maxzone);
XmlNode xmlButtonMouseSensitivity = m_Xdoc.CreateNode(XmlNodeType.Element, "ButtonMouseSensitivity", null); xmlButtonMouseSensitivity.InnerText = buttonMouseSensitivity[device].ToString(); Node.AppendChild(xmlButtonMouseSensitivity);
XmlNode xmlRainbow = m_Xdoc.CreateNode(XmlNodeType.Element, "Rainbow", null); xmlRainbow.InnerText = rainbow[device].ToString(); Node.AppendChild(xmlRainbow);
XmlNode xmlMaxSatRainbow = m_Xdoc.CreateNode(XmlNodeType.Element, "MaxSatRainbow", null); xmlMaxSatRainbow.InnerText = Convert.ToInt32(maxRainbowSat[device] * 100.0).ToString(); Node.AppendChild(xmlMaxSatRainbow);
XmlNode xmlLSD = m_Xdoc.CreateNode(XmlNodeType.Element, "LSDeadZone", null); xmlLSD.InnerText = lsModInfo[device].deadZone.ToString(); Node.AppendChild(xmlLSD);
XmlNode xmlRSD = m_Xdoc.CreateNode(XmlNodeType.Element, "RSDeadZone", null); xmlRSD.InnerText = rsModInfo[device].deadZone.ToString(); Node.AppendChild(xmlRSD);
XmlNode xmlLSAD = m_Xdoc.CreateNode(XmlNodeType.Element, "LSAntiDeadZone", null); xmlLSAD.InnerText = lsModInfo[device].antiDeadZone.ToString(); Node.AppendChild(xmlLSAD);
@ -2974,6 +2983,11 @@ namespace DS4Windows
catch { missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/" + rootname + "/Rainbow"); double.TryParse(Item.InnerText, out rainbow[device]); }
catch { rainbow[device] = 0; missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/" + rootname + "/MaxSatRainbow");
int.TryParse(Item.InnerText, out int temp);
maxRainbowSat[device] = Math.Max(0, Math.Min(100, temp)) / 100.0;
}
catch { maxRainbowSat[device] = 1.0; missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/" + rootname + "/LSDeadZone"); int.TryParse(Item.InnerText, out lsModInfo[device].deadZone); }
catch { lsModInfo[device].deadZone = 10; missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/" + rootname + "/RSDeadZone"); int.TryParse(Item.InnerText, out rsModInfo[device].deadZone); }
@ -4566,6 +4580,7 @@ namespace DS4Windows
scrollSensitivity[device] = 0;
touchpadInvert[device] = 0;
rainbow[device] = 0;
maxRainbowSat[device] = 1.0;
flashAt[device] = 0;
mouseAccel[device] = false;
btPollRate[device] = 4;

View File

@ -172,6 +172,11 @@
this.cMCustomLed = new System.Windows.Forms.ContextMenuStrip(this.components);
this.useProfileColorToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.useCustomColorToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.label3 = new System.Windows.Forms.Label();
this.exclusivePB1 = new System.Windows.Forms.PictureBox();
this.exclusivePB2 = new System.Windows.Forms.PictureBox();
this.exclusivePB3 = new System.Windows.Forms.PictureBox();
this.exclusivePB4 = new System.Windows.Forms.PictureBox();
this.pnlButton.SuspendLayout();
this.cMTaskbar.SuspendLayout();
this.tabMain.SuspendLayout();
@ -200,6 +205,10 @@
this.tabLog.SuspendLayout();
this.panel3.SuspendLayout();
this.cMCustomLed.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.exclusivePB1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.exclusivePB2)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.exclusivePB3)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.exclusivePB4)).BeginInit();
this.SuspendLayout();
//
// lvDebug
@ -421,39 +430,44 @@
// tLPControllers
//
resources.ApplyResources(this.tLPControllers, "tLPControllers");
this.tLPControllers.Controls.Add(this.bnLight3, 6, 3);
this.tLPControllers.Controls.Add(this.label3, 2, 0);
this.tLPControllers.Controls.Add(this.bnLight3, 7, 3);
this.tLPControllers.Controls.Add(this.pBStatus1, 1, 1);
this.tLPControllers.Controls.Add(this.lbPad1, 0, 1);
this.tLPControllers.Controls.Add(this.lbPad2, 0, 2);
this.tLPControllers.Controls.Add(this.bnEditC3, 5, 3);
this.tLPControllers.Controls.Add(this.bnEditC4, 5, 4);
this.tLPControllers.Controls.Add(this.bnEditC3, 6, 3);
this.tLPControllers.Controls.Add(this.bnEditC4, 6, 4);
this.tLPControllers.Controls.Add(this.lbPad3, 0, 3);
this.tLPControllers.Controls.Add(this.lbPad4, 0, 4);
this.tLPControllers.Controls.Add(this.cBController1, 4, 1);
this.tLPControllers.Controls.Add(this.bnEditC2, 5, 2);
this.tLPControllers.Controls.Add(this.cBController2, 4, 2);
this.tLPControllers.Controls.Add(this.cBController3, 4, 3);
this.tLPControllers.Controls.Add(this.bnEditC1, 5, 1);
this.tLPControllers.Controls.Add(this.cBController4, 4, 4);
this.tLPControllers.Controls.Add(this.lbSelectedProfile, 4, 0);
this.tLPControllers.Controls.Add(this.cBController1, 5, 1);
this.tLPControllers.Controls.Add(this.bnEditC2, 6, 2);
this.tLPControllers.Controls.Add(this.cBController2, 5, 2);
this.tLPControllers.Controls.Add(this.cBController3, 5, 3);
this.tLPControllers.Controls.Add(this.bnEditC1, 6, 1);
this.tLPControllers.Controls.Add(this.cBController4, 5, 4);
this.tLPControllers.Controls.Add(this.lbSelectedProfile, 5, 0);
this.tLPControllers.Controls.Add(this.lbID, 0, 0);
this.tLPControllers.Controls.Add(this.lbStatus, 1, 0);
this.tLPControllers.Controls.Add(this.lbBattery, 2, 0);
this.tLPControllers.Controls.Add(this.lbBatt1, 2, 1);
this.tLPControllers.Controls.Add(this.lbBatt2, 2, 2);
this.tLPControllers.Controls.Add(this.lbBatt3, 2, 3);
this.tLPControllers.Controls.Add(this.lbBatt4, 2, 4);
this.tLPControllers.Controls.Add(this.lbBattery, 3, 0);
this.tLPControllers.Controls.Add(this.lbBatt1, 3, 1);
this.tLPControllers.Controls.Add(this.lbBatt2, 3, 2);
this.tLPControllers.Controls.Add(this.lbBatt3, 3, 3);
this.tLPControllers.Controls.Add(this.lbBatt4, 3, 4);
this.tLPControllers.Controls.Add(this.pBStatus2, 1, 2);
this.tLPControllers.Controls.Add(this.pBStatus3, 1, 3);
this.tLPControllers.Controls.Add(this.pBStatus4, 1, 4);
this.tLPControllers.Controls.Add(this.bnLight1, 6, 1);
this.tLPControllers.Controls.Add(this.bnLight2, 6, 2);
this.tLPControllers.Controls.Add(this.bnLight4, 6, 4);
this.tLPControllers.Controls.Add(this.lbLinkProfile, 3, 0);
this.tLPControllers.Controls.Add(this.linkCB1, 3, 1);
this.tLPControllers.Controls.Add(this.linkCB2, 3, 2);
this.tLPControllers.Controls.Add(this.linkCB3, 3, 3);
this.tLPControllers.Controls.Add(this.linkCB4, 3, 4);
this.tLPControllers.Controls.Add(this.bnLight1, 7, 1);
this.tLPControllers.Controls.Add(this.bnLight2, 7, 2);
this.tLPControllers.Controls.Add(this.bnLight4, 7, 4);
this.tLPControllers.Controls.Add(this.lbLinkProfile, 4, 0);
this.tLPControllers.Controls.Add(this.linkCB1, 4, 1);
this.tLPControllers.Controls.Add(this.linkCB2, 4, 2);
this.tLPControllers.Controls.Add(this.linkCB3, 4, 3);
this.tLPControllers.Controls.Add(this.linkCB4, 4, 4);
this.tLPControllers.Controls.Add(this.exclusivePB1, 2, 1);
this.tLPControllers.Controls.Add(this.exclusivePB2, 2, 2);
this.tLPControllers.Controls.Add(this.exclusivePB3, 2, 3);
this.tLPControllers.Controls.Add(this.exclusivePB4, 2, 4);
this.tLPControllers.Name = "tLPControllers";
//
// bnLight3
@ -1328,6 +1342,39 @@
resources.ApplyResources(this.useCustomColorToolStripMenuItem, "useCustomColorToolStripMenuItem");
this.useCustomColorToolStripMenuItem.Click += new System.EventHandler(this.useCustomColorToolStripMenuItem_Click);
//
// label3
//
resources.ApplyResources(this.label3, "label3");
this.label3.Name = "label3";
//
// exclusivePB1
//
resources.ApplyResources(this.exclusivePB1, "exclusivePB1");
this.exclusivePB1.Image = global::DS4Windows.Properties.Resources.none;
this.exclusivePB1.Name = "exclusivePB1";
this.exclusivePB1.TabStop = false;
//
// exclusivePB2
//
resources.ApplyResources(this.exclusivePB2, "exclusivePB2");
this.exclusivePB2.Image = global::DS4Windows.Properties.Resources.none;
this.exclusivePB2.Name = "exclusivePB2";
this.exclusivePB2.TabStop = false;
//
// exclusivePB3
//
resources.ApplyResources(this.exclusivePB3, "exclusivePB3");
this.exclusivePB3.Image = global::DS4Windows.Properties.Resources.none;
this.exclusivePB3.Name = "exclusivePB3";
this.exclusivePB3.TabStop = false;
//
// exclusivePB4
//
resources.ApplyResources(this.exclusivePB4, "exclusivePB4");
this.exclusivePB4.Image = global::DS4Windows.Properties.Resources.none;
this.exclusivePB4.Name = "exclusivePB4";
this.exclusivePB4.TabStop = false;
//
// DS4Form
//
resources.ApplyResources(this, "$this");
@ -1377,6 +1424,10 @@
this.tabLog.ResumeLayout(false);
this.panel3.ResumeLayout(false);
this.cMCustomLed.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.exclusivePB1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.exclusivePB2)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.exclusivePB3)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.exclusivePB4)).EndInit();
this.ResumeLayout(false);
}
@ -1525,6 +1576,11 @@
private System.Windows.Forms.CheckBox cBCustomSteam;
private System.Windows.Forms.TextBox tBSteamFolder;
private System.Windows.Forms.Panel langPanel;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.PictureBox exclusivePB1;
private System.Windows.Forms.PictureBox exclusivePB2;
private System.Windows.Forms.PictureBox exclusivePB3;
private System.Windows.Forms.PictureBox exclusivePB4;
//private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem2;
}
}

View File

@ -34,6 +34,7 @@ namespace DS4Windows.Forms
private Button[] ebns;
private Button[] lights;
private PictureBox[] statPB;
private PictureBox[] exclusivePB;
private ToolStripMenuItem[] shortcuts;
private ToolStripMenuItem[] disconnectShortcuts;
protected CheckBox[] linkedProfileCB;
@ -138,6 +139,7 @@ namespace DS4Windows.Forms
ebns = new Button[4] { bnEditC1, bnEditC2, bnEditC3, bnEditC4 };
lights = new Button[4] { bnLight1, bnLight2, bnLight3, bnLight4 };
statPB = new PictureBox[4] { pBStatus1, pBStatus2, pBStatus3, pBStatus4 };
exclusivePB = new PictureBox[4] { exclusivePB1, exclusivePB2, exclusivePB3, exclusivePB4 };
shortcuts = new ToolStripMenuItem[4] { (ToolStripMenuItem)notifyIcon1.ContextMenuStrip.Items[0],
(ToolStripMenuItem)notifyIcon1.ContextMenuStrip.Items[1],
(ToolStripMenuItem)notifyIcon1.ContextMenuStrip.Items[2],
@ -530,6 +532,7 @@ namespace DS4Windows.Forms
if (Index < ControlService.DS4_CONTROLLER_COUNT)
{
statPB[Index].Visible = false;
exclusivePB[Index].Visible = false;
toolTip1.SetToolTip(statPB[Index], "");
Batteries[Index].Text = Properties.Resources.NA;
Pads[Index].Text = Properties.Resources.Disconnected;
@ -1544,6 +1547,18 @@ Properties.Resources.DS4Update, MessageBoxButtons.YesNo, MessageBoxIcon.Question
default: statPB[Index].Visible = false; toolTip1.SetToolTip(statPB[Index], ""); break;
}
DS4Device dev = Program.rootHub.DS4Controllers[Index];
if (dev != null)
{
exclusivePB[Index].Visible = true;
exclusivePB[Index].Image = dev.IsExclusive ? Properties.Resources._checked : Properties.Resources.cancel;
}
else
{
exclusivePB[Index].Visible = false;
exclusivePB[Index].Image = Properties.Resources.cancel;
}
Batteries[Index].Text = Program.rootHub.getDS4Battery(Index);
int profileIndex = cbs[Index].FindStringExact(ProfilePath[Index]);
if (profileIndex >= 0)
@ -1593,6 +1608,7 @@ Properties.Resources.DS4Update, MessageBoxButtons.YesNo, MessageBoxIcon.Question
Pads[devIndex].Text = Properties.Resources.Disconnected;
Enable_Controls(devIndex, false);
statPB[devIndex].Visible = false;
exclusivePB[devIndex].Visible = false;
toolTip1.SetToolTip(statPB[devIndex], "");
DS4Device[] devices = Program.rootHub.DS4Controllers;

View File

@ -433,7 +433,43 @@
<value>XML Files (*.xml)|*.xml</value>
</data>
<data name="tLPControllers.ColumnCount" type="System.Int32, mscorlib">
<value>7</value>
<value>8</value>
</data>
<data name="label3.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>None</value>
</data>
<data name="label3.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="label3.Font" type="System.Drawing.Font, System.Drawing">
<value>Microsoft Sans Serif, 9pt, style=Bold</value>
</data>
<data name="label3.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="label3.Location" type="System.Drawing.Point, System.Drawing">
<value>377, 7</value>
</data>
<data name="label3.Size" type="System.Drawing.Size, System.Drawing">
<value>23, 15</value>
</data>
<data name="label3.TabIndex" type="System.Int32, mscorlib">
<value>58</value>
</data>
<data name="label3.Text" xml:space="preserve">
<value>Ex</value>
</data>
<data name="&gt;&gt;label3.Name" xml:space="preserve">
<value>label3</value>
</data>
<data name="&gt;&gt;label3.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;label3.Parent" xml:space="preserve">
<value>tLPControllers</value>
</data>
<data name="&gt;&gt;label3.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="bnLight3.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
@ -445,10 +481,10 @@
<value>NoControl</value>
</data>
<data name="bnLight3.Location" type="System.Drawing.Point, System.Drawing">
<value>734, 89</value>
<value>732, 89</value>
</data>
<data name="bnLight3.Size" type="System.Drawing.Size, System.Drawing">
<value>159, 22</value>
<value>161, 22</value>
</data>
<data name="bnLight3.TabIndex" type="System.Int32, mscorlib">
<value>50</value>
@ -463,7 +499,7 @@
<value>tLPControllers</value>
</data>
<data name="&gt;&gt;bnLight3.ZOrder" xml:space="preserve">
<value>0</value>
<value>1</value>
</data>
<data name="pBStatus1.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>None</value>
@ -472,7 +508,7 @@
<value>NoControl</value>
</data>
<data name="pBStatus1.Location" type="System.Drawing.Point, System.Drawing">
<value>338, 34</value>
<value>300, 34</value>
</data>
<data name="pBStatus1.Size" type="System.Drawing.Size, System.Drawing">
<value>39, 20</value>
@ -493,7 +529,7 @@
<value>tLPControllers</value>
</data>
<data name="&gt;&gt;pBStatus1.ZOrder" xml:space="preserve">
<value>1</value>
<value>2</value>
</data>
<data name="lbPad1.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Left</value>
@ -529,7 +565,7 @@
<value>tLPControllers</value>
</data>
<data name="&gt;&gt;lbPad1.ZOrder" xml:space="preserve">
<value>2</value>
<value>3</value>
</data>
<data name="lbPad2.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Left</value>
@ -565,7 +601,7 @@
<value>tLPControllers</value>
</data>
<data name="&gt;&gt;lbPad2.ZOrder" xml:space="preserve">
<value>3</value>
<value>4</value>
</data>
<data name="bnEditC3.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Left</value>
@ -574,7 +610,7 @@
<value>NoControl</value>
</data>
<data name="bnEditC3.Location" type="System.Drawing.Point, System.Drawing">
<value>694, 89</value>
<value>692, 89</value>
</data>
<data name="bnEditC3.Size" type="System.Drawing.Size, System.Drawing">
<value>34, 22</value>
@ -595,7 +631,7 @@
<value>tLPControllers</value>
</data>
<data name="&gt;&gt;bnEditC3.ZOrder" xml:space="preserve">
<value>4</value>
<value>5</value>
</data>
<data name="bnEditC4.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Left</value>
@ -604,7 +640,7 @@
<value>NoControl</value>
</data>
<data name="bnEditC4.Location" type="System.Drawing.Point, System.Drawing">
<value>694, 117</value>
<value>692, 117</value>
</data>
<data name="bnEditC4.Size" type="System.Drawing.Size, System.Drawing">
<value>34, 22</value>
@ -625,7 +661,7 @@
<value>tLPControllers</value>
</data>
<data name="&gt;&gt;bnEditC4.ZOrder" xml:space="preserve">
<value>5</value>
<value>6</value>
</data>
<data name="lbPad3.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Left</value>
@ -661,7 +697,7 @@
<value>tLPControllers</value>
</data>
<data name="&gt;&gt;lbPad3.ZOrder" xml:space="preserve">
<value>6</value>
<value>7</value>
</data>
<data name="lbPad4.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Left</value>
@ -697,13 +733,13 @@
<value>tLPControllers</value>
</data>
<data name="&gt;&gt;lbPad4.ZOrder" xml:space="preserve">
<value>7</value>
<value>8</value>
</data>
<data name="cBController1.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>None</value>
</data>
<data name="cBController1.Location" type="System.Drawing.Point, System.Drawing">
<value>577, 33</value>
<value>575, 33</value>
</data>
<data name="cBController1.Size" type="System.Drawing.Size, System.Drawing">
<value>111, 21</value>
@ -721,7 +757,7 @@
<value>tLPControllers</value>
</data>
<data name="&gt;&gt;cBController1.ZOrder" xml:space="preserve">
<value>8</value>
<value>9</value>
</data>
<data name="bnEditC2.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Left</value>
@ -730,7 +766,7 @@
<value>NoControl</value>
</data>
<data name="bnEditC2.Location" type="System.Drawing.Point, System.Drawing">
<value>694, 61</value>
<value>692, 61</value>
</data>
<data name="bnEditC2.Size" type="System.Drawing.Size, System.Drawing">
<value>34, 22</value>
@ -751,13 +787,13 @@
<value>tLPControllers</value>
</data>
<data name="&gt;&gt;bnEditC2.ZOrder" xml:space="preserve">
<value>9</value>
<value>10</value>
</data>
<data name="cBController2.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>None</value>
</data>
<data name="cBController2.Location" type="System.Drawing.Point, System.Drawing">
<value>577, 61</value>
<value>575, 61</value>
</data>
<data name="cBController2.Size" type="System.Drawing.Size, System.Drawing">
<value>111, 21</value>
@ -775,13 +811,13 @@
<value>tLPControllers</value>
</data>
<data name="&gt;&gt;cBController2.ZOrder" xml:space="preserve">
<value>10</value>
<value>11</value>
</data>
<data name="cBController3.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>None</value>
</data>
<data name="cBController3.Location" type="System.Drawing.Point, System.Drawing">
<value>577, 89</value>
<value>575, 89</value>
</data>
<data name="cBController3.Size" type="System.Drawing.Size, System.Drawing">
<value>111, 21</value>
@ -799,7 +835,7 @@
<value>tLPControllers</value>
</data>
<data name="&gt;&gt;cBController3.ZOrder" xml:space="preserve">
<value>11</value>
<value>12</value>
</data>
<data name="bnEditC1.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Left</value>
@ -808,7 +844,7 @@
<value>NoControl</value>
</data>
<data name="bnEditC1.Location" type="System.Drawing.Point, System.Drawing">
<value>694, 33</value>
<value>692, 33</value>
</data>
<data name="bnEditC1.Size" type="System.Drawing.Size, System.Drawing">
<value>34, 22</value>
@ -829,13 +865,13 @@
<value>tLPControllers</value>
</data>
<data name="&gt;&gt;bnEditC1.ZOrder" xml:space="preserve">
<value>12</value>
<value>13</value>
</data>
<data name="cBController4.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>None</value>
</data>
<data name="cBController4.Location" type="System.Drawing.Point, System.Drawing">
<value>577, 117</value>
<value>575, 117</value>
</data>
<data name="cBController4.Size" type="System.Drawing.Size, System.Drawing">
<value>111, 21</value>
@ -853,7 +889,7 @@
<value>tLPControllers</value>
</data>
<data name="&gt;&gt;cBController4.ZOrder" xml:space="preserve">
<value>13</value>
<value>14</value>
</data>
<data name="lbSelectedProfile.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>None</value>
@ -868,7 +904,7 @@
<value>NoControl</value>
</data>
<data name="lbSelectedProfile.Location" type="System.Drawing.Point, System.Drawing">
<value>578, 7</value>
<value>576, 7</value>
</data>
<data name="lbSelectedProfile.Size" type="System.Drawing.Size, System.Drawing">
<value>109, 15</value>
@ -889,7 +925,7 @@
<value>tLPControllers</value>
</data>
<data name="&gt;&gt;lbSelectedProfile.ZOrder" xml:space="preserve">
<value>14</value>
<value>15</value>
</data>
<data name="lbID.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Left</value>
@ -925,7 +961,7 @@
<value>tLPControllers</value>
</data>
<data name="&gt;&gt;lbID.ZOrder" xml:space="preserve">
<value>15</value>
<value>16</value>
</data>
<data name="lbStatus.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>None</value>
@ -940,7 +976,7 @@
<value>NoControl</value>
</data>
<data name="lbStatus.Location" type="System.Drawing.Point, System.Drawing">
<value>334, 7</value>
<value>296, 7</value>
</data>
<data name="lbStatus.Size" type="System.Drawing.Size, System.Drawing">
<value>47, 15</value>
@ -961,7 +997,7 @@
<value>tLPControllers</value>
</data>
<data name="&gt;&gt;lbStatus.ZOrder" xml:space="preserve">
<value>16</value>
<value>17</value>
</data>
<data name="lbBattery.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>None</value>
@ -976,7 +1012,7 @@
<value>NoControl</value>
</data>
<data name="lbBattery.Location" type="System.Drawing.Point, System.Drawing">
<value>425, 7</value>
<value>427, 7</value>
</data>
<data name="lbBattery.Size" type="System.Drawing.Size, System.Drawing">
<value>51, 15</value>
@ -997,7 +1033,7 @@
<value>tLPControllers</value>
</data>
<data name="&gt;&gt;lbBattery.ZOrder" xml:space="preserve">
<value>17</value>
<value>18</value>
</data>
<data name="lbBatt1.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>None</value>
@ -1012,7 +1048,7 @@
<value>NoControl</value>
</data>
<data name="lbBatt1.Location" type="System.Drawing.Point, System.Drawing">
<value>431, 36</value>
<value>433, 36</value>
</data>
<data name="lbBatt1.Size" type="System.Drawing.Size, System.Drawing">
<value>39, 15</value>
@ -1033,7 +1069,7 @@
<value>tLPControllers</value>
</data>
<data name="&gt;&gt;lbBatt1.ZOrder" xml:space="preserve">
<value>18</value>
<value>19</value>
</data>
<data name="lbBatt2.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>None</value>
@ -1048,7 +1084,7 @@
<value>NoControl</value>
</data>
<data name="lbBatt2.Location" type="System.Drawing.Point, System.Drawing">
<value>431, 64</value>
<value>433, 64</value>
</data>
<data name="lbBatt2.Size" type="System.Drawing.Size, System.Drawing">
<value>39, 15</value>
@ -1069,7 +1105,7 @@
<value>tLPControllers</value>
</data>
<data name="&gt;&gt;lbBatt2.ZOrder" xml:space="preserve">
<value>19</value>
<value>20</value>
</data>
<data name="lbBatt3.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>None</value>
@ -1084,7 +1120,7 @@
<value>NoControl</value>
</data>
<data name="lbBatt3.Location" type="System.Drawing.Point, System.Drawing">
<value>431, 92</value>
<value>433, 92</value>
</data>
<data name="lbBatt3.Size" type="System.Drawing.Size, System.Drawing">
<value>39, 15</value>
@ -1105,7 +1141,7 @@
<value>tLPControllers</value>
</data>
<data name="&gt;&gt;lbBatt3.ZOrder" xml:space="preserve">
<value>20</value>
<value>21</value>
</data>
<data name="lbBatt4.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>None</value>
@ -1120,7 +1156,7 @@
<value>NoControl</value>
</data>
<data name="lbBatt4.Location" type="System.Drawing.Point, System.Drawing">
<value>431, 120</value>
<value>433, 120</value>
</data>
<data name="lbBatt4.Size" type="System.Drawing.Size, System.Drawing">
<value>39, 15</value>
@ -1141,7 +1177,7 @@
<value>tLPControllers</value>
</data>
<data name="&gt;&gt;lbBatt4.ZOrder" xml:space="preserve">
<value>21</value>
<value>22</value>
</data>
<data name="pBStatus2.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>None</value>
@ -1150,7 +1186,7 @@
<value>NoControl</value>
</data>
<data name="pBStatus2.Location" type="System.Drawing.Point, System.Drawing">
<value>338, 62</value>
<value>300, 62</value>
</data>
<data name="pBStatus2.Size" type="System.Drawing.Size, System.Drawing">
<value>39, 20</value>
@ -1171,7 +1207,7 @@
<value>tLPControllers</value>
</data>
<data name="&gt;&gt;pBStatus2.ZOrder" xml:space="preserve">
<value>22</value>
<value>23</value>
</data>
<data name="pBStatus3.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>None</value>
@ -1180,7 +1216,7 @@
<value>NoControl</value>
</data>
<data name="pBStatus3.Location" type="System.Drawing.Point, System.Drawing">
<value>338, 90</value>
<value>300, 90</value>
</data>
<data name="pBStatus3.Size" type="System.Drawing.Size, System.Drawing">
<value>39, 20</value>
@ -1201,7 +1237,7 @@
<value>tLPControllers</value>
</data>
<data name="&gt;&gt;pBStatus3.ZOrder" xml:space="preserve">
<value>23</value>
<value>24</value>
</data>
<data name="pBStatus4.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>None</value>
@ -1210,7 +1246,7 @@
<value>NoControl</value>
</data>
<data name="pBStatus4.Location" type="System.Drawing.Point, System.Drawing">
<value>338, 118</value>
<value>300, 118</value>
</data>
<data name="pBStatus4.Size" type="System.Drawing.Size, System.Drawing">
<value>39, 20</value>
@ -1231,7 +1267,7 @@
<value>tLPControllers</value>
</data>
<data name="&gt;&gt;pBStatus4.ZOrder" xml:space="preserve">
<value>24</value>
<value>25</value>
</data>
<data name="bnLight1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
@ -1243,10 +1279,10 @@
<value>NoControl</value>
</data>
<data name="bnLight1.Location" type="System.Drawing.Point, System.Drawing">
<value>734, 33</value>
<value>732, 33</value>
</data>
<data name="bnLight1.Size" type="System.Drawing.Size, System.Drawing">
<value>159, 22</value>
<value>161, 22</value>
</data>
<data name="bnLight1.TabIndex" type="System.Int32, mscorlib">
<value>50</value>
@ -1261,7 +1297,7 @@
<value>tLPControllers</value>
</data>
<data name="&gt;&gt;bnLight1.ZOrder" xml:space="preserve">
<value>25</value>
<value>26</value>
</data>
<data name="bnLight2.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
@ -1273,10 +1309,10 @@
<value>NoControl</value>
</data>
<data name="bnLight2.Location" type="System.Drawing.Point, System.Drawing">
<value>734, 61</value>
<value>732, 61</value>
</data>
<data name="bnLight2.Size" type="System.Drawing.Size, System.Drawing">
<value>159, 22</value>
<value>161, 22</value>
</data>
<data name="bnLight2.TabIndex" type="System.Int32, mscorlib">
<value>51</value>
@ -1291,7 +1327,7 @@
<value>tLPControllers</value>
</data>
<data name="&gt;&gt;bnLight2.ZOrder" xml:space="preserve">
<value>26</value>
<value>27</value>
</data>
<data name="bnLight4.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
@ -1303,10 +1339,10 @@
<value>NoControl</value>
</data>
<data name="bnLight4.Location" type="System.Drawing.Point, System.Drawing">
<value>734, 117</value>
<value>732, 117</value>
</data>
<data name="bnLight4.Size" type="System.Drawing.Size, System.Drawing">
<value>159, 22</value>
<value>161, 22</value>
</data>
<data name="bnLight4.TabIndex" type="System.Int32, mscorlib">
<value>52</value>
@ -1321,7 +1357,7 @@
<value>tLPControllers</value>
</data>
<data name="&gt;&gt;bnLight4.ZOrder" xml:space="preserve">
<value>27</value>
<value>28</value>
</data>
<data name="lbLinkProfile.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>None</value>
@ -1336,7 +1372,7 @@
<value>NoControl</value>
</data>
<data name="lbLinkProfile.Location" type="System.Drawing.Point, System.Drawing">
<value>500, 0</value>
<value>498, 0</value>
</data>
<data name="lbLinkProfile.Size" type="System.Drawing.Size, System.Drawing">
<value>67, 30</value>
@ -1360,7 +1396,7 @@
<value>tLPControllers</value>
</data>
<data name="&gt;&gt;lbLinkProfile.ZOrder" xml:space="preserve">
<value>28</value>
<value>29</value>
</data>
<data name="linkCB1.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>None</value>
@ -1375,7 +1411,7 @@
<value>NoControl</value>
</data>
<data name="linkCB1.Location" type="System.Drawing.Point, System.Drawing">
<value>526, 37</value>
<value>524, 37</value>
</data>
<data name="linkCB1.Size" type="System.Drawing.Size, System.Drawing">
<value>15, 14</value>
@ -1393,7 +1429,7 @@
<value>tLPControllers</value>
</data>
<data name="&gt;&gt;linkCB1.ZOrder" xml:space="preserve">
<value>29</value>
<value>30</value>
</data>
<data name="linkCB2.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>None</value>
@ -1408,7 +1444,7 @@
<value>NoControl</value>
</data>
<data name="linkCB2.Location" type="System.Drawing.Point, System.Drawing">
<value>526, 65</value>
<value>524, 65</value>
</data>
<data name="linkCB2.Size" type="System.Drawing.Size, System.Drawing">
<value>15, 14</value>
@ -1426,7 +1462,7 @@
<value>tLPControllers</value>
</data>
<data name="&gt;&gt;linkCB2.ZOrder" xml:space="preserve">
<value>30</value>
<value>31</value>
</data>
<data name="linkCB3.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>None</value>
@ -1441,7 +1477,7 @@
<value>NoControl</value>
</data>
<data name="linkCB3.Location" type="System.Drawing.Point, System.Drawing">
<value>526, 93</value>
<value>524, 93</value>
</data>
<data name="linkCB3.Size" type="System.Drawing.Size, System.Drawing">
<value>15, 14</value>
@ -1459,7 +1495,7 @@
<value>tLPControllers</value>
</data>
<data name="&gt;&gt;linkCB3.ZOrder" xml:space="preserve">
<value>31</value>
<value>32</value>
</data>
<data name="linkCB4.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>None</value>
@ -1474,7 +1510,7 @@
<value>NoControl</value>
</data>
<data name="linkCB4.Location" type="System.Drawing.Point, System.Drawing">
<value>526, 121</value>
<value>524, 121</value>
</data>
<data name="linkCB4.Size" type="System.Drawing.Size, System.Drawing">
<value>15, 14</value>
@ -1492,7 +1528,115 @@
<value>tLPControllers</value>
</data>
<data name="&gt;&gt;linkCB4.ZOrder" xml:space="preserve">
<value>32</value>
<value>33</value>
</data>
<data name="exclusivePB1.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>None</value>
</data>
<data name="exclusivePB1.Location" type="System.Drawing.Point, System.Drawing">
<value>369, 34</value>
</data>
<data name="exclusivePB1.Size" type="System.Drawing.Size, System.Drawing">
<value>39, 20</value>
</data>
<data name="exclusivePB1.SizeMode" type="System.Windows.Forms.PictureBoxSizeMode, System.Windows.Forms">
<value>AutoSize</value>
</data>
<data name="exclusivePB1.TabIndex" type="System.Int32, mscorlib">
<value>59</value>
</data>
<data name="&gt;&gt;exclusivePB1.Name" xml:space="preserve">
<value>exclusivePB1</value>
</data>
<data name="&gt;&gt;exclusivePB1.Type" xml:space="preserve">
<value>System.Windows.Forms.PictureBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;exclusivePB1.Parent" xml:space="preserve">
<value>tLPControllers</value>
</data>
<data name="&gt;&gt;exclusivePB1.ZOrder" xml:space="preserve">
<value>34</value>
</data>
<data name="exclusivePB2.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>None</value>
</data>
<data name="exclusivePB2.Location" type="System.Drawing.Point, System.Drawing">
<value>369, 62</value>
</data>
<data name="exclusivePB2.Size" type="System.Drawing.Size, System.Drawing">
<value>39, 20</value>
</data>
<data name="exclusivePB2.SizeMode" type="System.Windows.Forms.PictureBoxSizeMode, System.Windows.Forms">
<value>AutoSize</value>
</data>
<data name="exclusivePB2.TabIndex" type="System.Int32, mscorlib">
<value>60</value>
</data>
<data name="&gt;&gt;exclusivePB2.Name" xml:space="preserve">
<value>exclusivePB2</value>
</data>
<data name="&gt;&gt;exclusivePB2.Type" xml:space="preserve">
<value>System.Windows.Forms.PictureBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;exclusivePB2.Parent" xml:space="preserve">
<value>tLPControllers</value>
</data>
<data name="&gt;&gt;exclusivePB2.ZOrder" xml:space="preserve">
<value>35</value>
</data>
<data name="exclusivePB3.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>None</value>
</data>
<data name="exclusivePB3.Location" type="System.Drawing.Point, System.Drawing">
<value>369, 90</value>
</data>
<data name="exclusivePB3.Size" type="System.Drawing.Size, System.Drawing">
<value>39, 20</value>
</data>
<data name="exclusivePB3.SizeMode" type="System.Windows.Forms.PictureBoxSizeMode, System.Windows.Forms">
<value>AutoSize</value>
</data>
<data name="exclusivePB3.TabIndex" type="System.Int32, mscorlib">
<value>61</value>
</data>
<data name="&gt;&gt;exclusivePB3.Name" xml:space="preserve">
<value>exclusivePB3</value>
</data>
<data name="&gt;&gt;exclusivePB3.Type" xml:space="preserve">
<value>System.Windows.Forms.PictureBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;exclusivePB3.Parent" xml:space="preserve">
<value>tLPControllers</value>
</data>
<data name="&gt;&gt;exclusivePB3.ZOrder" xml:space="preserve">
<value>36</value>
</data>
<data name="exclusivePB4.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>None</value>
</data>
<data name="exclusivePB4.Location" type="System.Drawing.Point, System.Drawing">
<value>369, 118</value>
</data>
<data name="exclusivePB4.Size" type="System.Drawing.Size, System.Drawing">
<value>39, 20</value>
</data>
<data name="exclusivePB4.SizeMode" type="System.Windows.Forms.PictureBoxSizeMode, System.Windows.Forms">
<value>AutoSize</value>
</data>
<data name="exclusivePB4.TabIndex" type="System.Int32, mscorlib">
<value>62</value>
</data>
<data name="&gt;&gt;exclusivePB4.Name" xml:space="preserve">
<value>exclusivePB4</value>
</data>
<data name="&gt;&gt;exclusivePB4.Type" xml:space="preserve">
<value>System.Windows.Forms.PictureBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;exclusivePB4.Parent" xml:space="preserve">
<value>tLPControllers</value>
</data>
<data name="&gt;&gt;exclusivePB4.ZOrder" xml:space="preserve">
<value>37</value>
</data>
<data name="tLPControllers.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Top</value>
@ -1522,7 +1666,7 @@
<value>0</value>
</data>
<data name="tLPControllers.LayoutSettings" type="System.Windows.Forms.TableLayoutSettings, System.Windows.Forms">
<value>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;TableLayoutSettings&gt;&lt;Controls&gt;&lt;Control Name="bnLight3" Row="3" RowSpan="1" Column="6" ColumnSpan="1" /&gt;&lt;Control Name="pBStatus1" Row="1" RowSpan="1" Column="1" ColumnSpan="1" /&gt;&lt;Control Name="lbPad1" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="lbPad2" Row="2" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="bnEditC3" Row="3" RowSpan="1" Column="5" ColumnSpan="1" /&gt;&lt;Control Name="bnEditC4" Row="4" RowSpan="1" Column="5" ColumnSpan="1" /&gt;&lt;Control Name="lbPad3" Row="3" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="lbPad4" Row="4" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="cBController1" Row="1" RowSpan="1" Column="4" ColumnSpan="1" /&gt;&lt;Control Name="bnEditC2" Row="2" RowSpan="1" Column="5" ColumnSpan="1" /&gt;&lt;Control Name="cBController2" Row="2" RowSpan="1" Column="4" ColumnSpan="1" /&gt;&lt;Control Name="cBController3" Row="3" RowSpan="1" Column="4" ColumnSpan="1" /&gt;&lt;Control Name="bnEditC1" Row="1" RowSpan="1" Column="5" ColumnSpan="1" /&gt;&lt;Control Name="cBController4" Row="4" RowSpan="1" Column="4" ColumnSpan="1" /&gt;&lt;Control Name="lbSelectedProfile" Row="0" RowSpan="1" Column="4" ColumnSpan="1" /&gt;&lt;Control Name="lbID" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="lbStatus" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /&gt;&lt;Control Name="lbBattery" Row="0" RowSpan="1" Column="2" ColumnSpan="1" /&gt;&lt;Control Name="lbBatt1" Row="1" RowSpan="1" Column="2" ColumnSpan="1" /&gt;&lt;Control Name="lbBatt2" Row="2" RowSpan="1" Column="2" ColumnSpan="1" /&gt;&lt;Control Name="lbBatt3" Row="3" RowSpan="1" Column="2" ColumnSpan="1" /&gt;&lt;Control Name="lbBatt4" Row="4" RowSpan="1" Column="2" ColumnSpan="1" /&gt;&lt;Control Name="pBStatus2" Row="2" RowSpan="1" Column="1" ColumnSpan="1" /&gt;&lt;Control Name="pBStatus3" Row="3" RowSpan="1" Column="1" ColumnSpan="1" /&gt;&lt;Control Name="pBStatus4" Row="4" RowSpan="1" Column="1" ColumnSpan="1" /&gt;&lt;Control Name="bnLight1" Row="1" RowSpan="1" Column="6" ColumnSpan="1" /&gt;&lt;Control Name="bnLight2" Row="2" RowSpan="1" Column="6" ColumnSpan="1" /&gt;&lt;Control Name="bnLight4" Row="4" RowSpan="1" Column="6" ColumnSpan="1" /&gt;&lt;Control Name="lbLinkProfile" Row="0" RowSpan="1" Column="3" ColumnSpan="1" /&gt;&lt;Control Name="linkCB1" Row="1" RowSpan="1" Column="3" ColumnSpan="1" /&gt;&lt;Control Name="linkCB2" Row="2" RowSpan="1" Column="3" ColumnSpan="1" /&gt;&lt;Control Name="linkCB3" Row="3" RowSpan="1" Column="3" ColumnSpan="1" /&gt;&lt;Control Name="linkCB4" Row="4" RowSpan="1" Column="3" ColumnSpan="1" /&gt;&lt;/Controls&gt;&lt;Columns Styles="Percent,62.29144,Percent,20.02225,Percent,17.68632,Absolute,80,AutoSize,0,AutoSize,0,Absolute,164" /&gt;&lt;Rows Styles="AutoSize,0,Percent,25,Percent,25,Percent,25,Percent,25" /&gt;&lt;/TableLayoutSettings&gt;</value>
<value>&lt;?xml version="1.0" encoding="utf-16"?&gt;&lt;TableLayoutSettings&gt;&lt;Controls&gt;&lt;Control Name="label3" Row="0" RowSpan="1" Column="2" ColumnSpan="1" /&gt;&lt;Control Name="bnLight3" Row="3" RowSpan="1" Column="7" ColumnSpan="1" /&gt;&lt;Control Name="pBStatus1" Row="1" RowSpan="1" Column="1" ColumnSpan="1" /&gt;&lt;Control Name="lbPad1" Row="1" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="lbPad2" Row="2" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="bnEditC3" Row="3" RowSpan="1" Column="6" ColumnSpan="1" /&gt;&lt;Control Name="bnEditC4" Row="4" RowSpan="1" Column="6" ColumnSpan="1" /&gt;&lt;Control Name="lbPad3" Row="3" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="lbPad4" Row="4" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="cBController1" Row="1" RowSpan="1" Column="5" ColumnSpan="1" /&gt;&lt;Control Name="bnEditC2" Row="2" RowSpan="1" Column="6" ColumnSpan="1" /&gt;&lt;Control Name="cBController2" Row="2" RowSpan="1" Column="5" ColumnSpan="1" /&gt;&lt;Control Name="cBController3" Row="3" RowSpan="1" Column="5" ColumnSpan="1" /&gt;&lt;Control Name="bnEditC1" Row="1" RowSpan="1" Column="6" ColumnSpan="1" /&gt;&lt;Control Name="cBController4" Row="4" RowSpan="1" Column="5" ColumnSpan="1" /&gt;&lt;Control Name="lbSelectedProfile" Row="0" RowSpan="1" Column="5" ColumnSpan="1" /&gt;&lt;Control Name="lbID" Row="0" RowSpan="1" Column="0" ColumnSpan="1" /&gt;&lt;Control Name="lbStatus" Row="0" RowSpan="1" Column="1" ColumnSpan="1" /&gt;&lt;Control Name="lbBattery" Row="0" RowSpan="1" Column="3" ColumnSpan="1" /&gt;&lt;Control Name="lbBatt1" Row="1" RowSpan="1" Column="3" ColumnSpan="1" /&gt;&lt;Control Name="lbBatt2" Row="2" RowSpan="1" Column="3" ColumnSpan="1" /&gt;&lt;Control Name="lbBatt3" Row="3" RowSpan="1" Column="3" ColumnSpan="1" /&gt;&lt;Control Name="lbBatt4" Row="4" RowSpan="1" Column="3" ColumnSpan="1" /&gt;&lt;Control Name="pBStatus2" Row="2" RowSpan="1" Column="1" ColumnSpan="1" /&gt;&lt;Control Name="pBStatus3" Row="3" RowSpan="1" Column="1" ColumnSpan="1" /&gt;&lt;Control Name="pBStatus4" Row="4" RowSpan="1" Column="1" ColumnSpan="1" /&gt;&lt;Control Name="bnLight1" Row="1" RowSpan="1" Column="7" ColumnSpan="1" /&gt;&lt;Control Name="bnLight2" Row="2" RowSpan="1" Column="7" ColumnSpan="1" /&gt;&lt;Control Name="bnLight4" Row="4" RowSpan="1" Column="7" ColumnSpan="1" /&gt;&lt;Control Name="lbLinkProfile" Row="0" RowSpan="1" Column="4" ColumnSpan="1" /&gt;&lt;Control Name="linkCB1" Row="1" RowSpan="1" Column="4" ColumnSpan="1" /&gt;&lt;Control Name="linkCB2" Row="2" RowSpan="1" Column="4" ColumnSpan="1" /&gt;&lt;Control Name="linkCB3" Row="3" RowSpan="1" Column="4" ColumnSpan="1" /&gt;&lt;Control Name="linkCB4" Row="4" RowSpan="1" Column="4" ColumnSpan="1" /&gt;&lt;Control Name="exclusivePB1" Row="1" RowSpan="1" Column="2" ColumnSpan="1" /&gt;&lt;Control Name="exclusivePB2" Row="2" RowSpan="1" Column="2" ColumnSpan="1" /&gt;&lt;Control Name="exclusivePB3" Row="3" RowSpan="1" Column="2" ColumnSpan="1" /&gt;&lt;Control Name="exclusivePB4" Row="4" RowSpan="1" Column="2" ColumnSpan="1" /&gt;&lt;/Controls&gt;&lt;Columns Styles="Percent,62.29144,Percent,20.02225,Absolute,50,Percent,17.68632,Absolute,80,AutoSize,0,AutoSize,0,Absolute,165" /&gt;&lt;Rows Styles="AutoSize,0,Percent,25,Percent,25,Percent,25,Percent,25" /&gt;&lt;/TableLayoutSettings&gt;</value>
</data>
<data name="lbNoControllers.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>

View File

@ -256,8 +256,6 @@
this.lbWhileCharging = new System.Windows.Forms.Label();
this.panel5 = new System.Windows.Forms.Panel();
this.btnRainbow = new System.Windows.Forms.Button();
this.lbRainbowB = new System.Windows.Forms.Label();
this.nUDRainbowB = new System.Windows.Forms.NumericUpDown();
this.nUDRainbow = new System.Windows.Forms.NumericUpDown();
this.lbspc = new System.Windows.Forms.Label();
this.tabAxis = new System.Windows.Forms.TabPage();
@ -454,6 +452,8 @@
this.panel12 = new System.Windows.Forms.Panel();
this.OutContTypeCb = new System.Windows.Forms.ComboBox();
this.outcontLb = new System.Windows.Forms.Label();
this.maxRainSatTB = new System.Windows.Forms.TrackBar();
this.label1 = new System.Windows.Forms.Label();
((System.ComponentModel.ISupportInitialize)(this.nUDTap)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.nUDScroll)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.nUDTouch)).BeginInit();
@ -501,7 +501,6 @@
((System.ComponentModel.ISupportInitialize)(this.nUDflashLED)).BeginInit();
this.panel4.SuspendLayout();
this.panel5.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.nUDRainbowB)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.nUDRainbow)).BeginInit();
this.tabAxis.SuspendLayout();
this.flowLayoutPanel3.SuspendLayout();
@ -570,6 +569,7 @@
((System.ComponentModel.ISupportInitialize)(this.nUDIdleDisconnect)).BeginInit();
this.panel11.SuspendLayout();
this.panel12.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.maxRainSatTB)).BeginInit();
this.SuspendLayout();
//
// cBLightbyBattery
@ -2712,9 +2712,9 @@
//
// panel5
//
this.panel5.Controls.Add(this.label1);
this.panel5.Controls.Add(this.maxRainSatTB);
this.panel5.Controls.Add(this.btnRainbow);
this.panel5.Controls.Add(this.lbRainbowB);
this.panel5.Controls.Add(this.nUDRainbowB);
this.panel5.Controls.Add(this.nUDRainbow);
this.panel5.Controls.Add(this.lbspc);
resources.ApplyResources(this.panel5, "panel5");
@ -2727,26 +2727,6 @@
this.btnRainbow.Name = "btnRainbow";
this.btnRainbow.UseVisualStyleBackColor = true;
//
// lbRainbowB
//
resources.ApplyResources(this.lbRainbowB, "lbRainbowB");
this.lbRainbowB.Name = "lbRainbowB";
//
// nUDRainbowB
//
resources.ApplyResources(this.nUDRainbowB, "nUDRainbowB");
this.nUDRainbowB.Maximum = new decimal(new int[] {
150,
0,
0,
0});
this.nUDRainbowB.Name = "nUDRainbowB";
this.nUDRainbowB.Value = new decimal(new int[] {
100,
0,
0,
0});
//
// nUDRainbow
//
resources.ApplyResources(this.nUDRainbow, "nUDRainbow");
@ -4717,6 +4697,19 @@
resources.ApplyResources(this.outcontLb, "outcontLb");
this.outcontLb.Name = "outcontLb";
//
// maxRainSatTB
//
resources.ApplyResources(this.maxRainSatTB, "maxRainSatTB");
this.maxRainSatTB.Maximum = 100;
this.maxRainSatTB.Name = "maxRainSatTB";
this.maxRainSatTB.TickStyle = System.Windows.Forms.TickStyle.None;
this.maxRainSatTB.Value = 100;
//
// label1
//
resources.ApplyResources(this.label1, "label1");
this.label1.Name = "label1";
//
// Options
//
resources.ApplyResources(this, "$this");
@ -4785,7 +4778,6 @@
this.panel4.PerformLayout();
this.panel5.ResumeLayout(false);
this.panel5.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.nUDRainbowB)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.nUDRainbow)).EndInit();
this.tabAxis.ResumeLayout(false);
this.flowLayoutPanel3.ResumeLayout(false);
@ -4871,6 +4863,7 @@
this.panel11.PerformLayout();
this.panel12.ResumeLayout(false);
this.panel12.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.maxRainSatTB)).EndInit();
this.ResumeLayout(false);
}
@ -5103,8 +5096,6 @@
private System.Windows.Forms.Label lbWhileCharging;
private System.Windows.Forms.Panel panel5;
private System.Windows.Forms.Button btnRainbow;
private System.Windows.Forms.Label lbRainbowB;
private System.Windows.Forms.NumericUpDown nUDRainbowB;
private System.Windows.Forms.NumericUpDown nUDRainbow;
private System.Windows.Forms.Label lbspc;
private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel2;
@ -5300,5 +5291,7 @@
private System.Windows.Forms.LinkLabel lbSixZCurveEditorURL;
private System.Windows.Forms.TextBox tBSixXCustomOutputCurve;
private System.Windows.Forms.LinkLabel lbSixXCurveEditorURL;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.TrackBar maxRainSatTB;
}
}

View File

@ -438,6 +438,7 @@ namespace DS4Windows.Forms
cBLightbyBattery.Click += ledAsBatteryIndicator_CheckedChanged;
btnRainbow.Click += btnRainbow_Click;
nUDRainbow.ValueChanged += numUDRainbow_ValueChanged;
maxRainSatTB.ValueChanged += MaxRainSatTB_ValueChanged;
// Other events
nUDRumbleBoost.ValueChanged += rumbleBoostBar_ValueChanged;
@ -457,6 +458,14 @@ namespace DS4Windows.Forms
OutContTypeCb.SelectedIndexChanged += OutContTypeCb_SelectedIndexChanged;
}
private void MaxRainSatTB_ValueChanged(object sender, EventArgs e)
{
if (loading == false)
{
MaxSatRainbow[device] = maxRainSatTB.Value / 100.0;
}
}
private void LbSixZCurveEditorURL_Click(object sender, EventArgs e)
{
string customDefinition = szOutBezierCurveObj[device].ToString();
@ -625,6 +634,8 @@ namespace DS4Windows.Forms
else
btnFlashColor.BackColor = Color.FromArgb(fColor.red, fColor.green, fColor.blue);
maxRainSatTB.Value = (int)(MaxSatRainbow[device] * 100.0);
nUDRumbleBoost.Value = RumbleBoost[device];
nUDTouch.Value = TouchSensitivity[device];
cBSlide.Checked = TouchSensitivity[device] > 0;
@ -1095,6 +1106,7 @@ namespace DS4Windows.Forms
pBHoveredButton.Image = null;
nUDRainbow.Value = 0;
maxRainSatTB.Value = 100;
nUDL2.Value = 0;
nUDR2.Value = 0;
nUDL2Maxzone.Value = 1;
@ -1643,6 +1655,7 @@ namespace DS4Windows.Forms
IdleDisconnectTimeout[device] = (int)(nUDIdleDisconnect.Value * 60);
Rainbow[device] = (int)nUDRainbow.Value;
MaxSatRainbow[device] = maxRainSatTB.Value / 100.0;
RSModInfo[device].deadZone = (int)Math.Round((nUDRS.Value * 127), 0);
LSModInfo[device].deadZone = (int)Math.Round((nUDLS.Value * 127), 0);
LSModInfo[device].antiDeadZone = (int)(nUDLSAntiDead.Value * 100);

File diff suppressed because it is too large Load Diff

View File

@ -399,14 +399,17 @@ namespace DS4Windows
private bool timeoutEvent = false;
private bool runCalib;
private bool hasInputEvts = false;
private string displayName;
public string DisplayName => displayName;
public bool ShouldRunCalib()
{
return runCalib;
}
public DS4Device(HidDevice hidDevice)
public DS4Device(HidDevice hidDevice, string disName)
{
hDevice = hidDevice;
displayName = disName;
conType = HidConnectionType(hDevice);
Mac = hDevice.readSerial();
runCalib = true;
@ -459,7 +462,6 @@ namespace DS4Windows
touchpad = new DS4Touchpad();
sixAxis = new DS4SixAxis();
Crc32Algorithm.InitializeTable(DefaultPolynomial);
if (runCalib)
RefreshCalibration();
@ -727,7 +729,7 @@ namespace DS4Windows
const int BT_INPUT_REPORT_CRC32_POS = BT_OUTPUT_REPORT_LENGTH - 4; //last 4 bytes of the 78-sized input report are crc32
const uint DefaultPolynomial = 0xedb88320u;
public const uint DefaultPolynomial = 0xedb88320u;
uint HamSeed = 2351727372;
private unsafe void performDs4Input()

View File

@ -11,10 +11,12 @@ namespace DS4Windows
{
public readonly int vid;
public readonly int pid;
internal VidPidInfo(int vid, int pid)
public readonly string name;
internal VidPidInfo(int vid, int pid, string name = "Generic DS4")
{
this.vid = vid;
this.pid = pid;
this.name = name;
}
}
@ -35,22 +37,21 @@ namespace DS4Windows
private static VidPidInfo[] knownDevices =
{
new VidPidInfo(SONY_VID, 0xBA0),
new VidPidInfo(SONY_VID, 0x5C4),
new VidPidInfo(SONY_VID, 0x09CC),
new VidPidInfo(SONY_VID, 0xBA0, "Sony WA"),
new VidPidInfo(SONY_VID, 0x5C4, "DS4 v.1"),
new VidPidInfo(SONY_VID, 0x09CC, "DS4 v.2"),
new VidPidInfo(RAZER_VID, 0x1000),
new VidPidInfo(NACON_VID, 0x0D01),
new VidPidInfo(NACON_VID, 0x0D02),
new VidPidInfo(HORI_VID, 0x00EE), // Hori PS4 Mini Wired Gamepad
new VidPidInfo(HORI_VID, 0x00EE, "Hori PS4 Mini"), // Hori PS4 Mini Wired Gamepad
new VidPidInfo(0x7545, 0x0104),
new VidPidInfo(0x2E95, 0x7725), // Scuf Vantage gamepad
new VidPidInfo(0x11C0, 0x4001), // PS4 Fun Controller
new VidPidInfo(RAZER_VID, 0x1007), // Razer Raiju Tournament Edition
new VidPidInfo(RAZER_VID, 0x1004), // Razer Raiju Ultimate Edition (wired)
new VidPidInfo(RAZER_VID, 0x1009), // Razer Raiju Ultimate Edition (BT). Doesn't work yet for some reason even when non-steam Razer driver lists the BT Razer Ultimate with this ID.
new VidPidInfo(SONY_VID, 0x05C5), // CronusMax (PS4 Output Mode)
new VidPidInfo(0x0C12, 0x57AB), // Warrior Joypad JS083 (wired). Custom lightbar color doesn't work, but everything else works OK (except touchpad and gyro because the gamepad doesnt have those).
new VidPidInfo(0x0C12, 0x0E16), // Steel Play Metaltech P4 (wired)
new VidPidInfo(0x2E95, 0x7725, "Scuf Vantage"), // Scuf Vantage gamepad
new VidPidInfo(0x11C0, 0x4001, "PS4 Fun"), // PS4 Fun Controller
new VidPidInfo(RAZER_VID, 0x1007, "Razer Raiju TE"), // Razer Raiju Tournament Edition
new VidPidInfo(RAZER_VID, 0x1004, "Razer Raiju UE USB"), // Razer Raiju Ultimate Edition (wired)
new VidPidInfo(RAZER_VID, 0x1009, "Razer Raiju UE BT"), // Razer Raiju Ultimate Edition (BT). Doesn't work yet for some reason even when non-steam Razer driver lists the BT Razer Ultimate with this ID.
new VidPidInfo(SONY_VID, 0x05C5, "CronusMax (PS4 Mode)"), // CronusMax (PS4 Output Mode)
new VidPidInfo(0x0C12, 0x57AB, "Warrior Joypad JS083"), // Warrior Joypad JS083 (wired). Custom lightbar color doesn't work, but everything else works OK (except touchpad and gyro because the gamepad doesnt have those).
};
private static string devicePathToInstanceId(string devicePath)
@ -102,6 +103,8 @@ namespace DS4Windows
else if (DevicePaths.Contains(hDevice.DevicePath))
continue; // BT/USB endpoint already open once
VidPidInfo metainfo = knownDevices.Single(x => x.vid == hDevice.Attributes.VendorId &&
x.pid == hDevice.Attributes.ProductId);
if (!hDevice.IsOpen)
{
hDevice.OpenDevice(isExclusiveMode);
@ -165,7 +168,7 @@ namespace DS4Windows
}
else
{
DS4Device ds4Device = new DS4Device(hDevice);
DS4Device ds4Device = new DS4Device(hDevice, metainfo.name);
//ds4Device.Removal += On_Removal;
if (!ds4Device.ExitOutputThread)
{

View File

@ -1147,6 +1147,7 @@
<Content Include="Resources\B.png" />
<Content Include="Resources\BACK.png" />
<Content Include="Resources\BT.png" />
<Content Include="Resources\cancel.png" />
<Content Include="Resources\checked.png" />
<Content Include="Resources\delete.png" />
<Content Include="Resources\DOWN.png" />