Skip to content

Commit

Permalink
Make audio.jack.autoconnect connect all available ports (#923)
Browse files Browse the repository at this point in the history
  • Loading branch information
derselbst committed Jun 27, 2021
1 parent 95e3693 commit 92089e0
Showing 1 changed file with 16 additions and 5 deletions.
21 changes: 16 additions & 5 deletions src/drivers/fluid_jack.c
Original file line number Diff line number Diff line change
Expand Up @@ -614,14 +614,14 @@ new_fluid_jack_audio_driver2(fluid_settings_t *settings, fluid_audio_func_t func
{
jack_ports = jack_get_ports(client, NULL, NULL, JackPortIsInput | JackPortIsPhysical);

if(jack_ports)
if(jack_ports && jack_ports[0])
{
int err;
int err, o = 0;
int connected = 0;

for(i = 0; jack_ports[i] && i < 2 * dev->num_output_ports; ++i)
for(i = 0; i < 2 * dev->num_output_ports; ++i)
{
err = jack_connect(client, jack_port_name(dev->output_ports[i]), jack_ports[i]);
err = jack_connect(client, jack_port_name(dev->output_ports[i]), jack_ports[o++]);

if(err)
{
Expand All @@ -631,11 +631,17 @@ new_fluid_jack_audio_driver2(fluid_settings_t *settings, fluid_audio_func_t func
{
connected++;
}

if(!jack_ports[o])
{
o = 0;
}
}

o = 0;
for(i = 0; jack_ports[i] && i < 2 * dev->num_fx_ports; ++i)
{
err = jack_connect(client, jack_port_name(dev->fx_ports[i]), jack_ports[i]);
err = jack_connect(client, jack_port_name(dev->fx_ports[i]), jack_ports[o++]);

if(err)
{
Expand All @@ -645,6 +651,11 @@ new_fluid_jack_audio_driver2(fluid_settings_t *settings, fluid_audio_func_t func
{
connected++;
}

if(!jack_ports[o])
{
o = 0;
}
}

jack_free(jack_ports); /* free jack ports array (not the port values!) */
Expand Down

0 comments on commit 92089e0

Please sign in to comment.