diff options
Diffstat (limited to 'libs/ardour')
-rw-r--r-- | libs/ardour/ardour/audioengine.h | 2 | ||||
-rw-r--r-- | libs/ardour/audioengine.cc | 10 |
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 */ |