/**
 * This script will add a 15 second test pattern to the selected track
 * Written By: Edward Troxel
 * Modified: 04-23-2003
 **/

import System;
import System.IO;
import System.Windows.Forms;
import SonicFoundry.Vegas;


try {

  var track = FindTrack("Current");
  if (null == track)
      throw "no selected track";

  //Determine whether the file exists and the current cursor timecoded
  var cursorTimecode = Vegas.Cursor;

  var media = CreateGeneratedMedia("Sonic Foundry Test Pattern","SMPTE Bars (NTSC)");
  var stream = media.Streams[0];
  var newEvent = new VideoEvent(cursorTimecode, stream.length);
  track.Events.Add(newEvent);
  var take = new Take(stream);
  newEvent.Takes.Add(take);  

  //Now set the one second fade in and fade out
  newEvent.Length = new Timecode("00:00:15:00");


} catch (e) {
    MessageBox.Show(e);
}


function FindTrack(WhichTrack) : Track {
  var trackEnum = new Enumerator(Vegas.Project.Tracks);
  var PrevTrack : Track = Track(trackEnum.item());
  while (!trackEnum.atEnd()) {
    var track : Track = Track(trackEnum.item());
    if (WhichTrack == "Current") {
        if (track.Selected) {
            return track;
        }
    }
    if (WhichTrack == "Previous") {
        if (track.Selected) {
            return PrevTrack;
        }
    }
    if (track.Name == WhichTrack) {
        return track;
    }
    trackEnum.moveNext();
  }
  return null;
}

function CreateGeneratedMedia(generatorName, presetName) {
  var generator = Vegas.Generators.GetChildByName(generatorName);
  var media = new Media(generator, presetName);
  if (!media.IsValid()) {
      throw "failed to create media; " + generatorName + " (" + presetName + ")";
  }
  return media;
}
