private ButtonPressed DencodeJoystickMapping(string mapping, GameControllerManager gameControllerManager) { string[] tokens = mapping.Trim().Split(new char[] { ':' }); byte controllerId = byte.Parse(tokens[1]); GameController.Button button = (GameController.Button)Enum.Parse(typeof(GameController.Button), tokens[2]); if (controllerId < gameControllerManager.Count) { GameController gameController = gameControllerManager[controllerId]; return(() => gameController[button]); } else { // may have been unplugged return(() => false); } }
public GameControllerEventArgs(byte id, GameController.Button button) { Id = id; Button = button; }
private void OnControllerButtonPressed(object sender, GameControllerEventArgs gameControllerEventArgs) { GameController.Button button = gameControllerEventArgs.Button; GameController gameController = (GameController)sender; switch (joypadConfigState) { case JoypadConfigState.Start: joypadSettings.Start = joypadSettings.EncodeJoystickMapping(gameController.Id, button); ++joypadConfigState; configurationLabel.Text = "Press " + joypadConfigState; break; case JoypadConfigState.Select: joypadSettings.Select = joypadSettings.EncodeJoystickMapping(gameController.Id, button); ++joypadConfigState; configurationLabel.Text = "Press " + joypadConfigState; break; case JoypadConfigState.A: joypadSettings.A = joypadSettings.EncodeJoystickMapping(gameController.Id, button); ++joypadConfigState; configurationLabel.Text = "Press " + joypadConfigState; break; case JoypadConfigState.B: joypadSettings.B = joypadSettings.EncodeJoystickMapping(gameController.Id, button); ++joypadConfigState; configurationLabel.Text = "Press " + joypadConfigState; break; case JoypadConfigState.Up: joypadSettings.Up = joypadSettings.EncodeJoystickMapping(gameController.Id, button); ++joypadConfigState; configurationLabel.Text = "Press " + joypadConfigState; break; case JoypadConfigState.Down: joypadSettings.Down = joypadSettings.EncodeJoystickMapping(gameController.Id, button); ++joypadConfigState; configurationLabel.Text = "Press " + joypadConfigState; break; case JoypadConfigState.Left: joypadSettings.Left = joypadSettings.EncodeJoystickMapping(gameController.Id, button); ++joypadConfigState; configurationLabel.Text = "Press " + joypadConfigState; break; case JoypadConfigState.Right: joypadSettings.Right = joypadSettings.EncodeJoystickMapping(gameController.Id, button); foreach (GameController gameController2 in gameControllerManager.Controllers) { gameController2.ButtonPressed -= OnControllerButtonPressed; } Close(); break; } }