internal override void Setup() { if (BoundDevice == null) { return; } if (BoundInput == BoundInputTypes.Button) { Joystick stick = BoundDevice as Joystick; if (stick == null) { return; } foreach (var button in stick.Buttons) { if (button.Name.ToLowerInvariant() == BoundInputName.ToLowerInvariant()) { ActualControl = button; break; } } } else if (BoundInput == BoundInputTypes.Hat) { Joystick stick = BoundDevice as Joystick; if (stick == null) { return; } string[] parts = BoundInputName.ToLowerInvariant().Split(":".ToCharArray()); string name = parts[0]; TriggerValue = 0.5; if (parts.Length > 1) { double.TryParse(parts[1], out TriggerValue); } foreach (var hat in stick.Hats) { if (hat.Name.ToLowerInvariant() == name) { ActualControl = hat; break; } } } else if (BoundInput == BoundInputTypes.Axis) { Joystick stick = BoundDevice as Joystick; if (stick == null) { return; } string[] parts = BoundInputName.ToLowerInvariant().Split(":".ToCharArray()); string name = parts[0]; TriggerValue = 1; if (parts.Length > 1) { double.TryParse(parts[1], out TriggerValue); } foreach (var axis in stick.Axes) { if (axis.Name.ToLowerInvariant() == name) { ActualControl = axis; break; } } } else if (BoundInput == BoundInputTypes.Key) { Keyboard board = BoundDevice as Keyboard; if (board == null) { return; } Keyboard.KeyCodes code; if (Enum.TryParse(BoundInputName, out code)) { BoundIndex = (int)code; } } }
internal override void Setup() { if (BoundDevice == null) { return; } if (BoundInput == BoundInputTypes.Axis) { Joystick stick = BoundDevice as Joystick; if (stick == null) { return; } foreach (var axis in stick.Axes) { if (axis.Name.ToLowerInvariant() == BoundInputName.ToLowerInvariant()) { BoundAxis = axis; break; } } } else if (BoundInput == BoundInputTypes.Button || BoundInput == BoundInputTypes.Key) { string[] parts = BoundInputName.Split(":".ToCharArray()); if (BoundInput == BoundInputTypes.Key) { Keyboard board = BoundDevice as Keyboard; if (board == null) { return; } PositiveButton = board.Keys; PositiveIndex = 0; if (parts[0] != string.Empty) { Keyboard.KeyCodes code; if (Enum.TryParse(parts[0], out code)) { PositiveIndex = (int)code; } } if (parts.Length > 1 || parts[1] != string.Empty) { NegativeButton = board.Keys; Keyboard.KeyCodes code; if (Enum.TryParse(parts[0], out code)) { NegativeIndex = (int)code; } } } else { Joystick stick = BoundDevice as Joystick; if (stick == null) { return; } foreach (var button in stick.Buttons) { if (button.Name.ToLowerInvariant() == parts[0].ToLowerInvariant()) { PositiveButton = button; } else if (parts.Length > 1 && button.Name.ToLowerInvariant() == parts[1].ToLowerInvariant()) { NegativeButton = button; } } } } else if (BoundInput == BoundInputTypes.Hat) { Joystick stick = BoundDevice as Joystick; if (stick == null) { return; } string[] parts = BoundInputName.Split(":".ToCharArray()); HatVertAxis = parts.Length > 1 && parts[1].ToUpper() == "V"; string name = parts[0].ToLowerInvariant(); foreach (var hat in stick.Hats) { if (hat.Name.ToLowerInvariant() == name) { PositiveButton = hat; break; } } } }