private void EventEdgeChange(EventEdgeAdjustMethod Method) { var userAmount = FormTimeEntry.GetUserTime(String.Format("Adjust {0} edge by", Method.ToString())); if (userAmount == null || userAmount.Nanos == 0) { return; } using (var undo = new UndoBlock("Adjust Event Edge")) { var events = myVegas.Project.GetSelectedEvents(); switch (Method) { case EventEdgeAdjustMethod.Left: foreach (var ev in events.Where(e => e.End + userAmount >= e.Start && e.Start - userAmount <= e.End)) // don't 'wrap' events { ev.End -= userAmount; foreach (Take take in ev.Takes) { take.Offset += userAmount; } ev.Start += userAmount; } break; case EventEdgeAdjustMethod.Right: foreach (var ev in events.Where(e => e.End + userAmount >= e.Start && e.Start - userAmount <= e.End)) { ev.End += userAmount; } break; } } }
private void EventEdgeTrim(EventEdgeAdjustMethod edgeAdjustMethod, Timecode Position) { List <TrackEvent> events = myVegas.Project.GetSelectedEvents(); using (var undo = new UndoBlock("Set Event Edge")) { switch (edgeAdjustMethod) { case EventEdgeAdjustMethod.Left: foreach (var ev in events) { if (ev.Loop == false && Position <= ev.Start) // can't wrap non-looping { continue; } var amount = Position - ev.Start; if (Position <= ev.End) { ev.Start = ev.Start + amount; ev.End -= amount; foreach (var take in ev.Takes) { take.Offset += amount; } } else // wraparoo { var oldEnd = ev.End; var oldLength = ev.Length; ev.Start = oldEnd; ev.End = Position; foreach (var take in ev.Takes) { take.Offset += oldLength; } } } break; case EventEdgeAdjustMethod.Right: foreach (var ev in events) { if (ev.Loop == false && Position >= ev.End) { continue; } var amount = ev.End - Position; if (Position >= ev.Start) { ev.End -= amount; } else // wraparoo { var oldStart = ev.Start; var oldEnd = ev.End; ev.Start = Position; ev.End = oldStart; foreach (var take in ev.Takes) { take.Offset -= ev.End - Position; } } } break; } } }
private void EventEdgeTrim(EventEdgeAdjustMethod edgeAdjustMethod, Timecode Position) { List<TrackEvent> events = myVegas.Project.GetSelectedEvents(); using (var undo = new UndoBlock("Set Event Edge")) { switch (edgeAdjustMethod) { case EventEdgeAdjustMethod.Left: foreach (var ev in events) { if (ev.Loop == false && Position <= ev.Start) // can't wrap non-looping continue; var amount = Position - ev.Start; if (Position <= ev.End) { ev.Start = ev.Start + amount; ev.End -= amount; foreach (var take in ev.Takes) take.Offset += amount; } else // wraparoo { var oldEnd = ev.End; var oldLength = ev.Length; ev.Start = oldEnd; ev.End = Position; foreach (var take in ev.Takes) take.Offset += oldLength; } } break; case EventEdgeAdjustMethod.Right: foreach (var ev in events) { if (ev.Loop == false && Position >= ev.End) continue; var amount = ev.End - Position; if (Position >= ev.Start) { ev.End -= amount; } else // wraparoo { var oldStart = ev.Start; var oldEnd = ev.End; ev.Start = Position; ev.End = oldStart; foreach (var take in ev.Takes) take.Offset -= ev.End - Position; } } break; } } }
private void EventEdgeChange(EventEdgeAdjustMethod Method) { var userAmount = FormTimeEntry.GetUserTime(String.Format("Adjust {0} edge by", Method.ToString())); if (userAmount == null || userAmount.Nanos == 0) return; using (var undo = new UndoBlock("Adjust Event Edge")) { var events = myVegas.Project.GetSelectedEvents(); switch (Method) { case EventEdgeAdjustMethod.Left: foreach (var ev in events.Where(e => e.End + userAmount >= e.Start && e.Start - userAmount <= e.End)) // don't 'wrap' events { ev.End -= userAmount; foreach (Take take in ev.Takes) { take.Offset += userAmount; } ev.Start += userAmount; } break; case EventEdgeAdjustMethod.Right: foreach (var ev in events.Where(e => e.End + userAmount >= e.Start && e.Start - userAmount <= e.End)) { ev.End += userAmount; } break; } } }