pub struct RawShortMessage(/* private fields */);
Expand description
A short message implemented as a tuple of bytes.
The struct’s size in memory is currently 3 bytes.
§Example
use helgoboss_midi::{
Channel, KeyNumber, MessageMainCategory, MessageSuperType, RawShortMessage, ShortMessage,
ShortMessageFactory, ShortMessageType, U7,
};
let msg = RawShortMessage::note_on(Channel::new(5), KeyNumber::new(64), U7::new(123));
assert_eq!(core::mem::size_of_val(&msg), 3);
assert_eq!(msg.status_byte(), 149);
assert_eq!(msg.data_byte_1().get(), 64);
assert_eq!(msg.data_byte_2().get(), 123);
assert_eq!(msg.r#type(), ShortMessageType::NoteOn);
assert_eq!(msg.super_type(), MessageSuperType::ChannelVoice);
assert_eq!(msg.main_category(), MessageMainCategory::Channel);
assert_eq!(msg.channel(), Some(Channel::new(5)));
assert_eq!(msg.key_number(), Some(KeyNumber::new(64)));
assert_eq!(msg.velocity(), Some(U7::new(123)));
assert_eq!(msg.controller_number(), None);
assert_eq!(msg.control_value(), None);
Trait Implementations§
Source§impl Clone for RawShortMessage
impl Clone for RawShortMessage
Source§fn clone(&self) -> RawShortMessage
fn clone(&self) -> RawShortMessage
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl Debug for RawShortMessage
impl Debug for RawShortMessage
Source§impl From<RawShortMessage> for (u8, U7, U7)
impl From<RawShortMessage> for (u8, U7, U7)
Source§fn from(original: RawShortMessage) -> Self
fn from(original: RawShortMessage) -> Self
Converts to this type from the input type.
Source§impl Hash for RawShortMessage
impl Hash for RawShortMessage
Source§impl PartialEq for RawShortMessage
impl PartialEq for RawShortMessage
Source§impl ShortMessage for RawShortMessage
impl ShortMessage for RawShortMessage
Source§fn status_byte(&self) -> u8
fn status_byte(&self) -> u8
Returns the status byte.
Source§fn data_byte_1(&self) -> U7
fn data_byte_1(&self) -> U7
Returns the first data byte.
Source§fn data_byte_2(&self) -> U7
fn data_byte_2(&self) -> U7
Returns the second data byte.
Source§fn to_bytes(&self) -> (u8, U7, U7)
fn to_bytes(&self) -> (u8, U7, U7)
Returns the status byte and the two data bytes as a tuple. Read more
Source§fn to_other<O: ShortMessageFactory>(&self) -> O
fn to_other<O: ShortMessageFactory>(&self) -> O
Converts this message to a short message of another type.
Source§fn to_structured(&self) -> StructuredShortMessage
fn to_structured(&self) -> StructuredShortMessage
Converts this message to a
StructuredShortMessage
, which is ideal for matching.Source§fn type(&self) -> ShortMessageType
fn type(&self) -> ShortMessageType
Returns the type of this message.
Source§fn super_type(&self) -> MessageSuperType
fn super_type(&self) -> MessageSuperType
Returns the super type of this message.
Source§fn main_category(&self) -> MessageMainCategory
fn main_category(&self) -> MessageMainCategory
Returns the main category of this message.
Source§fn is_note_on(&self) -> bool
fn is_note_on(&self) -> bool
Returns whether this message is a note-on in a practical sense. That means, it also returns
false
if the message type is NoteOn
but the velocity is zero.Source§fn is_note_off(&self) -> bool
fn is_note_off(&self) -> bool
Returns whether this message is a note-off in a practical sense. That means, it also returns
true
if the message type is NoteOn
but the velocity is zero.Source§fn key_number(&self) -> Option<KeyNumber>
fn key_number(&self) -> Option<KeyNumber>
Returns the key number of this message if applicable.
Source§fn controller_number(&self) -> Option<ControllerNumber>
fn controller_number(&self) -> Option<ControllerNumber>
Returns the controller number of this message if applicable.
Source§fn control_value(&self) -> Option<U7>
fn control_value(&self) -> Option<U7>
Returns the control value of this message if applicable.
Source§fn program_number(&self) -> Option<U7>
fn program_number(&self) -> Option<U7>
Returns the program number of this message if applicable.
Source§fn pressure_amount(&self) -> Option<U7>
fn pressure_amount(&self) -> Option<U7>
Returns the pressure amount of this message if applicable.
Source§fn pitch_bend_value(&self) -> Option<U14>
fn pitch_bend_value(&self) -> Option<U14>
Returns the pitch bend value of this message if applicable.
Source§impl ShortMessageFactory for RawShortMessage
impl ShortMessageFactory for RawShortMessage
Source§unsafe fn from_bytes_unchecked(bytes: (u8, U7, U7)) -> Self
unsafe fn from_bytes_unchecked(bytes: (u8, U7, U7)) -> Self
Creates a MIDI message from the given bytes without checking the status byte. The tuple
consists of the status byte, data byte 1 and data byte 2 in exactly this order. Read more
Source§fn from_bytes(bytes: (u8, U7, U7)) -> Result<Self, FromBytesError>
fn from_bytes(bytes: (u8, U7, U7)) -> Result<Self, FromBytesError>
Creates a MIDI message from the given bytes. The tuple consists of the status byte, data
byte 1 and data byte 2 in exactly this order. Read more
Source§fn from_other(msg: &impl ShortMessage) -> Self
fn from_other(msg: &impl ShortMessage) -> Self
Creates this message from a MIDI message of another type.
Source§fn channel_message(
type: ShortMessageType,
channel: Channel,
data_1: U7,
data_2: U7,
) -> Self
fn channel_message( type: ShortMessageType, channel: Channel, data_1: U7, data_2: U7, ) -> Self
Creates a Channel message. Read more
Source§fn system_common_message(type: ShortMessageType, data_1: U7, data_2: U7) -> Self
fn system_common_message(type: ShortMessageType, data_1: U7, data_2: U7) -> Self
Creates a System Common message. Read more
Source§fn system_real_time_message(type: ShortMessageType) -> Self
fn system_real_time_message(type: ShortMessageType) -> Self
Creates a System Real Time message. Read more
Source§fn note_on(channel: Channel, key_number: KeyNumber, velocity: U7) -> Self
fn note_on(channel: Channel, key_number: KeyNumber, velocity: U7) -> Self
Creates a Note On message.
Source§fn note_off(channel: Channel, key_number: KeyNumber, velocity: U7) -> Self
fn note_off(channel: Channel, key_number: KeyNumber, velocity: U7) -> Self
Creates a Note Off message.
Source§fn control_change(
channel: Channel,
controller_number: ControllerNumber,
control_value: U7,
) -> Self
fn control_change( channel: Channel, controller_number: ControllerNumber, control_value: U7, ) -> Self
Creates a Control Change message.
Source§fn program_change(channel: Channel, program_number: U7) -> Self
fn program_change(channel: Channel, program_number: U7) -> Self
Creates a Program Change message.
Source§fn polyphonic_key_pressure(
channel: Channel,
key_number: KeyNumber,
pressure_amount: U7,
) -> Self
fn polyphonic_key_pressure( channel: Channel, key_number: KeyNumber, pressure_amount: U7, ) -> Self
Creates a Polyphonic Key Pressure message.
Source§fn channel_pressure(channel: Channel, pressure_amount: U7) -> Self
fn channel_pressure(channel: Channel, pressure_amount: U7) -> Self
Creates a Channel Pressure message.
Source§fn pitch_bend_change(channel: Channel, pitch_bend_value: U14) -> Self
fn pitch_bend_change(channel: Channel, pitch_bend_value: U14) -> Self
Creates a Pitch Bend Change message.
Source§fn system_exclusive_start() -> Self
fn system_exclusive_start() -> Self
Creates the start of a System Exclusive message.
Source§fn time_code_quarter_frame(frame: TimeCodeQuarterFrame) -> Self
fn time_code_quarter_frame(frame: TimeCodeQuarterFrame) -> Self
Creates a MIDI Time Code Quarter Frame message.
Source§fn song_position_pointer(position: U14) -> Self
fn song_position_pointer(position: U14) -> Self
Creates a Song Position Pointer message.
Source§fn song_select(song_number: U7) -> Self
fn song_select(song_number: U7) -> Self
Creates a Song Select message.
Source§fn tune_request() -> Self
fn tune_request() -> Self
Creates a Tune Request message.
Source§fn system_exclusive_end() -> Self
fn system_exclusive_end() -> Self
Creates the end of a System Exclusive message.
Source§fn timing_clock() -> Self
fn timing_clock() -> Self
Creates a Timing Clock message.
Source§fn active_sensing() -> Self
fn active_sensing() -> Self
Creates an Active Sensing message.
Source§fn system_reset() -> Self
fn system_reset() -> Self
Creates a System Reset message.
impl Copy for RawShortMessage
impl Eq for RawShortMessage
impl StructuralPartialEq for RawShortMessage
Auto Trait Implementations§
impl Freeze for RawShortMessage
impl RefUnwindSafe for RawShortMessage
impl Send for RawShortMessage
impl Sync for RawShortMessage
impl Unpin for RawShortMessage
impl UnwindSafe for RawShortMessage
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more