diff options
feat: loop song
Diffstat (limited to 'src')
| -rw-r--r-- | src/music.rs | 7 | 
1 files changed, 6 insertions, 1 deletions
| diff --git a/src/music.rs b/src/music.rs index d44eabf..0f0f7e7 100644 --- a/src/music.rs +++ b/src/music.rs @@ -12,8 +12,13 @@ impl AudioCallback for Music {    fn callback(&mut self, out_f: &mut [f32]) {      let len = out_f.len(); -    pcm_to_f32pcm(&self.pcm[self.offset..(self.offset + len)], out_f, len); +    let slice = &self.pcm[self.offset..(self.offset + len).min(self.pcm.len() - 1)]; +    let len = slice.len(); +    pcm_to_f32pcm(&slice, out_f, len);      self.offset += len; +    if self.offset > self.pcm.len() { +      self.offset = 0; +    }    }  } |