summaryrefslogtreecommitdiff
path: root/libs/ardour
diff options
context:
space:
mode:
Diffstat (limited to 'libs/ardour')
-rw-r--r--libs/ardour/ardour/audioengine.h2
-rw-r--r--libs/ardour/audioengine.cc10
2 files changed, 12 insertions, 0 deletions
diff --git a/libs/ardour/ardour/audioengine.h b/libs/ardour/ardour/audioengine.h
index c9d789d746..cf4f91d4d0 100644
--- a/libs/ardour/ardour/audioengine.h
+++ b/libs/ardour/ardour/audioengine.h
@@ -191,6 +191,7 @@ public:
void stop_latency_detection ();
void set_latency_input_port (const std::string&);
void set_latency_output_port (const std::string&);
+ uint32_t latency_signal_delay () const { return _latency_signal_latency; }
private:
AudioEngine ();
@@ -222,6 +223,7 @@ public:
framecnt_t _latency_flush_frames;
std::string _latency_input_name;
std::string _latency_output_name;
+ framecnt_t _latency_signal_latency;
void meter_thread ();
void start_metering_thread ();
diff --git a/libs/ardour/audioengine.cc b/libs/ardour/audioengine.cc
index 2a1ca2c852..329de68bee 100644
--- a/libs/ardour/audioengine.cc
+++ b/libs/ardour/audioengine.cc
@@ -79,6 +79,7 @@ AudioEngine::AudioEngine ()
, _latency_input_port (0)
, _latency_output_port (0)
, _latency_flush_frames (0)
+ , _latency_signal_latency (0)
{
g_atomic_int_set (&m_meter_exit, 0);
discover_backends ();
@@ -1012,6 +1013,15 @@ AudioEngine::start_latency_detection ()
pe.unregister_port (_latency_output_port);
return;
}
+
+ LatencyRange lr;
+ _latency_signal_latency = 0;
+ lr = pe.get_latency_range (_latency_input_port, false);
+ _latency_signal_latency = lr.max;
+ lr = pe.get_latency_range (_latency_output_port, true);
+ _latency_signal_latency += lr.max;
+
+ cerr << "latency signal pathway = " << _latency_signal_latency << endl;
/* all created and connected, lets go */