diff options
author | Stijn Buys <ingar@osirion.org> | 2011-04-17 14:21:29 +0000 |
---|---|---|
committer | Stijn Buys <ingar@osirion.org> | 2011-04-17 14:21:29 +0000 |
commit | 09d68d3d1d77d45343e3562c0b5e0cd6816d47d3 (patch) | |
tree | 6b89c585fe8cd8bd49699cdb349566d3f382010e /src/audio/buffers.cc | |
parent | 8264546908f1722b4d0f0e91c42dd791ba8535c4 (diff) |
Initial Ogg Vorbis sounds effect support.
Diffstat (limited to 'src/audio/buffers.cc')
-rw-r--r-- | src/audio/buffers.cc | 32 |
1 files changed, 30 insertions, 2 deletions
diff --git a/src/audio/buffers.cc b/src/audio/buffers.cc index 41103ad..99c9e2e 100644 --- a/src/audio/buffers.cc +++ b/src/audio/buffers.cc @@ -9,6 +9,7 @@ #include "audio/audio.h" #include "audio/buffers.h" #include "audio/pcm.h" +#include "audio/vorbisfile.h" #include "audio/wavfile.h" #include "sys/sys.h" @@ -66,9 +67,36 @@ size_t Buffers::load(std::string name) return 0; } - // load wav file - PCM *pcm = Wav::load(name); + std::string filename; + + PCM *pcm = 0; + + // try the .oga version + if (!pcm) { + filename.assign("sounds/"); + filename.append(name); + filename.append(".oga"); + pcm = Vorbis::load(filename); + } + + // try the .oga version + if (!pcm) { + filename.assign("sounds/"); + filename.append(name); + filename.append(".ogg"); + pcm = Vorbis::load(filename); + } + + // try the .wav version + if (!pcm) { + filename.assign("sounds/"); + filename.append(name); + filename.append(".wav"); + pcm = Wav::load(filename); + } + if (!pcm) { + con_warn << "Could not open sound " << name << std::endl; registry[name] = 0; return 0; } |