Struct midir::MidiInput

source ·
pub struct MidiInput { /* private fields */ }
Expand description

An instance of MidiInput is required for anything related to MIDI input. Create one with MidiInput::new.

Implementations§

source§

impl MidiInput

source

pub fn new(client_name: &str) -> Result<Self, InitError>

Creates a new MidiInput object that is required for any MIDI input functionality.

source

pub fn ignore(&mut self, flags: Ignore)

Set flags to decide what kind of messages should be ignored (i.e., filtered out) by this MidiInput. By default, no messages are ignored.

source

pub fn ports(&self) -> MidiInputPorts

Get a collection of all MIDI input ports that midir can connect to. The resulting vector contains one object per port, which you can use to query metadata about the port or connect to it in order to receive MIDI messages.

source

pub fn port_count(&self) -> usize

Get the number of available MIDI input ports that midir can connect to.

source

pub fn port_name(&self, port: &MidiInputPort) -> Result<String, PortInfoError>

Get the name of a specified MIDI input port.

An error will be returned when the port is no longer valid (e.g. the respective device has been disconnected).

source

pub fn connect<F, T: Send>( self, port: &MidiInputPort, port_name: &str, callback: F, data: T ) -> Result<MidiInputConnection<T>, ConnectError<MidiInput>>
where F: FnMut(u64, &[u8], &mut T) + Send + 'static,

Connect to a specified MIDI input port in order to receive messages. For each incoming MIDI message, the provided callback function will be called. The first parameter of the callback function is a timestamp (in microseconds) designating the time since some unspecified point in the past (which will not change during the lifetime of a MidiInputConnection). The second parameter contains the actual bytes of the MIDI message.

Additional data that should be passed whenever the callback is invoked can be specified by data. Use the empty tuple () if you do not want to pass any additional data.

The connection will be kept open as long as the returned MidiInputConnection is kept alive.

The port_name is an additional name that will be assigned to the connection. It is only used by some backends.

An error will be returned when the port is no longer valid (e.g. the respective device has been disconnected).

Trait Implementations§

source§

impl MidiIO for MidiInput

§

type Port = MidiInputPort

Type of an input or output port structure.
source§

fn ports(&self) -> MidiInputPorts

Get a collection of all MIDI input or output ports. The resulting vector contains one object per port, which you can use to query metadata about the port or connect to it.
source§

fn port_count(&self) -> usize

Get the number of available MIDI input or output ports.
source§

fn port_name(&self, port: &MidiInputPort) -> Result<String, PortInfoError>

Get the name of a specified MIDI input or output port. Read more
source§

impl<T: Send> VirtualInput<T> for MidiInput

source§

fn create_virtual<F>( self, port_name: &str, callback: F, data: T ) -> Result<MidiInputConnection<T>, ConnectError<Self>>
where F: FnMut(u64, &[u8], &mut T) + Send + 'static,

Creates a virtual input port. Once it has been created, other applications can connect to this port and send MIDI messages which will be received by this port.

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>,

§

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>,

§

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.