Modified source engine (2017) developed by valve and leaked in 2020. Not for commercial purporses
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

19469 lines
620 KiB

/*
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__ */