Fix crash in Audio Client
Showing the changes to interface/src/Application.cpp (1 of 2 files). Show all
Unified · Split
| @@ -598,8 +598,18 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer) : · 597 unmodified lines | |||
| 598 | audioThread->setObjectName("Audio Thread"); | 598 | audioThread->setObjectName("Audio Thread"); |
| 599 | 599 | ||
| 600 | auto audioIO = DependencyManager::get<AudioClient>(); | 600 | auto audioIO = DependencyManager::get<AudioClient>(); |
| 601 | audioIO->setPositionGetter([this]{ return getMyAvatar()->getPositionForAudio(); }); | 601 | audioIO->setPositionGetter([]{ |
| 602 | audioIO->setOrientationGetter([this]{ return getMyAvatar()->getOrientationForAudio(); }); | 602 | auto avatarManager = DependencyManager::get<AvatarManager>(); |
| 603 | auto myAvatar = avatarManager ? avatarManager->getMyAvatar() : nullptr; | ||
| 604 | |||
| 605 | return myAvatar ? myAvatar->getPositionForAudio() : Vectors::ZERO; | ||
| 606 | }); | ||
| 607 | audioIO->setOrientationGetter([]{ | ||
| 608 | auto avatarManager = DependencyManager::get<AvatarManager>(); | ||
| 609 | auto myAvatar = avatarManager ? avatarManager->getMyAvatar() : nullptr; | ||
| 610 | |||
| 611 | return myAvatar ? myAvatar->getOrientationForAudio() : Quaternions::IDENTITY; | ||
| 612 | }); | ||
| 603 | 613 | ||
| 604 | audioIO->moveToThread(audioThread); | 614 | audioIO->moveToThread(audioThread); |
| 605 | recording::Frame::registerFrameHandler(AudioConstants::getAudioFrameName(), [=](recording::Frame::ConstPointer frame) { | 615 | recording::Frame::registerFrameHandler(AudioConstants::getAudioFrameName(), [=](recording::Frame::ConstPointer frame) { |