From ae01890fb7661acfb94bd9a51b5269c6ada2c66b Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Fri, 15 Sep 2017 01:29:38 +0300 Subject: Add option for change number of max parallel sounds. --- src/soundmanager.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'src/soundmanager.cpp') diff --git a/src/soundmanager.cpp b/src/soundmanager.cpp index 37a6321a7..a4ee3acee 100644 --- a/src/soundmanager.cpp +++ b/src/soundmanager.cpp @@ -117,6 +117,8 @@ void SoundManager::optionChanged(const std::string &value) mFadeoutMusic = (config.getIntValue("fadeoutmusic") != 0); else if (value == "uselonglivesounds") mCacheSounds = (config.getIntValue("uselonglivesounds") != 0); + else if (value == "parallelAudioChannels") + setChannels(config.getIntValue("parallelAudioChannels")); } void SoundManager::init() @@ -142,6 +144,7 @@ void SoundManager::init() config.addListener("musicVolume", this); config.addListener("fadeoutmusic", this); config.addListener("uselonglivesounds", this); + config.addListener("parallelAudioChannels", this); if (SDL_InitSubSystem(SDL_INIT_AUDIO) == -1) { @@ -176,7 +179,7 @@ void SoundManager::init() logger->log("Fallback to stereo audio"); } - Mix_AllocateChannels(16); + Mix_AllocateChannels(config.getIntValue("parallelAudioChannels")); Mix_VolumeMusic(mMusicVolume); Mix_Volume(-1, mSfxVolume); @@ -570,3 +573,9 @@ void SoundManager::volumeRestore() const Mix_Volume(-1, mSfxVolume); } } + +void SoundManager::setChannels(const int channels) const +{ + if (mInstalled) + Mix_AllocateChannels(channels); +} -- cgit v1.2.3-60-g2f50