Sound* SoundSystem::PlayStreamingSound(SoundID soundID, int loopCount, float volumeLevel) { Sound* soundPicked = NULL; SoundMap ::iterator soundIDIter = m_soundMap.find(soundID); if(soundIDIter!= m_soundMap.end()) { //bool playedSound = false; Sounds& sounds = soundIDIter->second; for (Sounds::iterator soundIter = sounds.begin(); soundIter != sounds.end(); ++soundIter) { Sound* sound = (*soundIter); if(sound->IsPlaying() &&sound->IsReady()) continue; sound->Play(loopCount,volumeLevel); // playedSound = true; soundPicked = sound; break; } /* if(soundPicked) { } */ } return soundPicked ; }
void SoundSystem::Update() { CkUpdate(); for(SoundMap::iterator soundMapIter = m_soundMap.begin() ; soundMapIter != m_soundMap.end() ; ++soundMapIter) { Sounds& soundInstance = soundMapIter -> second; for( Sounds::iterator soundIter = soundInstance.begin(); soundIter!=soundInstance.end(); ++soundIter) { Sound* sound = (*soundIter); if(sound && sound->NeedsReset() && !sound->IsPlaying()) sound->Reset(); } } }