Fix setting playback & capture channel counts for jackd dummy backend.
authorColin Fletcher <colin.m.fletcher@googlemail.com>
Tue, 22 Oct 2013 17:48:26 +0000 (18:48 +0100)
committerColin Fletcher <colin.m.fletcher@googlemail.com>
Wed, 23 Oct 2013 18:29:57 +0000 (19:29 +0100)
Unlike all the other jack backends which allow setting the number of inputs and
outputs with -i & -o, the dummy backend uses -P & -C for this. Make the jackd
command line use these options when the dummy backend is requested with a
specified input or output channel count.

libs/backends/jack/jack_utils.cc

index 0aa0eca9b19d4e4b1a7ce1d48aca9249cecee9c8..ba63977e772d8c9639070729bfa17614fcc8cf28 100644 (file)
@@ -805,21 +805,32 @@ ARDOUR::get_jack_command_line_string (JackCommandLineOptions& options, string& c
                                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));
+               }
+       } else {
+               // jackd dummy backend
+               if (options.input_channels) {
+                       args.push_back ("-C");
+                       args.push_back (to_string (options.input_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 (options.output_channels) {
+                       args.push_back ("-P");
+                       args.push_back (to_string (options.output_channels, std::dec));
+               }
        }
 
        args.push_back ("-r");