summaryrefslogtreecommitdiff
path: root/libs/ardour
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2013-09-06 17:21:23 -0400
committerPaul Davis <paul@linuxaudiosystems.com>2013-09-06 17:21:23 -0400
commitad8d83289fd94bbdbac80cb10450fffc216130c1 (patch)
tree189e48d1393bfeb649e03936e1270f6c21fd598e /libs/ardour
parent0467231d6e9af35d5f8ca5dcb43c3135b805d8fb (diff)
add support in JACK backend for specifying number of input and output channels to use
Diffstat (limited to 'libs/ardour')
-rw-r--r--libs/ardour/ardour/jack_utils.h2
-rw-r--r--libs/ardour/jack_audiobackend.cc2
-rw-r--r--libs/ardour/jack_utils.cc10
3 files changed, 14 insertions, 0 deletions
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));