[][src]Struct helgoboss_midi::ParameterNumberMessage

pub struct ParameterNumberMessage { /* fields omitted */ }

A MIDI Parameter Number message, either registered (RPN) or non-registered (NRPN).

MIDI systems emit those by sending up to 4 short Control Change messages in a row. The ParameterNumberMessageScanner can be used to extract such messages from a stream of ShortMessages.

Example

use helgoboss_midi::{
    controller_numbers, Channel, ParameterNumberMessage, RawShortMessage, U14,
};

let msg =
    ParameterNumberMessage::registered_14_bit(Channel::new(0), U14::new(420), U14::new(15000));
assert_eq!(msg.channel().get(), 0);
assert_eq!(msg.number().get(), 420);
assert_eq!(msg.value().get(), 15000);
assert!(msg.is_registered());
assert!(msg.is_14_bit());
let short_messages: [Option<RawShortMessage>; 4] = msg.to_short_messages();
use helgoboss_midi::test_util::control_change;
assert_eq!(
    short_messages,
    [
        Some(control_change(0, 101, 3)),
        Some(control_change(0, 100, 36)),
        Some(control_change(0, 38, 24)),
        Some(control_change(0, 6, 117)),
    ]
);

Implementations

impl ParameterNumberMessage[src]

pub fn non_registered_7_bit(
    channel: Channel,
    number: U14,
    value: U7
) -> ParameterNumberMessage
[src]

Creates an NRPN message with a 7-bit value.

pub fn non_registered_14_bit(
    channel: Channel,
    number: U14,
    value: U14
) -> ParameterNumberMessage
[src]

Creates an NRPN message with a 14-bit value.

pub fn registered_7_bit(
    channel: Channel,
    number: U14,
    value: U7
) -> ParameterNumberMessage
[src]

Creates an RPN message with a 7-bit value.

pub fn registered_14_bit(
    channel: Channel,
    number: U14,
    value: U14
) -> ParameterNumberMessage
[src]

Creates an RPN message with a 14-bit value.

pub fn channel(&self) -> Channel[src]

Returns the channel of this message.

pub fn number(&self) -> U14[src]

Returns the parameter number of this message.

pub fn value(&self) -> U14[src]

Returns the value of this message.

If it's just a 7-bit message, the value is <= 127.

pub fn is_14_bit(&self) -> bool[src]

Returns true if this message has a 14-bit value and false if only a 7-bit value.

pub fn is_registered(&self) -> bool[src]

Returns whether this message uses a registered parameter number.

pub fn to_short_messages<T: ShortMessageFactory>(&self) -> [Option<T>; 4][src]

Translates this message into up to 4 short Control Change messages, which need to be sent in a row in order to encode this (N)RPN message.

If this message has a 14-bit value, all returned messages are Some. If it has a 7-bit value only, the last one is None.

Trait Implementations

impl Clone for ParameterNumberMessage[src]

impl Copy for ParameterNumberMessage[src]

impl Debug for ParameterNumberMessage[src]

impl Eq for ParameterNumberMessage[src]

impl<T: ShortMessageFactory> From<ParameterNumberMessage> for [Option<T>; 4][src]

impl Hash for ParameterNumberMessage[src]

impl PartialEq<ParameterNumberMessage> for ParameterNumberMessage[src]

impl StructuralEq for ParameterNumberMessage[src]

impl StructuralPartialEq for ParameterNumberMessage[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.