Esempio n. 1
0
        private void EventPropertiesChange(EventPropertiesAdjustMethod Method, EventPropertiesFlags Flags = EventPropertiesFlags.All)
        {
            List <TrackEvent> Events = myVegas.Project.GetSelectedEvents();

            if (Events.Count == 0)
            {
                return;
            }

            if (Method == EventPropertiesAdjustMethod.Copy)
            {
                EventPropertiesChangeCopy(Events[0]);
            }

            else if (Method == EventPropertiesAdjustMethod.Paste)
            {
                EventPropertiesChangePaste(Events, Flags);
            }
        }
Esempio n. 2
0
        private void EventPropertiesChangePaste(IEnumerable <TrackEvent> TargetEvents, EventPropertiesFlags Flags)
        {
            object clipboardData = Clipboard.GetData(Strings.ClipboardTemplateTag);

            if (clipboardData == null)
            {
                return;
            }
            var bytes = clipboardData as Byte[];
            var str   = new MemoryStream(bytes);
            var fmt   = new BinaryFormatter {
                Binder = new EventPropertiesTemplateBinder()
            };

            var tpl = (EventPropertiesTemplate)fmt.Deserialize(str);

            using (var undo = new UndoBlock("Paste event properties"))
            {
                foreach (TrackEvent ev in TargetEvents)
                {
                    if (Flags.IsSet(EventPropertiesFlags.FadeIn))
                    {
                        ev.FadeIn.Length = Timecode.FromNanos(tpl.FadeIn.LengthNanos);
                    }

                    if (Flags.IsSet(EventPropertiesFlags.FadeOut))
                    {
                        ev.FadeOut.Length = Timecode.FromNanos(tpl.FadeOut.LengthNanos);
                    }

                    if (Flags.IsSet(EventPropertiesFlags.FadeInCurve))
                    {
                        ev.FadeIn.Curve = (CurveType)Enum.Parse(typeof(CurveType), tpl.FadeIn.CurveType);
                    }

                    if (Flags.IsSet(EventPropertiesFlags.FadeOutCurve))
                    {
                        ev.FadeOut.Curve = (CurveType)Enum.Parse(typeof(CurveType), tpl.FadeOut.CurveType);
                    }

                    if (Flags.IsSet(EventPropertiesFlags.Gain))
                    {
                        ev.FadeIn.Gain = tpl.FadeIn.Gain;
                    }

                    if (Flags.IsSet(EventPropertiesFlags.Loop))
                    {
                        ev.Loop = tpl.Loop;
                    }

                    if (Flags.IsSet(EventPropertiesFlags.Length))
                    {
                        ev.Length = Timecode.FromNanos(tpl.LengthNanos);
                    }

                    if (Flags.IsSet(EventPropertiesFlags.PitchAmount))
                    {
                        ev.AdjustPlaybackRate(tpl.PlaybackRate, true);
                    }

                    if (Flags.IsSet(EventPropertiesFlags.PitchMethod))
                    {
                        // Not supported by Vegas API yet
                    }

                    // broken, too unintuitive

                    /*if (Flags.IsSet(EventPropertiesFlags.RegionOffset))
                     * {
                     *      Region r = myVegas.FindSurroundingRegion(ev);
                     *
                     *      // workaround to make sure we don't stack events within the same region
                     *      if (r == null || r == LastSurroundingRegion)
                     *              continue;
                     *
                     *      ev.Start.Nanos = r.Position.Nanos + tpl.RegionOffsetNanos;
                     *      LastSurroundingRegion = r;
                     * }*/
                }
            }
        }
Esempio n. 3
0
		private void EventPropertiesChangePaste(IEnumerable<TrackEvent> TargetEvents, EventPropertiesFlags Flags)
		{
			object clipboardData = Clipboard.GetData(Strings.ClipboardTemplateTag);
			if (clipboardData == null)
				return;
			var bytes = clipboardData as Byte[];
			var str = new MemoryStream(bytes);
			var fmt = new BinaryFormatter { Binder = new EventPropertiesTemplateBinder() };

			var tpl = (EventPropertiesTemplate)fmt.Deserialize(str);

			using (var undo = new UndoBlock("Paste event properties"))
			{
				foreach (TrackEvent ev in TargetEvents)
				{
					if (Flags.IsSet(EventPropertiesFlags.FadeIn))
						ev.FadeIn.Length = Timecode.FromNanos(tpl.FadeIn.LengthNanos);

					if (Flags.IsSet(EventPropertiesFlags.FadeOut))
						ev.FadeOut.Length = Timecode.FromNanos(tpl.FadeOut.LengthNanos);

					if (Flags.IsSet(EventPropertiesFlags.FadeInCurve))
						ev.FadeIn.Curve = (CurveType)Enum.Parse(typeof(CurveType), tpl.FadeIn.CurveType);

					if (Flags.IsSet(EventPropertiesFlags.FadeOutCurve))
						ev.FadeOut.Curve = (CurveType)Enum.Parse(typeof(CurveType), tpl.FadeOut.CurveType);

					if (Flags.IsSet(EventPropertiesFlags.Gain))
						ev.FadeIn.Gain = tpl.FadeIn.Gain;

					if (Flags.IsSet(EventPropertiesFlags.Loop))
						ev.Loop = tpl.Loop;

					if (Flags.IsSet(EventPropertiesFlags.Length))
						ev.Length = Timecode.FromNanos(tpl.LengthNanos);

					if (Flags.IsSet(EventPropertiesFlags.PitchAmount))
						ev.AdjustPlaybackRate(tpl.PlaybackRate, true);

					if (Flags.IsSet(EventPropertiesFlags.PitchMethod))
					{
						// Not supported by Vegas API yet
					}

					// broken, too unintuitive

					/*if (Flags.IsSet(EventPropertiesFlags.RegionOffset))
					{
						Region r = myVegas.FindSurroundingRegion(ev);

						// workaround to make sure we don't stack events within the same region
						if (r == null || r == LastSurroundingRegion)
							continue;

						ev.Start.Nanos = r.Position.Nanos + tpl.RegionOffsetNanos;
						LastSurroundingRegion = r;
					}*/
				}
			}
		}
Esempio n. 4
0
		private void EventPropertiesChange(EventPropertiesAdjustMethod Method, EventPropertiesFlags Flags = EventPropertiesFlags.All)
		{
			List<TrackEvent> Events = myVegas.Project.GetSelectedEvents();

			if (Events.Count == 0)
				return;

			if (Method == EventPropertiesAdjustMethod.Copy)
				EventPropertiesChangeCopy(Events[0]);

			else if (Method == EventPropertiesAdjustMethod.Paste)
				EventPropertiesChangePaste(Events, Flags);
		}