pub struct OutputMidiConsumer { /* private fields */ }Expand description
A Send + Sync handle for draining the MIDI a plugin emits (arpeggiators, MPE, MIDI
thru, …) without locking the audio thread.
Obtain one from Plugin::output_midi_handle. The plugin’s audio thread pushes emitted
events into a lock-free bounded queue; this handle pops them from any other thread (e.g. a
UI poll loop) with no lock on either side — the lock-free counterpart to the audio-thread
drain in Plugin::take_output_midi. When the queue is full the oldest event is dropped,
so a host that stops polling can’t grow it without bound.
Available for in-process plugins; the process-isolation path returns None (output MIDI
crosses the boundary in the IPC responses instead).
Implementations§
Trait Implementations§
Source§impl Clone for OutputMidiConsumer
impl Clone for OutputMidiConsumer
Source§fn clone(&self) -> OutputMidiConsumer
fn clone(&self) -> OutputMidiConsumer
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for OutputMidiConsumer
impl RefUnwindSafe for OutputMidiConsumer
impl Send for OutputMidiConsumer
impl Sync for OutputMidiConsumer
impl Unpin for OutputMidiConsumer
impl UnsafeUnpin for OutputMidiConsumer
impl UnwindSafe for OutputMidiConsumer
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