skip LV2 ports on GUI according to port-properties: notOnGUI and reportsLatency
[ardour.git] / gtk2_ardour / plugin_eq_gui.cc
index 43ee64c23f7626a2c659f47b125bc5f794409706..631fb7be716f50d17993048ce134b3e51cc8b7f5 100644 (file)
@@ -35,6 +35,8 @@
 #include <iostream>
 #include <cmath>
 
+#include "i18n.h"
+
 using namespace ARDOUR;
 
 PluginEqGui::PluginEqGui(boost::shared_ptr<ARDOUR::PluginInsert> pluginInsert)
@@ -139,7 +141,7 @@ PluginEqGui::start_listening ()
        _plugin->activate();
        set_buffer_size(4096, 16384);
        // Connect the realtime signal collection callback
-       _plugin_insert->AnalysisDataGathered.connect (analysis_connection, invalidator (*this), ui_bind (&PluginEqGui::signal_collect_callback, this, _1, _2), gui_context());
+       _plugin_insert->AnalysisDataGathered.connect (analysis_connection, invalidator (*this), boost::bind (&PluginEqGui::signal_collect_callback, this, _1, _2), gui_context());
 }
 
 void
@@ -184,7 +186,7 @@ PluginEqGui::on_show()
                if (!_window_unmap_connection.connected()) {
                        _window_unmap_connection = toplevel->signal_unmap().connect( sigc::mem_fun(this, &PluginEqGui::stop_updating));
                }
-               
+
                if (!_window_map_connection.connected()) {
                        _window_map_connection = toplevel->signal_map().connect( sigc::mem_fun(this, &PluginEqGui::start_updating));
                }
@@ -315,6 +317,9 @@ PluginEqGui::signal_collect_callback(ARDOUR::BufferSet *in, ARDOUR::BufferSet *o
 void
 PluginEqGui::run_impulse_analysis()
 {
+       /* Allocate some thread-local buffers so that Plugin::connect_and_run can use them */
+       ARDOUR_UI::instance()->get_process_buffers ();
+       
        uint32_t inputs  = _plugin->get_info()->n_inputs.n_audio();
        uint32_t outputs = _plugin->get_info()->n_outputs.n_audio();
 
@@ -404,6 +409,8 @@ PluginEqGui::run_impulse_analysis()
 
        // This signals calls expose_analysis_area()
        _analysis_area->queue_draw();
+
+       ARDOUR_UI::instance()->drop_process_buffers ();
 }
 
 bool