use crate::AudioBuffer;
pub fn set_all<SampleType>(buf: &mut AudioBuffer<SampleType>, value: SampleType)
where
SampleType: Clone,
{
for sample in buf.slice_mut() {
*sample = value.clone();
}
}
pub fn clear<SampleType>(buf: &mut AudioBuffer<SampleType>)
where
SampleType: num::Zero + Copy,
{
for sample in buf.slice_mut() {
*sample = SampleType::zero();
}
}
#[cfg(test)]
mod test {
use super::*;
#[test]
fn test_set_all() {
let mut buffer = AudioBuffer::from_interleaved(1, &[1.0, 2.0, 3.0, 4.0]);
set_all(&mut buffer, 4.0);
assert_eq!(buffer.channel(0), &[4.0, 4.0, 4.0, 4.0]);
}
#[test]
fn test_clear() {
let mut buffer = AudioBuffer::from_interleaved(1, &[1.0, 2.0, 3.0, 4.0]);
clear(&mut buffer);
assert_eq!(buffer.channel(0), &[0.0, 0.0, 0.0, 0.0]);
}
}