Merge remote-tracking branch 'cz/newer-midi'
git-svn-id: http://subversion.jackaudio.org/jack/jack2/trunk/jackmp@4291 0c269be4-1314-0410-8aa9-9f06e86f4224
This commit is contained in:
commit
3787c33c21
|
@ -54,6 +54,7 @@ JackALSARawMidiDriver::~JackALSARawMidiDriver()
|
|||
int
|
||||
JackALSARawMidiDriver::Attach()
|
||||
{
|
||||
const char *alias;
|
||||
jack_nframes_t buffer_size = fEngineControl->fBufferSize;
|
||||
jack_port_id_t index;
|
||||
jack_nframes_t latency = buffer_size;
|
||||
|
@ -74,10 +75,15 @@ JackALSARawMidiDriver::Attach()
|
|||
// X: Do we need to deallocate ports?
|
||||
return -1;
|
||||
}
|
||||
alias = input_port->GetAlias();
|
||||
port = fGraphManager->GetPort(index);
|
||||
port->SetAlias(input_port->GetAlias());
|
||||
port->SetAlias(alias);
|
||||
port->SetLatencyRange(JackCaptureLatency, &latency_range);
|
||||
fCapturePortList[i] = index;
|
||||
|
||||
jack_info("JackALSARawMidiDriver::Attach - input port registered "
|
||||
"(name='%s', alias='%s').", name, alias);
|
||||
|
||||
}
|
||||
if (! fEngineControl->fSyncMode) {
|
||||
latency += buffer_size;
|
||||
|
@ -96,10 +102,15 @@ JackALSARawMidiDriver::Attach()
|
|||
// X: Do we need to deallocate ports?
|
||||
return -1;
|
||||
}
|
||||
alias = output_port->GetAlias();
|
||||
port = fGraphManager->GetPort(index);
|
||||
port->SetAlias(output_port->GetAlias());
|
||||
port->SetAlias(alias);
|
||||
port->SetLatencyRange(JackPlaybackLatency, &latency_range);
|
||||
fPlaybackPortList[i] = index;
|
||||
|
||||
jack_info("JackALSARawMidiDriver::Attach - output port registered "
|
||||
"(name='%s', alias='%s').", name, alias);
|
||||
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -28,11 +28,12 @@ using Jack::JackALSARawMidiPort;
|
|||
JackALSARawMidiPort::JackALSARawMidiPort(snd_rawmidi_info_t *info,
|
||||
size_t index)
|
||||
{
|
||||
int card = snd_rawmidi_info_get_card(info);
|
||||
unsigned int device = snd_rawmidi_info_get_device(info);
|
||||
unsigned int subdevice = snd_rawmidi_info_get_subdevice(info);
|
||||
char device_id[32];
|
||||
snprintf(device_id, sizeof(device_id), "hw:%d,%d,%d",
|
||||
snd_rawmidi_info_get_card(info),
|
||||
snd_rawmidi_info_get_device(info),
|
||||
snd_rawmidi_info_get_subdevice(info));
|
||||
snprintf(device_id, sizeof(device_id), "hw:%d,%d,%d", card, device,
|
||||
subdevice);
|
||||
const char *alias_prefix;
|
||||
const char *error_message;
|
||||
snd_rawmidi_t **in;
|
||||
|
@ -76,6 +77,15 @@ JackALSARawMidiPort::JackALSARawMidiPort(snd_rawmidi_info_t *info,
|
|||
func = "snd_rawmidi_params_set_avail_min";
|
||||
goto free_params;
|
||||
}
|
||||
|
||||
// Smallest valid buffer size.
|
||||
code = snd_rawmidi_params_set_buffer_size(rawmidi, params, 32);
|
||||
if (code) {
|
||||
error_message = snd_strerror(code);
|
||||
func = "snd_rawmidi_params_set_buffer_size";
|
||||
goto free_params;
|
||||
}
|
||||
|
||||
code = snd_rawmidi_params_set_no_active_sensing(rawmidi, params, 1);
|
||||
if (code) {
|
||||
error_message = snd_strerror(code);
|
||||
|
@ -95,12 +105,9 @@ JackALSARawMidiPort::JackALSARawMidiPort(snd_rawmidi_info_t *info,
|
|||
func = "snd_rawmidi_poll_descriptors_count";
|
||||
goto close;
|
||||
}
|
||||
snprintf(alias, sizeof(alias), "%s%d", alias_prefix, index);
|
||||
device_name = snd_rawmidi_info_get_subdevice_name(info);
|
||||
if (! strlen(device_name)) {
|
||||
device_name = snd_rawmidi_info_get_name(info);
|
||||
}
|
||||
snprintf(name, sizeof(name), "system:%s %s", device_name, name_suffix);
|
||||
snprintf(alias, sizeof(alias), "%s%d", alias_prefix, index + 1);
|
||||
snprintf(name, sizeof(name), "system:%d-%d %s %d %s", card + 1, device + 1,
|
||||
snd_rawmidi_info_get_name(info), subdevice + 1, name_suffix);
|
||||
return;
|
||||
free_params:
|
||||
snd_rawmidi_params_free(params);
|
||||
|
|
Loading…
Reference in New Issue