mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-12 09:36:33 +01:00
GUI to allow aux-send feedback loops
This commit is contained in:
parent
c21a0760a4
commit
a4ad0a90d1
3 changed files with 44 additions and 18 deletions
|
|
@ -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) {
|
switch (_position) {
|
||||||
case PreFader:
|
case PreFader:
|
||||||
if (_plugin_display) { _plugin_display->set_name ("processor prefader"); }
|
if (_plugin_display) { _plugin_display->set_name ("processor prefader"); }
|
||||||
|
|
@ -746,14 +754,22 @@ ProcessorEntry::build_send_options_menu ()
|
||||||
Menu* menu = manage (new Menu);
|
Menu* menu = manage (new Menu);
|
||||||
MenuList& items = menu->items ();
|
MenuList& items = menu->items ();
|
||||||
|
|
||||||
boost::shared_ptr<Send> send = boost::dynamic_pointer_cast<Send> (_processor);
|
if (!ARDOUR::Profile->get_mixbus()) {
|
||||||
if (send) {
|
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 ());
|
Gtk::CheckMenuItem* c = dynamic_cast<Gtk::CheckMenuItem*> (&items.back ());
|
||||||
c->set_active (send->panner_shell()->is_linked_to_route());
|
c->set_active (aux->allow_feedback());
|
||||||
c->signal_toggled().connect (sigc::mem_fun (*this, &ProcessorEntry::toggle_panner_link));
|
c->signal_toggled().connect (sigc::mem_fun (*this, &ProcessorEntry::toggle_allow_feedback));
|
||||||
|
|
||||||
}
|
}
|
||||||
return menu;
|
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)
|
ProcessorEntry::Control::Control (boost::shared_ptr<AutomationControl> c, string const & n)
|
||||||
: _control (c)
|
: _control (c)
|
||||||
, _adjustment (gain_to_slider_position_with_max (1.0, Config->get_max_gain()), 0, 1, 0.01, 0.1)
|
, _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"));
|
||||||
Gtk::MenuItem* send_menu_item = dynamic_cast<Gtk::MenuItem*>(ActionManager::get_widget("/ProcessorMenu/send_options"));
|
if (send_menu_item) {
|
||||||
if (send_menu_item) {
|
if (single_selection && !_route->is_monitor()) {
|
||||||
if (single_selection && !_route->is_monitor()) {
|
Menu* m = single_selection->build_send_options_menu ();
|
||||||
Menu* m = single_selection->build_send_options_menu ();
|
if (m && !m->items().empty()) {
|
||||||
if (m && !m->items().empty()) {
|
send_menu_item->set_submenu (*m);
|
||||||
send_menu_item->set_submenu (*m);
|
send_menu_item->set_sensitive (true);
|
||||||
send_menu_item->set_sensitive (true);
|
|
||||||
} else {
|
|
||||||
gtk_menu_item_set_submenu (send_menu_item->gobj(), 0);
|
|
||||||
send_menu_item->set_sensitive (false);
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
|
gtk_menu_item_set_submenu (send_menu_item->gobj(), 0);
|
||||||
send_menu_item->set_sensitive (false);
|
send_menu_item->set_sensitive (false);
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
send_menu_item->set_sensitive (false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -239,6 +239,7 @@ private:
|
||||||
void toggle_inline_display_visibility ();
|
void toggle_inline_display_visibility ();
|
||||||
void toggle_control_visibility (Control *);
|
void toggle_control_visibility (Control *);
|
||||||
void toggle_panner_link ();
|
void toggle_panner_link ();
|
||||||
|
void toggle_allow_feedback ();
|
||||||
|
|
||||||
class PluginDisplay : public Gtk::DrawingArea {
|
class PluginDisplay : public Gtk::DrawingArea {
|
||||||
public:
|
public:
|
||||||
|
|
|
||||||
|
|
@ -362,6 +362,8 @@
|
||||||
<ColorAlias name="processor stub: fill active" alias="color 46"/>
|
<ColorAlias name="processor stub: fill active" alias="color 46"/>
|
||||||
<ColorAlias name="processor sidechain: fill" alias="color 68"/>
|
<ColorAlias name="processor sidechain: fill" alias="color 68"/>
|
||||||
<ColorAlias name="processor sidechain: led active" alias="color 37"/>
|
<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 custom: led active" alias="color 86"/>
|
||||||
<ColorAlias name="pinrouting sidechain: led active" alias="color 50"/>
|
<ColorAlias name="pinrouting sidechain: led active" alias="color 50"/>
|
||||||
<ColorAlias name="punch button: fill" alias="color 20"/>
|
<ColorAlias name="punch button: fill" alias="color 20"/>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue