X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fbuffer.cpp;h=8f5b4aa6daf98dbe2a5cfd3ea61ca0f3f74293ef;hb=97dae493948466867b9f661f45e451711dd6b41b;hp=b2ef01698c948221877c312abfa476ce4f5326fa;hpb=8e69eba7dc53233c169152bdf654f032fcd0629f;p=libs%2Fal.git diff --git a/source/buffer.cpp b/source/buffer.cpp index b2ef016..8f5b4aa 100644 --- a/source/buffer.cpp +++ b/source/buffer.cpp @@ -28,12 +28,32 @@ void Buffer::data(Format fmt, const void *dt, sizei size, sizei freq) alBufferData(id, fmt, dt, size, freq); } +void Buffer::data(const Sound &snd) +{ + data(snd.get_format(), snd.get_data(), snd.get_size(), snd.get_frequency()); +} + void Buffer::load_data(const string &fn) { Sound sound; - sound.load(fn); + sound.load_file(fn); + + data(sound); +} + + +Buffer::Loader::Loader(Buffer &b): + buf(b) +{ + add("sound_data", &Loader::sound_data); +} + +void Buffer::Loader::sound_data(const string &data) +{ + Sound sound; + sound.load_memory(data.data(), data.size()); - data(sound.get_format(), sound.get_data(), sound.get_size(), sound.get_frequency()); + buf.data(sound); } } // namespace AL