Skip to main content

MidiSysExEvent

Struct MidiSysExEvent 

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

A raw MIDI 1.0 System Exclusive (SysEx) event.

This event contains a pointer to a sysex data buffer. The lifetime of this buffer is only guaranteed to be valid for the duration of the process call (when received from the host) or the try_push call (when sent to the host).

Because of this, if you need to keep the data around for longer, you must copy it to a plugin-owned or host-owned buffer.

Implementations§

Source§

impl MidiSysExEvent

Source

pub const unsafe fn new( time: u32, port_index: u16, data: &[u8], ) -> MidiSysExEvent

§Panics

This will panic if data.len() is larger than u32::MAX.

§Safety

Users must ensure that the buffer lives long enough.

As a plugin, the buffer must live at least until this event is try_pushed into the host’s output event buffer for the last time.

As a host, the buffer must live at least until this event is used for the last time through input buffers passed to a plugin method call (e.g. process or flush).

Source

pub const fn port_index(&self) -> u16

The index of the port this event applies to.

Source

pub const fn set_port_index(&mut self, port_index: u16)

Sets the index of the port this event applies to.

Source

pub const fn with_port_index(self, port_index: u16) -> MidiSysExEvent

Sets the index of the port this event applies to.

Source

pub const fn buffer_ptr(&self) -> *const u8

A raw pointer to the sysex data buffer.

Source

pub const fn buffer_size(&self) -> u32

The size of the sysex data buffer.

Source

pub const unsafe fn data<'a>(&self) -> &'a [u8] ⓘ

§Safety

Users must ensure that the buffer lives long enough.

As a plugin, host-provided buffers are guaranteed to live at least as long as the current method call (e.g. process or flush).

As a host, plugin-provided buffers are guaranteed to live at least as long as this event’s call to OutputEventBuffer::try_push. Note that this means that accessing the data buffer after the current plugin method call has returned is always disallowed.

Source

pub const fn as_raw(&self) -> &clap_event_midi_sysex

Returns a shared reference to the underlying raw, C-FFI compatible event struct.

Source

pub const unsafe fn as_raw_mut(&mut self) -> &mut clap_event_midi_sysex

Returns an exclusive, mutable reference to the raw, C-FFI compatible event struct.

§Safety

This method allows mutating the event header’s fields, most notably type_, size and space_id.

Modifying those fields may trigger Undefined Behavior, as it can make other readers of this event treat it as a type or size that it is actually not.

Source

pub const fn from_raw(raw: &clap_event_midi_sysex) -> MidiSysExEvent

Creates a new event of this type from a reference to a raw, C-FFI compatible event struct.

§Panics

This method will panic if the given event struct’s header doesn’t actually match the expected event type.

Source

pub const fn from_raw_ref(raw: &clap_event_midi_sysex) -> &MidiSysExEvent

Creates a reference to an event of this type from a reference to a raw, C-FFI compatible event struct.

§Panics

This method will panic if the given event struct’s header doesn’t actually match the expected event type.

Source

pub const fn from_raw_mut( raw: &mut clap_event_midi_sysex, ) -> &mut MidiSysExEvent

Creates a mutable reference to a note event of this type from a reference to a raw, C-FFI compatible event struct.

§Panics

This method will panic if the given event struct’s header doesn’t actually match the expected note event type.

Trait Implementations§

Source§

impl AsRef<UnknownEvent> for MidiSysExEvent

Source§

fn as_ref(&self) -> &UnknownEvent

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl Clone for MidiSysExEvent

Source§

fn clone(&self) -> MidiSysExEvent

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Copy for MidiSysExEvent

Source§

impl Debug for MidiSysExEvent

Source§

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

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

impl Eq for MidiSysExEvent

Source§

impl Event for MidiSysExEvent

Source§

const TYPE_ID: u16 = CLAP_EVENT_MIDI_SYSEX

The raw event type identifier for this event type. Read more
Source§

type EventSpace<'a> = CoreEventSpace<'a>

The event space this event type is a part of.
Source§

fn flags(&self) -> EventFlags

Returns the EventFlags of this event.
Source§

fn set_flags(&mut self, flags: EventFlags)

Sets the EventFlags of this event.
Source§

fn with_flags(self, flags: EventFlags) -> Self

Builds an event with the given EventFlags, and returns it. Read more
Source§

fn time(&self) -> u32

Returns the time stamp of this event, in samples.
Source§

fn set_time(&mut self, time: u32)

Sets the time stamp of this event, in samples.
Source§

fn with_time(self, time: u32) -> Self

Builds an event with the given time stamp, and returns it. Read more
Source§

fn header(&self) -> &EventHeader<Self>

Returns a shared, immutable reference to this event’s header.
Source§

fn header_mut(&mut self) -> &mut EventHeader<Self>

Returns an exclusive, mutable reference to this event’s header.
Source§

fn as_unknown(&self) -> &UnknownEvent

Returns this event as a type-erased UnknownEvent.
Source§

fn raw_header(&self) -> &clap_event_header

Returns a shared, immutable reference to the raw, C-FFI compatible representation of this header’s event.
Source§

unsafe fn raw_header_mut(&mut self) -> &mut clap_event_header

Returns an exclusive, mutable reference to the raw, C-FFI compatible representation of this header’s event. Read more
Source§

impl PartialEq for MidiSysExEvent

Source§

fn eq(&self, other: &MidiSysExEvent) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

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

Inequality operator !=. 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> 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> InputEventBuffer for T
where T: Event,

Source§

fn len(&self) -> u32

Returns the number of events in this list.
Source§

fn get(&self, index: u32) -> Option<&UnknownEvent>

Returns the event at the given index. Read more
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> 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 = !

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

fn try_from(value: U) -> Result<T, !>

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.