Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Dec 8, 2009, 10:09:39 AM (14 years ago)
Author:
rgrieder
Message:

Switched from ResourceInfo to std::string for the buffer identification. That should speed up BaseSound::setSource() by factor 10 if the buffer already exists.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • code/branches/presentation2/src/orxonox/sound/SoundManager.cc

    r6269 r6270  
    528528    }
    529529
    530     shared_ptr<SoundBuffer> SoundManager::getSoundBuffer(shared_ptr<ResourceInfo> fileInfo)
     530    shared_ptr<SoundBuffer> SoundManager::getSoundBuffer(const std::string& filename)
    531531    {
    532532        shared_ptr<SoundBuffer> buffer;
    533533        // Check active or pooled buffers
    534         SoundBufferMap::const_iterator it = this->soundBuffers_.find(fileInfo->group + '/' + fileInfo->filename);
     534        SoundBufferMap::const_iterator it = this->soundBuffers_.find(filename);
    535535        if (it != this->soundBuffers_.end())
    536536        {
     
    549549            try
    550550            {
    551                 buffer.reset(new SoundBuffer(fileInfo));
     551                buffer.reset(new SoundBuffer(filename));
    552552                buffer->poolIterator_ = this->effectsPool_.end();
    553553            }
     
    557557                return buffer;
    558558            }
    559             this->soundBuffers_[fileInfo->group + '/' + fileInfo->filename] = buffer;
     559            this->soundBuffers_[filename] = buffer;
    560560        }
    561561        return buffer;
     
    567567        if (buffer.use_count() != 2)
    568568            return;
    569         SoundBufferMap::iterator it = this->soundBuffers_.find(buffer->fileInfo_->group + '/' + buffer->fileInfo_->filename);
     569        SoundBufferMap::iterator it = this->soundBuffers_.find(buffer->getFilename());
    570570        if (it != this->soundBuffers_.end())
    571571        {
     
    580580                    this->effectsPool_.pop_back();
    581581                    // Remove from buffer map too
    582                     SoundBufferMap::iterator itDel = this->soundBuffers_.find(bufferDel->fileInfo_->group + '/' + bufferDel->fileInfo_->filename);
     582                    SoundBufferMap::iterator itDel = this->soundBuffers_.find(bufferDel->getFilename());
    583583                    if (itDel != this->soundBuffers_.end())
    584584                        this->soundBuffers_.erase(itDel);
Note: See TracChangeset for help on using the changeset viewer.