Movies.h
上传用户:xjjlds
上传日期:2015-12-05
资源大小:22823k
文件大小:338k
源码类别:

多媒体编程

开发平台:

Visual C++

  1.     EXTERN_API(void)
  2.     DisposeMoviePrePrerollCompleteUPP    (MoviePrePrerollCompleteUPP userUPP);
  3.     EXTERN_API(void)
  4.     DisposeQTNextTaskNeededSoonerCallbackUPP    (QTNextTaskNeededSoonerCallbackUPP userUPP);
  5.     EXTERN_API(void)
  6.     DisposeMoviesErrorUPP          (MoviesErrorUPP          userUPP);
  7.     EXTERN_API(void)
  8.     DisposeTweenerDataUPP          (TweenerDataUPP          userUPP);
  9.     EXTERN_API(void)
  10.     DisposeQTEffectListFilterUPP    (QTEffectListFilterUPP  userUPP);
  11.     EXTERN_API(void)
  12.     DisposeQTBandwidthNotificationUPP    (QTBandwidthNotificationUPP userUPP);
  13.     EXTERN_API(void)
  14.     InvokeQTCallBackUPP            (QTCallBack              cb,
  15.                                     long                    refCon,
  16.                                     QTCallBackUPP           userUPP);
  17.     EXTERN_API(void)
  18.     InvokeQTSyncTaskUPP            (void *                  task,
  19.                                     QTSyncTaskUPP           userUPP);
  20.     EXTERN_API(OSErr)
  21.     InvokeMovieRgnCoverUPP         (Movie                   theMovie,
  22.                                     RgnHandle               changedRgn,
  23.                                     long                    refcon,
  24.                                     MovieRgnCoverUPP        userUPP);
  25.     EXTERN_API(OSErr)
  26.     InvokeMovieProgressUPP         (Movie                   theMovie,
  27.                                     short                   message,
  28.                                     short                   whatOperation,
  29.                                     Fixed                   percentDone,
  30.                                     long                    refcon,
  31.                                     MovieProgressUPP        userUPP);
  32.     EXTERN_API(OSErr)
  33.     InvokeMovieDrawingCompleteUPP    (Movie                 theMovie,
  34.                                     long                    refCon,
  35.                                     MovieDrawingCompleteUPP userUPP);
  36.     EXTERN_API(OSErr)
  37.     InvokeTrackTransferUPP         (Track                   t,
  38.                                     long                    refCon,
  39.                                     TrackTransferUPP        userUPP);
  40.     EXTERN_API(OSErr)
  41.     InvokeGetMovieUPP              (long                    offset,
  42.                                     long                    size,
  43.                                     void *                  dataPtr,
  44.                                     void *                  refCon,
  45.                                     GetMovieUPP             userUPP);
  46.     EXTERN_API(Boolean)
  47.     InvokeMoviePreviewCallOutUPP    (long                   refcon,
  48.                                     MoviePreviewCallOutUPP  userUPP);
  49.     EXTERN_API(OSErr)
  50.     InvokeTextMediaUPP             (Handle                  theText,
  51.                                     Movie                   theMovie,
  52.                                     short *                 displayFlag,
  53.                                     long                    refcon,
  54.                                     TextMediaUPP            userUPP);
  55.     EXTERN_API(OSErr)
  56.     InvokeActionsUPP               (void *                  refcon,
  57.                                     Track                   targetTrack,
  58.                                     long                    targetRefCon,
  59.                                     QTEventRecordPtr        theEvent,
  60.                                     ActionsUPP              userUPP);
  61.     EXTERN_API(OSErr)
  62.     InvokeDoMCActionUPP            (void *                  refcon,
  63.                                     short                   action,
  64.                                     void *                  params,
  65.                                     Boolean *               handled,
  66.                                     DoMCActionUPP           userUPP);
  67.     EXTERN_API(OSErr)
  68.     InvokeMovieExecuteWiredActionsUPP    (Movie             theMovie,
  69.                                     void *                  refcon,
  70.                                     long                    flags,
  71.                                     QTAtomContainer         wiredActions,
  72.                                     MovieExecuteWiredActionsUPP userUPP);
  73.     EXTERN_API(void)
  74.     InvokeMoviePrePrerollCompleteUPP    (Movie              theMovie,
  75.                                     OSErr                   prerollErr,
  76.                                     void *                  refcon,
  77.                                     MoviePrePrerollCompleteUPP userUPP);
  78.     EXTERN_API(void)
  79.     InvokeQTNextTaskNeededSoonerCallbackUPP    (TimeValue   duration,
  80.                                     unsigned long           flags,
  81.                                     void *                  refcon,
  82.                                     QTNextTaskNeededSoonerCallbackUPP userUPP);
  83.     EXTERN_API(void)
  84.     InvokeMoviesErrorUPP           (OSErr                   theErr,
  85.                                     long                    refcon,
  86.                                     MoviesErrorUPP          userUPP);
  87.     EXTERN_API(ComponentResult)
  88.     InvokeTweenerDataUPP           (TweenRecord *           tr,
  89.                                     void *                  tweenData,
  90.                                     long                    tweenDataSize,
  91.                                     long                    dataDescriptionSeed,
  92.                                     Handle                  dataDescription,
  93.                                     ICMCompletionProcRecordPtr asyncCompletionProc,
  94.                                     UniversalProcPtr        transferProc,
  95.                                     void *                  refCon,
  96.                                     TweenerDataUPP          userUPP);
  97.     EXTERN_API(Boolean)
  98.     InvokeQTEffectListFilterUPP    (Component               effect,
  99.                                     long                    effectMinSource,
  100.                                     long                    effectMaxSource,
  101.                                     OSType                  majorClass,
  102.                                     OSType                  minorClass,
  103.                                     void *                  refcon,
  104.                                     QTEffectListFilterUPP   userUPP);
  105.     EXTERN_API(OSErr)
  106.     InvokeQTBandwidthNotificationUPP    (long               flags,
  107.                                     void *                  reserved,
  108.                                     void *                  refcon,
  109.                                     QTBandwidthNotificationUPP userUPP);
  110. #else
  111.     enum { uppQTCallBackProcInfo = 0x000003C0 };                    /* pascal no_return_value Func(4_bytes, 4_bytes) */
  112.     enum { uppQTSyncTaskProcInfo = 0x000000C0 };                    /* pascal no_return_value Func(4_bytes) */
  113.     enum { uppMovieRgnCoverProcInfo = 0x00000FE0 };                 /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes) */
  114.     enum { uppMovieProgressProcInfo = 0x0000FAE0 };                 /* pascal 2_bytes Func(4_bytes, 2_bytes, 2_bytes, 4_bytes, 4_bytes) */
  115.     enum { uppMovieDrawingCompleteProcInfo = 0x000003E0 };          /* pascal 2_bytes Func(4_bytes, 4_bytes) */
  116.     enum { uppTrackTransferProcInfo = 0x000003E0 };                 /* pascal 2_bytes Func(4_bytes, 4_bytes) */
  117.     enum { uppGetMovieProcInfo = 0x00003FE0 };                      /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes, 4_bytes) */
  118.     enum { uppMoviePreviewCallOutProcInfo = 0x000000D0 };           /* pascal 1_byte Func(4_bytes) */
  119.     enum { uppTextMediaProcInfo = 0x00003FE0 };                     /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes, 4_bytes) */
  120.     enum { uppActionsProcInfo = 0x00003FE0 };                       /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes, 4_bytes) */
  121.     enum { uppDoMCActionProcInfo = 0x00003EE0 };                    /* pascal 2_bytes Func(4_bytes, 2_bytes, 4_bytes, 4_bytes) */
  122.     enum { uppMovieExecuteWiredActionsProcInfo = 0x00003FE0 };      /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes, 4_bytes) */
  123.     enum { uppMoviePrePrerollCompleteProcInfo = 0x00000EC0 };       /* pascal no_return_value Func(4_bytes, 2_bytes, 4_bytes) */
  124.     enum { uppQTNextTaskNeededSoonerCallbackProcInfo = 0x00000FC0 };  /* pascal no_return_value Func(4_bytes, 4_bytes, 4_bytes) */
  125.     enum { uppMoviesErrorProcInfo = 0x00000380 };                   /* pascal no_return_value Func(2_bytes, 4_bytes) */
  126.     enum { uppTweenerDataProcInfo = 0x003FFFF0 };                   /* pascal 4_bytes Func(4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes) */
  127.     enum { uppQTEffectListFilterProcInfo = 0x0003FFD0 };            /* pascal 1_byte Func(4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes) */
  128.     enum { uppQTBandwidthNotificationProcInfo = 0x00000FE0 };       /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes) */
  129.     #define NewQTCallBackUPP(userRoutine)                           (QTCallBackUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQTCallBackProcInfo, GetCurrentArchitecture())
  130.     #define NewQTSyncTaskUPP(userRoutine)                           (QTSyncTaskUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQTSyncTaskProcInfo, GetCurrentArchitecture())
  131.     #define NewMovieRgnCoverUPP(userRoutine)                        (MovieRgnCoverUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppMovieRgnCoverProcInfo, GetCurrentArchitecture())
  132.     #define NewMovieProgressUPP(userRoutine)                        (MovieProgressUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppMovieProgressProcInfo, GetCurrentArchitecture())
  133.     #define NewMovieDrawingCompleteUPP(userRoutine)                 (MovieDrawingCompleteUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppMovieDrawingCompleteProcInfo, GetCurrentArchitecture())
  134.     #define NewTrackTransferUPP(userRoutine)                        (TrackTransferUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppTrackTransferProcInfo, GetCurrentArchitecture())
  135.     #define NewGetMovieUPP(userRoutine)                             (GetMovieUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppGetMovieProcInfo, GetCurrentArchitecture())
  136.     #define NewMoviePreviewCallOutUPP(userRoutine)                  (MoviePreviewCallOutUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppMoviePreviewCallOutProcInfo, GetCurrentArchitecture())
  137.     #define NewTextMediaUPP(userRoutine)                            (TextMediaUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppTextMediaProcInfo, GetCurrentArchitecture())
  138.     #define NewActionsUPP(userRoutine)                              (ActionsUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppActionsProcInfo, GetCurrentArchitecture())
  139.     #define NewDoMCActionUPP(userRoutine)                           (DoMCActionUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppDoMCActionProcInfo, GetCurrentArchitecture())
  140.     #define NewMovieExecuteWiredActionsUPP(userRoutine)             (MovieExecuteWiredActionsUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppMovieExecuteWiredActionsProcInfo, GetCurrentArchitecture())
  141.     #define NewMoviePrePrerollCompleteUPP(userRoutine)              (MoviePrePrerollCompleteUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppMoviePrePrerollCompleteProcInfo, GetCurrentArchitecture())
  142.     #define NewQTNextTaskNeededSoonerCallbackUPP(userRoutine)       (QTNextTaskNeededSoonerCallbackUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQTNextTaskNeededSoonerCallbackProcInfo, GetCurrentArchitecture())
  143.     #define NewMoviesErrorUPP(userRoutine)                          (MoviesErrorUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppMoviesErrorProcInfo, GetCurrentArchitecture())
  144.     #define NewTweenerDataUPP(userRoutine)                          (TweenerDataUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppTweenerDataProcInfo, GetCurrentArchitecture())
  145.     #define NewQTEffectListFilterUPP(userRoutine)                   (QTEffectListFilterUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQTEffectListFilterProcInfo, GetCurrentArchitecture())
  146.     #define NewQTBandwidthNotificationUPP(userRoutine)              (QTBandwidthNotificationUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQTBandwidthNotificationProcInfo, GetCurrentArchitecture())
  147.     #define DisposeQTCallBackUPP(userUPP)                           DisposeRoutineDescriptor(userUPP)
  148.     #define DisposeQTSyncTaskUPP(userUPP)                           DisposeRoutineDescriptor(userUPP)
  149.     #define DisposeMovieRgnCoverUPP(userUPP)                        DisposeRoutineDescriptor(userUPP)
  150.     #define DisposeMovieProgressUPP(userUPP)                        DisposeRoutineDescriptor(userUPP)
  151.     #define DisposeMovieDrawingCompleteUPP(userUPP)                 DisposeRoutineDescriptor(userUPP)
  152.     #define DisposeTrackTransferUPP(userUPP)                        DisposeRoutineDescriptor(userUPP)
  153.     #define DisposeGetMovieUPP(userUPP)                             DisposeRoutineDescriptor(userUPP)
  154.     #define DisposeMoviePreviewCallOutUPP(userUPP)                  DisposeRoutineDescriptor(userUPP)
  155.     #define DisposeTextMediaUPP(userUPP)                            DisposeRoutineDescriptor(userUPP)
  156.     #define DisposeActionsUPP(userUPP)                              DisposeRoutineDescriptor(userUPP)
  157.     #define DisposeDoMCActionUPP(userUPP)                           DisposeRoutineDescriptor(userUPP)
  158.     #define DisposeMovieExecuteWiredActionsUPP(userUPP)             DisposeRoutineDescriptor(userUPP)
  159.     #define DisposeMoviePrePrerollCompleteUPP(userUPP)              DisposeRoutineDescriptor(userUPP)
  160.     #define DisposeQTNextTaskNeededSoonerCallbackUPP(userUPP)       DisposeRoutineDescriptor(userUPP)
  161.     #define DisposeMoviesErrorUPP(userUPP)                          DisposeRoutineDescriptor(userUPP)
  162.     #define DisposeTweenerDataUPP(userUPP)                          DisposeRoutineDescriptor(userUPP)
  163.     #define DisposeQTEffectListFilterUPP(userUPP)                   DisposeRoutineDescriptor(userUPP)
  164.     #define DisposeQTBandwidthNotificationUPP(userUPP)              DisposeRoutineDescriptor(userUPP)
  165.     #define InvokeQTCallBackUPP(cb, refCon, userUPP)                CALL_TWO_PARAMETER_UPP((userUPP), uppQTCallBackProcInfo, (cb), (refCon))
  166.     #define InvokeQTSyncTaskUPP(task, userUPP)                      CALL_ONE_PARAMETER_UPP((userUPP), uppQTSyncTaskProcInfo, (task))
  167.     #define InvokeMovieRgnCoverUPP(theMovie, changedRgn, refcon, userUPP)  (OSErr)CALL_THREE_PARAMETER_UPP((userUPP), uppMovieRgnCoverProcInfo, (theMovie), (changedRgn), (refcon))
  168.     #define InvokeMovieProgressUPP(theMovie, message, whatOperation, percentDone, refcon, userUPP)  (OSErr)CALL_FIVE_PARAMETER_UPP((userUPP), uppMovieProgressProcInfo, (theMovie), (message), (whatOperation), (percentDone), (refcon))
  169.     #define InvokeMovieDrawingCompleteUPP(theMovie, refCon, userUPP)  (OSErr)CALL_TWO_PARAMETER_UPP((userUPP), uppMovieDrawingCompleteProcInfo, (theMovie), (refCon))
  170.     #define InvokeTrackTransferUPP(t, refCon, userUPP)              (OSErr)CALL_TWO_PARAMETER_UPP((userUPP), uppTrackTransferProcInfo, (t), (refCon))
  171.     #define InvokeGetMovieUPP(offset, size, dataPtr, refCon, userUPP)  (OSErr)CALL_FOUR_PARAMETER_UPP((userUPP), uppGetMovieProcInfo, (offset), (size), (dataPtr), (refCon))
  172.     #define InvokeMoviePreviewCallOutUPP(refcon, userUPP)           (Boolean)CALL_ONE_PARAMETER_UPP((userUPP), uppMoviePreviewCallOutProcInfo, (refcon))
  173.     #define InvokeTextMediaUPP(theText, theMovie, displayFlag, refcon, userUPP)  (OSErr)CALL_FOUR_PARAMETER_UPP((userUPP), uppTextMediaProcInfo, (theText), (theMovie), (displayFlag), (refcon))
  174.     #define InvokeActionsUPP(refcon, targetTrack, targetRefCon, theEvent, userUPP)  (OSErr)CALL_FOUR_PARAMETER_UPP((userUPP), uppActionsProcInfo, (refcon), (targetTrack), (targetRefCon), (theEvent))
  175.     #define InvokeDoMCActionUPP(refcon, action, params, handled, userUPP)  (OSErr)CALL_FOUR_PARAMETER_UPP((userUPP), uppDoMCActionProcInfo, (refcon), (action), (params), (handled))
  176.     #define InvokeMovieExecuteWiredActionsUPP(theMovie, refcon, flags, wiredActions, userUPP)  (OSErr)CALL_FOUR_PARAMETER_UPP((userUPP), uppMovieExecuteWiredActionsProcInfo, (theMovie), (refcon), (flags), (wiredActions))
  177.     #define InvokeMoviePrePrerollCompleteUPP(theMovie, prerollErr, refcon, userUPP)  CALL_THREE_PARAMETER_UPP((userUPP), uppMoviePrePrerollCompleteProcInfo, (theMovie), (prerollErr), (refcon))
  178.     #define InvokeQTNextTaskNeededSoonerCallbackUPP(duration, flags, refcon, userUPP)  CALL_THREE_PARAMETER_UPP((userUPP), uppQTNextTaskNeededSoonerCallbackProcInfo, (duration), (flags), (refcon))
  179.     #define InvokeMoviesErrorUPP(theErr, refcon, userUPP)           CALL_TWO_PARAMETER_UPP((userUPP), uppMoviesErrorProcInfo, (theErr), (refcon))
  180.     #define InvokeTweenerDataUPP(tr, tweenData, tweenDataSize, dataDescriptionSeed, dataDescription, asyncCompletionProc, transferProc, refCon, userUPP)  (ComponentResult)CALL_EIGHT_PARAMETER_UPP((userUPP), uppTweenerDataProcInfo, (tr), (tweenData), (tweenDataSize), (dataDescriptionSeed), (dataDescription), (asyncCompletionProc), (transferProc), (refCon))
  181.     #define InvokeQTEffectListFilterUPP(effect, effectMinSource, effectMaxSource, majorClass, minorClass, refcon, userUPP)  (Boolean)CALL_SIX_PARAMETER_UPP((userUPP), uppQTEffectListFilterProcInfo, (effect), (effectMinSource), (effectMaxSource), (majorClass), (minorClass), (refcon))
  182.     #define InvokeQTBandwidthNotificationUPP(flags, reserved, refcon, userUPP)  (OSErr)CALL_THREE_PARAMETER_UPP((userUPP), uppQTBandwidthNotificationProcInfo, (flags), (reserved), (refcon))
  183. #endif
  184. /* support for pre-Carbon UPP routines: NewXXXProc and CallXXXProc */
  185. #define NewQTCallBackProc(userRoutine)                          NewQTCallBackUPP(userRoutine)
  186. #define NewQTSyncTaskProc(userRoutine)                          NewQTSyncTaskUPP(userRoutine)
  187. #define NewMovieRgnCoverProc(userRoutine)                       NewMovieRgnCoverUPP(userRoutine)
  188. #define NewMovieProgressProc(userRoutine)                       NewMovieProgressUPP(userRoutine)
  189. #define NewMovieDrawingCompleteProc(userRoutine)                NewMovieDrawingCompleteUPP(userRoutine)
  190. #define NewTrackTransferProc(userRoutine)                       NewTrackTransferUPP(userRoutine)
  191. #define NewGetMovieProc(userRoutine)                            NewGetMovieUPP(userRoutine)
  192. #define NewMoviePreviewCallOutProc(userRoutine)                 NewMoviePreviewCallOutUPP(userRoutine)
  193. #define NewTextMediaProc(userRoutine)                           NewTextMediaUPP(userRoutine)
  194. #define NewActionsProc(userRoutine)                             NewActionsUPP(userRoutine)
  195. #define NewDoMCActionProc(userRoutine)                          NewDoMCActionUPP(userRoutine)
  196. #define NewMovieExecuteWiredActionsProc(userRoutine)            NewMovieExecuteWiredActionsUPP(userRoutine)
  197. #define NewMoviePrePrerollCompleteProc(userRoutine)             NewMoviePrePrerollCompleteUPP(userRoutine)
  198. #define NewQTNextTaskNeededSoonerCallbackProc(userRoutine)      NewQTNextTaskNeededSoonerCallbackUPP(userRoutine)
  199. #define NewMoviesErrorProc(userRoutine)                         NewMoviesErrorUPP(userRoutine)
  200. #define NewTweenerDataProc(userRoutine)                         NewTweenerDataUPP(userRoutine)
  201. #define NewQTEffectListFilterProc(userRoutine)                  NewQTEffectListFilterUPP(userRoutine)
  202. #define NewQTBandwidthNotificationProc(userRoutine)             NewQTBandwidthNotificationUPP(userRoutine)
  203. #define CallQTCallBackProc(userRoutine, cb, refCon)             InvokeQTCallBackUPP(cb, refCon, userRoutine)
  204. #define CallQTSyncTaskProc(userRoutine, task)                   InvokeQTSyncTaskUPP(task, userRoutine)
  205. #define CallMovieRgnCoverProc(userRoutine, theMovie, changedRgn, refcon) InvokeMovieRgnCoverUPP(theMovie, changedRgn, refcon, userRoutine)
  206. #define CallMovieProgressProc(userRoutine, theMovie, message, whatOperation, percentDone, refcon) InvokeMovieProgressUPP(theMovie, message, whatOperation, percentDone, refcon, userRoutine)
  207. #define CallMovieDrawingCompleteProc(userRoutine, theMovie, refCon) InvokeMovieDrawingCompleteUPP(theMovie, refCon, userRoutine)
  208. #define CallTrackTransferProc(userRoutine, t, refCon)           InvokeTrackTransferUPP(t, refCon, userRoutine)
  209. #define CallGetMovieProc(userRoutine, offset, size, dataPtr, refCon) InvokeGetMovieUPP(offset, size, dataPtr, refCon, userRoutine)
  210. #define CallMoviePreviewCallOutProc(userRoutine, refcon)        InvokeMoviePreviewCallOutUPP(refcon, userRoutine)
  211. #define CallTextMediaProc(userRoutine, theText, theMovie, displayFlag, refcon) InvokeTextMediaUPP(theText, theMovie, displayFlag, refcon, userRoutine)
  212. #define CallActionsProc(userRoutine, refcon, targetTrack, targetRefCon, theEvent) InvokeActionsUPP(refcon, targetTrack, targetRefCon, theEvent, userRoutine)
  213. #define CallDoMCActionProc(userRoutine, refcon, action, params, handled) InvokeDoMCActionUPP(refcon, action, params, handled, userRoutine)
  214. #define CallMovieExecuteWiredActionsProc(userRoutine, theMovie, refcon, flags, wiredActions) InvokeMovieExecuteWiredActionsUPP(theMovie, refcon, flags, wiredActions, userRoutine)
  215. #define CallMoviePrePrerollCompleteProc(userRoutine, theMovie, prerollErr, refcon) InvokeMoviePrePrerollCompleteUPP(theMovie, prerollErr, refcon, userRoutine)
  216. #define CallQTNextTaskNeededSoonerCallbackProc(userRoutine, duration, flags, refcon) InvokeQTNextTaskNeededSoonerCallbackUPP(duration, flags, refcon, userRoutine)
  217. #define CallMoviesErrorProc(userRoutine, theErr, refcon)        InvokeMoviesErrorUPP(theErr, refcon, userRoutine)
  218. #define CallTweenerDataProc(userRoutine, tr, tweenData, tweenDataSize, dataDescriptionSeed, dataDescription, asyncCompletionProc, transferProc, refCon) InvokeTweenerDataUPP(tr, tweenData, tweenDataSize, dataDescriptionSeed, dataDescription, asyncCompletionProc, transferProc, refCon, userRoutine)
  219. #define CallQTEffectListFilterProc(userRoutine, effect, effectMinSource, effectMaxSource, majorClass, minorClass, refcon) InvokeQTEffectListFilterUPP(effect, effectMinSource, effectMaxSource, majorClass, minorClass, refcon, userRoutine)
  220. #define CallQTBandwidthNotificationProc(userRoutine, flags, reserved, refcon) InvokeQTBandwidthNotificationUPP(flags, reserved, refcon, userRoutine)
  221. /*****
  222.     QT International Text Atom Support
  223. *****/
  224. enum {
  225.     kITextRemoveEverythingBut   = 0 << 1,
  226.     kITextRemoveLeaveSuggestedAlternate = 1 << 1
  227. };
  228. enum {
  229.     kITextAtomType              = FOUR_CHAR_CODE('itxt'),
  230.     kITextStringAtomType        = FOUR_CHAR_CODE('text')
  231. };
  232. EXTERN_API( OSErr )
  233. ITextAddString                  (QTAtomContainer        container,
  234.                                  QTAtom                 parentAtom,
  235.                                  RegionCode             theRegionCode,
  236.                                  ConstStr255Param       theString)                          THREEWORDINLINE(0x303C, 0x027A, 0xAAAA);
  237. EXTERN_API( OSErr )
  238. ITextRemoveString               (QTAtomContainer        container,
  239.                                  QTAtom                 parentAtom,
  240.                                  RegionCode             theRegionCode,
  241.                                  long                   flags)                              THREEWORDINLINE(0x303C, 0x027B, 0xAAAA);
  242. EXTERN_API( OSErr )
  243. ITextGetString                  (QTAtomContainer        container,
  244.                                  QTAtom                 parentAtom,
  245.                                  RegionCode             requestedRegion,
  246.                                  RegionCode *           foundRegion,
  247.                                  StringPtr              theString)                          THREEWORDINLINE(0x303C, 0x027C, 0xAAAA);
  248. EXTERN_API( OSErr )
  249. QTTextToNativeText              (Handle                 theText,
  250.                                  long                   encoding,
  251.                                  long                   flags)                              THREEWORDINLINE(0x303C, 0x02DB, 0xAAAA);
  252. /* QTParseTextHREF inContainer atoms*/
  253. enum {
  254.     kQTParseTextHREFText        = FOUR_CHAR_CODE('text'),       /* string*/
  255.     kQTParseTextHREFBaseURL     = FOUR_CHAR_CODE('burl'),       /* string*/
  256.     kQTParseTextHREFClickPoint  = FOUR_CHAR_CODE('clik'),       /* Point; if present, QTParseTextHREF will expand URLs to support server-side image maps*/
  257.     kQTParseTextHREFUseAltDelim = FOUR_CHAR_CODE('altd'),       /* boolean; if no kQTParseTextHREFDelimiter, delim is ':'*/
  258.     kQTParseTextHREFDelimiter   = FOUR_CHAR_CODE('delm'),       /* character*/
  259.     kQTParseTextHREFRecomposeHREF = FOUR_CHAR_CODE('rhrf')      /* Boolean; if true, QTParseTextHREF returns recomposed HREF with URL expanded as appropriate*/
  260. };
  261. /* QTParseTextHREF outContainer atoms*/
  262. enum {
  263.     kQTParseTextHREFURL         = FOUR_CHAR_CODE('url '),       /* string*/
  264.     kQTParseTextHREFTarget      = FOUR_CHAR_CODE('targ'),       /* string*/
  265.     kQTParseTextHREFChapter     = FOUR_CHAR_CODE('chap'),       /* string*/
  266.     kQTParseTextHREFIsAutoHREF  = FOUR_CHAR_CODE('auto'),       /* Boolean*/
  267.     kQTParseTextHREFIsServerMap = FOUR_CHAR_CODE('smap'),       /* Boolean*/
  268.     kQTParseTextHREFHREF        = FOUR_CHAR_CODE('href'),       /* string; recomposed HREF with URL expanded as appropriate, suitable for mcActionLinkToURL*/
  269.     kQTParseTextHREFEMBEDArgs   = FOUR_CHAR_CODE('mbed')        /* string; text between 'E<' and '>' to be used as new movie's embed tags*/
  270. };
  271. EXTERN_API( OSErr )
  272. QTParseTextHREF                 (char *                 href,
  273.                                  SInt32                 hrefLen,
  274.                                  QTAtomContainer        inContainer,
  275.                                  QTAtomContainer *      outContainer)                       THREEWORDINLINE(0x303C, 0x0319, 0xAAAA);
  276. /*************************
  277. * track reference types
  278. **************************/
  279. enum {
  280.     kTrackReferenceChapterList  = FOUR_CHAR_CODE('chap'),
  281.     kTrackReferenceTimeCode     = FOUR_CHAR_CODE('tmcd'),
  282.     kTrackReferenceModifier     = FOUR_CHAR_CODE('ssrc')
  283. };
  284. /*************************
  285. * modifier track types
  286. **************************/
  287. enum {
  288.     kTrackModifierInput         = 0x696E,                       /* is really 'in'*/
  289.     kTrackModifierType          = 0x7479,                       /* is really 'ty'*/
  290.     kTrackModifierReference     = FOUR_CHAR_CODE('ssrc'),
  291.     kTrackModifierObjectID      = FOUR_CHAR_CODE('obid'),
  292.     kTrackModifierInputName     = FOUR_CHAR_CODE('name')
  293. };
  294. enum {
  295.     kInputMapSubInputID         = FOUR_CHAR_CODE('subi')
  296. };
  297. enum {
  298.     kTrackModifierTypeMatrix    = 1,
  299.     kTrackModifierTypeClip      = 2,
  300.     kTrackModifierTypeGraphicsMode = 5,
  301.     kTrackModifierTypeVolume    = 3,
  302.     kTrackModifierTypeBalance   = 4,
  303.     kTrackModifierTypeImage     = FOUR_CHAR_CODE('vide'),       /* was kTrackModifierTypeSpriteImage*/
  304.     kTrackModifierObjectMatrix  = 6,
  305.     kTrackModifierObjectGraphicsMode = 7,
  306.     kTrackModifierType3d4x4Matrix = 8,
  307.     kTrackModifierCameraData    = 9,
  308.     kTrackModifierSoundLocalizationData = 10,
  309.     kTrackModifierObjectImageIndex = 11,
  310.     kTrackModifierObjectLayer   = 12,
  311.     kTrackModifierObjectVisible = 13,
  312.     kTrackModifierAngleAspectCamera = 14,
  313.     kTrackModifierPanAngle      = FOUR_CHAR_CODE('pan '),
  314.     kTrackModifierTiltAngle     = FOUR_CHAR_CODE('tilt'),
  315.     kTrackModifierVerticalFieldOfViewAngle = FOUR_CHAR_CODE('fov '),
  316.     kTrackModifierObjectQTEventSend = FOUR_CHAR_CODE('evnt'),
  317.     kTrackModifierObjectCanBeHitTested = 15
  318. };
  319. struct ModifierTrackGraphicsModeRecord {
  320.     long                            graphicsMode;
  321.     RGBColor                        opColor;
  322. };
  323. typedef struct ModifierTrackGraphicsModeRecord ModifierTrackGraphicsModeRecord;
  324. /*************************
  325. * tween track types
  326. **************************/
  327. enum {
  328.     kTweenTypeShort             = 1,
  329.     kTweenTypeLong              = 2,
  330.     kTweenTypeFixed             = 3,
  331.     kTweenTypePoint             = 4,
  332.     kTweenTypeQDRect            = 5,
  333.     kTweenTypeQDRegion          = 6,
  334.     kTweenTypeMatrix            = 7,
  335.     kTweenTypeRGBColor          = 8,
  336.     kTweenTypeGraphicsModeWithRGBColor = 9,
  337.     kTweenTypeQTFloatSingle     = 10,
  338.     kTweenTypeQTFloatDouble     = 11,
  339.     kTweenTypeFixedPoint        = 12,
  340.     kTweenType3dScale           = FOUR_CHAR_CODE('3sca'),
  341.     kTweenType3dTranslate       = FOUR_CHAR_CODE('3tra'),
  342.     kTweenType3dRotate          = FOUR_CHAR_CODE('3rot'),
  343.     kTweenType3dRotateAboutPoint = FOUR_CHAR_CODE('3rap'),
  344.     kTweenType3dRotateAboutAxis = FOUR_CHAR_CODE('3rax'),
  345.     kTweenType3dRotateAboutVector = FOUR_CHAR_CODE('3rvc'),
  346.     kTweenType3dQuaternion      = FOUR_CHAR_CODE('3qua'),
  347.     kTweenType3dMatrix          = FOUR_CHAR_CODE('3mat'),
  348.     kTweenType3dCameraData      = FOUR_CHAR_CODE('3cam'),
  349.     kTweenType3dAngleAspectCameraData = FOUR_CHAR_CODE('3caa'),
  350.     kTweenType3dSoundLocalizationData = FOUR_CHAR_CODE('3slc'),
  351.     kTweenTypePathToMatrixTranslation = FOUR_CHAR_CODE('gxmt'),
  352.     kTweenTypePathToMatrixRotation = FOUR_CHAR_CODE('gxpr'),
  353.     kTweenTypePathToMatrixTranslationAndRotation = FOUR_CHAR_CODE('gxmr'),
  354.     kTweenTypePathToFixedPoint  = FOUR_CHAR_CODE('gxfp'),
  355.     kTweenTypePathXtoY          = FOUR_CHAR_CODE('gxxy'),
  356.     kTweenTypePathYtoX          = FOUR_CHAR_CODE('gxyx'),
  357.     kTweenTypeAtomList          = FOUR_CHAR_CODE('atom'),
  358.     kTweenTypePolygon           = FOUR_CHAR_CODE('poly'),
  359.     kTweenTypeMultiMatrix       = FOUR_CHAR_CODE('mulm'),
  360.     kTweenTypeSpin              = FOUR_CHAR_CODE('spin'),
  361.     kTweenType3dMatrixNonLinear = FOUR_CHAR_CODE('3nlr'),
  362.     kTweenType3dVRObject        = FOUR_CHAR_CODE('3vro')
  363. };
  364. enum {
  365.     kTweenEntry                 = FOUR_CHAR_CODE('twen'),
  366.     kTweenData                  = FOUR_CHAR_CODE('data'),
  367.     kTweenType                  = FOUR_CHAR_CODE('twnt'),
  368.     kTweenStartOffset           = FOUR_CHAR_CODE('twst'),
  369.     kTweenDuration              = FOUR_CHAR_CODE('twdu'),
  370.     kTweenFlags                 = FOUR_CHAR_CODE('flag'),
  371.     kTweenOutputMin             = FOUR_CHAR_CODE('omin'),
  372.     kTweenOutputMax             = FOUR_CHAR_CODE('omax'),
  373.     kTweenSequenceElement       = FOUR_CHAR_CODE('seqe'),
  374.     kTween3dInitialCondition    = FOUR_CHAR_CODE('icnd'),
  375.     kTweenInterpolationID       = FOUR_CHAR_CODE('intr'),
  376.     kTweenRegionData            = FOUR_CHAR_CODE('qdrg'),
  377.     kTweenPictureData           = FOUR_CHAR_CODE('PICT'),
  378.     kListElementType            = FOUR_CHAR_CODE('type'),
  379.     kListElementDataType        = FOUR_CHAR_CODE('daty'),
  380.     kNameAtom                   = FOUR_CHAR_CODE('name'),
  381.     kInitialRotationAtom        = FOUR_CHAR_CODE('inro'),
  382.     kNonLinearTweenHeader       = FOUR_CHAR_CODE('nlth')
  383. };
  384. /* kTweenFlags*/
  385. enum {
  386.     kTweenReturnDelta           = 1L << 0
  387. };
  388. struct TweenSequenceEntryRecord {
  389.     Fixed                           endPercent;
  390.     QTAtomID                        tweenAtomID;
  391.     QTAtomID                        dataAtomID;
  392. };
  393. typedef struct TweenSequenceEntryRecord TweenSequenceEntryRecord;
  394. #ifdef __QD3D__
  395. struct ThreeDeeVRObjectSample {
  396.   long            rows;  
  397.     long            columns;
  398.    TQ3Matrix4x4    calib1;
  399.     TQ3Matrix4x4    calib2;
  400.     long            reserved1;
  401.  long            reserved2;
  402. };
  403. typedef struct ThreeDeeVRObjectSample ThreeDeeVRObjectSample;
  404. struct ThreeDeeNonLinearSample {
  405.  float           DurFromLastSample;  /* 0 to 1 */
  406.    TQ3Matrix4x4    matrix;
  407. };
  408. typedef struct ThreeDeeNonLinearSample ThreeDeeNonLinearSample;
  409. struct ThreeDeeNonLinearTweenHeaderAtom {
  410.   long    number;
  411.     long    dataSize;
  412.   float   tensionFactor;  /* default is 0 */
  413.  long    reserved1;
  414.  long    reserved2;
  415. };
  416. typedef struct ThreeDeeNonLinearTweenHeaderAtom ThreeDeeNonLinearTweenHeaderAtom;
  417. #endif
  418. #if OLDROUTINENAMES
  419. /*************************
  420. * Video Media routines
  421. **************************/
  422. #define GetVideoMediaGraphicsMode      MediaGetGraphicsMode
  423. #define SetVideoMediaGraphicsMode      MediaSetGraphicsMode
  424. /* use these two routines at your own peril */
  425. #define ResetVideoMediaStatistics      VideoMediaResetStatistics
  426. #define GetVideoMediaStatistics           VideoMediaGetStatistics
  427. /*************************
  428. * Sound Media routines
  429. **************************/
  430. #define GetSoundMediaBalance            MediaGetSoundBalance
  431. #define SetSoundMediaBalance           MediaSetSoundBalance
  432. /*************************
  433. * Text Media routines
  434. **************************/
  435. #define SetTextProc         TextMediaSetTextProc
  436. #define AddTextSample      TextMediaAddTextSample
  437. #define AddTESample          TextMediaAddTESample
  438. #define AddHiliteSample        TextMediaAddHiliteSample
  439. #define FindNextText       TextMediaFindNextText
  440. #define HiliteTextSample  TextMediaHiliteTextSample
  441. #define SetTextSampleData TextMediaSetTextSampleData
  442. #define DrawRaw              TextMediaDrawRaw
  443. #define RawSetup           TextMediaRawSetup
  444. #define RawIdle               TextMediaRawIdle
  445. #define SetTextProperty        TextMediaSetTextProperty
  446. /*************************
  447. * Sprite Media routines
  448. **************************/
  449. #define SetSpriteMediaSpriteProperty  SpriteMediaSetProperty
  450. #define GetSpriteMediaSpriteProperty SpriteMediaGetProperty
  451. #define HitTestSpriteMedia               SpriteMediaHitTestSprites
  452. #define CountSpriteMediaSprites           SpriteMediaCountSprites
  453. #define CountSpriteMediaImages          SpriteMediaCountImages
  454. #define GetSpriteMediaIndImageDescription    SpriteMediaGetIndImageDescription
  455. #define GetDisplayedSampleNumber      SpriteMediaGetDisplayedSampleNumber
  456. #endif /* OLDROUTINENAMES */
  457. /*****
  458.     Content Restrictions
  459. *****/
  460. enum {
  461.     kQTRestrictionClassSave     = FOUR_CHAR_CODE('save'),
  462.     kQTRestrictionSaveDontAddMovieResource = (1L << 0),
  463.     kQTRestrictionSaveDontFlatten = (1L << 1),
  464.     kQTRestrictionSaveDontExport = (1L << 2),
  465.     kQTRestrictionSaveDontExtract = (1L << 3),                  /* don't allow any form of extraction of content*/
  466.     kQTRestrictionClassEdit     = FOUR_CHAR_CODE('edit'),
  467.     kQTRestrictionEditDontCopy  = (1L << 0),                    /* disable copy */
  468.     kQTRestrictionEditDontCut   = (1L << 1),                    /* disable cut */
  469.     kQTRestrictionEditDontPaste = (1L << 2),                    /* disable paste */
  470.     kQTRestrictionEditDontClear = (1L << 3),                    /* disable clear*/
  471.     kQTRestrictionEditDontModify = (1L << 4),                   /* don't allow modification of content*/
  472.     kQTRestrictionEditDontExtract = (1L << 5)                   /* don't allow any form of extraction of content*/
  473. };
  474. /*************************
  475. * Video Media routines
  476. **************************/
  477. enum {
  478.     videoFlagDontLeanAhead      = 1L << 0
  479. };
  480. /* use these five routines at your own peril*/
  481. EXTERN_API( ComponentResult )
  482. VideoMediaResetStatistics       (MediaHandler           mh)                                 FIVEWORDINLINE(0x2F3C, 0x0000, 0x0105, 0x7000, 0xA82A);
  483. EXTERN_API( ComponentResult )
  484. VideoMediaGetStatistics         (MediaHandler           mh)                                 FIVEWORDINLINE(0x2F3C, 0x0000, 0x0106, 0x7000, 0xA82A);
  485. EXTERN_API( ComponentResult )
  486. VideoMediaGetStallCount         (MediaHandler           mh,
  487.                                  unsigned long *        stalls)                             FIVEWORDINLINE(0x2F3C, 0x0004, 0x010E, 0x7000, 0xA82A);
  488. EXTERN_API( ComponentResult )
  489. VideoMediaSetCodecParameter     (MediaHandler           mh,
  490.                                  CodecType              cType,
  491.                                  OSType                 parameterID,
  492.                                  long                   parameterChangeSeed,
  493.                                  void *                 dataPtr,
  494.                                  long                   dataSize)                           FIVEWORDINLINE(0x2F3C, 0x0014, 0x010F, 0x7000, 0xA82A);
  495. EXTERN_API( ComponentResult )
  496. VideoMediaGetCodecParameter     (MediaHandler           mh,
  497.                                  CodecType              cType,
  498.                                  OSType                 parameterID,
  499.                                  Handle                 outParameterData)                   FIVEWORDINLINE(0x2F3C, 0x000C, 0x0110, 0x7000, 0xA82A);
  500. /*************************
  501. * Text Media routines
  502. **************************/
  503. /* Return displayFlags for TextProc */
  504. enum {
  505.     txtProcDefaultDisplay       = 0,                            /*    Use the media's default*/
  506.     txtProcDontDisplay          = 1,                            /*    Don't display the text*/
  507.     txtProcDoDisplay            = 2                             /*    Do display the text*/
  508. };
  509. EXTERN_API( ComponentResult )
  510. TextMediaSetTextProc            (MediaHandler           mh,
  511.                                  TextMediaUPP           TextProc,
  512.                                  long                   refcon)                             FIVEWORDINLINE(0x2F3C, 0x0008, 0x0101, 0x7000, 0xA82A);
  513. EXTERN_API( ComponentResult )
  514. TextMediaAddTextSample          (MediaHandler           mh,
  515.                                  Ptr                    text,
  516.                                  unsigned long          size,
  517.                                  short                  fontNumber,
  518.                                  short                  fontSize,
  519.                                  Style                  textFace,
  520.                                  RGBColor *             textColor,
  521.                                  RGBColor *             backColor,
  522.                                  short                  textJustification,
  523.                                  Rect *                 textBox,
  524.                                  long                   displayFlags,
  525.                                  TimeValue              scrollDelay,
  526.                                  short                  hiliteStart,
  527.                                  short                  hiliteEnd,
  528.                                  RGBColor *             rgbHiliteColor,
  529.                                  TimeValue              duration,
  530.                                  TimeValue *            sampleTime)                         FIVEWORDINLINE(0x2F3C, 0x0034, 0x0102, 0x7000, 0xA82A);
  531. EXTERN_API( ComponentResult )
  532. TextMediaAddTESample            (MediaHandler           mh,
  533.                                  TEHandle               hTE,
  534.                                  RGBColor *             backColor,
  535.                                  short                  textJustification,
  536.                                  Rect *                 textBox,
  537.                                  long                   displayFlags,
  538.                                  TimeValue              scrollDelay,
  539.                                  short                  hiliteStart,
  540.                                  short                  hiliteEnd,
  541.                                  RGBColor *             rgbHiliteColor,
  542.                                  TimeValue              duration,
  543.                                  TimeValue *            sampleTime)                         FIVEWORDINLINE(0x2F3C, 0x0026, 0x0103, 0x7000, 0xA82A);
  544. EXTERN_API( ComponentResult )
  545. TextMediaAddHiliteSample        (MediaHandler           mh,
  546.                                  short                  hiliteStart,
  547.                                  short                  hiliteEnd,
  548.                                  RGBColor *             rgbHiliteColor,
  549.                                  TimeValue              duration,
  550.                                  TimeValue *            sampleTime)                         FIVEWORDINLINE(0x2F3C, 0x0010, 0x0104, 0x7000, 0xA82A);
  551. EXTERN_API( ComponentResult )
  552. TextMediaDrawRaw                (MediaHandler           mh,
  553.                                  GWorldPtr              gw,
  554.                                  GDHandle               gd,
  555.                                  void *                 data,
  556.                                  long                   dataSize,
  557.                                  TextDescriptionHandle  tdh)                                FIVEWORDINLINE(0x2F3C, 0x0014, 0x0109, 0x7000, 0xA82A);
  558. EXTERN_API( ComponentResult )
  559. TextMediaSetTextProperty        (MediaHandler           mh,
  560.                                  TimeValue              atMediaTime,
  561.                                  long                   propertyType,
  562.                                  void *                 data,
  563.                                  long                   dataSize)                           FIVEWORDINLINE(0x2F3C, 0x0010, 0x010A, 0x7000, 0xA82A);
  564. EXTERN_API( ComponentResult )
  565. TextMediaRawSetup               (MediaHandler           mh,
  566.                                  GWorldPtr              gw,
  567.                                  GDHandle               gd,
  568.                                  void *                 data,
  569.                                  long                   dataSize,
  570.                                  TextDescriptionHandle  tdh,
  571.                                  TimeValue              sampleDuration)                     FIVEWORDINLINE(0x2F3C, 0x0018, 0x010B, 0x7000, 0xA82A);
  572. EXTERN_API( ComponentResult )
  573. TextMediaRawIdle                (MediaHandler           mh,
  574.                                  GWorldPtr              gw,
  575.                                  GDHandle               gd,
  576.                                  TimeValue              sampleTime,
  577.                                  long                   flagsIn,
  578.                                  long *                 flagsOut)                           FIVEWORDINLINE(0x2F3C, 0x0014, 0x010C, 0x7000, 0xA82A);
  579. EXTERN_API( ComponentResult )
  580. TextMediaGetTextProperty        (MediaHandler           mh,
  581.                                  TimeValue              atMediaTime,
  582.                                  long                   propertyType,
  583.                                  void *                 data,
  584.                                  long                   dataSize)                           FIVEWORDINLINE(0x2F3C, 0x0010, 0x010D, 0x7000, 0xA82A);
  585. enum {
  586.     findTextEdgeOK              = 1 << 0,                       /* Okay to find text at specified sample time*/
  587.     findTextCaseSensitive       = 1 << 1,                       /* Case sensitive search*/
  588.     findTextReverseSearch       = 1 << 2,                       /* Search from sampleTime backwards*/
  589.     findTextWrapAround          = 1 << 3,                       /* Wrap search when beginning or end of movie is hit*/
  590.     findTextUseOffset           = 1 << 4                        /* Begin search at the given character offset into sample rather than edge*/
  591. };
  592. EXTERN_API( ComponentResult )
  593. TextMediaFindNextText           (MediaHandler           mh,
  594.                                  Ptr                    text,
  595.                                  long                   size,
  596.                                  short                  findFlags,
  597.                                  TimeValue              startTime,
  598.                                  TimeValue *            foundTime,
  599.                                  TimeValue *            foundDuration,
  600.                                  long *                 offset)                             FIVEWORDINLINE(0x2F3C, 0x001A, 0x0105, 0x7000, 0xA82A);
  601. EXTERN_API( ComponentResult )
  602. TextMediaHiliteTextSample       (MediaHandler           mh,
  603.                                  TimeValue              sampleTime,
  604.                                  short                  hiliteStart,
  605.                                  short                  hiliteEnd,
  606.                                  RGBColor *             rgbHiliteColor)                     FIVEWORDINLINE(0x2F3C, 0x000C, 0x0106, 0x7000, 0xA82A);
  607. enum {
  608.     dropShadowOffsetType        = FOUR_CHAR_CODE('drpo'),
  609.     dropShadowTranslucencyType  = FOUR_CHAR_CODE('drpt')
  610. };
  611. EXTERN_API( ComponentResult )
  612. TextMediaSetTextSampleData      (MediaHandler           mh,
  613.                                  void *                 data,
  614.                                  OSType                 dataType)                           FIVEWORDINLINE(0x2F3C, 0x0008, 0x0107, 0x7000, 0xA82A);
  615. /*************************
  616. * Sprite Media routines
  617. **************************/
  618. /* flags for sprite hit test routines */
  619. enum {
  620.     spriteHitTestBounds         = 1L << 0,                      /*    point must only be within sprite's bounding box*/
  621.     spriteHitTestImage          = 1L << 1,                      /*  point must be within the shape of the sprite's image*/
  622.     spriteHitTestInvisibleSprites = 1L << 2,                    /*  invisible sprites may be hit tested*/
  623.     spriteHitTestIsClick        = 1L << 3,                      /*  for codecs that want mouse events*/
  624.     spriteHitTestLocInDisplayCoordinates = 1L << 4,             /*    set if you want to pass a display coordiate point to SpriteHitTest*/
  625.     spriteHitTestTreatAllSpritesAsHitTestable = 1L << 5         /* set if you want to override each sprites hittestable property as true*/
  626. };
  627. /* atom types for sprite media */
  628. enum {
  629.     kSpriteAtomType             = FOUR_CHAR_CODE('sprt'),
  630.     kSpriteImagesContainerAtomType = FOUR_CHAR_CODE('imct'),
  631.     kSpriteImageAtomType        = FOUR_CHAR_CODE('imag'),
  632.     kSpriteImageDataAtomType    = FOUR_CHAR_CODE('imda'),
  633.     kSpriteImageDataRefAtomType = FOUR_CHAR_CODE('imre'),
  634.     kSpriteImageDataRefTypeAtomType = FOUR_CHAR_CODE('imrt'),
  635.     kSpriteImageGroupIDAtomType = FOUR_CHAR_CODE('imgr'),
  636.     kSpriteImageRegistrationAtomType = FOUR_CHAR_CODE('imrg'),
  637.     kSpriteImageDefaultImageIndexAtomType = FOUR_CHAR_CODE('defi'),
  638.     kSpriteSharedDataAtomType   = FOUR_CHAR_CODE('dflt'),
  639.     kSpriteNameAtomType         = FOUR_CHAR_CODE('name'),
  640.     kSpriteImageNameAtomType    = FOUR_CHAR_CODE('name'),
  641.     kSpriteUsesImageIDsAtomType = FOUR_CHAR_CODE('uses'),       /* leaf data is an array of QTAtomID's, one per image used*/
  642.     kSpriteBehaviorsAtomType    = FOUR_CHAR_CODE('beha'),
  643.     kSpriteImageBehaviorAtomType = FOUR_CHAR_CODE('imag'),
  644.     kSpriteCursorBehaviorAtomType = FOUR_CHAR_CODE('crsr'),
  645.     kSpriteStatusStringsBehaviorAtomType = FOUR_CHAR_CODE('sstr'),
  646.     kSpriteVariablesContainerAtomType = FOUR_CHAR_CODE('vars'),
  647.     kSpriteStringVariableAtomType = FOUR_CHAR_CODE('strv'),
  648.     kSpriteFloatingPointVariableAtomType = FOUR_CHAR_CODE('flov')
  649. };
  650. struct QTRuntimeSpriteDescStruct {
  651.     long                            version;                    /* set to zero*/
  652.     QTAtomID                        spriteID;
  653.     short                           imageIndex;
  654.     MatrixRecord                    matrix;
  655.     short                           visible;
  656.     short                           layer;
  657.     ModifierTrackGraphicsModeRecord  graphicsMode;
  658.     QTAtomID                        actionHandlingSpriteID;
  659. };
  660. typedef struct QTRuntimeSpriteDescStruct QTRuntimeSpriteDescStruct;
  661. typedef QTRuntimeSpriteDescStruct *     QTRuntimeSpriteDescPtr;
  662. /*
  663.    when filling in QTSpriteButtonBehaviorStruct values -1 may be used to indicate that
  664.    the state transition does not change the property
  665. */
  666. struct QTSpriteButtonBehaviorStruct {
  667.     QTAtomID                        notOverNotPressedStateID;
  668.     QTAtomID                        overNotPressedStateID;
  669.     QTAtomID                        overPressedStateID;
  670.     QTAtomID                        notOverPressedStateID;
  671. };
  672. typedef struct QTSpriteButtonBehaviorStruct QTSpriteButtonBehaviorStruct;
  673. typedef QTSpriteButtonBehaviorStruct *  QTSpriteButtonBehaviorPtr;
  674. EXTERN_API( ComponentResult )
  675. SpriteMediaSetProperty          (MediaHandler           mh,
  676.                                  short                  spriteIndex,
  677.                                  long                   propertyType,
  678.                                  void *                 propertyValue)                      FIVEWORDINLINE(0x2F3C, 0x000A, 0x0101, 0x7000, 0xA82A);
  679. EXTERN_API( ComponentResult )
  680. SpriteMediaGetProperty          (MediaHandler           mh,
  681.                                  short                  spriteIndex,
  682.                                  long                   propertyType,
  683.                                  void *                 propertyValue)                      FIVEWORDINLINE(0x2F3C, 0x000A, 0x0102, 0x7000, 0xA82A);
  684. EXTERN_API( ComponentResult )
  685. SpriteMediaHitTestSprites       (MediaHandler           mh,
  686.                                  long                   flags,
  687.                                  Point                  loc,
  688.                                  short *                spriteHitIndex)                     FIVEWORDINLINE(0x2F3C, 0x000C, 0x0103, 0x7000, 0xA82A);
  689. EXTERN_API( ComponentResult )
  690. SpriteMediaCountSprites         (MediaHandler           mh,
  691.                                  short *                numSprites)                         FIVEWORDINLINE(0x2F3C, 0x0004, 0x0104, 0x7000, 0xA82A);
  692. EXTERN_API( ComponentResult )
  693. SpriteMediaCountImages          (MediaHandler           mh,
  694.                                  short *                numImages)                          FIVEWORDINLINE(0x2F3C, 0x0004, 0x0105, 0x7000, 0xA82A);
  695. EXTERN_API( ComponentResult )
  696. SpriteMediaGetIndImageDescription (MediaHandler         mh,
  697.                                  short                  imageIndex,
  698.                                  ImageDescriptionHandle  imageDescription)                  FIVEWORDINLINE(0x2F3C, 0x0006, 0x0106, 0x7000, 0xA82A);
  699. EXTERN_API( ComponentResult )
  700. SpriteMediaGetDisplayedSampleNumber (MediaHandler       mh,
  701.                                  long *                 sampleNum)                          FIVEWORDINLINE(0x2F3C, 0x0004, 0x0107, 0x7000, 0xA82A);
  702. EXTERN_API( ComponentResult )
  703. SpriteMediaGetSpriteName        (MediaHandler           mh,
  704.                                  QTAtomID               spriteID,
  705.                                  Str255                 spriteName)                         FIVEWORDINLINE(0x2F3C, 0x0008, 0x0108, 0x7000, 0xA82A);
  706. EXTERN_API( ComponentResult )
  707. SpriteMediaGetImageName         (MediaHandler           mh,
  708.                                  short                  imageIndex,
  709.                                  Str255                 imageName)                          FIVEWORDINLINE(0x2F3C, 0x0006, 0x0109, 0x7000, 0xA82A);
  710. EXTERN_API( ComponentResult )
  711. SpriteMediaSetSpriteProperty    (MediaHandler           mh,
  712.                                  QTAtomID               spriteID,
  713.                                  long                   propertyType,
  714.                                  void *                 propertyValue)                      FIVEWORDINLINE(0x2F3C, 0x000C, 0x010A, 0x7000, 0xA82A);
  715. EXTERN_API( ComponentResult )
  716. SpriteMediaGetSpriteProperty    (MediaHandler           mh,
  717.                                  QTAtomID               spriteID,
  718.                                  long                   propertyType,
  719.                                  void *                 propertyValue)                      FIVEWORDINLINE(0x2F3C, 0x000C, 0x010B, 0x7000, 0xA82A);
  720. EXTERN_API( ComponentResult )
  721. SpriteMediaHitTestAllSprites    (MediaHandler           mh,
  722.                                  long                   flags,
  723.                                  Point                  loc,
  724.                                  QTAtomID *             spriteHitID)                        FIVEWORDINLINE(0x2F3C, 0x000C, 0x010C, 0x7000, 0xA82A);
  725. EXTERN_API( ComponentResult )
  726. SpriteMediaHitTestOneSprite     (MediaHandler           mh,
  727.                                  QTAtomID               spriteID,
  728.                                  long                   flags,
  729.                                  Point                  loc,
  730.                                  Boolean *              wasHit)                             FIVEWORDINLINE(0x2F3C, 0x0010, 0x010D, 0x7000, 0xA82A);
  731. EXTERN_API( ComponentResult )
  732. SpriteMediaSpriteIndexToID      (MediaHandler           mh,
  733.                                  short                  spriteIndex,
  734.                                  QTAtomID *             spriteID)                           FIVEWORDINLINE(0x2F3C, 0x0006, 0x010E, 0x7000, 0xA82A);
  735. EXTERN_API( ComponentResult )
  736. SpriteMediaSpriteIDToIndex      (MediaHandler           mh,
  737.                                  QTAtomID               spriteID,
  738.                                  short *                spriteIndex)                        FIVEWORDINLINE(0x2F3C, 0x0008, 0x010F, 0x7000, 0xA82A);
  739. EXTERN_API( ComponentResult )
  740. SpriteMediaGetSpriteActionsForQTEvent (MediaHandler     mh,
  741.                                  QTEventRecordPtr       event,
  742.                                  QTAtomID               spriteID,
  743.                                  QTAtomContainer *      container,
  744.                                  QTAtom *               atom)                               FIVEWORDINLINE(0x2F3C, 0x0010, 0x0110, 0x7000, 0xA82A);
  745. EXTERN_API( ComponentResult )
  746. SpriteMediaSetActionVariable    (MediaHandler           mh,
  747.                                  QTAtomID               variableID,
  748.                                  const float *          value)                              FIVEWORDINLINE(0x2F3C, 0x0008, 0x0111, 0x7000, 0xA82A);
  749. EXTERN_API( ComponentResult )
  750. SpriteMediaGetActionVariable    (MediaHandler           mh,
  751.                                  QTAtomID               variableID,
  752.                                  float *                value)                              FIVEWORDINLINE(0x2F3C, 0x0008, 0x0112, 0x7000, 0xA82A);
  753. EXTERN_API( ComponentResult )
  754. SpriteMediaGetIndImageProperty  (MediaHandler           mh,
  755.                                  short                  imageIndex,
  756.                                  long                   imagePropertyType,
  757.                                  void *                 imagePropertyValue)                 FIVEWORDINLINE(0x2F3C, 0x000A, 0x0113, 0x7000, 0xA82A);
  758. EXTERN_API( ComponentResult )
  759. SpriteMediaNewSprite            (MediaHandler           mh,
  760.                                  QTRuntimeSpriteDescPtr  newSpriteDesc)                     FIVEWORDINLINE(0x2F3C, 0x0004, 0x0114, 0x7000, 0xA82A);
  761. EXTERN_API( ComponentResult )
  762. SpriteMediaDisposeSprite        (MediaHandler           mh,
  763.                                  QTAtomID               spriteID)                           FIVEWORDINLINE(0x2F3C, 0x0004, 0x0115, 0x7000, 0xA82A);
  764. EXTERN_API( ComponentResult )
  765. SpriteMediaSetActionVariableToString (MediaHandler      mh,
  766.                                  QTAtomID               variableID,
  767.                                  Ptr                    theCString)                         FIVEWORDINLINE(0x2F3C, 0x0008, 0x0116, 0x7000, 0xA82A);
  768. EXTERN_API( ComponentResult )
  769. SpriteMediaGetActionVariableAsString (MediaHandler      mh,
  770.                                  QTAtomID               variableID,
  771.                                  Handle *               theCString)                         FIVEWORDINLINE(0x2F3C, 0x0008, 0x0117, 0x7000, 0xA82A);
  772. EXTERN_API( ComponentResult )
  773. SpriteMediaNewImage             (MediaHandler           mh,
  774.                                  Handle                 dataRef,
  775.                                  OSType                 dataRefType,
  776.                                  QTAtomID               desiredID)                          FIVEWORDINLINE(0x2F3C, 0x000C, 0x011B, 0x7000, 0xA82A);
  777. EXTERN_API( ComponentResult )
  778. SpriteMediaDisposeImage         (MediaHandler           mh,
  779.                                  short                  imageIndex)                         FIVEWORDINLINE(0x2F3C, 0x0002, 0x011C, 0x7000, 0xA82A);
  780. EXTERN_API( ComponentResult )
  781. SpriteMediaImageIndexToID       (MediaHandler           mh,
  782.                                  short                  imageIndex,
  783.                                  QTAtomID *             imageID)                            FIVEWORDINLINE(0x2F3C, 0x0006, 0x011D, 0x7000, 0xA82A);
  784. EXTERN_API( ComponentResult )
  785. SpriteMediaImageIDToIndex       (MediaHandler           mh,
  786.                                  QTAtomID               imageID,
  787.                                  short *                imageIndex)                         FIVEWORDINLINE(0x2F3C, 0x0008, 0x011E, 0x7000, 0xA82A);
  788. /*************************
  789. * Flash Media routines
  790. **************************/
  791. EXTERN_API( ComponentResult )
  792. FlashMediaSetPan                (MediaHandler           mh,
  793.                                  short                  xPercent,
  794.                                  short                  yPercent)                           FIVEWORDINLINE(0x2F3C, 0x0004, 0x0101, 0x7000, 0xA82A);
  795. EXTERN_API( ComponentResult )
  796. FlashMediaSetZoom               (MediaHandler           mh,
  797.                                  short                  factor)                             FIVEWORDINLINE(0x2F3C, 0x0002, 0x0102, 0x7000, 0xA82A);
  798. EXTERN_API( ComponentResult )
  799. FlashMediaSetZoomRect           (MediaHandler           mh,
  800.                                  long                   left,
  801.                                  long                   top,
  802.                                  long                   right,
  803.                                  long                   bottom)                             FIVEWORDINLINE(0x2F3C, 0x0010, 0x0103, 0x7000, 0xA82A);
  804. EXTERN_API( ComponentResult )
  805. FlashMediaGetRefConBounds       (MediaHandler           mh,
  806.                                  long                   refCon,
  807.                                  long *                 left,
  808.                                  long *                 top,
  809.                                  long *                 right,
  810.                                  long *                 bottom)                             FIVEWORDINLINE(0x2F3C, 0x0014, 0x0104, 0x7000, 0xA82A);
  811. EXTERN_API( ComponentResult )
  812. FlashMediaGetRefConID           (MediaHandler           mh,
  813.                                  long                   refCon,
  814.                                  long *                 refConID)                           FIVEWORDINLINE(0x2F3C, 0x0008, 0x0105, 0x7000, 0xA82A);
  815. EXTERN_API( ComponentResult )
  816. FlashMediaIDToRefCon            (MediaHandler           mh,
  817.                                  long                   refConID,
  818.                                  long *                 refCon)                             FIVEWORDINLINE(0x2F3C, 0x0008, 0x0106, 0x7000, 0xA82A);
  819. EXTERN_API( ComponentResult )
  820. FlashMediaGetDisplayedFrameNumber (MediaHandler         mh,
  821.                                  long *                 flashFrameNumber)                   FIVEWORDINLINE(0x2F3C, 0x0004, 0x0107, 0x7000, 0xA82A);
  822. EXTERN_API( ComponentResult )
  823. FlashMediaFrameNumberToMovieTime (MediaHandler          mh,
  824.                                  long                   flashFrameNumber,
  825.                                  TimeValue *            movieTime)                          FIVEWORDINLINE(0x2F3C, 0x0008, 0x0108, 0x7000, 0xA82A);
  826. EXTERN_API( ComponentResult )
  827. FlashMediaFrameLabelToMovieTime (MediaHandler           mh,
  828.                                  Ptr                    theLabel,
  829.                                  TimeValue *            movieTime)                          FIVEWORDINLINE(0x2F3C, 0x0008, 0x0109, 0x7000, 0xA82A);
  830. EXTERN_API( ComponentResult )
  831. FlashMediaGetFlashVariable      (MediaHandler           mh,
  832.                                  char *                 path,
  833.                                  char *                 name,
  834.                                  Handle *               theVariableCStringOut)              FIVEWORDINLINE(0x2F3C, 0x000C, 0x010A, 0x7000, 0xA82A);
  835. EXTERN_API( ComponentResult )
  836. FlashMediaSetFlashVariable      (MediaHandler           mh,
  837.                                  char *                 path,
  838.                                  char *                 name,
  839.                                  char *                 value,
  840.                                  Boolean                updateFocus)                        FIVEWORDINLINE(0x2F3C, 0x000E, 0x010B, 0x7000, 0xA82A);
  841. EXTERN_API( ComponentResult )
  842. FlashMediaDoButtonActions       (MediaHandler           mh,
  843.                                  char *                 path,
  844.                                  long                   buttonID,
  845.                                  long                   transition)                         FIVEWORDINLINE(0x2F3C, 0x000C, 0x010C, 0x7000, 0xA82A);
  846. EXTERN_API( ComponentResult )
  847. FlashMediaGetSupportedSwfVersion (MediaHandler          mh,
  848.                                  unsigned char *        swfVersion)                         FIVEWORDINLINE(0x2F3C, 0x0004, 0x010D, 0x7000, 0xA82A);
  849. /* sample format atoms*/
  850. enum {
  851.     kMovieMediaDataReference    = FOUR_CHAR_CODE('mmdr'),       /* data reference*/
  852.     kMovieMediaDefaultDataReferenceID = FOUR_CHAR_CODE('ddri'), /* atom id*/
  853.     kMovieMediaSlaveTime        = FOUR_CHAR_CODE('slti'),       /* boolean*/
  854.     kMovieMediaSlaveAudio       = FOUR_CHAR_CODE('slau'),       /* boolean*/
  855.     kMovieMediaSlaveGraphicsMode = FOUR_CHAR_CODE('slgr'),      /* boolean*/
  856.     kMovieMediaAutoPlay         = FOUR_CHAR_CODE('play'),       /* boolean*/
  857.     kMovieMediaLoop             = FOUR_CHAR_CODE('loop'),       /* UInt8 (0=no loop, 1=loop, 2=palindrome loop)*/
  858.     kMovieMediaUseMIMEType      = FOUR_CHAR_CODE('mime'),       /* string indicating the MIME type to use for the dataref (usually not required)*/
  859.     kMovieMediaTitle            = FOUR_CHAR_CODE('titl'),       /* string of the media's title (tooltips)*/
  860.     kMovieMediaAltText          = FOUR_CHAR_CODE('altt'),       /* string of alternate text if media isn't loaded*/
  861.     kMovieMediaClipBegin        = FOUR_CHAR_CODE('clpb'),       /* MovieMediaTimeRecord of start time of embedded media*/
  862.     kMovieMediaClipDuration     = FOUR_CHAR_CODE('clpd'),       /* MovieMediaTimeRecord of duration of embedded media*/
  863.     kMovieMediaRegionAtom       = FOUR_CHAR_CODE('regi'),       /* contains subatoms that describe layout*/
  864.     kMovieMediaSlaveTrackDuration = FOUR_CHAR_CODE('sltr'),     /* Boolean indicating that media handler should adjust track and media based on actual embedded movie duration*/
  865.     kMovieMediaEnableFrameStepping = FOUR_CHAR_CODE('enfs'),    /* boolean. if true stepping on external movie steps frames within embedded movie.*/
  866.     kMovieMediaBackgroundColor  = FOUR_CHAR_CODE('bkcl'),       /* RGBColor.*/
  867.     kMovieMediaPrerollTime      = FOUR_CHAR_CODE('prer')        /* SInt32 indicating preroll time*/
  868. };
  869. /* fit types*/
  870. enum {
  871.     kMovieMediaFitNone          = 0,
  872.     kMovieMediaFitScroll        = FOUR_CHAR_CODE('scro'),
  873.     kMovieMediaFitClipIfNecessary = FOUR_CHAR_CODE('hidd'),
  874.     kMovieMediaFitFill          = FOUR_CHAR_CODE('fill'),
  875.     kMovieMediaFitMeet          = FOUR_CHAR_CODE('meet'),
  876.     kMovieMediaFitSlice         = FOUR_CHAR_CODE('slic')
  877. };
  878. /* sub atoms for region atom*/
  879. enum {
  880.     kMovieMediaSpatialAdjustment = FOUR_CHAR_CODE('fit '),      /* OSType from kMovieMediaFit**/
  881.     kMovieMediaRectangleAtom    = FOUR_CHAR_CODE('rect'),
  882.     kMovieMediaTop              = FOUR_CHAR_CODE('top '),
  883.     kMovieMediaLeft             = FOUR_CHAR_CODE('left'),
  884.     kMovieMediaWidth            = FOUR_CHAR_CODE('wd  '),
  885.     kMovieMediaHeight           = FOUR_CHAR_CODE('ht  ')
  886. };
  887. /* contained movie properties*/
  888. enum {
  889.     kMoviePropertyDuration      = FOUR_CHAR_CODE('dura'),       /* TimeValue **/
  890.     kMoviePropertyTimeScale     = FOUR_CHAR_CODE('tims'),       /* TimeValue **/
  891.     kMoviePropertyTime          = FOUR_CHAR_CODE('timv'),       /* TimeValue **/
  892.     kMoviePropertyNaturalBounds = FOUR_CHAR_CODE('natb'),       /* Rect **/
  893.     kMoviePropertyMatrix        = FOUR_CHAR_CODE('mtrx'),       /* Matrix **/
  894.     kMoviePropertyTrackList     = FOUR_CHAR_CODE('tlst')        /* long ****/
  895. };
  896. enum {
  897.     kTrackPropertyMediaType     = FOUR_CHAR_CODE('mtyp'),       /* OSType*/
  898.     kTrackPropertyInstantiation = FOUR_CHAR_CODE('inst')        /* MovieMediaInstantiationInfoRecord*/
  899. };
  900. struct MovieMediaTimeRecord {
  901.     wide                            time;
  902.     TimeScale                       scale;
  903. };
  904. typedef struct MovieMediaTimeRecord     MovieMediaTimeRecord;
  905. struct MovieMediaInstantiationInfoRecord {
  906.     Boolean                         immediately;
  907.     Boolean                         pad;
  908.     SInt32                          bitRate;
  909. };
  910. typedef struct MovieMediaInstantiationInfoRecord MovieMediaInstantiationInfoRecord;
  911. /*************************
  912. * Movie Media routines
  913. **************************/
  914. EXTERN_API( ComponentResult )
  915. MovieMediaGetChildDoMCActionCallback (MediaHandler      mh,
  916.                                  DoMCActionUPP *        doMCActionCallbackProc,
  917.                                  long *                 refcon)                             FIVEWORDINLINE(0x2F3C, 0x0008, 0x0102, 0x7000, 0xA82A);
  918. EXTERN_API( ComponentResult )
  919. MovieMediaGetDoMCActionCallback (MediaHandler           mh,
  920.                                  DoMCActionUPP *        doMCActionCallbackProc,
  921.                                  long *                 refcon)                             FIVEWORDINLINE(0x2F3C, 0x0008, 0x0103, 0x7000, 0xA82A);
  922. EXTERN_API( ComponentResult )
  923. MovieMediaGetCurrentMovieProperty (MediaHandler         mh,
  924.                                  OSType                 whichProperty,
  925.                                  void *                 value)                              FIVEWORDINLINE(0x2F3C, 0x0008, 0x0104, 0x7000, 0xA82A);
  926. EXTERN_API( ComponentResult )
  927. MovieMediaGetCurrentTrackProperty (MediaHandler         mh,
  928.                                  long                   trackID,
  929.                                  OSType                 whichProperty,
  930.                                  void *                 value)                              FIVEWORDINLINE(0x2F3C, 0x000C, 0x0105, 0x7000, 0xA82A);
  931. EXTERN_API( ComponentResult )
  932. MovieMediaGetChildMovieDataReference (MediaHandler      mh,
  933.                                  QTAtomID               dataRefID,
  934.                                  short                  dataRefIndex,
  935.                                  OSType *               dataRefType,
  936.                                  Handle *               dataRef,
  937.                                  QTAtomID *             dataRefIDOut,
  938.                                  short *                dataRefIndexOut)                    FIVEWORDINLINE(0x2F3C, 0x0016, 0x0106, 0x7000, 0xA82A);
  939. EXTERN_API( ComponentResult )
  940. MovieMediaSetChildMovieDataReference (MediaHandler      mh,
  941.                                  QTAtomID               dataRefID,
  942.                                  OSType                 dataRefType,
  943.                                  Handle                 dataRef)                            FIVEWORDINLINE(0x2F3C, 0x000C, 0x0107, 0x7000, 0xA82A);
  944. EXTERN_API( ComponentResult )
  945. MovieMediaLoadChildMovieFromDataReference (MediaHandler  mh,
  946.                                  QTAtomID               dataRefID)                          FIVEWORDINLINE(0x2F3C, 0x0004, 0x0108, 0x7000, 0xA82A);
  947. /*************************
  948. * 3D Media routines
  949. **************************/
  950. EXTERN_API( ComponentResult )
  951. Media3DGetNamedObjectList       (MediaHandler           mh,
  952.                                  QTAtomContainer *      objectList)                         FIVEWORDINLINE(0x2F3C, 0x0004, 0x0101, 0x7000, 0xA82A);
  953. EXTERN_API( ComponentResult )
  954. Media3DGetRendererList          (MediaHandler           mh,
  955.                                  QTAtomContainer *      rendererList)                       FIVEWORDINLINE(0x2F3C, 0x0004, 0x0102, 0x7000, 0xA82A);
  956. EXTERN_API( ComponentResult )
  957. Media3DGetCurrentGroup          (MediaHandler           mh,
  958.                                  void *                 group)                              FIVEWORDINLINE(0x2F3C, 0x0004, 0x0103, 0x7000, 0xA82A);
  959. EXTERN_API( ComponentResult )
  960. Media3DTranslateNamedObjectTo   (MediaHandler           mh,
  961.                                  char *                 objectName,
  962.                                  Fixed                  x,
  963.                                  Fixed                  y,
  964.                                  Fixed                  z)                                  FIVEWORDINLINE(0x2F3C, 0x0010, 0x0104, 0x7000, 0xA82A);
  965. EXTERN_API( ComponentResult )
  966. Media3DScaleNamedObjectTo       (MediaHandler           mh,
  967.                                  char *                 objectName,
  968.                                  Fixed                  xScale,
  969.                                  Fixed                  yScale,
  970.                                  Fixed                  zScale)                             FIVEWORDINLINE(0x2F3C, 0x0010, 0x0105, 0x7000, 0xA82A);
  971. EXTERN_API( ComponentResult )
  972. Media3DRotateNamedObjectTo      (MediaHandler           mh,
  973.                                  char *                 objectName,
  974.                                  Fixed                  xDegrees,
  975.                                  Fixed                  yDegrees,
  976.                                  Fixed                  zDegrees)                           FIVEWORDINLINE(0x2F3C, 0x0010, 0x0106, 0x7000, 0xA82A);
  977. EXTERN_API( ComponentResult )
  978. Media3DSetCameraData            (MediaHandler           mh,
  979.                                  void *                 cameraData)                         FIVEWORDINLINE(0x2F3C, 0x0004, 0x0107, 0x7000, 0xA82A);
  980. EXTERN_API( ComponentResult )
  981. Media3DGetCameraData            (MediaHandler           mh,
  982.                                  void *                 cameraData)                         FIVEWORDINLINE(0x2F3C, 0x0004, 0x0108, 0x7000, 0xA82A);
  983. EXTERN_API( ComponentResult )
  984. Media3DSetCameraAngleAspect     (MediaHandler           mh,
  985.                                  QTFloatSingle          fov,
  986.                                  QTFloatSingle          aspectRatioXToY)                    FIVEWORDINLINE(0x2F3C, 0x0008, 0x0109, 0x7000, 0xA82A);
  987. EXTERN_API( ComponentResult )
  988. Media3DGetCameraAngleAspect     (MediaHandler           mh,
  989.                                  QTFloatSingle *        fov,
  990.                                  QTFloatSingle *        aspectRatioXToY)                    FIVEWORDINLINE(0x2F3C, 0x0008, 0x010A, 0x7000, 0xA82A);
  991. EXTERN_API( ComponentResult )
  992. Media3DSetCameraRange           (MediaHandler           mh,
  993.                                  void *                 tQ3CameraRange)                     FIVEWORDINLINE(0x2F3C, 0x0004, 0x010D, 0x7000, 0xA82A);
  994. EXTERN_API( ComponentResult )
  995. Media3DGetCameraRange           (MediaHandler           mh,
  996.                                  void *                 tQ3CameraRange)                     FIVEWORDINLINE(0x2F3C, 0x0004, 0x010E, 0x7000, 0xA82A);
  997. EXTERN_API( ComponentResult )
  998. Media3DGetViewObject            (MediaHandler           mh,
  999.                                  void *                 tq3viewObject)                      FIVEWORDINLINE(0x2F3C, 0x0004, 0x010F, 0x7000, 0xA82A);
  1000. /****************************************
  1001. *                                       *
  1002. *   M O V I E   C O N T R O L L E R     *
  1003. *                                       *
  1004. ****************************************/
  1005. enum {
  1006.     MovieControllerComponentType = FOUR_CHAR_CODE('play')
  1007. };
  1008. enum {
  1009.     kMovieControllerQTVRFlag    = 1 << 0,
  1010.     kMovieControllerDontDisplayToUser = 1 << 1
  1011. };
  1012. typedef ComponentInstance               MovieController;
  1013. typedef MovieController *               MovieControllerPtr;
  1014. enum {
  1015.     mcActionIdle                = 1,                            /* no param*/
  1016.     mcActionDraw                = 2,                            /* param is WindowRef*/
  1017.     mcActionActivate            = 3,                            /* no param*/
  1018.     mcActionDeactivate          = 4,                            /* no param*/
  1019.     mcActionMouseDown           = 5,                            /* param is pointer to EventRecord*/
  1020.     mcActionKey                 = 6,                            /* param is pointer to EventRecord*/
  1021.     mcActionPlay                = 8,                            /* param is Fixed, play rate*/
  1022.     mcActionGoToTime            = 12,                           /* param is TimeRecord*/
  1023.     mcActionSetVolume           = 14,                           /* param is a short*/
  1024.     mcActionGetVolume           = 15,                           /* param is pointer to a short*/
  1025.     mcActionStep                = 18,                           /* param is number of steps (short)*/
  1026.     mcActionSetLooping          = 21,                           /* param is Boolean*/
  1027.     mcActionGetLooping          = 22,                           /* param is pointer to a Boolean*/
  1028.     mcActionSetLoopIsPalindrome = 23,                           /* param is Boolean*/
  1029.     mcActionGetLoopIsPalindrome = 24,                           /* param is pointer to a Boolean*/
  1030.     mcActionSetGrowBoxBounds    = 25,                           /* param is a Rect*/
  1031.     mcActionControllerSizeChanged = 26,                         /* no param*/
  1032.     mcActionSetSelectionBegin   = 29,                           /* param is TimeRecord*/
  1033.     mcActionSetSelectionDuration = 30,                          /* param is TimeRecord, action only taken on set-duration*/
  1034.     mcActionSetKeysEnabled      = 32,                           /* param is Boolean*/
  1035.     mcActionGetKeysEnabled      = 33,                           /* param is pointer to Boolean*/
  1036.     mcActionSetPlaySelection    = 34,                           /* param is Boolean*/
  1037.     mcActionGetPlaySelection    = 35,                           /* param is pointer to Boolean*/
  1038.     mcActionSetUseBadge         = 36,                           /* param is Boolean*/
  1039.     mcActionGetUseBadge         = 37,                           /* param is pointer to Boolean*/
  1040.     mcActionSetFlags            = 38,                           /* param is long of flags*/
  1041.     mcActionGetFlags            = 39,                           /* param is pointer to a long of flags*/
  1042.     mcActionSetPlayEveryFrame   = 40,                           /* param is Boolean*/
  1043.     mcActionGetPlayEveryFrame   = 41,                           /* param is pointer to Boolean*/
  1044.     mcActionGetPlayRate         = 42,                           /* param is pointer to Fixed*/
  1045.     mcActionShowBalloon         = 43,                           /* param is a pointer to a boolean. set to false to stop balloon*/
  1046.     mcActionBadgeClick          = 44,                           /* param is pointer to Boolean. set to false to ignore click*/
  1047.     mcActionMovieClick          = 45,                           /* param is pointer to event record. change "what" to nullEvt to kill click*/
  1048.     mcActionSuspend             = 46,                           /* no param*/
  1049.     mcActionResume              = 47,                           /* no param*/
  1050.     mcActionSetControllerKeysEnabled = 48,                      /* param is Boolean*/
  1051.     mcActionGetTimeSliderRect   = 49,                           /* param is pointer to rect*/
  1052.     mcActionMovieEdited         = 50,                           /* no param*/
  1053.     mcActionGetDragEnabled      = 51,                           /* param is pointer to Boolean*/
  1054.     mcActionSetDragEnabled      = 52,                           /* param is Boolean*/
  1055.     mcActionGetSelectionBegin   = 53,                           /* param is TimeRecord*/
  1056.     mcActionGetSelectionDuration = 54,                          /* param is TimeRecord*/
  1057.     mcActionPrerollAndPlay      = 55,                           /* param is Fixed, play rate*/
  1058.     mcActionGetCursorSettingEnabled = 56,                       /* param is pointer to Boolean*/
  1059.     mcActionSetCursorSettingEnabled = 57,                       /* param is Boolean*/
  1060.     mcActionSetColorTable       = 58,                           /* param is CTabHandle*/
  1061.     mcActionLinkToURL           = 59,                           /* param is Handle to URL*/
  1062.     mcActionCustomButtonClick   = 60,                           /* param is pointer to EventRecord*/
  1063.     mcActionForceTimeTableUpdate = 61,                          /* no param*/
  1064.     mcActionSetControllerTimeLimits = 62,                       /* param is pointer to 2 time values min/max. do no send this message to controller. used internally only.*/
  1065.     mcActionExecuteAllActionsForQTEvent = 63,                   /* param is ResolvedQTEventSpecPtr*/
  1066.     mcActionExecuteOneActionForQTEvent = 64,                    /* param is ResolvedQTEventSpecPtr*/
  1067.     mcActionAdjustCursor        = 65,                           /* param is pointer to EventRecord (WindowRef is in message parameter)*/
  1068.     mcActionUseTrackForTimeTable = 66,                          /* param is pointer to {long trackID; Boolean useIt}. do not send this message to controller. */
  1069.     mcActionClickAndHoldPoint   = 67,                           /* param is point (local coordinates). return true if point has click & hold action (e.g., VR object movie autorotate spot)*/
  1070.     mcActionShowMessageString   = 68,                           /* param is a StringPtr*/
  1071.     mcActionShowStatusString    = 69,                           /* param is a QTStatusStringPtr*/
  1072.     mcActionGetExternalMovie    = 70,                           /* param is a QTGetExternalMoviePtr*/
  1073.     mcActionGetChapterTime      = 71,                           /* param is a QTGetChapterTimePtr*/
  1074.     mcActionPerformActionList   = 72,                           /* param is a QTAtomSpecPtr*/
  1075.     mcActionEvaluateExpression  = 73,                           /* param is a QTEvaluateExpressionPtr*/
  1076.     mcActionFetchParameterAs    = 74,                           /* param is a QTFetchParameterAsPtr*/
  1077.     mcActionGetCursorByID       = 75,                           /* param is a QTGetCursorByIDPtr*/
  1078.     mcActionGetNextURL          = 76,                           /* param is a Handle to URL*/
  1079.     mcActionMovieChanged        = 77,
  1080.     mcActionDoScript            = 78,                           /* param is QTDoScriptPtr*/
  1081.     mcActionRestartAtTime       = 79,                           /* param is QTResartAtTimePtr*/
  1082.     mcActionGetIndChapter       = 80,                           /* param is QTChapterInfoPtr*/
  1083.     mcActionLinkToURLExtended   = 81,                           /* param is QTAtomContainer as used by QTParseHREF*/
  1084.     mcActionSetVolumeStep       = 82,                           /* param is short containing amount to step volume via arrow keys - default = 64*/
  1085.     mcActionAutoPlay            = 83,                           /* param is Fixed, play rate*/
  1086.     mcActionPauseToBuffer       = 84,                           /* param is Fixed, play rate on restart*/
  1087.     mcActionAppMessageReceived  = 85,                           /* param is a long, application message*/
  1088.     mcActionEvaluateExpressionWithType = 89,                    /* param is a QTEvaluateExpressionWithTypePtr*/
  1089.     mcActionGetMovieName        = 90,                           /* param is a p String Handle*/
  1090.     mcActionGetMovieID          = 91,                           /* param is pointer to long*/
  1091.     mcActionGetMovieActive      = 92                            /* param is pointer to Boolean*/
  1092. };
  1093. typedef short                           mcAction;
  1094. enum {
  1095.     mcFlagSuppressMovieFrame    = 1 << 0,
  1096.     mcFlagSuppressStepButtons   = 1 << 1,
  1097.     mcFlagSuppressSpeakerButton = 1 << 2,
  1098.     mcFlagsUseWindowPalette     = 1 << 3,
  1099.     mcFlagsDontInvalidate       = 1 << 4,
  1100.     mcFlagsUseCustomButton      = 1 << 5
  1101. };
  1102. enum {
  1103.     mcPositionDontInvalidate    = 1 << 5
  1104. };
  1105. typedef unsigned long                   mcFlags;
  1106. enum {
  1107.     kMCIEEnabledButtonPicture   = 1,
  1108.     kMCIEDisabledButtonPicture  = 2,
  1109.     kMCIEDepressedButtonPicture = 3,
  1110.     kMCIEEnabledSizeBoxPicture  = 4,
  1111.     kMCIEDisabledSizeBoxPicture = 5,
  1112.     kMCIEEnabledUnavailableButtonPicture = 6,
  1113.     kMCIEDisabledUnavailableButtonPicture = 7,
  1114.     kMCIESoundSlider            = 128,
  1115.     kMCIESoundThumb             = 129,
  1116.     kMCIEColorTable             = 256,
  1117.     kMCIEIsFlatAppearance       = 257,
  1118.     kMCIEDoButtonIconsDropOnDepress = 258
  1119. };
  1120. typedef unsigned long                   MCInterfaceElement;
  1121. typedef CALLBACK_API( Boolean , MCActionFilterProcPtr )(MovieController mc, short *action, void *params);
  1122. typedef CALLBACK_API( Boolean , MCActionFilterWithRefConProcPtr )(MovieController mc, short action, void *params, long refCon);
  1123. typedef STACK_UPP_TYPE(MCActionFilterProcPtr)                   MCActionFilterUPP;
  1124. typedef STACK_UPP_TYPE(MCActionFilterWithRefConProcPtr)         MCActionFilterWithRefConUPP;
  1125. /*
  1126.     menu related stuff
  1127. */
  1128. enum {
  1129.     mcInfoUndoAvailable         = 1 << 0,
  1130.     mcInfoCutAvailable          = 1 << 1,
  1131.     mcInfoCopyAvailable         = 1 << 2,
  1132.     mcInfoPasteAvailable        = 1 << 3,
  1133.     mcInfoClearAvailable        = 1 << 4,
  1134.     mcInfoHasSound              = 1 << 5,
  1135.     mcInfoIsPlaying             = 1 << 6,
  1136.     mcInfoIsLooping             = 1 << 7,
  1137.     mcInfoIsInPalindrome        = 1 << 8,
  1138.     mcInfoEditingEnabled        = 1 << 9,
  1139.     mcInfoMovieIsInteractive    = 1 << 10
  1140. };
  1141. /* menu item codes*/
  1142. enum {
  1143.     mcMenuUndo                  = 1,
  1144.     mcMenuCut                   = 3,
  1145.     mcMenuCopy                  = 4,
  1146.     mcMenuPaste                 = 5,
  1147.     mcMenuClear                 = 6
  1148. };
  1149. /* messages to the application via mcActionAppMessageReceived*/
  1150. enum {
  1151.     kQTAppMessageSoftwareChanged = 1,                           /* notification to app that installed QuickTime software has been updated*/
  1152.     kQTAppMessageWindowCloseRequested = 3,                      /* request for app to close window containing movie controller*/
  1153.     kQTAppMessageExitFullScreenRequested = 4,                   /* request for app to turn off full screen mode if active*/
  1154.     kQTAppMessageDisplayChannels = 5,                           /* request for app to display the channel UI*/
  1155.     kQTAppMessageEnterFullScreenRequested = 6                   /* request for app to turn on full screen mode*/
  1156. };
  1157. /* structures used as mcActionFilterProc params*/
  1158. struct QTStatusStringRecord {
  1159.     long                            stringTypeFlags;
  1160.     char *                          statusString;
  1161. };
  1162. typedef struct QTStatusStringRecord     QTStatusStringRecord;
  1163. typedef QTStatusStringRecord *          QTStatusStringPtr;
  1164. struct QTGetExternalMovieRecord {
  1165.     long                            targetType;                 /* set to kTargetMovieName or kTargetMovieID*/
  1166.     StringPtr                       movieName;
  1167.     long                            movieID;
  1168.     MoviePtr                        theMovie;
  1169.     MovieControllerPtr              theController;
  1170. };
  1171. typedef struct QTGetExternalMovieRecord QTGetExternalMovieRecord;
  1172. typedef QTGetExternalMovieRecord *      QTGetExternalMoviePtr;
  1173. struct QTGetChapterTimeRecord {
  1174.     StringPtr                       chapterName;
  1175.     TimeRecord                      chapterTime;
  1176. };
  1177. typedef struct QTGetChapterTimeRecord   QTGetChapterTimeRecord;
  1178. typedef QTGetChapterTimeRecord *        QTGetChapterTimePtr;
  1179. struct QTChapterInfoRecord {
  1180.     long                            index;                      /* first chapter has index of 1*/
  1181.     TimeValue                       time;                       /* -1 if no more chapters available*/
  1182.     Str255                          name;
  1183. };
  1184. typedef struct QTChapterInfoRecord      QTChapterInfoRecord;
  1185. typedef QTChapterInfoRecord *           QTChapterInfoPtr;
  1186. struct QTEvaluateExpressionRecord {
  1187.     QTAtomSpec                      expressionSpec;
  1188.     float *                         expressionResult;
  1189. };
  1190. typedef struct QTEvaluateExpressionRecord QTEvaluateExpressionRecord;
  1191. typedef QTEvaluateExpressionRecord *    QTEvaluateExpressionPtr;
  1192. struct QTEvaluateExpressionWithTypeRecord {
  1193.     long                            recordSize;                 /* Size of structure (fill in at allocation) */
  1194.     QTAtomSpec                      expressionSpec;
  1195.     float *                         expressionResult;
  1196.     long                            fetchAsType;
  1197.     Handle                          nonNumericResult;
  1198.                                                                 /* Current size is 24 */
  1199. };
  1200. typedef struct QTEvaluateExpressionWithTypeRecord QTEvaluateExpressionWithTypeRecord;
  1201. typedef QTEvaluateExpressionWithTypeRecord * QTEvaluateExpressionWithTypePtr;
  1202. struct QTFetchParameterAsRecord {
  1203.     QTAtomSpec                      paramListSpec;
  1204.     long                            paramIndex;
  1205.     long                            paramType;
  1206.     long                            allowedFlags;
  1207.     void *                          min;
  1208.     void *                          max;
  1209.     void *                          currentValue;
  1210.     void *                          newValue;
  1211.     Boolean                         isUnsignedValue;
  1212. };
  1213. typedef struct QTFetchParameterAsRecord QTFetchParameterAsRecord;
  1214. typedef QTFetchParameterAsRecord *      QTFetchParameterAsPtr;
  1215. struct QTGetCursorByIDRecord {
  1216.     short                           cursorID;
  1217.     Handle                          colorCursorData;
  1218.     long                            reserved1;
  1219. };
  1220. typedef struct QTGetCursorByIDRecord    QTGetCursorByIDRecord;
  1221. typedef QTGetCursorByIDRecord *         QTGetCursorByIDPtr;
  1222. struct QTDoScriptRecord {
  1223.     long                            scriptTypeFlags;
  1224.     char *                          command;
  1225.     char *                          arguments;
  1226. };
  1227. typedef struct QTDoScriptRecord         QTDoScriptRecord;
  1228. typedef QTDoScriptRecord *              QTDoScriptPtr;
  1229. struct QTRestartAtTimeRecord {
  1230.     TimeValue                       startTime;                  /* time scale is the movie timescale*/
  1231.     Fixed                           rate;                       /* if rate is zero, the movie's current rate is maintained*/
  1232. };
  1233. typedef struct QTRestartAtTimeRecord    QTRestartAtTimeRecord;
  1234. typedef QTRestartAtTimeRecord *         QTRestartAtTimePtr;
  1235. /* values for paramType field of QTFetchParameterAsRecord*/
  1236. enum {
  1237.     kFetchAsBooleanPtr          = 1,
  1238.     kFetchAsShortPtr            = 2,
  1239.     kFetchAsLongPtr             = 3,
  1240.     kFetchAsMatrixRecordPtr     = 4,
  1241.     kFetchAsModifierTrackGraphicsModeRecord = 5,
  1242.     kFetchAsHandle              = 6,
  1243.     kFetchAsStr255              = 7,
  1244.     kFetchAsFloatPtr            = 8,
  1245.     kFetchAsPointPtr            = 9,
  1246.     kFetchAsNewAtomContainer    = 10,
  1247.     kFetchAsQTEventRecordPtr    = 11,
  1248.     kFetchAsFixedPtr            = 12,
  1249.     kFetchAsSetControllerValuePtr = 13,
  1250.     kFetchAsRgnHandle           = 14,                           /* flipped to native*/
  1251.     kFetchAsComponentDescriptionPtr = 15,
  1252.     kFetchAsCString             = 16
  1253. };
  1254. enum {
  1255.     kQTCursorOpenHand           = -19183,
  1256.     kQTCursorClosedHand         = -19182,
  1257.     kQTCursorPointingHand       = -19181,
  1258.     kQTCursorRightArrow         = -19180,
  1259.     kQTCursorLeftArrow          = -19179,
  1260.     kQTCursorDownArrow          = -19178,
  1261.     kQTCursorUpArrow            = -19177,
  1262.     kQTCursorIBeam              = -19176
  1263. };
  1264. /* target management */
  1265. EXTERN_API( ComponentResult )
  1266. MCSetMovie                      (MovieController        mc,
  1267.                                  Movie                  theMovie,
  1268.                                  WindowRef              movieWindow,
  1269.                                  Point                  where)                              FIVEWORDINLINE(0x2F3C, 0x000C, 0x0002, 0x7000, 0xA82A);
  1270. EXTERN_API( Movie )
  1271. MCGetIndMovie                   (MovieController        mc,
  1272.                                  short                  index)                              FIVEWORDINLINE(0x2F3C, 0x0002, 0x0005, 0x7000, 0xA82A);
  1273. #define MCGetMovie(mc) MCGetIndMovie(mc, 0)
  1274. EXTERN_API( ComponentResult )
  1275. MCRemoveAllMovies               (MovieController        mc)                                 FIVEWORDINLINE(0x2F3C, 0x0000, 0x0006, 0x7000, 0xA82A);
  1276. EXTERN_API( ComponentResult )
  1277. MCRemoveAMovie                  (MovieController        mc,
  1278.                                  Movie                  m)                                  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0003, 0x7000, 0xA82A);
  1279. EXTERN_API( ComponentResult )
  1280. MCRemoveMovie                   (MovieController        mc)                                 FIVEWORDINLINE(0x2F3C, 0x0000, 0x0006, 0x7000, 0xA82A);
  1281. /* event handling etc. */
  1282. EXTERN_API( ComponentResult )
  1283. MCIsPlayerEvent                 (MovieController        mc,
  1284.                                  const EventRecord *    e)                                  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0007, 0x7000, 0xA82A);
  1285. /* obsolete. use MCSetActionFilterWithRefCon instead. */
  1286. EXTERN_API( ComponentResult )
  1287. MCSetActionFilter               (MovieController        mc,
  1288.                                  MCActionFilterUPP      blob)                               FIVEWORDINLINE(0x2F3C, 0x0004, 0x0008, 0x7000, 0xA82A);
  1289. /*
  1290.     proc is of the form:
  1291.         Boolean userPlayerFilter(MovieController mc, short *action, void *params) =
  1292.     proc returns TRUE if it handles the action, FALSE if not
  1293.     action is passed as a VAR so that it could be changed by filter
  1294.     this is consistent with the current dialog manager stuff
  1295.     params is any potential parameters that go with the action
  1296.         such as set playback rate to xxx.
  1297. */
  1298. EXTERN_API( ComponentResult )
  1299. MCDoAction                      (MovieController        mc,
  1300.                                  short                  action,
  1301.                                  void *                 params)                             FIVEWORDINLINE(0x2F3C, 0x0006, 0x0009, 0x7000, 0xA82A);
  1302. /* state type things */
  1303. EXTERN_API( ComponentResult )
  1304. MCSetControllerAttached         (MovieController        mc,
  1305.                                  Boolean                attach)                             FIVEWORDINLINE(0x2F3C, 0x0002, 0x000A, 0x7000, 0xA82A);
  1306. EXTERN_API( ComponentResult )
  1307. MCIsControllerAttached          (MovieController        mc)                                 FIVEWORDINLINE(0x2F3C, 0x0000, 0x000B, 0x7000, 0xA82A);
  1308. EXTERN_API( ComponentResult )
  1309. MCSetControllerPort             (MovieController        mc,
  1310.                                  CGrafPtr               gp)                                 FIVEWORDINLINE(0x2F3C, 0x0004, 0x000C, 0x7000, 0xA82A);
  1311. EXTERN_API( CGrafPtr )
  1312. MCGetControllerPort             (MovieController        mc)                                 FIVEWORDINLINE(0x2F3C, 0x0000, 0x000D, 0x7000, 0xA82A);
  1313. EXTERN_API( ComponentResult )
  1314. MCSetVisible                    (MovieController        mc,
  1315.                                  Boolean                visible)                            FIVEWORDINLINE(0x2F3C, 0x0002, 0x000E, 0x7000, 0xA82A);
  1316. EXTERN_API( ComponentResult )
  1317. MCGetVisible                    (MovieController        mc)                                 FIVEWORDINLINE(0x2F3C, 0x0000, 0x000F, 0x7000, 0xA82A);
  1318. EXTERN_API( ComponentResult )
  1319. MCGetControllerBoundsRect       (MovieController        mc,
  1320.                                  Rect *                 bounds)                             FIVEWORDINLINE(0x2F3C, 0x0004, 0x0010, 0x7000, 0xA82A);
  1321. EXTERN_API( ComponentResult )
  1322. MCSetControllerBoundsRect       (MovieController        mc,
  1323.                                  const Rect *           bounds)                             FIVEWORDINLINE(0x2F3C, 0x0004, 0x0011, 0x7000, 0xA82A);
  1324. EXTERN_API( RgnHandle )
  1325. MCGetControllerBoundsRgn        (MovieController        mc)                                 FIVEWORDINLINE(0x2F3C, 0x0000, 0x0012, 0x7000, 0xA82A);
  1326. EXTERN_API( RgnHandle )
  1327. MCGetWindowRgn                  (MovieController        mc,
  1328.                                  WindowRef              w)                                  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0013, 0x7000, 0xA82A);
  1329. /* other stuff */
  1330. EXTERN_API( ComponentResult )
  1331. MCMovieChanged                  (MovieController        mc,
  1332.                                  Movie                  m)                                  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0014, 0x7000, 0xA82A);
  1333. /*
  1334.     called when the app has changed thing about the movie (like bounding rect) or rate. So that we
  1335.         can update our graphical (and internal) state accordingly.
  1336. */
  1337. EXTERN_API( ComponentResult )
  1338. MCSetDuration                   (MovieController        mc,
  1339.                                  TimeValue              duration)                           FIVEWORDINLINE(0x2F3C, 0x0004, 0x0015, 0x7000, 0xA82A);
  1340. /*
  1341.     duration to use for time slider -- will be reset next time MCMovieChanged is called
  1342.         or MCSetMovie is called
  1343. */
  1344. EXTERN_API( TimeValue )
  1345. MCGetCurrentTime                (MovieController        mc,
  1346.                                  TimeScale *            scale)                              FIVEWORDINLINE(0x2F3C, 0x0004, 0x0016, 0x7000, 0xA82A);
  1347. /*
  1348.     returns the time value and the time scale it is on. if there are no movies, the
  1349.         time scale is passed back as 0. scale is an optional parameter
  1350. */
  1351. EXTERN_API( ComponentResult )
  1352. MCNewAttachedController         (MovieController        mc,
  1353.                                  Movie                  theMovie,
  1354.                                  WindowRef              w,
  1355.                                  Point                  where)                              FIVEWORDINLINE(0x2F3C, 0x000C, 0x0017, 0x7000, 0xA82A);
  1356. /*
  1357.     makes theMovie the only movie attached to the controller. makes the controller visible.
  1358.     the window and where parameters are passed a long to MCSetMovie and behave as
  1359.     described there
  1360. */
  1361. EXTERN_API( ComponentResult )
  1362. MCDraw                          (MovieController        mc,
  1363.                                  WindowRef              w)                                  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0018, 0x7000, 0xA82A);
  1364. EXTERN_API( ComponentResult )
  1365. MCActivate                      (MovieController        mc,
  1366.                                  WindowRef              w,
  1367.                                  Boolean                activate)                           FIVEWORDINLINE(0x2F3C, 0x0006, 0x0019, 0x7000, 0xA82A);
  1368. EXTERN_API( ComponentResult )
  1369. MCIdle                          (MovieController        mc)                                 FIVEWORDINLINE(0x2F3C, 0x0000, 0x001A, 0x7000, 0xA82A);
  1370. EXTERN_API( ComponentResult )
  1371. MCKey                           (MovieController        mc,
  1372.                                  SInt8                  key,
  1373.                                  long                   modifiers)                          FIVEWORDINLINE(0x2F3C, 0x0006, 0x001B, 0x7000, 0xA82A);
  1374. EXTERN_API( ComponentResult )
  1375. MCClick                         (MovieController        mc,
  1376.                                  WindowRef              w,
  1377.                                  Point                  where,
  1378.                                  long                   when,
  1379.                                  long                   modifiers)                          FIVEWORDINLINE(0x2F3C, 0x0010, 0x001C, 0x7000, 0xA82A);
  1380. /*
  1381.     calls for editing
  1382. */
  1383. EXTERN_API( ComponentResult )
  1384. MCEnableEditing                 (MovieController        mc,
  1385.                                  Boolean                enabled)                            FIVEWORDINLINE(0x2F3C, 0x0002, 0x001D, 0x7000, 0xA82A);
  1386. EXTERN_API( long )
  1387. MCIsEditingEnabled              (MovieController        mc)                                 FIVEWORDINLINE(0x2F3C, 0x0000, 0x001E, 0x7000, 0xA82A);
  1388. EXTERN_API( Movie )
  1389. MCCopy                          (MovieController        mc)                                 FIVEWORDINLINE(0x2F3C, 0x0000, 0x001F, 0x7000, 0xA82A);
  1390. EXTERN_API( Movie )
  1391. MCCut                           (MovieController        mc)                                 FIVEWORDINLINE(0x2F3C, 0x0000, 0x0020, 0x7000, 0xA82A);
  1392. EXTERN_API( ComponentResult )
  1393. MCPaste                         (MovieController        mc,
  1394.                                  Movie                  srcMovie)                           FIVEWORDINLINE(0x2F3C, 0x0004, 0x0021, 0x7000, 0xA82A);
  1395. EXTERN_API( ComponentResult )
  1396. MCClear                         (MovieController        mc)                                 FIVEWORDINLINE(0x2F3C, 0x0000, 0x0022, 0x7000, 0xA82A);
  1397. EXTERN_API( ComponentResult )
  1398. MCUndo                          (MovieController        mc)                                 FIVEWORDINLINE(0x2F3C, 0x0000, 0x0023, 0x7000, 0xA82A);
  1399. /*
  1400.  *  somewhat special stuff
  1401.  */
  1402. EXTERN_API( ComponentResult )
  1403. MCPositionController            (MovieController        mc,
  1404.                                  const Rect *           movieRect,
  1405.                                  const Rect *           controllerRect,
  1406.                                  long                   someFlags)                          FIVEWORDINLINE(0x2F3C, 0x000C, 0x0024, 0x7000, 0xA82A);
  1407. EXTERN_API( ComponentResult )
  1408. MCGetControllerInfo             (MovieController        mc,
  1409.                                  long *                 someFlags)                          FIVEWORDINLINE(0x2F3C, 0x0004, 0x0025, 0x7000, 0xA82A);
  1410. EXTERN_API( ComponentResult )
  1411. MCSetClip                       (MovieController        mc,
  1412.                                  RgnHandle              theClip,
  1413.                                  RgnHandle              movieClip)                          FIVEWORDINLINE(0x2F3C, 0x0008, 0x0028, 0x7000, 0xA82A);
  1414. EXTERN_API( ComponentResult )
  1415. MCGetClip                       (MovieController        mc,
  1416.                                  RgnHandle *            theClip,
  1417.                                  RgnHandle *            movieClip)                          FIVEWORDINLINE(0x2F3C, 0x0008, 0x0029, 0x7000, 0xA82A);
  1418. EXTERN_API( ComponentResult )
  1419. MCDrawBadge                     (MovieController        mc,
  1420.                                  RgnHandle              movieRgn,
  1421.                                  RgnHandle *            badgeRgn)                           FIVEWORDINLINE(0x2F3C, 0x0008, 0x002A, 0x7000, 0xA82A);
  1422. EXTERN_API( ComponentResult )
  1423. MCSetUpEditMenu                 (MovieController        mc,
  1424.                                  long                   modifiers,
  1425.                                  MenuRef                mh)                                 FIVEWORDINLINE(0x2F3C, 0x0008, 0x002B, 0x7000, 0xA82A);
  1426. EXTERN_API( ComponentResult )
  1427. MCGetMenuString                 (MovieController        mc,
  1428.                                  long                   modifiers,
  1429.                                  short                  item,
  1430.                                  Str255                 aString)                            FIVEWORDINLINE(0x2F3C, 0x000A, 0x002C, 0x7000, 0xA82A);
  1431. EXTERN_API( ComponentResult )
  1432. MCSetActionFilterWithRefCon     (MovieController        mc,
  1433.                                  MCActionFilterWithRefConUPP  blob,
  1434.                                  long                   refCon)                             FIVEWORDINLINE(0x2F3C, 0x0008, 0x002D, 0x7000, 0xA82A);
  1435. EXTERN_API( ComponentResult )
  1436. MCPtInController                (MovieController        mc,
  1437.                                  Point                  thePt,
  1438.                                  Boolean *              inController)                       FIVEWORDINLINE(0x2F3C, 0x0008, 0x002E, 0x7000, 0xA82A);
  1439. EXTERN_API( ComponentResult )
  1440. MCInvalidate                    (MovieController        mc,
  1441.                                  WindowRef              w,
  1442.                                  RgnHandle              invalidRgn)                         FIVEWORDINLINE(0x2F3C, 0x0008, 0x002F, 0x7000, 0xA82A);
  1443. EXTERN_API( ComponentResult )
  1444. MCAdjustCursor                  (MovieController        mc,
  1445.                                  WindowRef              w,
  1446.                                  Point                  where,
  1447.                                  long                   modifiers)                          FIVEWORDINLINE(0x2F3C, 0x000C, 0x0030, 0x7000, 0xA82A);
  1448. EXTERN_API( ComponentResult )
  1449. MCGetInterfaceElement           (MovieController        mc,
  1450.                                  MCInterfaceElement     whichElement,
  1451.                                  void *                 element)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0031, 0x7000, 0xA82A);
  1452. EXTERN_API( ComponentResult )
  1453. MCGetDoActionsProc              (MovieController        mc,
  1454.                                  DoMCActionUPP *        doMCActionProc,
  1455.                                  long *                 doMCActionRefCon)                   FIVEWORDINLINE(0x2F3C, 0x0008, 0x0032, 0x7000, 0xA82A);
  1456. EXTERN_API( ComponentResult )
  1457. MCAddMovieSegment               (MovieController        mc,
  1458.                                  Movie                  srcMovie,
  1459.                                  Boolean                scaled)                             FIVEWORDINLINE(0x2F3C, 0x0006, 0x0033, 0x7000, 0xA82A);
  1460. EXTERN_API( ComponentResult )
  1461. MCTrimMovieSegment              (MovieController        mc)                                 FIVEWORDINLINE(0x2F3C, 0x0000, 0x0034, 0x7000, 0xA82A);
  1462. EXTERN_API( ComponentResult )
  1463. MCSetIdleManager                (MovieController        mc,
  1464.                                  IdleManager            im)                                 FIVEWORDINLINE(0x2F3C, 0x0004, 0x0035, 0x7000, 0xA82A);
  1465. /* Called (but not implemented) by controllers that derive from the standard movie controller.
  1466.    All controllers except standard movie controller must delegate this call. */
  1467. enum {
  1468.     kControllerUnderstandsIdleManagers = 1 << 0
  1469. };
  1470. EXTERN_API( ComponentResult )
  1471. MCSetControllerCapabilities     (MovieController        mc,
  1472.                                  long                   flags,
  1473.                                  long                   flagsMask)                          FIVEWORDINLINE(0x2F3C, 0x0008, 0x0036, 0x7000, 0xA82A);
  1474. /****************************************
  1475. *                                       *
  1476. *       T  I  M  E  B  A  S  E          *
  1477. *                                       *
  1478. ****************************************/
  1479. EXTERN_API( TimeBase )
  1480. NewTimeBase                     (void)                                                      THREEWORDINLINE(0x303C, 0x00A5, 0xAAAA);
  1481. EXTERN_API( void )
  1482. DisposeTimeBase                 (TimeBase               tb)                                 THREEWORDINLINE(0x303C, 0x00B6, 0xAAAA);
  1483. EXTERN_API( TimeValue )
  1484. GetTimeBaseTime                 (TimeBase               tb,
  1485.                                  TimeScale              s,
  1486.                                  TimeRecord *           tr)                                 THREEWORDINLINE(0x303C, 0x00A6, 0xAAAA);
  1487. EXTERN_API( void )
  1488. SetTimeBaseTime                 (TimeBase               tb,
  1489.                                  const TimeRecord *     tr)                                 THREEWORDINLINE(0x303C, 0x00A7, 0xAAAA);
  1490. EXTERN_API( void )
  1491. SetTimeBaseValue                (TimeBase               tb,
  1492.                                  TimeValue              t,
  1493.                                  TimeScale              s)                                  THREEWORDINLINE(0x303C, 0x00A8, 0xAAAA);
  1494. EXTERN_API( Fixed )
  1495. GetTimeBaseRate                 (TimeBase               tb)                                 THREEWORDINLINE(0x303C, 0x00A9, 0xAAAA);
  1496. EXTERN_API( void )
  1497. SetTimeBaseRate                 (TimeBase               tb,
  1498.                                  Fixed                  r)                                  THREEWORDINLINE(0x303C, 0x00AA, 0xAAAA);
  1499. EXTERN_API( TimeValue )
  1500. GetTimeBaseStartTime            (TimeBase               tb,
  1501.                                  TimeScale              s,
  1502.                                  TimeRecord *           tr)                                 THREEWORDINLINE(0x303C, 0x00AB, 0xAAAA);
  1503. EXTERN_API( void )
  1504. SetTimeBaseStartTime            (TimeBase               tb,
  1505.                                  const TimeRecord *     tr)                                 THREEWORDINLINE(0x303C, 0x00AC, 0xAAAA);
  1506. EXTERN_API( TimeValue )
  1507. GetTimeBaseStopTime             (TimeBase               tb,
  1508.                                  TimeScale              s,
  1509.                                  TimeRecord *           tr)                                 THREEWORDINLINE(0x303C, 0x00AD, 0xAAAA);
  1510. EXTERN_API( void )
  1511. SetTimeBaseStopTime             (TimeBase               tb,
  1512.                                  const TimeRecord *     tr)                                 THREEWORDINLINE(0x303C, 0x00AE, 0xAAAA);
  1513. EXTERN_API( long )
  1514. GetTimeBaseFlags                (TimeBase               tb)                                 THREEWORDINLINE(0x303C, 0x00B1, 0xAAAA);
  1515. EXTERN_API( void )
  1516. SetTimeBaseFlags                (TimeBase               tb,
  1517.                                  long                   timeBaseFlags)                      THREEWORDINLINE(0x303C, 0x00B2, 0xAAAA);
  1518. EXTERN_API( void )
  1519. SetTimeBaseMasterTimeBase       (TimeBase               slave,
  1520.                                  TimeBase               master,
  1521.                                  const TimeRecord *     slaveZero)                          THREEWORDINLINE(0x303C, 0x00B4, 0xAAAA);
  1522. EXTERN_API( TimeBase )
  1523. GetTimeBaseMasterTimeBase       (TimeBase               tb)                                 THREEWORDINLINE(0x303C, 0x00AF, 0xAAAA);
  1524. EXTERN_API( void )
  1525. SetTimeBaseMasterClock          (TimeBase               slave,
  1526.                                  Component              clockMeister,
  1527.                                  const TimeRecord *     slaveZero)                          THREEWORDINLINE(0x303C, 0x00B3, 0xAAAA);
  1528. EXTERN_API( ComponentInstance )
  1529. GetTimeBaseMasterClock          (TimeBase               tb)                                 THREEWORDINLINE(0x303C, 0x00B0, 0xAAAA);
  1530. EXTERN_API( void )
  1531. ConvertTime                     (TimeRecord *           inout,
  1532.                                  TimeBase               newBase)                            THREEWORDINLINE(0x303C, 0x00B5, 0xAAAA);
  1533. EXTERN_API( void )
  1534. ConvertTimeScale                (TimeRecord *           inout,
  1535.                                  TimeScale              newScale)                           THREEWORDINLINE(0x303C, 0x00B7, 0xAAAA);
  1536. EXTERN_API( void )
  1537. AddTime                         (TimeRecord *           dst,
  1538.                                  const TimeRecord *     src)                                THREEWORDINLINE(0x303C, 0x010C, 0xAAAA);
  1539. EXTERN_API( void )
  1540. SubtractTime                    (TimeRecord *           dst,
  1541.                                  const TimeRecord *     src)                                THREEWORDINLINE(0x303C, 0x010D, 0xAAAA);
  1542. EXTERN_API( long )
  1543. GetTimeBaseStatus               (TimeBase               tb,
  1544.                                  TimeRecord *           unpinnedTime)                       THREEWORDINLINE(0x303C, 0x010B, 0xAAAA);
  1545. EXTERN_API( void )
  1546. SetTimeBaseZero                 (TimeBase               tb,
  1547.                                  TimeRecord *           zero)                               THREEWORDINLINE(0x303C, 0x0128, 0xAAAA);
  1548. EXTERN_API( Fixed )
  1549. GetTimeBaseEffectiveRate        (TimeBase               tb)                                 THREEWORDINLINE(0x303C, 0x0124, 0xAAAA);
  1550. /****************************************
  1551. *                                       *
  1552. *       C  A  L  L  B  A  C  K          *
  1553. *                                       *
  1554. ****************************************/
  1555. EXTERN_API( QTCallBack )
  1556. NewCallBack                     (TimeBase               tb,
  1557.                                  short                  cbType)                             THREEWORDINLINE(0x303C, 0x00EB, 0xAAAA);
  1558. EXTERN_API( void )
  1559. DisposeCallBack                 (QTCallBack             cb)                                 THREEWORDINLINE(0x303C, 0x00EC, 0xAAAA);
  1560. EXTERN_API( short )
  1561. GetCallBackType                 (QTCallBack             cb)                                 THREEWORDINLINE(0x303C, 0x00ED, 0xAAAA);
  1562. EXTERN_API( TimeBase )
  1563. GetCallBackTimeBase             (QTCallBack             cb)                                 THREEWORDINLINE(0x303C, 0x00EE, 0xAAAA);
  1564. EXTERN_API( OSErr )
  1565. CallMeWhen                      (QTCallBack             cb,
  1566.                                  QTCallBackUPP          callBackProc,
  1567.                                  long                   refCon,
  1568.                                  long                   param1,
  1569.                                  long                   param2,
  1570.                                  long                   param3)                             THREEWORDINLINE(0x303C, 0x00B8, 0xAAAA);
  1571. EXTERN_API( void )
  1572. CancelCallBack                  (QTCallBack             cb)                                 THREEWORDINLINE(0x303C, 0x00B9, 0xAAAA);
  1573. /****************************************
  1574. *                                       *
  1575. *       C L O C K   C A L L B A C K     *
  1576. *             S U P P O R T             *
  1577. *                                       *
  1578. ****************************************/
  1579. EXTERN_API( OSErr )
  1580. AddCallBackToTimeBase           (QTCallBack             cb)                                 THREEWORDINLINE(0x303C, 0x0129, 0xAAAA);
  1581. EXTERN_API( OSErr )
  1582. RemoveCallBackFromTimeBase      (QTCallBack             cb)                                 THREEWORDINLINE(0x303C, 0x012A, 0xAAAA);
  1583. EXTERN_API( QTCallBack )
  1584. GetFirstCallBack                (TimeBase               tb)                                 THREEWORDINLINE(0x303C, 0x012B, 0xAAAA);
  1585. EXTERN_API( QTCallBack )
  1586. GetNextCallBack                 (QTCallBack             cb)                                 THREEWORDINLINE(0x303C, 0x012C, 0xAAAA);
  1587. EXTERN_API( void )
  1588. ExecuteCallBack                 (QTCallBack             cb)                                 THREEWORDINLINE(0x303C, 0x012D, 0xAAAA);
  1589. EXTERN_API( ComponentResult )
  1590. MusicMediaGetIndexedTunePlayer  (ComponentInstance      ti,
  1591.                                  long                   sampleDescIndex,
  1592.                                  ComponentInstance *    tp)                                 FIVEWORDINLINE(0x2F3C, 0x0008, 0x0101, 0x7000, 0xA82A);
  1593. /* UPP call backs */
  1594. #if OPAQUE_UPP_TYPES
  1595.     EXTERN_API(MCActionFilterUPP)
  1596.     NewMCActionFilterUPP           (MCActionFilterProcPtr   userRoutine);
  1597.     EXTERN_API(MCActionFilterWithRefConUPP)
  1598.     NewMCActionFilterWithRefConUPP    (MCActionFilterWithRefConProcPtr userRoutine);
  1599.     EXTERN_API(void)
  1600.     DisposeMCActionFilterUPP       (MCActionFilterUPP       userUPP);
  1601.     EXTERN_API(void)
  1602.     DisposeMCActionFilterWithRefConUPP    (MCActionFilterWithRefConUPP userUPP);
  1603.     EXTERN_API(Boolean)
  1604.     InvokeMCActionFilterUPP        (MovieController         mc,
  1605.                                     short *                 action,
  1606.                                     void *                  params,
  1607.                                     MCActionFilterUPP       userUPP);
  1608.     EXTERN_API(Boolean)
  1609.     InvokeMCActionFilterWithRefConUPP    (MovieController   mc,
  1610.                                     short                   action,
  1611.                                     void *                  params,
  1612.                                     long                    refCon,
  1613.                                     MCActionFilterWithRefConUPP userUPP);
  1614. #else
  1615.     enum { uppMCActionFilterProcInfo = 0x00000FD0 };                /* pascal 1_byte Func(4_bytes, 4_bytes, 4_bytes) */
  1616.     enum { uppMCActionFilterWithRefConProcInfo = 0x00003ED0 };      /* pascal 1_byte Func(4_bytes, 2_bytes, 4_bytes, 4_bytes) */
  1617.     #define NewMCActionFilterUPP(userRoutine)                       (MCActionFilterUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppMCActionFilterProcInfo, GetCurrentArchitecture())
  1618.     #define NewMCActionFilterWithRefConUPP(userRoutine)             (MCActionFilterWithRefConUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppMCActionFilterWithRefConProcInfo, GetCurrentArchitecture())
  1619.     #define DisposeMCActionFilterUPP(userUPP)                       DisposeRoutineDescriptor(userUPP)
  1620.     #define DisposeMCActionFilterWithRefConUPP(userUPP)             DisposeRoutineDescriptor(userUPP)
  1621.     #define InvokeMCActionFilterUPP(mc, action, params, userUPP)    (Boolean)CALL_THREE_PARAMETER_UPP((userUPP), uppMCActionFilterProcInfo, (mc), (action), (params))
  1622.     #define InvokeMCActionFilterWithRefConUPP(mc, action, params, refCon, userUPP)  (Boolean)CALL_FOUR_PARAMETER_UPP((userUPP), uppMCActionFilterWithRefConProcInfo, (mc), (action), (params), (refCon))
  1623. #endif
  1624. /* support for pre-Carbon UPP routines: NewXXXProc and CallXXXProc */
  1625. #define NewMCActionFilterProc(userRoutine)                      NewMCActionFilterUPP(userRoutine)
  1626. #define NewMCActionFilterWithRefConProc(userRoutine)            NewMCActionFilterWithRefConUPP(userRoutine)
  1627. #define CallMCActionFilterProc(userRoutine, mc, action, params) InvokeMCActionFilterUPP(mc, action, params, userRoutine)
  1628. #define CallMCActionFilterWithRefConProc(userRoutine, mc, action, params, refCon) InvokeMCActionFilterWithRefConUPP(mc, action, params, refCon, userRoutine)
  1629. /* selectors for component calls */
  1630. enum {
  1631.     kVideoMediaResetStatisticsSelect           = 0x0105,
  1632.     kVideoMediaGetStatisticsSelect             = 0x0106,
  1633.     kVideoMediaGetStallCountSelect             = 0x010E,
  1634.     kVideoMediaSetCodecParameterSelect         = 0x010F,
  1635.     kVideoMediaGetCodecParameterSelect         = 0x0110,
  1636.     kTextMediaSetTextProcSelect                = 0x0101,
  1637.     kTextMediaAddTextSampleSelect              = 0x0102,
  1638.     kTextMediaAddTESampleSelect                = 0x0103,
  1639.     kTextMediaAddHiliteSampleSelect            = 0x0104,
  1640.     kTextMediaDrawRawSelect                    = 0x0109,
  1641.     kTextMediaSetTextPropertySelect            = 0x010A,
  1642.     kTextMediaRawSetupSelect                   = 0x010B,
  1643.     kTextMediaRawIdleSelect                    = 0x010C,
  1644.     kTextMediaGetTextPropertySelect            = 0x010D,
  1645.     kTextMediaFindNextTextSelect               = 0x0105,
  1646.     kTextMediaHiliteTextSampleSelect           = 0x0106,
  1647.     kTextMediaSetTextSampleDataSelect          = 0x0107,
  1648.     kSpriteMediaSetPropertySelect              = 0x0101,
  1649.     kSpriteMediaGetPropertySelect              = 0x0102,
  1650.     kSpriteMediaHitTestSpritesSelect           = 0x0103,
  1651.     kSpriteMediaCountSpritesSelect             = 0x0104,
  1652.     kSpriteMediaCountImagesSelect              = 0x0105,
  1653.     kSpriteMediaGetIndImageDescriptionSelect   = 0x0106,
  1654.     kSpriteMediaGetDisplayedSampleNumberSelect = 0x0107,
  1655.     kSpriteMediaGetSpriteNameSelect            = 0x0108,
  1656.     kSpriteMediaGetImageNameSelect             = 0x0109,
  1657.     kSpriteMediaSetSpritePropertySelect        = 0x010A,
  1658.     kSpriteMediaGetSpritePropertySelect        = 0x010B,
  1659.     kSpriteMediaHitTestAllSpritesSelect        = 0x010C,
  1660.     kSpriteMediaHitTestOneSpriteSelect         = 0x010D,
  1661.     kSpriteMediaSpriteIndexToIDSelect          = 0x010E,
  1662.     kSpriteMediaSpriteIDToIndexSelect          = 0x010F,
  1663.     kSpriteMediaGetSpriteActionsForQTEventSelect = 0x0110,
  1664.     kSpriteMediaSetActionVariableSelect        = 0x0111,
  1665.     kSpriteMediaGetActionVariableSelect        = 0x0112,
  1666.     kSpriteMediaGetIndImagePropertySelect      = 0x0113,
  1667.     kSpriteMediaNewSpriteSelect                = 0x0114,
  1668.     kSpriteMediaDisposeSpriteSelect            = 0x0115,
  1669.     kSpriteMediaSetActionVariableToStringSelect = 0x0116,
  1670.     kSpriteMediaGetActionVariableAsStringSelect = 0x0117,
  1671.     kSpriteMediaNewImageSelect                 = 0x011B,
  1672.     kSpriteMediaDisposeImageSelect             = 0x011C,
  1673.     kSpriteMediaImageIndexToIDSelect           = 0x011D,
  1674.     kSpriteMediaImageIDToIndexSelect           = 0x011E,
  1675.     kFlashMediaSetPanSelect                    = 0x0101,
  1676.     kFlashMediaSetZoomSelect                   = 0x0102,
  1677.     kFlashMediaSetZoomRectSelect               = 0x0103,
  1678.     kFlashMediaGetRefConBoundsSelect           = 0x0104,
  1679.     kFlashMediaGetRefConIDSelect               = 0x0105,
  1680.     kFlashMediaIDToRefConSelect                = 0x0106,
  1681.     kFlashMediaGetDisplayedFrameNumberSelect   = 0x0107,
  1682.     kFlashMediaFrameNumberToMovieTimeSelect    = 0x0108,
  1683.     kFlashMediaFrameLabelToMovieTimeSelect     = 0x0109,
  1684.     kFlashMediaGetFlashVariableSelect          = 0x010A,
  1685.     kFlashMediaSetFlashVariableSelect          = 0x010B,
  1686.     kFlashMediaDoButtonActionsSelect           = 0x010C,
  1687.     kFlashMediaGetSupportedSwfVersionSelect    = 0x010D,
  1688.     kMovieMediaGetChildDoMCActionCallbackSelect = 0x0102,
  1689.     kMovieMediaGetDoMCActionCallbackSelect     = 0x0103,
  1690.     kMovieMediaGetCurrentMoviePropertySelect   = 0x0104,
  1691.     kMovieMediaGetCurrentTrackPropertySelect   = 0x0105,
  1692.     kMovieMediaGetChildMovieDataReferenceSelect = 0x0106,
  1693.     kMovieMediaSetChildMovieDataReferenceSelect = 0x0107,
  1694.     kMovieMediaLoadChildMovieFromDataReferenceSelect = 0x0108,
  1695.     kMedia3DGetNamedObjectListSelect           = 0x0101,
  1696.     kMedia3DGetRendererListSelect              = 0x0102,
  1697.     kMedia3DGetCurrentGroupSelect              = 0x0103,
  1698.     kMedia3DTranslateNamedObjectToSelect       = 0x0104,
  1699.     kMedia3DScaleNamedObjectToSelect           = 0x0105,
  1700.     kMedia3DRotateNamedObjectToSelect          = 0x0106,
  1701.     kMedia3DSetCameraDataSelect                = 0x0107,
  1702.     kMedia3DGetCameraDataSelect                = 0x0108,
  1703.     kMedia3DSetCameraAngleAspectSelect         = 0x0109,
  1704.     kMedia3DGetCameraAngleAspectSelect         = 0x010A,
  1705.     kMedia3DSetCameraRangeSelect               = 0x010D,
  1706.     kMedia3DGetCameraRangeSelect               = 0x010E,
  1707.     kMedia3DGetViewObjectSelect                = 0x010F,
  1708.     kMCSetMovieSelect                          = 0x0002,
  1709.     kMCGetIndMovieSelect                       = 0x0005,
  1710.     kMCRemoveAllMoviesSelect                   = 0x0006,
  1711.     kMCRemoveAMovieSelect                      = 0x0003,
  1712.     kMCRemoveMovieSelect                       = 0x0006,
  1713.     kMCIsPlayerEventSelect                     = 0x0007,
  1714.     kMCSetActionFilterSelect                   = 0x0008,
  1715.     kMCDoActionSelect                          = 0x0009,
  1716.     kMCSetControllerAttachedSelect             = 0x000A,
  1717.     kMCIsControllerAttachedSelect              = 0x000B,
  1718.     kMCSetControllerPortSelect                 = 0x000C,
  1719.     kMCGetControllerPortSelect                 = 0x000D,
  1720.     kMCSetVisibleSelect                        = 0x000E,
  1721.     kMCGetVisibleSelect                        = 0x000F,
  1722.     kMCGetControllerBoundsRectSelect           = 0x0010,
  1723.     kMCSetControllerBoundsRectSelect           = 0x0011,
  1724.     kMCGetControllerBoundsRgnSelect            = 0x0012,
  1725.     kMCGetWindowRgnSelect                      = 0x0013,
  1726.     kMCMovieChangedSelect                      = 0x0014,
  1727.     kMCSetDurationSelect                       = 0x0015,
  1728.     kMCGetCurrentTimeSelect                    = 0x0016,
  1729.     kMCNewAttachedControllerSelect             = 0x0017,
  1730.     kMCDrawSelect                              = 0x0018,
  1731.     kMCActivateSelect                          = 0x0019,
  1732.     kMCIdleSelect                              = 0x001A,
  1733.     kMCKeySelect                               = 0x001B,
  1734.     kMCClickSelect                             = 0x001C,
  1735.     kMCEnableEditingSelect                     = 0x001D,
  1736.     kMCIsEditingEnabledSelect                  = 0x001E,
  1737.     kMCCopySelect                              = 0x001F,
  1738.     kMCCutSelect                               = 0x0020,
  1739.     kMCPasteSelect                             = 0x0021,
  1740.     kMCClearSelect                             = 0x0022,
  1741.     kMCUndoSelect                              = 0x0023,
  1742.     kMCPositionControllerSelect                = 0x0024,
  1743.     kMCGetControllerInfoSelect                 = 0x0025,
  1744.     kMCSetClipSelect                           = 0x0028,
  1745.     kMCGetClipSelect                           = 0x0029,
  1746.     kMCDrawBadgeSelect                         = 0x002A,
  1747.     kMCSetUpEditMenuSelect                     = 0x002B,
  1748.     kMCGetMenuStringSelect                     = 0x002C,
  1749.     kMCSetActionFilterWithRefConSelect         = 0x002D,
  1750.     kMCPtInControllerSelect                    = 0x002E,
  1751.     kMCInvalidateSelect                        = 0x002F,
  1752.     kMCAdjustCursorSelect                      = 0x0030,
  1753.     kMCGetInterfaceElementSelect               = 0x0031,
  1754.     kMCGetDoActionsProcSelect                  = 0x0032,
  1755.     kMCAddMovieSegmentSelect                   = 0x0033,
  1756.     kMCTrimMovieSegmentSelect                  = 0x0034,
  1757.     kMCSetIdleManagerSelect                    = 0x0035,
  1758.     kMCSetControllerCapabilitiesSelect         = 0x0036,
  1759.     kMusicMediaGetIndexedTunePlayerSelect      = 0x0101
  1760. };
  1761. #if PRAGMA_STRUCT_ALIGN
  1762.     #pragma options align=reset
  1763. #elif PRAGMA_STRUCT_PACKPUSH
  1764.     #pragma pack(pop)
  1765. #elif PRAGMA_STRUCT_PACK
  1766.     #pragma pack()
  1767. #endif
  1768. #ifdef PRAGMA_IMPORT_OFF
  1769. #pragma import off
  1770. #elif PRAGMA_IMPORT
  1771. #pragma import reset
  1772. #endif
  1773. #ifdef __cplusplus
  1774. }
  1775. #endif
  1776. #endif /* __MOVIES__ */