From 0f0dc1045c224ba36e95c5cef06c3f9561e07599 Mon Sep 17 00:00:00 2001 From: metamuffin Date: Fri, 17 Jan 2025 17:00:35 +0100 Subject: env var to disable audio features --- client/src/audio.rs | 53 +++++++++++++++++++++++++++++++---------------------- 1 file changed, 31 insertions(+), 22 deletions(-) (limited to 'client/src') diff --git a/client/src/audio.rs b/client/src/audio.rs index d90898a..e61f333 100644 --- a/client/src/audio.rs +++ b/client/src/audio.rs @@ -16,6 +16,7 @@ */ use std::{ collections::{HashMap, VecDeque}, + env::var, sync::mpsc::{Receiver, SyncSender, sync_channel}, time::Instant, }; @@ -34,8 +35,8 @@ use log::{debug, info, warn}; use nnnoiseless::{DenoiseState, RnnModel}; pub struct Audio { - _instream: Stream, - _outstream: Stream, + _instream: Option, + _outstream: Option, rx: Receiver>, tx: SyncSender, } @@ -63,26 +64,34 @@ impl Audio { let (mut aenc, rx) = AEncoder::new()?; let (mut adec, tx) = ADecoder::new()?; - let instream = indev.build_input_stream( - &inconf, - move |samples: &[f32], _| { - if let Err(e) = aenc.data(samples) { - warn!("encoder error: {e}"); - } - }, - |err| warn!("audio input error: {err}"), - None, - )?; - let outstream = outdev.build_output_stream( - &outconf, - move |samples: &mut [f32], _| { - if let Err(e) = adec.data(samples) { - warn!("decoder error: {e}"); - } - }, - |err| warn!("audio output error: {err}"), - None, - )?; + let instream = if var("DISABLE_AUDIO_IN").is_err() { + Some(indev.build_input_stream( + &inconf, + move |samples: &[f32], _| { + if let Err(e) = aenc.data(samples) { + warn!("encoder error: {e}"); + } + }, + |err| warn!("audio input error: {err}"), + None, + )?) + } else { + None + }; + let outstream = if var("DISABLE_AUDIO_OUT").is_err() { + Some(outdev.build_output_stream( + &outconf, + move |samples: &mut [f32], _| { + if let Err(e) = adec.data(samples) { + warn!("decoder error: {e}"); + } + }, + |err| warn!("audio output error: {err}"), + None, + )?) + } else { + None + }; Ok(Self { _instream: instream, -- cgit v1.2.3-70-g09d2