Ejemplo n.º 1
0
        public void ParseCommandMarker(CommandMarker mk)
        {
            string key   = mk.CommandType.ToString().ToLowerInvariant();
            string value = mk.CommandParameter;

            ParseKeyValue(key, value);
        }
 private void AddError(Exception e, CommandMarker commandmarker, Timecode position)
 {
     myErrors.Add(String.Format("Failed to add command marker '{0}' at {1}: {2}",
                                commandmarker.Label,
                                position.ToString(),
                                e.Message));
 }
Ejemplo n.º 3
0
    void ExportMarker(XmlElement parent, Marker marker)
    {
        Type       type = marker.GetType();
        XmlElement elt  = AddChild(parent, type.Name);

        ChildTimecode(elt, "Position", marker.Position);
        switch (type.Name)
        {
        case "CDMarker":
        case "Marker":
            ChildString(elt, "Label", marker.Label);
            break;

        case "Region":
        case "CDRegion":
            Region region = (Region)marker;
            ChildTimecode(elt, "Length", region.Length);
            ChildTimecode(elt, "End", region.End);
            ChildString(elt, "Label", region.Label);
            break;

        case "CommandMarker":
            CommandMarker commandMarker = (CommandMarker)marker;
            ChildObject(elt, "CommandType", commandMarker.CommandType);
            ChildString(elt, "CommandParameter", commandMarker.CommandParameter);
            ChildString(elt, "Comment", commandMarker.Comment);
            break;

        default:
            break;
        }
    }
Ejemplo n.º 4
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.º 5
0
        public void SetMarker(string marker)
        {
            var m = string.Format("§{0}#", marker);

            if (string.IsNullOrEmpty(CommandMarker) || CommandMarker.Contains(m))
            {
                CommandMarker = string.Format("{0}{1}", CommandMarker ?? string.Empty, m);
            }
        }
Ejemplo n.º 6
0
        public Configuration(string path, Report report, CommandMarker commandMarker, bool stopOnFirstError)
        {
            Checker.CheckNotNull(path);

            Checker.CheckNotNull(report);

            Checker.CheckNotNull(commandMarker);

            this.Path = path;

            this.Report = report;

            this.CommandMarker = commandMarker;

            this.StopOnFirstError = stopOnFirstError;
        }
Ejemplo n.º 7
0
    void ImportMarker(XmlElement parent, IList markers, String type)
    {
        Timecode position = ChildTimecode(parent, "Position");
        Marker   marker   = null;
        String   label    = String.Empty;
        Timecode length   = null;

        switch (type)
        {
        case "Markers":
            try { label = ChildString(parent, "Label"); } catch {}
            marker = new Marker(position, label);
            break;

        case "CDIndices":
            try { label = ChildString(parent, "Label"); } catch {}
            marker = new CDMarker(position, label);
            break;

        case "Regions":
            length = ChildTimecode(parent, "Length");
            try { label = ChildString(parent, "Label"); } catch {}
            marker = new Region(position, length, label);
            break;

        case "CDTracks":
            length = ChildTimecode(parent, "Length");
            try { label = ChildString(parent, "Label"); } catch {}
            marker = new CDRegion(position, length);
            break;

        case "CommandMarkers":
            MarkerCommandType command = new MarkerCommandType(ChildString(parent, "CommandType"));
            String            param   = String.Empty;
            try { ChildString(parent, "CommandParameter"); } catch {}
            String comment = String.Empty;
            try { ChildString(parent, "Comment"); } catch {}
            marker = new CommandMarker(position, command, param, comment);
            break;

        default:
            throw new ApplicationException("Unknown marker type: " + type);
        }
        markers.Add(marker);
    }
Ejemplo n.º 8
0
        private static Result<FileNode> Recognize(string path, string text, bool buildTree)
        {
            Report report = default(Report);

            CommandMarker commandMarker = new CommandMarker();

            bool stopOnFirstError = true;

            bool newCommand = default(bool);

            ITree tree = default(ITree);

            text = MRecognizer.FixText(text);

            do
            {
                try
                {
                    report = new Report();

                    newCommand = false;

                    ANTLRStringStream characters = new ANTLRStringStream(text);

                    MatlabLexer lexer = new MatlabLexer(characters, new Configuration(path, report, commandMarker, stopOnFirstError));

                    ExtendedTokenStream tokens = new ExtendedTokenStream(lexer, (int)Channel.Default);

                    MatlabParser parser = new MatlabParser(tokens, new Configuration(path, report, commandMarker, stopOnFirstError));

                    var scope = parser.file();

                    tree = (ITree)scope.Tree;
                }
                catch (CommandException)
                {
                    newCommand = true;
                }
                catch (StopException)
                {
                    break;
                }
                catch (Exception ex)
                {
                    report.AddError(path, 0, 0, ex.Message ?? string.Empty);
                }
            }
            while (report.IsOk && newCommand);

            if (report.IsOk && buildTree)
            {
                FileNode buildNode = TreeToNodeBuilder.Build(path, tree);

                return new Result<FileNode>(buildNode, new ReadOnlyReport(report));
            }
            else
            {
                return new Result<FileNode>(null, new ReadOnlyReport(report));
            }
        }
Ejemplo n.º 9
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++);
                }
            }
        }
    public void FromVegas(Vegas vegas)
    {
        Project proj = vegas.Project;

        foreach (Track track in proj.Tracks)
        {
            foreach (TrackEvent trackEvent in track.Events)
            {
                if (!trackEvent.Selected)
                {
                    continue;
                }
                Take activeTake = trackEvent.ActiveTake;
                if (null == activeTake)
                {
                    continue;
                }
                Media media = activeTake.Media;
                if (null == media)
                {
                    continue;
                }
                if (IsPairedAudioEvent(trackEvent, media))
                {
                    continue;
                }
                Timecode eventStart = trackEvent.Start;
                Timecode eventEnd   = eventStart + trackEvent.Length;
                Timecode takeOffset = activeTake.Offset;
                Timecode position;
                foreach (MediaCommandMarker mcm in media.CommandMarkers)
                {
                    position = mcm.Position + eventStart - takeOffset;
                    if (position < eventStart || position > eventEnd)
                    {
                        continue;
                    }
                    CommandMarker commandmarker = new CommandMarker(position, mcm.CommandType, /*param*/ mcm.CommandParameter, /*comment*/ mcm.Label);
                    try
                    {
                        proj.CommandMarkers.Add(commandmarker);
                    }
                    catch (Exception e)
                    {
                        AddError(e, mcm, position);
                    }
                }
            }
        }
        if (0 < myErrors.Count)
        {
            StringBuilder msg = new StringBuilder();
            msg.Append("Some problems occured in promoting the selected media command markers to the project level:\r\n");
            foreach (String err in myErrors)
            {
                msg.Append("\r\n");
                msg.Append(err);
            }
            MessageBox.Show(msg.ToString());
        }
    }
Ejemplo n.º 11
0
    /// ==============================================
    /// <summary>
    ///
    /// </summary>
    public void UnitCommandRutine()
    {
        if (this.status != PUMStatus.IDLE && this.status != PUMStatus.COMMAND)
        {
            return;
        }

        if (this.selectedUnits.Count == 0)
        {
            return;
        }

        // Empezamos a comandar
        if (Input.GetMouseButtonDown(1))
        {
            this.status = PUMStatus.COMMAND;

            Ray   ray = sceneCamera.ScreenPointToRay(Input.mousePosition);
            float distance;
            groundPlane.Raycast(ray, out distance);

            this.commandPosition = ray.GetPoint(distance);

            var go = Instantiate(this.commandMarkerPrfb, this.commandPosition, Quaternion.identity);

            this.marker = go.GetComponent <CommandMarker>();
        }

        if (this.status == PUMStatus.COMMAND)
        {
            if (Input.GetAxis("Mouse X") != 0 || Input.GetAxis("Mouse Y") != 0)
            {
                Ray   ray = sceneCamera.ScreenPointToRay(Input.mousePosition);
                float distance;
                groundPlane.Raycast(ray, out distance);

                Vector3 point = ray.GetPoint(distance);

                this.marker.RotateTo((point - this.commandPosition).normalized);
                this.commandRotation = this.marker.transform.rotation;
            }
        }

        // Terminamos de comandar
        if (Input.GetMouseButtonUp(1))
        {
            this.status = PUMStatus.IDLE;

            float index = 0;

            foreach (Unit u in this.selectedUnits)
            {
                Vector3 offset = Walk.GetPhyllotaxisOffsetByIndex(index, 2);

                u.ExecuteOrder(this.commandPosition + offset, this.commandRotation);

                index++;
            }

            this.marker.End();
        }
    }