public GamePadState(bool isConnected, uint packet, GamePadButtons buttons, GamePadDPad dpad, GamePadThumbSticks sticks, GamePadTriggers triggers) { this.isConnected = isConnected; this.buttons = buttons; this.thumbSticks = sticks; this.triggers = triggers; this.dPad = dpad; this.packetNumber = packet; }
internal GamePadState(bool isConnected, RawState rawState, GamePadDeadZone deadZone) { this.isConnected = isConnected; if (!isConnected) { rawState.dwPacketNumber = 0; rawState.Gamepad.dwButtons = 0; rawState.Gamepad.bLeftTrigger = 0; rawState.Gamepad.bRightTrigger = 0; rawState.Gamepad.sThumbLX = 0; rawState.Gamepad.sThumbLY = 0; rawState.Gamepad.sThumbRX = 0; rawState.Gamepad.sThumbRY = 0; } packetNumber = rawState.dwPacketNumber; buttons = new GamePadButtons( (rawState.Gamepad.dwButtons & (uint)ButtonsConstants.Start) != 0 ? ButtonState.Pressed : ButtonState.Released, (rawState.Gamepad.dwButtons & (uint)ButtonsConstants.Back) != 0 ? ButtonState.Pressed : ButtonState.Released, (rawState.Gamepad.dwButtons & (uint)ButtonsConstants.LeftThumb) != 0 ? ButtonState.Pressed : ButtonState.Released, (rawState.Gamepad.dwButtons & (uint)ButtonsConstants.RightThumb) != 0 ? ButtonState.Pressed : ButtonState.Released, (rawState.Gamepad.dwButtons & (uint)ButtonsConstants.LeftShoulder) != 0 ? ButtonState.Pressed : ButtonState.Released, (rawState.Gamepad.dwButtons & (uint)ButtonsConstants.RightShoulder) != 0 ? ButtonState.Pressed : ButtonState.Released, (rawState.Gamepad.dwButtons & (uint)ButtonsConstants.A) != 0 ? ButtonState.Pressed : ButtonState.Released, (rawState.Gamepad.dwButtons & (uint)ButtonsConstants.B) != 0 ? ButtonState.Pressed : ButtonState.Released, (rawState.Gamepad.dwButtons & (uint)ButtonsConstants.X) != 0 ? ButtonState.Pressed : ButtonState.Released, (rawState.Gamepad.dwButtons & (uint)ButtonsConstants.Y) != 0 ? ButtonState.Pressed : ButtonState.Released ); dPad = new GamePadDPad( (rawState.Gamepad.dwButtons & (uint)ButtonsConstants.DPadUp) != 0 ? ButtonState.Pressed : ButtonState.Released, (rawState.Gamepad.dwButtons & (uint)ButtonsConstants.DPadDown) != 0 ? ButtonState.Pressed : ButtonState.Released, (rawState.Gamepad.dwButtons & (uint)ButtonsConstants.DPadLeft) != 0 ? ButtonState.Pressed : ButtonState.Released, (rawState.Gamepad.dwButtons & (uint)ButtonsConstants.DPadRight) != 0 ? ButtonState.Pressed : ButtonState.Released ); switch (deadZone) { case GamePadDeadZone.IndependentAxes: rawState.Gamepad.sThumbLX = ThumbStickDeadZoneIndependantAxes(rawState.Gamepad.sThumbLX, (short)Imports.Constants.LeftStickDeadZone); rawState.Gamepad.sThumbLY = ThumbStickDeadZoneIndependantAxes(rawState.Gamepad.sThumbLY, (short)Imports.Constants.LeftStickDeadZone); rawState.Gamepad.sThumbRX = ThumbStickDeadZoneIndependantAxes(rawState.Gamepad.sThumbRX, (short)Imports.Constants.RightStickDeadZone); rawState.Gamepad.sThumbRY = ThumbStickDeadZoneIndependantAxes(rawState.Gamepad.sThumbRY, (short)Imports.Constants.RightStickDeadZone); break; } thumbSticks = new GamePadThumbSticks( new GamePadThumbSticks.StickValue( rawState.Gamepad.sThumbLX < 0 ? rawState.Gamepad.sThumbLX / 32768.0f : rawState.Gamepad.sThumbLX / 32767.0f, rawState.Gamepad.sThumbLY < 0 ? rawState.Gamepad.sThumbLY / 32768.0f : rawState.Gamepad.sThumbLY / 32767.0f), new GamePadThumbSticks.StickValue( rawState.Gamepad.sThumbRX < 0 ? rawState.Gamepad.sThumbRX / 32768.0f : rawState.Gamepad.sThumbRX / 32767.0f, rawState.Gamepad.sThumbRY < 0 ? rawState.Gamepad.sThumbRY / 32768.0f : rawState.Gamepad.sThumbRY / 32767.0f) ); triggers = new GamePadTriggers(rawState.Gamepad.bLeftTrigger / 255.0f, rawState.Gamepad.bRightTrigger / 255.0f); }
private bool InputGetDPadButtonState(GamePadDPad pad, GmpdButton btn) { switch (btn) { case (GmpdButton.DPadDown): return ButtonStateToBool(pad.Down); break; case (GmpdButton.DPadUp): return ButtonStateToBool(pad.Up); break; case (GmpdButton.DPadLeft): return ButtonStateToBool(pad.Left); break; case (GmpdButton.DPadRight): return ButtonStateToBool(pad.Right); break; } return false; }
internal GamePadState(bool isConnected, RawState rawState, GamePadDeadZone deadZone) { this.isConnected = isConnected; if (!isConnected) { rawState.dwPacketNumber = 0; rawState.Gamepad.wButtons = 0; rawState.Gamepad.bLeftTrigger = 0; rawState.Gamepad.bRightTrigger = 0; rawState.Gamepad.sThumbLX = 0; rawState.Gamepad.sThumbLY = 0; rawState.Gamepad.sThumbRX = 0; rawState.Gamepad.sThumbRY = 0; } packetNumber = rawState.dwPacketNumber; buttons = new GamePadButtons( (rawState.Gamepad.wButtons & (uint)ButtonsConstants.Start) != 0 ? ButtonState.Pressed : ButtonState.Released, (rawState.Gamepad.wButtons & (uint)ButtonsConstants.Back) != 0 ? ButtonState.Pressed : ButtonState.Released, (rawState.Gamepad.wButtons & (uint)ButtonsConstants.LeftThumb) != 0 ? ButtonState.Pressed : ButtonState.Released, (rawState.Gamepad.wButtons & (uint)ButtonsConstants.RightThumb) != 0 ? ButtonState.Pressed : ButtonState.Released, (rawState.Gamepad.wButtons & (uint)ButtonsConstants.LeftShoulder) != 0 ? ButtonState.Pressed : ButtonState.Released, (rawState.Gamepad.wButtons & (uint)ButtonsConstants.RightShoulder) != 0 ? ButtonState.Pressed : ButtonState.Released, (rawState.Gamepad.wButtons & (uint)ButtonsConstants.Guide) != 0 ? ButtonState.Pressed : ButtonState.Released, (rawState.Gamepad.wButtons & (uint)ButtonsConstants.A) != 0 ? ButtonState.Pressed : ButtonState.Released, (rawState.Gamepad.wButtons & (uint)ButtonsConstants.B) != 0 ? ButtonState.Pressed : ButtonState.Released, (rawState.Gamepad.wButtons & (uint)ButtonsConstants.X) != 0 ? ButtonState.Pressed : ButtonState.Released, (rawState.Gamepad.wButtons & (uint)ButtonsConstants.Y) != 0 ? ButtonState.Pressed : ButtonState.Released ); dPad = new GamePadDPad( (rawState.Gamepad.wButtons & (uint)ButtonsConstants.DPadUp) != 0 ? ButtonState.Pressed : ButtonState.Released, (rawState.Gamepad.wButtons & (uint)ButtonsConstants.DPadDown) != 0 ? ButtonState.Pressed : ButtonState.Released, (rawState.Gamepad.wButtons & (uint)ButtonsConstants.DPadLeft) != 0 ? ButtonState.Pressed : ButtonState.Released, (rawState.Gamepad.wButtons & (uint)ButtonsConstants.DPadRight) != 0 ? ButtonState.Pressed : ButtonState.Released ); thumbSticks = new GamePadThumbSticks( Utils.ApplyLeftStickDeadZone(rawState.Gamepad.sThumbLX, rawState.Gamepad.sThumbLY, deadZone), Utils.ApplyRightStickDeadZone(rawState.Gamepad.sThumbRX, rawState.Gamepad.sThumbRY, deadZone) ); triggers = new GamePadTriggers( Utils.ApplyTriggerDeadZone(rawState.Gamepad.bLeftTrigger, deadZone), Utils.ApplyTriggerDeadZone(rawState.Gamepad.bRightTrigger, deadZone) ); }
internal GamePadState(bool isConnected, RawState rawState) { this.isConnected = isConnected; if (!isConnected) { rawState.dwPacketNumber = 0; rawState.Gamepad.dwButtons = 0; rawState.Gamepad.bLeftTrigger = 0; rawState.Gamepad.bRightTrigger = 0; rawState.Gamepad.sThumbLX = 0; rawState.Gamepad.sThumbLY = 0; rawState.Gamepad.sThumbRX = 0; rawState.Gamepad.sThumbRY = 0; } packetNumber = rawState.dwPacketNumber; buttons = new GamePadButtons( (rawState.Gamepad.dwButtons & (uint)ButtonsConstants.Start) != 0 ? ButtonState.Pressed : ButtonState.Released, (rawState.Gamepad.dwButtons & (uint)ButtonsConstants.Back) != 0 ? ButtonState.Pressed : ButtonState.Released, (rawState.Gamepad.dwButtons & (uint)ButtonsConstants.LeftThumb) != 0 ? ButtonState.Pressed : ButtonState.Released, (rawState.Gamepad.dwButtons & (uint)ButtonsConstants.RightThumb) != 0 ? ButtonState.Pressed : ButtonState.Released, (rawState.Gamepad.dwButtons & (uint)ButtonsConstants.LeftShoulder) != 0 ? ButtonState.Pressed : ButtonState.Released, (rawState.Gamepad.dwButtons & (uint)ButtonsConstants.RightShoulder) != 0 ? ButtonState.Pressed : ButtonState.Released, (rawState.Gamepad.dwButtons & (uint)ButtonsConstants.A) != 0 ? ButtonState.Pressed : ButtonState.Released, (rawState.Gamepad.dwButtons & (uint)ButtonsConstants.B) != 0 ? ButtonState.Pressed : ButtonState.Released, (rawState.Gamepad.dwButtons & (uint)ButtonsConstants.X) != 0 ? ButtonState.Pressed : ButtonState.Released, (rawState.Gamepad.dwButtons & (uint)ButtonsConstants.Y) != 0 ? ButtonState.Pressed : ButtonState.Released ); dPad = new GamePadDPad( (rawState.Gamepad.dwButtons & (uint)ButtonsConstants.DPadUp) != 0 ? ButtonState.Pressed : ButtonState.Released, (rawState.Gamepad.dwButtons & (uint)ButtonsConstants.DPadDown) != 0 ? ButtonState.Pressed : ButtonState.Released, (rawState.Gamepad.dwButtons & (uint)ButtonsConstants.DPadLeft) != 0 ? ButtonState.Pressed : ButtonState.Released, (rawState.Gamepad.dwButtons & (uint)ButtonsConstants.DPadRight) != 0 ? ButtonState.Pressed : ButtonState.Released ); thumbSticks = new GamePadThumbSticks( new GamePadThumbSticks.StickValue(rawState.Gamepad.sThumbLX / (float)short.MaxValue, rawState.Gamepad.sThumbLY / (float)short.MaxValue), new GamePadThumbSticks.StickValue(rawState.Gamepad.sThumbRX / (float)short.MaxValue, rawState.Gamepad.sThumbRY / (float)short.MaxValue) ); triggers = new GamePadTriggers(rawState.Gamepad.bLeftTrigger / (float)byte.MaxValue, rawState.Gamepad.bRightTrigger / (float)byte.MaxValue); }
internal GamePadState( bool isConnected, RawState rawState ) { this.isConnected = isConnected; if (!isConnected) { rawState.dwPacketNumber = 0; rawState.Gamepad.dwButtons = 0; rawState.Gamepad.bLeftTrigger = 0; rawState.Gamepad.bRightTrigger = 0; rawState.Gamepad.sThumbLX = 0; rawState.Gamepad.sThumbLY = 0; rawState.Gamepad.sThumbRX = 0; rawState.Gamepad.sThumbRY = 0; } packetNumber = rawState.dwPacketNumber; buttons = new GamePadButtons( (rawState.Gamepad.dwButtons & (uint) ButtonsConstants.Start) != 0 ? ButtonState.Pressed : ButtonState.Released, (rawState.Gamepad.dwButtons & (uint) ButtonsConstants.Back) != 0 ? ButtonState.Pressed : ButtonState.Released, (rawState.Gamepad.dwButtons & (uint) ButtonsConstants.LeftThumb) != 0 ? ButtonState.Pressed : ButtonState.Released, (rawState.Gamepad.dwButtons & (uint) ButtonsConstants.RightThumb) != 0 ? ButtonState.Pressed : ButtonState.Released, (rawState.Gamepad.dwButtons & (uint) ButtonsConstants.LeftShoulder) != 0 ? ButtonState.Pressed : ButtonState.Released, (rawState.Gamepad.dwButtons & (uint) ButtonsConstants.RightShoulder) != 0 ? ButtonState.Pressed : ButtonState.Released, (rawState.Gamepad.dwButtons & (uint) ButtonsConstants.A) != 0 ? ButtonState.Pressed : ButtonState.Released, (rawState.Gamepad.dwButtons & (uint) ButtonsConstants.B) != 0 ? ButtonState.Pressed : ButtonState.Released, (rawState.Gamepad.dwButtons & (uint) ButtonsConstants.X) != 0 ? ButtonState.Pressed : ButtonState.Released, (rawState.Gamepad.dwButtons & (uint) ButtonsConstants.Y) != 0 ? ButtonState.Pressed : ButtonState.Released ); dPad = new GamePadDPad( (rawState.Gamepad.dwButtons & (uint) ButtonsConstants.DPadUp) != 0 ? ButtonState.Pressed : ButtonState.Released, (rawState.Gamepad.dwButtons & (uint) ButtonsConstants.DPadDown) != 0 ? ButtonState.Pressed : ButtonState.Released, (rawState.Gamepad.dwButtons & (uint) ButtonsConstants.DPadLeft) != 0 ? ButtonState.Pressed : ButtonState.Released, (rawState.Gamepad.dwButtons & (uint) ButtonsConstants.DPadRight) != 0 ? ButtonState.Pressed : ButtonState.Released ); thumbSticks = new GamePadThumbSticks( new GamePadThumbSticks.StickValue( rawState.Gamepad.sThumbLX / (float) short.MaxValue, rawState.Gamepad.sThumbLY / (float) short.MaxValue ), new GamePadThumbSticks.StickValue( rawState.Gamepad.sThumbRX / (float) short.MaxValue, rawState.Gamepad.sThumbRY / (float) short.MaxValue ) ); triggers = new GamePadTriggers( rawState.Gamepad.bLeftTrigger / (float) byte.MaxValue, rawState.Gamepad.bRightTrigger / (float) byte.MaxValue ); }
private static ButtonState XInputGetDPadState(GamePadDPad xiDPad, XboxDPad xciDPad) { ButtonState stateToReturn = ButtonState.Released; switch(xciDPad) { case XboxDPad.Up: stateToReturn = xiDPad.Up; break; case XboxDPad.Down: stateToReturn = xiDPad.Down; break; case XboxDPad.Left: stateToReturn = xiDPad.Left; break; case XboxDPad.Right: stateToReturn = xiDPad.Right; break; } return stateToReturn; }
public static float InputGetDPadAxisState(GamePadDPad pad, GmpdAxis gAxis) { float valToReturn = 0.0f; if (GmpdAxis.DpadX == gAxis) { valToReturn = (pad.Left == ButtonState.Pressed ? -1f : 0f); valToReturn += (pad.Right == ButtonState.Pressed ? 1f : 0f); } else if (GmpdAxis.DpadY == gAxis) { valToReturn = (pad.Up == ButtonState.Pressed ? 1f : 0f); valToReturn += (pad.Down == ButtonState.Pressed ? -1f : 0f); } return valToReturn; }