Struct helgoboss_midi::ParameterNumberMessage
source · [−]pub struct ParameterNumberMessage { /* private fields */ }
Expand description
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
ShortMessage
s.
Example
use helgoboss_midi::{
controller_numbers, Channel, ParameterNumberMessage, RawShortMessage, U14,
DataEntryByteOrder::MsbFirst
};
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(MsbFirst);
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, 6, 117)),
Some(control_change(0, 38, 24)),
]
);
Implementations
sourceimpl ParameterNumberMessage
impl ParameterNumberMessage
sourcepub fn non_registered_7_bit(
channel: Channel,
number: U14,
value: U7
) -> ParameterNumberMessage
pub fn non_registered_7_bit(
channel: Channel,
number: U14,
value: U7
) -> ParameterNumberMessage
Creates an NRPN message with a 7-bit data-entry value.
sourcepub fn non_registered_14_bit(
channel: Channel,
number: U14,
value: U14
) -> ParameterNumberMessage
pub fn non_registered_14_bit(
channel: Channel,
number: U14,
value: U14
) -> ParameterNumberMessage
Creates an NRPN message with a 14-bit data-entry value.
sourcepub fn non_registered_decrement(
channel: Channel,
number: U14,
value: U7
) -> ParameterNumberMessage
pub fn non_registered_decrement(
channel: Channel,
number: U14,
value: U7
) -> ParameterNumberMessage
Creates an NRPN message with a data decrement value.
sourcepub fn non_registered_increment(
channel: Channel,
number: U14,
value: U7
) -> ParameterNumberMessage
pub fn non_registered_increment(
channel: Channel,
number: U14,
value: U7
) -> ParameterNumberMessage
Creates an NRPN message with a data increment value.
sourcepub fn registered_7_bit(
channel: Channel,
number: U14,
value: U7
) -> ParameterNumberMessage
pub fn registered_7_bit(
channel: Channel,
number: U14,
value: U7
) -> ParameterNumberMessage
Creates an RPN message with a 7-bit data-entry value.
sourcepub fn registered_14_bit(
channel: Channel,
number: U14,
value: U14
) -> ParameterNumberMessage
pub fn registered_14_bit(
channel: Channel,
number: U14,
value: U14
) -> ParameterNumberMessage
Creates an RPN message with a 14-bit data-entry value.
sourcepub fn registered_decrement(
channel: Channel,
number: U14,
value: U7
) -> ParameterNumberMessage
pub fn registered_decrement(
channel: Channel,
number: U14,
value: U7
) -> ParameterNumberMessage
Creates an RPN message with a data decrement value.
sourcepub fn registered_increment(
channel: Channel,
number: U14,
value: U7
) -> ParameterNumberMessage
pub fn registered_increment(
channel: Channel,
number: U14,
value: U7
) -> ParameterNumberMessage
Creates an RPN message with a data increment value.
sourcepub fn value(&self) -> U14
pub fn value(&self) -> U14
Returns the value of this message.
If it’s just a 7-bit message, the value is <= 127.
sourcepub fn is_14_bit(&self) -> bool
pub fn is_14_bit(&self) -> bool
Returns true
if this message has a 14-bit value and false
if only a 7-bit value.
sourcepub fn is_registered(&self) -> bool
pub fn is_registered(&self) -> bool
Returns whether this message uses a registered parameter number.
sourcepub fn to_short_messages<T: ShortMessageFactory>(
&self,
data_entry_byte_order: DataEntryByteOrder
) -> [Option<T>; 4]
pub fn to_short_messages<T: ShortMessageFactory>(
&self,
data_entry_byte_order: DataEntryByteOrder
) -> [Option<T>; 4]
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 short messages are Some
and the given
data entry byte order is respected. If it has a 7-bit value only, the last short message is
None
.
Trait Implementations
sourceimpl Clone for ParameterNumberMessage
impl Clone for ParameterNumberMessage
sourcefn clone(&self) -> ParameterNumberMessage
fn clone(&self) -> ParameterNumberMessage
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl Debug for ParameterNumberMessage
impl Debug for ParameterNumberMessage
sourceimpl<T: ShortMessageFactory> From<ParameterNumberMessage> for [Option<T>; 4]
impl<T: ShortMessageFactory> From<ParameterNumberMessage> for [Option<T>; 4]
sourcefn from(msg: ParameterNumberMessage) -> Self
fn from(msg: ParameterNumberMessage) -> Self
Converts to this type from the input type.
sourceimpl Hash for ParameterNumberMessage
impl Hash for ParameterNumberMessage
sourceimpl PartialEq<ParameterNumberMessage> for ParameterNumberMessage
impl PartialEq<ParameterNumberMessage> for ParameterNumberMessage
sourcefn eq(&self, other: &ParameterNumberMessage) -> bool
fn eq(&self, other: &ParameterNumberMessage) -> bool
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
sourcefn ne(&self, other: &ParameterNumberMessage) -> bool
fn ne(&self, other: &ParameterNumberMessage) -> bool
This method tests for !=
.
impl Copy for ParameterNumberMessage
impl Eq for ParameterNumberMessage
impl StructuralEq for ParameterNumberMessage
impl StructuralPartialEq for ParameterNumberMessage
Auto Trait Implementations
impl RefUnwindSafe for ParameterNumberMessage
impl Send for ParameterNumberMessage
impl Sync for ParameterNumberMessage
impl Unpin for ParameterNumberMessage
impl UnwindSafe for ParameterNumberMessage
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more