From 562fce5a7d788645a15f9f2bb7ef18753070d840 Mon Sep 17 00:00:00 2001 From: Ansariel Date: Thu, 27 Jun 2019 23:37:13 +0200 Subject: [PATCH] For for errors in FMOD::System::getDriverInfo calls --- indra/llaudio/llaudioengine_fmodex.cpp | 28 ++++++++++++---------- indra/llaudio/llaudioengine_fmodstudio.cpp | 28 ++++++++++++---------- 2 files changed, 32 insertions(+), 24 deletions(-) diff --git a/indra/llaudio/llaudioengine_fmodex.cpp b/indra/llaudio/llaudioengine_fmodex.cpp index db34ffc19e..9000e1b99a 100644 --- a/indra/llaudio/llaudioengine_fmodex.cpp +++ b/indra/llaudio/llaudioengine_fmodex.cpp @@ -75,14 +75,16 @@ void set_device(FMOD::System* system, const LLUUID& device_uuid) for (int i = 0; i < drivercount; ++i) { - system->getDriverInfo(i, NULL, 0, &guid); - LLUUID driver_guid = FMOD_GUID_to_LLUUID(guid); - - if (driver_guid == device_uuid) + if (!Check_FMOD_Error(system->getDriverInfo(i, NULL, 0, &guid), "FMOD::System::getDriverInfo")) { - LL_INFOS() << "Setting driver " << i << ": " << driver_guid << LL_ENDL; - Check_FMOD_Error(system->setDriver(i), "FMOD::System::setDriver"); - return; + LLUUID driver_guid = FMOD_GUID_to_LLUUID(guid); + + if (driver_guid == device_uuid) + { + LL_INFOS() << "Setting driver " << i << ": " << driver_guid << LL_ENDL; + Check_FMOD_Error(system->setDriver(i), "FMOD::System::setDriver"); + return; + } } } @@ -423,12 +425,14 @@ LLAudioEngine_FMODEX::output_device_map_t LLAudioEngine_FMODEX::getDevices() { for (int i = 0; i < drivercount; ++i) { - memset(r_name, 0, 512); - mSystem->getDriverInfo(i, r_name, 511, &guid); - LLUUID driver_guid = FMOD_GUID_to_LLUUID(guid); - driver_map.insert(std::make_pair(driver_guid, r_name)); + memset(r_name, 0, sizeof(r_name)); + if (!Check_FMOD_Error(mSystem->getDriverInfo(i, r_name, 511, &guid), "FMOD::System::getDriverInfo")) + { + LLUUID driver_guid = FMOD_GUID_to_LLUUID(guid); + driver_map.insert(std::make_pair(driver_guid, r_name)); - LL_INFOS("AppInit") << "LLAudioEngine_FMODEX::getDevices(): r_name=\"" << r_name << "\" - guid: " << driver_guid << LL_ENDL; + LL_INFOS("AppInit") << "LLAudioEngine_FMODEX::getDevices(): r_name=\"" << r_name << "\" - guid: " << driver_guid << LL_ENDL; + } } } diff --git a/indra/llaudio/llaudioengine_fmodstudio.cpp b/indra/llaudio/llaudioengine_fmodstudio.cpp index 2bd17d8d6a..48203b0371 100644 --- a/indra/llaudio/llaudioengine_fmodstudio.cpp +++ b/indra/llaudio/llaudioengine_fmodstudio.cpp @@ -95,14 +95,16 @@ void set_device(FMOD::System* system, const LLUUID& device_uuid) for (int i = 0; i < drivercount; ++i) { - system->getDriverInfo(i, NULL, 0, &guid, &r_samplerate, NULL, &r_channels); - LLUUID driver_guid = FMOD_GUID_to_LLUUID(guid); - - if (driver_guid == device_uuid) + if (!Check_FMOD_Error(system->getDriverInfo(i, NULL, 0, &guid, &r_samplerate, NULL, &r_channels), "FMOD::System::getDriverInfo")) { - LL_INFOS() << "Setting driver " << i << ": " << driver_guid << LL_ENDL; - Check_FMOD_Error(system->setDriver(i), "FMOD::System::setDriver"); - return; + LLUUID driver_guid = FMOD_GUID_to_LLUUID(guid); + + if (driver_guid == device_uuid) + { + LL_INFOS() << "Setting driver " << i << ": " << driver_guid << LL_ENDL; + Check_FMOD_Error(system->setDriver(i), "FMOD::System::setDriver"); + return; + } } } @@ -353,12 +355,14 @@ LLAudioEngine_FMODSTUDIO::output_device_map_t LLAudioEngine_FMODSTUDIO::getDevic { for (int i = 0; i < drivercount; ++i) { - memset(r_name, 0, 512); - mSystem->getDriverInfo(i, r_name, 511, &guid, &r_samplerate, NULL, &r_channels); - LLUUID driver_guid = FMOD_GUID_to_LLUUID(guid); - driver_map.insert(std::make_pair(driver_guid, r_name)); + memset(r_name, 0, sizeof(r_name)); + if (!Check_FMOD_Error(mSystem->getDriverInfo(i, r_name, 511, &guid, &r_samplerate, NULL, &r_channels), "FMOD::System::getDriverInfo")) + { + LLUUID driver_guid = FMOD_GUID_to_LLUUID(guid); + driver_map.insert(std::make_pair(driver_guid, r_name)); - LL_INFOS("AppInit") << "LLAudioEngine_FMODSTUDIO::getDevices(): r_name=\"" << r_name << "\" - guid: " << driver_guid << LL_ENDL; + LL_INFOS("AppInit") << "LLAudioEngine_FMODSTUDIO::getDevices(): r_name=\"" << r_name << "\" - guid: " << driver_guid << LL_ENDL; + } } }