+ if (!plug) {
+ // we don't know.
+ // but ardour always connects all buffers, so we're good
+ return 0;
+ }
+ switch (value) {
+ case 0:
+ if (plug->plugin_insert ()) {
+ bool valid;
+ const ChanMapping& map (plug->plugin_insert ()->input_map (plug->plugin_number ()));
+ map.get (DataType::AUDIO, index, &valid);
+ return valid ? 0 : 1;
+ }
+ if (index < plug->plugin()->numInputs) {
+ return 0;
+ }
+ break;
+ case 1:
+#if 0 // investigate, the outputs *are* connected to scratch buffers
+ if (plug->plugin_insert ()) {
+ bool valid;
+ const ChanMapping& map (plug->plugin_insert ()->output_map (plug->plugin_number ()));
+ map.get (DataType::AUDIO, index, &valid);
+ return valid ? 0 : 1;
+ }
+#endif
+ if (index < plug->plugin()->numOutputs) {
+ return 0;
+ }
+ break;
+ default:
+ break;
+ }