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)); }
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; } }
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 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); } }
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; }
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); }
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)); } }
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()); } }
/// ============================================== /// <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(); } }