void ImportEnvelope(XmlElement elt, Envelopes envelopes) { EnvelopeType type = ChildEnvelopeType(elt, "Type"); Boolean isSurroundMode = (myVegas.Project.Audio.MasterBusMode == AudioBusMode.Surround); Envelope envelope = null; switch (type) { case EnvelopeType.PanY: case EnvelopeType.PanSmoothness: case EnvelopeType.PanCenter: // skip surround-related envelopes if not in surround mode if (!isSurroundMode) { return; } // make sure the surround pan position x envelope exists Envelope panEnvelope = envelopes.FindByType(EnvelopeType.Pan); if (null == panEnvelope) { panEnvelope = new Envelope(EnvelopeType.Pan); envelopes.Add(panEnvelope); } envelope = envelopes.FindByType(type); if (null == envelope) { throw new ApplicationException("Failed to create envelope of type: " + type.ToString()); } break; default: envelope = new Envelope(type); envelopes.Add(envelope); break; } ImportPoints(elt, envelope.Points); }
public void FromVegas(Vegas vegas) { Project proj = vegas.Project; /*foreach (Track track in proj.Tracks) * { * //Audio detection for later on... * if(track.Name == "Sync"){ * //MessageBox.Show("Audio a Sync detectado"); * foreach (TrackEvent trackEvent in track.Events) * { * if(trackEvent.MediaType == MediaType.Audio){ * * } * } * } * * }*/ foreach (Track track in proj.Tracks) { foreach (TrackEvent trackEvent in track.Events) { if (trackEvent.MediaType == MediaType.Video && trackEvent.Selected) { VideoEvent vevnt = (VideoEvent)trackEvent; Envelopes vevntEnv = vevnt.Envelopes; if (!vevntEnv.HasEnvelope(EnvelopeType.Velocity)) // Comprobamos si el video tiene envolvente { Envelope envelope = new Envelope(EnvelopeType.Velocity); vevntEnv.Add(envelope); } Envelope sensitivity = vevntEnv.FindByType(EnvelopeType.Velocity); sensitivity.Points.Clear(); Timecode timeFirst = trackEvent.Start; //Inicio del clip en milisegundos. Timecode timeLast = trackEvent.End; //Fin del clip en milisegundos. sensitivity.Points.GetPointAtX(Timecode.FromMilliseconds(0)).Y = 3; //Modificamos el valor del punto inicial foreach (Marker marker in proj.Markers) //Recorremos todos los marcadores { if (marker.Position > timeFirst && marker.Position < timeLast && marker.Label == "") // Miramos si el marcador esta dentro del video { if (sensitivity.Points.GetPointAtX(marker.Position - timeFirst) == null) // Comprobamos que no exista ya un punto en dicha posicion. { EnvelopePoint point = new EnvelopePoint(marker.Position - timeFirst, 0.15); //Creamos un nuevo punto en el marcador sensitivity.Points.Add(point); } } } EnvelopePoint pointEnd = new EnvelopePoint(timeLast, 3); //Añadimos el punto final sensitivity.Points.Add(pointEnd); } } } }