/* audio/audio.h This file is part of the Osirion project and is distributed under the terms of the GNU General Public License version 2 */ #ifndef __INCLUDED_AUDIO_AUDIO_H__ #define __INCLUDED_AUDIO_AUDIO_H__ #include #ifdef _WIN32 #include #endif #include "AL/al.h" #include "AL/alc.h" #include "math/vector3f.h" #include "math/axis.h" /// functions to handle audio namespace audio { /// initialize the audio subsystem void init(); /// shut down the audio subsystem void shutdown(); /// load an audio sample void load(const char *name); /// play a previously loaded audio sample on the ui channel size_t play(const char *name); /// playe a sound from a specific buffer on a specific source size_t play(size_t source_index, size_t buffer_index, float pitch=1.0f, float gain=1.0f); /// play a looping sound on a specified source size_t loop( size_t source_index, const char *name, float pitch=1.0f, float gain=1.0f); /// play a looping sound from a specified buffer on a specified source size_t loop(size_t source_index, size_t buffer_index, float pitch, float gain); /// update source parameters void update_source(size_t source_index, math::Vector3f const & location, math::Vector3f const & velocity, float pitch=1.0f, float gain=1.0f); /// update listener parameters void update_listener(math::Vector3f const &location, math::Axis const &axis, math::Vector3f const & velocity); } #endif // __INCLUDED_AUDIO_AUDIO_H__