aboutsummaryrefslogtreecommitdiffstats
path: root/mumd/src/audio.rs
diff options
context:
space:
mode:
Diffstat (limited to 'mumd/src/audio.rs')
-rw-r--r--mumd/src/audio.rs25
1 files changed, 8 insertions, 17 deletions
diff --git a/mumd/src/audio.rs b/mumd/src/audio.rs
index 88eb601..9dbb61e 100644
--- a/mumd/src/audio.rs
+++ b/mumd/src/audio.rs
@@ -1,7 +1,7 @@
pub mod input;
pub mod output;
-use crate::audio::output::SaturatingAdd;
+use crate::{audio::output::SaturatingAdd, state::StatePhase};
use crate::network::VoiceStreamType;
use cpal::traits::{DeviceTrait, HostTrait, StreamTrait};
@@ -10,25 +10,13 @@ use dasp_frame::Frame;
use dasp_interpolate::linear::Linear;
use dasp_sample::{SignedSample, ToSample, Sample};
use dasp_signal::{self as signal, Signal};
-use futures::Stream;
-use futures::stream::StreamExt;
-use futures::task::{Context, Poll};
+use futures_util::{StreamExt, stream::Stream};
use log::*;
use mumble_protocol::Serverbound;
use mumble_protocol::voice::{VoicePacketPayload, VoicePacket};
use mumlib::config::SoundEffect;
use opus::Channels;
-use std::{
- borrow::Cow,
- collections::{hash_map::Entry, HashMap, VecDeque},
- convert::TryFrom,
- fmt::Debug,
- fs::File,
- future::Future,
- io::Read,
- pin::Pin,
- sync::{Arc, Mutex},
-};
+use std::{borrow::Cow, collections::{hash_map::Entry, HashMap, VecDeque}, convert::TryFrom, fmt::Debug, fs::File, future::Future, io::Read, pin::Pin, sync::{Arc, Mutex}, task::{Context, Poll}};
use strum::IntoEnumIterator;
use strum_macros::EnumIter;
use tokio::sync::watch;
@@ -90,7 +78,7 @@ pub struct Audio {
}
impl Audio {
- pub fn new(input_volume: f32, output_volume: f32) -> Self {
+ pub fn new(input_volume: f32, output_volume: f32, phase_watcher: watch::Receiver<StatePhase>) -> Self {
let sample_rate = SampleRate(SAMPLE_RATE);
let host = cpal::default_host();
@@ -171,7 +159,7 @@ impl Audio {
}
.unwrap();
- let (sample_sender, sample_receiver) = futures::channel::mpsc::channel(1_000_000);
+ let (sample_sender, sample_receiver) = futures_channel::mpsc::channel(1_000_000);
let (input_volume_sender, input_volume_receiver) = watch::channel::<f32>(input_volume);
@@ -181,6 +169,7 @@ impl Audio {
input::callback::<f32>(
sample_sender,
input_volume_receiver,
+ phase_watcher,
),
err_fn,
),
@@ -189,6 +178,7 @@ impl Audio {
input::callback::<i16>(
sample_sender,
input_volume_receiver,
+ phase_watcher,
),
err_fn,
),
@@ -197,6 +187,7 @@ impl Audio {
input::callback::<u16>(
sample_sender,
input_volume_receiver,
+ phase_watcher,
),
err_fn,
),