diff options
Diffstat (limited to 'src/audio/audio.cc')
-rw-r--r-- | src/audio/audio.cc | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/src/audio/audio.cc b/src/audio/audio.cc index 3bd3c62..308667b 100644 --- a/src/audio/audio.cc +++ b/src/audio/audio.cc @@ -7,6 +7,7 @@ #include "audio/audio.h" #include "audio/buffers.h" #include "audio/pcm.h" +#include "audio/sources.h" #include "sys/sys.h" namespace audio @@ -15,8 +16,6 @@ namespace audio ALCdevice *audio_device = 0; ALCcontext *audio_context = 0; -ALuint source = 0; - void init() { con_print << "^BInitializing audio..."; @@ -37,12 +36,12 @@ void init() alGetError(); Buffers::init(); + + Sources::init(); //con_debug << " device ^B" << alcGetString(audio_device, ALC_DEFAULT_DEVICE_SPECIFIER) << std::endl; - load("ui/chat"); - - // default sound source - alGenSources(1, &source); + load("com/chat"); + load("com/hail"); } void load (const char *name) @@ -54,6 +53,10 @@ void shutdown() { con_print << "^BShutting down audio..."; + Sources::shutdown(); + + Buffers::shutdown(); + if (audio_context) { alcMakeContextCurrent(0); alcDestroyContext(audio_context); @@ -64,14 +67,14 @@ void shutdown() alcCloseDevice(audio_device); audio_device = 0; } - - alDeleteSources(1, &source); } void play(const char *name) { - Buffers::bind(source, std::string(name)); - alSourcePlay(source); + if (Sources::available(0)) { + Buffers::bind(Sources::ui(), std::string(name)); + alSourcePlay(Sources::ui()); + } } } |