107 _lastBuffer = _buffer;
115 OOAL(alGetSourcei(_source, AL_BUFFERS_PROCESSED, &processed));
120 OOAL(alSourceUnqueueBuffers(_source, 1, &buffer));
121 assert(buffer == _lastBuffer);
122 OOAL(alDeleteBuffers(1,&_lastBuffer));
124 _lastBuffer = _buffer;
196 OOAL(alGetSourcei(_source, AL_BUFFERS_QUEUED, &queued));
201 OOAL(alSourceUnqueueBuffers(_source, 1, &buffer));
204 OOAL(alDeleteBuffers(1,&_buffer));
208 OOAL(alDeleteBuffers(1,&_lastBuffer));
216 if (
nil != _delegate && [_delegate respondsToSelector:
@selector(channel:didFinishPlayingSound:)])
218 [
_delegate channel:
self didFinishPlayingSound:sound];
229 OOAL(alSourceQueueBuffers(_source, 1, &_buffer));
231 if ((error = alGetError()) != AL_NO_ERROR)
233 OOLog(
@"ov.debug",
@"Error %u queueing buffers (_source: %u (%p), _buffer: %u (%p))",
234 error, _source, &_source, _buffer, &_buffer);
238 OOAL(alGetSourcei(_source,AL_SOURCE_STATE,&playing));
239 if (playing != AL_PLAYING)
241 OOAL(alSourcePlay(_source));
242 if ((error = alGetError()) != AL_NO_ERROR)
244 OOLog(
@"ov.debug",
@"Error %d playing source",error);