control_ui->pack_start (control_ui->label, true, true);
control_ui->pack_start (*control_ui->button, false, true);
- control_ui->pack_start (control_ui->automate_button, false, false);
+ //control_ui->pack_start (control_ui->automate_button, false, false);
- control_ui->button->signal_clicked().connect (bind (mem_fun(*this, &GenericPluginUI::control_port_toggled), control_ui));
-
- if(plugin->get_parameter (port_index) == 1){
+ if(plugin->get_parameter (port_index) > 0.5){
control_ui->button->set_active(true);
}
+ control_ui->button->signal_clicked().connect (bind (mem_fun(*this, &GenericPluginUI::control_port_toggled), control_ui));
+
+ plugin->ParameterChanged.connect (bind (mem_fun(*this, &GenericPluginUI::toggle_parameter_changed), control_ui));
+
return control_ui;
}
control_ui->adjustment->set_lower (log(control_ui->adjustment->get_lower()));
}
- float delta = desc.upper - desc.lower;
-
- control_ui->adjustment->set_page_size (delta/100.0);
control_ui->adjustment->set_step_increment (desc.step);
control_ui->adjustment->set_page_increment (desc.largestep);
control_ui->control->set_name (X_("PluginSlider"));
control_ui->control->set_style (BarController::LeftToRight);
control_ui->control->set_use_parent (true);
+ control_ui->control->set_logarithmic (control_ui->logarithmic);
control_ui->control->StartGesture.connect (bind (mem_fun(*this, &GenericPluginUI::start_touch), control_ui));
control_ui->control->StopGesture.connect (bind (mem_fun(*this, &GenericPluginUI::stop_touch), control_ui));
control_ui->meterinfo->packed = true;
output_controls.push_back (control_ui);
+
+ plugin->ParameterChanged.connect (bind (mem_fun(*this, &GenericPluginUI::parameter_changed), control_ui));
}
- plugin->ParameterChanged.connect (bind (mem_fun(*this, &GenericPluginUI::parameter_changed), control_ui));
return control_ui;
}
insert->set_parameter (cui->port_index, (float) value);
}
+void
+GenericPluginUI::toggle_parameter_changed (uint32_t abs_port_id, float val, ControlUI* cui)
+{
+ if (!cui->ignore_change && cui->port_index == abs_port_id) {
+ if (val > 0.5) {
+ cui->button->set_active (true);
+ } else {
+ cui->button->set_active (false);
+ }
+ }
+}
+
void
GenericPluginUI::parameter_changed (uint32_t abs_port_id, float val, ControlUI* cui)
{
break;
}
}
- } else if (cui->adjustment == 0) {
-
- if (val > 0.5) {
- cui->button->set_active (true);
- } else {
- cui->button->set_active (false);
- }
-
} else {
if (cui->logarithmic) {
val = log(val);
void
GenericPluginUI::control_port_toggled (ControlUI* cui)
{
- if (!cui->ignore_change) {
- insert->set_parameter (cui->port_index, cui->button->get_active());
- }
+ cui->ignore_change++;
+ insert->set_parameter (cui->port_index, cui->button->get_active());
+ cui->ignore_change--;
}
void