Fix audition with monitor-section.
authorRobin Gareus <robin@gareus.org>
Wed, 1 Mar 2017 12:04:39 +0000 (13:04 +0100)
committerRobin Gareus <robin@gareus.org>
Wed, 1 Mar 2017 12:04:58 +0000 (13:04 +0100)
When a monitor-section is added, the auditioner automatically connects to
its input. However on session-reload, the connection is explicit
(by saved port-name) and  Auditioner::needs_monitor() was not set.
Session::process_audition() didn't run the monitor-route. Silence.

libs/ardour/auditioner.cc

index b190165c728d98988f31934b70d37cad566945ec..eec65f07f65ab28b954b17036bd6665a84247cb5 100644 (file)
@@ -139,7 +139,6 @@ Auditioner::connect ()
        if (left.empty() || left == "default") {
                if (_session.monitor_out() && _session.monitor_out()->input()->audio (0)) {
                        left = _session.monitor_out()->input()->audio (0)->name();
-                       via_monitor = true;
                } else {
                        if (outputs.size() > 0) {
                                left = outputs[0];
@@ -150,7 +149,6 @@ Auditioner::connect ()
        if (right.empty() || right == "default") {
                if (_session.monitor_out() && _session.monitor_out()->input()->audio (1)) {
                        right = _session.monitor_out()->input()->audio (1)->name();
-                       via_monitor = true;
                } else {
                        if (outputs.size() > 1) {
                                right = outputs[1];
@@ -200,6 +198,10 @@ Auditioner::connect ()
 
        }
 
+       if (_session.monitor_out () && _output->connected_to (_session.monitor_out ()->input())) {
+               via_monitor = true;
+       }
+
        return 0;
 }