aboutsummaryrefslogtreecommitdiffstats
path: root/src/music.rs
diff options
context:
space:
mode:
authorLibravatarLarge Libravatar /dev/urandom <johnfkennedymaili2p>2025-02-15 04:41:57 +0100
committerLibravatarLarge Libravatar /dev/urandom <johnfkennedymaili2p>2025-02-15 04:41:57 +0100
commit70a7a645dcd791ab8c33ee1096a815428e702ae3 (patch)
treeb55a8c276fc98382934aab96a394f23307f68d00 /src/music.rs
parent36ffa2aab8ab998f7ed4c0af1044277dedaad92b (diff)
downloadcosin25-invite-mountainbytes-70a7a645dcd791ab8c33ee1096a815428e702ae3.tar.gz
cosin25-invite-mountainbytes-70a7a645dcd791ab8c33ee1096a815428e702ae3.tar.bz2
cosin25-invite-mountainbytes-70a7a645dcd791ab8c33ee1096a815428e702ae3.tar.lz
cosin25-invite-mountainbytes-70a7a645dcd791ab8c33ee1096a815428e702ae3.zip

feat: loop song

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;
+ }
}
}