History

try to fix audio injector threading issues

SamGondelman committed 7 years ago

Commit 609c4ab1 parent c0240d225 files · +393 −324Browse files

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

Unified · Split

libraries/script-engine/src/ScriptAudioInjector.cpp+7−12
@@ -20,8 +20,11 @@ QScriptValue injectorToScriptValue(QScriptEngine* engine, ScriptAudioInjector* c · 19 unmodified lines
2020 }
2121
2222 // when the script goes down we want to cleanup the injector
23− QObject::connect(engine, &QScriptEngine::destroyed, in, &ScriptAudioInjector::stopInjectorImmediately,
24− Qt::DirectConnection);
23+ QObject::connect(engine, &QScriptEngine::destroyed, DependencyManager::get<AudioInjectorManager>().data(), [&] {
24+ qCDebug(scriptengine) << "Script was shutdown, stopping an injector";
25+ // FIXME: this doesn't work and leaves the injectors lying around
26+ //DependencyManager::get<AudioInjectorManager>()->stop(in->_injector);
27+ });
2528
2629 return engine->newQObject(in, QScriptEngine::ScriptOwnership);
2730 }
@@ -37,13 +40,5 @@ ScriptAudioInjector::ScriptAudioInjector(const AudioInjectorPointer& injector) : · 9 unmodified lines
3740 }
3841
3942 ScriptAudioInjector::~ScriptAudioInjector() {
40− if (!_injector.isNull()) {
41− // we've been asked to delete after finishing, trigger a queued deleteLater here
42− _injector->triggerDeleteAfterFinish();
43− }
44−}
45−
46−void ScriptAudioInjector::stopInjectorImmediately() {
47− qCDebug(scriptengine) << "ScriptAudioInjector::stopInjectorImmediately called to stop audio injector immediately.";
48− _injector->stop();
49−}
43+ DependencyManager::get<AudioInjectorManager>()->stop(_injector);
44+}