summaryrefslogtreecommitdiff
path: root/gtk2_ardour/plugin_ui.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gtk2_ardour/plugin_ui.cc')
-rw-r--r--gtk2_ardour/plugin_ui.cc34
1 files changed, 33 insertions, 1 deletions
diff --git a/gtk2_ardour/plugin_ui.cc b/gtk2_ardour/plugin_ui.cc
index 38de2bae04..21f0a938d6 100644
--- a/gtk2_ardour/plugin_ui.cc
+++ b/gtk2_ardour/plugin_ui.cc
@@ -50,6 +50,7 @@
#include <lrdf.h>
+#include "ardour_dialog.h"
#include "ardour_ui.h"
#include "prompter.h"
#include "plugin_ui.h"
@@ -57,6 +58,7 @@
#include "gui_thread.h"
#include "public_editor.h"
#include "keyboard.h"
+#include "latency_gui.h"
#include "plugin_eq_gui.h"
#include "i18n.h"
@@ -345,7 +347,7 @@ PlugUIBase::PlugUIBase (boost::shared_ptr<PluginInsert> pi)
plugin (insert->plugin()),
save_button(_("Add")),
bypass_button (_("Bypass")),
- latency_gui (*pi, pi->session().frame_rate(), pi->session().get_block_size()),
+ latency_gui (0),
eqgui_toggle (_("Freq Analysis"))
{
//preset_combo.set_use_arrows_always(true);
@@ -389,6 +391,36 @@ PlugUIBase::PlugUIBase (boost::shared_ptr<PluginInsert> pi)
PlugUIBase::~PlugUIBase()
{
+ delete latency_gui;
+}
+
+void
+PlugUIBase::set_latency_label ()
+{
+ char buf[64];
+ nframes_t l = insert->effective_latency ();
+ nframes_t sr = insert->session().frame_rate();
+
+ if (l < sr / 1000) {
+ snprintf (buf, sizeof (buf), "latency (%d samples)", l);
+ } else {
+ snprintf (buf, sizeof (buf), "latency (%.2f msecs)", (float) l / ((float) sr / 1000.0f));
+ }
+
+ latency_label.set_text (buf);
+}
+
+void
+PlugUIBase::latency_button_clicked ()
+{
+ if (!latency_gui) {
+ latency_gui = new LatencyGUI (*(insert.get()), insert->session().frame_rate(), insert->session().get_block_size());
+ latency_dialog = new ArdourDialog ("Edit Latency", false, false);
+ latency_dialog->get_vbox()->pack_start (*latency_gui);
+ latency_dialog->signal_hide().connect (mem_fun (*this, &PlugUIBase::set_latency_label));
+ }
+
+ latency_dialog->show_all ();
}
void