Retired Document
Important: This sample code may not represent best practices for current development. The project may use deprecated symbols and illustrate technologies and techniques that are no longer recommended.
Completed Lab/QTWiredSprites.h
////////// |
// |
// File: QTWiredSprites.c |
// |
// Contains: QuickTime wired sprites support for QuickTime movies. |
// This file is used for BOTH MacOS and Windows. |
// |
// Written by: Sean Allen |
// Revised by: Chris Flick and Tim Monroe |
// Based (heavily!) on the existing MakeActionSpriteMovie.c code written by Sean Allen. |
// |
// Copyright: © 1997-1998 by Apple Computer, Inc., all rights reserved. |
// |
// Change History (most recent first): |
// |
// <1> 03/25/97 rtm first file; integrated existing code with shell framework |
// |
////////// |
////////// |
// |
// header files |
// |
////////// |
#include <Endian.h> |
#include <FixMath.h> |
#include <Fonts.h> |
#include <Movies.h> |
#include <Processes.h> |
#include <QuickTimeComponents.h> |
#include <Resources.h> |
#include <Script.h> |
#ifndef _WIREDSPRITEUTILITIES_ |
#include "WiredSpriteUtilities.h" |
#endif |
#ifndef _SPRITEUTILITIES_ |
#include "SpriteUtilities.h" |
#endif |
#ifndef __ENDIANUTILITIES__ |
#include "EndianUtilities.h" |
#endif |
#ifndef __COMAPPLICATION__ |
#include "ComApplication.h" |
#endif |
#if TARGET_OS_MAC |
#include "MacFramework.h" |
#endif |
#if TARGET_OS_WIN32 |
#include "WinFramework.h" |
#endif |
////////// |
// |
// constants |
// |
////////// |
#define kSpriteTrackWidth 320 |
#define kSpriteTrackHeight 240 |
#define kPenguinWidth 92 |
#define kPenguinHeight 102 |
#define kStartEndButtonWidth 36 |
#define kStartEndButtonHeight 19 |
#define kNextPrevButtonWidth 28 |
#define kNextPrevButtonHeight 19 |
#define kGoToBeginningButtonUp 10000 |
#define kGoToBeginningButtonDown 10001 |
#define kGoToEndButtonUp 10002 |
#define kGoToEndButtonDown 10003 |
#define kGoToPrevButtonUp 10004 |
#define kGoToPrevButtonDown 10005 |
#define kGoToNextButtonUp 10006 |
#define kGoToNextButtonDown 10007 |
#define kPenguinForward 20000 |
#define kPenguinLeft 20001 |
#define kPenguinRight 20002 |
#define kPenguinClosed 20003 |
#define kWalkDownRightCycleStart 20004 |
#define kWalkDownRightCycleEnd 20015 |
#define kPenguinWalkCycleLength (kWalkDownRightCycleEnd - kWalkDownRightCycleStart + 1) |
#define kPenguinFlapCycleStart 30000 |
#define kPenguinFlapCycleEnd 30005 |
#define kPenguinFlapCycleLength (kPenguinFlapCycleEnd - kPenguinFlapCycleStart + 1) |
#define kGoToBeginningButtonUpIndex 1 |
#define kGoToBeginningButtonDownIndex 2 |
#define kGoToEndButtonUpIndex 3 |
#define kGoToEndButtonDownIndex 4 |
#define kGoToPrevButtonUpIndex 5 |
#define kGoToPrevButtonDownIndex 6 |
#define kGoToNextButtonUpIndex 7 |
#define kGoToNextButtonDownIndex 8 |
#define kPenguinForwardIndex 9 |
#define kPenguinLeftIndex 10 |
#define kPenguinRightIndex 11 |
#define kPenguinClosedIndex 12 |
#define kPenguinDownRightCycleStartIndex 13 |
#define kPenguinDownRightCycleEndIndex (kPenguinDownRightCycleStartIndex + kPenguinWalkCycleLength - 1) |
#define kSpriteMediaTimeScale 600 |
#define kSpriteMediaFrameDuration 20 |
#define kSpriteMediaFramesPerSecond (kSpriteMediaTimeScale / kSpriteMediaFrameDuration) |
#define kGoToBeginningSpriteID 1 |
#define kGoToPrevSpriteID 2 |
#define kGoToNextSpriteID 3 |
#define kGoToEndSpriteID 4 |
#define kPenguinOneSpriteID 5 |
#define kPenguinTwoSpriteID 6 |
#define kNumOverrideSamples (2 * kPenguinWalkCycleLength) |
#define kPenguinStateVariableID 1 |
#define kButtonStateOne 0 |
#define kButtonStateTwo 1 |
#define kWiredSavePrompt "Save Wired Sprite Movie As:" |
#define kWiredSaveFileName "WiredSprite.mov" |
////////// |
// |
// function prototypes |
// |
////////// |
OSErr QTWired_CreateWiredSpritesMovie (void); |
OSErr QTWired_AddPenguinTwoConditionalActions (QTAtomContainer theContainer, QTAtom theEventAtom); |
OSErr QTWired_AddWraparoundMatrixOnIdle (QTAtomContainer theContainer); |
OSErr QTWired_AddCursorChangeOnMouseOver (QTAtomContainer theContainer, QTAtomID theID); |
Copyright © 2003 Apple Computer, Inc. All Rights Reserved. Terms of Use | Privacy Policy | Updated: 2003-02-25