From ad8d83289fd94bbdbac80cb10450fffc216130c1 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Fri, 6 Sep 2013 17:21:23 -0400 Subject: [PATCH] add support in JACK backend for specifying number of input and output channels to use --- libs/ardour/ardour/jack_utils.h | 2 ++ libs/ardour/jack_audiobackend.cc | 2 ++ libs/ardour/jack_utils.cc | 10 ++++++++++ 3 files changed, 14 insertions(+) diff --git a/libs/ardour/ardour/jack_utils.h b/libs/ardour/ardour/jack_utils.h index bc94da3361..7565353198 100644 --- a/libs/ardour/ardour/jack_utils.h +++ b/libs/ardour/ardour/jack_utils.h @@ -216,6 +216,8 @@ namespace ARDOUR { uint32_t num_periods; uint32_t period_size; uint32_t samplerate; + uint32_t input_channels; + uint32_t output_channels; uint32_t input_latency; uint32_t output_latency; bool hardware_metering; diff --git a/libs/ardour/jack_audiobackend.cc b/libs/ardour/jack_audiobackend.cc index a95242ba4b..8f3dffa40d 100644 --- a/libs/ardour/jack_audiobackend.cc +++ b/libs/ardour/jack_audiobackend.cc @@ -428,6 +428,8 @@ JACKAudioBackend::setup_jack_startup_command () options.output_device = _target_device; options.input_latency = _target_systemic_input_latency; options.output_latency = _target_systemic_output_latency; + options.input_channels = _target_input_channels; + options.output_channels = _target_output_channels; if (_target_sample_format == FormatInt16) { options.force16_bit = _target_sample_format; } diff --git a/libs/ardour/jack_utils.cc b/libs/ardour/jack_utils.cc index c16270b261..4e2392aced 100644 --- a/libs/ardour/jack_utils.cc +++ b/libs/ardour/jack_utils.cc @@ -789,6 +789,16 @@ ARDOUR::get_jack_command_line_string (const JackCommandLineOptions& options, str } } + 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 (get_jack_audio_driver_supports_setting_period_count (options.driver)) { args.push_back ("-n"); args.push_back (to_string (options.num_periods, std::dec)); -- 2.30.2