offer alternative region marker "promotion" method to CD marker (rather than just global marker)

This commit is contained in:
Paul Davis 2021-05-25 14:10:36 -06:00
parent 8774740e72
commit c444a81f1a
4 changed files with 6 additions and 4 deletions

View File

@ -364,6 +364,7 @@
<menuitem action='add-region-cue-marker'/>
<menuitem action='clear-region-cue-markers'/>
<separator/>
<menuitem action='make-region-markers-cd'/>
<menuitem action='make-region-markers-global'/>
</menu>
<menu action='RegionMenuTrim'>

View File

@ -588,7 +588,7 @@ public:
void add_region_marker ();
void clear_region_markers ();
void remove_region_marker (ARDOUR::CueMarker&);
void make_region_markers_global ();
void make_region_markers_global (bool as_cd_markers);
protected:
void map_transport_state ();

View File

@ -1654,7 +1654,8 @@ Editor::register_region_actions ()
/* PART 3: actions that operate on the selection and also require the edit point location */
register_region_action (_region_actions, RegionActionTarget (SelectedRegions|EditPointRegions), "make-region-markers-global", _("Convert Region Cue Markers to Global Markers"), sigc::mem_fun (*this, &Editor::make_region_markers_global));
register_region_action (_region_actions, RegionActionTarget (SelectedRegions|EditPointRegions), "make-region-markers-cd", _("Convert Region Cue Markers to CD Markers"), sigc::bind (sigc::mem_fun (*this, &Editor::make_region_markers_global), true));
register_region_action (_region_actions, RegionActionTarget (SelectedRegions|EditPointRegions), "make-region-markers-global", _("Convert Region Cue Markers to Global Markers"), sigc::bind (sigc::mem_fun (*this, &Editor::make_region_markers_global), false));
register_region_action (_region_actions, RegionActionTarget (SelectedRegions|EditPointRegions), "add-region-cue-marker", _("Add Region Cue Marker"), sigc::mem_fun (*this, &Editor::add_region_marker));
register_region_action (_region_actions, RegionActionTarget (SelectedRegions|EditPointRegions), "clear-region-cue-markers", _("Clear Region Cue Markers"), sigc::mem_fun (*this, &Editor::clear_region_markers));
register_region_action (_region_actions, RegionActionTarget (SelectedRegions|EditPointRegions), "set-region-sync-position", _("Set Sync Position"), sigc::mem_fun (*this, &Editor::set_region_sync_position));

View File

@ -8839,7 +8839,7 @@ Editor::clear_region_markers ()
}
void
Editor::make_region_markers_global ()
Editor::make_region_markers_global (bool as_cd_marker)
{
RegionSelection rs = get_regions_from_selection_and_edit_point ();
XMLNode& before (_session->locations()->get_state());
@ -8858,7 +8858,7 @@ Editor::make_region_markers_global ()
for (CueMarkers::iterator cm = cues.begin(); cm != cues.end(); ++cm) {
/* marker position is absolute within source */
const samplepos_t absolute_pos = (cm->position() - (*r)->region()->start()) + (*r)->region()->position();
Location* loc = new Location (*_session, absolute_pos, absolute_pos, cm->text(), Location::IsMark);
Location* loc = new Location (*_session, absolute_pos, absolute_pos, cm->text(), as_cd_marker ? Location::Flags (Location::IsMark|Location::IsCDMarker) : Location::IsMark);
_session->locations()->add (loc, false);
}
}