Enum TrackEventKind

Source
pub enum TrackEventKind<'a> {
    Midi {
        channel: u4,
        message: MidiMessage,
    },
    SysEx(&'a [u8]),
    Escape(&'a [u8]),
    Meta(MetaMessage<'a>),
}
Expand description

Represents the different kinds of SMF events and their associated data.

It notably does not include the timing of the event; the TrackEvent struct is responsible for this.

Variants§

§

Midi

A message associated to a MIDI channel carrying musical data.

Usually, the bulk of MIDI data is these kind of messages.

Fields

§channel: u4

The MIDI channel that this event is associated with.

§message: MidiMessage

The MIDI message type and associated data.

§

SysEx(&'a [u8])

A System Exclusive message, carrying arbitrary data.

The data bytes included here do not include the implicit 0xF0 prefix.

Usually SysEx events end with an 0xF7 byte, but SysEx events that are split into several small packets may only contain the 0xF7 byte in the last packet fragment.

§

Escape(&'a [u8])

An escape sequence, intended to send arbitrary data to the MIDI synthesizer.

§

Meta(MetaMessage<'a>)

A meta-message, giving extra information for correct playback, like tempo, song name, lyrics, etc…

Implementations§

Source§

impl<'a> TrackEventKind<'a>

Source

pub fn as_live_event(&self) -> Option<LiveEvent<'a>>

Lossy conversion from a track event to a live event.

Only channel MIDI messages and not-split SysEx messages can be converted. Meta messages and arbitrary escapes yield None when converted.

Source

pub fn to_static(&self) -> TrackEventKind<'static>

Remove any lifetimed data from this event to create a TrackEventKind with 'static lifetime that can be stored and moved everywhere, solving borrow checker issues.

WARNING: Any bytestrings in the input will be replaced by empty bytestrings.

Trait Implementations§

Source§

impl<'a> Clone for TrackEventKind<'a>

Source§

fn clone(&self) -> TrackEventKind<'a>

Returns a duplicate of the value. Read more
1.0.0 · Source§

const fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<'a> Debug for TrackEventKind<'a>

Source§

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

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

impl<'a> Hash for TrackEventKind<'a>

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl<'a> PartialEq for TrackEventKind<'a>

Source§

fn eq(&self, other: &TrackEventKind<'a>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<'a> Copy for TrackEventKind<'a>

Source§

impl<'a> Eq for TrackEventKind<'a>

Source§

impl<'a> StructuralPartialEq for TrackEventKind<'a>

Auto Trait Implementations§

§

impl<'a> Freeze for TrackEventKind<'a>

§

impl<'a> RefUnwindSafe for TrackEventKind<'a>

§

impl<'a> Send for TrackEventKind<'a>

§

impl<'a> Sync for TrackEventKind<'a>

§

impl<'a> Unpin for TrackEventKind<'a>

§

impl<'a> UnwindSafe for TrackEventKind<'a>

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.