From 999fac785af3a7948cb19e6178d24638d75ed67a Mon Sep 17 00:00:00 2001 From: David Rowe Date: Mon, 8 Sep 2014 11:34:41 -0700 Subject: [PATCH] Add and use Leap Motion controller releasing at script ending --- examples/leapOfFaith.js | 4 ++++ interface/src/scripting/ControllerScriptingInterface.cpp | 4 ++++ interface/src/scripting/ControllerScriptingInterface.h | 4 ++-- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/examples/leapOfFaith.js b/examples/leapOfFaith.js index 4e6bb708bb..99d876c523 100644 --- a/examples/leapOfFaith.js +++ b/examples/leapOfFaith.js @@ -255,4 +255,8 @@ Script.update.connect(function(deltaTime) { }); Script.scriptEnding.connect(function() { + var i; + for (i = 0; i < jointControllers.length; i += 1) { + Controller.releaseInputController(jointControllers[i].c); + } }); diff --git a/interface/src/scripting/ControllerScriptingInterface.cpp b/interface/src/scripting/ControllerScriptingInterface.cpp index 0ebcfea987..ca6f79ed1f 100644 --- a/interface/src/scripting/ControllerScriptingInterface.cpp +++ b/interface/src/scripting/ControllerScriptingInterface.cpp @@ -297,6 +297,10 @@ AbstractInputController* ControllerScriptingInterface::createInputController(con } } +void ControllerScriptingInterface::releaseInputController(AbstractInputController* input) { + _inputControllers.erase(input->getKey()); +} + void ControllerScriptingInterface::updateInputControllers() { //TODO C++11 for (auto it = _inputControllers.begin(); it != _inputControllers.end(); it++) { for (InputControllerMap::iterator it = _inputControllers.begin(); it != _inputControllers.end(); it++) { diff --git a/interface/src/scripting/ControllerScriptingInterface.h b/interface/src/scripting/ControllerScriptingInterface.h index d980639685..62ef2e9b24 100644 --- a/interface/src/scripting/ControllerScriptingInterface.h +++ b/interface/src/scripting/ControllerScriptingInterface.h @@ -76,8 +76,6 @@ public: void updateInputControllers(); - void releaseInputController(AbstractInputController* input); - public slots: virtual bool isPrimaryButtonPressed() const; virtual glm::vec2 getPrimaryJoystickPosition() const; @@ -116,6 +114,8 @@ public slots: /// Factory to create an InputController virtual AbstractInputController* createInputController(const QString& deviceName, const QString& tracker); + virtual void releaseInputController(AbstractInputController* input); + private: const PalmData* getPrimaryPalm() const; const PalmData* getPalm(int palmIndex) const;