Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Changeset 5917 in orxonox.OLD for trunk


Ignore:
Timestamp:
Dec 4, 2005, 9:27:18 PM (19 years ago)
Author:
bensch
Message:

orxonox/trunk: al-sound-source-allocation

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

Legend:

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

    r5915 r5917  
    305305}
    306306
     307
     308/**
     309 * Allocates openAL sources
     310 * @param count how many sources to allocate
     311 * @returns true on success, false if at least one source could not be allocated
     312 */
     313bool SoundEngine::allocateSources(unsigned int count)
     314{
     315  ALuint* sourceList = new ALuint[count];
     316  ALenum result;
     317
     318  alGenSources(count, sourceList);
     319  if ((result = alGetError()) != AL_NO_ERROR)
     320  {
     321    SoundEngine::PrintALErrorString(result);
     322    return false;
     323  }
     324
     325  /// @TODO check syntax
     326
     327
     328  // Setting default values.
     329  for (int i = 0; i < count; i++)
     330  {
     331    alSourcef (sourceList[i], AL_PITCH,    1.0      );
     332    alSourcef (sourceList[i], AL_GAIN,     this->getEffectsVolume() );
     333    alSourcei (sourceList[i], AL_LOOPING,  AL_FALSE );
     334    this->ALSources.push(sourceList[i]);
     335  }
     336  return true;
     337}
     338
    307339/**
    308340 *  Transforms AL-errors into something readable
  • trunk/src/lib/sound/sound_engine.h

    r5885 r5917  
    1414
    1515#include <list>
     16#include <stack>
    1617
    1718#define SOUND_DOPPLER_FACTOR       0.001          //!< A factor for the audible doppler effect
     
    2122class PNode;
    2223class IniParser;
     24
    2325
    2426//! A class that handles audio via the openAudioLibrary
     
    5456    void flushAllBuffers();
    5557    void flushAllSources();
     58
     59    bool allocateSources(unsigned int count);
    5660    bool initAudio();
    5761
     
    7882    const std::list<BaseObject*>*  sourceList;               //!< A list for all the sources in the scene.
    7983
    80 
     84    unsigned int                   maxSourceCount;           //!< How many Sources is the Maximum
     85    std::stack<ALuint>             ALSources;                //!< A list of real openAL-Sources, the engine allocates, and stores for reuse.
    8186};
    8287
  • trunk/src/lib/sound/sound_source.cc

    r5386 r5917  
    1818#include "sound_source.h"
    1919#include "sound_engine.h"
     20
    2021#include "alincl.h"
    2122#include "compiler.h"
  • trunk/src/lib/sound/sound_source.h

    r5386 r5917  
    3939
    4040  private:
     41    bool                   bPlay;                 //!< If the Source is Playing.
    4142    ALuint                 sourceID;              //!< The ID of the Source
    4243    const SoundBuffer*     buffer;                //!< The buffer to play in this source.
Note: See TracChangeset for help on using the changeset viewer.