From 70f31563284c06f7f58c2ce8f2f2794cc392f1bd Mon Sep 17 00:00:00 2001 From: Brad Hefta-Gaub Date: Thu, 29 Oct 2015 22:37:12 -0700 Subject: [PATCH] make sure CompositeEndpoints properly report readability more axis based keyboard inputs --- .../resources/controllers/keyboardMouse.json | 17 ++++++++++++----- .../impl/endpoints/CompositeEndpoint.cpp | 4 ++++ .../impl/endpoints/CompositeEndpoint.h | 2 ++ 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/interface/resources/controllers/keyboardMouse.json b/interface/resources/controllers/keyboardMouse.json index e5abad761a..096cdb35d3 100644 --- a/interface/resources/controllers/keyboardMouse.json +++ b/interface/resources/controllers/keyboardMouse.json @@ -19,7 +19,6 @@ ["Keyboard.D", "Keyboard.Right", "Keyboard.TouchpadRight"] ] }, - "when": [ "Application.InHMD", "Application.ComfortMode" ], "to": "Actions.StepYaw", "filters": @@ -29,10 +28,18 @@ ] }, - { "from": ["Keyboard.A", "Keyboard.Left", "Keyboard.TouchpadLeft"], "to": "Actions.YAW_LEFT" }, - { "from": ["Keyboard.D", "Keyboard.Right", "Keyboard.TouchpadRight"], "to": "Actions.YAW_RIGHT" }, - { "from": "Keyboard.MouseMoveLeft", "when": "Keyboard.RightMouseClick", "to": "Actions.YAW_LEFT" }, - { "from": "Keyboard.MouseMoveRight", "when": "Keyboard.RightMouseClick", "to": "Actions.YAW_RIGHT" }, + { "from": { "makeAxis" : [ + ["Keyboard.A", "Keyboard.Left", "Keyboard.TouchpadLeft"], + ["Keyboard.D", "Keyboard.Right", "Keyboard.TouchpadRight"] + ] + }, + "to": "Actions.Yaw" + }, + + { "from": { "makeAxis" : ["Keyboard.MouseMoveLeft", "Keyboard.MouseMoveRight"] }, + "when": "Keyboard.RightMouseClick", + "to": "Actions.Yaw", + }, { "from": "Keyboard.A", "when": "Keyboard.Shift", "to": "Actions.LATERAL_LEFT" }, { "from": "Keyboard.D", "when": "Keyboard.Shift", "to": "Actions.LATERAL_RIGHT" }, diff --git a/libraries/controllers/src/controllers/impl/endpoints/CompositeEndpoint.cpp b/libraries/controllers/src/controllers/impl/endpoints/CompositeEndpoint.cpp index e5088ef72c..913bf0136b 100644 --- a/libraries/controllers/src/controllers/impl/endpoints/CompositeEndpoint.cpp +++ b/libraries/controllers/src/controllers/impl/endpoints/CompositeEndpoint.cpp @@ -20,6 +20,10 @@ CompositeEndpoint::CompositeEndpoint(Endpoint::Pointer first, Endpoint::Pointer } } +bool CompositeEndpoint::readable() const { + return first->readable() && second->readable(); +} + float CompositeEndpoint::value() { float result = first->value() * -1.0f + second->value(); return result; diff --git a/libraries/controllers/src/controllers/impl/endpoints/CompositeEndpoint.h b/libraries/controllers/src/controllers/impl/endpoints/CompositeEndpoint.h index ab8b97aa50..c6ec90b7c8 100644 --- a/libraries/controllers/src/controllers/impl/endpoints/CompositeEndpoint.h +++ b/libraries/controllers/src/controllers/impl/endpoints/CompositeEndpoint.h @@ -19,6 +19,8 @@ namespace controller { virtual float value() override; virtual void apply(float newValue, const Pointer& source) override; + virtual bool readable() const override; + }; }