script fix please

CDM wrote on 1/26/2009, 8:23 AM
can anyone help fix this script so it works?

It's supposed to go through a project and strip out all unused takes from all events.

thanks!


using Sony.Vegas;
using System.Windows.Forms;
using System.Collections;

public class EntryPoint
{
public void FromVegas(Vegas vegas)
{
try
{
ArrayList removeThese = new ArrayList();
// step through all video events:
foreach (Track track in Vegas.Project.Tracks) {
foreach (TrackEvent evnt in track.Events) {
foreach (Take take in evnt.Takes) {
if (!take.IsActive) {
removeThese.Add(take);
}
}
foreach (Take take in removeThese)
{
evnt.Takes.Remove(take);
}
removeThese.Clear();
}
}
}
catch (errorMsg)
{
MessageBox.Show(errorMsg, "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
}
}

Comments

Rosebud wrote on 1/26/2009, 9:17 AM

// "Keep Active Take Only.cs" Script for Vegas 8
// Author Gilles Pialat
// Last update 01/26/2009

using System;
using Sony.Vegas;

public class EntryPoint
{
public void FromVegas(Vegas vegas)
{
MediaStream mediaStream;
Take take;
Timecode offset;
foreach (Track track in vegas.Project.Tracks)
{
foreach (TrackEvent evnt in track.Events)
{
if (evnt.Takes.Count != 0)
{
mediaStream = evnt.ActiveTake.MediaStream;
take = new Take(mediaStream, true, evnt.ActiveTake.Name);
offset = evnt.ActiveTake.Offset;
evnt.Takes.Clear();
evnt.Takes.Add(take);
evnt.ActiveTake.Offset = offset;
}
}
}
}
}
CDM wrote on 1/26/2009, 9:55 AM
thank you Gilles!