diff --git a/DS4Windows/DS4Control/Mouse.cs b/DS4Windows/DS4Control/Mouse.cs index 15f72a5..d21c15d 100644 --- a/DS4Windows/DS4Control/Mouse.cs +++ b/DS4Windows/DS4Control/Mouse.cs @@ -174,14 +174,11 @@ namespace DS4Windows SixMouseStick(arg); else if (!useReverseRatchet && !triggeractivated) SixMouseStick(arg); - //else - // SixMouseReset(arg); + else + SixMouseReset(arg); } } - /*private const int GyroMouseStickDeadZone = 50; - private const int GyroMouseStickMaxZone = 880; - private const int GyroMouseStickFuzz = 20; private const int SMOOTH_BUFFER_LEN = 3; private int[] xSmoothBuffer = new int[SMOOTH_BUFFER_LEN]; private int[] ySmoothBuffer = new int[SMOOTH_BUFFER_LEN]; @@ -194,7 +191,6 @@ namespace DS4Windows ySmoothBuffer[iIndex] = 0; smoothBufferTail = iIndex + 1; } - */ private void SixMouseStick(SixAxisEventArgs arg) { @@ -248,34 +244,42 @@ namespace DS4Windows deltaY = 0; } - /*int iIndex = smoothBufferTail % SMOOTH_BUFFER_LEN; - xSmoothBuffer[iIndex] = deltaX; - ySmoothBuffer[iIndex] = deltaY; - smoothBufferTail = iIndex + 1; - - double currentWeight = 1.0; - double finalWeight = 0.0; - double x_out = 0.0, y_out = 0.0; - int idx = 0; - for (int i = 0; i < SMOOTH_BUFFER_LEN; i++) + if (msinfo.useSmoothing) { - idx = (smoothBufferTail - i - 1 + SMOOTH_BUFFER_LEN) % SMOOTH_BUFFER_LEN; - x_out += xSmoothBuffer[idx] * currentWeight; - y_out += ySmoothBuffer[idx] * currentWeight; - finalWeight += currentWeight; - currentWeight *= 0.5; + int iIndex = smoothBufferTail % SMOOTH_BUFFER_LEN; + xSmoothBuffer[iIndex] = deltaX; + ySmoothBuffer[iIndex] = deltaY; + smoothBufferTail = iIndex + 1; + + double currentWeight = 1.0; + double finalWeight = 0.0; + double x_out = 0.0, y_out = 0.0; + int idx = 0; + for (int i = 0; i < SMOOTH_BUFFER_LEN; i++) + { + idx = (smoothBufferTail - i - 1 + SMOOTH_BUFFER_LEN) % SMOOTH_BUFFER_LEN; + x_out += xSmoothBuffer[idx] * currentWeight; + y_out += ySmoothBuffer[idx] * currentWeight; + finalWeight += currentWeight; + currentWeight *= msinfo.smoothWeight; + } + + x_out /= finalWeight; + deltaX = (int)x_out; + y_out /= finalWeight; + deltaY = (int)y_out; + + maxValX = deltaX < 0 ? -msinfo.maxZone : msinfo.maxZone; + maxValY = deltaY < 0 ? -msinfo.maxZone : msinfo.maxZone; + maxDirX = deltaX >= 0 ? 127 : -128; + maxDirY = deltaY >= 0 ? 127 : -128; } - x_out /= finalWeight; - deltaX = (int)x_out; - y_out /= finalWeight; - deltaY = (int)y_out; - - maxValX = deltaX < 0 ? -msinfo.maxZone : msinfo.maxZone; - maxValY = deltaY < 0 ? -msinfo.maxZone : msinfo.maxZone; - maxDirX = deltaX >= 0 ? 127 : -128; - maxDirY = deltaY >= 0 ? 127 : -128; - */ + if (msinfo.vertScale != 100) + { + double verticalScale = msinfo.vertScale * 0.01; + deltaY = (int)(deltaY * verticalScale); + } if (deltaX != 0) xratio = deltaX / (double)maxValX; if (deltaY != 0) yratio = deltaY / (double)maxValY; diff --git a/DS4Windows/DS4Control/ProfilePropGroups.cs b/DS4Windows/DS4Control/ProfilePropGroups.cs index eb3dad3..ed53966 100644 --- a/DS4Windows/DS4Control/ProfilePropGroups.cs +++ b/DS4Windows/DS4Control/ProfilePropGroups.cs @@ -34,7 +34,10 @@ namespace DS4Windows public int maxZone; public double antiDeadX; public double antiDeadY; + public int vertScale; // Flags representing invert axis choices public uint inverted; + public bool useSmoothing; + public double smoothWeight; } } \ No newline at end of file diff --git a/DS4Windows/DS4Control/ScpUtil.cs b/DS4Windows/DS4Control/ScpUtil.cs index 0f912db..d270594 100644 --- a/DS4Windows/DS4Control/ScpUtil.cs +++ b/DS4Windows/DS4Control/ScpUtil.cs @@ -2280,6 +2280,9 @@ namespace DS4Windows XmlNode xmlGyroMStickAntiDY = m_Xdoc.CreateNode(XmlNodeType.Element, "GyroMouseStickAntiDeadY", null); xmlGyroMStickAntiDY.InnerText = gyroMStickInfo[device].antiDeadY.ToString(); Node.AppendChild(xmlGyroMStickAntiDY); XmlNode xmlGyroMStickInvert = m_Xdoc.CreateNode(XmlNodeType.Element, "GyroMouseStickInvert", null); xmlGyroMStickInvert.InnerText = gyroMStickInfo[device].inverted.ToString(); Node.AppendChild(xmlGyroMStickInvert); XmlNode xmlGyroMStickToggle = m_Xdoc.CreateNode(XmlNodeType.Element, "GyroMouseStickToggle", null); xmlGyroMStickToggle.InnerText = gyroMouseStickToggle[device].ToString(); Node.AppendChild(xmlGyroMStickToggle); + XmlNode xmlGyroMStickVerticalScale = m_Xdoc.CreateNode(XmlNodeType.Element, "GyroMouseStickVerticalScale", null); xmlGyroMStickVerticalScale.InnerText = gyroMStickInfo[device].vertScale.ToString(); Node.AppendChild(xmlGyroMStickVerticalScale); + XmlNode xmlGyroMStickSmoothing = m_Xdoc.CreateNode(XmlNodeType.Element, "GyroMouseStickSmoothing", null); xmlGyroMStickSmoothing.InnerText = gyroMStickInfo[device].useSmoothing.ToString(); Node.AppendChild(xmlGyroMStickSmoothing); + XmlNode xmlGyroMStickSmoothWeight = m_Xdoc.CreateNode(XmlNodeType.Element, "GyroMouseStickSmoothingWeight", null); xmlGyroMStickSmoothWeight.InnerText = Convert.ToInt32(gyroMStickInfo[device].smoothWeight * 100).ToString(); Node.AppendChild(xmlGyroMStickSmoothWeight); 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); @@ -3192,6 +3195,18 @@ namespace DS4Windows } catch { gyroMouseStickToggle[device] = false; missingSetting = true; } + try { Item = m_Xdoc.SelectSingleNode("/" + rootname + "/GyroMouseStickVerticalScale"); int.TryParse(Item.InnerText, out gyroMStickInfo[device].vertScale); } + catch { gyroMStickInfo[device].vertScale = 100; missingSetting = true; } + + try { Item = m_Xdoc.SelectSingleNode("/" + rootname + "/GyroMouseStickSmoothing"); bool.TryParse(Item.InnerText, out gyroMStickInfo[device].useSmoothing); } + catch { gyroMStickInfo[device].useSmoothing = false; missingSetting = true; } + + try { + Item = m_Xdoc.SelectSingleNode("/" + rootname + "/GyroMouseStickSmoothingWeight"); + int temp = 0; int.TryParse(Item.InnerText, out temp); + gyroMStickInfo[device].smoothWeight = Math.Min(Math.Max(0.0, Convert.ToDouble(temp * 0.01)), 1.0); + } + catch { gyroMStickInfo[device].smoothWeight = 0.5; missingSetting = true; } try { @@ -4587,8 +4602,9 @@ namespace DS4Windows sAMouseStickTriggerCond[device] = true; gyroMStickInfo[device].deadZone = 30; gyroMStickInfo[device].maxZone = 830; gyroMStickInfo[device].antiDeadX = 0.4; gyroMStickInfo[device].antiDeadY = 0.4; - gyroMStickInfo[device].inverted = 0; + gyroMStickInfo[device].inverted = 0; gyroMStickInfo[device].vertScale = 100; gyroMouseStickToggle[device] = false; + gyroMStickInfo[device].useSmoothing = false; gyroMStickInfo[device].smoothWeight = 0.5; sASteeringWheelEmulationAxis[device] = SASteeringWheelEmulationAxisType.None; sASteeringWheelEmulationRange[device] = 360; touchDisInvertTriggers[device] = new int[1] { -1 }; diff --git a/DS4Windows/DS4Forms/Options.Designer.cs b/DS4Windows/DS4Forms/Options.Designer.cs index 0466b6f..9dd8da6 100644 --- a/DS4Windows/DS4Forms/Options.Designer.cs +++ b/DS4Windows/DS4Forms/Options.Designer.cs @@ -208,6 +208,9 @@ this.gyroMouseStickAntiDeadX = new System.Windows.Forms.NumericUpDown(); this.label32 = new System.Windows.Forms.Label(); this.gyroMouseStickAntiDeadY = new System.Windows.Forms.NumericUpDown(); + this.label37 = new System.Windows.Forms.Label(); + this.gyroMStickVertScaleNUD = new System.Windows.Forms.NumericUpDown(); + this.label38 = new System.Windows.Forms.Label(); this.label35 = new System.Windows.Forms.Label(); this.gyroMouseStickEvalCombo = new System.Windows.Forms.ComboBox(); this.label33 = new System.Windows.Forms.Label(); @@ -424,6 +427,9 @@ this.optionsTouchInvStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.shareTouchInvStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.psTouchInvStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.gyroMStickUseSmoothCk = new System.Windows.Forms.CheckBox(); + this.gyroMStickSmoothWeightNUD = new System.Windows.Forms.NumericUpDown(); + this.label39 = new System.Windows.Forms.Label(); ((System.ComponentModel.ISupportInitialize)(this.nUDRainbow)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.tBBlueBar)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.tBGreenBar)).BeginInit(); @@ -476,6 +482,7 @@ ((System.ComponentModel.ISupportInitialize)(this.gyroMouseStickMaxZ)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.gyroMouseStickAntiDeadX)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.gyroMouseStickAntiDeadY)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.gyroMStickVertScaleNUD)).BeginInit(); this.tCControls.SuspendLayout(); this.tPControls.SuspendLayout(); this.pnlController.SuspendLayout(); @@ -525,6 +532,7 @@ ((System.ComponentModel.ISupportInitialize)(this.nUDSZS)).BeginInit(); this.cMGyroTriggers.SuspendLayout(); this.cMTouchDisableInvert.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.gyroMStickSmoothWeightNUD)).BeginInit(); this.SuspendLayout(); // // lowColorChooserButton @@ -2046,12 +2054,18 @@ this.gyroMouseJoyFLP.Controls.Add(this.gyroMouseStickAntiDeadX); this.gyroMouseJoyFLP.Controls.Add(this.label32); this.gyroMouseJoyFLP.Controls.Add(this.gyroMouseStickAntiDeadY); + this.gyroMouseJoyFLP.Controls.Add(this.label37); + this.gyroMouseJoyFLP.Controls.Add(this.gyroMStickVertScaleNUD); + this.gyroMouseJoyFLP.Controls.Add(this.label38); this.gyroMouseJoyFLP.Controls.Add(this.label35); this.gyroMouseJoyFLP.Controls.Add(this.gyroMouseStickEvalCombo); this.gyroMouseJoyFLP.Controls.Add(this.label33); this.gyroMouseJoyFLP.Controls.Add(this.gyroMousestickXAxisCom); this.gyroMouseJoyFLP.Controls.Add(this.gyroMouseStickInvertXCk); this.gyroMouseJoyFLP.Controls.Add(this.gyroMouseStickInvertYCk); + this.gyroMouseJoyFLP.Controls.Add(this.gyroMStickUseSmoothCk); + this.gyroMouseJoyFLP.Controls.Add(this.label39); + this.gyroMouseJoyFLP.Controls.Add(this.gyroMStickSmoothWeightNUD); resources.ApplyResources(this.gyroMouseJoyFLP, "gyroMouseJoyFLP"); this.gyroMouseJoyFLP.Name = "gyroMouseJoyFLP"; // @@ -2169,6 +2183,32 @@ 131072}); this.gyroMouseStickAntiDeadY.ValueChanged += new System.EventHandler(this.GyroMouseSStickAntiDeadY_ValueChanged); // + // label37 + // + resources.ApplyResources(this.label37, "label37"); + this.label37.Name = "label37"; + // + // gyroMStickVertScaleNUD + // + resources.ApplyResources(this.gyroMStickVertScaleNUD, "gyroMStickVertScaleNUD"); + this.gyroMStickVertScaleNUD.Maximum = new decimal(new int[] { + 400, + 0, + 0, + 0}); + this.gyroMStickVertScaleNUD.Name = "gyroMStickVertScaleNUD"; + this.gyroMStickVertScaleNUD.Value = new decimal(new int[] { + 100, + 0, + 0, + 0}); + this.gyroMStickVertScaleNUD.ValueChanged += new System.EventHandler(this.GyroMStickVertScaleNUD_ValueChanged); + // + // label38 + // + resources.ApplyResources(this.label38, "label38"); + this.label38.Name = "label38"; + // // label35 // resources.ApplyResources(this.label35, "label35"); @@ -4557,6 +4597,35 @@ resources.ApplyResources(this.psTouchInvStripMenuItem, "psTouchInvStripMenuItem"); this.psTouchInvStripMenuItem.CheckedChanged += new System.EventHandler(this.TouchDisableInvert_CheckedChanged); // + // gyroMStickUseSmoothCk + // + resources.ApplyResources(this.gyroMStickUseSmoothCk, "gyroMStickUseSmoothCk"); + this.gyroMStickUseSmoothCk.Name = "gyroMStickUseSmoothCk"; + this.gyroMStickUseSmoothCk.UseVisualStyleBackColor = true; + this.gyroMStickUseSmoothCk.CheckedChanged += new System.EventHandler(this.GyroMStickUseSmoothCk_CheckedChanged); + // + // gyroMStickSmoothWeightNUD + // + this.gyroMStickSmoothWeightNUD.DecimalPlaces = 3; + resources.ApplyResources(this.gyroMStickSmoothWeightNUD, "gyroMStickSmoothWeightNUD"); + this.gyroMStickSmoothWeightNUD.Maximum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.gyroMStickSmoothWeightNUD.Name = "gyroMStickSmoothWeightNUD"; + this.gyroMStickSmoothWeightNUD.Value = new decimal(new int[] { + 5, + 0, + 0, + 65536}); + this.gyroMStickSmoothWeightNUD.ValueChanged += new System.EventHandler(this.GyroMStickSmoothWeightNUD_ValueChanged); + // + // label39 + // + resources.ApplyResources(this.label39, "label39"); + this.label39.Name = "label39"; + // // Options // resources.ApplyResources(this, "$this"); @@ -4631,6 +4700,7 @@ ((System.ComponentModel.ISupportInitialize)(this.gyroMouseStickMaxZ)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.gyroMouseStickAntiDeadX)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.gyroMouseStickAntiDeadY)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.gyroMStickVertScaleNUD)).EndInit(); this.tCControls.ResumeLayout(false); this.tPControls.ResumeLayout(false); this.pnlController.ResumeLayout(false); @@ -4690,6 +4760,7 @@ ((System.ComponentModel.ISupportInitialize)(this.nUDSZS)).EndInit(); this.cMGyroTriggers.ResumeLayout(false); this.cMTouchDisableInvert.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.gyroMStickSmoothWeightNUD)).EndInit(); this.ResumeLayout(false); } @@ -5092,5 +5163,11 @@ private System.Windows.Forms.Label label35; private System.Windows.Forms.ComboBox gyroMouseStickEvalCombo; private System.Windows.Forms.CheckBox gyroMStickToggleCk; + private System.Windows.Forms.Label label37; + private System.Windows.Forms.NumericUpDown gyroMStickVertScaleNUD; + private System.Windows.Forms.Label label38; + private System.Windows.Forms.CheckBox gyroMStickUseSmoothCk; + private System.Windows.Forms.Label label39; + private System.Windows.Forms.NumericUpDown gyroMStickSmoothWeightNUD; } } \ No newline at end of file diff --git a/DS4Windows/DS4Forms/Options.cs b/DS4Windows/DS4Forms/Options.cs index 1992c20..55a7579 100644 --- a/DS4Windows/DS4Forms/Options.cs +++ b/DS4Windows/DS4Forms/Options.cs @@ -815,6 +815,10 @@ namespace DS4Windows.Forms gyroMouseStickInvertXCk.Checked = (gyroMouseStickInfo.inverted & 1) == 1; gyroMouseStickInvertYCk.Checked = (gyroMouseStickInfo.inverted & 2) == 2; gyroMStickToggleCk.Checked = GyroMouseStickToggle[device]; + gyroMStickVertScaleNUD.Value = gyroMouseStickInfo.vertScale; + gyroMStickUseSmoothCk.Checked = gyroMouseStickInfo.useSmoothing; + gyroMStickSmoothWeightNUD.Enabled = gyroMouseStickInfo.useSmoothing; + gyroMStickSmoothWeightNUD.Value = (decimal)gyroMouseStickInfo.smoothWeight; } else { @@ -960,6 +964,10 @@ namespace DS4Windows.Forms gyroMouseStickInvertYCk.Checked = false; gyroMStickTrigBehaveCk.Checked = false; gyroMStickToggleCk.Checked = false; + gyroMStickVertScaleNUD.Value = 100; + gyroMStickUseSmoothCk.Checked = false; + gyroMStickSmoothWeightNUD.Enabled = false; + gyroMStickSmoothWeightNUD.Value = 0.5m; Set(); } @@ -1553,24 +1561,29 @@ namespace DS4Windows.Forms SetSaMouseStickTriggerCond(device, gyroMouseStickEvalCombo.SelectedItem.ToString().ToLower()); + + GyroMouseStickInfo gyroMouseStickInfo = GyroMouseStickInf[device]; if (GyroMouseStickDead()) { - GyroMouseStickInf[device].deadZone = (int)gyroMouseStickDZ.Value; - GyroMouseStickInf[device].maxZone = (int)gyroMouseStickMaxZ.Value; + gyroMouseStickInfo.deadZone = (int)gyroMouseStickDZ.Value; + gyroMouseStickInfo.maxZone = (int)gyroMouseStickMaxZ.Value; } else { - GyroMouseStickInf[device].deadZone = (int)gyroMouseStickMaxZ.Value; - GyroMouseStickInf[device].maxZone = (int)gyroMouseStickMaxZ.Value; + gyroMouseStickInfo.deadZone = (int)gyroMouseStickMaxZ.Value; + gyroMouseStickInfo.maxZone = (int)gyroMouseStickMaxZ.Value; } - - GyroMouseStickInf[device].antiDeadX = (double)gyroMouseStickAntiDeadX.Value; - GyroMouseStickInf[device].antiDeadY = (double)gyroMouseStickAntiDeadY.Value; + + gyroMouseStickInfo.antiDeadX = (double)gyroMouseStickAntiDeadX.Value; + gyroMouseStickInfo.antiDeadY = (double)gyroMouseStickAntiDeadY.Value; GyroMouseStickHorizontalAxis[device] = gyroMousestickXAxisCom.SelectedIndex; uint tempInvert = 0; if (gyroMouseStickInvertXCk.Checked) tempInvert |= 1 << 0; if (gyroMouseStickInvertYCk.Checked) tempInvert |= 1 << 1; - GyroMouseStickInf[device].inverted = tempInvert; + gyroMouseStickInfo.inverted = tempInvert; + gyroMouseStickInfo.vertScale = (int)gyroMStickVertScaleNUD.Value; + gyroMouseStickInfo.useSmoothing = gyroMStickUseSmoothCk.Checked; + gyroMouseStickInfo.smoothWeight = (double)gyroMStickSmoothWeightNUD.Value; } private void Show_ControlsBtn(object sender, EventArgs e) @@ -3586,9 +3599,13 @@ namespace DS4Windows.Forms break; case 1: GyroOutputMode[device] = GyroOutMode.Mouse; + SetGyroMouseToggle(device, toggleGyroMCb.Checked, + Program.rootHub); break; case 2: GyroOutputMode[device] = GyroOutMode.MouseJoystick; + SetGyroMouseStickToggle(device, + gyroMStickToggleCk.Checked, Program.rootHub); break; default: break; @@ -3681,6 +3698,34 @@ namespace DS4Windows.Forms } } + private void GyroMStickVertScaleNUD_ValueChanged(object sender, EventArgs e) + { + if (loading == false) + { + GyroMouseStickInf[device].vertScale = (int)gyroMStickVertScaleNUD.Value; + } + } + + private void GyroMStickSmoothWeightNUD_ValueChanged(object sender, EventArgs e) + { + if (loading == false) + { + GyroMouseStickInf[device].smoothWeight = + (double)gyroMStickSmoothWeightNUD.Value; + } + } + + private void GyroMStickUseSmoothCk_CheckedChanged(object sender, EventArgs e) + { + if (loading == false) + { + GyroMouseStickInf[device].useSmoothing = + gyroMStickUseSmoothCk.Checked; + gyroMStickSmoothWeightNUD.Enabled = + GyroMouseStickInf[device].useSmoothing; + } + } + private void trackFrictionNUD_ValueChanged(object sender, EventArgs e) { if (loading == false) diff --git a/DS4Windows/DS4Forms/Options.resx b/DS4Windows/DS4Forms/Options.resx index 4fc0984..3cc9b88 100644 --- a/DS4Windows/DS4Forms/Options.resx +++ b/DS4Windows/DS4Forms/Options.resx @@ -4936,7 +4936,7 @@ 6, 47 - 271, 195 + 271, 199 254 @@ -5679,6 +5679,81 @@ 11 + + True + + + 3, 104 + + + 75, 13 + + + 280 + + + Vertical Scale: + + + label37 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + gyroMouseJoyFLP + + + 12 + + + 84, 107 + + + 75, 20 + + + 281 + + + gyroMStickVertScaleNUD + + + System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + gyroMouseJoyFLP + + + 13 + + + 165, 104 + + + 20, 23 + + + 282 + + + % + + + MiddleCenter + + + label38 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + gyroMouseJoyFLP + + + 14 + True @@ -5686,7 +5761,7 @@ NoControl - 3, 104 + 3, 130 59, 13 @@ -5707,7 +5782,7 @@ gyroMouseJoyFLP - 12 + 15 And @@ -5716,7 +5791,7 @@ Or - 68, 107 + 68, 133 72, 21 @@ -5734,13 +5809,13 @@ gyroMouseJoyFLP - 13 + 16 True - 146, 104 + 146, 130 39, 13 @@ -5761,7 +5836,7 @@ gyroMouseJoyFLP - 14 + 17 Yaw @@ -5770,7 +5845,7 @@ Roll - 191, 107 + 191, 133 56, 21 @@ -5788,19 +5863,16 @@ gyroMouseJoyFLP - 15 - - - True + 18 - 3, 134 + 3, 160 - Yes + No - 63, 17 + 96, 17 11 @@ -5818,19 +5890,16 @@ gyroMouseJoyFLP - 16 - - - True + 19 - 72, 134 + 105, 160 - Yes + No - 63, 17 + 127, 17 12 @@ -5848,13 +5917,91 @@ gyroMouseJoyFLP - 17 + 20 + + + True + + + 3, 183 + + + Yes + + + 76, 17 + + + 283 + + + Smoothing + + + gyroMStickUseSmoothCk + + + System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + gyroMouseJoyFLP + + + 21 + + + 85, 180 + + + 60, 23 + + + 285 + + + Weight: + + + MiddleCenter + + + label39 + + + System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + gyroMouseJoyFLP + + + 22 + + + 151, 183 + + + 72, 20 + + + 284 + + + gyroMStickSmoothWeightNUD + + + System.Windows.Forms.NumericUpDown, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + gyroMouseJoyFLP + + + 23 8, 47 - 252, 181 + 252, 210 260