Move Mute automation with region(s) #9762
Mute and Panner are the only automatable Route owned controls (that are not managed by a processor). So they need special casing to be moved when moving a region.
This commit is contained in:
parent
550b38fb00
commit
84506a041c
@ -1375,7 +1375,7 @@ DiskReader::playlist_ranges_moved (list<Temporal::RangeMove> const& movements, b
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* move panner automation */
|
/* move panner automation (route owned control) */
|
||||||
std::shared_ptr<Pannable> pannable = _track.pannable ();
|
std::shared_ptr<Pannable> pannable = _track.pannable ();
|
||||||
Evoral::ControlSet::Controls& c (pannable->controls ());
|
Evoral::ControlSet::Controls& c (pannable->controls ());
|
||||||
|
|
||||||
@ -1395,6 +1395,18 @@ DiskReader::playlist_ranges_moved (list<Temporal::RangeMove> const& movements, b
|
|||||||
*alist.get (), &before, &alist->get_state ()));
|
*alist.get (), &before, &alist->get_state ()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* move mute automation (route owned control) */
|
||||||
|
std::shared_ptr<AutomationList> alist = _track.mute_control ()->alist ();
|
||||||
|
if (alist->size ()) {
|
||||||
|
XMLNode& before = alist->get_state ();
|
||||||
|
bool const things_moved = alist->move_ranges (movements);
|
||||||
|
if (things_moved) {
|
||||||
|
_session.add_command (new MementoCommand<AutomationList> (
|
||||||
|
*alist.get (), &before, &alist->get_state ()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* move processor automation */
|
/* move processor automation */
|
||||||
_track.foreach_processor (boost::bind (&DiskReader::move_processor_automation, this, _1, movements));
|
_track.foreach_processor (boost::bind (&DiskReader::move_processor_automation, this, _1, movements));
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user