X-Git-Url: http://git.tdb.fi/?p=libs%2Fal.git;a=blobdiff_plain;f=source%2Fstreamer.cpp;h=bca08a2f06ea02c6ff357e90e42ba40ded4c02a7;hp=b90a9d1c73ab3f78b50384c805348ff40b960699;hb=6cc0f1735a00e8f9eb80ff0c9468fb67205f6d20;hpb=17948408eafd48ea529acd0a70cc45fc5973cb10 diff --git a/source/streamer.cpp b/source/streamer.cpp index b90a9d1..bca08a2 100644 --- a/source/streamer.cpp +++ b/source/streamer.cpp @@ -1,5 +1,5 @@ #include "buffer.h" -#include "sound.h" +#include "sounddecoder.h" #include "streamer.h" using namespace std; @@ -9,7 +9,7 @@ namespace AL { Streamer::Streamer(Source &s): src(s), - snd(0) + decoder(0) { } Streamer::~Streamer() @@ -20,16 +20,16 @@ Streamer::~Streamer() delete *i; } -void Streamer::play(Sound &s) +void Streamer::play(SoundDecoder &s) { - snd = &s; + decoder = &s; tick(); src.play(); } void Streamer::stop() { - snd = 0; + decoder = 0; src.stop(); } @@ -45,13 +45,13 @@ void Streamer::tick() } } - if(!snd) + if(!decoder) return; if(src.get_state()!=PLAYING && src.get_state()!=PAUSED) src.play(); - unsigned freq = snd->get_frequency(); + unsigned freq = decoder->get_frequency(); unsigned chunk_size = freq&~0xF; unsigned queued = src.get_buffers_queued(); vector data(chunk_size); @@ -60,7 +60,7 @@ void Streamer::tick() unsigned pos = 0; while(posread(&data[0]+pos, chunk_size-pos); + unsigned len = decoder->read(&data[0]+pos, chunk_size-pos); if(len==0) break; pos += len; @@ -69,14 +69,14 @@ void Streamer::tick() if(pos) { Buffer *buf = new Buffer; - buf->data(snd->get_format(), &data[0], pos, freq); + buf->data(decoder->get_format(), &data[0], pos, freq); src.queue_buffer(*buf); buffers.push_back(buf); } } - if(snd->eof()) - snd = 0; + if(decoder->eof()) + decoder = 0; } } // namespace AL