public static void Execute(Vegas vegas) { Marker fistMarker = null; var markersToRemove = new List <Marker>(); var proj = vegas.Project; using (var undo = new UndoBlock("Convert Markers To Regions")) { foreach (var marker in VegasHelper.GetMarkersByTimecode(proj)) { if (fistMarker == null) { fistMarker = marker; } else { markersToRemove.Add(fistMarker); markersToRemove.Add(marker); Region currentRegion = new Region(fistMarker.Position, marker.Position - fistMarker.Position); proj.Regions.Add(currentRegion); fistMarker = null; } } foreach (var marker in markersToRemove) { proj.Markers.Remove(marker); } } }
public static void Execute(Vegas vegas) { var proj = vegas.Project; var processSeperately = KeyboardState.IsKeyDown(Keys.Control) || KeyboardState.IsKeyDown(Keys.ControlKey) || KeyboardState.IsKeyDown(Keys.LControlKey) || KeyboardState.IsKeyDown(Keys.RControlKey); using (var undo = new UndoBlock("Reorder Marker and Regions")) { var existingMarkers = VegasHelper.GetMarkersByTimecode(proj); var existingRegions = VegasHelper.GetRegionsByTimecode(proj); var markPositions = RemoveMarkers(proj, existingMarkers); var regionPositions = RemoveRegions(proj, existingRegions); if (processSeperately) { foreach (var mi in markPositions) { AddRegionOrMarker(mi, proj.Regions, proj.Markers); } foreach (var ri in regionPositions) { AddRegionOrMarker(ri, proj.Regions, proj.Markers); } } else { var combinedPositions = new List <MarkerInfo>(markPositions); foreach (var regionPosition in regionPositions) { combinedPositions.Add(regionPosition); } combinedPositions.Sort(new MarkerInfoComparer()); foreach (var cp in combinedPositions) { AddRegionOrMarker(cp, proj.Regions, proj.Markers); } } } }