@Override public void alSourceQueueBuffers(final int source, final int numBuffers, final IntBuffer buffers) { if (buffers.position() != 0) throw new AssertionError(); if (buffers.limit() != numBuffers) throw new AssertionError(); AL10.alSourceQueueBuffers(source, buffers); }
public void alSourceQueueBuffers(int source, int numBuffers, IntBuffer buffers) { if (buffers.position() != 0) throw new AssertionError(); if (buffers.limit() != numBuffers) throw new AssertionError(); AL10.alSourceQueueBuffers(source, buffers); }
/** Blocks until some of the data could be buffered. */ private int fillBuffer (byte[] data, int offset, int length) { int written = Math.min(bufferSize, length); outer: while (true) { int buffers = alGetSourcei(sourceID, AL_BUFFERS_PROCESSED); while (buffers-- > 0) { int bufferID = alSourceUnqueueBuffers(sourceID); if (bufferID == AL_INVALID_VALUE) break; renderedSeconds += secondsPerBuffer; tempBuffer.clear(); tempBuffer.put(data, offset, written).flip(); alBufferData(bufferID, format, tempBuffer, sampleRate); alSourceQueueBuffers(sourceID, bufferID); break outer; } // Wait for buffer to be free. try { Thread.sleep((long)(1000 * secondsPerBuffer)); } catch (InterruptedException ignored) { } } // A buffer underflow will cause the source to stop. if (!isPlaying || alGetSourcei(sourceID, AL_SOURCE_STATE) != AL_PLAYING) { alSourcePlay(sourceID); isPlaying = true; } return written; }
/** Blocks until some of the data could be buffered. */ private int fillBuffer (byte[] data, int offset, int length) { int written = Math.min(bufferSize, length); outer: while (true) { int buffers = alGetSourcei(sourceID, AL_BUFFERS_PROCESSED); while (buffers-- > 0) { int bufferID = alSourceUnqueueBuffers(sourceID); if (bufferID == AL_INVALID_VALUE) break; renderedSeconds += secondsPerBuffer; tempBuffer.clear(); tempBuffer.put(data, offset, written).flip(); alBufferData(bufferID, format, tempBuffer, sampleRate); alSourceQueueBuffers(sourceID, bufferID); break outer; } // Wait for buffer to be free. try { Thread.sleep((long)(1000 * secondsPerBuffer)); } catch (InterruptedException ignored) { } } // A buffer underflow will cause the source to stop. if (!isPlaying || alGetSourcei(sourceID, AL_SOURCE_STATE) != AL_PLAYING) { alSourcePlay(sourceID); isPlaying = true; } return written; }
/** Blocks until some of the data could be buffered. */ private int fillBuffer (byte[] data, int offset, int length) { int written = Math.min(bufferSize, length); outer: while (true) { int buffers = alGetSourcei(sourceID, AL_BUFFERS_PROCESSED); while (buffers-- > 0) { int bufferID = alSourceUnqueueBuffers(sourceID); if (bufferID == AL_INVALID_VALUE) break; renderedSeconds += secondsPerBuffer; tempBuffer.clear(); tempBuffer.put(data, offset, written).flip(); alBufferData(bufferID, format, tempBuffer, sampleRate); alSourceQueueBuffers(sourceID, bufferID); break outer; } // Wait for buffer to be free. try { Thread.sleep((long)(1000 * secondsPerBuffer)); } catch (InterruptedException ignored) { } } // A buffer underflow will cause the source to stop. if (!isPlaying || alGetSourcei(sourceID, AL_SOURCE_STATE) != AL_PLAYING) { alSourcePlay(sourceID); isPlaying = true; } return written; }
/** Blocks until some of the data could be buffered. */ private int fillBuffer (byte[] data, int offset, int length) { int written = Math.min(bufferSize, length); outer: while (true) { int buffers = alGetSourcei(sourceID, AL_BUFFERS_PROCESSED); while (buffers-- > 0) { int bufferID = alSourceUnqueueBuffers(sourceID); if (bufferID == AL_INVALID_VALUE) break; renderedSeconds += secondsPerBuffer; tempBuffer.clear(); tempBuffer.put(data, offset, written).flip(); alBufferData(bufferID, format, tempBuffer, sampleRate); alSourceQueueBuffers(sourceID, bufferID); break outer; } // Wait for buffer to be free. try { Thread.sleep((long)(1000 * secondsPerBuffer)); } catch (InterruptedException ignored) { } } // A buffer underflow will cause the source to stop. if (!isPlaying || alGetSourcei(sourceID, AL_SOURCE_STATE) != AL_PLAYING) { alSourcePlay(sourceID); isPlaying = true; } return written; }
tempBuffer.put(data, offset, written).flip(); alBufferData(bufferID, format, tempBuffer, sampleRate); alSourceQueueBuffers(sourceID, bufferID); length -= written; offset += written; int bufferID = buffers.get(i); alBufferData(bufferID, format, tempBuffer, sampleRate); alSourceQueueBuffers(sourceID, bufferID);
tempBuffer.put(data, offset, written).flip(); alBufferData(bufferID, format, tempBuffer, sampleRate); alSourceQueueBuffers(sourceID, bufferID); length -= written; offset += written; int bufferID = buffers.get(i); alBufferData(bufferID, format, tempBuffer, sampleRate); alSourceQueueBuffers(sourceID, bufferID);
public void update () { if (audio.noDevice) return; if (sourceID == -1) return; boolean end = false; int buffers = alGetSourcei(sourceID, AL_BUFFERS_PROCESSED); while (buffers-- > 0) { int bufferID = alSourceUnqueueBuffers(sourceID); if (bufferID == AL_INVALID_VALUE) break; if (renderedSecondsQueue.size > 0) renderedSeconds = renderedSecondsQueue.pop(); if (end) continue; if (fill(bufferID)) alSourceQueueBuffers(sourceID, bufferID); else end = true; } if (end && alGetSourcei(sourceID, AL_BUFFERS_QUEUED) == 0) { stop(); if (onCompletionListener != null) onCompletionListener.onCompletion(this); } // A buffer underflow will cause the source to stop. if (isPlaying && alGetSourcei(sourceID, AL_SOURCE_STATE) != AL_PLAYING) alSourcePlay(sourceID); }
public void update () { if (audio.noDevice) return; if (sourceID == -1) return; boolean end = false; int buffers = alGetSourcei(sourceID, AL_BUFFERS_PROCESSED); while (buffers-- > 0) { int bufferID = alSourceUnqueueBuffers(sourceID); if (bufferID == AL_INVALID_VALUE) break; if (renderedSecondsQueue.size > 0) renderedSeconds = renderedSecondsQueue.pop(); if (end) continue; if (fill(bufferID)) alSourceQueueBuffers(sourceID, bufferID); else end = true; } if (end && alGetSourcei(sourceID, AL_BUFFERS_QUEUED) == 0) { stop(); if (onCompletionListener != null) onCompletionListener.onCompletion(this); } // A buffer underflow will cause the source to stop. if (isPlaying && alGetSourcei(sourceID, AL_SOURCE_STATE) != AL_PLAYING) alSourcePlay(sourceID); }
public void update () { if (audio.noDevice) return; if (sourceID == -1) return; boolean end = false; int buffers = alGetSourcei(sourceID, AL_BUFFERS_PROCESSED); while (buffers-- > 0) { int bufferID = alSourceUnqueueBuffers(sourceID); if (bufferID == AL_INVALID_VALUE) break; if (renderedSecondsQueue.size > 0) renderedSeconds = renderedSecondsQueue.pop(); if (end) continue; if (fill(bufferID)) alSourceQueueBuffers(sourceID, bufferID); else end = true; } if (end && alGetSourcei(sourceID, AL_BUFFERS_QUEUED) == 0) { stop(); if (onCompletionListener != null) onCompletionListener.onCompletion(this); } // A buffer underflow will cause the source to stop. if (isPlaying && alGetSourcei(sourceID, AL_SOURCE_STATE) != AL_PLAYING) alSourcePlay(sourceID); }
public void update () { if (audio.noDevice) return; if (sourceID == -1) return; boolean end = false; int buffers = alGetSourcei(sourceID, AL_BUFFERS_PROCESSED); while (buffers-- > 0) { int bufferID = alSourceUnqueueBuffers(sourceID); if (bufferID == AL_INVALID_VALUE) break; if (renderedSecondsQueue.size > 0) renderedSeconds = renderedSecondsQueue.pop(); if (end) continue; if (fill(bufferID)) alSourceQueueBuffers(sourceID, bufferID); else end = true; } if (end && alGetSourcei(sourceID, AL_BUFFERS_QUEUED) == 0) { stop(); if (onCompletionListener != null) onCompletionListener.onCompletion(this); } // A buffer underflow will cause the source to stop. if (isPlaying && alGetSourcei(sourceID, AL_SOURCE_STATE) != AL_PLAYING) alSourcePlay(sourceID); }
if (!fill(bufferID)) break; filled = true; alSourceQueueBuffers(sourceID, bufferID);
if (!fill(bufferID)) break; filled = true; alSourceQueueBuffers(sourceID, bufferID);
if (!fill(bufferID)) break; filled = true; alSourceQueueBuffers(sourceID, bufferID);
if (!fill(bufferID)) break; filled = true; alSourceQueueBuffers(sourceID, bufferID);
if (!fill(bufferID)) break; filled = true; alSourceQueueBuffers(sourceID, bufferID);
if (!fill(bufferID)) break; filled = true; alSourceQueueBuffers(sourceID, bufferID);
if (!fill(bufferID)) break; filled = true; alSourceQueueBuffers(sourceID, bufferID);
if (!fill(bufferID)) break; filled = true; alSourceQueueBuffers(sourceID, bufferID);