home *** CD-ROM | disk | FTP | other *** search
/ CLIX - Fazer Clix Custa Nix / CLIX-CD.cdr / mac / lib / Mac / Movies.xs < prev    next >
Text File  |  1998-04-05  |  79KB  |  4,190 lines

  1. /* $Header: /home/neeri/MacCVS/MacPerl/perl/ext/Mac/ExtUtils/MakeToolboxModule,v 1.1 1997/04/07 20:49:35 neeri Exp 
  2.  *    Copyright (c) 1997 Matthias Neeracher
  3.  *
  4.  *    You may distribute under the terms of the Perl Artistic License,
  5.  *    as specified in the README file.
  6.  *
  7.  * $Log: MakeToolboxModule,v  Revision 1.1  1997/04/07 20:49:35  neeri
  8.  */
  9.  
  10. #define MAC_CONTEXT
  11.  
  12. #include "EXTERN.h"
  13. #include "perl.h"
  14. #include "XSUB.h"
  15. #include <Types.h>
  16. #include <Movies.h>
  17.  
  18. typedef EventRecord * ToolboxEvent;
  19. typedef short         Fix16;
  20.  
  21. static TimeRecord   sNoZero;
  22.  
  23. #ifndef __CFM68K__
  24. #include <FixMath.h>
  25. #else
  26. #define fixed1              ((Fixed) 0x00010000L)
  27. #define fract1              ((Fract) 0x40000000L)
  28. #define positiveInfinity    ((long)  0x7FFFFFFFL)
  29. #define negativeInfinity    ((long)  0x80000000L)
  30.  
  31. extern pascal long double Frac2X(Fract x) = 0xA845;
  32. extern pascal long double Fix2X(Fixed x) = 0xA843;
  33. extern pascal Fixed X2Fix(long double x) = 0xA844;
  34. extern pascal Fract X2Frac(long double x) = 0xA846;
  35. #endif
  36.  
  37. pascal Boolean ActionFilter(ComponentInstance mc, short *action, void *params)
  38. {
  39.     Boolean result;
  40.     
  41.     dSP ;
  42.  
  43.     ENTER ;
  44.     SAVETMPS;
  45.  
  46.     PUSHMARK(sp) ;
  47.     XS_XPUSH(ComponentInstance,     mc);
  48.     XS_XPUSH(short,             *action);
  49.     switch (*action) {
  50.     case mcActionIdle:
  51.     case mcActionActivate:
  52.     case mcActionDeactivate:
  53.     case mcActionControllerSizeChanged:
  54.         break;                                          /* No arguments */
  55.     case mcActionDraw:
  56.         XS_XPUSH(GrafPtr, (GrafPtr)params);             /* Window */
  57.         break;                  
  58.     case mcActionMouseDown:
  59.     case mcActionKey:
  60.         XS_XPUSH(ToolboxEvent, (ToolboxEvent)params);   /* Event */
  61.         break;  
  62.     case mcActionPlay:
  63.         XS_XPUSH(Fixed, (Fixed)params);                 /* Fixed */
  64.         break;
  65.     case mcActionGoToTime:
  66.     case mcActionSetSelectionBegin:
  67.     case mcActionSetSelectionDuration:
  68.         XS_XPUSH(TimeRecord, *(TimeRecord *)params);        /* TimeRecord */
  69.         break;
  70.     case mcActionSetVolume:
  71.     case mcActionGetVolume:
  72.         XS_XPUSH(Fix16, *(Fix16 *)params);              /* 16 bit fixed */
  73.         break;
  74.     case mcActionStep:
  75.     case mcActionSetLooping:
  76.     case mcActionSetLoopIsPalindrome:
  77.     case mcActionSetKeysEnabled:
  78.     case mcActionSetPlaySelection:
  79.     case mcActionSetUseBadge:
  80.     case mcActionSetFlags:
  81.     case mcActionSetPlayEveryFrame:
  82.     case mcActionSetCursorSettingEnabled:
  83.         XS_XPUSH(long, (long)params);                   /* long */
  84.         break;
  85.     case mcActionGetLooping:
  86.     case mcActionGetLoopIsPalindrome:
  87.     case mcActionGetKeysEnabled:
  88.     case mcActionGetPlaySelection:
  89.     case mcActionGetUseBadge:
  90.     case mcActionGetPlayEveryFrame:
  91.     case mcActionGetCursorSettingEnabled:
  92.     case mcActionShowBalloon:
  93.         XS_XPUSH(Boolean, *(Boolean *)params);          /* Ptr to Boolean */
  94.         break;
  95.     case mcActionGetFlags:
  96.         XS_XPUSH(long, *(long *)params);                    /* Ptr to long */
  97.         break;
  98.     case mcActionSetGrowBoxBounds:
  99.         XS_XPUSH(Rect, *(Rect *)params);                    /* Ptr to Rect */
  100.         break;
  101.     }
  102.     PUTBACK ;
  103.  
  104.     perl_call_pv("Mac::Movies::_ActionFilter", G_SCALAR);
  105.  
  106.     SPAGAIN ;
  107.  
  108.     result = (Boolean)POPi;
  109.  
  110.     PUTBACK ;
  111.     FREETMPS ;
  112.     LEAVE ;
  113.     
  114.     return result;
  115. }
  116.  
  117. #if TARGET_RT_MAC_CFM
  118. static RoutineDescriptor    uActionFilter = 
  119.         BUILD_ROUTINE_DESCRIPTOR(uppMCActionFilterProcInfo, ActionFilter);
  120. #else
  121. #define uActionFilter *(MCActionFilterUPP)&ActionFilter
  122. #endif
  123.  
  124. MODULE = Mac::Movies    PACKAGE = Mac::Movies
  125.  
  126. =head2 Functions
  127.  
  128. =over 4
  129.  
  130. =item EnterMovies 
  131.  
  132. Start QuickTime processing.
  133.  
  134. =cut
  135. MacOSRet
  136. EnterMovies()
  137.  
  138. =item ExitMovies 
  139.  
  140. End QuickTime processing.
  141.  
  142. =cut
  143. void
  144. ExitMovies()
  145.  
  146. =item GetMoviesError()
  147.  
  148. =cut
  149.  
  150. =item GetMoviesError 
  151.  
  152. Get error value from last QuickTime call.
  153.  
  154. =cut
  155. MacOSRet
  156. GetMoviesError()
  157.  
  158. =item GetMoviesStickyError 
  159.  
  160. Get first error since last call of C<ClearMoviesStickyError>.
  161.  
  162. =cut
  163. MacOSRet
  164. GetMoviesStickyError()
  165.  
  166. =item ClearMoviesStickyError 
  167.  
  168. Clear sticky error.
  169.  
  170. =cut
  171. void
  172. ClearMoviesStickyError()
  173.  
  174. =begin ignore
  175. void
  176. SetMoviesErrorProc(errProc, refcon)
  177.     MoviesErrorUPP  errProc
  178.     long    refcon
  179.  
  180. =end ignore
  181.  
  182. =cut
  183.  
  184. =item MoviesTask [MOVIE [, MAXTIMETOUSE]]
  185.  
  186. Update a specified movie or all active movies.
  187.  
  188. =cut
  189. void
  190. MoviesTask(theMovie=nil, maxMilliSecToUse=5000)
  191.     Movie   theMovie
  192.     long    maxMilliSecToUse
  193.  
  194. =item PrerollMovie MOVIE, TIME [, RATE]
  195.  
  196. Prepare a portion of a movie for playback.
  197.  
  198. =cut
  199. MacOSRet
  200. PrerollMovie(theMovie, time, Rate=fixed1)
  201.     Movie   theMovie
  202.     long    time
  203.     Fixed   Rate
  204.  
  205. =item LoadMovieIntoRam MOVIE, TIME, DURATION, FLAGS
  206.  
  207. Load a movie's data into memory.
  208.  
  209. =cut
  210. MacOSRet
  211. LoadMovieIntoRam(theMovie, time, duration, flags)
  212.     Movie   theMovie
  213.     long    time
  214.     long    duration
  215.     long    flags
  216.  
  217. =item LoadTrackIntoRam TRACK, TIME, DURATION, FLAGS
  218.  
  219. Load a track's data into memory.
  220.  
  221. =cut
  222. MacOSRet
  223. LoadTrackIntoRam(theTrack, time, duration, flags)
  224.     Track   theTrack
  225.     long    time
  226.     long    duration
  227.     long    flags
  228.  
  229. =item LoadMediaIntoRam MEDIA, TIME, DURATION, FLAGS
  230.  
  231. Load a media's data into memory.
  232.  
  233. =cut
  234. MacOSRet
  235. LoadMediaIntoRam(theMedia, time, duration, flags)
  236.     Media   theMedia
  237.     long    time
  238.     long    duration
  239.     long    flags
  240.  
  241. =item SetMovieActive MOVIE, ACTIVE
  242.  
  243. Activate or deactivate a movie.
  244.  
  245. =cut
  246. void
  247. SetMovieActive(theMovie, active)
  248.     Movie   theMovie
  249.     Boolean active
  250.  
  251. =item GetMovieActive THEMOVIE 
  252.  
  253. Get activation state of a movie.
  254.  
  255. =cut
  256. Boolean
  257. GetMovieActive(theMovie)
  258.     Movie   theMovie
  259.  
  260. =item StartMovie MOVIE
  261.  
  262. Start a movie.
  263.  
  264. =cut
  265. void
  266. StartMovie(theMovie)
  267.     Movie   theMovie
  268.  
  269. =item StopMovie MOVIE
  270.  
  271. Stop a movie.
  272.  
  273. =cut
  274. void
  275. StopMovie(theMovie)
  276.     Movie   theMovie
  277.  
  278. =item GoToBeginningOfMovie MOVIE
  279.  
  280. Rewind a movie.
  281.  
  282. =cut
  283. void
  284. GoToBeginningOfMovie(theMovie)
  285.     Movie   theMovie
  286.  
  287. =item GoToEndOfMovie MOVIE
  288.  
  289. Go to the end of a movie.
  290.  
  291. =cut
  292. void
  293. GoToEndOfMovie(theMovie)
  294.     Movie   theMovie
  295.  
  296. =item IsMovieDone THEMOVIE 
  297.  
  298. Check whether movie has finished playing.
  299.  
  300. =cut
  301. Boolean
  302. IsMovieDone(theMovie)
  303.     Movie   theMovie
  304.  
  305. =item GetMoviePreviewMode THEMOVIE 
  306.  
  307. =cut
  308. Boolean
  309. GetMoviePreviewMode(theMovie)
  310.     Movie   theMovie
  311.  
  312. =item SetMoviePreviewMode MOVIE, PREVIEW
  313.  
  314. Switch movie between preview tracks only and all tracks.
  315.  
  316. =cut
  317. void
  318. SetMoviePreviewMode(theMovie, usePreview)
  319.     Movie   theMovie
  320.     Boolean usePreview
  321.  
  322. =item ShowMoviePoster MOVIE
  323.  
  324. Show poster view of movie.
  325.  
  326. =cut
  327. void
  328. ShowMoviePoster(theMovie)
  329.     Movie   theMovie
  330.  
  331. =item PlayMoviePreview MOVIE
  332.  
  333. Play a preview of the movie.
  334.  
  335. =cut
  336. void
  337. PlayMoviePreview(theMovie, callOutProc=0, refcon=0)
  338.     Movie   theMovie
  339.     long    callOutProc
  340.     long    refcon
  341.     CODE:
  342.     PlayMoviePreview(theMovie, 0, refcon);
  343.  
  344. =item GetMovieTimeBase THEMOVIE 
  345.  
  346. Returns the time base of a movie.
  347.  
  348. =cut
  349. TimeBase
  350. GetMovieTimeBase(theMovie)
  351.     Movie   theMovie
  352.  
  353. =item SetMovieMasterTimeBase MOVIE, BASE [, SLAVEZERO]
  354.  
  355. Set the time base of a movie.
  356.  
  357. =cut
  358. void
  359. SetMovieMasterTimeBase(theMovie, tb, slaveZero=sNoZero)
  360.     Movie       theMovie
  361.     TimeBase    tb
  362.     TimeRecord &slaveZero
  363.     CODE:
  364.     SetMovieMasterTimeBase(theMovie, tb, items == 3 ? &slaveZero : nil);
  365.  
  366. =item SetMovieMasterClock MOVIE, CLOCK [, SLAVEZERO]
  367.  
  368. Set the master clock component of a movie.
  369.  
  370. =cut
  371. void
  372. SetMovieMasterClock(theMovie, clockMeister, slaveZero=sNoZero)
  373.     Movie       theMovie
  374.     Component   clockMeister
  375.     TimeRecord &slaveZero
  376.     CODE:
  377.     SetMovieMasterClock(theMovie, clockMeister, items == 3 ? &slaveZero : nil);
  378.  
  379. =item GetMovieGWorld THEMOVIE 
  380.  
  381. Get the graphics world of a movie.
  382.  
  383.     ($port,$gdev) = GetMoviewGWorld($movie);
  384.  
  385. =cut
  386. void
  387. GetMovieGWorld(theMovie)
  388.     Movie   theMovie
  389.     PPCODE:
  390.     {
  391.         GrafPtr     port;
  392.         GDHandle    gdh;
  393.         
  394.         GetMovieGWorld(theMovie, (CGrafPtr *)&port, &gdh);
  395.         EXTEND(sp, 2);
  396.         XS_PUSH(GrafPtr,   port);
  397.         XS_PUSH(GWorldPtr, gdh);
  398.     }
  399.  
  400.  
  401. =item SetMovieGWorld THEMOVIE [, PORT [, GDH ]]
  402.  
  403. Set the graphics world for a movie.
  404.  
  405. =cut
  406. void
  407. SetMovieGWorld(theMovie, port=nil, gdh=nil)
  408.     Movie       theMovie
  409.     GrafPtr     port
  410.     GDHandle    gdh
  411.     CODE:
  412.     SetMovieGWorld(theMovie, (CGrafPtr)port, gdh);
  413.  
  414. =begin ignore   
  415. void
  416. SetMovieDrawingCompleteProc(theMovie, flags, proc, refCon)
  417.     Movie   theMovie
  418.     long    flags
  419.     MovieDrawingCompleteUPP proc
  420.     long    refCon
  421.  
  422. =end ignore
  423.  
  424. =cut
  425.  
  426. =item GetMovieNaturalBoundsRect MOVIE
  427.  
  428. Rect
  429. GetMovieNaturalBoundsRect(theMovie)
  430.     Movie   theMovie
  431.     CODE:
  432.     GetMovieNaturalBoundsRect(theMovie, &RETVAL);
  433.     OUTPUT:
  434.     RETVAL
  435.  
  436.  
  437. =item GetNextTrackForCompositing THEMOVIE, THETRACK 
  438.  
  439. =cut
  440. Track
  441. GetNextTrackForCompositing(theMovie, theTrack)
  442.     Movie   theMovie
  443.     Track   theTrack
  444.  
  445.  
  446. =item GetPrevTrackForCompositing THEMOVIE, THETRACK 
  447.  
  448. =cut
  449. Track
  450. GetPrevTrackForCompositing(theMovie, theTrack)
  451.     Movie   theMovie
  452.     Track   theTrack
  453.  
  454. =begin ignore
  455. MacOSRet
  456. SetMovieCompositeBufferFlags(theMovie, flags)
  457.     Movie   theMovie
  458.     long    flags
  459.  
  460. long
  461. GetMovieCompositeBufferFlags(theMovie)
  462.     Movie   theMovie
  463.     CODE:
  464.     gLastMacOSErr = GetMovieCompositeBufferFlags(theMovie, &RETVAL);
  465.     if (gLastMacOSErr) { 
  466.         XSRETURN_UNDEF; 
  467.     }
  468.     OUTPUT:
  469.     RETVAL
  470.  
  471. void
  472. SetTrackGWorld(theTrack, port, gdh, proc, refCon)
  473.     Track   theTrack
  474.     CGrafPtr    port
  475.     GDHandle    gdh
  476.     TrackTransferUPP    proc
  477.     long    refCon
  478.  
  479. =end ignore
  480.  
  481. =cut
  482.  
  483.  
  484.  
  485. =item GetMoviePict THEMOVIE, TIME 
  486.  
  487. Get a picture of a movie at some specified time.
  488.  
  489. =cut
  490. PicHandle
  491. GetMoviePict(theMovie, time)
  492.     Movie   theMovie
  493.     long    time
  494.  
  495.  
  496. =item GetTrackPict THETRACK, TIME 
  497.  
  498. Get a picture of a track at some specified time.
  499.  
  500. =cut
  501. PicHandle
  502. GetTrackPict(theTrack, time)
  503.     Track   theTrack
  504.     long    time
  505.  
  506.  
  507. =item GetMoviePosterPict THEMOVIE 
  508.  
  509. Get the poster picture of a movie.
  510.  
  511. =cut
  512. PicHandle
  513. GetMoviePosterPict(theMovie)
  514.     Movie   theMovie
  515.  
  516.  
  517. =item UpdateMovie THEMOVIE 
  518.  
  519. Update parts of a movie that need refreshing.
  520.  
  521. =cut
  522. MacOSRet
  523. UpdateMovie(theMovie)
  524.     Movie   theMovie
  525.  
  526. =begin ignore
  527. MacOSRet
  528. InvalidateMovieRegion(theMovie, invalidRgn)
  529.     Movie       theMovie
  530.     RgnHandle   invalidRgn
  531.  
  532. =end ignore
  533.  
  534. =cut
  535.  
  536.  
  537. =item GetMovieBox THEMOVIE 
  538.  
  539. Return a movie's boundary rectangle.
  540.  
  541. =cut
  542. Rect
  543. GetMovieBox(theMovie)
  544.     Movie   theMovie
  545.     CODE:
  546.     GetMovieBox(theMovie, &RETVAL);
  547.     OUTPUT:
  548.     RETVAL
  549.  
  550.  
  551. =item SetMovieBox THEMOVIE, BOXRECT 
  552.  
  553. Set the boundary rectangle for a movie.
  554.  
  555. =cut
  556. void
  557. SetMovieBox(theMovie, boxRect)
  558.     Movie  theMovie
  559.     Rect  &boxRect
  560.  
  561.  
  562. =item GetMovieDisplayClipRgn THEMOVIE 
  563.  
  564. Get the display clip region for a movie.
  565.  
  566. =cut
  567. RgnHandle
  568. GetMovieDisplayClipRgn(theMovie)
  569.     Movie   theMovie
  570.  
  571.  
  572. =item SetMovieDisplayClipRgn THEMOVIE, THECLIP 
  573.  
  574. Set the display clip region for a movie.
  575.  
  576. =cut
  577. void
  578. SetMovieDisplayClipRgn(theMovie, theClip)
  579.     Movie       theMovie
  580.     RgnHandle   theClip
  581.  
  582.  
  583. =item GetMovieClipRgn THEMOVIE 
  584.  
  585. Get the clipping region for a movie.
  586.  
  587. =cut
  588. RgnHandle
  589. GetMovieClipRgn(theMovie)
  590.     Movie   theMovie
  591.  
  592.  
  593. =item SetMovieClipRgn THEMOVIE, THECLIP 
  594.  
  595. Set the clipping region for a movie.
  596.  
  597. =cut
  598. void
  599. SetMovieClipRgn(theMovie, theClip)
  600.     Movie       theMovie
  601.     RgnHandle   theClip
  602.  
  603.  
  604. =item GetTrackClipRgn THETRACK 
  605.  
  606. Get the clipping region for a track.
  607.  
  608. =cut
  609. RgnHandle
  610. GetTrackClipRgn(theTrack)
  611.     Track   theTrack
  612.  
  613.  
  614. =item SetTrackClipRgn THETRACK, THECLIP 
  615.  
  616. Set the clipping region for a track.
  617.  
  618. =cut
  619. void
  620. SetTrackClipRgn(theTrack, theClip)
  621.     Track       theTrack
  622.     RgnHandle   theClip
  623.  
  624.  
  625. =item GetMovieDisplayBoundsRgn THEMOVIE 
  626.  
  627. =cut
  628. RgnHandle
  629. GetMovieDisplayBoundsRgn(theMovie)
  630.     Movie   theMovie
  631.  
  632.  
  633. =item GetTrackDisplayBoundsRgn THETRACK 
  634.  
  635. =cut
  636. RgnHandle
  637. GetTrackDisplayBoundsRgn(theTrack)
  638.     Track   theTrack
  639.  
  640.  
  641. =item GetMovieBoundsRgn THEMOVIE 
  642.  
  643. =cut
  644. RgnHandle
  645. GetMovieBoundsRgn(theMovie)
  646.     Movie   theMovie
  647.  
  648.  
  649. =item GetTrackMovieBoundsRgn THETRACK 
  650.  
  651. =cut
  652. RgnHandle
  653. GetTrackMovieBoundsRgn(theTrack)
  654.     Track   theTrack
  655.  
  656.  
  657. =item GetTrackBoundsRgn THETRACK 
  658.  
  659. =cut
  660. RgnHandle
  661. GetTrackBoundsRgn(theTrack)
  662.     Track   theTrack
  663.  
  664.  
  665. =item GetTrackMatte THETRACK 
  666.  
  667. =cut
  668. PixMapHandle
  669. GetTrackMatte(theTrack)
  670.     Track   theTrack
  671.  
  672.  
  673. =item SetTrackMatte THETRACK, THEMATTE 
  674.  
  675. =cut
  676. void
  677. SetTrackMatte(theTrack, theMatte)
  678.     Track       theTrack
  679.     PixMapHandle    theMatte
  680.  
  681.  
  682. =item DisposeMatte THEMATTE 
  683.  
  684. =cut
  685. void
  686. DisposeMatte(theMatte)
  687.     PixMapHandle    theMatte
  688.  
  689.  
  690. =item NewMovie FLAGS 
  691.  
  692. Create a new movie.
  693.  
  694. =cut
  695. Movie
  696. NewMovie(flags)
  697.     long    flags
  698.  
  699.  
  700. =item PutMovieIntoHandle THEMOVIE, PUBLICMOVIE 
  701.  
  702. =cut
  703. MacOSRet
  704. PutMovieIntoHandle(theMovie, publicMovie)
  705.     Movie   theMovie
  706.     Handle  publicMovie
  707.  
  708. =begin ignore
  709. MacOSRet
  710. PutMovieIntoDataFork(theMovie, fRefNum, offset, maxSize)
  711.     Movie   theMovie
  712.     short   fRefNum
  713.     long    offset
  714.     long    maxSize
  715.  
  716. =end ignore
  717.  
  718. =cut
  719.  
  720.  
  721.  
  722. =item DisposeMovie THEMOVIE 
  723.  
  724. Delete a movie.
  725.  
  726. =cut
  727. void
  728. DisposeMovie(theMovie)
  729.     Movie   theMovie
  730.  
  731.  
  732. =item GetMovieCreationTime THEMOVIE 
  733.  
  734. =cut
  735. long
  736. GetMovieCreationTime(theMovie)
  737.     Movie   theMovie
  738.  
  739.  
  740. =item GetMovieModificationTime THEMOVIE 
  741.  
  742. =cut
  743. long
  744. GetMovieModificationTime(theMovie)
  745.     Movie   theMovie
  746.  
  747.  
  748. =item GetMovieTimeScale THEMOVIE 
  749.  
  750. =cut
  751. long
  752. GetMovieTimeScale(theMovie)
  753.     Movie   theMovie
  754.  
  755.  
  756. =item SetMovieTimeScale THEMOVIE, TIMESCALE 
  757.  
  758. =cut
  759. void
  760. SetMovieTimeScale(theMovie, timeScale)
  761.     Movie       theMovie
  762.     long        timeScale
  763.  
  764.  
  765. =item GetMovieDuration THEMOVIE 
  766.  
  767. =cut
  768. long
  769. GetMovieDuration(theMovie)
  770.     Movie   theMovie
  771.  
  772.  
  773. =item GetMovieRate THEMOVIE 
  774.  
  775. =cut
  776. Fixed
  777. GetMovieRate(theMovie)
  778.     Movie   theMovie
  779.  
  780.  
  781. =item SetMovieRate THEMOVIE, RATE 
  782.  
  783. =cut
  784. void
  785. SetMovieRate(theMovie, rate)
  786.     Movie   theMovie
  787.     Fixed   rate
  788.  
  789.  
  790. =item GetMoviePreferredRate THEMOVIE 
  791.  
  792. =cut
  793. Fixed
  794. GetMoviePreferredRate(theMovie)
  795.     Movie   theMovie
  796.  
  797.  
  798. =item SetMoviePreferredRate THEMOVIE, RATE 
  799.  
  800. =cut
  801. void
  802. SetMoviePreferredRate(theMovie, rate)
  803.     Movie   theMovie
  804.     Fixed   rate
  805.  
  806.  
  807. =item GetMoviePreferredVolume THEMOVIE 
  808.  
  809. =cut
  810. short
  811. GetMoviePreferredVolume(theMovie)
  812.     Movie   theMovie
  813.  
  814.  
  815. =item SetMoviePreferredVolume THEMOVIE, VOLUME 
  816.  
  817. =cut
  818. void
  819. SetMoviePreferredVolume(theMovie, volume)
  820.     Movie   theMovie
  821.     short   volume
  822.  
  823.  
  824. =item GetMovieVolume THEMOVIE 
  825.  
  826. =cut
  827. short
  828. GetMovieVolume(theMovie)
  829.     Movie   theMovie
  830.  
  831.  
  832. =item SetMovieVolume THEMOVIE, VOLUME 
  833.  
  834. =cut
  835. void
  836. SetMovieVolume(theMovie, volume)
  837.     Movie   theMovie
  838.     short   volume
  839.  
  840.  
  841. =item GetMovieMatrix THEMOVIE 
  842.  
  843. =cut
  844. MatrixRecord
  845. GetMovieMatrix(theMovie)
  846.     Movie   theMovie
  847.     CODE:
  848.     GetMovieMatrix(theMovie, &RETVAL);
  849.  
  850.  
  851. =item SetMovieMatrix THEMOVIE, MATRIX 
  852.  
  853. =cut
  854. void
  855. SetMovieMatrix(theMovie, matrix)
  856.     Movie           theMovie
  857.     MatrixRecord &  matrix
  858.  
  859.  
  860. =item GetMoviePreviewTime THEMOVIE 
  861.  
  862. =cut
  863. void
  864. GetMoviePreviewTime(theMovie)
  865.     Movie   theMovie
  866.     PPCODE:
  867.     {
  868.         long  previewTime;
  869.         long  previewDuration;
  870.         
  871.         GetMoviePreviewTime(theMovie, &previewTime, &previewDuration);
  872.         EXTEND(sp, 2);
  873.         PUSHs(sv_2mortal(newSViv(previewTime)));
  874.         PUSHs(sv_2mortal(newSViv(previewDuration)));
  875.     }
  876.  
  877.  
  878. =item SetMoviePreviewTime THEMOVIE, PREVIEWTIME, PREVIEWDURATION 
  879.  
  880. =cut
  881. void
  882. SetMoviePreviewTime(theMovie, previewTime, previewDuration)
  883.     Movie   theMovie
  884.     long    previewTime
  885.     long    previewDuration
  886.  
  887.  
  888. =item GetMoviePosterTime THEMOVIE 
  889.  
  890. =cut
  891. long
  892. GetMoviePosterTime(theMovie)
  893.     Movie   theMovie
  894.  
  895.  
  896. =item SetMoviePosterTime THEMOVIE, POSTERTIME 
  897.  
  898. =cut
  899. void
  900. SetMoviePosterTime(theMovie, posterTime)
  901.     Movie   theMovie
  902.     long    posterTime
  903.  
  904.  
  905. =item GetMovieSelection THEMOVIE 
  906.  
  907. =cut
  908. void
  909. GetMovieSelection(theMovie)
  910.     Movie   theMovie
  911.     PPCODE:
  912.     {
  913.         long  selectionTime;
  914.         long  selectionDuration;
  915.         
  916.         GetMovieSelection(theMovie, &selectionTime, &selectionDuration);
  917.         EXTEND(sp, 2);
  918.         PUSHs(sv_2mortal(newSViv(selectionTime)));
  919.         PUSHs(sv_2mortal(newSViv(selectionDuration)));
  920.     }
  921.  
  922.  
  923. =item SetMovieSelection THEMOVIE, SELECTIONTIME, SELECTIONDURATION 
  924.  
  925. =cut
  926. void
  927. SetMovieSelection(theMovie, selectionTime, selectionDuration)
  928.     Movie   theMovie
  929.     long    selectionTime
  930.     long    selectionDuration
  931.  
  932.  
  933. =item SetMovieActiveSegment THEMOVIE, STARTTIME, DURATION 
  934.  
  935. =cut
  936. void
  937. SetMovieActiveSegment(theMovie, startTime, duration)
  938.     Movie   theMovie
  939.     long    startTime
  940.     long    duration
  941.  
  942.  
  943. =item GetMovieActiveSegment THEMOVIE 
  944.  
  945. =cut
  946. void
  947. GetMovieActiveSegment(theMovie)
  948.     Movie   theMovie
  949.     PPCODE:
  950.     {
  951.         long  startTime;
  952.         long  duration;
  953.         
  954.         GetMovieActiveSegment(theMovie, &startTime, &duration);
  955.         EXTEND(sp, 2);
  956.         PUSHs(sv_2mortal(newSViv(startTime)));
  957.         PUSHs(sv_2mortal(newSViv(duration)));
  958.     }
  959.  
  960.  
  961. =item GetMovieTime THEMOVIE 
  962.  
  963. =cut
  964. void
  965. GetMovieTime(theMovie)
  966.     Movie   theMovie
  967.     PPCODE:
  968.     {
  969.         long        TV;
  970.         TimeRecord  currentTime;
  971.         
  972.         TV = GetMovieTime(theMovie, ¤tTime);
  973.         EXTEND(sp, 2);
  974.         XS_PUSH(long, TV);
  975.         XS_PUSH(TimeRecord, currentTime);
  976.     }
  977.  
  978.  
  979. =item SetMovieTime THEMOVIE, NEWTIME 
  980.  
  981. =cut
  982. void
  983. SetMovieTime(theMovie, newtime)
  984.     Movie       theMovie
  985.     TimeRecord &newtime
  986.  
  987.  
  988. =item SetMovieTimeValue THEMOVIE, NEWTIME 
  989.  
  990. =cut
  991. void
  992. SetMovieTimeValue(theMovie, newtime)
  993.     Movie   theMovie
  994.     long    newtime
  995.  
  996.  
  997. =item GetMovieUserData THEMOVIE 
  998.  
  999. =cut
  1000. UserData
  1001. GetMovieUserData(theMovie)
  1002.     Movie   theMovie
  1003.  
  1004.  
  1005. =item GetMovieTrackCount THEMOVIE 
  1006.  
  1007. =cut
  1008. long
  1009. GetMovieTrackCount(theMovie)
  1010.     Movie   theMovie
  1011.  
  1012.  
  1013. =item GetMovieTrack THEMOVIE, TRACKID 
  1014.  
  1015. =cut
  1016. Track
  1017. GetMovieTrack(theMovie, trackID)
  1018.     Movie   theMovie
  1019.     long    trackID
  1020.  
  1021.  
  1022. =item GetMovieIndTrack THEMOVIE, INDEX 
  1023.  
  1024. =cut
  1025. Track
  1026. GetMovieIndTrack(theMovie, index)
  1027.     Movie   theMovie
  1028.     long    index
  1029.  
  1030.  
  1031. =item GetMovieIndTrackType THEMOVIE, INDEX, TRACKTYPE, FLAGS 
  1032.  
  1033. =cut
  1034. Track
  1035. GetMovieIndTrackType(theMovie, index, trackType, flags)
  1036.     Movie   theMovie
  1037.     long    index
  1038.     OSType  trackType
  1039.     long    flags
  1040.  
  1041.  
  1042. =item GetTrackID THETRACK 
  1043.  
  1044. =cut
  1045. long
  1046. GetTrackID(theTrack)
  1047.     Track   theTrack
  1048.  
  1049.  
  1050. =item GetTrackMovie THETRACK 
  1051.  
  1052. =cut
  1053. Movie
  1054. GetTrackMovie(theTrack)
  1055.     Track   theTrack
  1056.  
  1057.  
  1058. =item NewMovieTrack THEMOVIE, WIDTH, HEIGHT, TRACKVOLUME 
  1059.  
  1060. =cut
  1061. Track
  1062. NewMovieTrack(theMovie, width, height, trackVolume)
  1063.     Movie   theMovie
  1064.     Fixed   width
  1065.     Fixed   height
  1066.     short   trackVolume
  1067.  
  1068.  
  1069. =item DisposeMovieTrack THETRACK 
  1070.  
  1071. =cut
  1072. void
  1073. DisposeMovieTrack(theTrack)
  1074.     Track   theTrack
  1075.  
  1076.  
  1077. =item GetTrackCreationTime THETRACK 
  1078.  
  1079. =cut
  1080. long
  1081. GetTrackCreationTime(theTrack)
  1082.     Track   theTrack
  1083.  
  1084.  
  1085. =item GetTrackModificationTime THETRACK 
  1086.  
  1087. =cut
  1088. long
  1089. GetTrackModificationTime(theTrack)
  1090.     Track   theTrack
  1091.  
  1092.  
  1093. =item GetTrackEnabled THETRACK 
  1094.  
  1095. =cut
  1096. Boolean
  1097. GetTrackEnabled(theTrack)
  1098.     Track   theTrack
  1099.  
  1100.  
  1101. =item SetTrackEnabled THETRACK, ISENABLED 
  1102.  
  1103. =cut
  1104. void
  1105. SetTrackEnabled(theTrack, isEnabled)
  1106.     Track   theTrack
  1107.     Boolean isEnabled
  1108.  
  1109.  
  1110. =item GetTrackUsage THETRACK 
  1111.  
  1112. =cut
  1113. long
  1114. GetTrackUsage(theTrack)
  1115.     Track   theTrack
  1116.  
  1117.  
  1118. =item SetTrackUsage THETRACK, USAGE 
  1119.  
  1120. =cut
  1121. void
  1122. SetTrackUsage(theTrack, usage)
  1123.     Track   theTrack
  1124.     long    usage
  1125.  
  1126.  
  1127. =item GetTrackDuration THETRACK 
  1128.  
  1129. =cut
  1130. long
  1131. GetTrackDuration(theTrack)
  1132.     Track   theTrack
  1133.  
  1134.  
  1135. =item GetTrackOffset THETRACK 
  1136.  
  1137. =cut
  1138. long
  1139. GetTrackOffset(theTrack)
  1140.     Track   theTrack
  1141.  
  1142.  
  1143. =item SetTrackOffset THETRACK, MOVIEOFFSETTIME 
  1144.  
  1145. =cut
  1146. void
  1147. SetTrackOffset(theTrack, movieOffsetTime)
  1148.     Track   theTrack
  1149.     long    movieOffsetTime
  1150.  
  1151.  
  1152. =item GetTrackLayer THETRACK 
  1153.  
  1154. =cut
  1155. short
  1156. GetTrackLayer(theTrack)
  1157.     Track   theTrack
  1158.  
  1159.  
  1160. =item SetTrackLayer THETRACK, LAYER 
  1161.  
  1162. =cut
  1163. void
  1164. SetTrackLayer(theTrack, layer)
  1165.     Track   theTrack
  1166.     short   layer
  1167.  
  1168.  
  1169. =item GetTrackAlternate THETRACK 
  1170.  
  1171. =cut
  1172. Track
  1173. GetTrackAlternate(theTrack)
  1174.     Track   theTrack
  1175.  
  1176.  
  1177. =item SetTrackAlternate THETRACK, ALTERNATET 
  1178.  
  1179. =cut
  1180. void
  1181. SetTrackAlternate(theTrack, alternateT)
  1182.     Track   theTrack
  1183.     Track   alternateT
  1184.  
  1185.  
  1186. =item SetAutoTrackAlternatesEnabled THEMOVIE, ENABLE 
  1187.  
  1188. =cut
  1189. void
  1190. SetAutoTrackAlternatesEnabled(theMovie, enable)
  1191.     Movie   theMovie
  1192.     Boolean enable
  1193.  
  1194.  
  1195. =item SelectMovieAlternates THEMOVIE 
  1196.  
  1197. =cut
  1198. void
  1199. SelectMovieAlternates(theMovie)
  1200.     Movie   theMovie
  1201.  
  1202.  
  1203. =item GetTrackVolume THETRACK 
  1204.  
  1205. =cut
  1206. short
  1207. GetTrackVolume(theTrack)
  1208.     Track   theTrack
  1209.  
  1210.  
  1211. =item SetTrackVolume THETRACK, VOLUME 
  1212.  
  1213. =cut
  1214. void
  1215. SetTrackVolume(theTrack, volume)
  1216.     Track   theTrack
  1217.     short   volume
  1218.  
  1219.  
  1220. =item GetTrackMatrix THETRACK 
  1221.  
  1222. =cut
  1223. MatrixRecord
  1224. GetTrackMatrix(theTrack)
  1225.     Track   theTrack
  1226.     CODE:
  1227.     GetTrackMatrix(theTrack, &RETVAL);
  1228.     OUTPUT:
  1229.     RETVAL
  1230.  
  1231.  
  1232. =item SetTrackMatrix THETRACK, MATRIX 
  1233.  
  1234. =cut
  1235. void
  1236. SetTrackMatrix(theTrack, matrix)
  1237.     Track         theTrack
  1238.     MatrixRecord &matrix
  1239.  
  1240.  
  1241. =item GetTrackDimensions THETRACK 
  1242.  
  1243. =cut
  1244. void
  1245. GetTrackDimensions(theTrack)
  1246.     Track   theTrack
  1247.     PPCODE:
  1248.     {
  1249.         Fixed   width;
  1250.         Fixed   height;
  1251.         
  1252.         GetTrackDimensions(theTrack, &width, &height);
  1253.         
  1254.         EXTEND(sp, 2);
  1255.         PUSHs(sv_2mortal(newSVnv(Fix2X(width))));
  1256.         PUSHs(sv_2mortal(newSVnv(Fix2X(height))));
  1257.     }
  1258.  
  1259.  
  1260. =item SetTrackDimensions THETRACK, WIDTH, HEIGHT 
  1261.  
  1262. =cut
  1263. void
  1264. SetTrackDimensions(theTrack, width, height)
  1265.     Track   theTrack
  1266.     Fixed   width
  1267.     Fixed   height
  1268.  
  1269.  
  1270. =item GetTrackUserData THETRACK 
  1271.  
  1272. =cut
  1273. UserData
  1274. GetTrackUserData(theTrack)
  1275.     Track   theTrack
  1276.  
  1277. =begin ignore
  1278. MatrixRecord
  1279. GetTrackDisplayMatrix(theTrack)
  1280.     Track   theTrack
  1281.     CODE:
  1282.     gLastMacOSErr = GetTrackDisplayMatrix(theTrack, &RETVAL);
  1283.     if (gLastMacOSErr) { 
  1284.         XSRETURN_UNDEF; 
  1285.     }
  1286.     OUTPUT:
  1287.     RETVAL
  1288.  
  1289. Handle
  1290. GetTrackSoundLocalizationSettings(theTrack)
  1291.     Track   theTrack
  1292.     CODE:
  1293.     gLastMacOSErr = GetTrackSoundLocalizationSettings(theTrack, &RETVAL);
  1294.     if (gLastMacOSErr) { 
  1295.         XSRETURN_UNDEF; 
  1296.     }
  1297.     OUTPUT:
  1298.     RETVAL
  1299.  
  1300. MacOSRet
  1301. SetTrackSoundLocalizationSettings(theTrack, settings)
  1302.     Track   theTrack
  1303.     Handle  settings
  1304.  
  1305. =end ignore
  1306.  
  1307. =cut
  1308.  
  1309.  
  1310. =item NewTrackMedia THETRACK, MEDIATYPE, TIMESCALE, DATAREF, DATAREFTYPE 
  1311.  
  1312. =cut
  1313. Media
  1314. NewTrackMedia(theTrack, mediaType, timeScale, dataRef, dataRefType)
  1315.     Track   theTrack
  1316.     OSType  mediaType
  1317.     long    timeScale
  1318.     Handle  dataRef
  1319.     OSType  dataRefType
  1320.  
  1321.  
  1322. =item DisposeTrackMedia THEMEDIA 
  1323.  
  1324. =cut
  1325. void
  1326. DisposeTrackMedia(theMedia)
  1327.     Media   theMedia
  1328.  
  1329.  
  1330. =item GetTrackMedia THETRACK 
  1331.  
  1332. =cut
  1333. Media
  1334. GetTrackMedia(theTrack)
  1335.     Track   theTrack
  1336.  
  1337.  
  1338. =item GetMediaTrack THEMEDIA 
  1339.  
  1340. =cut
  1341. Track
  1342. GetMediaTrack(theMedia)
  1343.     Media   theMedia
  1344.  
  1345.  
  1346. =item GetMediaCreationTime THEMEDIA 
  1347.  
  1348. =cut
  1349. long
  1350. GetMediaCreationTime(theMedia)
  1351.     Media   theMedia
  1352.  
  1353.  
  1354. =item GetMediaModificationTime THEMEDIA 
  1355.  
  1356. =cut
  1357. long
  1358. GetMediaModificationTime(theMedia)
  1359.     Media   theMedia
  1360.  
  1361.  
  1362. =item GetMediaTimeScale THEMEDIA 
  1363.  
  1364. =cut
  1365. long
  1366. GetMediaTimeScale(theMedia)
  1367.     Media   theMedia
  1368.  
  1369.  
  1370. =item SetMediaTimeScale THEMEDIA, TIMESCALE 
  1371.  
  1372. =cut
  1373. void
  1374. SetMediaTimeScale(theMedia, timeScale)
  1375.     Media   theMedia
  1376.     long    timeScale
  1377.  
  1378.  
  1379. =item GetMediaDuration THEMEDIA 
  1380.  
  1381. =cut
  1382. long
  1383. GetMediaDuration(theMedia)
  1384.     Media   theMedia
  1385.  
  1386.  
  1387. =item GetMediaLanguage THEMEDIA 
  1388.  
  1389. =cut
  1390. short
  1391. GetMediaLanguage(theMedia)
  1392.     Media   theMedia
  1393.  
  1394.  
  1395. =item SetMediaLanguage THEMEDIA, LANGUAGE 
  1396.  
  1397. =cut
  1398. void
  1399. SetMediaLanguage(theMedia, language)
  1400.     Media   theMedia
  1401.     short   language
  1402.  
  1403.  
  1404. =item GetMediaQuality THEMEDIA 
  1405.  
  1406. =cut
  1407. short
  1408. GetMediaQuality(theMedia)
  1409.     Media   theMedia
  1410.  
  1411.  
  1412. =item SetMediaQuality THEMEDIA, QUALITY 
  1413.  
  1414. =cut
  1415. void
  1416. SetMediaQuality(theMedia, quality)
  1417.     Media   theMedia
  1418.     short   quality
  1419.  
  1420.  
  1421. =item GetMediaHandlerDescription THEMEDIA 
  1422.  
  1423. =cut
  1424. void
  1425. GetMediaHandlerDescription(theMedia)
  1426.     Media   theMedia
  1427.     PPCODE:
  1428.     {
  1429.         OSType  mediaType;
  1430.         Str255  creatorName;
  1431.         OSType  creatorManufacturer;
  1432.         
  1433.         GetMediaHandlerDescription(
  1434.             theMedia, &mediaType, creatorName, &creatorManufacturer);
  1435.         EXTEND(sp, 3);
  1436.         XS_PUSH(OSType, mediaType);
  1437.         XS_PUSH(Str255, creatorName);
  1438.         XS_PUSH(OSType, creatorManufacturer);
  1439.     }
  1440.  
  1441.  
  1442. =item GetMediaUserData THEMEDIA 
  1443.  
  1444. =cut
  1445. UserData
  1446. GetMediaUserData(theMedia)
  1447.     Media   theMedia
  1448.  
  1449.  
  1450. =item BeginMediaEdits THEMEDIA 
  1451.  
  1452. =cut
  1453. MacOSRet
  1454. BeginMediaEdits(theMedia)
  1455.     Media   theMedia
  1456.  
  1457.  
  1458. =item EndMediaEdits THEMEDIA 
  1459.  
  1460. =cut
  1461. MacOSRet
  1462. EndMediaEdits(theMedia)
  1463.     Media   theMedia
  1464.  
  1465.  
  1466. =item SetMediaDefaultDataRefIndex THEMEDIA, INDEX 
  1467.  
  1468. =cut
  1469. MacOSRet
  1470. SetMediaDefaultDataRefIndex(theMedia, index)
  1471.     Media   theMedia
  1472.     short   index
  1473.  
  1474.  
  1475. =item GetMediaDataHandlerDescription THEMEDIA, INDEX 
  1476.  
  1477. =cut
  1478. void
  1479. GetMediaDataHandlerDescription(theMedia, index)
  1480.     Media   theMedia
  1481.     short   index
  1482.     PPCODE:
  1483.     {
  1484.         OSType  dhType;
  1485.         Str255  creatorName;
  1486.         OSType  creatorManufacturer;
  1487.         
  1488.         GetMediaDataHandlerDescription(
  1489.             theMedia, index, &dhType, creatorName, &creatorManufacturer);
  1490.         EXTEND(sp, 3);
  1491.         XS_PUSH(OSType, dhType);
  1492.         XS_PUSH(Str255, creatorName);
  1493.         XS_PUSH(OSType, creatorManufacturer);
  1494.     }
  1495.  
  1496.  
  1497. =item GetMediaSampleDescriptionCount THEMEDIA 
  1498.  
  1499. =cut
  1500. long
  1501. GetMediaSampleDescriptionCount(theMedia)
  1502.     Media   theMedia
  1503.  
  1504.  
  1505. =item GetMediaSampleDescription THEMEDIA, INDEX 
  1506.  
  1507. =cut
  1508. SampleDescriptionHandle
  1509. GetMediaSampleDescription(theMedia, index)
  1510.     Media   theMedia
  1511.     long    index
  1512.     CODE:
  1513.     {
  1514.         RETVAL =  (SampleDescriptionHandle) NewHandle(sizeof(SampleDescription));
  1515.         GetMediaSampleDescription(theMedia, index, RETVAL);
  1516.     }
  1517.     OUTPUT:
  1518.     RETVAL
  1519.         
  1520.  
  1521. =item SetMediaSampleDescription THEMEDIA, INDEX, DESC 
  1522.  
  1523. =cut
  1524. MacOSRet
  1525. SetMediaSampleDescription(theMedia, index, desc)
  1526.     Media                   theMedia
  1527.     long                    index
  1528.     SampleDescriptionHandle desc
  1529.  
  1530.  
  1531. =item GetMediaSampleCount THEMEDIA 
  1532.  
  1533. =cut
  1534. long
  1535. GetMediaSampleCount(theMedia)
  1536.     Media   theMedia
  1537.  
  1538.  
  1539. =item SampleNumToMediaTime THEMEDIA, LOGICALSAMPLENUM, SAMPLETIME, SAMPLEDURATION 
  1540.  
  1541. =cut
  1542. void
  1543. SampleNumToMediaTime(theMedia, logicalSampleNum, sampleTime, sampleDuration)
  1544.     Media   theMedia
  1545.     long    logicalSampleNum
  1546.     PPCODE:
  1547.     {
  1548.         long  sampleTime;
  1549.         long  sampleDuration;
  1550.         
  1551.         SampleNumToMediaTime(theMedia, logicalSampleNum, &sampleTime, &sampleDuration);
  1552.         EXTEND(sp, 2);
  1553.         PUSHs(sv_2mortal(newSViv(sampleTime)));
  1554.         PUSHs(sv_2mortal(newSViv(sampleDuration)));
  1555.     }
  1556.  
  1557.  
  1558. =item MediaTimeToSampleNum THEMEDIA, TIME, SAMPLENUM, SAMPLETIME, SAMPLEDURATION 
  1559.  
  1560. =cut
  1561. void
  1562. MediaTimeToSampleNum(theMedia, time, sampleNum, sampleTime, sampleDuration)
  1563.     Media   theMedia
  1564.     long    time
  1565.     PPCODE:
  1566.     {
  1567.         long  sampleNum;
  1568.         long  sampleTime;
  1569.         long  sampleDuration;
  1570.         
  1571.         MediaTimeToSampleNum(theMedia, time, &sampleNum, &sampleTime, &sampleDuration);
  1572.         EXTEND(sp, 3);
  1573.         PUSHs(sv_2mortal(newSViv(sampleNum)));
  1574.         PUSHs(sv_2mortal(newSViv(sampleTime)));
  1575.         PUSHs(sv_2mortal(newSViv(sampleDuration)));
  1576.     }
  1577.  
  1578.  
  1579. =item AddMediaSample THEMEDIA, DATAIN, INOFFSET, SIZE, DURATIONPERSAMPLE, SAMPLEDESCRIPTIONH, NUMBEROFSAMPLES, SAMPLEFLAGS 
  1580.  
  1581. =cut
  1582. long
  1583. AddMediaSample(theMedia, dataIn, inOffset, size, durationPerSample, sampleDescriptionH, numberOfSamples, sampleFlags)
  1584.     Media   theMedia
  1585.     Handle  dataIn
  1586.     long    inOffset
  1587.     unsigned long   size
  1588.     long    durationPerSample
  1589.     SampleDescriptionHandle sampleDescriptionH
  1590.     long    numberOfSamples
  1591.     short   sampleFlags
  1592.     CODE:
  1593.     gLastMacOSErr = 
  1594.         AddMediaSample(
  1595.             theMedia, dataIn, inOffset, size, durationPerSample, 
  1596.             sampleDescriptionH, numberOfSamples, sampleFlags, &RETVAL);
  1597.     if (gLastMacOSErr) { 
  1598.         XSRETURN_UNDEF; 
  1599.     }
  1600.     OUTPUT:
  1601.     RETVAL
  1602.     
  1603.  
  1604. =item AddMediaSampleReference THEMEDIA, DATAOFFSET, SIZE, DURATIONPERSAMPLE, SAMPLEDESCRIPTIONH, NUMBEROFSAMPLES, SAMPLEFLAGS 
  1605.  
  1606. =cut
  1607. long
  1608. AddMediaSampleReference(theMedia, dataOffset, size, durationPerSample, sampleDescriptionH, numberOfSamples, sampleFlags)
  1609.     Media   theMedia
  1610.     long    dataOffset
  1611.     unsigned long   size
  1612.     long    durationPerSample
  1613.     SampleDescriptionHandle sampleDescriptionH
  1614.     long    numberOfSamples
  1615.     short   sampleFlags
  1616.     CODE:
  1617.     gLastMacOSErr = 
  1618.         AddMediaSampleReference(
  1619.             theMedia, dataOffset, size, durationPerSample, 
  1620.             sampleDescriptionH, numberOfSamples, sampleFlags, &RETVAL);
  1621.     if (gLastMacOSErr) { 
  1622.         XSRETURN_UNDEF; 
  1623.     }
  1624.     OUTPUT:
  1625.     RETVAL
  1626.  
  1627. =begin ignore
  1628. long
  1629. AddMediaSampleReferences(theMedia, sampleDescriptionH, numberOfSamples, sampleRefs)
  1630.     Media   theMedia
  1631.     SampleDescriptionHandle sampleDescriptionH
  1632.     long    numberOfSamples
  1633.     SampleReferencePtr  sampleRefs
  1634.     CODE:
  1635.     gLastMacOSErr = 
  1636.         AddMediaSampleReferences(
  1637.             theMedia, sampleDescriptionH, numberOfSamples, sampleRefs, &RETVAL);
  1638.     if (gLastMacOSErr) { 
  1639.         XSRETURN_UNDEF; 
  1640.     }
  1641.     OUTPUT:
  1642.     RETVAL
  1643.  
  1644. void
  1645. GetMediaSample(theMedia, dataOut, maxSizeToGrow, size, time, sampleTime, durationPerSample, sampleDescriptionH, sampleDescriptionIndex, maxNumberOfSamples, numberOfSamples, sampleFlags)
  1646.     Media   theMedia
  1647.     Handle  dataOut
  1648.     long    maxSizeToGrow
  1649.     long *  size
  1650.     long    time
  1651.     long *  sampleTime
  1652.     long *  durationPerSample
  1653.     SampleDescriptionHandle sampleDescriptionH
  1654.     long *  sampleDescriptionIndex
  1655.     long    maxNumberOfSamples
  1656.     long *  numberOfSamples
  1657.     short * sampleFlags
  1658.     PPCODE:
  1659.     gLastMacOSErr = 
  1660.     
  1661.  
  1662. MacOSRet
  1663. GetMediaSampleReference(theMedia, dataOffset, size, time, sampleTime, durationPerSample, sampleDescriptionH, sampleDescriptionIndex, maxNumberOfSamples, numberOfSamples, sampleFlags)
  1664.     Media   theMedia
  1665.     long *  dataOffset
  1666.     long *  size
  1667.     long    time
  1668.     long *  sampleTime
  1669.     long *  durationPerSample
  1670.     SampleDescriptionHandle sampleDescriptionH
  1671.     long *  sampleDescriptionIndex
  1672.     long    maxNumberOfSamples
  1673.     long *  numberOfSamples
  1674.     short * sampleFlags
  1675.  
  1676. MacOSRet
  1677. GetMediaSampleReferences(theMedia, time, sampleTime, sampleDescriptionH, sampleDescriptionIndex, maxNumberOfEntries, actualNumberofEntries, sampleRefs)
  1678.     Media   theMedia
  1679.     long    time
  1680.     long *  sampleTime
  1681.     SampleDescriptionHandle sampleDescriptionH
  1682.     long *  sampleDescriptionIndex
  1683.     long    maxNumberOfEntries
  1684.     long *  actualNumberofEntries
  1685.     SampleReferencePtr  sampleRefs
  1686.  
  1687. MacOSRet
  1688. SetMediaPreferredChunkSize(theMedia, maxChunkSize)
  1689.     Media   theMedia
  1690.     long    maxChunkSize
  1691.  
  1692. MacOSRet
  1693. GetMediaPreferredChunkSize(theMedia, maxChunkSize)
  1694.     Media   theMedia
  1695.     long *  maxChunkSize
  1696.  
  1697. MacOSRet
  1698. SetMediaShadowSync(theMedia, frameDiffSampleNum, syncSampleNum)
  1699.     Media   theMedia
  1700.     long    frameDiffSampleNum
  1701.     long    syncSampleNum
  1702.  
  1703. MacOSRet
  1704. GetMediaShadowSync(theMedia, frameDiffSampleNum, syncSampleNum)
  1705.     Media   theMedia
  1706.     long    frameDiffSampleNum
  1707.     long *  syncSampleNum
  1708.  
  1709. MacOSRet
  1710. InsertMediaIntoTrack(theTrack, trackStart, mediaTime, mediaDuration, mediaRate)
  1711.     Track   theTrack
  1712.     long    trackStart
  1713.     long    mediaTime
  1714.     long    mediaDuration
  1715.     Fixed   mediaRate
  1716.  
  1717. MacOSRet
  1718. InsertTrackSegment(srcTrack, dstTrack, srcIn, srcDuration, dstIn)
  1719.     Track   srcTrack
  1720.     Track   dstTrack
  1721.     long    srcIn
  1722.     long    srcDuration
  1723.     long    dstIn
  1724.  
  1725. MacOSRet
  1726. InsertMovieSegment(srcMovie, dstMovie, srcIn, srcDuration, dstIn)
  1727.     Movie   srcMovie
  1728.     Movie   dstMovie
  1729.     long    srcIn
  1730.     long    srcDuration
  1731.     long    dstIn
  1732.  
  1733. MacOSRet
  1734. InsertEmptyTrackSegment(dstTrack, dstIn, dstDuration)
  1735.     Track   dstTrack
  1736.     long    dstIn
  1737.     long    dstDuration
  1738.  
  1739. MacOSRet
  1740. InsertEmptyMovieSegment(dstMovie, dstIn, dstDuration)
  1741.     Movie   dstMovie
  1742.     long    dstIn
  1743.     long    dstDuration
  1744.  
  1745. MacOSRet
  1746. DeleteTrackSegment(theTrack, startTime, duration)
  1747.     Track   theTrack
  1748.     long    startTime
  1749.     long    duration
  1750.  
  1751. MacOSRet
  1752. DeleteMovieSegment(theMovie, startTime, duration)
  1753.     Movie   theMovie
  1754.     long    startTime
  1755.     long    duration
  1756.  
  1757. MacOSRet
  1758. ScaleTrackSegment(theTrack, startTime, oldDuration, newDuration)
  1759.     Track   theTrack
  1760.     long    startTime
  1761.     long    oldDuration
  1762.     long    newDuration
  1763.  
  1764. MacOSRet
  1765. ScaleMovieSegment(theMovie, startTime, oldDuration, newDuration)
  1766.     Movie   theMovie
  1767.     long    startTime
  1768.     long    oldDuration
  1769.     long    newDuration
  1770.  
  1771. =end ignore
  1772.  
  1773. =cut
  1774.  
  1775.  
  1776.  
  1777. =item CutMovieSelection THEMOVIE 
  1778.  
  1779. =cut
  1780. Movie
  1781. CutMovieSelection(theMovie)
  1782.     Movie   theMovie
  1783.  
  1784.  
  1785. =item CopyMovieSelection THEMOVIE 
  1786.  
  1787. =cut
  1788. Movie
  1789. CopyMovieSelection(theMovie)
  1790.     Movie   theMovie
  1791.  
  1792.  
  1793. =item PasteMovieSelection THEMOVIE, SRC 
  1794.  
  1795. =cut
  1796. void
  1797. PasteMovieSelection(theMovie, src)
  1798.     Movie   theMovie
  1799.     Movie   src
  1800.  
  1801.  
  1802. =item AddMovieSelection THEMOVIE, SRC 
  1803.  
  1804. =cut
  1805. void
  1806. AddMovieSelection(theMovie, src)
  1807.     Movie   theMovie
  1808.     Movie   src
  1809.  
  1810.  
  1811. =item ClearMovieSelection THEMOVIE 
  1812.  
  1813. =cut
  1814. void
  1815. ClearMovieSelection(theMovie)
  1816.     Movie   theMovie
  1817.  
  1818.  
  1819. =item PasteHandleIntoMovie H, HANDLETYPE, THEMOVIE [, FLAGS [, USERCOMP ]]
  1820.  
  1821. =cut
  1822. MacOSRet
  1823. PasteHandleIntoMovie(h, handleType, theMovie, flags=0, userComp=nil)
  1824.     Handle  h
  1825.     OSType  handleType
  1826.     Movie   theMovie
  1827.     long    flags
  1828.     ComponentInstance   userComp
  1829.  
  1830.  
  1831. =item PutMovieIntoTypedHandle THEMOVIE, TARGETTRACK, HANDLETYPE, PUBLICMOVIE, START, DUR [, FLAGS [, USERCOMP ]]
  1832.  
  1833. =cut
  1834. MacOSRet
  1835. PutMovieIntoTypedHandle(theMovie, targetTrack, handleType, publicMovie, start, dur, flags=0, userComp=0)
  1836.     Movie   theMovie
  1837.     Track   targetTrack
  1838.     OSType  handleType
  1839.     Handle  publicMovie
  1840.     long    start
  1841.     long    dur
  1842.     long    flags
  1843.     ComponentInstance   userComp
  1844.  
  1845.  
  1846. =item IsScrapMovie TARGETTRACK 
  1847.  
  1848. =cut
  1849. Component
  1850. IsScrapMovie(targetTrack)
  1851.     Track   targetTrack
  1852.  
  1853.  
  1854. =item CopyTrackSettings SRCTRACK, DSTTRACK 
  1855.  
  1856. =cut
  1857. MacOSRet
  1858. CopyTrackSettings(srcTrack, dstTrack)
  1859.     Track   srcTrack
  1860.     Track   dstTrack
  1861.  
  1862.  
  1863. =item CopyMovieSettings SRCMOVIE, DSTMOVIE 
  1864.  
  1865. =cut
  1866. MacOSRet
  1867. CopyMovieSettings(srcMovie, dstMovie)
  1868.     Movie   srcMovie
  1869.     Movie   dstMovie
  1870.  
  1871.  
  1872. =item AddEmptyTrackToMovie SRCTRACK, DSTMOVIE, DATAREF, DATAREFTYPE 
  1873.  
  1874. =cut
  1875. Track
  1876. AddEmptyTrackToMovie(srcTrack, dstMovie, dataRef, dataRefType)
  1877.     Track   srcTrack
  1878.     Movie   dstMovie
  1879.     Handle  dataRef
  1880.     OSType  dataRefType
  1881.     CODE:
  1882.     gLastMacOSErr = AddEmptyTrackToMovie(srcTrack, dstMovie, dataRef, dataRefType, &RETVAL);
  1883.     if (gLastMacOSErr) { 
  1884.         XSRETURN_UNDEF; 
  1885.     }
  1886.     OUTPUT:
  1887.     RETVAL  
  1888.  
  1889.  
  1890. =item NewMovieEditState THEMOVIE 
  1891.  
  1892. =cut
  1893. MovieEditState
  1894. NewMovieEditState(theMovie)
  1895.     Movie   theMovie
  1896.  
  1897.  
  1898. =item UseMovieEditState THEMOVIE, TOSTATE 
  1899.  
  1900. =cut
  1901. MacOSRet
  1902. UseMovieEditState(theMovie, toState)
  1903.     Movie   theMovie
  1904.     MovieEditState  toState
  1905.  
  1906.  
  1907. =item DisposeMovieEditState STATE 
  1908.  
  1909. =cut
  1910. MacOSRet
  1911. DisposeMovieEditState(state)
  1912.     MovieEditState  state
  1913.  
  1914.  
  1915. =item NewTrackEditState THETRACK 
  1916.  
  1917. =cut
  1918. TrackEditState
  1919. NewTrackEditState(theTrack)
  1920.     Track   theTrack
  1921.  
  1922.  
  1923. =item UseTrackEditState THETRACK, STATE 
  1924.  
  1925. =cut
  1926. MacOSRet
  1927. UseTrackEditState(theTrack, state)
  1928.     Track   theTrack
  1929.     TrackEditState  state
  1930.  
  1931.  
  1932. =item DisposeTrackEditState STATE 
  1933.  
  1934. =cut
  1935. MacOSRet
  1936. DisposeTrackEditState(state)
  1937.     TrackEditState  state
  1938.  
  1939.  
  1940. =item AddTrackReference THETRACK, REFTRACK, REFTYPE 
  1941.  
  1942. =cut
  1943. long
  1944. AddTrackReference(theTrack, refTrack, refType)
  1945.     Track   theTrack
  1946.     Track   refTrack
  1947.     OSType  refType
  1948.     CODE:
  1949.     gLastMacOSErr = AddTrackReference(theTrack, refTrack, refType, &RETVAL);
  1950.     if (gLastMacOSErr) { 
  1951.         XSRETURN_UNDEF; 
  1952.     }
  1953.     OUTPUT:
  1954.     RETVAL
  1955.  
  1956.  
  1957. =item DeleteTrackReference THETRACK, REFTYPE, INDEX 
  1958.  
  1959. =cut
  1960. MacOSRet
  1961. DeleteTrackReference(theTrack, refType, index)
  1962.     Track   theTrack
  1963.     OSType  refType
  1964.     long    index
  1965.  
  1966.  
  1967. =item SetTrackReference THETRACK, REFTRACK, REFTYPE, INDEX 
  1968.  
  1969. =cut
  1970. MacOSRet
  1971. SetTrackReference(theTrack, refTrack, refType, index)
  1972.     Track   theTrack
  1973.     Track   refTrack
  1974.     OSType  refType
  1975.     long    index
  1976.  
  1977.  
  1978. =item GetTrackReference THETRACK, REFTYPE, INDEX 
  1979.  
  1980. =cut
  1981. Track
  1982. GetTrackReference(theTrack, refType, index)
  1983.     Track   theTrack
  1984.     OSType  refType
  1985.     long    index
  1986.  
  1987.  
  1988. =item GetNextTrackReferenceType THETRACK, REFTYPE 
  1989.  
  1990. =cut
  1991. OSType
  1992. GetNextTrackReferenceType(theTrack, refType)
  1993.     Track   theTrack
  1994.     OSType  refType
  1995.  
  1996.  
  1997. =item GetTrackReferenceCount THETRACK, REFTYPE 
  1998.  
  1999. =cut
  2000. long
  2001. GetTrackReferenceCount(theTrack, refType)
  2002.     Track   theTrack
  2003.     OSType  refType
  2004.  
  2005.  
  2006. =item ConvertFileToMovieFile INPUTFILE, OUTPUTFILE, CREATOR, SCRIPTTAG [, FLAGS [, USERCOMP [, REFCON ]]]
  2007.  
  2008. =cut
  2009. short
  2010. ConvertFileToMovieFile(inputFile, outputFile, creator, scriptTag, flags=0, userComp=0, refCon=0)
  2011.     FSSpec &inputFile
  2012.     FSSpec &outputFile
  2013.     OSType  creator
  2014.     short   scriptTag
  2015.     long    flags
  2016.     ComponentInstance   userComp
  2017.     long    refCon
  2018.     CODE:
  2019.     gLastMacOSErr = 
  2020.         ConvertFileToMovieFile(
  2021.             &inputFile, &outputFile, creator, scriptTag, &RETVAL, flags, 
  2022.             userComp, 0, refCon);
  2023.     if (gLastMacOSErr) { 
  2024.         XSRETURN_UNDEF; 
  2025.     }
  2026.     OUTPUT:
  2027.     RETVAL
  2028.  
  2029.  
  2030. =item ConvertMovieToFile THEMOVIE, ONLYTRACK, OUTPUTFILE, FILETYPE, CREATOR, SCRIPTTAG [, FLAGS [, USERCOMP ]]
  2031.  
  2032. =cut
  2033. short
  2034. ConvertMovieToFile(theMovie, onlyTrack, outputFile, fileType, creator, scriptTag, flags=0, userComp=0)
  2035.     Movie   theMovie
  2036.     Track   onlyTrack
  2037.     FSSpec &outputFile
  2038.     OSType  fileType
  2039.     OSType  creator
  2040.     short   scriptTag
  2041.     long    flags
  2042.     ComponentInstance   userComp
  2043.     CODE:
  2044.     gLastMacOSErr = 
  2045.         ConvertMovieToFile(
  2046.             theMovie, onlyTrack, &outputFile, fileType, creator, scriptTag, 
  2047.             &RETVAL, flags, userComp);
  2048.     if (gLastMacOSErr) { 
  2049.         XSRETURN_UNDEF; 
  2050.     }
  2051.     OUTPUT:
  2052.     RETVAL
  2053.  
  2054.  
  2055. =item TrackTimeToMediaTime VALUE, THETRACK 
  2056.  
  2057. =cut
  2058. long
  2059. TrackTimeToMediaTime(value, theTrack)
  2060.     long    value
  2061.     Track   theTrack
  2062.  
  2063.  
  2064. =item GetTrackEditRate THETRACK, ATTIME 
  2065.  
  2066. =cut
  2067. Fixed
  2068. GetTrackEditRate(theTrack, atTime)
  2069.     Track   theTrack
  2070.     long    atTime
  2071.  
  2072.  
  2073. =item GetMovieDataSize THEMOVIE, STARTTIME, DURATION 
  2074.  
  2075. =cut
  2076. long
  2077. GetMovieDataSize(theMovie, startTime, duration)
  2078.     Movie   theMovie
  2079.     long    startTime
  2080.     long    duration
  2081.  
  2082.  
  2083. =item GetTrackDataSize THETRACK, STARTTIME, DURATION 
  2084.  
  2085. =cut
  2086. long
  2087. GetTrackDataSize(theTrack, startTime, duration)
  2088.     Track   theTrack
  2089.     long    startTime
  2090.     long    duration
  2091.  
  2092.  
  2093. =item GetMediaDataSize THEMEDIA, STARTTIME, DURATION 
  2094.  
  2095. =cut
  2096. long
  2097. GetMediaDataSize(theMedia, startTime, duration)
  2098.     Media   theMedia
  2099.     long    startTime
  2100.     long    duration
  2101.  
  2102.  
  2103. =item PtInMovie THEMOVIE, PT 
  2104.  
  2105. =cut
  2106. Boolean
  2107. PtInMovie(theMovie, pt)
  2108.     Movie   theMovie
  2109.     Point   pt
  2110.  
  2111.  
  2112. =item PtInTrack THETRACK, PT 
  2113.  
  2114. =cut
  2115. Boolean
  2116. PtInTrack(theTrack, pt)
  2117.     Track   theTrack
  2118.     Point   pt
  2119.  
  2120.  
  2121. =item SetMovieLanguage THEMOVIE, LANGUAGE 
  2122.  
  2123. =cut
  2124. void
  2125. SetMovieLanguage(theMovie, language)
  2126.     Movie   theMovie
  2127.     long    language
  2128.  
  2129.  
  2130. =item GetUserData THEUSERDATA, DATA, UDTYPE, INDEX 
  2131.  
  2132. =cut
  2133. MacOSRet
  2134. GetUserData(theUserData, data, udType, index)
  2135.     UserData    theUserData
  2136.     Handle  data
  2137.     OSType  udType
  2138.     long    index
  2139.  
  2140.  
  2141. =item AddUserData THEUSERDATA, DATA, UDTYPE 
  2142.  
  2143. =cut
  2144. MacOSRet
  2145. AddUserData(theUserData, data, udType)
  2146.     UserData    theUserData
  2147.     Handle  data
  2148.     OSType  udType
  2149.  
  2150.  
  2151. =item RemoveUserData THEUSERDATA, UDTYPE, INDEX 
  2152.  
  2153. =cut
  2154. MacOSRet
  2155. RemoveUserData(theUserData, udType, index)
  2156.     UserData    theUserData
  2157.     OSType  udType
  2158.     long    index
  2159.  
  2160.  
  2161. =item CountUserDataType THEUSERDATA, UDTYPE 
  2162.  
  2163. =cut
  2164. short
  2165. CountUserDataType(theUserData, udType)
  2166.     UserData    theUserData
  2167.     OSType  udType
  2168.  
  2169.  
  2170. =item GetNextUserDataType THEUSERDATA, UDTYPE 
  2171.  
  2172. =cut
  2173. long
  2174. GetNextUserDataType(theUserData, udType)
  2175.     UserData    theUserData
  2176.     OSType  udType
  2177.  
  2178. =begin ignore
  2179. MacOSRet
  2180. GetUserDataItem(theUserData, data, size, udType, index)
  2181.     UserData    theUserData
  2182.     void *  data
  2183.     long    size
  2184.     OSType  udType
  2185.     long    index
  2186.  
  2187. MacOSRet
  2188. SetUserDataItem(theUserData, data, size, udType, index)
  2189.     UserData    theUserData
  2190.     void *  data
  2191.     long    size
  2192.     OSType  udType
  2193.     long    index
  2194.  
  2195. =end ignore
  2196.  
  2197. =cut
  2198.  
  2199.  
  2200.  
  2201. =item AddUserDataText THEUSERDATA, DATA, UDTYPE, INDEX, ITLREGIONTAG 
  2202.  
  2203. =cut
  2204. MacOSRet
  2205. AddUserDataText(theUserData, data, udType, index, itlRegionTag)
  2206.     UserData    theUserData
  2207.     Handle  data
  2208.     OSType  udType
  2209.     long    index
  2210.     short   itlRegionTag
  2211.  
  2212.  
  2213. =item GetUserDataText THEUSERDATA, DATA, UDTYPE, INDEX, ITLREGIONTAG 
  2214.  
  2215. =cut
  2216. MacOSRet
  2217. GetUserDataText(theUserData, data, udType, index, itlRegionTag)
  2218.     UserData    theUserData
  2219.     Handle  data
  2220.     OSType  udType
  2221.     long    index
  2222.     short   itlRegionTag
  2223.  
  2224.  
  2225. =item RemoveUserDataText THEUSERDATA, UDTYPE, INDEX, ITLREGIONTAG 
  2226.  
  2227. =cut
  2228. MacOSRet
  2229. RemoveUserDataText(theUserData, udType, index, itlRegionTag)
  2230.     UserData    theUserData
  2231.     OSType  udType
  2232.     long    index
  2233.     short   itlRegionTag
  2234.  
  2235.  
  2236. =item NewUserData 
  2237.  
  2238. =cut
  2239. UserData
  2240. NewUserData()
  2241.     CODE:
  2242.     gLastMacOSErr = NewUserData(&RETVAL);
  2243.     if (gLastMacOSErr) { 
  2244.         XSRETURN_UNDEF; 
  2245.     }
  2246.     OUTPUT:
  2247.     RETVAL
  2248.  
  2249.  
  2250. =item DisposeUserData THEUSERDATA 
  2251.  
  2252. =cut
  2253. MacOSRet
  2254. DisposeUserData(theUserData)
  2255.     UserData    theUserData
  2256.  
  2257.  
  2258. =item NewUserDataFromHandle H 
  2259.  
  2260. =cut
  2261. UserData
  2262. NewUserDataFromHandle(h)
  2263.     Handle  h
  2264.     CODE:
  2265.     gLastMacOSErr = NewUserDataFromHandle(h, &RETVAL);
  2266.     if (gLastMacOSErr) { 
  2267.         XSRETURN_UNDEF; 
  2268.     }
  2269.     OUTPUT:
  2270.     RETVAL
  2271.  
  2272.  
  2273. =item PutUserDataIntoHandle THEUSERDATA, H 
  2274.  
  2275. =cut
  2276. MacOSRet
  2277. PutUserDataIntoHandle(theUserData, h)
  2278.     UserData    theUserData
  2279.     Handle  h
  2280.  
  2281.  
  2282. =item GetMediaNextInterestingTime THEMEDIA, INTERESTINGTIMEFLAGS, TIME, RATE 
  2283.  
  2284. =cut
  2285. void
  2286. GetMediaNextInterestingTime(theMedia, interestingTimeFlags, time, rate)
  2287.     Media   theMedia
  2288.     short   interestingTimeFlags
  2289.     long    time
  2290.     Fixed   rate
  2291.     PPCODE:
  2292.     {
  2293.         long    interestingTime;
  2294.         long    interestingDuration;
  2295.         
  2296.         GetMediaNextInterestingTime(theMedia, interestingTimeFlags, time, rate,
  2297.             &interestingTime, &interestingDuration);
  2298.             
  2299.         EXTEND(sp, 2);
  2300.         PUSHs(sv_2mortal(newSViv(interestingTime)));
  2301.         PUSHs(sv_2mortal(newSViv(interestingDuration)));
  2302.     }
  2303.  
  2304.  
  2305. =item GetTrackNextInterestingTime THETRACK, INTERESTINGTIMEFLAGS, TIME, RATE 
  2306.  
  2307. =cut
  2308. void
  2309. GetTrackNextInterestingTime(theTrack, interestingTimeFlags, time, rate)
  2310.     Track   theTrack
  2311.     short   interestingTimeFlags
  2312.     long    time
  2313.     Fixed   rate
  2314.     PPCODE:
  2315.     {
  2316.         long    interestingTime;
  2317.         long    interestingDuration;
  2318.         
  2319.         GetTrackNextInterestingTime(theTrack, interestingTimeFlags, time, rate,
  2320.             &interestingTime, &interestingDuration);
  2321.             
  2322.         EXTEND(sp, 2);
  2323.         PUSHs(sv_2mortal(newSViv(interestingTime)));
  2324.         PUSHs(sv_2mortal(newSViv(interestingDuration)));
  2325.     }
  2326.  
  2327.  
  2328. =item GetMovieNextInterestingTime THEMOVIE, INTERESTINGTIMEFLAGS, MEDIATYPES, TIME, RATE 
  2329.  
  2330. =cut
  2331. void
  2332. GetMovieNextInterestingTime(theMovie, interestingTimeFlags, mediaTypes, time, rate)
  2333.     Movie   theMovie
  2334.     short   interestingTimeFlags
  2335.     SV *    mediaTypes;
  2336.     long    time
  2337.     Fixed   rate
  2338.     PPCODE:
  2339.     {
  2340.         OSType **   theMediaTypes;
  2341.         long        interestingTime;
  2342.         long        interestingDuration;
  2343.         short       numMediaTypes;
  2344.         
  2345.         if (numMediaTypes = SvCUR(mediaTypes) >> 2) {
  2346.             PtrToHand(SvPV(mediaTypes, na), (Handle *)&theMediaTypes, numMediaTypes << 2);
  2347.             HLock((Handle)theMediaTypes);
  2348.             GetMovieNextInterestingTime(theMovie, interestingTimeFlags, 
  2349.                 numMediaTypes, *theMediaTypes, time, rate,
  2350.                 &interestingTime, &interestingDuration);
  2351.             DisposeHandle((Handle)theMediaTypes);
  2352.         } else
  2353.             GetMovieNextInterestingTime(theMovie, interestingTimeFlags, 
  2354.                 0, nil, time, rate,
  2355.                 &interestingTime, &interestingDuration);
  2356.             
  2357.         EXTEND(sp, 2);
  2358.         PUSHs(sv_2mortal(newSViv(interestingTime)));
  2359.         PUSHs(sv_2mortal(newSViv(interestingDuration)));
  2360.     }
  2361.  
  2362.  
  2363. =item CreateMovieFile FILESPEC, CREATOR, SCRIPTTAG, CREATEMOVIEFILEFLAGS 
  2364.  
  2365. =cut
  2366. void
  2367. CreateMovieFile(fileSpec, creator, scriptTag, createMovieFileFlags)
  2368.     FSSpec   &fileSpec
  2369.     OSType          creator
  2370.     short       scriptTag
  2371.     long            createMovieFileFlags
  2372.     PPCODE:
  2373.     {
  2374.         short   resRefNum;
  2375.         Movie   newmovie;
  2376.         
  2377.         gLastMacOSErr = 
  2378.             CreateMovieFile(
  2379.                 &fileSpec, creator, scriptTag, createMovieFileFlags, &resRefNum, &newmovie);
  2380.         if (gLastMacOSErr) { 
  2381.             XSRETURN_UNDEF; 
  2382.         }
  2383.         EXTEND(sp, 2);
  2384.         PUSHs(sv_2mortal(newSViv(resRefNum)));
  2385.         PUSHs(sv_setref_pv(sv_newmortal(), "Movie", newmovie));
  2386.     }
  2387.  
  2388.  
  2389. =item OpenMovieFile FILESPEC [, PERMISSION ]
  2390.  
  2391. =cut
  2392. short
  2393. OpenMovieFile(fileSpec, permission=fsRdPerm)
  2394.     FSSpec  &fileSpec
  2395.     SInt8           permission
  2396.     CODE:
  2397.     gLastMacOSErr = OpenMovieFile(&fileSpec, &RETVAL, permission);
  2398.     if (gLastMacOSErr) { 
  2399.         XSRETURN_UNDEF; 
  2400.     }
  2401.     OUTPUT:
  2402.     RETVAL
  2403.  
  2404.  
  2405. =item CloseMovieFile RESREFNUM 
  2406.  
  2407. =cut
  2408. MacOSRet
  2409. CloseMovieFile(resRefNum)
  2410.     short   resRefNum
  2411.  
  2412.  
  2413. =item DeleteMovieFile FILESPEC 
  2414.  
  2415. =cut
  2416. MacOSRet
  2417. DeleteMovieFile(fileSpec)
  2418.     FSSpec &fileSpec
  2419.  
  2420.  
  2421. =item NewMovieFromFile RESREFNUM, RESID, NEWMOVIEFLAGS 
  2422.  
  2423.   $movie = NewMovieFromFile($resourceFileRefNum, $resourceID, $movieFlags);
  2424.   
  2425.   ($movie,$resourceID,$resourceName,$dataRefWasChanged) =
  2426.       NewMovieFromFile($resourceFileRefNum, $resourceID, $movieFlags);
  2427.       
  2428. =cut
  2429. void
  2430. NewMovieFromFile(resRefNum, resId, newMovieFlags)
  2431.     short   resRefNum
  2432.     short   resId
  2433.     short   newMovieFlags
  2434.     PPCODE:
  2435.     {
  2436.         Movie   theMovie;
  2437.         Str255  resName;
  2438.         Boolean dataRefWasChanged;
  2439.         
  2440.         gLastMacOSErr = 
  2441.             NewMovieFromFile(
  2442.                 &theMovie, resRefNum, &resId, resName, newMovieFlags, &dataRefWasChanged);
  2443.         if (gLastMacOSErr) { 
  2444.             XSRETURN_UNDEF; 
  2445.         }
  2446.         XS_XPUSH(Movie, theMovie);  
  2447.         if (GIMME == G_ARRAY) {
  2448.             EXTEND(sp, 3);
  2449.             XS_PUSH(short, resId);
  2450.             XS_PUSH(Str255, resName);
  2451.             XS_PUSH(Boolean, dataRefWasChanged);
  2452.         }
  2453.     }
  2454.  
  2455.  
  2456. =item NewMovieFromHandle H, NEWMOVIEFLAGS 
  2457.  
  2458. =cut
  2459. void
  2460. NewMovieFromHandle(h, newMovieFlags)
  2461.     Handle  h
  2462.     short   newMovieFlags
  2463.     PPCODE:
  2464.     {
  2465.         Movie   theMovie;
  2466.         Boolean dataRefWasChanged;
  2467.         
  2468.         gLastMacOSErr = 
  2469.             NewMovieFromHandle(&theMovie, h, newMovieFlags, &dataRefWasChanged);
  2470.         if (gLastMacOSErr) { 
  2471.             XSRETURN_UNDEF; 
  2472.         }
  2473.         XS_XPUSH(Movie, theMovie);  
  2474.         if (GIMME == G_ARRAY) {
  2475.             XS_XPUSH(Boolean, dataRefWasChanged);
  2476.         }
  2477.     }
  2478.  
  2479.  
  2480. =item NewMovieFromDataFork FREFNUM, FILEOFFSET, NEWMOVIEFLAGS 
  2481.  
  2482. =cut
  2483. void
  2484. NewMovieFromDataFork(fRefNum, fileOffset, newMovieFlags)
  2485.     short   fRefNum
  2486.     long    fileOffset
  2487.     short   newMovieFlags
  2488.     PPCODE:
  2489.     {
  2490.         Movie   theMovie;
  2491.         Boolean dataRefWasChanged;
  2492.         
  2493.         gLastMacOSErr = 
  2494.             NewMovieFromDataFork(
  2495.                 &theMovie, fRefNum, fileOffset, newMovieFlags, &dataRefWasChanged);
  2496.         if (gLastMacOSErr) { 
  2497.             XSRETURN_UNDEF; 
  2498.         }
  2499.         XS_XPUSH(Movie, theMovie);  
  2500.         if (GIMME == G_ARRAY) {
  2501.             XS_XPUSH(Boolean, dataRefWasChanged);
  2502.         }
  2503.     }
  2504.  
  2505. =begin ignore
  2506. MacOSRet
  2507. NewMovieFromUserProc(m, flags, dataRefWasChanged, getProc, refCon, defaultDataRef, dataRefType)
  2508.     Movie * m
  2509.     short   flags
  2510.     Boolean *   dataRefWasChanged
  2511.     GetMovieUPP getProc
  2512.     void *  refCon
  2513.     Handle  defaultDataRef
  2514.     OSType  dataRefType
  2515.  
  2516. MacOSRet
  2517. NewMovieFromDataRef(m, flags, id, dataRef, dataRefType)
  2518.     Movie * m
  2519.     short   flags
  2520.     short * id
  2521.     Handle  dataRef
  2522.     OSType  dataRefType
  2523.  
  2524. =end ignore
  2525.  
  2526. =cut
  2527.  
  2528.  
  2529.  
  2530. =item AddMovieResource THEMOVIE, RESREFNUM, RESID, RESNAME 
  2531.  
  2532. =cut
  2533. short
  2534. AddMovieResource(theMovie, resRefNum, resId, resName)
  2535.     Movie   theMovie
  2536.     short   resRefNum
  2537.     short  &resId
  2538.     Str255  resName
  2539.     CODE:
  2540.     gLastMacOSErr = AddMovieResource(theMovie, resRefNum, &resId, resName);
  2541.     if (gLastMacOSErr) { 
  2542.         XSRETURN_UNDEF; 
  2543.     }
  2544.     RETVAL = resId;
  2545.     OUTPUT:
  2546.     RETVAL
  2547.  
  2548.  
  2549. =item UpdateMovieResource THEMOVIE, RESREFNUM, RESID, ... 
  2550.  
  2551. =cut
  2552. MacOSRet
  2553. UpdateMovieResource(theMovie, resRefNum, resId, ...)
  2554.     Movie   theMovie
  2555.     short   resRefNum
  2556.     short   resId
  2557.     CODE:
  2558.     {
  2559.         Str255  resName;
  2560.         
  2561.         if (items > 3) {
  2562.             memcpy(resName+1, SvPV(ST(3), na), SvCUR(ST(3)));
  2563.             RETVAL = UpdateMovieResource(theMovie, resRefNum, resId, resName);
  2564.         } else
  2565.             RETVAL = UpdateMovieResource(theMovie, resRefNum, resId, nil);
  2566.     }
  2567.     OUTPUT:
  2568.     RETVAL
  2569.  
  2570.  
  2571. =item RemoveMovieResource RESREFNUM, RESID 
  2572.  
  2573. =cut
  2574. MacOSRet
  2575. RemoveMovieResource(resRefNum, resId)
  2576.     short   resRefNum
  2577.     short   resId
  2578.  
  2579.  
  2580. =item HasMovieChanged THEMOVIE 
  2581.  
  2582. =cut
  2583. Boolean
  2584. HasMovieChanged(theMovie)
  2585.     Movie   theMovie
  2586.  
  2587.  
  2588. =item ClearMovieChanged THEMOVIE 
  2589.  
  2590. =cut
  2591. void
  2592. ClearMovieChanged(theMovie)
  2593.     Movie   theMovie
  2594.  
  2595. =begin ignore
  2596. MacOSRet
  2597. SetMovieDefaultDataRef(theMovie, dataRef, dataRefType)
  2598.     Movie   theMovie
  2599.     Handle  dataRef
  2600.     OSType  dataRefType
  2601.  
  2602. MacOSRet
  2603. GetMovieDefaultDataRef(theMovie, dataRef, dataRefType)
  2604.     Movie   theMovie
  2605.     Handle *    dataRef
  2606.     OSType *    dataRefType
  2607.  
  2608. MacOSRet
  2609. SetMovieColorTable(theMovie, ctab)
  2610.     Movie   theMovie
  2611.     CTabHandle  ctab
  2612.  
  2613. MacOSRet
  2614. GetMovieColorTable(theMovie, ctab)
  2615.     Movie   theMovie
  2616.     CTabHandle *    ctab
  2617.  
  2618. =end ignore
  2619.  
  2620. =cut
  2621.  
  2622.  
  2623.  
  2624. =item FlattenMovie THEMOVIE, MOVIEFLATTENFLAGS, THEFILE, CREATOR, SCRIPTTAG, CREATEMOVIEFILEFLAGS, RESID, RESNAME 
  2625.  
  2626. =cut
  2627. short
  2628. FlattenMovie(theMovie, movieFlattenFlags, theFile, creator, scriptTag, createMovieFileFlags, resId, resName)
  2629.     Movie   theMovie
  2630.     long    movieFlattenFlags
  2631.     FSSpec &theFile
  2632.     OSType  creator
  2633.     short   scriptTag
  2634.     long    createMovieFileFlags
  2635.     short  &resId
  2636.     Str255  resName
  2637.     CODE:
  2638.     FlattenMovie(
  2639.         theMovie, movieFlattenFlags, &theFile, creator, scriptTag, createMovieFileFlags, 
  2640.         &resId, resName);
  2641.     RETVAL = resId;
  2642.     OUTPUT:
  2643.     RETVAL
  2644.  
  2645.  
  2646. =item FlattenMovieData THEMOVIE, MOVIEFLATTENFLAGS, THEFILE, CREATOR, SCRIPTTAG, CREATEMOVIEFILEFLAGS 
  2647.  
  2648. =cut
  2649. Movie
  2650. FlattenMovieData(theMovie, movieFlattenFlags, theFile, creator, scriptTag, createMovieFileFlags)
  2651.     Movie   theMovie
  2652.     long    movieFlattenFlags
  2653.     FSSpec &theFile
  2654.     OSType  creator
  2655.     short   scriptTag
  2656.     long    createMovieFileFlags
  2657.  
  2658. =begin ignore
  2659. void
  2660. SetMovieProgressProc(theMovie, p, refcon)
  2661.     Movie   theMovie
  2662.     MovieProgressUPP    p
  2663.     long    refcon
  2664.  
  2665. =end ignore
  2666.  
  2667. =cut
  2668.  
  2669.  
  2670. =begin ignore
  2671. MacOSRet
  2672. MovieSearchText(theMovie, text, size, searchFlags, searchTrack, searchTime, searchOffset)
  2673.     Movie   theMovie
  2674.     Ptr text
  2675.     long    size
  2676.     long    searchFlags
  2677.     Track * searchTrack
  2678.     long *  searchTime
  2679.     long *  searchOffset
  2680.  
  2681. =end ignore
  2682.  
  2683. =cut
  2684.  
  2685.  
  2686.  
  2687. =item GetPosterBox THEMOVIE 
  2688.  
  2689. =cut
  2690. Rect
  2691. GetPosterBox(theMovie)
  2692.     Movie   theMovie
  2693.     CODE:
  2694.     GetPosterBox(theMovie, &RETVAL);
  2695.     OUTPUT:
  2696.     RETVAL
  2697.  
  2698.  
  2699. =item SetPosterBox THEMOVIE, BOXRECT 
  2700.  
  2701. =cut
  2702. void
  2703. SetPosterBox(theMovie, boxRect)
  2704.     Movie   theMovie
  2705.     Rect   &boxRect
  2706.  
  2707.  
  2708. =item GetMovieSegmentDisplayBoundsRgn THEMOVIE, TIME, DURATION 
  2709.  
  2710. =cut
  2711. RgnHandle
  2712. GetMovieSegmentDisplayBoundsRgn(theMovie, time, duration)
  2713.     Movie   theMovie
  2714.     long    time
  2715.     long    duration
  2716.  
  2717.  
  2718. =item GetTrackSegmentDisplayBoundsRgn THETRACK, TIME, DURATION 
  2719.  
  2720. =cut
  2721. RgnHandle
  2722. GetTrackSegmentDisplayBoundsRgn(theTrack, time, duration)
  2723.     Track   theTrack
  2724.     long    time
  2725.     long    duration
  2726.  
  2727. =begin ignore
  2728. void
  2729. SetMovieCoverProcs(theMovie, uncoverProc, coverProc, refcon)
  2730.     Movie   theMovie
  2731.     MovieRgnCoverUPP    uncoverProc
  2732.     MovieRgnCoverUPP    coverProc
  2733.     long    refcon
  2734.  
  2735. MacOSRet
  2736. GetMovieCoverProcs(theMovie, uncoverProc, coverProc, refcon)
  2737.     Movie   theMovie
  2738.     MovieRgnCoverUPP *  uncoverProc
  2739.     MovieRgnCoverUPP *  coverProc
  2740.     long *  refcon
  2741.  
  2742. =end ignore
  2743.  
  2744. =cut
  2745.  
  2746.  
  2747.  
  2748. =item GetTrackStatus THETRACK 
  2749.  
  2750. =cut
  2751. long
  2752. GetTrackStatus(theTrack)
  2753.     Track   theTrack
  2754.  
  2755.  
  2756. =item GetMovieStatus THEMOVIE 
  2757.  
  2758. =cut
  2759. void
  2760. GetMovieStatus(theMovie)
  2761.     Movie   theMovie
  2762.     PPCODE:
  2763.     {
  2764.         long    res;
  2765.         Track           firstProblemTrack;
  2766.         
  2767.         res = GetMovieStatus(theMovie, &firstProblemTrack);
  2768.         EXTEND(sp, 2);
  2769.         PUSHs(sv_2mortal(newSViv(res)));
  2770.         PUSHs(sv_setref_pv(sv_newmortal(), "Track", firstProblemTrack));        
  2771.     }
  2772.  
  2773.  
  2774. =item NewMovieController THEMOVIE, MOVIERECT [, SOMEFLAGS ]
  2775.  
  2776. =cut
  2777. ComponentInstance
  2778. NewMovieController(theMovie, movieRect, someFlags=0)
  2779.     Movie   theMovie
  2780.     Rect   &movieRect
  2781.     long    someFlags
  2782.  
  2783. void
  2784. _DisposeMovieController(mc)
  2785.     ComponentInstance   mc
  2786.     CODE:
  2787.     DisposeMovieController(mc);
  2788.  
  2789. =begin ignore
  2790. void
  2791. ShowMovieInformation(theMovie, filterProc, refCon)
  2792.     Movie   theMovie
  2793.     ModalFilterUPP  filterProc
  2794.     long    refCon
  2795.  
  2796. =end ignore
  2797.  
  2798. =cut
  2799.  
  2800.  
  2801.  
  2802. =item PutMovieOnScrap THEMOVIE, MOVIESCRAPFLAGS 
  2803.  
  2804. =cut
  2805. MacOSRet
  2806. PutMovieOnScrap(theMovie, movieScrapFlags)
  2807.     Movie   theMovie
  2808.     long    movieScrapFlags
  2809.  
  2810.  
  2811. =item NewMovieFromScrap NEWMOVIEFLAGS 
  2812.  
  2813. =cut
  2814. Movie
  2815. NewMovieFromScrap(newMovieFlags)
  2816.     long    newMovieFlags
  2817.  
  2818. =begin ignore
  2819. MacOSRet
  2820. GetMediaDataRef(theMedia, index, dataRef, dataRefType, dataRefAttributes)
  2821.     Media   theMedia
  2822.     short   index
  2823.     Handle *    dataRef
  2824.     OSType *    dataRefType
  2825.     long *  dataRefAttributes
  2826.  
  2827. MacOSRet
  2828. SetMediaDataRef(theMedia, index, dataRef, dataRefType)
  2829.     Media   theMedia
  2830.     short   index
  2831.     Handle  dataRef
  2832.     OSType  dataRefType
  2833.  
  2834. MacOSRet
  2835. SetMediaDataRefAttributes(theMedia, index, dataRefAttributes)
  2836.     Media   theMedia
  2837.     short   index
  2838.     long    dataRefAttributes
  2839.  
  2840. MacOSRet
  2841. AddMediaDataRef(theMedia, index, dataRef, dataRefType)
  2842.     Media   theMedia
  2843.     short * index
  2844.     Handle  dataRef
  2845.     OSType  dataRefType
  2846.  
  2847. MacOSRet
  2848. GetMediaDataRefCount(theMedia, count)
  2849.     Media   theMedia
  2850.     short * count
  2851.  
  2852. =end ignore
  2853.  
  2854. =cut
  2855.  
  2856.  
  2857.  
  2858. =item SetMoviePlayHints THEMOVIE, FLAGS, FLAGSMASK 
  2859.  
  2860. =cut
  2861. void
  2862. SetMoviePlayHints(theMovie, flags, flagsMask)
  2863.     Movie   theMovie
  2864.     long    flags
  2865.     long    flagsMask
  2866.  
  2867.  
  2868. =item SetMediaPlayHints THEMEDIA, FLAGS, FLAGSMASK 
  2869.  
  2870. =cut
  2871. void
  2872. SetMediaPlayHints(theMedia, flags, flagsMask)
  2873.     Media   theMedia
  2874.     long    flags
  2875.     long    flagsMask
  2876.  
  2877.  
  2878. =item SetTrackLoadSettings THETRACK, PRELOADTIME, PRELOADDURATION, PRELOADFLAGS, DEFAULTHINTS 
  2879.  
  2880. =cut
  2881. void
  2882. SetTrackLoadSettings(theTrack, preloadTime, preloadDuration, preloadFlags, defaultHints)
  2883.     Track   theTrack
  2884.     long    preloadTime
  2885.     long    preloadDuration
  2886.     long    preloadFlags
  2887.     long    defaultHints
  2888.  
  2889.  
  2890. =item GetTrackLoadSettings THETRACK 
  2891.  
  2892. =cut
  2893. void
  2894. GetTrackLoadSettings(theTrack)
  2895.     Track   theTrack
  2896.     PPCODE:
  2897.     {
  2898.         long preloadTime;
  2899.         long preloadDuration;
  2900.         long preloadFlags;
  2901.         long defaultHints;
  2902.         
  2903.         GetTrackLoadSettings(theTrack, &preloadTime, &preloadDuration, &preloadFlags, &defaultHints);
  2904.         
  2905.         EXTEND(sp, 4);
  2906.         PUSHs(sv_2mortal(newSViv(preloadTime)));
  2907.         PUSHs(sv_2mortal(newSViv(preloadDuration)));
  2908.         PUSHs(sv_2mortal(newSViv(preloadFlags)));
  2909.         PUSHs(sv_2mortal(newSViv(defaultHints)));
  2910.     }
  2911.  
  2912. =begin ignore
  2913. MacOSRet
  2914. BeginFullScreen(restoreState, whichGD, desiredWidth, desiredHeight, newWindow, eraseColor, flags)
  2915.     Ptr *   restoreState
  2916.     GDHandle    whichGD
  2917.     short * desiredWidth
  2918.     short * desiredHeight
  2919.     WindowPtr * newWindow
  2920.     RGBColor *  eraseColor
  2921.     long    flags
  2922.  
  2923. MacOSRet
  2924. EndFullScreen(fullState, flags)
  2925.     Ptr fullState
  2926.     long    flags
  2927.  
  2928. MacOSRet
  2929. NewSpriteWorld(newSpriteWorld, destination, spriteLayer, backgroundColor, background)
  2930.     SpriteWorld *   newSpriteWorld
  2931.     GWorldPtr   destination
  2932.     GWorldPtr   spriteLayer
  2933.     RGBColor *  backgroundColor
  2934.     GWorldPtr   background
  2935.  
  2936. void
  2937. DisposeSpriteWorld(theSpriteWorld)
  2938.     SpriteWorld theSpriteWorld
  2939.  
  2940. MacOSRet
  2941. SetSpriteWorldClip(theSpriteWorld, clipRgn)
  2942.     SpriteWorld theSpriteWorld
  2943.     RgnHandle   clipRgn
  2944.  
  2945. MacOSRet
  2946. SetSpriteWorldMatrix(theSpriteWorld, matrix)
  2947.     SpriteWorld theSpriteWorld
  2948.     const MatrixRecord *    matrix
  2949.  
  2950. MacOSRet
  2951. SpriteWorldIdle(theSpriteWorld, flagsIn, flagsOut)
  2952.     SpriteWorld theSpriteWorld
  2953.     long    flagsIn
  2954.     long *  flagsOut
  2955.  
  2956. MacOSRet
  2957. InvalidateSpriteWorld(theSpriteWorld, invalidArea)
  2958.     SpriteWorld theSpriteWorld
  2959.     Rect *  invalidArea
  2960.  
  2961. MacOSRet
  2962. SpriteWorldHitTest(theSpriteWorld, flags, loc, spriteHit)
  2963.     SpriteWorld theSpriteWorld
  2964.     long    flags
  2965.     Point   loc
  2966.     Sprite *    spriteHit
  2967.  
  2968. MacOSRet
  2969. SpriteHitTest(theSprite, flags, loc, wasHit)
  2970.     Sprite  theSprite
  2971.     long    flags
  2972.     Point   loc
  2973.     Boolean *   wasHit
  2974.  
  2975. void
  2976. DisposeAllSprites(theSpriteWorld)
  2977.     SpriteWorld theSpriteWorld
  2978.  
  2979. MacOSRet
  2980. NewSprite(newSprite, itsSpriteWorld, idh, imageDataPtr, matrix, visible, layer)
  2981.     Sprite *    newSprite
  2982.     SpriteWorld itsSpriteWorld
  2983.     ImageDescriptionHandle  idh
  2984.     Ptr imageDataPtr
  2985.     MatrixRecord *  matrix
  2986.     Boolean visible
  2987.     short   layer
  2988.  
  2989. void
  2990. DisposeSprite(theSprite)
  2991.     Sprite  theSprite
  2992.  
  2993. void
  2994. InvalidateSprite(theSprite)
  2995.     Sprite  theSprite
  2996.  
  2997. MacOSRet
  2998. SetSpriteProperty(theSprite, propertyType, propertyValue)
  2999.     Sprite  theSprite
  3000.     long    propertyType
  3001.     void *  propertyValue
  3002.  
  3003. MacOSRet
  3004. GetSpriteProperty(theSprite, propertyType, propertyValue)
  3005.     Sprite  theSprite
  3006.     long    propertyType
  3007.     void *  propertyValue
  3008.  *
  3009.  
  3010. MacOSRet
  3011. QTNewAtomContainer(atomData)
  3012.     QTAtomContainer *   atomData
  3013.  
  3014. MacOSRet
  3015. QTDisposeAtomContainer(atomData)
  3016.     QTAtomContainer atomData
  3017.  
  3018. QTAtomType
  3019. QTGetNextChildType(container, parentAtom, currentChildType)
  3020.     QTAtomContainer container
  3021.     QTAtom  parentAtom
  3022.     QTAtomType  currentChildType
  3023.  
  3024. short
  3025. QTCountChildrenOfType(container, parentAtom, childType)
  3026.     QTAtomContainer container
  3027.     QTAtom  parentAtom
  3028.     QTAtomType  childType
  3029.  
  3030. QTAtom
  3031. QTFindChildByIndex(container, parentAtom, atomType, index, id)
  3032.     QTAtomContainer container
  3033.     QTAtom  parentAtom
  3034.     QTAtomType  atomType
  3035.     short   index
  3036.     QTAtomID *  id
  3037.  
  3038. QTAtom
  3039. QTFindChildByID(container, parentAtom, atomType, id, index)
  3040.     QTAtomContainer container
  3041.     QTAtom  parentAtom
  3042.     QTAtomType  atomType
  3043.     QTAtomID    id
  3044.     short * index
  3045.  
  3046. MacOSRet
  3047. QTNextChildAnyType(container, parentAtom, currentChild, nextChild)
  3048.     QTAtomContainer container
  3049.     QTAtom  parentAtom
  3050.     QTAtom  currentChild
  3051.     QTAtom *    nextChild
  3052.  
  3053. MacOSRet
  3054. QTSetAtomData(container, atom, dataSize, atomData)
  3055.     QTAtomContainer container
  3056.     QTAtom  atom
  3057.     long    dataSize
  3058.     void *  atomData
  3059.  
  3060. MacOSRet
  3061. QTCopyAtomDataToHandle(container, atom, targetHandle)
  3062.     QTAtomContainer container
  3063.     QTAtom  atom
  3064.     Handle  targetHandle
  3065.  
  3066. MacOSRet
  3067. QTCopyAtomDataToPtr(container, atom, sizeOrLessOK, size, targetPtr, actualSize)
  3068.     QTAtomContainer container
  3069.     QTAtom  atom
  3070.     Boolean sizeOrLessOK
  3071.     long    size
  3072.     void *  targetPtr
  3073.     long *  actualSize
  3074.  
  3075. MacOSRet
  3076. QTGetAtomTypeAndID(container, atom, atomType, id)
  3077.     QTAtomContainer container
  3078.     QTAtom  atom
  3079.     QTAtomType *    atomType
  3080.     QTAtomID *  id
  3081.  
  3082. MacOSRet
  3083. QTCopyAtom(container, atom, targetContainer)
  3084.     QTAtomContainer container
  3085.     QTAtom  atom
  3086.     QTAtomContainer *   targetContainer
  3087.  
  3088. MacOSRet
  3089. QTLockContainer(container)
  3090.     QTAtomContainer container
  3091.  
  3092. MacOSRet
  3093. QTGetAtomDataPtr(container, atom, dataSize, atomData)
  3094.     QTAtomContainer container
  3095.     QTAtom  atom
  3096.     long *  dataSize
  3097.     Ptr *   atomData
  3098.  
  3099. MacOSRet
  3100. QTUnlockContainer(container)
  3101.     QTAtomContainer container
  3102.  
  3103. MacOSRet
  3104. QTInsertChild(container, parentAtom, atomType, id, index, dataSize, data, newAtom)
  3105.     QTAtomContainer container
  3106.     QTAtom  parentAtom
  3107.     QTAtomType  atomType
  3108.     QTAtomID    id
  3109.     short   index
  3110.     long    dataSize
  3111.     void *  data
  3112.     QTAtom *    newAtom
  3113.  
  3114. MacOSRet
  3115. QTInsertChildren(container, parentAtom, childrenContainer)
  3116.     QTAtomContainer container
  3117.     QTAtom  parentAtom
  3118.     QTAtomContainer childrenContainer
  3119.  
  3120. MacOSRet
  3121. QTRemoveAtom(container, atom)
  3122.     QTAtomContainer container
  3123.     QTAtom  atom
  3124.  
  3125. MacOSRet
  3126. QTRemoveChildren(container, atom)
  3127.     QTAtomContainer container
  3128.     QTAtom  atom
  3129.  
  3130. MacOSRet
  3131. QTReplaceAtom(targetContainer, targetAtom, replacementContainer, replacementAtom)
  3132.     QTAtomContainer targetContainer
  3133.     QTAtom  targetAtom
  3134.     QTAtomContainer replacementContainer
  3135.     QTAtom  replacementAtom
  3136.  
  3137. MacOSRet
  3138. QTSwapAtoms(container, atom1, atom2)
  3139.     QTAtomContainer container
  3140.     QTAtom  atom1
  3141.     QTAtom  atom2
  3142.  
  3143. MacOSRet
  3144. QTSetAtomID(container, atom, newID)
  3145.     QTAtomContainer container
  3146.     QTAtom  atom
  3147.     QTAtomID    newID
  3148.  
  3149. MacOSRet
  3150. SetMediaPropertyAtom(theMedia, propertyAtom)
  3151.     Media   theMedia
  3152.     QTAtomContainer propertyAtom
  3153.  
  3154. MacOSRet
  3155. GetMediaPropertyAtom(theMedia, propertyAtom)
  3156.     Media   theMedia
  3157.     QTAtomContainer *   propertyAtom
  3158.  
  3159. MacOSRet
  3160. ITextAddString(container, parentAtom, theRegionCode, theString)
  3161.     QTAtomContainer container
  3162.     QTAtom  parentAtom
  3163.     short   theRegionCode
  3164.     Str255  theString
  3165.  
  3166. MacOSRet
  3167. ITextRemoveString(container, parentAtom, theRegionCode, flags)
  3168.     QTAtomContainer container
  3169.     QTAtom  parentAtom
  3170.     short   theRegionCode
  3171.     long    flags
  3172.  
  3173. MacOSRet
  3174. ITextGetString(container, parentAtom, requestedRegion, foundRegion, theString)
  3175.     QTAtomContainer container
  3176.     QTAtom  parentAtom
  3177.     short   requestedRegion
  3178.     short * foundRegion
  3179.     StringPtr   theString
  3180.  
  3181. long
  3182. VideoMediaResetStatistics(mh)
  3183.     ComponentInstance   mh
  3184.  
  3185. long
  3186. VideoMediaGetStatistics(mh)
  3187.     ComponentInstance   mh
  3188.  
  3189. long
  3190. TextMediaSetTextProc(mh, TextProc, refcon)
  3191.     ComponentInstance   mh
  3192.     TextMediaUPP    TextProc
  3193.     long    refcon
  3194.  *
  3195. long
  3196. TextMediaAddTextSample(mh, text, size, fontNumber, fontSize, textFace, textColor, backColor, textJustification, textBox, displayFlags, scrollDelay, hiliteStart, hiliteEnd, rgbHiliteColor, duration, sampleTime)
  3197.     ComponentInstance   mh
  3198.     Ptr text
  3199.     unsigned long   size
  3200.     short   fontNumber
  3201.     short   fontSize
  3202.     Style   textFace
  3203.     RGBColor *  textColor
  3204.     RGBColor *  backColor
  3205.     short   textJustification
  3206.     Rect *  textBox
  3207.     long    displayFlags
  3208.     long    scrollDelay
  3209.     short   hiliteStart
  3210.     short   hiliteEnd
  3211.     RGBColor *  rgbHiliteColor
  3212.     long    duration
  3213.     long *  sampleTime
  3214.  
  3215. long
  3216. TextMediaAddTESample(mh, hTE, backColor, textJustification, textBox, displayFlags, scrollDelay, hiliteStart, hiliteEnd, rgbHiliteColor, duration, sampleTime)
  3217.     ComponentInstance   mh
  3218.     TEHandle    hTE
  3219.     RGBColor *  backColor
  3220.     short   textJustification
  3221.     Rect *  textBox
  3222.     long    displayFlags
  3223.     long    scrollDelay
  3224.     short   hiliteStart
  3225.     short   hiliteEnd
  3226.     RGBColor *  rgbHiliteColor
  3227.     long    duration
  3228.     long *  sampleTime
  3229.  
  3230. long
  3231. TextMediaAddHiliteSample(mh, hiliteStart, hiliteEnd, rgbHiliteColor, duration, sampleTime)
  3232.     ComponentInstance   mh
  3233.     short   hiliteStart
  3234.     short   hiliteEnd
  3235.     RGBColor *  rgbHiliteColor
  3236.     long    duration
  3237.     long *  sampleTime
  3238.  
  3239. long
  3240. TextMediaFindNextText(mh, text, size, findFlags, startTime, foundTime, foundDuration, offset)
  3241.     ComponentInstance   mh
  3242.     Ptr text
  3243.     long    size
  3244.     short   findFlags
  3245.     long    startTime
  3246.     long *  foundTime
  3247.     long *  foundDuration
  3248.     long *  offset
  3249.  
  3250. long
  3251. TextMediaHiliteTextSample(mh, sampleTime, hiliteStart, hiliteEnd, rgbHiliteColor)
  3252.     ComponentInstance   mh
  3253.     long    sampleTime
  3254.     short   hiliteStart
  3255.     short   hiliteEnd
  3256.     RGBColor *  rgbHiliteColor
  3257.  
  3258. long
  3259. TextMediaSetTextSampleData(mh, data, dataType)
  3260.     ComponentInstance   mh
  3261.     void *  data
  3262.     OSType  dataType
  3263.  
  3264. long
  3265. SpriteMediaSetProperty(mh, spriteIndex, propertyType, propertyValue)
  3266.     ComponentInstance   mh
  3267.     short   spriteIndex
  3268.     long    propertyType
  3269.     void *  propertyValue
  3270.  
  3271. long
  3272. SpriteMediaGetProperty(mh, spriteIndex, propertyType, propertyValue)
  3273.     ComponentInstance   mh
  3274.     short   spriteIndex
  3275.     long    propertyType
  3276.     void *  propertyValue
  3277.  
  3278. long
  3279. SpriteMediaHitTestSprites(mh, flags, loc, spriteHitIndex)
  3280.     ComponentInstance   mh
  3281.     long    flags
  3282.     Point   loc
  3283.     short * spriteHitIndex
  3284.  
  3285. long
  3286. SpriteMediaCountSprites(mh, numSprites)
  3287.     ComponentInstance   mh
  3288.     short * numSprites
  3289.  
  3290. long
  3291. SpriteMediaCountImages(mh, numImages)
  3292.     ComponentInstance   mh
  3293.     short * numImages
  3294.  
  3295. long
  3296. SpriteMediaGetIndImageDescription(mh, imageIndex, imageDescription)
  3297.     ComponentInstance   mh
  3298.     short   imageIndex
  3299.     ImageDescriptionHandle  imageDescription
  3300.  
  3301. long
  3302. SpriteMediaGetDisplayedSampleNumber(mh, sampleNum)
  3303.     ComponentInstance   mh
  3304.     long *  sampleNum
  3305.  
  3306. =end ignore
  3307.  
  3308. =cut
  3309.  
  3310.  
  3311.  
  3312. =item NewTimeBase 
  3313.  
  3314. =cut
  3315. TimeBase
  3316. NewTimeBase()   
  3317.  
  3318.  
  3319. =item DisposeTimeBase TB 
  3320.  
  3321. =cut
  3322. void
  3323. DisposeTimeBase(tb)
  3324.     TimeBase    tb
  3325.  
  3326.  
  3327. =item GetTimeBaseTime TB, S 
  3328.  
  3329. =cut
  3330. void
  3331. GetTimeBaseTime(tb, s)
  3332.     TimeBase    tb
  3333.     long    s
  3334.     PPCODE:
  3335.     {
  3336.         long        ret;
  3337.         TimeRecord  tr;
  3338.         
  3339.         ret = GetTimeBaseTime(tb, s, &tr);
  3340.         EXTEND(sp, 2);
  3341.         XS_PUSH(long, ret);
  3342.         XS_PUSH(TimeRecord, tr);
  3343.     }
  3344.  
  3345.  
  3346. =item SetTimeBaseTime TB, TR 
  3347.  
  3348. =cut
  3349. void
  3350. SetTimeBaseTime(tb, tr)
  3351.     TimeBase    tb
  3352.     TimeRecord &tr
  3353.  
  3354.  
  3355. =item SetTimeBaseValue TB, T, S 
  3356.  
  3357. =cut
  3358. void
  3359. SetTimeBaseValue(tb, t, s)
  3360.     TimeBase    tb
  3361.     long        t
  3362.     long    s
  3363.  
  3364.  
  3365. =item GetTimeBaseRate TB 
  3366.  
  3367. =cut
  3368. Fixed
  3369. GetTimeBaseRate(tb)
  3370.     TimeBase    tb
  3371.  
  3372.  
  3373. =item SetTimeBaseRate TB, R 
  3374.  
  3375. =cut
  3376. void
  3377. SetTimeBaseRate(tb, r)
  3378.     TimeBase    tb
  3379.     Fixed   r
  3380.  
  3381.  
  3382. =item GetTimeBaseStartTime TB, S 
  3383.  
  3384. =cut
  3385. void
  3386. GetTimeBaseStartTime(tb, s)
  3387.     TimeBase    tb
  3388.     long    s
  3389.     PPCODE:
  3390.     {
  3391.         long        ret;
  3392.         TimeRecord  tr;
  3393.         
  3394.         ret = GetTimeBaseStartTime(tb, s, &tr);
  3395.         EXTEND(sp, 2);
  3396.         XS_PUSH(long, ret);
  3397.         XS_PUSH(TimeRecord, tr);
  3398.     }
  3399.  
  3400.  
  3401. =item SetTimeBaseStartTime TB, TR 
  3402.  
  3403. =cut
  3404. void
  3405. SetTimeBaseStartTime(tb, tr)
  3406.     TimeBase    tb
  3407.     TimeRecord &tr
  3408.  
  3409.  
  3410. =item GetTimeBaseStopTime TB, S, TR 
  3411.  
  3412. =cut
  3413. void
  3414. GetTimeBaseStopTime(tb, s)
  3415.     TimeBase    tb
  3416.     long    s
  3417.     PPCODE:
  3418.     {
  3419.         long        ret;
  3420.         TimeRecord  tr;
  3421.         
  3422.         ret = GetTimeBaseStopTime(tb, s, &tr);
  3423.         EXTEND(sp, 2);
  3424.         XS_PUSH(long, ret);
  3425.         XS_PUSH(TimeRecord, tr);
  3426.     }
  3427.  
  3428.  
  3429. =item SetTimeBaseStopTime TB, TR 
  3430.  
  3431. =cut
  3432. void
  3433. SetTimeBaseStopTime(tb, tr)
  3434.     TimeBase    tb
  3435.     TimeRecord &tr
  3436.  
  3437.  
  3438. =item GetTimeBaseFlags TB 
  3439.  
  3440. =cut
  3441. long
  3442. GetTimeBaseFlags(tb)
  3443.     TimeBase    tb
  3444.  
  3445.  
  3446. =item SetTimeBaseFlags TB, TIMEBASEFLAGS 
  3447.  
  3448. =cut
  3449. void
  3450. SetTimeBaseFlags(tb, timeBaseFlags)
  3451.     TimeBase    tb
  3452.     long    timeBaseFlags
  3453.  
  3454.  
  3455. =item SetTimeBaseMasterTimeBase SLAVE, MASTER, SLAVEZERO 
  3456.  
  3457. =cut
  3458. void
  3459. SetTimeBaseMasterTimeBase(slave, master, slaveZero)
  3460.     TimeBase    slave
  3461.     TimeBase    master
  3462.     TimeRecord &slaveZero
  3463.  
  3464.  
  3465. =item GetTimeBaseMasterTimeBase TB 
  3466.  
  3467. =cut
  3468. TimeBase
  3469. GetTimeBaseMasterTimeBase(tb)
  3470.     TimeBase    tb
  3471.  
  3472.  
  3473. =item SetTimeBaseMasterClock SLAVE, CLOCKMEISTER, SLAVEZERO 
  3474.  
  3475. =cut
  3476. void
  3477. SetTimeBaseMasterClock(slave, clockMeister, slaveZero)
  3478.     TimeBase    slave
  3479.     Component   clockMeister
  3480.     TimeRecord &slaveZero
  3481.  
  3482.  
  3483. =item GetTimeBaseMasterClock TB 
  3484.  
  3485. =cut
  3486. ComponentInstance
  3487. GetTimeBaseMasterClock(tb)
  3488.     TimeBase    tb
  3489.  
  3490.  
  3491. =item ConvertTime INOUT, NEWBASE 
  3492.  
  3493. =cut
  3494. TimeRecord
  3495. ConvertTime(inout, newBase)
  3496.     TimeRecord &inout
  3497.     TimeBase    newBase
  3498.     CODE:
  3499.     ConvertTime(&inout, newBase);
  3500.     RETVAL = inout;
  3501.     OUTPUT:
  3502.     RETVAL
  3503.  
  3504.  
  3505. =item ConvertTimeScale INOUT, NEWSCALE 
  3506.  
  3507. =cut
  3508. TimeRecord
  3509. ConvertTimeScale(inout, newScale)
  3510.     TimeRecord &inout
  3511.     long    newScale
  3512.     CODE:
  3513.     ConvertTimeScale(&inout, newScale);
  3514.     RETVAL = inout;
  3515.     OUTPUT:
  3516.     RETVAL
  3517.  
  3518.  
  3519. =item AddTime DST, SRC 
  3520.  
  3521. =cut
  3522. TimeRecord
  3523. AddTime(dst, src)
  3524.     TimeRecord &dst
  3525.     TimeRecord &src
  3526.     CODE:
  3527.     AddTime(&dst, &src);
  3528.     RETVAL = dst;
  3529.     OUTPUT:
  3530.     RETVAL
  3531.  
  3532.  
  3533. =item SubtractTime DST, SRC 
  3534.  
  3535. =cut
  3536. TimeRecord
  3537. SubtractTime(dst, src)
  3538.     TimeRecord &dst
  3539.     TimeRecord &src
  3540.     CODE:
  3541.     SubtractTime(&dst, &src);
  3542.     RETVAL = dst;
  3543.     OUTPUT:
  3544.     RETVAL
  3545.  
  3546.  
  3547. =item GetTimeBaseStatus TB 
  3548.  
  3549. =cut
  3550. void
  3551. GetTimeBaseStatus(tb)
  3552.     TimeBase    tb
  3553.     PPCODE:
  3554.     {
  3555.         long        ret;
  3556.         TimeRecord  unpinnedTime;
  3557.         
  3558.         ret = GetTimeBaseStatus(tb, &unpinnedTime);
  3559.         EXTEND(sp, 2);
  3560.         XS_PUSH(long, ret);
  3561.         XS_PUSH(TimeRecord, unpinnedTime);      
  3562.     }
  3563.  
  3564.  
  3565. =item SetTimeBaseZero TB, ZERO 
  3566.  
  3567. =cut
  3568. void
  3569. SetTimeBaseZero(tb, zero)
  3570.     TimeBase    tb
  3571.     TimeRecord &zero
  3572.  
  3573.  
  3574. =item GetTimeBaseEffectiveRate TB 
  3575.  
  3576. =cut
  3577. Fixed
  3578. GetTimeBaseEffectiveRate(tb)
  3579.     TimeBase    tb
  3580.  
  3581. =begin ignore
  3582. QTCallBack
  3583. NewCallBack(tb, cbType)
  3584.     TimeBase    tb
  3585.     short   cbType
  3586.  
  3587. void
  3588. DisposeCallBack(cb)
  3589.     QTCallBack  cb
  3590.  
  3591. short
  3592. GetCallBackType(cb)
  3593.     QTCallBack  cb
  3594.  
  3595. TimeBase
  3596. GetCallBackTimeBase(cb)
  3597.     QTCallBack  cb
  3598.  
  3599. MacOSRet
  3600. CallMeWhen(cb, callBackProc, refCon, param1, param2, param3)
  3601.     QTCallBack  cb
  3602.     QTCallBackUPP   callBackProc
  3603.     long    refCon
  3604.     long    param1
  3605.     long    param2
  3606.     long    param3
  3607.  
  3608. void
  3609. CancelCallBack(cb)
  3610.     QTCallBack  cb
  3611.  
  3612. MacOSRet
  3613. AddCallBackToTimeBase(cb)
  3614.     QTCallBack  cb
  3615.  
  3616. MacOSRet
  3617. RemoveCallBackFromTimeBase(cb)
  3618.     QTCallBack  cb
  3619.  
  3620. QTCallBack
  3621. GetFirstCallBack(tb)
  3622.     TimeBase    tb
  3623.  
  3624. QTCallBack
  3625. GetNextCallBack(cb)
  3626.     QTCallBack  cb
  3627.  
  3628. void
  3629. ExecuteCallBack(cb)
  3630.     QTCallBack  cb
  3631.  
  3632. MacOSRet
  3633. QueueSyncTask(task)
  3634.     QTSyncTaskPtr   task
  3635.  
  3636. MacOSRet
  3637. DequeueSyncTask(qElem)
  3638.     QTSyncTaskPtr   qElem
  3639.  
  3640. =end ignore
  3641.  
  3642. =cut
  3643.  
  3644.  
  3645. =item MCSetMovie MC, THEMOVIE, MOVIEWINDOW, WHERE 
  3646.  
  3647. =cut
  3648. ComponentResult
  3649. MCSetMovie(mc, theMovie, movieWindow, where)
  3650.     ComponentInstance   mc
  3651.     Movie   theMovie
  3652.     GrafPtr movieWindow
  3653.     Point   where
  3654.  
  3655.  
  3656. =item MCGetIndMovie MC [, INDEX ]
  3657.  
  3658. =cut
  3659. Movie
  3660. MCGetIndMovie(mc, index=0)
  3661.     ComponentInstance   mc
  3662.     short   index
  3663.  
  3664. =begin ignore
  3665.  
  3666. ComponentResult
  3667. MCRemoveAllMovies(mc)
  3668.     ComponentInstance   mc
  3669.  
  3670. ComponentResult
  3671. MCRemoveAMovie(mc, m)
  3672.     ComponentInstance   mc
  3673.     Movie   m
  3674.  
  3675. =end ignore
  3676.  
  3677. =cut
  3678.  
  3679.  
  3680. =item MCRemoveMovie MC 
  3681.  
  3682. =cut
  3683. ComponentResult
  3684. MCRemoveMovie(mc)
  3685.     ComponentInstance   mc
  3686.  
  3687.  
  3688. =item MCIsPlayerEvent MC, E 
  3689.  
  3690. =cut
  3691. ComponentResult
  3692. MCIsPlayerEvent(mc, e)
  3693.     ComponentInstance   mc
  3694.     ToolboxEvent        e
  3695.  
  3696.  
  3697. =item MCDoAction MC, ACTION, ... 
  3698.  
  3699. =cut
  3700. void
  3701. MCDoAction(mc, action, ...)
  3702.     ComponentInstance   mc
  3703.     short   action
  3704.     PPCODE:
  3705.     {
  3706.         void *      param = 0;
  3707.         TimeRecord  tm;
  3708.         Fix16       fix;
  3709.         Boolean     flag;
  3710.         Rect        r;
  3711.         long        l;
  3712.         Fixed       rate;
  3713.         
  3714.         switch (action) {
  3715.         default:
  3716.         case mcActionIdle:
  3717.         case mcActionActivate:
  3718.         case mcActionDeactivate:
  3719.         case mcActionSuspend:
  3720.         case mcActionResume:
  3721.             break;          /* No parameters */
  3722.         case mcActionDraw:
  3723.             XS_INPUT(GrafPtr, *(GrafPtr *)¶m, ST(2));   /* WindowPtr */
  3724.             break;
  3725.         case mcActionMouseDown:
  3726.         case mcActionKey:
  3727.         case mcActionMovieClick:
  3728.             XS_INPUT(ToolboxEvent, *(ToolboxEvent *)¶m, ST(2)); /* EventRecord * */
  3729.             break;
  3730.         case mcActionPlay:
  3731.             XS_INPUT(Fixed, *(Fixed *)¶m, ST(2));   /* Fixed */
  3732.             break;
  3733.         case mcActionGoToTime:
  3734.         case mcActionSetSelectionBegin:
  3735.         case mcActionSetSelectionDuration:
  3736.             XS_INPUT(TimeRecord, tm, ST(2));    /* TimeRecord */
  3737.             param = &tm;
  3738.             break;
  3739.         case mcActionSetVolume:
  3740.             XS_INPUT(Fix16, fix, ST(2));    /* 16 bit fixed point value */
  3741.         case mcActionGetVolume:
  3742.             param = &fix;
  3743.             break;
  3744.         case mcActionStep:
  3745.         case mcActionSetLooping:
  3746.         case mcActionSetLoopIsPalindrome:
  3747.         case mcActionSetKeysEnabled:
  3748.         case mcActionSetPlaySelection:
  3749.         case mcActionSetUseBadge:
  3750.         case mcActionSetFlags:
  3751.         case mcActionSetPlayEveryFrame:
  3752.         case mcActionSetCursorSettingEnabled:
  3753.             XS_INPUT(long, *(long *)¶m, ST(2)); /* long */
  3754.             break;
  3755.         case mcActionBadgeClick:
  3756.             XS_INPUT(Boolean, flag, ST(2)); /* Boolean, passed as pointer */
  3757.         case mcActionGetLooping:
  3758.         case mcActionGetLoopIsPalindrome:
  3759.         case mcActionGetKeysEnabled:
  3760.         case mcActionGetPlaySelection:
  3761.         case mcActionGetUseBadge:
  3762.         case mcActionGetPlayEveryFrame:
  3763.         case mcActionGetCursorSettingEnabled:
  3764.             param = &flag;
  3765.             break;
  3766.         case mcActionSetGrowBoxBounds:
  3767.             XS_INPUT(Rect, r, ST(2));   /* Rect */
  3768.             param = &r;
  3769.             break;
  3770.         case mcActionGetFlags:
  3771.             param = &l;
  3772.             break;
  3773.         case mcActionGetPlayRate:
  3774.             param = &rate;
  3775.             break;
  3776.         }
  3777.         if (gLastMacOSErr = (OSErr)MCDoAction(mc, action, param)) {
  3778.             XSRETURN_EMPTY;
  3779.         }
  3780.         switch (action) {
  3781.         default:
  3782.             XS_PUSH(int, 1);                    /* No result */
  3783.             break;
  3784.         case mcActionGetVolume:
  3785.             XS_PUSH(Fix16, fix);                /* 16 bit fixed */
  3786.             break;      
  3787.         case mcActionGetLooping:
  3788.         case mcActionGetLoopIsPalindrome:
  3789.         case mcActionGetKeysEnabled:
  3790.         case mcActionGetPlaySelection:
  3791.         case mcActionGetUseBadge:
  3792.         case mcActionGetPlayEveryFrame:
  3793.             XS_PUSH(Boolean, flag);             /* Boolean */
  3794.             break;
  3795.         case mcActionGetFlags:
  3796.             XS_PUSH(long, l);                   /* long */
  3797.             break;
  3798.         case mcActionGetPlayRate:
  3799.             XS_PUSH(Fixed, rate);               /* Fixed */
  3800.             break;
  3801.         }
  3802.     }
  3803.  
  3804.  
  3805. =item MCSetControllerAttached MC, ATTACH 
  3806.  
  3807. =cut
  3808. ComponentResult
  3809. MCSetControllerAttached(mc, attach)
  3810.     ComponentInstance   mc
  3811.     Boolean             attach
  3812.  
  3813.  
  3814. =item MCIsControllerAttached MC 
  3815.  
  3816. =cut
  3817. ComponentResult
  3818. MCIsControllerAttached(mc)
  3819.     ComponentInstance   mc
  3820.  
  3821.  
  3822. =item MCSetControllerPort MC, GP 
  3823.  
  3824. =cut
  3825. ComponentResult
  3826. MCSetControllerPort(mc, gp)
  3827.     ComponentInstance   mc
  3828.     GrafPtr             gp
  3829.     CODE:
  3830.     RETVAL = MCSetControllerPort(mc, (CGrafPtr)gp);
  3831.     OUTPUT:
  3832.     RETVAL
  3833.  
  3834.  
  3835. =item MCGetControllerPort MC 
  3836.  
  3837. =cut
  3838. GrafPtr
  3839. MCGetControllerPort(mc)
  3840.     ComponentInstance   mc
  3841.     CODE:
  3842.     RETVAL = (GrafPtr)MCGetControllerPort(mc);
  3843.     OUTPUT:
  3844.     RETVAL
  3845.  
  3846.  
  3847. =item MCSetVisible MC, VISIBLE 
  3848.  
  3849. =cut
  3850. ComponentResult
  3851. MCSetVisible(mc, visible)
  3852.     ComponentInstance   mc
  3853.     Boolean             visible
  3854.  
  3855.  
  3856. =item MCGetVisible MC 
  3857.  
  3858. =cut
  3859. ComponentResult
  3860. MCGetVisible(mc)
  3861.     ComponentInstance   mc
  3862.  
  3863.  
  3864. =item MCGetControllerBoundsRect MC 
  3865.  
  3866. =cut
  3867. Rect
  3868. MCGetControllerBoundsRect(mc)
  3869.     ComponentInstance   mc
  3870.     CODE:
  3871.     if (gLastMacOSErr = (OSErr)MCGetControllerBoundsRect(mc, &RETVAL)) {
  3872.         XSRETURN_UNDEF;
  3873.     }
  3874.     OUTPUT:
  3875.     RETVAL
  3876.  
  3877.  
  3878. =item MCSetControllerBoundsRect MC, BOUNDS 
  3879.  
  3880. =cut
  3881. ComponentResult
  3882. MCSetControllerBoundsRect(mc, bounds)
  3883.     ComponentInstance   mc
  3884.     Rect               &bounds
  3885.  
  3886.  
  3887. =item MCGetControllerBoundsRgn MC 
  3888.  
  3889. =cut
  3890. RgnHandle
  3891. MCGetControllerBoundsRgn(mc)
  3892.     ComponentInstance   mc
  3893.  
  3894.  
  3895. =item MCGetWindowRgn MC, W 
  3896.  
  3897. =cut
  3898. RgnHandle
  3899. MCGetWindowRgn(mc, w)
  3900.     ComponentInstance   mc
  3901.     GrafPtr             w
  3902.  
  3903.  
  3904. =item MCMovieChanged MC, M 
  3905.  
  3906. =cut
  3907. ComponentResult
  3908. MCMovieChanged(mc, m)
  3909.     ComponentInstance   mc
  3910.     Movie               m
  3911.  
  3912.  
  3913. =item MCSetDuration MC, DURATION 
  3914.  
  3915. =cut
  3916. ComponentResult
  3917. MCSetDuration(mc, duration)
  3918.     ComponentInstance   mc
  3919.     long                duration
  3920.  
  3921.  
  3922. =item MCGetCurrentTime MC 
  3923.  
  3924. =cut
  3925. void
  3926. MCGetCurrentTime(mc)
  3927.     ComponentInstance   mc
  3928.     PPCODE:
  3929.     {
  3930.         TimeValue   tm;
  3931.         TimeScale   scale;
  3932.         
  3933.         tm = MCGetCurrentTime(mc, &scale);
  3934.         
  3935.         XS_PUSH(long, tm);
  3936.         XS_PUSH(long, scale);
  3937.     }
  3938.  
  3939.  
  3940. =item MCNewAttachedController MC, THEMOVIE, W, WHERE 
  3941.  
  3942. =cut
  3943. ComponentResult
  3944. MCNewAttachedController(mc, theMovie, w, where)
  3945.     ComponentInstance   mc
  3946.     Movie   theMovie
  3947.     GrafPtr w
  3948.     Point   where
  3949.  
  3950.  
  3951. =item MCDraw MC, W 
  3952.  
  3953. =cut
  3954. ComponentResult
  3955. MCDraw(mc, w)
  3956.     ComponentInstance   mc
  3957.     GrafPtr w
  3958.  
  3959.  
  3960. =item MCActivate MC, W, ACTIVATE 
  3961.  
  3962. =cut
  3963. ComponentResult
  3964. MCActivate(mc, w, activate)
  3965.     ComponentInstance   mc
  3966.     GrafPtr w
  3967.     Boolean activate
  3968.  
  3969.  
  3970. =item MCIdle MC 
  3971.  
  3972. =cut
  3973. ComponentResult
  3974. MCIdle(mc)
  3975.     ComponentInstance   mc
  3976.  
  3977.  
  3978. =item MCKey MC, KEY, MODIFIERS 
  3979.  
  3980. =cut
  3981. ComponentResult
  3982. MCKey(mc, key, modifiers)
  3983.     ComponentInstance   mc
  3984.     I8      key
  3985.     long    modifiers
  3986.  
  3987.  
  3988. =item MCClick MC, W, WHERE, WHEN, MODIFIERS 
  3989.  
  3990. =cut
  3991. ComponentResult
  3992. MCClick(mc, w, where, when, modifiers)
  3993.     ComponentInstance   mc
  3994.     GrafPtr w
  3995.     Point   where
  3996.     long    when
  3997.     long    modifiers
  3998.  
  3999.  
  4000. =item MCEnableEditing MC, ENABLED 
  4001.  
  4002. =cut
  4003. ComponentResult
  4004. MCEnableEditing(mc, enabled)
  4005.     ComponentInstance   mc
  4006.     Boolean enabled
  4007.  
  4008.  
  4009. =item MCIsEditingEnabled MC 
  4010.  
  4011. =cut
  4012. long
  4013. MCIsEditingEnabled(mc)
  4014.     ComponentInstance   mc
  4015.  
  4016.  
  4017. =item MCCopy MC 
  4018.  
  4019. =cut
  4020. Movie
  4021. MCCopy(mc)
  4022.     ComponentInstance   mc
  4023.  
  4024.  
  4025. =item MCCut MC 
  4026.  
  4027. =cut
  4028. Movie
  4029. MCCut(mc)
  4030.     ComponentInstance   mc
  4031.  
  4032.  
  4033. =item MCPaste MC, SRCMOVIE 
  4034.  
  4035. =cut
  4036. ComponentResult
  4037. MCPaste(mc, srcMovie)
  4038.     ComponentInstance   mc
  4039.     Movie   srcMovie
  4040.  
  4041.  
  4042. =item MCClear MC 
  4043.  
  4044. =cut
  4045. ComponentResult
  4046. MCClear(mc)
  4047.     ComponentInstance   mc
  4048.  
  4049.  
  4050. =item MCUndo MC 
  4051.  
  4052. =cut
  4053. ComponentResult
  4054. MCUndo(mc)
  4055.     ComponentInstance   mc
  4056.  
  4057.  
  4058. =item MCPositionController MC, MOVIERECT, CONTROLLERRECT, SOMEFLAGS 
  4059.  
  4060. =cut
  4061. ComponentResult
  4062. MCPositionController(mc, movieRect, controllerRect, someFlags)
  4063.     ComponentInstance   mc
  4064.     Rect               &movieRect
  4065.     Rect               &controllerRect
  4066.     long                someFlags
  4067.  
  4068.  
  4069. =item MCGetControllerInfo MC 
  4070.  
  4071. =cut
  4072. long
  4073. MCGetControllerInfo(mc)
  4074.     ComponentInstance   mc
  4075.     CODE:
  4076.     if (gLastMacOSErr = (OSErr)MCGetControllerInfo(mc, &RETVAL)) {
  4077.         XSRETURN_UNDEF;
  4078.     }
  4079.     OUTPUT:
  4080.     RETVAL
  4081.  
  4082.  
  4083. =item MCSetClip MC, THECLIP, MOVIECLIP 
  4084.  
  4085. =cut
  4086. ComponentResult
  4087. MCSetClip(mc, theClip, movieClip)
  4088.     ComponentInstance   mc
  4089.     RgnHandle   theClip
  4090.     RgnHandle   movieClip
  4091.  
  4092.  
  4093. =item MCGetClip MC 
  4094.  
  4095. =cut
  4096. void
  4097. MCGetClip(mc)
  4098.     ComponentInstance   mc
  4099.     PPCODE:
  4100.     {
  4101.         RgnHandle   theClip;
  4102.         RgnHandle   movieClip;
  4103.         
  4104.         if (gLastMacOSErr = (OSErr)MCGetClip(mc, &theClip, &movieClip)) {
  4105.             XSRETURN_EMPTY;
  4106.         }
  4107.         XS_PUSH(RgnHandle, theClip);
  4108.         if (GIMME == G_ARRAY) {
  4109.             XS_PUSH(RgnHandle, movieClip);
  4110.         }
  4111.     }
  4112.  
  4113.  
  4114. =item MCDrawBadge MC, MOVIERGN 
  4115.  
  4116. =cut
  4117. RgnHandle
  4118. MCDrawBadge(mc, movieRgn)
  4119.     ComponentInstance   mc
  4120.     RgnHandle   movieRgn
  4121.     CODE:
  4122.     if (gLastMacOSErr = (OSErr)MCDrawBadge(mc, movieRgn, &RETVAL)) {
  4123.         XSRETURN_UNDEF;
  4124.     }
  4125.     OUTPUT:
  4126.     RETVAL
  4127.  
  4128.  
  4129. =item MCSetUpEditMenu MC, MODIFIERS, MH 
  4130.  
  4131. =cut
  4132. ComponentResult
  4133. MCSetUpEditMenu(mc, modifiers, mh)
  4134.     ComponentInstance   mc
  4135.     long    modifiers
  4136.     MenuHandle  mh
  4137.  
  4138.  
  4139. =item MCGetMenuString MC, MODIFIERS, ITEM, ASTRING 
  4140.  
  4141. =cut
  4142. ComponentResult
  4143. MCGetMenuString(mc, modifiers, item, aString)
  4144.     ComponentInstance   mc
  4145.     long    modifiers
  4146.     short   item
  4147.     Str255  aString
  4148.  
  4149. void
  4150. _MCSetActionFilter(mc, install)
  4151.     ComponentInstance   mc
  4152.     Boolean             install
  4153.     CODE:
  4154.     if (install) {
  4155.         MCSetActionFilter(mc, &uActionFilter);
  4156.     } else {
  4157.         MCSetActionFilter(mc, 0);
  4158.     }
  4159.  
  4160. =begin ignore
  4161.  
  4162. # item MCPtInController MC, PT
  4163.  
  4164. # cut
  4165. Boolean
  4166. MCPtInController(mc, thePt)
  4167.     ComponentInstance   mc
  4168.     Point   thePt
  4169.     CODE:
  4170.     if (gLastMacOSErr = (OSErr)MCPtInController(mc, thePt, &RETVAL)) {
  4171.         XSRETURN_UNDEF;
  4172.     }
  4173.     OUTPUT:
  4174.     RETVAL
  4175.  
  4176. # item MCInvalidate MC, WIN, RGN 
  4177.  
  4178. # cut
  4179. ComponentResult
  4180. MCInvalidate(mc, w, invalidRgn)
  4181.     ComponentInstance   mc
  4182.     GrafPtr w
  4183.     RgnHandle   invalidRgn
  4184.  
  4185. =end ignore
  4186.  
  4187. =back
  4188.  
  4189. =cut
  4190.