internal unsafe void __MarshalFrom(ref __Native @ref) { Type = @ref.Type; SubType = @ref.SubType; Flags = @ref.Flags; Gamepad = @ref.Gamepad; Vibration.__MarshalFrom(ref @ref.Vibration); }
public static void Init() { controller = new SharpDX.XInput.Controller[4]; for (int i = 0; i < controller.Length; i++) { controller[i] = new SharpDX.XInput.Controller((SharpDX.XInput.UserIndex)i); } State = new SharpDX.XInput.Gamepad[controller.Length]; PrevState = new SharpDX.XInput.Gamepad[controller.Length]; }
private static GamePadState PlatformGetState(int index, GamePadDeadZone deadZoneMode) { // If the device was disconneced then wait for // the timeout to elapsed before we test it again. if (!_connected[index] && _timeout[index] > DateTime.UtcNow.Ticks) return GetDefaultState(); int packetNumber = 0; // Try to get the controller state. var gamepad = new SharpDX.XInput.Gamepad(); try { SharpDX.XInput.State xistate; var controller = _controllers[index]; _connected[index] = controller.GetState(out xistate); packetNumber = xistate.PacketNumber; gamepad = xistate.Gamepad; } catch (Exception ex) { } // If the device is disconnected retry it after the // timeout period has elapsed to avoid the overhead. if (!_connected[index]) { _timeout[index] = DateTime.UtcNow.Ticks + TimeoutTicks; return GetDefaultState(); } var thumbSticks = new GamePadThumbSticks( leftPosition: new Vector2(gamepad.LeftThumbX, gamepad.LeftThumbY) / (float)short.MaxValue, rightPosition: new Vector2(gamepad.RightThumbX, gamepad.RightThumbY) / (float)short.MaxValue, deadZoneMode: deadZoneMode); var triggers = new GamePadTriggers( leftTrigger: gamepad.LeftTrigger / (float)byte.MaxValue, rightTrigger: gamepad.RightTrigger / (float)byte.MaxValue); var dpadState = new GamePadDPad( upValue: ConvertToButtonState(gamepad.Buttons, SharpDX.XInput.GamepadButtonFlags.DPadUp), downValue: ConvertToButtonState(gamepad.Buttons, SharpDX.XInput.GamepadButtonFlags.DPadDown), leftValue: ConvertToButtonState(gamepad.Buttons, SharpDX.XInput.GamepadButtonFlags.DPadLeft), rightValue: ConvertToButtonState(gamepad.Buttons, SharpDX.XInput.GamepadButtonFlags.DPadRight)); var buttons = ConvertToButtons( buttonFlags: gamepad.Buttons, leftThumbX: gamepad.LeftThumbX, leftThumbY: gamepad.LeftThumbY, rightThumbX: gamepad.RightThumbX, rightThumbY: gamepad.RightThumbY, leftTrigger: gamepad.LeftTrigger, rightTrigger: gamepad.RightTrigger); var state = new GamePadState( thumbSticks: thumbSticks, triggers: triggers, buttons: buttons, dPad: dpadState); state.PacketNumber = packetNumber; return state; }
private static GamePadState PlatformGetState(int index, GamePadDeadZone leftDeadZoneMode, GamePadDeadZone rightDeadZoneMode) { // If the device was disconneced then wait for // the timeout to elapsed before we test it again. if (!_connected[index] && !HasDisconnectedTimeoutElapsed(index)) { return(GetDefaultState()); } int packetNumber = 0; // Try to get the controller state. var gamepad = new SharpDX.XInput.Gamepad(); try { SharpDX.XInput.State xistate; var controller = _controllers[index]; _connected[index] = controller.GetState(out xistate); packetNumber = xistate.PacketNumber; gamepad = xistate.Gamepad; } catch (Exception) { } // If the device is disconnected retry it after the // timeout period has elapsed to avoid the overhead. if (!_connected[index]) { SetDisconnectedTimeout(index); return(GetDefaultState()); } var thumbSticks = new GamePadThumbSticks( leftPosition: new Vector2(gamepad.LeftThumbX, gamepad.LeftThumbY) / (float)short.MaxValue, rightPosition: new Vector2(gamepad.RightThumbX, gamepad.RightThumbY) / (float)short.MaxValue, leftDeadZoneMode: leftDeadZoneMode, rightDeadZoneMode: rightDeadZoneMode); var triggers = new GamePadTriggers( leftTrigger: gamepad.LeftTrigger / (float)byte.MaxValue, rightTrigger: gamepad.RightTrigger / (float)byte.MaxValue); var dpadState = new GamePadDPad( upValue: ConvertToButtonState(gamepad.Buttons, SharpDX.XInput.GamepadButtonFlags.DPadUp), downValue: ConvertToButtonState(gamepad.Buttons, SharpDX.XInput.GamepadButtonFlags.DPadDown), leftValue: ConvertToButtonState(gamepad.Buttons, SharpDX.XInput.GamepadButtonFlags.DPadLeft), rightValue: ConvertToButtonState(gamepad.Buttons, SharpDX.XInput.GamepadButtonFlags.DPadRight)); var buttons = ConvertToButtons( buttonFlags: gamepad.Buttons, leftTrigger: gamepad.LeftTrigger, rightTrigger: gamepad.RightTrigger); var state = new GamePadState( thumbSticks: thumbSticks, triggers: triggers, buttons: buttons, dPad: dpadState); state.PacketNumber = packetNumber; return(state); }
public State(State other) { PacketNumber = other.PacketNumber; Gamepad = other.Gamepad; }
private void joy_update(object sender, EventArgs e) { if (ctrl != null && ctrl.IsConnected == true) { state = ctrl.GetState(); gamepad = ctrl.GetState().Gamepad; var joy = new xbox_joy(); var buttons = ""; #region get joy data gamepad = ctrl.GetState().Gamepad; buttons = gamepad.Buttons.ToString(); joy.A = buttons.Contains("A"); joy.B = buttons.Contains("B"); joy.X = buttons.Contains("X"); joy.Y = buttons.Contains("Y"); joy.start = buttons.Contains("Start"); joy.back = buttons.Contains("Back"); joy.left_shoulder = buttons.Contains("LeftShoulder"); joy.right_shoulder = buttons.Contains("RightShoulder"); joy.rightthumb = buttons.Contains("RightThumb"); joy.leftthumb = buttons.Contains("LeftThumb"); joy.dpadUp = buttons.Contains("DPadUp"); joy.dpadLeft = buttons.Contains("DPadLeft"); joy.dpadDown = buttons.Contains("DPadDown"); joy.dpadRight = buttons.Contains("DPadRight"); joy.left_axis_x = gamepad.LeftThumbX + 32768; joy.left_axis_y = gamepad.LeftThumbY + 32768; joy.right_axis_x = gamepad.RightThumbX + 32768; joy.right_axis_y = gamepad.RightThumbY + 32768; joy.left_trigger = gamepad.LeftTrigger; joy.right_trigger = gamepad.RightTrigger; #endregion this.label_left_trigger.Text = joy.left_trigger.ToString(); this.label_right_trigger.Text = joy.right_trigger.ToString(); this.label_left_axis_x.Text = joy.left_axis_x.ToString(); this.label_left_axis_y.Text = joy.left_axis_y.ToString(); this.label_right_axis_x.Text = joy.right_axis_x.ToString(); this.label_right_axis_y.Text = joy.right_axis_y.ToString(); if (joy.start) { this.checkBox_use_joy.Checked = true; } if (joy.back) { this.checkBox_use_joy.Checked = false; } this.checkBox_use_joy.Visible = true; // MOVE !!!! if (checkBox_use_joy.Checked == true) { try { ProfilePositionMode ppm = _epos_A.Operation.ProfilePositionMode; ppm.ActivateProfilePositionMode(); textBoxAOM_A.Text = _epos_A.Operation.OperationMode.GetOperationModeAsString(); ppm.MoveToPosition(joy.left_axis_x, true, true); } catch { } try { ProfilePositionMode ppm = _epos_B.Operation.ProfilePositionMode; ppm.ActivateProfilePositionMode(); textBoxAOM_B.Text = _epos_B.Operation.OperationMode.GetOperationModeAsString(); ppm.MoveToPosition(joy.right_axis_x, true, true); } catch { } } } else { this.checkBox_use_joy.Visible = false; } }