Prepare generic spill ([mix]busses)
This commit is contained in:
parent
17d54a0d1c
commit
a9f0e218f5
|
@ -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
|
||||
|
|
|
@ -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 ();
|
||||
|
||||
|
|
|
@ -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>());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue
Block a user