mirror of
https://github.com/cemu-project/DS4Windows.git
synced 2025-02-02 10:02:36 +01:00
Add gyro mouse smoothing routine
This commit is contained in:
parent
86816db41a
commit
484337f42f
@ -18,7 +18,20 @@ namespace DS4Windows
|
||||
private Direction horizontalDirection = Direction.Neutral, verticalDirection = Direction.Neutral;
|
||||
private Direction hDirection = Direction.Neutral, vDirection = Direction.Neutral;
|
||||
|
||||
private double GYRO_MOUSE_COEFFICIENT = 0.0095;
|
||||
private int GYRO_MOUSE_DEADZONE = 12;
|
||||
private double GYRO_MOUSE_OFFSET = 0.1463;
|
||||
private double GYRO_SMOOTH_MOUSE_OFFSET = 0.14698;
|
||||
|
||||
private const int SMOOTH_BUFFER_LEN = 3;
|
||||
private double[] xSmoothBuffer = new double[SMOOTH_BUFFER_LEN];
|
||||
private double[] ySmoothBuffer = new double[SMOOTH_BUFFER_LEN];
|
||||
private int smoothBufferTail = 0;
|
||||
|
||||
double coefficient = 0.0;
|
||||
double verticalScale = 0.0;
|
||||
bool gyroSmooth = false;
|
||||
//double gyroSmoothWeight = 0.0;
|
||||
|
||||
public virtual void sixaxisMoved(SixAxisEventArgs arg)
|
||||
{
|
||||
@ -27,8 +40,20 @@ namespace DS4Windows
|
||||
deltaY = -arg.sixAxis.gyroYFull;
|
||||
//Console.WriteLine(arg.sixAxis.deltaX);
|
||||
|
||||
double coefficient = (Global.getGyroSensitivity(deviceNumber) * 0.01) * 0.0095;
|
||||
double offset = 0.1463;
|
||||
gyroSmooth = Global.getGyroSmoothing(deviceNumber);
|
||||
double gyroSmoothWeight = 0.0;
|
||||
|
||||
coefficient = (Global.getGyroSensitivity(deviceNumber) * 0.01) * GYRO_MOUSE_COEFFICIENT;
|
||||
double offset = GYRO_MOUSE_OFFSET;
|
||||
if (gyroSmooth)
|
||||
{
|
||||
gyroSmoothWeight = Global.getGyroSmoothingWeight(deviceNumber);
|
||||
if (gyroSmoothWeight > 0.0)
|
||||
{
|
||||
offset = GYRO_SMOOTH_MOUSE_OFFSET;
|
||||
}
|
||||
}
|
||||
|
||||
double tempAngle = System.Math.Atan2(-deltaY, deltaX);
|
||||
double normX = System.Math.Abs(System.Math.Cos(tempAngle));
|
||||
double normY = System.Math.Abs(System.Math.Sin(tempAngle));
|
||||
@ -45,7 +70,7 @@ namespace DS4Windows
|
||||
vRemainder = 0.0;
|
||||
}
|
||||
|
||||
int deadzone = 12;
|
||||
int deadzone = GYRO_MOUSE_DEADZONE;
|
||||
//int deadzone = 0;
|
||||
int deadzoneX = (int)System.Math.Abs(normX * deadzone);
|
||||
int deadzoneY = (int)System.Math.Abs(normY * deadzone);
|
||||
@ -73,12 +98,12 @@ namespace DS4Windows
|
||||
if (xMotion != 0.0)
|
||||
{
|
||||
xMotion += hRemainder;
|
||||
xAction = (int)xMotion;
|
||||
hRemainder = xMotion - xAction;
|
||||
//xAction = (int)xMotion;
|
||||
//hRemainder = xMotion - xAction;
|
||||
}
|
||||
else
|
||||
{
|
||||
hRemainder = 0.0;
|
||||
//hRemainder = 0.0;
|
||||
}
|
||||
|
||||
//hRemainder -= (int)hRemainder;
|
||||
@ -88,6 +113,51 @@ namespace DS4Windows
|
||||
if (yMotion != 0.0)
|
||||
{
|
||||
yMotion += vRemainder;
|
||||
//yAction = (int)yMotion;
|
||||
//vRemainder = yMotion - yAction;
|
||||
}
|
||||
else
|
||||
{
|
||||
//vRemainder = 0.0;
|
||||
}
|
||||
|
||||
if (gyroSmooth)
|
||||
{
|
||||
int iIndex = smoothBufferTail % SMOOTH_BUFFER_LEN;
|
||||
xSmoothBuffer[iIndex] = xMotion;
|
||||
ySmoothBuffer[iIndex] = yMotion;
|
||||
smoothBufferTail = iIndex + 1;
|
||||
|
||||
double currentWeight = 1.0;
|
||||
double finalWeight = 0.0;
|
||||
double x_out = 0.0, y_out = 0.0;
|
||||
for (int i = 0; i < SMOOTH_BUFFER_LEN; i++)
|
||||
{
|
||||
int idx = System.Math.Abs(smoothBufferTail - i - 1) % SMOOTH_BUFFER_LEN;
|
||||
x_out += xSmoothBuffer[idx] * currentWeight;
|
||||
y_out += ySmoothBuffer[idx] * currentWeight;
|
||||
finalWeight += currentWeight;
|
||||
currentWeight *= gyroSmoothWeight;
|
||||
}
|
||||
|
||||
x_out /= finalWeight;
|
||||
xMotion = x_out;
|
||||
y_out /= finalWeight;
|
||||
yMotion = y_out;
|
||||
}
|
||||
|
||||
if (xMotion != 0.0)
|
||||
{
|
||||
xAction = (int)xMotion;
|
||||
hRemainder = xMotion - xAction;
|
||||
}
|
||||
else
|
||||
{
|
||||
hRemainder = 0.0;
|
||||
}
|
||||
|
||||
if (yMotion != 0.0)
|
||||
{
|
||||
yAction = (int)yMotion;
|
||||
vRemainder = yMotion - yAction;
|
||||
}
|
||||
@ -115,6 +185,10 @@ namespace DS4Windows
|
||||
public void mouseRemainderReset()
|
||||
{
|
||||
hRemainder = vRemainder = 0.0;
|
||||
int iIndex = smoothBufferTail % SMOOTH_BUFFER_LEN;
|
||||
xSmoothBuffer[iIndex] = 0.0;
|
||||
ySmoothBuffer[iIndex] = 0.0;
|
||||
smoothBufferTail = iIndex + 1;
|
||||
}
|
||||
|
||||
public void touchesBegan(TouchpadEventArgs arg)
|
||||
|
@ -596,6 +596,18 @@ namespace DS4Windows
|
||||
return m_Config.gyroTriggerTurns[index];
|
||||
}
|
||||
|
||||
public static bool[] GyroSmoothing => m_Config.gyroSmoothing;
|
||||
public static bool getGyroSmoothing(int index)
|
||||
{
|
||||
return m_Config.gyroSmoothing[index];
|
||||
}
|
||||
|
||||
public static double[] GyroSmoothingWeight => m_Config.gyroSmoothWeight;
|
||||
public static double getGyroSmoothingWeight(int index)
|
||||
{
|
||||
return m_Config.gyroSmoothWeight[index];
|
||||
}
|
||||
|
||||
public static DS4Color[] MainColor => m_Config.m_Leds;
|
||||
public static DS4Color getMainColor(int index)
|
||||
{
|
||||
@ -1240,6 +1252,8 @@ namespace DS4Windows
|
||||
public int[] gyroSensVerticalScale = { 100, 100, 100, 100, 100 };
|
||||
public int[] gyroInvert = { 0, 0, 0, 0, 0 };
|
||||
public bool[] gyroTriggerTurns = { true, true, true, true, true };
|
||||
public bool[] gyroSmoothing = { false, false, false, false, false };
|
||||
public double[] gyroSmoothWeight = { 0.5, 0.5, 0.5, 0.5, 0.5 };
|
||||
|
||||
public BackingStore()
|
||||
{
|
||||
@ -1450,6 +1464,8 @@ namespace DS4Windows
|
||||
XmlNode xmlGyroSensVerticalScale = m_Xdoc.CreateNode(XmlNodeType.Element, "GyroSensVerticalScale", null); xmlGyroSensVerticalScale.InnerText = gyroSensVerticalScale[device].ToString(); Node.AppendChild(xmlGyroSensVerticalScale);
|
||||
XmlNode xmlGyroInvert = m_Xdoc.CreateNode(XmlNodeType.Element, "GyroInvert", null); xmlGyroInvert.InnerText = gyroInvert[device].ToString(); Node.AppendChild(xmlGyroInvert);
|
||||
XmlNode xmlGyroTriggerTurns = m_Xdoc.CreateNode(XmlNodeType.Element, "GyroTriggerTurns", null); xmlGyroTriggerTurns.InnerText = gyroTriggerTurns[device].ToString(); Node.AppendChild(xmlGyroTriggerTurns);
|
||||
XmlNode xmlGyroSmoothWeight = m_Xdoc.CreateNode(XmlNodeType.Element, "GyroSmoothingWeight", null); xmlGyroSmoothWeight.InnerText = Convert.ToInt32(gyroSmoothWeight[device] * 100).ToString(); Node.AppendChild(xmlGyroSmoothWeight);
|
||||
XmlNode xmlGyroSmoothing = m_Xdoc.CreateNode(XmlNodeType.Element, "GyroSmoothing", null); xmlGyroSmoothing.InnerText = gyroSmoothing[device].ToString(); Node.AppendChild(xmlGyroSmoothing);
|
||||
XmlNode xmlLSC = m_Xdoc.CreateNode(XmlNodeType.Element, "LSCurve", null); xmlLSC.InnerText = lsCurve[device].ToString(); Node.AppendChild(xmlLSC);
|
||||
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);
|
||||
@ -2368,6 +2384,12 @@ namespace DS4Windows
|
||||
try { Item = m_Xdoc.SelectSingleNode("/" + rootname + "/GyroTriggerTurns"); bool.TryParse(Item.InnerText, out gyroTriggerTurns[device]); }
|
||||
catch { gyroTriggerTurns[device] = true; missingSetting = true; }
|
||||
|
||||
try { Item = m_Xdoc.SelectSingleNode("/" + rootname + "/GyroSmoothing"); bool.TryParse(Item.InnerText, out gyroSmoothing[device]); }
|
||||
catch { gyroSmoothing[device] = false; missingSetting = true; }
|
||||
|
||||
try { Item = m_Xdoc.SelectSingleNode("/" + rootname + "/GyroSmoothingWeight"); int temp = 0; int.TryParse(Item.InnerText, out temp); gyroSmoothWeight[device] = Convert.ToDouble(temp * 0.01); }
|
||||
catch { gyroSmoothWeight[device] = 0.5; missingSetting = true; }
|
||||
|
||||
try { Item = m_Xdoc.SelectSingleNode("/" + rootname + "/LSCurve"); int.TryParse(Item.InnerText, out lsCurve[device]); }
|
||||
catch { lsCurve[device] = 0; missingSetting = true; }
|
||||
|
||||
@ -3419,9 +3441,11 @@ namespace DS4Windows
|
||||
gyroSensitivity[device] = 100;
|
||||
gyroSensVerticalScale[device] = 100;
|
||||
gyroInvert[device] = 0;
|
||||
gyroTriggerTurns[device] = true;
|
||||
gyroSmoothing[device] = false;
|
||||
gyroSmoothWeight[device] = 0.5;
|
||||
lsOutCurveMode[device] = 0;
|
||||
rsOutCurveMode[device] = 0;
|
||||
gyroTriggerTurns[device] = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
56
DS4Windows/DS4Forms/Options.Designer.cs
generated
56
DS4Windows/DS4Forms/Options.Designer.cs
generated
@ -287,6 +287,7 @@
|
||||
this.rBSAControls = new System.Windows.Forms.RadioButton();
|
||||
this.rBSAMouse = new System.Windows.Forms.RadioButton();
|
||||
this.pnlSAMouse = new System.Windows.Forms.Panel();
|
||||
this.label12 = new System.Windows.Forms.Label();
|
||||
this.nUDGyroMouseVertScale = new System.Windows.Forms.NumericUpDown();
|
||||
this.label11 = new System.Windows.Forms.Label();
|
||||
this.gyroTriggerBehavior = new System.Windows.Forms.CheckBox();
|
||||
@ -331,8 +332,11 @@
|
||||
this.shareToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.pSToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.alwaysOnToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.nUDGyroSmoothWeight = new System.Windows.Forms.NumericUpDown();
|
||||
this.lbSmoothWeight = new System.Windows.Forms.Label();
|
||||
this.cBGyroSmooth = new System.Windows.Forms.CheckBox();
|
||||
this.advColorDialog = new DS4Windows.AdvancedColorDialog();
|
||||
this.label12 = new System.Windows.Forms.Label();
|
||||
this.lbGyroSmooth = new System.Windows.Forms.Label();
|
||||
((System.ComponentModel.ISupportInitialize)(this.nUDRainbow)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.tBBlueBar)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.tBGreenBar)).BeginInit();
|
||||
@ -416,6 +420,7 @@
|
||||
((System.ComponentModel.ISupportInitialize)(this.nUDSXS)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.nUDSZS)).BeginInit();
|
||||
this.cMGyroTriggers.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.nUDGyroSmoothWeight)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// lowColorChooserButton
|
||||
@ -3017,6 +3022,10 @@
|
||||
//
|
||||
// pnlSAMouse
|
||||
//
|
||||
this.pnlSAMouse.Controls.Add(this.lbGyroSmooth);
|
||||
this.pnlSAMouse.Controls.Add(this.cBGyroSmooth);
|
||||
this.pnlSAMouse.Controls.Add(this.lbSmoothWeight);
|
||||
this.pnlSAMouse.Controls.Add(this.nUDGyroSmoothWeight);
|
||||
this.pnlSAMouse.Controls.Add(this.label12);
|
||||
this.pnlSAMouse.Controls.Add(this.nUDGyroMouseVertScale);
|
||||
this.pnlSAMouse.Controls.Add(this.label11);
|
||||
@ -3031,6 +3040,11 @@
|
||||
resources.ApplyResources(this.pnlSAMouse, "pnlSAMouse");
|
||||
this.pnlSAMouse.Name = "pnlSAMouse";
|
||||
//
|
||||
// label12
|
||||
//
|
||||
resources.ApplyResources(this.label12, "label12");
|
||||
this.label12.Name = "label12";
|
||||
//
|
||||
// nUDGyroMouseVertScale
|
||||
//
|
||||
this.nUDGyroMouseVertScale.Increment = new decimal(new int[] {
|
||||
@ -3518,10 +3532,39 @@
|
||||
resources.ApplyResources(this.alwaysOnToolStripMenuItem, "alwaysOnToolStripMenuItem");
|
||||
this.alwaysOnToolStripMenuItem.CheckedChanged += new System.EventHandler(this.SATrigger_CheckedChanged);
|
||||
//
|
||||
// label12
|
||||
// nUDGyroSmoothWeight
|
||||
//
|
||||
resources.ApplyResources(this.label12, "label12");
|
||||
this.label12.Name = "label12";
|
||||
this.nUDGyroSmoothWeight.DecimalPlaces = 3;
|
||||
resources.ApplyResources(this.nUDGyroSmoothWeight, "nUDGyroSmoothWeight");
|
||||
this.nUDGyroSmoothWeight.Maximum = new decimal(new int[] {
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0});
|
||||
this.nUDGyroSmoothWeight.Name = "nUDGyroSmoothWeight";
|
||||
this.nUDGyroSmoothWeight.Value = new decimal(new int[] {
|
||||
5,
|
||||
0,
|
||||
0,
|
||||
65536});
|
||||
this.nUDGyroSmoothWeight.ValueChanged += new System.EventHandler(this.nUDGyroSmoothWeight_ValueChanged);
|
||||
//
|
||||
// lbSmoothWeight
|
||||
//
|
||||
resources.ApplyResources(this.lbSmoothWeight, "lbSmoothWeight");
|
||||
this.lbSmoothWeight.Name = "lbSmoothWeight";
|
||||
//
|
||||
// cBGyroSmooth
|
||||
//
|
||||
resources.ApplyResources(this.cBGyroSmooth, "cBGyroSmooth");
|
||||
this.cBGyroSmooth.Name = "cBGyroSmooth";
|
||||
this.cBGyroSmooth.UseVisualStyleBackColor = true;
|
||||
this.cBGyroSmooth.CheckedChanged += new System.EventHandler(this.cBGyroSmooth_CheckedChanged);
|
||||
//
|
||||
// lbGyroSmooth
|
||||
//
|
||||
resources.ApplyResources(this.lbGyroSmooth, "lbGyroSmooth");
|
||||
this.lbGyroSmooth.Name = "lbGyroSmooth";
|
||||
//
|
||||
// Options
|
||||
//
|
||||
@ -3635,6 +3678,7 @@
|
||||
((System.ComponentModel.ISupportInitialize)(this.nUDSXS)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.nUDSZS)).EndInit();
|
||||
this.cMGyroTriggers.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.nUDGyroSmoothWeight)).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
@ -3946,5 +3990,9 @@
|
||||
private System.Windows.Forms.NumericUpDown nUDGyroMouseVertScale;
|
||||
private System.Windows.Forms.Label label11;
|
||||
private System.Windows.Forms.Label label12;
|
||||
private System.Windows.Forms.Label lbSmoothWeight;
|
||||
private System.Windows.Forms.NumericUpDown nUDGyroSmoothWeight;
|
||||
private System.Windows.Forms.CheckBox cBGyroSmooth;
|
||||
private System.Windows.Forms.Label lbGyroSmooth;
|
||||
}
|
||||
}
|
@ -581,6 +581,9 @@ namespace DS4Windows
|
||||
cBGyroInvertY.Checked = invert == 1 || invert == 3;
|
||||
if (s.Count > 0)
|
||||
btnGyroTriggers.Text = string.Join(", ", s);
|
||||
|
||||
cBGyroSmooth.Checked = nUDGyroSmoothWeight.Enabled = GyroSmoothing[device];
|
||||
nUDGyroSmoothWeight.Value = (decimal)(GyroSmoothingWeight[device]);
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -667,6 +670,8 @@ namespace DS4Windows
|
||||
gyroTriggerBehavior.Checked = true;
|
||||
cBGyroInvertX.Checked = false;
|
||||
cBGyroInvertY.Checked = false;
|
||||
cBGyroSmooth.Checked = false;
|
||||
nUDGyroSmoothWeight.Value = 0.5m;
|
||||
Set();
|
||||
}
|
||||
|
||||
@ -1324,6 +1329,8 @@ namespace DS4Windows
|
||||
GyroSensitivity[device] = (int)Math.Round(nUDGyroSensitivity.Value, 0);
|
||||
GyroTriggerTurns[device] = gyroTriggerBehavior.Checked;
|
||||
GyroSensVerticalScale[device] = (int)nUDGyroMouseVertScale.Value;
|
||||
GyroSmoothing[device] = cBGyroSmooth.Checked;
|
||||
GyroSmoothingWeight[device] = (double)nUDGyroSmoothWeight.Value;
|
||||
|
||||
int invert = 0;
|
||||
if (cBGyroInvertX.Checked)
|
||||
@ -2828,6 +2835,24 @@ namespace DS4Windows
|
||||
}
|
||||
}
|
||||
|
||||
private void nUDGyroSmoothWeight_ValueChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (!loading)
|
||||
{
|
||||
GyroSmoothingWeight[device] = (double)nUDGyroSmoothWeight.Value;
|
||||
}
|
||||
}
|
||||
|
||||
private void cBGyroSmooth_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
bool value = cBGyroSmooth.Checked;
|
||||
nUDGyroSmoothWeight.Enabled = value;
|
||||
if (!loading)
|
||||
{
|
||||
GyroSmoothing[device] = value;
|
||||
}
|
||||
}
|
||||
|
||||
private void Options_Resize(object sender, EventArgs e)
|
||||
{
|
||||
fLPSettings.AutoScroll = false;
|
||||
|
@ -4496,7 +4496,7 @@ with profile</value>
|
||||
<value>6, 51</value>
|
||||
</data>
|
||||
<data name="fLPTiltControls.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>271, 139</value>
|
||||
<value>271, 167</value>
|
||||
</data>
|
||||
<data name="fLPTiltControls.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>254</value>
|
||||
@ -8947,9 +8947,123 @@ with profile</value>
|
||||
<data name=">>rBSAMouse.ZOrder" xml:space="preserve">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name="lbGyroSmooth.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="lbGyroSmooth.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>8, 145</value>
|
||||
</data>
|
||||
<data name="lbGyroSmooth.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>60, 13</value>
|
||||
</data>
|
||||
<data name="lbGyroSmooth.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>269</value>
|
||||
</data>
|
||||
<data name="lbGyroSmooth.Text" xml:space="preserve">
|
||||
<value>Smoothing:</value>
|
||||
</data>
|
||||
<data name=">>lbGyroSmooth.Name" xml:space="preserve">
|
||||
<value>lbGyroSmooth</value>
|
||||
</data>
|
||||
<data name=">>lbGyroSmooth.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=">>lbGyroSmooth.Parent" xml:space="preserve">
|
||||
<value>pnlSAMouse</value>
|
||||
</data>
|
||||
<data name=">>lbGyroSmooth.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
</data>
|
||||
<data name="cBGyroSmooth.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="cBGyroSmooth.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||
<value>NoControl</value>
|
||||
</data>
|
||||
<data name="cBGyroSmooth.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>75, 145</value>
|
||||
</data>
|
||||
<data name="cBGyroSmooth.RightToLeft" type="System.Windows.Forms.RightToLeft, System.Windows.Forms">
|
||||
<value>Yes</value>
|
||||
</data>
|
||||
<data name="cBGyroSmooth.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>15, 14</value>
|
||||
</data>
|
||||
<data name="cBGyroSmooth.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>268</value>
|
||||
</data>
|
||||
<data name=">>cBGyroSmooth.Name" xml:space="preserve">
|
||||
<value>cBGyroSmooth</value>
|
||||
</data>
|
||||
<data name=">>cBGyroSmooth.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>cBGyroSmooth.Parent" xml:space="preserve">
|
||||
<value>pnlSAMouse</value>
|
||||
</data>
|
||||
<data name=">>cBGyroSmooth.ZOrder" xml:space="preserve">
|
||||
<value>1</value>
|
||||
</data>
|
||||
<data name="lbSmoothWeight.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="lbSmoothWeight.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||
<value>NoControl</value>
|
||||
</data>
|
||||
<data name="lbSmoothWeight.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>96, 145</value>
|
||||
</data>
|
||||
<data name="lbSmoothWeight.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>83, 13</value>
|
||||
</data>
|
||||
<data name="lbSmoothWeight.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>267</value>
|
||||
</data>
|
||||
<data name="lbSmoothWeight.Text" xml:space="preserve">
|
||||
<value>Smooth Weight:</value>
|
||||
</data>
|
||||
<data name=">>lbSmoothWeight.Name" xml:space="preserve">
|
||||
<value>lbSmoothWeight</value>
|
||||
</data>
|
||||
<data name=">>lbSmoothWeight.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=">>lbSmoothWeight.Parent" xml:space="preserve">
|
||||
<value>pnlSAMouse</value>
|
||||
</data>
|
||||
<data name=">>lbSmoothWeight.ZOrder" xml:space="preserve">
|
||||
<value>2</value>
|
||||
</data>
|
||||
<data name="nUDGyroSmoothWeight.Enabled" type="System.Boolean, mscorlib">
|
||||
<value>False</value>
|
||||
</data>
|
||||
<data name="nUDGyroSmoothWeight.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>185, 141</value>
|
||||
</data>
|
||||
<data name="nUDGyroSmoothWeight.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>55, 20</value>
|
||||
</data>
|
||||
<data name="nUDGyroSmoothWeight.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>266</value>
|
||||
</data>
|
||||
<data name=">>nUDGyroSmoothWeight.Name" xml:space="preserve">
|
||||
<value>nUDGyroSmoothWeight</value>
|
||||
</data>
|
||||
<data name=">>nUDGyroSmoothWeight.Type" xml:space="preserve">
|
||||
<value>System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</data>
|
||||
<data name=">>nUDGyroSmoothWeight.Parent" xml:space="preserve">
|
||||
<value>pnlSAMouse</value>
|
||||
</data>
|
||||
<data name=">>nUDGyroSmoothWeight.ZOrder" xml:space="preserve">
|
||||
<value>3</value>
|
||||
</data>
|
||||
<data name="label12.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="label12.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||
<value>NoControl</value>
|
||||
</data>
|
||||
<data name="label12.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>151, 98</value>
|
||||
</data>
|
||||
@ -8972,7 +9086,7 @@ with profile</value>
|
||||
<value>pnlSAMouse</value>
|
||||
</data>
|
||||
<data name=">>label12.ZOrder" xml:space="preserve">
|
||||
<value>0</value>
|
||||
<value>4</value>
|
||||
</data>
|
||||
<data name="nUDGyroMouseVertScale.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>96, 93</value>
|
||||
@ -8993,11 +9107,14 @@ with profile</value>
|
||||
<value>pnlSAMouse</value>
|
||||
</data>
|
||||
<data name=">>nUDGyroMouseVertScale.ZOrder" xml:space="preserve">
|
||||
<value>1</value>
|
||||
<value>5</value>
|
||||
</data>
|
||||
<data name="label11.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
</data>
|
||||
<data name="label11.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||
<value>NoControl</value>
|
||||
</data>
|
||||
<data name="label11.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>8, 95</value>
|
||||
</data>
|
||||
@ -9020,7 +9137,7 @@ with profile</value>
|
||||
<value>pnlSAMouse</value>
|
||||
</data>
|
||||
<data name=">>label11.ZOrder" xml:space="preserve">
|
||||
<value>2</value>
|
||||
<value>6</value>
|
||||
</data>
|
||||
<data name="gyroTriggerBehavior.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
@ -9053,7 +9170,7 @@ with profile</value>
|
||||
<value>pnlSAMouse</value>
|
||||
</data>
|
||||
<data name=">>gyroTriggerBehavior.ZOrder" xml:space="preserve">
|
||||
<value>3</value>
|
||||
<value>7</value>
|
||||
</data>
|
||||
<data name="cBGyroInvertY.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
@ -9086,7 +9203,7 @@ with profile</value>
|
||||
<value>pnlSAMouse</value>
|
||||
</data>
|
||||
<data name=">>cBGyroInvertY.ZOrder" xml:space="preserve">
|
||||
<value>4</value>
|
||||
<value>8</value>
|
||||
</data>
|
||||
<data name="cBGyroInvertX.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
@ -9119,7 +9236,7 @@ with profile</value>
|
||||
<value>pnlSAMouse</value>
|
||||
</data>
|
||||
<data name=">>cBGyroInvertX.ZOrder" xml:space="preserve">
|
||||
<value>5</value>
|
||||
<value>9</value>
|
||||
</data>
|
||||
<data name="lbGyroInvert.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
@ -9128,7 +9245,7 @@ with profile</value>
|
||||
<value>NoControl</value>
|
||||
</data>
|
||||
<data name="lbGyroInvert.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>4, 120</value>
|
||||
<value>8, 119</value>
|
||||
</data>
|
||||
<data name="lbGyroInvert.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>37, 13</value>
|
||||
@ -9152,7 +9269,7 @@ with profile</value>
|
||||
<value>pnlSAMouse</value>
|
||||
</data>
|
||||
<data name=">>lbGyroInvert.ZOrder" xml:space="preserve">
|
||||
<value>6</value>
|
||||
<value>10</value>
|
||||
</data>
|
||||
<data name="lbGyroTriggers.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
@ -9185,7 +9302,7 @@ with profile</value>
|
||||
<value>pnlSAMouse</value>
|
||||
</data>
|
||||
<data name=">>lbGyroTriggers.ZOrder" xml:space="preserve">
|
||||
<value>7</value>
|
||||
<value>11</value>
|
||||
</data>
|
||||
<data name="btnGyroTriggers.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||
<value>NoControl</value>
|
||||
@ -9215,10 +9332,10 @@ with profile</value>
|
||||
<value>pnlSAMouse</value>
|
||||
</data>
|
||||
<data name=">>btnGyroTriggers.ZOrder" xml:space="preserve">
|
||||
<value>8</value>
|
||||
<value>12</value>
|
||||
</data>
|
||||
<data name="nUDGyroSensitivity.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>96, 63</value>
|
||||
<value>96, 67</value>
|
||||
</data>
|
||||
<data name="nUDGyroSensitivity.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>49, 20</value>
|
||||
@ -9236,7 +9353,7 @@ with profile</value>
|
||||
<value>pnlSAMouse</value>
|
||||
</data>
|
||||
<data name=">>nUDGyroSensitivity.ZOrder" xml:space="preserve">
|
||||
<value>9</value>
|
||||
<value>13</value>
|
||||
</data>
|
||||
<data name="lbGyroSens.AutoSize" type="System.Boolean, mscorlib">
|
||||
<value>True</value>
|
||||
@ -9245,7 +9362,7 @@ with profile</value>
|
||||
<value>NoControl</value>
|
||||
</data>
|
||||
<data name="lbGyroSens.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>6, 66</value>
|
||||
<value>8, 69</value>
|
||||
</data>
|
||||
<data name="lbGyroSens.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>82, 13</value>
|
||||
@ -9269,7 +9386,7 @@ with profile</value>
|
||||
<value>pnlSAMouse</value>
|
||||
</data>
|
||||
<data name=">>lbGyroSens.ZOrder" xml:space="preserve">
|
||||
<value>10</value>
|
||||
<value>14</value>
|
||||
</data>
|
||||
<data name="pnlSAMouse.Location" type="System.Drawing.Point, System.Drawing">
|
||||
<value>6, 43</value>
|
||||
@ -9278,7 +9395,7 @@ with profile</value>
|
||||
<value>2, 2, 2, 2</value>
|
||||
</data>
|
||||
<data name="pnlSAMouse.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>263, 139</value>
|
||||
<value>263, 170</value>
|
||||
</data>
|
||||
<data name="pnlSAMouse.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>259</value>
|
||||
@ -9299,7 +9416,7 @@ with profile</value>
|
||||
<value>3, 253</value>
|
||||
</data>
|
||||
<data name="gBGyro.Size" type="System.Drawing.Size, System.Drawing">
|
||||
<value>272, 196</value>
|
||||
<value>272, 224</value>
|
||||
</data>
|
||||
<data name="gBGyro.TabIndex" type="System.Int32, mscorlib">
|
||||
<value>248</value>
|
||||
@ -9982,6 +10099,9 @@ with profile</value>
|
||||
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
||||
<value>1010, 481</value>
|
||||
</data>
|
||||
<data name="$this.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||
<value>NoControl</value>
|
||||
</data>
|
||||
<data name="$this.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||
<value>4, 4, 4, 4</value>
|
||||
</data>
|
||||
@ -10286,7 +10406,7 @@ with profile</value>
|
||||
<value>advColorDialog</value>
|
||||
</data>
|
||||
<data name=">>advColorDialog.Type" xml:space="preserve">
|
||||
<value>DS4Windows.AdvancedColorDialog, DS4Windows, Version=1.4.80.0, Culture=neutral, PublicKeyToken=null</value>
|
||||
<value>DS4Windows.AdvancedColorDialog, DS4Windows, Version=1.4.81.0, Culture=neutral, PublicKeyToken=null</value>
|
||||
</data>
|
||||
<data name=">>$this.Name" xml:space="preserve">
|
||||
<value>Options</value>
|
||||
|
@ -671,23 +671,19 @@ namespace DS4Windows
|
||||
currerror = string.Empty;
|
||||
curTimeDouble = sw.Elapsed.TotalMilliseconds;
|
||||
curtime = sw.ElapsedMilliseconds;
|
||||
lastTimeElapsed = curtime - oldtime;
|
||||
lastTimeElapsedDouble = (curTimeDouble - oldTimeDouble);
|
||||
//latencyList.Add(this.lastTimeElapsed);
|
||||
latencyQueue.Enqueue(this.lastTimeElapsed);
|
||||
tempLatencyCount++;
|
||||
oldtime = curtime;
|
||||
oldTimeDouble = curTimeDouble;
|
||||
|
||||
if (tempLatencyCount > 50)
|
||||
if (tempLatencyCount >= 50)
|
||||
{
|
||||
//latencyList.RemoveAt(0);
|
||||
latencyQueue.Dequeue();
|
||||
tempLatencyCount--;
|
||||
}
|
||||
|
||||
//Latency = latencyList.Average();
|
||||
//latencyList.Average();
|
||||
lastTimeElapsed = curtime - oldtime;
|
||||
lastTimeElapsedDouble = (curTimeDouble - oldTimeDouble);
|
||||
latencyQueue.Enqueue(this.lastTimeElapsed);
|
||||
tempLatencyCount++;
|
||||
oldtime = curtime;
|
||||
oldTimeDouble = curTimeDouble;
|
||||
Latency = latencyQueue.Average();
|
||||
|
||||
if (conType == ConnectionType.BT)
|
||||
|
Loading…
x
Reference in New Issue
Block a user