aboutsummaryrefslogtreecommitdiffstats
path: root/src/music.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/music.rs')
-rw-r--r--src/music.rs7
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;
+ }
}
}