add support in JACK backend for specifying number of input and output channels to use
authorPaul Davis <paul@linuxaudiosystems.com>
Fri, 6 Sep 2013 21:21:23 +0000 (17:21 -0400)
committerPaul Davis <paul@linuxaudiosystems.com>
Fri, 6 Sep 2013 21:21:23 +0000 (17:21 -0400)
libs/ardour/ardour/jack_utils.h
libs/ardour/jack_audiobackend.cc
libs/ardour/jack_utils.cc

index bc94da3361fed01f4b5e9a4cc2c86e13dd3b9a63..7565353198d76a1e99547551b9220fee01ad5c27 100644 (file)
@@ -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;
index a95242ba4b59aa3a99e33fbeca642a4836dff17a..8f3dffa40ddff81650a5a942743e65c5fd161be0 100644 (file)
@@ -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;
        }
index c16270b261727f9b9db9b2cccce9751f43acad2d..4e2392acedce8b9c8a72cf707a18372e7ea5aa20 100644 (file)
@@ -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));