From 6f7719e9e9cb021545f807129ad5e8c8a4eb2b8a Mon Sep 17 00:00:00 2001 From: samcake Date: Tue, 20 Oct 2015 17:44:24 -0700 Subject: [PATCH] Finally getting the merge to work --- libraries/controllers/src/controllers/Actions.h | 3 ++- .../src/controllers/ScriptingInterface.cpp | 14 ++++++++++++++ .../src/controllers/UserInputMapper.cpp | 1 - .../controllers/src/controllers/UserInputMapper.h | 9 ++++++--- 4 files changed, 22 insertions(+), 5 deletions(-) diff --git a/libraries/controllers/src/controllers/Actions.h b/libraries/controllers/src/controllers/Actions.h index 2b581eb706..77a772de9e 100644 --- a/libraries/controllers/src/controllers/Actions.h +++ b/libraries/controllers/src/controllers/Actions.h @@ -71,7 +71,8 @@ enum class Action { NUM_ACTIONS, }; -int toInt(Action action) { return static_cast(action); } +template +int toInt(T enumValue) { return static_cast(enumValue); } class ActionsDevice : public QObject, public InputDevice { Q_OBJECT diff --git a/libraries/controllers/src/controllers/ScriptingInterface.cpp b/libraries/controllers/src/controllers/ScriptingInterface.cpp index 37c3035535..40c65549a8 100644 --- a/libraries/controllers/src/controllers/ScriptingInterface.cpp +++ b/libraries/controllers/src/controllers/ScriptingInterface.cpp @@ -71,6 +71,16 @@ controller::ScriptingInterface::ScriptingInterface() { namespace controller { + QObject* ScriptingInterface::newMapping(const QString& mappingName) { + auto userInputMapper = DependencyManager::get(); + return new MappingBuilderProxy(*userInputMapper, userInputMapper->newMapping(mappingName)); + } + + void ScriptingInterface::enableMapping(const QString& mappingName, bool enable) { + auto userInputMapper = DependencyManager::get(); + userInputMapper->enableMapping(mappingName, enable); + } + float ScriptingInterface::getValue(const int& source) const { auto userInputMapper = DependencyManager::get(); return userInputMapper->getValue(Input((uint32_t)source)); @@ -88,6 +98,10 @@ namespace controller { auto userInputMapper = DependencyManager::get(); return userInputMapper->getPose(Input((uint32_t)source)); } + + Pose ScriptingInterface::getPoseValue(StandardPoseChannel source, uint16_t device) const { + return getPoseValue(Input(device, source, ChannelType::POSE).getID()); + } //bool ScriptingInterface::isPrimaryButtonPressed() const { // return isButtonPressed(StandardButtonChannel::A); diff --git a/libraries/controllers/src/controllers/UserInputMapper.cpp b/libraries/controllers/src/controllers/UserInputMapper.cpp index 8dfdd33eba..6c530020a9 100755 --- a/libraries/controllers/src/controllers/UserInputMapper.cpp +++ b/libraries/controllers/src/controllers/UserInputMapper.cpp @@ -31,7 +31,6 @@ controller::UserInputMapper::UserInputMapper() { _standardController = std::make_shared(); registerDevice(new ActionsDevice()); registerDevice(_standardController.get()); - assignDefaulActionScales(); } namespace controller { diff --git a/libraries/controllers/src/controllers/UserInputMapper.h b/libraries/controllers/src/controllers/UserInputMapper.h index d5b2e4e282..e9b6c59596 100644 --- a/libraries/controllers/src/controllers/UserInputMapper.h +++ b/libraries/controllers/src/controllers/UserInputMapper.h @@ -32,6 +32,10 @@ #include "Actions.h" namespace controller { + + class RouteBuilderProxy; + class MappingBuilderProxy; + class UserInputMapper : public QObject, public Dependency { Q_OBJECT SINGLETON_DEPENDENCY @@ -81,7 +85,6 @@ namespace controller { Pose getPoseState(Action action) const { return _poseStates[toInt(action)]; } int findAction(const QString& actionName) const; QVector getActionNames() const; - void assignDefaulActionScales(); void setActionState(Action action, float value) { _externalActionStates[toInt(action)] = value; } void deltaActionState(Action action, float delta) { _externalActionStates[toInt(action)] += delta; } @@ -139,8 +142,8 @@ namespace controller { float getValue(const Endpoint::Pointer& endpoint) const; Pose getPose(const Endpoint::Pointer& endpoint) const; - friend class ::controller::RouteBuilderProxy; - friend class ::controller::MappingBuilderProxy; + friend class RouteBuilderProxy; + friend class MappingBuilderProxy; Endpoint::Pointer endpointFor(const QJSValue& endpoint); Endpoint::Pointer endpointFor(const QScriptValue& endpoint); Endpoint::Pointer endpointFor(const Input& endpoint) const;