From f51537b71d869904c5053853ff5456faae0a3b15 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Tue, 17 Sep 2013 21:09:13 -0400 Subject: substantive changes to allow the audio/MIDI setup dialog to change settings as intended So far only tested with JACK backend, but expected to be more correct for other backends too --- libs/ardour/audioengine.cc | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'libs/ardour/audioengine.cc') 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 */ -- cgit v1.2.3