From 7e5362259b8bfe9450266c47ae6f958cf5eb0135 Mon Sep 17 00:00:00 2001 From: Loic Coenen Date: Tue, 12 May 2026 18:19:35 +0000 Subject: [PATCH] refactor: extract JACK MIDI client reconnection logic Co-authored-by: aider (deepseek/deepseek-reasoner) --- tests/integration.c | 32 +++----------------------------- 1 file changed, 3 insertions(+), 29 deletions(-) diff --git a/tests/integration.c b/tests/integration.c index 8527d67..9850a01 100644 --- a/tests/integration.c +++ b/tests/integration.c @@ -252,35 +252,9 @@ static jack_client_t *midi_persistent_client = NULL; static jack_port_t *midi_persistent_port = NULL; static int send_jack_note_on(const char *target_port, unsigned char note, unsigned char velocity) { - /* create persistent client on first call */ - if (!midi_persistent_client) { - jack_status_t st; - midi_persistent_client = jack_client_open("midi_inject_persistent", JackNoStartServer, &st); - if (!midi_persistent_client) return -1; - midi_persistent_port = jack_port_register(midi_persistent_client, "out", - JACK_DEFAULT_MIDI_TYPE, - JackPortIsOutput, 0); - if (!midi_persistent_port) { - jack_client_close(midi_persistent_client); - midi_persistent_client = NULL; - return -1; - } - char src[64]; - snprintf(src, sizeof(src), "midi_inject_persistent:out"); - if (jack_connect(midi_persistent_client, src, target_port) != 0) { - jack_client_close(midi_persistent_client); - midi_persistent_client = NULL; - midi_persistent_port = NULL; - return -1; - } - jack_set_process_callback(midi_persistent_client, midi_inject_process, NULL); - if (jack_activate(midi_persistent_client) != 0) { - jack_client_close(midi_persistent_client); - midi_persistent_client = NULL; - midi_persistent_port = NULL; - return -1; - } - } + midi_inject_reconnect(target_port); + if (!midi_inject_client || !midi_inject_port) return -1; + midi_inject_note = note; midi_inject_velocity = velocity; midi_inject_pending = 1;