diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 3454f96ef0..0e5bb55925 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -1448,8 +1448,11 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer, bo audioScriptingInterface->environmentMuted(); } }); - connect(this, &Application::activeDisplayPluginChanged, - dynamic_cast(audioScriptingInterface.data()), &scripting::Audio::onContextChanged); + QSharedPointer scriptingAudioSharedPointer = qSharedPointerDynamicCast(DependencyManager::get()); + if (scriptingAudioSharedPointer) { + connect(this, &Application::activeDisplayPluginChanged, + scriptingAudioSharedPointer.data(), &scripting::Audio::onContextChanged); + } } // Create the rendering engine. This can be slow on some machines due to lots of @@ -1642,7 +1645,7 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer, bo connect(userInputMapper.data(), &UserInputMapper::actionEvent, [this](int action, float state) { using namespace controller; auto tabletScriptingInterface = DependencyManager::get(); - auto audioScriptingInterface = dynamic_cast(DependencyManager::get().data()); + QSharedPointer audioScriptingInterface = qSharedPointerDynamicCast(DependencyManager::get()); { auto actionEnum = static_cast(action); int key = Qt::Key_unknown; @@ -1650,10 +1653,12 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer, bo bool navAxis = false; switch (actionEnum) { case Action::TOGGLE_PUSHTOTALK: - if (state > 0.0f) { - audioScriptingInterface->setPushingToTalk(true); - } else if (state <= 0.0f) { - audioScriptingInterface->setPushingToTalk(false); + if (audioScriptingInterface) { + if (state > 0.0f) { + audioScriptingInterface->setPushingToTalk(true); + } else if (state <= 0.0f) { + audioScriptingInterface->setPushingToTalk(false); + } } break; @@ -4306,8 +4311,8 @@ void Application::keyPressEvent(QKeyEvent* event) { if (isMeta) { auto audioClient = DependencyManager::get(); audioClient->setMuted(!audioClient->isMuted()); - auto audioScriptingInterface = dynamic_cast(DependencyManager::get().data()); - if (audioScriptingInterface->getPTT()) { + QSharedPointer audioScriptingInterface = qSharedPointerDynamicCast(DependencyManager::get()); + if (audioScriptingInterface && audioScriptingInterface->getPTT()) { audioScriptingInterface->setPushingToTalk(!audioClient->isMuted()); } } @@ -5371,8 +5376,10 @@ void Application::loadSettings() { } } - auto audioScriptingInterface = dynamic_cast(DependencyManager::get().data()); - audioScriptingInterface->loadData(); + QSharedPointer audioScriptingInterface = qSharedPointerDynamicCast(DependencyManager::get()); + if (audioScriptingInterface) { + audioScriptingInterface->loadData(); + } getMyAvatar()->loadData(); _settingsLoaded = true; @@ -5383,8 +5390,10 @@ void Application::saveSettings() const { DependencyManager::get()->saveSettings(); DependencyManager::get()->saveSettings(); - auto audioScriptingInterface = dynamic_cast(DependencyManager::get().data()); - audioScriptingInterface->saveData(); + QSharedPointer audioScriptingInterface = qSharedPointerDynamicCast(DependencyManager::get()); + if (audioScriptingInterface) { + audioScriptingInterface->saveData(); + } Menu::getInstance()->saveSettings(); getMyAvatar()->saveData();