diff --git a/BizHawk.Client.Common/inputAdapters/SimpleController.cs b/BizHawk.Client.Common/inputAdapters/SimpleController.cs index 2f243c190b..cc8965419d 100644 --- a/BizHawk.Client.Common/inputAdapters/SimpleController.cs +++ b/BizHawk.Client.Common/inputAdapters/SimpleController.cs @@ -1,5 +1,4 @@ -using System; -using System.Collections.Generic; +using System.Collections.Generic; using BizHawk.Common; using BizHawk.Emulation.Common; @@ -43,16 +42,16 @@ namespace BizHawk.Client.Common return Buttons; } - public void AcceptNewAxes(Tuple newValue) + public void AcceptNewAxes((string AxisID, float Value) newValue) { - Axes[newValue.Item1] = newValue.Item2; + Axes[newValue.AxisID] = newValue.Value; } - public void AcceptNewAxes(IEnumerable> newValues) + public void AcceptNewAxes(IEnumerable<(string AxisID, float Value)> newValues) { - foreach (var sv in newValues) + foreach (var (axisID, value) in newValues) { - Axes[sv.Item1] = sv.Item2; + Axes[axisID] = value; } } } diff --git a/BizHawk.Client.Common/movie/import/DsmImport.cs b/BizHawk.Client.Common/movie/import/DsmImport.cs index b75636f988..667fa0e89c 100644 --- a/BizHawk.Client.Common/movie/import/DsmImport.cs +++ b/BizHawk.Client.Common/movie/import/DsmImport.cs @@ -122,8 +122,8 @@ namespace BizHawk.Client.Common controller.AcceptNewAxes(new[] { - new Tuple("TouchX", touchX), - new Tuple("TouchY", touchY) + ("TouchX", (float) touchX), + ("TouchY", (float) touchY) }); } diff --git a/BizHawk.Client.Common/movie/import/PjmImport.cs b/BizHawk.Client.Common/movie/import/PjmImport.cs index 8010e5fc06..8f8ebce986 100644 --- a/BizHawk.Client.Common/movie/import/PjmImport.cs +++ b/BizHawk.Client.Common/movie/import/PjmImport.cs @@ -1,5 +1,4 @@ -using System; -using System.IO; +using System.IO; using BizHawk.Emulation.Cores.Sony.PSX; namespace BizHawk.Client.Common @@ -213,10 +212,10 @@ namespace BizHawk.Client.Common { controllers["P1 L3"] = (controllerState & 0x2) != 0; controllers["P1 R3"] = (controllerState & 0x4) != 0; - var leftX = new Tuple("P1 LStick X", br.ReadByte()); - var leftY = new Tuple("P1 LStick Y", br.ReadByte()); - var rightX = new Tuple("P1 RStick X", br.ReadByte()); - var rightY = new Tuple("P1 RStick Y", br.ReadByte()); + var leftX = ("P1 LStick X", (float) br.ReadByte()); + var leftY = ("P1 LStick Y", (float) br.ReadByte()); + var rightX = ("P1 RStick X", (float) br.ReadByte()); + var rightY = ("P1 RStick Y", (float) br.ReadByte()); controllers.AcceptNewAxes(new[] { leftX, leftY, rightX, rightY }); } @@ -236,10 +235,10 @@ namespace BizHawk.Client.Common if (info.Player2Type == OctoshockDll.ePeripheralType.DualShock) { - var leftX = new Tuple("P2 LStick X", br.ReadByte()); - var leftY = new Tuple("P2 LStick Y", br.ReadByte()); - var rightX = new Tuple("P2 RStick X", br.ReadByte()); - var rightY = new Tuple("P2 RStick Y", br.ReadByte()); + var leftX = ("P2 LStick X", (float) br.ReadByte()); + var leftY = ("P2 LStick Y", (float) br.ReadByte()); + var rightX = ("P2 RStick X", (float) br.ReadByte()); + var rightY = ("P2 RStick Y", (float) br.ReadByte()); controllers.AcceptNewAxes(new[] { leftX, leftY, rightX, rightY }); } @@ -267,7 +266,7 @@ namespace BizHawk.Client.Common controllers["Open"] = false; } - Tuple discSelect = new Tuple("Disc Select", cdNumber); + var discSelect = ("Disc Select", (float) cdNumber); controllers.AcceptNewAxes(new[] { discSelect }); if ((controlState & 0xFC) != 0) @@ -351,10 +350,10 @@ namespace BizHawk.Client.Common string rightXRaw = player1Str.Substring(24, 4); string rightYRaw = player1Str.Substring(28, 4); - Tuple leftX = new Tuple("P1 LStick X", float.Parse(leftXRaw)); - Tuple leftY = new Tuple("P1 LStick Y", float.Parse(leftYRaw)); - Tuple rightX = new Tuple("P1 RStick X", float.Parse(rightXRaw)); - Tuple rightY = new Tuple("P1 RStick Y", float.Parse(rightYRaw)); + var leftX = ("P1 LStick X", float.Parse(leftXRaw)); + var leftY = ("P1 LStick Y", float.Parse(leftYRaw)); + var rightX = ("P1 RStick X", float.Parse(rightXRaw)); + var rightY = ("P1 RStick Y", float.Parse(rightYRaw)); controllers.AcceptNewAxes(new[] { leftX, leftY, rightX, rightY }); } @@ -386,10 +385,10 @@ namespace BizHawk.Client.Common string rightXRaw = player2Str.Substring(24, 4); string rightYRaw = player2Str.Substring(28, 4); - Tuple leftX = new Tuple("P2 LStick X", float.Parse(leftXRaw)); - Tuple leftY = new Tuple("P2 LStick Y", float.Parse(leftYRaw)); - Tuple rightX = new Tuple("P2 RStick X", float.Parse(rightXRaw)); - Tuple rightY = new Tuple("P2 RStick Y", float.Parse(rightYRaw)); + var leftX = ("P2 LStick X", float.Parse(leftXRaw)); + var leftY = ("P2 LStick Y", float.Parse(leftYRaw)); + var rightX = ("P2 RStick X", float.Parse(rightXRaw)); + var rightY = ("P2 RStick Y", float.Parse(rightYRaw)); controllers.AcceptNewAxes(new[] { leftX, leftY, rightX, rightY }); } @@ -417,7 +416,7 @@ namespace BizHawk.Client.Common controllers["Open"] = false; } - Tuple discSelect = new Tuple("Disc Select", cdNumber); + var discSelect = ("Disc Select", (float) cdNumber); controllers.AcceptNewAxes(new[] { discSelect }); if ((controlState & 0xFC) != 0) diff --git a/BizHawk.Client.EmuHawk/Input/GamePad.cs b/BizHawk.Client.EmuHawk/Input/GamePad.cs index 5bf613b7f5..497acfb33d 100644 --- a/BizHawk.Client.EmuHawk/Input/GamePad.cs +++ b/BizHawk.Client.EmuHawk/Input/GamePad.cs @@ -125,12 +125,12 @@ namespace BizHawk.Client.EmuHawk return; } - public IEnumerable> GetFloats() + public IEnumerable<(string AxisID, float Value)> GetFloats() { var pis = typeof(JoystickState).GetProperties(); foreach (var pi in pis) { - yield return new Tuple(pi.Name, 10.0f * (float)(int)pi.GetValue(_state, null)); + yield return (pi.Name, 10.0f * (float)(int)pi.GetValue(_state, null)); } } diff --git a/BizHawk.Client.EmuHawk/Input/GamePad360.cs b/BizHawk.Client.EmuHawk/Input/GamePad360.cs index 4621efc2c0..be2a4ec8d9 100644 --- a/BizHawk.Client.EmuHawk/Input/GamePad360.cs +++ b/BizHawk.Client.EmuHawk/Input/GamePad360.cs @@ -154,7 +154,7 @@ namespace BizHawk.Client.EmuHawk } } - public IEnumerable> GetFloats() + public IEnumerable<(string AxisID, float Value)> GetFloats() { var g = _state.Gamepad; @@ -167,12 +167,12 @@ namespace BizHawk.Client.EmuHawk lTrig *= 10000; rTrig *= 10000; - yield return new Tuple("LeftThumbX", g.sThumbLX / f); - yield return new Tuple("LeftThumbY", g.sThumbLY / f); - yield return new Tuple("RightThumbX", g.sThumbRX / f); - yield return new Tuple("RightThumbY", g.sThumbRY / f); - yield return new Tuple("LeftTrigger", lTrig); - yield return new Tuple("RightTrigger", rTrig); + yield return ("LeftThumbX", g.sThumbLX / f); + yield return ("LeftThumbY", g.sThumbLY / f); + yield return ("RightThumbX", g.sThumbRX / f); + yield return ("RightThumbY", g.sThumbRY / f); + yield return ("LeftTrigger", lTrig); + yield return ("RightTrigger", rTrig); } public int NumButtons { get; private set; } diff --git a/BizHawk.Client.EmuHawk/Input/Input.cs b/BizHawk.Client.EmuHawk/Input/Input.cs index 3258381c0b..f044a8ab36 100644 --- a/BizHawk.Client.EmuHawk/Input/Input.cs +++ b/BizHawk.Client.EmuHawk/Input/Input.cs @@ -338,14 +338,14 @@ namespace BizHawk.Client.EmuHawk } } - public List> GetAxisValues() + public List<(string AxisID, float Value)> GetAxisValues() { - var axisValuesCopy = new List>(); + var axisValuesCopy = new List<(string, float)>(); lock (_axisValues) { foreach (var kvp in _axisValues) { - axisValuesCopy.Add(new Tuple(kvp.Key, kvp.Value)); + axisValuesCopy.Add((kvp.Key, kvp.Value)); } } @@ -394,10 +394,9 @@ namespace BizHawk.Client.EmuHawk { HandleButton(pad.InputNamePrefix + but.ButtonName, but.ButtonAction(), InputFocus.Pad); } - foreach (var sv in pad.GetAxes()) + foreach (var (axisID, f) in pad.GetAxes()) { - var n = $"{pad.InputNamePrefix}{sv.Item1} Axis"; - var f = sv.Item2; + var n = $"{pad.InputNamePrefix}{axisID} Axis"; if (_trackDeltas) _axisDeltas[n] += Math.Abs(f - _axisValues[n]); _axisValues[n] = f; } diff --git a/BizHawk.Client.EmuHawk/Input/OTK_Gamepad.cs b/BizHawk.Client.EmuHawk/Input/OTK_Gamepad.cs index 5a19bcc666..91106be46a 100644 --- a/BizHawk.Client.EmuHawk/Input/OTK_Gamepad.cs +++ b/BizHawk.Client.EmuHawk/Input/OTK_Gamepad.cs @@ -168,36 +168,36 @@ namespace BizHawk.Client.EmuHawk if (!tmpJstate.Equals(jState)) Debug.WriteLine($"Joystick State:\t{tmpJstate}"); } - public IEnumerable> GetAxes() + public IEnumerable<(string AxisID, float Value)> GetAxes() { if (MappedGamePad) { // automapping identified - use OpenTKGamePad - yield return new Tuple("LeftThumbX", ConstrainFloatInput(state.ThumbSticks.Left.X)); - yield return new Tuple("LeftThumbY", ConstrainFloatInput(state.ThumbSticks.Left.Y)); - yield return new Tuple("RightThumbX", ConstrainFloatInput(state.ThumbSticks.Right.X)); - yield return new Tuple("RightThumbY", ConstrainFloatInput(state.ThumbSticks.Right.Y)); - yield return new Tuple("LeftTrigger", ConstrainFloatInput(state.Triggers.Left)); - yield return new Tuple("RightTrigger", ConstrainFloatInput(state.Triggers.Right)); + yield return ("LeftThumbX", ConstrainFloatInput(state.ThumbSticks.Left.X)); + yield return ("LeftThumbY", ConstrainFloatInput(state.ThumbSticks.Left.Y)); + yield return ("RightThumbX", ConstrainFloatInput(state.ThumbSticks.Right.X)); + yield return ("RightThumbY", ConstrainFloatInput(state.ThumbSticks.Right.Y)); + yield return ("LeftTrigger", ConstrainFloatInput(state.Triggers.Left)); + yield return ("RightTrigger", ConstrainFloatInput(state.Triggers.Right)); yield break; } else { // use Joystick - yield return new Tuple("X", ConstrainFloatInput(jState.GetAxis(0))); - yield return new Tuple("Y", ConstrainFloatInput(jState.GetAxis(1))); - yield return new Tuple("Z", ConstrainFloatInput(jState.GetAxis(2))); - yield return new Tuple("W", ConstrainFloatInput(jState.GetAxis(3))); - yield return new Tuple("V", ConstrainFloatInput(jState.GetAxis(4))); - yield return new Tuple("S", ConstrainFloatInput(jState.GetAxis(5))); - yield return new Tuple("Q", ConstrainFloatInput(jState.GetAxis(6))); - yield return new Tuple("P", ConstrainFloatInput(jState.GetAxis(7))); - yield return new Tuple("N", ConstrainFloatInput(jState.GetAxis(8))); + yield return ("X", ConstrainFloatInput(jState.GetAxis(0))); + yield return ("Y", ConstrainFloatInput(jState.GetAxis(1))); + yield return ("Z", ConstrainFloatInput(jState.GetAxis(2))); + yield return ("W", ConstrainFloatInput(jState.GetAxis(3))); + yield return ("V", ConstrainFloatInput(jState.GetAxis(4))); + yield return ("S", ConstrainFloatInput(jState.GetAxis(5))); + yield return ("Q", ConstrainFloatInput(jState.GetAxis(6))); + yield return ("P", ConstrainFloatInput(jState.GetAxis(7))); + yield return ("N", ConstrainFloatInput(jState.GetAxis(8))); for (var i = 9; i < 64; i++) { var j = i; - yield return new Tuple($"Axis{j.ToString()}", ConstrainFloatInput(jState.GetAxis(j))); + yield return ($"Axis{j.ToString()}", ConstrainFloatInput(jState.GetAxis(j))); } yield break; diff --git a/BizHawk.Client.EmuHawk/MainForm.cs b/BizHawk.Client.EmuHawk/MainForm.cs index a0ef7f84b4..5c20ebaee0 100644 --- a/BizHawk.Client.EmuHawk/MainForm.cs +++ b/BizHawk.Client.EmuHawk/MainForm.cs @@ -970,7 +970,7 @@ namespace BizHawk.Client.EmuHawk //also handle floats //we'll need to isolate the mouse coordinates so we can translate them - Tuple mouseX = null, mouseY = null; + (string AxisID, float Value)? mouseX = null, mouseY = null; var floats = Input.Instance.GetAxisValues(); foreach (var f in Input.Instance.GetAxisValues()) { @@ -985,11 +985,11 @@ namespace BizHawk.Client.EmuHawk //NOTE: these must go together, because in the case of screen rotation, X and Y are transformed together if(mouseX != null && mouseY != null) { - var p = DisplayManager.UntransformPoint(new Point((int)mouseX.Item2, (int)mouseY.Item2)); + var p = DisplayManager.UntransformPoint(new Point((int) mouseX.Value.Value, (int) mouseY.Value.Value)); float x = p.X / (float)_currentVideoProvider.BufferWidth; float y = p.Y / (float)_currentVideoProvider.BufferHeight; - conInput.AcceptNewAxes(new Tuple("WMouse X", (x * 20000) - 10000)); - conInput.AcceptNewAxes(new Tuple("WMouse Y", (y * 20000) - 10000)); + conInput.AcceptNewAxes(("WMouse X", (x * 20000) - 10000)); + conInput.AcceptNewAxes(("WMouse Y", (y * 20000) - 10000)); } }