diff options
Diffstat (limited to 'src/desktop/audio.rs')
-rw-r--r-- | src/desktop/audio.rs | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/src/desktop/audio.rs b/src/desktop/audio.rs index 60d32df..c32433b 100644 --- a/src/desktop/audio.rs +++ b/src/desktop/audio.rs @@ -1,7 +1,7 @@ use rodio::{OutputStream, Sink, Source}; -use crate::io::Audio; use crate::audio::SAMPLE_RATE; +use crate::io::Audio; use std::time::Duration; pub struct RodioAudio { @@ -11,7 +11,10 @@ pub struct RodioAudio { struct RodioWave<W: Iterator + Send + 'static>(W); -impl<W: Iterator + Send + 'static> Iterator for RodioWave<W> where <W as Iterator>::Item: rodio::Sample { +impl<W: Iterator + Send + 'static> Iterator for RodioWave<W> +where + <W as Iterator>::Item: rodio::Sample, +{ type Item = W::Item; fn next(&mut self) -> Option<Self::Item> { @@ -19,7 +22,10 @@ impl<W: Iterator + Send + 'static> Iterator for RodioWave<W> where <W as Iterato } } -impl<W: Iterator + Send + 'static> Source for RodioWave<W> where <W as Iterator>::Item: rodio::Sample { +impl<W: Iterator + Send + 'static> Source for RodioWave<W> +where + <W as Iterator>::Item: rodio::Sample, +{ fn current_frame_len(&self) -> Option<usize> { None } @@ -37,15 +43,13 @@ impl<W: Iterator + Send + 'static> Source for RodioWave<W> where <W as Iterator> } } - impl Audio for RodioAudio { - fn new<S: Iterator<Item = f32> + Send + 'static>(wave: S) -> Self { + fn new<S: Iterator<Item = f32> + Send + 'static>(wave: S) -> Self { let (stream, stream_handle) = OutputStream::try_default().unwrap(); let sink = Sink::try_new(&stream_handle).unwrap(); sink.append(RodioWave(wave)); - RodioAudio { _stream: stream, _sink: sink, |