aboutsummaryrefslogtreecommitdiffstats
path: root/mumd/src/audio/input.rs
diff options
context:
space:
mode:
authorKapten Z∅∅m <55669224+default-username-852@users.noreply.github.com>2021-02-12 12:59:26 +0100
committerGitHub <noreply@github.com>2021-02-12 12:59:26 +0100
commit89ce7ee42e4d57afaf6b21be46de0bcb98105dcb (patch)
tree39ad331fc870d8994383640bf206138077943c32 /mumd/src/audio/input.rs
parent154a2930b3bbe5ede06648c3a10b8fa4904277f4 (diff)
parentc2adfc88f8aeb4bbdb417897b0cbf44b5b9f7b2c (diff)
downloadmum-89ce7ee42e4d57afaf6b21be46de0bcb98105dcb.tar.gz
Merge pull request #67 from mum-rs/audio_buffer_fix
Fix audio buffer overflowing
Diffstat (limited to 'mumd/src/audio/input.rs')
-rw-r--r--mumd/src/audio/input.rs6
1 files changed, 6 insertions, 0 deletions
diff --git a/mumd/src/audio/input.rs b/mumd/src/audio/input.rs
index deb0fb8..7769ec1 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()