Don't fail jackd command line creation for jack dummy backend.
The dummy jackd backend doesn't require a device to be specified, so much of the error checking in get_jack_command_line_string() is irrelevant, if not actively wrong, when the dummy backend is specified. Only perform the checks if the chosen jack backend is not the dummy.
This commit is contained in:
parent
a4b6a4f8bb
commit
ac81ea642e
@ -756,6 +756,9 @@ ARDOUR::get_jack_command_line_string (JackCommandLineOptions& options, string& c
|
|||||||
|
|
||||||
string command_line_driver_name;
|
string command_line_driver_name;
|
||||||
|
|
||||||
|
string command_line_input_device_name;
|
||||||
|
string command_line_output_device_name;
|
||||||
|
|
||||||
if (!get_jack_command_line_audio_driver_name (options.driver, command_line_driver_name)) {
|
if (!get_jack_command_line_audio_driver_name (options.driver, command_line_driver_name)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -763,44 +766,44 @@ ARDOUR::get_jack_command_line_string (JackCommandLineOptions& options, string& c
|
|||||||
args.push_back ("-d");
|
args.push_back ("-d");
|
||||||
args.push_back (command_line_driver_name);
|
args.push_back (command_line_driver_name);
|
||||||
|
|
||||||
if (options.output_device.empty() && options.input_device.empty()) {
|
if (options.driver != dummy_driver_name) {
|
||||||
return false;
|
if (options.output_device.empty() && options.input_device.empty()) {
|
||||||
}
|
|
||||||
|
|
||||||
string command_line_input_device_name;
|
|
||||||
string command_line_output_device_name;
|
|
||||||
|
|
||||||
if (!get_jack_command_line_audio_device_name (options.driver,
|
|
||||||
options.input_device, command_line_input_device_name)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!get_jack_command_line_audio_device_name (options.driver,
|
|
||||||
options.output_device, command_line_output_device_name)) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (options.input_device.empty()) {
|
|
||||||
// playback only
|
|
||||||
if (options.output_device.empty()) {
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
args.push_back ("-P");
|
|
||||||
} else if (options.output_device.empty()) {
|
|
||||||
// capture only
|
if (!get_jack_command_line_audio_device_name (options.driver,
|
||||||
|
options.input_device, command_line_input_device_name)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!get_jack_command_line_audio_device_name (options.driver,
|
||||||
|
options.output_device, command_line_output_device_name)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
if (options.input_device.empty()) {
|
if (options.input_device.empty()) {
|
||||||
return false;
|
// playback only
|
||||||
}
|
if (options.output_device.empty()) {
|
||||||
args.push_back ("-C");
|
return false;
|
||||||
} else if (options.input_device != options.output_device) {
|
}
|
||||||
// capture and playback on two devices if supported
|
|
||||||
if (get_jack_audio_driver_supports_two_devices (options.driver)) {
|
|
||||||
args.push_back ("-C");
|
|
||||||
args.push_back (command_line_input_device_name);
|
|
||||||
args.push_back ("-P");
|
args.push_back ("-P");
|
||||||
args.push_back (command_line_output_device_name);
|
} else if (options.output_device.empty()) {
|
||||||
} else {
|
// capture only
|
||||||
return false;
|
if (options.input_device.empty()) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
args.push_back ("-C");
|
||||||
|
} else if (options.input_device != options.output_device) {
|
||||||
|
// capture and playback on two devices if supported
|
||||||
|
if (get_jack_audio_driver_supports_two_devices (options.driver)) {
|
||||||
|
args.push_back ("-C");
|
||||||
|
args.push_back (command_line_input_device_name);
|
||||||
|
args.push_back ("-P");
|
||||||
|
args.push_back (command_line_output_device_name);
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user