set_border_width (10);
//set_homogeneous (false);
- pack_start(main_contents);
+ pack_start (main_contents, false, false);
settings_box.set_homogeneous (false);
HBox* constraint_hbox = manage (new HBox);
HBox* smaller_hbox = manage (new HBox);
+ smaller_hbox->set_spacing (4);
Label* combo_label = manage (new Label (_("<span size=\"large\">Presets</span>")));
combo_label->set_use_markup (true);
set_latency_label ();
smaller_hbox->pack_start (latency_button, false, false, 10);
- smaller_hbox->pack_start (preset_combo, false, false);
+ smaller_hbox->pack_start (_preset_box, false, false);
+ smaller_hbox->pack_start (add_button, false, false);
smaller_hbox->pack_start (save_button, false, false);
+ smaller_hbox->pack_start (delete_button, false, false);
smaller_hbox->pack_start (bypass_button, false, true);
constraint_hbox->set_spacing (5);
VBox* v1_box = manage (new VBox);
VBox* v2_box = manage (new VBox);
- pack_end(plugin_analysis_expander);
+ pack_end (plugin_analysis_expander, true, true);
v1_box->pack_start (*smaller_hbox, false, true);
v2_box->pack_start (focus_button, 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 (control_connections, invalidator (*this), boost::bind (&GenericPluginUI::parameter_changed, this, control_ui), gui_context());
+ mcontrol->Changed.connect (control_connections, invalidator (*this), boost::bind (&GenericPluginUI::ui_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 (control_connections, invalidator (*this), boost::bind (&GenericPluginUI::parameter_changed, this, control_ui), gui_context());
+ mcontrol->Changed.connect (control_connections, invalidator (*this), boost::bind (&GenericPluginUI::ui_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->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 (sigc::bind (sigc::mem_fun(*this, &GenericPluginUI::control_port_toggled), control_ui));
- mcontrol->Changed.connect (control_connections, invalidator (*this), boost::bind (&GenericPluginUI::toggle_parameter_changed, this, control_ui), gui_context());
+ control_ui->automate_button.signal_clicked().connect (bind (mem_fun(*this, &GenericPluginUI::astate_clicked), control_ui, (uint32_t) port_index));
+ mcontrol->Changed.connect (control_connections, invalidator (*this), boost::bind (&GenericPluginUI::toggle_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());
+
if (plugin->get_parameter (port_index) > 0.5){
control_ui->button->set_active(true);
}
+ automation_state_changed (control_ui);
+
return control_ui;
}
/* create the controller */
control_ui->controller = AutomationController::create(insert, mcontrol->parameter(), mcontrol);
+
/* XXX this code is not right yet, because it doesn't handle
the absence of bounds in any sensible fashion.
*/
-//#if 0
- control_ui->controller->adjustment()->set_lower (desc.lower);
- control_ui->controller->adjustment()->set_upper (desc.upper);
-
- control_ui->logarithmic = false; // just disable it for now
- /*
- control_ui->logarithmic = desc.logarithmic;
- if (control_ui->logarithmic) {
- if (control_ui->controller->adjustment()->get_lower() == 0.0) {
- control_ui->controller->adjustment()->set_lower (control_ui->controller->adjustment()->get_upper()/10000);
- }
- control_ui->controller->adjustment()->set_upper (log(control_ui->controller->adjustment()->get_upper()));
- control_ui->controller->adjustment()->set_lower (log(control_ui->controller->adjustment()->get_lower()));
- }*/
+ Adjustment* adj = control_ui->controller->adjustment();
+ boost::shared_ptr<PluginInsert::PluginControl> pc = boost::dynamic_pointer_cast<PluginInsert::PluginControl> (control_ui->control);
+ adj->set_lower (pc->user_to_ui (desc.lower));
+ adj->set_upper (pc->user_to_ui (desc.upper));
- control_ui->controller->adjustment()->set_step_increment (desc.step);
- control_ui->controller->adjustment()->set_page_increment (desc.largestep);
-//#endif
+ adj->set_step_increment (desc.step);
+ adj->set_page_increment (desc.largestep);
if (desc.integer_step) {
- control_ui->clickbox = new ClickBox (control_ui->controller->adjustment(), "PluginUIClickBox");
+ control_ui->clickbox = new ClickBox (adj, "PluginUIClickBox");
Gtkmm2ext::set_size_request_to_display_given_text (*control_ui->clickbox, "g9999999", 2, 2);
control_ui->clickbox->set_print_func (integer_printer, 0);
} else {
control_ui->controller->set_name (X_("PluginSlider"));
control_ui->controller->set_style (BarController::LeftToRight);
control_ui->controller->set_use_parent (true);
+ control_ui->controller->set_logarithmic (desc.logarithmic);
control_ui->controller->StartGesture.connect (sigc::bind (sigc::mem_fun(*this, &GenericPluginUI::start_touch), control_ui));
control_ui->controller->StopGesture.connect (sigc::bind (sigc::mem_fun(*this, &GenericPluginUI::stop_touch), control_ui));
}
- if (control_ui->logarithmic) {
- control_ui->controller->adjustment()->set_value(log(plugin->get_parameter(port_index)));
- } else{
- control_ui->controller->adjustment()->set_value(plugin->get_parameter(port_index));
- }
+ adj->set_value (pc->plugin_to_ui (plugin->get_parameter (port_index)));
/* XXX memory leak: SliderController not destroyed by ControlUI
destructor, and manage() reports object hierarchy
automation_state_changed (control_ui);
- mcontrol->Changed.connect (control_connections, invalidator (*this), boost::bind (&GenericPluginUI::parameter_changed, this, control_ui), gui_context());
+ mcontrol->Changed.connect (control_connections, invalidator (*this), boost::bind (&GenericPluginUI::ui_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);
output_controls.push_back (control_ui);
}
- mcontrol->Changed.connect (control_connections, invalidator (*this), boost::bind (&GenericPluginUI::parameter_changed, this, control_ui), gui_context());
+ mcontrol->Changed.connect (control_connections, invalidator (*this), boost::bind (&GenericPluginUI::ui_parameter_changed, this, control_ui), gui_context());
return control_ui;
}
}
void
-GenericPluginUI::parameter_changed (ControlUI* cui)
+GenericPluginUI::ui_parameter_changed (ControlUI* cui)
{
if (!cui->update_pending) {
cui->update_pending = true;