Use sys::path and SessionDirectory in Session::find_all_sources for portability
[ardour.git] / gtk2_ardour / ladspa_pluginui.cc
index 22b860900a64bea666c94b0fec49cc01dba7e253..1f7ba8d4c082c225c0af691eed9706c7bb02016d 100644 (file)
@@ -35,7 +35,6 @@
 
 #include <midi++/manager.h>
 
-#include <ardour/audioengine.h>
 #include <ardour/plugin.h>
 #include <ardour/insert.h>
 #include <ardour/ladspa_plugin.h>
@@ -57,9 +56,8 @@ using namespace Gtkmm2ext;
 using namespace Gtk;
 using namespace sigc;
 
-LadspaPluginUI::LadspaPluginUI (AudioEngine &engine, boost::shared_ptr<PluginInsert> pi, bool scrollable)
+LadspaPluginUI::LadspaPluginUI (boost::shared_ptr<PluginInsert> pi, bool scrollable)
        : PlugUIBase (pi),
-         engine(engine),
          button_table (initial_button_rows, initial_button_cols),
          output_table (initial_output_rows, initial_output_cols),
          hAdjustment(0.0, 0.0, 0.0),
@@ -108,7 +106,7 @@ LadspaPluginUI::LadspaPluginUI (AudioEngine &engine, boost::shared_ptr<PluginIns
        insert->active_changed.connect (mem_fun(*this, &LadspaPluginUI::redirect_active_changed));
        bypass_button.set_active (!insert->active());
        
-       build (engine);
+       build ();
 }
 
 LadspaPluginUI::~LadspaPluginUI ()
@@ -119,7 +117,7 @@ LadspaPluginUI::~LadspaPluginUI ()
 }
 
 void
-LadspaPluginUI::build (AudioEngine &engine)
+LadspaPluginUI::build ()
 
 {
        guint32 i = 0;
@@ -131,7 +129,6 @@ LadspaPluginUI::build (AudioEngine &engine)
        int button_row, button_col;
        int output_rows, output_cols;
        int button_rows, button_cols;
-       guint32 n_ins=0, n_outs = 0;
 
        prefheight = 30;
        hpacker.set_spacing (10);
@@ -199,11 +196,11 @@ LadspaPluginUI::build (AudioEngine &engine)
                                        frame->add (*box);
                                        hpacker.pack_start(*frame,true,true);
 
-                                       x = 0;
+                                       x = 1;
                                }
                        }
 
-                       if ((cui = build_control_ui (engine, i, plugin->get_nth_control (i))) == 0) {
+                       if ((cui = build_control_ui (i, plugin->get_nth_control (i))) == 0) {
                                error << string_compose(_("Plugin Editor: could not build control element for port %1"), i) << endmsg;
                                continue;
                        }
@@ -266,9 +263,6 @@ LadspaPluginUI::build (AudioEngine &engine)
                } 
        }
 
-       n_ins = plugin->get_info()->n_inputs;
-       n_outs = plugin->get_info()->n_outputs;
-
        if (box->children().empty()) {
                hpacker.remove (*frame);
        }
@@ -294,12 +288,14 @@ LadspaPluginUI::ControlUI::ControlUI ()
        : automate_button (X_("")) // force creation of a label 
 {
        automate_button.set_name ("PluginAutomateButton");
-       ARDOUR_UI::instance()->tooltips().set_tip (automate_button,
-                                                  _("Automation control"));
+       ARDOUR_UI::instance()->tooltips().set_tip (automate_button, _("Automation control"));
 
-       /* don't fix the height, it messes up the bar controllers */
+       /* XXX translators: use a string here that will be at least as long
+          as the longest automation label (see ::automation_state_changed()
+          below). be sure to include a descender.
+       */
 
-       set_size_request_to_display_given_text (automate_button, X_("lngnuf"), 2, 2);
+       set_size_request_to_display_given_text (*automate_button.get_child(), _("Mgnual"), 5, 5);
 
        ignore_change = 0;
        display = 0;
@@ -329,7 +325,7 @@ LadspaPluginUI::automation_state_changed (ControlUI* cui)
 
        switch (insert->get_port_automation_state (cui->port_index) & (Off|Play|Touch|Write)) {
        case Off:
-               cui->automate_button.set_label (_("Off"));
+               cui->automate_button.set_label (_("Manual"));
                break;
        case Play:
                cui->automate_button.set_label (_("Play"));
@@ -359,7 +355,7 @@ LadspaPluginUI::print_parameter (char *buf, uint32_t len, uint32_t param)
 }
 
 LadspaPluginUI::ControlUI*
-LadspaPluginUI::build_control_ui (AudioEngine &engine, guint32 port_index, PBD::Controllable* mcontrol)
+LadspaPluginUI::build_control_ui (guint32 port_index, PBD::Controllable* mcontrol)
 
 {
        ControlUI* control_ui;
@@ -379,6 +375,8 @@ LadspaPluginUI::build_control_ui (AudioEngine &engine, guint32 port_index, PBD::
 
        control_ui->set_spacing (5);
 
+       Gtk::Requisition req (control_ui->automate_button.size_request());
+
        if (plugin->parameter_is_input (port_index)) {
 
                boost::shared_ptr<LadspaPlugin> lp;
@@ -457,8 +455,7 @@ LadspaPluginUI::build_control_ui (AudioEngine &engine, guint32 port_index, PBD::
                        sigc::slot<void,char*,uint32_t> pslot = sigc::bind (mem_fun(*this, &LadspaPluginUI::print_parameter), (uint32_t) port_index);
 
                        control_ui->control = new BarController (*control_ui->adjustment, *mcontrol, pslot);
-                       // should really match the height of the text in the automation button+label
-                       control_ui->control->set_size_request (200, 22);
+                       control_ui->control->set_size_request (200, req.height);
                        control_ui->control->set_name (X_("PluginSlider"));
                        control_ui->control->set_style (BarController::LeftToRight);
                        control_ui->control->set_use_parent (true);
@@ -572,7 +569,7 @@ LadspaPluginUI::astate_clicked (ControlUI* cui, uint32_t port)
        MenuList& items (automation_menu->items());
 
        items.clear ();
-       items.push_back (MenuElem (_("Off"), 
+       items.push_back (MenuElem (_("Manual"), 
                                   bind (mem_fun(*this, &LadspaPluginUI::set_automation_state), (AutoState) Off, cui)));
        items.push_back (MenuElem (_("Play"),
                                   bind (mem_fun(*this, &LadspaPluginUI::set_automation_state), (AutoState) Play, cui)));
@@ -581,7 +578,7 @@ LadspaPluginUI::astate_clicked (ControlUI* cui, uint32_t port)
        items.push_back (MenuElem (_("Touch"),
                                   bind (mem_fun(*this, &LadspaPluginUI::set_automation_state), (AutoState) Touch, cui)));
 
-       automation_menu->popup (1, 0);
+       automation_menu->popup (1, gtk_get_current_event_time());
 }
 
 void
@@ -757,3 +754,4 @@ LadspaPluginUI::setup_scale_values(guint32 port_index, ControlUI* cui)
 
        return enums;
 }
+