Merge branch 'master' into mixer-snapshots

This commit is contained in:
Nikolaus Gullotta 2019-03-12 11:38:20 -05:00
commit 70833bb8f8
8 changed files with 23 additions and 4 deletions

View file

@ -843,7 +843,7 @@ Editor::marker_context_menu (GdkEventButton* ev, ArdourCanvas::Item* item)
if (loc == transport_loop_location() || loc == transport_punch_location() || loc->is_session_range ()) {
build_range_marker_menu (loc, loc == transport_loop_location() || loc == transport_punch_location(), loc->is_session_range()); // XXX
build_range_marker_menu (loc, loc == transport_loop_location() || loc == transport_punch_location(), loc->is_session_range());
marker_menu_item = item;
range_marker_menu->popup (1, ev->time);
@ -936,7 +936,7 @@ Editor::build_range_marker_menu (Location* loc, bool loop_or_punch, bool session
bool const loop_or_punch_or_session = loop_or_punch || session;
delete range_marker_menu;
Menu* range_marker_menu = new Menu;
range_marker_menu = new Menu;
MenuList& items = range_marker_menu->items();
range_marker_menu->set_name ("ArdourContextMenu");

View file

@ -2457,6 +2457,7 @@ RCOptionEditor::RCOptionEditor ()
eqv->add (Overlap, _("whenever they overlap in time"));
eqv->add (Enclosed, _("if either encloses the other"));
eqv->add (Exact, _("only if they have identical length, position and origin"));
eqv->add (LayerTime, _("only if they have identical length, position and layer"));
add_option (_("Editor"), eqv);

View file

@ -209,7 +209,7 @@ CONFIG_VARIABLE (bool, verify_remove_last_capture, "verify-remove-last-capture",
CONFIG_VARIABLE (bool, save_history, "save-history", true)
CONFIG_VARIABLE (int32_t, saved_history_depth, "save-history-depth", 20)
CONFIG_VARIABLE (int32_t, history_depth, "history-depth", 20)
CONFIG_VARIABLE (RegionEquivalence, region_equivalence, "region-equivalence", Enclosed)
CONFIG_VARIABLE (RegionEquivalence, region_equivalence, "region-equivalence", LayerTime)
CONFIG_VARIABLE (bool, periodic_safety_backups, "periodic-safety-backups", true)
CONFIG_VARIABLE (uint32_t, periodic_safety_backup_interval, "periodic-safety-backup-interval", 120)
CONFIG_VARIABLE (float, automation_interval_msecs, "automation-interval-msecs", 30)

View file

@ -205,6 +205,7 @@ public:
bool size_equivalent (boost::shared_ptr<const Region>) const;
bool overlap_equivalent (boost::shared_ptr<const Region>) const;
bool enclosed_equivalent (boost::shared_ptr<const Region>) const;
bool layer_and_time_equivalent (boost::shared_ptr<const Region>) const;
bool region_list_equivalent (boost::shared_ptr<const Region>) const;
bool source_equivalent (boost::shared_ptr<const Region>) const;
bool any_source_equivalent (boost::shared_ptr<const Region>) const;

View file

@ -631,7 +631,8 @@ typedef std::vector<boost::shared_ptr<Bundle> > BundleList;
enum RegionEquivalence {
Exact,
Enclosed,
Overlap
Overlap,
LayerTime
};
enum WaveformScale {

View file

@ -694,6 +694,7 @@ setup_enum_writer ()
REGISTER_ENUM(Exact);
REGISTER_ENUM(Enclosed);
REGISTER_ENUM(Overlap);
REGISTER_ENUM(LayerTime);
REGISTER(_RegionEquivalence);
REGISTER_ENUM(Linear);

View file

@ -846,6 +846,13 @@ Playlist::get_equivalent_regions (boost::shared_ptr<Region> other, vector<boost:
}
}
break;
case LayerTime:
for (RegionList::iterator i = regions.begin(); i != regions.end(); ++i) {
if ((*i)->layer_and_time_equivalent (other)) {
results.push_back (*i);
}
}
break;
case Enclosed:
for (RegionList::iterator i = regions.begin(); i != regions.end(); ++i) {
if ((*i)->enclosed_equivalent (other)) {

View file

@ -1484,6 +1484,14 @@ Region::enclosed_equivalent (boost::shared_ptr<const Region> other) const
(first_sample() <= other->first_sample() && last_sample() >= other->last_sample()) ;
}
bool
Region::layer_and_time_equivalent (boost::shared_ptr<const Region> other) const
{
return _layer == other->_layer &&
_position == other->_position &&
_length == other->_length;
}
bool
Region::exact_equivalent (boost::shared_ptr<const Region> other) const
{