diff --git a/jack/src/jack_port.rs b/jack/src/jack_port.rs index def59bb5..c37cef47 100644 --- a/jack/src/jack_port.rs +++ b/jack/src/jack_port.rs @@ -2,10 +2,10 @@ use crate::*; #[derive(Debug)] pub struct JackPort { - /// Port name - pub name: Arc, /// Handle to JACK client, for receiving reconnect events. pub jack: Arc>, + /// Port name + pub name: Arc, /// Port handle. pub port: Port, /// List of ports to connect to. diff --git a/tek/src/lib.rs b/tek/src/lib.rs index 9b9eddd0..07991717 100644 --- a/tek/src/lib.rs +++ b/tek/src/lib.rs @@ -98,7 +98,8 @@ impl TekCli { Ok(match self.mode { TekMode::Clock => engine.run(&jack.activate_with(|jack|Tek::new_clock( - jack, self.bpm, self.sync_lead, self.sync_follow))?)?, + jack, self.bpm, self.sync_lead, self.sync_follow, + &midi_froms, &midi_tos))?)?, TekMode::Sequencer => engine.run(&jack.activate_with(|jack|Tek::new_sequencer( jack, self.bpm, self.sync_lead, self.sync_follow, @@ -297,7 +298,7 @@ impl Tek { editing: false.into(), midi_buf: vec![vec![];65536], player: Some(MidiPlayer::new(&jack, "sequencer", Some(&clip), &midi_froms, &midi_tos)?), - ..Self::new_clock(jack, bpm, sync_lead, sync_follow)? + ..Self::new_clock(jack, bpm, sync_lead, sync_follow, midi_froms, midi_tos)? }) } fn new_clock ( @@ -305,12 +306,20 @@ impl Tek { bpm: Option, sync_lead: bool, sync_follow: bool, + midi_froms: &[PortConnection], + midi_tos: &[PortConnection], ) -> Usually { let tek = Self { edn: include_str!("./view_transport.edn").to_string(), jack: jack.clone(), color: ItemPalette::random(), clock: Clock::new(jack, bpm), + midi_ins: vec![ + JackPort::::new(jack, "mi", midi_froms)? + ], + midi_outs: vec![ + JackPort::::new(jack, "mo", midi_tos)? + ], ..Default::default() }; tek.sync_lead(sync_lead);