History

use a wrapper on audio injector for script ownership

Stephen Birarda committed 11 years ago

Commit 79674fb1 parent 449719b7 files · +105 −25Browse files

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

Unified · Split

libraries/script-engine/src/ScriptAudioInjector.cpp+36−0
@@ -0,0 +1,36 @@
1+//
2+// ScriptAudioInjector.cpp
3+// libraries/script-engine/src
4+//
5+// Created by Stephen Birarda on 2015-02-11.
6+// Copyright 2015 High Fidelity, Inc.
7+//
8+// Distributed under the Apache License, Version 2.0.
9+// See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
10+//
11+
12+#include "ScriptAudioInjector.h"
13+
14+QScriptValue injectorToScriptValue(QScriptEngine* engine, ScriptAudioInjector* const& in) {
15+ // when the script goes down we want to cleanup the injector
16+ QObject::connect(engine, &QScriptEngine::destroyed, in, &ScriptAudioInjector::stopInjectorImmediately);
17+
18+ return engine->newQObject(in, QScriptEngine::ScriptOwnership);
19+}
20+
21+void injectorFromScriptValue(const QScriptValue& object, ScriptAudioInjector*& out) {
22+ out = qobject_cast<ScriptAudioInjector*>(object.toQObject());
23+}
24+
25+ScriptAudioInjector::ScriptAudioInjector(AudioInjector* injector) :
26+ _injector(injector)
27+{
28+
29+}
30+
31+ScriptAudioInjector::~ScriptAudioInjector() {
32+}
33+
34+void ScriptAudioInjector::stopInjectorImmediately() {
35+ _injector->stopAndDeleteLater();
36+}