Struct helgoboss_midi::ControlChange14BitMessage
source · [−]pub struct ControlChange14BitMessage { /* private fields */ }
Expand description
A 14-bit MIDI Control Change message.
Unlike a ShortMessage
of type ShortMessageType::ControlChange
, this one supports 14-bit
resolution, that means 16384 different values instead of only 128. MIDI systems emit those by
sending 2 short Control Change messages in a row. The ControlChange14BitMessageScanner
can be used to extract such messages from a stream of ShortMessage
s.
Example
use helgoboss_midi::{
controller_numbers, Channel, ControlChange14BitMessage, RawShortMessage, U14,
};
let msg = ControlChange14BitMessage::new(
Channel::new(5),
controller_numbers::CHANNEL_VOLUME,
U14::new(1057),
);
assert_eq!(msg.channel().get(), 5);
assert_eq!(msg.msb_controller_number().get(), 7);
assert_eq!(
msg.lsb_controller_number(),
controller_numbers::CHANNEL_VOLUME_LSB
);
use helgoboss_midi::test_util::control_change;
assert_eq!(msg.value().get(), 1057);
let short_messages: [RawShortMessage; 2] = msg.to_short_messages();
assert_eq!(
short_messages,
[control_change(5, 7, 8), control_change(5, 39, 33)]
);
Implementations
sourceimpl ControlChange14BitMessage
impl ControlChange14BitMessage
sourcepub fn new(
channel: Channel,
msb_controller_number: ControllerNumber,
value: U14
) -> ControlChange14BitMessage
pub fn new(
channel: Channel,
msb_controller_number: ControllerNumber,
value: U14
) -> ControlChange14BitMessage
Creates a 14-bit Control Change message.
Panics
This function panics if msb_controller_number
can’t serve as controller number for
transmitting the most significant byte of a 14-bit Control Change message.
sourcepub fn msb_controller_number(&self) -> ControllerNumber
pub fn msb_controller_number(&self) -> ControllerNumber
Returns the controller number for transmitting the most significant byte of this message.
sourcepub fn lsb_controller_number(&self) -> ControllerNumber
pub fn lsb_controller_number(&self) -> ControllerNumber
Returns the controller number for transmitting the least significant byte of this message.
sourcepub fn to_short_messages<T: ShortMessageFactory>(&self) -> [T; 2]
pub fn to_short_messages<T: ShortMessageFactory>(&self) -> [T; 2]
Translates this message into 2 short messages, which need to be sent in a row in order to encode this 14-bit Control Change message.
Trait Implementations
sourceimpl Clone for ControlChange14BitMessage
impl Clone for ControlChange14BitMessage
sourcefn clone(&self) -> ControlChange14BitMessage
fn clone(&self) -> ControlChange14BitMessage
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 ControlChange14BitMessage
impl Debug for ControlChange14BitMessage
sourceimpl<T: ShortMessageFactory> From<ControlChange14BitMessage> for [T; 2]
impl<T: ShortMessageFactory> From<ControlChange14BitMessage> for [T; 2]
sourcefn from(msg: ControlChange14BitMessage) -> Self
fn from(msg: ControlChange14BitMessage) -> Self
Converts to this type from the input type.
sourceimpl Hash for ControlChange14BitMessage
impl Hash for ControlChange14BitMessage
sourceimpl PartialEq<ControlChange14BitMessage> for ControlChange14BitMessage
impl PartialEq<ControlChange14BitMessage> for ControlChange14BitMessage
sourcefn eq(&self, other: &ControlChange14BitMessage) -> bool
fn eq(&self, other: &ControlChange14BitMessage) -> bool
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
sourcefn ne(&self, other: &ControlChange14BitMessage) -> bool
fn ne(&self, other: &ControlChange14BitMessage) -> bool
This method tests for !=
.
impl Copy for ControlChange14BitMessage
impl Eq for ControlChange14BitMessage
impl StructuralEq for ControlChange14BitMessage
impl StructuralPartialEq for ControlChange14BitMessage
Auto Trait Implementations
impl RefUnwindSafe for ControlChange14BitMessage
impl Send for ControlChange14BitMessage
impl Sync for ControlChange14BitMessage
impl Unpin for ControlChange14BitMessage
impl UnwindSafe for ControlChange14BitMessage
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