X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fgeneric_pluginui.cc;h=0f665d78917f753ce0bcbd2bfb102ea980a5c43c;hb=eb1e423b7521d4c277c11a884113f40e7406ade8;hp=4267d30a43362b4ae7338599d6a381dff7e9bf28;hpb=555fcb89e541a8aaf1beb3df234e60569a667876;p=ardour.git diff --git a/gtk2_ardour/generic_pluginui.cc b/gtk2_ardour/generic_pluginui.cc index 4267d30a43..0f665d7891 100644 --- a/gtk2_ardour/generic_pluginui.cc +++ b/gtk2_ardour/generic_pluginui.cc @@ -27,31 +27,33 @@ #include #include +#include + #include "pbd/stl_delete.h" #include "pbd/unwind.h" #include "pbd/xml++.h" #include "pbd/failed_constructor.h" -#include -#include -#include -#include -#include -#include - #include "ardour/plugin.h" #include "ardour/plugin_insert.h" #include "ardour/session.h" #include "ardour/value_as_string.h" +#include "gtkmm2ext/utils.h" +#include "gtkmm2ext/doi.h" + +#include "widgets/ardour_knob.h" +#include "widgets/click_box.h" +#include "widgets/fastmeter.h" +#include "widgets/slider_controller.h" +#include "widgets/tooltips.h" + #include "prompter.h" #include "plugin_ui.h" #include "gui_thread.h" #include "automation_controller.h" -#include "ardour_knob.h" #include "gain_meter.h" #include "timers.h" -#include "tooltips.h" #include "ui_config.h" #include "pbd/i18n.h" @@ -60,6 +62,7 @@ using namespace std; using namespace ARDOUR; using namespace PBD; using namespace Gtkmm2ext; +using namespace ArdourWidgets; using namespace Gtk; using namespace ARDOUR_UI_UTILS; @@ -730,6 +733,8 @@ GenericPluginUI::build_control_ui (const Evoral::Parameter& param, i->second))); } + control_ui->combo->set_controllable (mcontrol); + update_control_display(control_ui); } else { @@ -752,13 +757,14 @@ GenericPluginUI::build_control_ui (const Evoral::Parameter& param, Adjustment* adj = control_ui->controller->adjustment(); if (desc.integer_step && !desc.toggled) { - control_ui->clickbox = new ClickBox (adj, "PluginUIClickBox", true); + control_ui->clickbox = new ArdourWidgets::ClickBox (adj, "PluginUIClickBox", true); Gtkmm2ext::set_size_request_to_display_given_text (*control_ui->clickbox, "g9999999", 2, 2); if (desc.unit == ParameterDescriptor::MIDI_NOTE) { control_ui->clickbox->set_printer (sigc::bind (sigc::mem_fun (*this, &GenericPluginUI::midinote_printer), control_ui)); } else { control_ui->clickbox->set_printer (sigc::bind (sigc::mem_fun (*this, &GenericPluginUI::integer_printer), control_ui)); } + control_ui->clickbox->set_controllable (mcontrol); } else if (desc.toggled) { ArdourButton* but = dynamic_cast (control_ui->controller->widget()); assert(but); @@ -1089,11 +1095,7 @@ GenericPluginUI::output_update () (*i)->display_label->set_text (buf); if ((*i)->meterinfo && (*i)->meterinfo->packed) { - const float upper = c->desc().upper; - const float lower = c->desc().lower; - val = std::min (upper, std::max (lower, val)); - float lval = (val - lower / (upper - lower)); - (*i)->meterinfo->meter->set (lval); + (*i)->meterinfo->meter->set (c->desc().to_interface (val)); } } }