Exemplo n.º 1
0
        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;
        }
Exemplo n.º 2
0
        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();
        }
Exemplo n.º 3
0
            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;
            }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
    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));
    }
Exemplo n.º 6
0
        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);
        }
Exemplo n.º 8
0
 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);
 }
Exemplo n.º 9
0
        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");
        }
Exemplo n.º 10
0
    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)));
    }
Exemplo n.º 11
0
    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()));
    }
Exemplo n.º 12
0
        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);
        }
Exemplo n.º 13
0
 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);
 }
Exemplo n.º 14
0
    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));
    }
Exemplo n.º 15
0
        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);
        }
Exemplo n.º 16
0
        //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);
        }
Exemplo n.º 17
0
        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);
        }
Exemplo n.º 18
0
 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);
 }
Exemplo n.º 19
0
        protected override void FinishSetup(InputDeviceBuilder builder)
        {
            base.FinishSetup(builder);

            aButton = buttonSouth;
            bButton = buttonEast;
            xButton = buttonWest;
            yButton = buttonNorth;

            menu = startButton;
            view = selectButton;
        }
Exemplo n.º 20
0
        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");
        }
Exemplo n.º 21
0
        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");
        }
Exemplo n.º 22
0
        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);
        }
Exemplo n.º 23
0
    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"));
    }
Exemplo n.º 24
0
 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");
 }
Exemplo n.º 25
0
    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));
    }
Exemplo n.º 26
0
        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");
        }
Exemplo n.º 27
0
        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");
        }
Exemplo n.º 28
0
        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);
        }
Exemplo n.º 29
0
        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");
        }
Exemplo n.º 30
0
        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);
        }
Exemplo n.º 31
0
        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);
        }
Exemplo n.º 32
0
        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);
        }