1 #ifndef GAME_SOUND_OPENAL_OUTPUT_H
2 #define GAME_SOUND_OPENAL_OUTPUT_H
29 }
ALC = {
false,
false};
34 typedef std::deque<ALuint>
IDDq;
53 void initCommon2D(ALuint source,
const osg::Vec3f &pos, ALfloat gain, ALfloat pitch,
bool loop,
bool useenv);
54 void initCommon3D(ALuint source,
const osg::Vec3f &pos, ALfloat mindist, ALfloat maxdist, ALfloat gain, ALfloat pitch,
bool loop,
bool useenv);
56 void updateCommon(ALuint source,
const osg::Vec3f &pos, ALfloat maxdist, ALfloat gain, ALfloat pitch,
bool useenv,
bool is3d);
62 virtual std::vector<std::string>
enumerate();
63 virtual bool init(
const std::string &devname,
const std::string &hrtfname,
HrtfMode hrtfmode);
69 virtual std::pair<Sound_Handle,size_t>
loadSound(
const std::string &fname);
98 #ifndef DEFAULT_OUTPUT
99 #define DEFAULT_OUTPUT(x) ::MWSound::OpenAL_Output((x))
virtual float getStreamLoudness(Stream *sound)
Definition: openal_output.cpp:1348
void * Sound_Handle
Definition: sound_output.hpp:15
virtual double getStreamDelay(Stream *sound)
Definition: openal_output.cpp:1333
virtual bool isStreamPlaying(Stream *sound)
Definition: openal_output.cpp:1356
Definition: openal_output.hpp:21
struct MWSound::OpenAL_Output::@4 AL
osg::Vec3f mListenerPos
Definition: openal_output.hpp:42
Environment mListenerEnv
Definition: openal_output.hpp:43
virtual void updateStream(Stream *sound)
Definition: openal_output.cpp:1364
virtual bool playSound(Sound *sound, Sound_Handle data, float offset)
Definition: openal_output.cpp:1132
OpenAL_Output(const OpenAL_Output &rhs)
virtual void finishSound(Sound *sound)
Definition: openal_output.cpp:1211
virtual size_t unloadSound(Sound_Handle data)
Definition: openal_output.cpp:1002
virtual std::vector< std::string > enumerate()
Definition: openal_output.cpp:570
MWSound::Sound Sound
Definition: soundmanager.hpp:56
ALCdevice * mDevice
Definition: openal_output.hpp:23
ALuint mWaterFilter
Definition: openal_output.hpp:45
virtual ~OpenAL_Output()
Definition: openal_output.cpp:1490
void initCommon3D(ALuint source, const osg::Vec3f &pos, ALfloat mindist, ALfloat maxdist, ALfloat gain, ALfloat pitch, bool loop, bool useenv)
Definition: openal_output.cpp:1070
virtual bool playSound3D(Sound *sound, Sound_Handle data, float offset)
Definition: openal_output.cpp:1171
ALCcontext * mContext
Definition: openal_output.hpp:24
virtual std::pair< Sound_Handle, size_t > loadSound(const std::string &fname)
Definition: openal_output.cpp:945
virtual bool init(const std::string &devname, const std::string &hrtfname, HrtfMode hrtfmode)
Definition: openal_output.cpp:587
virtual void finishUpdate()
Definition: openal_output.cpp:1381
bool SOFT_HRTF
Definition: openal_output.hpp:28
struct MWSound::OpenAL_Output::@3 ALC
virtual void updateSound(Sound *sound)
Definition: openal_output.cpp:1239
virtual void resumeSounds(int types)
Definition: openal_output.cpp:1457
virtual void pauseSounds(int types)
Definition: openal_output.cpp:1434
virtual void finishStream(Stream *sound)
Definition: openal_output.cpp:1312
std::vector< Stream * > StreamVec
Definition: openal_output.hpp:39
ALuint mEffectSlot
Definition: openal_output.hpp:48
virtual void startUpdate()
Definition: openal_output.cpp:1376
IDDq mFreeSources
Definition: openal_output.hpp:35
Definition: openal_output.cpp:312
virtual void deinit()
Definition: openal_output.cpp:831
virtual bool isSoundPlaying(Sound *sound)
Definition: openal_output.cpp:1227
void initCommon2D(ALuint source, const osg::Vec3f &pos, ALfloat gain, ALfloat pitch, bool loop, bool useenv)
Definition: openal_output.cpp:1031
StreamVec mActiveStreams
Definition: openal_output.hpp:40
HrtfMode
Definition: sound_output.hpp:22
virtual bool streamSound3D(DecoderPtr decoder, Stream *sound, bool getLoudnessData)
Definition: openal_output.cpp:1281
virtual void updateListener(const osg::Vec3f &pos, const osg::Vec3f &atdir, const osg::Vec3f &updir, Environment env)
Definition: openal_output.cpp:1387
SoundVec mActiveSounds
Definition: openal_output.hpp:38
virtual double getStreamOffset(Stream *sound)
Definition: openal_output.cpp:1340
Definition: soundmanagerimp.hpp:45
bool EXT_EFX
Definition: openal_output.hpp:27
Definition: sound_output.hpp:28
void updateCommon(ALuint source, const osg::Vec3f &pos, ALfloat maxdist, ALfloat gain, ALfloat pitch, bool useenv, bool is3d)
Definition: openal_output.cpp:1111
std::vector< Sound * > SoundVec
Definition: openal_output.hpp:37
std::shared_ptr< Sound_Decoder > DecoderPtr
Definition: soundmanager.hpp:19
virtual void setHrtf(const std::string &hrtfname, HrtfMode hrtfmode)
Definition: openal_output.cpp:886
ALuint mDefaultEffect
Definition: openal_output.hpp:47
bool SOFT_source_spatialize
Definition: openal_output.hpp:31
ALuint mWaterEffect
Definition: openal_output.hpp:46
virtual bool streamSound(DecoderPtr decoder, Stream *sound)
Definition: openal_output.cpp:1250
std::deque< ALuint > IDDq
Definition: openal_output.hpp:34
virtual std::vector< std::string > enumerateHrtf()
Definition: openal_output.cpp:864
Environment
Definition: soundmanagerimp.hpp:35
std::unique_ptr< StreamThread > mStreamThread
Definition: openal_output.hpp:50
OpenAL_Output & operator=(const OpenAL_Output &rhs)
Definition: sound.hpp:104