diff --git a/src/al-util.h b/src/al-util.h index 9735277..08c126e 100644 --- a/src/al-util.h +++ b/src/al-util.h @@ -133,6 +133,11 @@ namespace Source return buffer; } + inline void clearQueue(Source::ID id) + { + attachBuffer(id, Buffer::ID(0)); + } + inline ALint getInteger(Source::ID id, ALenum prop) { ALint value; diff --git a/src/alstream.cpp b/src/alstream.cpp index 8819579..2b68c0b 100644 --- a/src/alstream.cpp +++ b/src/alstream.cpp @@ -57,8 +57,7 @@ ALStream::~ALStream() { close(); - clearALQueue(); - + AL::Source::clearQueue(alSrc); AL::Source::del(alSrc); for (int i = 0; i < STREAM_BUFS; ++i) @@ -228,7 +227,7 @@ void ALStream::stopStream() void ALStream::startStream(float offset) { - clearALQueue(); + AL::Source::clearQueue(alSrc); preemptPause = false; streamInited = false; @@ -292,15 +291,6 @@ void ALStream::checkStopped() state = Stopped; } -void ALStream::clearALQueue() -{ - /* Unqueue all buffers */ - ALint queuedBufs = AL::Source::getProcBufferCount(alSrc); - - while (queuedBufs--) - AL::Source::unqueueBuffer(alSrc); -} - /* thread func */ void ALStream::streamData() { diff --git a/src/alstream.h b/src/alstream.h index 537733b..a20e350 100644 --- a/src/alstream.h +++ b/src/alstream.h @@ -112,7 +112,6 @@ private: void resumeStream(); void checkStopped(); - void clearALQueue(); /* thread func */ void streamData();