Struct sample::signal::Buffered [] [src]

pub struct Buffered<S, D> { /* fields omitted */ }

Buffers the signal using the given ring buffer.

When next is called, Buffered will first check if the ring buffer is empty. If so, it will completely fill the ring buffer with signal before yielding the next frame.

If next is called and the ring buffer still contains un-yielded values, the next frame will be popped from the front of the ring buffer and immediately returned.

Methods

impl<S, D> Buffered<S, D> where
    S: Signal,
    D: Slice<Element = S::Frame> + SliceMut
[src]

[src]

Produces an iterator yielding the next batch of buffered frames.

The returned iterator returns None once the inner ring buffer becomes exhausted.

If the inner ring buffer is empty when this method is called, the ring buffer will first be filled using Buffered's inner signal before BufferedFrames is returned.

extern crate sample;

use sample::signal::{self, Signal};
use sample::ring_buffer;

fn main() {
    let frames = [[0.1], [0.2], [0.3], [0.4]];
    let signal = signal::from_iter(frames.iter().cloned());
    let ring_buffer = ring_buffer::Bounded::<[[f32; 1]; 2]>::array();
    let mut buffered_signal = signal.buffered(ring_buffer);
    assert_eq!(buffered_signal.next_frames().collect::<Vec<_>>(), vec![[0.1], [0.2]]);
    assert_eq!(buffered_signal.next_frames().collect::<Vec<_>>(), vec![[0.3], [0.4]]);
    assert_eq!(buffered_signal.next_frames().collect::<Vec<_>>(), vec![[0.0], [0.0]]);
}

[src]

Consumes the Buffered signal and returns its inner signal S and bounded ring buffer.

Trait Implementations

impl<S: Clone, D: Clone> Clone for Buffered<S, D>
[src]

[src]

Returns a copy of the value. Read more

1.0.0
[src]

Performs copy-assignment from source. Read more

impl<S, D> Signal for Buffered<S, D> where
    S: Signal,
    D: Slice<Element = S::Frame> + SliceMut
[src]

The Frame type returned by the Signal.

[src]

Yield the next Frame in the Signal. Read more

[src]

A signal that maps one set of frames to another. Read more

[src]

A signal that maps one set of frames to another Read more

[src]

Provides an iterator that yields the sum of the frames yielded by both other and self in lock-step. Read more

[src]

Provides an iterator that yields the product of the frames yielded by both other and self in lock-step. Read more

[src]

Provides an iterator that offsets the amplitude of every channel in each frame of the signal by some sample value and yields the resulting frames. Read more

[src]

Produces an Iterator that scales the amplitude of the sample of each channel in every Frame yielded by self by the given amplitude. Read more

[src]

Produces a new Signal that offsets the amplitude of every Frame in self by the respective amplitudes in each channel of the given amp_frame. Read more

[src]

Produces a new Signal that scales the amplitude of every Frame in self by the respective amplitudes in each channel of the given amp_frame. Read more

[src]

Multiplies the rate at which frames of self are yielded by the given signal. Read more

[src]

Converts the rate at which frames of the Signal are yielded using interpolation. Read more

[src]

Multiplies the rate at which frames of the Signal are yielded by the given value. Read more

[src]

Delays the Signal by the given number of frames. Read more

[src]

Converts a Signal into a type that yields the interleaved Samples. Read more

[src]

Clips the amplitude of each channel in each Frame yielded by self to the given threshold amplitude. Read more

[src]

Create a new Signal that calls the enclosing function on each iteration. Read more

[src]

Moves the Signal into a Bus from which its output may be divided into multiple other Signals in the form of Outputs. Read more

[src]

Converts the Signal into an Iterator that will yield the given number for Frames before returning None. Read more

[src]

Buffers the signal using the given ring buffer. Read more

[src]

An adaptor that yields the RMS of the signal. Read more

[src]

An adaptor that detects and yields the envelope of the signal. Read more

[src]

Borrows a Signal rather than consuming it. Read more