diff --git a/gtk2_ardour/au_pluginui.cc b/gtk2_ardour/au_pluginui.cc index 3e0e7e4874..e4a5c73fe9 100644 --- a/gtk2_ardour/au_pluginui.cc +++ b/gtk2_ardour/au_pluginui.cc @@ -23,11 +23,32 @@ #include "plugin_ui.h" +#include "i18n.h" + using namespace ARDOUR; using namespace PBD; -AUPluginUI::AUPluginUI (ARDOUR::AudioEngine& engine, boost::shared_ptr ap) +AUPluginUI::AUPluginUI (boost::shared_ptr ap) { + if ((au = boost::dynamic_pointer_cast (ap->plugin())) == 0) { + error << _("unknown type of editor-supplying plugin (note: no AudioUnit support in this version of ardour)") << endmsg; + throw failed_constructor (); + } + +#if 0 + set_position (Gtk::WIN_POS_MOUSE); + set_name ("PluginEditor"); + add_events (Gdk::KEY_PRESS_MASK|Gdk::KEY_RELEASE_MASK|Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK); + + signal_delete_event().connect (bind (sigc::ptr_fun (just_hide_it), reinterpret_cast (this))); + insert->GoingAway.connect (mem_fun(*this, &PluginUIWindow::plugin_going_away)); + + if (scrollable) { + gint h = _pluginui->get_preferred_height (); + if (h > 600) h = 600; + set_default_size (450, h); + } +#endif info << "AUPluginUI created" << endmsg; } diff --git a/gtk2_ardour/ladspa_pluginui.cc b/gtk2_ardour/ladspa_pluginui.cc index 22b860900a..b1f193b862 100644 --- a/gtk2_ardour/ladspa_pluginui.cc +++ b/gtk2_ardour/ladspa_pluginui.cc @@ -35,7 +35,6 @@ #include -#include #include #include #include @@ -57,9 +56,8 @@ using namespace Gtkmm2ext; using namespace Gtk; using namespace sigc; -LadspaPluginUI::LadspaPluginUI (AudioEngine &engine, boost::shared_ptr pi, bool scrollable) +LadspaPluginUI::LadspaPluginUI (boost::shared_ptr 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_ptractive_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; @@ -203,7 +201,7 @@ LadspaPluginUI::build (AudioEngine &engine) } } - 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; } @@ -359,7 +357,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; diff --git a/gtk2_ardour/plugin_ui.cc b/gtk2_ardour/plugin_ui.cc index f9db649737..4619d50359 100644 --- a/gtk2_ardour/plugin_ui.cc +++ b/gtk2_ardour/plugin_ui.cc @@ -37,7 +37,6 @@ #include -#include #include #include #include @@ -63,7 +62,7 @@ using namespace Gtkmm2ext; using namespace Gtk; using namespace sigc; -PluginUIWindow::PluginUIWindow (AudioEngine &engine, boost::shared_ptr insert, bool scrollable) +PluginUIWindow::PluginUIWindow (boost::shared_ptr insert, bool scrollable) : ArdourDialog ("plugin ui") { if (insert->plugin()->has_editor()) { @@ -92,7 +91,7 @@ PluginUIWindow::PluginUIWindow (AudioEngine &engine, boost::shared_ptradd (*pu); diff --git a/gtk2_ardour/plugin_ui.h b/gtk2_ardour/plugin_ui.h index acd22294dd..5c940843f7 100644 --- a/gtk2_ardour/plugin_ui.h +++ b/gtk2_ardour/plugin_ui.h @@ -45,7 +45,6 @@ #include namespace ARDOUR { - class AudioEngine; class PluginInsert; class Plugin; class VSTPlugin; @@ -90,7 +89,7 @@ class PlugUIBase : public virtual sigc::trackable class LadspaPluginUI : public PlugUIBase, public Gtk::VBox { public: - LadspaPluginUI (ARDOUR::AudioEngine &, boost::shared_ptr plug, bool scrollable=false); + LadspaPluginUI (boost::shared_ptr plug, bool scrollable=false); ~LadspaPluginUI (); gint get_preferred_height () { return prefheight; } @@ -99,7 +98,6 @@ class LadspaPluginUI : public PlugUIBase, public Gtk::VBox bool stop_updating(GdkEventAny*); private: - ARDOUR::AudioEngine &engine; Gtk::HBox settings_box; Gtk::HBox hpacker; @@ -174,8 +172,8 @@ class LadspaPluginUI : public PlugUIBase, public Gtk::VBox sigc::connection screen_update_connection; void output_update(); - void build (ARDOUR::AudioEngine &); - ControlUI* build_control_ui (ARDOUR::AudioEngine &, guint32 port_index, PBD::Controllable *); + void build (); + ControlUI* build_control_ui (guint32 port_index, PBD::Controllable *); std::vector setup_scale_values(guint32 port_index, ControlUI* cui); void control_adjustment_changed (ControlUI* cui); void parameter_changed (uint32_t, float, ControlUI* cui); @@ -197,7 +195,7 @@ class LadspaPluginUI : public PlugUIBase, public Gtk::VBox class PluginUIWindow : public ArdourDialog { public: - PluginUIWindow (ARDOUR::AudioEngine &, boost::shared_ptr insert, bool scrollable=false); + PluginUIWindow (boost::shared_ptr insert, bool scrollable=false); ~PluginUIWindow (); PlugUIBase& pluginui() { return *_pluginui; } @@ -240,7 +238,7 @@ class VSTPluginUI : public PlugUIBase, public Gtk::VBox class AUPluginUI { public: - AUPluginUI (ARDOUR::AudioEngine&, boost::shared_ptr); + AUPluginUI (boost::shared_ptr); ~AUPluginUI (); private: diff --git a/gtk2_ardour/redirect_box.cc b/gtk2_ardour/redirect_box.cc index ddb9e85ca2..f93dfb9433 100644 --- a/gtk2_ardour/redirect_box.cc +++ b/gtk2_ardour/redirect_box.cc @@ -979,7 +979,7 @@ RedirectBox::edit_redirect (boost::shared_ptr redirect) title = string_compose(_("ardour: %1: %2 (by %3)"), _route->name(), plugin_insert->name(), maker); - plugin_ui = new PluginUIWindow (_session.engine(), plugin_insert); + plugin_ui = new PluginUIWindow (plugin_insert); if (_owner_is_mixer) { ARDOUR_UI::instance()->the_mixer()->ensure_float (*plugin_ui); } else { @@ -1001,7 +1001,7 @@ RedirectBox::edit_redirect (boost::shared_ptr redirect) } else if (type == ARDOUR::AudioUnit) { AUPluginUI* plugin_ui; if (plugin_insert->get_gui() == 0) { - plugin_ui = new AUPluginUI (_session.engine(), plugin_insert); + plugin_ui = new AUPluginUI (plugin_insert); } else { plugin_ui = reinterpret_cast (plugin_insert->get_gui()); } diff --git a/gtk2_ardour/route_params_ui.cc b/gtk2_ardour/route_params_ui.cc index 86ac1e035e..8d8efad8a2 100644 --- a/gtk2_ardour/route_params_ui.cc +++ b/gtk2_ardour/route_params_ui.cc @@ -556,7 +556,7 @@ RouteParams_UI::redirect_selected (boost::shared_ptr redirect, if ((plugin_insert = boost::dynamic_pointer_cast (insert)) != 0) { - LadspaPluginUI *plugin_ui = new LadspaPluginUI (session->engine(), plugin_insert, true); + LadspaPluginUI *plugin_ui = new LadspaPluginUI (plugin_insert, true); if (place == PreFader) { cleanup_pre_view();