fixed sound looping

This commit is contained in:
Dave Schuyler 2001-06-21 05:10:34 +00:00
parent 73750b7587
commit 703f3086a8

View File

@ -56,9 +56,9 @@ AudioManager::
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
void AudioManager:: void AudioManager::
set_update_func(AudioManager::UpdateFunc* func) { set_update_func(AudioManager::UpdateFunc* func) {
if (_update_func != (AudioManager::UpdateFunc*)0L) if (_update_func) {
audio_cat->error() << "There maybe be more then one audio driver installed" audio_error("There maybe be more then one audio driver installed");
<< endl; }
_update_func = func; _update_func = func;
} }
@ -86,7 +86,7 @@ copy_loopset() {
void AudioManager:: void AudioManager::
ns_update() { ns_update() {
// handle looping // handle looping
if (!_loopcopy) { if (_loopcopy) {
for (LoopSet::iterator i=_loopcopy->begin(); i!=_loopcopy->end(); ++i) { for (LoopSet::iterator i=_loopcopy->begin(); i!=_loopcopy->end(); ++i) {
AudioSound* sound = *i; AudioSound* sound = *i;
if (sound->status() == AudioSound::READY) { if (sound->status() == AudioSound::READY) {
@ -174,13 +174,15 @@ ns_stop(AudioSound* sound) {
void AudioManager:: void AudioManager::
ns_set_loop(AudioSound* sound, bool state) { ns_set_loop(AudioSound* sound, bool state) {
mutex_lock l(_manager_mutex); mutex_lock l(_manager_mutex);
if (_loopset == (LoopSet*)0L) if (!_loopset) {
_loopset = new LoopSet; _loopset = new LoopSet;
if (state) }
if (state) {
_loopset->insert(sound); _loopset->insert(sound);
else if (_loopset->find(sound) != _loopset->end()) } else if (_loopset->find(sound) != _loopset->end()) {
_loopset->erase(sound); _loopset->erase(sound);
} }
}
//////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////
// Function: AudioManager::ns_get_loop (AudioSound) // Function: AudioManager::ns_get_loop (AudioSound)