remove "New Return" menu option from processor box; make return toggle processor...
authorPaul Davis <paul@linuxaudiosystems.com>
Mon, 30 Nov 2009 13:13:57 +0000 (13:13 +0000)
committerPaul Davis <paul@linuxaudiosystems.com>
Mon, 30 Nov 2009 13:13:57 +0000 (13:13 +0000)
git-svn-id: svn://localhost/ardour2/branches/3.0@6211 d708f5d6-7413-0410-9779-e7cbd77b26cf

gtk2_ardour/processor_box.cc
gtk2_ardour/processor_box.h

index b4cd9932ce4f27ef5ddb59794aaa823d8a745f56..41a45880aeceb24426dd4cee4f96d7aeeac97817 100644 (file)
@@ -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;
        }
@@ -860,35 +877,6 @@ ProcessorBox::send_io_finished (IOSelector::Result r, boost::weak_ptr<Processor>
        delete_when_idle (ios);
 }
 
-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)
 {
@@ -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
index 6fa11339fffb70c16ea101fba6744a318b3049b6..06a47538025ea92cea816824dcafe17206468fe4 100644 (file)
@@ -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 ();