summaryrefslogtreecommitdiff
path: root/common/quicktime_win32/Movies.h
diff options
context:
space:
mode:
authorFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
committerFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
commit3bf9df6b2785fa6d951086978a3e66f49427166a (patch)
tree2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /common/quicktime_win32/Movies.h
downloadarchived-source-engine-2018-hl2-src-master.tar.xz
archived-source-engine-2018-hl2-src-master.zip
Diffstat (limited to 'common/quicktime_win32/Movies.h')
-rw-r--r--common/quicktime_win32/Movies.h19469
1 files changed, 19469 insertions, 0 deletions
diff --git a/common/quicktime_win32/Movies.h b/common/quicktime_win32/Movies.h
new file mode 100644
index 0000000..ff24b4a
--- /dev/null
+++ b/common/quicktime_win32/Movies.h
@@ -0,0 +1,19469 @@
+/*
+ File: Movies.h
+
+ Contains: QuickTime Interfaces.
+
+ Version: QuickTime 7.3
+
+ Copyright: (c) 2007 (c) 1990-2007 by Apple Inc., all rights reserved
+
+ Bugs?: For bug reports, consult the following page on
+ the World Wide Web:
+
+ http://developer.apple.com/bugreporter/
+
+*/
+/*
+ Important note regarding availability macros
+ ============================================
+
+ QuickTime APIs that were introduced in QuickTime 6.0 and later are tagged with
+ availability macros indicating the first Mac OS X version in which they were
+ *always* available. Such APIs may also be present on systems running earlier
+ Mac OS X releases when QuickTime updates have been installed.
+
+ For example, QTNewDataReferenceFromCFURL was introduced in QuickTime 6.4.
+ It is always available on Mac OS X 10.3, which shipped with QuickTime 6.4.
+ However, QuickTime 6.4 can also be installed as an update to Mac OS X 10.2.x,
+ so QTNewDataReferenceFromCFURL is also available on some systems running
+ Mac OS X 10.2.x.
+
+ QuickTime 6.0 / Mac OS X 10.2 : AVAILABLE_MAC_OS_X_VERSION_10_2_AND_LATER
+ QuickTime 6.4 / Mac OS X 10.3 : AVAILABLE_MAC_OS_X_VERSION_10_3_AND_LATER
+ QuickTime 7.0 / Mac OS X 10.4 : AVAILABLE_MAC_OS_X_VERSION_10_4_AND_LATER
+ QuickTime 7.2 / Mac OS X 10.5 : AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER
+
+ As described in /usr/include/AvailabilityMacros.h, you can use the
+ MAC_OS_X_VERSION_MIN_REQUIRED macro to weak-link to the APIs that may not be
+ available on the Mac OS X versions your software targets.
+*/
+#ifndef __MOVIES__
+#define __MOVIES__
+
+#ifndef __QUICKDRAW__
+#include <Quickdraw.h>
+#endif
+
+#ifndef __ALIASES__
+#include <Aliases.h>
+#endif
+
+#ifndef __EVENTS__
+#include <Events.h>
+#endif
+
+#ifndef __MENUS__
+#include <Menus.h>
+#endif
+
+#ifndef __COMPONENTS__
+#include <Components.h>
+#endif
+
+#ifndef __SOUND__
+#include <Sound.h>
+#endif
+
+#ifndef __IMAGECOMPRESSION__
+#include <ImageCompression.h>
+#endif
+
+#ifndef __QUICKTIMEERRORS__
+#include <QuickTimeErrors.h>
+#endif
+
+
+
+
+#if PRAGMA_ONCE
+#pragma once
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if PRAGMA_IMPORT
+#pragma import on
+#endif
+
+#if PRAGMA_STRUCT_ALIGN
+ #pragma options align=mac68k
+#elif PRAGMA_STRUCT_PACKPUSH
+ #pragma pack(push, 2)
+#elif PRAGMA_STRUCT_PACK
+ #pragma pack(2)
+#endif
+
+/* QuickTime is not available to 64-bit clients */
+
+#if !__LP64__
+
+#include <CoreAudioTypes.h>
+typedef UInt32 AudioUnitRenderActionFlags;
+/* This sets the user defined exportset name i.e. fw_QuickTime_XManchego, available on 10.5 or later, and comment [4486184] */
+/* NOTE: Requires Interfacer-35 or later */
+/* <exportset=fw_QuickTime_XManchego> */
+/* <exportset=fw_QuickTime_XMaguro> */
+
+/* "kFix1" is defined in FixMath as "fixed1" */
+/* error codes are in Errors.[haa] */
+/* gestalt codes are in Gestalt.[hpa] */
+enum {
+ MovieFileType = FOUR_CHAR_CODE('MooV'),
+ MovieScrapType = FOUR_CHAR_CODE('moov')
+};
+
+enum {
+ MovieResourceType = FOUR_CHAR_CODE('moov'),
+ MovieForwardPointerResourceType = FOUR_CHAR_CODE('fore'),
+ MovieBackwardPointerResourceType = FOUR_CHAR_CODE('back')
+};
+
+enum {
+ MovieResourceAtomType = FOUR_CHAR_CODE('moov'),
+ MovieDataAtomType = FOUR_CHAR_CODE('mdat'),
+ FreeAtomType = FOUR_CHAR_CODE('free'),
+ SkipAtomType = FOUR_CHAR_CODE('skip'),
+ WideAtomPlaceholderType = FOUR_CHAR_CODE('wide')
+};
+
+enum {
+ MediaHandlerType = FOUR_CHAR_CODE('mhlr'),
+ DataHandlerType = FOUR_CHAR_CODE('dhlr')
+};
+
+enum {
+ VideoMediaType = FOUR_CHAR_CODE('vide'),
+ SoundMediaType = FOUR_CHAR_CODE('soun'),
+ TextMediaType = FOUR_CHAR_CODE('text'),
+ BaseMediaType = FOUR_CHAR_CODE('gnrc'),
+ MPEGMediaType = FOUR_CHAR_CODE('MPEG'),
+ MusicMediaType = FOUR_CHAR_CODE('musi'),
+ TimeCodeMediaType = FOUR_CHAR_CODE('tmcd'),
+ SpriteMediaType = FOUR_CHAR_CODE('sprt'),
+ FlashMediaType = FOUR_CHAR_CODE('flsh'),
+ MovieMediaType = FOUR_CHAR_CODE('moov'),
+ TweenMediaType = FOUR_CHAR_CODE('twen'),
+ ThreeDeeMediaType = FOUR_CHAR_CODE('qd3d'),
+ SkinMediaType = FOUR_CHAR_CODE('skin'),
+ HandleDataHandlerSubType = FOUR_CHAR_CODE('hndl'),
+ PointerDataHandlerSubType = FOUR_CHAR_CODE('ptr '),
+ NullDataHandlerSubType = FOUR_CHAR_CODE('null'),
+ ResourceDataHandlerSubType = FOUR_CHAR_CODE('rsrc'),
+ URLDataHandlerSubType = FOUR_CHAR_CODE('url '),
+ AliasDataHandlerSubType = FOUR_CHAR_CODE('alis'),
+ WiredActionHandlerType = FOUR_CHAR_CODE('wire'),
+ kQTQuartzComposerMediaType = FOUR_CHAR_CODE('qtz '),
+ TimeCode64MediaType = FOUR_CHAR_CODE('tc64')
+};
+
+enum {
+ VisualMediaCharacteristic = FOUR_CHAR_CODE('eyes'),
+ AudioMediaCharacteristic = FOUR_CHAR_CODE('ears'),
+ kCharacteristicCanSendVideo = FOUR_CHAR_CODE('vsnd'),
+ kCharacteristicProvidesActions = FOUR_CHAR_CODE('actn'),
+ kCharacteristicNonLinear = FOUR_CHAR_CODE('nonl'),
+ kCharacteristicCanStep = FOUR_CHAR_CODE('step'),
+ kCharacteristicHasNoDuration = FOUR_CHAR_CODE('noti'),
+ kCharacteristicHasSkinData = FOUR_CHAR_CODE('skin'),
+ kCharacteristicProvidesKeyFocus = FOUR_CHAR_CODE('keyf'),
+ kCharacteristicSupportsDisplayOffsets = FOUR_CHAR_CODE('dtdd')
+};
+
+enum {
+ kUserDataMovieControllerType = FOUR_CHAR_CODE('ctyp'),
+ kUserDataName = FOUR_CHAR_CODE('name'),
+ kUserDataTextAlbum = 0xA9616C62,
+ kUserDataTextArtist = 0xA9415254,
+ kUserDataTextAuthor = 0xA9617574,
+ kUserDataTextChapter = 0xA9636870,
+ kUserDataTextComment = 0xA9636D74,
+ kUserDataTextComposer = 0xA9636F6D,
+ kUserDataTextCopyright = 0xA9637079,
+ kUserDataTextCreationDate = 0xA9646179,
+ kUserDataTextDescription = 0xA9646573,
+ kUserDataTextDirector = 0xA9646972,
+ kUserDataTextDisclaimer = 0xA9646973,
+ kUserDataTextEncodedBy = 0xA9656E63,
+ kUserDataTextFullName = 0xA96E616D,
+ kUserDataTextGenre = 0xA967656E,
+ kUserDataTextHostComputer = 0xA9687374,
+ kUserDataTextInformation = 0xA9696E66,
+ kUserDataTextKeywords = 0xA96B6579,
+ kUserDataTextMake = 0xA96D616B,
+ kUserDataTextModel = 0xA96D6F64,
+ kUserDataTextOriginalArtist = 0xA96F7065,
+ kUserDataTextOriginalFormat = 0xA9666D74,
+ kUserDataTextOriginalSource = 0xA9737263,
+ kUserDataTextPerformers = 0xA9707266,
+ kUserDataTextProducer = 0xA9707264,
+ kUserDataTextProduct = 0xA9505244,
+ kUserDataTextSoftware = 0xA9737772,
+ kUserDataTextSpecialPlaybackRequirements = 0xA9726571,
+ kUserDataTextTrack = 0xA974726B,
+ kUserDataTextWarning = 0xA977726E,
+ kUserDataTextWriter = 0xA9777274,
+ kUserDataTextURLLink = 0xA975726C,
+ kUserDataTextEditDate1 = 0xA9656431,
+ kUserDataAnimatedGIFLoopCount = FOUR_CHAR_CODE('gifc'), /* data is big-endian UInt16 */
+ kQTAnimatedGIFLoopCountInfinite = 0,
+ kUserDataAnimatedGIFBufferingSize = FOUR_CHAR_CODE('gifb') /* data is big-endian UInt32 */
+};
+
+enum {
+ kUserDataUnicodeBit = 1L << 7
+};
+
+enum {
+ DoTheRightThing = 0
+};
+
+/* property types*/
+typedef OSType QTPropertyClass;
+typedef OSType QTPropertyID;
+typedef OSType QTPropertyValueType;
+typedef void * QTPropertyValuePtr;
+typedef const void * ConstQTPropertyValuePtr;
+typedef struct MovieType** Movie;
+typedef Movie * PtrToMovie;
+typedef struct TrackType** Track;
+typedef struct MediaType** Media;
+typedef struct UserDataRecord** UserData;
+typedef struct MovieStateRecord** MovieEditState;
+typedef struct TrackStateRecord** TrackEditState;
+typedef struct QTRestrictionSetRecord** QTRestrictionSet;
+typedef struct SpriteWorldRecord* SpriteWorld;
+typedef struct SpriteRecord* Sprite;
+typedef struct QTTweenerRecord* QTTweener;
+struct SampleDescription {
+ long descSize;
+ long dataFormat;
+ long resvd1;
+ short resvd2;
+ short dataRefIndex;
+};
+typedef struct SampleDescription SampleDescription;
+typedef SampleDescription * SampleDescriptionPtr;
+typedef SampleDescriptionPtr * SampleDescriptionHandle;
+enum {
+ kQTNetworkStatusNoNetwork = -2,
+ kQTNetworkStatusUncertain = -1,
+ kQTNetworkStatusNotConnected = 0,
+ kQTNetworkStatusConnected = 1
+};
+
+typedef Handle QTAtomContainer;
+typedef long QTAtom;
+typedef long QTAtomType;
+typedef long QTAtomID;
+/* QTFloatDouble is the 64-bit IEEE-754 standard*/
+typedef Float64 QTFloatDouble;
+/* QTFloatSingle is the 32-bit IEEE-754 standard*/
+typedef Float32 QTFloatSingle;
+/*************************
+ * SoundDescription
+ *************************/
+struct SoundDescription {
+ long descSize; /* total size of SoundDescription including extra data */
+ long dataFormat; /* sound format */
+ long resvd1; /* reserved for apple use. set to zero */
+ short resvd2; /* reserved for apple use. set to zero */
+ short dataRefIndex;
+ short version; /* which version is this data */
+ short revlevel; /* what version of that codec did this */
+ long vendor; /* whose codec compressed this data */
+ short numChannels; /* number of channels of sound */
+ short sampleSize; /* number of bits per sample */
+ short compressionID; /* unused. set to zero. */
+ short packetSize; /* unused. set to zero. */
+ UnsignedFixed sampleRate; /* sample rate sound is captured at */
+};
+typedef struct SoundDescription SoundDescription;
+typedef SoundDescription * SoundDescriptionPtr;
+typedef SoundDescriptionPtr * SoundDescriptionHandle;
+/* version 1 of the SoundDescription record*/
+struct SoundDescriptionV1 {
+ /* original fields*/
+ SoundDescription desc;
+ /* fixed compression ratio information*/
+ unsigned long samplesPerPacket;
+ unsigned long bytesPerPacket;
+ unsigned long bytesPerFrame;
+ unsigned long bytesPerSample;
+ /* additional atom based fields ([long size, long type, some data], repeat)*/
+};
+typedef struct SoundDescriptionV1 SoundDescriptionV1;
+typedef SoundDescriptionV1 * SoundDescriptionV1Ptr;
+typedef SoundDescriptionV1Ptr * SoundDescriptionV1Handle;
+/*
+ Definitions for SoundDescriptionV2:
+ LPCMFrame = one uncompressed sample in each of the channels (ie. 44100Hz audio has
+ 44100 LPCMFrames per second, whether it is mono, stereo, 5.1, or whatever).
+ In other words, LPCMFrames/audioSampleRate is duration in seconds.
+ AudioPacket = For compressed audio, an AudioPacket is the natural compressed access
+ unit of that format. For uncompressed audio, an AudioPacket is simply one
+ LPCMFrame.
+*/
+/* version 2 of the SoundDescription record*/
+struct SoundDescriptionV2 {
+ SInt32 descSize; /* total size of SoundDescription including extra data */
+ OSType dataFormat; /* 'lpcm' for uncompressed, compression type otherwise (eg. 'ima4') */
+ SInt32 resvd1; /* reserved for apple use. Must be set to zero */
+ SInt16 resvd2; /* reserved for apple use. Must be set to zero */
+ SInt16 dataRefIndex;
+ SInt16 version; /* which version is this data (2 in this case) */
+ SInt16 revlevel; /* what version of that codec did this */
+ SInt32 vendor; /* whose codec compressed this data */
+
+ SInt16 always3; /* Reserved, must be set to 3 */
+ SInt16 always16; /* Reserved, must be set to 16 (0x0010) */
+ SInt16 alwaysMinus2; /* Reserved, must be set to -2 (0xFFFE) */
+ SInt16 always0; /* Reserved, must be set to 0 */
+ UInt32 always65536; /* Reserved, must be set to 65536 (0x00010000) */
+
+ UInt32 sizeOfStructOnly; /* must be set to sizeof(SoundDescriptionV2), ie. offset to extensions */
+ Float64 audioSampleRate; /* audio frames per second, eg. 44100.0 */
+ UInt32 numAudioChannels; /* any channel assignment info will be in an extension */
+
+ SInt32 always7F000000; /* Reserved, must be set to 0x7F000000 */
+ UInt32 constBitsPerChannel; /* only set if constant (and only for uncompressed audio) */
+
+ UInt32 formatSpecificFlags; /* eg. see LPCM flag definitions in CoreAudioTypes.h */
+ UInt32 constBytesPerAudioPacket; /* only set if constant */
+ UInt32 constLPCMFramesPerAudioPacket; /* only set if constant */
+
+ /* additional atom based extensions ([long size, long type, some data], repeat)*/
+};
+typedef struct SoundDescriptionV2 SoundDescriptionV2;
+typedef SoundDescriptionV2 * SoundDescriptionV2Ptr;
+typedef SoundDescriptionV2Ptr * SoundDescriptionV2Handle;
+enum {
+ kQTSoundDescriptionKind_Movie_Version1 = FOUR_CHAR_CODE('mvv1'),
+ kQTSoundDescriptionKind_Movie_Version2 = FOUR_CHAR_CODE('mvv2'),
+ kQTSoundDescriptionKind_Movie_LowestPossibleVersion = FOUR_CHAR_CODE('mvlo'),
+ kQTSoundDescriptionKind_Movie_AnyVersion = FOUR_CHAR_CODE('mvny')
+};
+
+typedef FourCharCode QTSoundDescriptionKind;
+/*
+ * QTSoundDescriptionCreate()
+ *
+ * Summary:
+ * QTSoundDescriptionCreate creates a SoundDescription of the
+ * requested kind from an AudioStreamBasicDescription, optional
+ * AudioChannelLayout, and optional magic cookie.
+ * QTSoundDescriptionCreate allocates the returned
+ * SoundDescriptionHandle, and the caller is responsible for
+ * disposing it.
+ *
+ * Parameters:
+ *
+ * inASBD:
+ * a description of the format
+ *
+ * inLayout:
+ * the audio channel layout (can be NULL if there isn't one)
+ *
+ * inLayoutSize:
+ * size of the audio channel layout (should be 0 if inLayout is
+ * NULL)
+ *
+ * inMagicCookie:
+ * the magic cookie for the decompressor (can be NULL if there
+ * isn't one)
+ *
+ * inMagicCookieSize:
+ * size of the magic cookie (should be 0 if inMagicCookie is NULL)
+ *
+ * inRequestedKind:
+ * the kind of SoundDescription to create
+ *
+ * outSoundDesc:
+ * the resulting SoundDescription. Caller must dispose with
+ * DisposeHandle.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSStatus )
+QTSoundDescriptionCreate(
+ AudioStreamBasicDescription * inASBD,
+ AudioChannelLayout * inLayout,
+ ByteCount inLayoutSize,
+ void * inMagicCookie,
+ ByteCount inMagicCookieSize,
+ QTSoundDescriptionKind inRequestedKind,
+ SoundDescriptionHandle * outSoundDesc);
+
+
+/*
+ * QTSoundDescriptionConvert()
+ *
+ * Summary:
+ * Converts from one kind of SoundDescription to another. Note that
+ * fromKind is reserved for future expansion. You must set it to
+ * kSoundDescriptionKind_Movie_AnyVersion. You can specify (via
+ * toKind) that you would like a specific SoundDescription version,
+ * the lowest possible version (given the constraints of the format
+ * described by fromDescription), or any version of SoundDescription
+ * at all. QTSoundDescriptionConvert allocates the returned
+ * SoundDescriptionHandle and the caller is responsible for
+ * disposing it.
+ *
+ * Parameters:
+ *
+ * fromKind:
+ * reserved, must be set to kSoundDescriptionKind_Movie_AnyVersion
+ *
+ * fromDescription:
+ * input description to be converted
+ *
+ * toKind:
+ * kind of description toDescription will be
+ *
+ * toDescription:
+ * the resulting SoundDescription. Caller must dispose with
+ * DisposeHandle.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSStatus )
+QTSoundDescriptionConvert(
+ QTSoundDescriptionKind fromKind,
+ SoundDescriptionHandle fromDescription,
+ QTSoundDescriptionKind toKind,
+ SoundDescriptionHandle * toDescription);
+
+
+
+/* SoundDescription Properties*/
+
+/*
+ */
+enum {
+
+ /*
+ * Properties of a SoundDescription
+ */
+ kQTPropertyClass_SoundDescription = FOUR_CHAR_CODE('sdes') /* class for SoundDescription properties*/
+};
+
+
+/*
+ */
+enum {
+
+ /*
+ * kQTSoundDescriptionPropertyID_AudioChannelLayout: Value is
+ * AudioChannelLayout (Get/Set) Note that this is a variable sized
+ * property (since it may contain an array of ChannelDescriptions;
+ * see CoreAudioTypes.h). You must get the size first (by calling
+ * QTSoundDescriptionGetPropertyInfo), allocate a struct of that
+ * size, and then get the property.
+ */
+ kQTSoundDescriptionPropertyID_AudioChannelLayout = FOUR_CHAR_CODE('clay'),
+
+ /*
+ * kQTSoundDescriptionPropertyID_MagicCookie: Value is opaque bytes
+ * (Get/Set) Note that this is a variable sized property (since it is
+ * completely defined by the codec in question). You must get the
+ * size first (by calling QTSoundDescriptionGetPropertyInfo),
+ * allocate a struct of that size, and then get the property.
+ */
+ kQTSoundDescriptionPropertyID_MagicCookie = FOUR_CHAR_CODE('kuki'),
+
+ /*
+ * kQTSoundDescriptionPropertyID_AudioStreamBasicDescription: Value
+ * is AudioStreamBasicDescription (Get only)
+ */
+ kQTSoundDescriptionPropertyID_AudioStreamBasicDescription = FOUR_CHAR_CODE('asbd'),
+
+ /*
+ * kQTSoundDescriptionPropertyID_BitRate: Value is UInt32 in bits per
+ * second (Get only) kQTSoundDescriptionPropertyID_BitRate Note that
+ * this property may not be available for formats that are inherently
+ * very variable in bitrate and highly source-data dependent (such as
+ * Apple Lossless).
+ */
+ kQTSoundDescriptionPropertyID_BitRate = FOUR_CHAR_CODE('brat'),
+
+ /*
+ * kQTSoundDescriptionPropertyID_UserReadableText: Value is
+ * CFStringRef (Get only) QTSoundDescriptionGetProperty does a
+ * CFRetain of the returned CFString on behalf of the caller, so the
+ * caller is responsible for calling CFRelease on the returned
+ * CFString.
+ */
+ kQTSoundDescriptionPropertyID_UserReadableText = FOUR_CHAR_CODE('text')
+};
+
+/*
+ * QTSoundDescriptionGetPropertyInfo()
+ *
+ * Summary:
+ * Gets info about a particular property of a SoundDescription.
+ *
+ * Parameters:
+ *
+ * inDesc:
+ * SoundDescription being interrogated
+ *
+ * inPropClass:
+ * class of property being requested
+ *
+ * inPropID:
+ * ID of property being requested
+ *
+ * outPropType:
+ * type of property is returned here (can be NULL)
+ *
+ * outPropValueSize:
+ * size of property is returned here (can be NULL)
+ *
+ * outPropertyFlags:
+ * property flags are returned here (can be NULL)
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSStatus )
+QTSoundDescriptionGetPropertyInfo(
+ SoundDescriptionHandle inDesc,
+ QTPropertyClass inPropClass,
+ QTPropertyID inPropID,
+ QTPropertyValueType * outPropType,
+ ByteCount * outPropValueSize,
+ UInt32 * outPropertyFlags);
+
+
+/*
+ * QTSoundDescriptionGetProperty()
+ *
+ * Summary:
+ * Gets a particular property of a SoundDescription.
+ *
+ * Parameters:
+ *
+ * inDesc:
+ * SoundDescription being interrogated
+ *
+ * inPropClass:
+ * class of property being requested
+ *
+ * inPropID:
+ * ID of property being requested
+ *
+ * inPropValueSize:
+ * size of property value buffer
+ *
+ * outPropValueAddress:
+ * pointer to property value buffer
+ *
+ * outPropValueSizeUsed:
+ * actual size of returned property value (can be NULL)
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSStatus )
+QTSoundDescriptionGetProperty(
+ SoundDescriptionHandle inDesc,
+ QTPropertyClass inPropClass,
+ QTPropertyID inPropID,
+ ByteCount inPropValueSize,
+ QTPropertyValuePtr outPropValueAddress,
+ ByteCount * outPropValueSizeUsed);
+
+
+/*
+ * QTSoundDescriptionSetProperty()
+ *
+ * Summary:
+ * Sets a particular property of a SoundDescription.
+ *
+ * Parameters:
+ *
+ * inDesc:
+ * SoundDescription being modified
+ *
+ * inPropClass:
+ * class of property being set
+ *
+ * inPropID:
+ * ID of property being set
+ *
+ * inPropValueSize:
+ * size of property value buffer
+ *
+ * inPropValueAddress:
+ * pointer to property value buffer
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSStatus )
+QTSoundDescriptionSetProperty(
+ SoundDescriptionHandle inDesc,
+ QTPropertyClass inPropClass,
+ QTPropertyID inPropID,
+ ByteCount inPropValueSize,
+ ConstQTPropertyValuePtr inPropValueAddress);
+
+
+
+/* Sound Description Extensions*/
+
+/*
+ * AddSoundDescriptionExtension()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 3.0 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+AddSoundDescriptionExtension(
+ SoundDescriptionHandle desc,
+ Handle extension,
+ OSType idType);
+
+
+/*
+ * GetSoundDescriptionExtension()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 3.0 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+GetSoundDescriptionExtension(
+ SoundDescriptionHandle desc,
+ Handle * extension,
+ OSType idType);
+
+
+/*
+ * RemoveSoundDescriptionExtension()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 3.0 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+RemoveSoundDescriptionExtension(
+ SoundDescriptionHandle desc,
+ OSType idType);
+
+
+
+
+
+enum {
+ kTx3gSampleType = FOUR_CHAR_CODE('tx3g'),
+ kTx3gFontTableAtomType = FOUR_CHAR_CODE('ftab'),
+ kTx3gBlinkAtomType = FOUR_CHAR_CODE('blnk')
+};
+
+struct Tx3gRGBAColor {
+ unsigned char red;
+ unsigned char green;
+ unsigned char blue;
+ unsigned char transparency;
+};
+typedef struct Tx3gRGBAColor Tx3gRGBAColor;
+struct Tx3gStyleRecord {
+ unsigned short startChar;
+ unsigned short endChar;
+ unsigned short fontID;
+ unsigned char fontFace;
+ unsigned char fontSize;
+ Tx3gRGBAColor fontColor;
+};
+typedef struct Tx3gStyleRecord Tx3gStyleRecord;
+typedef Tx3gStyleRecord * Tx3gStylePtr;
+typedef Tx3gStylePtr * Tx3gStyleHandle;
+struct Tx3gStyleTableRecord {
+ unsigned short count;
+ Tx3gStyleRecord table[1];
+};
+typedef struct Tx3gStyleTableRecord Tx3gStyleTableRecord;
+typedef Tx3gStyleTableRecord * Tx3gStyleTablePtr;
+typedef Tx3gStyleTablePtr * Tx3gStyleTableHandle;
+struct Tx3gFontRecord {
+ unsigned short fontID;
+ unsigned char nameLength;
+ unsigned char name[1];
+};
+typedef struct Tx3gFontRecord Tx3gFontRecord;
+typedef Tx3gFontRecord * Tx3gFontRecordPtr;
+struct Tx3gFontTableRecord {
+ unsigned short entryCount;
+ Tx3gFontRecord fontEntries[1];
+};
+typedef struct Tx3gFontTableRecord Tx3gFontTableRecord;
+typedef Tx3gFontTableRecord * Tx3gFontTablePtr;
+typedef Tx3gFontTablePtr * Tx3gFontTableHandle;
+struct Tx3gDescription {
+ long descSize;
+ long dataFormat;
+ long resvd1;
+ short resvd2;
+ short dataRefIndex;
+
+ unsigned long displayFlags;
+ char horizontalJustification;
+ char verticalJustification;
+ Tx3gRGBAColor backgroundColor;
+ Rect defaultTextBox;
+ Tx3gStyleRecord defaultStyle;
+};
+typedef struct Tx3gDescription Tx3gDescription;
+typedef Tx3gDescription * Tx3gDescriptionPtr;
+typedef Tx3gDescriptionPtr * Tx3gDescriptionHandle;
+struct TextDescription {
+ long descSize; /* Total size of TextDescription*/
+ long dataFormat; /* 'text'*/
+
+ long resvd1;
+ short resvd2;
+ short dataRefIndex;
+
+ long displayFlags; /* see enum below for flag values*/
+
+ long textJustification; /* Can be: teCenter,teFlush -Default,-Right,-Left*/
+
+ RGBColor bgColor; /* Background color*/
+
+ Rect defaultTextBox; /* Location to place the text within the track bounds*/
+ ScrpSTElement defaultStyle; /* Default style (struct defined in TextEdit.h)*/
+ char defaultFontName[1]; /* Font Name (pascal string - struct extended to fit) */
+};
+typedef struct TextDescription TextDescription;
+typedef TextDescription * TextDescriptionPtr;
+typedef TextDescriptionPtr * TextDescriptionHandle;
+struct SpriteDescription {
+ long descSize; /* total size of SpriteDescription including extra data */
+ long dataFormat; /* */
+ long resvd1; /* reserved for apple use */
+ short resvd2;
+ short dataRefIndex;
+ long version; /* which version is this data */
+ OSType decompressorType; /* which decompressor to use, 0 for no decompression */
+ long sampleFlags; /* how to interpret samples */
+};
+typedef struct SpriteDescription SpriteDescription;
+typedef SpriteDescription * SpriteDescriptionPtr;
+typedef SpriteDescriptionPtr * SpriteDescriptionHandle;
+struct FlashDescription {
+ long descSize;
+ long dataFormat;
+ long resvd1;
+ short resvd2;
+ short dataRefIndex;
+ long version; /* which version is this data */
+ OSType decompressorType; /* which decompressor to use, 0 for no decompression */
+ long flags;
+};
+typedef struct FlashDescription FlashDescription;
+typedef FlashDescription * FlashDescriptionPtr;
+typedef FlashDescriptionPtr * FlashDescriptionHandle;
+struct ThreeDeeDescription {
+ long descSize; /* total size of ThreeDeeDescription including extra data */
+ long dataFormat; /* */
+ long resvd1; /* reserved for apple use */
+ short resvd2;
+ short dataRefIndex;
+ long version; /* which version is this data */
+ long rendererType; /* which renderer to use, 0 for default */
+ long decompressorType; /* which decompressor to use, 0 for default */
+};
+typedef struct ThreeDeeDescription ThreeDeeDescription;
+typedef ThreeDeeDescription * ThreeDeeDescriptionPtr;
+typedef ThreeDeeDescriptionPtr * ThreeDeeDescriptionHandle;
+struct DataReferenceRecord {
+ OSType dataRefType;
+ Handle dataRef;
+};
+typedef struct DataReferenceRecord DataReferenceRecord;
+typedef DataReferenceRecord * DataReferencePtr;
+/*--------------------------
+ Music Sample Description
+--------------------------*/
+struct MusicDescription {
+ long descSize;
+ long dataFormat; /* 'musi' */
+
+ long resvd1;
+ short resvd2;
+ short dataRefIndex;
+
+ long musicFlags;
+ unsigned long headerData[1]; /* variable size! */
+
+};
+typedef struct MusicDescription MusicDescription;
+typedef MusicDescription * MusicDescriptionPtr;
+typedef MusicDescriptionPtr * MusicDescriptionHandle;
+enum {
+ kMusicFlagDontPlay2Soft = 1L << 0,
+ kMusicFlagDontSlaveToMovie = 1L << 1
+};
+
+
+enum {
+ dfDontDisplay = 1 << 0, /* Don't display the text*/
+ dfDontAutoScale = 1 << 1, /* Don't scale text as track bounds grows or shrinks*/
+ dfClipToTextBox = 1 << 2, /* Clip update to the textbox*/
+ dfUseMovieBGColor = 1 << 3, /* Set text background to movie's background color*/
+ dfShrinkTextBoxToFit = 1 << 4, /* Compute minimum box to fit the sample*/
+ dfScrollIn = 1 << 5, /* Scroll text in until last of text is in view */
+ dfScrollOut = 1 << 6, /* Scroll text out until last of text is gone (if both set, scroll in then out)*/
+ dfHorizScroll = 1 << 7, /* Scroll text horizontally (otherwise it's vertical)*/
+ dfReverseScroll = 1 << 8, /* vert: scroll down rather than up; horiz: scroll backwards (justfication dependent)*/
+ dfContinuousScroll = 1 << 9, /* new samples cause previous samples to scroll out */
+ dfFlowHoriz = 1 << 10, /* horiz scroll text flows in textbox rather than extend to right */
+ dfContinuousKaraoke = 1 << 11, /* ignore begin offset, hilite everything up to the end offset(karaoke)*/
+ dfDropShadow = 1 << 12, /* display text with a drop shadow */
+ dfAntiAlias = 1 << 13, /* attempt to display text anti aliased*/
+ dfKeyedText = 1 << 14, /* key the text over background*/
+ dfInverseHilite = 1 << 15, /* Use inverse hiliting rather than using hilite color*/
+ dfTextColorHilite = 1 << 16 /* changes text color in place of hiliting. */
+};
+
+enum {
+ searchTextDontGoToFoundTime = 1L << 16,
+ searchTextDontHiliteFoundText = 1L << 17,
+ searchTextOneTrackOnly = 1L << 18,
+ searchTextEnabledTracksOnly = 1L << 19
+};
+
+/*use these with the text property routines*/
+enum {
+ /* set property parameter / get property parameter*/
+ kTextTextHandle = 1, /* Handle / preallocated Handle*/
+ kTextTextPtr = 2, /* Pointer*/
+ kTextTEStyle = 3, /* TextStyle * / TextStyle **/
+ kTextSelection = 4, /* long [2] / long [2]*/
+ kTextBackColor = 5, /* RGBColor * / RGBColor **/
+ kTextForeColor = 6, /* RGBColor * / RGBColor **/
+ kTextFace = 7, /* long / long **/
+ kTextFont = 8, /* long / long **/
+ kTextSize = 9, /* long / long **/
+ kTextAlignment = 10, /* short * / short **/
+ kTextHilite = 11, /* hiliteRecord * / hiliteRecord **/
+ kTextDropShadow = 12, /* dropShadowRecord * / dropShadowRecord **/
+ kTextDisplayFlags = 13, /* long / long **/
+ kTextScroll = 14, /* TimeValue * / TimeValue **/
+ kTextRelativeScroll = 15, /* Point **/
+ kTextHyperTextFace = 16, /* hyperTextSetFace * / hyperTextSetFace **/
+ kTextHyperTextColor = 17, /* hyperTextSetColor * / hyperTextSetColor **/
+ kTextKeyEntry = 18, /* short*/
+ kTextMouseDown = 19, /* Point **/
+ kTextTextBox = 20, /* Rect * / Rect **/
+ kTextEditState = 21, /* short / short **/
+ kTextLength = 22 /* / long **/
+};
+
+enum {
+ k3DMediaRendererEntry = FOUR_CHAR_CODE('rend'),
+ k3DMediaRendererName = FOUR_CHAR_CODE('name'),
+ k3DMediaRendererCode = FOUR_CHAR_CODE('rcod')
+};
+
+/* progress messages */
+enum {
+ movieProgressOpen = 0,
+ movieProgressUpdatePercent = 1,
+ movieProgressClose = 2
+};
+
+/* progress operations */
+enum {
+ progressOpFlatten = 1,
+ progressOpInsertTrackSegment = 2,
+ progressOpInsertMovieSegment = 3,
+ progressOpPaste = 4,
+ progressOpAddMovieSelection = 5,
+ progressOpCopy = 6,
+ progressOpCut = 7,
+ progressOpLoadMovieIntoRam = 8,
+ progressOpLoadTrackIntoRam = 9,
+ progressOpLoadMediaIntoRam = 10,
+ progressOpImportMovie = 11,
+ progressOpExportMovie = 12
+};
+
+enum {
+ mediaQualityDraft = 0x0000,
+ mediaQualityNormal = 0x0040,
+ mediaQualityBetter = 0x0080,
+ mediaQualityBest = 0x00C0
+};
+
+/*****
+ Interactive Sprites Support
+*****/
+/* QTEventRecord flags*/
+enum {
+ kQTEventPayloadIsQTList = 1L << 0
+};
+
+struct QTEventRecord {
+ long version;
+ OSType eventType;
+ Point where;
+ long flags;
+ long payloadRefcon; /* from here down only present if version >= 2*/
+ long param1;
+ long param2;
+ long param3;
+};
+typedef struct QTEventRecord QTEventRecord;
+typedef QTEventRecord * QTEventRecordPtr;
+struct QTAtomSpec {
+ QTAtomContainer container;
+ QTAtom atom;
+};
+typedef struct QTAtomSpec QTAtomSpec;
+typedef QTAtomSpec * QTAtomSpecPtr;
+struct ResolvedQTEventSpec {
+ QTAtomSpec actionAtom;
+ Track targetTrack;
+ long targetRefCon;
+};
+typedef struct ResolvedQTEventSpec ResolvedQTEventSpec;
+typedef ResolvedQTEventSpec * ResolvedQTEventSpecPtr;
+
+/* action constants */
+enum {
+ kActionMovieSetVolume = 1024, /* (short movieVolume) */
+ kActionMovieSetRate = 1025, /* (Fixed rate) */
+ kActionMovieSetLoopingFlags = 1026, /* (long loopingFlags) */
+ kActionMovieGoToTime = 1027, /* (TimeValue time) */
+ kActionMovieGoToTimeByName = 1028, /* (Str255 timeName) */
+ kActionMovieGoToBeginning = 1029, /* no params */
+ kActionMovieGoToEnd = 1030, /* no params */
+ kActionMovieStepForward = 1031, /* no params */
+ kActionMovieStepBackward = 1032, /* no params */
+ kActionMovieSetSelection = 1033, /* (TimeValue startTime, TimeValue endTime) */
+ kActionMovieSetSelectionByName = 1034, /* (Str255 startTimeName, Str255 endTimeName) */
+ kActionMoviePlaySelection = 1035, /* (Boolean selectionOnly) */
+ kActionMovieSetLanguage = 1036, /* (long language) */
+ kActionMovieChanged = 1037, /* no params */
+ kActionMovieRestartAtTime = 1038, /* (TimeValue startTime, Fixed rate) */
+ kActionMovieGotoNextChapter = 1039, /* no params */
+ kActionMovieGotoPreviousChapter = 1040, /* no params */
+ kActionMovieGotoFirstChapter = 1041, /* no params */
+ kActionMovieGotoLastChapter = 1042, /* no params */
+ kActionMovieGotoChapterByIndex = 1043, /* ( short index ) */
+ kActionMovieSetScale = 1044, /* (Fixed xScale, Fixed yScale) */
+ kActionTrackSetVolume = 2048, /* (short volume) */
+ kActionTrackSetBalance = 2049, /* (short balance) */
+ kActionTrackSetEnabled = 2050, /* (Boolean enabled) */
+ kActionTrackSetMatrix = 2051, /* (MatrixRecord matrix) */
+ kActionTrackSetLayer = 2052, /* (short layer) */
+ kActionTrackSetClip = 2053, /* (RgnHandle clip) */
+ kActionTrackSetCursor = 2054, /* (QTATomID cursorID) */
+ kActionTrackSetGraphicsMode = 2055, /* (ModifierTrackGraphicsModeRecord graphicsMode) */
+ kActionTrackSetIdleFrequency = 2056, /* (long frequency) */
+ kActionTrackSetBassTreble = 2057, /* (short base, short treble) */
+ kActionSpriteSetMatrix = 3072, /* (MatrixRecord matrix) */
+ kActionSpriteSetImageIndex = 3073, /* (short imageIndex) */
+ kActionSpriteSetVisible = 3074, /* (short visible) */
+ kActionSpriteSetLayer = 3075, /* (short layer) */
+ kActionSpriteSetGraphicsMode = 3076, /* (ModifierTrackGraphicsModeRecord graphicsMode) */
+ kActionSpritePassMouseToCodec = 3078, /* no params */
+ kActionSpriteClickOnCodec = 3079, /* Point localLoc */
+ kActionSpriteTranslate = 3080, /* (Fixed x, Fixed y, Boolean isAbsolute) */
+ kActionSpriteScale = 3081, /* (Fixed xScale, Fixed yScale) */
+ kActionSpriteRotate = 3082, /* (Fixed degrees) */
+ kActionSpriteStretch = 3083, /* (Fixed p1x, Fixed p1y, Fixed p2x, Fixed p2y, Fixed p3x, Fixed p3y, Fixed p4x, Fixed p4y) */
+ kActionSpriteSetCanBeHitTested = 3094, /* (short canBeHitTested) */
+ kActionQTVRSetPanAngle = 4096, /* (float panAngle) */
+ kActionQTVRSetTiltAngle = 4097, /* (float tiltAngle) */
+ kActionQTVRSetFieldOfView = 4098, /* (float fieldOfView) */
+ kActionQTVRShowDefaultView = 4099, /* no params */
+ kActionQTVRGoToNodeID = 4100, /* (UInt32 nodeID) */
+ kActionQTVREnableHotSpot = 4101, /* long ID, Boolean enable */
+ kActionQTVRShowHotSpots = 4102, /* Boolean show */
+ kActionQTVRTranslateObject = 4103, /* float xMove, float yMove */
+ kActionQTVRSetViewState = 4109, /* long viewStateType, short state */
+ kActionMusicPlayNote = 5120, /* (long sampleDescIndex, long partNumber, long delay, long pitch, long velocity, long duration) */
+ kActionMusicSetController = 5121, /* (long sampleDescIndex, long partNumber, long delay, long controller, long value) */
+ kActionCase = 6144, /* [(CaseStatementActionAtoms)] */
+ kActionWhile = 6145, /* [(WhileStatementActionAtoms)] */
+ kActionGoToURL = 6146, /* (C string urlLink) */
+ kActionSendQTEventToSprite = 6147, /* ([(SpriteTargetAtoms)], QTEventRecord theEvent) */
+ kActionDebugStr = 6148, /* (Str255 theString) */
+ kActionPushCurrentTime = 6149, /* no params */
+ kActionPushCurrentTimeWithLabel = 6150, /* (Str255 theLabel) */
+ kActionPopAndGotoTopTime = 6151, /* no params */
+ kActionPopAndGotoLabeledTime = 6152, /* (Str255 theLabel) */
+ kActionStatusString = 6153, /* (C string theString, long stringTypeFlags) */
+ kActionSendQTEventToTrackObject = 6154, /* ([(TrackObjectTargetAtoms)], QTEventRecord theEvent) */
+ kActionAddChannelSubscription = 6155, /* (Str255 channelName, C string channelsURL, C string channelsPictureURL) */
+ kActionRemoveChannelSubscription = 6156, /* (C string channelsURL) */
+ kActionOpenCustomActionHandler = 6157, /* (long handlerID, ComponentDescription handlerDesc) */
+ kActionDoScript = 6158, /* (long scriptTypeFlags, CString command, CString arguments) */
+ kActionDoCompressedActions = 6159, /* (compressed QTAtomContainer prefixed with eight bytes: long compressorType, long decompressedSize) */
+ kActionSendAppMessage = 6160, /* (long appMessageID) */
+ kActionLoadComponent = 6161, /* (ComponentDescription handlerDesc) */
+ kActionSetFocus = 6162, /* [(TargetAtoms theObject)] */
+ kActionDontPassKeyEvent = 6163, /* no params */
+ kActionSetRandomSeed = 6164, /* long randomSeed */
+ kActionSpriteTrackSetVariable = 7168, /* (QTAtomID variableID, float value) */
+ kActionSpriteTrackNewSprite = 7169, /* (QTAtomID spriteID, short imageIndex, MatrixRecord *matrix, short visible, short layer, ModifierTrackGraphicsModeRecord *graphicsMode, QTAtomID actionHandlingSpriteID) */
+ kActionSpriteTrackDisposeSprite = 7170, /* (QTAtomID spriteID) */
+ kActionSpriteTrackSetVariableToString = 7171, /* (QTAtomID variableID, C string value) */
+ kActionSpriteTrackConcatVariables = 7172, /* (QTAtomID firstVariableID, QTAtomID secondVariableID, QTAtomID resultVariableID ) */
+ kActionSpriteTrackSetVariableToMovieURL = 7173, /* (QTAtomID variableID, < optional: [(MovieTargetAtoms)] > ) */
+ kActionSpriteTrackSetVariableToMovieBaseURL = 7174, /* (QTAtomID variableID, < optional: [(MovieTargetAtoms)] > ) */
+ kActionSpriteTrackSetAllSpritesHitTestingMode = 7181,
+ kActionSpriteTrackNewImage = 7182, /* (C string imageURL, QTAtomID desiredID) */
+ kActionSpriteTrackDisposeImage = 7183, /* (short imageIndex) */
+ kActionApplicationNumberAndString = 8192, /* (long aNumber, Str255 aString ) */
+ kActionQD3DNamedObjectTranslateTo = 9216, /* (Fixed x, Fixed y, Fixed z ) */
+ kActionQD3DNamedObjectScaleTo = 9217, /* (Fixed xScale, Fixed yScale, Fixed zScale ) */
+ kActionQD3DNamedObjectRotateTo = 9218, /* (Fixed xDegrees, Fixed yDegrees, Fixed zDegrees ) */
+ kActionFlashTrackSetPan = 10240, /* (short xPercent, short yPercent ) */
+ kActionFlashTrackSetZoom = 10241, /* (short zoomFactor ) */
+ kActionFlashTrackSetZoomRect = 10242, /* (long left, long top, long right, long bottom ) */
+ kActionFlashTrackGotoFrameNumber = 10243, /* (long frameNumber ) */
+ kActionFlashTrackGotoFrameLabel = 10244, /* (C string frameLabel ) */
+ kActionFlashTrackSetFlashVariable = 10245, /* (C string path, C string name, C string value, Boolean updateFocus) */
+ kActionFlashTrackDoButtonActions = 10246, /* (C string path, long buttonID, long transition) */
+ kActionMovieTrackAddChildMovie = 11264, /* (QTAtomID childMovieID, C string childMovieURL) */
+ kActionMovieTrackLoadChildMovie = 11265, /* (QTAtomID childMovieID) */
+ kActionMovieTrackLoadChildMovieWithQTListParams = 11266, /* (QTAtomID childMovieID, C string qtlistXML) */
+ kActionTextTrackPasteText = 12288, /* (C string theText, long startSelection, long endSelection ) */
+ kActionTextTrackSetTextBox = 12291, /* (short left, short top, short right, short bottom) */
+ kActionTextTrackSetTextStyle = 12292, /* (Handle textStyle) */
+ kActionTextTrackSetSelection = 12293, /* (long startSelection, long endSelection ) */
+ kActionTextTrackSetBackgroundColor = 12294, /* (ModifierTrackGraphicsModeRecord backgroundColor ) */
+ kActionTextTrackSetForegroundColor = 12295, /* (ModifierTrackGraphicsModeRecord foregroundColor ) */
+ kActionTextTrackSetFace = 12296, /* (long fontFace ) */
+ kActionTextTrackSetFont = 12297, /* (long fontID ) */
+ kActionTextTrackSetSize = 12298, /* (long fontSize ) */
+ kActionTextTrackSetAlignment = 12299, /* (short alignment ) */
+ kActionTextTrackSetHilite = 12300, /* (long startHighlight, long endHighlight, ModifierTrackGraphicsModeRecord highlightColor ) */
+ kActionTextTrackSetDropShadow = 12301, /* (Point dropShadow, short transparency ) */
+ kActionTextTrackSetDisplayFlags = 12302, /* (long flags ) */
+ kActionTextTrackSetScroll = 12303, /* (long delay ) */
+ kActionTextTrackRelativeScroll = 12304, /* (short deltaX, short deltaY ) */
+ kActionTextTrackFindText = 12305, /* (long flags, Str255 theText, ModifierTrackGraphicsModeRecord highlightColor ) */
+ kActionTextTrackSetHyperTextFace = 12306, /* (short index, long fontFace ) */
+ kActionTextTrackSetHyperTextColor = 12307, /* (short index, ModifierTrackGraphicsModeRecord highlightColor ) */
+ kActionTextTrackKeyEntry = 12308, /* (short character ) */
+ kActionTextTrackMouseDown = 12309, /* no params */
+ kActionTextTrackSetEditable = 12310, /* (short editState) */
+ kActionListAddElement = 13312, /* (C string parentPath, long atIndex, C string newElementName) */
+ kActionListRemoveElements = 13313, /* (C string parentPath, long startIndex, long endIndex) */
+ kActionListSetElementValue = 13314, /* (C string elementPath, C string valueString) */
+ kActionListPasteFromXML = 13315, /* (C string xml, C string targetParentPath, long startIndex) */
+ kActionListSetMatchingFromXML = 13316, /* (C string xml, C string targetParentPath) */
+ kActionListSetFromURL = 13317, /* (C string url, C string targetParentPath ) */
+ kActionListExchangeLists = 13318, /* (C string url, C string parentPath) */
+ kActionListServerQuery = 13319, /* (C string url, C string keyValuePairs, long flags, C string parentPath) */
+ kActionListAddAttribute = 13320, /* (C string elementPath, long atIndex, C string newAttributeName) */
+ kActionListRemoveAttributes = 13321, /* (C string elementPath, long startIndex, long endIndex) */
+ kActionListSetAttributeValue = 13322 /* (C string elementPath, C string attributeName, C string valueString) */
+};
+
+
+enum {
+ kOperandExpression = 1,
+ kOperandConstant = 2,
+ kOperandSubscribedToChannel = 3, /* C string channelsURL */
+ kOperandUniqueCustomActionHandlerID = 4,
+ kOperandCustomActionHandlerIDIsOpen = 5, /* long ID */
+ kOperandConnectionSpeed = 6,
+ kOperandGMTDay = 7,
+ kOperandGMTMonth = 8,
+ kOperandGMTYear = 9,
+ kOperandGMTHours = 10,
+ kOperandGMTMinutes = 11,
+ kOperandGMTSeconds = 12,
+ kOperandLocalDay = 13,
+ kOperandLocalMonth = 14,
+ kOperandLocalYear = 15,
+ kOperandLocalHours = 16,
+ kOperandLocalMinutes = 17,
+ kOperandLocalSeconds = 18,
+ kOperandRegisteredForQuickTimePro = 19,
+ kOperandPlatformRunningOn = 20,
+ kOperandQuickTimeVersion = 21,
+ kOperandComponentVersion = 22, /* C string type, C string subType, C string manufacturer */
+ kOperandOriginalHandlerRefcon = 23,
+ kOperandTicks = 24,
+ kOperandMaxLoadedTimeInMovie = 25,
+ kOperandEventParameter = 26, /* short index */
+ kOperandFreeMemory = 27,
+ kOperandNetworkStatus = 28,
+ kOperandQuickTimeVersionRegistered = 29, /* long version */
+ kOperandSystemVersion = 30,
+ kOperandMovieVolume = 1024,
+ kOperandMovieRate = 1025,
+ kOperandMovieIsLooping = 1026,
+ kOperandMovieLoopIsPalindrome = 1027,
+ kOperandMovieTime = 1028,
+ kOperandMovieDuration = 1029,
+ kOperandMovieTimeScale = 1030,
+ kOperandMovieWidth = 1031,
+ kOperandMovieHeight = 1032,
+ kOperandMovieLoadState = 1033,
+ kOperandMovieTrackCount = 1034,
+ kOperandMovieIsActive = 1035,
+ kOperandMovieName = 1036,
+ kOperandMovieID = 1037,
+ kOperandMovieChapterCount = 1038,
+ kOperandMovieChapterIndex = 1039,
+ kOperandMovieChapterName = 1040,
+ kOperandMovieChapterNameByIndex = 1041, /* ( short index ) */
+ kOperandMovieChapterIndexByName = 1042, /* (c string name) */
+ kOperandMovieAnnotation = 1043, /* (c string requested, long flags) */
+ kOperandMovieConnectionFlags = 1044,
+ kOperandMovieConnectionString = 1045,
+ kOperandTrackVolume = 2048,
+ kOperandTrackBalance = 2049,
+ kOperandTrackEnabled = 2050,
+ kOperandTrackLayer = 2051,
+ kOperandTrackWidth = 2052,
+ kOperandTrackHeight = 2053,
+ kOperandTrackDuration = 2054,
+ kOperandTrackName = 2055,
+ kOperandTrackID = 2056,
+ kOperandTrackIdleFrequency = 2057,
+ kOperandTrackBass = 2058,
+ kOperandTrackTreble = 2059,
+ kOperandSpriteBoundsLeft = 3072,
+ kOperandSpriteBoundsTop = 3073,
+ kOperandSpriteBoundsRight = 3074,
+ kOperandSpriteBoundsBottom = 3075,
+ kOperandSpriteImageIndex = 3076,
+ kOperandSpriteVisible = 3077,
+ kOperandSpriteLayer = 3078,
+ kOperandSpriteTrackVariable = 3079, /* [QTAtomID variableID] */
+ kOperandSpriteTrackNumSprites = 3080,
+ kOperandSpriteTrackNumImages = 3081,
+ kOperandSpriteID = 3082,
+ kOperandSpriteIndex = 3083,
+ kOperandSpriteFirstCornerX = 3084,
+ kOperandSpriteFirstCornerY = 3085,
+ kOperandSpriteSecondCornerX = 3086,
+ kOperandSpriteSecondCornerY = 3087,
+ kOperandSpriteThirdCornerX = 3088,
+ kOperandSpriteThirdCornerY = 3089,
+ kOperandSpriteFourthCornerX = 3090,
+ kOperandSpriteFourthCornerY = 3091,
+ kOperandSpriteImageRegistrationPointX = 3092,
+ kOperandSpriteImageRegistrationPointY = 3093,
+ kOperandSpriteTrackSpriteIDAtPoint = 3094, /* short x, short y */
+ kOperandSpriteName = 3095,
+ kOperandSpriteCanBeHitTested = 3105, /* short */
+ kOperandSpriteTrackAllSpritesHitTestingMode = 3106,
+ kOperandSpriteTrackImageIDByIndex = 3107, /* short imageIndex */
+ kOperandSpriteTrackImageIndexByID = 3108, /* QTAtomID */
+ kOperandQTVRPanAngle = 4096,
+ kOperandQTVRTiltAngle = 4097,
+ kOperandQTVRFieldOfView = 4098,
+ kOperandQTVRNodeID = 4099,
+ kOperandQTVRHotSpotsVisible = 4100,
+ kOperandQTVRViewCenterH = 4101,
+ kOperandQTVRViewCenterV = 4102,
+ kOperandQTVRViewStateCount = 4103,
+ kOperandQTVRViewState = 4104, /* long viewStateType */
+ kOperandMouseLocalHLoc = 5120, /* [TargetAtoms aTrack] */
+ kOperandMouseLocalVLoc = 5121, /* [TargetAtoms aTrack] */
+ kOperandKeyIsDown = 5122, /* [short modKeys, char asciiValue] */
+ kOperandRandom = 5123, /* [short min, short max] */
+ kOperandCanHaveFocus = 5124, /* [(TargetAtoms theObject)] */
+ kOperandHasFocus = 5125, /* [(TargetAtoms theObject)] */
+ kOperandTextTrackEditable = 6144,
+ kOperandTextTrackCopyText = 6145, /* long startSelection, long endSelection */
+ kOperandTextTrackStartSelection = 6146,
+ kOperandTextTrackEndSelection = 6147,
+ kOperandTextTrackTextBoxLeft = 6148,
+ kOperandTextTrackTextBoxTop = 6149,
+ kOperandTextTrackTextBoxRight = 6150,
+ kOperandTextTrackTextBoxBottom = 6151,
+ kOperandTextTrackTextLength = 6152,
+ kOperandListCountElements = 7168, /* (C string parentPath) */
+ kOperandListGetElementPathByIndex = 7169, /* (C string parentPath, long index) */
+ kOperandListGetElementValue = 7170, /* (C string elementPath) */
+ kOperandListCopyToXML = 7171, /* (C string parentPath, long startIndex, long endIndex) */
+ kOperandListCountAttributes = 7172, /* (C string elementPath) */
+ kOperandListGetAttributeNameByIndex = 7173, /* (C string elementPath, long index) */
+ kOperandListGetAttributeValue = 7174, /* (C string elementPath, C string attributeName) */
+ kOperandSin = 8192, /* float x */
+ kOperandCos = 8193, /* float x */
+ kOperandTan = 8194, /* float x */
+ kOperandATan = 8195, /* float x */
+ kOperandATan2 = 8196, /* float y, float x */
+ kOperandDegreesToRadians = 8197, /* float x */
+ kOperandRadiansToDegrees = 8198, /* float x */
+ kOperandSquareRoot = 8199, /* float x */
+ kOperandExponent = 8200, /* float x */
+ kOperandLog = 8201, /* float x */
+ kOperandFlashTrackVariable = 9216, /* [CString path, CString name] */
+ kOperandStringLength = 10240, /* (C string text) */
+ kOperandStringCompare = 10241, /* (C string aText, C string bText, Boolean caseSensitive, Boolan diacSensitive) */
+ kOperandStringSubString = 10242, /* (C string text, long offset, long length) */
+ kOperandStringConcat = 10243 /* (C string aText, C string bText) */
+};
+
+enum {
+ kFirstMovieAction = kActionMovieSetVolume,
+ kLastMovieAction = kActionMovieSetScale,
+ kFirstTrackAction = kActionTrackSetVolume,
+ kLastTrackAction = kActionTrackSetBassTreble,
+ kFirstSpriteAction = kActionSpriteSetMatrix,
+ kLastSpriteAction = kActionSpriteSetCanBeHitTested,
+ kFirstQTVRAction = kActionQTVRSetPanAngle,
+ kLastQTVRAction = kActionQTVRSetViewState,
+ kFirstMusicAction = kActionMusicPlayNote,
+ kLastMusicAction = kActionMusicSetController,
+ kFirstSystemAction = kActionCase,
+ kLastSystemAction = kActionSetRandomSeed,
+ kFirstSpriteTrackAction = kActionSpriteTrackSetVariable,
+ kLastSpriteTrackAction = kActionSpriteTrackDisposeImage,
+ kFirstApplicationAction = kActionApplicationNumberAndString,
+ kLastApplicationAction = kActionApplicationNumberAndString,
+ kFirstQD3DNamedObjectAction = kActionQD3DNamedObjectTranslateTo,
+ kLastQD3DNamedObjectAction = kActionQD3DNamedObjectRotateTo,
+ kFirstFlashTrackAction = kActionFlashTrackSetPan,
+ kLastFlashTrackAction = kActionFlashTrackDoButtonActions,
+ kFirstMovieTrackAction = kActionMovieTrackAddChildMovie,
+ kLastMovieTrackAction = kActionMovieTrackLoadChildMovieWithQTListParams,
+ kFirstTextTrackAction = kActionTextTrackPasteText,
+ kLastTextTrackAction = kActionTextTrackSetEditable,
+ kFirstMultiTargetAction = kActionListAddElement,
+ kLastMultiTargetAction = kActionListSetAttributeValue,
+ kFirstAction = kFirstMovieAction,
+ kLastAction = kLastMultiTargetAction
+};
+
+/* target atom types*/
+enum {
+ kTargetMovie = FOUR_CHAR_CODE('moov'), /* no data */
+ kTargetMovieName = FOUR_CHAR_CODE('mona'), /* (PString movieName) */
+ kTargetMovieID = FOUR_CHAR_CODE('moid'), /* (long movieID) */
+ kTargetRootMovie = FOUR_CHAR_CODE('moro'), /* no data */
+ kTargetParentMovie = FOUR_CHAR_CODE('mopa'), /* no data */
+ kTargetChildMovieTrackName = FOUR_CHAR_CODE('motn'), /* (PString childMovieTrackName) */
+ kTargetChildMovieTrackID = FOUR_CHAR_CODE('moti'), /* (long childMovieTrackID) */
+ kTargetChildMovieTrackIndex = FOUR_CHAR_CODE('motx'), /* (long childMovieTrackIndex) */
+ kTargetChildMovieMovieName = FOUR_CHAR_CODE('momn'), /* (PString childMovieName) */
+ kTargetChildMovieMovieID = FOUR_CHAR_CODE('momi'), /* (long childMovieID) */
+ kTargetTrackName = FOUR_CHAR_CODE('trna'), /* (PString trackName) */
+ kTargetTrackID = FOUR_CHAR_CODE('trid'), /* (long trackID) */
+ kTargetTrackType = FOUR_CHAR_CODE('trty'), /* (OSType trackType) */
+ kTargetTrackIndex = FOUR_CHAR_CODE('trin'), /* (long trackIndex) */
+ kTargetSpriteName = FOUR_CHAR_CODE('spna'), /* (PString spriteName) */
+ kTargetSpriteID = FOUR_CHAR_CODE('spid'), /* (QTAtomID spriteID) */
+ kTargetSpriteIndex = FOUR_CHAR_CODE('spin'), /* (short spriteIndex) */
+ kTargetQD3DNamedObjectName = FOUR_CHAR_CODE('nana'), /* (CString objectName) */
+ kTargetCurrentQTEventParams = FOUR_CHAR_CODE('evpa') /* no data */
+};
+
+/* action container atom types*/
+enum {
+ kQTEventType = FOUR_CHAR_CODE('evnt'),
+ kAction = FOUR_CHAR_CODE('actn'),
+ kWhichAction = FOUR_CHAR_CODE('whic'),
+ kActionParameter = FOUR_CHAR_CODE('parm'),
+ kActionTarget = FOUR_CHAR_CODE('targ'),
+ kActionFlags = FOUR_CHAR_CODE('flag'),
+ kActionParameterMinValue = FOUR_CHAR_CODE('minv'),
+ kActionParameterMaxValue = FOUR_CHAR_CODE('maxv'),
+ kActionListAtomType = FOUR_CHAR_CODE('list'),
+ kExpressionContainerAtomType = FOUR_CHAR_CODE('expr'),
+ kConditionalAtomType = FOUR_CHAR_CODE('test'),
+ kOperatorAtomType = FOUR_CHAR_CODE('oper'),
+ kOperandAtomType = FOUR_CHAR_CODE('oprn'),
+ kCommentAtomType = FOUR_CHAR_CODE('why '),
+ kCustomActionHandler = FOUR_CHAR_CODE('cust'),
+ kCustomHandlerID = FOUR_CHAR_CODE('id '),
+ kCustomHandlerDesc = FOUR_CHAR_CODE('desc'),
+ kQTEventRecordAtomType = FOUR_CHAR_CODE('erec')
+};
+
+/* QTEvent types */
+enum {
+ kQTEventMouseClick = FOUR_CHAR_CODE('clik'),
+ kQTEventMouseClickEnd = FOUR_CHAR_CODE('cend'),
+ kQTEventMouseClickEndTriggerButton = FOUR_CHAR_CODE('trig'),
+ kQTEventMouseEnter = FOUR_CHAR_CODE('entr'),
+ kQTEventMouseExit = FOUR_CHAR_CODE('exit'),
+ kQTEventMouseMoved = FOUR_CHAR_CODE('move'),
+ kQTEventFrameLoaded = FOUR_CHAR_CODE('fram'),
+ kQTEventIdle = FOUR_CHAR_CODE('idle'),
+ kQTEventKey = FOUR_CHAR_CODE('key '), /* qtevent.param1 = key, qtevent.param2 = modifiers, qtEvent.param3 = scanCode */
+ kQTEventMovieLoaded = FOUR_CHAR_CODE('load'),
+ kQTEventRequestToModifyMovie = FOUR_CHAR_CODE('reqm'),
+ kQTEventListReceived = FOUR_CHAR_CODE('list'),
+ kQTEventKeyUp = FOUR_CHAR_CODE('keyU') /* qtevent.param1 = key, qtevent.param2 = modifiers, qtEvent.param3 = scanCode */
+};
+
+/* flags for the kActionFlags atom */
+enum {
+ kActionFlagActionIsDelta = 1L << 1,
+ kActionFlagParameterWrapsAround = 1L << 2,
+ kActionFlagActionIsToggle = 1L << 3
+};
+
+/* flags for stringTypeFlags field of the QTStatusStringRecord */
+enum {
+ kStatusStringIsURLLink = 1L << 1,
+ kStatusStringIsStreamingStatus = 1L << 2,
+ kStatusHasCodeNumber = 1L << 3, /* high 16 bits of stringTypeFlags is error code number*/
+ kStatusIsError = 1L << 4
+};
+
+/* flags for scriptTypeFlags field of the QTDoScriptRecord*/
+enum {
+ kScriptIsUnknownType = 1L << 0,
+ kScriptIsJavaScript = 1L << 1,
+ kScriptIsLingoEvent = 1L << 2,
+ kScriptIsVBEvent = 1L << 3,
+ kScriptIsProjectorCommand = 1L << 4,
+ kScriptIsAppleScript = 1L << 5
+};
+
+/* flags for CheckQuickTimeRegistration routine*/
+enum {
+ kQTRegistrationDialogTimeOutFlag = 1 << 0,
+ kQTRegistrationDialogShowDialog = 1 << 1,
+ kQTRegistrationDialogForceDialog = 1 << 2
+};
+
+/* constants for kOperatorAtomType IDs (operator types)*/
+enum {
+ kOperatorAdd = FOUR_CHAR_CODE('add '),
+ kOperatorSubtract = FOUR_CHAR_CODE('sub '),
+ kOperatorMultiply = FOUR_CHAR_CODE('mult'),
+ kOperatorDivide = FOUR_CHAR_CODE('div '),
+ kOperatorOr = FOUR_CHAR_CODE('or '),
+ kOperatorAnd = FOUR_CHAR_CODE('and '),
+ kOperatorNot = FOUR_CHAR_CODE('not '),
+ kOperatorLessThan = FOUR_CHAR_CODE('< '),
+ kOperatorLessThanEqualTo = FOUR_CHAR_CODE('<= '),
+ kOperatorEqualTo = FOUR_CHAR_CODE('= '),
+ kOperatorNotEqualTo = FOUR_CHAR_CODE('!= '),
+ kOperatorGreaterThan = FOUR_CHAR_CODE('> '),
+ kOperatorGreaterThanEqualTo = FOUR_CHAR_CODE('>= '),
+ kOperatorModulo = FOUR_CHAR_CODE('mod '),
+ kOperatorIntegerDivide = FOUR_CHAR_CODE('idiv'),
+ kOperatorAbsoluteValue = FOUR_CHAR_CODE('abs '),
+ kOperatorNegate = FOUR_CHAR_CODE('neg ')
+};
+
+/* constants for kOperandPlatformRunningOn*/
+enum {
+ kPlatformMacintosh = 1,
+ kPlatformWindows = 2
+};
+
+/* flags for kOperandSystemVersion*/
+enum {
+ kSystemIsWindows9x = 0x00010000,
+ kSystemIsWindowsNT = 0x00020000,
+ kSystemIsClassicBlueBox = 0x00040000
+};
+
+/* constants for MediaPropertiesAtom*/
+enum {
+ kMediaPropertyNonLinearAtomType = FOUR_CHAR_CODE('nonl'),
+ kMediaPropertyHasActions = 105
+};
+
+
+/* TimeBase and TimeRecord moved to MacTypes.h */
+typedef UInt32 TimeBaseFlags;
+enum {
+ loopTimeBase = 1,
+ palindromeLoopTimeBase = 2,
+ maintainTimeBaseZero = 4
+};
+
+typedef struct QTCallBackHeader* QTCallBack;
+/* CallBack equates */
+typedef UInt16 QTCallBackFlags;
+enum {
+ triggerTimeFwd = 0x0001, /* when curTime exceeds triggerTime going forward */
+ triggerTimeBwd = 0x0002, /* when curTime exceeds triggerTime going backwards */
+ triggerTimeEither = 0x0003, /* when curTime exceeds triggerTime going either direction */
+ triggerRateLT = 0x0004, /* when rate changes to less than trigger value */
+ triggerRateGT = 0x0008, /* when rate changes to greater than trigger value */
+ triggerRateEqual = 0x0010, /* when rate changes to equal trigger value */
+ triggerRateLTE = triggerRateLT | triggerRateEqual,
+ triggerRateGTE = triggerRateGT | triggerRateEqual,
+ triggerRateNotEqual = triggerRateGT | triggerRateEqual | triggerRateLT,
+ triggerRateChange = 0,
+ triggerAtStart = 0x0001,
+ triggerAtStop = 0x0002
+};
+
+typedef UInt32 TimeBaseStatus;
+enum {
+ timeBaseBeforeStartTime = 1,
+ timeBaseAfterStopTime = 2,
+ timeBaseRateChanging = 4
+};
+
+
+typedef UInt16 QTCallBackType;
+enum {
+ callBackAtTime = 1,
+ callBackAtRate = 2,
+ callBackAtTimeJump = 3,
+ callBackAtExtremes = 4,
+ callBackAtTimeBaseDisposed = 5,
+ callBackAtInterrupt = 0x8000,
+ callBackAtDeferredTask = 0x4000
+};
+
+typedef CALLBACK_API( void , QTCallBackProcPtr )(QTCallBack cb, long refCon);
+typedef STACK_UPP_TYPE(QTCallBackProcPtr) QTCallBackUPP;
+enum {
+ qtcbNeedsRateChanges = 1, /* wants to know about rate changes */
+ qtcbNeedsTimeChanges = 2, /* wants to know about time changes */
+ qtcbNeedsStartStopChanges = 4 /* wants to know when TimeBase start/stop is changed*/
+};
+
+struct QTCallBackOpaqueHeader {
+ long callBackFlags;
+ long reserved1;
+ SInt8 qtPrivate[52];
+};
+typedef struct QTCallBackOpaqueHeader QTCallBackOpaqueHeader;
+typedef CALLBACK_API( void , QTSyncTaskProcPtr )(void * task);
+typedef STACK_UPP_TYPE(QTSyncTaskProcPtr) QTSyncTaskUPP;
+struct QTSyncTaskRecord {
+ void * qLink;
+ QTSyncTaskUPP proc;
+};
+typedef struct QTSyncTaskRecord QTSyncTaskRecord;
+typedef QTSyncTaskRecord * QTSyncTaskPtr;
+
+typedef CALLBACK_API( OSErr , MovieRgnCoverProcPtr )(Movie theMovie, RgnHandle changedRgn, long refcon);
+typedef CALLBACK_API( OSErr , MovieProgressProcPtr )(Movie theMovie, short message, short whatOperation, Fixed percentDone, long refcon);
+typedef CALLBACK_API( OSErr , MovieDrawingCompleteProcPtr )(Movie theMovie, long refCon);
+typedef CALLBACK_API( OSErr , TrackTransferProcPtr )(Track t, long refCon);
+typedef CALLBACK_API( OSErr , GetMovieProcPtr )(long offset, long size, void *dataPtr, void *refCon);
+typedef CALLBACK_API( Boolean , MoviePreviewCallOutProcPtr )(long refcon);
+typedef CALLBACK_API( OSErr , TextMediaProcPtr )(Handle theText, Movie theMovie, short *displayFlag, long refcon);
+typedef CALLBACK_API( OSErr , ActionsProcPtr )(void *refcon, Track targetTrack, long targetRefCon, QTEventRecordPtr theEvent);
+typedef CALLBACK_API( OSErr , DoMCActionProcPtr )(void *refcon, short action, void *params, Boolean *handled);
+typedef CALLBACK_API( OSErr , MovieExecuteWiredActionsProcPtr )(Movie theMovie, void *refcon, long flags, QTAtomContainer wiredActions);
+typedef CALLBACK_API( void , MoviePrePrerollCompleteProcPtr )(Movie theMovie, OSErr prerollErr, void *refcon);
+typedef CALLBACK_API( void , QTNextTaskNeededSoonerCallbackProcPtr )(TimeValue duration, unsigned long flags, void *refcon);
+typedef CALLBACK_API( void , MoviesErrorProcPtr )(OSErr theErr, long refcon);
+typedef STACK_UPP_TYPE(MovieRgnCoverProcPtr) MovieRgnCoverUPP;
+typedef STACK_UPP_TYPE(MovieProgressProcPtr) MovieProgressUPP;
+typedef STACK_UPP_TYPE(MovieDrawingCompleteProcPtr) MovieDrawingCompleteUPP;
+typedef STACK_UPP_TYPE(TrackTransferProcPtr) TrackTransferUPP;
+typedef STACK_UPP_TYPE(GetMovieProcPtr) GetMovieUPP;
+typedef STACK_UPP_TYPE(MoviePreviewCallOutProcPtr) MoviePreviewCallOutUPP;
+typedef STACK_UPP_TYPE(TextMediaProcPtr) TextMediaUPP;
+typedef STACK_UPP_TYPE(ActionsProcPtr) ActionsUPP;
+typedef STACK_UPP_TYPE(DoMCActionProcPtr) DoMCActionUPP;
+typedef STACK_UPP_TYPE(MovieExecuteWiredActionsProcPtr) MovieExecuteWiredActionsUPP;
+typedef STACK_UPP_TYPE(MoviePrePrerollCompleteProcPtr) MoviePrePrerollCompleteUPP;
+typedef STACK_UPP_TYPE(QTNextTaskNeededSoonerCallbackProcPtr) QTNextTaskNeededSoonerCallbackUPP;
+typedef STACK_UPP_TYPE(MoviesErrorProcPtr) MoviesErrorUPP;
+typedef ComponentInstance MediaHandler;
+typedef ComponentInstance DataHandler;
+typedef Component MediaHandlerComponent;
+typedef Component DataHandlerComponent;
+typedef ComponentResult HandlerError;
+enum {
+ keepInRam = 1 << 0, /* load and make non-purgable*/
+ unkeepInRam = 1 << 1, /* mark as purgable*/
+ flushFromRam = 1 << 2, /* empty those handles*/
+ loadForwardTrackEdits = 1 << 3, /* load track edits into ram for playing forward*/
+ loadBackwardTrackEdits = 1 << 4 /* load track edits into ram for playing in reverse*/
+};
+
+enum {
+ newMovieActive = 1 << 0,
+ newMovieDontResolveDataRefs = 1 << 1,
+ newMovieDontAskUnresolvedDataRefs = 1 << 2,
+ newMovieDontAutoAlternates = 1 << 3,
+ newMovieDontUpdateForeBackPointers = 1 << 4,
+ newMovieDontAutoUpdateClock = 1 << 5,
+ newMovieAsyncOK = 1 << 8,
+ newMovieIdleImportOK = 1 << 10,
+ newMovieDontInteractWithUser = 1 << 11
+};
+
+/* track usage bits */
+enum {
+ trackUsageInMovie = 1 << 1,
+ trackUsageInPreview = 1 << 2,
+ trackUsageInPoster = 1 << 3
+};
+
+/* Add/GetMediaSample flags */
+enum {
+ mediaSampleNotSync = 1 << 0, /* sample is not a sync sample (eg. is frame differenced */
+ mediaSampleShadowSync = 1 << 1, /* sample is a shadow sync */
+ mediaSampleDroppable = 1 << 27, /* sample is not required to be decoded for later samples to be decoded properly */
+ mediaSamplePartialSync = 1 << 16, /* sample is a partial sync (e.g., I frame after open GOP) */
+ mediaSampleHasRedundantCoding = 1 << 24, /* sample is known to contain redundant coding */
+ mediaSampleHasNoRedundantCoding = 1 << 25, /* sample is known not to contain redundant coding */
+ mediaSampleIsDependedOnByOthers = 1 << 26, /* one or more other samples depend upon the decode of this sample */
+ mediaSampleIsNotDependedOnByOthers = 1 << 27, /* synonym for mediaSampleDroppable */
+ mediaSampleDependsOnOthers = 1 << 28, /* sample's decode depends upon decode of other samples */
+ mediaSampleDoesNotDependOnOthers = 1 << 29, /* sample's decode does not depend upon decode of other samples */
+ mediaSampleEarlierDisplayTimesAllowed = 1 << 30 /* samples later in decode order may have earlier display times */
+};
+
+/*
+MediaSampleFlags is defined in ImageCompression.h:
+typedef UInt32 MediaSampleFlags;
+*/
+enum {
+ pasteInParallel = 1 << 0,
+ showUserSettingsDialog = 1 << 1,
+ movieToFileOnlyExport = 1 << 2,
+ movieFileSpecValid = 1 << 3
+};
+
+enum {
+ nextTimeMediaSample = 1 << 0,
+ nextTimeMediaEdit = 1 << 1,
+ nextTimeTrackEdit = 1 << 2,
+ nextTimeSyncSample = 1 << 3,
+ nextTimeStep = 1 << 4,
+ nextTimePartialSyncSample = 1 << 5,
+ nextTimeEdgeOK = 1 << 14,
+ nextTimeIgnoreActiveSegment = 1 << 15
+};
+
+typedef unsigned short nextTimeFlagsEnum;
+enum {
+ createMovieFileDeleteCurFile = 1L << 31,
+ createMovieFileDontCreateMovie = 1L << 30,
+ createMovieFileDontOpenFile = 1L << 29,
+ createMovieFileDontCreateResFile = 1L << 28
+};
+
+typedef unsigned long createMovieFileFlagsEnum;
+enum {
+ flattenAddMovieToDataFork = 1L << 0,
+ flattenActiveTracksOnly = 1L << 2,
+ flattenDontInterleaveFlatten = 1L << 3,
+ flattenFSSpecPtrIsDataRefRecordPtr = 1L << 4,
+ flattenCompressMovieResource = 1L << 5,
+ flattenForceMovieResourceBeforeMovieData = 1L << 6
+};
+
+typedef unsigned long movieFlattenFlagsEnum;
+enum {
+ movieInDataForkResID = -1 /* magic res ID */
+};
+
+enum {
+ mcTopLeftMovie = 1 << 0, /* usually centered */
+ mcScaleMovieToFit = 1 << 1, /* usually only scales down */
+ mcWithBadge = 1 << 2, /* give me a badge */
+ mcNotVisible = 1 << 3, /* don't show controller */
+ mcWithFrame = 1 << 4 /* gimme a frame */
+};
+
+enum {
+ movieScrapDontZeroScrap = 1 << 0,
+ movieScrapOnlyPutMovie = 1 << 1
+};
+
+enum {
+ dataRefSelfReference = 1 << 0,
+ dataRefWasNotResolved = 1 << 1
+};
+
+typedef unsigned long dataRefAttributesFlags;
+enum {
+ kMovieAnchorDataRefIsDefault = 1 << 0 /* data ref returned is movie default data ref */
+};
+
+enum {
+ hintsScrubMode = 1 << 0, /* mask == && (if flags == scrub on, flags != scrub off) */
+ hintsLoop = 1 << 1,
+ hintsDontPurge = 1 << 2,
+ hintsUseScreenBuffer = 1 << 5,
+ hintsAllowInterlace = 1 << 6,
+ hintsUseSoundInterp = 1 << 7,
+ hintsHighQuality = 1 << 8, /* slooooow */
+ hintsPalindrome = 1 << 9,
+ hintsInactive = 1 << 11,
+ hintsOffscreen = 1 << 12,
+ hintsDontDraw = 1 << 13,
+ hintsAllowBlacklining = 1 << 14,
+ hintsDontUseVideoOverlaySurface = 1 << 16,
+ hintsIgnoreBandwidthRestrictions = 1 << 17,
+ hintsPlayingEveryFrame = 1 << 18,
+ hintsAllowDynamicResize = 1 << 19,
+ hintsSingleField = 1 << 20,
+ hintsNoRenderingTimeOut = 1 << 21,
+ hintsFlushVideoInsteadOfDirtying = 1 << 22,
+ hintsEnableSubPixelPositioning = 1L << 23,
+ hintsRenderingMode = 1L << 24,
+ hintsAllowIdleSleep = 1L << 25, /* asks media handlers not to call UpdateSystemActivity etc */
+ hintsDeinterlaceFields = 1L << 26
+};
+
+typedef unsigned long playHintsEnum;
+enum {
+ mediaHandlerFlagBaseClient = 1
+};
+
+typedef unsigned long mediaHandlerFlagsEnum;
+enum {
+ movieTrackMediaType = 1 << 0,
+ movieTrackCharacteristic = 1 << 1,
+ movieTrackEnabledOnly = 1 << 2
+};
+
+/*
+ Opaque replacement for SampleReferenceRecord/SampleReference64Record arrays able to carry information
+ not described in those arrays of those records
+*/
+typedef const struct OpaqueQTSampleTable* QTSampleTableRef;
+typedef struct OpaqueQTSampleTable* QTMutableSampleTableRef;
+struct SampleReferenceRecord {
+ long dataOffset;
+ long dataSize;
+ TimeValue durationPerSample;
+ long numberOfSamples;
+ short sampleFlags;
+};
+typedef struct SampleReferenceRecord SampleReferenceRecord;
+typedef SampleReferenceRecord * SampleReferencePtr;
+struct SampleReference64Record {
+ wide dataOffset;
+ unsigned long dataSize;
+ TimeValue durationPerSample;
+ unsigned long numberOfSamples;
+ short sampleFlags;
+};
+typedef struct SampleReference64Record SampleReference64Record;
+typedef SampleReference64Record * SampleReference64Ptr;
+
+/*************************
+* Initialization Routines
+**************************/
+/*
+ * CheckQuickTimeRegistration()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 3.0 and later
+ * CarbonLib: in CarbonLib 1.1 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+CheckQuickTimeRegistration(
+ void * registrationKey,
+ long flags);
+
+
+/*
+ * EnterMovies()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+EnterMovies(void);
+
+
+/*
+ * ExitMovies()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+ExitMovies(void);
+
+
+enum {
+ kQTEnterMoviesFlagDontSetComponentsThreadMode = 1L << 0
+};
+
+#if TARGET_OS_MAC
+/*
+ * EnterMoviesOnThread()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.3 (or QuickTime 6.4) and later
+ */
+EXTERN_API( OSErr )
+EnterMoviesOnThread(UInt32 inFlags);
+
+
+/*
+ * ExitMoviesOnThread()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.3 (or QuickTime 6.4) and later
+ */
+EXTERN_API( OSErr )
+ExitMoviesOnThread(void);
+
+
+#endif /* TARGET_OS_MAC */
+
+/*************************
+* Error Routines
+**************************/
+
+/*
+ * GetMoviesError()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+GetMoviesError(void);
+
+
+/*
+ * ClearMoviesStickyError()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+ClearMoviesStickyError(void);
+
+
+/*
+ * GetMoviesStickyError()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+GetMoviesStickyError(void);
+
+
+/*
+ * SetMoviesErrorProc()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+SetMoviesErrorProc(
+ MoviesErrorUPP errProc,
+ long refcon);
+
+
+
+/*************************
+* Idle Routines
+**************************/
+/*
+ * MoviesTask()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+MoviesTask(
+ Movie theMovie,
+ long maxMilliSecToUse);
+
+
+/*
+ * PrerollMovie()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+PrerollMovie(
+ Movie theMovie,
+ TimeValue time,
+ Fixed Rate);
+
+
+/*
+ * PrePrerollMovie()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 4.0 and later
+ * CarbonLib: in CarbonLib 1.0.2 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 4.0 and later
+ */
+EXTERN_API( OSErr )
+PrePrerollMovie(
+ Movie m,
+ TimeValue time,
+ Fixed rate,
+ MoviePrePrerollCompleteUPP proc,
+ void * refcon);
+
+
+/*
+ * AbortPrePrerollMovie()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 4.0 and later
+ * CarbonLib: in CarbonLib 1.0.2 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 4.0 and later
+ */
+EXTERN_API( void )
+AbortPrePrerollMovie(
+ Movie m,
+ OSErr err);
+
+
+/*
+ * LoadMovieIntoRam()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+LoadMovieIntoRam(
+ Movie theMovie,
+ TimeValue time,
+ TimeValue duration,
+ long flags);
+
+
+/*
+ * LoadTrackIntoRam()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+LoadTrackIntoRam(
+ Track theTrack,
+ TimeValue time,
+ TimeValue duration,
+ long flags);
+
+
+/*
+ * LoadMediaIntoRam()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+LoadMediaIntoRam(
+ Media theMedia,
+ TimeValue time,
+ TimeValue duration,
+ long flags);
+
+
+/*
+ * SetMovieActive()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+SetMovieActive(
+ Movie theMovie,
+ Boolean active);
+
+
+/*
+ * GetMovieActive()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( Boolean )
+GetMovieActive(Movie theMovie);
+
+
+/*
+ * QTGetWallClockTimeBase()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 6.0 and later
+ * CarbonLib: in CarbonLib 1.6 and later
+ * Mac OS X: in version 10.2 and later
+ * Windows: in qtmlClient.lib 6.0 and later
+ */
+EXTERN_API( OSErr )
+QTGetWallClockTimeBase(TimeBase * wallClockTimeBase);
+
+
+
+/*************************
+* Idle Management
+**************************/
+typedef struct OpaqueIdleManager* IdleManager;
+/*
+ * QTIdleManagerOpen()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 6.0 and later
+ * CarbonLib: in CarbonLib 1.6 and later
+ * Mac OS X: in version 10.2 and later
+ * Windows: in qtmlClient.lib 6.0 and later
+ */
+EXTERN_API( IdleManager )
+QTIdleManagerOpen(void);
+
+
+/*
+ * QTIdleManagerClose()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 6.0 and later
+ * CarbonLib: in CarbonLib 1.6 and later
+ * Mac OS X: in version 10.2 and later
+ * Windows: in qtmlClient.lib 6.0 and later
+ */
+EXTERN_API( OSErr )
+QTIdleManagerClose(IdleManager im);
+
+
+/*
+ * QTIdleManagerGetNextIdleTime()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 6.0 and later
+ * CarbonLib: in CarbonLib 1.6 and later
+ * Mac OS X: in version 10.2 and later
+ * Windows: in qtmlClient.lib 6.0 and later
+ */
+EXTERN_API( OSErr )
+QTIdleManagerGetNextIdleTime(
+ IdleManager im,
+ TimeRecord * nextIdle);
+
+
+/*
+ * QTIdleManagerSetNextIdleTime()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 6.0 and later
+ * CarbonLib: in CarbonLib 1.6 and later
+ * Mac OS X: in version 10.2 and later
+ * Windows: in qtmlClient.lib 6.0 and later
+ */
+EXTERN_API( OSErr )
+QTIdleManagerSetNextIdleTime(
+ IdleManager im,
+ TimeRecord * nextIdle);
+
+
+/*
+ * QTIdleManagerSetNextIdleTimeNever()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 6.0 and later
+ * CarbonLib: in CarbonLib 1.6 and later
+ * Mac OS X: in version 10.2 and later
+ * Windows: in qtmlClient.lib 6.0 and later
+ */
+EXTERN_API( OSErr )
+QTIdleManagerSetNextIdleTimeNever(IdleManager im);
+
+
+/*
+ * QTIdleManagerSetNextIdleTimeNow()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 6.0 and later
+ * CarbonLib: in CarbonLib 1.6 and later
+ * Mac OS X: in version 10.2 and later
+ * Windows: in qtmlClient.lib 6.0 and later
+ */
+EXTERN_API( OSErr )
+QTIdleManagerSetNextIdleTimeNow(IdleManager im);
+
+
+/*
+ * QTIdleManagerSetNextIdleTimeDelta()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 6.0 and later
+ * CarbonLib: in CarbonLib 1.6 and later
+ * Mac OS X: in version 10.2 and later
+ * Windows: in qtmlClient.lib 6.0 and later
+ */
+EXTERN_API( OSErr )
+QTIdleManagerSetNextIdleTimeDelta(
+ IdleManager im,
+ TimeValue duration,
+ TimeScale scale);
+
+
+/*
+ * QTIdleManagerSetParent()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 6.0 and later
+ * CarbonLib: in CarbonLib 1.6 and later
+ * Mac OS X: in version 10.2 and later
+ * Windows: in qtmlClient.lib 6.0 and later
+ */
+EXTERN_API( OSErr )
+QTIdleManagerSetParent(
+ IdleManager im,
+ IdleManager parent);
+
+
+/*
+ * QTIdleManagerNeedsAnIdle()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 6.0 and later
+ * CarbonLib: in CarbonLib 1.6 and later
+ * Mac OS X: in version 10.2 and later
+ * Windows: in qtmlClient.lib 6.0 and later
+ */
+EXTERN_API( OSErr )
+QTIdleManagerNeedsAnIdle(
+ IdleManager im,
+ Boolean * needsOne);
+
+
+
+/*************************
+* Carbon Movie Control
+**************************/
+/* Movie Control option bits*/
+enum {
+ kMovieControlOptionHideController = (1L << 0),
+ kMovieControlOptionLocateTopLeft = (1L << 1),
+ kMovieControlOptionEnableEditing = (1L << 2),
+ kMovieControlOptionHandleEditingHI = (1L << 3),
+ kMovieControlOptionSetKeysEnabled = (1L << 4),
+ kMovieControlOptionManuallyIdled = (1L << 5)
+};
+
+/* Item tags for use in GetControlData() (some with SetControlData()) calls on Movie Controls*/
+enum {
+ kMovieControlDataMovieController = FOUR_CHAR_CODE('mc '),
+ kMovieControlDataMovie = FOUR_CHAR_CODE('moov'),
+ kMovieControlDataManualIdling = FOUR_CHAR_CODE('manu')
+};
+
+/*
+** CreateMovieControl() - This is the public API routine that creates a Movie Control. Given a window and location
+** plus a movie, it constructs a Movie Control with a Movie Controller in the window.
+*/
+/*
+ * CreateMovieControl()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: in CarbonLib 1.6 and later
+ * Mac OS X: in version 10.2 and later
+ */
+EXTERN_API( OSErr )
+CreateMovieControl(
+ WindowRef theWindow,
+ Rect * localRect,
+ Movie theMovie,
+ UInt32 options,
+ ControlRef * returnedControl);
+
+
+
+/*************************
+* calls for playing movies, previews, posters
+**************************/
+/*
+ * StartMovie()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+StartMovie(Movie theMovie);
+
+
+/*
+ * StopMovie()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+StopMovie(Movie theMovie);
+
+
+/*
+ * GoToBeginningOfMovie()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+GoToBeginningOfMovie(Movie theMovie);
+
+
+/*
+ * GoToEndOfMovie()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+GoToEndOfMovie(Movie theMovie);
+
+
+/*
+ * IsMovieDone()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( Boolean )
+IsMovieDone(Movie theMovie);
+
+
+/*
+ * GetMoviePreviewMode()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( Boolean )
+GetMoviePreviewMode(Movie theMovie);
+
+
+/*
+ * SetMoviePreviewMode()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+SetMoviePreviewMode(
+ Movie theMovie,
+ Boolean usePreview);
+
+
+/*
+ * ShowMoviePoster()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+ShowMoviePoster(Movie theMovie);
+
+
+/*
+ * PlayMoviePreview()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+PlayMoviePreview(
+ Movie theMovie,
+ MoviePreviewCallOutUPP callOutProc,
+ long refcon);
+
+
+/*************************
+* calls for controlling movies & tracks which are playing
+**************************/
+/*
+ * GetMovieTimeBase()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( TimeBase )
+GetMovieTimeBase(Movie theMovie);
+
+
+/*
+ * SetMovieMasterTimeBase()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+SetMovieMasterTimeBase(
+ Movie theMovie,
+ TimeBase tb,
+ const TimeRecord * slaveZero);
+
+
+/*
+ * SetMovieMasterClock()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+SetMovieMasterClock(
+ Movie theMovie,
+ Component clockMeister,
+ const TimeRecord * slaveZero);
+
+
+/*
+ * ChooseMovieClock()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 6.0 and later
+ * CarbonLib: in CarbonLib 1.6 and later
+ * Mac OS X: in version 10.2 and later
+ * Windows: in qtmlClient.lib 6.0 and later
+ */
+EXTERN_API( void )
+ChooseMovieClock(
+ Movie m,
+ long flags);
+
+
+/*
+ * GetMovieGWorld()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+GetMovieGWorld(
+ Movie theMovie,
+ CGrafPtr * port,
+ GDHandle * gdh);
+
+
+/*
+ * SetMovieGWorld()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+SetMovieGWorld(
+ Movie theMovie,
+ CGrafPtr port,
+ GDHandle gdh);
+
+
+enum {
+ movieDrawingCallWhenChanged = 0,
+ movieDrawingCallAlways = 1
+};
+
+/*
+ * SetMovieDrawingCompleteProc()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+SetMovieDrawingCompleteProc(
+ Movie theMovie,
+ long flags,
+ MovieDrawingCompleteUPP proc,
+ long refCon);
+
+
+
+/*
+ * GetMovieNaturalBoundsRect()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+GetMovieNaturalBoundsRect(
+ Movie theMovie,
+ Rect * naturalBounds);
+
+
+/*
+ * GetNextTrackForCompositing()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( Track )
+GetNextTrackForCompositing(
+ Movie theMovie,
+ Track theTrack);
+
+
+/*
+ * GetPrevTrackForCompositing()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( Track )
+GetPrevTrackForCompositing(
+ Movie theMovie,
+ Track theTrack);
+
+
+/*
+ * SetTrackGWorld()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+SetTrackGWorld(
+ Track theTrack,
+ CGrafPtr port,
+ GDHandle gdh,
+ TrackTransferUPP proc,
+ long refCon);
+
+
+/*
+ * GetMoviePict()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( PicHandle )
+GetMoviePict(
+ Movie theMovie,
+ TimeValue time);
+
+
+/*
+ * GetTrackPict()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( PicHandle )
+GetTrackPict(
+ Track theTrack,
+ TimeValue time);
+
+
+/*
+ * GetMoviePosterPict()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( PicHandle )
+GetMoviePosterPict(Movie theMovie);
+
+
+/* called between Begin & EndUpdate */
+/*
+ * UpdateMovie()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+UpdateMovie(Movie theMovie);
+
+
+/*
+ * InvalidateMovieRegion()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+InvalidateMovieRegion(
+ Movie theMovie,
+ RgnHandle invalidRgn);
+
+
+/**** spatial movie routines ****/
+/*
+ * GetMovieBox()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+GetMovieBox(
+ Movie theMovie,
+ Rect * boxRect);
+
+
+/*
+ * SetMovieBox()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+SetMovieBox(
+ Movie theMovie,
+ const Rect * boxRect);
+
+
+/** movie display clip */
+/*
+ * GetMovieDisplayClipRgn()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( RgnHandle )
+GetMovieDisplayClipRgn(Movie theMovie);
+
+
+/*
+ * SetMovieDisplayClipRgn()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+SetMovieDisplayClipRgn(
+ Movie theMovie,
+ RgnHandle theClip);
+
+
+/** movie src clip */
+/*
+ * GetMovieClipRgn()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( RgnHandle )
+GetMovieClipRgn(Movie theMovie);
+
+
+/*
+ * SetMovieClipRgn()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+SetMovieClipRgn(
+ Movie theMovie,
+ RgnHandle theClip);
+
+
+/** track src clip */
+/*
+ * GetTrackClipRgn()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( RgnHandle )
+GetTrackClipRgn(Track theTrack);
+
+
+/*
+ * SetTrackClipRgn()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+SetTrackClipRgn(
+ Track theTrack,
+ RgnHandle theClip);
+
+
+/** bounds in display space (not clipped by display clip) */
+/*
+ * GetMovieDisplayBoundsRgn()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( RgnHandle )
+GetMovieDisplayBoundsRgn(Movie theMovie);
+
+
+/*
+ * GetTrackDisplayBoundsRgn()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( RgnHandle )
+GetTrackDisplayBoundsRgn(Track theTrack);
+
+
+/** bounds in movie space */
+/*
+ * GetMovieBoundsRgn()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( RgnHandle )
+GetMovieBoundsRgn(Movie theMovie);
+
+
+/*
+ * GetTrackMovieBoundsRgn()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( RgnHandle )
+GetTrackMovieBoundsRgn(Track theTrack);
+
+
+/** bounds in track space */
+/*
+ * GetTrackBoundsRgn()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( RgnHandle )
+GetTrackBoundsRgn(Track theTrack);
+
+
+/** mattes - always in track space */
+/*
+ * GetTrackMatte()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( PixMapHandle )
+GetTrackMatte(Track theTrack);
+
+
+/*
+ * SetTrackMatte()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+SetTrackMatte(
+ Track theTrack,
+ PixMapHandle theMatte);
+
+
+/*
+ * DisposeMatte()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+DisposeMatte(PixMapHandle theMatte);
+
+
+/** video out */
+/*
+ * SetMovieVideoOutput()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 5.0 and later
+ * CarbonLib: in CarbonLib 1.3 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 5.0 and later
+ */
+EXTERN_API( void )
+SetMovieVideoOutput(
+ Movie theMovie,
+ ComponentInstance vout);
+
+
+
+/*************************
+ * Audio Context
+ *************************/
+/*
+ The QTAudioContextRef type encapsulates a connection to an audio output device.
+ It represents a destination audio rendering environment that can be used for
+ playback of a movie.
+*/
+typedef struct QTAudioContextRefType* QTAudioContextRef;
+/*
+ * QTAudioContextRetain()
+ *
+ * Summary:
+ * Retains a QTAudioContext object by incrementing its reference
+ * count. You should retain the object when you receive it from
+ * elsewhere (that is, you did not create it) and you want it to
+ * persist. If you retain a QTAudioContext object you are
+ * responsible for releasing it. The same audio context is returned
+ * for convenience. If audioContext is NULL, nothing happens.
+ *
+ * Parameters:
+ *
+ * audioContext:
+ * [in] The audio context to retain.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API_C( QTAudioContextRef )
+QTAudioContextRetain(QTAudioContextRef audioContext);
+
+
+/*
+ * QTAudioContextRelease()
+ *
+ * Summary:
+ * Release a QTAudioContext object by decrementing its reference
+ * count. If that count consequently becomes zero the memory
+ * allocated to the object is deallocated and the object is
+ * destroyed. If you create or explicitly retain a QTAudioContext
+ * object, you are responsible for releasing it when you no longer
+ * need it. If audioContext is NULL, nothing happens.
+ *
+ * Parameters:
+ *
+ * audioContext:
+ * [in] The audio context to release.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API_C( void )
+QTAudioContextRelease(QTAudioContextRef audioContext);
+
+
+/*
+ * QTAudioContextCreateForAudioDevice()
+ *
+ * Summary:
+ * Creates a QTAudioContext object that encapsulates a connection to
+ * an audio output device. This object is suitable for passing to
+ * SetMovieAudioContext or NewMovieFromProperties, which targets the
+ * audio output of the movie to that device. A QTAudioContext object
+ * cannot be associated with more than one movie. Each movie needs
+ * its own connection to the device. In order to play more than one
+ * movie to a particular device, create a QTAudioContext object for
+ * each movie. You are responsible for releasing the QTAudioContext
+ * object created by this routine. After calling
+ * SetMovieAudioContext or NewMovieFromProperties, you can release
+ * the object since these APIs will retain it for their own use. On
+ * Windows, the audioDeviceUID is the GUID of a DirectSound device,
+ * stringified using such Win32 functions as StringFromCLSID() or
+ * StringFromGUID2(), then wrapped in a CFStringRef using
+ * CFStringCreateWithCharacters(). After passing the audioDeviceUID
+ * CFStringRef to QTAudioContextCreateForAudioDevice(), remember to
+ * CFRelease() the CFStringRef you created.
+ *
+ * Parameters:
+ *
+ * allocator:
+ * [in] Allocator used to create the audio context.
+ *
+ * audioDeviceUID:
+ * [in] Audio device UID. NULL means the default CoreAudio
+ * device.
+ *
+ * options:
+ * [in] Reserved. Pass NULL.
+ *
+ * newAudioContextOut:
+ * [out] Points to a variable to receive the new audio context.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API_C( OSStatus )
+QTAudioContextCreateForAudioDevice(
+ CFAllocatorRef allocator,
+ CFStringRef audioDeviceUID,
+ CFDictionaryRef options,
+ QTAudioContextRef * newAudioContextOut);
+
+
+
+/*************************
+ * Audio Context Inserts
+ *************************/
+/*
+ Theory of operations:
+ To register for a Movie Audio Context Insert during playback:
+ 1) Get the movie's current audio context: GetMovieAudioContext()
+ 2) Register the application insert: QTAudioContextRegisterInsert()
+ To unregister a Movie Audio Context Insert:
+ Call QTAudioContextRegisterInsert() with a NULL QTAudioContextInsertRegistryInfoRef
+ If the registry ptr is non-NULL but the processDataCallback is NULL, this has the same effect.
+ To register for a Track Audio Context Insert during playback:
+ Set the kQTAudioPropertyID_RegisterAudioContextInsert property on the track,
+ providing the same registry info structure that is used for the QTAudioContextRegisterInsert() call.
+ To unregister a Track Audio Context Insert:
+ Set the kQTAudioPropertyID_RegisterAudioContextInsert property on the track,
+ with a NULL processDataCallback
+*/
+
+
+/*
+ * AudioContextInsertProcessDataCallback
+ *
+ * Summary:
+ * A client-supplied function to be called during playback to get
+ * data from the audio insert.
+ *
+ * Discussion:
+ * This routine is called by the Audio Context for each buffer of
+ * audio data it renders. The client receives a source buffer list
+ * and a destination buffer list, and it is responsible for
+ * supplying output buffers to the destination buffer list. This
+ * routine is generally called on the IOProc at high thread
+ * priority, and so should not do memory allocation or release,
+ * acquire mutex resources, nor take very long to process.
+ *
+ * Parameters:
+ *
+ * inUserData:
+ * An opaque pointer to the client's data.
+ *
+ * ioRenderFlags:
+ * A field that contains render action flags (see AUComponent.h).
+ *
+ * inTimeStamp:
+ * An AudioTimeStamp that indicates the start time of the buffer
+ * to be processed. During normal playback or audio extraction,
+ * the timestamp mSampleTime is normalized to the movie time that
+ * this particular input sample buffer represents, expressed in
+ * the sample rate being processed. During reverse playback, the
+ * first Process Data call after Reset will contain a timestamp
+ * designating the movie time, but subsequent timestamps will
+ * advance forward instead of in reverse.
+ *
+ * inNumberFrames:
+ * A UInt32 that specifies the number of frames to be rendered.
+ *
+ * inInputData:
+ * An AudioBufferList used to pass input data to the insert.
+ *
+ * outOutputData:
+ * An AudioBufferList to receive the processed data that is
+ * produced by the insert. QuickTime sets buffer pointers in the
+ * list to NULL. The client must set the buffer pointers to refer
+ * to either its own allocated buffers or to be copies of the
+ * buffer pointers received in inInputData.
+ */
+typedef CALLBACK_API( OSStatus , AudioContextInsertProcessDataCallback )(void *inUserData, AudioUnitRenderActionFlags *ioRenderFlags, const AudioTimeStamp *inTimeStamp, UInt32 inNumberFrames, AudioBufferList *inInputData, AudioBufferList *outOutputData);
+
+/*
+ * AudioContextInsertResetCallback
+ *
+ * Summary:
+ * A client-supplied function to be called to initialize and reset
+ * for processing data.
+ *
+ * Discussion:
+ * This routine is called by the Audio Context to initialize for
+ * rendering. The client is told the sample rate and the maximum
+ * number of frames it will be asked to process on any single
+ * ProcessData callback (ie, inNumberFrames will always be <=
+ * inMaxFrames). On return, the client reports its processing
+ * latency and tail times. This callback is invoked whenever the
+ * rendering chain is interrupted (eg, when playback jumps to a new
+ * point or changes direction). The client should call
+ * AudioUnitReset on any audio units in use, and should be prepared
+ * to respond to changes of sample rate or maxframes.
+ *
+ * Parameters:
+ *
+ * inUserData:
+ * An opaque pointer to the client's data.
+ *
+ * inSampleRate:
+ * A Float64 that will specifies the sample rate of the data to be
+ * processed.
+ *
+ * inMaxFrames:
+ * A UInt32 that specifies the maximum number of maximum frame
+ * count that will be processed in a single call.
+ *
+ * outLatency:
+ * A pointer to a Float64 that specifies the insert's render
+ * latency, in seconds. Latency data will be pulled and discarded
+ * by QuickTime after each reset.
+ *
+ * outTailTime:
+ * A pointer to a Float64 that specifies the insert's tail render
+ * time, in seconds.
+ */
+typedef CALLBACK_API( OSStatus , AudioContextInsertResetCallback )(void *inUserData, Float64 inSampleRate, UInt32 inMaxFrames, Float64 *outLatency, Float64 *outTailTime);
+
+/*
+ * AudioContextInsertFinalizeCallback
+ *
+ * Summary:
+ * A client-supplied function to be called to release any resources
+ * in use by the insert.
+ *
+ * Discussion:
+ * This routine is called when the Audio Context is being disposed
+ * (ie, the MovieAudioContext has been reset or the movie was
+ * disposed). Once this callback returns, no more calls for this
+ * registered insert will be made.
+ *
+ * Parameters:
+ *
+ * inUserData:
+ * An opaque pointer to the client's data.
+ */
+typedef CALLBACK_API( OSStatus , AudioContextInsertFinalizeCallback )(void * inUserData);
+
+/*
+ * QTAudioContextInsertRegistryInfo
+ *
+ * Summary:
+ * Parameters for registering an Audio Context insert
+ *
+ * Discussion:
+ * This is used with QTAudioContextRegisterInsert() and the Movie
+ * Audio Extraction
+ * kQTMovieAudioExtractionAudioPropertyID_RegisterMovieInsert
+ * property.
+ */
+struct QTAudioContextInsertRegistryInfo {
+
+ /*
+ * client user data to be passed to all client-specified callbacks.
+ */
+ void * userData;
+
+ /*
+ * The size of the input channel layout structure.
+ */
+ UInt32 inputChannelLayoutSize;
+
+ /*
+ * An AudioChannelLayout that describes the channel layout (and,
+ * implicitly, channel valence) of the data that the insert expects
+ * as input.
+ */
+ AudioChannelLayout * inputChannelLayout;
+
+ /*
+ * The size of the output channel layout structure.
+ */
+ UInt32 outputChannelLayoutSize;
+
+ /*
+ * An AudioChannelLayout that describes the channel layout (and,
+ * implicitly, channel valence) of the processed data that the insert
+ * will output.
+ */
+ AudioChannelLayout * outputChannelLayout;
+
+ /*
+ * Client-specified process data callback.
+ */
+ AudioContextInsertProcessDataCallback processDataCallback;
+
+ /*
+ * Client-specified reset callback.
+ */
+ AudioContextInsertResetCallback resetCallback;
+
+ /*
+ * Client-specified finalize callback (may be NULL). NOTE: Calls to
+ * the client callbacks are interlocked with respect to each other:
+ * there will never be simultaneous calls, with an identical
+ * inUserData, on different threads.
+ */
+ AudioContextInsertFinalizeCallback finalizeCallback;
+};
+typedef struct QTAudioContextInsertRegistryInfo QTAudioContextInsertRegistryInfo;
+typedef QTAudioContextInsertRegistryInfo * QTAudioContextInsertRegistryInfoRef;
+/*
+ * QTAudioContextRegisterInsert()
+ *
+ * Summary:
+ * Register an audio insert with QuickTime
+ *
+ * Discussion:
+ * This routine is called to register an application to tap into the
+ * audio playback stream, via callbacks during audio rendering. The
+ * inAudioContext parameter refers to a Movie Audio Context that has
+ * not yet been associated with a movie. Once the application has
+ * successfully registered its insert, it may associate a movie with
+ * this Audio Context by calling SetMovieAudioContext(). The
+ * application must then be prepared to handle callbacks, which may
+ * be executed on different threads, until the Finalize callback
+ * with a matching userData parameter, is received. The application
+ * may supply a NULL Finalize callback if it has its own logic for
+ * detecting when it may release its insert resources.
+ *
+ * Parameters:
+ *
+ * inAudioContext:
+ * A QTAudioContextRef that specifies the Audio Context to tap
+ * into.
+ *
+ * inRegistryInfoSize:
+ * Size, in bytes, of the supplied
+ * QTAudioContextInsertRegistryInfo structure.
+ *
+ * inRegistryInfo:
+ * Pointer to a QTAudioContextInsertRegistryInfo structure
+ * containing setup parameters for the Audio Context insert and
+ * callbacks.
+ *
+ * Result:
+ * readErr Cannot register an insert on a movie containing protected
+ * data.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.5 (or QuickTime 7.2) and later
+ */
+EXTERN_API_C( OSStatus )
+QTAudioContextRegisterInsert(
+ QTAudioContextRef inAudioContext,
+ UInt32 inRegistryInfoSize,
+ QTAudioContextInsertRegistryInfoRef inRegistryInfo);
+
+
+
+/* Track-level Audio Context Insert property (kQTPropertyClass_Audio)*/
+
+/*
+ */
+enum {
+
+ /*
+ * kQTAudioPropertyID_RegisterAudioContextInsert: Value is
+ * QTAudioContextInsertRegistryInfoRef (Get/Set) Set on a Track to
+ * register/unregister an Audio Context Insert for that specific
+ * track. When this property is read back (QTGetTrackProperty) the
+ * channel layout pointers will will be NULL. To unregister, supply
+ * a NULL processDataCallback (in which case the rest of the registry
+ * info will be ignored).
+ */
+ kQTAudioPropertyID_RegisterAudioContextInsert = FOUR_CHAR_CODE('regt') /* value is QTAudioContextInsertRegistryInfoRef. Get/Set.*/
+};
+
+
+/******************************************
+ * Using Audio/Visual contexts with movies
+ *****************************************/
+/*
+ * SetMovieVisualContext()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSStatus )
+SetMovieVisualContext(
+ Movie movie,
+ QTVisualContextRef visualContext);
+
+
+/*
+ * GetMovieVisualContext()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSStatus )
+GetMovieVisualContext(
+ Movie movie,
+ QTVisualContextRef * visualContext);
+
+
+/*
+ * SetMovieAudioContext()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSStatus )
+SetMovieAudioContext(
+ Movie movie,
+ QTAudioContextRef audioContext);
+
+
+/*
+ * GetMovieAudioContext()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSStatus )
+GetMovieAudioContext(
+ Movie movie,
+ QTAudioContextRef * audioContext);
+
+
+
+/*************************
+* calls for getting/saving movies
+**************************/
+/** Properties for NewMovieFromProperties */
+enum {
+ kQTPropertyClass_DataLocation = FOUR_CHAR_CODE('dloc'),
+ kQTDataLocationPropertyID_DataReference = FOUR_CHAR_CODE('dref'), /* DataReferenceRecord (for semantics of NewMovieFromDataRef)*/
+ kQTDataLocationPropertyID_CFStringNativePath = FOUR_CHAR_CODE('cfnp'),
+ kQTDataLocationPropertyID_CFStringPosixPath = FOUR_CHAR_CODE('cfpp'),
+ kQTDataLocationPropertyID_CFStringHFSPath = FOUR_CHAR_CODE('cfhp'),
+ kQTDataLocationPropertyID_CFStringWindowsPath = FOUR_CHAR_CODE('cfwp'),
+ kQTDataLocationPropertyID_CFURL = FOUR_CHAR_CODE('cfur'),
+ kQTDataLocationPropertyID_QTDataHandler = FOUR_CHAR_CODE('qtdh'), /* for semantics of NewMovieFromStorageOffset*/
+ kQTDataLocationPropertyID_Scrap = FOUR_CHAR_CODE('scrp'),
+ kQTDataLocationPropertyID_LegacyMovieResourceHandle = FOUR_CHAR_CODE('rezh'), /* QTNewMovieUserProcInfo * (for semantics of NewMovieFromHandle)*/
+ kQTDataLocationPropertyID_MovieUserProc = FOUR_CHAR_CODE('uspr'), /* for semantics of NewMovieFromUserProc*/
+ kQTDataLocationPropertyID_ResourceFork = FOUR_CHAR_CODE('rfrk'), /* for semantics of NewMovieFromFile*/
+ kQTDataLocationPropertyID_DataFork = FOUR_CHAR_CODE('dfrk'), /* for semantics of NewMovieFromDataFork64*/
+ kQTPropertyClass_Context = FOUR_CHAR_CODE('ctxt'), /* Media Contexts*/
+ kQTContextPropertyID_AudioContext = FOUR_CHAR_CODE('audi'),
+ kQTContextPropertyID_VisualContext = FOUR_CHAR_CODE('visu'),
+ kQTPropertyClass_MovieResourceLocator = FOUR_CHAR_CODE('rloc'),
+ kQTMovieResourceLocatorPropertyID_LegacyResID = FOUR_CHAR_CODE('rezi'), /* (input/result property)*/
+ kQTMovieResourceLocatorPropertyID_LegacyResName = FOUR_CHAR_CODE('rezn'), /* (result property)*/
+ kQTMovieResourceLocatorPropertyID_FileOffset = FOUR_CHAR_CODE('foff'), /* NewMovieFromDataFork[64]*/
+ kQTMovieResourceLocatorPropertyID_Callback = FOUR_CHAR_CODE('calb'), /* NewMovieFromUserProc(getProc,refcon)*/
+ /* Uses kQTMovieDefaultDataRefPropertyID for default dataref*/
+ kQTPropertyClass_MovieInstantiation = FOUR_CHAR_CODE('mins'),
+ kQTMovieInstantiationPropertyID_DontResolveDataRefs = FOUR_CHAR_CODE('rdrn'),
+ kQTMovieInstantiationPropertyID_DontAskUnresolvedDataRefs = FOUR_CHAR_CODE('aurn'),
+ kQTMovieInstantiationPropertyID_DontAutoAlternates = FOUR_CHAR_CODE('aaln'),
+ kQTMovieInstantiationPropertyID_DontUpdateForeBackPointers = FOUR_CHAR_CODE('fbpn'),
+ kQTMovieInstantiationPropertyID_AsyncOK = FOUR_CHAR_CODE('asok'),
+ kQTMovieInstantiationPropertyID_IdleImportOK = FOUR_CHAR_CODE('imok'),
+ kQTMovieInstantiationPropertyID_DontAutoUpdateClock = FOUR_CHAR_CODE('aucl'),
+ kQTMovieInstantiationPropertyID_ResultDataLocationChanged = FOUR_CHAR_CODE('dlch'), /* (result property)*/
+ kQTMovieInstantiationPropertyID_AllowMediaOptimization = FOUR_CHAR_CODE('amop'),
+ kQTPropertyClass_NewMovieProperty = FOUR_CHAR_CODE('mprp'),
+ kQTNewMoviePropertyID_DefaultDataRef = FOUR_CHAR_CODE('ddrf'), /* DataReferenceRecord*/
+ kQTNewMoviePropertyID_Active = FOUR_CHAR_CODE('actv'),
+ kQTNewMoviePropertyID_DontInteractWithUser = FOUR_CHAR_CODE('intn')
+};
+
+
+/** Property value for kQTDataLocationPropertyID_MovieUserProc */
+struct QTNewMovieUserProcRecord {
+ GetMovieUPP getMovieUserProc;
+ void * getMovieUserProcRefcon;
+ DataReferenceRecord defaultDataRef;
+};
+typedef struct QTNewMovieUserProcRecord QTNewMovieUserProcRecord;
+/** Property structure for NewMovieFromProperties */
+struct QTNewMoviePropertyElement {
+ QTPropertyClass propClass;
+ QTPropertyID propID;
+ ByteCount propValueSize;
+ QTPropertyValuePtr propValueAddress;
+ OSStatus propStatus;
+};
+typedef struct QTNewMoviePropertyElement QTNewMoviePropertyElement;
+/*
+ * NewMovieFromProperties()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSStatus )
+NewMovieFromProperties(
+ ItemCount inputPropertyCount,
+ QTNewMoviePropertyElement * inputProperties,
+ ItemCount outputPropertyCount,
+ QTNewMoviePropertyElement * outputProperties,
+ Movie * theMovie);
+
+
+/*
+ * NewMovie()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( Movie )
+NewMovie(long flags);
+
+
+/*
+ * PutMovieIntoHandle()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+PutMovieIntoHandle(
+ Movie theMovie,
+ Handle publicMovie);
+
+
+/*
+ * PutMovieIntoDataFork()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+PutMovieIntoDataFork(
+ Movie theMovie,
+ short fRefNum,
+ long offset,
+ long maxSize);
+
+
+/*
+ * PutMovieIntoDataFork64()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 4.0 and later
+ * CarbonLib: in CarbonLib 1.0.2 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 4.0 and later
+ */
+EXTERN_API( OSErr )
+PutMovieIntoDataFork64(
+ Movie theMovie,
+ long fRefNum,
+ const wide * offset,
+ unsigned long maxSize);
+
+
+/*
+ * PutMovieIntoStorage()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 6.0 and later
+ * CarbonLib: in CarbonLib 1.6 and later
+ * Mac OS X: in version 10.2 and later
+ * Windows: in qtmlClient.lib 6.0 and later
+ */
+EXTERN_API( OSErr )
+PutMovieIntoStorage(
+ Movie theMovie,
+ DataHandler dh,
+ const wide * offset,
+ unsigned long maxSize);
+
+
+/*
+ * PutMovieForDataRefIntoHandle()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 6.0 and later
+ * CarbonLib: in CarbonLib 1.6 and later
+ * Mac OS X: in version 10.2 and later
+ * Windows: in qtmlClient.lib 6.0 and later
+ */
+EXTERN_API( OSErr )
+PutMovieForDataRefIntoHandle(
+ Movie theMovie,
+ Handle dataRef,
+ OSType dataRefType,
+ Handle publicMovie);
+
+
+/*
+ * DisposeMovie()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+DisposeMovie(Movie theMovie);
+
+
+/*************************
+* Movie State Routines
+**************************/
+/*
+ * GetMovieCreationTime()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( unsigned long )
+GetMovieCreationTime(Movie theMovie);
+
+
+/*
+ * GetMovieModificationTime()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( unsigned long )
+GetMovieModificationTime(Movie theMovie);
+
+
+/*
+ * GetMovieTimeScale()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( TimeScale )
+GetMovieTimeScale(Movie theMovie);
+
+
+/*
+ * SetMovieTimeScale()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+SetMovieTimeScale(
+ Movie theMovie,
+ TimeScale timeScale);
+
+
+/*
+ * GetMovieDuration()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( TimeValue )
+GetMovieDuration(Movie theMovie);
+
+
+/*
+ * GetMovieRate()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( Fixed )
+GetMovieRate(Movie theMovie);
+
+
+/*
+ * SetMovieRate()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+SetMovieRate(
+ Movie theMovie,
+ Fixed rate);
+
+
+/*
+ * GetMoviePreferredRate()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( Fixed )
+GetMoviePreferredRate(Movie theMovie);
+
+
+/*
+ * SetMoviePreferredRate()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+SetMoviePreferredRate(
+ Movie theMovie,
+ Fixed rate);
+
+
+/*
+ * GetMovieMatrix()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+GetMovieMatrix(
+ Movie theMovie,
+ MatrixRecord * matrix);
+
+
+/*
+ * SetMovieMatrix()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+SetMovieMatrix(
+ Movie theMovie,
+ const MatrixRecord * matrix);
+
+
+/*
+ * GetMoviePreviewTime()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+GetMoviePreviewTime(
+ Movie theMovie,
+ TimeValue * previewTime,
+ TimeValue * previewDuration);
+
+
+/*
+ * SetMoviePreviewTime()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+SetMoviePreviewTime(
+ Movie theMovie,
+ TimeValue previewTime,
+ TimeValue previewDuration);
+
+
+/*
+ * GetMoviePosterTime()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( TimeValue )
+GetMoviePosterTime(Movie theMovie);
+
+
+/*
+ * SetMoviePosterTime()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+SetMoviePosterTime(
+ Movie theMovie,
+ TimeValue posterTime);
+
+
+/*
+ * GetMovieSelection()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+GetMovieSelection(
+ Movie theMovie,
+ TimeValue * selectionTime,
+ TimeValue * selectionDuration);
+
+
+/*
+ * SetMovieSelection()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+SetMovieSelection(
+ Movie theMovie,
+ TimeValue selectionTime,
+ TimeValue selectionDuration);
+
+
+/*
+ * SetMovieActiveSegment()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+SetMovieActiveSegment(
+ Movie theMovie,
+ TimeValue startTime,
+ TimeValue duration);
+
+
+/*
+ * GetMovieActiveSegment()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+GetMovieActiveSegment(
+ Movie theMovie,
+ TimeValue * startTime,
+ TimeValue * duration);
+
+
+/*
+ * GetMovieTime()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( TimeValue )
+GetMovieTime(
+ Movie theMovie,
+ TimeRecord * currentTime);
+
+
+/*
+ * SetMovieTime()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+SetMovieTime(
+ Movie theMovie,
+ const TimeRecord * newtime);
+
+
+/*
+ * SetMovieTimeValue()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+SetMovieTimeValue(
+ Movie theMovie,
+ TimeValue newtime);
+
+
+
+/*
+ * GetMovieUserData()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( UserData )
+GetMovieUserData(Movie theMovie);
+
+
+/*
+ * QTGetTimeUntilNextTask()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 6.0 and later
+ * CarbonLib: in CarbonLib 1.6 and later
+ * Mac OS X: in version 10.2 and later
+ * Windows: in qtmlClient.lib 6.0 and later
+ */
+EXTERN_API( OSErr )
+QTGetTimeUntilNextTask(
+ long * duration,
+ long scale);
+
+
+/*
+ * QTInstallNextTaskNeededSoonerCallback()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 6.0 and later
+ * CarbonLib: in CarbonLib 1.6 and later
+ * Mac OS X: in version 10.2 and later
+ * Windows: in qtmlClient.lib 6.0 and later
+ */
+EXTERN_API( OSErr )
+QTInstallNextTaskNeededSoonerCallback(
+ QTNextTaskNeededSoonerCallbackUPP callbackProc,
+ TimeScale scale,
+ unsigned long flags,
+ void * refcon);
+
+
+/*
+ * QTUninstallNextTaskNeededSoonerCallback()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 6.0 and later
+ * CarbonLib: in CarbonLib 1.6 and later
+ * Mac OS X: in version 10.2 and later
+ * Windows: in qtmlClient.lib 6.0 and later
+ */
+EXTERN_API( OSErr )
+QTUninstallNextTaskNeededSoonerCallback(
+ QTNextTaskNeededSoonerCallbackUPP callbackProc,
+ void * refcon);
+
+
+/*
+ * GetMovieRateChangeConstraints()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.3 (or QuickTime 6.4) and later
+ * Windows: in qtmlClient.lib 6.5 and later
+ */
+EXTERN_API( OSErr )
+GetMovieRateChangeConstraints(
+ Movie theMovie,
+ TimeRecord * minimumDelay,
+ TimeRecord * maximumDelay);
+
+
+/*************************
+* Track/Media finding routines
+**************************/
+/*
+ * GetMovieTrackCount()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( long )
+GetMovieTrackCount(Movie theMovie);
+
+
+/*
+ * GetMovieTrack()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( Track )
+GetMovieTrack(
+ Movie theMovie,
+ long trackID);
+
+
+/*
+ * GetMovieIndTrack()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( Track )
+GetMovieIndTrack(
+ Movie theMovie,
+ long index);
+
+
+/*
+ * GetMovieIndTrackType()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( Track )
+GetMovieIndTrackType(
+ Movie theMovie,
+ long index,
+ OSType trackType,
+ long flags);
+
+
+/*
+ * GetTrackID()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( long )
+GetTrackID(Track theTrack);
+
+
+/*
+ * GetTrackMovie()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( Movie )
+GetTrackMovie(Track theTrack);
+
+
+/*************************
+* Track creation routines
+**************************/
+/*
+ * NewMovieTrack()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( Track )
+NewMovieTrack(
+ Movie theMovie,
+ Fixed width,
+ Fixed height,
+ short trackVolume);
+
+
+/*
+ * DisposeMovieTrack()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+DisposeMovieTrack(Track theTrack);
+
+
+/*************************
+* Track State routines
+**************************/
+/*
+ * GetTrackCreationTime()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( unsigned long )
+GetTrackCreationTime(Track theTrack);
+
+
+/*
+ * GetTrackModificationTime()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( unsigned long )
+GetTrackModificationTime(Track theTrack);
+
+
+
+/*
+ * GetTrackEnabled()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( Boolean )
+GetTrackEnabled(Track theTrack);
+
+
+/*
+ * SetTrackEnabled()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+SetTrackEnabled(
+ Track theTrack,
+ Boolean isEnabled);
+
+
+/*
+ * GetTrackUsage()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( long )
+GetTrackUsage(Track theTrack);
+
+
+/*
+ * SetTrackUsage()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+SetTrackUsage(
+ Track theTrack,
+ long usage);
+
+
+/*
+ * GetTrackDuration()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( TimeValue )
+GetTrackDuration(Track theTrack);
+
+
+/*
+ * GetTrackOffset()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( TimeValue )
+GetTrackOffset(Track theTrack);
+
+
+/*
+ * SetTrackOffset()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+SetTrackOffset(
+ Track theTrack,
+ TimeValue movieOffsetTime);
+
+
+/*
+ * GetTrackLayer()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( short )
+GetTrackLayer(Track theTrack);
+
+
+/*
+ * SetTrackLayer()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+SetTrackLayer(
+ Track theTrack,
+ short layer);
+
+
+/*
+ * GetTrackAlternate()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( Track )
+GetTrackAlternate(Track theTrack);
+
+
+/*
+ * SetTrackAlternate()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+SetTrackAlternate(
+ Track theTrack,
+ Track alternateT);
+
+
+/*
+ * SetAutoTrackAlternatesEnabled()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+SetAutoTrackAlternatesEnabled(
+ Movie theMovie,
+ Boolean enable);
+
+
+/*
+ * SelectMovieAlternates()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+SelectMovieAlternates(Movie theMovie);
+
+
+/*
+ * GetTrackMatrix()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+GetTrackMatrix(
+ Track theTrack,
+ MatrixRecord * matrix);
+
+
+/*
+ * SetTrackMatrix()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+SetTrackMatrix(
+ Track theTrack,
+ const MatrixRecord * matrix);
+
+
+/*
+ * GetTrackDimensions()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+GetTrackDimensions(
+ Track theTrack,
+ Fixed * width,
+ Fixed * height);
+
+
+/*
+ * SetTrackDimensions()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+SetTrackDimensions(
+ Track theTrack,
+ Fixed width,
+ Fixed height);
+
+
+/*
+ * GetTrackUserData()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( UserData )
+GetTrackUserData(Track theTrack);
+
+
+/*
+ * GetTrackDisplayMatrix()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+GetTrackDisplayMatrix(
+ Track theTrack,
+ MatrixRecord * matrix);
+
+
+
+/*************************
+* get Media routines
+**************************/
+/*
+ * NewTrackMedia()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( Media )
+NewTrackMedia(
+ Track theTrack,
+ OSType mediaType,
+ TimeScale timeScale,
+ Handle dataRef,
+ OSType dataRefType);
+
+
+/*
+ * DisposeTrackMedia()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+DisposeTrackMedia(Media theMedia);
+
+
+/*
+ * GetTrackMedia()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( Media )
+GetTrackMedia(Track theTrack);
+
+
+/*
+ * GetMediaTrack()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( Track )
+GetMediaTrack(Media theMedia);
+
+
+
+
+/*************************
+* Media State routines
+**************************/
+/*
+ * GetMediaCreationTime()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( unsigned long )
+GetMediaCreationTime(Media theMedia);
+
+
+/*
+ * GetMediaModificationTime()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( unsigned long )
+GetMediaModificationTime(Media theMedia);
+
+
+/*
+ * GetMediaTimeScale()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( TimeScale )
+GetMediaTimeScale(Media theMedia);
+
+
+/*
+ * SetMediaTimeScale()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+SetMediaTimeScale(
+ Media theMedia,
+ TimeScale timeScale);
+
+
+/*
+ * GetMediaDecodeDuration()
+ *
+ * Summary:
+ * Returns the decode duration of a media.
+ *
+ * Discussion:
+ * A media's decode duration is the sum of the decode durations of
+ * its samples.
+ *
+ * Parameters:
+ *
+ * theMedia:
+ * The media for this operation. Your application obtains this
+ * media identifier from such functions as NewTrackMedia and
+ * GetTrackMedia.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ * Windows: in qtmlClient.lib version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( TimeValue64 )
+GetMediaDecodeDuration(Media theMedia);
+
+
+/*
+ * GetMediaAdvanceDecodeTime()
+ *
+ * Summary:
+ * Returns the advance decode time of a media.
+ *
+ * Discussion:
+ * A media's advance decode time is the absolute value of the
+ * greatest-magnitude negative display offset of its samples, or
+ * zero if there are no samples with negative display offsets.
+ * This is the amount that the decode time axis must be adjusted
+ * ahead of the display time axis to ensure that no sample's
+ * adjusted decode time is later than its display time.
+ * For media without nonzero display offsets, the advance decode
+ * time is zero.
+ *
+ * Parameters:
+ *
+ * theMedia:
+ * The media for this operation. Your application obtains this
+ * media identifier from such functions as NewTrackMedia and
+ * GetTrackMedia.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ * Windows: in qtmlClient.lib version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( TimeValue64 )
+GetMediaAdvanceDecodeTime(Media theMedia);
+
+
+/*
+ * GetMediaDisplayDuration()
+ *
+ * Summary:
+ * Returns the display duration of a media.
+ *
+ * Discussion:
+ * A media's display duration is its display end time minus its
+ * display start time. For media without nonzero display offsets,
+ * the decode duration and display duration are the same, so
+ * GetMediaDisplayDuration and GetMediaDisplayDuration are
+ * equivalent to GetMediaDuration.
+ *
+ * Parameters:
+ *
+ * theMedia:
+ * The media for this operation. Your application obtains this
+ * media identifier from such functions as NewTrackMedia and
+ * GetTrackMedia.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ * Windows: in qtmlClient.lib version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( TimeValue64 )
+GetMediaDisplayDuration(Media theMedia);
+
+
+/*
+ * GetMediaDisplayStartTime()
+ *
+ * Summary:
+ * Returns the display start time of a media.
+ *
+ * Discussion:
+ * A media's display start time is the earliest display time of any
+ * of its samples. For media without nonzero display offsets, the
+ * display start time is always zero.
+ *
+ * Parameters:
+ *
+ * theMedia:
+ * The media for this operation. Your application obtains this
+ * media identifier from such functions as NewTrackMedia and
+ * GetTrackMedia.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ * Windows: in qtmlClient.lib version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( TimeValue64 )
+GetMediaDisplayStartTime(Media theMedia);
+
+
+/*
+ * GetMediaDisplayEndTime()
+ *
+ * Summary:
+ * Returns the display end time of a media.
+ *
+ * Discussion:
+ * A media's display end time is the sum of the display time and
+ * decode duration of the sample with the greatest display time. For
+ * media without nonzero display offsets, the display end time is
+ * the same as the media decode duration, which is the same as the
+ * media duration.
+ *
+ * Parameters:
+ *
+ * theMedia:
+ * The media for this operation. Your application obtains this
+ * media identifier from such functions as NewTrackMedia and
+ * GetTrackMedia.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ * Windows: in qtmlClient.lib version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( TimeValue64 )
+GetMediaDisplayEndTime(Media theMedia);
+
+
+/*
+ * GetMediaDuration()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( TimeValue )
+GetMediaDuration(Media theMedia);
+
+
+/*
+ * GetMediaLanguage()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( short )
+GetMediaLanguage(Media theMedia);
+
+
+/*
+ * SetMediaLanguage()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+SetMediaLanguage(
+ Media theMedia,
+ short language);
+
+
+/*
+ * GetMediaQuality()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( short )
+GetMediaQuality(Media theMedia);
+
+
+/*
+ * SetMediaQuality()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+SetMediaQuality(
+ Media theMedia,
+ short quality);
+
+
+/*
+ * GetMediaHandlerDescription()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+GetMediaHandlerDescription(
+ Media theMedia,
+ OSType * mediaType,
+ Str255 creatorName,
+ OSType * creatorManufacturer);
+
+
+/*
+ * GetMediaUserData()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( UserData )
+GetMediaUserData(Media theMedia);
+
+
+/*
+ * GetMediaInputMap()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+GetMediaInputMap(
+ Media theMedia,
+ QTAtomContainer * inputMap);
+
+
+/*
+ * SetMediaInputMap()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+SetMediaInputMap(
+ Media theMedia,
+ QTAtomContainer inputMap);
+
+
+/*************************
+* Media Handler routines
+**************************/
+/*
+ * GetMediaHandler()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( MediaHandler )
+GetMediaHandler(Media theMedia);
+
+
+/*
+ * SetMediaHandler()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+SetMediaHandler(
+ Media theMedia,
+ MediaHandlerComponent mH);
+
+
+
+/*************************
+* Media's Data routines
+**************************/
+/*
+ * BeginMediaEdits()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+BeginMediaEdits(Media theMedia);
+
+
+/*
+ * EndMediaEdits()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+EndMediaEdits(Media theMedia);
+
+
+/*
+ * SetMediaDefaultDataRefIndex()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+SetMediaDefaultDataRefIndex(
+ Media theMedia,
+ short index);
+
+
+/*
+ * GetMediaDataHandlerDescription()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+GetMediaDataHandlerDescription(
+ Media theMedia,
+ short index,
+ OSType * dhType,
+ Str255 creatorName,
+ OSType * creatorManufacturer);
+
+
+/*
+ * GetMediaDataHandler()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( DataHandler )
+GetMediaDataHandler(
+ Media theMedia,
+ short index);
+
+
+/*
+ * SetMediaDataHandler()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+SetMediaDataHandler(
+ Media theMedia,
+ short index,
+ DataHandlerComponent dataHandler);
+
+
+/*
+ * GetDataHandler()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( Component )
+GetDataHandler(
+ Handle dataRef,
+ OSType dataHandlerSubType,
+ long flags);
+
+
+/*
+ * OpenADataHandler()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 4.1 and later
+ * CarbonLib: in CarbonLib 1.1 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 4.1 and later
+ */
+EXTERN_API( OSErr )
+OpenADataHandler(
+ Handle dataRef,
+ OSType dataHandlerSubType,
+ Handle anchorDataRef,
+ OSType anchorDataRefType,
+ TimeBase tb,
+ long flags,
+ ComponentInstance * dh);
+
+
+/*************************
+* Media Sample Table Routines
+**************************/
+/*
+ * GetMediaSampleDescriptionCount()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( long )
+GetMediaSampleDescriptionCount(Media theMedia);
+
+
+/*
+ * GetMediaSampleDescription()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+GetMediaSampleDescription(
+ Media theMedia,
+ long index,
+ SampleDescriptionHandle descH);
+
+
+/*
+ * SetMediaSampleDescription()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+SetMediaSampleDescription(
+ Media theMedia,
+ long index,
+ SampleDescriptionHandle descH);
+
+
+/*
+ * GetMediaSampleCount()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( long )
+GetMediaSampleCount(Media theMedia);
+
+
+/*
+ * GetMediaSyncSampleCount()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 3.0 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( long )
+GetMediaSyncSampleCount(Media theMedia);
+
+
+/*
+ * MediaContainsDisplayOffsets()
+ *
+ * Summary:
+ * Tests whether a media contains display offsets.
+ *
+ * Parameters:
+ *
+ * theMedia:
+ * The media for this operation. Your application obtains this
+ * media identifier from such functions as NewTrackMedia and
+ * GetTrackMedia.
+ *
+ * Result:
+ * True, if the media is valid and contains at least one sample with
+ * a nonzero display offset. False otherwise.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ * Windows: in qtmlClient.lib version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( Boolean )
+MediaContainsDisplayOffsets(Media theMedia);
+
+
+/*
+ * SampleNumToMediaDecodeTime()
+ *
+ * Summary:
+ * Finds the decode time for a specified sample.
+ *
+ * Parameters:
+ *
+ * theMedia:
+ * The media for this operation. Your application obtains this
+ * media identifier from such functions as NewTrackMedia and
+ * GetTrackMedia.
+ *
+ * logicalSampleNum:
+ * The sample number.
+ *
+ * sampleDecodeTime:
+ * A pointer to a time value. The function updates this time value
+ * to indicate the decode time of the sample specified by the
+ * logicalSampleNum parameter. This time value is expressed in the
+ * media's time scale. Set this parameter to NULL if you do not
+ * want this information.
+ *
+ * sampleDecodeDuration:
+ * A pointer to a time value. The function updates this time value
+ * to indicate the decode duration of the sample specified by the
+ * logicalSampleNum parameter. This time value is expressed in the
+ * media's time scale. Set this parameter to NULL if you do not
+ * want this information.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ * Windows: in qtmlClient.lib version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( void )
+SampleNumToMediaDecodeTime(
+ Media theMedia,
+ SInt64 logicalSampleNum,
+ TimeValue64 * sampleDecodeTime,
+ TimeValue64 * sampleDecodeDuration);
+
+
+/*
+ * MediaDecodeTimeToSampleNum()
+ *
+ * Summary:
+ * Finds the sample for a specified decode time.
+ *
+ * Parameters:
+ *
+ * theMedia:
+ * The media for this operation. Your application obtains this
+ * media identifier from such functions as NewTrackMedia and
+ * GetTrackMedia.
+ *
+ * decodeTime:
+ * The decode time for which you are retrieving sample
+ * information. You must specify this value in the media's time
+ * scale.
+ *
+ * sampleNum:
+ * Points to a variable that is to receive the sample number. The
+ * function returns the sample number that identifies the sample
+ * that contains data for the specified decode time, or zero if it
+ * is not found.
+ *
+ * sampleDecodeTime:
+ * A pointer to a time value. The function updates this time value
+ * to indicate the decode time of the sample specified by the
+ * logicalSampleNum parameter. This time value is expressed in the
+ * media's time scale. Set this parameter to NULL if you do not
+ * want this information.
+ *
+ * sampleDecodeDuration:
+ * A pointer to a time value. The function updates this time value
+ * to indicate the decode duration of the sample specified by the
+ * logicalSampleNum parameter. This time value is expressed in the
+ * media's time scale. Set this parameter to NULL if you do not
+ * want this information.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ * Windows: in qtmlClient.lib version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( void )
+MediaDecodeTimeToSampleNum(
+ Media theMedia,
+ TimeValue64 decodeTime,
+ SInt64 * sampleNum,
+ TimeValue64 * sampleDecodeTime,
+ TimeValue64 * sampleDecodeDuration);
+
+
+/*
+ * SampleNumToMediaDisplayTime()
+ *
+ * Summary:
+ * Finds the display time for a specified sample.
+ *
+ * Parameters:
+ *
+ * theMedia:
+ * The media for this operation. Your application obtains this
+ * media identifier from such functions as NewTrackMedia and
+ * GetTrackMedia.
+ *
+ * logicalSampleNum:
+ * The sample number.
+ *
+ * sampleDisplayTime:
+ * A pointer to a time value. The function updates this time value
+ * to indicate the display time of the sample specified by the
+ * logicalSampleNum parameter. This time value is expressed in the
+ * media's time scale. Set this parameter to NULL if you do not
+ * want this information.
+ *
+ * sampleDisplayDuration:
+ * A pointer to a time value. The function updates this time value
+ * to indicate the display duration of the sample specified by the
+ * logicalSampleNum parameter. This time value is expressed in the
+ * media's time scale. Set this parameter to NULL if you do not
+ * want this information.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ * Windows: in qtmlClient.lib version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( void )
+SampleNumToMediaDisplayTime(
+ Media theMedia,
+ SInt64 logicalSampleNum,
+ TimeValue64 * sampleDisplayTime,
+ TimeValue64 * sampleDisplayDuration);
+
+
+/*
+ * MediaDisplayTimeToSampleNum()
+ *
+ * Summary:
+ * Finds the sample number for a specified display time.
+ *
+ * Parameters:
+ *
+ * theMedia:
+ * The media for this operation. Your application obtains this
+ * media identifier from such functions as NewTrackMedia and
+ * GetTrackMedia.
+ *
+ * displayTime:
+ * The display time for which you are retrieving sample
+ * information. You must specify this value in the media's time
+ * scale.
+ *
+ * sampleNum:
+ * Points to a long integer that is to receive the sample number.
+ * The function returns the sample number that identifies the
+ * sample for the specified display time, or zero if it is not
+ * found.
+ *
+ * sampleDisplayTime:
+ * A pointer to a time value. The function updates this time value
+ * to indicate the display time of the sample specified by the
+ * logicalSampleNum parameter. This time value is expressed in the
+ * media's time scale. Set this parameter to NULL if you do not
+ * want this information.
+ *
+ * sampleDisplayDuration:
+ * A pointer to a time value. The function updates this time value
+ * to indicate the display duration of the sample specified by the
+ * logicalSampleNum parameter. This time value is expressed in the
+ * media's time scale. Set this parameter to NULL if you do not
+ * want this information.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ * Windows: in qtmlClient.lib version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( void )
+MediaDisplayTimeToSampleNum(
+ Media theMedia,
+ TimeValue64 displayTime,
+ SInt64 * sampleNum,
+ TimeValue64 * sampleDisplayTime,
+ TimeValue64 * sampleDisplayDuration);
+
+
+/*
+ * SampleNumToMediaTime()
+ *
+ * Summary:
+ * Finds the media time for a specified sample.
+ *
+ * Discussion:
+ * For media with display offsets, SampleNumToMediaTime is ambiguous
+ * and will return kQTMediaHasDisplayOffsetsErr. Call
+ * SampleNumToMediaDecodeTime or SampleNumToMediaDisplayTime instead.
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+SampleNumToMediaTime(
+ Media theMedia,
+ long logicalSampleNum,
+ TimeValue * sampleTime,
+ TimeValue * sampleDuration);
+
+
+/*
+ * MediaTimeToSampleNum()
+ *
+ * Summary:
+ * Finds the sample number for a specified media time.
+ *
+ * Discussion:
+ * For media with display offsets, MediaTimeToSampleNum is ambiguous
+ * and will return kQTMediaHasDisplayOffsetsErr. Call
+ * MediaDecodeTimeToSampleNum or MediaDisplayTimeToSampleNum instead.
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+MediaTimeToSampleNum(
+ Media theMedia,
+ TimeValue time,
+ long * sampleNum,
+ TimeValue * sampleTime,
+ TimeValue * sampleDuration);
+
+
+/*
+ * AddMediaSample2()
+ *
+ * Summary:
+ * Adds sample data and a description to a media. AddMediaSample2
+ * extends and supercedes AddMediaSample.
+ *
+ * Parameters:
+ *
+ * theMedia:
+ * The media for this operation. Your application obtains this
+ * media identifier from such functions as NewTrackMedia and
+ * GetTrackMedia.
+ *
+ * dataIn:
+ * Points to sample data.
+ *
+ * size:
+ * The number of bytes of sample data to be added to the media.
+ * This parameter indicates the total number of bytes in the
+ * sample data to be added to the media, not the number of bytes
+ * per sample. Use the numberOfSamples parameter to indicate the
+ * number of samples that are contained in the sample data.
+ *
+ * decodeDurationPerSample:
+ * The duration of each sample to be added. You must specify this
+ * parameter in the media time scale. For example, if you are
+ * adding sound that was sampled at 22 kHz to a media that
+ * contains a sound track with the same time scale, you would set
+ * durationPerSample to 1. Similarly, if you are adding video that
+ * was recorded at 10 frames per second to a video media that has
+ * a time scale of 600, you would set this parameter to 60 to add
+ * a single sample.
+ *
+ * displayOffset:
+ * The offset from decode time to display time of each sample to
+ * be added. You must specify this parameter in the media time
+ * scale. If the decode times and display times for the samples
+ * are identical, pass zero.
+ *
+ * sampleDescriptionH:
+ * A handle to a SampleDescription structure. Some media
+ * structures may require sample descriptions. There are different
+ * descriptions for different types of samples. For example, a
+ * media that contains compressed video requires that you supply
+ * an ImageDescription structure. A media that contains sound
+ * requires that you supply a SoundDescription structure.
+ *
+ * numberOfSamples:
+ * The number of samples contained in the sample data to be added
+ * to the media.
+ *
+ * sampleFlags:
+ * Specifies the media sample flags for the samples to be added.
+ *
+ * sampleDecodeTimeOut:
+ * A pointer to a time value. After adding the sample data to the
+ * media, the AddMediaSample function returns the decode time
+ * where the first sample was inserted in the time value referred
+ * to by this parameter. If you don't want to receive this
+ * information, set this parameter to NULL.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ * Windows: in qtmlClient.lib version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSErr )
+AddMediaSample2(
+ Media theMedia,
+ const UInt8 * dataIn,
+ ByteCount size,
+ TimeValue64 decodeDurationPerSample,
+ TimeValue64 displayOffset,
+ SampleDescriptionHandle sampleDescriptionH,
+ ItemCount numberOfSamples,
+ MediaSampleFlags sampleFlags,
+ TimeValue64 * sampleDecodeTimeOut); /* can be NULL */
+
+
+/*
+ * AddMediaSampleFromEncodedFrame()
+ *
+ * Summary:
+ * Adds sample data and description from an encoded frame to a media.
+ *
+ * Discussion:
+ * This is a convenience API to make it easy to add frames emitted
+ * by ICM compression session APIs to media.
+ *
+ * Parameters:
+ *
+ * theMedia:
+ * The media for this operation. Your application obtains this
+ * media identifier from such functions as NewTrackMedia and
+ * GetTrackMedia.
+ *
+ * encodedFrame:
+ * An encoded frame token returned by an ICMCompressionSequence.
+ *
+ * sampleDecodeTimeOut:
+ * A pointer to a time value. After adding the sample data to the
+ * media, the function returns the decode time where the first
+ * sample was inserted in the time value referred to by this
+ * parameter. If you don't want to receive this information, set
+ * this parameter to NULL.
+ *
+ * Result:
+ * An operating system result code.
+ * kQTMediaDoesNotSupportDisplayOffsetsErr if the media does not
+ * support nonzero display offsets. kQTDisplayTimeAlreadyInUseErr if
+ * there is already a sample with this display time.
+ * kQTDisplayTimeTooEarlyErr if a sample's display time would be
+ * earlier than the display time of an existing sample that does not
+ * have the mediaSampleEarlierDisplayTimesAllowed flag set.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ * Windows: in qtmlClient.lib version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSErr )
+AddMediaSampleFromEncodedFrame(
+ Media theMedia,
+ ICMEncodedFrameRef encodedFrame,
+ TimeValue64 * sampleDecodeTimeOut); /* can be NULL */
+
+
+/*
+ * AddSampleTableToMedia()
+ *
+ * Summary:
+ * Adds sample references from a sample table to a media.
+ * AddSampleTableToMedia supercedes AddMediaSampleReferences and
+ * AddMediaSampleReferences64.
+ *
+ * Parameters:
+ *
+ * theMedia:
+ * The media for this operation. Your application obtains this
+ * media identifier from such functions as NewTrackMedia and
+ * GetTrackMedia.
+ *
+ * sampleTable:
+ * The sample table containing sample references to be added to
+ * the media.
+ *
+ * startSampleNum:
+ * The sample number of the first sample reference in the sample
+ * table to be added to the media. The first sample's number is 1.
+ *
+ * numberOfSamples:
+ * The number of sample references from the sample table to be
+ * added to the media.
+ *
+ * sampleDecodeTimeOut:
+ * A pointer to a time value. After adding the sample references
+ * to the media, the function returns the decode time where the
+ * first sample was inserted in the time value referred to by this
+ * parameter. If you don't want to receive this information, set
+ * this parameter to NULL.
+ *
+ * Result:
+ * An operating system result code.
+ * kQTMediaDoesNotSupportDisplayOffsetsErr if the media does not
+ * support nonzero display offsets. kQTDisplayTimeAlreadyInUseErr if
+ * there is already a sample with this display time.
+ * kQTDisplayTimeTooEarlyErr if a sample's display time would be
+ * earlier than the display time of an existing sample that does not
+ * have the mediaSampleEarlierDisplayTimesAllowed flag set.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ * Windows: in qtmlClient.lib version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSErr )
+AddSampleTableToMedia(
+ Media theMedia,
+ QTSampleTableRef sampleTable,
+ SInt64 startSampleNum,
+ SInt64 numberOfSamples,
+ TimeValue64 * sampleDecodeTimeOut); /* can be NULL */
+
+
+/*
+ * AddMediaSample()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+AddMediaSample(
+ Media theMedia,
+ Handle dataIn,
+ long inOffset,
+ unsigned long size,
+ TimeValue durationPerSample,
+ SampleDescriptionHandle sampleDescriptionH,
+ long numberOfSamples,
+ short sampleFlags,
+ TimeValue * sampleTime);
+
+
+/*
+ * AddMediaSampleReference()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+AddMediaSampleReference(
+ Media theMedia,
+ long dataOffset,
+ unsigned long size,
+ TimeValue durationPerSample,
+ SampleDescriptionHandle sampleDescriptionH,
+ long numberOfSamples,
+ short sampleFlags,
+ TimeValue * sampleTime);
+
+
+/*
+ * AddMediaSampleReferences()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+AddMediaSampleReferences(
+ Media theMedia,
+ SampleDescriptionHandle sampleDescriptionH,
+ long numberOfSamples,
+ SampleReferencePtr sampleRefs,
+ TimeValue * sampleTime);
+
+
+/*
+ * AddMediaSampleReferences64()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 4.0 and later
+ * CarbonLib: in CarbonLib 1.0.2 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 4.0 and later
+ */
+EXTERN_API( OSErr )
+AddMediaSampleReferences64(
+ Media theMedia,
+ SampleDescriptionHandle sampleDescriptionH,
+ long numberOfSamples,
+ SampleReference64Ptr sampleRefs,
+ TimeValue * sampleTime);
+
+
+/*
+ * ExtendMediaDecodeDurationToDisplayEndTime()
+ *
+ * Summary:
+ * Prepares a media for the addition of a completely new sequence of
+ * samples by ensuring that the media display end time is not later
+ * than the media decode end time.
+ *
+ * Discussion:
+ * After adding a complete, well-formed set of samples to a media,
+ * the media's display end time should be the same as the media's
+ * decode end time (also called the media decode duration).
+ * However, this is not necessarily the case after individual
+ * sample-adding operations, and hence it is possible for a media to
+ * be left with a display end time later than its decode end time --
+ * if adding a sequence of frames is aborted halfway, for example.
+ *
+ * This may make it difficult to add a new group of samples, because
+ * a well-formed group of samples' earliest display time should be
+ * the same as the first frame's decode time. If such a well-formed
+ * group is added to an incompletely finished media, frames from the
+ * old and new groups frames might collide in display time.
+ * ExtendMediaDecodeDurationToDisplayEndTime prevents any such
+ * collision or overlap by extending the last sample's decode
+ * duration as necessary. It ensures that the next added sample
+ * will have a decode time no earlier than the media's display end
+ * time. If this was already the case, it makes no change to the
+ * media.
+ * You can call ExtendMediaDecodeDurationToDisplayEndTime before you
+ * begin adding samples to a media if you're not certain that the
+ * media was left in a well-finished state. You do not need to call
+ * it before adding samples to a newly created media, nor should you
+ * call it in between samples from the same compression session.
+ *
+ * Parameters:
+ *
+ * theMedia:
+ * The media for this operation. Your application obtains this
+ * media identifier from such functions as NewTrackMedia and
+ * GetTrackMedia.
+ *
+ * mediaChanged:
+ * Points to a variable which will be set to true if any samples
+ * in the media were adjusted, false otherwise. If you don't want
+ * to receive this information, set this parameter to NULL.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ * Windows: in qtmlClient.lib version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSErr )
+ExtendMediaDecodeDurationToDisplayEndTime(
+ Media theMedia,
+ Boolean * mediaChanged);
+
+
+/*
+ * GetMediaSample2()
+ *
+ * Summary:
+ * Retrieves sample data from a media file. GetMediaSample2 extends
+ * and supercedes GetMediaSample.
+ *
+ * Discussion:
+ * GetMediaSample2 will only return multiple samples that all have
+ * the same decode duration per sample, the same display offset, the
+ * same sample description, and the same size per sample.
+ *
+ * Parameters:
+ *
+ * theMedia:
+ * The media for this operation. Your application obtains this
+ * media identifier from such functions as NewTrackMedia and
+ * GetTrackMedia.
+ *
+ * dataOut:
+ * Points to a buffer to receive sample data. The buffer must be
+ * large enough to contain at least maxDataSize bytes. If you do
+ * not want to receive sample data, pass NULL.
+ *
+ * maxDataSize:
+ * The maximum number of bytes of data to receive.
+ *
+ * size:
+ * Points to a long integer to receive the number of bytes of
+ * sample data returned. Pass NULL if you are not interested this
+ * information.
+ *
+ * decodeTime:
+ * The decode time for which you are retrieving sample
+ * information. You must specify this value in the media's time
+ * scale.
+ *
+ * sampleDecodeTime:
+ * A pointer to a time value. The function updates this time value
+ * to indicate the actual decode time of the returned sample data.
+ * (The returned time may differ from the time you specified with
+ * the decodeTime parameter. This will occur if the time you
+ * specified falls in the middle of a sample.) If you are not
+ * interested in this information, set this parameter to NULL.
+ *
+ * decodeDurationPerSample:
+ * A pointer to a time value. The function updates this time value
+ * to indicate the decode duration of each of the returned
+ * samples. This time value is expressed in the media's time
+ * scale. Set this parameter to NULL if you don't want this
+ * information.
+ *
+ * displayOffset:
+ * A pointer to a time value. The function updates this time value
+ * to indicate the display offset of the returned sample. This
+ * time value is expressed in the media's time scale. Set this
+ * parameter to NULL if you don't want this information.
+ *
+ * sampleDescriptionH:
+ * A handle to a SampleDescription structure. The function returns
+ * the sample description corresponding to the returned sample
+ * data. The function resizes this handle as appropriate. If you
+ * don't want a SampleDescription structure, set this parameter to
+ * NULL.
+ *
+ * sampleDescriptionIndex:
+ * A pointer to a long integer. The function returns an index
+ * value to the SampleDescription structure that corresponds to
+ * the returned sample data. You can retrieve the structure by
+ * calling GetMediaSampleDescription and passing this index in the
+ * index parameter. If you don't want this information, set this
+ * parameter to NULL.
+ *
+ * maxNumberOfSamples:
+ * The maximum number of samples to be returned. The Movie Toolbox
+ * does not return more samples than you specify with this
+ * parameter. If you set this parameter to 0, the Movie Toolbox
+ * uses a value that is appropriate for the media, and returns
+ * that value in the field referenced by the numberOfSamples
+ * parameter.
+ *
+ * numberOfSamples:
+ * A pointer to a long integer. The function updates the field
+ * referred to by this parameter with the number of samples it
+ * actually returns. If you don't want this information, set this
+ * parameter to NULL.
+ *
+ * sampleFlags:
+ * A pointer to a short integer in which the function returns
+ * media sample flags for the returned samples. If you don't want
+ * this information, set this parameter to NULL.
+ *
+ * Result:
+ * An operating system result code. maxSizeToGrowTooSmall if the
+ * sample data is larger than maxDataSize.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ * Windows: in qtmlClient.lib version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSErr )
+GetMediaSample2(
+ Media theMedia,
+ UInt8 * dataOut,
+ ByteCount maxDataSize,
+ ByteCount * size,
+ TimeValue64 decodeTime,
+ TimeValue64 * sampleDecodeTime,
+ TimeValue64 * decodeDurationPerSample,
+ TimeValue64 * displayOffset,
+ SampleDescriptionHandle sampleDescriptionH,
+ ItemCount * sampleDescriptionIndex,
+ ItemCount maxNumberOfSamples,
+ ItemCount * numberOfSamples,
+ MediaSampleFlags * sampleFlags);
+
+
+/*
+ * GetMediaSample()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+GetMediaSample(
+ Media theMedia,
+ Handle dataOut,
+ long maxSizeToGrow,
+ long * size,
+ TimeValue time,
+ TimeValue * sampleTime,
+ TimeValue * durationPerSample,
+ SampleDescriptionHandle sampleDescriptionH,
+ long * sampleDescriptionIndex,
+ long maxNumberOfSample,
+ long * numberOfSamples,
+ short * sampleFlags);
+
+
+/*
+ * CopyMediaMutableSampleTable()
+ *
+ * Summary:
+ * Obtains information about sample references in a media in the
+ * form of a sample table. CopyMediaMutableSampleTable supercedes
+ * GetMediaSampleReferences and GetMediaSampleReferences64.
+ *
+ * Discussion:
+ * When you are done with the returned sample table, release it with
+ * QTSampleTableRelease.
+ * To find out how many samples were returned in the sample table,
+ * call QTSampleTableGetNumberOfSamples.
+ *
+ * Parameters:
+ *
+ * theMedia:
+ * The media for this operation. Your application obtains this
+ * media identifier from such functions as NewTrackMedia and
+ * GetTrackMedia.
+ *
+ * startDecodeTime:
+ * The starting decode time of the sample references to be
+ * retrieved. You must specify this value in the media's time
+ * scale.
+ *
+ * sampleStartDecodeTime:
+ * A pointer to a time value. The function updates this time value
+ * to indicate the actual decode time of the first returned sample
+ * reference. (The returned time may differ from the time you
+ * specified with the startDecodeTime parameter. This will occur
+ * if the time you specified falls in the middle of a sample.) If
+ * you are not interested in this information, set this parameter
+ * to NULL.
+ *
+ * maxNumberOfSamples:
+ * The maximum number of sample references to be returned. If you
+ * set this parameter to 0, the Movie Toolbox uses a value that is
+ * appropriate to the media.
+ *
+ * maxDecodeDuration:
+ * The maximum decode duration to be returned. The function does
+ * not return samples with greater decode duration than you
+ * specify with this parameter. If you set this parameter to 0,
+ * the Movie Toolbox uses a value that is appropriate for the
+ * media.
+ *
+ * sampleTableOut:
+ * A pointer to a sample table reference to receive the newly
+ * created mutable sample table.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ * Windows: in qtmlClient.lib version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSErr )
+CopyMediaMutableSampleTable(
+ Media theMedia,
+ TimeValue64 startDecodeTime,
+ TimeValue64 * sampleStartDecodeTime,
+ SInt64 maxNumberOfSamples,
+ TimeValue64 maxDecodeDuration,
+ QTMutableSampleTableRef * sampleTableOut);
+
+
+/*
+ * GetMediaSampleReference()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+GetMediaSampleReference(
+ Media theMedia,
+ long * dataOffset,
+ long * size,
+ TimeValue time,
+ TimeValue * sampleTime,
+ TimeValue * durationPerSample,
+ SampleDescriptionHandle sampleDescriptionH,
+ long * sampleDescriptionIndex,
+ long maxNumberOfSamples,
+ long * numberOfSamples,
+ short * sampleFlags);
+
+
+/*
+ * GetMediaSampleReferences()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+GetMediaSampleReferences(
+ Media theMedia,
+ TimeValue time,
+ TimeValue * sampleTime,
+ SampleDescriptionHandle sampleDescriptionH,
+ long * sampleDescriptionIndex,
+ long maxNumberOfEntries,
+ long * actualNumberofEntries,
+ SampleReferencePtr sampleRefs);
+
+
+/*
+ * GetMediaSampleReferences64()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 4.0 and later
+ * CarbonLib: in CarbonLib 1.0.2 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 4.0 and later
+ */
+EXTERN_API( OSErr )
+GetMediaSampleReferences64(
+ Media theMedia,
+ TimeValue time,
+ TimeValue * sampleTime,
+ SampleDescriptionHandle sampleDescriptionH,
+ long * sampleDescriptionIndex,
+ long maxNumberOfEntries,
+ long * actualNumberofEntries,
+ SampleReference64Ptr sampleRefs);
+
+
+/*
+ * SetMediaPreferredChunkSize()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+SetMediaPreferredChunkSize(
+ Media theMedia,
+ long maxChunkSize);
+
+
+/*
+ * GetMediaPreferredChunkSize()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+GetMediaPreferredChunkSize(
+ Media theMedia,
+ long * maxChunkSize);
+
+
+/*
+ * SetMediaShadowSync()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+SetMediaShadowSync(
+ Media theMedia,
+ long frameDiffSampleNum,
+ long syncSampleNum);
+
+
+/*
+ * GetMediaShadowSync()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+GetMediaShadowSync(
+ Media theMedia,
+ long frameDiffSampleNum,
+ long * syncSampleNum);
+
+
+/*************************
+* Editing Routines
+**************************/
+/*
+ When inserting media that might have nonzero display offsets into a track, use display time:
+ InsertMediaIntoTrack( track,
+ 0, // track start time
+ GetMediaDisplayStartTime( media ), // media start time
+ GetMediaDisplayDuration( media ),
+ fixed1 ); // normal speed
+ It is safe to use these display time calls for media without display offsets.
+*/
+/*
+ * InsertMediaIntoTrack()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+InsertMediaIntoTrack(
+ Track theTrack,
+ TimeValue trackStart,
+ TimeValue mediaTime,
+ TimeValue mediaDuration,
+ Fixed mediaRate);
+
+
+/*
+ * InsertTrackSegment()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+InsertTrackSegment(
+ Track srcTrack,
+ Track dstTrack,
+ TimeValue srcIn,
+ TimeValue srcDuration,
+ TimeValue dstIn);
+
+
+/*
+ * InsertMovieSegment()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+InsertMovieSegment(
+ Movie srcMovie,
+ Movie dstMovie,
+ TimeValue srcIn,
+ TimeValue srcDuration,
+ TimeValue dstIn);
+
+
+/*
+ * InsertEmptyTrackSegment()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+InsertEmptyTrackSegment(
+ Track dstTrack,
+ TimeValue dstIn,
+ TimeValue dstDuration);
+
+
+/*
+ * InsertEmptyMovieSegment()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+InsertEmptyMovieSegment(
+ Movie dstMovie,
+ TimeValue dstIn,
+ TimeValue dstDuration);
+
+
+/*
+ * DeleteTrackSegment()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+DeleteTrackSegment(
+ Track theTrack,
+ TimeValue startTime,
+ TimeValue duration);
+
+
+/*
+ * DeleteMovieSegment()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+DeleteMovieSegment(
+ Movie theMovie,
+ TimeValue startTime,
+ TimeValue duration);
+
+
+/*
+ * ScaleTrackSegment()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+ScaleTrackSegment(
+ Track theTrack,
+ TimeValue startTime,
+ TimeValue oldDuration,
+ TimeValue newDuration);
+
+
+/*
+ * ScaleMovieSegment()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+ScaleMovieSegment(
+ Movie theMovie,
+ TimeValue startTime,
+ TimeValue oldDuration,
+ TimeValue newDuration);
+
+
+
+/*************************
+* Hi-level Editing Routines
+**************************/
+/*
+ * CutMovieSelection()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( Movie )
+CutMovieSelection(Movie theMovie);
+
+
+/*
+ * CopyMovieSelection()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( Movie )
+CopyMovieSelection(Movie theMovie);
+
+
+/*
+ * PasteMovieSelection()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+PasteMovieSelection(
+ Movie theMovie,
+ Movie src);
+
+
+/*
+ * AddMovieSelection()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+AddMovieSelection(
+ Movie theMovie,
+ Movie src);
+
+
+/*
+ * ClearMovieSelection()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+ClearMovieSelection(Movie theMovie);
+
+
+/*
+ * PasteHandleIntoMovie()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+PasteHandleIntoMovie(
+ Handle h,
+ OSType handleType,
+ Movie theMovie,
+ long flags,
+ ComponentInstance userComp);
+
+
+/*
+ * PutMovieIntoTypedHandle()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+PutMovieIntoTypedHandle(
+ Movie theMovie,
+ Track targetTrack,
+ OSType handleType,
+ Handle publicMovie,
+ TimeValue start,
+ TimeValue dur,
+ long flags,
+ ComponentInstance userComp);
+
+
+/*
+ * IsScrapMovie()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( Component )
+IsScrapMovie(Track targetTrack);
+
+
+/*************************
+* Middle-level Editing Routines
+**************************/
+/*
+ * CopyTrackSettings()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+CopyTrackSettings(
+ Track srcTrack,
+ Track dstTrack);
+
+
+/*
+ * CopyMovieSettings()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+CopyMovieSettings(
+ Movie srcMovie,
+ Movie dstMovie);
+
+
+/*
+ * AddEmptyTrackToMovie()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+AddEmptyTrackToMovie(
+ Track srcTrack,
+ Movie dstMovie,
+ Handle dataRef,
+ OSType dataRefType,
+ Track * dstTrack);
+
+
+enum {
+ kQTCloneShareSamples = 1 << 0,
+ kQTCloneDontCopyEdits = 1 << 1
+};
+
+/*
+ * AddClonedTrackToMovie()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 5.0 and later
+ * CarbonLib: in CarbonLib 1.3 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 5.0 and later
+ */
+EXTERN_API( OSErr )
+AddClonedTrackToMovie(
+ Track srcTrack,
+ Movie dstMovie,
+ long flags,
+ Track * dstTrack);
+
+
+/*************************
+* movie & track edit state routines
+**************************/
+/*
+ * NewMovieEditState()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( MovieEditState )
+NewMovieEditState(Movie theMovie);
+
+
+/*
+ * UseMovieEditState()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+UseMovieEditState(
+ Movie theMovie,
+ MovieEditState toState);
+
+
+/*
+ * DisposeMovieEditState()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+DisposeMovieEditState(MovieEditState state);
+
+
+/*
+ * NewTrackEditState()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( TrackEditState )
+NewTrackEditState(Track theTrack);
+
+
+/*
+ * UseTrackEditState()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+UseTrackEditState(
+ Track theTrack,
+ TrackEditState state);
+
+
+/*
+ * DisposeTrackEditState()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+DisposeTrackEditState(TrackEditState state);
+
+
+/*************************
+* track reference routines
+**************************/
+/*
+ * AddTrackReference()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+AddTrackReference(
+ Track theTrack,
+ Track refTrack,
+ OSType refType,
+ long * addedIndex);
+
+
+/*
+ * DeleteTrackReference()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+DeleteTrackReference(
+ Track theTrack,
+ OSType refType,
+ long index);
+
+
+/*
+ * SetTrackReference()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+SetTrackReference(
+ Track theTrack,
+ Track refTrack,
+ OSType refType,
+ long index);
+
+
+/*
+ * GetTrackReference()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( Track )
+GetTrackReference(
+ Track theTrack,
+ OSType refType,
+ long index);
+
+
+/*
+ * GetNextTrackReferenceType()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSType )
+GetNextTrackReferenceType(
+ Track theTrack,
+ OSType refType);
+
+
+/*
+ * GetTrackReferenceCount()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( long )
+GetTrackReferenceCount(
+ Track theTrack,
+ OSType refType);
+
+
+
+/*************************
+* high level file conversion routines
+**************************/
+/*
+ * ConvertFileToMovieFile()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+ConvertFileToMovieFile(
+ const FSSpec * inputFile,
+ const FSSpec * outputFile,
+ OSType creator,
+ ScriptCode scriptTag,
+ short * resID,
+ long flags,
+ ComponentInstance userComp,
+ MovieProgressUPP proc,
+ long refCon);
+
+
+/*
+ * ConvertMovieToFile()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+ConvertMovieToFile(
+ Movie theMovie,
+ Track onlyTrack,
+ FSSpec * outputFile,
+ OSType fileType,
+ OSType creator,
+ ScriptCode scriptTag,
+ short * resID,
+ long flags,
+ ComponentInstance userComp);
+
+
+/*
+ * ConvertMovieToDataRef()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.3 (or QuickTime 6.4) and later
+ * Windows: in qtmlClient.lib 6.5 and later
+ */
+EXTERN_API( OSErr )
+ConvertMovieToDataRef(
+ Movie m,
+ Track onlyTrack,
+ Handle dataRef,
+ OSType dataRefType,
+ OSType fileType,
+ OSType creator,
+ long flags,
+ ComponentInstance userComp);
+
+
+/*
+ * ConvertDataRefToMovieDataRef()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.3 (or QuickTime 6.4) and later
+ * Windows: in qtmlClient.lib 6.5 and later
+ */
+EXTERN_API( OSErr )
+ConvertDataRefToMovieDataRef(
+ Handle inputDataRef,
+ OSType inputDataRefType,
+ Handle outputDataRef,
+ OSType outputDataRefType,
+ OSType creator,
+ long flags,
+ ComponentInstance userComp,
+ MovieProgressUPP proc,
+ long refCon);
+
+
+enum {
+ kGetMovieImporterValidateToFind = 1L << 0,
+ kGetMovieImporterAllowNewFile = 1L << 1,
+ kGetMovieImporterDontConsiderGraphicsImporters = 1L << 2,
+ kGetMovieImporterDontConsiderFileOnlyImporters = 1L << 6,
+ kGetMovieImporterAutoImportOnly = 1L << 10 /* reject aggressive movie importers which have dontAutoFileMovieImport set*/
+};
+
+/*
+ * GetMovieImporterForDataRef()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 3.0 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+GetMovieImporterForDataRef(
+ OSType dataRefType,
+ Handle dataRef,
+ long flags,
+ Component * importer);
+
+
+
+enum {
+ kQTGetMIMETypeInfoIsQuickTimeMovieType = FOUR_CHAR_CODE('moov'), /* info is a pointer to a Boolean*/
+ kQTGetMIMETypeInfoIsUnhelpfulType = FOUR_CHAR_CODE('dumb') /* info is a pointer to a Boolean*/
+};
+
+/*
+ * QTGetMIMETypeInfo()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 5.0 and later
+ * CarbonLib: in CarbonLib 1.3 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 5.0 and later
+ */
+EXTERN_API( OSErr )
+QTGetMIMETypeInfo(
+ const char * mimeStringStart,
+ short mimeStringLength,
+ OSType infoSelector,
+ void * infoDataPtr,
+ long * infoDataSize);
+
+
+
+/****************************
+* Movie importer properties
+*****************************/
+
+/*
+ */
+enum {
+ kQTPropertyClass_MovieImporter = FOUR_CHAR_CODE('eat '),
+
+ /*
+ * kQTMovieImporterPropertyID_AllowMediaOptimization: Value is
+ * Boolean (get/set) Allow QuickTime importers to optimize the media
+ * representation during import. This may create media that is not
+ * fully compatible with applications that use older low-level APIs
+ * to access and manipulate media samples. For instance, this
+ * property allows the MP3 importer to create VBR sample tables,
+ * which may be incompatible with applications that use
+ * GetMediaSample and SoundConverter to manually decode audio samples.
+ */
+ kQTMovieImporterPropertyID_AllowMediaOptimization = FOUR_CHAR_CODE('amop') /* Boolean*/
+};
+
+
+/*************************
+* Movie Timebase Conversion Routines
+**************************/
+/*
+ * TrackTimeToMediaDisplayTime()
+ *
+ * Summary:
+ * Converts a track's time value to a display time value that is
+ * appropriate to the track's media, using the track's edit list.
+ * This is a 64-bit replacement for TrackTimeToMediaTime.
+ *
+ * Discussion:
+ * This function maps the track time through the track's edit list
+ * to come up with the media time. This time value contains the
+ * track's time value according to the media's time coordinate
+ * system. If the time you specified lies outside of the movie's
+ * active segment or corresponds to empty space in the track, this
+ * function returns a value of -1. Hence you can use it to determine
+ * whether a specified track edit is empty.
+ *
+ * Parameters:
+ *
+ * value:
+ * The track's time value; must be expressed in the time scale of
+ * the movie that contains the track.
+ *
+ * theTrack:
+ * The track for this operation. Your application obtains this
+ * track identifier from such functions as NewMovieTrack and
+ * GetMovieTrack.
+ *
+ * Result:
+ * The corresponding time in media display time, in the media's time
+ * coordinate system. If the track time corresponds to empty space,
+ * this function returns a value of -1.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ * Windows: in qtmlClient.lib version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( TimeValue64 )
+TrackTimeToMediaDisplayTime(
+ TimeValue64 value,
+ Track theTrack);
+
+
+/*
+ * TrackTimeToMediaTime()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( TimeValue )
+TrackTimeToMediaTime(
+ TimeValue value,
+ Track theTrack);
+
+
+/*
+ * GetTrackEditRate64()
+ *
+ * Summary:
+ * Returns the rate of the track edit of a specified track at an
+ * indicated time. This is a 64-bit replacement for GetTrackEditRate.
+ *
+ * Discussion:
+ * This function is useful if you are stepping through track edits
+ * directly in your application or if you are a client of
+ * QuickTime's base media handler.
+ *
+ * Parameters:
+ *
+ * theTrack:
+ * The track identifier for which the rate of a track edit (at the
+ * time given in the atTime parameter) is to be determined.
+ *
+ * atTime:
+ * Indicates a time value at which the rate of a track edit (of a
+ * track identified in the parameter theTrack) is to be determined.
+ *
+ * Result:
+ * The rate of the track edit of the specified track at the
+ * specified time.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ * Windows: in qtmlClient.lib version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( Fixed )
+GetTrackEditRate64(
+ Track theTrack,
+ TimeValue64 atTime);
+
+
+/*
+ * GetTrackEditRate()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( Fixed )
+GetTrackEditRate(
+ Track theTrack,
+ TimeValue atTime);
+
+
+
+/*************************
+* Miscellaneous Routines
+**************************/
+
+/*
+ * GetMovieDataSize()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( long )
+GetMovieDataSize(
+ Movie theMovie,
+ TimeValue startTime,
+ TimeValue duration);
+
+
+/*
+ * GetMovieDataSize64()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 4.0 and later
+ * CarbonLib: in CarbonLib 1.0.2 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 4.0 and later
+ */
+EXTERN_API( OSErr )
+GetMovieDataSize64(
+ Movie theMovie,
+ TimeValue startTime,
+ TimeValue duration,
+ wide * dataSize);
+
+
+/*
+ * GetTrackDataSize()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( long )
+GetTrackDataSize(
+ Track theTrack,
+ TimeValue startTime,
+ TimeValue duration);
+
+
+/*
+ * GetTrackDataSize64()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 4.0 and later
+ * CarbonLib: in CarbonLib 1.0.2 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 4.0 and later
+ */
+EXTERN_API( OSErr )
+GetTrackDataSize64(
+ Track theTrack,
+ TimeValue startTime,
+ TimeValue duration,
+ wide * dataSize);
+
+
+/*
+ * GetMediaDataSizeTime64()
+ *
+ * Summary:
+ * Determines the size, in bytes, of the sample data in a media
+ * segment. This function uses 64-bit time values and returns a
+ * 64-bit size.
+ *
+ * Discussion:
+ * The only difference between this function and GetMediaDataSize64
+ * is that it uses 64-bit time values.
+ *
+ * Parameters:
+ *
+ * theMedia:
+ * The media for this operation. Your application obtains this
+ * media identifier from such functions as NewTrackMedia and
+ * GetTrackMedia.
+ *
+ * startDisplayTime:
+ * A time value specifying the starting point of the segment in
+ * media display time.
+ *
+ * displayDuration:
+ * A time value that specifies the duration of the segment in
+ * media display time.
+ *
+ * dataSize:
+ * Points to a variable to receive the size, in bytes, of the
+ * sample data in the defined media segment.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ * Windows: in qtmlClient.lib version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSErr )
+GetMediaDataSizeTime64(
+ Media theMedia,
+ TimeValue64 startDisplayTime,
+ TimeValue64 displayDuration,
+ SInt64 * dataSize);
+
+
+/*
+ * GetMediaDataSize()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( long )
+GetMediaDataSize(
+ Media theMedia,
+ TimeValue startTime,
+ TimeValue duration);
+
+
+/*
+ * GetMediaDataSize64()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 4.0 and later
+ * CarbonLib: in CarbonLib 1.0.2 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 4.0 and later
+ */
+EXTERN_API( OSErr )
+GetMediaDataSize64(
+ Media theMedia,
+ TimeValue startTime,
+ TimeValue duration,
+ wide * dataSize);
+
+
+/*
+ * PtInMovie()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( Boolean )
+PtInMovie(
+ Movie theMovie,
+ Point pt);
+
+
+/*
+ * PtInTrack()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( Boolean )
+PtInTrack(
+ Track theTrack,
+ Point pt);
+
+
+/*************************
+* Group Selection Routines
+**************************/
+
+/*
+ * SetMovieLanguage()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+SetMovieLanguage(
+ Movie theMovie,
+ long language);
+
+
+
+/*************************
+* User Data
+**************************/
+
+/*
+ * GetUserData()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+GetUserData(
+ UserData theUserData,
+ Handle data,
+ OSType udType,
+ long index);
+
+
+/*
+ * AddUserData()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+AddUserData(
+ UserData theUserData,
+ Handle data,
+ OSType udType);
+
+
+/*
+ * RemoveUserData()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+RemoveUserData(
+ UserData theUserData,
+ OSType udType,
+ long index);
+
+
+/*
+ * CountUserDataType()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( short )
+CountUserDataType(
+ UserData theUserData,
+ OSType udType);
+
+
+/*
+ * GetNextUserDataType()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( long )
+GetNextUserDataType(
+ UserData theUserData,
+ OSType udType);
+
+
+/*
+ * GetUserDataItem()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+GetUserDataItem(
+ UserData theUserData,
+ void * data,
+ long size,
+ OSType udType,
+ long index);
+
+
+/*
+ * SetUserDataItem()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+SetUserDataItem(
+ UserData theUserData,
+ void * data,
+ long size,
+ OSType udType,
+ long index);
+
+
+/*
+ * AddUserDataText()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+AddUserDataText(
+ UserData theUserData,
+ Handle data,
+ OSType udType,
+ long index,
+ short itlRegionTag);
+
+
+/*
+ * GetUserDataText()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+GetUserDataText(
+ UserData theUserData,
+ Handle data,
+ OSType udType,
+ long index,
+ short itlRegionTag);
+
+
+/*
+ * RemoveUserDataText()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+RemoveUserDataText(
+ UserData theUserData,
+ OSType udType,
+ long index,
+ short itlRegionTag);
+
+
+/*
+ * NewUserData()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+NewUserData(UserData * theUserData);
+
+
+/*
+ * DisposeUserData()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+DisposeUserData(UserData theUserData);
+
+
+/*
+ * NewUserDataFromHandle()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+NewUserDataFromHandle(
+ Handle h,
+ UserData * theUserData);
+
+
+/*
+ * PutUserDataIntoHandle()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+PutUserDataIntoHandle(
+ UserData theUserData,
+ Handle h);
+
+
+
+enum {
+ kQTCopyUserDataReplace = FOUR_CHAR_CODE('rplc'), /* Delete all destination user data items and then add source user data items */
+ kQTCopyUserDataMerge = FOUR_CHAR_CODE('merg') /* Add source user data items to destination user data */
+};
+
+/*
+ * CopyMovieUserData()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 6.0 and later
+ * CarbonLib: in CarbonLib 1.6 and later
+ * Mac OS X: in version 10.2 and later
+ * Windows: in qtmlClient.lib 6.0 and later
+ */
+EXTERN_API( OSErr )
+CopyMovieUserData(
+ Movie srcMovie,
+ Movie dstMovie,
+ OSType copyRule);
+
+
+/*
+ * CopyTrackUserData()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 6.0 and later
+ * CarbonLib: in CarbonLib 1.6 and later
+ * Mac OS X: in version 10.2 and later
+ * Windows: in qtmlClient.lib 6.0 and later
+ */
+EXTERN_API( OSErr )
+CopyTrackUserData(
+ Track srcTrack,
+ Track dstTrack,
+ OSType copyRule);
+
+
+/*
+ * CopyMediaUserData()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 6.0 and later
+ * CarbonLib: in CarbonLib 1.6 and later
+ * Mac OS X: in version 10.2 and later
+ * Windows: in qtmlClient.lib 6.0 and later
+ */
+EXTERN_API( OSErr )
+CopyMediaUserData(
+ Media srcMedia,
+ Media dstMedia,
+ OSType copyRule);
+
+
+/*
+ * CopyUserData()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 6.0 and later
+ * CarbonLib: in CarbonLib 1.6 and later
+ * Mac OS X: in version 10.2 and later
+ * Windows: in qtmlClient.lib 6.0 and later
+ */
+EXTERN_API( OSErr )
+CopyUserData(
+ UserData srcUserData,
+ UserData dstUserData,
+ OSType copyRule);
+
+
+
+/*
+ * SetMoviePropertyAtom()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 4.1 and later
+ * CarbonLib: in CarbonLib 1.1 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 4.1 and later
+ */
+EXTERN_API( OSErr )
+SetMoviePropertyAtom(
+ Movie theMovie,
+ QTAtomContainer propertyAtom);
+
+
+/*
+ * GetMoviePropertyAtom()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 4.1 and later
+ * CarbonLib: in CarbonLib 1.1 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 4.1 and later
+ */
+EXTERN_API( OSErr )
+GetMoviePropertyAtom(
+ Movie theMovie,
+ QTAtomContainer * propertyAtom);
+
+
+/*
+ * GetMediaNextInterestingDecodeTime()
+ *
+ * Summary:
+ * Searches for decode times of interest in a media.
+ *
+ * Discussion:
+ * This function takes the same flags as GetMediaNextInterestingTime.
+ *
+ * Parameters:
+ *
+ * theMedia:
+ * The media for this operation. Your application obtains this
+ * media identifier from such functions as NewTrackMedia and
+ * GetTrackMedia.
+ *
+ * interestingTimeFlags:
+ * Contains flags that determine the search criteria. Note that
+ * you may set only one of the nextTimeMediaSample,
+ * nextTimeMediaEdit or nextTimeSyncSample flags to 1. Set unused
+ * flags to 0.
+ *
+ * decodeTime:
+ * Specifies a time value that establishes the starting point for
+ * the search. This time value must be expressed in the media's
+ * time scale.
+ *
+ * rate:
+ * The search direction. Negative values cause the Movie Toolbox
+ * to search backward from the starting point specified in the
+ * decodeTime parameter. Other values cause a forward search.
+ *
+ * interestingDecodeTime:
+ * A pointer to a time value. The Movie Toolbox returns the first
+ * decode time value it finds that meets the search criteria
+ * specified in the flags parameter. This time value is in the
+ * media's time scale. If there are no times that meet the search
+ * criteria you specify, the Movie Toolbox sets this value to -1.
+ * Set this parameter to NULL if you are not interested in this
+ * information.
+ *
+ * interestingDecodeDuration:
+ * A pointer to a time value. The Movie Toolbox returns the decode
+ * duration of the interesting time. This time value is in the
+ * media's time coordinate system. Set this parameter to NULL if
+ * you don't want this information; this lets the function work
+ * faster.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ * Windows: in qtmlClient.lib version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( void )
+GetMediaNextInterestingDecodeTime(
+ Media theMedia,
+ short interestingTimeFlags,
+ TimeValue64 decodeTime,
+ Fixed rate,
+ TimeValue64 * interestingDecodeTime,
+ TimeValue64 * interestingDecodeDuration);
+
+
+/*
+ * GetMediaNextInterestingDisplayTime()
+ *
+ * Summary:
+ * Searches for display times of interest in a media.
+ *
+ * Discussion:
+ * This function takes the same flags as GetMediaNextInterestingTime.
+ *
+ * Parameters:
+ *
+ * theMedia:
+ * The media for this operation. Your application obtains this
+ * media identifier from such functions as NewTrackMedia and
+ * GetTrackMedia.
+ *
+ * interestingTimeFlags:
+ * Contains flags that determine the search criteria. Note that
+ * you may set only one of the nextTimeMediaSample,
+ * nextTimeMediaEdit or nextTimeSyncSample flags to 1. Set unused
+ * flags to 0.
+ *
+ * displayTime:
+ * Specifies a time value that establishes the starting point for
+ * the search. This time value must be expressed in the media's
+ * time scale.
+ *
+ * rate:
+ * The search direction. Negative values cause the Movie Toolbox
+ * to search backward from the starting point specified in the
+ * time parameter. Other values cause a forward search.
+ *
+ * interestingDisplayTime:
+ * A pointer to a time value. The Movie Toolbox returns the first
+ * display time value it finds that meets the search criteria
+ * specified in the flags parameter. This time value is in the
+ * media's time scale. If there are no times that meet the search
+ * criteria you specify, the Movie Toolbox sets this value to -1.
+ * Set this parameter to NULL if you are not interested in this
+ * information.
+ *
+ * interestingDisplayDuration:
+ * A pointer to a time value. The Movie Toolbox returns the
+ * display duration of the interesting time. This time value is in
+ * the media's time coordinate system. Set this parameter to NULL
+ * if you don't want this information; this lets the function work
+ * faster.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ * Windows: in qtmlClient.lib version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( void )
+GetMediaNextInterestingDisplayTime(
+ Media theMedia,
+ short interestingTimeFlags,
+ TimeValue64 displayTime,
+ Fixed rate,
+ TimeValue64 * interestingDisplayTime,
+ TimeValue64 * interestingDisplayDuration);
+
+
+/*
+ * GetMediaNextInterestingTime()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+GetMediaNextInterestingTime(
+ Media theMedia,
+ short interestingTimeFlags,
+ TimeValue time,
+ Fixed rate,
+ TimeValue * interestingTime,
+ TimeValue * interestingDuration);
+
+
+/*
+ * GetTrackNextInterestingTime()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+GetTrackNextInterestingTime(
+ Track theTrack,
+ short interestingTimeFlags,
+ TimeValue time,
+ Fixed rate,
+ TimeValue * interestingTime,
+ TimeValue * interestingDuration);
+
+
+/*
+ * GetMovieNextInterestingTime()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+GetMovieNextInterestingTime(
+ Movie theMovie,
+ short interestingTimeFlags,
+ short numMediaTypes,
+ const OSType * whichMediaTypes,
+ TimeValue time,
+ Fixed rate,
+ TimeValue * interestingTime,
+ TimeValue * interestingDuration);
+
+
+
+/*
+ * CreateMovieFile()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+CreateMovieFile(
+ const FSSpec * fileSpec,
+ OSType creator,
+ ScriptCode scriptTag,
+ long createMovieFileFlags,
+ short * resRefNum,
+ Movie * newmovie);
+
+
+/*
+ * OpenMovieFile()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+OpenMovieFile(
+ const FSSpec * fileSpec,
+ short * resRefNum,
+ SInt8 permission);
+
+
+/*
+ * CloseMovieFile()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+CloseMovieFile(short resRefNum);
+
+
+/*
+ * DeleteMovieFile()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+DeleteMovieFile(const FSSpec * fileSpec);
+
+
+/*
+ * NewMovieFromFile()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+NewMovieFromFile(
+ Movie * theMovie,
+ short resRefNum,
+ short * resId, /* can be NULL */
+ StringPtr resName,
+ short newMovieFlags,
+ Boolean * dataRefWasChanged); /* can be NULL */
+
+
+/*
+ * NewMovieFromHandle()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+NewMovieFromHandle(
+ Movie * theMovie,
+ Handle h,
+ short newMovieFlags,
+ Boolean * dataRefWasChanged);
+
+
+/*
+ * NewMovieFromDataFork()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+NewMovieFromDataFork(
+ Movie * theMovie,
+ short fRefNum,
+ long fileOffset,
+ short newMovieFlags,
+ Boolean * dataRefWasChanged);
+
+
+/*
+ * NewMovieFromDataFork64()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 4.0 and later
+ * CarbonLib: in CarbonLib 1.0.2 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 4.0 and later
+ */
+EXTERN_API( OSErr )
+NewMovieFromDataFork64(
+ Movie * theMovie,
+ long fRefNum,
+ const wide * fileOffset,
+ short newMovieFlags,
+ Boolean * dataRefWasChanged);
+
+
+/*
+ * NewMovieFromUserProc()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+NewMovieFromUserProc(
+ Movie * m,
+ short flags,
+ Boolean * dataRefWasChanged,
+ GetMovieUPP getProc,
+ void * refCon,
+ Handle defaultDataRef,
+ OSType dataRefType);
+
+
+/*
+ * NewMovieFromDataRef()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+NewMovieFromDataRef(
+ Movie * m,
+ short flags,
+ short * id,
+ Handle dataRef,
+ OSType dataRefType);
+
+
+/*
+ * NewMovieFromStorageOffset()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 6.0 and later
+ * CarbonLib: in CarbonLib 1.6 and later
+ * Mac OS X: in version 10.2 and later
+ * Windows: in qtmlClient.lib 6.0 and later
+ */
+EXTERN_API( OSErr )
+NewMovieFromStorageOffset(
+ Movie * theMovie,
+ DataHandler dh,
+ const wide * fileOffset,
+ short newMovieFlags,
+ Boolean * dataRefWasChanged);
+
+
+/*
+ * NewMovieForDataRefFromHandle()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 6.0 and later
+ * CarbonLib: in CarbonLib 1.6 and later
+ * Mac OS X: in version 10.2 and later
+ * Windows: in qtmlClient.lib 6.0 and later
+ */
+EXTERN_API( OSErr )
+NewMovieForDataRefFromHandle(
+ Movie * theMovie,
+ Handle h,
+ short newMovieFlags,
+ Boolean * dataRefWasChanged,
+ Handle dataRef,
+ OSType dataRefType);
+
+
+/*
+ * AddMovieResource()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+AddMovieResource(
+ Movie theMovie,
+ short resRefNum,
+ short * resId,
+ ConstStr255Param resName);
+
+
+/*
+ * UpdateMovieResource()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+UpdateMovieResource(
+ Movie theMovie,
+ short resRefNum,
+ short resId,
+ ConstStr255Param resName);
+
+
+/*
+ * RemoveMovieResource()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+RemoveMovieResource(
+ short resRefNum,
+ short resId);
+
+
+/*
+ * CreateMovieStorage()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 6.0 and later
+ * CarbonLib: in CarbonLib 1.6 and later
+ * Mac OS X: in version 10.2 and later
+ * Windows: in qtmlClient.lib 6.0 and later
+ */
+EXTERN_API( OSErr )
+CreateMovieStorage(
+ Handle dataRef,
+ OSType dataRefType,
+ OSType creator,
+ ScriptCode scriptTag,
+ long createMovieFileFlags,
+ DataHandler * outDataHandler,
+ Movie * newmovie);
+
+
+/*
+ * OpenMovieStorage()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 6.0 and later
+ * CarbonLib: in CarbonLib 1.6 and later
+ * Mac OS X: in version 10.2 and later
+ * Windows: in qtmlClient.lib 6.0 and later
+ */
+EXTERN_API( OSErr )
+OpenMovieStorage(
+ Handle dataRef,
+ OSType dataRefType,
+ long flags,
+ DataHandler * outDataHandler);
+
+
+/*
+ * CloseMovieStorage()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 6.0 and later
+ * CarbonLib: in CarbonLib 1.6 and later
+ * Mac OS X: in version 10.2 and later
+ * Windows: in qtmlClient.lib 6.0 and later
+ */
+EXTERN_API( OSErr )
+CloseMovieStorage(DataHandler dh);
+
+
+/*
+ * DeleteMovieStorage()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 6.0 and later
+ * CarbonLib: in CarbonLib 1.6 and later
+ * Mac OS X: in version 10.2 and later
+ * Windows: in qtmlClient.lib 6.0 and later
+ */
+EXTERN_API( OSErr )
+DeleteMovieStorage(
+ Handle dataRef,
+ OSType dataRefType);
+
+
+/*
+ * AddMovieToStorage()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 6.0 and later
+ * CarbonLib: in CarbonLib 1.6 and later
+ * Mac OS X: in version 10.2 and later
+ * Windows: in qtmlClient.lib 6.0 and later
+ */
+EXTERN_API( OSErr )
+AddMovieToStorage(
+ Movie theMovie,
+ DataHandler dh);
+
+
+/*
+ * UpdateMovieInStorage()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 6.0 and later
+ * CarbonLib: in CarbonLib 1.6 and later
+ * Mac OS X: in version 10.2 and later
+ * Windows: in qtmlClient.lib 6.0 and later
+ */
+EXTERN_API( OSErr )
+UpdateMovieInStorage(
+ Movie theMovie,
+ DataHandler dh);
+
+
+/*
+ * HasMovieChanged()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( Boolean )
+HasMovieChanged(Movie theMovie);
+
+
+/*
+ * ClearMovieChanged()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+ClearMovieChanged(Movie theMovie);
+
+
+/*
+ * SetMovieDefaultDataRef()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+SetMovieDefaultDataRef(
+ Movie theMovie,
+ Handle dataRef,
+ OSType dataRefType);
+
+
+/*
+ * GetMovieDefaultDataRef()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+GetMovieDefaultDataRef(
+ Movie theMovie,
+ Handle * dataRef,
+ OSType * dataRefType);
+
+
+/*
+ * SetMovieAnchorDataRef()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 4.1 and later
+ * CarbonLib: in CarbonLib 1.1 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 4.1 and later
+ */
+EXTERN_API( OSErr )
+SetMovieAnchorDataRef(
+ Movie theMovie,
+ Handle dataRef,
+ OSType dataRefType);
+
+
+/*
+ * GetMovieAnchorDataRef()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 4.1 and later
+ * CarbonLib: in CarbonLib 1.1 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 4.1 and later
+ */
+EXTERN_API( OSErr )
+GetMovieAnchorDataRef(
+ Movie theMovie,
+ Handle * dataRef,
+ OSType * dataRefType,
+ long * outFlags);
+
+
+/*
+ * SetMovieColorTable()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+SetMovieColorTable(
+ Movie theMovie,
+ CTabHandle ctab);
+
+
+/*
+ * GetMovieColorTable()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+GetMovieColorTable(
+ Movie theMovie,
+ CTabHandle * ctab);
+
+
+/*
+ * FlattenMovie()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+FlattenMovie(
+ Movie theMovie,
+ long movieFlattenFlags,
+ const FSSpec * theFile,
+ OSType creator,
+ ScriptCode scriptTag,
+ long createMovieFileFlags,
+ short * resId,
+ ConstStr255Param resName);
+
+
+/*
+ * FlattenMovieData()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( Movie )
+FlattenMovieData(
+ Movie theMovie,
+ long movieFlattenFlags,
+ const FSSpec * theFile,
+ OSType creator,
+ ScriptCode scriptTag,
+ long createMovieFileFlags);
+
+
+/*
+ * FlattenMovieDataToDataRef()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 6.0 and later
+ * CarbonLib: in CarbonLib 1.6 and later
+ * Mac OS X: in version 10.2 and later
+ * Windows: in qtmlClient.lib 6.0 and later
+ */
+EXTERN_API( Movie )
+FlattenMovieDataToDataRef(
+ Movie theMovie,
+ long movieFlattenFlags,
+ Handle dataRef,
+ OSType dataRefType,
+ OSType creator,
+ ScriptCode scriptTag,
+ long createMovieFileFlags);
+
+
+/*
+ * SetMovieProgressProc()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+SetMovieProgressProc(
+ Movie theMovie,
+ MovieProgressUPP p,
+ long refcon);
+
+
+/*
+ * GetMovieProgressProc()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 4.0 and later
+ * CarbonLib: in CarbonLib 1.0.2 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 4.0 and later
+ */
+EXTERN_API( void )
+GetMovieProgressProc(
+ Movie theMovie,
+ MovieProgressUPP * p,
+ long * refcon);
+
+
+/*
+ * CreateShortcutMovieFile()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 4.0 and later
+ * CarbonLib: in CarbonLib 1.0.2 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 4.0 and later
+ */
+EXTERN_API( OSErr )
+CreateShortcutMovieFile(
+ const FSSpec * fileSpec,
+ OSType creator,
+ ScriptCode scriptTag,
+ long createMovieFileFlags,
+ Handle targetDataRef,
+ OSType targetDataRefType);
+
+
+/*
+ * MovieSearchText()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+MovieSearchText(
+ Movie theMovie,
+ Ptr text,
+ long size,
+ long searchFlags,
+ Track * searchTrack,
+ TimeValue * searchTime,
+ long * searchOffset);
+
+
+/*
+ * GetPosterBox()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+GetPosterBox(
+ Movie theMovie,
+ Rect * boxRect);
+
+
+/*
+ * SetPosterBox()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+SetPosterBox(
+ Movie theMovie,
+ const Rect * boxRect);
+
+
+/*
+ * GetMovieSegmentDisplayBoundsRgn()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( RgnHandle )
+GetMovieSegmentDisplayBoundsRgn(
+ Movie theMovie,
+ TimeValue time,
+ TimeValue duration);
+
+
+/*
+ * GetTrackSegmentDisplayBoundsRgn()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( RgnHandle )
+GetTrackSegmentDisplayBoundsRgn(
+ Track theTrack,
+ TimeValue time,
+ TimeValue duration);
+
+
+/*
+ * SetMovieCoverProcs()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+SetMovieCoverProcs(
+ Movie theMovie,
+ MovieRgnCoverUPP uncoverProc,
+ MovieRgnCoverUPP coverProc,
+ long refcon);
+
+
+/*
+ * GetMovieCoverProcs()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+GetMovieCoverProcs(
+ Movie theMovie,
+ MovieRgnCoverUPP * uncoverProc,
+ MovieRgnCoverUPP * coverProc,
+ long * refcon);
+
+
+/*
+ * GetTrackStatus()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentResult )
+GetTrackStatus(Track theTrack);
+
+
+/*
+ * GetMovieStatus()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentResult )
+GetMovieStatus(
+ Movie theMovie,
+ Track * firstProblemTrack);
+
+
+enum {
+ kMovieLoadStateError = -1L,
+ kMovieLoadStateLoading = 1000,
+ kMovieLoadStateLoaded = 2000,
+ kMovieLoadStatePlayable = 10000,
+ kMovieLoadStatePlaythroughOK = 20000,
+ kMovieLoadStateComplete = 100000L
+};
+
+/*
+ * GetMovieLoadState()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 4.1 and later
+ * CarbonLib: in CarbonLib 1.1 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 4.1 and later
+ */
+EXTERN_API( long )
+GetMovieLoadState(Movie theMovie);
+
+
+
+#if TARGET_OS_MAC
+/****
+ Thread related Movie routines
+****/
+/*
+ * AttachMovieToCurrentThread()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.3 (or QuickTime 6.4) and later
+ */
+EXTERN_API( OSErr )
+AttachMovieToCurrentThread(Movie m);
+
+
+/*
+ * DetachMovieFromCurrentThread()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.3 (or QuickTime 6.4) and later
+ */
+EXTERN_API( OSErr )
+DetachMovieFromCurrentThread(Movie m);
+
+
+/*
+ * GetMovieThreadAttachState()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.3 (or QuickTime 6.4) and later
+ */
+EXTERN_API( OSErr )
+GetMovieThreadAttachState(
+ Movie m,
+ Boolean * outAttachedToCurrentThread,
+ Boolean * outAttachedToAnyThread);
+
+
+#endif /* TARGET_OS_MAC */
+
+/****
+ CanQuickTimeOpenFile, etc.
+****/
+/* Input flags for CanQuickTimeOpenFile/DataRef */
+enum {
+ kQTDontUseDataToFindImporter = 1L << 0,
+ kQTDontLookForMovieImporterIfGraphicsImporterFound = 1L << 1,
+ kQTAllowOpeningStillImagesAsMovies = 1L << 2,
+ kQTAllowImportersThatWouldCreateNewFile = 1L << 3,
+ kQTAllowAggressiveImporters = 1L << 4 /* eg, TEXT and PICT movie importers*/
+};
+
+/* Determines whether the file could be opened using a graphics importer or opened in place as a movie. */
+/*
+ * CanQuickTimeOpenFile()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 5.0 and later
+ * CarbonLib: in CarbonLib 1.3 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 5.0 and later
+ */
+EXTERN_API( OSErr )
+CanQuickTimeOpenFile(
+ FSSpecPtr fileSpec,
+ OSType fileType,
+ OSType fileNameExtension,
+ Boolean * outCanOpenWithGraphicsImporter,
+ Boolean * outCanOpenAsMovie,
+ Boolean * outPreferGraphicsImporter,
+ UInt32 inFlags);
+
+
+/* Determines whether the file could be opened using a graphics importer or opened in place as a movie. */
+/*
+ * CanQuickTimeOpenDataRef()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 5.0 and later
+ * CarbonLib: in CarbonLib 1.3 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 5.0 and later
+ */
+EXTERN_API( OSErr )
+CanQuickTimeOpenDataRef(
+ Handle dataRef,
+ OSType dataRefType,
+ Boolean * outCanOpenWithGraphicsImporter,
+ Boolean * outCanOpenAsMovie,
+ Boolean * outPreferGraphicsImporter,
+ UInt32 inFlags);
+
+
+
+/****
+ Data Reference Utilities
+****/
+enum {
+ kQTNativeDefaultPathStyle = -1,
+ kQTPOSIXPathStyle = 0,
+ kQTHFSPathStyle = 1,
+ kQTWindowsPathStyle = 2
+};
+
+
+typedef unsigned long QTPathStyle;
+/*
+ * QTNewDataReferenceFromFSRef()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.3 (or QuickTime 6.4) and later
+ * Windows: in qtmlClient.lib 6.5 and later
+ */
+EXTERN_API( OSErr )
+QTNewDataReferenceFromFSRef(
+ const FSRef * fileRef,
+ UInt32 flags,
+ Handle * outDataRef,
+ OSType * outDataRefType);
+
+
+/*
+ * QTNewDataReferenceFromFSRefCFString()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.3 (or QuickTime 6.4) and later
+ * Windows: in qtmlClient.lib 6.5 and later
+ */
+EXTERN_API( OSErr )
+QTNewDataReferenceFromFSRefCFString(
+ const FSRef * directoryRef,
+ CFStringRef fileName,
+ UInt32 flags,
+ Handle * outDataRef,
+ OSType * outDataRefType);
+
+
+/*
+ * QTNewDataReferenceFromFSSpec()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.3 (or QuickTime 6.4) and later
+ * Windows: in qtmlClient.lib 6.5 and later
+ */
+EXTERN_API( OSErr )
+QTNewDataReferenceFromFSSpec(
+ const FSSpec * fsspec,
+ UInt32 flags,
+ Handle * outDataRef,
+ OSType * outDataRefType);
+
+
+/*
+ * QTNewDataReferenceWithDirectoryCFString()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.3 (or QuickTime 6.4) and later
+ * Windows: in qtmlClient.lib 6.5 and later
+ */
+EXTERN_API( OSErr )
+QTNewDataReferenceWithDirectoryCFString(
+ Handle inDataRef,
+ OSType inDataRefType,
+ CFStringRef targetName,
+ UInt32 flags,
+ Handle * outDataRef,
+ OSType * outDataRefType);
+
+
+/*
+ * QTNewDataReferenceFromFullPathCFString()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.3 (or QuickTime 6.4) and later
+ * Windows: in qtmlClient.lib 6.5 and later
+ */
+EXTERN_API( OSErr )
+QTNewDataReferenceFromFullPathCFString(
+ CFStringRef filePath,
+ QTPathStyle pathStyle,
+ UInt32 flags,
+ Handle * outDataRef,
+ OSType * outDataRefType);
+
+
+/*
+ * QTNewDataReferenceFromCFURL()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.3 (or QuickTime 6.4) and later
+ * Windows: in qtmlClient.lib 6.5 and later
+ */
+EXTERN_API( OSErr )
+QTNewDataReferenceFromCFURL(
+ CFURLRef url,
+ UInt32 flags,
+ Handle * outDataRef,
+ OSType * outDataRefType);
+
+
+/*
+ * QTNewDataReferenceFromURLCFString()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.3 (or QuickTime 6.4) and later
+ * Windows: in qtmlClient.lib 6.5 and later
+ */
+EXTERN_API( OSErr )
+QTNewDataReferenceFromURLCFString(
+ CFStringRef urlString,
+ UInt32 flags,
+ Handle * outDataRef,
+ OSType * outDataRefType);
+
+
+
+/*
+ * QTGetDataReferenceDirectoryDataReference()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.3 (or QuickTime 6.4) and later
+ * Windows: in qtmlClient.lib 6.5 and later
+ */
+EXTERN_API( OSErr )
+QTGetDataReferenceDirectoryDataReference(
+ Handle dataRef,
+ OSType dataRefType,
+ UInt32 flags,
+ Handle * outDataRef,
+ OSType * outDataRefType);
+
+
+/*
+ * QTGetDataReferenceTargetNameCFString()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.3 (or QuickTime 6.4) and later
+ * Windows: in qtmlClient.lib 6.5 and later
+ */
+EXTERN_API( OSErr )
+QTGetDataReferenceTargetNameCFString(
+ Handle dataRef,
+ OSType dataRefType,
+ CFStringRef * name);
+
+
+/*
+ * QTGetDataReferenceFullPathCFString()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.3 (or QuickTime 6.4) and later
+ * Windows: in qtmlClient.lib 6.5 and later
+ */
+EXTERN_API( OSErr )
+QTGetDataReferenceFullPathCFString(
+ Handle dataRef,
+ OSType dataRefType,
+ QTPathStyle style,
+ CFStringRef * outPath);
+
+
+
+/*
+ * QTGetDataHandlerDirectoryDataReference()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.3 (or QuickTime 6.4) and later
+ * Windows: in qtmlClient.lib 6.5 and later
+ */
+EXTERN_API( OSErr )
+QTGetDataHandlerDirectoryDataReference(
+ DataHandler dh,
+ UInt32 flags,
+ Handle * outDataRef,
+ OSType * outDataRefType);
+
+
+/*
+ * QTGetDataHandlerTargetNameCFString()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.3 (or QuickTime 6.4) and later
+ * Windows: in qtmlClient.lib 6.5 and later
+ */
+EXTERN_API( OSErr )
+QTGetDataHandlerTargetNameCFString(
+ DataHandler dh,
+ CFStringRef * fileName);
+
+
+/*
+ * QTGetDataHandlerFullPathCFString()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.3 (or QuickTime 6.4) and later
+ * Windows: in qtmlClient.lib 6.5 and later
+ */
+EXTERN_API( OSErr )
+QTGetDataHandlerFullPathCFString(
+ DataHandler dh,
+ QTPathStyle style,
+ CFStringRef * outPath);
+
+
+
+
+/****
+ Movie Controller support routines
+****/
+/*
+ * NewMovieController()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentInstance )
+NewMovieController(
+ Movie theMovie,
+ const Rect * movieRect,
+ long someFlags);
+
+
+/*
+ * DisposeMovieController()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+DisposeMovieController(ComponentInstance mc);
+
+
+/*
+ * ShowMovieInformation()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+ShowMovieInformation(
+ Movie theMovie,
+ ModalFilterUPP filterProc,
+ long refCon);
+
+
+
+/*****
+ Scrap routines
+*****/
+/*
+ * PutMovieOnScrap()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+PutMovieOnScrap(
+ Movie theMovie,
+ long movieScrapFlags);
+
+
+/*
+ * NewMovieFromScrap()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( Movie )
+NewMovieFromScrap(long newMovieFlags);
+
+
+
+/*****
+ DataRef routines
+*****/
+
+/*
+ * GetMediaDataRef()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+GetMediaDataRef(
+ Media theMedia,
+ short index,
+ Handle * dataRef,
+ OSType * dataRefType,
+ long * dataRefAttributes);
+
+
+/*
+ * SetMediaDataRef()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+SetMediaDataRef(
+ Media theMedia,
+ short index,
+ Handle dataRef,
+ OSType dataRefType);
+
+
+/*
+ * SetMediaDataRefAttributes()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+SetMediaDataRefAttributes(
+ Media theMedia,
+ short index,
+ long dataRefAttributes);
+
+
+/*
+ * AddMediaDataRef()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+AddMediaDataRef(
+ Media theMedia,
+ short * index,
+ Handle dataRef,
+ OSType dataRefType);
+
+
+/*
+ * GetMediaDataRefCount()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+GetMediaDataRefCount(
+ Media theMedia,
+ short * count);
+
+
+/*
+ * QTNewAlias()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 3.0 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+QTNewAlias(
+ const FSSpec * fss,
+ AliasHandle * alias,
+ Boolean minimal);
+
+
+/*****
+ Playback hint routines
+*****/
+/*
+ * SetMoviePlayHints()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+SetMoviePlayHints(
+ Movie theMovie,
+ long flags,
+ long flagsMask);
+
+
+/*
+ * SetMediaPlayHints()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+SetMediaPlayHints(
+ Media theMedia,
+ long flags,
+ long flagsMask);
+
+
+/*
+ * GetMediaPlayHints()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 3.0 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+GetMediaPlayHints(
+ Media theMedia,
+ long * flags);
+
+
+/*****
+ Load time track hints
+*****/
+enum {
+ preloadAlways = 1L << 0,
+ preloadOnlyIfEnabled = 1L << 1
+};
+
+/*
+ * SetTrackLoadSettings()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+SetTrackLoadSettings(
+ Track theTrack,
+ TimeValue preloadTime,
+ TimeValue preloadDuration,
+ long preloadFlags,
+ long defaultHints);
+
+
+/*
+ * GetTrackLoadSettings()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+GetTrackLoadSettings(
+ Track theTrack,
+ TimeValue * preloadTime,
+ TimeValue * preloadDuration,
+ long * preloadFlags,
+ long * defaultHints);
+
+
+/*****
+ Big screen TV
+*****/
+enum {
+ fullScreenHideCursor = 1L << 0,
+ fullScreenAllowEvents = 1L << 1,
+ fullScreenDontChangeMenuBar = 1L << 2,
+ fullScreenPreflightSize = 1L << 3,
+ fullScreenDontSwitchMonitorResolution = 1L << 4,
+ fullScreenCaptureDisplay = 1 << 5L, /* capturedisplay is a mac os x specific parameter */
+ fullScreenCaptureAllDisplays = 1 << 6L /* capturealldisplays is a mac os x specific parameter */
+};
+
+/*
+ * BeginFullScreen()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+BeginFullScreen(
+ Ptr * restoreState,
+ GDHandle whichGD,
+ short * desiredWidth,
+ short * desiredHeight,
+ WindowRef * newWindow,
+ RGBColor * eraseColor,
+ long flags);
+
+
+/*
+ * EndFullScreen()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+EndFullScreen(
+ Ptr fullState,
+ long flags);
+
+
+/*****
+ Wired Actions
+*****/
+/* flags for MovieExecuteWiredActions*/
+enum {
+ movieExecuteWiredActionDontExecute = 1L << 0
+};
+
+/*
+ * AddMovieExecuteWiredActionsProc()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 4.0 and later
+ * CarbonLib: in CarbonLib 1.0.2 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 4.0 and later
+ */
+EXTERN_API( OSErr )
+AddMovieExecuteWiredActionsProc(
+ Movie theMovie,
+ MovieExecuteWiredActionsUPP proc,
+ void * refCon);
+
+
+/*
+ * RemoveMovieExecuteWiredActionsProc()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 4.0 and later
+ * CarbonLib: in CarbonLib 1.0.2 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 4.0 and later
+ */
+EXTERN_API( OSErr )
+RemoveMovieExecuteWiredActionsProc(
+ Movie theMovie,
+ MovieExecuteWiredActionsUPP proc,
+ void * refCon);
+
+
+/*
+ * MovieExecuteWiredActions()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 4.0 and later
+ * CarbonLib: in CarbonLib 1.0.2 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 4.0 and later
+ */
+EXTERN_API( OSErr )
+MovieExecuteWiredActions(
+ Movie theMovie,
+ long flags,
+ QTAtomContainer actions);
+
+
+/*****
+ Keyboard Navigation/Editable Text Field Support
+*****/
+/*
+ Navigation Direction Constants
+ for MediaNavigateTargetRefCon
+*/
+enum {
+ kRefConNavigationNext = 0,
+ kRefConNavigationPrevious = 1
+};
+
+/*
+ Refcon Properties
+ for MediaRefConGetProerty/MediaRefConSetProperty
+*/
+enum {
+ kRefConPropertyCanHaveFocus = 1, /* Boolean */
+ kRefConPropertyHasFocus = 2 /* Boolean */
+};
+
+/* media properties*/
+enum {
+ kTrackFocusCanEditFlag = FOUR_CHAR_CODE('kedt'),
+ kTrackDefaultFocusFlags = FOUR_CHAR_CODE('kfoc'),
+ kTrackFocusDefaultRefcon = FOUR_CHAR_CODE('kref')
+};
+
+/* focus flags*/
+enum {
+ kTrackFocusOn = 1,
+ kTrackHandlesTabs = 2 /* this is reserved for a future release*/
+};
+
+/*****
+ Flash track properties
+*****/
+enum {
+ kFlashTrackPropertyAcceptAllClicks = FOUR_CHAR_CODE('clik') /* type of media property atom; data is a Boolean */
+};
+
+/*****
+ Sprite Toolbox
+*****/
+enum {
+ kBackgroundSpriteLayerNum = 32767
+};
+
+
+/* Sprite Properties*/
+enum {
+ kSpritePropertyMatrix = 1,
+ kSpritePropertyImageDescription = 2,
+ kSpritePropertyImageDataPtr = 3,
+ kSpritePropertyVisible = 4,
+ kSpritePropertyLayer = 5,
+ kSpritePropertyGraphicsMode = 6,
+ kSpritePropertyImageDataSize = 7,
+ kSpritePropertyActionHandlingSpriteID = 8,
+ kSpritePropertyCanBeHitTested = 9,
+ kSpritePropertyImageIndex = 100,
+ kSpriteTrackPropertyBackgroundColor = 101,
+ kSpriteTrackPropertyOffscreenBitDepth = 102,
+ kSpriteTrackPropertySampleFormat = 103,
+ kSpriteTrackPropertyScaleSpritesToScaleWorld = 104,
+ kSpriteTrackPropertyHasActions = 105,
+ kSpriteTrackPropertyVisible = 106,
+ kSpriteTrackPropertyQTIdleEventsFrequency = 107,
+ kSpriteTrackPropertyAllSpritesHitTestingMode = 108,
+ kSpriteTrackPropertyPreferredDepthInterpretationMode = 109,
+ kSpriteImagePropertyRegistrationPoint = 1000,
+ kSpriteImagePropertyGroupID = 1001
+};
+
+/* values for kSpriteTrackPropertyPreferredDepthInterpretationMode*/
+enum {
+ kSpriteTrackPreferredDepthCompatibilityMode = 0,
+ kSpriteTrackPreferredDepthModernMode = 1
+};
+
+/* values for kSpriteTrackPropertyAllSpritesHitTestingMode*/
+enum {
+ kSpriteHitTestUseSpritesOwnPropertiesMode = 0,
+ kSpriteHitTestTreatAllSpritesAsHitTestableMode = 1,
+ kSpriteHitTestTreatAllSpritesAsNotHitTestableMode = 2
+};
+
+/* special value for kSpriteTrackPropertyQTIdleEventsFrequency (the default)*/
+enum {
+ kNoQTIdleEvents = -1
+};
+
+/* GetSpriteProperties for accessing invalid SpriteWorldRegion*/
+enum {
+ kGetSpriteWorldInvalidRegionAndLeaveIntact = -1L,
+ kGetSpriteWorldInvalidRegionAndThenSetEmpty = -2L
+};
+
+/* flagsIn for SpriteWorldIdle*/
+enum {
+ kOnlyDrawToSpriteWorld = 1L << 0,
+ kSpriteWorldPreflight = 1L << 1
+};
+
+/* flagsOut for SpriteWorldIdle*/
+enum {
+ kSpriteWorldDidDraw = 1L << 0,
+ kSpriteWorldNeedsToDraw = 1L << 1
+};
+
+/* flags for sprite track sample format*/
+enum {
+ kKeyFrameAndSingleOverride = 1L << 1,
+ kKeyFrameAndAllOverrides = 1L << 2
+};
+
+/* sprite world flags*/
+enum {
+ kScaleSpritesToScaleWorld = 1L << 1,
+ kSpriteWorldHighQuality = 1L << 2,
+ kSpriteWorldDontAutoInvalidate = 1L << 3,
+ kSpriteWorldInvisible = 1L << 4,
+ kSpriteWorldDirtyInsteadOfFlush = 1L << 5
+};
+
+/*
+ * NewSpriteWorld()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+NewSpriteWorld(
+ SpriteWorld * newSpriteWorld,
+ GWorldPtr destination,
+ GWorldPtr spriteLayer,
+ RGBColor * backgroundColor,
+ GWorldPtr background);
+
+
+/*
+ * DisposeSpriteWorld()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+DisposeSpriteWorld(SpriteWorld theSpriteWorld);
+
+
+/*
+ * SetSpriteWorldClip()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+SetSpriteWorldClip(
+ SpriteWorld theSpriteWorld,
+ RgnHandle clipRgn);
+
+
+/*
+ * SetSpriteWorldMatrix()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+SetSpriteWorldMatrix(
+ SpriteWorld theSpriteWorld,
+ const MatrixRecord * matrix);
+
+
+/*
+ * SetSpriteWorldGraphicsMode()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 3.0 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+SetSpriteWorldGraphicsMode(
+ SpriteWorld theSpriteWorld,
+ long mode,
+ const RGBColor * opColor);
+
+
+/*
+ * SpriteWorldIdle()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+SpriteWorldIdle(
+ SpriteWorld theSpriteWorld,
+ long flagsIn,
+ long * flagsOut);
+
+
+/*
+ * InvalidateSpriteWorld()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+InvalidateSpriteWorld(
+ SpriteWorld theSpriteWorld,
+ Rect * invalidArea);
+
+
+/*
+ * SpriteWorldHitTest()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+SpriteWorldHitTest(
+ SpriteWorld theSpriteWorld,
+ long flags,
+ Point loc,
+ Sprite * spriteHit);
+
+
+/*
+ * SpriteHitTest()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+SpriteHitTest(
+ Sprite theSprite,
+ long flags,
+ Point loc,
+ Boolean * wasHit);
+
+
+/*
+ * DisposeAllSprites()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+DisposeAllSprites(SpriteWorld theSpriteWorld);
+
+
+/*
+ * SetSpriteWorldFlags()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 3.0 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+SetSpriteWorldFlags(
+ SpriteWorld spriteWorld,
+ long flags,
+ long flagsMask);
+
+
+/*
+ * NewSprite()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+NewSprite(
+ Sprite * newSprite,
+ SpriteWorld itsSpriteWorld,
+ ImageDescriptionHandle idh,
+ Ptr imageDataPtr,
+ MatrixRecord * matrix,
+ Boolean visible,
+ short layer);
+
+
+/*
+ * DisposeSprite()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+DisposeSprite(Sprite theSprite);
+
+
+/*
+ * InvalidateSprite()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+InvalidateSprite(Sprite theSprite);
+
+
+/*
+ * SetSpriteProperty()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+SetSpriteProperty(
+ Sprite theSprite,
+ long propertyType,
+ void * propertyValue);
+
+
+/*
+ * GetSpriteProperty()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+GetSpriteProperty(
+ Sprite theSprite,
+ long propertyType,
+ void * propertyValue);
+
+
+/*****
+ QT Atom Data Support
+*****/
+enum {
+ kParentAtomIsContainer = 0
+};
+
+/* create and dispose QTAtomContainer objects*/
+
+/*
+ * QTNewAtomContainer()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+QTNewAtomContainer(QTAtomContainer * atomData);
+
+
+/*
+ * QTDisposeAtomContainer()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+QTDisposeAtomContainer(QTAtomContainer atomData);
+
+
+/* locating nested atoms within QTAtomContainer container*/
+
+/*
+ * QTGetNextChildType()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( QTAtomType )
+QTGetNextChildType(
+ QTAtomContainer container,
+ QTAtom parentAtom,
+ QTAtomType currentChildType);
+
+
+/*
+ * QTCountChildrenOfType()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( short )
+QTCountChildrenOfType(
+ QTAtomContainer container,
+ QTAtom parentAtom,
+ QTAtomType childType);
+
+
+/*
+ * QTFindChildByIndex()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( QTAtom )
+QTFindChildByIndex(
+ QTAtomContainer container,
+ QTAtom parentAtom,
+ QTAtomType atomType,
+ short index,
+ QTAtomID * id);
+
+
+/*
+ * QTFindChildByID()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( QTAtom )
+QTFindChildByID(
+ QTAtomContainer container,
+ QTAtom parentAtom,
+ QTAtomType atomType,
+ QTAtomID id,
+ short * index);
+
+
+/*
+ * QTNextChildAnyType()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+QTNextChildAnyType(
+ QTAtomContainer container,
+ QTAtom parentAtom,
+ QTAtom currentChild,
+ QTAtom * nextChild);
+
+
+/* set a leaf atom's data*/
+/*
+ * QTSetAtomData()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+QTSetAtomData(
+ QTAtomContainer container,
+ QTAtom atom,
+ long dataSize,
+ void * atomData);
+
+
+/* extracting data*/
+/*
+ * QTCopyAtomDataToHandle()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+QTCopyAtomDataToHandle(
+ QTAtomContainer container,
+ QTAtom atom,
+ Handle targetHandle);
+
+
+/*
+ * QTCopyAtomDataToPtr()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+QTCopyAtomDataToPtr(
+ QTAtomContainer container,
+ QTAtom atom,
+ Boolean sizeOrLessOK,
+ long size,
+ void * targetPtr,
+ long * actualSize);
+
+
+/*
+ * QTGetAtomTypeAndID()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+QTGetAtomTypeAndID(
+ QTAtomContainer container,
+ QTAtom atom,
+ QTAtomType * atomType,
+ QTAtomID * id);
+
+
+/* extract a copy of an atom and all of it's children, caller disposes*/
+/*
+ * QTCopyAtom()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+QTCopyAtom(
+ QTAtomContainer container,
+ QTAtom atom,
+ QTAtomContainer * targetContainer);
+
+
+/* obtaining direct reference to atom data*/
+/*
+ * QTLockContainer()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+QTLockContainer(QTAtomContainer container);
+
+
+/*
+ * QTGetAtomDataPtr()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+QTGetAtomDataPtr(
+ QTAtomContainer container,
+ QTAtom atom,
+ long * dataSize,
+ Ptr * atomData);
+
+
+/*
+ * QTUnlockContainer()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+QTUnlockContainer(QTAtomContainer container);
+
+
+/*
+ building QTAtomContainer trees
+ creates and inserts new atom at specified index, existing atoms at or after index are moved toward end of list
+ used for Top-Down tree creation
+*/
+/*
+ * QTInsertChild()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+QTInsertChild(
+ QTAtomContainer container,
+ QTAtom parentAtom,
+ QTAtomType atomType,
+ QTAtomID id,
+ short index,
+ long dataSize,
+ void * data,
+ QTAtom * newAtom);
+
+
+/* inserts children from childrenContainer as children of parentAtom*/
+/*
+ * QTInsertChildren()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+QTInsertChildren(
+ QTAtomContainer container,
+ QTAtom parentAtom,
+ QTAtomContainer childrenContainer);
+
+
+/* destruction*/
+/*
+ * QTRemoveAtom()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+QTRemoveAtom(
+ QTAtomContainer container,
+ QTAtom atom);
+
+
+/*
+ * QTRemoveChildren()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+QTRemoveChildren(
+ QTAtomContainer container,
+ QTAtom atom);
+
+
+/* replacement must be same type as target*/
+/*
+ * QTReplaceAtom()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+QTReplaceAtom(
+ QTAtomContainer targetContainer,
+ QTAtom targetAtom,
+ QTAtomContainer replacementContainer,
+ QTAtom replacementAtom);
+
+
+/*
+ * QTSwapAtoms()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+QTSwapAtoms(
+ QTAtomContainer container,
+ QTAtom atom1,
+ QTAtom atom2);
+
+
+/*
+ * QTSetAtomID()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+QTSetAtomID(
+ QTAtomContainer container,
+ QTAtom atom,
+ QTAtomID newID);
+
+
+/*
+ * QTGetAtomParent()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 4.0 and later
+ * CarbonLib: in CarbonLib 1.0.2 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 4.0 and later
+ */
+EXTERN_API( QTAtom )
+QTGetAtomParent(
+ QTAtomContainer container,
+ QTAtom childAtom);
+
+
+/*
+ * SetMediaPropertyAtom()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+SetMediaPropertyAtom(
+ Media theMedia,
+ QTAtomContainer propertyAtom);
+
+
+/*
+ * GetMediaPropertyAtom()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+GetMediaPropertyAtom(
+ Media theMedia,
+ QTAtomContainer * propertyAtom);
+
+
+/*****
+ Tween Support
+*****/
+typedef struct TweenRecord TweenRecord;
+typedef CALLBACK_API( ComponentResult , TweenerDataProcPtr )(TweenRecord *tr, void *tweenData, long tweenDataSize, long dataDescriptionSeed, Handle dataDescription, ICMCompletionProcRecordPtr asyncCompletionProc, UniversalProcPtr transferProc, void *refCon);
+typedef STACK_UPP_TYPE(TweenerDataProcPtr) TweenerDataUPP;
+struct TweenRecord {
+ long version;
+
+ QTAtomContainer container;
+ QTAtom tweenAtom;
+ QTAtom dataAtom;
+ Fixed percent;
+
+ TweenerDataUPP dataProc;
+
+ void * private1;
+ void * private2;
+};
+
+struct TweenV1Record {
+ long version;
+
+ QTAtomContainer container;
+ QTAtom tweenAtom;
+ QTAtom dataAtom;
+ Fixed percent;
+
+ TweenerDataUPP dataProc;
+
+ void * private1;
+ void * private2;
+
+ Fract fractPercent;
+};
+typedef struct TweenV1Record TweenV1Record;
+enum {
+ kTweenRecordNoFlags = 0,
+ kTweenRecordIsAtInterruptTime = 0x00000001
+};
+
+struct TweenV2Record {
+ long version;
+
+ QTAtomContainer container;
+ QTAtom tweenAtom;
+ QTAtom dataAtom;
+ Fixed percent;
+
+ TweenerDataUPP dataProc;
+
+ void * private1;
+ void * private2;
+
+ Fract fractPercent;
+
+ long flags;
+};
+typedef struct TweenV2Record TweenV2Record;
+/*
+ * QTNewTween()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 3.0 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+QTNewTween(
+ QTTweener * tween,
+ QTAtomContainer container,
+ QTAtom tweenAtom,
+ TimeValue maxTime);
+
+
+/*
+ * QTDisposeTween()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 3.0 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+QTDisposeTween(QTTweener tween);
+
+
+/*
+ * QTDoTween()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 3.0 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+QTDoTween(
+ QTTweener tween,
+ TimeValue atTime,
+ Handle result,
+ long * resultSize,
+ TweenerDataUPP tweenDataProc,
+ void * tweenDataRefCon);
+
+
+/*
+ QTDoTweenPtr is an interrupt-safe version of QTDoTween. It has the following limitations:
+ - not all tween types support this call (those which must allocated memory), in which case they return codecUnimpErr.
+ - the QTAtomContainer used for the tween must be locked
+ - the dataSize must be large enough to contain the result
+ - this call is not supported for sequence tweens, use interpolation tweens instead
+*/
+/*
+ * QTDoTweenPtr()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 6.0 and later
+ * CarbonLib: in CarbonLib 1.6 and later
+ * Mac OS X: in version 10.2 and later
+ * Windows: in qtmlClient.lib 6.0 and later
+ */
+EXTERN_API( OSErr )
+QTDoTweenPtr(
+ QTTweener tween,
+ TimeValue atTime,
+ Ptr result,
+ long resultSize);
+
+
+
+/*****
+ Preferences
+*****/
+/*
+ * GetQuickTimePreference()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 3.0 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+GetQuickTimePreference(
+ OSType preferenceType,
+ QTAtomContainer * preferenceAtom);
+
+
+/*
+ * SetQuickTimePreference()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 3.0 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+SetQuickTimePreference(
+ OSType preferenceType,
+ QTAtomContainer preferenceAtom);
+
+
+/*****
+ Effects and dialog Support
+*****/
+/* atom types for entries in the effects list*/
+enum {
+ kEffectNameAtom = FOUR_CHAR_CODE('name'), /* name of effect */
+ kEffectTypeAtom = FOUR_CHAR_CODE('type'), /* codec sub-type for effect */
+ kEffectManufacturerAtom = FOUR_CHAR_CODE('manu') /* codec manufacturer for effect */
+};
+
+struct QTParamPreviewRecord {
+ long sourceID; /* 1 based source identifier*/
+ PicHandle sourcePicture; /* picture for preview, must not dispose until dialog is disposed*/
+};
+typedef struct QTParamPreviewRecord QTParamPreviewRecord;
+typedef QTParamPreviewRecord * QTParamPreviewPtr;
+struct QTParamDialogEventRecord {
+ EventRecord * theEvent; /* Event received by the dialog */
+ DialogRef whichDialog; /* dialog that event was directed towards */
+ short itemHit; /* dialog item which was hit */
+};
+typedef struct QTParamDialogEventRecord QTParamDialogEventRecord;
+typedef QTParamDialogEventRecord * QTParamDialogEventPtr;
+struct QTParamFetchPreviewRecord {
+ GWorldPtr theWorld; /* the world into which to draw the preview */
+ Fixed percentage; /* frame percentage (from 0.0 - 1.0) to be drawn */
+};
+typedef struct QTParamFetchPreviewRecord QTParamFetchPreviewRecord;
+typedef QTParamFetchPreviewRecord * QTParamFetchPreviewPtr;
+
+#if TARGET_API_MAC_CARBON
+/* Only available on OS X */
+enum {
+ kEffectParentWindowCarbon = 'carb'
+};
+struct QTEventLoopDescriptionRecord
+ {
+ long recordSize; /* must be == sizeof(QTEventLoopDescriptionRecord) */
+ long windowRefKind; /* kind of window reference */
+ void * parentWindow; /* parent window (for sheets) or NIL to use Carbon FrontWindow() */
+ void * eventTarget; /* EventTargetRef to receive kHICommandOK and kHICommandCancel */
+};
+
+typedef struct QTEventLoopDescriptionRecord QTEventLoopDescriptionRecord, *QTEventLoopDescriptionPtr;
+#endif
+
+
+enum {
+ pdActionConfirmDialog = 1, /* no param*/
+ pdActionSetAppleMenu = 2, /* param is MenuRef*/
+ pdActionSetEditMenu = 3, /* param is MenuRef*/
+ pdActionGetDialogValues = 4, /* param is QTAtomContainer*/
+ pdActionSetPreviewUserItem = 5, /* param is long*/
+ pdActionSetPreviewPicture = 6, /* param is QTParamPreviewPtr;*/
+ pdActionSetColorPickerEventProc = 7, /* param is UserEventUPP*/
+ pdActionSetDialogTitle = 8, /* param is StringPtr */
+ pdActionGetSubPanelMenu = 9, /* param is MenuRef* */
+ pdActionActivateSubPanel = 10, /* param is long */
+ pdActionConductStopAlert = 11, /* param is StringPtr */
+ pdActionModelessCallback = 12, /* param is QTParamDialogEventPtr */
+ pdActionFetchPreview = 13, /* param is QTParamFetchPreviewPtr */
+ pdActionSetDialogSettings = 14, /* param is QTAtomContainer */
+ pdActionGetDialogSettings = 15, /* param is QTAtomContainer */
+ pdActionGetNextSample = 16, /* param is QTAtomContainer with effect sample to change - createdDialog may be NIL */
+ pdActionGetPreviousSample = 17, /* param is QTAtomContainer with effect sample to change - createdDialog may be NIL */
+ pdActionCompactSample = 18, /* param is QTAtomContainer with effect sample to compact, - createdDialog may be NIL */
+ pdActionSetEditCallout = 19, /* param is QTParamPreviewCalloutPtr, can be NIL */
+ pdActionSetSampleTime = 20, /* param is QTParamSampleTimePtr, can be NIL */
+ pdActionDoEditCommand = 21, /* param is long with menu command (ie, mcMenuCut etc) */
+ pdActionGetSubPanelMenuValue = 22, /* param is long and returns current sub-panel value selected by the effect */
+ /* Action codes and typedefs used for custom controls within effects */
+ pdActionCustomNewControl = 23, /* param is QTCustomControlNewPtr */
+ pdActionCustomDisposeControl = 24, /* param is QTCustomControlNewPtr */
+ pdActionCustomPositionControl = 25, /* param is QTCustomControlPositionControlPtr */
+ pdActionCustomShowHideControl = 26, /* param is QTCustomControlShowHideControlPtr */
+ pdActionCustomHandleEvent = 27, /* param is QTCustomControlHandleEventPtr */
+ pdActionCustomSetFocus = 28, /* param is QTCustomControlSetFocusPtr */
+ pdActionCustomSetEditMenu = 29, /* param is QTCustomControlSetEditMenuPtr */
+ pdActionCustomSetPreviewPicture = 30, /* param is QTCustomControlSetPreviewPicturePtr */
+ pdActionCustomSetEditCallout = 31, /* param is QTCustomControlSetEditCalloutPtr */
+ pdActionCustomGetEnableValue = 32, /* param is QTCustomControlGetEnableValuePtr */
+ pdActionCustomSetSampleTime = 33, /* param is QTCustomControlSetSampleTimePtr */
+ pdActionCustomGetValue = 34, /* param is QTCustomControlGetValue */
+ pdActionCustomDoEditCommand = 35, /* param is QTCustomControlDoEditCommand */
+ /* more actions for the dialog */
+ pdActionRunInEventLoop = 36, /* param is QTEventLoopDescriptionPtr - OS X only*/
+ pdActionConvertSettingsToXML = 37, /* param is QTAtomContainer* inbound, Handle* outbound contains the XML - createdDialog may be NIL */
+ pdActionConvertSettingsToXMLWithComments = 38, /* param is QTAtomContainer* inbound, Handle* outbound contains the XML with comments - createdDialog may be NIL */
+ pdActionConvertSettingsToText = 39, /* param is QTAtomContainer* inbound, Handle* outbound contains human readable text - createdDialog may be NIL */
+ pdActionConvertXMLToSettings = 40, /* param is Handle* inbound, QTAtomContainer* outbound contains parameters - createdDialog may be NIL */
+ pdActionSetPropertyComponent = 41 /* param is QTParamComponentPropertyPtr */
+};
+
+/* Sample Time information */
+enum {
+ pdSampleTimeDisplayOptionsNone = 0x00000000
+};
+
+struct QTParamComponentPropertyRecord {
+ ComponentInstance component; /* component to call for get/set properties*/
+ OSType defaultClass; /* default property class if not overriden by a given parameter*/
+};
+typedef struct QTParamComponentPropertyRecord QTParamComponentPropertyRecord;
+typedef QTParamComponentPropertyRecord * QTParamComponentPropertyPtr;
+struct QTParamSampleTimeRecord {
+ long displayOptions;
+ TimeRecord sampleStartTime;
+ TimeValue sampleDuration;
+ long framesPerSecond; /* if 0, will cause revert to seconds display*/
+};
+typedef struct QTParamSampleTimeRecord QTParamSampleTimeRecord;
+typedef QTParamSampleTimeRecord * QTParamSampleTimePtr;
+/* Preview change callout information */
+struct QTParamPreviewCalloutRecord {
+ MoviePreviewCallOutUPP calloutProc; /* called when user makes editing changes to dialog. May be NIL. You should return true from your function. */
+ long refCon; /* passed to the callout procedure */
+};
+typedef struct QTParamPreviewCalloutRecord QTParamPreviewCalloutRecord;
+typedef QTParamPreviewCalloutRecord * QTParamPreviewCalloutPtr;
+enum {
+ pdOptionsCollectOneValue = 0x00000001, /* should collect a single value only*/
+ pdOptionsAllowOptionalInterpolations = 0x00000002, /* non-novice interpolation options are shown */
+ pdOptionsModalDialogBox = 0x00000004, /* dialog box should be modal */
+ pdOptionsEditCurrentEffectOnly = 0x00000008, /* List of effects will not be shown */
+ pdOptionsHidePreview = 0x00000010, /* Preview item will not be shown */
+ pdOptionsDisplayAsSheet = 0x00000020 /* Dialog will be used as a sheet (on platforms that support it) */
+};
+
+typedef long QTParameterDialogOptions;
+/* ------- CUSTOM EFFECT CONTROLS*/
+/*
+ Effects may choose to implement custom controls to allow the user to more easily edit complex parameters
+ that are ill-served by simple sliders or type in boxes. Effects may allow a custom control for either
+ a single parameter, or for a group of parameters.
+
+ Parameter(s) for a custom control must still be data types defined by the standard set, or for
+ complex records of data, must be defined within a group as individual parameters made up from base
+ data types (for example, a point is a group containing two Fixed point numbers).
+ This is to allow applications that do not wish to use the custom control for the effect to set values themselves.
+
+ Effects should be aware that these custom controls may be deployed by the application in either a dialog or
+ a window, with application defined background colors or patterns, along with application defined font
+ characteristics for the window.
+
+ It is recommended that effects implement custom controls only when needed, and that custom controls be used
+ for specific types of parameters (ie, point, rectangle, polygon, path) rather than the entire user interface
+ for the effect. Effects may choose to implement multiple custom controls which combine with standard controls
+ to present the total user interface. For effects which have very complex user interfaces not well suited for
+ inclusion within a single window, it is recommended to use kParameterImageIsPreset -- which allows the effect to
+ have an external editing application for parameters which may then be set within the standard UI via the open file
+ dialog or drag and drop. The Lens Flare effect's "Flare Type" is an example of such a preset.
+
+ For parameters that use a custom control to control a single parameter value, a new behavior
+ flag has been added (kCustomControl), and the behavior for the parameter should be kParameterItemControl.
+
+ For parameters that are groups, the same flag (kCustomControl) should be used, and the behavior
+ should be kParameterItemGroupDivider. Groups with the kCustomControl bit set will be implemented
+ by calling the custom control for that group -- the parameters within that group will not be processed
+ in the normal manner.
+
+ In both cases, the new customType and customID fields of the behavior must be filled in. These are
+ used in order to allow your custom control to determine which parameter is being edited in the case
+ where the custom control is used for the editing of multiple parameters. These values are passed into
+ the pdActionCustomNewControl call. Since the custom control mechanism is also used by QuickTime's
+ default effect dialogs, you should be prepared to pass onto the base effect any pdActionCustomNewControl
+ calls for type/id pairs that you do not handle yourself. When pdActionCustomNewControl is called
+ for controls of types handled by QuickTime, customType is kParameterAtomTypeAndID and customID is
+ the ID of the parameter atom.
+*/
+
+
+/*
+ pdActionCustomNewControlControl is called by application to create a new custom control or set of controls
+ for an effect parameter. When pdActionCustomNewControl is called, the effect should perform any
+ basic allocation it needs for storage and return the result in storage. The options parameter tells
+ the control if the application wishes to support interpolated, optionally interpolated, or a single
+ value parameter.
+
+ Since pdActionCustomNewControlControl may be called upon your effect for other items within the
+ dialog, it is recommended that your effect have an easy way to determine which controls it implements:
+ a) by having storage be a pointer with an OSType at the begining to mark controls
+ implemented by your code.
+ - or -
+ b) keeping track in your component globals those custom controls which you have created.
+
+ When pdActionCustomDisposeControl is called any allocation done by the control should be disposed. In addition,
+ pdActionCustomDisposeControl is the last chance the control has to commit any user changes into the sample.
+ Controls which implement type in fields typically need to commit any final user edits at this time.
+*/
+struct QTCustomControlNewRecord {
+ void * storage; /* storage allocated/disposed by the control*/
+ QTParameterDialogOptions options; /* options used to control interpolation/not*/
+ QTAtomContainer sample; /* sample that holds the data to be edited*/
+ long customType; /* custom type and ID specified by effect for creation of this control*/
+ long customID;
+};
+typedef struct QTCustomControlNewRecord QTCustomControlNewRecord;
+typedef QTCustomControlNewRecord * QTCustomControlNewPtr;
+/*
+ pdActionCustomPositionControl is called by the application to position the control within a window or dialog.
+
+ The control should determine if it will fit in the alloted area and position itself there. It should also
+ return the space taken up by the control. Note you are free to implement controls which are variable in size depending upon
+ which parameter you are editing. You need not scale your control to the requested size. If the area presented to your
+ control is too small, set didFit to false. You should still return in used the size you would have liked to use for
+ the control. The application will then try again with a new size. Note that all
+ controls must be able to fit within a minimum of 300 by 250 pixels.
+
+ Custom controls that draw text should make note of the text font, size, and style at this time in order
+ to properly display within application windows.
+
+ Note that the default state for the control is hidden. You will receive a pdActionCustomShowHideControl
+ in order to enable your control. You should not draw your control in response to pdActionCustomPositionControl.
+*/
+struct QTCustomControlPositionControlRecord {
+ void * storage; /* storage for the control*/
+ WindowPtr window; /* window to be used by the control*/
+ Rect location; /* location within the window the control may use*/
+ Rect used; /* returned by the control to indicate size it actually used*/
+ Boolean didFit; /* did the control fit in the specified area?*/
+ Boolean pad[3];
+};
+typedef struct QTCustomControlPositionControlRecord QTCustomControlPositionControlRecord;
+typedef QTCustomControlPositionControlRecord * QTCustomControlPositionControlPtr;
+/*
+ pdActionCustomShowHideControl is called when the application wishes to enable/disable your control, or
+ completely disable drawing of the control
+
+ Your control should make note of the new state (if different from the last) and perform an InvalRect()
+ on your drawing area, or you may draw your control's initial state in the case of show. You should not
+ attempt to erase your control as the result of a hide -- instead call InvalRect() and allow the application
+ to process the resulting event as appropriate.
+*/
+struct QTCustomControlShowHideControlRecord {
+ void * storage; /* storage for the control*/
+ Boolean show; /* display the control?*/
+ Boolean enable; /* enable the control (ie, black vs gray display)*/
+ Boolean pad[2];
+};
+typedef struct QTCustomControlShowHideControlRecord QTCustomControlShowHideControlRecord;
+typedef QTCustomControlShowHideControlRecord * QTCustomControlShowHideControlPtr;
+/*
+ pdActionCustomHandleEvent is called to allow your custom control to process events.
+
+ Typical controls handle the following events:
+ - activate - to draw your control in normal/gray mode
+ - update - to draw your control
+ - mouseDown - to handle clicks
+ - keyDown - to handle typing when you have focus
+ - idle - to perform idle drawing (if applicable)
+ If your control handles the entire event, set didProcess to true. If
+ you handled the event, but other controls still need the event, set didProcess to false.
+
+ If your control supports the concept of focus for the purposes of typing (such as by having
+ a type-in box for the parameter) then you set the tookFocus Boolean as part of your processing
+ of the event. It is assumed that your control will draw the appropriate focus UI as a result, and
+ the calling application will disable any focus drawing within the remainder of the UI.
+
+ By default, custom controls are not given idle time. If you need idle time, set needIdle to true
+ in response to the even that causes you to need idle (typically the taking of focus, or the first draw).
+ Your control will continue to be given idle events until you set needIdle to false in response to
+ a nullEvent.
+*/
+struct QTCustomControlHandleEventRecord {
+ void * storage; /* storage for the control*/
+ EventRecord * pEvent; /* event to process*/
+ Boolean didProcess; /* did we process entire event?*/
+ Boolean tookFocus; /* did we take focus as a result of this event (typically mouseDowns)*/
+ Boolean needIdle; /* does this control need idle events?*/
+ Boolean didEdit; /* did we edit the samples?*/
+};
+typedef struct QTCustomControlHandleEventRecord QTCustomControlHandleEventRecord;
+typedef QTCustomControlHandleEventRecord * QTCustomControlHandleEventPtr;
+/*
+ pdActionCustomSetFocus is called in order to set or advance the current focus of the user interface, typically
+ because the user has pressed the tab or shift-tab keys, or because the user clicked within the area defined by
+ your control.
+
+ Your control will be called with pdActionFocusFirst, pdActionFocusLast, or pdActionFocusOff to set or clear focus on your
+ control. Your control will be called with pdActionFocusForward or pdActionFocusBackward to cycle
+ focus within your control (if your control has multiple focus). If your control does not support focus,
+ or the focus request results in focus moving beyond your supported range, return pdActionFocusOff in
+ the focus parameter. Otherwise, return the focus that you set.
+
+ Controls which have no focus would always set focus to be pdActionFocusOff.
+
+ Controls with a single focus would set pdActionFocusFirst when requsted to set either
+ pdActionFocusFirst or pdActionFocusLast, and would set pdActionFocusOff for either
+ pdActionFocusForward or pdActionFocusBackward.
+*/
+enum {
+ pdActionFocusOff = 0, /* no focus */
+ pdActionFocusFirst = 1, /* focus on first element */
+ pdActionFocusLast = 2, /* focus on last element */
+ pdActionFocusForward = 3, /* focus on next element */
+ pdActionFocusBackward = 4 /* focus on previous element */
+};
+
+struct QTCustomControlSetFocusRecord {
+ void * storage; /* storage for the control*/
+ long focus; /* focus to set, return resulting focus*/
+};
+typedef struct QTCustomControlSetFocusRecord QTCustomControlSetFocusRecord;
+typedef QTCustomControlSetFocusRecord * QTCustomControlSetFocusPtr;
+/*
+ pdActionCustomSetEditMenu will be called to inform your custom control of the location of the edit menu.
+
+ If your control has editing boxes, this is useful in order to allow the user to perform cut/copy/paste operations
+ when focus is on one of these boxes.
+*/
+struct QTCustomControlSetEditMenuRecord {
+ void * storage; /* storage for the control*/
+ MenuHandle editMenu; /* edit menu, or NIL*/
+};
+typedef struct QTCustomControlSetEditMenuRecord QTCustomControlSetEditMenuRecord;
+typedef QTCustomControlSetEditMenuRecord * QTCustomControlSetEditMenuPtr;
+/*
+ pdActionCustomSetPreviewPicture will be called to inform your custom control of preview information that you
+ may wish to use in the drawing of your user interface.
+*/
+struct QTCustomControlSetPreviewPictureRecord {
+ void * storage; /* storage for the control*/
+ QTParamPreviewPtr preview; /* preview to set*/
+};
+typedef struct QTCustomControlSetPreviewPictureRecord QTCustomControlSetPreviewPictureRecord;
+typedef QTCustomControlSetPreviewPictureRecord * QTCustomControlSetPreviewPicturePtr;
+/*
+ pdActionCustomSetEditCallout tells your control of the need by the application to be informed of
+ changes to the parameter values (typically for the purposes of updating previews).
+
+ If a callout is available, your custom control should call it whenever a change has been
+ made to the parameter(s) that your control is editing (as a result of user actions, most typically).
+ If you choose not to implement this, live dragging or updating of values will not work.
+*/
+struct QTCustomControlSetEditCalloutRecord {
+ void * storage; /* storage for the control*/
+ QTParamPreviewCalloutPtr callout; /* requested callout, or NIL to disable*/
+};
+typedef struct QTCustomControlSetEditCalloutRecord QTCustomControlSetEditCalloutRecord;
+typedef QTCustomControlSetEditCalloutRecord * QTCustomControlSetEditCalloutPtr;
+/*
+ pdActionCustomGetEnableValue allows you to return a value for the purposes of enabling/disabling
+ other controls.
+ Most custom controls do not need to implement this call.
+
+ If your control is able to control the enabling and disabling of other parameter controls (such as is done
+ by standard pop up or enumerated type controls), you need to supply a value that can be use for greater than/less than
+ types of comparisons.
+*/
+struct QTCustomControlGetEnableValueRecord {
+ void * storage; /* storage for the control*/
+ long currentValue; /* value to compare against for enable/disable purposes*/
+};
+typedef struct QTCustomControlGetEnableValueRecord QTCustomControlGetEnableValueRecord;
+typedef QTCustomControlGetEnableValueRecord * QTCustomControlGetEnableValuePtr;
+/*
+ pdActionCustomSetSampleTime tells your control information from the application about the duration
+ and start time for the sample being edited.
+
+ Most controls do not need this information, but some may choose to use it in the interface
+ they present the user. However, this call need not be made by applications, so the custom
+ control should be prepared to run when the sample time information is not available.
+*/
+struct QTCustomControlSetSampleTimeRecord {
+ void * storage; /* storage for the control*/
+ QTParamSampleTimePtr sampleTime; /* sample time information or NIL*/
+};
+typedef struct QTCustomControlSetSampleTimeRecord QTCustomControlSetSampleTimeRecord;
+typedef QTCustomControlSetSampleTimeRecord * QTCustomControlSetSampleTimePtr;
+/*
+ pdActionCustomGetValue tells your control to store any value(s) into the specified atom container.
+
+ All custom controls must implement this call
+*/
+struct QTCustomControlGetValueRecord {
+ void * storage; /* storage for the control*/
+ QTAtomContainer sample; /* sample to store into*/
+};
+typedef struct QTCustomControlGetValueRecord QTCustomControlGetValueRecord;
+typedef QTCustomControlGetValueRecord * QTCustomControlGetValuePtr;
+/*
+ pdActionCustomDoEditCommand tells your control to handle edit commands if it allow focus and type in boxes.
+
+ All custom controls must implement this call if they support edit boxes
+*/
+struct QTCustomControlDoEditCommandRecord {
+ void * storage; /* storage for the control*/
+ long command; /* command to execute, return 0 here if processed*/
+};
+typedef struct QTCustomControlDoEditCommandRecord QTCustomControlDoEditCommandRecord;
+typedef QTCustomControlDoEditCommandRecord * QTCustomControlDoEditCommandPtr;
+typedef long QTParameterDialog;
+enum {
+ elOptionsIncludeNoneInList = 0x00000001 /* "None" effect is included in list */
+};
+
+typedef long QTEffectListOptions;
+enum {
+ effectIsRealtime = 0 /* effect can be rendered in real time */
+};
+
+/*
+ QTGetEffectsListExtended is a call that provides for
+ more advanced filtering of effects to be placed into the
+ effect list. Applications can filter on:
+ 1) number of input sources
+ 2) effect major or minor class
+ 3) custom filtering through a callback
+ The callback will be called for each effect which passes
+ the other criteria for inclusion. If the callback
+ returns a true result the effect will be included in the list.
+
+ Note that your filter proc may receive multiple effects from various
+ manufacturers. If you return true for multiple effects of a given type
+ only the one with the higher parameter version number will be included.
+ If you wish other filtering (such as effects from a given manufacturer, you
+ can do this by return false for the other effects and true for those
+ that you prefer.
+*/
+typedef CALLBACK_API( Boolean , QTEffectListFilterProcPtr )(Component effect, long effectMinSource, long effectMaxSource, OSType majorClass, OSType minorClass, void *refcon);
+typedef STACK_UPP_TYPE(QTEffectListFilterProcPtr) QTEffectListFilterUPP;
+/*
+ * QTGetEffectsList()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 3.0 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+QTGetEffectsList(
+ QTAtomContainer * returnedList,
+ long minSources,
+ long maxSources,
+ QTEffectListOptions getOptions);
+
+
+/*
+ * QTGetEffectsListExtended()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 6.0 and later
+ * CarbonLib: in CarbonLib 1.6 and later
+ * Mac OS X: in version 10.2 and later
+ * Windows: in qtmlClient.lib 6.0 and later
+ */
+EXTERN_API( OSErr )
+QTGetEffectsListExtended(
+ QTAtomContainer * returnedList,
+ long minSources,
+ long maxSources,
+ QTEffectListOptions getOptions,
+ OSType majorClass,
+ OSType minorClass,
+ QTEffectListFilterUPP filterProc,
+ void * filterRefCon);
+
+
+/*
+ * QTCreateStandardParameterDialog()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 3.0 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+QTCreateStandardParameterDialog(
+ QTAtomContainer effectList,
+ QTAtomContainer parameters,
+ QTParameterDialogOptions dialogOptions,
+ QTParameterDialog * createdDialog);
+
+
+/*
+ * QTIsStandardParameterDialogEvent()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 3.0 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+QTIsStandardParameterDialogEvent(
+ EventRecord * pEvent,
+ QTParameterDialog createdDialog);
+
+
+/*
+ * QTDismissStandardParameterDialog()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 3.0 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+QTDismissStandardParameterDialog(QTParameterDialog createdDialog);
+
+
+/*
+ * QTStandardParameterDialogDoAction()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 3.0 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+QTStandardParameterDialogDoAction(
+ QTParameterDialog createdDialog,
+ long action,
+ void * params);
+
+
+/*
+ * QTGetEffectSpeed()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 3.0 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+QTGetEffectSpeed(
+ QTAtomContainer parameters,
+ Fixed * pFPS);
+
+
+
+
+/* Movie Audio/Sound APIs*/
+
+/*
+ SetMovieAudioGain:
+ This API sets the audio gain level for the mixed audio output of a movie. This alters the
+ perceived volume of the movie's playback. The gain level is multiplicative; eg. 0.0
+ is silent, 0.5 is -6dB, 1.0 is 0dB (ie. the audio from the movie is not
+ modified), 2.0 is +6dB, etc. The gain level can be set higher than 1.0 in order
+ to allow quiet movies to be boosted in volume. Settings higher than 1.0 may result in
+ audio clipping, of course. The setting is not stored in the movie. It is only used until
+ the movie is closed, at which time it is not saved.
+ */
+/*
+ * SetMovieAudioGain()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSStatus )
+SetMovieAudioGain(
+ Movie m,
+ Float32 gain,
+ UInt32 flags);
+
+
+/*
+ * GetMovieAudioGain()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSStatus )
+GetMovieAudioGain(
+ Movie m,
+ Float32 * gain,
+ UInt32 flags);
+
+
+/*
+ SetTrackAudioGain:
+ This API sets the audio gain level for the audio output of a track. This alters the
+ perceived volume of the track's playback. The gain level is multiplicative; eg. 0.0
+ is silent, 0.5 is -6dB, 1.0 is 0dB (ie. the audio from the track is not
+ modified), 2.0 is +6dB, etc. The gain level can be set higher than 1.0 in order
+ to allow quiet tracks to be boosted in volume. Settings higher than 1.0 may result in
+ audio clipping, of course. The setting is not stored in the movie. It is only used until
+ the movie is closed, at which time it is not saved.
+ */
+/*
+ * SetTrackAudioGain()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSStatus )
+SetTrackAudioGain(
+ Track t,
+ Float32 gain,
+ UInt32 flags);
+
+
+/*
+ * GetTrackAudioGain()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSStatus )
+GetTrackAudioGain(
+ Track t,
+ Float32 * gain,
+ UInt32 flags);
+
+
+/*
+ SetMovieAudioBalance:
+ This API sets the audio balance level for the mixed audio output of a movie. -1.0
+ means full left, 0.0 means centered, and 1.0 means full right. The setting is not
+ stored in the movie. It is only used until the movie is closed, at which time it
+ is not saved.
+ */
+/*
+ * SetMovieAudioBalance()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSStatus )
+SetMovieAudioBalance(
+ Movie m,
+ Float32 leftRight,
+ UInt32 flags);
+
+
+/*
+ * GetMovieAudioBalance()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSStatus )
+GetMovieAudioBalance(
+ Movie m,
+ Float32 * leftRight,
+ UInt32 flags);
+
+
+/*
+ SetMovieAudioMute:
+ This API mutes or unmutes the mixed audio output from a movie.
+ */
+/*
+ * SetMovieAudioMute()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSStatus )
+SetMovieAudioMute(
+ Movie m,
+ Boolean muted,
+ UInt32 flags);
+
+
+/*
+ * GetMovieAudioMute()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSStatus )
+GetMovieAudioMute(
+ Movie m,
+ Boolean * muted,
+ UInt32 flags);
+
+
+/*
+ SetTrackAudioMute:
+ This API mutes or unmutes the audio output from a track.
+ */
+/*
+ * SetTrackAudioMute()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSStatus )
+SetTrackAudioMute(
+ Track t,
+ Boolean muted,
+ UInt32 flags);
+
+
+/*
+ * GetTrackAudioMute()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSStatus )
+GetTrackAudioMute(
+ Track t,
+ Boolean * muted,
+ UInt32 flags);
+
+
+
+
+/*
+ */
+enum {
+
+ /*
+ * Properties of an audio presentation (eg. a movie's audio)
+ */
+ kQTPropertyClass_Audio = FOUR_CHAR_CODE('audi')
+};
+
+
+/*
+ */
+enum {
+
+ /*
+ * kQTAudioPropertyID_Gain: Value is Float32. Get/Set/Listenable
+ * The audio gain of a movie or track. The gain level is
+ * multiplicative; eg. 0.0 is silent, 0.5 is -6dB, 1.0 is 0dB (ie.
+ * the audio from the movie is not modified), 2.0 is +6dB, etc. The
+ * gain level can be set higher than 1.0 in order to allow quiet
+ * movies/tracks to be boosted in volume. Settings higher than 1.0
+ * may result in audio clipping, of course. The setting is not stored
+ * in the movie/track. It is only used until the movie/track is
+ * disposed.
+ */
+ kQTAudioPropertyID_Gain = FOUR_CHAR_CODE('gain'), /* value is Float32. Gettable/Settable.*/
+
+ /*
+ * kQTAudioPropertyID_Mute: Value is Boolean. Get/Set/Listenable
+ * The audio mute state of a movie or track. If true, the
+ * movie/track is muted. The setting is not stored in the
+ * movie/track. It is only used until the movie/track is disposed.
+ */
+ kQTAudioPropertyID_Mute = FOUR_CHAR_CODE('mute'), /* value is Boolean. Gettable/Settable.*/
+
+ /*
+ * kQTAudioPropertyID_Balance: Value is Float32. Get/Set/Listenable
+ * The audio balance of a movie. -1.0 means full left, 0.0 means
+ * centered, and 1.0 means full right. The setting is not stored in
+ * the movie. It is only used until the movie is disposed. This is
+ * only supported for movies, not tracks.
+ */
+ kQTAudioPropertyID_Balance = FOUR_CHAR_CODE('bala'), /* value is Float32. Gettable/Settable.*/
+
+ /*
+ * kQTAudioPropertyID_RateChangesPreservePitch: Value is Boolean.
+ * Get/Set When the playback rate is not unity, audio must be
+ * resampled in order to play at the new rate. The default
+ * resampling affects the pitch of the audio (eg, playing at 2x speed
+ * raises the pitch by an octave, 1/2x lowers an octave). If this
+ * property is set on the Movie, an alternative algorithm may be
+ * used, which alters the speed without changing the pitch. As this
+ * is more computationally expensive, this property may be silently
+ * ignored on some slow CPUs. Media handlers may query this movie
+ * property and honor it when performing Scaled Edits. This property
+ * can be specified as a property to the NewMovieFromProperties()
+ * API. Currently, it has no effect when set on an open movie.
+ */
+ kQTAudioPropertyID_RateChangesPreservePitch = FOUR_CHAR_CODE('aucp'), /* value is Boolean. Gettable/Settable.*/
+
+ /*
+ * kQTAudioPropertyID_Pitch: Value is Float32. Get/Set/Listenable
+ * Movie pitch adjustment. Adjusts the pitch of all audio tracks
+ * that contribute to the AudioContext mix. Pitch control takes
+ * effect only if kQTAudioPropertyID_RateChangesPreservePitch is in
+ * effect, otherwise returns kQTMessageNotHandledErr. The Float32
+ * value is specified in cents: 0.0 == no change, 1.0 == one cent up,
+ * 100.0 == one semi-tone up, -1.0 == one cent down. The most useful
+ * ranges for pitch are +/- 1200. (ie, one octave)
+ */
+ kQTAudioPropertyID_Pitch = FOUR_CHAR_CODE('pitc'), /* value is Float32. Get/Set/Listenable.*/
+
+ /*
+ * kQTAudioPropertyID_RenderQuality: Value is UInt32. Get/Set
+ * Movie audio render quality takes effect for movie playback. UInt32
+ * values vary from 0x00 (kQTAudioRenderQuality_Min) to 0x7F
+ * (kQTAudioRenderQuality_Max). We also define a special value
+ * (kQTAudioRenderQuality_PlaybackDefault) which resets the quality
+ * settings of the playback processing chain to values that are
+ * chosen to be an optimal balance of performance and quality.
+ */
+ kQTAudioPropertyID_RenderQuality = FOUR_CHAR_CODE('qual'), /* value is UInt32. Gettable/Settable.*/
+
+ /*
+ * kQTAudioPropertyID_ChannelLayout: Value is AudioChannelLayout.
+ * Get/Set The AudioChannelLayout of a track, or other audio stream.
+ * Currently only settable/gettable for tracks. (See
+ * kQTAudioPropertyID_SummaryChannelLayout if you want to get the
+ * summary AudioChannelLayout of a movie.) Note that this is a
+ * variable sized property (since it may contain an array of
+ * ChannelDescriptions; see CoreAudioTypes.h). You must get the size
+ * first (by calling QTGetTrackPropertyInfo), allocate a struct of
+ * that size, and then get the property.
+ */
+ kQTAudioPropertyID_ChannelLayout = FOUR_CHAR_CODE('tlay'), /* value is AudioChannelLayout. Gettable/Settable.*/
+
+ /*
+ * kQTAudioPropertyID_SummaryChannelLayout: Value is
+ * AudioChannelLayout. Get-only The summary AudioChannelLayout of a
+ * movie, or other grouping of audio streams. All like-labelled
+ * channels are combined, so there are no duplicates. For example,
+ * if there is a stereo (L/R) track, 5 single-channel tracks marked
+ * Left, Right, Left Surround, Right Surround and Center, and a 4
+ * channel track marked L/R/Ls/Rs, then the summary
+ * AudioChannelLayout will be L/R/Ls/Rs/C. It will _not_ be
+ * L/R/L/R/Ls/Rs/C/L/R/Ls/Rs. Note that this is a variable sized
+ * property (since it may contain an array of ChannelDescriptions;
+ * see CoreAudioTypes.h). You must get the size first (by calling,
+ * for example, QTGetMoviePropertyInfo) allocate a struct of that
+ * size, and then get the property.
+ */
+ kQTAudioPropertyID_SummaryChannelLayout = FOUR_CHAR_CODE('clay'), /* value is AudioChannelLayout. Gettable.*/
+
+ /*
+ * kQTAudioPropertyID_DeviceChannelLayout: Value is
+ * AudioChannelLayout. Get-only The AudioChannelLayout of the device
+ * this movie is playing to. Note that this is a variable sized
+ * property (since it may contain an array of ChannelDescriptions;
+ * see CoreAudioTypes.h). You must get the size first (by calling,
+ * for example, QTGetMoviePropertyInfo) allocate a struct of that
+ * size, and then get the property.
+ */
+ kQTAudioPropertyID_DeviceChannelLayout = FOUR_CHAR_CODE('dcly'), /* value is AudioChannelLayout. Gettable.*/
+
+ /*
+ * kQTAudioPropertyID_DeviceASBD: Value is
+ * AudioStreamBasicDescription. Get-only Returns the
+ * AudioStreamBasicDescription of the device this movie is playing
+ * to. The interesting fields are the sample rate, which reflects
+ * device's current state, and the number of channels, which matches
+ * what is reported by kQTAudioPropertyID_DeviceChannelLayout.
+ */
+ kQTAudioPropertyID_DeviceASBD = FOUR_CHAR_CODE('dasd'), /* value is AudioStreamBasicDescription. Gettable.*/
+
+ /*
+ * kQTAudioPropertyID_SummaryASBD: Value is
+ * AudioStreamBasicDescription. Get-only Returns the
+ * AudioStreamBasicDescription corresponding to the Summary Mix of a
+ * movie. This will describe non-interleaved, Float32 linear PCM
+ * data, with a sample rate equal to the highest audio sample rate
+ * found among the sound tracks contributing to the AudioContext mix,
+ * and a number of channels that matches what is reported by
+ * kQTAudioPropertyID_SummaryChannelLayout.
+ */
+ kQTAudioPropertyID_SummaryASBD = FOUR_CHAR_CODE('sasd'), /* value is AudioStreamBasicDescription. Gettable.*/
+
+ /*
+ * kQTAudioPropertyID_FormatString: Value is CFStringRef. Get-only
+ * kQTAudioPropertyID_FormatString returns a localized, human
+ * readable string describing the audio format as a CFStringRef, i.e.
+ * "MPEG Layer 3". You may get this property from a SoundDescription
+ * Handle by calling QTSoundDescriptionGetProperty(), or from a
+ * StandardAudioCompression (scdi/audi) component instance by calling
+ * QTGetComponentProperty().
+ */
+ kQTAudioPropertyID_FormatString = FOUR_CHAR_CODE('fstr'), /* value is CFStringRef. Gettable.*/
+
+ /*
+ * kQTAudioPropertyID_ChannelLayoutString: Value is CFStringRef.
+ * Get-only kQTAudioPropertyID_ChannelLayoutString returns a
+ * localized, human readable string describing the audio channel
+ * layout as a CFStringRef, i.e. "5.0 (L R C Ls Rs)". You may get
+ * this property from a SoundDescription Handle by calling
+ * QTSoundDescriptionGetProperty(), or from a
+ * StandardAudioCompression (scdi/audi) component instance by calling
+ * QTGetComponentProperty().
+ */
+ kQTAudioPropertyID_ChannelLayoutString = FOUR_CHAR_CODE('lstr'), /* value is CFStringRef. Gettable.*/
+
+ /*
+ * kQTAudioPropertyID_SampleRateString: Value is CFStringRef.
+ * Get-only kQTAudioPropertyID_SampleRateString returns a localized,
+ * human readable string describing the audio sample rate as a
+ * CFStringRef, i.e. "44.100 kHz". You may get this property from a
+ * SoundDescription Handle by calling
+ * QTSoundDescriptionGetProperty(), or from a
+ * StandardAudioCompression (scdi/audi) component instance by calling
+ * QTGetComponentProperty().
+ */
+ kQTAudioPropertyID_SampleRateString = FOUR_CHAR_CODE('rstr'), /* value is CFStringRef. Gettable.*/
+
+ /*
+ * kQTAudioPropertyID_SampleSizeString: Value is CFStringRef.
+ * Get-only kQTAudioPropertyID_SampleSizeString returns a localized,
+ * human readable string describing the audio sample size as a
+ * CFStringRef, i.e. "24-bit". Note, this property will only return a
+ * valid string if the format is uncompressed (LPCM) audio. You may
+ * get this property from a SoundDescription Handle by calling
+ * QTSoundDescriptionGetProperty(), or from a
+ * StandardAudioCompression (scdi/audi) component instance by calling
+ * QTGetComponentProperty().
+ */
+ kQTAudioPropertyID_SampleSizeString = FOUR_CHAR_CODE('sstr'), /* value is CFStringRef. Gettable.*/
+
+ /*
+ * kQTAudioPropertyID_BitRateString: Value is CFStringRef. Get-only
+ * kQTAudioPropertyID_BitRateString returns a localized, human
+ * readable string describing the audio bit rate as a CFStringRef,
+ * i.e. "12 kbps". You may get this property from a SoundDescription
+ * Handle by calling QTSoundDescriptionGetProperty(), or from a
+ * StandardAudioCompression (scdi/audi) component instance by calling
+ * QTGetComponentProperty().
+ */
+ kQTAudioPropertyID_BitRateString = FOUR_CHAR_CODE('bstr'), /* value is CFStringRef. Gettable.*/
+
+ /*
+ * kQTAudioPropertyID_SummaryString: Value is CFStringRef. Get-only
+ * kQTAudioPropertyID_SummaryString returns a localized, human
+ * readable string summarizing the audio as a CFStringRef, i.e.
+ * "16-bit Integer (Big Endian), Stereo (L R), 48.000 kHz". You may
+ * get this property from a SoundDescription Handle calling
+ * QTSoundDescriptionGetProperty(), or from a
+ * StandardAudioCompression (scdi/audi) component instance by calling
+ * QTGetComponentProperty().
+ */
+ kQTAudioPropertyID_SummaryString = FOUR_CHAR_CODE('asum') /* value is CFStringRef. Gettable.*/
+};
+
+
+
+
+/*
+ * Audio Render Quality constants
+ *
+ * Summary:
+ * Render quality is an integer that ranges from
+ * kQTAudioRenderQuality_Min to kQTAudioRenderQuality_Max.
+ * kQTAudioRenderQuality_Low, kQTAudioRenderQuality_Medium, and
+ * kQTAudioRenderQuality_High are the preferred values.
+ */
+enum {
+
+ /*
+ * The maximum value.
+ */
+ kQTAudioRenderQuality_Max = 0x7F,
+
+ /*
+ * A value that increases quality but requires more computational
+ * resources.
+ */
+ kQTAudioRenderQuality_High = 0x60,
+
+ /*
+ * A value that represents a good quality/performance tradeoff.
+ */
+ kQTAudioRenderQuality_Medium = 0x40,
+
+ /*
+ * A value that reduces quality for better performance.
+ */
+ kQTAudioRenderQuality_Low = 0x20,
+
+ /*
+ * The minimum value.
+ */
+ kQTAudioRenderQuality_Min = 0x00,
+
+ /*
+ * A QuickTime-specific value that selects optimal settings for
+ * playback.
+ */
+ kQTAudioRenderQuality_PlaybackDefault = 0x8000
+};
+
+
+/* whatMixToMeter constants*/
+
+/*
+ */
+enum {
+
+ /*
+ * kQTAudioMeter_DeviceMix: Meter the movie's mix to the device
+ * channel layout. To determine the channel layout of this mix, call
+ * QTGetMovieProperty(..., kQTAudioPropertyID_DeviceChannelLayout,
+ * ...).
+ */
+ kQTAudioMeter_DeviceMix = kQTAudioPropertyID_DeviceChannelLayout,
+
+ /*
+ * kQTAudioMeter_StereoMix: Meter a stereo (two-channel) mix of the
+ * enabled sound tracks in the movie. This option is offered only for
+ * MovieAudioFrequencyMetering.
+ */
+ kQTAudioMeter_StereoMix = FOUR_CHAR_CODE('stmx'),
+
+ /*
+ * kQTAudioMeter_MonoMix: Meter a monarual (one-channel) mix of the
+ * enabled sound tracks in the movie. This option is offered only for
+ * MovieAudioFrequencyMetering.
+ */
+ kQTAudioMeter_MonoMix = FOUR_CHAR_CODE('momx')
+};
+
+/*
+ SetMovieAudioVolumeMeteringEnabled:
+ This API enables or disables volume metering of a particular mix of this movie. The only possible
+ mix to meter is currently kQTAudioMeter_DeviceMix. See kQTAudioMeter_DeviceMix above to see
+ how to determine the channel layout of the movie's device mix.
+ */
+/*
+ * SetMovieAudioVolumeMeteringEnabled()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSStatus )
+SetMovieAudioVolumeMeteringEnabled(
+ Movie m,
+ FourCharCode whatMixToMeter,
+ Boolean enabled);
+
+
+/*
+ * GetMovieAudioVolumeMeteringEnabled()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSStatus )
+GetMovieAudioVolumeMeteringEnabled(
+ Movie m,
+ FourCharCode whatMixToMeter,
+ Boolean * enabled);
+
+
+/*
+ GetMovieAudioVolumeLevels:
+ This API returns the current volume meter levels of the movie. It can return both average power
+ levels and peak hold levels. whatMixToMeter must be set to kQTAudioMeter_DeviceMix. Either
+ QTAudioVolumeLevels parameter may be nil. If non-nil, each must have its numChannels field set to
+ the number of channels in the movie's device mix, and must be allocated large enough to hold levels
+ for all those channels. See kQTAudioMeter_DeviceMix above to see how to determine the channel
+ layout of the device mix. The levels returned are measured in decibels, where 0.0 means full volume,
+ -6.0 means half volume, -12.0 means quarter volume, and -inf means silence.
+ */
+struct QTAudioVolumeLevels {
+ UInt32 numChannels;
+ Float32 level[1]; /* numChannels entries*/
+};
+typedef struct QTAudioVolumeLevels QTAudioVolumeLevels;
+/*
+ * GetMovieAudioVolumeLevels()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSStatus )
+GetMovieAudioVolumeLevels(
+ Movie m,
+ FourCharCode whatMixToMeter,
+ QTAudioVolumeLevels * pAveragePowerLevels,
+ QTAudioVolumeLevels * pPeakHoldLevels);
+
+
+/*
+ SetTrackAudioVolumeMeteringEnabled:
+ This API enables or disables volume metering of a particular track of this movie.
+ This API should be used in preference to the legacy SoundMedia interface, but
+ may interfere with its operation if both are in use at the same time.
+*/
+/*
+ * SetTrackAudioVolumeMeteringEnabled()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSStatus )
+SetTrackAudioVolumeMeteringEnabled(
+ Track t,
+ Boolean enabled);
+
+
+/*
+ * GetTrackAudioVolumeMeteringEnabled()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSStatus )
+GetTrackAudioVolumeMeteringEnabled(
+ Track t,
+ Boolean * enabled);
+
+
+
+/*
+ GetTrackAudioVolumeLevels:
+ This API returns the current volume meter levels of the track. It can return both average power
+ levels and peak hold levels. Either QTAudioVolumeLevels parameter may be nil. If non-nil,
+ each must have its numChannels field set to the number of channels of interest, and must be
+ allocated large enough to hold levels for all those channels.
+ The levels returned are measured in decibels, where 0.0 means full volume,
+ -6.0 means half volume, -12.0 means quarter volume, and -inf means silence.
+*/
+/*
+ * GetTrackAudioVolumeLevels()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSStatus )
+GetTrackAudioVolumeLevels(
+ Track t,
+ QTAudioVolumeLevels * pAveragePowerLevels,
+ QTAudioVolumeLevels * pPeakHoldLevels);
+
+
+
+/*
+ SetMovieAudioFrequencyMeteringNumBands:
+ This API configures and enables (or disables) frequency metering for a movie.
+ Note that ioNumBands is an in/out parameter. You specify the number of frequency bands you
+ want to meter, and if that number is higher than is possible (determined by, among other things,
+ the sample rate of the audio being metered), this API will return the number of bands it is
+ actually going to meter. ioNumBands can be nil or a pointer to 0 to disable metering.
+ whatMixToMeter must be set to kQTAudioMeter_StereoMix, kQTAudioMeter_MonoMix, or
+ kQTAudioMeter_DeviceMix. When metering movies playing to audio devices that offer a
+ large number of channels, it may be prohibitively expensive to perform spectral analysis
+ on every channel; in these cases, stereo or mono mix metering may be preferable.
+ */
+/*
+ * SetMovieAudioFrequencyMeteringNumBands()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSStatus )
+SetMovieAudioFrequencyMeteringNumBands(
+ Movie m,
+ FourCharCode whatMixToMeter,
+ UInt32 * ioNumBands);
+
+
+/*
+ * GetMovieAudioFrequencyMeteringNumBands()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSStatus )
+GetMovieAudioFrequencyMeteringNumBands(
+ Movie m,
+ FourCharCode whatMixToMeter,
+ UInt32 * outNumBands);
+
+
+/*
+ GetMovieAudioFrequencyMeteringBandFrequencies:
+ This API returns the actual chosen middle frequency for each band in the configured
+ frequency metering of a movie. This is useful for labeling visual meters
+ in a user interface. Frequencies are returned in Hz. whatMixToMeter must be set
+ to the same value that was passed most recently to SetMovieAudioFrequencyMeteringNumBands().
+ */
+/*
+ * GetMovieAudioFrequencyMeteringBandFrequencies()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSStatus )
+GetMovieAudioFrequencyMeteringBandFrequencies(
+ Movie m,
+ FourCharCode whatMixToMeter,
+ UInt32 numBands,
+ Float32 * outBandFrequencies);
+
+
+/*
+ GetMovieAudioFrequencyLevels:
+ This API returns the current frequency meter levels of the movie. pAveragePowerLevels should
+ have its numChannels field set to the number of channels being metered, and its numBands field
+ set to the number of bands being metered (as previously configured). pAveragePowerLevels must be
+ allocated large enough to hold levels for all bands in all channels. The levels are returned with
+ all the band levels for the first channel first, then all the band levels for the second channel, etc.
+ whatMixToMeter must be set to the same value that was passed most recently to
+ SetMovieAudioFrequencyMeteringNumBands().
+ */
+struct QTAudioFrequencyLevels {
+ UInt32 numChannels;
+ UInt32 numFrequencyBands;
+ /* numChannels * numFrequencyBands entries, with the frequency bands for a single channel stored contiguously.*/
+ Float32 level[1];
+};
+typedef struct QTAudioFrequencyLevels QTAudioFrequencyLevels;
+/*
+ * GetMovieAudioFrequencyLevels()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSStatus )
+GetMovieAudioFrequencyLevels(
+ Movie m,
+ FourCharCode whatMixToMeter,
+ QTAudioFrequencyLevels * pAveragePowerLevels);
+
+
+
+/* Movie Audio Extraction*/
+
+/*
+ MovieAudioExtractionBegin:
+ This API must be called before doing any movie audio extraction. The returned session
+ object is to be passed to the other movie audio extraction APIs. Note that the extracted
+ format defaults to the aggregate channel layout of the movie (eg. all Rights mixed together,
+ all Left Surrounds mixed together, etc), 32-bit float, de-interleaved, with the sample rate
+ set to the highest sample rate found in the movie. You can get this info, and you can also
+ set the format to be something else (as long as it is uncompressed, and you do it before
+ the first call to MovieAudioExtractionFillBuffer).
+ */
+typedef struct MovieAudioExtractionRefRecord* MovieAudioExtractionRef;
+/*
+ * MovieAudioExtractionBegin()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSStatus )
+MovieAudioExtractionBegin(
+ Movie m,
+ UInt32 flags,
+ MovieAudioExtractionRef * outSession);
+
+
+/*
+ MovieAudioExtractionEnd:
+ This API must be called when movie audio extraction is complete.
+ */
+/*
+ * MovieAudioExtractionEnd()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSStatus )
+MovieAudioExtractionEnd(MovieAudioExtractionRef session);
+
+
+/* Movie audio extraction property classes*/
+
+/*
+ */
+enum {
+
+ /*
+ * Properties of the movie being extracted from
+ */
+ kQTPropertyClass_MovieAudioExtraction_Movie = FOUR_CHAR_CODE('xmov'),
+
+ /*
+ * Properties of the output audio
+ */
+ kQTPropertyClass_MovieAudioExtraction_Audio = FOUR_CHAR_CODE('xaud')
+};
+
+/* "Movie class" property IDs*/
+
+/*
+ */
+enum {
+
+ /*
+ * kQTMovieAudioExtractionMoviePropertyID_CurrentTime: Value is
+ * TimeRecord (set & get) When setting, set the timescale to anything
+ * you want (output audio sample rate, movie timescale) When getting,
+ * the timescale will be output audio sample rate for best accuracy.
+ */
+ kQTMovieAudioExtractionMoviePropertyID_CurrentTime = FOUR_CHAR_CODE('time'), /* value is TimeRecord. Get/Set.*/
+
+ /*
+ * kQTMovieAudioExtractionMoviePropertyID_AllChannelsDiscrete: Value
+ * is Boolean (set & get) Set to implement export of all audio
+ * channels without mixing. When this is set and the extraction asbd
+ * or channel layout are read back, you will get information relating
+ * to the re-mapped movie.
+ */
+ kQTMovieAudioExtractionMoviePropertyID_AllChannelsDiscrete = FOUR_CHAR_CODE('disc'), /* value is Boolean. Get/Set.*/
+
+ /*
+ * kQTMovieAudioExtractionAudioPropertyID_RenderQuality: Value is
+ * UInt32 (set & get) Set the render quality to be used for this
+ * audio extraction session. UInt32 values vary from 0x00
+ * (kQTAudioRenderQuality_Min) to 0x7F (kQTAudioRenderQuality_Max).
+ * We also define a special value
+ * (kQTAudioRenderQuality_PlaybackDefault) which resets the quality
+ * settings to the same values that were chosen by default for
+ * playback.
+ */
+ kQTMovieAudioExtractionAudioPropertyID_RenderQuality = FOUR_CHAR_CODE('qual') /* value is UInt32. Get/Set.*/
+};
+
+
+/* "Output Audio class" property IDs*/
+
+/*
+ */
+enum {
+ /* kQTPropertyClass_MovieAudioExtraction_Audio*/
+
+ /*
+ *
+ * QTMovieAudioExtractionAudioPropertyID_AudioStreamBasicDescription:
+ * Value is AudioStreamBasicDescription. Get/Set. (get any time, set
+ * before first MovieAudioExtractionFillBuffer call) If you get this
+ * property immediately after beginning an audio extraction session,
+ * it will tell you the default extraction format for the movie.
+ * This will include the number of channels in the default movie mix.
+ * If you set the output AudioStreamBasicDescription, it is
+ * recommended that you also set the output channel layout. If your
+ * output ASBD has a different number of channels that the default
+ * extraction mix, you _must_ set the output channel layout. You can
+ * only set PCM output formats. Setting a compressed output format
+ * will fail.
+ */
+ kQTMovieAudioExtractionAudioPropertyID_AudioStreamBasicDescription = FOUR_CHAR_CODE('asbd'), /* value is AudioStreamBasicDescription. Get/Set.*/
+
+ /*
+ * kQTMovieAudioExtractionAudioPropertyID_AudioChannelLayout: Value
+ * is AudioChannelLayout. Get/Set. (get any time, set before first
+ * MovieAudioExtractionFillBuffer call) If you get this property
+ * immediately after beginning an audio extraction session, it will
+ * tell you what the channel layout is for the default extraction mix.
+ */
+ kQTMovieAudioExtractionAudioPropertyID_AudioChannelLayout = FOUR_CHAR_CODE('clay'), /* value is AudioChannelLayout. Get/Set.*/
+
+ /*
+ * kQTMovieAudioExtractionAudioPropertyID_RemainingAudioDuration:
+ * Value is TimeRecord. Get only. Returns the total duration of audio
+ * data that can be expected from the audio extraction session as
+ * currently configured. This is computed by examining all tracks
+ * that contribute to the audio mix, finding the highest end time
+ * among them, adding in all relevant tail times from any Audio
+ * Context Inserts that have been registered, and subtracting any
+ * extraction start time that has been set. If this property is
+ * queried once extraction has started, it will return the remaining
+ * duration, or zero once extraction has advanced to the end of all
+ * contributing audio tracks.
+ */
+ kQTMovieAudioExtractionAudioPropertyID_RemainingAudioDuration = FOUR_CHAR_CODE('dura') /* value is TimeRecord. Get only.*/
+};
+
+
+/*
+ * MovieAudioExtractionGetPropertyInfo()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSStatus )
+MovieAudioExtractionGetPropertyInfo(
+ MovieAudioExtractionRef session,
+ QTPropertyClass inPropClass,
+ QTPropertyID inPropID,
+ QTPropertyValueType * outPropType,
+ ByteCount * outPropValueSize,
+ UInt32 * outPropertyFlags);
+
+
+/*
+ * MovieAudioExtractionGetProperty()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSStatus )
+MovieAudioExtractionGetProperty(
+ MovieAudioExtractionRef session,
+ QTPropertyClass inPropClass,
+ QTPropertyID inPropID,
+ ByteCount inPropValueSize,
+ QTPropertyValuePtr outPropValueAddress,
+ ByteCount * outPropValueSizeUsed);
+
+
+/*
+ * MovieAudioExtractionSetProperty()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSStatus )
+MovieAudioExtractionSetProperty(
+ MovieAudioExtractionRef session,
+ QTPropertyClass inPropClass,
+ QTPropertyID inPropID,
+ ByteCount inPropValueSize,
+ ConstQTPropertyValuePtr inPropValueAddress);
+
+
+/*
+ MovieAudioExtractionFillBuffer:
+ Each call to MovieAudioExtractionFillBuffer will continue where the last call left off.
+ It will extract as many of the requested PCM frames as it can, given the limits of the
+ buffer(s) supplied, and the limits of the input movie. ioNumFrames will be updated
+ with the exact number of valid frames being returned.
+ When there is no more audio to extract from the movie, MovieAudioExtractionFillBuffer
+ will continue to return noErr, but no audio data will be returned. outFlags will have
+ the kQTMovieAudioExtractionComplete bit set in this case. It is possible that the
+ kQTMovieAudioExtractionComplete bit will accompany the last buffer of valid data.
+ */
+enum {
+ kQTMovieAudioExtractionComplete = (1L << 0)
+};
+
+/*
+ * MovieAudioExtractionFillBuffer()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSStatus )
+MovieAudioExtractionFillBuffer(
+ MovieAudioExtractionRef session,
+ UInt32 * ioNumFrames,
+ AudioBufferList * ioData,
+ UInt32 * outFlags);
+
+
+
+/* Audio Context Insert properties for MovieAudioExtraction*/
+
+/*
+ Theory of operations:
+ To register for a Movie Audio Context Insert during Movie Audio Extraction:
+ Set the kQTMovieAudioExtractionAudioPropertyID_RegisterMovieInsert
+ property on the extraction session, providing the same registry info structure
+ that is used for the QTAudioContextRegisterInsert call.
+ To register for a Track Audio Context Insert during Movie Audio Extraction:
+ Set the kQTMovieAudioExtractionAudioPropertyID_RegisterTrackInsert
+ property on the extraction session, providing a QTAudioTrackInsertRegistryInfoRef,
+ described below.
+ Note: Once extraction has begun (ie, MovieAudioExtractionFillBuffer() has been
+ called), attempts to set these properties will return qtReadOnlyErr.
+ This is consistent with the behavior of most extraction properties.
+*/
+
+
+/*
+ * QTAudioTrackInsertRegistryInfo
+ *
+ * Summary:
+ * Parameters for registering an Audio Context Track Insert during
+ * Movie Audio Extraction
+ *
+ * Discussion:
+ * This is used with the
+ * kQTMovieAudioExtractionMoviePropertyID_RegisterTrackInsert
+ * property.
+ */
+struct QTAudioTrackInsertRegistryInfo {
+
+ /*
+ * The track of the source movie on which to apply the insert.
+ */
+ Track track;
+
+ /*
+ * The Audio Context Insert registration info (channel layouts,
+ * callbacks).
+ */
+ QTAudioContextInsertRegistryInfo regInfo;
+};
+typedef struct QTAudioTrackInsertRegistryInfo QTAudioTrackInsertRegistryInfo;
+typedef QTAudioTrackInsertRegistryInfo * QTAudioTrackInsertRegistryInfoRef;
+/* Movie and Track level audio context inserts for extraction (kQTPropertyClass_MovieAudioExtraction_Audio)*/
+
+/*
+ */
+enum {
+
+ /*
+ * kQTMovieAudioExtractionAudioPropertyID_RegisterMovieInsert: Value
+ * is QTAudioContextInsertRegistryInfoRef (Get/Set) Set on an
+ * extraction session to register/unregister an Audio Context Insert
+ * for the movie summary mix. When this property is read back
+ * (MovieAudioExtractionGetProperty) the channel layout pointers will
+ * will be NULL. To unregister, supply a NULL processDataCallback (in
+ * which case the rest of the registry info will be ignored).
+ */
+ kQTMovieAudioExtractionAudioPropertyID_RegisterMovieInsert = FOUR_CHAR_CODE('regm'), /* value is QTAudioContextInsertRegistryInfoRef. Get/Set.*/
+
+ /*
+ * kQTMovieAudioExtractionAudioPropertyID_RegisterTrackInsert: Value
+ * is QTAudioTrackInsertRegistryInfoRef (Get/Set) Set on an
+ * extraction session to register/unregister an Audio Context Insert
+ * for a particular track of the movie. When this property is read
+ * back (MovieAudioExtractionGetProperty) the channel layout pointers
+ * will will be NULL. To unregister, supply a NULL
+ * processDataCallback (in which case the rest of the registry info
+ * will be ignored).
+ */
+ kQTMovieAudioExtractionAudioPropertyID_RegisterTrackInsert = FOUR_CHAR_CODE('regt') /* value is QTAudioTrackInsertRegistryInfoRef. Get/Set.*/
+};
+
+
+#define kQTMovieAudioExtractionMoviePropertyID_RegisterInsert Use kQTPropertyClass_MovieAudioExtraction_Audio / kQTMovieAudioExtractionAudioPropertyID_RegisterMovieInsert instead!
+
+/* Legacy Audio/Sound APIs*/
+
+/*
+ * GetMoviePreferredVolume()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( short )
+GetMoviePreferredVolume(Movie theMovie);
+
+
+/*
+ * SetMoviePreferredVolume()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+SetMoviePreferredVolume(
+ Movie theMovie,
+ short volume);
+
+
+/*
+ * GetMovieVolume()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( short )
+GetMovieVolume(Movie theMovie);
+
+
+/*
+ * SetMovieVolume()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+SetMovieVolume(
+ Movie theMovie,
+ short volume);
+
+
+/*
+ * GetTrackVolume()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( short )
+GetTrackVolume(Track theTrack);
+
+
+/*
+ * SetTrackVolume()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+SetTrackVolume(
+ Track theTrack,
+ short volume);
+
+
+/*
+ * GetTrackSoundLocalizationSettings()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+GetTrackSoundLocalizationSettings(
+ Track theTrack,
+ Handle * settings);
+
+
+/*
+ * SetTrackSoundLocalizationSettings()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+SetTrackSoundLocalizationSettings(
+ Track theTrack,
+ Handle settings);
+
+
+
+/* Performance properties*/
+
+
+/*
+ */
+enum {
+ kQTPropertyClass_Performance = FOUR_CHAR_CODE('perf'),
+
+ /*
+ * kQTPerformancePropertyID_MediaStallCount: Value is UInt32.
+ * Get/Set/Listenable Media stalls occur when a media handler is
+ * unable to provide its media data at the time required for seamless
+ * playback. The exact interpretation of a track's MediaStallCount
+ * property is media-handler dependent, but may indicate conditions
+ * such as a video frame not decoded in time, the sound queue runs
+ * dry, etc. When requested on a specific track, this property
+ * returns the current stall count of that track. When requested on
+ * a movie, it returns the accumulated MediaStallCounts for all the
+ * tracks in the movie. The track property may be set to zero to
+ * reset it. Setting the movie property to zero resets all the track
+ * counts. Setting the value to anything other than zero yields
+ * paramErr. The movie toolbox defers property-changed notifications
+ * to any property listeners until the next time the movie is idled.
+ */
+ kQTPerformancePropertyID_MediaStallCount = FOUR_CHAR_CODE('stal'), /* UInt32, Get/Set/Listenable */
+
+ /*
+ * kQTPerformancePropertyID_AudioIOOverloadCount: Value is UInt32.
+ * Get/Set/Listenable Audio I/O overloads occur when the
+ * high-priority audio processing thread does not provide the
+ * requested buffer of data in time to ensure seamless playback.
+ * This movie property accumulates the number of Audio Device I/O
+ * overloads that are detected during playback of a movie. I/O
+ * overloads that are detected when the movie is not playing (but
+ * other movies may be playing), are not counted. This property may
+ * be set to zero to reset the counter. Setting the value to
+ * anything other than zero yields paramErr. The movie toolbox defers
+ * property-changed notifications to any property listeners until the
+ * next time the movie is idled.
+ */
+ kQTPerformancePropertyID_AudioIOOverloadCount = FOUR_CHAR_CODE('ovct') /* UInt32, Get/Set/Listenable*/
+};
+
+
+/* Movie Visual Adjustment APIs*/
+
+
+/*
+ * Summary:
+ * Visual movie properties.
+ */
+enum {
+
+ /*
+ * Class for visual properties.
+ */
+ kQTPropertyClass_Visual = FOUR_CHAR_CODE('visu'),
+
+ /*
+ * The hue adjustment for the movie. The value is a Float32 between
+ * -1.0 and 1.0, with 0.0 meaning no adjustment. This adjustment
+ * wraps around, such that -1.0 and 1.0 yield the same result.
+ */
+ kQTVisualPropertyID_Hue = FOUR_CHAR_CODE('vhue'), /* Float32, Read/Write */
+
+ /*
+ * The color saturation adjustment for the movie. The value is a
+ * Float32 percentage (1.0f = 100%), such that 0.0 gives grayscale.
+ */
+ kQTVisualPropertyID_Saturation = FOUR_CHAR_CODE('vsat'), /* Float32, Read/Write */
+
+ /*
+ * The brightness adjustment for the movie. The value is a Float32
+ * for which -1.0 means full black, 0.0 means no adjustment, and 1.0
+ * means full white.
+ */
+ kQTVisualPropertyID_Brightness = FOUR_CHAR_CODE('vbrt'), /* Float32, Read/Write */
+
+ /*
+ * The contrast adjustment for the movie. The value is a Float32
+ * percentage (1.0f = 100%), such that 0.0 gives solid grey.
+ */
+ kQTVisualPropertyID_Contrast = FOUR_CHAR_CODE('vcon') /* Float32, Read/Write */
+};
+
+
+/*
+ * SetMovieVisualHue()
+ *
+ * Summary:
+ * This API sets the hue adjustment for the movie.
+ *
+ * Discussion:
+ * See kQTPropertyClass_Visual/kQTVisualPropertyID_Hue for details.
+ * The setting is not stored in the movie. It is only used until
+ * the movie is closed, at which time it is not saved.
+ *
+ * Parameters:
+ *
+ * movie:
+ * [in] The movie.
+ *
+ * hue:
+ * [in] New hue adjustment.
+ *
+ * flags:
+ * [in] Reserved. Pass 0.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API_C( OSStatus )
+SetMovieVisualHue(
+ Movie movie,
+ Float32 hue,
+ UInt32 flags);
+
+
+/*
+ * GetMovieVisualHue()
+ *
+ * Summary:
+ * This API gets the hue adjustment for the movie.
+ *
+ * Discussion:
+ * See kQTPropertyClass_Visual/kQTVisualPropertyID_Hue for details.
+ *
+ * Parameters:
+ *
+ * movie:
+ * [in] The movie.
+ *
+ * hueOut:
+ * [out] Current hue adjustment.
+ *
+ * flags:
+ * [in] Reserved. Pass 0.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API_C( OSStatus )
+GetMovieVisualHue(
+ Movie movie,
+ Float32 * hueOut,
+ UInt32 flags);
+
+
+
+/*
+ * SetMovieVisualSaturation()
+ *
+ * Summary:
+ * This API sets the color saturation adjustment for the movie.
+ *
+ * Discussion:
+ * See kQTPropertyClass_Visual/kQTVisualPropertyID_Saturation for
+ * details. The setting is not stored in the movie. It is only used
+ * until the movie is closed, at which time it is not saved.
+ *
+ * Parameters:
+ *
+ * movie:
+ * [in] The movie.
+ *
+ * saturation:
+ * [in] New saturation adjustment.
+ *
+ * flags:
+ * [in] Reserved. Pass 0.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API_C( OSStatus )
+SetMovieVisualSaturation(
+ Movie movie,
+ Float32 saturation,
+ UInt32 flags);
+
+
+/*
+ * GetMovieVisualSaturation()
+ *
+ * Summary:
+ * This API gets the color saturation adjustment for the movie.
+ *
+ * Discussion:
+ * See kQTPropertyClass_Visual/kQTVisualPropertyID_Saturation for
+ * details.
+ *
+ * Parameters:
+ *
+ * movie:
+ * [in] The movie.
+ *
+ * saturationOut:
+ * [out] Current saturation adjustment.
+ *
+ * flags:
+ * [in] Reserved. Pass 0.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API_C( OSStatus )
+GetMovieVisualSaturation(
+ Movie movie,
+ Float32 * saturationOut,
+ UInt32 flags);
+
+
+
+/*
+ * SetMovieVisualBrightness()
+ *
+ * Summary:
+ * This API sets the brightness adjustment for the movie.
+ *
+ * Discussion:
+ * See kQTPropertyClass_Visual/kQTVisualPropertyID_Brightness for
+ * details. The setting is not stored in the movie. It is only used
+ * until the movie is closed, at which time it is not saved.
+ *
+ * Parameters:
+ *
+ * movie:
+ * [in] The movie.
+ *
+ * brightness:
+ * [in] New brightness adjustment.
+ *
+ * flags:
+ * [in] Reserved. Pass 0.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API_C( OSStatus )
+SetMovieVisualBrightness(
+ Movie movie,
+ Float32 brightness,
+ UInt32 flags);
+
+
+/*
+ * GetMovieVisualBrightness()
+ *
+ * Summary:
+ * This API gets the brightness adjustment for the movie.
+ *
+ * Discussion:
+ * See kQTPropertyClass_Visual/kQTVisualPropertyID_Brightness for
+ * details.
+ *
+ * Parameters:
+ *
+ * movie:
+ * [in] The movie.
+ *
+ * brightnessOut:
+ * [out] Current brightness adjustment.
+ *
+ * flags:
+ * [in] Reserved. Pass 0.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API_C( OSStatus )
+GetMovieVisualBrightness(
+ Movie movie,
+ Float32 * brightnessOut,
+ UInt32 flags);
+
+
+/*
+ * SetMovieVisualContrast()
+ *
+ * Summary:
+ * This API sets the contrast adjustment for the movie.
+ *
+ * Discussion:
+ * See kQTPropertyClass_Visual/kQTVisualPropertyID_Contrast for
+ * details. The setting is not stored in the movie. It is only used
+ * until the movie is closed, at which time it is not saved.
+ *
+ * Parameters:
+ *
+ * movie:
+ * [in] The movie.
+ *
+ * contrast:
+ * [in] New contrast adjustment.
+ *
+ * flags:
+ * [in] Reserved. Pass 0.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API_C( OSStatus )
+SetMovieVisualContrast(
+ Movie movie,
+ Float32 contrast,
+ UInt32 flags);
+
+
+/*
+ * GetMovieVisualContrast()
+ *
+ * Summary:
+ * This API gets the contrast adjustment for the movie.
+ *
+ * Discussion:
+ * See kQTPropertyClass_Visual/kQTVisualPropertyID_Contrast for
+ * details.
+ *
+ * Parameters:
+ *
+ * movie:
+ * [in] The movie.
+ *
+ * contrastOut:
+ * [out] Current contrast adjustment.
+ *
+ * flags:
+ * [in] Reserved. Pass 0.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API_C( OSStatus )
+GetMovieVisualContrast(
+ Movie movie,
+ Float32 * contrastOut,
+ UInt32 flags);
+
+
+
+/* Movie Aperture APIs*/
+
+
+/*
+ * Summary:
+ * Visual properties of movies for aperture modes.
+ */
+enum {
+
+ /*
+ * You can set the aperture mode property on a movie to indicate
+ * whether aspect ratio and clean aperture correction should be
+ * performed. The values for this property have the prefix
+ * kQTApertureMode_ and are in ImageCompression.h.
+ * When a movie is in clean, production or encoded pixels aperture
+ * mode, each track's dimensions are overriden by special dimensions
+ * for that mode. The original track dimensions are preserved and can
+ * be restored by setting the movie into classic aperture mode.
+ */
+ kQTVisualPropertyID_ApertureMode = FOUR_CHAR_CODE('apmd') /* OSType, Read/Write/Listen */
+};
+
+
+/*
+ * Summary:
+ * Visual properties of tracks for aperture modes
+ *
+ * Discussion:
+ * A track's dimensions may vary depending on the movie's aperture
+ * mode. The dimensions for a given aperture mode may be accessed
+ * using these properties.
+ */
+enum {
+
+ /*
+ * The track dimensions used in QuickTime 7.0.x and earlier. Setting
+ * this property is equivalent to calling SetTrackDimensions, except
+ * that SetTrackDimensions also changes the aperture mode to
+ * kQTApertureMode_Classic, and setting this property does not.
+ */
+ kQTVisualPropertyID_ClassicDimensions = FOUR_CHAR_CODE('cldi'), /* FixedPoint, Read/Write */
+
+ /*
+ * The track dimensions to use in clean aperture mode.
+ */
+ kQTVisualPropertyID_CleanApertureDimensions = FOUR_CHAR_CODE('cadi'), /* FixedPoint, Read/Write */
+
+ /*
+ * The track dimensions to use in production aperture mode.
+ */
+ kQTVisualPropertyID_ProductionApertureDimensions = FOUR_CHAR_CODE('prdi'), /* FixedPoint, Read/Write */
+
+ /*
+ * The track dimensions to use in encoded pixels aperture mode.
+ */
+ kQTVisualPropertyID_EncodedPixelsDimensions = FOUR_CHAR_CODE('endi'), /* FixedPoint, Read/Write */
+
+ /*
+ * True if aperture mode dimensions have been set on this movie, even
+ * if they are all identical to the classic dimensions (as is the
+ * case for content with square pixels and no edge processing
+ * region).
+ * This property can also be tested on a movie, where it is true if
+ * any track has aperture mode dimensions.
+ */
+ kQTVisualPropertyID_HasApertureModeDimensions = FOUR_CHAR_CODE('hamd') /* Boolean, Read */
+};
+
+
+/*
+ * Summary:
+ * Media Characteristics
+ */
+enum {
+
+ /*
+ * Indicates that a media handler supports aperture modes, which
+ * enable video to be automatically scaled and cropped to compensate
+ * for non-square pixel aspect ratios and to trim possibly-dirty edge
+ * processing regions. The dimensions of such a track may change when
+ * the movie's aperture mode is changed.
+ */
+ kCharacteristicSupportsApertureModes = FOUR_CHAR_CODE('apmd')
+};
+
+/*
+ * SetTrackApertureModeDimensionsUsingSampleDescription()
+ *
+ * Summary:
+ * Sets a track's aperture mode dimensions using values calculated
+ * using a sample description.
+ *
+ * Discussion:
+ * This function should be used to add information needed to support
+ * aperture modes to newly created tracks. This information is
+ * calculated using the given sample description. If sampleDesc is
+ * NULL, the track's first sample description is used.
+ *
+ * Parameters:
+ *
+ * track:
+ * [in] The track.
+ *
+ * sampleDesc:
+ * [in] The sample description handle.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.5 (or QuickTime 7.1) and later
+ */
+EXTERN_API_C( OSErr )
+SetTrackApertureModeDimensionsUsingSampleDescription(
+ Track track,
+ SampleDescriptionHandle sampleDesc); /* can be NULL */
+
+
+/*
+ * GenerateMovieApertureModeDimensions()
+ *
+ * Summary:
+ * Examines a movie and sets up track aperture mode dimensions.
+ *
+ * Discussion:
+ * This function can be used to add information needed to support
+ * aperture modes to movies created with applications and/or
+ * versions of QuickTime that did not support aperture mode
+ * dimensions. If the image descriptions in video tracks lack tags
+ * describing clean aperture and pixel aspect ratio information, the
+ * media data may be scanned to see if the correct values can be
+ * divined and attached. Then the aperture mode dimensions are
+ * calculated and set for each track. Afterwards, the
+ * kQTVisualPropertyID_HasApertureModeDimensions property will be
+ * set to true for these tracks. Tracks which do not support
+ * aperture modes are not changed.
+ *
+ * Parameters:
+ *
+ * movie:
+ * [in] The movie.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.5 (or QuickTime 7.1) and later
+ */
+EXTERN_API_C( OSErr )
+GenerateMovieApertureModeDimensions(Movie movie);
+
+
+/*
+ * GenerateTrackApertureModeDimensions()
+ *
+ * Summary:
+ * Examines a track and sets up aperture mode dimensions.
+ *
+ * Discussion:
+ * This function can be used to add information needed to support
+ * aperture modes to tracks created with applications and/or
+ * versions of QuickTime that did not support aperture mode
+ * dimensions. If the image descriptions in video tracks lack tags
+ * describing clean aperture and pixel aspect ratio information, the
+ * media data may be scanned to see if the correct values can be
+ * divined and attached. Then the aperture mode dimensions are
+ * calculated and set. Afterwards, the
+ * kQTVisualPropertyID_HasApertureModeDimensions property will be
+ * set to true for these tracks. Tracks which do not support
+ * aperture modes are not changed.
+ *
+ * Parameters:
+ *
+ * track:
+ * [in] The track.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.5 (or QuickTime 7.1) and later
+ */
+EXTERN_API_C( OSErr )
+GenerateTrackApertureModeDimensions(Track track);
+
+
+/*
+ * RemoveMovieApertureModeDimensions()
+ *
+ * Summary:
+ * Removes aperture mode dimension information from a movie.
+ *
+ * Discussion:
+ * This function removes aperture mode dimension information from a
+ * movie's tracks. It does not attempt to modify sample
+ * descriptions, so it may not completely reverse the effect of
+ * GenerateMovieApertureModeDimensions. It sets the
+ * kQTVisualPropertyID_HasApertureModeDimensions property to false.
+ *
+ * Parameters:
+ *
+ * movie:
+ * [in] The movie.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.5 (or QuickTime 7.1) and later
+ */
+EXTERN_API_C( OSErr )
+RemoveMovieApertureModeDimensions(Movie movie);
+
+
+/*
+ * RemoveTrackApertureModeDimensions()
+ *
+ * Summary:
+ * Removes aperture mode dimension information from a track.
+ *
+ * Discussion:
+ * This function removes aperture mode dimension information from a
+ * track. It does not attempt to modify sample descriptions, so it
+ * may not completely reverse the effect of
+ * GenerateTrackApertureModeDimensions. It sets the
+ * kQTVisualPropertyID_HasApertureModeDimensions property to false.
+ *
+ * Parameters:
+ *
+ * track:
+ * [in] The track.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.5 (or QuickTime 7.1) and later
+ */
+EXTERN_API_C( OSErr )
+RemoveTrackApertureModeDimensions(Track track);
+
+
+
+/*****
+ Error reporting
+*****/
+struct QTErrorReplacementRecord {
+ long numEntries;
+ StringPtr replacementString[1]; /* array of numEntries StringPtrs (each String is allocated separately).*/
+};
+typedef struct QTErrorReplacementRecord QTErrorReplacementRecord;
+typedef QTErrorReplacementRecord * QTErrorReplacementPtr;
+/*
+ QTAddMovieError is used to add orthogonal errors to a list of errors that will
+ later be reported (at the end of an import or playback, for example). Errors are stored
+ in 'qter' resources within the component.
+
+ QTAddMovieError(Movie addTo, // in: movie to add error to
+ Component adder, // in: component which is adding the error
+ long errorCode, // in: error code being added
+ QTErrorReplacementPtr stringReplacements);// in: list of strings to subsitute (in order) for "^1", "^2", etc
+*/
+/*
+ * QTAddMovieError()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 6.0 and later
+ * CarbonLib: in CarbonLib 1.6 and later
+ * Mac OS X: in version 10.2 and later
+ * Windows: in qtmlClient.lib 6.0 and later
+ */
+EXTERN_API( OSErr )
+QTAddMovieError(
+ Movie movieH,
+ Component c,
+ long errorCode,
+ QTErrorReplacementPtr stringReplacements);
+
+
+
+/*****
+ Access Keys
+*****/
+enum {
+ kAccessKeyAtomType = FOUR_CHAR_CODE('acky')
+};
+
+enum {
+ kAccessKeySystemFlag = 1L << 0
+};
+
+/*
+ * QTGetAccessKeys()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 3.0 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+QTGetAccessKeys(
+ Str255 accessKeyType,
+ long flags,
+ QTAtomContainer * keys);
+
+
+/*
+ * QTRegisterAccessKey()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 3.0 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+QTRegisterAccessKey(
+ Str255 accessKeyType,
+ long flags,
+ Handle accessKey);
+
+
+/*
+ * QTUnregisterAccessKey()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 3.0 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+QTUnregisterAccessKey(
+ Str255 accessKeyType,
+ long flags,
+ Handle accessKey);
+
+
+/*****
+ Content Restrictions
+*****/
+
+/*
+ * QTGetMovieRestrictions()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 6.0 and later
+ * CarbonLib: in CarbonLib 1.6 and later
+ * Mac OS X: in version 10.2 and later
+ * Windows: in qtmlClient.lib 6.0 and later
+ */
+EXTERN_API( OSErr )
+QTGetMovieRestrictions(
+ Movie theMovie,
+ QTRestrictionSet * outRestrictionSet,
+ UInt32 * outSeed);
+
+
+
+/*
+ * QTRestrictionsGetInfo()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 6.0 and later
+ * CarbonLib: in CarbonLib 1.6 and later
+ * Mac OS X: in version 10.2 and later
+ * Windows: in qtmlClient.lib 6.0 and later
+ */
+EXTERN_API( OSErr )
+QTRestrictionsGetInfo(
+ QTRestrictionSet inRestrictionSet,
+ long * outRestrictionClassCount,
+ long * outSeed);
+
+
+/*
+ * QTRestrictionsGetIndClass()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 6.0 and later
+ * CarbonLib: in CarbonLib 1.6 and later
+ * Mac OS X: in version 10.2 and later
+ * Windows: in qtmlClient.lib 6.0 and later
+ */
+EXTERN_API( OSErr )
+QTRestrictionsGetIndClass(
+ QTRestrictionSet inRestrictionSet,
+ long inIndex,
+ OSType * outClass);
+
+
+/*
+ * QTRestrictionsGetItem()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 6.0 and later
+ * CarbonLib: in CarbonLib 1.6 and later
+ * Mac OS X: in version 10.2 and later
+ * Windows: in qtmlClient.lib 6.0 and later
+ */
+EXTERN_API( OSErr )
+QTRestrictionsGetItem(
+ QTRestrictionSet inRestrictionSet,
+ OSType inRestrictionClass,
+ UInt32 * outRestrictions);
+
+
+/*
+ * QTGetSupportedRestrictions()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 6.0 and later
+ * CarbonLib: in CarbonLib 1.6 and later
+ * Mac OS X: in version 10.2 and later
+ * Windows: in qtmlClient.lib 6.0 and later
+ */
+EXTERN_API( OSErr )
+QTGetSupportedRestrictions(
+ OSType inRestrictionClass,
+ UInt32 * outRestrictionIDs);
+
+
+/*
+ * QTCreateUUID()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 6.0 and later
+ * CarbonLib: in CarbonLib 1.6 and later
+ * Mac OS X: in version 10.2 and later
+ * Windows: in qtmlClient.lib 6.0 and later
+ */
+EXTERN_API( OSErr )
+QTCreateUUID(
+ QTUUID * outUUID,
+ long creationFlags);
+
+
+/*
+ * QTEqualUUIDs()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 6.0 and later
+ * CarbonLib: in CarbonLib 1.6 and later
+ * Mac OS X: in version 10.2 and later
+ * Windows: in qtmlClient.lib 6.0 and later
+ */
+EXTERN_API( Boolean )
+QTEqualUUIDs(
+ const QTUUID * uuid1,
+ const QTUUID * uuid2);
+
+
+
+
+/*****
+ Time table
+*****/
+/*
+ * MakeTrackTimeTable()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 3.0 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+MakeTrackTimeTable(
+ Track trackH,
+ long ** offsets,
+ TimeValue startTime,
+ TimeValue endTime,
+ TimeValue timeIncrement,
+ short firstDataRefIndex,
+ short lastDataRefIndex,
+ long * retdataRefSkew);
+
+
+/*
+ * MakeMediaTimeTable()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 3.0 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+MakeMediaTimeTable(
+ Media theMedia,
+ long ** offsets,
+ TimeValue startTime,
+ TimeValue endTime,
+ TimeValue timeIncrement,
+ short firstDataRefIndex,
+ short lastDataRefIndex,
+ long * retdataRefSkew);
+
+
+/*
+ * GetMaxLoadedTimeInMovie()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 3.0 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+GetMaxLoadedTimeInMovie(
+ Movie theMovie,
+ TimeValue * time);
+
+
+/*
+ * QTMovieNeedsTimeTable()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 3.0 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+QTMovieNeedsTimeTable(
+ Movie theMovie,
+ Boolean * needsTimeTable);
+
+
+/*
+ * QTGetDataRefMaxFileOffset()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 3.0 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+QTGetDataRefMaxFileOffset(
+ Movie movieH,
+ OSType dataRefType,
+ Handle dataRef,
+ long * offset);
+
+
+
+enum {
+ kQTIdlePriority = 10,
+ kQTNonRealTimePriority = 20,
+ kQTRealTimeSharedPriority = 25,
+ kQTRealTimePriority = 30
+};
+
+
+/*
+ * NewQTCallBackUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( QTCallBackUPP )
+NewQTCallBackUPP(QTCallBackProcPtr userRoutine);
+#if !OPAQUE_UPP_TYPES
+ enum { uppQTCallBackProcInfo = 0x000003C0 }; /* pascal no_return_value Func(4_bytes, 4_bytes) */
+ #ifdef __cplusplus
+ inline DEFINE_API_C(QTCallBackUPP) NewQTCallBackUPP(QTCallBackProcPtr userRoutine) { return (QTCallBackUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQTCallBackProcInfo, GetCurrentArchitecture()); }
+ #else
+ #define NewQTCallBackUPP(userRoutine) (QTCallBackUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQTCallBackProcInfo, GetCurrentArchitecture())
+ #endif
+#endif
+
+/*
+ * NewQTSyncTaskUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( QTSyncTaskUPP )
+NewQTSyncTaskUPP(QTSyncTaskProcPtr userRoutine);
+#if !OPAQUE_UPP_TYPES
+ enum { uppQTSyncTaskProcInfo = 0x000000C0 }; /* pascal no_return_value Func(4_bytes) */
+ #ifdef __cplusplus
+ inline DEFINE_API_C(QTSyncTaskUPP) NewQTSyncTaskUPP(QTSyncTaskProcPtr userRoutine) { return (QTSyncTaskUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQTSyncTaskProcInfo, GetCurrentArchitecture()); }
+ #else
+ #define NewQTSyncTaskUPP(userRoutine) (QTSyncTaskUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQTSyncTaskProcInfo, GetCurrentArchitecture())
+ #endif
+#endif
+
+/*
+ * NewMovieRgnCoverUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( MovieRgnCoverUPP )
+NewMovieRgnCoverUPP(MovieRgnCoverProcPtr userRoutine);
+#if !OPAQUE_UPP_TYPES
+ enum { uppMovieRgnCoverProcInfo = 0x00000FE0 }; /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes) */
+ #ifdef __cplusplus
+ inline DEFINE_API_C(MovieRgnCoverUPP) NewMovieRgnCoverUPP(MovieRgnCoverProcPtr userRoutine) { return (MovieRgnCoverUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppMovieRgnCoverProcInfo, GetCurrentArchitecture()); }
+ #else
+ #define NewMovieRgnCoverUPP(userRoutine) (MovieRgnCoverUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppMovieRgnCoverProcInfo, GetCurrentArchitecture())
+ #endif
+#endif
+
+/*
+ * NewMovieProgressUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( MovieProgressUPP )
+NewMovieProgressUPP(MovieProgressProcPtr userRoutine);
+#if !OPAQUE_UPP_TYPES
+ enum { uppMovieProgressProcInfo = 0x0000FAE0 }; /* pascal 2_bytes Func(4_bytes, 2_bytes, 2_bytes, 4_bytes, 4_bytes) */
+ #ifdef __cplusplus
+ inline DEFINE_API_C(MovieProgressUPP) NewMovieProgressUPP(MovieProgressProcPtr userRoutine) { return (MovieProgressUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppMovieProgressProcInfo, GetCurrentArchitecture()); }
+ #else
+ #define NewMovieProgressUPP(userRoutine) (MovieProgressUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppMovieProgressProcInfo, GetCurrentArchitecture())
+ #endif
+#endif
+
+/*
+ * NewMovieDrawingCompleteUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( MovieDrawingCompleteUPP )
+NewMovieDrawingCompleteUPP(MovieDrawingCompleteProcPtr userRoutine);
+#if !OPAQUE_UPP_TYPES
+ enum { uppMovieDrawingCompleteProcInfo = 0x000003E0 }; /* pascal 2_bytes Func(4_bytes, 4_bytes) */
+ #ifdef __cplusplus
+ inline DEFINE_API_C(MovieDrawingCompleteUPP) NewMovieDrawingCompleteUPP(MovieDrawingCompleteProcPtr userRoutine) { return (MovieDrawingCompleteUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppMovieDrawingCompleteProcInfo, GetCurrentArchitecture()); }
+ #else
+ #define NewMovieDrawingCompleteUPP(userRoutine) (MovieDrawingCompleteUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppMovieDrawingCompleteProcInfo, GetCurrentArchitecture())
+ #endif
+#endif
+
+/*
+ * NewTrackTransferUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( TrackTransferUPP )
+NewTrackTransferUPP(TrackTransferProcPtr userRoutine);
+#if !OPAQUE_UPP_TYPES
+ enum { uppTrackTransferProcInfo = 0x000003E0 }; /* pascal 2_bytes Func(4_bytes, 4_bytes) */
+ #ifdef __cplusplus
+ inline DEFINE_API_C(TrackTransferUPP) NewTrackTransferUPP(TrackTransferProcPtr userRoutine) { return (TrackTransferUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppTrackTransferProcInfo, GetCurrentArchitecture()); }
+ #else
+ #define NewTrackTransferUPP(userRoutine) (TrackTransferUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppTrackTransferProcInfo, GetCurrentArchitecture())
+ #endif
+#endif
+
+/*
+ * NewGetMovieUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( GetMovieUPP )
+NewGetMovieUPP(GetMovieProcPtr userRoutine);
+#if !OPAQUE_UPP_TYPES
+ enum { uppGetMovieProcInfo = 0x00003FE0 }; /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes, 4_bytes) */
+ #ifdef __cplusplus
+ inline DEFINE_API_C(GetMovieUPP) NewGetMovieUPP(GetMovieProcPtr userRoutine) { return (GetMovieUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppGetMovieProcInfo, GetCurrentArchitecture()); }
+ #else
+ #define NewGetMovieUPP(userRoutine) (GetMovieUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppGetMovieProcInfo, GetCurrentArchitecture())
+ #endif
+#endif
+
+/*
+ * NewMoviePreviewCallOutUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( MoviePreviewCallOutUPP )
+NewMoviePreviewCallOutUPP(MoviePreviewCallOutProcPtr userRoutine);
+#if !OPAQUE_UPP_TYPES
+ enum { uppMoviePreviewCallOutProcInfo = 0x000000D0 }; /* pascal 1_byte Func(4_bytes) */
+ #ifdef __cplusplus
+ inline DEFINE_API_C(MoviePreviewCallOutUPP) NewMoviePreviewCallOutUPP(MoviePreviewCallOutProcPtr userRoutine) { return (MoviePreviewCallOutUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppMoviePreviewCallOutProcInfo, GetCurrentArchitecture()); }
+ #else
+ #define NewMoviePreviewCallOutUPP(userRoutine) (MoviePreviewCallOutUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppMoviePreviewCallOutProcInfo, GetCurrentArchitecture())
+ #endif
+#endif
+
+/*
+ * NewTextMediaUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( TextMediaUPP )
+NewTextMediaUPP(TextMediaProcPtr userRoutine);
+#if !OPAQUE_UPP_TYPES
+ enum { uppTextMediaProcInfo = 0x00003FE0 }; /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes, 4_bytes) */
+ #ifdef __cplusplus
+ inline DEFINE_API_C(TextMediaUPP) NewTextMediaUPP(TextMediaProcPtr userRoutine) { return (TextMediaUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppTextMediaProcInfo, GetCurrentArchitecture()); }
+ #else
+ #define NewTextMediaUPP(userRoutine) (TextMediaUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppTextMediaProcInfo, GetCurrentArchitecture())
+ #endif
+#endif
+
+/*
+ * NewActionsUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( ActionsUPP )
+NewActionsUPP(ActionsProcPtr userRoutine);
+#if !OPAQUE_UPP_TYPES
+ enum { uppActionsProcInfo = 0x00003FE0 }; /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes, 4_bytes) */
+ #ifdef __cplusplus
+ inline DEFINE_API_C(ActionsUPP) NewActionsUPP(ActionsProcPtr userRoutine) { return (ActionsUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppActionsProcInfo, GetCurrentArchitecture()); }
+ #else
+ #define NewActionsUPP(userRoutine) (ActionsUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppActionsProcInfo, GetCurrentArchitecture())
+ #endif
+#endif
+
+/*
+ * NewDoMCActionUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0.2 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( DoMCActionUPP )
+NewDoMCActionUPP(DoMCActionProcPtr userRoutine);
+#if !OPAQUE_UPP_TYPES
+ enum { uppDoMCActionProcInfo = 0x00003EE0 }; /* pascal 2_bytes Func(4_bytes, 2_bytes, 4_bytes, 4_bytes) */
+ #ifdef __cplusplus
+ inline DEFINE_API_C(DoMCActionUPP) NewDoMCActionUPP(DoMCActionProcPtr userRoutine) { return (DoMCActionUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppDoMCActionProcInfo, GetCurrentArchitecture()); }
+ #else
+ #define NewDoMCActionUPP(userRoutine) (DoMCActionUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppDoMCActionProcInfo, GetCurrentArchitecture())
+ #endif
+#endif
+
+/*
+ * NewMovieExecuteWiredActionsUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0.2 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( MovieExecuteWiredActionsUPP )
+NewMovieExecuteWiredActionsUPP(MovieExecuteWiredActionsProcPtr userRoutine);
+#if !OPAQUE_UPP_TYPES
+ enum { uppMovieExecuteWiredActionsProcInfo = 0x00003FE0 }; /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes, 4_bytes) */
+ #ifdef __cplusplus
+ inline DEFINE_API_C(MovieExecuteWiredActionsUPP) NewMovieExecuteWiredActionsUPP(MovieExecuteWiredActionsProcPtr userRoutine) { return (MovieExecuteWiredActionsUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppMovieExecuteWiredActionsProcInfo, GetCurrentArchitecture()); }
+ #else
+ #define NewMovieExecuteWiredActionsUPP(userRoutine) (MovieExecuteWiredActionsUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppMovieExecuteWiredActionsProcInfo, GetCurrentArchitecture())
+ #endif
+#endif
+
+/*
+ * NewMoviePrePrerollCompleteUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0.2 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( MoviePrePrerollCompleteUPP )
+NewMoviePrePrerollCompleteUPP(MoviePrePrerollCompleteProcPtr userRoutine);
+#if !OPAQUE_UPP_TYPES
+ enum { uppMoviePrePrerollCompleteProcInfo = 0x00000EC0 }; /* pascal no_return_value Func(4_bytes, 2_bytes, 4_bytes) */
+ #ifdef __cplusplus
+ inline DEFINE_API_C(MoviePrePrerollCompleteUPP) NewMoviePrePrerollCompleteUPP(MoviePrePrerollCompleteProcPtr userRoutine) { return (MoviePrePrerollCompleteUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppMoviePrePrerollCompleteProcInfo, GetCurrentArchitecture()); }
+ #else
+ #define NewMoviePrePrerollCompleteUPP(userRoutine) (MoviePrePrerollCompleteUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppMoviePrePrerollCompleteProcInfo, GetCurrentArchitecture())
+ #endif
+#endif
+
+/*
+ * NewQTNextTaskNeededSoonerCallbackUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.6 and later
+ * Mac OS X: in version 10.2 and later
+ */
+EXTERN_API_C( QTNextTaskNeededSoonerCallbackUPP )
+NewQTNextTaskNeededSoonerCallbackUPP(QTNextTaskNeededSoonerCallbackProcPtr userRoutine);
+#if !OPAQUE_UPP_TYPES
+ enum { uppQTNextTaskNeededSoonerCallbackProcInfo = 0x00000FC0 }; /* pascal no_return_value Func(4_bytes, 4_bytes, 4_bytes) */
+ #ifdef __cplusplus
+ inline DEFINE_API_C(QTNextTaskNeededSoonerCallbackUPP) NewQTNextTaskNeededSoonerCallbackUPP(QTNextTaskNeededSoonerCallbackProcPtr userRoutine) { return (QTNextTaskNeededSoonerCallbackUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQTNextTaskNeededSoonerCallbackProcInfo, GetCurrentArchitecture()); }
+ #else
+ #define NewQTNextTaskNeededSoonerCallbackUPP(userRoutine) (QTNextTaskNeededSoonerCallbackUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQTNextTaskNeededSoonerCallbackProcInfo, GetCurrentArchitecture())
+ #endif
+#endif
+
+/*
+ * NewMoviesErrorUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( MoviesErrorUPP )
+NewMoviesErrorUPP(MoviesErrorProcPtr userRoutine);
+#if !OPAQUE_UPP_TYPES
+ enum { uppMoviesErrorProcInfo = 0x00000380 }; /* pascal no_return_value Func(2_bytes, 4_bytes) */
+ #ifdef __cplusplus
+ inline DEFINE_API_C(MoviesErrorUPP) NewMoviesErrorUPP(MoviesErrorProcPtr userRoutine) { return (MoviesErrorUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppMoviesErrorProcInfo, GetCurrentArchitecture()); }
+ #else
+ #define NewMoviesErrorUPP(userRoutine) (MoviesErrorUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppMoviesErrorProcInfo, GetCurrentArchitecture())
+ #endif
+#endif
+
+/*
+ * NewTweenerDataUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( TweenerDataUPP )
+NewTweenerDataUPP(TweenerDataProcPtr userRoutine);
+#if !OPAQUE_UPP_TYPES
+ enum { uppTweenerDataProcInfo = 0x003FFFF0 }; /* pascal 4_bytes Func(4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes) */
+ #ifdef __cplusplus
+ inline DEFINE_API_C(TweenerDataUPP) NewTweenerDataUPP(TweenerDataProcPtr userRoutine) { return (TweenerDataUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppTweenerDataProcInfo, GetCurrentArchitecture()); }
+ #else
+ #define NewTweenerDataUPP(userRoutine) (TweenerDataUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppTweenerDataProcInfo, GetCurrentArchitecture())
+ #endif
+#endif
+
+/*
+ * NewQTEffectListFilterUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.6 and later
+ * Mac OS X: in version 10.2 and later
+ */
+EXTERN_API_C( QTEffectListFilterUPP )
+NewQTEffectListFilterUPP(QTEffectListFilterProcPtr userRoutine);
+#if !OPAQUE_UPP_TYPES
+ enum { uppQTEffectListFilterProcInfo = 0x0003FFD0 }; /* pascal 1_byte Func(4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes) */
+ #ifdef __cplusplus
+ inline DEFINE_API_C(QTEffectListFilterUPP) NewQTEffectListFilterUPP(QTEffectListFilterProcPtr userRoutine) { return (QTEffectListFilterUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQTEffectListFilterProcInfo, GetCurrentArchitecture()); }
+ #else
+ #define NewQTEffectListFilterUPP(userRoutine) (QTEffectListFilterUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQTEffectListFilterProcInfo, GetCurrentArchitecture())
+ #endif
+#endif
+
+/*
+ * DisposeQTCallBackUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( void )
+DisposeQTCallBackUPP(QTCallBackUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(void) DisposeQTCallBackUPP(QTCallBackUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); }
+ #else
+ #define DisposeQTCallBackUPP(userUPP) DisposeRoutineDescriptor(userUPP)
+ #endif
+#endif
+
+/*
+ * DisposeQTSyncTaskUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( void )
+DisposeQTSyncTaskUPP(QTSyncTaskUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(void) DisposeQTSyncTaskUPP(QTSyncTaskUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); }
+ #else
+ #define DisposeQTSyncTaskUPP(userUPP) DisposeRoutineDescriptor(userUPP)
+ #endif
+#endif
+
+/*
+ * DisposeMovieRgnCoverUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( void )
+DisposeMovieRgnCoverUPP(MovieRgnCoverUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(void) DisposeMovieRgnCoverUPP(MovieRgnCoverUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); }
+ #else
+ #define DisposeMovieRgnCoverUPP(userUPP) DisposeRoutineDescriptor(userUPP)
+ #endif
+#endif
+
+/*
+ * DisposeMovieProgressUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( void )
+DisposeMovieProgressUPP(MovieProgressUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(void) DisposeMovieProgressUPP(MovieProgressUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); }
+ #else
+ #define DisposeMovieProgressUPP(userUPP) DisposeRoutineDescriptor(userUPP)
+ #endif
+#endif
+
+/*
+ * DisposeMovieDrawingCompleteUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( void )
+DisposeMovieDrawingCompleteUPP(MovieDrawingCompleteUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(void) DisposeMovieDrawingCompleteUPP(MovieDrawingCompleteUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); }
+ #else
+ #define DisposeMovieDrawingCompleteUPP(userUPP) DisposeRoutineDescriptor(userUPP)
+ #endif
+#endif
+
+/*
+ * DisposeTrackTransferUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( void )
+DisposeTrackTransferUPP(TrackTransferUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(void) DisposeTrackTransferUPP(TrackTransferUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); }
+ #else
+ #define DisposeTrackTransferUPP(userUPP) DisposeRoutineDescriptor(userUPP)
+ #endif
+#endif
+
+/*
+ * DisposeGetMovieUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( void )
+DisposeGetMovieUPP(GetMovieUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(void) DisposeGetMovieUPP(GetMovieUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); }
+ #else
+ #define DisposeGetMovieUPP(userUPP) DisposeRoutineDescriptor(userUPP)
+ #endif
+#endif
+
+/*
+ * DisposeMoviePreviewCallOutUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( void )
+DisposeMoviePreviewCallOutUPP(MoviePreviewCallOutUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(void) DisposeMoviePreviewCallOutUPP(MoviePreviewCallOutUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); }
+ #else
+ #define DisposeMoviePreviewCallOutUPP(userUPP) DisposeRoutineDescriptor(userUPP)
+ #endif
+#endif
+
+/*
+ * DisposeTextMediaUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( void )
+DisposeTextMediaUPP(TextMediaUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(void) DisposeTextMediaUPP(TextMediaUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); }
+ #else
+ #define DisposeTextMediaUPP(userUPP) DisposeRoutineDescriptor(userUPP)
+ #endif
+#endif
+
+/*
+ * DisposeActionsUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( void )
+DisposeActionsUPP(ActionsUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(void) DisposeActionsUPP(ActionsUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); }
+ #else
+ #define DisposeActionsUPP(userUPP) DisposeRoutineDescriptor(userUPP)
+ #endif
+#endif
+
+/*
+ * DisposeDoMCActionUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0.2 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( void )
+DisposeDoMCActionUPP(DoMCActionUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(void) DisposeDoMCActionUPP(DoMCActionUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); }
+ #else
+ #define DisposeDoMCActionUPP(userUPP) DisposeRoutineDescriptor(userUPP)
+ #endif
+#endif
+
+/*
+ * DisposeMovieExecuteWiredActionsUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0.2 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( void )
+DisposeMovieExecuteWiredActionsUPP(MovieExecuteWiredActionsUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(void) DisposeMovieExecuteWiredActionsUPP(MovieExecuteWiredActionsUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); }
+ #else
+ #define DisposeMovieExecuteWiredActionsUPP(userUPP) DisposeRoutineDescriptor(userUPP)
+ #endif
+#endif
+
+/*
+ * DisposeMoviePrePrerollCompleteUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0.2 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( void )
+DisposeMoviePrePrerollCompleteUPP(MoviePrePrerollCompleteUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(void) DisposeMoviePrePrerollCompleteUPP(MoviePrePrerollCompleteUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); }
+ #else
+ #define DisposeMoviePrePrerollCompleteUPP(userUPP) DisposeRoutineDescriptor(userUPP)
+ #endif
+#endif
+
+/*
+ * DisposeQTNextTaskNeededSoonerCallbackUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.6 and later
+ * Mac OS X: in version 10.2 and later
+ */
+EXTERN_API_C( void )
+DisposeQTNextTaskNeededSoonerCallbackUPP(QTNextTaskNeededSoonerCallbackUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(void) DisposeQTNextTaskNeededSoonerCallbackUPP(QTNextTaskNeededSoonerCallbackUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); }
+ #else
+ #define DisposeQTNextTaskNeededSoonerCallbackUPP(userUPP) DisposeRoutineDescriptor(userUPP)
+ #endif
+#endif
+
+/*
+ * DisposeMoviesErrorUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( void )
+DisposeMoviesErrorUPP(MoviesErrorUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(void) DisposeMoviesErrorUPP(MoviesErrorUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); }
+ #else
+ #define DisposeMoviesErrorUPP(userUPP) DisposeRoutineDescriptor(userUPP)
+ #endif
+#endif
+
+/*
+ * DisposeTweenerDataUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( void )
+DisposeTweenerDataUPP(TweenerDataUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(void) DisposeTweenerDataUPP(TweenerDataUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); }
+ #else
+ #define DisposeTweenerDataUPP(userUPP) DisposeRoutineDescriptor(userUPP)
+ #endif
+#endif
+
+/*
+ * DisposeQTEffectListFilterUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.6 and later
+ * Mac OS X: in version 10.2 and later
+ */
+EXTERN_API_C( void )
+DisposeQTEffectListFilterUPP(QTEffectListFilterUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(void) DisposeQTEffectListFilterUPP(QTEffectListFilterUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); }
+ #else
+ #define DisposeQTEffectListFilterUPP(userUPP) DisposeRoutineDescriptor(userUPP)
+ #endif
+#endif
+
+/*
+ * InvokeQTCallBackUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( void )
+InvokeQTCallBackUPP(
+ QTCallBack cb,
+ long refCon,
+ QTCallBackUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(void) InvokeQTCallBackUPP(QTCallBack cb, long refCon, QTCallBackUPP userUPP) { CALL_TWO_PARAMETER_UPP(userUPP, uppQTCallBackProcInfo, cb, refCon); }
+ #else
+ #define InvokeQTCallBackUPP(cb, refCon, userUPP) CALL_TWO_PARAMETER_UPP((userUPP), uppQTCallBackProcInfo, (cb), (refCon))
+ #endif
+#endif
+
+/*
+ * InvokeQTSyncTaskUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( void )
+InvokeQTSyncTaskUPP(
+ void * task,
+ QTSyncTaskUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(void) InvokeQTSyncTaskUPP(void * task, QTSyncTaskUPP userUPP) { CALL_ONE_PARAMETER_UPP(userUPP, uppQTSyncTaskProcInfo, task); }
+ #else
+ #define InvokeQTSyncTaskUPP(task, userUPP) CALL_ONE_PARAMETER_UPP((userUPP), uppQTSyncTaskProcInfo, (task))
+ #endif
+#endif
+
+/*
+ * InvokeMovieRgnCoverUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSErr )
+InvokeMovieRgnCoverUPP(
+ Movie theMovie,
+ RgnHandle changedRgn,
+ long refcon,
+ MovieRgnCoverUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(OSErr) InvokeMovieRgnCoverUPP(Movie theMovie, RgnHandle changedRgn, long refcon, MovieRgnCoverUPP userUPP) { return (OSErr)CALL_THREE_PARAMETER_UPP(userUPP, uppMovieRgnCoverProcInfo, theMovie, changedRgn, refcon); }
+ #else
+ #define InvokeMovieRgnCoverUPP(theMovie, changedRgn, refcon, userUPP) (OSErr)CALL_THREE_PARAMETER_UPP((userUPP), uppMovieRgnCoverProcInfo, (theMovie), (changedRgn), (refcon))
+ #endif
+#endif
+
+/*
+ * InvokeMovieProgressUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSErr )
+InvokeMovieProgressUPP(
+ Movie theMovie,
+ short message,
+ short whatOperation,
+ Fixed percentDone,
+ long refcon,
+ MovieProgressUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(OSErr) InvokeMovieProgressUPP(Movie theMovie, short message, short whatOperation, Fixed percentDone, long refcon, MovieProgressUPP userUPP) { return (OSErr)CALL_FIVE_PARAMETER_UPP(userUPP, uppMovieProgressProcInfo, theMovie, message, whatOperation, percentDone, refcon); }
+ #else
+ #define InvokeMovieProgressUPP(theMovie, message, whatOperation, percentDone, refcon, userUPP) (OSErr)CALL_FIVE_PARAMETER_UPP((userUPP), uppMovieProgressProcInfo, (theMovie), (message), (whatOperation), (percentDone), (refcon))
+ #endif
+#endif
+
+/*
+ * InvokeMovieDrawingCompleteUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSErr )
+InvokeMovieDrawingCompleteUPP(
+ Movie theMovie,
+ long refCon,
+ MovieDrawingCompleteUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(OSErr) InvokeMovieDrawingCompleteUPP(Movie theMovie, long refCon, MovieDrawingCompleteUPP userUPP) { return (OSErr)CALL_TWO_PARAMETER_UPP(userUPP, uppMovieDrawingCompleteProcInfo, theMovie, refCon); }
+ #else
+ #define InvokeMovieDrawingCompleteUPP(theMovie, refCon, userUPP) (OSErr)CALL_TWO_PARAMETER_UPP((userUPP), uppMovieDrawingCompleteProcInfo, (theMovie), (refCon))
+ #endif
+#endif
+
+/*
+ * InvokeTrackTransferUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSErr )
+InvokeTrackTransferUPP(
+ Track t,
+ long refCon,
+ TrackTransferUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(OSErr) InvokeTrackTransferUPP(Track t, long refCon, TrackTransferUPP userUPP) { return (OSErr)CALL_TWO_PARAMETER_UPP(userUPP, uppTrackTransferProcInfo, t, refCon); }
+ #else
+ #define InvokeTrackTransferUPP(t, refCon, userUPP) (OSErr)CALL_TWO_PARAMETER_UPP((userUPP), uppTrackTransferProcInfo, (t), (refCon))
+ #endif
+#endif
+
+/*
+ * InvokeGetMovieUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSErr )
+InvokeGetMovieUPP(
+ long offset,
+ long size,
+ void * dataPtr,
+ void * refCon,
+ GetMovieUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(OSErr) InvokeGetMovieUPP(long offset, long size, void * dataPtr, void * refCon, GetMovieUPP userUPP) { return (OSErr)CALL_FOUR_PARAMETER_UPP(userUPP, uppGetMovieProcInfo, offset, size, dataPtr, refCon); }
+ #else
+ #define InvokeGetMovieUPP(offset, size, dataPtr, refCon, userUPP) (OSErr)CALL_FOUR_PARAMETER_UPP((userUPP), uppGetMovieProcInfo, (offset), (size), (dataPtr), (refCon))
+ #endif
+#endif
+
+/*
+ * InvokeMoviePreviewCallOutUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( Boolean )
+InvokeMoviePreviewCallOutUPP(
+ long refcon,
+ MoviePreviewCallOutUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(Boolean) InvokeMoviePreviewCallOutUPP(long refcon, MoviePreviewCallOutUPP userUPP) { return (Boolean)CALL_ONE_PARAMETER_UPP(userUPP, uppMoviePreviewCallOutProcInfo, refcon); }
+ #else
+ #define InvokeMoviePreviewCallOutUPP(refcon, userUPP) (Boolean)CALL_ONE_PARAMETER_UPP((userUPP), uppMoviePreviewCallOutProcInfo, (refcon))
+ #endif
+#endif
+
+/*
+ * InvokeTextMediaUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSErr )
+InvokeTextMediaUPP(
+ Handle theText,
+ Movie theMovie,
+ short * displayFlag,
+ long refcon,
+ TextMediaUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(OSErr) InvokeTextMediaUPP(Handle theText, Movie theMovie, short * displayFlag, long refcon, TextMediaUPP userUPP) { return (OSErr)CALL_FOUR_PARAMETER_UPP(userUPP, uppTextMediaProcInfo, theText, theMovie, displayFlag, refcon); }
+ #else
+ #define InvokeTextMediaUPP(theText, theMovie, displayFlag, refcon, userUPP) (OSErr)CALL_FOUR_PARAMETER_UPP((userUPP), uppTextMediaProcInfo, (theText), (theMovie), (displayFlag), (refcon))
+ #endif
+#endif
+
+/*
+ * InvokeActionsUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSErr )
+InvokeActionsUPP(
+ void * refcon,
+ Track targetTrack,
+ long targetRefCon,
+ QTEventRecordPtr theEvent,
+ ActionsUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(OSErr) InvokeActionsUPP(void * refcon, Track targetTrack, long targetRefCon, QTEventRecordPtr theEvent, ActionsUPP userUPP) { return (OSErr)CALL_FOUR_PARAMETER_UPP(userUPP, uppActionsProcInfo, refcon, targetTrack, targetRefCon, theEvent); }
+ #else
+ #define InvokeActionsUPP(refcon, targetTrack, targetRefCon, theEvent, userUPP) (OSErr)CALL_FOUR_PARAMETER_UPP((userUPP), uppActionsProcInfo, (refcon), (targetTrack), (targetRefCon), (theEvent))
+ #endif
+#endif
+
+/*
+ * InvokeDoMCActionUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0.2 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSErr )
+InvokeDoMCActionUPP(
+ void * refcon,
+ short action,
+ void * params,
+ Boolean * handled,
+ DoMCActionUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(OSErr) InvokeDoMCActionUPP(void * refcon, short action, void * params, Boolean * handled, DoMCActionUPP userUPP) { return (OSErr)CALL_FOUR_PARAMETER_UPP(userUPP, uppDoMCActionProcInfo, refcon, action, params, handled); }
+ #else
+ #define InvokeDoMCActionUPP(refcon, action, params, handled, userUPP) (OSErr)CALL_FOUR_PARAMETER_UPP((userUPP), uppDoMCActionProcInfo, (refcon), (action), (params), (handled))
+ #endif
+#endif
+
+/*
+ * InvokeMovieExecuteWiredActionsUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0.2 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSErr )
+InvokeMovieExecuteWiredActionsUPP(
+ Movie theMovie,
+ void * refcon,
+ long flags,
+ QTAtomContainer wiredActions,
+ MovieExecuteWiredActionsUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(OSErr) InvokeMovieExecuteWiredActionsUPP(Movie theMovie, void * refcon, long flags, QTAtomContainer wiredActions, MovieExecuteWiredActionsUPP userUPP) { return (OSErr)CALL_FOUR_PARAMETER_UPP(userUPP, uppMovieExecuteWiredActionsProcInfo, theMovie, refcon, flags, wiredActions); }
+ #else
+ #define InvokeMovieExecuteWiredActionsUPP(theMovie, refcon, flags, wiredActions, userUPP) (OSErr)CALL_FOUR_PARAMETER_UPP((userUPP), uppMovieExecuteWiredActionsProcInfo, (theMovie), (refcon), (flags), (wiredActions))
+ #endif
+#endif
+
+/*
+ * InvokeMoviePrePrerollCompleteUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0.2 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( void )
+InvokeMoviePrePrerollCompleteUPP(
+ Movie theMovie,
+ OSErr prerollErr,
+ void * refcon,
+ MoviePrePrerollCompleteUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(void) InvokeMoviePrePrerollCompleteUPP(Movie theMovie, OSErr prerollErr, void * refcon, MoviePrePrerollCompleteUPP userUPP) { CALL_THREE_PARAMETER_UPP(userUPP, uppMoviePrePrerollCompleteProcInfo, theMovie, prerollErr, refcon); }
+ #else
+ #define InvokeMoviePrePrerollCompleteUPP(theMovie, prerollErr, refcon, userUPP) CALL_THREE_PARAMETER_UPP((userUPP), uppMoviePrePrerollCompleteProcInfo, (theMovie), (prerollErr), (refcon))
+ #endif
+#endif
+
+/*
+ * InvokeQTNextTaskNeededSoonerCallbackUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.6 and later
+ * Mac OS X: in version 10.2 and later
+ */
+EXTERN_API_C( void )
+InvokeQTNextTaskNeededSoonerCallbackUPP(
+ TimeValue duration,
+ unsigned long flags,
+ void * refcon,
+ QTNextTaskNeededSoonerCallbackUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(void) InvokeQTNextTaskNeededSoonerCallbackUPP(TimeValue duration, unsigned long flags, void * refcon, QTNextTaskNeededSoonerCallbackUPP userUPP) { CALL_THREE_PARAMETER_UPP(userUPP, uppQTNextTaskNeededSoonerCallbackProcInfo, duration, flags, refcon); }
+ #else
+ #define InvokeQTNextTaskNeededSoonerCallbackUPP(duration, flags, refcon, userUPP) CALL_THREE_PARAMETER_UPP((userUPP), uppQTNextTaskNeededSoonerCallbackProcInfo, (duration), (flags), (refcon))
+ #endif
+#endif
+
+/*
+ * InvokeMoviesErrorUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( void )
+InvokeMoviesErrorUPP(
+ OSErr theErr,
+ long refcon,
+ MoviesErrorUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(void) InvokeMoviesErrorUPP(OSErr theErr, long refcon, MoviesErrorUPP userUPP) { CALL_TWO_PARAMETER_UPP(userUPP, uppMoviesErrorProcInfo, theErr, refcon); }
+ #else
+ #define InvokeMoviesErrorUPP(theErr, refcon, userUPP) CALL_TWO_PARAMETER_UPP((userUPP), uppMoviesErrorProcInfo, (theErr), (refcon))
+ #endif
+#endif
+
+/*
+ * InvokeTweenerDataUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( ComponentResult )
+InvokeTweenerDataUPP(
+ TweenRecord * tr,
+ void * tweenData,
+ long tweenDataSize,
+ long dataDescriptionSeed,
+ Handle dataDescription,
+ ICMCompletionProcRecordPtr asyncCompletionProc,
+ UniversalProcPtr transferProc,
+ void * refCon,
+ TweenerDataUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(ComponentResult) InvokeTweenerDataUPP(TweenRecord * tr, void * tweenData, long tweenDataSize, long dataDescriptionSeed, Handle dataDescription, ICMCompletionProcRecordPtr asyncCompletionProc, UniversalProcPtr transferProc, void * refCon, TweenerDataUPP userUPP) { return (ComponentResult)CALL_EIGHT_PARAMETER_UPP(userUPP, uppTweenerDataProcInfo, tr, tweenData, tweenDataSize, dataDescriptionSeed, dataDescription, asyncCompletionProc, transferProc, refCon); }
+ #else
+ #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))
+ #endif
+#endif
+
+/*
+ * InvokeQTEffectListFilterUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.6 and later
+ * Mac OS X: in version 10.2 and later
+ */
+EXTERN_API_C( Boolean )
+InvokeQTEffectListFilterUPP(
+ Component effect,
+ long effectMinSource,
+ long effectMaxSource,
+ OSType majorClass,
+ OSType minorClass,
+ void * refcon,
+ QTEffectListFilterUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(Boolean) InvokeQTEffectListFilterUPP(Component effect, long effectMinSource, long effectMaxSource, OSType majorClass, OSType minorClass, void * refcon, QTEffectListFilterUPP userUPP) { return (Boolean)CALL_SIX_PARAMETER_UPP(userUPP, uppQTEffectListFilterProcInfo, effect, effectMinSource, effectMaxSource, majorClass, minorClass, refcon); }
+ #else
+ #define InvokeQTEffectListFilterUPP(effect, effectMinSource, effectMaxSource, majorClass, minorClass, refcon, userUPP) (Boolean)CALL_SIX_PARAMETER_UPP((userUPP), uppQTEffectListFilterProcInfo, (effect), (effectMinSource), (effectMaxSource), (majorClass), (minorClass), (refcon))
+ #endif
+#endif
+
+#if CALL_NOT_IN_CARBON || OLDROUTINENAMES
+ /* support for pre-Carbon UPP routines: New...Proc and Call...Proc */
+ #define NewQTCallBackProc(userRoutine) NewQTCallBackUPP(userRoutine)
+ #define NewQTSyncTaskProc(userRoutine) NewQTSyncTaskUPP(userRoutine)
+ #define NewMovieRgnCoverProc(userRoutine) NewMovieRgnCoverUPP(userRoutine)
+ #define NewMovieProgressProc(userRoutine) NewMovieProgressUPP(userRoutine)
+ #define NewMovieDrawingCompleteProc(userRoutine) NewMovieDrawingCompleteUPP(userRoutine)
+ #define NewTrackTransferProc(userRoutine) NewTrackTransferUPP(userRoutine)
+ #define NewGetMovieProc(userRoutine) NewGetMovieUPP(userRoutine)
+ #define NewMoviePreviewCallOutProc(userRoutine) NewMoviePreviewCallOutUPP(userRoutine)
+ #define NewTextMediaProc(userRoutine) NewTextMediaUPP(userRoutine)
+ #define NewActionsProc(userRoutine) NewActionsUPP(userRoutine)
+ #define NewDoMCActionProc(userRoutine) NewDoMCActionUPP(userRoutine)
+ #define NewMovieExecuteWiredActionsProc(userRoutine) NewMovieExecuteWiredActionsUPP(userRoutine)
+ #define NewMoviePrePrerollCompleteProc(userRoutine) NewMoviePrePrerollCompleteUPP(userRoutine)
+ #define NewQTNextTaskNeededSoonerCallbackProc(userRoutine) NewQTNextTaskNeededSoonerCallbackUPP(userRoutine)
+ #define NewMoviesErrorProc(userRoutine) NewMoviesErrorUPP(userRoutine)
+ #define NewTweenerDataProc(userRoutine) NewTweenerDataUPP(userRoutine)
+ #define NewQTEffectListFilterProc(userRoutine) NewQTEffectListFilterUPP(userRoutine)
+ #define CallQTCallBackProc(userRoutine, cb, refCon) InvokeQTCallBackUPP(cb, refCon, userRoutine)
+ #define CallQTSyncTaskProc(userRoutine, task) InvokeQTSyncTaskUPP(task, userRoutine)
+ #define CallMovieRgnCoverProc(userRoutine, theMovie, changedRgn, refcon) InvokeMovieRgnCoverUPP(theMovie, changedRgn, refcon, userRoutine)
+ #define CallMovieProgressProc(userRoutine, theMovie, message, whatOperation, percentDone, refcon) InvokeMovieProgressUPP(theMovie, message, whatOperation, percentDone, refcon, userRoutine)
+ #define CallMovieDrawingCompleteProc(userRoutine, theMovie, refCon) InvokeMovieDrawingCompleteUPP(theMovie, refCon, userRoutine)
+ #define CallTrackTransferProc(userRoutine, t, refCon) InvokeTrackTransferUPP(t, refCon, userRoutine)
+ #define CallGetMovieProc(userRoutine, offset, size, dataPtr, refCon) InvokeGetMovieUPP(offset, size, dataPtr, refCon, userRoutine)
+ #define CallMoviePreviewCallOutProc(userRoutine, refcon) InvokeMoviePreviewCallOutUPP(refcon, userRoutine)
+ #define CallTextMediaProc(userRoutine, theText, theMovie, displayFlag, refcon) InvokeTextMediaUPP(theText, theMovie, displayFlag, refcon, userRoutine)
+ #define CallActionsProc(userRoutine, refcon, targetTrack, targetRefCon, theEvent) InvokeActionsUPP(refcon, targetTrack, targetRefCon, theEvent, userRoutine)
+ #define CallDoMCActionProc(userRoutine, refcon, action, params, handled) InvokeDoMCActionUPP(refcon, action, params, handled, userRoutine)
+ #define CallMovieExecuteWiredActionsProc(userRoutine, theMovie, refcon, flags, wiredActions) InvokeMovieExecuteWiredActionsUPP(theMovie, refcon, flags, wiredActions, userRoutine)
+ #define CallMoviePrePrerollCompleteProc(userRoutine, theMovie, prerollErr, refcon) InvokeMoviePrePrerollCompleteUPP(theMovie, prerollErr, refcon, userRoutine)
+ #define CallQTNextTaskNeededSoonerCallbackProc(userRoutine, duration, flags, refcon) InvokeQTNextTaskNeededSoonerCallbackUPP(duration, flags, refcon, userRoutine)
+ #define CallMoviesErrorProc(userRoutine, theErr, refcon) InvokeMoviesErrorUPP(theErr, refcon, userRoutine)
+ #define CallTweenerDataProc(userRoutine, tr, tweenData, tweenDataSize, dataDescriptionSeed, dataDescription, asyncCompletionProc, transferProc, refCon) InvokeTweenerDataUPP(tr, tweenData, tweenDataSize, dataDescriptionSeed, dataDescription, asyncCompletionProc, transferProc, refCon, userRoutine)
+ #define CallQTEffectListFilterProc(userRoutine, effect, effectMinSource, effectMaxSource, majorClass, minorClass, refcon) InvokeQTEffectListFilterUPP(effect, effectMinSource, effectMaxSource, majorClass, minorClass, refcon, userRoutine)
+#endif /* CALL_NOT_IN_CARBON */
+
+/*****
+ Connection Speed
+*****/
+enum {
+ ConnectionSpeedPrefsType = FOUR_CHAR_CODE('cspd'),
+ ConnectionSpeedIsValidPrefsType = FOUR_CHAR_CODE('vspd')
+};
+
+struct ConnectionSpeedPrefsRecord {
+ long connectionSpeed;
+};
+typedef struct ConnectionSpeedPrefsRecord ConnectionSpeedPrefsRecord;
+typedef ConnectionSpeedPrefsRecord * ConnectionSpeedPrefsPtr;
+typedef ConnectionSpeedPrefsPtr * ConnectionSpeedPrefsHandle;
+/*
+ * QTGetConnectionSpeedFromPrefs()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.3 (or QuickTime 6.4) and later
+ * Windows: in qtmlClient.lib 6.5 and later
+ */
+EXTERN_API( OSErr )
+QTGetConnectionSpeedFromPrefs(long * pConnectionSpeed);
+
+
+/*****
+ QT International Text Atom Support
+*****/
+enum {
+ kITextRemoveEverythingBut = 0 << 1,
+ kITextRemoveLeaveSuggestedAlternate = 1 << 1
+};
+
+enum {
+ kITextAtomType = FOUR_CHAR_CODE('itxt'),
+ kITextStringAtomType = FOUR_CHAR_CODE('text')
+};
+
+/*
+ * ITextAddString()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+ITextAddString(
+ QTAtomContainer container,
+ QTAtom parentAtom,
+ RegionCode theRegionCode,
+ ConstStr255Param theString);
+
+
+/*
+ * ITextRemoveString()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+ITextRemoveString(
+ QTAtomContainer container,
+ QTAtom parentAtom,
+ RegionCode theRegionCode,
+ long flags);
+
+
+/*
+ * ITextGetString()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+ITextGetString(
+ QTAtomContainer container,
+ QTAtom parentAtom,
+ RegionCode requestedRegion,
+ RegionCode * foundRegion,
+ StringPtr theString);
+
+
+/*
+ * QTTextToNativeText()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 3.0 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+QTTextToNativeText(
+ Handle theText,
+ long encoding,
+ long flags);
+
+
+/* QTParseTextHREF inContainer atoms*/
+enum {
+ kQTParseTextHREFText = FOUR_CHAR_CODE('text'), /* string*/
+ kQTParseTextHREFBaseURL = FOUR_CHAR_CODE('burl'), /* string*/
+ kQTParseTextHREFClickPoint = FOUR_CHAR_CODE('clik'), /* Point; if present, QTParseTextHREF will expand URLs to support server-side image maps*/
+ kQTParseTextHREFUseAltDelim = FOUR_CHAR_CODE('altd'), /* boolean; if no kQTParseTextHREFDelimiter, delim is ':'*/
+ kQTParseTextHREFDelimiter = FOUR_CHAR_CODE('delm'), /* character*/
+ kQTParseTextHREFRecomposeHREF = FOUR_CHAR_CODE('rhrf') /* Boolean; if true, QTParseTextHREF returns recomposed HREF with URL expanded as appropriate*/
+};
+
+/* QTParseTextHREF outContainer atoms*/
+enum {
+ kQTParseTextHREFURL = FOUR_CHAR_CODE('url '), /* string*/
+ kQTParseTextHREFTarget = FOUR_CHAR_CODE('targ'), /* string*/
+ kQTParseTextHREFChapter = FOUR_CHAR_CODE('chap'), /* string*/
+ kQTParseTextHREFIsAutoHREF = FOUR_CHAR_CODE('auto'), /* Boolean*/
+ kQTParseTextHREFIsServerMap = FOUR_CHAR_CODE('smap'), /* Boolean*/
+ kQTParseTextHREFHREF = FOUR_CHAR_CODE('href'), /* string; recomposed HREF with URL expanded as appropriate, suitable for mcActionLinkToURL*/
+ kQTParseTextHREFEMBEDArgs = FOUR_CHAR_CODE('mbed') /* string; text between 'E<' and '>' to be used as new movie's embed tags*/
+};
+
+/*
+ * QTParseTextHREF()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 4.1 and later
+ * CarbonLib: in CarbonLib 1.1 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 4.1 and later
+ */
+EXTERN_API( OSErr )
+QTParseTextHREF(
+ char * href,
+ SInt32 hrefLen,
+ QTAtomContainer inContainer,
+ QTAtomContainer * outContainer);
+
+
+/*************************
+* track reference types
+**************************/
+enum {
+ kTrackReferenceChapterList = FOUR_CHAR_CODE('chap'),
+ kTrackReferenceTimeCode = FOUR_CHAR_CODE('tmcd'),
+ kTrackReferenceModifier = FOUR_CHAR_CODE('ssrc')
+};
+
+/*************************
+* modifier track types
+**************************/
+enum {
+ kTrackModifierInput = 0x696E, /* is really 'in'*/
+ kTrackModifierType = 0x7479, /* is really 'ty'*/
+ kTrackModifierReference = FOUR_CHAR_CODE('ssrc'),
+ kTrackModifierObjectID = FOUR_CHAR_CODE('obid'),
+ kTrackModifierInputName = FOUR_CHAR_CODE('name')
+};
+
+enum {
+ kInputMapSubInputID = FOUR_CHAR_CODE('subi')
+};
+
+enum {
+ kTrackModifierTypeMatrix = 1,
+ kTrackModifierTypeClip = 2,
+ kTrackModifierTypeGraphicsMode = 5,
+ kTrackModifierTypeVolume = 3,
+ kTrackModifierTypeBalance = 4,
+ kTrackModifierTypeImage = FOUR_CHAR_CODE('vide'), /* was kTrackModifierTypeSpriteImage*/
+ kTrackModifierObjectMatrix = 6,
+ kTrackModifierObjectGraphicsMode = 7,
+ kTrackModifierType3d4x4Matrix = 8,
+ kTrackModifierCameraData = 9,
+ kTrackModifierSoundLocalizationData = 10,
+ kTrackModifierObjectImageIndex = 11,
+ kTrackModifierObjectLayer = 12,
+ kTrackModifierObjectVisible = 13,
+ kTrackModifierAngleAspectCamera = 14,
+ kTrackModifierPanAngle = FOUR_CHAR_CODE('pan '),
+ kTrackModifierTiltAngle = FOUR_CHAR_CODE('tilt'),
+ kTrackModifierVerticalFieldOfViewAngle = FOUR_CHAR_CODE('fov '),
+ kTrackModifierObjectQTEventSend = FOUR_CHAR_CODE('evnt'),
+ kTrackModifierObjectCanBeHitTested = 15
+};
+
+struct ModifierTrackGraphicsModeRecord {
+ long graphicsMode;
+ RGBColor opColor;
+};
+typedef struct ModifierTrackGraphicsModeRecord ModifierTrackGraphicsModeRecord;
+
+/*************************
+* tween track types
+**************************/
+enum {
+ kTweenTypeShort = 1,
+ kTweenTypeLong = 2,
+ kTweenTypeFixed = 3,
+ kTweenTypePoint = 4,
+ kTweenTypeQDRect = 5,
+ kTweenTypeQDRegion = 6,
+ kTweenTypeMatrix = 7,
+ kTweenTypeRGBColor = 8,
+ kTweenTypeGraphicsModeWithRGBColor = 9,
+ kTweenTypeQTFloatSingle = 10,
+ kTweenTypeQTFloatDouble = 11,
+ kTweenTypeFixedPoint = 12,
+ kTweenType3dScale = FOUR_CHAR_CODE('3sca'),
+ kTweenType3dTranslate = FOUR_CHAR_CODE('3tra'),
+ kTweenType3dRotate = FOUR_CHAR_CODE('3rot'),
+ kTweenType3dRotateAboutPoint = FOUR_CHAR_CODE('3rap'),
+ kTweenType3dRotateAboutAxis = FOUR_CHAR_CODE('3rax'),
+ kTweenType3dRotateAboutVector = FOUR_CHAR_CODE('3rvc'),
+ kTweenType3dQuaternion = FOUR_CHAR_CODE('3qua'),
+ kTweenType3dMatrix = FOUR_CHAR_CODE('3mat'),
+ kTweenType3dCameraData = FOUR_CHAR_CODE('3cam'),
+ kTweenType3dAngleAspectCameraData = FOUR_CHAR_CODE('3caa'),
+ kTweenType3dSoundLocalizationData = FOUR_CHAR_CODE('3slc'),
+ kTweenTypePathToMatrixTranslation = FOUR_CHAR_CODE('gxmt'),
+ kTweenTypePathToMatrixRotation = FOUR_CHAR_CODE('gxpr'),
+ kTweenTypePathToMatrixTranslationAndRotation = FOUR_CHAR_CODE('gxmr'),
+ kTweenTypePathToFixedPoint = FOUR_CHAR_CODE('gxfp'),
+ kTweenTypePathXtoY = FOUR_CHAR_CODE('gxxy'),
+ kTweenTypePathYtoX = FOUR_CHAR_CODE('gxyx'),
+ kTweenTypeAtomList = FOUR_CHAR_CODE('atom'),
+ kTweenTypePolygon = FOUR_CHAR_CODE('poly'),
+ kTweenTypeMultiMatrix = FOUR_CHAR_CODE('mulm'),
+ kTweenTypeSpin = FOUR_CHAR_CODE('spin'),
+ kTweenType3dMatrixNonLinear = FOUR_CHAR_CODE('3nlr'),
+ kTweenType3dVRObject = FOUR_CHAR_CODE('3vro')
+};
+
+enum {
+ kTweenEntry = FOUR_CHAR_CODE('twen'),
+ kTweenData = FOUR_CHAR_CODE('data'),
+ kTweenType = FOUR_CHAR_CODE('twnt'),
+ kTweenStartOffset = FOUR_CHAR_CODE('twst'),
+ kTweenDuration = FOUR_CHAR_CODE('twdu'),
+ kTweenFlags = FOUR_CHAR_CODE('flag'),
+ kTweenOutputMin = FOUR_CHAR_CODE('omin'),
+ kTweenOutputMax = FOUR_CHAR_CODE('omax'),
+ kTweenSequenceElement = FOUR_CHAR_CODE('seqe'),
+ kTween3dInitialCondition = FOUR_CHAR_CODE('icnd'),
+ kTweenInterpolationID = FOUR_CHAR_CODE('intr'),
+ kTweenRegionData = FOUR_CHAR_CODE('qdrg'),
+ kTweenPictureData = FOUR_CHAR_CODE('PICT'),
+ kListElementType = FOUR_CHAR_CODE('type'),
+ kListElementDataType = FOUR_CHAR_CODE('daty'),
+ kNameAtom = FOUR_CHAR_CODE('name'),
+ kInitialRotationAtom = FOUR_CHAR_CODE('inro'),
+ kNonLinearTweenHeader = FOUR_CHAR_CODE('nlth')
+};
+
+/* kTweenFlags*/
+enum {
+ kTweenReturnDelta = 1L << 0
+};
+
+struct TweenSequenceEntryRecord {
+ Fixed endPercent;
+ QTAtomID tweenAtomID;
+ QTAtomID dataAtomID;
+};
+typedef struct TweenSequenceEntryRecord TweenSequenceEntryRecord;
+
+#ifdef __QD3D__
+
+struct ThreeDeeVRObjectSample {
+ long rows;
+ long columns;
+ TQ3Matrix4x4 calib1;
+ TQ3Matrix4x4 calib2;
+ long reserved1;
+ long reserved2;
+};
+
+typedef struct ThreeDeeVRObjectSample ThreeDeeVRObjectSample;
+
+struct ThreeDeeNonLinearSample {
+ float DurFromLastSample; /* 0 to 1 */
+ TQ3Matrix4x4 matrix;
+};
+typedef struct ThreeDeeNonLinearSample ThreeDeeNonLinearSample;
+
+struct ThreeDeeNonLinearTweenHeaderAtom {
+ long number;
+ long dataSize;
+ float tensionFactor; /* default is 0 */
+ long reserved1;
+ long reserved2;
+};
+typedef struct ThreeDeeNonLinearTweenHeaderAtom ThreeDeeNonLinearTweenHeaderAtom;
+
+
+#endif
+
+
+
+
+#if OLDROUTINENAMES
+
+/*************************
+* Video Media routines
+**************************/
+
+#define GetVideoMediaGraphicsMode MediaGetGraphicsMode
+#define SetVideoMediaGraphicsMode MediaSetGraphicsMode
+
+/* use these two routines at your own peril */
+#define ResetVideoMediaStatistics VideoMediaResetStatistics
+#define GetVideoMediaStatistics VideoMediaGetStatistics
+
+/*************************
+* Sound Media routines
+**************************/
+
+#define GetSoundMediaBalance MediaGetSoundBalance
+#define SetSoundMediaBalance MediaSetSoundBalance
+
+/*************************
+* Text Media routines
+**************************/
+
+#define SetTextProc TextMediaSetTextProc
+#define AddTextSample TextMediaAddTextSample
+#define AddTESample TextMediaAddTESample
+#define AddHiliteSample TextMediaAddHiliteSample
+#define FindNextText TextMediaFindNextText
+#define HiliteTextSample TextMediaHiliteTextSample
+#define SetTextSampleData TextMediaSetTextSampleData
+#define DrawRaw TextMediaDrawRaw
+#define RawSetup TextMediaRawSetup
+#define RawIdle TextMediaRawIdle
+#define SetTextProperty TextMediaSetTextProperty
+
+/*************************
+* Sprite Media routines
+**************************/
+
+#define SetSpriteMediaSpriteProperty SpriteMediaSetProperty
+#define GetSpriteMediaSpriteProperty SpriteMediaGetProperty
+#define HitTestSpriteMedia SpriteMediaHitTestSprites
+#define CountSpriteMediaSprites SpriteMediaCountSprites
+#define CountSpriteMediaImages SpriteMediaCountImages
+#define GetSpriteMediaIndImageDescription SpriteMediaGetIndImageDescription
+#define GetDisplayedSampleNumber SpriteMediaGetDisplayedSampleNumber
+#endif /* OLDROUTINENAMES */
+
+
+
+/*****
+ Content Restrictions
+*****/
+enum {
+ kQTRestrictionClassSave = FOUR_CHAR_CODE('save'),
+ kQTRestrictionSaveDontAddMovieResource = (1L << 0),
+ kQTRestrictionSaveDontFlatten = (1L << 1),
+ kQTRestrictionSaveDontExport = (1L << 2),
+ kQTRestrictionSaveDontExtract = (1L << 3), /* don't allow any form of extraction of content*/
+ kQTRestrictionClassEdit = FOUR_CHAR_CODE('edit'),
+ kQTRestrictionEditDontCopy = (1L << 0), /* disable copy */
+ kQTRestrictionEditDontCut = (1L << 1), /* disable cut */
+ kQTRestrictionEditDontPaste = (1L << 2), /* disable paste */
+ kQTRestrictionEditDontClear = (1L << 3), /* disable clear*/
+ kQTRestrictionEditDontModify = (1L << 4), /* don't allow modification of content*/
+ kQTRestrictionEditDontExtract = (1L << 5), /* don't allow any form of extraction of content*/
+ kQTRestrictionClassPlay = FOUR_CHAR_CODE('play'),
+ kQTRestrictionPlayDontPlay = (1L << 0) /* disable playback */
+};
+
+
+/*************************
+* Video Media routines
+**************************/
+
+
+enum {
+ videoFlagDontLeanAhead = 1L << 0
+};
+
+
+
+
+/* use these five routines at your own peril*/
+/*
+ * VideoMediaResetStatistics()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentResult )
+VideoMediaResetStatistics(MediaHandler mh) FIVEWORDINLINE(0x2F3C, 0x0000, 0x0105, 0x7000, 0xA82A);
+
+
+/*
+ * VideoMediaGetStatistics()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentResult )
+VideoMediaGetStatistics(MediaHandler mh) FIVEWORDINLINE(0x2F3C, 0x0000, 0x0106, 0x7000, 0xA82A);
+
+
+
+/*
+ * VideoMediaGetStallCount()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 3.0 and later
+ * CarbonLib: in CarbonLib 1.0.2 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentResult )
+VideoMediaGetStallCount(
+ MediaHandler mh,
+ unsigned long * stalls) FIVEWORDINLINE(0x2F3C, 0x0004, 0x010E, 0x7000, 0xA82A);
+
+
+
+/*
+ * VideoMediaSetCodecParameter()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 4.0 and later
+ * CarbonLib: in CarbonLib 1.0.2 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 4.0 and later
+ */
+EXTERN_API( ComponentResult )
+VideoMediaSetCodecParameter(
+ MediaHandler mh,
+ CodecType cType,
+ OSType parameterID,
+ long parameterChangeSeed,
+ void * dataPtr,
+ long dataSize) FIVEWORDINLINE(0x2F3C, 0x0014, 0x010F, 0x7000, 0xA82A);
+
+
+/*
+ * VideoMediaGetCodecParameter()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 4.0 and later
+ * CarbonLib: in CarbonLib 1.0.2 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 4.0 and later
+ */
+EXTERN_API( ComponentResult )
+VideoMediaGetCodecParameter(
+ MediaHandler mh,
+ CodecType cType,
+ OSType parameterID,
+ Handle outParameterData) FIVEWORDINLINE(0x2F3C, 0x000C, 0x0110, 0x7000, 0xA82A);
+
+
+
+
+
+/*************************
+* Text Media routines
+**************************/
+
+
+
+/* Return displayFlags for TextProc */
+enum {
+ txtProcDefaultDisplay = 0, /* Use the media's default*/
+ txtProcDontDisplay = 1, /* Don't display the text*/
+ txtProcDoDisplay = 2 /* Do display the text*/
+};
+
+/*
+ * TextMediaSetTextProc()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentResult )
+TextMediaSetTextProc(
+ MediaHandler mh,
+ TextMediaUPP TextProc,
+ long refcon) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0101, 0x7000, 0xA82A);
+
+
+/*
+ * TextMediaAddTextSample()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentResult )
+TextMediaAddTextSample(
+ MediaHandler mh,
+ Ptr text,
+ unsigned long size,
+ short fontNumber,
+ short fontSize,
+ Style textFace,
+ RGBColor * textColor,
+ RGBColor * backColor,
+ short textJustification,
+ Rect * textBox,
+ long displayFlags,
+ TimeValue scrollDelay,
+ short hiliteStart,
+ short hiliteEnd,
+ RGBColor * rgbHiliteColor,
+ TimeValue duration,
+ TimeValue * sampleTime) FIVEWORDINLINE(0x2F3C, 0x0034, 0x0102, 0x7000, 0xA82A);
+
+
+/*
+ * TextMediaAddTESample()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentResult )
+TextMediaAddTESample(
+ MediaHandler mh,
+ TEHandle hTE,
+ RGBColor * backColor,
+ short textJustification,
+ Rect * textBox,
+ long displayFlags,
+ TimeValue scrollDelay,
+ short hiliteStart,
+ short hiliteEnd,
+ RGBColor * rgbHiliteColor,
+ TimeValue duration,
+ TimeValue * sampleTime) FIVEWORDINLINE(0x2F3C, 0x0026, 0x0103, 0x7000, 0xA82A);
+
+
+/*
+ * TextMediaAddHiliteSample()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentResult )
+TextMediaAddHiliteSample(
+ MediaHandler mh,
+ short hiliteStart,
+ short hiliteEnd,
+ RGBColor * rgbHiliteColor,
+ TimeValue duration,
+ TimeValue * sampleTime) FIVEWORDINLINE(0x2F3C, 0x0010, 0x0104, 0x7000, 0xA82A);
+
+
+/*
+ * TextMediaDrawRaw()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 4.0 and later
+ * CarbonLib: in CarbonLib 1.0.2 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 4.0 and later
+ */
+EXTERN_API( ComponentResult )
+TextMediaDrawRaw(
+ MediaHandler mh,
+ GWorldPtr gw,
+ GDHandle gd,
+ void * data,
+ long dataSize,
+ TextDescriptionHandle tdh) FIVEWORDINLINE(0x2F3C, 0x0014, 0x0109, 0x7000, 0xA82A);
+
+
+/*
+ * TextMediaSetTextProperty()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 4.0 and later
+ * CarbonLib: in CarbonLib 1.0.2 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 4.0 and later
+ */
+EXTERN_API( ComponentResult )
+TextMediaSetTextProperty(
+ MediaHandler mh,
+ TimeValue atMediaTime,
+ long propertyType,
+ void * data,
+ long dataSize) FIVEWORDINLINE(0x2F3C, 0x0010, 0x010A, 0x7000, 0xA82A);
+
+
+/*
+ * TextMediaRawSetup()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 4.0 and later
+ * CarbonLib: in CarbonLib 1.0.2 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 4.0 and later
+ */
+EXTERN_API( ComponentResult )
+TextMediaRawSetup(
+ MediaHandler mh,
+ GWorldPtr gw,
+ GDHandle gd,
+ void * data,
+ long dataSize,
+ TextDescriptionHandle tdh,
+ TimeValue sampleDuration) FIVEWORDINLINE(0x2F3C, 0x0018, 0x010B, 0x7000, 0xA82A);
+
+
+/*
+ * TextMediaRawIdle()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 4.0 and later
+ * CarbonLib: in CarbonLib 1.0.2 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 4.0 and later
+ */
+EXTERN_API( ComponentResult )
+TextMediaRawIdle(
+ MediaHandler mh,
+ GWorldPtr gw,
+ GDHandle gd,
+ TimeValue sampleTime,
+ long flagsIn,
+ long * flagsOut) FIVEWORDINLINE(0x2F3C, 0x0014, 0x010C, 0x7000, 0xA82A);
+
+
+/*
+ * TextMediaGetTextProperty()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 5.0 and later
+ * CarbonLib: in CarbonLib 1.3 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 5.0 and later
+ */
+EXTERN_API( ComponentResult )
+TextMediaGetTextProperty(
+ MediaHandler mh,
+ TimeValue atMediaTime,
+ long propertyType,
+ void * data,
+ long dataSize) FIVEWORDINLINE(0x2F3C, 0x0010, 0x010D, 0x7000, 0xA82A);
+
+
+enum {
+ findTextEdgeOK = 1 << 0, /* Okay to find text at specified sample time*/
+ findTextCaseSensitive = 1 << 1, /* Case sensitive search*/
+ findTextReverseSearch = 1 << 2, /* Search from sampleTime backwards*/
+ findTextWrapAround = 1 << 3, /* Wrap search when beginning or end of movie is hit*/
+ findTextUseOffset = 1 << 4 /* Begin search at the given character offset into sample rather than edge*/
+};
+
+/*
+ * TextMediaFindNextText()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentResult )
+TextMediaFindNextText(
+ MediaHandler mh,
+ Ptr text,
+ long size,
+ short findFlags,
+ TimeValue startTime,
+ TimeValue * foundTime,
+ TimeValue * foundDuration,
+ long * offset) FIVEWORDINLINE(0x2F3C, 0x001A, 0x0105, 0x7000, 0xA82A);
+
+
+/*
+ * TextMediaHiliteTextSample()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentResult )
+TextMediaHiliteTextSample(
+ MediaHandler mh,
+ TimeValue sampleTime,
+ short hiliteStart,
+ short hiliteEnd,
+ RGBColor * rgbHiliteColor) FIVEWORDINLINE(0x2F3C, 0x000C, 0x0106, 0x7000, 0xA82A);
+
+
+enum {
+ dropShadowOffsetType = FOUR_CHAR_CODE('drpo'),
+ dropShadowTranslucencyType = FOUR_CHAR_CODE('drpt')
+};
+
+/*
+ * TextMediaSetTextSampleData()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentResult )
+TextMediaSetTextSampleData(
+ MediaHandler mh,
+ void * data,
+ OSType dataType) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0107, 0x7000, 0xA82A);
+
+
+
+
+
+
+/*************************
+* Sprite Media routines
+**************************/
+/* flags for sprite hit test routines */
+enum {
+ spriteHitTestBounds = 1L << 0, /* point must only be within sprite's bounding box*/
+ spriteHitTestImage = 1L << 1, /* point must be within the shape of the sprite's image*/
+ spriteHitTestInvisibleSprites = 1L << 2, /* invisible sprites may be hit tested*/
+ spriteHitTestIsClick = 1L << 3, /* for codecs that want mouse events*/
+ spriteHitTestLocInDisplayCoordinates = 1L << 4, /* set if you want to pass a display coordiate point to SpriteHitTest*/
+ spriteHitTestTreatAllSpritesAsHitTestable = 1L << 5 /* set if you want to override each sprites hittestable property as true*/
+};
+
+/* atom types for sprite media */
+enum {
+ kSpriteAtomType = FOUR_CHAR_CODE('sprt'),
+ kSpriteImagesContainerAtomType = FOUR_CHAR_CODE('imct'),
+ kSpriteImageAtomType = FOUR_CHAR_CODE('imag'),
+ kSpriteImageDataAtomType = FOUR_CHAR_CODE('imda'),
+ kSpriteImageDataRefAtomType = FOUR_CHAR_CODE('imre'),
+ kSpriteImageDataRefTypeAtomType = FOUR_CHAR_CODE('imrt'),
+ kSpriteImageGroupIDAtomType = FOUR_CHAR_CODE('imgr'),
+ kSpriteImageRegistrationAtomType = FOUR_CHAR_CODE('imrg'),
+ kSpriteImageDefaultImageIndexAtomType = FOUR_CHAR_CODE('defi'),
+ kSpriteSharedDataAtomType = FOUR_CHAR_CODE('dflt'),
+ kSpriteNameAtomType = FOUR_CHAR_CODE('name'),
+ kSpriteImageNameAtomType = FOUR_CHAR_CODE('name'),
+ kSpriteUsesImageIDsAtomType = FOUR_CHAR_CODE('uses'), /* leaf data is an array of QTAtomID's, one per image used*/
+ kSpriteBehaviorsAtomType = FOUR_CHAR_CODE('beha'),
+ kSpriteImageBehaviorAtomType = FOUR_CHAR_CODE('imag'),
+ kSpriteCursorBehaviorAtomType = FOUR_CHAR_CODE('crsr'),
+ kSpriteStatusStringsBehaviorAtomType = FOUR_CHAR_CODE('sstr'),
+ kSpriteVariablesContainerAtomType = FOUR_CHAR_CODE('vars'),
+ kSpriteStringVariableAtomType = FOUR_CHAR_CODE('strv'),
+ kSpriteFloatingPointVariableAtomType = FOUR_CHAR_CODE('flov')
+};
+
+struct QTRuntimeSpriteDescStruct {
+ long version; /* set to zero*/
+ QTAtomID spriteID;
+ short imageIndex;
+ MatrixRecord matrix;
+ short visible;
+ short layer;
+ ModifierTrackGraphicsModeRecord graphicsMode;
+ QTAtomID actionHandlingSpriteID;
+};
+typedef struct QTRuntimeSpriteDescStruct QTRuntimeSpriteDescStruct;
+typedef QTRuntimeSpriteDescStruct * QTRuntimeSpriteDescPtr;
+/*
+ when filling in QTSpriteButtonBehaviorStruct values -1 may be used to indicate that
+ the state transition does not change the property
+*/
+struct QTSpriteButtonBehaviorStruct {
+ QTAtomID notOverNotPressedStateID;
+ QTAtomID overNotPressedStateID;
+ QTAtomID overPressedStateID;
+ QTAtomID notOverPressedStateID;
+};
+typedef struct QTSpriteButtonBehaviorStruct QTSpriteButtonBehaviorStruct;
+typedef QTSpriteButtonBehaviorStruct * QTSpriteButtonBehaviorPtr;
+/*
+ * SpriteMediaSetProperty()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentResult )
+SpriteMediaSetProperty(
+ MediaHandler mh,
+ short spriteIndex,
+ long propertyType,
+ void * propertyValue) FIVEWORDINLINE(0x2F3C, 0x000A, 0x0101, 0x7000, 0xA82A);
+
+
+/*
+ * SpriteMediaGetProperty()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentResult )
+SpriteMediaGetProperty(
+ MediaHandler mh,
+ short spriteIndex,
+ long propertyType,
+ void * propertyValue) FIVEWORDINLINE(0x2F3C, 0x000A, 0x0102, 0x7000, 0xA82A);
+
+
+/*
+ * SpriteMediaHitTestSprites()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentResult )
+SpriteMediaHitTestSprites(
+ MediaHandler mh,
+ long flags,
+ Point loc,
+ short * spriteHitIndex) FIVEWORDINLINE(0x2F3C, 0x000C, 0x0103, 0x7000, 0xA82A);
+
+
+/*
+ * SpriteMediaCountSprites()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentResult )
+SpriteMediaCountSprites(
+ MediaHandler mh,
+ short * numSprites) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0104, 0x7000, 0xA82A);
+
+
+/*
+ * SpriteMediaCountImages()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentResult )
+SpriteMediaCountImages(
+ MediaHandler mh,
+ short * numImages) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0105, 0x7000, 0xA82A);
+
+
+/*
+ * SpriteMediaGetIndImageDescription()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentResult )
+SpriteMediaGetIndImageDescription(
+ MediaHandler mh,
+ short imageIndex,
+ ImageDescriptionHandle imageDescription) FIVEWORDINLINE(0x2F3C, 0x0006, 0x0106, 0x7000, 0xA82A);
+
+
+/*
+ * SpriteMediaGetDisplayedSampleNumber()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentResult )
+SpriteMediaGetDisplayedSampleNumber(
+ MediaHandler mh,
+ long * sampleNum) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0107, 0x7000, 0xA82A);
+
+
+/*
+ * SpriteMediaGetSpriteName()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 3.0 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentResult )
+SpriteMediaGetSpriteName(
+ MediaHandler mh,
+ QTAtomID spriteID,
+ Str255 spriteName) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0108, 0x7000, 0xA82A);
+
+
+/*
+ * SpriteMediaGetImageName()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 3.0 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentResult )
+SpriteMediaGetImageName(
+ MediaHandler mh,
+ short imageIndex,
+ Str255 imageName) FIVEWORDINLINE(0x2F3C, 0x0006, 0x0109, 0x7000, 0xA82A);
+
+
+/*
+ * SpriteMediaSetSpriteProperty()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 3.0 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentResult )
+SpriteMediaSetSpriteProperty(
+ MediaHandler mh,
+ QTAtomID spriteID,
+ long propertyType,
+ void * propertyValue) FIVEWORDINLINE(0x2F3C, 0x000C, 0x010A, 0x7000, 0xA82A);
+
+
+/*
+ * SpriteMediaGetSpriteProperty()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 3.0 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentResult )
+SpriteMediaGetSpriteProperty(
+ MediaHandler mh,
+ QTAtomID spriteID,
+ long propertyType,
+ void * propertyValue) FIVEWORDINLINE(0x2F3C, 0x000C, 0x010B, 0x7000, 0xA82A);
+
+
+/*
+ * SpriteMediaHitTestAllSprites()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 3.0 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentResult )
+SpriteMediaHitTestAllSprites(
+ MediaHandler mh,
+ long flags,
+ Point loc,
+ QTAtomID * spriteHitID) FIVEWORDINLINE(0x2F3C, 0x000C, 0x010C, 0x7000, 0xA82A);
+
+
+/*
+ * SpriteMediaHitTestOneSprite()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 3.0 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentResult )
+SpriteMediaHitTestOneSprite(
+ MediaHandler mh,
+ QTAtomID spriteID,
+ long flags,
+ Point loc,
+ Boolean * wasHit) FIVEWORDINLINE(0x2F3C, 0x0010, 0x010D, 0x7000, 0xA82A);
+
+
+/*
+ * SpriteMediaSpriteIndexToID()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 3.0 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentResult )
+SpriteMediaSpriteIndexToID(
+ MediaHandler mh,
+ short spriteIndex,
+ QTAtomID * spriteID) FIVEWORDINLINE(0x2F3C, 0x0006, 0x010E, 0x7000, 0xA82A);
+
+
+/*
+ * SpriteMediaSpriteIDToIndex()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 3.0 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentResult )
+SpriteMediaSpriteIDToIndex(
+ MediaHandler mh,
+ QTAtomID spriteID,
+ short * spriteIndex) FIVEWORDINLINE(0x2F3C, 0x0008, 0x010F, 0x7000, 0xA82A);
+
+
+/*
+ * SpriteMediaGetSpriteActionsForQTEvent()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 3.0 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentResult )
+SpriteMediaGetSpriteActionsForQTEvent(
+ MediaHandler mh,
+ QTEventRecordPtr event,
+ QTAtomID spriteID,
+ QTAtomContainer * container,
+ QTAtom * atom) FIVEWORDINLINE(0x2F3C, 0x0010, 0x0110, 0x7000, 0xA82A);
+
+
+/*
+ * SpriteMediaSetActionVariable()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 3.0 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentResult )
+SpriteMediaSetActionVariable(
+ MediaHandler mh,
+ QTAtomID variableID,
+ const float * value) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0111, 0x7000, 0xA82A);
+
+
+/*
+ * SpriteMediaGetActionVariable()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 3.0 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentResult )
+SpriteMediaGetActionVariable(
+ MediaHandler mh,
+ QTAtomID variableID,
+ float * value) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0112, 0x7000, 0xA82A);
+
+
+/*
+ * SpriteMediaGetIndImageProperty()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 3.0 and later
+ * CarbonLib: in CarbonLib 1.1 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentResult )
+SpriteMediaGetIndImageProperty(
+ MediaHandler mh,
+ short imageIndex,
+ long imagePropertyType,
+ void * imagePropertyValue) FIVEWORDINLINE(0x2F3C, 0x000A, 0x0113, 0x7000, 0xA82A);
+
+
+/*
+ * SpriteMediaNewSprite()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 4.0 and later
+ * CarbonLib: in CarbonLib 1.0.2 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 4.0 and later
+ */
+EXTERN_API( ComponentResult )
+SpriteMediaNewSprite(
+ MediaHandler mh,
+ QTRuntimeSpriteDescPtr newSpriteDesc) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0114, 0x7000, 0xA82A);
+
+
+/*
+ * SpriteMediaDisposeSprite()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 4.0 and later
+ * CarbonLib: in CarbonLib 1.0.2 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 4.0 and later
+ */
+EXTERN_API( ComponentResult )
+SpriteMediaDisposeSprite(
+ MediaHandler mh,
+ QTAtomID spriteID) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0115, 0x7000, 0xA82A);
+
+
+/*
+ * SpriteMediaSetActionVariableToString()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 4.0 and later
+ * CarbonLib: in CarbonLib 1.0.2 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 4.0 and later
+ */
+EXTERN_API( ComponentResult )
+SpriteMediaSetActionVariableToString(
+ MediaHandler mh,
+ QTAtomID variableID,
+ Ptr theCString) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0116, 0x7000, 0xA82A);
+
+
+/*
+ * SpriteMediaGetActionVariableAsString()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 4.0 and later
+ * CarbonLib: in CarbonLib 1.0.2 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 4.0 and later
+ */
+EXTERN_API( ComponentResult )
+SpriteMediaGetActionVariableAsString(
+ MediaHandler mh,
+ QTAtomID variableID,
+ Handle * theCString) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0117, 0x7000, 0xA82A);
+
+
+
+
+/*
+ * SpriteMediaNewImage()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 6.0 and later
+ * CarbonLib: in CarbonLib 1.6 and later
+ * Mac OS X: in version 10.2 and later
+ * Windows: in qtmlClient.lib 6.0 and later
+ */
+EXTERN_API( ComponentResult )
+SpriteMediaNewImage(
+ MediaHandler mh,
+ Handle dataRef,
+ OSType dataRefType,
+ QTAtomID desiredID) FIVEWORDINLINE(0x2F3C, 0x000C, 0x011B, 0x7000, 0xA82A);
+
+
+/*
+ * SpriteMediaDisposeImage()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 6.0 and later
+ * CarbonLib: in CarbonLib 1.6 and later
+ * Mac OS X: in version 10.2 and later
+ * Windows: in qtmlClient.lib 6.0 and later
+ */
+EXTERN_API( ComponentResult )
+SpriteMediaDisposeImage(
+ MediaHandler mh,
+ short imageIndex) FIVEWORDINLINE(0x2F3C, 0x0002, 0x011C, 0x7000, 0xA82A);
+
+
+/*
+ * SpriteMediaImageIndexToID()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 6.0 and later
+ * CarbonLib: in CarbonLib 1.6 and later
+ * Mac OS X: in version 10.2 and later
+ * Windows: in qtmlClient.lib 6.0 and later
+ */
+EXTERN_API( ComponentResult )
+SpriteMediaImageIndexToID(
+ MediaHandler mh,
+ short imageIndex,
+ QTAtomID * imageID) FIVEWORDINLINE(0x2F3C, 0x0006, 0x011D, 0x7000, 0xA82A);
+
+
+/*
+ * SpriteMediaImageIDToIndex()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 6.0 and later
+ * CarbonLib: in CarbonLib 1.6 and later
+ * Mac OS X: in version 10.2 and later
+ * Windows: in qtmlClient.lib 6.0 and later
+ */
+EXTERN_API( ComponentResult )
+SpriteMediaImageIDToIndex(
+ MediaHandler mh,
+ QTAtomID imageID,
+ short * imageIndex) FIVEWORDINLINE(0x2F3C, 0x0008, 0x011E, 0x7000, 0xA82A);
+
+
+
+/*************************
+* Flash Media routines
+**************************/
+
+/*
+ * FlashMediaSetPan()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 4.0 and later
+ * CarbonLib: in CarbonLib 1.0.2 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 4.0 and later
+ */
+EXTERN_API( ComponentResult )
+FlashMediaSetPan(
+ MediaHandler mh,
+ short xPercent,
+ short yPercent) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0101, 0x7000, 0xA82A);
+
+
+/*
+ * FlashMediaSetZoom()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 4.0 and later
+ * CarbonLib: in CarbonLib 1.0.2 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 4.0 and later
+ */
+EXTERN_API( ComponentResult )
+FlashMediaSetZoom(
+ MediaHandler mh,
+ short factor) FIVEWORDINLINE(0x2F3C, 0x0002, 0x0102, 0x7000, 0xA82A);
+
+
+/*
+ * FlashMediaSetZoomRect()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 4.0 and later
+ * CarbonLib: in CarbonLib 1.0.2 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 4.0 and later
+ */
+EXTERN_API( ComponentResult )
+FlashMediaSetZoomRect(
+ MediaHandler mh,
+ long left,
+ long top,
+ long right,
+ long bottom) FIVEWORDINLINE(0x2F3C, 0x0010, 0x0103, 0x7000, 0xA82A);
+
+
+/*
+ * FlashMediaGetRefConBounds()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 4.0 and later
+ * CarbonLib: in CarbonLib 1.0.2 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 4.0 and later
+ */
+EXTERN_API( ComponentResult )
+FlashMediaGetRefConBounds(
+ MediaHandler mh,
+ long refCon,
+ long * left,
+ long * top,
+ long * right,
+ long * bottom) FIVEWORDINLINE(0x2F3C, 0x0014, 0x0104, 0x7000, 0xA82A);
+
+
+/*
+ * FlashMediaGetRefConID()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 4.0 and later
+ * CarbonLib: in CarbonLib 1.0.2 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 4.0 and later
+ */
+EXTERN_API( ComponentResult )
+FlashMediaGetRefConID(
+ MediaHandler mh,
+ long refCon,
+ long * refConID) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0105, 0x7000, 0xA82A);
+
+
+/*
+ * FlashMediaIDToRefCon()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 4.0 and later
+ * CarbonLib: in CarbonLib 1.0.2 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 4.0 and later
+ */
+EXTERN_API( ComponentResult )
+FlashMediaIDToRefCon(
+ MediaHandler mh,
+ long refConID,
+ long * refCon) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0106, 0x7000, 0xA82A);
+
+
+/*
+ * FlashMediaGetDisplayedFrameNumber()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 4.0 and later
+ * CarbonLib: in CarbonLib 1.0.2 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 4.0 and later
+ */
+EXTERN_API( ComponentResult )
+FlashMediaGetDisplayedFrameNumber(
+ MediaHandler mh,
+ long * flashFrameNumber) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0107, 0x7000, 0xA82A);
+
+
+/*
+ * FlashMediaFrameNumberToMovieTime()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 4.0 and later
+ * CarbonLib: in CarbonLib 1.0.2 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 4.0 and later
+ */
+EXTERN_API( ComponentResult )
+FlashMediaFrameNumberToMovieTime(
+ MediaHandler mh,
+ long flashFrameNumber,
+ TimeValue * movieTime) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0108, 0x7000, 0xA82A);
+
+
+/*
+ * FlashMediaFrameLabelToMovieTime()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 4.0 and later
+ * CarbonLib: in CarbonLib 1.0.2 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 4.0 and later
+ */
+EXTERN_API( ComponentResult )
+FlashMediaFrameLabelToMovieTime(
+ MediaHandler mh,
+ Ptr theLabel,
+ TimeValue * movieTime) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0109, 0x7000, 0xA82A);
+
+
+/*
+ * FlashMediaGetFlashVariable()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 5.0 and later
+ * CarbonLib: in CarbonLib 1.3 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 5.0 and later
+ */
+EXTERN_API( ComponentResult )
+FlashMediaGetFlashVariable(
+ MediaHandler mh,
+ char * path,
+ char * name,
+ Handle * theVariableCStringOut) FIVEWORDINLINE(0x2F3C, 0x000C, 0x010A, 0x7000, 0xA82A);
+
+
+/*
+ * FlashMediaSetFlashVariable()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 5.0 and later
+ * CarbonLib: in CarbonLib 1.3 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 5.0 and later
+ */
+EXTERN_API( ComponentResult )
+FlashMediaSetFlashVariable(
+ MediaHandler mh,
+ char * path,
+ char * name,
+ char * value,
+ Boolean updateFocus) FIVEWORDINLINE(0x2F3C, 0x000E, 0x010B, 0x7000, 0xA82A);
+
+
+/*
+ * FlashMediaDoButtonActions()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 5.0 and later
+ * CarbonLib: in CarbonLib 1.3 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 5.0 and later
+ */
+EXTERN_API( ComponentResult )
+FlashMediaDoButtonActions(
+ MediaHandler mh,
+ char * path,
+ long buttonID,
+ long transition) FIVEWORDINLINE(0x2F3C, 0x000C, 0x010C, 0x7000, 0xA82A);
+
+
+/*
+ * FlashMediaGetSupportedSwfVersion()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 5.0 and later
+ * CarbonLib: in CarbonLib 1.3 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 5.0 and later
+ */
+EXTERN_API( ComponentResult )
+FlashMediaGetSupportedSwfVersion(
+ MediaHandler mh,
+ unsigned char * swfVersion) FIVEWORDINLINE(0x2F3C, 0x0004, 0x010D, 0x7000, 0xA82A);
+
+
+
+
+/* sample format atoms*/
+enum {
+ kMovieMediaDataReference = FOUR_CHAR_CODE('mmdr'), /* data reference*/
+ kMovieMediaDefaultDataReferenceID = FOUR_CHAR_CODE('ddri'), /* atom id*/
+ kMovieMediaSlaveTime = FOUR_CHAR_CODE('slti'), /* boolean*/
+ kMovieMediaSlaveAudio = FOUR_CHAR_CODE('slau'), /* boolean*/
+ kMovieMediaSlaveGraphicsMode = FOUR_CHAR_CODE('slgr'), /* boolean*/
+ kMovieMediaAutoPlay = FOUR_CHAR_CODE('play'), /* boolean*/
+ kMovieMediaLoop = FOUR_CHAR_CODE('loop'), /* UInt8 (0=no loop, 1=loop, 2=palindrome loop)*/
+ kMovieMediaUseMIMEType = FOUR_CHAR_CODE('mime'), /* string indicating the MIME type to use for the dataref (usually not required)*/
+ kMovieMediaTitle = FOUR_CHAR_CODE('titl'), /* string of the media's title (tooltips)*/
+ kMovieMediaAltText = FOUR_CHAR_CODE('altt'), /* string of alternate text if media isn't loaded*/
+ kMovieMediaClipBegin = FOUR_CHAR_CODE('clpb'), /* MovieMediaTimeRecord of start time of embedded media*/
+ kMovieMediaClipDuration = FOUR_CHAR_CODE('clpd'), /* MovieMediaTimeRecord of duration of embedded media*/
+ kMovieMediaRegionAtom = FOUR_CHAR_CODE('regi'), /* contains subatoms that describe layout*/
+ kMovieMediaSlaveTrackDuration = FOUR_CHAR_CODE('sltr'), /* Boolean indicating that media handler should adjust track and media based on actual embedded movie duration*/
+ kMovieMediaEnableFrameStepping = FOUR_CHAR_CODE('enfs'), /* boolean. if true stepping on external movie steps frames within embedded movie.*/
+ kMovieMediaBackgroundColor = FOUR_CHAR_CODE('bkcl'), /* RGBColor.*/
+ kMovieMediaPrerollTime = FOUR_CHAR_CODE('prer') /* SInt32 indicating preroll time*/
+};
+
+/* fit types*/
+enum {
+ kMovieMediaFitNone = 0,
+ kMovieMediaFitScroll = FOUR_CHAR_CODE('scro'),
+ kMovieMediaFitClipIfNecessary = FOUR_CHAR_CODE('hidd'),
+ kMovieMediaFitFill = FOUR_CHAR_CODE('fill'),
+ kMovieMediaFitMeet = FOUR_CHAR_CODE('meet'),
+ kMovieMediaFitSlice = FOUR_CHAR_CODE('slic')
+};
+
+/* sub atoms for region atom*/
+enum {
+ kMovieMediaSpatialAdjustment = FOUR_CHAR_CODE('fit '), /* OSType from kMovieMediaFit**/
+ kMovieMediaRectangleAtom = FOUR_CHAR_CODE('rect'),
+ kMovieMediaTop = FOUR_CHAR_CODE('top '),
+ kMovieMediaLeft = FOUR_CHAR_CODE('left'),
+ kMovieMediaWidth = FOUR_CHAR_CODE('wd '),
+ kMovieMediaHeight = FOUR_CHAR_CODE('ht ')
+};
+
+/* contained movie properties*/
+enum {
+ kMoviePropertyDuration = FOUR_CHAR_CODE('dura'), /* TimeValue **/
+ kMoviePropertyTimeScale = FOUR_CHAR_CODE('tims'), /* TimeValue **/
+ kMoviePropertyTime = FOUR_CHAR_CODE('timv'), /* TimeValue **/
+ kMoviePropertyNaturalBounds = FOUR_CHAR_CODE('natb'), /* Rect **/
+ kMoviePropertyMatrix = FOUR_CHAR_CODE('mtrx'), /* Matrix **/
+ kMoviePropertyTrackList = FOUR_CHAR_CODE('tlst') /* long ****/
+};
+
+
+enum {
+ kTrackPropertyMediaType = FOUR_CHAR_CODE('mtyp'), /* OSType*/
+ kTrackPropertyInstantiation = FOUR_CHAR_CODE('inst') /* MovieMediaInstantiationInfoRecord*/
+};
+
+struct MovieMediaTimeRecord {
+ wide time;
+ TimeScale scale;
+};
+typedef struct MovieMediaTimeRecord MovieMediaTimeRecord;
+struct MovieMediaInstantiationInfoRecord {
+ Boolean immediately;
+ Boolean pad;
+ SInt32 bitRate;
+};
+typedef struct MovieMediaInstantiationInfoRecord MovieMediaInstantiationInfoRecord;
+/*************************
+* Movie Media routines
+**************************/
+
+
+/*
+ * MovieMediaGetChildDoMCActionCallback()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 4.1 and later
+ * CarbonLib: in CarbonLib 1.1 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 4.1 and later
+ */
+EXTERN_API( ComponentResult )
+MovieMediaGetChildDoMCActionCallback(
+ MediaHandler mh,
+ DoMCActionUPP * doMCActionCallbackProc,
+ long * refcon) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0102, 0x7000, 0xA82A);
+
+
+/*
+ * MovieMediaGetDoMCActionCallback()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 4.1 and later
+ * CarbonLib: in CarbonLib 1.1 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 4.1 and later
+ */
+EXTERN_API( ComponentResult )
+MovieMediaGetDoMCActionCallback(
+ MediaHandler mh,
+ DoMCActionUPP * doMCActionCallbackProc,
+ long * refcon) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0103, 0x7000, 0xA82A);
+
+
+/*
+ * MovieMediaGetCurrentMovieProperty()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 4.1 and later
+ * CarbonLib: in CarbonLib 1.1 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 4.1 and later
+ */
+EXTERN_API( ComponentResult )
+MovieMediaGetCurrentMovieProperty(
+ MediaHandler mh,
+ OSType whichProperty,
+ void * value) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0104, 0x7000, 0xA82A);
+
+
+/*
+ * MovieMediaGetCurrentTrackProperty()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 4.1 and later
+ * CarbonLib: in CarbonLib 1.1 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 4.1 and later
+ */
+EXTERN_API( ComponentResult )
+MovieMediaGetCurrentTrackProperty(
+ MediaHandler mh,
+ long trackID,
+ OSType whichProperty,
+ void * value) FIVEWORDINLINE(0x2F3C, 0x000C, 0x0105, 0x7000, 0xA82A);
+
+
+/*
+ * MovieMediaGetChildMovieDataReference()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 4.1 and later
+ * CarbonLib: in CarbonLib 1.1 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 4.1 and later
+ */
+EXTERN_API( ComponentResult )
+MovieMediaGetChildMovieDataReference(
+ MediaHandler mh,
+ QTAtomID dataRefID,
+ short dataRefIndex,
+ OSType * dataRefType,
+ Handle * dataRef,
+ QTAtomID * dataRefIDOut,
+ short * dataRefIndexOut) FIVEWORDINLINE(0x2F3C, 0x0016, 0x0106, 0x7000, 0xA82A);
+
+
+/*
+ * MovieMediaSetChildMovieDataReference()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 4.1 and later
+ * CarbonLib: in CarbonLib 1.1 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 4.1 and later
+ */
+EXTERN_API( ComponentResult )
+MovieMediaSetChildMovieDataReference(
+ MediaHandler mh,
+ QTAtomID dataRefID,
+ OSType dataRefType,
+ Handle dataRef) FIVEWORDINLINE(0x2F3C, 0x000C, 0x0107, 0x7000, 0xA82A);
+
+
+/*
+ * MovieMediaLoadChildMovieFromDataReference()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 4.1 and later
+ * CarbonLib: in CarbonLib 1.1 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 4.1 and later
+ */
+EXTERN_API( ComponentResult )
+MovieMediaLoadChildMovieFromDataReference(
+ MediaHandler mh,
+ QTAtomID dataRefID) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0108, 0x7000, 0xA82A);
+
+
+
+
+/*************************
+* 3D Media routines
+**************************/
+/*
+ * Media3DGetNamedObjectList()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentResult )
+Media3DGetNamedObjectList(
+ MediaHandler mh,
+ QTAtomContainer * objectList) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0101, 0x7000, 0xA82A);
+
+
+/*
+ * Media3DGetRendererList()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentResult )
+Media3DGetRendererList(
+ MediaHandler mh,
+ QTAtomContainer * rendererList) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0102, 0x7000, 0xA82A);
+
+
+/*
+ * Media3DGetCurrentGroup()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 4.0 and later
+ * CarbonLib: in CarbonLib 1.0.2 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 4.0 and later
+ */
+EXTERN_API( ComponentResult )
+Media3DGetCurrentGroup(
+ MediaHandler mh,
+ void * group) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0103, 0x7000, 0xA82A);
+
+
+/*
+ * Media3DTranslateNamedObjectTo()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 4.0 and later
+ * CarbonLib: in CarbonLib 1.0.2 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 4.0 and later
+ */
+EXTERN_API( ComponentResult )
+Media3DTranslateNamedObjectTo(
+ MediaHandler mh,
+ char * objectName,
+ Fixed x,
+ Fixed y,
+ Fixed z) FIVEWORDINLINE(0x2F3C, 0x0010, 0x0104, 0x7000, 0xA82A);
+
+
+/*
+ * Media3DScaleNamedObjectTo()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 4.0 and later
+ * CarbonLib: in CarbonLib 1.0.2 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 4.0 and later
+ */
+EXTERN_API( ComponentResult )
+Media3DScaleNamedObjectTo(
+ MediaHandler mh,
+ char * objectName,
+ Fixed xScale,
+ Fixed yScale,
+ Fixed zScale) FIVEWORDINLINE(0x2F3C, 0x0010, 0x0105, 0x7000, 0xA82A);
+
+
+/*
+ * Media3DRotateNamedObjectTo()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 4.0 and later
+ * CarbonLib: in CarbonLib 1.0.2 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 4.0 and later
+ */
+EXTERN_API( ComponentResult )
+Media3DRotateNamedObjectTo(
+ MediaHandler mh,
+ char * objectName,
+ Fixed xDegrees,
+ Fixed yDegrees,
+ Fixed zDegrees) FIVEWORDINLINE(0x2F3C, 0x0010, 0x0106, 0x7000, 0xA82A);
+
+
+/*
+ * Media3DSetCameraData()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 4.0 and later
+ * CarbonLib: in CarbonLib 1.0.2 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 4.0 and later
+ */
+EXTERN_API( ComponentResult )
+Media3DSetCameraData(
+ MediaHandler mh,
+ void * cameraData) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0107, 0x7000, 0xA82A);
+
+
+/*
+ * Media3DGetCameraData()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 4.0 and later
+ * CarbonLib: in CarbonLib 1.0.2 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 4.0 and later
+ */
+EXTERN_API( ComponentResult )
+Media3DGetCameraData(
+ MediaHandler mh,
+ void * cameraData) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0108, 0x7000, 0xA82A);
+
+
+/*
+ * Media3DSetCameraAngleAspect()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 4.0 and later
+ * CarbonLib: in CarbonLib 1.0.2 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 4.0 and later
+ */
+EXTERN_API( ComponentResult )
+Media3DSetCameraAngleAspect(
+ MediaHandler mh,
+ QTFloatSingle fov,
+ QTFloatSingle aspectRatioXToY) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0109, 0x7000, 0xA82A);
+
+
+/*
+ * Media3DGetCameraAngleAspect()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 4.0 and later
+ * CarbonLib: in CarbonLib 1.0.2 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 4.0 and later
+ */
+EXTERN_API( ComponentResult )
+Media3DGetCameraAngleAspect(
+ MediaHandler mh,
+ QTFloatSingle * fov,
+ QTFloatSingle * aspectRatioXToY) FIVEWORDINLINE(0x2F3C, 0x0008, 0x010A, 0x7000, 0xA82A);
+
+
+
+/*
+ * Media3DSetCameraRange()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 4.0 and later
+ * CarbonLib: in CarbonLib 1.0.2 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 4.0 and later
+ */
+EXTERN_API( ComponentResult )
+Media3DSetCameraRange(
+ MediaHandler mh,
+ void * tQ3CameraRange) FIVEWORDINLINE(0x2F3C, 0x0004, 0x010D, 0x7000, 0xA82A);
+
+
+/*
+ * Media3DGetCameraRange()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 4.0 and later
+ * CarbonLib: in CarbonLib 1.0.2 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 4.0 and later
+ */
+EXTERN_API( ComponentResult )
+Media3DGetCameraRange(
+ MediaHandler mh,
+ void * tQ3CameraRange) FIVEWORDINLINE(0x2F3C, 0x0004, 0x010E, 0x7000, 0xA82A);
+
+
+/*
+ * Media3DGetViewObject()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 4.1 and later
+ * CarbonLib: in CarbonLib 1.1 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 4.1 and later
+ */
+EXTERN_API( ComponentResult )
+Media3DGetViewObject(
+ MediaHandler mh,
+ void * tq3viewObject) FIVEWORDINLINE(0x2F3C, 0x0004, 0x010F, 0x7000, 0xA82A);
+
+
+
+
+/****************************************
+* *
+* M O V I E C O N T R O L L E R *
+* *
+****************************************/
+enum {
+ MovieControllerComponentType = FOUR_CHAR_CODE('play')
+};
+
+
+enum {
+ kMovieControllerQTVRFlag = 1 << 0,
+ kMovieControllerDontDisplayToUser = 1 << 1
+};
+
+
+typedef ComponentInstance MovieController;
+typedef MovieController * MovieControllerPtr;
+enum {
+ mcActionIdle = 1, /* no param*/
+ mcActionDraw = 2, /* param is WindowRef*/
+ mcActionActivate = 3, /* no param*/
+ mcActionDeactivate = 4, /* no param*/
+ mcActionMouseDown = 5, /* param is pointer to EventRecord*/
+ mcActionKey = 6, /* param is pointer to EventRecord*/
+ mcActionPlay = 8, /* param is Fixed, play rate*/
+ mcActionGoToTime = 12, /* param is TimeRecord*/
+ mcActionSetVolume = 14, /* param is a short*/
+ mcActionGetVolume = 15, /* param is pointer to a short*/
+ mcActionStep = 18, /* param is number of steps (short)*/
+ mcActionSetLooping = 21, /* param is Boolean*/
+ mcActionGetLooping = 22, /* param is pointer to a Boolean*/
+ mcActionSetLoopIsPalindrome = 23, /* param is Boolean*/
+ mcActionGetLoopIsPalindrome = 24, /* param is pointer to a Boolean*/
+ mcActionSetGrowBoxBounds = 25, /* param is a Rect*/
+ mcActionControllerSizeChanged = 26, /* no param*/
+ mcActionSetSelectionBegin = 29, /* param is TimeRecord*/
+ mcActionSetSelectionDuration = 30, /* param is TimeRecord, action only taken on set-duration*/
+ mcActionSetKeysEnabled = 32, /* param is Boolean*/
+ mcActionGetKeysEnabled = 33, /* param is pointer to Boolean*/
+ mcActionSetPlaySelection = 34, /* param is Boolean*/
+ mcActionGetPlaySelection = 35, /* param is pointer to Boolean*/
+ mcActionSetUseBadge = 36, /* param is Boolean*/
+ mcActionGetUseBadge = 37, /* param is pointer to Boolean*/
+ mcActionSetFlags = 38, /* param is long of flags*/
+ mcActionGetFlags = 39, /* param is pointer to a long of flags*/
+ mcActionSetPlayEveryFrame = 40, /* param is Boolean*/
+ mcActionGetPlayEveryFrame = 41, /* param is pointer to Boolean*/
+ mcActionGetPlayRate = 42, /* param is pointer to Fixed*/
+ mcActionShowBalloon = 43, /* param is a pointer to a boolean. set to false to stop balloon*/
+ mcActionBadgeClick = 44, /* param is pointer to Boolean. set to false to ignore click*/
+ mcActionMovieClick = 45, /* param is pointer to event record. change "what" to nullEvt to kill click*/
+ mcActionSuspend = 46, /* no param*/
+ mcActionResume = 47, /* no param*/
+ mcActionSetControllerKeysEnabled = 48, /* param is Boolean*/
+ mcActionGetTimeSliderRect = 49, /* param is pointer to rect*/
+ mcActionMovieEdited = 50, /* no param*/
+ mcActionGetDragEnabled = 51, /* param is pointer to Boolean*/
+ mcActionSetDragEnabled = 52, /* param is Boolean*/
+ mcActionGetSelectionBegin = 53, /* param is TimeRecord*/
+ mcActionGetSelectionDuration = 54, /* param is TimeRecord*/
+ mcActionPrerollAndPlay = 55, /* param is Fixed, play rate*/
+ mcActionGetCursorSettingEnabled = 56, /* param is pointer to Boolean*/
+ mcActionSetCursorSettingEnabled = 57, /* param is Boolean*/
+ mcActionSetColorTable = 58, /* param is CTabHandle*/
+ mcActionLinkToURL = 59, /* param is Handle to URL*/
+ mcActionCustomButtonClick = 60, /* param is pointer to EventRecord*/
+ mcActionForceTimeTableUpdate = 61, /* no param*/
+ mcActionSetControllerTimeLimits = 62, /* param is pointer to 2 time values min/max. do no send this message to controller. used internally only.*/
+ mcActionExecuteAllActionsForQTEvent = 63, /* param is ResolvedQTEventSpecPtr*/
+ mcActionExecuteOneActionForQTEvent = 64, /* param is ResolvedQTEventSpecPtr*/
+ mcActionAdjustCursor = 65, /* param is pointer to EventRecord (WindowRef is in message parameter)*/
+ mcActionUseTrackForTimeTable = 66, /* param is pointer to {long trackID; Boolean useIt}. do not send this message to controller. */
+ mcActionClickAndHoldPoint = 67, /* param is point (local coordinates). return true if point has click & hold action (e.g., VR object movie autorotate spot)*/
+ mcActionShowMessageString = 68, /* param is a StringPtr*/
+ mcActionShowStatusString = 69, /* param is a QTStatusStringPtr*/
+ mcActionGetExternalMovie = 70, /* param is a QTGetExternalMoviePtr*/
+ mcActionGetChapterTime = 71, /* param is a QTGetChapterTimePtr*/
+ mcActionPerformActionList = 72, /* param is a QTAtomSpecPtr*/
+ mcActionEvaluateExpression = 73, /* param is a QTEvaluateExpressionPtr*/
+ mcActionFetchParameterAs = 74, /* param is a QTFetchParameterAsPtr*/
+ mcActionGetCursorByID = 75, /* param is a QTGetCursorByIDPtr*/
+ mcActionGetNextURL = 76, /* param is a Handle to URL*/
+ mcActionMovieChanged = 77,
+ mcActionDoScript = 78, /* param is QTDoScriptPtr*/
+ mcActionRestartAtTime = 79, /* param is QTResartAtTimePtr*/
+ mcActionGetIndChapter = 80, /* param is QTChapterInfoPtr*/
+ mcActionLinkToURLExtended = 81, /* param is QTAtomContainer as used by QTParseHREF*/
+ mcActionSetVolumeStep = 82, /* param is short containing amount to step volume via arrow keys - default = 64*/
+ mcActionAutoPlay = 83, /* param is Fixed, play rate*/
+ mcActionPauseToBuffer = 84, /* param is Fixed, play rate on restart*/
+ mcActionAppMessageReceived = 85, /* param is a long, application message*/
+ mcActionMovieFinished = 86, /* no param*/
+ mcActionEvaluateExpressionWithType = 89, /* param is a QTEvaluateExpressionWithTypePtr*/
+ mcActionGetMovieName = 90, /* param is a p String Handle*/
+ mcActionGetMovieID = 91, /* param is pointer to long*/
+ mcActionGetMovieActive = 92, /* param is pointer to Boolean*/
+ mcActionGetKeyboardFocus = 93, /* param is QTKeyboardFocusPtr*/
+ mcActionSetKeyboardFocus = 94, /* param is QTKeyboardFocusPtr*/
+ mcActionAddActionNotification = 95, /* param is QTMCActionNotificationPtr*/
+ mcActionRemoveActionNotification = 96, /* param is QTMCActionNotificationPtr*/
+ mcActionKeyUp = 97, /* param is pointer to EventRecord */
+ mcActionGetConnectionStatus = 98, /* param is QTConnectionStatusPtr*/
+ mcActionChapterListChanged = 99, /* no param */
+ mcActionMovieLoadStateChanged = 100, /* param is SInt32, new load state*/
+ mcActionEditStateChanged = 101, /* param is a Boolean, editing enabled?*/
+ mcActionCurrentChapterChanged = 102 /* param is a UInt32, new chapter index */
+};
+
+typedef short mcAction;
+enum {
+ mcFlagSuppressMovieFrame = 1 << 0,
+ mcFlagSuppressStepButtons = 1 << 1,
+ mcFlagSuppressSpeakerButton = 1 << 2,
+ mcFlagsUseWindowPalette = 1 << 3,
+ mcFlagsDontInvalidate = 1 << 4,
+ mcFlagsUseCustomButton = 1 << 5
+};
+
+
+enum {
+ mcPositionDontInvalidate = 1 << 5
+};
+
+typedef unsigned long mcFlags;
+enum {
+ kMCIEEnabledButtonPicture = 1,
+ kMCIEDisabledButtonPicture = 2,
+ kMCIEDepressedButtonPicture = 3,
+ kMCIEEnabledSizeBoxPicture = 4,
+ kMCIEDisabledSizeBoxPicture = 5,
+ kMCIEEnabledUnavailableButtonPicture = 6,
+ kMCIEDisabledUnavailableButtonPicture = 7,
+ kMCIESoundSlider = 128,
+ kMCIESoundThumb = 129,
+ kMCIEColorTable = 256,
+ kMCIEIsFlatAppearance = 257,
+ kMCIEDoButtonIconsDropOnDepress = 258
+};
+
+typedef unsigned long MCInterfaceElement;
+typedef CALLBACK_API( Boolean , MCActionFilterProcPtr )(MovieController mc, short *action, void *params);
+typedef CALLBACK_API( Boolean , MCActionFilterWithRefConProcPtr )(MovieController mc, short action, void *params, long refCon);
+typedef CALLBACK_API( Boolean , MCActionNotificationProcPtr )(MovieController mc, short action, void *params, UInt32 inFlags, UInt32 *outFlags, void *refCon);
+typedef STACK_UPP_TYPE(MCActionFilterProcPtr) MCActionFilterUPP;
+typedef STACK_UPP_TYPE(MCActionFilterWithRefConProcPtr) MCActionFilterWithRefConUPP;
+typedef STACK_UPP_TYPE(MCActionNotificationProcPtr) MCActionNotificationUPP;
+/*
+ menu related stuff
+*/
+enum {
+ mcInfoUndoAvailable = 1 << 0,
+ mcInfoCutAvailable = 1 << 1,
+ mcInfoCopyAvailable = 1 << 2,
+ mcInfoPasteAvailable = 1 << 3,
+ mcInfoClearAvailable = 1 << 4,
+ mcInfoHasSound = 1 << 5,
+ mcInfoIsPlaying = 1 << 6,
+ mcInfoIsLooping = 1 << 7,
+ mcInfoIsInPalindrome = 1 << 8,
+ mcInfoEditingEnabled = 1 << 9,
+ mcInfoMovieIsInteractive = 1 << 10
+};
+
+/* menu item codes*/
+enum {
+ mcMenuUndo = 1,
+ mcMenuCut = 3,
+ mcMenuCopy = 4,
+ mcMenuPaste = 5,
+ mcMenuClear = 6
+};
+
+/* messages to the application via mcActionAppMessageReceived*/
+enum {
+ kQTAppMessageSoftwareChanged = 1, /* notification to app that installed QuickTime software has been updated*/
+ kQTAppMessageWindowCloseRequested = 3, /* request for app to close window containing movie controller*/
+ kQTAppMessageExitFullScreenRequested = 4, /* request for app to turn off full screen mode if active*/
+ kQTAppMessageDisplayChannels = 5, /* request for app to display the channel UI*/
+ kQTAppMessageEnterFullScreenRequested = 6 /* request for app to turn on full screen mode*/
+};
+
+/* structures used as mcActionFilterProc params*/
+struct QTStatusStringRecord {
+ long stringTypeFlags;
+ char * statusString;
+};
+typedef struct QTStatusStringRecord QTStatusStringRecord;
+typedef QTStatusStringRecord * QTStatusStringPtr;
+struct QTGetExternalMovieRecord {
+ long targetType; /* set to kTargetMovieName or kTargetMovieID*/
+ StringPtr movieName;
+ long movieID;
+ PtrToMovie theMovie;
+ MovieControllerPtr theController;
+};
+typedef struct QTGetExternalMovieRecord QTGetExternalMovieRecord;
+typedef QTGetExternalMovieRecord * QTGetExternalMoviePtr;
+struct QTGetChapterTimeRecord {
+ StringPtr chapterName;
+ TimeRecord chapterTime;
+};
+typedef struct QTGetChapterTimeRecord QTGetChapterTimeRecord;
+typedef QTGetChapterTimeRecord * QTGetChapterTimePtr;
+struct QTChapterInfoRecord {
+ long index; /* first chapter has index of 1*/
+ TimeValue time; /* -1 if no more chapters available*/
+ Str255 name;
+};
+typedef struct QTChapterInfoRecord QTChapterInfoRecord;
+typedef QTChapterInfoRecord * QTChapterInfoPtr;
+struct QTEvaluateExpressionRecord {
+ QTAtomSpec expressionSpec;
+ float * expressionResult;
+};
+typedef struct QTEvaluateExpressionRecord QTEvaluateExpressionRecord;
+typedef QTEvaluateExpressionRecord * QTEvaluateExpressionPtr;
+struct QTEvaluateExpressionWithTypeRecord {
+ long recordSize; /* Size of structure (fill in at allocation) */
+ QTAtomSpec expressionSpec;
+ float * expressionResult;
+ long fetchAsType;
+ Handle nonNumericResult;
+ /* Current size is 24 */
+};
+typedef struct QTEvaluateExpressionWithTypeRecord QTEvaluateExpressionWithTypeRecord;
+typedef QTEvaluateExpressionWithTypeRecord * QTEvaluateExpressionWithTypePtr;
+struct QTFetchParameterAsRecord {
+ QTAtomSpec paramListSpec;
+ long paramIndex;
+ long paramType;
+ long allowedFlags;
+ void * min;
+ void * max;
+ void * currentValue;
+ void * newValue;
+ Boolean isUnsignedValue;
+};
+typedef struct QTFetchParameterAsRecord QTFetchParameterAsRecord;
+typedef QTFetchParameterAsRecord * QTFetchParameterAsPtr;
+struct QTGetCursorByIDRecord {
+ short cursorID;
+ Handle colorCursorData;
+ long reserved1;
+};
+typedef struct QTGetCursorByIDRecord QTGetCursorByIDRecord;
+typedef QTGetCursorByIDRecord * QTGetCursorByIDPtr;
+struct QTDoScriptRecord {
+ long scriptTypeFlags;
+ char * command;
+ char * arguments;
+};
+typedef struct QTDoScriptRecord QTDoScriptRecord;
+typedef QTDoScriptRecord * QTDoScriptPtr;
+struct QTRestartAtTimeRecord {
+ TimeValue startTime; /* time scale is the movie timescale*/
+ Fixed rate; /* if rate is zero, the movie's current rate is maintained*/
+};
+typedef struct QTRestartAtTimeRecord QTRestartAtTimeRecord;
+typedef QTRestartAtTimeRecord * QTRestartAtTimePtr;
+/* values for paramType field of QTFetchParameterAsRecord*/
+enum {
+ kFetchAsBooleanPtr = 1,
+ kFetchAsShortPtr = 2,
+ kFetchAsLongPtr = 3,
+ kFetchAsMatrixRecordPtr = 4,
+ kFetchAsModifierTrackGraphicsModeRecord = 5,
+ kFetchAsHandle = 6,
+ kFetchAsStr255 = 7,
+ kFetchAsFloatPtr = 8,
+ kFetchAsPointPtr = 9,
+ kFetchAsNewAtomContainer = 10,
+ kFetchAsQTEventRecordPtr = 11,
+ kFetchAsFixedPtr = 12,
+ kFetchAsSetControllerValuePtr = 13,
+ kFetchAsRgnHandle = 14, /* flipped to native*/
+ kFetchAsComponentDescriptionPtr = 15,
+ kFetchAsCString = 16
+};
+
+enum {
+ kQTCursorOpenHand = -19183,
+ kQTCursorClosedHand = -19182,
+ kQTCursorPointingHand = -19181,
+ kQTCursorRightArrow = -19180,
+ kQTCursorLeftArrow = -19179,
+ kQTCursorDownArrow = -19178,
+ kQTCursorUpArrow = -19177,
+ kQTCursorIBeam = -19176
+};
+
+
+
+/* keyboard focus items*/
+
+enum {
+ kKeyboardAllowFocus = 1,
+ kKeyboardHaveFocus = 2,
+ kKeyboardValidate = 4
+};
+
+
+enum {
+ kRefConNavigateClick = FOUR_CHAR_CODE('clik')
+};
+
+
+struct QTKeyboardFocusRecord {
+ long recordSize; /* -> size of structure*/
+ long navigation; /* -> same as in MediaNavigateTargetRefCon*/
+ long focusRefCon; /* <-> refcon*/
+ short focusFlags; /* <-> flags from kKeyboard... enum */
+};
+typedef struct QTKeyboardFocusRecord QTKeyboardFocusRecord;
+typedef QTKeyboardFocusRecord * QTKeyboardFocusPtr;
+enum {
+ kQTMCActionNotifyBefore = (1L << 0),
+ kQTMCActionNotifyAfter = (1L << 1),
+ kQTMCActionNotifyParamChanged = (1L << 8),
+ kQTMCActionNotifyCancelled = (1L << 9),
+ kQTMCActionNotifyUserFilterCancelled = (1L << 10),
+ kQTMCActionNotifySignature = FOUR_CHAR_CODE('noti')
+};
+
+struct QTMCActionNotificationRecord {
+ OSType returnSignature; /* Set to zero when passed to movieController, set to 'noti' if mcActionAddActionNotification is implemented*/
+ MCActionNotificationUPP notifyAction; /* Function to be called at action time*/
+ void * refcon; /* Something to pass to the action function*/
+ UInt32 flags; /* Option flags*/
+};
+typedef struct QTMCActionNotificationRecord QTMCActionNotificationRecord;
+typedef QTMCActionNotificationRecord * QTMCActionNotificationPtr;
+struct QTConnectionStatusRecord {
+
+ short flags;
+ short error;
+
+ Handle message;
+};
+typedef struct QTConnectionStatusRecord QTConnectionStatusRecord;
+typedef QTConnectionStatusRecord * QTConnectionStatusPtr;
+
+/* target management */
+/*
+ * MCSetMovie()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentResult )
+MCSetMovie(
+ MovieController mc,
+ Movie theMovie,
+ WindowRef movieWindow,
+ Point where) FIVEWORDINLINE(0x2F3C, 0x000C, 0x0002, 0x7000, 0xA82A);
+
+
+/*
+ * MCGetIndMovie()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( Movie )
+MCGetIndMovie(
+ MovieController mc,
+ short index) FIVEWORDINLINE(0x2F3C, 0x0002, 0x0005, 0x7000, 0xA82A);
+
+
+
+#define MCGetMovie(mc) MCGetIndMovie(mc, 0)
+/*
+ * MCRemoveAllMovies()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentResult )
+MCRemoveAllMovies(MovieController mc) FIVEWORDINLINE(0x2F3C, 0x0000, 0x0006, 0x7000, 0xA82A);
+
+
+/*
+ * MCRemoveAMovie()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentResult )
+MCRemoveAMovie(
+ MovieController mc,
+ Movie m) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0003, 0x7000, 0xA82A);
+
+
+/*
+ * MCRemoveMovie()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentResult )
+MCRemoveMovie(MovieController mc) FIVEWORDINLINE(0x2F3C, 0x0000, 0x0006, 0x7000, 0xA82A);
+
+
+/* event handling etc. */
+/*
+ * MCIsPlayerEvent()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentResult )
+MCIsPlayerEvent(
+ MovieController mc,
+ const EventRecord * e) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0007, 0x7000, 0xA82A);
+
+
+/* obsolete. use MCSetActionFilterWithRefCon instead. */
+/*
+ * MCSetActionFilter()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentResult )
+MCSetActionFilter(
+ MovieController mc,
+ MCActionFilterUPP blob) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0008, 0x7000, 0xA82A);
+
+
+/*
+ proc is of the form:
+ Boolean userPlayerFilter(MovieController mc, short *action, void *params) =
+ proc returns TRUE if it handles the action, FALSE if not
+ action is passed as a VAR so that it could be changed by filter
+ this is consistent with the current dialog manager stuff
+ params is any potential parameters that go with the action
+ such as set playback rate to xxx.
+*/
+/*
+ * MCDoAction()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentResult )
+MCDoAction(
+ MovieController mc,
+ short action,
+ void * params) FIVEWORDINLINE(0x2F3C, 0x0006, 0x0009, 0x7000, 0xA82A);
+
+
+/* state type things */
+/*
+ * MCSetControllerAttached()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentResult )
+MCSetControllerAttached(
+ MovieController mc,
+ Boolean attach) FIVEWORDINLINE(0x2F3C, 0x0002, 0x000A, 0x7000, 0xA82A);
+
+
+/*
+ * MCIsControllerAttached()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentResult )
+MCIsControllerAttached(MovieController mc) FIVEWORDINLINE(0x2F3C, 0x0000, 0x000B, 0x7000, 0xA82A);
+
+
+/*
+ * MCSetControllerPort()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentResult )
+MCSetControllerPort(
+ MovieController mc,
+ CGrafPtr gp) FIVEWORDINLINE(0x2F3C, 0x0004, 0x000C, 0x7000, 0xA82A);
+
+
+/*
+ * MCGetControllerPort()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( CGrafPtr )
+MCGetControllerPort(MovieController mc) FIVEWORDINLINE(0x2F3C, 0x0000, 0x000D, 0x7000, 0xA82A);
+
+
+/*
+ * MCSetVisible()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentResult )
+MCSetVisible(
+ MovieController mc,
+ Boolean visible) FIVEWORDINLINE(0x2F3C, 0x0002, 0x000E, 0x7000, 0xA82A);
+
+
+/*
+ * MCGetVisible()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentResult )
+MCGetVisible(MovieController mc) FIVEWORDINLINE(0x2F3C, 0x0000, 0x000F, 0x7000, 0xA82A);
+
+
+/*
+ * MCGetControllerBoundsRect()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentResult )
+MCGetControllerBoundsRect(
+ MovieController mc,
+ Rect * bounds) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0010, 0x7000, 0xA82A);
+
+
+/*
+ * MCSetControllerBoundsRect()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentResult )
+MCSetControllerBoundsRect(
+ MovieController mc,
+ const Rect * bounds) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0011, 0x7000, 0xA82A);
+
+
+/*
+ * MCGetControllerBoundsRgn()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( RgnHandle )
+MCGetControllerBoundsRgn(MovieController mc) FIVEWORDINLINE(0x2F3C, 0x0000, 0x0012, 0x7000, 0xA82A);
+
+
+/*
+ * MCGetWindowRgn()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( RgnHandle )
+MCGetWindowRgn(
+ MovieController mc,
+ WindowRef w) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0013, 0x7000, 0xA82A);
+
+
+
+/* other stuff */
+/*
+ * MCMovieChanged()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentResult )
+MCMovieChanged(
+ MovieController mc,
+ Movie m) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0014, 0x7000, 0xA82A);
+
+
+
+/*
+ called when the app has changed thing about the movie (like bounding rect) or rate. So that we
+ can update our graphical (and internal) state accordingly.
+*/
+/*
+ * MCSetDuration()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentResult )
+MCSetDuration(
+ MovieController mc,
+ TimeValue duration) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0015, 0x7000, 0xA82A);
+
+
+/*
+ duration to use for time slider -- will be reset next time MCMovieChanged is called
+ or MCSetMovie is called
+*/
+/*
+ * MCGetCurrentTime()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( TimeValue )
+MCGetCurrentTime(
+ MovieController mc,
+ TimeScale * scale) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0016, 0x7000, 0xA82A);
+
+
+/*
+ returns the time value and the time scale it is on. if there are no movies, the
+ time scale is passed back as 0. scale is an optional parameter
+
+*/
+/*
+ * MCNewAttachedController()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentResult )
+MCNewAttachedController(
+ MovieController mc,
+ Movie theMovie,
+ WindowRef w,
+ Point where) FIVEWORDINLINE(0x2F3C, 0x000C, 0x0017, 0x7000, 0xA82A);
+
+
+/*
+ makes theMovie the only movie attached to the controller. makes the controller visible.
+ the window and where parameters are passed a long to MCSetMovie and behave as
+ described there
+*/
+/*
+ * MCDraw()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentResult )
+MCDraw(
+ MovieController mc,
+ WindowRef w) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0018, 0x7000, 0xA82A);
+
+
+/*
+ * MCActivate()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentResult )
+MCActivate(
+ MovieController mc,
+ WindowRef w,
+ Boolean activate) FIVEWORDINLINE(0x2F3C, 0x0006, 0x0019, 0x7000, 0xA82A);
+
+
+/*
+ * MCIdle()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentResult )
+MCIdle(MovieController mc) FIVEWORDINLINE(0x2F3C, 0x0000, 0x001A, 0x7000, 0xA82A);
+
+
+/*
+ * MCKey()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentResult )
+MCKey(
+ MovieController mc,
+ SInt8 key,
+ long modifiers) FIVEWORDINLINE(0x2F3C, 0x0006, 0x001B, 0x7000, 0xA82A);
+
+
+/*
+ * MCClick()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentResult )
+MCClick(
+ MovieController mc,
+ WindowRef w,
+ Point where,
+ long when,
+ long modifiers) FIVEWORDINLINE(0x2F3C, 0x0010, 0x001C, 0x7000, 0xA82A);
+
+
+
+/*
+ calls for editing
+*/
+/*
+ * MCEnableEditing()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentResult )
+MCEnableEditing(
+ MovieController mc,
+ Boolean enabled) FIVEWORDINLINE(0x2F3C, 0x0002, 0x001D, 0x7000, 0xA82A);
+
+
+/*
+ * MCIsEditingEnabled()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( long )
+MCIsEditingEnabled(MovieController mc) FIVEWORDINLINE(0x2F3C, 0x0000, 0x001E, 0x7000, 0xA82A);
+
+
+/*
+ * MCCopy()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( Movie )
+MCCopy(MovieController mc) FIVEWORDINLINE(0x2F3C, 0x0000, 0x001F, 0x7000, 0xA82A);
+
+
+/*
+ * MCCut()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( Movie )
+MCCut(MovieController mc) FIVEWORDINLINE(0x2F3C, 0x0000, 0x0020, 0x7000, 0xA82A);
+
+
+/*
+ * MCPaste()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentResult )
+MCPaste(
+ MovieController mc,
+ Movie srcMovie) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0021, 0x7000, 0xA82A);
+
+
+/*
+ * MCClear()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentResult )
+MCClear(MovieController mc) FIVEWORDINLINE(0x2F3C, 0x0000, 0x0022, 0x7000, 0xA82A);
+
+
+/*
+ * MCUndo()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentResult )
+MCUndo(MovieController mc) FIVEWORDINLINE(0x2F3C, 0x0000, 0x0023, 0x7000, 0xA82A);
+
+
+
+/*
+ * somewhat special stuff
+ */
+/*
+ * MCPositionController()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentResult )
+MCPositionController(
+ MovieController mc,
+ const Rect * movieRect,
+ const Rect * controllerRect,
+ long someFlags) FIVEWORDINLINE(0x2F3C, 0x000C, 0x0024, 0x7000, 0xA82A);
+
+
+
+/*
+ * MCGetControllerInfo()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentResult )
+MCGetControllerInfo(
+ MovieController mc,
+ long * someFlags) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0025, 0x7000, 0xA82A);
+
+
+
+
+/*
+ * MCSetClip()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentResult )
+MCSetClip(
+ MovieController mc,
+ RgnHandle theClip,
+ RgnHandle movieClip) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0028, 0x7000, 0xA82A);
+
+
+/*
+ * MCGetClip()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentResult )
+MCGetClip(
+ MovieController mc,
+ RgnHandle * theClip,
+ RgnHandle * movieClip) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0029, 0x7000, 0xA82A);
+
+
+
+/*
+ * MCDrawBadge()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentResult )
+MCDrawBadge(
+ MovieController mc,
+ RgnHandle movieRgn,
+ RgnHandle * badgeRgn) FIVEWORDINLINE(0x2F3C, 0x0008, 0x002A, 0x7000, 0xA82A);
+
+
+/*
+ * MCSetUpEditMenu()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentResult )
+MCSetUpEditMenu(
+ MovieController mc,
+ long modifiers,
+ MenuRef mh) FIVEWORDINLINE(0x2F3C, 0x0008, 0x002B, 0x7000, 0xA82A);
+
+
+/*
+ * MCGetMenuString()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentResult )
+MCGetMenuString(
+ MovieController mc,
+ long modifiers,
+ short item,
+ Str255 aString) FIVEWORDINLINE(0x2F3C, 0x000A, 0x002C, 0x7000, 0xA82A);
+
+
+/*
+ * MCSetActionFilterWithRefCon()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentResult )
+MCSetActionFilterWithRefCon(
+ MovieController mc,
+ MCActionFilterWithRefConUPP blob,
+ long refCon) FIVEWORDINLINE(0x2F3C, 0x0008, 0x002D, 0x7000, 0xA82A);
+
+
+/*
+ * MCPtInController()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentResult )
+MCPtInController(
+ MovieController mc,
+ Point thePt,
+ Boolean * inController) FIVEWORDINLINE(0x2F3C, 0x0008, 0x002E, 0x7000, 0xA82A);
+
+
+/*
+ * MCInvalidate()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentResult )
+MCInvalidate(
+ MovieController mc,
+ WindowRef w,
+ RgnHandle invalidRgn) FIVEWORDINLINE(0x2F3C, 0x0008, 0x002F, 0x7000, 0xA82A);
+
+
+/*
+ * MCAdjustCursor()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 3.0 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentResult )
+MCAdjustCursor(
+ MovieController mc,
+ WindowRef w,
+ Point where,
+ long modifiers) FIVEWORDINLINE(0x2F3C, 0x000C, 0x0030, 0x7000, 0xA82A);
+
+
+/*
+ * MCGetInterfaceElement()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 3.0 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentResult )
+MCGetInterfaceElement(
+ MovieController mc,
+ MCInterfaceElement whichElement,
+ void * element) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0031, 0x7000, 0xA82A);
+
+
+/*
+ * MCGetDoActionsProc()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 4.0 and later
+ * CarbonLib: in CarbonLib 1.0.2 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 4.0 and later
+ */
+EXTERN_API( ComponentResult )
+MCGetDoActionsProc(
+ MovieController mc,
+ DoMCActionUPP * doMCActionProc,
+ long * doMCActionRefCon) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0032, 0x7000, 0xA82A);
+
+
+/*
+ * MCAddMovieSegment()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 5.0 and later
+ * CarbonLib: in CarbonLib 1.3 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 5.0 and later
+ */
+EXTERN_API( ComponentResult )
+MCAddMovieSegment(
+ MovieController mc,
+ Movie srcMovie,
+ Boolean scaled) FIVEWORDINLINE(0x2F3C, 0x0006, 0x0033, 0x7000, 0xA82A);
+
+
+/*
+ * MCTrimMovieSegment()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 5.0 and later
+ * CarbonLib: in CarbonLib 1.3 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 5.0 and later
+ */
+EXTERN_API( ComponentResult )
+MCTrimMovieSegment(MovieController mc) FIVEWORDINLINE(0x2F3C, 0x0000, 0x0034, 0x7000, 0xA82A);
+
+
+/*
+ * MCSetIdleManager()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 6.0 and later
+ * CarbonLib: in CarbonLib 1.6 and later
+ * Mac OS X: in version 10.2 and later
+ * Windows: in qtmlClient.lib 6.0 and later
+ */
+EXTERN_API( ComponentResult )
+MCSetIdleManager(
+ MovieController mc,
+ IdleManager im) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0035, 0x7000, 0xA82A);
+
+
+/* Called (but not implemented) by controllers that derive from the standard movie controller.
+ All controllers except standard movie controller must delegate this call. */
+enum {
+ kControllerUnderstandsIdleManagers = 1 << 0
+};
+
+/*
+ * MCSetControllerCapabilities()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 6.0 and later
+ * CarbonLib: in CarbonLib 1.6 and later
+ * Mac OS X: in version 10.2 and later
+ * Windows: in qtmlClient.lib 6.0 and later
+ */
+EXTERN_API( ComponentResult )
+MCSetControllerCapabilities(
+ MovieController mc,
+ long flags,
+ long flagsMask) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0036, 0x7000, 0xA82A);
+
+
+
+
+
+
+/****************************************
+* *
+* T I M E B A S E *
+* *
+****************************************/
+/*
+ * NewTimeBase()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( TimeBase )
+NewTimeBase(void);
+
+
+/*
+ * DisposeTimeBase()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+DisposeTimeBase(TimeBase tb);
+
+
+/*
+ * GetTimeBaseTime()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( TimeValue )
+GetTimeBaseTime(
+ TimeBase tb,
+ TimeScale s,
+ TimeRecord * tr);
+
+
+/*
+ * SetTimeBaseTime()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+SetTimeBaseTime(
+ TimeBase tb,
+ const TimeRecord * tr);
+
+
+/*
+ * SetTimeBaseValue()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+SetTimeBaseValue(
+ TimeBase tb,
+ TimeValue t,
+ TimeScale s);
+
+
+/*
+ * GetTimeBaseRate()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( Fixed )
+GetTimeBaseRate(TimeBase tb);
+
+
+/*
+ * SetTimeBaseRate()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+SetTimeBaseRate(
+ TimeBase tb,
+ Fixed r);
+
+
+/*
+ * GetTimeBaseStartTime()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( TimeValue )
+GetTimeBaseStartTime(
+ TimeBase tb,
+ TimeScale s,
+ TimeRecord * tr);
+
+
+/*
+ * SetTimeBaseStartTime()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+SetTimeBaseStartTime(
+ TimeBase tb,
+ const TimeRecord * tr);
+
+
+/*
+ * GetTimeBaseStopTime()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( TimeValue )
+GetTimeBaseStopTime(
+ TimeBase tb,
+ TimeScale s,
+ TimeRecord * tr);
+
+
+/*
+ * SetTimeBaseStopTime()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+SetTimeBaseStopTime(
+ TimeBase tb,
+ const TimeRecord * tr);
+
+
+/*
+ * GetTimeBaseFlags()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( long )
+GetTimeBaseFlags(TimeBase tb);
+
+
+/*
+ * SetTimeBaseFlags()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+SetTimeBaseFlags(
+ TimeBase tb,
+ long timeBaseFlags);
+
+
+/*
+ * SetTimeBaseMasterTimeBase()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+SetTimeBaseMasterTimeBase(
+ TimeBase slave,
+ TimeBase master,
+ const TimeRecord * slaveZero);
+
+
+/*
+ * GetTimeBaseMasterTimeBase()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( TimeBase )
+GetTimeBaseMasterTimeBase(TimeBase tb);
+
+
+/*
+ * SetTimeBaseMasterClock()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+SetTimeBaseMasterClock(
+ TimeBase slave,
+ Component clockMeister,
+ const TimeRecord * slaveZero);
+
+
+/*
+ * GetTimeBaseMasterClock()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentInstance )
+GetTimeBaseMasterClock(TimeBase tb);
+
+
+/*
+ * ConvertTime()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+ConvertTime(
+ TimeRecord * theTime,
+ TimeBase newBase);
+
+
+/*
+ * ConvertTimeScale()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+ConvertTimeScale(
+ TimeRecord * theTime,
+ TimeScale newScale);
+
+
+/*
+ * AddTime()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+AddTime(
+ TimeRecord * dst,
+ const TimeRecord * src);
+
+
+/*
+ * SubtractTime()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+SubtractTime(
+ TimeRecord * dst,
+ const TimeRecord * src);
+
+
+/*
+ * GetTimeBaseStatus()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( long )
+GetTimeBaseStatus(
+ TimeBase tb,
+ TimeRecord * unpinnedTime);
+
+
+/*
+ * SetTimeBaseZero()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+SetTimeBaseZero(
+ TimeBase tb,
+ TimeRecord * zero);
+
+
+/*
+ * GetTimeBaseEffectiveRate()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( Fixed )
+GetTimeBaseEffectiveRate(TimeBase tb);
+
+
+/*
+ * GetTimeBaseRateChangeStatus()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.3 (or QuickTime 6.4) and later
+ * Windows: in qtmlClient.lib 6.5 and later
+ */
+EXTERN_API( OSErr )
+GetTimeBaseRateChangeStatus(
+ TimeBase tb,
+ TimeScale scale,
+ Fixed * ratedChangedTo,
+ TimeBaseStatus * flags,
+ TimeRecord * rateChangeTimeBaseTime,
+ TimeRecord * rateChangeClockTime,
+ TimeRecord * currentClockTime);
+
+
+/*
+ * ConvertTimeToClockTime()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.3 (or QuickTime 6.4) and later
+ * Windows: in qtmlClient.lib 6.5 and later
+ */
+EXTERN_API( void )
+ConvertTimeToClockTime(TimeRecord * time);
+
+
+/*
+ * GetTimeBaseMasterOffsetTimeBase()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.3 (or QuickTime 6.4) and later
+ * Windows: in qtmlClient.lib 6.5 and later
+ */
+EXTERN_API( TimeBase )
+GetTimeBaseMasterOffsetTimeBase(TimeBase tb);
+
+
+/*
+ * SetTimeBaseOffsetTimeBase()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.3 (or QuickTime 6.4) and later
+ * Windows: in qtmlClient.lib 6.5 and later
+ */
+EXTERN_API( OSErr )
+SetTimeBaseOffsetTimeBase(
+ TimeBase tb,
+ TimeBase offsettb,
+ const TimeRecord * offsetZero);
+
+
+#if TARGET_OS_MAC
+/*
+ * AttachTimeBaseToCurrentThread()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.3 (or QuickTime 6.4) and later
+ */
+EXTERN_API( OSErr )
+AttachTimeBaseToCurrentThread(TimeBase tb);
+
+
+/*
+ * DetachTimeBaseFromCurrentThread()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.3 (or QuickTime 6.4) and later
+ */
+EXTERN_API( OSErr )
+DetachTimeBaseFromCurrentThread(TimeBase tb);
+
+
+/*
+ * GetTimeBaseThreadAttachState()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.3 (or QuickTime 6.4) and later
+ */
+EXTERN_API( OSErr )
+GetTimeBaseThreadAttachState(
+ TimeBase inTimeBase,
+ Boolean * outAttachedToCurrentThread,
+ Boolean * outAttachedToAnyThread);
+
+
+#endif /* TARGET_OS_MAC */
+
+/****************************************
+* *
+* C A L L B A C K *
+* *
+****************************************/
+/*
+ * NewCallBack()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( QTCallBack )
+NewCallBack(
+ TimeBase tb,
+ short cbType);
+
+
+/*
+ * DisposeCallBack()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+DisposeCallBack(QTCallBack cb);
+
+
+/*
+ * GetCallBackType()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( short )
+GetCallBackType(QTCallBack cb);
+
+
+/*
+ * GetCallBackTimeBase()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( TimeBase )
+GetCallBackTimeBase(QTCallBack cb);
+
+
+/*
+ * CallMeWhen()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+CallMeWhen(
+ QTCallBack cb,
+ QTCallBackUPP callBackProc,
+ long refCon,
+ long param1,
+ long param2,
+ long param3);
+
+
+/*
+ * CancelCallBack()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+CancelCallBack(QTCallBack cb);
+
+
+
+/****************************************
+* *
+* C L O C K C A L L B A C K *
+* S U P P O R T *
+* *
+****************************************/
+/*
+ * AddCallBackToTimeBase()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+AddCallBackToTimeBase(QTCallBack cb);
+
+
+/*
+ * RemoveCallBackFromTimeBase()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( OSErr )
+RemoveCallBackFromTimeBase(QTCallBack cb);
+
+
+/*
+ * GetFirstCallBack()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( QTCallBack )
+GetFirstCallBack(TimeBase tb);
+
+
+/*
+ * GetNextCallBack()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( QTCallBack )
+GetNextCallBack(QTCallBack cb);
+
+
+/*
+ * ExecuteCallBack()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 2.5 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( void )
+ExecuteCallBack(QTCallBack cb);
+
+
+
+
+/****************************************
+* *
+* M O V I E P R O P E R T I E S *
+* *
+****************************************/
+
+typedef CALLBACK_API( void , QTMoviePropertyListenerProcPtr )(Movie inMovie, QTPropertyClass inPropClass, QTPropertyID inPropID, void *inUserData);
+typedef STACK_UPP_TYPE(QTMoviePropertyListenerProcPtr) QTMoviePropertyListenerUPP;
+/*
+ * QTGetMoviePropertyInfo()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.3 (or QuickTime 6.4) and later
+ */
+EXTERN_API( OSErr )
+QTGetMoviePropertyInfo(
+ Movie inMovie,
+ QTPropertyClass inPropClass,
+ QTPropertyID inPropID,
+ QTPropertyValueType * outPropType,
+ ByteCount * outPropValueSize,
+ UInt32 * outPropertyFlags);
+
+
+/*
+ * QTGetMovieProperty()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.3 (or QuickTime 6.4) and later
+ */
+EXTERN_API( OSErr )
+QTGetMovieProperty(
+ Movie inMovie,
+ QTPropertyClass inPropClass,
+ QTPropertyID inPropID,
+ ByteCount inPropValueSize,
+ QTPropertyValuePtr outPropValueAddress,
+ ByteCount * outPropValueSizeUsed);
+
+
+/*
+ * QTSetMovieProperty()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.3 (or QuickTime 6.4) and later
+ */
+EXTERN_API( OSErr )
+QTSetMovieProperty(
+ Movie inMovie,
+ QTPropertyClass inPropClass,
+ QTPropertyID inPropID,
+ ByteCount inPropValueSize,
+ ConstQTPropertyValuePtr inPropValueAddress);
+
+
+/*
+ * QTAddMoviePropertyListener()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.3 (or QuickTime 6.4) and later
+ */
+EXTERN_API( OSErr )
+QTAddMoviePropertyListener(
+ Movie inMovie,
+ QTPropertyClass inPropClass,
+ QTPropertyID inPropID,
+ QTMoviePropertyListenerUPP inListenerProc,
+ void * inUserData);
+
+
+/*
+ * QTRemoveMoviePropertyListener()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.3 (or QuickTime 6.4) and later
+ */
+EXTERN_API( OSErr )
+QTRemoveMoviePropertyListener(
+ Movie inMovie,
+ QTPropertyClass inPropClass,
+ QTPropertyID inPropID,
+ QTMoviePropertyListenerUPP inListenerProc,
+ void * inUserData);
+
+
+
+
+/****************************************
+* *
+* T R A C K P R O P E R T I E S *
+* *
+****************************************/
+
+typedef CALLBACK_API( void , QTTrackPropertyListenerProcPtr )(Track inTrack, QTPropertyClass inPropClass, QTPropertyID inPropID, void *inUserData);
+typedef STACK_UPP_TYPE(QTTrackPropertyListenerProcPtr) QTTrackPropertyListenerUPP;
+/*
+ * QTGetTrackPropertyInfo()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSErr )
+QTGetTrackPropertyInfo(
+ Track inTrack,
+ QTPropertyClass inPropClass,
+ QTPropertyID inPropID,
+ QTPropertyValueType * outPropType,
+ ByteCount * outPropValueSize,
+ UInt32 * outPropertyFlags);
+
+
+/*
+ * QTGetTrackProperty()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSErr )
+QTGetTrackProperty(
+ Track inTrack,
+ QTPropertyClass inPropClass,
+ QTPropertyID inPropID,
+ ByteCount inPropValueSize,
+ QTPropertyValuePtr outPropValueAddress,
+ ByteCount * outPropValueSizeUsed);
+
+
+/*
+ * QTSetTrackProperty()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSErr )
+QTSetTrackProperty(
+ Track inTrack,
+ QTPropertyClass inPropClass,
+ QTPropertyID inPropID,
+ ByteCount inPropValueSize,
+ ConstQTPropertyValuePtr inPropValueAddress);
+
+
+/*
+ * QTAddTrackPropertyListener()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSErr )
+QTAddTrackPropertyListener(
+ Track inTrack,
+ QTPropertyClass inPropClass,
+ QTPropertyID inPropID,
+ QTTrackPropertyListenerUPP inListenerProc,
+ void * inUserData);
+
+
+/*
+ * QTRemoveTrackPropertyListener()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSErr )
+QTRemoveTrackPropertyListener(
+ Track inTrack,
+ QTPropertyClass inPropClass,
+ QTPropertyID inPropID,
+ QTTrackPropertyListenerUPP inListenerProc,
+ void * inUserData);
+
+
+
+/****************************************
+* *
+* Q T S A M P L E T A B L E *
+* *
+****************************************/
+
+typedef long QTSampleDescriptionID;
+/*
+ * QTSampleTableCreateMutable()
+ *
+ * Summary:
+ * Creates a new empty sample table.
+ *
+ * Discussion:
+ * The newly created sample table will contain no sample references.
+ * When sample references are added, their durations and display
+ * offsets will be interpreted according to the sample table's
+ * current timescale.
+ *
+ * Parameters:
+ *
+ * allocator:
+ * The allocator to use for the new sample table.
+ *
+ * timescale:
+ * The timescale to use for durations and display offsets.
+ *
+ * hints:
+ * Reserved. Pass NULL.
+ *
+ * newSampleTable:
+ * Points to a variable to receive the new sample table.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ * Windows: in qtmlClient.lib version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSStatus )
+QTSampleTableCreateMutable(
+ CFAllocatorRef allocator,
+ TimeScale timescale,
+ void * hints,
+ QTMutableSampleTableRef * newSampleTable);
+
+
+/*
+ * QTSampleTableRetain()
+ *
+ * Summary:
+ * Increments the retain count of a sample table.
+ *
+ * Discussion:
+ * The same sample table is returned for convenience. If sampleTable
+ * is NULL, nothing happens.
+ *
+ * Parameters:
+ *
+ * sampleTable:
+ * The sample table.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ * Windows: in qtmlClient.lib version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( QTSampleTableRef )
+QTSampleTableRetain(QTSampleTableRef sampleTable);
+
+
+/*
+ * QTSampleTableRelease()
+ *
+ * Summary:
+ * Decrements the retain count of a sample table.
+ *
+ * Discussion:
+ * If the retain count decreases to zero, the sample table is
+ * disposed. If sampleTable is NULL, nothing happens.
+ *
+ * Parameters:
+ *
+ * sampleTable:
+ * The sample table.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ * Windows: in qtmlClient.lib version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( void )
+QTSampleTableRelease(QTSampleTableRef sampleTable);
+
+
+/*
+ * QTSampleTableCreateMutableCopy()
+ *
+ * Summary:
+ * Copies a sample table.
+ *
+ * Discussion:
+ * All the sample references and sample descriptions in the sample
+ * table are copied.
+ *
+ * Parameters:
+ *
+ * allocator:
+ * The allocator to use for the new sample table.
+ *
+ * sampleTable:
+ * The sample table to copy.
+ *
+ * hints:
+ * Reserved, set to NULL.
+ *
+ * newSampleTable:
+ * Points to a variable to receive the new sample table.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ * Windows: in qtmlClient.lib version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSStatus )
+QTSampleTableCreateMutableCopy(
+ CFAllocatorRef allocator,
+ QTSampleTableRef sampleTable,
+ void * hints,
+ QTMutableSampleTableRef * newSampleTable);
+
+
+/*
+ * QTSampleTableGetTypeID()
+ *
+ * Summary:
+ * Returns the CFTypeID for QTSampleTableRef.
+ *
+ * Discussion:
+ * You could use this to test whether a CFTypeRef that extracted
+ * from a CF container such as a CFArray was a QTSampleTableRef.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ * Windows: in qtmlClient.lib version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( CFTypeID )
+QTSampleTableGetTypeID(void);
+
+
+/*
+ * QTSampleTableSetTimeScale()
+ *
+ * Summary:
+ * Changes the timescale of a sample table.
+ *
+ * Discussion:
+ * The durations and display offsets of all the sample references in
+ * the sample table are scaled from the old timescale to the new
+ * timescale. No durations will be scaled to a value less than 1.
+ * Display offsets will be adjusted to avoid display time collisions.
+ *
+ * Parameters:
+ *
+ * sampleTable:
+ * The sample table.
+ *
+ * newTimeScale:
+ * The new timescale.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ * Windows: in qtmlClient.lib version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSStatus )
+QTSampleTableSetTimeScale(
+ QTMutableSampleTableRef sampleTable,
+ TimeScale newTimeScale);
+
+
+/*
+ * QTSampleTableGetTimeScale()
+ *
+ * Summary:
+ * Returns the timescale of a sample table.
+ *
+ * Discussion:
+ * Returns 0 if sampleTable is NULL.
+ *
+ * Parameters:
+ *
+ * sampleTable:
+ * The sample table.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ * Windows: in qtmlClient.lib version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( TimeScale )
+QTSampleTableGetTimeScale(QTSampleTableRef sampleTable);
+
+
+
+/*
+ * Summary:
+ * Attribute flags for QTSampleTableGetNextAttributeChange
+ */
+enum {
+
+ /*
+ * Set this flag to find first num such that samples num-1 and num
+ * are not adjacent, ie, dataOffset of num-1 + dataSize of num-1 !=
+ * dataOffset of num
+ */
+ kQTSampleTableAttribute_DiscontiguousData = 1L << 0,
+
+ /*
+ * Set this flag to find the first sample with data size per sample
+ * different from that of the starting sample.
+ */
+ kQTSampleTableAttribute_DataSizePerSampleChange = 1L << 1,
+
+ /*
+ * Set this flag to find the first sample with decode duration
+ * different from that of the starting sample.
+ */
+ kQTSampleTableAttribute_DecodeDurationChange = 1L << 2,
+
+ /*
+ * Set this flag to find the first sample with display offset
+ * different from that of the starting sample.
+ */
+ kQTSampleTableAttribute_DisplayOffsetChange = 1L << 3,
+
+ /*
+ * Set this flag to find the first sample with sample description ID
+ * different from that of the starting sample.
+ */
+ kQTSampleTableAttribute_SampleDescriptionIDChange = 1L << 4,
+
+ /*
+ * Set this flag to find the first sample with any media sample flags
+ * different from those of the starting sample.
+ */
+ kQTSampleTableAttribute_SampleFlagsChange = 1L << 5,
+
+ /*
+ * If no flags are set, find the first sample with any attribute
+ * different from the starting sample.
+ */
+ kQTSampleTableAnyAttributeChange = 0
+};
+
+typedef UInt32 QTSampleTableAttribute;
+/*
+ * QTSampleTableGetNextAttributeChange()
+ *
+ * Summary:
+ * Finds the next sample number at which one or more of given sample
+ * attributes change.
+ *
+ * Parameters:
+ *
+ * sampleTable:
+ * The sample table.
+ *
+ * startSampleNum:
+ * A sample number.
+ *
+ * attributeMask:
+ * A collection of flags that indicates which kinds of attribute
+ * changes to search for.
+ *
+ * sampleNumOut:
+ * Points to a variable to receive the next sample number after
+ * startSampleNum at which any of the requested attributes
+ * changes. If no attribute changes are found, this variable is
+ * set to zero.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ * Windows: in qtmlClient.lib version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSStatus )
+QTSampleTableGetNextAttributeChange(
+ QTSampleTableRef sampleTable,
+ SInt64 startSampleNum,
+ QTSampleTableAttribute attributeMask,
+ SInt64 * sampleNumOut);
+
+
+
+/*
+ * QTSampleTableAddSampleDescription()
+ *
+ * Summary:
+ * Adds a sample description to a sample table, returning a sample
+ * description ID that can be used to refer to it.
+ *
+ * Discussion:
+ * You can use the returned sample description ID when adding
+ * samples to the sample table.
+ * Note: Sample description IDs are local to each sample table. The
+ * same sample description handle may have different IDs when
+ * referenced in different sample tables.
+ *
+ * Parameters:
+ *
+ * sampleTable:
+ * The sample table.
+ *
+ * sampleDescriptionH:
+ * The sample description handle. The QTSampleTable will make its
+ * own copy of this handle.
+ *
+ * mediaSampleDescriptionIndex:
+ * Indicates the sample description index of this sample
+ * description in a media. Pass zero for sample descriptions you
+ * add to sample tables, to indicate that this was not retrieved
+ * from a media.
+ *
+ * sampleDescriptionIDOut:
+ * Points to a variable to receive a sample description ID.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ * Windows: in qtmlClient.lib version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSStatus )
+QTSampleTableAddSampleDescription(
+ QTMutableSampleTableRef sampleTable,
+ SampleDescriptionHandle sampleDescriptionH,
+ long mediaSampleDescriptionIndex,
+ QTSampleDescriptionID * sampleDescriptionIDOut);
+
+
+/*
+ * QTSampleTableCopySampleDescription()
+ *
+ * Summary:
+ * Retrieves a sample description from a sample table.
+ *
+ * Discussion:
+ * The caller is responsible for disposing the returned sampled
+ * description handle with DisposeHandle.
+ *
+ * Parameters:
+ *
+ * sampleTable:
+ * The sample table.
+ *
+ * sampleDescriptionID:
+ * The sample description ID.
+ *
+ * mediaSampleDescriptionIndexOut:
+ * Points to a variable to receive a media sample description
+ * index. If the sample description came from a media, this is the
+ * index that could be passed to GetMediaSampleDescription to
+ * retrieve the same sample description handle. The index will be
+ * zero if the sample description did not come directly from a
+ * media. Pass NULL if you do not want to receive this information.
+ *
+ * sampleDescriptionHOut:
+ * Points to a variable to receive a newly allocated sample
+ * description handle. Pass NULL if you do not want one.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ * Windows: in qtmlClient.lib version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSStatus )
+QTSampleTableCopySampleDescription(
+ QTSampleTableRef sampleTable,
+ QTSampleDescriptionID sampleDescriptionID,
+ long * mediaSampleDescriptionIndexOut,
+ SampleDescriptionHandle * sampleDescriptionHOut);
+
+
+/*
+ * QTSampleTableAddSampleReferences()
+ *
+ * Summary:
+ * Adds sample references to a sample table.
+ *
+ * Discussion:
+ * Note that you must pass the data size per sample, not the total
+ * size of all the samples as with some other APIs.
+ *
+ * Parameters:
+ *
+ * sampleTable:
+ * The sample table.
+ *
+ * dataOffset:
+ * Specifies the offset at which the first sample begins.
+ *
+ * dataSizePerSample:
+ * Specifies the number of bytes of data per sample.
+ *
+ * decodeDurationPerSample:
+ * Specifies the decode duration of each sample.
+ *
+ * displayOffset:
+ * Specifies the offset from decode time to display time of each
+ * sample. If the decode times and display times will be the same,
+ * pass 0.
+ *
+ * numberOfSamples:
+ * Specifies the number of samples. Must be greater than zero.
+ *
+ * sampleFlags:
+ * Specifies the media sample flags for all samples.
+ *
+ * sampleDescriptionID:
+ * Specifies the ID of a sample description that has been added to
+ * the sample table with QTSampleTableAddSampleDescription.
+ *
+ * newSampleNumOut:
+ * Points to a variable to receive the sample number of the first
+ * sample that was added. Pass NULL if you don't want this
+ * information.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ * Windows: in qtmlClient.lib version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSStatus )
+QTSampleTableAddSampleReferences(
+ QTMutableSampleTableRef sampleTable,
+ SInt64 dataOffset,
+ ByteCount dataSizePerSample,
+ TimeValue64 decodeDurationPerSample,
+ TimeValue64 displayOffset,
+ SInt64 numberOfSamples,
+ MediaSampleFlags sampleFlags,
+ QTSampleDescriptionID sampleDescriptionID,
+ SInt64 * newSampleNumOut);
+
+
+/*
+ * QTSampleTableGetNumberOfSamples()
+ *
+ * Summary:
+ * Returns the number of samples in a sample table.
+ *
+ * Discussion:
+ * Returns 0 if sampleTable is NULL.
+ *
+ * Parameters:
+ *
+ * sampleTable:
+ * The sample table.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ * Windows: in qtmlClient.lib version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( SInt64 )
+QTSampleTableGetNumberOfSamples(QTSampleTableRef sampleTable);
+
+
+/*
+ * QTSampleTableReplaceRange()
+ *
+ * Summary:
+ * Replaces a range of samples in a sample table with a range of
+ * samples from another sample table. Can also be used to delete a
+ * range of samples, or to insert samples without removing any.
+ *
+ * Discussion:
+ * This function removes destSampleCount samples from
+ * destSampleTable starting with destStartingSampleNum, and then
+ * inserts sourceSampleCount samples from sourceSampleTable starting
+ * with sourceStartingSampleNum where the removed samples were.
+ * Sample descriptions will be copied if necessary and new sample
+ * description IDs defined.
+ *
+ * Parameters:
+ *
+ * destSampleTable:
+ * The sample table to be modified.
+ *
+ * destStartingSampleNum:
+ * The first sample number in destSampleTable to be replaced or
+ * deleted, or the sample number at which samples should be
+ * inserted.
+ *
+ * destSampleCount:
+ * The number of samples to be removed from destSampleTable. Pass
+ * 0 to insert without removing samples.
+ *
+ * sourceSampleTable:
+ * The sample table from which samples should be copied, or NULL
+ * to delete samples.
+ *
+ * sourceStartingSampleNum:
+ * The first sample number to be copied. Ignored when deleting
+ * samples.
+ *
+ * sourceSampleCount:
+ * The number of samples which should be copied. Pass 0 to delete
+ * samples.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ * Windows: in qtmlClient.lib version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSStatus )
+QTSampleTableReplaceRange(
+ QTMutableSampleTableRef destSampleTable,
+ SInt64 destStartingSampleNum,
+ SInt64 destSampleCount,
+ QTSampleTableRef sourceSampleTable,
+ SInt64 sourceStartingSampleNum,
+ SInt64 sourceSampleCount);
+
+
+
+/*
+ * QTSampleTableGetDataOffset()
+ *
+ * Summary:
+ * Returns the data offset of a sample.
+ *
+ * Discussion:
+ * Returns 0 if the sample table is NULL, or if the sample number is
+ * out of range.
+ *
+ * Parameters:
+ *
+ * sampleTable:
+ * The sample table.
+ *
+ * sampleNum:
+ * The sample number. The first sample's number is 1.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ * Windows: in qtmlClient.lib version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( SInt64 )
+QTSampleTableGetDataOffset(
+ QTSampleTableRef sampleTable,
+ SInt64 sampleNum);
+
+
+/*
+ * QTSampleTableGetDataSizePerSample()
+ *
+ * Summary:
+ * Returns the data size of a sample.
+ *
+ * Discussion:
+ * Returns 0 if the sample table is NULL, or if the sample number is
+ * out of range.
+ *
+ * Parameters:
+ *
+ * sampleTable:
+ * The sample table.
+ *
+ * sampleNum:
+ * The sample number. The first sample's number is 1.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ * Windows: in qtmlClient.lib version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( ByteCount )
+QTSampleTableGetDataSizePerSample(
+ QTSampleTableRef sampleTable,
+ SInt64 sampleNum);
+
+
+/*
+ * QTSampleTableGetDecodeDuration()
+ *
+ * Summary:
+ * Returns the decode duration of a sample.
+ *
+ * Discussion:
+ * Returns 0 if the sample table is NULL, or if the sample number is
+ * out of range.
+ *
+ * Parameters:
+ *
+ * sampleTable:
+ * The sample table.
+ *
+ * sampleNum:
+ * The sample number. The first sample's number is 1.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ * Windows: in qtmlClient.lib version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( TimeValue64 )
+QTSampleTableGetDecodeDuration(
+ QTSampleTableRef sampleTable,
+ SInt64 sampleNum);
+
+
+/*
+ * QTSampleTableGetDisplayOffset()
+ *
+ * Summary:
+ * Returns the offset from decode time to display time of a sample.
+ *
+ * Discussion:
+ * Returns 0 if the sample table is NULL, or if the sample number is
+ * out of range.
+ *
+ * Parameters:
+ *
+ * sampleTable:
+ * The sample table.
+ *
+ * sampleNum:
+ * The sample number. The first sample's number is 1.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ * Windows: in qtmlClient.lib version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( TimeValue64 )
+QTSampleTableGetDisplayOffset(
+ QTSampleTableRef sampleTable,
+ SInt64 sampleNum);
+
+
+/*
+ * QTSampleTableGetSampleDescriptionID()
+ *
+ * Summary:
+ * Returns the sample description ID of a sample.
+ *
+ * Discussion:
+ * Returns 0 if the sample table is NULL, or if the sample number is
+ * out of range.
+ *
+ * Parameters:
+ *
+ * sampleTable:
+ * The sample table.
+ *
+ * sampleNum:
+ * The sample number. The first sample's number is 1.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ * Windows: in qtmlClient.lib version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( QTSampleDescriptionID )
+QTSampleTableGetSampleDescriptionID(
+ QTSampleTableRef sampleTable,
+ SInt64 sampleNum);
+
+
+/*
+ * QTSampleTableGetSampleFlags()
+ *
+ * Summary:
+ * Returns the media sample flags of a sample.
+ *
+ * Parameters:
+ *
+ * sampleTable:
+ * The sample table.
+ *
+ * sampleNum:
+ * The sample number. The first sample's number is 1.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ * Windows: in qtmlClient.lib version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( MediaSampleFlags )
+QTSampleTableGetSampleFlags(
+ QTSampleTableRef sampleTable,
+ SInt64 sampleNum);
+
+
+
+/*
+ * Summary:
+ * Properties of sample tables
+ */
+enum {
+
+ /*
+ * Property class for sample tables.
+ */
+ kQTPropertyClass_SampleTable = FOUR_CHAR_CODE('qtst'),
+
+ /*
+ * The total decode duration of all samples in the sample table.
+ * Read-only.
+ */
+ kQTSampleTablePropertyID_TotalDecodeDuration = FOUR_CHAR_CODE('tded'), /* TimeValue64, Read */
+
+ /*
+ * The least display offset in the table. (-50 is a lesser offset
+ * than 20.) Read-only.
+ */
+ kQTSampleTablePropertyID_MinDisplayOffset = FOUR_CHAR_CODE('<ddd'), /* TimeValue64, Read */
+
+ /*
+ * The greatest display offset in the table. (20 is a greater offset
+ * than -50.) Read-only.
+ */
+ kQTSampleTablePropertyID_MaxDisplayOffset = FOUR_CHAR_CODE('>ddd'), /* TimeValue64, Read */
+
+ /*
+ * The least display time of all samples in the table, relative to
+ * the decode time of the first sample in the table. Read-only.
+ */
+ kQTSampleTablePropertyID_MinRelativeDisplayTime = FOUR_CHAR_CODE('<dis'), /* TimeValue64, Read */
+
+ /*
+ * The greatest display time of all samples in the table, relative to
+ * the decode time of the first sample in the table. Read-only.
+ */
+ kQTSampleTablePropertyID_MaxRelativeDisplayTime = FOUR_CHAR_CODE('>dis') /* TimeValue64, Read */
+};
+
+
+/*
+ * QTSampleTableGetPropertyInfo()
+ *
+ * Summary:
+ * Returns information about the properties of a sample table.
+ *
+ * Parameters:
+ *
+ * sampleTable:
+ * The sample table.
+ *
+ * inPropClass:
+ * A property class.
+ *
+ * inPropID:
+ * A property ID.
+ *
+ * outPropType:
+ * A pointer to memory allocated to hold the property type on
+ * return. Pass NULL if you do not want this information.
+ *
+ * outPropValueSize:
+ * A pointer to memory allocated to hold the size of the property
+ * value on return. Pass NULL if you do not want this information.
+ *
+ * outPropertyFlags:
+ * A pointer to memory allocated to hold property flags on return.
+ * Pass NULL if you do not want this information.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ * Windows: in qtmlClient.lib version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSStatus )
+QTSampleTableGetPropertyInfo(
+ QTSampleTableRef sampleTable,
+ QTPropertyClass inPropClass,
+ QTPropertyID inPropID,
+ QTPropertyValueType * outPropType, /* can be NULL */
+ ByteCount * outPropValueSize, /* can be NULL */
+ UInt32 * outPropertyFlags); /* can be NULL */
+
+
+/*
+ * QTSampleTableGetProperty()
+ *
+ * Summary:
+ * Returns the value of a specific sample table property.
+ *
+ * Parameters:
+ *
+ * sampleTable:
+ * The sample table.
+ *
+ * inPropClass:
+ * A property class.
+ *
+ * inPropID:
+ * A property ID.
+ *
+ * inPropValueSize:
+ * The size of the buffer allocated to hold the property value.
+ *
+ * outPropValueAddress:
+ * A pointer to the buffer allocated to hold the property value.
+ *
+ * outPropValueSizeUsed:
+ * On return, the actual size of the value written to the buffer.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ * Windows: in qtmlClient.lib version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSStatus )
+QTSampleTableGetProperty(
+ QTSampleTableRef sampleTable,
+ QTPropertyClass inPropClass,
+ QTPropertyID inPropID,
+ ByteCount inPropValueSize,
+ QTPropertyValuePtr outPropValueAddress,
+ ByteCount * outPropValueSizeUsed); /* can be NULL */
+
+
+/*
+ * QTSampleTableSetProperty()
+ *
+ * Summary:
+ * Sets the value of a specific sample table property.
+ *
+ * Parameters:
+ *
+ * sampleTable:
+ * The sample table.
+ *
+ * inPropClass:
+ * A property class.
+ *
+ * inPropID:
+ * A property ID.
+ *
+ * inPropValueSize:
+ * The size of the property value.
+ *
+ * inPropValueAddress:
+ * A pointer to the property value.
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ * Windows: in qtmlClient.lib version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSStatus )
+QTSampleTableSetProperty(
+ QTSampleTableRef sampleTable,
+ QTPropertyClass inPropClass,
+ QTPropertyID inPropID,
+ ByteCount inPropValueSize,
+ ConstQTPropertyValuePtr inPropValueAddress);
+
+
+
+
+
+/****************************************************************************
+* *
+* M E T A D A T A *
+* *
+* QUICKTIME METADATA API OVERVIEW *
+* *
+* A QTMetaDataRef represents a metadata repository consisting of one or *
+* more native metadata containers. The QuickTime MetaData API supports *
+* unified access to and management of these containers. *
+* *
+* Each container may be addressed by its storage format *
+* (kQTMetaDataStorageFormat). Initially, there is support for classic *
+* QuickTime UserData, iTunes metadata, and a richer QuickTime metadata *
+* container format. A QTMetaDataRef may have one or all of these. No *
+* direct access to the native storage containers is provided. *
+* *
+* Each container consists of some number of metadata items. Metadata items *
+* correspond to individually labeled values with characteristics such as *
+* keys, data types, locale information, etc. What are called items here *
+* are sometimes referred to as attributes or properties in other metadata *
+* systems. Here, the focus is on the management of the pieces of metadata *
+* instead of the associations with objects. This parallels existing *
+* management of the classic QuickTime UserData construct. *
+* *
+* QTMetaDataRefs may be associated with the Movie, Track and Media levels. *
+* This parallels UserData placement today but provides access to other *
+* kinds of metadata storage at those levels. *
+* *
+* A metadata item is assigned a runtime identifier (QTMetaDataItem) that *
+* along with the QTMetaDataRef identifies the particular item (and value) *
+* across all native containers managed by the QTMetaDataRef. *
+* *
+* Each item is addressed by a key (or label). The key is not necessarily *
+* unique within its container as it is possible to have multiple items *
+* with the same key (e.g., multiple author items). Operations exist to *
+* enumerate all items or only items with a particular key. *
+* *
+* Because a QTMetaDataRef may provide access to different native metadata *
+* containers with differing key structures (a four-char-code for one, a *
+* string for another, etc.), the key structure is also specified. A *
+* QTMetaDataKeyFormat indicates the key structure in APIs accepting keys. *
+* This is also done because some container formats allow multiple key *
+* structures or multiple versions of key structures. *
+* *
+* To allow unified access across disparate containers, a wildcard storage *
+* format can be specified. This will direct operations like searches *
+* across container formats. A special key format called *
+* kQTMetaDataKeyFormatCommon indicates one of a set of common keys that *
+* can be handled by native containers (e.g., copyright). *
+* *
+* So, both of these modes of operation are possible: - access metadata *
+* regardless of native container format through the use a common key - *
+* access metadata natively using a native key format *
+* *
+****************************************************************************/
+/* Opaque reference to a metadata object*/
+typedef struct OpaqueQTMetaDataRef* QTMetaDataRef;
+/* Opaque identifier for metadata item*/
+typedef UInt64 QTMetaDataItem;
+enum {
+ kQTMetaDataItemUninitialized = 0 /* Uninitialized metadata item identifier*/
+};
+
+/*
+ Metadata Storage Format.
+*/
+typedef OSType QTMetaDataStorageFormat;
+enum {
+ kQTMetaDataStorageFormatWildcard = 0 /* Wildcard storage format*/
+};
+
+/*
+ Metadata Key Format.
+*/
+typedef OSType QTMetaDataKeyFormat;
+enum {
+ kQTMetaDataKeyFormatWildcard = 0 /* Match any key regardless of key format*/
+};
+
+/****************************************
+ * Common Key Format *
+ ***************************************/
+enum {
+ kQTMetaDataKeyFormatCommon = FOUR_CHAR_CODE('comn')
+};
+
+/* Pre-defined meta keys*/
+enum {
+ kQTMetaDataCommonKeyAuthor = FOUR_CHAR_CODE('auth'),
+ kQTMetaDataCommonKeyComment = FOUR_CHAR_CODE('cmmt'),
+ kQTMetaDataCommonKeyCopyright = FOUR_CHAR_CODE('cprt'),
+ kQTMetaDataCommonKeyDirector = FOUR_CHAR_CODE('dtor'),
+ kQTMetaDataCommonKeyDisplayName = FOUR_CHAR_CODE('name'),
+ kQTMetaDataCommonKeyInformation = FOUR_CHAR_CODE('info'),
+ kQTMetaDataCommonKeyKeywords = FOUR_CHAR_CODE('keyw'),
+ kQTMetaDataCommonKeyProducer = FOUR_CHAR_CODE('prod'),
+ kQTMetaDataCommonKeyAlbum = FOUR_CHAR_CODE('albm'),
+ kQTMetaDataCommonKeyArtist = FOUR_CHAR_CODE('arts'),
+ kQTMetaDataCommonKeyArtwork = FOUR_CHAR_CODE('artw'),
+ kQTMetaDataCommonKeyChapterName = FOUR_CHAR_CODE('chap'),
+ kQTMetaDataCommonKeyComposer = FOUR_CHAR_CODE('comp'),
+ kQTMetaDataCommonKeyDescription = FOUR_CHAR_CODE('desc'),
+ kQTMetaDataCommonKeyGenre = FOUR_CHAR_CODE('genr'),
+ kQTMetaDataCommonKeyOriginalFormat = FOUR_CHAR_CODE('orif'),
+ kQTMetaDataCommonKeyOriginalSource = FOUR_CHAR_CODE('oris'),
+ kQTMetaDataCommonKeyPerformers = FOUR_CHAR_CODE('perf'),
+ kQTMetaDataCommonKeySoftware = FOUR_CHAR_CODE('soft'),
+ kQTMetaDataCommonKeyWriter = FOUR_CHAR_CODE('wrtr')
+};
+
+
+/****************************************
+ * QuickTime Native Metadata Format *
+ ***************************************/
+/* QTMetaDataStorageFormat type*/
+enum {
+ kQTMetaDataStorageFormatQuickTime = FOUR_CHAR_CODE('mdta') /* QuickTime metadata storage format*/
+};
+
+/* QTMetaDataKeyFormat type*/
+enum {
+ kQTMetaDataKeyFormatQuickTime = FOUR_CHAR_CODE('mdta') /* Reverse DNS format*/
+};
+
+/****************************************
+ * iTunes Native Metadata Format *
+ ***************************************/
+/* QTMetaDataStorageFormat type*/
+enum {
+ kQTMetaDataStorageFormatiTunes = FOUR_CHAR_CODE('itms') /* iTunes metadata storage format*/
+};
+
+/* QTMetaDataKeyFormat type*/
+enum {
+ kQTMetaDataKeyFormatiTunesShortForm = FOUR_CHAR_CODE('itsk'), /* FourCharCode*/
+ kQTMetaDataKeyFormatiTunesLongForm = FOUR_CHAR_CODE('itlk') /* Reverse DNS format*/
+};
+
+/* The list of keys for iTunes metadata is TBA.*/
+
+/****************************************
+ * UserData Native Format *
+ ***************************************/
+/* QTMetaDataStorageFormat type*/
+enum {
+ kQTMetaDataStorageFormatUserData = FOUR_CHAR_CODE('udta') /* UserData storage format*/
+};
+
+/* QTMetaDataKeyFormat type*/
+enum {
+ kQTMetaDataKeyFormatUserData = FOUR_CHAR_CODE('udta') /* FourCharCode*/
+};
+
+/* The list of keys are the User Data Identifiers (e.g. kUserDataTextAuthor, kUserDataTextCopyright, etc.)*/
+
+/*
+ Mapping from common keys to user data identifiers:
+
+ kQTMetaDataCommonKeyAuthor -> kUserDataTextAuthor
+ kQTMetaDataCommonKeyComment -> kUserDataTextComment
+ kQTMetaDataCommonKeyCopyright -> kUserDataTextCopyright
+ kQTMetaDataCommonKeyDirector -> kUserDataTextDirector
+ kQTMetaDataCommonKeyDisplayName -> kUserDataTextFullName
+ kQTMetaDataCommonKeyInformation -> kUserDataTextInformation
+ kQTMetaDataCommonKeyKeywords -> kUserDataTextKeywords
+ kQTMetaDataCommonKeyProducer -> kUserDataTextProducer
+ kQTMetaDataCommonKeyAlbum -> kUserDataTextAlbum
+ kQTMetaDataCommonKeyArtist -> kUserDataTextArtist
+ kQTMetaDataCommonKeyChapterName -> kUserDataTextChapter
+ kQTMetaDataCommonKeyComposer -> kUserDataTextComposer
+ kQTMetaDataCommonKeyDescription -> kUserDataTextDescription
+ kQTMetaDataCommonKeyGenre -> kUserDataTextGenre
+ kQTMetaDataCommonKeyOriginalFormat -> kUserDataTextOriginalFormat
+ kQTMetaDataCommonKeyOriginalSource -> kUserDataTextOriginalSource
+ kQTMetaDataCommonKeyPerformers -> kUserDataTextPerformers
+ kQTMetaDataCommonKeySoftware -> kUserDataTextSoftware
+ kQTMetaDataCommonKeyWriter -> kUserDataTextWriter
+*/
+/****************************************
+ * Metadata Property Class ID *
+ ***************************************/
+enum {
+ kPropertyClass_MetaData = FOUR_CHAR_CODE('meta')
+};
+
+/* Metadata Property ID */
+
+/*
+ */
+enum {
+
+ /*
+ * kQTMetaDataPropertyID_StorageFormats: The list of storage formats
+ * (QTMetaDataStorageFormat) associated with this QTMetaDataRef
+ * object. Return - C-style array of OSTypes, Read
+ */
+ kQTMetaDataPropertyID_StorageFormats = FOUR_CHAR_CODE('fmts'),
+
+ /*
+ * kQTMetaDataPropertyID_OwnerType: The owner type associated with
+ * this QTMetaDataRef object. Return - OSType (QT_MOVIE_TYPE,
+ * QT_TRACK_TYPE, QT_MEDIA_TYPE), Read
+ */
+ kQTMetaDataPropertyID_OwnerType = FOUR_CHAR_CODE('ownt'),
+
+ /*
+ * kQTMetaDataPropertyID_Owner: The owner associated with this
+ * QTMetaDataRef object. The QTMetaDataRef object does not
+ * necessarily need to have an owner. Return - Movie, Track, or
+ * Media, Read
+ */
+ kQTMetaDataPropertyID_Owner = FOUR_CHAR_CODE('ownr')
+};
+
+/*
+ Metadata Item Property Class ID
+*/
+enum {
+ kPropertyClass_MetaDataItem = FOUR_CHAR_CODE('mdit')
+};
+
+/* Metadata Item Property ID */
+
+/*
+ */
+enum {
+
+ /*
+ * kQTMetaDataItemPropertyID_Value: The value of the metadata item.
+ * Return - C-style array of UInt8, Read
+ */
+ kQTMetaDataItemPropertyID_Value = FOUR_CHAR_CODE('valu'),
+
+ /*
+ * kQTMetaDataItemPropertyID_DataType: The value type of the metadata
+ * item. Return - UInt32, Read/Write
+ */
+ kQTMetaDataItemPropertyID_DataType = FOUR_CHAR_CODE('dtyp'),
+
+ /*
+ * kQTMetaDataItemPropertyID_StorageFormat: The storage format
+ * (QTMetaDataStorageFormat). Return - QTMetaDataStorageFormat, Read
+ */
+ kQTMetaDataItemPropertyID_StorageFormat = FOUR_CHAR_CODE('sfmt'),
+
+ /*
+ * kQTMetaDataItemPropertyID_Key: The key associated with the
+ * metadata item. Return - C-style array of UInt8, Read/Write
+ */
+ kQTMetaDataItemPropertyID_Key = FOUR_CHAR_CODE('key '),
+
+ /*
+ * kQTMetaDataItemPropertyID_KeyFormat: The format of the key used.
+ * Return - OSType, Read/Write
+ */
+ kQTMetaDataItemPropertyID_KeyFormat = FOUR_CHAR_CODE('keyf'),
+
+ /*
+ * kQTMetaDataItemPropertyID_Locale: The locale identifier based on
+ * the naming convention defined by the International Components for
+ * Unicode (ICU). The identifier consists of two pieces of ordered
+ * information: a language code and a region code. The language code
+ * is based on the ISO 639-1 standard, which defines two-character
+ * codes, such as "en" and "fr", for the world's most commonly used
+ * languages. If a two-letter code is not available, then ISO 639-2
+ * three-letter identifiers are accepted as well, for example "haw"
+ * for Hawaiian. The region code is defined by ISO 3166-1. The region
+ * code is in all caps and appended, after an underscore, after the
+ * language code, for example "en_US", "en_GB", and "fr_FR". Return -
+ * C-string, Read/Write
+ */
+ kQTMetaDataItemPropertyID_Locale = FOUR_CHAR_CODE('loc ')
+};
+
+/* Well-known data type code*/
+enum {
+ kQTMetaDataTypeBinary = 0,
+ kQTMetaDataTypeUTF8 = 1,
+ kQTMetaDataTypeUTF16BE = 2,
+ kQTMetaDataTypeMacEncodedText = 3,
+ kQTMetaDataTypeJPEGImage = 13,
+ kQTMetaDataTypePNGImage = 14,
+ kQTMetaDataTypeSignedIntegerBE = 21, /* The size of the integer is defined by the value size*/
+ kQTMetaDataTypeUnsignedIntegerBE = 22, /* The size of the integer is defined by the value size*/
+ kQTMetaDataTypeFloat32BE = 23,
+ kQTMetaDataTypeFloat64BE = 24,
+ kQTMetaDataTypeBMPImage = 27,
+ kQTMetaDataTypeQuickTimeMetaData = 28
+};
+
+
+/****************************************
+ * QTMetaDataRef Access *
+ ***************************************/
+/*
+ * QTCopyMovieMetaData()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ * Windows: in qtmlClient.lib version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSStatus )
+QTCopyMovieMetaData(
+ Movie inMovie,
+ QTMetaDataRef * outMetaData);
+
+
+/*
+ * QTCopyTrackMetaData()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ * Windows: in qtmlClient.lib version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSStatus )
+QTCopyTrackMetaData(
+ Track inTrack,
+ QTMetaDataRef * outMetaData);
+
+
+/*
+ * QTCopyMediaMetaData()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ * Windows: in qtmlClient.lib version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSStatus )
+QTCopyMediaMetaData(
+ Media inMedia,
+ QTMetaDataRef * outMetaData);
+
+
+/*
+ * QTMetaDataRetain()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ * Windows: in qtmlClient.lib version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( QTMetaDataRef )
+QTMetaDataRetain(QTMetaDataRef inMetaData);
+
+
+/*
+ * QTMetaDataRelease()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ * Windows: in qtmlClient.lib version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( void )
+QTMetaDataRelease(QTMetaDataRef inMetaData);
+
+
+/*
+ * QTMetaDataCreateFromBuffer()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.5 (or QuickTime 7.2) and later
+ */
+EXTERN_API( OSStatus )
+QTMetaDataCreateFromBuffer(
+ const UInt8 * inBufferPtr,
+ ByteCount inBufferSize,
+ QTMetaDataRef * outMetaData);
+
+
+/*
+ * QTMetaDataGetBytes()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.5 (or QuickTime 7.2) and later
+ */
+EXTERN_API( OSStatus )
+QTMetaDataGetBytes(
+ QTMetaDataRef inMetaData,
+ ByteCount inBufferSize,
+ UInt8 * inBufferPtr,
+ ByteCount * outBufferSizeNeeded);
+
+
+
+/****************************************
+ * Metadata Item Routines *
+ ***************************************/
+/*
+ * QTMetaDataGetPropertyInfo()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ * Windows: in qtmlClient.lib version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSStatus )
+QTMetaDataGetPropertyInfo(
+ QTMetaDataRef inMetaData,
+ QTPropertyClass inPropClass,
+ QTPropertyID inPropID,
+ QTPropertyValueType * outPropType,
+ ByteCount * outPropValueSize,
+ UInt32 * outPropFlags);
+
+
+/*
+ * QTMetaDataGetProperty()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ * Windows: in qtmlClient.lib version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSStatus )
+QTMetaDataGetProperty(
+ QTMetaDataRef inMetaData,
+ QTPropertyClass inPropClass,
+ QTPropertyID inPropID,
+ ByteCount inPropValueSize,
+ QTPropertyValuePtr outPropValueAddress,
+ ByteCount * outPropValueSizeUsed);
+
+
+/*
+ * QTMetaDataSetProperty()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ * Windows: in qtmlClient.lib version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSStatus )
+QTMetaDataSetProperty(
+ QTMetaDataRef inMetaData,
+ QTPropertyClass inPropClass,
+ QTPropertyID inPropID,
+ ByteCount inPropValueSize,
+ ConstQTPropertyValuePtr inPropValueAddress);
+
+
+/*
+ * QTMetaDataGetItemValue()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ * Windows: in qtmlClient.lib version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSStatus )
+QTMetaDataGetItemValue(
+ QTMetaDataRef inMetaData,
+ QTMetaDataItem inItem,
+ UInt8 * outValuePtr,
+ ByteCount inValueSize,
+ ByteCount * outActualSize);
+
+
+/*
+ * QTMetaDataGetNextItem()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ * Windows: in qtmlClient.lib version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSStatus )
+QTMetaDataGetNextItem(
+ QTMetaDataRef inMetaData,
+ QTMetaDataStorageFormat inMetaDataFormat,
+ QTMetaDataItem inCurrentItem,
+ QTMetaDataKeyFormat inKeyFormat,
+ const UInt8 * inKeyPtr,
+ ByteCount inKeySize,
+ QTMetaDataItem * outNextItem);
+
+
+/*
+ * QTMetaDataGetItemPropertyInfo()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ * Windows: in qtmlClient.lib version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSStatus )
+QTMetaDataGetItemPropertyInfo(
+ QTMetaDataRef inMetaData,
+ QTMetaDataItem inItem,
+ QTPropertyClass inPropClass,
+ QTPropertyID inPropID,
+ QTPropertyValueType * outPropType,
+ ByteCount * outPropValueSize,
+ UInt32 * outPropFlags);
+
+
+/*
+ * QTMetaDataGetItemProperty()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ * Windows: in qtmlClient.lib version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSStatus )
+QTMetaDataGetItemProperty(
+ QTMetaDataRef inMetaData,
+ QTMetaDataItem inItem,
+ QTPropertyClass inPropClass,
+ QTPropertyID inPropID,
+ ByteCount inPropValueSize,
+ QTPropertyValuePtr outPropValueAddress,
+ ByteCount * outPropValueSizeUsed);
+
+
+/*
+ * QTMetaDataSetItemProperty()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ * Windows: in qtmlClient.lib version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSStatus )
+QTMetaDataSetItemProperty(
+ QTMetaDataRef inMetaData,
+ QTMetaDataItem inItem,
+ QTPropertyClass inPropClass,
+ QTPropertyID inPropID,
+ ByteCount inPropValueSize,
+ ConstQTPropertyValuePtr inPropValueAddress);
+
+
+/*
+ * QTMetaDataGetItemCountWithKey()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ * Windows: in qtmlClient.lib version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSStatus )
+QTMetaDataGetItemCountWithKey(
+ QTMetaDataRef inMetaData,
+ QTMetaDataStorageFormat inMetaDataFormat,
+ QTMetaDataKeyFormat inKeyFormat,
+ const UInt8 * inKeyPtr,
+ ByteCount inKeySize,
+ ItemCount * outCount);
+
+
+/*
+ * QTMetaDataAddItem()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ * Windows: in qtmlClient.lib version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSStatus )
+QTMetaDataAddItem(
+ QTMetaDataRef inMetaData,
+ QTMetaDataStorageFormat inMetaDataFormat,
+ QTMetaDataKeyFormat inKeyFormat,
+ const UInt8 * inKeyPtr,
+ ByteCount inKeySize,
+ const UInt8 * inValuePtr,
+ ByteCount inValueSize,
+ UInt32 inDataType,
+ QTMetaDataItem * outItem);
+
+
+/*
+ * QTMetaDataSetItem()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ * Windows: in qtmlClient.lib version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSStatus )
+QTMetaDataSetItem(
+ QTMetaDataRef inMetaData,
+ QTMetaDataItem inItem,
+ UInt8 * inValuePtr,
+ ByteCount inValueSize,
+ UInt32 inDataType);
+
+
+/*
+ * QTMetaDataRemoveItem()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ * Windows: in qtmlClient.lib version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSStatus )
+QTMetaDataRemoveItem(
+ QTMetaDataRef inMetaData,
+ QTMetaDataItem inItem);
+
+
+/*
+ * QTMetaDataRemoveItemsWithKey()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ * Windows: in qtmlClient.lib version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API( OSStatus )
+QTMetaDataRemoveItemsWithKey(
+ QTMetaDataRef inMetaData,
+ QTMetaDataStorageFormat inMetaDataFormat,
+ QTMetaDataKeyFormat inKeyFormat,
+ const UInt8 * inKeyPtr,
+ ByteCount inKeySize);
+
+
+
+/*
+ * MusicMediaGetIndexedTunePlayer()
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 3.0 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ * Windows: in qtmlClient.lib 3.0 and later
+ */
+EXTERN_API( ComponentResult )
+MusicMediaGetIndexedTunePlayer(
+ ComponentInstance ti,
+ long sampleDescIndex,
+ ComponentInstance * tp) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0101, 0x7000, 0xA82A);
+
+
+
+
+
+typedef struct QTBandwidthUsageRecord** QTBandwidthReference;
+typedef struct QTScheduledBandwidthUsageRecord** QTScheduledBandwidthReference;
+enum {
+ BandwidthManagementPrefsType = FOUR_CHAR_CODE('bwmg')
+};
+
+
+struct BandwidthManagementPrefsRecord {
+ Boolean overrideConnectionSpeedForBandwidth;
+};
+typedef struct BandwidthManagementPrefsRecord BandwidthManagementPrefsRecord;
+typedef BandwidthManagementPrefsRecord * BandwidthManagementPrefsPtr;
+typedef BandwidthManagementPrefsPtr * BandwidthManagementPrefsHandle;
+enum {
+ kQTBandwidthNotifyNeedToStop = 1L << 0,
+ kQTBandwidthNotifyGoodToGo = 1L << 1,
+ kQTBandwidthChangeRequest = 1L << 2,
+ kQTBandwidthQueueRequest = 1L << 3,
+ kQTBandwidthScheduledRequest = 1L << 4,
+ kQTBandwidthVoluntaryRelease = 1L << 5
+};
+
+typedef CALLBACK_API( OSErr , QTBandwidthNotificationProcPtr )(long flags, void *reserved, void *refcon);
+struct QTScheduledBandwidthRecord {
+ long recordSize; /* total number of bytes in QTScheduledBandwidthRecord*/
+
+ long priority;
+ long dataRate;
+ CompTimeValue startTime; /* bandwidth usage start time*/
+ CompTimeValue duration; /* duration of bandwidth usage (0 if unknown)*/
+ CompTimeValue prerollDuration; /* time for negotiation before startTime (0 if unknown)*/
+ TimeScale scale; /* timescale of value/duration/prerollDuration fields*/
+ TimeBase base; /* timebase*/
+};
+typedef struct QTScheduledBandwidthRecord QTScheduledBandwidthRecord;
+typedef QTScheduledBandwidthRecord * QTScheduledBandwidthPtr;
+typedef QTScheduledBandwidthPtr * QTScheduledBandwidthHandle;
+typedef STACK_UPP_TYPE(QTBandwidthNotificationProcPtr) QTBandwidthNotificationUPP;
+/*
+ * QTBandwidthRequest()
+ *
+ * Deprecated:
+ * No longer need to call bandwidth management functions.
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 4.0 and later
+ * CarbonLib: in CarbonLib 1.0.2 and later
+ * Mac OS X: in version 10.0 and later but deprecated in 10.4
+ * Windows: in qtmlClient.lib 4.0 and later
+ */
+EXTERN_API( OSErr )
+QTBandwidthRequest(
+ long priority,
+ QTBandwidthNotificationUPP callback,
+ const void * refcon,
+ QTBandwidthReference * bwRef,
+ long flags);
+
+
+/*
+ * QTBandwidthRequestForTimeBase()
+ *
+ * Deprecated:
+ * No longer need to call bandwidth management functions.
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 4.1 and later
+ * CarbonLib: in CarbonLib 1.1 and later
+ * Mac OS X: in version 10.0 and later but deprecated in 10.4
+ * Windows: in qtmlClient.lib 4.1 and later
+ */
+EXTERN_API( OSErr )
+QTBandwidthRequestForTimeBase(
+ TimeBase tb,
+ long priority,
+ QTBandwidthNotificationUPP callback,
+ const void * refcon,
+ QTBandwidthReference * bwRef,
+ long flags);
+
+
+/*
+ * QTBandwidthRelease()
+ *
+ * Deprecated:
+ * No longer need to call bandwidth management functions.
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 4.0 and later
+ * CarbonLib: in CarbonLib 1.0.2 and later
+ * Mac OS X: in version 10.0 and later but deprecated in 10.4
+ * Windows: in qtmlClient.lib 4.0 and later
+ */
+EXTERN_API( OSErr )
+QTBandwidthRelease(
+ QTBandwidthReference bwRef,
+ long flags);
+
+
+/*
+ * QTScheduledBandwidthRequest()
+ *
+ * Deprecated:
+ * No longer need to call bandwidth management functions.
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 4.1 and later
+ * CarbonLib: in CarbonLib 1.1 and later
+ * Mac OS X: in version 10.0 and later but deprecated in 10.4
+ * Windows: in qtmlClient.lib 4.1 and later
+ */
+EXTERN_API( OSErr )
+QTScheduledBandwidthRequest(
+ QTScheduledBandwidthPtr scheduleRec,
+ QTBandwidthNotificationUPP notificationCallback,
+ void * refcon,
+ QTScheduledBandwidthReference * sbwRef,
+ long flags);
+
+
+/*
+ * QTScheduledBandwidthRelease()
+ *
+ * Deprecated:
+ * No longer need to call bandwidth management functions.
+ *
+ * Availability:
+ * Non-Carbon CFM: in QuickTimeLib 4.1 and later
+ * CarbonLib: in CarbonLib 1.1 and later
+ * Mac OS X: in version 10.0 and later but deprecated in 10.4
+ * Windows: in qtmlClient.lib 4.1 and later
+ */
+EXTERN_API( OSErr )
+QTScheduledBandwidthRelease(
+ QTScheduledBandwidthReference sbwRef,
+ long flags);
+
+
+/*
+ * NewMCActionFilterUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( MCActionFilterUPP )
+NewMCActionFilterUPP(MCActionFilterProcPtr userRoutine);
+#if !OPAQUE_UPP_TYPES
+ enum { uppMCActionFilterProcInfo = 0x00000FD0 }; /* pascal 1_byte Func(4_bytes, 4_bytes, 4_bytes) */
+ #ifdef __cplusplus
+ inline DEFINE_API_C(MCActionFilterUPP) NewMCActionFilterUPP(MCActionFilterProcPtr userRoutine) { return (MCActionFilterUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppMCActionFilterProcInfo, GetCurrentArchitecture()); }
+ #else
+ #define NewMCActionFilterUPP(userRoutine) (MCActionFilterUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppMCActionFilterProcInfo, GetCurrentArchitecture())
+ #endif
+#endif
+
+/*
+ * NewMCActionFilterWithRefConUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( MCActionFilterWithRefConUPP )
+NewMCActionFilterWithRefConUPP(MCActionFilterWithRefConProcPtr userRoutine);
+#if !OPAQUE_UPP_TYPES
+ enum { uppMCActionFilterWithRefConProcInfo = 0x00003ED0 }; /* pascal 1_byte Func(4_bytes, 2_bytes, 4_bytes, 4_bytes) */
+ #ifdef __cplusplus
+ inline DEFINE_API_C(MCActionFilterWithRefConUPP) NewMCActionFilterWithRefConUPP(MCActionFilterWithRefConProcPtr userRoutine) { return (MCActionFilterWithRefConUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppMCActionFilterWithRefConProcInfo, GetCurrentArchitecture()); }
+ #else
+ #define NewMCActionFilterWithRefConUPP(userRoutine) (MCActionFilterWithRefConUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppMCActionFilterWithRefConProcInfo, GetCurrentArchitecture())
+ #endif
+#endif
+
+#if CALL_NOT_IN_CARBON
+/*
+ * NewMCActionNotificationUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: not available
+ * Mac OS X: in version 10.3 (or QuickTime 6.4) and later
+ */
+EXTERN_API_C( MCActionNotificationUPP )
+NewMCActionNotificationUPP(MCActionNotificationProcPtr userRoutine);
+#if !OPAQUE_UPP_TYPES
+ enum { uppMCActionNotificationProcInfo = 0x0003FED0 }; /* pascal 1_byte Func(4_bytes, 2_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes) */
+ #ifdef __cplusplus
+ inline DEFINE_API_C(MCActionNotificationUPP) NewMCActionNotificationUPP(MCActionNotificationProcPtr userRoutine) { return (MCActionNotificationUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppMCActionNotificationProcInfo, GetCurrentArchitecture()); }
+ #else
+ #define NewMCActionNotificationUPP(userRoutine) (MCActionNotificationUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppMCActionNotificationProcInfo, GetCurrentArchitecture())
+ #endif
+#endif
+
+#endif /* CALL_NOT_IN_CARBON */
+
+/*
+ * NewQTMoviePropertyListenerUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 9.9 and later
+ * Mac OS X: in version 10.3 (or QuickTime 6.4) and later
+ */
+EXTERN_API_C( QTMoviePropertyListenerUPP )
+NewQTMoviePropertyListenerUPP(QTMoviePropertyListenerProcPtr userRoutine);
+#if !OPAQUE_UPP_TYPES
+ enum { uppQTMoviePropertyListenerProcInfo = 0x00003FC0 }; /* pascal no_return_value Func(4_bytes, 4_bytes, 4_bytes, 4_bytes) */
+ #ifdef __cplusplus
+ inline DEFINE_API_C(QTMoviePropertyListenerUPP) NewQTMoviePropertyListenerUPP(QTMoviePropertyListenerProcPtr userRoutine) { return (QTMoviePropertyListenerUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQTMoviePropertyListenerProcInfo, GetCurrentArchitecture()); }
+ #else
+ #define NewQTMoviePropertyListenerUPP(userRoutine) (QTMoviePropertyListenerUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQTMoviePropertyListenerProcInfo, GetCurrentArchitecture())
+ #endif
+#endif
+
+/*
+ * NewQTTrackPropertyListenerUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 9.9 and later
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API_C( QTTrackPropertyListenerUPP )
+NewQTTrackPropertyListenerUPP(QTTrackPropertyListenerProcPtr userRoutine);
+#if !OPAQUE_UPP_TYPES
+ enum { uppQTTrackPropertyListenerProcInfo = 0x00003FC0 }; /* pascal no_return_value Func(4_bytes, 4_bytes, 4_bytes, 4_bytes) */
+ #ifdef __cplusplus
+ inline DEFINE_API_C(QTTrackPropertyListenerUPP) NewQTTrackPropertyListenerUPP(QTTrackPropertyListenerProcPtr userRoutine) { return (QTTrackPropertyListenerUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQTTrackPropertyListenerProcInfo, GetCurrentArchitecture()); }
+ #else
+ #define NewQTTrackPropertyListenerUPP(userRoutine) (QTTrackPropertyListenerUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQTTrackPropertyListenerProcInfo, GetCurrentArchitecture())
+ #endif
+#endif
+
+/*
+ * NewQTBandwidthNotificationUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0.2 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( QTBandwidthNotificationUPP )
+NewQTBandwidthNotificationUPP(QTBandwidthNotificationProcPtr userRoutine);
+#if !OPAQUE_UPP_TYPES
+ enum { uppQTBandwidthNotificationProcInfo = 0x00000FE0 }; /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes) */
+ #ifdef __cplusplus
+ inline DEFINE_API_C(QTBandwidthNotificationUPP) NewQTBandwidthNotificationUPP(QTBandwidthNotificationProcPtr userRoutine) { return (QTBandwidthNotificationUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQTBandwidthNotificationProcInfo, GetCurrentArchitecture()); }
+ #else
+ #define NewQTBandwidthNotificationUPP(userRoutine) (QTBandwidthNotificationUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppQTBandwidthNotificationProcInfo, GetCurrentArchitecture())
+ #endif
+#endif
+
+/*
+ * DisposeMCActionFilterUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( void )
+DisposeMCActionFilterUPP(MCActionFilterUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(void) DisposeMCActionFilterUPP(MCActionFilterUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); }
+ #else
+ #define DisposeMCActionFilterUPP(userUPP) DisposeRoutineDescriptor(userUPP)
+ #endif
+#endif
+
+/*
+ * DisposeMCActionFilterWithRefConUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( void )
+DisposeMCActionFilterWithRefConUPP(MCActionFilterWithRefConUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(void) DisposeMCActionFilterWithRefConUPP(MCActionFilterWithRefConUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); }
+ #else
+ #define DisposeMCActionFilterWithRefConUPP(userUPP) DisposeRoutineDescriptor(userUPP)
+ #endif
+#endif
+
+#if CALL_NOT_IN_CARBON
+/*
+ * DisposeMCActionNotificationUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: not available
+ * Mac OS X: in version 10.3 (or QuickTime 6.4) and later
+ */
+EXTERN_API_C( void )
+DisposeMCActionNotificationUPP(MCActionNotificationUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(void) DisposeMCActionNotificationUPP(MCActionNotificationUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); }
+ #else
+ #define DisposeMCActionNotificationUPP(userUPP) DisposeRoutineDescriptor(userUPP)
+ #endif
+#endif
+
+#endif /* CALL_NOT_IN_CARBON */
+
+/*
+ * DisposeQTMoviePropertyListenerUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 9.9 and later
+ * Mac OS X: in version 10.3 (or QuickTime 6.4) and later
+ */
+EXTERN_API_C( void )
+DisposeQTMoviePropertyListenerUPP(QTMoviePropertyListenerUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(void) DisposeQTMoviePropertyListenerUPP(QTMoviePropertyListenerUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); }
+ #else
+ #define DisposeQTMoviePropertyListenerUPP(userUPP) DisposeRoutineDescriptor(userUPP)
+ #endif
+#endif
+
+/*
+ * DisposeQTTrackPropertyListenerUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 9.9 and later
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API_C( void )
+DisposeQTTrackPropertyListenerUPP(QTTrackPropertyListenerUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(void) DisposeQTTrackPropertyListenerUPP(QTTrackPropertyListenerUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); }
+ #else
+ #define DisposeQTTrackPropertyListenerUPP(userUPP) DisposeRoutineDescriptor(userUPP)
+ #endif
+#endif
+
+/*
+ * DisposeQTBandwidthNotificationUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0.2 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( void )
+DisposeQTBandwidthNotificationUPP(QTBandwidthNotificationUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(void) DisposeQTBandwidthNotificationUPP(QTBandwidthNotificationUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); }
+ #else
+ #define DisposeQTBandwidthNotificationUPP(userUPP) DisposeRoutineDescriptor(userUPP)
+ #endif
+#endif
+
+/*
+ * InvokeMCActionFilterUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( Boolean )
+InvokeMCActionFilterUPP(
+ MovieController mc,
+ short * action,
+ void * params,
+ MCActionFilterUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(Boolean) InvokeMCActionFilterUPP(MovieController mc, short * action, void * params, MCActionFilterUPP userUPP) { return (Boolean)CALL_THREE_PARAMETER_UPP(userUPP, uppMCActionFilterProcInfo, mc, action, params); }
+ #else
+ #define InvokeMCActionFilterUPP(mc, action, params, userUPP) (Boolean)CALL_THREE_PARAMETER_UPP((userUPP), uppMCActionFilterProcInfo, (mc), (action), (params))
+ #endif
+#endif
+
+/*
+ * InvokeMCActionFilterWithRefConUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( Boolean )
+InvokeMCActionFilterWithRefConUPP(
+ MovieController mc,
+ short action,
+ void * params,
+ long refCon,
+ MCActionFilterWithRefConUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(Boolean) InvokeMCActionFilterWithRefConUPP(MovieController mc, short action, void * params, long refCon, MCActionFilterWithRefConUPP userUPP) { return (Boolean)CALL_FOUR_PARAMETER_UPP(userUPP, uppMCActionFilterWithRefConProcInfo, mc, action, params, refCon); }
+ #else
+ #define InvokeMCActionFilterWithRefConUPP(mc, action, params, refCon, userUPP) (Boolean)CALL_FOUR_PARAMETER_UPP((userUPP), uppMCActionFilterWithRefConProcInfo, (mc), (action), (params), (refCon))
+ #endif
+#endif
+
+#if CALL_NOT_IN_CARBON
+/*
+ * InvokeMCActionNotificationUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: not available
+ * Mac OS X: in version 10.3 (or QuickTime 6.4) and later
+ */
+EXTERN_API_C( Boolean )
+InvokeMCActionNotificationUPP(
+ MovieController mc,
+ short action,
+ void * params,
+ UInt32 inFlags,
+ UInt32 * outFlags,
+ void * refCon,
+ MCActionNotificationUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(Boolean) InvokeMCActionNotificationUPP(MovieController mc, short action, void * params, UInt32 inFlags, UInt32 * outFlags, void * refCon, MCActionNotificationUPP userUPP) { return (Boolean)CALL_SIX_PARAMETER_UPP(userUPP, uppMCActionNotificationProcInfo, mc, action, params, inFlags, outFlags, refCon); }
+ #else
+ #define InvokeMCActionNotificationUPP(mc, action, params, inFlags, outFlags, refCon, userUPP) (Boolean)CALL_SIX_PARAMETER_UPP((userUPP), uppMCActionNotificationProcInfo, (mc), (action), (params), (inFlags), (outFlags), (refCon))
+ #endif
+#endif
+
+#endif /* CALL_NOT_IN_CARBON */
+
+/*
+ * InvokeQTMoviePropertyListenerUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 9.9 and later
+ * Mac OS X: in version 10.3 (or QuickTime 6.4) and later
+ */
+EXTERN_API_C( void )
+InvokeQTMoviePropertyListenerUPP(
+ Movie inMovie,
+ QTPropertyClass inPropClass,
+ QTPropertyID inPropID,
+ void * inUserData,
+ QTMoviePropertyListenerUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(void) InvokeQTMoviePropertyListenerUPP(Movie inMovie, QTPropertyClass inPropClass, QTPropertyID inPropID, void * inUserData, QTMoviePropertyListenerUPP userUPP) { CALL_FOUR_PARAMETER_UPP(userUPP, uppQTMoviePropertyListenerProcInfo, inMovie, inPropClass, inPropID, inUserData); }
+ #else
+ #define InvokeQTMoviePropertyListenerUPP(inMovie, inPropClass, inPropID, inUserData, userUPP) CALL_FOUR_PARAMETER_UPP((userUPP), uppQTMoviePropertyListenerProcInfo, (inMovie), (inPropClass), (inPropID), (inUserData))
+ #endif
+#endif
+
+/*
+ * InvokeQTTrackPropertyListenerUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 9.9 and later
+ * Mac OS X: in version 10.4 (or QuickTime 7.0) and later
+ */
+EXTERN_API_C( void )
+InvokeQTTrackPropertyListenerUPP(
+ Track inTrack,
+ QTPropertyClass inPropClass,
+ QTPropertyID inPropID,
+ void * inUserData,
+ QTTrackPropertyListenerUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(void) InvokeQTTrackPropertyListenerUPP(Track inTrack, QTPropertyClass inPropClass, QTPropertyID inPropID, void * inUserData, QTTrackPropertyListenerUPP userUPP) { CALL_FOUR_PARAMETER_UPP(userUPP, uppQTTrackPropertyListenerProcInfo, inTrack, inPropClass, inPropID, inUserData); }
+ #else
+ #define InvokeQTTrackPropertyListenerUPP(inTrack, inPropClass, inPropID, inUserData, userUPP) CALL_FOUR_PARAMETER_UPP((userUPP), uppQTTrackPropertyListenerProcInfo, (inTrack), (inPropClass), (inPropID), (inUserData))
+ #endif
+#endif
+
+/*
+ * InvokeQTBandwidthNotificationUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0.2 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSErr )
+InvokeQTBandwidthNotificationUPP(
+ long flags,
+ void * reserved,
+ void * refcon,
+ QTBandwidthNotificationUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(OSErr) InvokeQTBandwidthNotificationUPP(long flags, void * reserved, void * refcon, QTBandwidthNotificationUPP userUPP) { return (OSErr)CALL_THREE_PARAMETER_UPP(userUPP, uppQTBandwidthNotificationProcInfo, flags, reserved, refcon); }
+ #else
+ #define InvokeQTBandwidthNotificationUPP(flags, reserved, refcon, userUPP) (OSErr)CALL_THREE_PARAMETER_UPP((userUPP), uppQTBandwidthNotificationProcInfo, (flags), (reserved), (refcon))
+ #endif
+#endif
+
+#if CALL_NOT_IN_CARBON || OLDROUTINENAMES
+ /* support for pre-Carbon UPP routines: New...Proc and Call...Proc */
+ #define NewMCActionFilterProc(userRoutine) NewMCActionFilterUPP(userRoutine)
+ #define NewMCActionFilterWithRefConProc(userRoutine) NewMCActionFilterWithRefConUPP(userRoutine)
+ #define NewMCActionNotificationProc(userRoutine) NewMCActionNotificationUPP(userRoutine)
+ #define NewQTMoviePropertyListenerProc(userRoutine) NewQTMoviePropertyListenerUPP(userRoutine)
+ #define NewQTTrackPropertyListenerProc(userRoutine) NewQTTrackPropertyListenerUPP(userRoutine)
+ #define NewQTBandwidthNotificationProc(userRoutine) NewQTBandwidthNotificationUPP(userRoutine)
+ #define CallMCActionFilterProc(userRoutine, mc, action, params) InvokeMCActionFilterUPP(mc, action, params, userRoutine)
+ #define CallMCActionFilterWithRefConProc(userRoutine, mc, action, params, refCon) InvokeMCActionFilterWithRefConUPP(mc, action, params, refCon, userRoutine)
+ #define CallMCActionNotificationProc(userRoutine, mc, action, params, inFlags, outFlags, refCon) InvokeMCActionNotificationUPP(mc, action, params, inFlags, outFlags, refCon, userRoutine)
+ #define CallQTMoviePropertyListenerProc(userRoutine, inMovie, inPropClass, inPropID, inUserData) InvokeQTMoviePropertyListenerUPP(inMovie, inPropClass, inPropID, inUserData, userRoutine)
+ #define CallQTTrackPropertyListenerProc(userRoutine, inTrack, inPropClass, inPropID, inUserData) InvokeQTTrackPropertyListenerUPP(inTrack, inPropClass, inPropID, inUserData, userRoutine)
+ #define CallQTBandwidthNotificationProc(userRoutine, flags, reserved, refcon) InvokeQTBandwidthNotificationUPP(flags, reserved, refcon, userRoutine)
+#endif /* CALL_NOT_IN_CARBON */
+
+
+
+/* UPP call backs */
+
+/* selectors for component calls */
+enum {
+ kVideoMediaResetStatisticsSelect = 0x0105,
+ kVideoMediaGetStatisticsSelect = 0x0106,
+ kVideoMediaGetStallCountSelect = 0x010E,
+ kVideoMediaSetCodecParameterSelect = 0x010F,
+ kVideoMediaGetCodecParameterSelect = 0x0110,
+ kTextMediaSetTextProcSelect = 0x0101,
+ kTextMediaAddTextSampleSelect = 0x0102,
+ kTextMediaAddTESampleSelect = 0x0103,
+ kTextMediaAddHiliteSampleSelect = 0x0104,
+ kTextMediaDrawRawSelect = 0x0109,
+ kTextMediaSetTextPropertySelect = 0x010A,
+ kTextMediaRawSetupSelect = 0x010B,
+ kTextMediaRawIdleSelect = 0x010C,
+ kTextMediaGetTextPropertySelect = 0x010D,
+ kTextMediaFindNextTextSelect = 0x0105,
+ kTextMediaHiliteTextSampleSelect = 0x0106,
+ kTextMediaSetTextSampleDataSelect = 0x0107,
+ kSpriteMediaSetPropertySelect = 0x0101,
+ kSpriteMediaGetPropertySelect = 0x0102,
+ kSpriteMediaHitTestSpritesSelect = 0x0103,
+ kSpriteMediaCountSpritesSelect = 0x0104,
+ kSpriteMediaCountImagesSelect = 0x0105,
+ kSpriteMediaGetIndImageDescriptionSelect = 0x0106,
+ kSpriteMediaGetDisplayedSampleNumberSelect = 0x0107,
+ kSpriteMediaGetSpriteNameSelect = 0x0108,
+ kSpriteMediaGetImageNameSelect = 0x0109,
+ kSpriteMediaSetSpritePropertySelect = 0x010A,
+ kSpriteMediaGetSpritePropertySelect = 0x010B,
+ kSpriteMediaHitTestAllSpritesSelect = 0x010C,
+ kSpriteMediaHitTestOneSpriteSelect = 0x010D,
+ kSpriteMediaSpriteIndexToIDSelect = 0x010E,
+ kSpriteMediaSpriteIDToIndexSelect = 0x010F,
+ kSpriteMediaGetSpriteActionsForQTEventSelect = 0x0110,
+ kSpriteMediaSetActionVariableSelect = 0x0111,
+ kSpriteMediaGetActionVariableSelect = 0x0112,
+ kSpriteMediaGetIndImagePropertySelect = 0x0113,
+ kSpriteMediaNewSpriteSelect = 0x0114,
+ kSpriteMediaDisposeSpriteSelect = 0x0115,
+ kSpriteMediaSetActionVariableToStringSelect = 0x0116,
+ kSpriteMediaGetActionVariableAsStringSelect = 0x0117,
+ kSpriteMediaNewImageSelect = 0x011B,
+ kSpriteMediaDisposeImageSelect = 0x011C,
+ kSpriteMediaImageIndexToIDSelect = 0x011D,
+ kSpriteMediaImageIDToIndexSelect = 0x011E,
+ kFlashMediaSetPanSelect = 0x0101,
+ kFlashMediaSetZoomSelect = 0x0102,
+ kFlashMediaSetZoomRectSelect = 0x0103,
+ kFlashMediaGetRefConBoundsSelect = 0x0104,
+ kFlashMediaGetRefConIDSelect = 0x0105,
+ kFlashMediaIDToRefConSelect = 0x0106,
+ kFlashMediaGetDisplayedFrameNumberSelect = 0x0107,
+ kFlashMediaFrameNumberToMovieTimeSelect = 0x0108,
+ kFlashMediaFrameLabelToMovieTimeSelect = 0x0109,
+ kFlashMediaGetFlashVariableSelect = 0x010A,
+ kFlashMediaSetFlashVariableSelect = 0x010B,
+ kFlashMediaDoButtonActionsSelect = 0x010C,
+ kFlashMediaGetSupportedSwfVersionSelect = 0x010D,
+ kMovieMediaGetChildDoMCActionCallbackSelect = 0x0102,
+ kMovieMediaGetDoMCActionCallbackSelect = 0x0103,
+ kMovieMediaGetCurrentMoviePropertySelect = 0x0104,
+ kMovieMediaGetCurrentTrackPropertySelect = 0x0105,
+ kMovieMediaGetChildMovieDataReferenceSelect = 0x0106,
+ kMovieMediaSetChildMovieDataReferenceSelect = 0x0107,
+ kMovieMediaLoadChildMovieFromDataReferenceSelect = 0x0108,
+ kMedia3DGetNamedObjectListSelect = 0x0101,
+ kMedia3DGetRendererListSelect = 0x0102,
+ kMedia3DGetCurrentGroupSelect = 0x0103,
+ kMedia3DTranslateNamedObjectToSelect = 0x0104,
+ kMedia3DScaleNamedObjectToSelect = 0x0105,
+ kMedia3DRotateNamedObjectToSelect = 0x0106,
+ kMedia3DSetCameraDataSelect = 0x0107,
+ kMedia3DGetCameraDataSelect = 0x0108,
+ kMedia3DSetCameraAngleAspectSelect = 0x0109,
+ kMedia3DGetCameraAngleAspectSelect = 0x010A,
+ kMedia3DSetCameraRangeSelect = 0x010D,
+ kMedia3DGetCameraRangeSelect = 0x010E,
+ kMedia3DGetViewObjectSelect = 0x010F,
+ kMCSetMovieSelect = 0x0002,
+ kMCGetIndMovieSelect = 0x0005,
+ kMCRemoveAllMoviesSelect = 0x0006,
+ kMCRemoveAMovieSelect = 0x0003,
+ kMCRemoveMovieSelect = 0x0006,
+ kMCIsPlayerEventSelect = 0x0007,
+ kMCSetActionFilterSelect = 0x0008,
+ kMCDoActionSelect = 0x0009,
+ kMCSetControllerAttachedSelect = 0x000A,
+ kMCIsControllerAttachedSelect = 0x000B,
+ kMCSetControllerPortSelect = 0x000C,
+ kMCGetControllerPortSelect = 0x000D,
+ kMCSetVisibleSelect = 0x000E,
+ kMCGetVisibleSelect = 0x000F,
+ kMCGetControllerBoundsRectSelect = 0x0010,
+ kMCSetControllerBoundsRectSelect = 0x0011,
+ kMCGetControllerBoundsRgnSelect = 0x0012,
+ kMCGetWindowRgnSelect = 0x0013,
+ kMCMovieChangedSelect = 0x0014,
+ kMCSetDurationSelect = 0x0015,
+ kMCGetCurrentTimeSelect = 0x0016,
+ kMCNewAttachedControllerSelect = 0x0017,
+ kMCDrawSelect = 0x0018,
+ kMCActivateSelect = 0x0019,
+ kMCIdleSelect = 0x001A,
+ kMCKeySelect = 0x001B,
+ kMCClickSelect = 0x001C,
+ kMCEnableEditingSelect = 0x001D,
+ kMCIsEditingEnabledSelect = 0x001E,
+ kMCCopySelect = 0x001F,
+ kMCCutSelect = 0x0020,
+ kMCPasteSelect = 0x0021,
+ kMCClearSelect = 0x0022,
+ kMCUndoSelect = 0x0023,
+ kMCPositionControllerSelect = 0x0024,
+ kMCGetControllerInfoSelect = 0x0025,
+ kMCSetClipSelect = 0x0028,
+ kMCGetClipSelect = 0x0029,
+ kMCDrawBadgeSelect = 0x002A,
+ kMCSetUpEditMenuSelect = 0x002B,
+ kMCGetMenuStringSelect = 0x002C,
+ kMCSetActionFilterWithRefConSelect = 0x002D,
+ kMCPtInControllerSelect = 0x002E,
+ kMCInvalidateSelect = 0x002F,
+ kMCAdjustCursorSelect = 0x0030,
+ kMCGetInterfaceElementSelect = 0x0031,
+ kMCGetDoActionsProcSelect = 0x0032,
+ kMCAddMovieSegmentSelect = 0x0033,
+ kMCTrimMovieSegmentSelect = 0x0034,
+ kMCSetIdleManagerSelect = 0x0035,
+ kMCSetControllerCapabilitiesSelect = 0x0036,
+ kMusicMediaGetIndexedTunePlayerSelect = 0x0101
+};
+
+#endif // !__LP64__
+
+
+
+#if PRAGMA_STRUCT_ALIGN
+ #pragma options align=reset
+#elif PRAGMA_STRUCT_PACKPUSH
+ #pragma pack(pop)
+#elif PRAGMA_STRUCT_PACK
+ #pragma pack()
+#endif
+
+#ifdef PRAGMA_IMPORT_OFF
+#pragma import off
+#elif PRAGMA_IMPORT
+#pragma import reset
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __MOVIES__ */
+