Don't explicitly store Auditioner -> Monitor connections.
authorRobin Gareus <robin@gareus.org>
Wed, 19 Apr 2017 14:38:41 +0000 (16:38 +0200)
committerRobin Gareus <robin@gareus.org>
Wed, 19 Apr 2017 14:41:51 +0000 (16:41 +0200)
The monitor section connection is implicit and done by default.
This fixes an issue with the auditioner connections being lost when
switching between sessions that use/don't use the monitor-section.

Previously:
1) load session with monitor section, save session
  -> global config explicitly saved
  "auditioner-output-left" -> "ardour:Monitor/audio_in 1"

2) Load a session w/o monitor-section. The config is parsed,
  "ardour:Monitor/audio_in" port does not exist, connection was lost.

libs/ardour/auditioner.cc

index eec65f07f65ab28b954b17036bd6665a84247cb5..f2122cef276ec29a0ad14dca056da63617d1b755 100644 (file)
@@ -570,6 +570,14 @@ Auditioner::output_changed (IOChange change, void* /*src*/)
                vector<string> connections;
                vector<string> outputs;
                _session.engine().get_physical_outputs (DataType::AUDIO, outputs);
+
+               if (_session.monitor_out () && _output->connected_to (_session.monitor_out ()->input ())) {
+                       Config->set_auditioner_output_left ("default");
+                       Config->set_auditioner_output_right ("default");
+                       via_monitor = true;
+                       return;
+               }
+
                if (_output->nth (0)->get_connections (connections)) {
                        if (outputs.size() > 0) {
                                phys = outputs[0];