mirror of
https://github.com/italicsjenga/agb.git
synced 2024-12-23 08:11:33 +11:00
Extract iterator to a variable
This commit is contained in:
parent
38868cb269
commit
3b35061a3a
|
@ -422,31 +422,31 @@ impl MixerBuffer {
|
||||||
) {
|
) {
|
||||||
working_buffer.fill(0.into());
|
working_buffer.fill(0.into());
|
||||||
|
|
||||||
for (channel, playback_speed) in
|
let channels = channels
|
||||||
channels
|
.filter(|channel| !channel.is_done)
|
||||||
.filter(|channel| !channel.is_done)
|
.filter_map(|channel| {
|
||||||
.filter_map(|channel| {
|
let playback_speed = if channel.is_stereo {
|
||||||
let playback_speed = if channel.is_stereo {
|
2.into()
|
||||||
2.into()
|
} else {
|
||||||
|
channel.playback_speed
|
||||||
|
};
|
||||||
|
|
||||||
|
if (channel.pos + playback_speed * self.frequency.buffer_size() as u32).floor()
|
||||||
|
>= channel.data.len() as u32
|
||||||
|
{
|
||||||
|
// TODO: This should probably play what's left rather than skip the last bit
|
||||||
|
if channel.should_loop {
|
||||||
|
channel.pos = 0.into();
|
||||||
} else {
|
} else {
|
||||||
channel.playback_speed
|
channel.is_done = true;
|
||||||
};
|
return None;
|
||||||
|
|
||||||
if (channel.pos + playback_speed * self.frequency.buffer_size() as u32).floor()
|
|
||||||
>= channel.data.len() as u32
|
|
||||||
{
|
|
||||||
// TODO: This should probably play what's left rather than skip the last bit
|
|
||||||
if channel.should_loop {
|
|
||||||
channel.pos = 0.into();
|
|
||||||
} else {
|
|
||||||
channel.is_done = true;
|
|
||||||
return None;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Some((channel, playback_speed))
|
Some((channel, playback_speed))
|
||||||
})
|
});
|
||||||
{
|
|
||||||
|
for (channel, playback_speed) in channels {
|
||||||
if channel.volume != 0.into() {
|
if channel.volume != 0.into() {
|
||||||
if channel.is_stereo {
|
if channel.is_stereo {
|
||||||
unsafe {
|
unsafe {
|
||||||
|
|
Loading…
Reference in a new issue