Ejemplo n.º 1
0
		public static void RunSetup(Vegas Vegas)
		{
			var nextRegion = Vegas.Project.NextRegion(Vegas.Transport.CursorPosition);
			var currentParams = Vegas.Project.GetParamsAt((nextRegion != null) ? nextRegion.Position : Vegas.Project.Length);
			var form = new RenderParamsForm(Vegas, currentParams);

			if (form.ShowDialog() != DialogResult.OK)
				return;

			int offsetCounter = 0;
			const long markerSpacing = 10000;
			Timecode startPos = Vegas.Transport.CursorPosition;
			Timecode currentPos = startPos;
			foreach (RenderParameter param in form.UserRenderParams.RenderParams)
			{
				// skip basedir for now TODO: FIX THIS
				if (param.Name == RenderTags.RootDir)
					continue;

				// skip params that are the same as previous
				var currentParam = currentParams.GetParam(param.Name);
				if (param.Value.Equals(currentParam.Value))
					continue;

				// find last marker of this type
				string paramName = param.Name;
				var sameTypeMarkers = Vegas.Project.CommandMarkers.Where(item => item.CommandType.ToString().Equals(paramName, StringComparison.InvariantCultureIgnoreCase));
				var sameRegionMarkers = sameTypeMarkers.Where(sibling => !Vegas.Project.RegionsBetween(sibling.Position, currentPos));
				CommandMarker updateCandidate = null;

				// dooo eeet
				foreach (var sibling in sameRegionMarkers)
				{
					updateCandidate = sibling;
				}
				if (updateCandidate != null)
				{
					updateCandidate.CommandParameter = param.Value.ToString();
				}
				else
				{
					CommandMarker mk = null;
					do
					{
						try
						{
							mk = new CommandMarker(currentPos, new MarkerCommandType(param.Name), param.Value.ToString());
						}
						catch (Exception)
						{
							currentPos += Timecode.FromNanos(markerSpacing * offsetCounter++);
						}
					} while (mk == null);

					Vegas.Project.CommandMarkers.Add(mk);
					currentPos = startPos + Timecode.FromNanos(markerSpacing * offsetCounter++);
				}
			}
		}
Ejemplo n.º 2
0
        public static void RunSetup(Vegas Vegas)
        {
            var nextRegion    = Vegas.Project.NextRegion(Vegas.Transport.CursorPosition);
            var currentParams = Vegas.Project.GetParamsAt((nextRegion != null) ? nextRegion.Position : Vegas.Project.Length);
            var form          = new RenderParamsForm(Vegas, currentParams);

            if (form.ShowDialog() != DialogResult.OK)
            {
                return;
            }

            int        offsetCounter = 0;
            const long markerSpacing = 10000;
            Timecode   startPos      = Vegas.Transport.CursorPosition;
            Timecode   currentPos    = startPos;

            foreach (RenderParameter param in form.UserRenderParams.RenderParams)
            {
                // skip basedir for now TODO: FIX THIS
                if (param.Name == RenderTags.RootDir)
                {
                    continue;
                }

                // skip params that are the same as previous
                var currentParam = currentParams.GetParam(param.Name);
                if (param.Value.Equals(currentParam.Value))
                {
                    continue;
                }

                // find last marker of this type
                string        paramName         = param.Name;
                var           sameTypeMarkers   = Vegas.Project.CommandMarkers.Where(item => item.CommandType.ToString().Equals(paramName, StringComparison.InvariantCultureIgnoreCase));
                var           sameRegionMarkers = sameTypeMarkers.Where(sibling => !Vegas.Project.RegionsBetween(sibling.Position, currentPos));
                CommandMarker updateCandidate   = null;

                // dooo eeet
                foreach (var sibling in sameRegionMarkers)
                {
                    updateCandidate = sibling;
                }
                if (updateCandidate != null)
                {
                    updateCandidate.CommandParameter = param.Value.ToString();
                }
                else
                {
                    CommandMarker mk = null;
                    do
                    {
                        try
                        {
                            mk = new CommandMarker(currentPos, new MarkerCommandType(param.Name), param.Value.ToString());
                        }
                        catch (Exception)
                        {
                            currentPos += Timecode.FromNanos(markerSpacing * offsetCounter++);
                        }
                    } while (mk == null);

                    Vegas.Project.CommandMarkers.Add(mk);
                    currentPos = startPos + Timecode.FromNanos(markerSpacing * offsetCounter++);
                }
            }
        }