summaryrefslogtreecommitdiff
path: root/gtk2_ardour/plugin_ui.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2015-05-04 20:48:41 +0200
committerRobin Gareus <robin@gareus.org>2015-05-04 20:48:41 +0200
commit9790d2b5dd4c780b1e1bad58a4cec60ac06a2653 (patch)
treefd8a7d698c90484833b33cf9eb365ad8090268c1 /gtk2_ardour/plugin_ui.cc
parentfbea6c254268e9780afd22fbb191569df4120463 (diff)
prepare plugin reset (#6297)
Diffstat (limited to 'gtk2_ardour/plugin_ui.cc')
-rw-r--r--gtk2_ardour/plugin_ui.cc22
1 files changed, 22 insertions, 0 deletions
diff --git a/gtk2_ardour/plugin_ui.cc b/gtk2_ardour/plugin_ui.cc
index f9208369f1..2483cb35fa 100644
--- a/gtk2_ardour/plugin_ui.cc
+++ b/gtk2_ardour/plugin_ui.cc
@@ -418,6 +418,7 @@ PlugUIBase::PlugUIBase (boost::shared_ptr<PluginInsert> pi)
, add_button (_("Add"))
, save_button (_("Save"))
, delete_button (_("Delete"))
+ , reset_button (_("Reset"))
, bypass_button (ArdourButton::led_default_elements)
, description_expander (_("Description"))
, plugin_analysis_expander (_("Plugin analysis"))
@@ -431,6 +432,7 @@ PlugUIBase::PlugUIBase (boost::shared_ptr<PluginInsert> pi)
ARDOUR_UI::instance()->set_tip (add_button, _("Save a new preset"));
ARDOUR_UI::instance()->set_tip (save_button, _("Save the current preset"));
ARDOUR_UI::instance()->set_tip (delete_button, _("Delete the current preset"));
+ ARDOUR_UI::instance()->set_tip (reset_button, _("Reset parameters to default (if no parameters are in automation play mode)"));
ARDOUR_UI::instance()->set_tip (bypass_button, _("Disable signal processing by the plugin"));
_no_load_preset = 0;
@@ -446,6 +448,10 @@ PlugUIBase::PlugUIBase (boost::shared_ptr<PluginInsert> pi)
delete_button.set_name ("generic button");
delete_button.signal_clicked.connect (sigc::mem_fun (*this, &PlugUIBase::delete_plugin_setting));
+ reset_button.set_name ("generic button");
+ reset_button.signal_clicked.connect (sigc::mem_fun (*this, &PlugUIBase::reset_plugin_parameters));
+
+
insert->ActiveChanged.connect (active_connection, invalidator (*this), boost::bind (&PlugUIBase::processor_active_changed, this, boost::weak_ptr<Processor>(insert)), gui_context());
bypass_button.set_name ("plugin bypass button");
@@ -479,6 +485,10 @@ PlugUIBase::PlugUIBase (boost::shared_ptr<PluginInsert> pi)
plugin->PresetRemoved.connect (*this, invalidator (*this), boost::bind (&PlugUIBase::preset_added_or_removed, this), gui_context ());
plugin->PresetLoaded.connect (*this, invalidator (*this), boost::bind (&PlugUIBase::update_preset, this), gui_context ());
plugin->ParameterChanged.connect (*this, invalidator (*this), boost::bind (&PlugUIBase::parameter_changed, this, _1, _2), gui_context ());
+
+ insert->AutomationStateChanged.connect (*this, invalidator (*this), boost::bind (&PlugUIBase::automation_state_changed, this), gui_context());
+
+ automation_state_changed();
}
PlugUIBase::~PlugUIBase()
@@ -636,6 +646,18 @@ PlugUIBase::delete_plugin_setting ()
#endif
}
+void
+PlugUIBase::automation_state_changed ()
+{
+ reset_button.set_sensitive (insert->can_reset_all_parameters());
+}
+
+void
+PlugUIBase::reset_plugin_parameters ()
+{
+ insert->reset_parameters_to_default ();
+}
+
bool
PlugUIBase::bypass_button_release (GdkEventButton*)
{