Trait oddio::Controlled[][src]

pub unsafe trait Controlled<'a>: Sized + 'a {
    type Control;
    unsafe fn make_control(signal: &'a Self) -> Self::Control;
}

A Signal or transformer that can be safely controlled from another thread

Safety

make_control and Control must not permit access to &Self that constitutes a data race with concurrent invocation of any Signal method even if Self: !Sync. For example, an implementation could restrict itself to atomic operations.

Associated Types

type Control[src]

The interface through which this signal can be safely controlled

Loading content...

Required methods

unsafe fn make_control(signal: &'a Self) -> Self::Control[src]

Construct a Control for signal

Safety

Must not be invoked while another Control for this signal exists

Loading content...

Implementors

impl<'a> Controlled<'a> for SpatialScene[src]

type Control = SpatialSceneControl<'a>

impl<'a> Controlled<'a> for Stream[src]

type Control = StreamControl<'a>

impl<'a, T: 'a> Controlled<'a> for Gain<T>[src]

type Control = GainControl<'a, T>

impl<'a, T: 'a> Controlled<'a> for Mixer<T>[src]

type Control = MixerControl<'a, T>

impl<'a, T: 'a> Controlled<'a> for Spatial<T>[src]

type Control = SpatialControl<'a, T>

impl<'a, T: 'a> Controlled<'a> for Speed<T>[src]

type Control = SpeedControl<'a, T>

impl<'a, T: 'a> Controlled<'a> for Stop<T>[src]

type Control = StopControl<'a, T>

Loading content...