diff options
Diffstat (limited to 'mumd/src/audio')
| -rw-r--r-- | mumd/src/audio/input.rs | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/mumd/src/audio/input.rs b/mumd/src/audio/input.rs index 472c161..176747d 100644 --- a/mumd/src/audio/input.rs +++ b/mumd/src/audio/input.rs @@ -2,11 +2,17 @@ use cpal::{InputCallbackInfo, Sample}; use tokio::sync::watch; use log::*; +use crate::state::StatePhase; + pub fn callback<T: Sample>( mut input_sender: futures_channel::mpsc::Sender<f32>, input_volume_receiver: watch::Receiver<f32>, + phase_watcher: watch::Receiver<StatePhase>, ) -> impl FnMut(&[T], &InputCallbackInfo) + Send + 'static { move |data: &[T], _info: &InputCallbackInfo| { + if !matches!(&*phase_watcher.borrow(), StatePhase::Connected(_)) { + return; + } let input_volume = *input_volume_receiver.borrow(); for sample in data .iter() |
