ChromaKeyMovie.h

/*
    File:       ChromaKeyMovie.h
 
    Contains:   
 
    Written by: Jason Hodges-Harris 
 
    Copyright:  Copyright © 1995-1999 by Apple Computer, Inc., All Rights Reserved.
 
                You may incorporate this Apple sample source code into your program(s) without
                restriction. This Apple sample source code has been provided "AS IS" and the
                responsibility for its operation is yours. You are not permitted to redistribute
                this Apple sample source code as "Apple sample source code" after having made
                changes. If you're going to re-distribute the source, we require that you make
                it clear in the source that the code was descended from Apple sample source
                code, but that you've made changes.
 
    Change History (most recent first):
                7/28/1999   Karl Groethe    Updated for Metrowerks Codewarror Pro 2.1
                
 
*/
 
#ifndef __CHROMAPPHEADER__
#define __CHROMAPPHEADER__
 
 
// Mac Toolbox protos
 
#ifndef __MOVIES__
#include <Movies.h>
#endif
 
#ifndef __QUICKDRAW__
#include <QuickDraw.h>
#endif
 
#ifndef __TYPES__
#include <Types.h>
#endif
 
#ifndef __WINDOWS__
#include <Windows.h>
#endif
 
 
// Define menubar constants
 
#define     rMenuBar        128
 
#define     mApple          128
#define     iAbout          1
 
#define     mFile           129
#define     iOpen           1
#define     iClose          2
#define     iQuit           4
 
#define     mEdit           130
#define     iUndo           1
#define     iCut            3
#define     iCopy           4
#define     iPaste          5
 
#define     mMode           131
#define     iKeyColor       1
#define     iMovieBack      3
#define     iMovieFront     4
#define     iTransparent    6       
#define     iGraphix        7
#define     iModifier       8
 
#define     mOptions        132
#define     iEveryFrame     1
#define     iLoopMovie      2
 
 
// Constant definitions
 
#define     kSleep          1L      // Used in wait next event
#define     rGenWindow      128
#define     rAboutBox       128
#define     rGenAlert       129
#define     rGenWarning     130
 
#define     rQTmessages     128
#define     rErrMessages    129
 
#define     rBackGroundPict 128     // PICT resource
#define     kappDefErr      -999    // application return error
 
 
// available transfer modes
 
enum transferModes
{
    transparentMode = 1,
    graphix,
    modifierTrax
};
 
// Application document structure
 
 
#if GENERATINGPOWERPC
#pragma options align=mac68k
#endif
 
struct MovieDoc
{
    MovieController     theController;
    Movie               theMovie;
    long                theModifierIndex;       // QuickTime 2.1 or later only
    FSSpec              theFileSpec;
    short               theMovieResID;
};
 
typedef struct MovieDoc MovieDoc, *MovieDocPtr, **MovieDocHndl;
 
#if GENERATINGPOWERPC
#pragma options align=reset
#endif
 
// doevent.c prototypes
 
void            DoEvent (EventRecord *EventPtr);        // process event
void            HandleMouseDown(EventRecord *eventPtr);// handle mouse down events
void            DoDiskEvt(EventRecord *eventPtr);       // handle disk inserted events
 
// eventloop.c prototypes
 
void            EventLoop (void);                       // main program event loop
 
 
// menu.c prototypes
 
void            MenuBarInit (void);                                 // init menubar
void            DoAdjustMenus(void);                                // adjust valid menus
void            DoMenuCommand(long menuResult);                     // perform menu selection
void            DoAdjustFileMenu(void);         // Adjust file menu
void            DoAdjustEditMenu(void);         // Adjust Edit menu
void            DoAdjustKeyMode(void);          // Adjust Chroma key menu
void            DoAdjustOptions(Boolean playAllFrames, Boolean loopMovie);  // Adjust Options menu
 
 
// start.c prototypes
 
void            InitGlobals(void);                          // initialise global variables
void            TestforQuickTimeVersion(void);              // test for QuickTime & version
 
 
// moviecontrol.c prototypes
 
Boolean         PlayMovieChroma(void);
OSErr           LoadOneMovie(MovieDocHndl theDocH);
void            TransparentColor(void);
Boolean         SetPlayAllFrames(Boolean playAllFrames);
Boolean         SetLoopMovie(Boolean loopMovie);
void            TransparentKeyMode(WindowPtr theWindow);
void            ModifierTrackMode(WindowPtr theWindow);
void            VideoGraphicsMode(WindowPtr theWindow, Boolean SetVGM);
OSErr           DestroyModifierTrack(MovieDocHndl theDocH);
 
 
// windows.c prototypes
 
long            DisplayAlert (short dialogID,short errStrID,short StrIDindex);
void            DragSelWind(WindowPtr window,Point mouseloc);   // drag window
void            DoGoAwayWind(WindowPtr window,Point mouseLoc);  // window close button selected
void            DisposeWindowDocs (WindowPtr window);           // dispose window documents
void            DoWindUpdate(WindowPtr window);     // update dirty open window
CWindowPtr      OpenCWindow(void);
 
 
 
#endif  // __CHROMAPPHEADER__