NAME(S)

     <MovieObject> init,
     <MovieObject> getnumstreams,
     <MovieObject> getstreamtype,
     <MovieObject> getstream,
     <MovieObject> getclipstart,
     <MovieObject> getclipend,
     <MovieObject> allocflag,
     <MovieObject> addstream,
     <MovieObject> astext,
     <MovieObject> getclip,
     <MovieObject> find,
     <MovieObject> snap,
     <MovieObject> getstart,
     <MovieObject> getend,
     <MovieObject> clear,
     <MovieObject> shift,
     <MovieObject> foreach,
     <MovieObject> addclip,
     <MovieObject> mergestream,
     <MovieObject> addhook,
     <MovieObject> gethooks,
     <MovieObject> clearhooks,
     <MovieObject> removehook,


SYNOPSIS

     <MovieObject> init ?playList?

     <MovieObject> getnumstreams

     <MovieObject> getstreamtype <idx>

     <MovieObject> getstream <idx>

     <MovieObject> getclipstart <trk> <idx>

     <MovieObject> getclipend <trk> <idx>

     <MovieObject> allocflag

     <MovieObject> addstream <idx> <strmTxt>

     <MovieObject> astext ?trks?

     <MovieObject> getclip <trk> <indx>

     <MovieObject> find <trk> <time>

     <MovieObject> snap <trk> <time> <dist>

     <MovieObject> getstart ?trks?

     <MovieObject> getend ?trks?

     <MovieObject> clear <trks> <start> <end>

     <MovieObject> shift <trks> <start> <delta>

     <MovieObject>  foreach  <trks>  <start>  <end>   <streamVar>
     <clipVar> <script>

     <MovieObject> addclip <trk> <clip> <args>

     <MovieObject> mergestream <trks> <src>

     <MovieObject> addhook <hookN> <script>

     <MovieObject> gethooks <hookN>

     <MovieObject> clearhooks ?hookList?

     <MovieObject> removehook <hookN> <script>


DESCRIPTION

     Stores a CM movie as an otcl object.  Supports  edit  opera-
     tions.   Movie  is  represented  as  a  collection of Stream
     objects.  These can be passed directly to  display  objects,
     such as the video & audio widgets.



  <MovieObject> init ?playList?
     Movie is init'ed to be equivalent to playList

  <MovieObject> getnumstreams
     Returns the number of streams in the movie.

  <MovieObject> getstreamtype <idx>
     Returns the type of the idx'th stream of the movie.

  <MovieObject> getstream <idx>
     Returns the stream object  for  the  idx'th  stream  of  the
     movie.

  <MovieObject> getclipstart <trk> <idx>
     Returns the logical start time of the idx'th clip in  stream
     $trk.

  <MovieObject> getclipend <trk> <idx>
     Returns the logical end time of the idx'th  clip  in  stream
     $trk.

  <MovieObject> allocflag
     Returns the flag number of  an  unused  change  flag.   This
     flagNumber can then be used in calls to the clipflag method.
     These flags are automatically set whenever an editing method
     changes a clip.

  <MovieObject> addstream <idx> <strmTxt>
     Inserts a stream at position 'idx' in the movie stream list.
     $idx  can  equal  "end"  and will then cause an append.  The
     stream text should  follow  the  same  format  as  a  stream
     description  in  a playList. A minimum strmTxt would be just
     the stream type, i.e. video or audio.

  <MovieObject> astext ?trks?
     Returns a playList description of the movie.  If a  list  of
     tracks  is given, then only those tracks are included in the
     output.

  <MovieObject> getclip <trk> <indx>
     Returns a fully resolved clip description (a text list)  for
     the indexed clip.

  <MovieObject> find <trk> <time>
     Returns the index of the clip that contains the given  logi-
     cal time in the given stream.  If no clip contains the time,
     then the first following lcip is returned.  The return is  a
     tcl  list  of  {clipIdx flag} where flag is true if the time
     falls within a clip.

  <MovieObject> snap <trk> <time> <dist>
     If there is a clip boundry within $dist of $time  in  stream
     number $stream, then the time of the closest clip boundry is
     returned.  Otherwise $time is returned unchanged.   This  is
     usefull for implementing "snapping" functions in GUIs.

  <MovieObject> getstart ?trks?
     Returns the start time of the given  track  or  the  minimum
     starting  time  if multipule stream indexes are given ($trks
     can be a list of indexes or "all").  If no clips are defined
     in any of the given streams, then zero is returned.

  <MovieObject> getend ?trks?
     Returns the end time of  the  given  track  or  the  maximum
     starting  time  if multipule stream indexes are given ($trks
     can be a list of indexes or "all").  If no clips are defined
     in any of the given streams, then zero is returned.

  <MovieObject> clear <trks> <start> <end>
     Deletes all information in the  given  time  range  for  the
     listed stream or streams ($trk can be a stream index, a list
     of indexes or "all").  If clips are partially  in  the  time
     range, they are cropped.


  <MovieObject> shift <trks> <start> <delta>
     Moves all clips  on  or  after  $start  time  in  the  given
     track(s)  by $delta time units (e.g. adds delta to the logi-
     cal start and end times).  If delta is  negative,  clips  in
     the  region  behind  $start  are  deleted.  Clips which span
     $start are split in two.  $start may equal "start".

  <MovieObject> foreach <trks> <start> <end> <streamVar>
     Executes $script for each clip in the given  time  range  on
     the  specified track(s).  Within script $streamVar is set to
     the name of the stream object currently executing.  $clipVar
     is set to the clip index of the current clip.

  <MovieObject> addclip <trk> <clip> <args>
     returns the {trackNum clipNum} of new clips, as a list.

  <MovieObject> mergestream <trks> <src>
     Maps equivalent typed traclks for src to self add  addclip's
     all  the  clips.  Only $trks are effected.  Unmatched tracks
     are discarded.

  <MovieObject> addhook <hookN> <script>
  <MovieObject> gethooks <hookN>
     Returns the list of all scripts which have been added to the
     named  hook.  These  scripts  are all executed when the hook
     event occures.

  <MovieObject> clearhooks ?hookList?
     Removes all bound scripts for the named hooks (or "all").

  <MovieObject> removehook <hookN> <script>
     Removes one script matching $script from the list of scripts
     which execute when the even $hookN occures.


AUTHOR

     Eric Baldeschwieler, eric14@cs.berkeley.edu