1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
use super::{MidiMsg, TimeCode}; /// Passed to [`MidiMsg::from_midi_with_context`](crate::MidiMsg::from_midi_with_context) to allow /// for the capture and use of captured context while reading from a MIDI stream. /// /// This is used to allow for the formation of fully formed `MidiMsg`s when either a running /// status is being employed, or when using 14-bit [`ControlChange`](crate::ControlChange) messages. /// /// It's also used to track the current [`TimeCode`](crate::TimeCode) /// as sent through [`SystemCommonMsg::TimeCodeQuarterFrame`](crate::SystemCommonMsg::TimeCodeQuarterFrame1) /// messages, or [`UniversalRealTimeMsg::TimeCodeFull`](crate::UniversalRealTimeMsg::TimeCodeFull) /// messages. #[derive(Debug, Clone, PartialEq, Default)] pub struct ReceiverContext { pub previous_channel_message: Option<MidiMsg>, pub time_code: TimeCode, } impl ReceiverContext { pub fn new() -> Self { Self::default() } }