Exemple #1
0
static double get_delay(struct ao *ao)
{
    ALint queued;
    unqueue_buffers();
    alGetSourcei(sources[0], AL_BUFFERS_QUEUED, &queued);
    return queued * CHUNK_SAMPLES / (double)ao->samplerate;
}
Exemple #2
0
static float get_delay(struct ao *ao)
{
    ALint queued;
    unqueue_buffers();
    alGetSourcei(sources[0], AL_BUFFERS_QUEUED, &queued);
    return queued * CHUNK_SIZE / 2 / (float)ao->samplerate;
}
Exemple #3
0
		bool Source::stream_buffers (IStreamable * stream) {
			ALint processed = processed_buffer_count();
			bool complete = true;

			// std::cerr << "Processed buffers = " << processed << std::endl;

			AudioError::reset();

			while (processed--) {
				ALuint buffer;
				unqueue_buffers(&buffer, 1);

				bool result = stream->load_next_buffer(this, buffer);

				if (result) {
					queue_buffers(&buffer, 1);
				} else {
					complete = false;
				}
			}

			AudioError::check("Streaming Buffers");

			return complete;
		}
Exemple #4
0
static int get_space(void) {
  ALint queued;
  unqueue_buffers();
  alGetSourcei(sources[0], AL_BUFFERS_QUEUED, &queued);
  queued = NUM_BUF - queued - 3;
  if (queued < 0) return 0;
  return queued * CHUNK_SIZE * ao_data.channels;
}
Exemple #5
0
static int get_space(struct ao *ao)
{
    ALint queued;
    unqueue_buffers();
    alGetSourcei(sources[0], AL_BUFFERS_QUEUED, &queued);
    queued = NUM_BUF - queued - 3;
    if (queued < 0)
        return 0;
    return queued * CHUNK_SIZE * ao->channels.num;
}
Exemple #6
0
/**
 * \brief stop playing and empty buffers (for seeking/pause)
 */
static void reset(struct ao *ao)
{
    alSourceStopv(ao->channels.num, sources);
    unqueue_buffers();
}
Exemple #7
0
/**
 * \brief stop playing and empty buffers (for seeking/pause)
 */
static void reset(void) {
  alSourceStopv(ao_data.channels, sources);
  unqueue_buffers();
}