From 3308aebb9f95f91eebe6a8710510da4c843c225c Mon Sep 17 00:00:00 2001 From: Titus Tscharntke Date: Thu, 20 May 2010 21:32:25 +0000 Subject: [PATCH] volume changes in the options menu have instant effect when pressing OK --- source/glest_game/menu/menu_state_options.cpp | 3 ++- source/glest_game/sound/sound_renderer.cpp | 4 ++++ source/glest_game/sound/sound_renderer.h | 1 + .../shared_lib/sources/sound/openal/sound_player_openal.cpp | 5 ++++- 4 files changed, 11 insertions(+), 2 deletions(-) diff --git a/source/glest_game/menu/menu_state_options.cpp b/source/glest_game/menu/menu_state_options.cpp index 15014d7b4..e3ef36555 100644 --- a/source/glest_game/menu/menu_state_options.cpp +++ b/source/glest_game/menu/menu_state_options.cpp @@ -468,8 +468,9 @@ void MenuStateOptions::saveConfig(){ } config.save(); - Renderer::getInstance().loadConfig(); SoundRenderer::getInstance().loadConfig(); + SoundRenderer::getInstance().setMusicVolume(CoreData::getInstance().getMenuMusic()); + Renderer::getInstance().loadConfig(); } void MenuStateOptions::setActiveInputLable(GraphicLabel *newLable) diff --git a/source/glest_game/sound/sound_renderer.cpp b/source/glest_game/sound/sound_renderer.cpp index 71d36c04c..7b2319a6d 100644 --- a/source/glest_game/sound/sound_renderer.cpp +++ b/source/glest_game/sound/sound_renderer.cpp @@ -105,6 +105,10 @@ void SoundRenderer::playMusic(StrSound *strSound){ } } +void SoundRenderer::setMusicVolume(StrSound *strSound){ + strSound->setVolume(musicVolume); +} + void SoundRenderer::stopMusic(StrSound *strSound){ if(soundPlayer != NULL) { if(runThreadSafe == true) mutex.p(); diff --git a/source/glest_game/sound/sound_renderer.h b/source/glest_game/sound/sound_renderer.h index 57948ce56..65bbc6fec 100644 --- a/source/glest_game/sound/sound_renderer.h +++ b/source/glest_game/sound/sound_renderer.h @@ -62,6 +62,7 @@ public: //music void playMusic(StrSound *strSound); + void setMusicVolume(StrSound *strSound); void stopMusic(StrSound *strSound); //fx diff --git a/source/shared_lib/sources/sound/openal/sound_player_openal.cpp b/source/shared_lib/sources/sound/openal/sound_player_openal.cpp index 358d2aa59..24db2c267 100644 --- a/source/shared_lib/sources/sound/openal/sound_player_openal.cpp +++ b/source/shared_lib/sources/sound/openal/sound_player_openal.cpp @@ -200,7 +200,10 @@ void StreamSoundSource::update() } //SystemFlags::OutputDebug(SystemFlags::debugSystem,"In [%s::%s %d]\n",__FILE__,__FUNCTION__,__LINE__); - + if(fadeState == NoFading){ + alSourcef(source, AL_GAIN, sound->getVolume()); + } + ALint processed = 0; alGetSourcei(source, AL_BUFFERS_PROCESSED, &processed); while(processed > 0) {