History

Merge pull request #6242 from highfidelity/controllers

New Controller interfaces/api

Brad Hefta-Gaub committed 11 years ago

Commit 88394582 parents 56e1055 b5fd342183 files · +8590 −3939Browse files

Showing the changes to libraries/script-engine/src/ScriptEngine.cpp (1 of 183 files). Show all

Unified · Split

libraries/script-engine/src/ScriptEngine.cpp+13−14
@@ -28,7 +28,9 @@ · 27 unmodified lines
28#include <udt/PacketHeaders.h>28#include <udt/PacketHeaders.h>
29#include <UUID.h>29#include <UUID.h>
30 30
31#include "AnimationObject.h"31#include <controllers/ScriptingInterface.h>
32#include <AnimationObject.h>
33
32#include "ArrayBufferViewClass.h"34#include "ArrayBufferViewClass.h"
33#include "BatchLoader.h"35#include "BatchLoader.h"
34#include "DataViewClass.h"36#include "DataViewClass.h"
@@ -76,13 +78,16 @@ void avatarDataFromScriptValue(const QScriptValue &object, AvatarData* &out) { · 41 unmodified lines
76 out = qobject_cast<AvatarData*>(object.toQObject());78 out = qobject_cast<AvatarData*>(object.toQObject());
77}79}
78 80
79QScriptValue inputControllerToScriptValue(QScriptEngine *engine, AbstractInputController* const &in) {81QScriptValue inputControllerToScriptValue(QScriptEngine *engine, controller::InputController* const &in) {
80 return engine->newQObject(in);82 return engine->newQObject(in);
81}83}
82void inputControllerFromScriptValue(const QScriptValue &object, AbstractInputController* &out) {84
83 out = qobject_cast<AbstractInputController*>(object.toQObject());85void inputControllerFromScriptValue(const QScriptValue &object, controller::InputController* &out) {
86 out = qobject_cast<controller::InputController*>(object.toQObject());
84}87}
85 88
89
90
86static bool hasCorrectSyntax(const QScriptProgram& program) {91static bool hasCorrectSyntax(const QScriptProgram& program) {
87 const auto syntaxCheck = QScriptEngine::checkSyntax(program.sourceCode());92 const auto syntaxCheck = QScriptEngine::checkSyntax(program.sourceCode());
88 if (syntaxCheck.state() != QScriptSyntaxCheckResult::Valid) {93 if (syntaxCheck.state() != QScriptSyntaxCheckResult::Valid) {
@@ -114,16 +119,13 @@ static bool hadUncaughtExceptions(QScriptEngine& engine, const QString& fileName · 25 unmodified lines
114 return false;119 return false;
115}120}
116 121
117ScriptEngine::ScriptEngine(const QString& scriptContents, const QString& fileNameString,122ScriptEngine::ScriptEngine(const QString& scriptContents, const QString& fileNameString, bool wantSignals) :
118 AbstractControllerScriptingInterface* controllerScriptingInterface, bool wantSignals) :
119
120 _scriptContents(scriptContents),123 _scriptContents(scriptContents),
121 _isFinished(false),124 _isFinished(false),
122 _isRunning(false),125 _isRunning(false),
123 _isInitialized(false),126 _isInitialized(false),
124 _timerFunctionMap(),127 _timerFunctionMap(),
125 _wantSignals(wantSignals),128 _wantSignals(wantSignals),
126 _controllerScriptingInterface(controllerScriptingInterface),
127 _fileNameString(fileNameString),129 _fileNameString(fileNameString),
128 _isUserLoaded(false),130 _isUserLoaded(false),
129 _isReloading(false),131 _isReloading(false),
@@ -358,7 +360,6 @@ void ScriptEngine::init() { · 228 unmodified lines
358 360
359 registerGlobalObject("Script", this);361 registerGlobalObject("Script", this);
360 registerGlobalObject("Audio", &AudioScriptingInterface::getInstance());362 registerGlobalObject("Audio", &AudioScriptingInterface::getInstance());
361 registerGlobalObject("Controller", _controllerScriptingInterface);
362 registerGlobalObject("Entities", entityScriptingInterface.data());363 registerGlobalObject("Entities", entityScriptingInterface.data());
363 registerGlobalObject("Quat", &_quatLibrary);364 registerGlobalObject("Quat", &_quatLibrary);
364 registerGlobalObject("Vec3", &_vec3Library);365 registerGlobalObject("Vec3", &_vec3Library);
@@ -370,11 +371,9 @@ void ScriptEngine::init() { · 5 unmodified lines
370 // constants371 // constants
371 globalObject().setProperty("TREE_SCALE", newVariant(QVariant(TREE_SCALE)));372 globalObject().setProperty("TREE_SCALE", newVariant(QVariant(TREE_SCALE)));
372 373
373 if (_controllerScriptingInterface) {374 auto scriptingInterface = DependencyManager::get<controller::ScriptingInterface>();
374 _controllerScriptingInterface->registerControllerTypes(this);375 registerGlobalObject("Controller", scriptingInterface.data());
375 }376 UserInputMapper::registerControllerTypes(this);
376
377
378}377}
379 378
380void ScriptEngine::registerValue(const QString& valueName, QScriptValue value) {379void ScriptEngine::registerValue(const QString& valueName, QScriptValue value) {