Prepare generic spill ([mix]busses)
authorRobin Gareus <robin@gareus.org>
Mon, 16 Jan 2017 21:30:26 +0000 (22:30 +0100)
committerRobin Gareus <robin@gareus.org>
Mon, 16 Jan 2017 21:30:26 +0000 (22:30 +0100)
gtk2_ardour/mixer_ui.cc
gtk2_ardour/mixer_ui.h
gtk2_ardour/vca_master_strip.cc
gtk2_ardour/vca_master_strip.h

index 35986de0eb3312c454de3cf54eb99336d2bb125c..4f87e04c7a1fd90cfd62d5351b6d2796c330c5e1 100644 (file)
@@ -1354,11 +1354,13 @@ Mixer_UI::redisplay_track_list ()
                return;
        }
 
-       boost::shared_ptr<VCA> sv = spilled_vca.lock ();
-
-       if (sv) {
-               spill_redisplay (sv);
-               return;
+       boost::shared_ptr<Stripable> ss = spilled_strip.lock ();
+       if (ss) {
+               boost::shared_ptr<VCA> sv = boost::dynamic_pointer_cast<VCA> (ss);
+               if (sv) {
+                       spill_redisplay (sv);
+                       return;
+               }
        }
 
        TreeModel::Children rows = track_model->children();
@@ -2830,13 +2832,13 @@ Mixer_UI::do_vca_unassign (boost::shared_ptr<VCA> vca)
 }
 
 void
-Mixer_UI::show_vca_slaves (boost::shared_ptr<VCA> vca)
+Mixer_UI::show_spill (boost::shared_ptr<Stripable> s)
 {
-       boost::shared_ptr<VCA> v = spilled_vca.lock();
-       if (v != vca) {
-               spilled_vca = vca;
-               show_vca_change (vca); /* EMIT SIGNAL */
-               if (vca) {
+       boost::shared_ptr<Stripable> ss = spilled_strip.lock();
+       if (ss != s) {
+               spilled_strip = s;
+               show_spill_change (s); /* EMIT SIGNAL */
+               if (s) {
                        _group_tabs->hide ();
                } else {
                        _group_tabs->show ();
@@ -2846,9 +2848,9 @@ Mixer_UI::show_vca_slaves (boost::shared_ptr<VCA> vca)
 }
 
 bool
-Mixer_UI::showing_vca_slaves_for (boost::shared_ptr<VCA> vca) const
+Mixer_UI::showing_spill_for (boost::shared_ptr<Stripable> s) const
 {
-       return vca == spilled_vca.lock();
+       return s == spilled_strip.lock();
 }
 
 void
index fecd1750813d028ef1eef576aef23a88424ac94d..27a5575f77f9ad7c01287b622e8d6e2e52a8f3cd 100644 (file)
@@ -116,10 +116,10 @@ class Mixer_UI : public Gtkmm2ext::Tabbable, public PBD::ScopedConnectionList, p
 
        void do_vca_assign (boost::shared_ptr<ARDOUR::VCA>);
        void do_vca_unassign (boost::shared_ptr<ARDOUR::VCA>);
-       void show_vca_slaves (boost::shared_ptr<ARDOUR::VCA>);
-       bool showing_vca_slaves_for (boost::shared_ptr<ARDOUR::VCA>) const;
+       void show_spill (boost::shared_ptr<ARDOUR::Stripable>);
+       bool showing_spill_for (boost::shared_ptr<ARDOUR::Stripable>) const;
 
-       sigc::signal1<void,boost::shared_ptr<ARDOUR::VCA> > show_vca_change;
+       sigc::signal1<void,boost::shared_ptr<ARDOUR::Stripable> > show_spill_change;
 
        RouteProcessorSelection& selection() { return _selection; }
        void register_actions ();
@@ -382,7 +382,7 @@ class Mixer_UI : public Gtkmm2ext::Tabbable, public PBD::ScopedConnectionList, p
        // true if mixer list is visible
        bool _show_mixer_list;
 
-       mutable boost::weak_ptr<ARDOUR::VCA> spilled_vca;
+       mutable boost::weak_ptr<ARDOUR::Stripable> spilled_strip;
 
        void escape ();
 
index 7dfc396381d9f5fdf4fc6eb1b9afb17b4398ad0a..b3dcc06b1662e67197ced0f718428edc8e8ee724 100644 (file)
@@ -148,7 +148,7 @@ VCAMasterStrip::VCAMasterStrip (Session* s, boost::shared_ptr<VCA> v)
        mute_changed ();
        spill_change (boost::shared_ptr<VCA>());
 
-       Mixer_UI::instance()->show_vca_change.connect (sigc::mem_fun (*this, &VCAMasterStrip::spill_change));
+       Mixer_UI::instance()->show_spill_change.connect (sigc::mem_fun (*this, &VCAMasterStrip::spill_change));
 
        _vca->PropertyChanged.connect (vca_connections, invalidator (*this), boost::bind (&VCAMasterStrip::vca_property_changed, this, _1), gui_context());
        _vca->presentation_info().PropertyChanged.connect (vca_connections, invalidator (*this), boost::bind (&VCAMasterStrip::vca_property_changed, this, _1), gui_context());
@@ -165,9 +165,9 @@ VCAMasterStrip::VCAMasterStrip (Session* s, boost::shared_ptr<VCA> v)
 
 VCAMasterStrip::~VCAMasterStrip ()
 {
-       if ((_session && !_session->deletion_in_progress()) && Mixer_UI::instance()->showing_vca_slaves_for (_vca)) {
+       if ((_session && !_session->deletion_in_progress()) && Mixer_UI::instance()->showing_spill_for (_vca)) {
                /* cancel spill for this VCA */
-               Mixer_UI::instance()->show_vca_slaves (boost::shared_ptr<VCA>());
+               Mixer_UI::instance()->show_spill (boost::shared_ptr<Stripable>());
        }
 
        delete delete_dialog;
@@ -179,9 +179,9 @@ VCAMasterStrip::~VCAMasterStrip ()
 void
 VCAMasterStrip::self_delete ()
 {
-       if ((_session && !_session->deletion_in_progress()) && Mixer_UI::instance()->showing_vca_slaves_for (_vca)) {
+       if ((_session && !_session->deletion_in_progress()) && Mixer_UI::instance()->showing_spill_for (_vca)) {
                /* cancel spill for this VCA */
-               Mixer_UI::instance()->show_vca_slaves (boost::shared_ptr<VCA>());
+               Mixer_UI::instance()->show_spill (boost::shared_ptr<Stripable>());
        }
        /* Drop reference immediately, delete self when idle */
        _vca.reset ();
@@ -457,15 +457,15 @@ VCAMasterStrip::build_context_menu ()
 void
 VCAMasterStrip::spill ()
 {
-       if (Mixer_UI::instance()->showing_vca_slaves_for (_vca)) {
-               Mixer_UI::instance()->show_vca_slaves (boost::shared_ptr<VCA>());
+       if (Mixer_UI::instance()->showing_spill_for (_vca)) {
+               Mixer_UI::instance()->show_spill (boost::shared_ptr<Stripable>());
        } else {
-               Mixer_UI::instance()->show_vca_slaves (_vca);
+               Mixer_UI::instance()->show_spill (_vca);
        }
 }
 
 void
-VCAMasterStrip::spill_change (boost::shared_ptr<VCA> vca)
+VCAMasterStrip::spill_change (boost::shared_ptr<Stripable> vca)
 {
        if (vca != _vca) {
                vertical_button.set_active_state (Gtkmm2ext::Off);
@@ -491,8 +491,8 @@ VCAMasterStrip::drop_all_slaves ()
 {
        _vca->Drop (); /* EMIT SIGNAL */
 
-       if (Mixer_UI::instance()->showing_vca_slaves_for (_vca)) {
-               Mixer_UI::instance()->show_vca_slaves (boost::shared_ptr<VCA>());
+       if (Mixer_UI::instance()->showing_spill_for (_vca)) {
+               Mixer_UI::instance()->show_spill (boost::shared_ptr<Stripable>());
        }
 }
 
index 575a21173c90c0d4fa24d389817585966d7b6c47..177425570e2621adeff4357104c100a76c6b921e 100644 (file)
@@ -77,7 +77,7 @@ class VCAMasterStrip : public AxisView, public Gtk::EventBox
        PBD::ScopedConnectionList vca_connections;
 
        void spill ();
-       void spill_change (boost::shared_ptr<ARDOUR::VCA>);
+       void spill_change (boost::shared_ptr<ARDOUR::Stripable>);
        void hide_clicked();
        bool width_button_pressed (GdkEventButton *);
        void set_selected (bool);