diff --git a/crates/app/src/model.rs b/crates/app/src/model.rs index 35e51e2e..1debf914 100644 --- a/crates/app/src/model.rs +++ b/crates/app/src/model.rs @@ -411,18 +411,18 @@ impl Tek { pub(crate) fn device_add (&mut self, index: usize) -> Usually<()> { match index { 0 => self.device_add_sampler(), - 1 => todo!(), + 1 => self.device_add_plugin(), _ => unreachable!(), } } fn device_add_sampler (&mut self) -> Usually<()> { - let jack = self.jack.clone(); - let midi_port = self.track().expect("no active track").player.midi_outs[0].name(); + let name = self.jack.with_client(|c|c.name().to_string()); + let midi = self.track().expect("no active track").player.midi_outs[0].name(); let sampler = if let Ok(sampler) = Sampler::new( - &jack, - &"sampler", - &[PortConnect::exact(format!("tek:{}", midi_port))], // FIXME + &self.jack, + &format!("{}/Sampler", &self.track().expect("no active track").name), + &[PortConnect::exact(format!("{name}:{midi}"))], &[&[], &[]], &[&[], &[]] ) { @@ -436,6 +436,11 @@ impl Tek { Ok(()) } + fn device_add_plugin (&mut self) -> Usually<()> { + todo!(); + Ok(()) + } + pub(crate) fn message_dismiss (&mut self) { self.modal = None; }