mirror of
https://github.com/cemu-project/DS4Windows.git
synced 2024-12-26 16:41:50 +01:00
Added toggle option to Mouse Joystick
This commit is contained in:
parent
ca41c511c6
commit
b2e7eb987d
@ -155,7 +155,6 @@ namespace DS4Windows
|
||||
}
|
||||
}
|
||||
|
||||
previousTriggerActivated = triggeractivated;
|
||||
if (toggleGyroMouse)
|
||||
{
|
||||
if (triggeractivated && triggeractivated != previousTriggerActivated)
|
||||
|
@ -896,6 +896,10 @@ namespace DS4Windows
|
||||
return m_Config.gyroMStickInfo[device];
|
||||
}
|
||||
|
||||
public static bool[] GyroMouseStickToggle => m_Config.gyroMouseStickToggle;
|
||||
public static void SetGyroMouseStickToggle(int index, bool value, ControlService control)
|
||||
=> m_Config.SetGyroMouseStickToggle(index, value, control);
|
||||
|
||||
public static SASteeringWheelEmulationAxisType[] SASteeringWheelEmulationAxis => m_Config.sASteeringWheelEmulationAxis;
|
||||
public static SASteeringWheelEmulationAxisType GetSASteeringWheelEmulationAxis(int index)
|
||||
{
|
||||
@ -1894,6 +1898,8 @@ namespace DS4Windows
|
||||
new GyroMouseStickInfo(), new GyroMouseStickInfo(),
|
||||
new GyroMouseStickInfo()
|
||||
};
|
||||
public bool[] gyroMouseStickToggle = new bool[5] { false, false, false,
|
||||
false, false };
|
||||
|
||||
public SASteeringWheelEmulationAxisType[] sASteeringWheelEmulationAxis = new SASteeringWheelEmulationAxisType[5] { SASteeringWheelEmulationAxisType.None, SASteeringWheelEmulationAxisType.None, SASteeringWheelEmulationAxisType.None, SASteeringWheelEmulationAxisType.None, SASteeringWheelEmulationAxisType.None };
|
||||
public int[] sASteeringWheelEmulationRange = new int[5] { 360, 360, 360, 360, 360 };
|
||||
@ -2070,6 +2076,13 @@ namespace DS4Windows
|
||||
control.touchPad[index].ToggleGyroMouse = value;
|
||||
}
|
||||
|
||||
public void SetGyroMouseStickToggle(int index, bool value, ControlService control)
|
||||
{
|
||||
gyroMouseStickToggle[index] = value;
|
||||
if (index < 4 && control.touchPad[index] != null)
|
||||
control.touchPad[index].ToggleGyroMouse = value;
|
||||
}
|
||||
|
||||
private string OutContDeviceString(OutContType id)
|
||||
{
|
||||
string result = "X360";
|
||||
@ -2266,6 +2279,7 @@ namespace DS4Windows
|
||||
XmlNode xmlGyroMStickAntiDX = m_Xdoc.CreateNode(XmlNodeType.Element, "GyroMouseStickAntiDeadX", null); xmlGyroMStickAntiDX.InnerText = gyroMStickInfo[device].antiDeadX.ToString(); Node.AppendChild(xmlGyroMStickAntiDX);
|
||||
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 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);
|
||||
@ -3140,7 +3154,6 @@ namespace DS4Windows
|
||||
try { Item = m_Xdoc.SelectSingleNode("/" + rootname + "/GyroMouseStickTriggerTurns"); bool.TryParse(Item.InnerText, out gyroMouseStickTriggerTurns[device]); }
|
||||
catch { gyroMouseStickTriggerTurns[device] = true; missingSetting = true; }
|
||||
|
||||
|
||||
try { Item = m_Xdoc.SelectSingleNode("/" + rootname + "/GyroMouseStickHAxis"); int temp = 0; int.TryParse(Item.InnerText, out temp); gyroMouseStickHorizontalAxis[device] = Math.Min(Math.Max(0, temp), 1); }
|
||||
catch { gyroMouseStickHorizontalAxis[device] = 0; missingSetting = true; }
|
||||
|
||||
@ -3172,6 +3185,13 @@ namespace DS4Windows
|
||||
try { Item = m_Xdoc.SelectSingleNode("/" + rootname + "/GyroMouseStickInvert"); uint.TryParse(Item.InnerText, out gyroMStickInfo[device].inverted); }
|
||||
catch { gyroMStickInfo[device].inverted = 0; missingSetting = true; }
|
||||
|
||||
try
|
||||
{
|
||||
Item = m_Xdoc.SelectSingleNode("/" + rootname + "/GyroMouseStickToggle"); bool.TryParse(Item.InnerText, out bool temp);
|
||||
gyroMouseStickToggle[device] = temp;
|
||||
}
|
||||
catch { gyroMouseStickToggle[device] = false; missingSetting = true; }
|
||||
|
||||
|
||||
try
|
||||
{
|
||||
@ -3217,9 +3237,9 @@ namespace DS4Windows
|
||||
try
|
||||
{
|
||||
Item = m_Xdoc.SelectSingleNode("/" + rootname + "/GyroMouseToggle"); bool.TryParse(Item.InnerText, out bool temp);
|
||||
SetGyroMouseToggle(device, temp, control);
|
||||
gyroMouseToggle[device] = temp;
|
||||
}
|
||||
catch { SetGyroMouseToggle(device, false, control); missingSetting = true; }
|
||||
catch { gyroMouseToggle[device] = false; missingSetting = true; }
|
||||
|
||||
try { Item = m_Xdoc.SelectSingleNode("/" + rootname + "/LSCurve"); int.TryParse(Item.InnerText, out lsCurve[device]); }
|
||||
catch { lsCurve[device] = 0; missingSetting = true; }
|
||||
@ -3553,7 +3573,20 @@ namespace DS4Windows
|
||||
containsCustomExtras[device] = HasCustomExtras(device);
|
||||
|
||||
if (device < 4)
|
||||
{
|
||||
Program.rootHub.touchPad[device]?.ResetToggleGyroM();
|
||||
GyroOutMode currentGyro = gyroOutMode[device];
|
||||
if (currentGyro == GyroOutMode.Mouse)
|
||||
{
|
||||
control.touchPad[device].ToggleGyroMouse =
|
||||
gyroMouseToggle[device];
|
||||
}
|
||||
else if (currentGyro == GyroOutMode.MouseJoystick)
|
||||
{
|
||||
control.touchPad[device].ToggleGyroMouse =
|
||||
gyroMouseStickToggle[device];
|
||||
}
|
||||
}
|
||||
|
||||
// If a device exists, make sure to transfer relevant profile device
|
||||
// options to device instance
|
||||
@ -4555,6 +4588,7 @@ namespace DS4Windows
|
||||
gyroMStickInfo[device].deadZone = 30; gyroMStickInfo[device].maxZone = 830;
|
||||
gyroMStickInfo[device].antiDeadX = 0.4; gyroMStickInfo[device].antiDeadY = 0.4;
|
||||
gyroMStickInfo[device].inverted = 0;
|
||||
gyroMouseStickToggle[device] = false;
|
||||
sASteeringWheelEmulationAxis[device] = SASteeringWheelEmulationAxisType.None;
|
||||
sASteeringWheelEmulationRange[device] = 360;
|
||||
touchDisInvertTriggers[device] = new int[1] { -1 };
|
||||
@ -4566,6 +4600,7 @@ namespace DS4Windows
|
||||
gyroSmoothing[device] = false;
|
||||
gyroSmoothWeight[device] = 0.5;
|
||||
gyroMouseHorizontalAxis[device] = 0;
|
||||
gyroMouseToggle[device] = false;
|
||||
squStickInfo[device].lsMode = false;
|
||||
squStickInfo[device].rsMode = false;
|
||||
squStickInfo[device].roundness = 5.0;
|
||||
|
10
DS4Windows/DS4Forms/Options.Designer.cs
generated
10
DS4Windows/DS4Forms/Options.Designer.cs
generated
@ -199,6 +199,7 @@
|
||||
this.label36 = new System.Windows.Forms.Label();
|
||||
this.btnGyroMStickTrig = new System.Windows.Forms.Button();
|
||||
this.gyroMStickTrigBehaveCk = new System.Windows.Forms.CheckBox();
|
||||
this.gyroMStickToggleCk = new System.Windows.Forms.CheckBox();
|
||||
this.label29 = new System.Windows.Forms.Label();
|
||||
this.gyroMouseStickDZ = new System.Windows.Forms.NumericUpDown();
|
||||
this.label30 = new System.Windows.Forms.Label();
|
||||
@ -2036,6 +2037,7 @@
|
||||
this.gyroMouseJoyFLP.Controls.Add(this.label36);
|
||||
this.gyroMouseJoyFLP.Controls.Add(this.btnGyroMStickTrig);
|
||||
this.gyroMouseJoyFLP.Controls.Add(this.gyroMStickTrigBehaveCk);
|
||||
this.gyroMouseJoyFLP.Controls.Add(this.gyroMStickToggleCk);
|
||||
this.gyroMouseJoyFLP.Controls.Add(this.label29);
|
||||
this.gyroMouseJoyFLP.Controls.Add(this.gyroMouseStickDZ);
|
||||
this.gyroMouseJoyFLP.Controls.Add(this.label30);
|
||||
@ -2074,6 +2076,13 @@
|
||||
this.gyroMStickTrigBehaveCk.UseVisualStyleBackColor = true;
|
||||
this.gyroMStickTrigBehaveCk.CheckedChanged += new System.EventHandler(this.GyroMStickTrigBehaveCk_CheckedChanged);
|
||||
//
|
||||
// gyroMStickToggleCk
|
||||
//
|
||||
resources.ApplyResources(this.gyroMStickToggleCk, "gyroMStickToggleCk");
|
||||
this.gyroMStickToggleCk.Name = "gyroMStickToggleCk";
|
||||
this.gyroMStickToggleCk.UseVisualStyleBackColor = true;
|
||||
this.gyroMStickToggleCk.CheckedChanged += new System.EventHandler(this.GyroMStickToggleCk_CheckedChanged);
|
||||
//
|
||||
// label29
|
||||
//
|
||||
resources.ApplyResources(this.label29, "label29");
|
||||
@ -5082,5 +5091,6 @@
|
||||
private System.Windows.Forms.CheckBox gyroMStickTrigBehaveCk;
|
||||
private System.Windows.Forms.Label label35;
|
||||
private System.Windows.Forms.ComboBox gyroMouseStickEvalCombo;
|
||||
private System.Windows.Forms.CheckBox gyroMStickToggleCk;
|
||||
}
|
||||
}
|
@ -814,6 +814,7 @@ namespace DS4Windows.Forms
|
||||
gyroMousestickXAxisCom.SelectedIndex = GyroMouseStickHorizontalAxis[device];
|
||||
gyroMouseStickInvertXCk.Checked = (gyroMouseStickInfo.inverted & 1) == 1;
|
||||
gyroMouseStickInvertYCk.Checked = (gyroMouseStickInfo.inverted & 2) == 2;
|
||||
gyroMStickToggleCk.Checked = GyroMouseStickToggle[device];
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -957,6 +958,8 @@ namespace DS4Windows.Forms
|
||||
gyroMousestickXAxisCom.SelectedIndex = 0;
|
||||
gyroMouseStickInvertXCk.Checked = false;
|
||||
gyroMouseStickInvertYCk.Checked = false;
|
||||
gyroMStickTrigBehaveCk.Checked = false;
|
||||
gyroMStickToggleCk.Checked = false;
|
||||
|
||||
Set();
|
||||
}
|
||||
@ -1474,7 +1477,7 @@ namespace DS4Windows.Forms
|
||||
GyroSmoothingWeight[device] = (double)nUDGyroSmoothWeight.Value;
|
||||
GyroMouseHorizontalAxis[device] = cBGyroMouseXAxis.SelectedIndex;
|
||||
SetGyroMouseDeadZone(device, (int)gyroMouseDzNUD.Value, Program.rootHub);
|
||||
SetGyroMouseToggle(device, toggleGyroMCb.Checked, Program.rootHub);
|
||||
//SetGyroMouseToggle(device, toggleGyroMCb.Checked, Program.rootHub);
|
||||
|
||||
int invert = 0;
|
||||
if (cBGyroInvertX.Checked)
|
||||
@ -1535,9 +1538,12 @@ 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;
|
||||
@ -3666,6 +3672,15 @@ namespace DS4Windows.Forms
|
||||
}
|
||||
}
|
||||
|
||||
private void GyroMStickToggleCk_CheckedChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (loading == false)
|
||||
{
|
||||
Global.SetGyroMouseStickToggle(device,
|
||||
gyroMStickToggleCk.Checked, Program.rootHub);
|
||||
}
|
||||
}
|
||||
|
||||
private void trackFrictionNUD_ValueChanged(object sender, EventArgs e)
|
||||
{
|
||||
if (loading == false)
|
||||
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user