Propagate Latency to backend/system ports

Set accumulated capture-latency for physical-outputs
and accumulated playback-latency for physical-inputs
after Ardour is done setting all non-physical port latencies.

This will be needed for latency-compensation of the complete graph.
This commit is contained in:
Robin Gareus 2017-09-22 15:28:00 +02:00
parent 25f45022db
commit ab3889fff8
6 changed files with 175 additions and 36 deletions

View file

@ -96,17 +96,9 @@ class CoreBackendPort {
return for_playback ? _playback_latency_range : _capture_latency_range;
}
void set_latency_range (const LatencyRange &latency_range, bool for_playback)
{
if (for_playback)
{
_playback_latency_range = latency_range;
}
else
{
_capture_latency_range = latency_range;
}
}
void set_latency_range (const LatencyRange &latency_range, bool for_playback);
void update_connected_latency (bool for_playback);
private:
CoreAudioBackend &_osx_backend;
@ -463,6 +455,7 @@ class CoreAudioBackend : public AudioBackend {
PortHandle add_port (const std::string& shortname, ARDOUR::DataType, ARDOUR::PortFlags);
int register_system_audio_ports ();
void unregister_ports (bool system_only = false);
void update_system_port_latecies ();
std::vector<CoreBackendPort *> _system_inputs;
std::vector<CoreBackendPort *> _system_outputs;