コード例 #1
0
ファイル: EventEdgeCommands.cs プロジェクト: teetow/teevegas
        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;
                }
            }
        }
コード例 #2
0
ファイル: EventEdgeCommands.cs プロジェクト: teetow/teevegas
        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;
                }
            }
        }
コード例 #3
0
ファイル: EventEdgeCommands.cs プロジェクト: teetow/teevegas
		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;
				}
			}
		}
コード例 #4
0
ファイル: EventEdgeCommands.cs プロジェクト: teetow/teevegas
		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;
				}
			}
		}