diff --git a/apps/openmw/mwsound/openal_output.cpp b/apps/openmw/mwsound/openal_output.cpp index 64aa1aff7..85a7d13ba 100644 --- a/apps/openmw/mwsound/openal_output.cpp +++ b/apps/openmw/mwsound/openal_output.cpp @@ -595,23 +595,23 @@ bool OpenAL_Output::init(const std::string &devname, const std::string &hrtfname deinit(); mDevice = alcOpenDevice(devname.c_str()); + if(!mDevice && !devname.empty()) + { + std::cerr<< "Failed to open \""<removeAll(); - for(size_t i = 0;i < mFreeSources.size();i++) - alDeleteSources(1, &mFreeSources[i]); + std::for_each(mFreeSources.cbegin(), mFreeSources.cend(), + [](ALuint source) -> void + { alDeleteSources(1, &source); } + ); mFreeSources.clear(); if(mEffectSlot) diff --git a/apps/openmw/mwsound/soundmanagerimp.cpp b/apps/openmw/mwsound/soundmanagerimp.cpp index 0b6d8ff34..03bff89b4 100644 --- a/apps/openmw/mwsound/soundmanagerimp.cpp +++ b/apps/openmw/mwsound/soundmanagerimp.cpp @@ -26,11 +26,7 @@ #include "sound.hpp" #include "openal_output.hpp" -#define SOUND_OUT "OpenAL" #include "ffmpeg_decoder.hpp" -#ifndef SOUND_IN -#define SOUND_IN "FFmpeg" -#endif namespace MWSound @@ -60,6 +56,8 @@ namespace MWSound , mUnderwaterSound(nullptr) , mNearWaterSound(nullptr) { + std::cout<< "Initializing sound..." < 0 ? HrtfMode::Enable : HrtfMode::Disable; - std::cout << "Sound output: " << SOUND_OUT << std::endl; - std::cout << "Sound decoder: " << SOUND_IN << std::endl; - std::vector names = mOutput->enumerate(); std::cout <<"Enumerated output devices:\n"; std::for_each(names.cbegin(), names.cend(), @@ -103,15 +98,9 @@ namespace MWSound std::cout.flush(); std::string devname = Settings::Manager::getString("device", "Sound"); - bool inited = mOutput->init(devname, hrtfname, hrtfmode); - if(!inited && !devname.empty()) + if(!mOutput->init(devname, hrtfname, hrtfmode)) { - std::cerr<< "Failed to initialize device \""<init(std::string(), hrtfname, hrtfmode); - } - if(!inited) - { - std::cerr<< "Failed to initialize default audio device, sound disabled" <