INNER CODE UNIT · C
_a_song_reset
tek256/astera · src/audio.c:350
static uint8_t _a_song_reset(a_ctx* ctx, a_song* song) {
song->delta = 0.f;
song->curr = 0.f;
song->sample_offset = 0;
song->curr = 0;
stb_vorbis_seek_start(song->vorbis);
/* uint32_t error = stb_vorbis_get_error(song->vorbis); */
/* Unqueue anything existing */
alSourceStop(song->source);
alSourceUnqueueBuffers(song->source, song->buffer_count, song->buffers);
for (uint8_t i = 0; i < song->buffer_count; ++i) {
uint32_t buffer = song->buffers[i];
float buf_time =
(float)((float)song->buffer_sizes[0] / song->info.sample_rate) * 1000.f;