public ConfigBuilder WithMapping(Mapping mapping, bool generateDependencies = true) { config.Mappings.Add(mapping); if (generateDependencies) { if (config.OutputDevices.All(d => d.Id != mapping.OutputDeviceId)) { var outputDevice = new OutputDeviceBuilder() .WithId(mapping.OutputDeviceId) .Build(); WithOutputDevice(outputDevice); } foreach (var inputGroup in mapping.InputGroups) { if (config.InputDevices.All(d => d.Id != inputGroup.InputDeviceId)) { var inputDevice = new InputDeviceBuilder() .WithId(inputGroup.InputDeviceId) .Build(); WithInputDevice(inputDevice); } } } return this; }
public void should_begin_monitoring_when_started_if_mapping_exists() { var buildMonitor = Substitute.For<IBuildMonitor>(); var buildMonitorFactory = Substitute.For<IBuildMonitorFactory>(); buildMonitorFactory.Create(Arg.Any<IInputDevice>()).Returns(buildMonitor); var buildMonitorFactories = Substitute.For<IIndex<string, IBuildMonitorFactory>>(); buildMonitorFactories["key"].ReturnsForAnyArgs(buildMonitorFactory); var outputDevice = new OutputDeviceBuilder().Build(); var inputDevice = new InputDeviceBuilder().Build(); var mapping = new Mapping { OutputDeviceId = outputDevice.Id }; mapping.InputGroups.Add(new InputGroup { InputDeviceId = inputDevice.Id, Inputs = { "Build1", "Build2" } }); var config = new ConfigBuilder() .WithOutputDevice(outputDevice) .WithInputDevice(inputDevice) .WithMapping(mapping) .Build(); var service = new EmanateService(config, buildMonitorFactories); service.Start(); buildMonitor.Received().BeginMonitoring(); }
protected override void FinishSetup(InputDeviceBuilder builder) { base.FinishSetup(builder); component = name == "x" ? 0 : 1; // Set the state block to be the parent's state block. We don't use that to read // the axis directly (we call the parent control to do that), but we need to set // it up the actions know to monitor this memory for changes to the control. m_StateBlock = m_Parent.m_StateBlock; }
protected override void FinishSetup(InputDeviceBuilder builder) { grip = builder.GetControl <AxisControl>("grip"); primary = builder.GetControl <ButtonControl>("primary"); gripPressed = builder.GetControl <ButtonControl>("gripPressed"); trackpadPressed = builder.GetControl <ButtonControl>("trackpadPressed"); triggerPressed = builder.GetControl <ButtonControl>("triggerPressed"); base.FinishSetup(builder); }
public void State_CanComputeStateLayoutForMultiByteBitfieldWithFixedOffset() { var setup = new InputDeviceBuilder("Keyboard"); var downArrow = setup.GetControl("DownArrow"); var keyboard = setup.Finish(); Assert.That(downArrow.stateBlock.bitOffset, Is.EqualTo((int)Key.DownArrow)); Assert.That(downArrow.stateBlock.byteOffset, Is.EqualTo(0)); Assert.That(keyboard.stateBlock.alignedSizeInBytes, Is.EqualTo(KeyboardState.kSizeInBytes)); }
protected override void FinishSetup(InputDeviceBuilder builder) { if (builder == null) { throw new System.ArgumentNullException(nameof(builder)); } touchId = builder.GetControl <IntegerControl>(this, "touchId"); position = builder.GetControl <Vector2Control>(this, "position"); base.FinishSetup(builder); }
protected override void FinishSetup(InputDeviceBuilder builder) { base.FinishSetup(builder); var touchArray = new PS4TouchControl[2]; touchArray[0] = builder.GetControl <PS4TouchControl>(this, "touch0"); touchArray[1] = builder.GetControl <PS4TouchControl>(this, "touch1"); touches = new ReadOnlyArray <PS4TouchControl>(touchArray); }
protected override void FinishSetup(InputDeviceBuilder builder) { scroll = builder.GetControl <Vector2Control>(this, "scroll"); leftButton = builder.GetControl <ButtonControl>(this, "leftButton"); middleButton = builder.GetControl <ButtonControl>(this, "middleButton"); rightButton = builder.GetControl <ButtonControl>(this, "rightButton"); forwardButton = builder.GetControl <ButtonControl>(this, "forwardButton"); backButton = builder.GetControl <ButtonControl>(this, "backButton"); clickCount = builder.GetControl <IntegerControl>(this, "clickCount"); base.FinishSetup(builder); }
protected override void FinishSetup(InputDeviceBuilder builder) { base.FinishSetup(builder); trackingState = builder.GetControl <IntegerControl>("trackingState"); isTracked = builder.GetControl <ButtonControl>("isTracked"); devicePosition = builder.GetControl <Vector3Control>("devicePosition"); deviceRotation = builder.GetControl <QuaternionControl>("deviceRotation"); deviceVelocity = builder.GetControl <Vector3Control>("deviceVelocity"); deviceAngularVelocity = builder.GetControl <Vector3Control>("deviceAngularVelocity"); }
public void Controls_CanQueryValueOfControls_AfterAddingDevice() { var setup = new InputDeviceBuilder("Gamepad"); var device = (Gamepad)setup.Finish(); Assert.That(() => device.leftStick.ReadValue(), Throws.InvalidOperationException); InputSystem.AddDevice(device); Assert.That(device.leftStick.ReadValue(), Is.EqualTo(default(Vector2))); }
public void State_CanComputeStateLayoutFromStateStructure() { var setup = new InputDeviceBuilder("Gamepad"); var gamepad = (Gamepad)setup.Finish(); Assert.That(gamepad.stateBlock.sizeInBits, Is.EqualTo(UnsafeUtility.SizeOf <GamepadState>() * 8)); Assert.That(gamepad.leftStick.stateBlock.byteOffset, Is.EqualTo(Marshal.OffsetOf(typeof(GamepadState), "leftStick").ToInt32())); Assert.That(gamepad.dpad.stateBlock.byteOffset, Is.EqualTo(Marshal.OffsetOf(typeof(GamepadState), "buttons").ToInt32())); }
protected override void FinishSetup(InputDeviceBuilder builder) { leftSL = builder.GetControl <ButtonControl>("leftSL"); leftSR = builder.GetControl <ButtonControl>("leftSR"); rightSL = builder.GetControl <ButtonControl>("rightSL"); rightSR = builder.GetControl <ButtonControl>("rightSR"); leftVK = builder.GetControl <DpadControl>("leftVK"); rightVK = builder.GetControl <DpadControl>("rightVK"); base.FinishSetup(builder); }
protected override void FinishSetup(InputDeviceBuilder builder) { tip = builder.GetControl <ButtonControl>("tip"); eraser = builder.GetControl <ButtonControl>("eraser"); firstBarrelButton = builder.GetControl <ButtonControl>("barrel1"); secondBarrelButton = builder.GetControl <ButtonControl>("barrel2"); thirdBarrelButton = builder.GetControl <ButtonControl>("barrel3"); fourthBarrelButton = builder.GetControl <ButtonControl>("barrel4"); inRange = builder.GetControl <ButtonControl>("inRange"); base.FinishSetup(builder); }
public void State_BeforeAddingDevice_OffsetsInStateLayoutsAreRelativeToRoot() { var setup = new InputDeviceBuilder("Gamepad"); var device = (Gamepad)setup.Finish(); var leftStickOffset = Marshal.OffsetOf(typeof(GamepadState), "leftStick").ToInt32(); var leftStickXOffset = leftStickOffset; var leftStickYOffset = leftStickOffset + 4; Assert.That(device.leftStick.x.stateBlock.byteOffset, Is.EqualTo(leftStickXOffset)); Assert.That(device.leftStick.y.stateBlock.byteOffset, Is.EqualTo(leftStickYOffset)); }
protected override void FinishSetup(InputDeviceBuilder builder) { if (builder == null) { throw new System.ArgumentNullException(nameof(builder)); } x = builder.GetControl <AxisControl>(this, "x"); y = builder.GetControl <AxisControl>(this, "y"); base.FinishSetup(builder); }
//needs to enforce layout/format protected override void FinishSetup(InputDeviceBuilder builder) { touchId = builder.GetControl <IntegerControl>(this, "touchId"); position = builder.GetControl <Vector2Control>(this, "position"); delta = builder.GetControl <Vector2Control>(this, "delta"); pressure = builder.GetControl <AxisControl>(this, "pressure"); radius = builder.GetControl <Vector2Control>(this, "radius"); phase = builder.GetControl <PointerPhaseControl>(this, "phase"); displayIndex = builder.GetControl <IntegerControl>(this, "displayIndex"); indirectTouch = builder.GetControl <ButtonControl>(this, "indirectTouch"); base.FinishSetup(builder); }
protected override void FinishSetup(InputDeviceBuilder builder) { // Mandatory controls. trigger = builder.GetControl <ButtonControl>("{PrimaryTrigger}"); stick = builder.GetControl <StickControl>("{Primary2DMotion}"); // Optional controls. twist = builder.TryGetControl <AxisControl>("{Twist}"); hat = builder.TryGetControl <DpadControl>("{Hatswitch}"); base.FinishSetup(builder); }
protected override void FinishSetup(InputDeviceBuilder builder) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } up = builder.GetControl <ButtonControl>(this, "up"); down = builder.GetControl <ButtonControl>(this, "down"); left = builder.GetControl <ButtonControl>(this, "left"); right = builder.GetControl <ButtonControl>(this, "right"); base.FinishSetup(builder); }
protected override void FinishSetup(InputDeviceBuilder builder) { base.FinishSetup(builder); aButton = buttonSouth; bButton = buttonEast; xButton = buttonWest; yButton = buttonNorth; menu = startButton; view = selectButton; }
protected override void FinishSetup(InputDeviceBuilder builder) { base.FinishSetup(builder); leftSL = builder.GetControl <ButtonControl>(this, "leftSL"); leftSR = builder.GetControl <ButtonControl>(this, "leftSR"); rightSL = builder.GetControl <ButtonControl>(this, "rightSL"); rightSR = builder.GetControl <ButtonControl>(this, "rightSR"); acceleration = builder.GetControl <Vector3Control>(this, "acceleration"); attitude = builder.GetControl <QuaternionControl>(this, "attitude"); angularVelocity = builder.GetControl <Vector3Control>(this, "angularVelocity"); }
protected override void FinishSetup(InputDeviceBuilder builder) { if (builder == null) { throw new System.ArgumentNullException(nameof(builder)); } base.FinishSetup(builder); back = builder.GetControl <ButtonControl>("back"); start = builder.GetControl <ButtonControl>("start"); touchpad = builder.GetControl <Vector2Control>("touchpad"); }
protected override void FinishSetup(InputDeviceBuilder builder) { if (builder == null) { throw new System.ArgumentNullException(nameof(builder)); } leftTriggerButton = builder.GetControl <ButtonControl>(this, "leftTriggerButton"); rightTriggerButton = builder.GetControl <ButtonControl>(this, "rightTriggerButton"); playStationButton = builder.GetControl <ButtonControl>(this, "systemButton"); base.FinishSetup(builder); }
public void Controls_AssignsFullPathToControls() { var setup = new InputDeviceBuilder("Gamepad"); var leftStick = setup.GetControl("leftStick"); Assert.That(leftStick.path, Is.EqualTo("/Gamepad/leftStick")); var device = setup.Finish(); InputSystem.AddDevice(device); Assert.That(leftStick.path, Is.EqualTo("/Gamepad/leftStick")); }
protected override void FinishSetup(InputDeviceBuilder builder) { base.FinishSetup(builder); move = builder.GetControl <StickControl>("move"); look = builder.GetControl <Vector2Control>("look"); fire = builder.GetControl <ButtonControl>("fire"); jump = builder.GetControl <ButtonControl>("jump"); menu = builder.GetControl <ButtonControl>("menu"); steamEnterMenu = builder.GetControl <ButtonControl>("steamEnterMenu"); navigate = builder.GetControl <Vector2Control>("navigate"); click = builder.GetControl <ButtonControl>("click"); steamExitMenu = builder.GetControl <ButtonControl>("steamExitMenu"); }
public void State_CanComputeStateLayoutForNestedStateStructures() { InputSystem.RegisterLayout <CustomDevice>(); var setup = new InputDeviceBuilder("CustomDevice"); var axis2 = setup.GetControl("axis2"); setup.Finish(); var nestedOffset = Marshal.OffsetOf(typeof(CustomDeviceState), "nested").ToInt32(); var axis2Offset = nestedOffset + Marshal.OffsetOf(typeof(CustomNestedDeviceState), "axis2").ToInt32(); Assert.That(axis2.stateBlock.byteOffset, Is.EqualTo(axis2Offset)); }
protected override void FinishSetup(InputDeviceBuilder builder) { if (builder == null) { throw new System.ArgumentNullException(nameof(builder)); } base.FinishSetup(builder); paddle1 = builder.GetControl <ButtonControl>(this, "paddle1"); paddle2 = builder.GetControl <ButtonControl>(this, "paddle2"); paddle3 = builder.GetControl <ButtonControl>(this, "paddle3"); paddle4 = builder.GetControl <ButtonControl>(this, "paddle4"); }
protected override void FinishSetup(InputDeviceBuilder builder) { if (builder == null) { throw new System.ArgumentNullException(nameof(builder)); } base.FinishSetup(builder); trackingState = builder.GetControl <IntegerControl>("trackingState"); isTracked = builder.GetControl <ButtonControl>("isTracked"); devicePosition = builder.GetControl <Vector3Control>("devicePosition"); deviceRotation = builder.GetControl <QuaternionControl>("deviceRotation"); }
protected override void FinishSetup(InputDeviceBuilder builder) { if (builder == null) { throw new System.ArgumentNullException(nameof(builder)); } grip = builder.GetControl <AxisControl>("grip"); primary = builder.GetControl <ButtonControl>("primary"); gripPressed = builder.GetControl <ButtonControl>("gripPressed"); trackpadPressed = builder.GetControl <ButtonControl>("trackpadPressed"); triggerPressed = builder.GetControl <ButtonControl>("triggerPressed"); base.FinishSetup(builder); }
protected override void FinishSetup(InputDeviceBuilder builder) { base.FinishSetup(builder); trackingState = builder.GetControl <IntegerControl>("trackingState"); isTracked = builder.GetControl <ButtonControl>("isTracked"); devicePosition = builder.GetControl <Vector3Control>("devicePosition"); deviceRotation = builder.GetControl <QuaternionControl>("deviceRotation"); leftEyePosition = builder.GetControl <Vector3Control>("leftEyePosition"); leftEyeRotation = builder.GetControl <QuaternionControl>("leftEyeRotation"); rightEyePosition = builder.GetControl <Vector3Control>("rightEyePosition"); rightEyeRotation = builder.GetControl <QuaternionControl>("rightEyeRotation"); centerEyePosition = builder.GetControl <Vector3Control>("centerEyePosition"); centerEyeRotation = builder.GetControl <QuaternionControl>("centerEyeRotation"); }
protected override void FinishSetup(InputDeviceBuilder builder) { if (builder == null) { throw new System.ArgumentNullException(nameof(builder)); } // Mandatory controls. trigger = builder.GetControl <ButtonControl>("{PrimaryTrigger}"); stick = builder.GetControl <StickControl>("{Primary2DMotion}"); // Optional controls. twist = builder.TryGetControl <AxisControl>("{Twist}"); base.FinishSetup(builder); }
protected override void FinishSetup(InputDeviceBuilder builder) { if (builder == null) { throw new System.ArgumentNullException(nameof(builder)); } scroll = builder.GetControl <Vector2Control>(this, "scroll"); leftButton = builder.GetControl <ButtonControl>(this, "leftButton"); middleButton = builder.GetControl <ButtonControl>(this, "middleButton"); rightButton = builder.GetControl <ButtonControl>(this, "rightButton"); forwardButton = builder.GetControl <ButtonControl>(this, "forwardButton"); backButton = builder.GetControl <ButtonControl>(this, "backButton"); clickCount = builder.GetControl <IntegerControl>(this, "clickCount"); base.FinishSetup(builder); }
protected override void FinishSetup(InputDeviceBuilder builder) { if (builder == null) { throw new System.ArgumentNullException(nameof(builder)); } tip = builder.GetControl <ButtonControl>("tip"); eraser = builder.GetControl <ButtonControl>("eraser"); firstBarrelButton = builder.GetControl <ButtonControl>("barrel1"); secondBarrelButton = builder.GetControl <ButtonControl>("barrel2"); thirdBarrelButton = builder.GetControl <ButtonControl>("barrel3"); fourthBarrelButton = builder.GetControl <ButtonControl>("barrel4"); inRange = builder.GetControl <ButtonControl>("inRange"); base.FinishSetup(builder); }