Skip to main content

MidiBuffer

Struct MidiBuffer 

Source
pub struct MidiBuffer { /* private fields */ }
Expand description

A buffer for collecting MIDI events during processing.

Uses a fixed-size array to avoid heap allocation during processing. Events should be added in chronological order (by sample_offset).

Implementations§

Source§

impl MidiBuffer

Source

pub fn new() -> Self

Create a new empty MIDI buffer.

Uses std::array::from_fn with MidiEvent::default() since MidiEvent is no longer Copy (due to Box<SysEx>).

Source

pub fn clear(&mut self)

Clear all events from the buffer.

Source

pub fn len(&self) -> usize

Returns the number of events in the buffer.

Source

pub fn is_empty(&self) -> bool

Returns true if the buffer is empty.

Source

pub fn has_overflowed(&self) -> bool

Returns true if any push failed since the last clear.

Source

pub fn push(&mut self, event: MidiEvent) -> bool

Push an event to the buffer.

Returns true if the event was added, false if the buffer is full. Sets the overflow flag when the buffer is exhausted.

Source

pub fn iter(&self) -> impl Iterator<Item = &MidiEvent>

Iterate over events in the buffer.

Source

pub fn as_slice(&self) -> &[MidiEvent]

Get the events as a slice.

This is useful for passing to functions that expect &[MidiEvent].

Trait Implementations§

Source§

impl Debug for MidiBuffer

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for MidiBuffer

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.