Indicate ambiguous latency, capture alignment issues

Previously this was only displayed when the latency
toolbar widget was added (off by default).
This commit is contained in:
Robin Gareus 2021-03-30 21:19:55 +02:00
parent edfcc71bcf
commit b7c030b347
Signed by: rgareus
GPG Key ID: A090BCE02CF57F04
3 changed files with 17 additions and 1 deletions

View File

@ -354,6 +354,7 @@ ARDOUR_UI::ARDOUR_UI (int *argcp, char **argvp[], const char* localedir)
, have_disk_speed_dialog_displayed (false)
, _status_bar_visibility (X_("status-bar"))
, _feedback_exists (false)
, _ambiguous_latency (false)
, _log_not_acknowledged (LogLevelNone)
, duplicate_routes_dialog (0)
, editor_visibility_button (S_("Window|Edit"))

View File

@ -857,6 +857,7 @@ private:
void successful_graph_sort ();
bool _feedback_exists;
bool _ambiguous_latency;
enum ArdourLogLevel {
LogLevelNone = 0,

View File

@ -90,7 +90,7 @@ ARDOUR_UI::setup_tooltips ()
parameter_changed("click-gain");
set_tip (solo_alert_button, _("When active, something is soloed.\nClick to de-solo everything"));
set_tip (auditioning_alert_button, _("When active, auditioning is taking place.\nClick to stop the audition"));
set_tip (feedback_alert_button, _("When active, there is a feedback loop."));
set_tip (feedback_alert_button, _("When lit, there is a ports connection issue, leading to feedback loop or ambiguous alignment.\nThis is caused by connecting an output back to some input (feedback), or by multiple connections from a source to the same output via different paths (ambiguous latency, record alignment)."));
set_tip (primary_clock, _("<b>Primary Clock</b> right-click to set display mode. Click to edit, click+drag a digit or mouse-over+scroll wheel to modify.\nText edits: right-to-left overwrite <tt>Esc</tt>: cancel; <tt>Enter</tt>: confirm; postfix the edit with '+' or '-' to enter delta times.\n"));
set_tip (secondary_clock, _("<b>Secondary Clock</b> right-click to set display mode. Click to edit, click+drag a digit or mouse-over+scroll wheel to modify.\nText edits: right-to-left overwrite <tt>Esc</tt>: cancel; <tt>Enter</tt>: confirm; postfix the edit with '+' or '-' to enter delta times.\n"));
set_tip (editor_meter_peak_display, _("Reset All Peak Meters"));
@ -364,6 +364,8 @@ ARDOUR_UI::setup_transport ()
auditioning_alert_button.set_layout_font (UIConfiguration::instance().get_SmallerFont());
feedback_alert_button.set_layout_font (UIConfiguration::instance().get_SmallerFont());
feedback_alert_button.set_sizing_text (_("Facdbeek")); //< longest of "Feedback" and "No Align"
editor_visibility_button.set_name (X_("page switch button"));
mixer_visibility_button.set_name (X_("page switch button"));
prefs_visibility_button.set_name (X_("page switch button"));
@ -678,8 +680,10 @@ ARDOUR_UI::session_latency_updated (bool for_playback)
route_latency_value.set_text (samples_as_time_string (wrl, rate));
if (_session->engine().check_for_ambiguous_latency (true)) {
_ambiguous_latency = true;
io_latency_value.set_markup ("<span background=\"red\" foreground=\"white\">ambiguous</span>");
} else {
_ambiguous_latency = false;
io_latency_value.set_text (samples_as_time_string (wpl, rate));
}
}
@ -808,6 +812,15 @@ void
ARDOUR_UI::feedback_blink (bool onoff)
{
if (_feedback_exists) {
feedback_alert_button.set_active (true);
feedback_alert_button.set_text (_("Feedback"));
if (onoff) {
feedback_alert_button.reset_fixed_colors ();
} else {
feedback_alert_button.set_active_color (UIConfigurationBase::instance().color ("feedback alert: alt active", NULL));
}
} else if (_ambiguous_latency && !UIConfiguration::instance().get_show_toolbar_latency ()) {
feedback_alert_button.set_text (_("No Align"));
feedback_alert_button.set_active (true);
if (onoff) {
feedback_alert_button.reset_fixed_colors ();
@ -815,6 +828,7 @@ ARDOUR_UI::feedback_blink (bool onoff)
feedback_alert_button.set_active_color (UIConfigurationBase::instance().color ("feedback alert: alt active", NULL));
}
} else {
feedback_alert_button.set_text ("Feedback");
feedback_alert_button.reset_fixed_colors ();
feedback_alert_button.set_active (false);
}