use crate::*; pub struct SequencerModel { /// State of the JACK transport. transport: TransportModel, /// State of the phrase pool. phrases: Vec>>, /// State of the phrase player. player: MIDIPlayer, } impl HasJack for SequencerModel { fn jack (&self) -> &Arc> { self.transport.jack() } } impl HasClock for SequencerModel { fn clock (&self) -> &Arc { self.transport.clock() } } //impl TransportModelApi for SequencerModel { //fn transport (&self) -> &jack::Transport { //&self.transport.transport() //} //fn metronome (&self) -> bool { //self.transport.metronome() //} //} impl HasPhrases for SequencerModel { fn phrases (&self) -> &Vec>> { &self.phrases } fn phrases_mut (&mut self) -> &mut Vec>> { &mut self.phrases } } impl HasPlayer for SequencerModel { fn player (&self) -> &MIDIPlayer { &self.player } fn player_mut (&mut self) -> &mut MIDIPlayer { &mut self.player } }