fix device disconnect

This commit is contained in:
2022-06-07 22:07:03 +02:00
parent a983c19ec6
commit a687242145

View File

@@ -80,169 +80,183 @@ namespace PJ64Savestater
{ {
var inputCodes = new List<string>(); var inputCodes = new List<string>();
var state = new JoystickState(); var state = new JoystickState();
curPad.Poll(); bool success;
curPad.GetCurrentState(ref state);
for (int i = 0, loopTo = state.Buttons.Length - 1; i <= loopTo; i++) try
{ {
if (state.Buttons[i]) curPad.Poll();
inputCodes.Add("Button " + i); curPad.GetCurrentState(ref state);
success = true;
}
catch (SharpDX.SharpDXException)
{
success = false;
} }
for (int i = 0, loopTo1 = state.PointOfViewControllers.Length - 1; i <= loopTo1; i++) if (success)
{ {
int val = state.PointOfViewControllers[i];
if (val > -1)
inputCodes.Add("Point " + i + " " + val);
}
for (int i = 0, loopTo2 = state.Sliders.Length - 1; i <= loopTo2; i++) for (int i = 0, loopTo = state.Buttons.Length - 1; i <= loopTo; i++)
{ {
int val = state.Sliders[i]; if (state.Buttons[i])
if (val > toleranceOffset) inputCodes.Add("Button " + i);
inputCodes.Add("Slider " + i + " +"); }
if (val < -toleranceOffset)
inputCodes.Add("Slider " + i + " -");
}
for (int i = 0, loopTo3 = state.AccelerationSliders.Length - 1; i <= loopTo3; i++) for (int i = 0, loopTo1 = state.PointOfViewControllers.Length - 1; i <= loopTo1; i++)
{ {
int val = state.AccelerationSliders[i]; int val = state.PointOfViewControllers[i];
if (val > toleranceOffset) if (val > -1)
inputCodes.Add("ASlider " + i + " +"); inputCodes.Add("Point " + i + " " + val);
if (val < -toleranceOffset) }
inputCodes.Add("ASlider " + i + " -");
}
for (int i = 0, loopTo4 = state.ForceSliders.Length - 1; i <= loopTo4; i++) for (int i = 0, loopTo2 = state.Sliders.Length - 1; i <= loopTo2; i++)
{ {
int val = state.ForceSliders[i]; int val = state.Sliders[i];
if (val > toleranceOffset) if (val > toleranceOffset)
inputCodes.Add("FSlider " + i + " +"); inputCodes.Add("Slider " + i + " +");
if (val < -toleranceOffset) if (val < -toleranceOffset)
inputCodes.Add("FSlider " + i + " -"); inputCodes.Add("Slider " + i + " -");
} }
for (int i = 0, loopTo5 = state.VelocitySliders.Length - 1; i <= loopTo5; i++) for (int i = 0, loopTo3 = state.AccelerationSliders.Length - 1; i <= loopTo3; i++)
{ {
int val = state.VelocitySliders[i]; int val = state.AccelerationSliders[i];
if (val > toleranceOffset) if (val > toleranceOffset)
inputCodes.Add("VSlider " + i + " +"); inputCodes.Add("ASlider " + i + " +");
if (val < -toleranceOffset) if (val < -toleranceOffset)
inputCodes.Add("VSlider " + i + " -"); inputCodes.Add("ASlider " + i + " -");
} }
if (state.X > toleranceOffset) for (int i = 0, loopTo4 = state.ForceSliders.Length - 1; i <= loopTo4; i++)
inputCodes.Add("X +"); {
if (state.X < -toleranceOffset) int val = state.ForceSliders[i];
inputCodes.Add("X -"); if (val > toleranceOffset)
inputCodes.Add("FSlider " + i + " +");
if (val < -toleranceOffset)
inputCodes.Add("FSlider " + i + " -");
}
if (state.Y > toleranceOffset) for (int i = 0, loopTo5 = state.VelocitySliders.Length - 1; i <= loopTo5; i++)
inputCodes.Add("Y +"); {
if (state.Y < -toleranceOffset) int val = state.VelocitySliders[i];
inputCodes.Add("Y -"); if (val > toleranceOffset)
inputCodes.Add("VSlider " + i + " +");
if (val < -toleranceOffset)
inputCodes.Add("VSlider " + i + " -");
}
if (state.Z > toleranceOffset) if (state.X > toleranceOffset)
inputCodes.Add("Z +"); inputCodes.Add("X +");
if (state.Z < -toleranceOffset) if (state.X < -toleranceOffset)
inputCodes.Add("Z -"); inputCodes.Add("X -");
if (state.AccelerationX > toleranceOffset) if (state.Y > toleranceOffset)
inputCodes.Add("AX +"); inputCodes.Add("Y +");
if (state.AccelerationX < -toleranceOffset) if (state.Y < -toleranceOffset)
inputCodes.Add("AX -"); inputCodes.Add("Y -");
if (state.AccelerationY > toleranceOffset) if (state.Z > toleranceOffset)
inputCodes.Add("AY +"); inputCodes.Add("Z +");
if (state.AccelerationY < -toleranceOffset) if (state.Z < -toleranceOffset)
inputCodes.Add("AY -"); inputCodes.Add("Z -");
if (state.AccelerationZ > toleranceOffset) if (state.AccelerationX > toleranceOffset)
inputCodes.Add("AZ +"); inputCodes.Add("AX +");
if (state.AccelerationZ < -toleranceOffset) if (state.AccelerationX < -toleranceOffset)
inputCodes.Add("AZ -"); inputCodes.Add("AX -");
if (state.AngularAccelerationX > toleranceOffset) if (state.AccelerationY > toleranceOffset)
inputCodes.Add("AAX +"); inputCodes.Add("AY +");
if (state.AngularAccelerationX < -toleranceOffset) if (state.AccelerationY < -toleranceOffset)
inputCodes.Add("AAX -"); inputCodes.Add("AY -");
if (state.AngularAccelerationY > toleranceOffset) if (state.AccelerationZ > toleranceOffset)
inputCodes.Add("AAY +"); inputCodes.Add("AZ +");
if (state.AngularAccelerationY < -toleranceOffset) if (state.AccelerationZ < -toleranceOffset)
inputCodes.Add("AAY -"); inputCodes.Add("AZ -");
if (state.AngularAccelerationZ > toleranceOffset) if (state.AngularAccelerationX > toleranceOffset)
inputCodes.Add("AAZ +"); inputCodes.Add("AAX +");
if (state.AngularAccelerationZ < -toleranceOffset) if (state.AngularAccelerationX < -toleranceOffset)
inputCodes.Add("AAZ -"); inputCodes.Add("AAX -");
if (state.ForceX > toleranceOffset) if (state.AngularAccelerationY > toleranceOffset)
inputCodes.Add("FX +"); inputCodes.Add("AAY +");
if (state.ForceX < -toleranceOffset) if (state.AngularAccelerationY < -toleranceOffset)
inputCodes.Add("FX -"); inputCodes.Add("AAY -");
if (state.ForceY > toleranceOffset) if (state.AngularAccelerationZ > toleranceOffset)
inputCodes.Add("FY +"); inputCodes.Add("AAZ +");
if (state.ForceY < -toleranceOffset) if (state.AngularAccelerationZ < -toleranceOffset)
inputCodes.Add("FY -"); inputCodes.Add("AAZ -");
if (state.ForceZ > toleranceOffset) if (state.ForceX > toleranceOffset)
inputCodes.Add("FZ +"); inputCodes.Add("FX +");
if (state.ForceZ < -toleranceOffset) if (state.ForceX < -toleranceOffset)
inputCodes.Add("FZ -"); inputCodes.Add("FX -");
if (state.RotationX > toleranceOffset) if (state.ForceY > toleranceOffset)
inputCodes.Add("RX +"); inputCodes.Add("FY +");
if (state.RotationX < -toleranceOffset) if (state.ForceY < -toleranceOffset)
inputCodes.Add("RX -"); inputCodes.Add("FY -");
if (state.RotationY > toleranceOffset) if (state.ForceZ > toleranceOffset)
inputCodes.Add("RY +"); inputCodes.Add("FZ +");
if (state.RotationY < -toleranceOffset) if (state.ForceZ < -toleranceOffset)
inputCodes.Add("RY -"); inputCodes.Add("FZ -");
if (state.RotationZ > toleranceOffset) if (state.RotationX > toleranceOffset)
inputCodes.Add("RZ +"); inputCodes.Add("RX +");
if (state.RotationZ < -toleranceOffset) if (state.RotationX < -toleranceOffset)
inputCodes.Add("RZ -"); inputCodes.Add("RX -");
if (state.TorqueX > toleranceOffset) if (state.RotationY > toleranceOffset)
inputCodes.Add("TX +"); inputCodes.Add("RY +");
if (state.TorqueX < -toleranceOffset) if (state.RotationY < -toleranceOffset)
inputCodes.Add("TX -"); inputCodes.Add("RY -");
if (state.TorqueY > toleranceOffset) if (state.RotationZ > toleranceOffset)
inputCodes.Add("TY +"); inputCodes.Add("RZ +");
if (state.TorqueY < -toleranceOffset) if (state.RotationZ < -toleranceOffset)
inputCodes.Add("TY -"); inputCodes.Add("RZ -");
if (state.TorqueZ > toleranceOffset) if (state.TorqueX > toleranceOffset)
inputCodes.Add("TZ +"); inputCodes.Add("TX +");
if (state.TorqueZ < -toleranceOffset) if (state.TorqueX < -toleranceOffset)
inputCodes.Add("TZ -"); inputCodes.Add("TX -");
if (state.VelocityX > toleranceOffset) if (state.TorqueY > toleranceOffset)
inputCodes.Add("VX +"); inputCodes.Add("TY +");
if (state.VelocityX < -toleranceOffset) if (state.TorqueY < -toleranceOffset)
inputCodes.Add("VX -"); inputCodes.Add("TY -");
if (state.VelocityY > toleranceOffset) if (state.TorqueZ > toleranceOffset)
inputCodes.Add("VY +"); inputCodes.Add("TZ +");
if (state.VelocityY < -toleranceOffset) if (state.TorqueZ < -toleranceOffset)
inputCodes.Add("VY -"); inputCodes.Add("TZ -");
if (state.VelocityZ > toleranceOffset) if (state.VelocityX > toleranceOffset)
inputCodes.Add("VZ +"); inputCodes.Add("VX +");
if (state.VelocityZ < -toleranceOffset) if (state.VelocityX < -toleranceOffset)
inputCodes.Add("VZ -"); inputCodes.Add("VX -");
if (inputCodes.Any()) if (state.VelocityY > toleranceOffset)
{ inputCodes.Add("VY +");
if (focuesTextBox is object) if (state.VelocityY < -toleranceOffset)
focuesTextBox.Text = inputCodes.Last(); inputCodes.Add("VY -");
else if (enableActionExecution)
CheckForActions(inputCodes.ToArray()); if (state.VelocityZ > toleranceOffset)
inputCodes.Add("VZ +");
if (state.VelocityZ < -toleranceOffset)
inputCodes.Add("VZ -");
if (inputCodes.Any())
{
if (focuesTextBox is object)
focuesTextBox.Text = inputCodes.Last();
else if (enableActionExecution)
CheckForActions(inputCodes.ToArray());
}
} }
} }
} }
@@ -595,7 +609,7 @@ namespace PJ64Savestater
private void radButton3_Click(object sender, EventArgs e) private void radButton3_Click(object sender, EventArgs e)
{ {
var sfd_SaveInputProfile = new SaveFileDialog var sfd_SaveInputProfile = new RadSaveFileDialog
{ {
Filter = FILTER_INPUTPROFILE Filter = FILTER_INPUTPROFILE
}; };
@@ -605,7 +619,7 @@ namespace PJ64Savestater
private void radButton4_Click(object sender, EventArgs e) private void radButton4_Click(object sender, EventArgs e)
{ {
var ofd_SaveInputProfile = new OpenFileDialog var ofd_SaveInputProfile = new RadOpenFileDialog
{ {
Filter = FILTER_INPUTPROFILE Filter = FILTER_INPUTPROFILE
}; };