From 7916f7c3074db138a5abc2ba6a13bd4af1101bfd Mon Sep 17 00:00:00 2001 From: Brandon Thomas Date: Tue, 15 Oct 2019 00:55:12 -0400 Subject: [PATCH] this inquires about processed buffer length --- src/ipc.rs | 12 ++++++++++++ src/main.rs | 24 ++++++++++++++++++++---- 2 files changed, 32 insertions(+), 4 deletions(-) diff --git a/src/ipc.rs b/src/ipc.rs index 3338c62765..57f299a9c3 100644 --- a/src/ipc.rs +++ b/src/ipc.rs @@ -64,6 +64,18 @@ impl AudioQueue { }, } } + + pub fn len(&self) -> usize { + match self.queue.read() { + Ok(mut queue) => { + return queue.len(); + }, + Err(_) => { + unreachable!("This shouldn't happen (len)"); + }, + } + } + } pub struct QueueSender { diff --git a/src/main.rs b/src/main.rs index dc4661cb49..af2b59be4b 100644 --- a/src/main.rs +++ b/src/main.rs @@ -187,16 +187,18 @@ fn run_cpal_audio() -> Result<(), failure::Error> { }*/ }, cpal::StreamData::Output { buffer: cpal::UnknownTypeOutputBuffer::F32(mut buffer) } => { + println!("Audio out buffer len: {}", post_process_queue_2.len()); //assert_eq!(id, output_stream_id); //let mut input_fell_behind = None; - match post_process_queue_2.drain_size((buffer.len())) { + let request_size = buffer.len(); + let mut drained = post_process_queue_2.drain_size((request_size)); + match drained { None => { for sample in buffer.iter_mut() { *sample = 0.0; } }, Some(mut drained) => { - println!("Data received"); for (i, sample) in buffer.iter_mut().enumerate() { let val = drained.pop(); *sample = match val { @@ -204,8 +206,22 @@ fn run_cpal_audio() -> Result<(), failure::Error> { println!("Couldn't drain at index: {}", i); 0.0 }, - Some(d) => d * 5.0, - } + Some(d) => d * 2.0, + }; + /*sample = match val { + None => { + println!("Couldn't drain at index: {}", i); + 0.0 + }, + Some(d) => d * 2.0, + }; + *sample = match val { + None => { + println!("Couldn't drain at index: {}", i); + 0.0 + }, + Some(d) => d * 2.0, + };*/ } }, }