History

expose Sound to ScriptEngine

Stephen Birarda committed 12 years ago

Commit 845176b1 parent 8cc4a333 files · +16 −2Browse files

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

Unified · Split

libraries/script-engine/src/ScriptEngine.cpp+12−0
@@ -20,12 +20,20 @@ · 19 unmodified lines
2020 #include <UUID.h>
2121 #include <VoxelConstants.h>
2222
23+#include <Sound.h>
24+
2325 #include "ScriptEngine.h"
2426
2527 int ScriptEngine::_scriptNumber = 1;
2628 VoxelsScriptingInterface ScriptEngine::_voxelsScriptingInterface;
2729 ParticlesScriptingInterface ScriptEngine::_particlesScriptingInterface;
2830
31+static QScriptValue soundConstructor(QScriptContext* context, QScriptEngine* engine) {
32+ QUrl soundURL = QUrl(context->argument(0).toString());
33+ QScriptValue soundScriptValue = engine->newQObject(new Sound(soundURL), QScriptEngine::ScriptOwnership);
34+
35+ return soundScriptValue;
36+}
2937
3038 ScriptEngine::ScriptEngine(const QString& scriptContents, bool wantMenuItems,
3139 const char* scriptMenuName, AbstractMenuInterface* menu,
@@ -101,6 +109,10 @@ void ScriptEngine::run() { · 69 unmodified lines
101109 QScriptValue particleScripterValue = engine.newQObject(&_particlesScriptingInterface);
102110 engine.globalObject().setProperty("Particles", particleScripterValue);
103111
112+ QScriptValue soundConstructorValue = engine.newFunction(soundConstructor);
113+ QScriptValue soundMetaObject = engine.newQMetaObject(&Sound::staticMetaObject, soundConstructorValue);
114+ engine.globalObject().setProperty("Sound", soundMetaObject);
115+
104116 if (_controllerScriptingInterface) {
105117 QScriptValue controllerScripterValue = engine.newQObject(_controllerScriptingInterface);
106118 engine.globalObject().setProperty("Controller", controllerScripterValue);