Skip to content

Commit

Permalink
JackFFADODriver: rename midi specific port aliases
Browse files Browse the repository at this point in the history
Change midi port numbering, starting from 1

(cherry picked from commit 1d164ad8d6c82890514e81ee5e1a6bfe5e2dad61)
  • Loading branch information
D. Hartog authored and nedko committed Dec 17, 2024
1 parent b6aa530 commit be394d5
Showing 1 changed file with 36 additions and 12 deletions.
48 changes: 36 additions & 12 deletions linux/firewire/JackFFADODriver.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -442,6 +442,10 @@ int JackFFADODriver::Attach()
char fw_portname[REAL_JACK_PORT_NAME_SIZE];
char jack_portname[REAL_JACK_PORT_NAME_SIZE+1];
char alias[REAL_JACK_PORT_NAME_SIZE + sizeof(ALIAS_NAME) + 100];
unsigned int audio_c_chn;
unsigned int audio_p_chn;
unsigned int midi_c_chn;
unsigned int midi_p_chn;

ffado_driver_t* driver = (ffado_driver_t*)fDriver;

Expand Down Expand Up @@ -505,18 +509,21 @@ int JackFFADODriver::Attach()
}

fCaptureChannels = 0;
audio_c_chn = 0;
midi_c_chn = 0;
for (channel_t chn = 0; chn < driver->capture_nchannels; chn++) {
ffado_streaming_get_capture_stream_name(driver->dev, chn, fw_portname, sizeof(fw_portname));

driver->capture_channels[chn].stream_type = ffado_streaming_get_capture_stream_type(driver->dev, chn);

snprintf(
jack_portname, sizeof(jack_portname),
"%s:capture_%d", fClientControl.fName, (int)chn + 1);
// capture port aliases (jackd1 style port names)
snprintf(alias, sizeof(alias), ALIAS_NAME ":%s_in", fw_portname);

if (driver->capture_channels[chn].stream_type == ffado_stream_type_audio) {
audio_c_chn++;
snprintf(
jack_portname, sizeof(jack_portname),
"%s:capture_%u", fClientControl.fName, audio_c_chn);
// capture port aliases (jackd1 style port names)
snprintf(alias, sizeof(alias), ALIAS_NAME ":%s_in", fw_portname);

printMessage ("Registering audio capture port %s (%s)", jack_portname, alias);
if (fEngine->PortRegister(fClientControl.fRefNum, jack_portname,
JACK_DEFAULT_AUDIO_TYPE,
Expand All @@ -541,6 +548,13 @@ int JackFFADODriver::Attach()
jack_log("JackFFADODriver::Attach fCapturePortList[i] %ld ", port_index);
fCaptureChannels++;
} else if (driver->capture_channels[chn].stream_type == ffado_stream_type_midi) {
midi_c_chn++;
snprintf(
jack_portname, sizeof(jack_portname),
"%s:midi_capture_%u", fClientControl.fName, midi_c_chn);
// capture port aliases (jackd1 style port names)
snprintf(alias, sizeof(alias), ALIAS_NAME ":%s_in", fw_portname);

printMessage ("Registering midi capture port %s (%s)", jack_portname, alias);
if (fEngine->PortRegister(fClientControl.fRefNum, jack_portname,
JACK_DEFAULT_MIDI_TYPE,
Expand Down Expand Up @@ -584,18 +598,21 @@ int JackFFADODriver::Attach()
}

fPlaybackChannels = 0;
audio_p_chn = 0;
midi_p_chn = 0;
for (channel_t chn = 0; chn < driver->playback_nchannels; chn++) {
ffado_streaming_get_playback_stream_name(driver->dev, chn, fw_portname, sizeof(fw_portname));

driver->playback_channels[chn].stream_type = ffado_streaming_get_playback_stream_type(driver->dev, chn);

snprintf(
jack_portname, sizeof(jack_portname),
"%s:playback_%d", fClientControl.fName, (int)chn + 1);
// playback port aliases (jackd1 style port names)
snprintf(alias, sizeof(alias), ALIAS_NAME ":%s_out", fw_portname);

if (driver->playback_channels[chn].stream_type == ffado_stream_type_audio) {
audio_p_chn++;
snprintf(
jack_portname, sizeof(jack_portname),
"%s:playback_%u", fClientControl.fName, audio_p_chn);
// playback port aliases (jackd1 style port names)
snprintf(alias, sizeof(alias), ALIAS_NAME ":%s_out", fw_portname);

printMessage ("Registering audio playback port %s (%s)", jack_portname, alias);
if (fEngine->PortRegister(fClientControl.fRefNum, jack_portname,
JACK_DEFAULT_AUDIO_TYPE,
Expand All @@ -621,6 +638,13 @@ int JackFFADODriver::Attach()
jack_log("JackFFADODriver::Attach fPlaybackPortList[i] %ld ", port_index);
fPlaybackChannels++;
} else if (driver->playback_channels[chn].stream_type == ffado_stream_type_midi) {
midi_p_chn++;
snprintf(
jack_portname, sizeof(jack_portname),
"%s:midi_playback_%u", fClientControl.fName, midi_p_chn);
// playback port aliases (jackd1 style port names)
snprintf(alias, sizeof(alias), ALIAS_NAME ":%s_out", fw_portname);

printMessage ("Registering midi playback port %s (%s)", jack_portname, alias);

if (fEngine->PortRegister(fClientControl.fRefNum, jack_portname,
Expand Down

0 comments on commit be394d5

Please sign in to comment.