diff --git a/src/connection_manager.rs b/src/connection_manager.rs index 1678cb4..66b2e84 100644 --- a/src/connection_manager.rs +++ b/src/connection_manager.rs @@ -14,7 +14,6 @@ impl ConnectionManager { notification_rx: broadcast::Receiver, jack_client_name: String, ) -> Result { - // Create a dedicated client for making connections let (jack_client, _status) = jack::Client::new( &format!("{}_connector", jack_client_name), jack::ClientOptions::NO_START_SERVER, @@ -42,7 +41,6 @@ impl ConnectionManager { async fn restore_connections(&self) { let state = self.state_rx.borrow(); - // MIDI and audio inputs: connect FROM external TO our port for external_port in &state.connections.midi_in { let our_port = format!("{}:midi_in", self.jack_client_name); let result = self @@ -65,7 +63,6 @@ impl ConnectionManager { } } - // Audio output: connect FROM our port TO external for external_port in &state.connections.audio_out { let our_port = format!("{}:audio_out", self.jack_client_name); let result = self @@ -76,5 +73,16 @@ impl ConnectionManager { Err(_) => log::debug!("Could not connect {} -> {}", our_port, external_port), } } + + for external_port in &state.connections.click_track_out { + let our_port = format!("{}:click_track", self.jack_client_name); + let result = self + .jack_client + .connect_ports_by_name(&our_port, external_port); + match result { + Ok(_) => log::info!("Connected {} -> {}", our_port, external_port), + Err(_) => log::debug!("Could not connect {} -> {}", our_port, external_port), + } + } } } diff --git a/src/state.rs b/src/state.rs index f75fafc..ff0cb7b 100644 --- a/src/state.rs +++ b/src/state.rs @@ -10,6 +10,7 @@ pub struct ConnectionState { pub midi_in: Vec, pub audio_in: Vec, pub audio_out: Vec, + pub click_track_out: Vec, } impl Default for State { @@ -19,6 +20,7 @@ impl Default for State { midi_in: Vec::new(), audio_in: Vec::new(), audio_out: Vec::new(), + click_track_out: Vec::new(), }, } } diff --git a/src/state_manager.rs b/src/state_manager.rs index 795109f..6c96d34 100644 --- a/src/state_manager.rs +++ b/src/state_manager.rs @@ -66,6 +66,7 @@ impl StateManager { "midi_in" => &mut connections.midi_in, "audio_in" => &mut connections.audio_in, "audio_out" => &mut connections.audio_out, + "click_track" => &mut connections.click_track_out, _ => { log::warn!("Unknown port: {}", our_port_name); return Ok(());