using namespace PBD;
using namespace Gtkmm2ext;
using namespace Gtk;
-using namespace sigc;
GenericPluginUI::GenericPluginUI (boost::shared_ptr<PluginInsert> pi, bool scrollable)
: PlugUIBase (pi),
main_contents.pack_start (hpacker, false, false);
}
- pi->ActiveChanged.connect (sigc::bind(sigc::mem_fun(*this, &GenericPluginUI::processor_active_changed),
- boost::weak_ptr<Processor>(pi)));
+ pi->ActiveChanged.connect (active_connection, invalidator (*this), boost::bind (&GenericPluginUI::processor_active_changed, this, boost::weak_ptr<Processor>(pi)), gui_context());
bypass_button.set_active (!pi->active());
boost::shared_ptr<ARDOUR::AutomationControl> c
= boost::dynamic_pointer_cast<ARDOUR::AutomationControl>(
- insert->data().control(Evoral::Parameter(PluginAutomation, 0, i)));
+ insert->control(Evoral::Parameter(PluginAutomation, 0, i)));
if ((cui = build_control_ui (i, c)) == 0) {
error << string_compose(_("Plugin Editor: could not build control element for port %1"), i) << endmsg;
: 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()->set_tip (automate_button, _("Automation control"));
/* 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.get_child(), _("Mgnual"), 5, 5);
+ set_size_request_to_display_given_text (automate_button, _("Mgnual"), 15, 10);
ignore_change = 0;
display = 0;
GenericPluginUI::ControlUI*
GenericPluginUI::build_control_ui (guint32 port_index, boost::shared_ptr<AutomationControl> mcontrol)
{
- ControlUI* control_ui = NULL;
- if (!mcontrol)
+ ControlUI* control_ui = 0;
+ if (!mcontrol) {
return control_ui;
+ }
Plugin::ParameterDescriptor desc;
//control_ui->combo->set_value_in_list(true, false);
set_popdown_strings (*control_ui->combo, setup_scale_values(port_index, control_ui));
control_ui->combo->signal_changed().connect (sigc::bind (sigc::mem_fun(*this, &GenericPluginUI::control_combo_changed), control_ui));
- mcontrol->Changed.connect (sigc::bind (sigc::mem_fun (*this, &GenericPluginUI::parameter_changed), control_ui));
+ mcontrol->Changed.connect (control_connections, invalidator (*this), boost::bind (&GenericPluginUI::parameter_changed, this, control_ui), gui_context());
control_ui->pack_start(control_ui->label, true, true);
control_ui->pack_start(*control_ui->combo, false, true);
//control_ui->combo->set_value_in_list(true, false);
set_popdown_strings (*control_ui->combo, setup_scale_values(port_index, control_ui));
control_ui->combo->signal_changed().connect (sigc::bind (sigc::mem_fun(*this, &GenericPluginUI::control_combo_changed), control_ui));
- mcontrol->Changed.connect (sigc::bind (sigc::mem_fun (*this, &GenericPluginUI::parameter_changed), control_ui));
+ mcontrol->Changed.connect (control_connections, invalidator (*this), boost::bind (&GenericPluginUI::parameter_changed, this, control_ui), gui_context());
control_ui->pack_start(control_ui->label, true, true);
control_ui->pack_start(*control_ui->combo, false, true);
// control_ui->pack_start (control_ui->automate_button, false, false);
control_ui->button->signal_clicked().connect (sigc::bind (sigc::mem_fun(*this, &GenericPluginUI::control_port_toggled), control_ui));
- mcontrol->Changed.connect (sigc::bind (sigc::mem_fun (*this, &GenericPluginUI::toggle_parameter_changed), control_ui));
+ mcontrol->Changed.connect (control_connections, invalidator (*this), boost::bind (&GenericPluginUI::toggle_parameter_changed, this, control_ui), gui_context());
if (plugin->get_parameter (port_index) > 0.5){
control_ui->button->set_active(true);
automation_state_changed (control_ui);
- mcontrol->Changed.connect (sigc::bind (sigc::mem_fun (*this, &GenericPluginUI::parameter_changed), control_ui));
- mcontrol->alist()->automation_state_changed.connect
- (sigc::bind (sigc::mem_fun(*this, &GenericPluginUI::automation_state_changed), control_ui));
+ mcontrol->Changed.connect (control_connections, invalidator (*this), boost::bind (&GenericPluginUI::parameter_changed, this, control_ui), gui_context());
+ mcontrol->alist()->automation_state_changed.connect (control_connections, invalidator (*this), boost::bind (&GenericPluginUI::automation_state_changed, this, control_ui), gui_context());
+
+ input_controls.push_back (control_ui);
} else if (plugin->parameter_is_output (port_index)) {
output_controls.push_back (control_ui);
}
- mcontrol->Changed.connect (sigc::bind (sigc::mem_fun (*this, &GenericPluginUI::parameter_changed), control_ui));
+ mcontrol->Changed.connect (control_connections, invalidator (*this), boost::bind (&GenericPluginUI::parameter_changed, this, control_ui), gui_context());
return control_ui;
}
{
if (!cui->update_pending) {
cui->update_pending = true;
- Gtkmm2ext::UI::instance()->call_slot (sigc::bind (sigc::mem_fun(*this, &GenericPluginUI::update_control_display), cui));
+ Gtkmm2ext::UI::instance()->call_slot (MISSING_INVALIDATOR, boost::bind (&GenericPluginUI::update_control_display, this, cui));
}
}
bool
GenericPluginUI::stop_updating (GdkEventAny*)
{
+ for (vector<ControlUI*>::iterator i = input_controls.begin(); i != input_controls.end(); ++i) {
+ (*i)->controller->stop_updating ();
+ }
+
if (output_controls.size() > 0 ) {
screen_update_connection.disconnect();
}
+
return false;
}