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 interface/src/scripting/TTSScriptingInterface.cpp (1 of 25 files). Show all

Unified · Split

interface/src/scripting/TTSScriptingInterface.cpp+5−5
@@ -66,7 +66,7 @@ void TTSScriptingInterface::updateLastSoundAudioInjector() { · 65 unmodified lines
6666 if (_lastSoundAudioInjector) {
6767 AudioInjectorOptions options;
6868 options.position = DependencyManager::get<AvatarManager>()->getMyAvatarPosition();
69− _lastSoundAudioInjector->setOptions(options);
69+ DependencyManager::get<AudioInjectorManager>()->setOptions(_lastSoundAudioInjector, options);
7070 _lastSoundAudioInjectorUpdateTimer.start(INJECTOR_INTERVAL_MS);
7171 }
7272 }
@@ -143,7 +143,7 @@ void TTSScriptingInterface::speakText(const QString& textToSpeak) { · 70 unmodified lines
143143 options.position = DependencyManager::get<AvatarManager>()->getMyAvatarPosition();
144144
145145 if (_lastSoundAudioInjector) {
146− _lastSoundAudioInjector->stop();
146+ DependencyManager::get<AudioInjectorManager>()->stop(_lastSoundAudioInjector);
147147 _lastSoundAudioInjectorUpdateTimer.stop();
148148 }
149149
@@ -151,7 +151,7 @@ void TTSScriptingInterface::speakText(const QString& textToSpeak) { · 1 unmodified line
151151 uint32_t numSamples = (uint32_t)_lastSoundByteArray.size() / sizeof(AudioData::AudioSample);
152152 auto samples = reinterpret_cast<AudioData::AudioSample*>(_lastSoundByteArray.data());
153153 auto newAudioData = AudioData::make(numSamples, numChannels, samples);
154− _lastSoundAudioInjector = AudioInjector::playSoundAndDelete(newAudioData, options);
154+ _lastSoundAudioInjector = DependencyManager::get<AudioInjectorManager>()->playSound(newAudioData, options, true);
155155
156156 _lastSoundAudioInjectorUpdateTimer.start(INJECTOR_INTERVAL_MS);
157157 #else
@@ -161,7 +161,7 @@ void TTSScriptingInterface::speakText(const QString& textToSpeak) { · 3 unmodified lines
161161
162162 void TTSScriptingInterface::stopLastSpeech() {
163163 if (_lastSoundAudioInjector) {
164− _lastSoundAudioInjector->stop();
165− _lastSoundAudioInjector = NULL;
164+ DependencyManager::get<AudioInjectorManager>()->stop(_lastSoundAudioInjector);
165+ _lastSoundAudioInjector = nullptr;
166166 }
167167 }