mirror of
https://github.com/overte-org/overte.git
synced 2025-08-06 19:59:28 +02:00
added check for valid dynamic casts
This commit is contained in:
parent
f019fa3a7c
commit
1f004f34c4
1 changed files with 22 additions and 13 deletions
|
@ -1448,8 +1448,11 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer, bo
|
||||||
audioScriptingInterface->environmentMuted();
|
audioScriptingInterface->environmentMuted();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
connect(this, &Application::activeDisplayPluginChanged,
|
QSharedPointer<scripting::Audio> scriptingAudioSharedPointer = qSharedPointerDynamicCast<scripting::Audio>(DependencyManager::get<AudioScriptingInterface>());
|
||||||
dynamic_cast<scripting::Audio*>(audioScriptingInterface.data()), &scripting::Audio::onContextChanged);
|
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
|
// 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) {
|
connect(userInputMapper.data(), &UserInputMapper::actionEvent, [this](int action, float state) {
|
||||||
using namespace controller;
|
using namespace controller;
|
||||||
auto tabletScriptingInterface = DependencyManager::get<TabletScriptingInterface>();
|
auto tabletScriptingInterface = DependencyManager::get<TabletScriptingInterface>();
|
||||||
auto audioScriptingInterface = dynamic_cast<scripting::Audio*>(DependencyManager::get<AudioScriptingInterface>().data());
|
QSharedPointer<scripting::Audio> audioScriptingInterface = qSharedPointerDynamicCast<scripting::Audio>(DependencyManager::get<AudioScriptingInterface>());
|
||||||
{
|
{
|
||||||
auto actionEnum = static_cast<Action>(action);
|
auto actionEnum = static_cast<Action>(action);
|
||||||
int key = Qt::Key_unknown;
|
int key = Qt::Key_unknown;
|
||||||
|
@ -1650,10 +1653,12 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer, bo
|
||||||
bool navAxis = false;
|
bool navAxis = false;
|
||||||
switch (actionEnum) {
|
switch (actionEnum) {
|
||||||
case Action::TOGGLE_PUSHTOTALK:
|
case Action::TOGGLE_PUSHTOTALK:
|
||||||
if (state > 0.0f) {
|
if (audioScriptingInterface) {
|
||||||
audioScriptingInterface->setPushingToTalk(true);
|
if (state > 0.0f) {
|
||||||
} else if (state <= 0.0f) {
|
audioScriptingInterface->setPushingToTalk(true);
|
||||||
audioScriptingInterface->setPushingToTalk(false);
|
} else if (state <= 0.0f) {
|
||||||
|
audioScriptingInterface->setPushingToTalk(false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -4306,8 +4311,8 @@ void Application::keyPressEvent(QKeyEvent* event) {
|
||||||
if (isMeta) {
|
if (isMeta) {
|
||||||
auto audioClient = DependencyManager::get<AudioClient>();
|
auto audioClient = DependencyManager::get<AudioClient>();
|
||||||
audioClient->setMuted(!audioClient->isMuted());
|
audioClient->setMuted(!audioClient->isMuted());
|
||||||
auto audioScriptingInterface = dynamic_cast<scripting::Audio*>(DependencyManager::get<AudioScriptingInterface>().data());
|
QSharedPointer<scripting::Audio> audioScriptingInterface = qSharedPointerDynamicCast<scripting::Audio>(DependencyManager::get<AudioScriptingInterface>());
|
||||||
if (audioScriptingInterface->getPTT()) {
|
if (audioScriptingInterface && audioScriptingInterface->getPTT()) {
|
||||||
audioScriptingInterface->setPushingToTalk(!audioClient->isMuted());
|
audioScriptingInterface->setPushingToTalk(!audioClient->isMuted());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5371,8 +5376,10 @@ void Application::loadSettings() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
auto audioScriptingInterface = dynamic_cast<scripting::Audio*>(DependencyManager::get<AudioScriptingInterface>().data());
|
QSharedPointer<scripting::Audio> audioScriptingInterface = qSharedPointerDynamicCast<scripting::Audio>(DependencyManager::get<AudioScriptingInterface>());
|
||||||
audioScriptingInterface->loadData();
|
if (audioScriptingInterface) {
|
||||||
|
audioScriptingInterface->loadData();
|
||||||
|
}
|
||||||
|
|
||||||
getMyAvatar()->loadData();
|
getMyAvatar()->loadData();
|
||||||
_settingsLoaded = true;
|
_settingsLoaded = true;
|
||||||
|
@ -5383,8 +5390,10 @@ void Application::saveSettings() const {
|
||||||
DependencyManager::get<AudioClient>()->saveSettings();
|
DependencyManager::get<AudioClient>()->saveSettings();
|
||||||
DependencyManager::get<LODManager>()->saveSettings();
|
DependencyManager::get<LODManager>()->saveSettings();
|
||||||
|
|
||||||
auto audioScriptingInterface = dynamic_cast<scripting::Audio*>(DependencyManager::get<AudioScriptingInterface>().data());
|
QSharedPointer<scripting::Audio> audioScriptingInterface = qSharedPointerDynamicCast<scripting::Audio>(DependencyManager::get<AudioScriptingInterface>());
|
||||||
audioScriptingInterface->saveData();
|
if (audioScriptingInterface) {
|
||||||
|
audioScriptingInterface->saveData();
|
||||||
|
}
|
||||||
|
|
||||||
Menu::getInstance()->saveSettings();
|
Menu::getInstance()->saveSettings();
|
||||||
getMyAvatar()->saveData();
|
getMyAvatar()->saveData();
|
||||||
|
|
Loading…
Reference in a new issue