summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gtk2_ardour/processor_box.cc59
-rw-r--r--gtk2_ardour/processor_box.h1
-rw-r--r--gtk2_ardour/themes/dark-ardour.colors2
3 files changed, 44 insertions, 18 deletions
diff --git a/gtk2_ardour/processor_box.cc b/gtk2_ardour/processor_box.cc
index 8a34405e23..97f8f1a918 100644
--- a/gtk2_ardour/processor_box.cc
+++ b/gtk2_ardour/processor_box.cc
@@ -390,6 +390,14 @@ ProcessorEntry::setup_visuals ()
}
}
+ boost::shared_ptr<InternalSend> aux;
+ if ((aux = boost::dynamic_pointer_cast<InternalSend> (_processor))) {
+ if (aux->allow_feedback ()) {
+ _button.set_name ("processor auxfeedback");
+ return;
+ }
+ }
+
switch (_position) {
case PreFader:
if (_plugin_display) { _plugin_display->set_name ("processor prefader"); }
@@ -746,14 +754,22 @@ ProcessorEntry::build_send_options_menu ()
Menu* menu = manage (new Menu);
MenuList& items = menu->items ();
- boost::shared_ptr<Send> send = boost::dynamic_pointer_cast<Send> (_processor);
- if (send) {
+ if (!ARDOUR::Profile->get_mixbus()) {
+ boost::shared_ptr<Send> send = boost::dynamic_pointer_cast<Send> (_processor);
+ if (send) {
+ items.push_back (CheckMenuElem (_("Link panner controls")));
+ Gtk::CheckMenuItem* c = dynamic_cast<Gtk::CheckMenuItem*> (&items.back ());
+ c->set_active (send->panner_shell()->is_linked_to_route());
+ c->signal_toggled().connect (sigc::mem_fun (*this, &ProcessorEntry::toggle_panner_link));
+ }
+ }
- items.push_back (CheckMenuElem (_("Link panner controls")));
+ boost::shared_ptr<InternalSend> aux = boost::dynamic_pointer_cast<InternalSend> (_processor);
+ if (aux) {
+ items.push_back (CheckMenuElem (_("Allow Feedback Loop")));
Gtk::CheckMenuItem* c = dynamic_cast<Gtk::CheckMenuItem*> (&items.back ());
- c->set_active (send->panner_shell()->is_linked_to_route());
- c->signal_toggled().connect (sigc::mem_fun (*this, &ProcessorEntry::toggle_panner_link));
-
+ c->set_active (aux->allow_feedback());
+ c->signal_toggled().connect (sigc::mem_fun (*this, &ProcessorEntry::toggle_allow_feedback));
}
return menu;
}
@@ -767,6 +783,15 @@ ProcessorEntry::toggle_panner_link ()
}
}
+void
+ProcessorEntry::toggle_allow_feedback ()
+{
+ boost::shared_ptr<InternalSend> aux = boost::dynamic_pointer_cast<InternalSend> (_processor);
+ if (aux) {
+ aux->set_allow_feedback (!aux->allow_feedback ());
+ }
+}
+
ProcessorEntry::Control::Control (boost::shared_ptr<AutomationControl> c, string const & n)
: _control (c)
, _adjustment (gain_to_slider_position_with_max (1.0, Config->get_max_gain()), 0, 1, 0.01, 0.1)
@@ -2135,21 +2160,19 @@ ProcessorBox::show_processor_menu (int arg)
}
- if (!ARDOUR::Profile->get_mixbus()) {
- Gtk::MenuItem* send_menu_item = dynamic_cast<Gtk::MenuItem*>(ActionManager::get_widget("/ProcessorMenu/send_options"));
- if (send_menu_item) {
- if (single_selection && !_route->is_monitor()) {
- Menu* m = single_selection->build_send_options_menu ();
- if (m && !m->items().empty()) {
- send_menu_item->set_submenu (*m);
- send_menu_item->set_sensitive (true);
- } else {
- gtk_menu_item_set_submenu (send_menu_item->gobj(), 0);
- send_menu_item->set_sensitive (false);
- }
+ Gtk::MenuItem* send_menu_item = dynamic_cast<Gtk::MenuItem*>(ActionManager::get_widget("/ProcessorMenu/send_options"));
+ if (send_menu_item) {
+ if (single_selection && !_route->is_monitor()) {
+ Menu* m = single_selection->build_send_options_menu ();
+ if (m && !m->items().empty()) {
+ send_menu_item->set_submenu (*m);
+ send_menu_item->set_sensitive (true);
} else {
+ gtk_menu_item_set_submenu (send_menu_item->gobj(), 0);
send_menu_item->set_sensitive (false);
}
+ } else {
+ send_menu_item->set_sensitive (false);
}
}
diff --git a/gtk2_ardour/processor_box.h b/gtk2_ardour/processor_box.h
index 5f0115529c..d7517d9e83 100644
--- a/gtk2_ardour/processor_box.h
+++ b/gtk2_ardour/processor_box.h
@@ -239,6 +239,7 @@ private:
void toggle_inline_display_visibility ();
void toggle_control_visibility (Control *);
void toggle_panner_link ();
+ void toggle_allow_feedback ();
class PluginDisplay : public Gtk::DrawingArea {
public:
diff --git a/gtk2_ardour/themes/dark-ardour.colors b/gtk2_ardour/themes/dark-ardour.colors
index d4639277d8..e77401b6d7 100644
--- a/gtk2_ardour/themes/dark-ardour.colors
+++ b/gtk2_ardour/themes/dark-ardour.colors
@@ -362,6 +362,8 @@
<ColorAlias name="processor stub: fill active" alias="color 46"/>
<ColorAlias name="processor sidechain: fill" alias="color 68"/>
<ColorAlias name="processor sidechain: led active" alias="color 37"/>
+ <ColorAlias name="processor auxfeedback: fill" alias="color 89"/>
+ <ColorAlias name="processor auxfeedback: led active" alias="color 37"/>
<ColorAlias name="pinrouting custom: led active" alias="color 86"/>
<ColorAlias name="pinrouting sidechain: led active" alias="color 50"/>
<ColorAlias name="punch button: fill" alias="color 20"/>