diff options
author | Robin Gareus <robin@gareus.org> | 2015-05-04 20:48:41 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2015-05-04 20:48:41 +0200 |
commit | 9790d2b5dd4c780b1e1bad58a4cec60ac06a2653 (patch) | |
tree | fd8a7d698c90484833b33cf9eb365ad8090268c1 /gtk2_ardour/plugin_ui.cc | |
parent | fbea6c254268e9780afd22fbb191569df4120463 (diff) |
prepare plugin reset (#6297)
Diffstat (limited to 'gtk2_ardour/plugin_ui.cc')
-rw-r--r-- | gtk2_ardour/plugin_ui.cc | 22 |
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*) { |