summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2019-02-17 03:15:18 +0100
committerRobin Gareus <robin@gareus.org>2019-02-17 03:15:18 +0100
commitfeab950ea0a12640994584ef5d18fbf99a4ff47c (patch)
tree75b29dc368eeefba9cc89b435546bf0cb5caf2a1
parent6d7bc4ea3009dc020f1b4c23ca8fa0d11d602122 (diff)
Update Latency UI, subscribe to changes
-rw-r--r--gtk2_ardour/latency_gui.cc8
-rw-r--r--gtk2_ardour/plugin_ui.cc5
2 files changed, 10 insertions, 3 deletions
diff --git a/gtk2_ardour/latency_gui.cc b/gtk2_ardour/latency_gui.cc
index 0a8bfd5da1..d5ed0c2a32 100644
--- a/gtk2_ardour/latency_gui.cc
+++ b/gtk2_ardour/latency_gui.cc
@@ -126,13 +126,17 @@ void
LatencyGUI::reset ()
{
_latent.unset_user_latency ();
- adjustment.set_value (_latent.signal_latency ());
+ initial_value = std::min (sample_rate, _latent.signal_latency ());
+ adjustment.set_value (initial_value);
}
void
LatencyGUI::refresh ()
{
- initial_value = _latent.effective_latency ();
+ /* limit to adjustment range, otherwise LatencyGUI::finish() would
+ * set the adjustment's value as custom-latency
+ */
+ initial_value = std::min (sample_rate, _latent.effective_latency ());
adjustment.set_value (initial_value);
}
diff --git a/gtk2_ardour/plugin_ui.cc b/gtk2_ardour/plugin_ui.cc
index e44df2aabf..1bac3a4bb7 100644
--- a/gtk2_ardour/plugin_ui.cc
+++ b/gtk2_ardour/plugin_ui.cc
@@ -539,6 +539,8 @@ PlugUIBase::PlugUIBase (boost::shared_ptr<PluginInsert> pi)
insert->AutomationStateChanged.connect (*this, invalidator (*this), boost::bind (&PlugUIBase::automation_state_changed, this), gui_context());
+ insert->LatencyChanged.connect (*this, invalidator (*this), boost::bind (&PlugUIBase::set_latency_label, this), gui_context());
+
automation_state_changed();
}
@@ -548,6 +550,7 @@ PlugUIBase::~PlugUIBase()
delete stats_gui;
delete preset_gui;
delete latency_gui;
+ delete latency_dialog;
}
void
@@ -590,9 +593,9 @@ PlugUIBase::latency_button_clicked ()
latency_dialog->set_transient_for (*win);
}
latency_dialog->add (*latency_gui);
- latency_dialog->signal_hide().connect (sigc::mem_fun (*this, &PlugUIBase::set_latency_label));
}
+ latency_gui->refresh ();
latency_dialog->show_all ();
}