Trait Packets

Source
pub trait Packets {
    // Required method
    fn packets(&self) -> PacketsIterator<'_> ;
}
Expand description

Read the individual packets of a message represented with UMP packets.

§Basic Usage

use midi2::prelude::*;

let mut message = flex_data::ProjectName::<Vec<u32>>::new();
message.set_text("Shadows of the Forgotten Cathedral");

let mut packets = message.packets();

assert_eq!(&*packets.next().unwrap(), &[0xD0500101, 0x53686164, 0x6F777320, 0x6F662074][..]);
assert_eq!(&*packets.next().unwrap(), &[0xD0900101, 0x68652046, 0x6F72676F, 0x7474656E][..]);
assert_eq!(&*packets.next().unwrap(), &[0xD0D00101, 0x20436174, 0x68656472, 0x616C0000][..]);
assert_eq!(packets.next(), None);

Packets may be shorter than 128 bytes for certain messages which are represented by shorter packets.

use midi2::prelude::*;

let mut message = sysex7::Sysex7::<Vec<u32>>::new();
message.set_payload((0..20).map(u7::new));

let mut packets = message.packets();

assert_eq!(&*packets.next().unwrap(), &[0x30160001, 0x2030405][..]);
assert_eq!(&*packets.next().unwrap(), &[0x30260607, 0x8090A0B][..]);
assert_eq!(&*packets.next().unwrap(), &[0x30260C0D, 0xE0F1011][..]);
assert_eq!(&*packets.next().unwrap(), &[0x30321213, 0x0][..]);
assert_eq!(packets.next(), None);

Required Methods§

Implementors§

Source§

impl<B: Ump> Packets for ChannelVoice1<B>

Source§

impl<B: Ump> Packets for ChannelVoice2<B>

Source§

impl<B: Ump> Packets for UmpMessage<B>

Source§

impl<B: Ump> Packets for FlexData<B>

Source§

impl<B: Ump> Packets for SystemCommon<B>

Source§

impl<B: Ump> Packets for UmpStream<B>

Source§

impl<B: Ump> Packets for Utility<B>

Source§

impl<B: Ump> Packets for midi2::channel_voice1::ChannelPressure<B>

Source§

impl<B: Ump> Packets for midi2::channel_voice1::ControlChange<B>

Source§

impl<B: Ump> Packets for midi2::channel_voice1::KeyPressure<B>

Source§

impl<B: Ump> Packets for midi2::channel_voice1::NoteOff<B>

Source§

impl<B: Ump> Packets for midi2::channel_voice1::NoteOn<B>

Source§

impl<B: Ump> Packets for PitchBend<B>

Source§

impl<B: Ump> Packets for midi2::channel_voice1::ProgramChange<B>

Source§

impl<B: Ump> Packets for AssignableController<B>

Source§

impl<B: Ump> Packets for AssignablePerNoteController<B>

Source§

impl<B: Ump> Packets for ChannelPitchBend<B>

Source§

impl<B: Ump> Packets for midi2::channel_voice2::ChannelPressure<B>

Source§

impl<B: Ump> Packets for midi2::channel_voice2::ControlChange<B>

Source§

impl<B: Ump> Packets for midi2::channel_voice2::KeyPressure<B>

Source§

impl<B: Ump> Packets for midi2::channel_voice2::NoteOff<B>

Source§

impl<B: Ump> Packets for midi2::channel_voice2::NoteOn<B>

Source§

impl<B: Ump> Packets for PerNoteManagement<B>

Source§

impl<B: Ump> Packets for PerNotePitchBend<B>

Source§

impl<B: Ump> Packets for midi2::channel_voice2::ProgramChange<B>

Source§

impl<B: Ump> Packets for RegisteredController<B>

Source§

impl<B: Ump> Packets for RegisteredPerNoteController<B>

Source§

impl<B: Ump> Packets for RelativeAssignableController<B>

Source§

impl<B: Ump> Packets for RelativeRegisteredController<B>

Source§

impl<B: Ump> Packets for AccompanyingPerformerName<B>

Source§

impl<B: Ump> Packets for ArrangerName<B>

Source§

impl<B: Ump> Packets for ComposerName<B>

Source§

impl<B: Ump> Packets for CompositionName<B>

Source§

impl<B: Ump> Packets for CopyrightNotice<B>

Source§

impl<B: Ump> Packets for LyricistName<B>

Source§

impl<B: Ump> Packets for Lyrics<B>

Source§

impl<B: Ump> Packets for LyricsLanguage<B>

Source§

impl<B: Ump> Packets for MidiClipName<B>

Source§

impl<B: Ump> Packets for PrimaryPerformerName<B>

Source§

impl<B: Ump> Packets for ProjectName<B>

Source§

impl<B: Ump> Packets for PublisherName<B>

Source§

impl<B: Ump> Packets for RecordingDate<B>

Source§

impl<B: Ump> Packets for RecordingLocation<B>

Source§

impl<B: Ump> Packets for Ruby<B>

Source§

impl<B: Ump> Packets for RubyLanguage<B>

Source§

impl<B: Ump> Packets for SetChordName<B>

Source§

impl<B: Ump> Packets for SetKeySignature<B>

Source§

impl<B: Ump> Packets for SetMetronome<B>

Source§

impl<B: Ump> Packets for SetTempo<B>

Source§

impl<B: Ump> Packets for SetTimeSignature<B>

Source§

impl<B: Ump> Packets for UnknownMetadataText<B>

Source§

impl<B: Ump> Packets for UnknownPerformanceText<B>

Source§

impl<B: Ump> Packets for Sysex7<B>

Source§

impl<B: Ump> Packets for Sysex8<B>

Source§

impl<B: Ump> Packets for ActiveSensing<B>

Source§

impl<B: Ump> Packets for Continue<B>

Source§

impl<B: Ump> Packets for Reset<B>

Source§

impl<B: Ump> Packets for SongPositionPointer<B>

Source§

impl<B: Ump> Packets for SongSelect<B>

Source§

impl<B: Ump> Packets for Start<B>

Source§

impl<B: Ump> Packets for Stop<B>

Source§

impl<B: Ump> Packets for TimeCode<B>

Source§

impl<B: Ump> Packets for TimingClock<B>

Source§

impl<B: Ump> Packets for TuneRequest<B>

Source§

impl<B: Ump> Packets for DeviceIdentity<B>

Source§

impl<B: Ump> Packets for EndOfClip<B>

Source§

impl<B: Ump> Packets for EndpointDiscovery<B>

Source§

impl<B: Ump> Packets for EndpointInfo<B>

Source§

impl<B: Ump> Packets for EndpointName<B>

Source§

impl<B: Ump> Packets for FunctionBlockDiscovery<B>

Source§

impl<B: Ump> Packets for FunctionBlockInfo<B>

Source§

impl<B: Ump> Packets for FunctionBlockName<B>

Source§

impl<B: Ump> Packets for ProductInstanceId<B>

Source§

impl<B: Ump> Packets for StartOfClip<B>

Source§

impl<B: Ump> Packets for StreamConfigurationNotification<B>

Source§

impl<B: Ump> Packets for StreamConfigurationRequest<B>

Source§

impl<B: Ump> Packets for Clock<B>

Source§

impl<B: Ump> Packets for DeltaClockstamp<B>

Source§

impl<B: Ump> Packets for DeltaClockstampTpq<B>

Source§

impl<B: Ump> Packets for NoOp<B>

Source§

impl<B: Ump> Packets for Timestamp<B>