X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;ds=sidebyside;f=source%2Fstreamer.cpp;h=b90a9d1c73ab3f78b50384c805348ff40b960699;hb=effcac6ee0bc2297eed8f00e0b04f78064090dd6;hp=2c2619bbed8667a93fd54959b0a246733da680e5;hpb=dfec8f9568d11c432038d55f3ceb35d59614777d;p=libs%2Fal.git diff --git a/source/streamer.cpp b/source/streamer.cpp index 2c2619b..b90a9d1 100644 --- a/source/streamer.cpp +++ b/source/streamer.cpp @@ -54,13 +54,13 @@ void Streamer::tick() unsigned freq = snd->get_frequency(); unsigned chunk_size = freq&~0xF; unsigned queued = src.get_buffers_queued(); + vector data(chunk_size); for(unsigned i=queued; i<4; ++i) { - char data[chunk_size]; unsigned pos = 0; while(posread(data+pos, chunk_size-pos); + unsigned len = snd->read(&data[0]+pos, chunk_size-pos); if(len==0) break; pos += len; @@ -69,7 +69,7 @@ void Streamer::tick() if(pos) { Buffer *buf = new Buffer; - buf->data(snd->get_format(), data, pos, freq); + buf->data(snd->get_format(), &data[0], pos, freq); src.queue_buffer(*buf); buffers.push_back(buf); }