resolve merge with master (?)

This commit is contained in:
Paul Davis 2013-11-26 10:24:51 -05:00
commit 08371ae2cf
92 changed files with 29015 additions and 64536 deletions

View file

@ -756,6 +756,9 @@ ARDOUR::get_jack_command_line_string (JackCommandLineOptions& options, string& c
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)) {
return false;
}
@ -763,60 +766,71 @@ ARDOUR::get_jack_command_line_string (JackCommandLineOptions& options, string& c
args.push_back ("-d");
args.push_back (command_line_driver_name);
if (options.output_device.empty() && options.input_device.empty()) {
return false;
}
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()) {
if (options.driver != dummy_driver_name) {
if (options.output_device.empty() && options.input_device.empty()) {
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()) {
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);
// playback only
if (options.output_device.empty()) {
return false;
}
args.push_back ("-P");
args.push_back (command_line_output_device_name);
} else {
return false;
} else if (options.output_device.empty()) {
// capture only
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;
}
}
}
if (options.input_channels) {
args.push_back ("-i");
args.push_back (to_string (options.input_channels, std::dec));
}
if (options.input_channels) {
args.push_back ("-i");
args.push_back (to_string (options.input_channels, std::dec));
}
if (options.output_channels) {
args.push_back ("-o");
args.push_back (to_string (options.output_channels, std::dec));
}
if (options.output_channels) {
args.push_back ("-o");
args.push_back (to_string (options.output_channels, std::dec));
}
if (get_jack_audio_driver_supports_setting_period_count (options.driver)) {
args.push_back ("-n");
args.push_back (to_string (options.num_periods, std::dec));
if (get_jack_audio_driver_supports_setting_period_count (options.driver)) {
args.push_back ("-n");
args.push_back (to_string (options.num_periods, std::dec));
}
} else {
// jackd dummy backend
if (options.input_channels) {
args.push_back ("-C");
args.push_back (to_string (options.input_channels, std::dec));
}
if (options.output_channels) {
args.push_back ("-P");
args.push_back (to_string (options.output_channels, std::dec));
}
}
args.push_back ("-r");
@ -836,9 +850,11 @@ ARDOUR::get_jack_command_line_string (JackCommandLineOptions& options, string& c
}
}
if (options.input_device == options.output_device && options.input_device != default_device_name) {
args.push_back ("-d");
args.push_back (command_line_input_device_name);
if (options.driver != dummy_driver_name) {
if (options.input_device == options.output_device && options.input_device != default_device_name) {
args.push_back ("-d");
args.push_back (command_line_input_device_name);
}
}
if (options.driver == alsa_driver_name) {