X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Faudio%2Fsound_manager.cpp;h=9141f6f6ad23797993efb7b78a3826f705c32f16;hb=d794aac09d4a3b3f5f93985cd74381bb4de4ce84;hp=dd8fdce16551e53c6dfc3e0707fbec2f17e7f167;hpb=b88dc6c0a778a019bf0b1f28c2cc9d624d9bbdbd;p=supertux.git diff --git a/src/audio/sound_manager.cpp b/src/audio/sound_manager.cpp index dd8fdce16..9141f6f6a 100644 --- a/src/audio/sound_manager.cpp +++ b/src/audio/sound_manager.cpp @@ -125,9 +125,9 @@ SoundManager::intern_create_sound_source(const std::string& filename) buffer = load_file_into_buffer(*file); buffers.insert(std::make_pair(filename, buffer)); } else { - std::unique_ptr source(new StreamSoundSource); - source->set_sound_file(std::move(file)); - return std::move(source); + std::unique_ptr source_(new StreamSoundSource); + source_->set_sound_file(std::move(file)); + return std::move(source_); } log_debug << "Uncached sound \"" << filename << "\" requested to be played" << std::endl; @@ -225,7 +225,7 @@ SoundManager::remove_from_update(StreamSoundSource* sss) if( *i == sss ){ i = update_list.erase(i); } else { - i++; + ++i; } } } @@ -301,6 +301,36 @@ SoundManager::play_music(const std::string& filename, bool fade) } void +SoundManager::pause_music(float fadetime) +{ + if(music_source == NULL) + return; + + if(fadetime > 0) { + if(music_source + && music_source->get_fade_state() != StreamSoundSource::FadingPause) + music_source->set_fading(StreamSoundSource::FadingPause, fadetime); + } else { + music_source->pause(); + } +} + +void +SoundManager::resume_music(float fadetime) +{ + if(music_source == NULL) + return; + + if(fadetime > 0) { + if(music_source + && music_source->get_fade_state() != StreamSoundSource::FadingResume) + music_source->set_fading(StreamSoundSource::FadingResume, fadetime); + } else { + music_source->resume(); + } +} + +void SoundManager::set_listener_position(const Vector& pos) { static Uint32 lastticks = SDL_GetTicks(); @@ -356,7 +386,7 @@ SoundManager::update() StreamSoundSources::iterator s = update_list.begin(); while( s != update_list.end() ){ (*s)->update(); - s++; + ++s; } }