From 9b8a14df0e3261f32d3cb73043024609e21a2407 Mon Sep 17 00:00:00 2001 From: unspeaker Date: Sat, 5 Oct 2024 11:49:04 +0300 Subject: [PATCH] provide transport in arranger --- crates/tek_sequencer/src/main_arranger.rs | 7 ++++++- crates/tek_sequencer/src/main_transport.rs | 16 +++++++++++++++- crates/tek_sequencer/src/transport.rs | 17 ----------------- 3 files changed, 21 insertions(+), 19 deletions(-) diff --git a/crates/tek_sequencer/src/main_arranger.rs b/crates/tek_sequencer/src/main_arranger.rs index df1a04c4..7cdf4040 100644 --- a/crates/tek_sequencer/src/main_arranger.rs +++ b/crates/tek_sequencer/src/main_arranger.rs @@ -24,8 +24,13 @@ pub struct ArrangerCli { impl ArrangerCli { /// Run the arranger TUI from CLI arguments. fn run (&self) -> Usually<()> { + let jack = JackClient::Inactive( + Client::new("tek_arranger", ClientOptions::NO_START_SERVER)?.0 + ); let mut arranger = Arranger::new(""); - let mut transport = self.transport.then_some(TransportToolbar::new(None)); + let mut transport = self.transport.then_some( + TransportToolbar::new(Some(jack.transport())) + ); if let Some(name) = self.name.as_ref() { *arranger.name.write().unwrap() = name.clone(); } diff --git a/crates/tek_sequencer/src/main_transport.rs b/crates/tek_sequencer/src/main_transport.rs index f8d2edc6..699a305f 100644 --- a/crates/tek_sequencer/src/main_transport.rs +++ b/crates/tek_sequencer/src/main_transport.rs @@ -1,6 +1,20 @@ include!("lib.rs"); /// Application entrypoint. pub fn main () -> Usually<()> { - Tui::run(TransportToolbar::standalone()?)?; + let jack = JackClient::Inactive( + Client::new("tek_transport", ClientOptions::NO_START_SERVER)?.0 + ); + let mut transport = TransportToolbar::new(Some(jack.transport())); + transport.focused = true; + let transport = Arc::new(RwLock::new(transport)); + transport.write().unwrap().jack = Some( + jack.activate( + &transport.clone(), + |state: &Arc>>, client, scope| { + state.write().unwrap().process(client, scope) + } + )? + ); + Tui::run(transport)?; Ok(()) } diff --git a/crates/tek_sequencer/src/transport.rs b/crates/tek_sequencer/src/transport.rs index 1870bd39..89ff23ea 100644 --- a/crates/tek_sequencer/src/transport.rs +++ b/crates/tek_sequencer/src/transport.rs @@ -27,23 +27,6 @@ pub struct TransportToolbar { } impl TransportToolbar { - pub fn standalone () -> Usually>> where Self: 'static { - let jack = JackClient::Inactive( - Client::new("tek_transport", ClientOptions::NO_START_SERVER)?.0 - ); - let mut transport = Self::new(Some(jack.transport())); - transport.focused = true; - let transport = Arc::new(RwLock::new(transport)); - transport.write().unwrap().jack = Some( - jack.activate( - &transport.clone(), - |state: &Arc>>, client, scope| { - state.write().unwrap().process(client, scope) - } - )? - ); - Ok(transport) - } pub fn new (transport: Option) -> Self { let timebase = Arc::new(Timebase::default()); Self {