summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2009-11-30 13:13:57 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2009-11-30 13:13:57 +0000
commit3b4beb03b2a92ebfd1a9610b822360135c18038d (patch)
tree07d2e7604db69117eba00de3b3a668e6f3c99269 /gtk2_ardour
parentafd9fc30e51c41fb42b34d74d6043c2e0e3d1a13 (diff)
remove "New Return" menu option from processor box; make return toggle processor active status, and / do A/B of plugins; add A/B plugins to processor box menu
git-svn-id: svn://localhost/ardour2/branches/3.0@6211 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour')
-rw-r--r--gtk2_ardour/processor_box.cc80
-rw-r--r--gtk2_ardour/processor_box.h2
2 files changed, 34 insertions, 48 deletions
diff --git a/gtk2_ardour/processor_box.cc b/gtk2_ardour/processor_box.cc
index b4cd9932ce..41a45880ae 100644
--- a/gtk2_ardour/processor_box.cc
+++ b/gtk2_ardour/processor_box.cc
@@ -92,7 +92,8 @@ RefPtr<Action> ProcessorBox::paste_action;
Glib::RefPtr<Gdk::Pixbuf> SendProcessorEntry::_slider;
ProcessorEntry::ProcessorEntry (boost::shared_ptr<Processor> p, Width w)
- : _processor (p), _width (w)
+ : _processor (p)
+ , _width (w)
{
_hbox.pack_start (_active, false, false);
_event_box.add (_name);
@@ -271,6 +272,7 @@ ProcessorBox::ProcessorBox (ARDOUR::Session& sess, sigc::slot<PluginSelector*> g
: _session(sess)
, _parent_strip (parent)
, _owner_is_mixer (owner_is_mixer)
+ , ab_direction (true)
, _get_plugin_selector (get_plugin_selector)
, _placement(PreFader)
, _rr_selection(rsel)
@@ -545,18 +547,21 @@ ProcessorBox::processor_key_release_event (GdkEventKey *ev)
case GDK_a:
if (Keyboard::modifier_state_equals (ev->state, Keyboard::PrimaryModifier)) {
processor_display.select_all ();
+ ret = true;
}
break;
case GDK_c:
if (Keyboard::modifier_state_equals (ev->state, Keyboard::PrimaryModifier)) {
copy_processors (targets);
+ ret = true;
}
break;
case GDK_x:
if (Keyboard::modifier_state_equals (ev->state, Keyboard::PrimaryModifier)) {
cut_processors (targets);
+ ret = true;
}
break;
@@ -567,16 +572,23 @@ ProcessorBox::processor_key_release_event (GdkEventKey *ev)
} else {
paste_processors (targets.front());
}
+ ret = true;
}
break;
+ case GDK_Up:
+ break;
+
+ case GDK_Down:
+ break;
+
case GDK_Delete:
case GDK_BackSpace:
delete_processors (targets);
ret = true;
break;
- case GDK_slash:
+ case GDK_Return:
for (ProcSelection::iterator i = targets.begin(); i != targets.end(); ++i) {
if ((*i)->active()) {
(*i)->deactivate ();
@@ -587,6 +599,11 @@ ProcessorBox::processor_key_release_event (GdkEventKey *ev)
ret = true;
break;
+ case GDK_slash:
+ ab_plugins ();
+ ret = true;
+ break;
+
default:
break;
}
@@ -861,35 +878,6 @@ ProcessorBox::send_io_finished (IOSelector::Result r, boost::weak_ptr<Processor>
}
void
-ProcessorBox::choose_return ()
-{
- boost::shared_ptr<Return> retrn (new Return (_session));
-
- /* assume user just wants a single audio input (sidechain) by default */
- ChanCount ins(DataType::AUDIO, 1);
-
- /* XXX need processor lock on route */
- try {
- retrn->input()->ensure_io (ins, false, this);
- } catch (AudioEngine::PortRegistrationFailure& err) {
- error << string_compose (_("Cannot set up new return: %1"), err.what()) << endmsg;
- return;
- }
-
- /* let the user adjust the IO setup before creation */
- IOSelectorWindow *ios = new IOSelectorWindow (_session, retrn->input(), true);
- ios->show_all ();
-
- /* keep a reference to the return so it doesn't get deleted while
- the IOSelectorWindow is doing its stuff */
- _processor_being_created = retrn;
-
- ios->selector().Finished.connect (bind (
- mem_fun(*this, &ProcessorBox::return_io_finished),
- boost::weak_ptr<Processor>(retrn), ios));
-}
-
-void
ProcessorBox::return_io_finished (IOSelector::Result r, boost::weak_ptr<Processor> weak_processor, IOSelectorWindow* ios)
{
boost::shared_ptr<Processor> processor (weak_processor.lock());
@@ -1532,8 +1520,6 @@ ProcessorBox::register_actions ()
ActionManager::jack_sensitive_actions.push_back (act);
ActionManager::register_action (popup_act_grp, X_("newaux"), _("New Aux Send ..."));
- ActionManager::register_action (popup_act_grp, X_("newreturn"), _("New Return ..."),
- sigc::ptr_fun (ProcessorBox::rb_choose_return));
ActionManager::register_action (popup_act_grp, X_("clear"), _("Clear (all)"),
sigc::ptr_fun (ProcessorBox::rb_clear));
@@ -1564,56 +1550,58 @@ ProcessorBox::register_actions ()
ActionManager::register_action (popup_act_grp, X_("deselectall"), _("Deselect All"),
sigc::ptr_fun (ProcessorBox::rb_deselect_all));
- /* activation */
+ /* activation etc. */
- ActionManager::plugin_selection_sensitive_actions.push_back(act);
ActionManager::register_action (popup_act_grp, X_("activate_all"), _("Activate all"),
- sigc::ptr_fun (ProcessorBox::rb_activate_all));
+ sigc::ptr_fun (ProcessorBox::rb_activate_all));
ActionManager::register_action (popup_act_grp, X_("deactivate_all"), _("Deactivate all"),
- sigc::ptr_fun (ProcessorBox::rb_deactivate_all));
+ sigc::ptr_fun (ProcessorBox::rb_deactivate_all));
+ ActionManager::register_action (popup_act_grp, X_("ab_plugins"), _("A/B Plugins"),
+ sigc::ptr_fun (ProcessorBox::rb_ab_plugins));
/* show editors */
act = ActionManager::register_action (popup_act_grp, X_("edit"), _("Edit"),
- sigc::ptr_fun (ProcessorBox::rb_edit));
+ sigc::ptr_fun (ProcessorBox::rb_edit));
ActionManager::plugin_selection_sensitive_actions.push_back(act);
ActionManager::add_action_group (popup_act_grp);
}
void
-ProcessorBox::rb_choose_plugin ()
+ProcessorBox::rb_ab_plugins ()
{
if (_current_processor_box == 0) {
return;
}
- _current_processor_box->choose_plugin ();
+
+ _current_processor_box->ab_plugins ();
}
void
-ProcessorBox::rb_choose_insert ()
+ProcessorBox::rb_choose_plugin ()
{
if (_current_processor_box == 0) {
return;
}
- _current_processor_box->choose_insert ();
+ _current_processor_box->choose_plugin ();
}
void
-ProcessorBox::rb_choose_send ()
+ProcessorBox::rb_choose_insert ()
{
if (_current_processor_box == 0) {
return;
}
- _current_processor_box->choose_send ();
+ _current_processor_box->choose_insert ();
}
void
-ProcessorBox::rb_choose_return ()
+ProcessorBox::rb_choose_send ()
{
if (_current_processor_box == 0) {
return;
}
- _current_processor_box->choose_return ();
+ _current_processor_box->choose_send ();
}
void
diff --git a/gtk2_ardour/processor_box.h b/gtk2_ardour/processor_box.h
index 6fa11339ff..06a4753802 100644
--- a/gtk2_ardour/processor_box.h
+++ b/gtk2_ardour/processor_box.h
@@ -184,7 +184,6 @@ class ProcessorBox : public Gtk::HBox, public PluginInterestedObject
void choose_aux (boost::weak_ptr<ARDOUR::Route>);
void choose_send ();
void send_io_finished (IOSelector::Result, boost::weak_ptr<ARDOUR::Processor>, IOSelectorWindow*);
- void choose_return ();
void return_io_finished (IOSelector::Result, boost::weak_ptr<ARDOUR::Processor>, IOSelectorWindow*);
void choose_insert ();
void choose_plugin ();
@@ -249,7 +248,6 @@ class ProcessorBox : public Gtk::HBox, public PluginInterestedObject
static void rb_choose_plugin ();
static void rb_choose_insert ();
static void rb_choose_send ();
- static void rb_choose_return ();
static void rb_clear ();
static void rb_clear_pre ();
static void rb_clear_post ();