示例#1
0
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 ;
}
示例#2
0
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();
        }
    }

}