Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Changeset 7318 in orxonox.OLD for trunk/src/lib


Ignore:
Timestamp:
Apr 17, 2006, 2:55:51 AM (18 years ago)
Author:
bensch
Message:

orxonox/trunk: SoundSource in the Menu

Location:
trunk/src/lib/sound
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/lib/sound/sound_engine.cc

    r7317 r7318  
    124124 * @param sourceNode The sourceNode to bind this SoundSource to.
    125125 * @returns The newly created SoundSource
    126 
    127    acctualy this is nothing more than a wrapper around the ResourceManager.
     126 *
     127 * acctualy this is nothing more than a wrapper around the ResourceManager.
    128128*/
    129129SoundSource* SoundEngine::createSource(const std::string& fileName, PNode* sourceNode)
    130130{
    131   return new SoundSource(sourceNode, (SoundBuffer*)ResourceManager::getInstance()->load(fileName, WAV, RP_LEVEL));
     131  SoundBuffer* buffer = NULL;
     132  if (!fileName.empty())
     133  {
     134     buffer= (SoundBuffer*)ResourceManager::getInstance()->load(fileName, WAV, RP_LEVEL);
     135     if (buffer == NULL)
     136       PRINTF(2)("Wav-Sound %s could not be loaded onto new Source\n", fileName.c_str());
     137  }
     138    return new SoundSource(sourceNode, buffer);
    132139}
    133140
     
    151158 * @param source the Source to fill with the Value.
    152159 */
    153 bool SoundEngine::popALSource(ALuint& source)
     160void SoundEngine::popALSource(ALuint& source)
    154161{
    155162  assert (source == 0);
    156 
    157163  /// @TODO try to create more sources if needed
    158164  if (!this->ALSources.empty())
     
    162168    this->ALSources.pop();
    163169    SDL_mutexV(this->sourceMutex);
    164     return true;
    165   }
    166   else
    167     return false;
     170  }
    168171}
    169172
  • trunk/src/lib/sound/sound_engine.h

    r7317 r7318  
    4949
    5050  // administrative
    51     bool popALSource(ALuint& source);
     51    void popALSource(ALuint& source);
    5252    void pushALSource(ALuint& source);
    5353
  • trunk/src/lib/sound/sound_source.cc

    r7317 r7318  
    117117void SoundSource::play()
    118118{
    119   if (this->retrieveSource())
    120   {
    121     alSourcePlay(this->sourceID);
     119  if (this->buffer && this->retrieveSource())
     120  {
     121    if (this->bPlay)
     122      alSourceStop(this->sourceID);
     123    alSourcei (this->sourceID, AL_BUFFER, this->buffer->getID());
     124      alSourcePlay(this->sourceID);
     125
    122126    if (DEBUG >= 3)
    123127      SoundEngine::checkError("Play Source", __LINE__);
Note: See TracChangeset for help on using the changeset viewer.