Handle sounds of length not exactly a multiple of SOUND_BUFFER_SIZE

This commit is contained in:
Gwilym Kuiper 2021-06-06 14:48:01 +01:00
parent fd3fe32292
commit 0875e640de

View file

@ -115,10 +115,10 @@ impl MixerBuffer {
} }
fn write_channel(&mut self, channel: &SoundChannel) { fn write_channel(&mut self, channel: &SoundChannel) {
let data_to_copy = &channel.data[channel.pos..(channel.pos + SOUND_BUFFER_SIZE)]; let data_to_copy = &channel.data[channel.pos..];
let place_to_write_to = self.get_write_buffer(); let place_to_write_to = self.get_write_buffer();
for (i, v) in data_to_copy.iter().enumerate() { for (i, v) in data_to_copy.iter().take(SOUND_BUFFER_SIZE).enumerate() {
let v = *v as i8; let v = *v as i8;
place_to_write_to[i] = place_to_write_to[i].saturating_add(v); place_to_write_to[i] = place_to_write_to[i].saturating_add(v);
} }