summaryrefslogtreecommitdiff
path: root/libs/ardour/audioengine.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libs/ardour/audioengine.cc')
-rw-r--r--libs/ardour/audioengine.cc14
1 files changed, 12 insertions, 2 deletions
diff --git a/libs/ardour/audioengine.cc b/libs/ardour/audioengine.cc
index d33445d08f..465f88de56 100644
--- a/libs/ardour/audioengine.cc
+++ b/libs/ardour/audioengine.cc
@@ -1039,12 +1039,22 @@ AudioEngine::start_latency_detection ()
delete _mtdm;
_mtdm = 0;
+ /* find the ports we will connect to */
+
+ PortEngine::PortHandle* out = pe.get_port_by_name (_latency_output_name);
+ PortEngine::PortHandle* in = pe.get_port_by_name (_latency_input_name);
+
+ if (!out || !in) {
+ return;
+ }
+
/* create the ports we will use to read/write data */
if ((_latency_output_port = pe.register_port ("latency_out", DataType::AUDIO, IsOutput)) == 0) {
return;
}
if (pe.connect (_latency_output_port, _latency_output_name)) {
+ pe.unregister_port (_latency_output_port);
return;
}
@@ -1060,9 +1070,9 @@ AudioEngine::start_latency_detection ()
LatencyRange lr;
_latency_signal_latency = 0;
- lr = pe.get_latency_range (_latency_input_port, false);
+ lr = pe.get_latency_range (in, false);
_latency_signal_latency = lr.max;
- lr = pe.get_latency_range (_latency_output_port, true);
+ lr = pe.get_latency_range (out, true);
_latency_signal_latency += lr.max;
/* all created and connected, lets go */