OpenMW
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Classes | Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
MWSound::OpenAL_Output Class Reference

#include <openal_output.hpp>

Inheritance diagram for MWSound::OpenAL_Output:
Collaboration diagram for MWSound::OpenAL_Output:

Classes

struct  StreamThread
 

Public Member Functions

virtual std::vector< std::string > enumerate ()
 
virtual bool init (const std::string &devname, const std::string &hrtfname, HrtfMode hrtfmode)
 
virtual void deinit ()
 
virtual std::vector< std::string > enumerateHrtf ()
 
virtual void setHrtf (const std::string &hrtfname, HrtfMode hrtfmode)
 
virtual std::pair
< Sound_Handle, size_t > 
loadSound (const std::string &fname)
 
virtual size_t unloadSound (Sound_Handle data)
 
virtual bool playSound (Sound *sound, Sound_Handle data, float offset)
 
virtual bool playSound3D (Sound *sound, Sound_Handle data, float offset)
 
virtual void finishSound (Sound *sound)
 
virtual bool isSoundPlaying (Sound *sound)
 
virtual void updateSound (Sound *sound)
 
virtual bool streamSound (DecoderPtr decoder, Stream *sound)
 
virtual bool streamSound3D (DecoderPtr decoder, Stream *sound, bool getLoudnessData)
 
virtual void finishStream (Stream *sound)
 
virtual double getStreamDelay (Stream *sound)
 
virtual double getStreamOffset (Stream *sound)
 
virtual float getStreamLoudness (Stream *sound)
 
virtual bool isStreamPlaying (Stream *sound)
 
virtual void updateStream (Stream *sound)
 
virtual void startUpdate ()
 
virtual void finishUpdate ()
 
virtual void updateListener (const osg::Vec3f &pos, const osg::Vec3f &atdir, const osg::Vec3f &updir, Environment env)
 
virtual void pauseSounds (int types)
 
virtual void resumeSounds (int types)
 
 OpenAL_Output (SoundManager &mgr)
 
virtual ~OpenAL_Output ()
 
- Public Member Functions inherited from MWSound::Sound_Output
virtual ~Sound_Output ()
 
bool isInitialized () const
 

Private Types

typedef std::deque< ALuint > IDDq
 
typedef std::vector< Sound * > SoundVec
 
typedef std::vector< Stream * > StreamVec
 

Private Member Functions

void initCommon2D (ALuint source, const osg::Vec3f &pos, ALfloat gain, ALfloat pitch, bool loop, bool useenv)
 
void initCommon3D (ALuint source, const osg::Vec3f &pos, ALfloat mindist, ALfloat maxdist, ALfloat gain, ALfloat pitch, bool loop, bool useenv)
 
void updateCommon (ALuint source, const osg::Vec3f &pos, ALfloat maxdist, ALfloat gain, ALfloat pitch, bool useenv, bool is3d)
 
OpenAL_Outputoperator= (const OpenAL_Output &rhs)
 
 OpenAL_Output (const OpenAL_Output &rhs)
 

Private Attributes

ALCdevice * mDevice
 
ALCcontext * mContext
 
struct {
   bool   EXT_EFX: 1
 
   bool   SOFT_HRTF: 1
 
ALC = {false, false}
 
struct {
   bool   SOFT_source_spatialize: 1
 
AL = {false}
 
IDDq mFreeSources
 
SoundVec mActiveSounds
 
StreamVec mActiveStreams
 
osg::Vec3f mListenerPos
 
Environment mListenerEnv
 
ALuint mWaterFilter
 
ALuint mWaterEffect
 
ALuint mDefaultEffect
 
ALuint mEffectSlot
 
std::unique_ptr< StreamThreadmStreamThread
 

Additional Inherited Members

- Protected Member Functions inherited from MWSound::Sound_Output
 Sound_Output (SoundManager &mgr)
 
- Protected Attributes inherited from MWSound::Sound_Output
bool mInitialized
 

Member Typedef Documentation

typedef std::deque<ALuint> MWSound::OpenAL_Output::IDDq
private
typedef std::vector<Sound*> MWSound::OpenAL_Output::SoundVec
private
typedef std::vector<Stream*> MWSound::OpenAL_Output::StreamVec
private

Constructor & Destructor Documentation

MWSound::OpenAL_Output::OpenAL_Output ( const OpenAL_Output rhs)
private
MWSound::OpenAL_Output::OpenAL_Output ( SoundManager mgr)
MWSound::OpenAL_Output::~OpenAL_Output ( )
virtual

Here is the call graph for this function:

Member Function Documentation

void MWSound::OpenAL_Output::deinit ( )
virtual

Implements MWSound::Sound_Output.

Here is the caller graph for this function:

std::vector< std::string > MWSound::OpenAL_Output::enumerate ( )
virtual

Implements MWSound::Sound_Output.

std::vector< std::string > MWSound::OpenAL_Output::enumerateHrtf ( )
virtual

Implements MWSound::Sound_Output.

Here is the call graph for this function:

void MWSound::OpenAL_Output::finishSound ( Sound sound)
virtual

Implements MWSound::Sound_Output.

void MWSound::OpenAL_Output::finishStream ( Stream sound)
virtual

Implements MWSound::Sound_Output.

void MWSound::OpenAL_Output::finishUpdate ( )
virtual

Implements MWSound::Sound_Output.

double MWSound::OpenAL_Output::getStreamDelay ( Stream sound)
virtual

Implements MWSound::Sound_Output.

Here is the call graph for this function:

float MWSound::OpenAL_Output::getStreamLoudness ( Stream sound)
virtual

Implements MWSound::Sound_Output.

Here is the call graph for this function:

double MWSound::OpenAL_Output::getStreamOffset ( Stream sound)
virtual

Implements MWSound::Sound_Output.

Here is the call graph for this function:

bool MWSound::OpenAL_Output::init ( const std::string &  devname,
const std::string &  hrtfname,
HrtfMode  hrtfmode 
)
virtual

Implements MWSound::Sound_Output.

Here is the call graph for this function:

void MWSound::OpenAL_Output::initCommon2D ( ALuint  source,
const osg::Vec3f &  pos,
ALfloat  gain,
ALfloat  pitch,
bool  loop,
bool  useenv 
)
private

Here is the caller graph for this function:

void MWSound::OpenAL_Output::initCommon3D ( ALuint  source,
const osg::Vec3f &  pos,
ALfloat  mindist,
ALfloat  maxdist,
ALfloat  gain,
ALfloat  pitch,
bool  loop,
bool  useenv 
)
private

Here is the caller graph for this function:

bool MWSound::OpenAL_Output::isSoundPlaying ( Sound sound)
virtual

Implements MWSound::Sound_Output.

bool MWSound::OpenAL_Output::isStreamPlaying ( Stream sound)
virtual

Implements MWSound::Sound_Output.

Here is the call graph for this function:

std::pair< Sound_Handle, size_t > MWSound::OpenAL_Output::loadSound ( const std::string &  fname)
virtual

Implements MWSound::Sound_Output.

Here is the call graph for this function:

OpenAL_Output& MWSound::OpenAL_Output::operator= ( const OpenAL_Output rhs)
private
void MWSound::OpenAL_Output::pauseSounds ( int  types)
virtual

Implements MWSound::Sound_Output.

bool MWSound::OpenAL_Output::playSound ( Sound sound,
Sound_Handle  data,
float  offset 
)
virtual

Implements MWSound::Sound_Output.

Here is the call graph for this function:

bool MWSound::OpenAL_Output::playSound3D ( Sound sound,
Sound_Handle  data,
float  offset 
)
virtual

Implements MWSound::Sound_Output.

Here is the call graph for this function:

void MWSound::OpenAL_Output::resumeSounds ( int  types)
virtual

Implements MWSound::Sound_Output.

void MWSound::OpenAL_Output::setHrtf ( const std::string &  hrtfname,
HrtfMode  hrtfmode 
)
virtual

Implements MWSound::Sound_Output.

Here is the call graph for this function:

void MWSound::OpenAL_Output::startUpdate ( )
virtual

Implements MWSound::Sound_Output.

bool MWSound::OpenAL_Output::streamSound ( DecoderPtr  decoder,
Stream sound 
)
virtual

Implements MWSound::Sound_Output.

Here is the call graph for this function:

bool MWSound::OpenAL_Output::streamSound3D ( DecoderPtr  decoder,
Stream sound,
bool  getLoudnessData 
)
virtual

Implements MWSound::Sound_Output.

Here is the call graph for this function:

size_t MWSound::OpenAL_Output::unloadSound ( Sound_Handle  data)
virtual

Implements MWSound::Sound_Output.

void MWSound::OpenAL_Output::updateCommon ( ALuint  source,
const osg::Vec3f &  pos,
ALfloat  maxdist,
ALfloat  gain,
ALfloat  pitch,
bool  useenv,
bool  is3d 
)
private

Here is the caller graph for this function:

void MWSound::OpenAL_Output::updateListener ( const osg::Vec3f &  pos,
const osg::Vec3f &  atdir,
const osg::Vec3f &  updir,
Environment  env 
)
virtual

Implements MWSound::Sound_Output.

void MWSound::OpenAL_Output::updateSound ( Sound sound)
virtual

Implements MWSound::Sound_Output.

Here is the call graph for this function:

void MWSound::OpenAL_Output::updateStream ( Stream sound)
virtual

Implements MWSound::Sound_Output.

Here is the call graph for this function:

Member Data Documentation

struct { ... } MWSound::OpenAL_Output::AL
struct { ... } MWSound::OpenAL_Output::ALC
bool MWSound::OpenAL_Output::EXT_EFX
SoundVec MWSound::OpenAL_Output::mActiveSounds
private
StreamVec MWSound::OpenAL_Output::mActiveStreams
private
ALCcontext* MWSound::OpenAL_Output::mContext
private
ALuint MWSound::OpenAL_Output::mDefaultEffect
private
ALCdevice* MWSound::OpenAL_Output::mDevice
private
ALuint MWSound::OpenAL_Output::mEffectSlot
private
IDDq MWSound::OpenAL_Output::mFreeSources
private
Environment MWSound::OpenAL_Output::mListenerEnv
private
osg::Vec3f MWSound::OpenAL_Output::mListenerPos
private
std::unique_ptr<StreamThread> MWSound::OpenAL_Output::mStreamThread
private
ALuint MWSound::OpenAL_Output::mWaterEffect
private
ALuint MWSound::OpenAL_Output::mWaterFilter
private
bool MWSound::OpenAL_Output::SOFT_HRTF
bool MWSound::OpenAL_Output::SOFT_source_spatialize

The documentation for this class was generated from the following files: