diff options
author | Robin Gareus <robin@gareus.org> | 2019-02-17 03:15:18 +0100 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2019-02-17 03:15:18 +0100 |
commit | feab950ea0a12640994584ef5d18fbf99a4ff47c (patch) | |
tree | 75b29dc368eeefba9cc89b435546bf0cb5caf2a1 /gtk2_ardour | |
parent | 6d7bc4ea3009dc020f1b4c23ca8fa0d11d602122 (diff) |
Update Latency UI, subscribe to changes
Diffstat (limited to 'gtk2_ardour')
-rw-r--r-- | gtk2_ardour/latency_gui.cc | 8 | ||||
-rw-r--r-- | gtk2_ardour/plugin_ui.cc | 5 |
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 (); } |