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/AudioScriptingInterface.cpp (1 of 7 files). Show all

Unified · Split

libraries/script-engine/src/AudioScriptingInterface.cpp+11−2
@@ -9,6 +9,8 @@ · 8 unmodified lines
99 // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
1010 //
1111
12+#include "ScriptAudioInjector.h"
13+
1214 #include "AudioScriptingInterface.h"
1315
1416 void registerAudioMetaTypes(QScriptEngine* engine) {
@@ -28,12 +30,16 @@ AudioScriptingInterface::AudioScriptingInterface() : · 13 unmodified lines
2830
2931 }
3032
31−AudioInjector* AudioScriptingInterface::playSound(Sound* sound, const AudioInjectorOptions& injectorOptions) {
33+ScriptAudioInjector* AudioScriptingInterface::playSound(Sound* sound, const AudioInjectorOptions& injectorOptions) {
3234 AudioInjector* injector = NULL;
3335 QMetaObject::invokeMethod(this, "invokedPlaySound", Qt::BlockingQueuedConnection,
3436 Q_RETURN_ARG(AudioInjector*, injector),
3537 Q_ARG(Sound*, sound), Q_ARG(const AudioInjectorOptions&, injectorOptions));
36− return injector;
38+ if (injector) {
39+ return new ScriptAudioInjector(injector);
40+ } else {
41+ return NULL;
42+ }
3743 }
3844
3945 AudioInjector* AudioScriptingInterface::invokedPlaySound(Sound* sound, const AudioInjectorOptions& injectorOptions) {
@@ -43,6 +49,7 @@ AudioInjector* AudioScriptingInterface::invokedPlaySound(Sound* sound, const Aud · 3 unmodified lines
4349 optionsCopy.stereo = sound->isStereo();
4450
4551 QThread* injectorThread = new QThread();
52+ qDebug() << "the injector thread is" << injectorThread;
4653 injectorThread->setObjectName("Audio Injector Thread");
4754
4855 AudioInjector* injector = new AudioInjector(sound, optionsCopy);
@@ -50,6 +57,8 @@ AudioInjector* AudioScriptingInterface::invokedPlaySound(Sound* sound, const Aud · 1 unmodified line
5057
5158 injector->moveToThread(injectorThread);
5259
60+ qDebug() << "the injector is" << injector;
61+
5362 // start injecting when the injector thread starts
5463 connect(injectorThread, &QThread::started, injector, &AudioInjector::injectAudio);
5564