Exemplo n.º 1
0
void audio_StaticSource_rewind(audio_StaticSource *source) {
  alSourceRewind(source->common.source);

  if(source->common.state == audio_SourceState_playing) {
    audio_SourceCommon_play(&source->common);
  }
}
Exemplo n.º 2
0
void audio_StreamSource_play(audio_StreamSource *source) {
  switch(source->common.state) {
  case audio_SourceState_stopped:
    prepareToPlay(source);
    // Fall through
  case audio_SourceState_paused:
    audio_SourceCommon_play(&source->common);
    break;
  default:
    break;
  }
}
Exemplo n.º 3
0
static void prepareToPlay(audio_StreamSource *source) {
  if(source->common.state == audio_SourceState_playing) {
    return;
  } else if(source->common.state == audio_SourceState_paused) {
    audio_SourceCommon_play(&source->common);
    return;
  }

  alSourceQueueBuffers(source->common.source, 2, source->buffers);

  if(moduleData.playingStreamCount == moduleData.playingStreamSize) {
    moduleData.playingStreamSize = 2 * moduleData.playingStreamSize;
    moduleData.playingStreams = realloc(moduleData.playingStreams, moduleData.playingStreamSize*sizeof(audio_StreamSource*));
  }

  moduleData.playingStreams[moduleData.playingStreamCount] = source;
  ++moduleData.playingStreamCount;
}
Exemplo n.º 4
0
void audio_StaticSource_play(audio_StaticSource *source) {
  if(audio_SourceCommon_getState(&source->common) != audio_SourceState_playing) {
    audio_SourceCommon_play(&source->common);
  }
}