diff --git a/gtk2_ardour/ardour.menus.in b/gtk2_ardour/ardour.menus.in index a39b8cc368..2f055bc6b8 100644 --- a/gtk2_ardour/ardour.menus.in +++ b/gtk2_ardour/ardour.menus.in @@ -364,6 +364,7 @@ + diff --git a/gtk2_ardour/editor.h b/gtk2_ardour/editor.h index 0b322335ec..824fec95c4 100644 --- a/gtk2_ardour/editor.h +++ b/gtk2_ardour/editor.h @@ -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 (); diff --git a/gtk2_ardour/editor_actions.cc b/gtk2_ardour/editor_actions.cc index cd70385acd..8230421aa6 100644 --- a/gtk2_ardour/editor_actions.cc +++ b/gtk2_ardour/editor_actions.cc @@ -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)); diff --git a/gtk2_ardour/editor_ops.cc b/gtk2_ardour/editor_ops.cc index 9cfbd97f7d..78bdbf5d76 100644 --- a/gtk2_ardour/editor_ops.cc +++ b/gtk2_ardour/editor_ops.cc @@ -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); } }