pub struct Add<Ta, Tb, Tout>{ /* private fields */ }Expand description
Adds two streams, sample wise.
Output tags are taken from the first stream. Tags from the other input stream is discarded.
To add a constant value to a stream, instead use AddConst.
use rustradio::graph::{Graph, GraphRunner};
use rustradio::blocks::{ConstantSource, SignalSourceFloat, Add, NullSink};
let mut graph = Graph::new();
// Add a constant value. Could just as well use AddConst instead of Add.
let (src1, src1_out) = ConstantSource::new(1.0);
let (src2, src2_out) = SignalSourceFloat::new(44100.0, 1000.0, 1.0);
// Sum up the streams.
let (sum, sum_out) = Add::new(src1_out, src2_out);
graph.add(Box::new(src1));
graph.add(Box::new(src2));
graph.add(Box::new(sum));
// Set up dummy sink.
let sink = NullSink::new(sum_out);
graph.run()?;Implementations§
Source§impl<Ta, Tb, Tout> Add<Ta, Tb, Tout>
impl<Ta, Tb, Tout> Add<Ta, Tb, Tout>
pub fn new( a: ReadStream<Ta>, b: ReadStream<Tb>, ) -> (Self, <WriteStream<Tout> as StreamReadSide>::ReadSide)
Trait Implementations§
Auto Trait Implementations§
impl<Ta, Tb, Tout> Freeze for Add<Ta, Tb, Tout>
impl<Ta, Tb, Tout> RefUnwindSafe for Add<Ta, Tb, Tout>
impl<Ta, Tb, Tout> Send for Add<Ta, Tb, Tout>
impl<Ta, Tb, Tout> Sync for Add<Ta, Tb, Tout>
impl<Ta, Tb, Tout> Unpin for Add<Ta, Tb, Tout>
impl<Ta, Tb, Tout> UnwindSafe for Add<Ta, Tb, Tout>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more