Added output curve options for L2 and R2

This commit is contained in:
Travis Nickles 2017-07-19 15:15:59 -05:00
parent 0e8daf05b0
commit fd1479f09f
6 changed files with 1027 additions and 671 deletions

View File

@ -23,7 +23,7 @@ namespace DS4Windows
public DS4StateExposed[] ExposedState = new DS4StateExposed[DS4_CONTROLLER_COUNT]; public DS4StateExposed[] ExposedState = new DS4StateExposed[DS4_CONTROLLER_COUNT];
public bool recordingMacro = false; public bool recordingMacro = false;
public event EventHandler<DebugEventArgs> Debug = null; public event EventHandler<DebugEventArgs> Debug = null;
bool[] buttonsdown = { false, false, false, false }; bool[] buttonsdown = new bool[4] { false, false, false, false };
List<DS4Controls> dcs = new List<DS4Controls>(); List<DS4Controls> dcs = new List<DS4Controls>();
bool[] held = new bool[DS4_CONTROLLER_COUNT]; bool[] held = new bool[DS4_CONTROLLER_COUNT];
int[] oldmouse = new int[DS4_CONTROLLER_COUNT] { -1, -1, -1, -1 }; int[] oldmouse = new int[DS4_CONTROLLER_COUNT] { -1, -1, -1, -1 };
@ -691,10 +691,10 @@ namespace DS4Windows
} }
} }
public bool[] lag = { false, false, false, false }; public bool[] lag = new bool[4] { false, false, false, false };
public bool[] inWarnMonitor = { false, false, false, false }; public bool[] inWarnMonitor = new bool[4] { false, false, false, false };
private byte[] currentBattery = { 0, 0, 0, 0 }; private byte[] currentBattery = new byte[4] { 0, 0, 0, 0 };
private bool[] charging = { false, false, false, false }; private bool[] charging = new bool[4] { false, false, false, false };
// Called every time a new input report has arrived // Called every time a new input report has arrived
protected virtual void On_Report(object sender, EventArgs e) protected virtual void On_Report(object sender, EventArgs e)

View File

@ -404,7 +404,7 @@ namespace DS4Windows
return (value < min) ? min : (value > max) ? max : value; return (value < min) ? min : (value > max) ? max : value;
} }
private static double[] tempDoubleArray = { 0.0, 0.0, 0.0, 0.0 }; private static double[] tempDoubleArray = new double[4] { 0.0, 0.0, 0.0, 0.0 };
public static DS4State SetCurveAndDeadzone(int device, DS4State cState) public static DS4State SetCurveAndDeadzone(int device, DS4State cState)
{ {
double rotation = tempDoubleArray[device] = getLSRotation(device); double rotation = tempDoubleArray[device] = getLSRotation(device);
@ -436,7 +436,6 @@ namespace DS4Windows
{ {
curvex = (x > 127.5f ? Math.Min(x, (x / max) * multimax) : Math.Max(x, (x / max) * multimin)); curvex = (x > 127.5f ? Math.Min(x, (x / max) * multimax) : Math.Max(x, (x / max) * multimin));
curvey = (y > 127.5f ? Math.Min(y, (y / max) * multimax) : Math.Max(y, (y / max) * multimin)); curvey = (y > 127.5f ? Math.Min(y, (y / max) * multimax) : Math.Max(y, (y / max) * multimin));
//btnLSTrack.Location = new Point((int)(dpix * curvex / 2.09 + lbLSTrack.Location.X), (int)(dpiy * curvey / 2.09 + lbLSTrack.Location.Y));
} }
else else
{ {
@ -528,8 +527,6 @@ namespace DS4Windows
{ {
double currentX = Global.Clamp(maxZoneXNegValue, dState.LX, maxZoneXPosValue); double currentX = Global.Clamp(maxZoneXNegValue, dState.LX, maxZoneXPosValue);
double currentY = Global.Clamp(maxZoneYNegValue, dState.LY, maxZoneYPosValue); double currentY = Global.Clamp(maxZoneYNegValue, dState.LY, maxZoneYPosValue);
//currentX = (byte)((dState.LX >= 127.5f) ? Math.Min(dState.LX, maxZoneX) : Math.Max(dState.LX, maxZoneX));
//currentY = (byte)((dState.LY >= 127.5f) ? Math.Min(dState.LY, maxZoneY) : Math.Max(dState.LY, maxZoneY));
tempOutputX = ((currentX - 127.5f - tempLsXDead) / (maxZoneX - tempLsXDead)); tempOutputX = ((currentX - 127.5f - tempLsXDead) / (maxZoneX - tempLsXDead));
tempOutputY = ((currentY - 127.5f - tempLsYDead) / (maxZoneY - tempLsYDead)); tempOutputY = ((currentY - 127.5f - tempLsYDead) / (maxZoneY - tempLsYDead));
} }
@ -609,8 +606,6 @@ namespace DS4Windows
tempOutputX = ((currentX - 127.5f - tempRsXDead) / (maxZoneX - tempRsXDead)); tempOutputX = ((currentX - 127.5f - tempRsXDead) / (maxZoneX - tempRsXDead));
tempOutputY = ((currentY - 127.5f - tempRsYDead) / (maxZoneY - tempRsYDead)); tempOutputY = ((currentY - 127.5f - tempRsYDead) / (maxZoneY - tempRsYDead));
//tempOutputX = ((dState.RX - 127.5f - tempRsXDead) / (double)(maxXValue - tempRsXDead));
//tempOutputY = ((dState.RY - 127.5f - tempRsYDead) / (double)(maxYValue - tempRsYDead));
} }
} }
else else
@ -620,8 +615,6 @@ namespace DS4Windows
tempOutputX = (currentX - 127.5f) / maxZoneX; tempOutputX = (currentX - 127.5f) / maxZoneX;
tempOutputY = (currentY - 127.5f) / maxZoneY; tempOutputY = (currentY - 127.5f) / maxZoneY;
//tempOutputX = ((dState.RX - 127.5f) / (double)(maxXValue));
//tempOutputY = ((dState.RY - 127.5f) / (double)(maxYValue));
} }
double tempRsXAntiDeadPercent = 0.0, tempRsYAntiDeadPercent = 0.0; double tempRsXAntiDeadPercent = 0.0, tempRsYAntiDeadPercent = 0.0;
@ -752,8 +745,8 @@ namespace DS4Windows
int lsOutCurveMode = lsOutCurveModeArray[device] = getLsOutCurveMode(device); int lsOutCurveMode = lsOutCurveModeArray[device] = getLsOutCurveMode(device);
if (lsOutCurveMode != 0) if (lsOutCurveMode != 0)
{ {
double tempX = (dState.LX - 127.5f) / 127.5; double tempX = (dState.LX - 127.5) / 127.5;
double tempY = (dState.LY - 127.5f) / 127.5; double tempY = (dState.LY - 127.5) / 127.5;
double signX = tempX >= 0.0 ? 1.0 : -1.0; double signX = tempX >= 0.0 ? 1.0 : -1.0;
double signY = tempY >= 0.0 ? 1.0 : -1.0; double signY = tempY >= 0.0 ? 1.0 : -1.0;
@ -790,30 +783,30 @@ namespace DS4Windows
outputY = (absY * 1.992) - 0.992; outputY = (absY * 1.992) - 0.992;
} }
dState.LX = (byte)(outputX * signX * 127.5f + 127.5f); dState.LX = (byte)(outputX * signX * 127.5 + 127.5);
dState.LY = (byte)(outputY * signY * 127.5f + 127.5f); dState.LY = (byte)(outputY * signY * 127.5 + 127.5);
} }
else if (lsOutCurveMode == 2) else if (lsOutCurveMode == 2)
{ {
double outputX = tempX * tempX; double outputX = tempX * tempX;
double outputY = tempY * tempY; double outputY = tempY * tempY;
dState.LX = (byte)(outputX * signX * 127.5f + 127.5f); dState.LX = (byte)(outputX * signX * 127.5 + 127.5);
dState.LY = (byte)(outputY * signY * 127.5f + 127.5f); dState.LY = (byte)(outputY * signY * 127.5 + 127.5);
} }
else if (lsOutCurveMode == 3) else if (lsOutCurveMode == 3)
{ {
double outputX = tempX * tempX * tempX; double outputX = tempX * tempX * tempX;
double outputY = tempY * tempY * tempY; double outputY = tempY * tempY * tempY;
dState.LX = (byte)(outputX * 127.5f + 127.5f); dState.LX = (byte)(outputX * 127.5 + 127.5);
dState.LY = (byte)(outputY * 127.5f + 127.5f); dState.LY = (byte)(outputY * 127.5 + 127.5);
} }
} }
int rsOutCurveMode = rsOutCurveModeArray[device] = getRsOutCurveMode(device); int rsOutCurveMode = rsOutCurveModeArray[device] = getRsOutCurveMode(device);
if (rsOutCurveMode != 0) if (rsOutCurveMode != 0)
{ {
double tempX = (dState.RX - 127.5f) / 127.5; double tempX = (dState.RX - 127.5) / 127.5;
double tempY = (dState.RY - 127.5f) / 127.5; double tempY = (dState.RY - 127.5) / 127.5;
double signX = tempX >= 0.0 ? 1.0 : -1.0; double signX = tempX >= 0.0 ? 1.0 : -1.0;
double signY = tempY >= 0.0 ? 1.0 : -1.0; double signY = tempY >= 0.0 ? 1.0 : -1.0;
@ -850,22 +843,54 @@ namespace DS4Windows
outputY = (absY * 1.992) - 0.992; outputY = (absY * 1.992) - 0.992;
} }
dState.RX = (byte)(outputX * signX * 127.5f + 127.5f); dState.RX = (byte)(outputX * signX * 127.5 + 127.5);
dState.RY = (byte)(outputY * signY * 127.5f + 127.5f); dState.RY = (byte)(outputY * signY * 127.5 + 127.5);
} }
else if (rsOutCurveMode == 2) else if (rsOutCurveMode == 2)
{ {
double outputX = tempX * tempX; double outputX = tempX * tempX;
double outputY = tempY * tempY; double outputY = tempY * tempY;
dState.RX = (byte)(outputX * signX * 127.5f + 127.5f); dState.RX = (byte)(outputX * signX * 127.5 + 127.5);
dState.RY = (byte)(outputY * signY * 127.5f + 127.5f); dState.RY = (byte)(outputY * signY * 127.5 + 127.5);
} }
else if (rsOutCurveMode == 3) else if (rsOutCurveMode == 3)
{ {
double outputX = tempX * tempX * tempX; double outputX = tempX * tempX * tempX;
double outputY = tempY * tempY * tempY; double outputY = tempY * tempY * tempY;
dState.RX = (byte)(outputX * 127.5f + 127.5f); dState.RX = (byte)(outputX * 127.5 + 127.5);
dState.RY = (byte)(outputY * 127.5f + 127.5f); dState.RY = (byte)(outputY * 127.5 + 127.5);
}
}
int l2OutCurveMode = getL2OutCurveMode(device);
if (l2OutCurveMode > 0)
{
double temp = dState.L2 / 255.0;
if (l2OutCurveMode == 1)
{
double output = temp * temp;
dState.L2 = (byte)(output * 255.0);
}
else if (l2OutCurveMode == 2)
{
double output = temp * temp * temp;
dState.L2 = (byte)(output * 255.0);
}
}
int r2OutCurveMode = getR2OutCurveMode(device);
if (r2OutCurveMode > 0)
{
double temp = dState.R2 / 255.0;
if (r2OutCurveMode == 1)
{
double output = temp * temp;
dState.R2 = (byte)(output * 255.0);
}
else if (r2OutCurveMode == 2)
{
double output = temp * temp * temp;
dState.R2 = (byte)(output * 255.0);
} }
} }

View File

@ -864,6 +864,18 @@ namespace DS4Windows
return m_Config.rsOutCurveMode[index]; return m_Config.rsOutCurveMode[index];
} }
public static int[] l2OutCurveMode => m_Config.l2OutCurveMode;
public static int getL2OutCurveMode(int index)
{
return m_Config.l2OutCurveMode[index];
}
public static int[] r2OutCurveMode => m_Config.r2OutCurveMode;
public static int getR2OutCurveMode(int index)
{
return m_Config.r2OutCurveMode[index];
}
public static string[] LaunchProgram => m_Config.launchProgram; public static string[] LaunchProgram => m_Config.launchProgram;
public static string[] ProfilePath => m_Config.profilePath; public static string[] ProfilePath => m_Config.profilePath;
public static bool[] DistanceProfiles = m_Config.distanceProfiles; public static bool[] DistanceProfiles = m_Config.distanceProfiles;
@ -1211,6 +1223,8 @@ namespace DS4Windows
public int[] btPollRate = { 4, 4, 4, 4, 4 }; public int[] btPollRate = { 4, 4, 4, 4, 4 };
public int[] lsOutCurveMode = { 0, 0, 0, 0, 0 }; public int[] lsOutCurveMode = { 0, 0, 0, 0, 0 };
public int[] rsOutCurveMode = { 0, 0, 0, 0, 0 }; public int[] rsOutCurveMode = { 0, 0, 0, 0, 0 };
public int[] l2OutCurveMode = new int[5] { 0, 0, 0, 0, 0 };
public int[] r2OutCurveMode = new int[5] { 0, 0, 0, 0, 0 };
public DS4Color[] m_LowLeds = new DS4Color[] public DS4Color[] m_LowLeds = new DS4Color[]
{ {
@ -1410,7 +1424,7 @@ namespace DS4Windows
catch { return 0; } catch { return 0; }
}*/ }*/
private string outputCurveString(int id) private string stickOutputCurveString(int id)
{ {
string result = "linear"; string result = "linear";
switch (id) switch (id)
@ -1425,7 +1439,7 @@ namespace DS4Windows
return result; return result;
} }
private int outputCurveId(string name) private int stickOutputCurveId(string name)
{ {
int id = 0; int id = 0;
switch (name) switch (name)
@ -1440,6 +1454,34 @@ namespace DS4Windows
return id; return id;
} }
private string axisOutputCurveString(int id)
{
string result = "linear";
switch (id)
{
case 0: break;
case 1: result = "quadratic"; break;
case 2: result = "cubic"; break;
default: break;
}
return result;
}
private int axisOutputCurveId(string name)
{
int id = 0;
switch (name)
{
case "linear": id = 0; break;
case "quadratic": id = 1; break;
case "cubic": id = 2; break;
default: break;
}
return id;
}
public bool SaveProfile(int device, string propath) public bool SaveProfile(int device, string propath)
{ {
bool Saved = true; bool Saved = true;
@ -1538,8 +1580,11 @@ namespace DS4Windows
XmlNode xmlRSC = m_Xdoc.CreateNode(XmlNodeType.Element, "RSCurve", null); xmlRSC.InnerText = rsCurve[device].ToString(); Node.AppendChild(xmlRSC); XmlNode xmlRSC = m_Xdoc.CreateNode(XmlNodeType.Element, "RSCurve", null); xmlRSC.InnerText = rsCurve[device].ToString(); Node.AppendChild(xmlRSC);
XmlNode xmlProfileActions = m_Xdoc.CreateNode(XmlNodeType.Element, "ProfileActions", null); xmlProfileActions.InnerText = string.Join("/", profileActions[device]); Node.AppendChild(xmlProfileActions); XmlNode xmlProfileActions = m_Xdoc.CreateNode(XmlNodeType.Element, "ProfileActions", null); xmlProfileActions.InnerText = string.Join("/", profileActions[device]); Node.AppendChild(xmlProfileActions);
XmlNode xmlBTPollRate = m_Xdoc.CreateNode(XmlNodeType.Element, "BTPollRate", null); xmlBTPollRate.InnerText = btPollRate[device].ToString(); Node.AppendChild(xmlBTPollRate); XmlNode xmlBTPollRate = m_Xdoc.CreateNode(XmlNodeType.Element, "BTPollRate", null); xmlBTPollRate.InnerText = btPollRate[device].ToString(); Node.AppendChild(xmlBTPollRate);
XmlNode xmlLsOutputCurveMode = m_Xdoc.CreateNode(XmlNodeType.Element, "LSOutputCurveMode", null); xmlLsOutputCurveMode.InnerText = outputCurveString(lsOutCurveMode[device]); Node.AppendChild(xmlLsOutputCurveMode); XmlNode xmlLsOutputCurveMode = m_Xdoc.CreateNode(XmlNodeType.Element, "LSOutputCurveMode", null); xmlLsOutputCurveMode.InnerText = stickOutputCurveString(lsOutCurveMode[device]); Node.AppendChild(xmlLsOutputCurveMode);
XmlNode xmlRsOutputCurveMode = m_Xdoc.CreateNode(XmlNodeType.Element, "RSOutputCurveMode", null); xmlRsOutputCurveMode.InnerText = outputCurveString(rsOutCurveMode[device]); Node.AppendChild(xmlRsOutputCurveMode); XmlNode xmlRsOutputCurveMode = m_Xdoc.CreateNode(XmlNodeType.Element, "RSOutputCurveMode", null); xmlRsOutputCurveMode.InnerText = stickOutputCurveString(rsOutCurveMode[device]); Node.AppendChild(xmlRsOutputCurveMode);
XmlNode xmlL2OutputCurveMode = m_Xdoc.CreateNode(XmlNodeType.Element, "L2OutputCurveMode", null); xmlL2OutputCurveMode.InnerText = axisOutputCurveString(l2OutCurveMode[device]); Node.AppendChild(xmlL2OutputCurveMode);
XmlNode xmlR2OutputCurveMode = m_Xdoc.CreateNode(XmlNodeType.Element, "R2OutputCurveMode", null); xmlR2OutputCurveMode.InnerText = axisOutputCurveString(r2OutCurveMode[device]); Node.AppendChild(xmlR2OutputCurveMode);
XmlNode NodeControl = m_Xdoc.CreateNode(XmlNodeType.Element, "Control", null); XmlNode NodeControl = m_Xdoc.CreateNode(XmlNodeType.Element, "Control", null);
XmlNode Key = m_Xdoc.CreateNode(XmlNodeType.Element, "Key", null); XmlNode Key = m_Xdoc.CreateNode(XmlNodeType.Element, "Key", null);
@ -2529,12 +2574,18 @@ namespace DS4Windows
} }
catch { btPollRate[device] = 4; missingSetting = true; } catch { btPollRate[device] = 4; missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/" + rootname + "/LSOutputCurveMode"); lsOutCurveMode[device] = outputCurveId(Item.InnerText); } try { Item = m_Xdoc.SelectSingleNode("/" + rootname + "/LSOutputCurveMode"); lsOutCurveMode[device] = stickOutputCurveId(Item.InnerText); }
catch { lsOutCurveMode[device] = 0; missingSetting = true; } catch { lsOutCurveMode[device] = 0; missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/" + rootname + "/RSOutputCurveMode"); rsOutCurveMode[device] = outputCurveId(Item.InnerText); } try { Item = m_Xdoc.SelectSingleNode("/" + rootname + "/RSOutputCurveMode"); rsOutCurveMode[device] = stickOutputCurveId(Item.InnerText); }
catch { rsOutCurveMode[device] = 0; missingSetting = true; } catch { rsOutCurveMode[device] = 0; missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/" + rootname + "/L2OutputCurveMode"); l2OutCurveMode[device] = axisOutputCurveId(Item.InnerText); }
catch { l2OutCurveMode[device] = 0; missingSetting = true; }
try { Item = m_Xdoc.SelectSingleNode("/" + rootname + "/R2OutputCurveMode"); r2OutCurveMode[device] = axisOutputCurveId(Item.InnerText); }
catch { r2OutCurveMode[device] = 0; missingSetting = true; }
try try
{ {
Item = m_Xdoc.SelectSingleNode("/" + rootname + "/ProfileActions"); Item = m_Xdoc.SelectSingleNode("/" + rootname + "/ProfileActions");
@ -3577,6 +3628,8 @@ namespace DS4Windows
gyroMouseHorizontalAxis[device] = 0; gyroMouseHorizontalAxis[device] = 0;
lsOutCurveMode[device] = 0; lsOutCurveMode[device] = 0;
rsOutCurveMode[device] = 0; rsOutCurveMode[device] = 0;
l2OutCurveMode[device] = 0;
r2OutCurveMode[device] = 0;
} }
} }

View File

@ -255,6 +255,10 @@
this.tCSens = new System.Windows.Forms.TabControl(); this.tCSens = new System.Windows.Forms.TabControl();
this.tPDeadzone = new System.Windows.Forms.TabPage(); this.tPDeadzone = new System.Windows.Forms.TabPage();
this.antiDeadzoneTabPage = new System.Windows.Forms.TabPage(); this.antiDeadzoneTabPage = new System.Windows.Forms.TabPage();
this.nUDSixaxisZAntiDead = new System.Windows.Forms.NumericUpDown();
this.nUDSixaxisXAntiDead = new System.Windows.Forms.NumericUpDown();
this.label20 = new System.Windows.Forms.Label();
this.label19 = new System.Windows.Forms.Label();
this.nUDR2AntiDead = new System.Windows.Forms.NumericUpDown(); this.nUDR2AntiDead = new System.Windows.Forms.NumericUpDown();
this.label3 = new System.Windows.Forms.Label(); this.label3 = new System.Windows.Forms.Label();
this.nUDL2AntiDead = new System.Windows.Forms.NumericUpDown(); this.nUDL2AntiDead = new System.Windows.Forms.NumericUpDown();
@ -350,10 +354,10 @@
this.pSToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.pSToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.alwaysOnToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.alwaysOnToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.advColorDialog = new DS4Windows.AdvancedColorDialog(); this.advColorDialog = new DS4Windows.AdvancedColorDialog();
this.label19 = new System.Windows.Forms.Label(); this.label21 = new System.Windows.Forms.Label();
this.label20 = new System.Windows.Forms.Label(); this.label22 = new System.Windows.Forms.Label();
this.nUDSixaxisXAntiDead = new System.Windows.Forms.NumericUpDown(); this.cBL2OutputCurve = new System.Windows.Forms.ComboBox();
this.nUDSixaxisZAntiDead = new System.Windows.Forms.NumericUpDown(); this.cBR2OutputCurve = new System.Windows.Forms.ComboBox();
((System.ComponentModel.ISupportInitialize)(this.nUDRainbow)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.nUDRainbow)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.tBBlueBar)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.tBBlueBar)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.tBGreenBar)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.tBGreenBar)).BeginInit();
@ -411,6 +415,8 @@
this.tCSens.SuspendLayout(); this.tCSens.SuspendLayout();
this.tPDeadzone.SuspendLayout(); this.tPDeadzone.SuspendLayout();
this.antiDeadzoneTabPage.SuspendLayout(); this.antiDeadzoneTabPage.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.nUDSixaxisZAntiDead)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.nUDSixaxisXAntiDead)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.nUDR2AntiDead)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.nUDR2AntiDead)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.nUDL2AntiDead)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.nUDL2AntiDead)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.nUDRSAntiDead)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.nUDRSAntiDead)).BeginInit();
@ -443,8 +449,6 @@
((System.ComponentModel.ISupportInitialize)(this.nUDSXS)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.nUDSXS)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.nUDSZS)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.nUDSZS)).BeginInit();
this.cMGyroTriggers.SuspendLayout(); this.cMGyroTriggers.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.nUDSixaxisXAntiDead)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.nUDSixaxisZAntiDead)).BeginInit();
this.SuspendLayout(); this.SuspendLayout();
// //
// lowColorChooserButton // lowColorChooserButton
@ -2675,8 +2679,8 @@
this.tCSens.Controls.Add(this.tPDeadzone); this.tCSens.Controls.Add(this.tPDeadzone);
this.tCSens.Controls.Add(this.antiDeadzoneTabPage); this.tCSens.Controls.Add(this.antiDeadzoneTabPage);
this.tCSens.Controls.Add(this.maxZoneTabPage); this.tCSens.Controls.Add(this.maxZoneTabPage);
this.tCSens.Controls.Add(this.tPCurve);
this.tCSens.Controls.Add(this.tPOutCurve); this.tCSens.Controls.Add(this.tPOutCurve);
this.tCSens.Controls.Add(this.tPCurve);
this.tCSens.Controls.Add(this.tpRotation); this.tCSens.Controls.Add(this.tpRotation);
resources.ApplyResources(this.tCSens, "tCSens"); resources.ApplyResources(this.tCSens, "tCSens");
this.tCSens.Name = "tCSens"; this.tCSens.Name = "tCSens";
@ -2718,6 +2722,50 @@
this.antiDeadzoneTabPage.Name = "antiDeadzoneTabPage"; this.antiDeadzoneTabPage.Name = "antiDeadzoneTabPage";
this.antiDeadzoneTabPage.UseVisualStyleBackColor = true; this.antiDeadzoneTabPage.UseVisualStyleBackColor = true;
// //
// nUDSixaxisZAntiDead
//
this.nUDSixaxisZAntiDead.DecimalPlaces = 2;
this.nUDSixaxisZAntiDead.Increment = new decimal(new int[] {
1,
0,
0,
65536});
resources.ApplyResources(this.nUDSixaxisZAntiDead, "nUDSixaxisZAntiDead");
this.nUDSixaxisZAntiDead.Maximum = new decimal(new int[] {
1,
0,
0,
0});
this.nUDSixaxisZAntiDead.Name = "nUDSixaxisZAntiDead";
this.nUDSixaxisZAntiDead.ValueChanged += new System.EventHandler(this.nUDSixaxisZAntiDead_ValueChanged);
//
// nUDSixaxisXAntiDead
//
this.nUDSixaxisXAntiDead.DecimalPlaces = 2;
this.nUDSixaxisXAntiDead.Increment = new decimal(new int[] {
1,
0,
0,
65536});
resources.ApplyResources(this.nUDSixaxisXAntiDead, "nUDSixaxisXAntiDead");
this.nUDSixaxisXAntiDead.Maximum = new decimal(new int[] {
1,
0,
0,
0});
this.nUDSixaxisXAntiDead.Name = "nUDSixaxisXAntiDead";
this.nUDSixaxisXAntiDead.ValueChanged += new System.EventHandler(this.nUDSixaxisXAntiDead_ValueChanged);
//
// label20
//
resources.ApplyResources(this.label20, "label20");
this.label20.Name = "label20";
//
// label19
//
resources.ApplyResources(this.label19, "label19");
this.label19.Name = "label19";
//
// nUDR2AntiDead // nUDR2AntiDead
// //
this.nUDR2AntiDead.DecimalPlaces = 2; this.nUDR2AntiDead.DecimalPlaces = 2;
@ -3042,6 +3090,10 @@
// //
// tPOutCurve // tPOutCurve
// //
this.tPOutCurve.Controls.Add(this.cBR2OutputCurve);
this.tPOutCurve.Controls.Add(this.cBL2OutputCurve);
this.tPOutCurve.Controls.Add(this.label22);
this.tPOutCurve.Controls.Add(this.label21);
this.tPOutCurve.Controls.Add(this.rsOutCurveComboBox); this.tPOutCurve.Controls.Add(this.rsOutCurveComboBox);
this.tPOutCurve.Controls.Add(this.lsOutCurveComboBox); this.tPOutCurve.Controls.Add(this.lsOutCurveComboBox);
this.tPOutCurve.Controls.Add(this.label10); this.tPOutCurve.Controls.Add(this.label10);
@ -3743,49 +3795,39 @@
resources.ApplyResources(this.alwaysOnToolStripMenuItem, "alwaysOnToolStripMenuItem"); resources.ApplyResources(this.alwaysOnToolStripMenuItem, "alwaysOnToolStripMenuItem");
this.alwaysOnToolStripMenuItem.CheckedChanged += new System.EventHandler(this.SATrigger_CheckedChanged); this.alwaysOnToolStripMenuItem.CheckedChanged += new System.EventHandler(this.SATrigger_CheckedChanged);
// //
// label19 // label21
// //
resources.ApplyResources(this.label19, "label19"); resources.ApplyResources(this.label21, "label21");
this.label19.Name = "label19"; this.label21.Name = "label21";
// //
// label20 // label22
// //
resources.ApplyResources(this.label20, "label20"); resources.ApplyResources(this.label22, "label22");
this.label20.Name = "label20"; this.label22.Name = "label22";
// //
// nUDSixaxisXAntiDead // cBL2OutputCurve
// //
this.nUDSixaxisXAntiDead.DecimalPlaces = 2; this.cBL2OutputCurve.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.nUDSixaxisXAntiDead.Increment = new decimal(new int[] { this.cBL2OutputCurve.FormattingEnabled = true;
1, this.cBL2OutputCurve.Items.AddRange(new object[] {
0, resources.GetString("cBL2OutputCurve.Items"),
0, resources.GetString("cBL2OutputCurve.Items1"),
65536}); resources.GetString("cBL2OutputCurve.Items2")});
resources.ApplyResources(this.nUDSixaxisXAntiDead, "nUDSixaxisXAntiDead"); resources.ApplyResources(this.cBL2OutputCurve, "cBL2OutputCurve");
this.nUDSixaxisXAntiDead.Maximum = new decimal(new int[] { this.cBL2OutputCurve.Name = "cBL2OutputCurve";
1, this.cBL2OutputCurve.SelectedIndexChanged += new System.EventHandler(this.cBL2OutputCurve_SelectedIndexChanged);
0,
0,
0});
this.nUDSixaxisXAntiDead.Name = "nUDSixaxisXAntiDead";
this.nUDSixaxisXAntiDead.ValueChanged += new System.EventHandler(this.nUDSixaxisXAntiDead_ValueChanged);
// //
// nUDSixaxisZAntiDead // cBR2OutputCurve
// //
this.nUDSixaxisZAntiDead.DecimalPlaces = 2; this.cBR2OutputCurve.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.nUDSixaxisZAntiDead.Increment = new decimal(new int[] { this.cBR2OutputCurve.FormattingEnabled = true;
1, this.cBR2OutputCurve.Items.AddRange(new object[] {
0, resources.GetString("cBR2OutputCurve.Items"),
0, resources.GetString("cBR2OutputCurve.Items1"),
65536}); resources.GetString("cBR2OutputCurve.Items2")});
resources.ApplyResources(this.nUDSixaxisZAntiDead, "nUDSixaxisZAntiDead"); resources.ApplyResources(this.cBR2OutputCurve, "cBR2OutputCurve");
this.nUDSixaxisZAntiDead.Maximum = new decimal(new int[] { this.cBR2OutputCurve.Name = "cBR2OutputCurve";
1, this.cBR2OutputCurve.SelectedIndexChanged += new System.EventHandler(this.cBR2OutputCurve_SelectedIndexChanged);
0,
0,
0});
this.nUDSixaxisZAntiDead.Name = "nUDSixaxisZAntiDead";
this.nUDSixaxisZAntiDead.ValueChanged += new System.EventHandler(this.nUDSixaxisZAntiDead_ValueChanged);
// //
// Options // Options
// //
@ -3867,6 +3909,8 @@
this.tPDeadzone.PerformLayout(); this.tPDeadzone.PerformLayout();
this.antiDeadzoneTabPage.ResumeLayout(false); this.antiDeadzoneTabPage.ResumeLayout(false);
this.antiDeadzoneTabPage.PerformLayout(); this.antiDeadzoneTabPage.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.nUDSixaxisZAntiDead)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.nUDSixaxisXAntiDead)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.nUDR2AntiDead)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.nUDR2AntiDead)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.nUDL2AntiDead)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.nUDL2AntiDead)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.nUDRSAntiDead)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.nUDRSAntiDead)).EndInit();
@ -3906,8 +3950,6 @@
((System.ComponentModel.ISupportInitialize)(this.nUDSXS)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.nUDSXS)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.nUDSZS)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.nUDSZS)).EndInit();
this.cMGyroTriggers.ResumeLayout(false); this.cMGyroTriggers.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.nUDSixaxisXAntiDead)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.nUDSixaxisZAntiDead)).EndInit();
this.ResumeLayout(false); this.ResumeLayout(false);
} }
@ -4240,5 +4282,9 @@
private System.Windows.Forms.NumericUpDown nUDSixaxisXAntiDead; private System.Windows.Forms.NumericUpDown nUDSixaxisXAntiDead;
private System.Windows.Forms.Label label20; private System.Windows.Forms.Label label20;
private System.Windows.Forms.Label label19; private System.Windows.Forms.Label label19;
private System.Windows.Forms.Label label22;
private System.Windows.Forms.Label label21;
private System.Windows.Forms.ComboBox cBR2OutputCurve;
private System.Windows.Forms.ComboBox cBL2OutputCurve;
} }
} }

View File

@ -368,6 +368,8 @@ namespace DS4Windows
btPollRateComboBox.SelectedIndex = getBTPollRate(device); btPollRateComboBox.SelectedIndex = getBTPollRate(device);
lsOutCurveComboBox.SelectedIndex = getLsOutCurveMode(device); lsOutCurveComboBox.SelectedIndex = getLsOutCurveMode(device);
rsOutCurveComboBox.SelectedIndex = getRsOutCurveMode(device); rsOutCurveComboBox.SelectedIndex = getRsOutCurveMode(device);
cBL2OutputCurve.SelectedIndex = getL2OutCurveMode(device);
cBR2OutputCurve.SelectedIndex = getR2OutCurveMode(device);
try try
{ {
@ -657,6 +659,8 @@ namespace DS4Windows
btPollRateComboBox.SelectedIndex = 4; btPollRateComboBox.SelectedIndex = 4;
lsOutCurveComboBox.SelectedIndex = 0; lsOutCurveComboBox.SelectedIndex = 0;
rsOutCurveComboBox.SelectedIndex = 0; rsOutCurveComboBox.SelectedIndex = 0;
cBL2OutputCurve.SelectedIndex = 0;
cBR2OutputCurve.SelectedIndex = 0;
rBTPMouse.Checked = true; rBTPMouse.Checked = true;
rBSAControls.Checked = true; rBSAControls.Checked = true;
ToggleRainbow(false); ToggleRainbow(false);
@ -1348,6 +1352,8 @@ namespace DS4Windows
BTPollRate[device] = btPollRateComboBox.SelectedIndex; BTPollRate[device] = btPollRateComboBox.SelectedIndex;
lsOutCurveMode[device] = lsOutCurveComboBox.SelectedIndex; lsOutCurveMode[device] = lsOutCurveComboBox.SelectedIndex;
rsOutCurveMode[device] = rsOutCurveComboBox.SelectedIndex; rsOutCurveMode[device] = rsOutCurveComboBox.SelectedIndex;
l2OutCurveMode[device] = cBL2OutputCurve.SelectedIndex;
r2OutCurveMode[device] = cBR2OutputCurve.SelectedIndex;
L2Deadzone[device] = (byte)Math.Round((nUDL2.Value * 255), 0); L2Deadzone[device] = (byte)Math.Round((nUDL2.Value * 255), 0);
R2Deadzone[device] = (byte)Math.Round((nUDR2.Value * 255), 0); R2Deadzone[device] = (byte)Math.Round((nUDR2.Value * 255), 0);
L2AntiDeadzone[device] = (int)(nUDL2AntiDead.Value * 100); L2AntiDeadzone[device] = (int)(nUDL2AntiDead.Value * 100);
@ -2998,6 +3004,22 @@ namespace DS4Windows
} }
} }
private void cBL2OutputCurve_SelectedIndexChanged(object sender, EventArgs e)
{
if (loading == false)
{
l2OutCurveMode[device] = cBL2OutputCurve.SelectedIndex;
}
}
private void cBR2OutputCurve_SelectedIndexChanged(object sender, EventArgs e)
{
if (loading == false)
{
r2OutCurveMode[device] = cBR2OutputCurve.SelectedIndex;
}
}
private void Options_Resize(object sender, EventArgs e) private void Options_Resize(object sender, EventArgs e)
{ {
fLPSettings.AutoScroll = false; fLPSettings.AutoScroll = false;

File diff suppressed because it is too large Load Diff