Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/audio/audio.cc')
-rw-r--r--src/audio/audio.cc23
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());
+ }
}
}